Files
logseq/shadow-cljs.edn
Charlie 8040168d1e Feat: New UI components (#10694)
* enhance(plugin): call apis with the sdk ns

* enhance(plugin): types

* enhance(api): get value from the computed style

* enhance(api): types

* enhance(plugin): types

* enhance(plugin): types

* fix: lint

* fix(apis): incorrect shortcut command registion for block editing mode #10392

* fix(api): types

* enhance(apis): support register shortcuts with multi binding vals

* fix(plugins): normalize command key to make the internal keyword legal

* chore(plugin): build libs core

* chore(plugin): bump version

* enhance(apis): normalize apis cljs data

* chore(plugin): update libs user sdk

* chore(plugin): CHANGELOG.md

* fix: typo

* feat(ui): add package

* Update .gitignore

* feat(ui): set up shui infrastructure

* feat(ui): add storybook macro

* enhance(ui): storybook themes

* feat(ui): adapt ui button to classic

* enhance(ui): shui story

* feat(ui): shui toaster

* enhance(ui): shui toaster

* feat(ui): imperative API for shui toaster

* enhance(shui): update API for shui toaster

* enhance(shui): update hooks for shui toaster

* enhance(shui): remove debug

* feat(ui): story for the shui toaster

* feat(ui): story

* feat(ui): story docs

* feat(ui): more variants for the shui toaster

* feat(ui): story

* fix(ux): support querying plugins with right space chars

* feat(ui): add shui `Alert` component

* enhance(ui): shui demo

* feat(ui): add logseq UI readme

* enhance(ui): default shui theme

* feat(ui): add shui `Badge` component & demo

* fix(ui): outline theme for shui button

* feat(ui): custom icon for the toaster item

* feat(ui): add shui dropdown & demo

* feat(ui): WIP shui form related components

* feat(ui): WIP shui form-related components

* feat(ui): WIP shui form

* feat(ui): WIP shui form state for validation

* fix(ui): missing rounded for ui button

* feat(ui): add yup for shui form as default validation resolver

* enhance(ui): simplify validation schema input for the shui form

* fix(ui): accent ring color for input

* feat(ui): add shui switch

* feat(ui): add shui checkbox & switch

* feat(ui): add shui radio group

* fix(ui): missing file

* feat(ui): add Textarea component

* feat(ui): add shui card & skeleton

* feat(ui): add shui context menu component & demo

* fix(ui): accent color for the context menu item

* feat(ui): add shui select component & demo

* enhance(ui): ui css priority

* feat(ui): add shui calendar & ui details

* feat(ui): add shui popover

* feat(ui): add date picker & demo

* feat(ui): add shui dialog

* feat(ui): WIP add shui dialog

* feat(ui): WIP shui dialog as modal

* feat(ui): WIP imperative APIs for the shui modal

* feat(ui): imperative APIs for the shui modal/alert

* feat(ui): support imperative API alert!/confirm! return promise

* feat(ui): simplify shui components resources

* feat(ui): response layout for the demo ui page

* feat(ui): simplify colors

* feat(ui): simplify colors

* feat(ui): simplify colors

* refactor(ui): WIP Adapt to the new button component

* refactor(ui): polish new button & colors

* fix(ui): the new theme color for the plugin settings nav item link

* fix(ui): blockquote colors

* enhance(ui): more custom colors for shui button

* feat(ui): WIP make logseq green as a theme color

* enhance(ui): polish logseq classical theme color

* fix(ui): theme details of all pages

* enhance(ui): polish logseq theme color for dark mode

* fix(ui): missing table style

* refactor(ui): simplify the all shui buttons & shortcuts for the cmdk component

* fix(ui): missing file

* refactor(ui): clear up stuff

* fix(ui): theme color related issues

* enhance(ui): polish button style

* enhance(ui): polish the keymap setting pane

* fix(ui): hint button from the cmdk pane footer

* fix(ui): logseq colors for the storybook

* enhance(ui): stories for the shui components

* fix(ui): active color for the old toggle component

* enhance(ui): keep the constant size of the settings pane

* fix(ui): polish search input for the plugins pane

* enhance(ui): polish number list bullet colors

* feat(ui): add shui tooltip component

* chore: build ui

* chore(ui): clean up resources

* fix: lint

* fix: lint

* fix: lint

* fix(ui): alignment of the keymap title from the settings pane

* fix: tests

* fix(ui): close button for the classic notification tip

* fix(ui): polish toaster viewport

* enhance(ui): polish the ghost button colors

* enhance(ui): demos for tips

* fix(ui): accent colors for the rc-datepicker

* fix(ui): accent color for the menu item

* refactor(ui): remove unless code for the accent colors

* enhance(ui): polish pdf viewer background color for the accent color mode

* fix: lint

* fix: lint

* fix: lint

* enhance(ui): support button with the custom href link

* enhance(ui): polish aside setting items

* enhance(ui): polish accent color for buttons

* enhance(ui): polish all pages

---------

Co-authored-by: Gabriel Horner <97210743+logseq-cldwalker@users.noreply.github.com>
2023-12-26 16:31:37 +08:00

126 lines
6.2 KiB
Clojure

;; shadow-cljs configuration
{:deps true
:nrepl {:port 8701}
;; "." for /static
:dev-http {3001 ["static" "."]}
:js-options {:js-package-dirs ["node_modules" "tldraw/apps"]}
:builds
{:app {:target :browser
:module-loader true
:js-options {:ignore-asset-requires true
:resolve {"react" {:target :global
:global "React"}
"react-dom" {:target :global
:global "ReactDOM"}}} ;; handle `require(xxx.css)`
:modules {:main
{:init-fn frontend.core/init}
:code-editor
{:entries [frontend.extensions.code]
:depends-on #{:main}}
:excalidraw
{:entries [frontend.extensions.excalidraw]
:depends-on #{:main}}
:tldraw
{:entries [frontend.extensions.tldraw]
:depends-on #{:main}}}
:output-dir "./static/js"
:asset-path "/static/js"
:release {:asset-path "https://asset.logseq.com/static/js"}
:compiler-options {:infer-externs :auto
:output-feature-set :es-next-in
:source-map true
:externs ["datascript/externs.js"
"externs.js"]
:warnings {:fn-deprecated false
:redef false}}
:build-hooks [(shadow.hooks/git-revision-hook "--long --always --dirty")]
:closure-defines {goog.debug.LOGGING_ENABLED true
frontend.modules.instrumentation.sentry/SENTRY-DSN #shadow/env "LOGSEQ_SENTRY_DSN"
frontend.modules.instrumentation.posthog/POSTHOG-TOKEN #shadow/env "LOGSEQ_POSTHOG_TOKEN"
frontend.config/ENABLE-PLUGINS #shadow/env ["ENABLE_PLUGINS" :as :bool :default true]
;; Set to switch file sync server to dev, set this to false in `yarn watch`
frontend.config/ENABLE-FILE-SYNC-PRODUCTION #shadow/env ["ENABLE_FILE_SYNC_PRODUCTION" :as :bool :default true]
frontend.config/TEST #shadow/env ["LOGSEQ_CI" :as :bool :default false]
frontend.config/REVISION #shadow/env ["LOGSEQ_REVISION" :default "dev"]} ;; set by git-revision-hook
;; NOTE: electron, browser/mobile-app use different asset-paths.
;; For browser/mobile-app devs, assets are located in /static/js(via HTTP root).
;; For electron devs, assets are located in ./js(via relative path).
;; :dev {:asset-path "./js"}
:devtools {:before-load frontend.core/stop ;; before live-reloading any code call this function
:after-load frontend.core/start ;; after live-reloading finishes call this function
:watch-path "/static"
:preloads [devtools.preload
shadow.remote.runtime.cljs.browser]}}
:electron {:target :node-script
:output-to "static/electron.js"
:main electron.core/main
:devtools {:before-load electron.core/stop
:after-load electron.core/start}
:compiler-options {:infer-externs :auto
:source-map true
:source-map-include-sources-content true
:source-map-detail-level :all
:externs ["datascript/externs.js"
"externs.js"]
:warnings {:fn-deprecated false
:redef false}}}
:test {:target :node-test
:output-to "static/tests.js"
:closure-defines {frontend.util/NODETEST true
logseq.shui.util/NODETEST true}
:devtools {:enabled false}
;; disable :static-fns to allow for with-redefs and repl development
:compiler-options {:static-fns false}
:main frontend.test.frontend-node-test-runner/main}
:gen-malli-kondo-config {:target :node-script
:closure-defines {frontend.util/NODETEST true}
:devtools {:enabled false}
:compiler-options {:static-fns false}
:output-to "static/gen-malli-kondo-config.js"
:main gen-malli-kondo-config.core/main}
:publishing {:target :browser
:module-loader true
:js-options {:ignore-asset-requires true}
:modules {:main
{:init-fn frontend.publishing/init}
:code-editor
{:entries [frontend.extensions.code]
:depends-on #{:main}}
:excalidraw
{:entries [frontend.extensions.excalidraw]
:depends-on #{:main}}
:tldraw
{:entries [frontend.extensions.tldraw]
:depends-on #{:main}}}
:output-dir "./static/js/publishing"
:asset-path "static/js"
:closure-defines {frontend.config/PUBLISHING true
goog.debug.LOGGING_ENABLED true}
:compiler-options {:infer-externs :auto
:output-feature-set :es-next
:externs ["datascript/externs.js"
"externs.js"]
:warnings {:fn-deprecated false
:redef false}}
:devtools {:before-load frontend.core/stop
:after-load frontend.core/start
:preloads [devtools.preload]}}
:stories-dev {:target :npm-module
:entries [logseq.shui.storybook]
:output-dir "packages/ui/.storybook/cljs"
:devtools {:enabled true}
:compiler-options {:optimizations :simple}}}}