@owlmeans/web-panel 0.1.18-rc.9 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +510 -143
- package/THIRD-PARTY-NOTICES.txt +24 -0
- package/agent-meta/manifest.json +163 -4
- package/agent-meta/skills/web-panel/SKILL.md +136 -83
- package/agent-meta/skills/web-panel/parts/consent.md +114 -0
- package/agent-meta/skills/web-panel/parts/editor.md +47 -0
- package/agent-meta/skills/web-panel/parts/forms.md +85 -0
- package/agent-meta/skills/web-panel/parts/navigation.md +203 -0
- package/agent-meta/skills/web-panel/parts/picker.md +164 -0
- package/agent-meta/skills/web-panel/parts/reload.md +46 -0
- package/agent-meta/skills/web-panel/parts/sign-in.md +65 -0
- package/agent-meta/skills/web-panel/parts/theme.md +74 -0
- package/build/@/components/ui/alert-dialog.d.ts +15 -0
- package/build/@/components/ui/alert-dialog.d.ts.map +1 -0
- package/build/@/components/ui/alert-dialog.js +39 -0
- package/build/@/components/ui/alert-dialog.js.map +1 -0
- package/build/@/components/ui/alert.js +1 -1
- package/build/@/components/ui/alert.js.map +1 -1
- package/build/@/components/ui/button.js +1 -1
- package/build/@/components/ui/button.js.map +1 -1
- package/build/@/components/ui/card.js +1 -1
- package/build/@/components/ui/card.js.map +1 -1
- package/build/@/components/ui/input.js +1 -1
- package/build/@/components/ui/input.js.map +1 -1
- package/build/@/components/ui/label.js +1 -1
- package/build/@/components/ui/label.js.map +1 -1
- package/build/@/components/ui/navigation-menu.js +1 -1
- package/build/@/components/ui/navigation-menu.js.map +1 -1
- package/build/@/components/ui/popover.d.ts +8 -0
- package/build/@/components/ui/popover.d.ts.map +1 -0
- package/build/@/components/ui/popover.js +17 -0
- package/build/@/components/ui/popover.js.map +1 -0
- package/build/@/components/ui/progress.js +1 -1
- package/build/@/components/ui/progress.js.map +1 -1
- package/build/@/components/ui/separator.js +1 -1
- package/build/@/components/ui/separator.js.map +1 -1
- package/build/@/components/ui/sheet.d.ts +15 -0
- package/build/@/components/ui/sheet.d.ts.map +1 -0
- package/build/@/components/ui/sheet.js +40 -0
- package/build/@/components/ui/sheet.js.map +1 -0
- package/build/auth/context.d.ts.map +1 -1
- package/build/auth/context.js +0 -1
- package/build/auth/context.js.map +1 -1
- package/build/auth/entrypoints.d.ts +10 -0
- package/build/auth/entrypoints.d.ts.map +1 -0
- package/build/auth/entrypoints.js +4 -0
- package/build/auth/entrypoints.js.map +1 -0
- package/build/auth/exports.d.ts +4 -4
- package/build/auth/exports.d.ts.map +1 -1
- package/build/auth/exports.js +3 -3
- package/build/auth/exports.js.map +1 -1
- package/build/auth/modules.d.ts +1 -1
- package/build/auth/modules.d.ts.map +1 -1
- package/build/auth/plugins/basic-ed25519.js +4 -4
- package/build/auth/plugins/basic-ed25519.js.map +1 -1
- package/build/auth/plugins/re-captcha.js +3 -3
- package/build/auth/plugins/re-captcha.js.map +1 -1
- package/build/auth/plugins/tunnel-consumer.js +1 -1
- package/build/auth/plugins/tunnel-consumer.js.map +1 -1
- package/build/components/block.js +2 -2
- package/build/components/block.js.map +1 -1
- package/build/components/consts.local.d.ts +14 -0
- package/build/components/consts.local.d.ts.map +1 -0
- package/build/components/consts.local.js +26 -0
- package/build/components/consts.local.js.map +1 -0
- package/build/components/footer/component.d.ts +19 -1
- package/build/components/footer/component.d.ts.map +1 -1
- package/build/components/footer/component.js +38 -11
- package/build/components/footer/component.js.map +1 -1
- package/build/components/footer/credit.d.ts +27 -0
- package/build/components/footer/credit.d.ts.map +1 -0
- package/build/components/footer/credit.js +42 -0
- package/build/components/footer/credit.js.map +1 -0
- package/build/components/footer/index.d.ts +1 -0
- package/build/components/footer/index.d.ts.map +1 -1
- package/build/components/footer/index.js +1 -0
- package/build/components/footer/index.js.map +1 -1
- package/build/components/footer/types.d.ts +22 -1
- package/build/components/footer/types.d.ts.map +1 -1
- package/build/components/form/button/component.d.ts.map +1 -1
- package/build/components/form/button/component.js +5 -3
- package/build/components/form/button/component.js.map +1 -1
- package/build/components/form/component.js +2 -2
- package/build/components/form/component.js.map +1 -1
- package/build/components/form/text/component.js +2 -2
- package/build/components/form/text/component.js.map +1 -1
- package/build/components/helper.d.ts.map +1 -1
- package/build/components/helper.js +1 -12
- package/build/components/helper.js.map +1 -1
- package/build/components/index.d.ts +4 -0
- package/build/components/index.d.ts.map +1 -1
- package/build/components/index.js +4 -0
- package/build/components/index.js.map +1 -1
- package/build/components/link.js +3 -3
- package/build/components/link.js.map +1 -1
- package/build/components/login/append.d.ts +15 -0
- package/build/components/login/append.d.ts.map +1 -0
- package/build/components/login/append.js +26 -0
- package/build/components/login/append.js.map +1 -0
- package/build/components/login/consts.d.ts +3 -0
- package/build/components/login/consts.d.ts.map +1 -0
- package/build/components/login/consts.js +3 -0
- package/build/components/login/consts.js.map +1 -0
- package/build/components/login/consts.local.d.ts +4 -0
- package/build/components/login/consts.local.d.ts.map +1 -0
- package/build/components/login/consts.local.js +8 -0
- package/build/components/login/consts.local.js.map +1 -0
- package/build/components/login/credit.d.ts +12 -0
- package/build/components/login/credit.d.ts.map +1 -0
- package/build/components/login/credit.js +18 -0
- package/build/components/login/credit.js.map +1 -0
- package/build/components/login/i18n/be.json +10 -0
- package/build/components/login/i18n/de.json +10 -0
- package/build/components/login/i18n/en.json +10 -0
- package/build/components/login/i18n/es.json +10 -0
- package/build/components/login/i18n/fr.json +10 -0
- package/build/components/login/i18n/pl.json +10 -0
- package/build/components/login/i18n/ru.json +10 -0
- package/build/components/login/i18n/uk.json +10 -0
- package/build/components/login/i18n.d.ts +2 -0
- package/build/components/login/i18n.d.ts.map +1 -0
- package/build/components/login/i18n.js +28 -0
- package/build/components/login/i18n.js.map +1 -0
- package/build/components/login/icons.d.ts +14 -0
- package/build/components/login/icons.d.ts.map +1 -0
- package/build/components/login/icons.js +29 -0
- package/build/components/login/icons.js.map +1 -0
- package/build/components/login/index.d.ts +11 -0
- package/build/components/login/index.d.ts.map +1 -0
- package/build/components/login/index.js +10 -0
- package/build/components/login/index.js.map +1 -0
- package/build/components/login/notify.d.ts +18 -0
- package/build/components/login/notify.d.ts.map +1 -0
- package/build/components/login/notify.js +41 -0
- package/build/components/login/notify.js.map +1 -0
- package/build/components/login/provider.d.ts +20 -0
- package/build/components/login/provider.d.ts.map +1 -0
- package/build/components/login/provider.js +31 -0
- package/build/components/login/provider.js.map +1 -0
- package/build/components/login/screen.d.ts +24 -0
- package/build/components/login/screen.d.ts.map +1 -0
- package/build/components/login/screen.js +92 -0
- package/build/components/login/screen.js.map +1 -0
- package/build/components/login/terms.d.ts +19 -0
- package/build/components/login/terms.d.ts.map +1 -0
- package/build/components/login/terms.js +32 -0
- package/build/components/login/terms.js.map +1 -0
- package/build/components/login/types.d.ts +28 -0
- package/build/components/login/types.d.ts.map +1 -0
- package/build/components/login/types.js +2 -0
- package/build/components/login/types.js.map +1 -0
- package/build/components/nav/consts.local.d.ts +41 -0
- package/build/components/nav/consts.local.d.ts.map +1 -0
- package/build/components/nav/consts.local.js +60 -0
- package/build/components/nav/consts.local.js.map +1 -0
- package/build/components/nav/index.d.ts +1 -0
- package/build/components/nav/index.d.ts.map +1 -1
- package/build/components/nav/index.js +1 -0
- package/build/components/nav/index.js.map +1 -1
- package/build/components/nav/layout.d.ts +9 -2
- package/build/components/nav/layout.d.ts.map +1 -1
- package/build/components/nav/layout.js +48 -7
- package/build/components/nav/layout.js.map +1 -1
- package/build/components/nav/mobile.d.ts +21 -0
- package/build/components/nav/mobile.d.ts.map +1 -0
- package/build/components/nav/mobile.js +55 -0
- package/build/components/nav/mobile.js.map +1 -0
- package/build/components/nav/side.d.ts.map +1 -1
- package/build/components/nav/side.js +10 -10
- package/build/components/nav/side.js.map +1 -1
- package/build/components/nav/top.d.ts.map +1 -1
- package/build/components/nav/top.js +12 -8
- package/build/components/nav/top.js.map +1 -1
- package/build/components/nav/types.d.ts +64 -1
- package/build/components/nav/types.d.ts.map +1 -1
- package/build/components/nav/viewport.d.ts +3 -0
- package/build/components/nav/viewport.d.ts.map +1 -0
- package/build/components/nav/viewport.js +14 -0
- package/build/components/nav/viewport.js.map +1 -0
- package/build/components/panel-app/component.d.ts.map +1 -1
- package/build/components/panel-app/component.js +4 -3
- package/build/components/panel-app/component.js.map +1 -1
- package/build/components/picker/color-picker.d.ts +9 -0
- package/build/components/picker/color-picker.d.ts.map +1 -0
- package/build/components/picker/color-picker.js +9 -0
- package/build/components/picker/color-picker.js.map +1 -0
- package/build/components/picker/consts.local.d.ts +76 -0
- package/build/components/picker/consts.local.d.ts.map +1 -0
- package/build/components/picker/consts.local.js +214 -0
- package/build/components/picker/consts.local.js.map +1 -0
- package/build/components/picker/dot.d.ts +8 -0
- package/build/components/picker/dot.d.ts.map +1 -0
- package/build/components/picker/dot.js +10 -0
- package/build/components/picker/dot.js.map +1 -0
- package/build/components/picker/grid.d.ts +17 -0
- package/build/components/picker/grid.d.ts.map +1 -0
- package/build/components/picker/grid.js +73 -0
- package/build/components/picker/grid.js.map +1 -0
- package/build/components/picker/i18n/be.json +60 -0
- package/build/components/picker/i18n/de.json +60 -0
- package/build/components/picker/i18n/en.json +60 -0
- package/build/components/picker/i18n/es.json +60 -0
- package/build/components/picker/i18n/fr.json +60 -0
- package/build/components/picker/i18n/pl.json +60 -0
- package/build/components/picker/i18n/ru.json +60 -0
- package/build/components/picker/i18n/uk.json +60 -0
- package/build/components/picker/i18n.d.ts +2 -0
- package/build/components/picker/i18n.d.ts.map +1 -0
- package/build/components/picker/i18n.js +18 -0
- package/build/components/picker/i18n.js.map +1 -0
- package/build/components/picker/icon-color-picker.d.ts +14 -0
- package/build/components/picker/icon-color-picker.d.ts.map +1 -0
- package/build/components/picker/icon-color-picker.js +15 -0
- package/build/components/picker/icon-color-picker.js.map +1 -0
- package/build/components/picker/icon-picker.d.ts +8 -0
- package/build/components/picker/icon-picker.d.ts.map +1 -0
- package/build/components/picker/icon-picker.js +8 -0
- package/build/components/picker/icon-picker.js.map +1 -0
- package/build/components/picker/index.d.ts +11 -0
- package/build/components/picker/index.d.ts.map +1 -0
- package/build/components/picker/index.js +10 -0
- package/build/components/picker/index.js.map +1 -0
- package/build/components/picker/panel.d.ts +9 -0
- package/build/components/picker/panel.d.ts.map +1 -0
- package/build/components/picker/panel.js +23 -0
- package/build/components/picker/panel.js.map +1 -0
- package/build/components/picker/root.d.ts +13 -0
- package/build/components/picker/root.d.ts.map +1 -0
- package/build/components/picker/root.js +55 -0
- package/build/components/picker/root.js.map +1 -0
- package/build/components/picker/roving.d.ts +8 -0
- package/build/components/picker/roving.d.ts.map +1 -0
- package/build/components/picker/roving.js +62 -0
- package/build/components/picker/roving.js.map +1 -0
- package/build/components/picker/surface.d.ts +18 -0
- package/build/components/picker/surface.d.ts.map +1 -0
- package/build/components/picker/surface.js +36 -0
- package/build/components/picker/surface.js.map +1 -0
- package/build/components/picker/swatches/custom.d.ts +10 -0
- package/build/components/picker/swatches/custom.d.ts.map +1 -0
- package/build/components/picker/swatches/custom.js +65 -0
- package/build/components/picker/swatches/custom.js.map +1 -0
- package/build/components/picker/swatches.d.ts +16 -0
- package/build/components/picker/swatches.d.ts.map +1 -0
- package/build/components/picker/swatches.js +35 -0
- package/build/components/picker/swatches.js.map +1 -0
- package/build/components/picker/text.d.ts +5 -0
- package/build/components/picker/text.d.ts.map +1 -0
- package/build/components/picker/text.js +29 -0
- package/build/components/picker/text.js.map +1 -0
- package/build/components/picker/tile.d.ts +11 -0
- package/build/components/picker/tile.d.ts.map +1 -0
- package/build/components/picker/tile.js +19 -0
- package/build/components/picker/tile.js.map +1 -0
- package/build/components/picker/translate.d.ts +9 -0
- package/build/components/picker/translate.d.ts.map +1 -0
- package/build/components/picker/translate.js +13 -0
- package/build/components/picker/translate.js.map +1 -0
- package/build/components/picker/trigger.d.ts +12 -0
- package/build/components/picker/trigger.d.ts.map +1 -0
- package/build/components/picker/trigger.js +29 -0
- package/build/components/picker/trigger.js.map +1 -0
- package/build/components/picker/types.d.ts +114 -0
- package/build/components/picker/types.d.ts.map +1 -0
- package/build/components/picker/types.js +2 -0
- package/build/components/picker/types.js.map +1 -0
- package/build/components/picker/types.local.d.ts +143 -0
- package/build/components/picker/types.local.d.ts.map +1 -0
- package/build/components/picker/types.local.js +2 -0
- package/build/components/picker/types.local.js.map +1 -0
- package/build/components/scheme/consts.local.d.ts +8 -0
- package/build/components/scheme/consts.local.d.ts.map +1 -0
- package/build/components/scheme/consts.local.js +13 -0
- package/build/components/scheme/consts.local.js.map +1 -0
- package/build/components/scheme/hook.d.ts +16 -0
- package/build/components/scheme/hook.d.ts.map +1 -0
- package/build/components/scheme/hook.js +52 -0
- package/build/components/scheme/hook.js.map +1 -0
- package/build/components/scheme/index.d.ts +4 -0
- package/build/components/scheme/index.d.ts.map +1 -0
- package/build/components/scheme/index.js +3 -0
- package/build/components/scheme/index.js.map +1 -0
- package/build/components/scheme/toggle.d.ts +14 -0
- package/build/components/scheme/toggle.d.ts.map +1 -0
- package/build/components/scheme/toggle.js +24 -0
- package/build/components/scheme/toggle.js.map +1 -0
- package/build/components/scheme/types.d.ts +21 -0
- package/build/components/scheme/types.d.ts.map +1 -0
- package/build/components/scheme/types.js +2 -0
- package/build/components/scheme/types.js.map +1 -0
- package/build/components/socket/i18n/be.json +9 -0
- package/build/components/socket/i18n/de.json +9 -0
- package/build/components/socket/i18n/en.json +9 -0
- package/build/components/socket/i18n/es.json +9 -0
- package/build/components/socket/i18n/fr.json +9 -0
- package/build/components/socket/i18n/pl.json +9 -0
- package/build/components/socket/i18n/ru.json +9 -0
- package/build/components/socket/i18n/uk.json +9 -0
- package/build/components/socket/i18n.d.ts +2 -0
- package/build/components/socket/i18n.d.ts.map +1 -0
- package/build/components/socket/i18n.js +18 -0
- package/build/components/socket/i18n.js.map +1 -0
- package/build/components/socket/index.d.ts +3 -0
- package/build/components/socket/index.d.ts.map +1 -0
- package/build/components/socket/index.js +3 -0
- package/build/components/socket/index.js.map +1 -0
- package/build/components/socket/reload-dialog.d.ts +22 -0
- package/build/components/socket/reload-dialog.d.ts.map +1 -0
- package/build/components/socket/reload-dialog.js +34 -0
- package/build/components/socket/reload-dialog.js.map +1 -0
- package/build/components/status.js +1 -1
- package/build/components/status.js.map +1 -1
- package/build/components/text.d.ts.map +1 -1
- package/build/components/text.js +2 -13
- package/build/components/text.js.map +1 -1
- package/build/components/toaster.d.ts +16 -0
- package/build/components/toaster.d.ts.map +1 -0
- package/build/components/toaster.js +52 -0
- package/build/components/toaster.js.map +1 -0
- package/build/components/uploader/consts.local.d.ts +4 -0
- package/build/components/uploader/consts.local.d.ts.map +1 -0
- package/build/components/uploader/consts.local.js +6 -0
- package/build/components/uploader/consts.local.js.map +1 -0
- package/build/components/uploader/image.d.ts.map +1 -1
- package/build/components/uploader/image.js +2 -6
- package/build/components/uploader/image.js.map +1 -1
- package/build/consent/component.d.ts +27 -0
- package/build/consent/component.d.ts.map +1 -0
- package/build/consent/component.js +60 -0
- package/build/consent/component.js.map +1 -0
- package/build/consent/consts.d.ts +2 -0
- package/build/consent/consts.d.ts.map +1 -0
- package/build/consent/consts.js +2 -0
- package/build/consent/consts.js.map +1 -0
- package/build/consent/consts.local.d.ts +9 -0
- package/build/consent/consts.local.d.ts.map +1 -0
- package/build/consent/consts.local.js +9 -0
- package/build/consent/consts.local.js.map +1 -0
- package/build/consent/geo.d.ts +17 -0
- package/build/consent/geo.d.ts.map +1 -0
- package/build/consent/geo.js +19 -0
- package/build/consent/geo.js.map +1 -0
- package/build/consent/index.d.ts +11 -0
- package/build/consent/index.d.ts.map +1 -0
- package/build/consent/index.js +9 -0
- package/build/consent/index.js.map +1 -0
- package/build/consent/language.d.ts +12 -0
- package/build/consent/language.d.ts.map +1 -0
- package/build/consent/language.js +11 -0
- package/build/consent/language.js.map +1 -0
- package/build/consent/menu-widget.d.ts +13 -0
- package/build/consent/menu-widget.d.ts.map +1 -0
- package/build/consent/menu-widget.js +20 -0
- package/build/consent/menu-widget.js.map +1 -0
- package/build/consent/presence.d.ts +30 -0
- package/build/consent/presence.d.ts.map +1 -0
- package/build/consent/presence.js +40 -0
- package/build/consent/presence.js.map +1 -0
- package/build/consent/service.d.ts +18 -0
- package/build/consent/service.d.ts.map +1 -0
- package/build/consent/service.js +53 -0
- package/build/consent/service.js.map +1 -0
- package/build/consent/translate.d.ts +14 -0
- package/build/consent/translate.d.ts.map +1 -0
- package/build/consent/translate.js +28 -0
- package/build/consent/translate.js.map +1 -0
- package/build/consent/types.d.ts +39 -0
- package/build/consent/types.d.ts.map +1 -0
- package/build/consent/types.js +2 -0
- package/build/consent/types.js.map +1 -0
- package/build/consent/types.local.d.ts +6 -0
- package/build/consent/types.local.d.ts.map +1 -0
- package/build/consent/types.local.js +2 -0
- package/build/consent/types.local.js.map +1 -0
- package/build/context.d.ts.map +1 -1
- package/build/context.js +10 -0
- package/build/context.js.map +1 -1
- package/build/editor/component.d.ts +4 -0
- package/build/editor/component.d.ts.map +1 -0
- package/build/editor/component.js +103 -0
- package/build/editor/component.js.map +1 -0
- package/build/editor/consts.local.d.ts +6 -0
- package/build/editor/consts.local.d.ts.map +1 -0
- package/build/editor/consts.local.js +58 -0
- package/build/editor/consts.local.js.map +1 -0
- package/build/editor/index.d.ts +3 -0
- package/build/editor/index.d.ts.map +1 -0
- package/build/editor/index.js +2 -0
- package/build/editor/index.js.map +1 -0
- package/build/editor/types.d.ts +24 -0
- package/build/editor/types.d.ts.map +1 -0
- package/build/editor/types.js +2 -0
- package/build/editor/types.js.map +1 -0
- package/build/entrypoints.d.ts +8 -0
- package/build/entrypoints.d.ts.map +1 -0
- package/build/entrypoints.js +4 -0
- package/build/entrypoints.js.map +1 -0
- package/build/exports.d.ts +6 -5
- package/build/exports.d.ts.map +1 -1
- package/build/exports.js +5 -5
- package/build/exports.js.map +1 -1
- package/build/index.d.ts +1 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -1
- package/build/index.js.map +1 -1
- package/build/main.d.ts +1 -4
- package/build/main.d.ts.map +1 -1
- package/build/main.js.map +1 -1
- package/build/modules.d.ts +1 -1
- package/build/modules.d.ts.map +1 -1
- package/build/permission/i18n/be.json +13 -0
- package/build/permission/i18n/de.json +13 -0
- package/build/permission/i18n/en.json +13 -0
- package/build/permission/i18n/es.json +13 -0
- package/build/permission/i18n/fr.json +13 -0
- package/build/permission/i18n/pl.json +13 -0
- package/build/permission/i18n/ru.json +13 -0
- package/build/permission/i18n/uk.json +13 -0
- package/build/permission/i18n.d.ts +2 -0
- package/build/permission/i18n.d.ts.map +1 -0
- package/build/permission/i18n.js +13 -0
- package/build/permission/i18n.js.map +1 -0
- package/build/permission/index.d.ts +6 -0
- package/build/permission/index.d.ts.map +1 -0
- package/build/permission/index.js +27 -0
- package/build/permission/index.js.map +1 -0
- package/build/permission/toast.d.ts +5 -0
- package/build/permission/toast.d.ts.map +1 -0
- package/build/permission/toast.js +8 -0
- package/build/permission/toast.js.map +1 -0
- package/build/permission/types.d.ts +6 -0
- package/build/permission/types.d.ts.map +1 -0
- package/build/permission/types.js +2 -0
- package/build/permission/types.js.map +1 -0
- package/build/picker/icons/consts.d.ts +9 -0
- package/build/picker/icons/consts.d.ts.map +1 -0
- package/build/picker/icons/consts.js +264 -0
- package/build/picker/icons/consts.js.map +1 -0
- package/build/picker/icons/types.d.ts +18 -0
- package/build/picker/icons/types.d.ts.map +1 -0
- package/build/picker/icons/types.js +2 -0
- package/build/picker/icons/types.js.map +1 -0
- package/build/picker/icons.d.ts +4 -0
- package/build/picker/icons.d.ts.map +1 -0
- package/build/picker/icons.js +54 -0
- package/build/picker/icons.js.map +1 -0
- package/build/picker/index.d.ts +11 -0
- package/build/picker/index.d.ts.map +1 -0
- package/build/picker/index.js +10 -0
- package/build/picker/index.js.map +1 -0
- package/build/picker/utils/color/types.d.ts +35 -0
- package/build/picker/utils/color/types.d.ts.map +1 -0
- package/build/picker/utils/color/types.js +2 -0
- package/build/picker/utils/color/types.js.map +1 -0
- package/build/picker/utils/color.d.ts +4 -0
- package/build/picker/utils/color.d.ts.map +1 -0
- package/build/picker/utils/color.js +96 -0
- package/build/picker/utils/color.js.map +1 -0
- package/build/picker/vocabulary/consts.d.ts +26 -0
- package/build/picker/vocabulary/consts.d.ts.map +1 -0
- package/build/picker/vocabulary/consts.js +336 -0
- package/build/picker/vocabulary/consts.js.map +1 -0
- package/build/picker/vocabulary/types.d.ts +67 -0
- package/build/picker/vocabulary/types.d.ts.map +1 -0
- package/build/picker/vocabulary/types.js +2 -0
- package/build/picker/vocabulary/types.js.map +1 -0
- package/build/picker/vocabulary.d.ts +11 -0
- package/build/picker/vocabulary.d.ts.map +1 -0
- package/build/picker/vocabulary.js +83 -0
- package/build/picker/vocabulary.js.map +1 -0
- package/build/scheme/consts.d.ts +8 -0
- package/build/scheme/consts.d.ts.map +1 -0
- package/build/scheme/consts.js +8 -0
- package/build/scheme/consts.js.map +1 -0
- package/build/scheme/index.d.ts +4 -0
- package/build/scheme/index.d.ts.map +1 -0
- package/build/scheme/index.js +3 -0
- package/build/scheme/index.js.map +1 -0
- package/build/scheme/scheme.d.ts +16 -0
- package/build/scheme/scheme.d.ts.map +1 -0
- package/build/scheme/scheme.js +58 -0
- package/build/scheme/scheme.js.map +1 -0
- package/build/scheme/types.d.ts +30 -0
- package/build/scheme/types.d.ts.map +1 -0
- package/build/scheme/types.js +2 -0
- package/build/scheme/types.js.map +1 -0
- package/build/types.d.ts +18 -2
- package/build/types.d.ts.map +1 -1
- package/package.json +107 -52
- package/src/@/components/ui/alert-dialog.tsx +156 -0
- package/src/@/components/ui/alert.tsx +1 -1
- package/src/@/components/ui/button.tsx +1 -1
- package/src/@/components/ui/card.tsx +1 -1
- package/src/@/components/ui/input.tsx +1 -1
- package/src/@/components/ui/label.tsx +1 -1
- package/src/@/components/ui/navigation-menu.tsx +1 -1
- package/src/@/components/ui/popover.tsx +47 -0
- package/src/@/components/ui/progress.tsx +1 -1
- package/src/@/components/ui/separator.tsx +1 -1
- package/src/@/components/ui/sheet.tsx +142 -0
- package/src/auth/context.ts +0 -2
- package/src/auth/entrypoints.ts +5 -0
- package/src/auth/exports.ts +4 -4
- package/src/auth/plugins/basic-ed25519.tsx +4 -4
- package/src/auth/plugins/re-captcha.tsx +3 -3
- package/src/auth/plugins/tunnel-consumer.tsx +1 -1
- package/src/components/block.tsx +2 -2
- package/src/components/consts.local.ts +29 -0
- package/src/components/footer/component.tsx +58 -16
- package/src/components/footer/credit.tsx +61 -0
- package/src/components/footer/index.ts +1 -0
- package/src/components/footer/types.ts +22 -1
- package/src/components/form/button/component.tsx +7 -4
- package/src/components/form/component.tsx +2 -2
- package/src/components/form/text/component.tsx +2 -2
- package/src/components/helper.ts +1 -13
- package/src/components/index.ts +4 -0
- package/src/components/link.tsx +3 -3
- package/src/components/login/append.ts +34 -0
- package/src/components/login/consts.local.ts +10 -0
- package/src/components/login/consts.ts +2 -0
- package/src/components/login/credit.tsx +33 -0
- package/src/components/login/i18n/be.json +10 -0
- package/src/components/login/i18n/de.json +10 -0
- package/src/components/login/i18n/en.json +10 -0
- package/src/components/login/i18n/es.json +10 -0
- package/src/components/login/i18n/fr.json +10 -0
- package/src/components/login/i18n/pl.json +10 -0
- package/src/components/login/i18n/ru.json +10 -0
- package/src/components/login/i18n/uk.json +10 -0
- package/src/components/login/i18n.ts +29 -0
- package/src/components/login/icons.tsx +39 -0
- package/src/components/login/index.ts +11 -0
- package/src/components/login/notify.ts +48 -0
- package/src/components/login/provider.tsx +57 -0
- package/src/components/login/screen.tsx +178 -0
- package/src/components/login/terms.tsx +75 -0
- package/src/components/login/types.ts +30 -0
- package/src/components/nav/consts.local.ts +64 -0
- package/src/components/nav/index.ts +1 -0
- package/src/components/nav/layout.tsx +184 -26
- package/src/components/nav/mobile.tsx +165 -0
- package/src/components/nav/side.tsx +43 -27
- package/src/components/nav/top.tsx +44 -22
- package/src/components/nav/types.ts +65 -2
- package/src/components/nav/viewport.ts +16 -0
- package/src/components/panel-app/component.tsx +9 -1
- package/src/components/picker/color-picker.tsx +15 -0
- package/src/components/picker/consts.local.ts +267 -0
- package/src/components/picker/dot.tsx +21 -0
- package/src/components/picker/grid.tsx +138 -0
- package/src/components/picker/i18n/be.json +60 -0
- package/src/components/picker/i18n/de.json +60 -0
- package/src/components/picker/i18n/en.json +60 -0
- package/src/components/picker/i18n/es.json +60 -0
- package/src/components/picker/i18n/fr.json +60 -0
- package/src/components/picker/i18n/pl.json +60 -0
- package/src/components/picker/i18n/ru.json +60 -0
- package/src/components/picker/i18n/uk.json +60 -0
- package/src/components/picker/i18n.ts +19 -0
- package/src/components/picker/icon-color-picker.tsx +25 -0
- package/src/components/picker/icon-picker.tsx +13 -0
- package/src/components/picker/index.ts +11 -0
- package/src/components/picker/panel.tsx +61 -0
- package/src/components/picker/root.tsx +81 -0
- package/src/components/picker/roving.ts +70 -0
- package/src/components/picker/surface.tsx +62 -0
- package/src/components/picker/swatches/custom.tsx +110 -0
- package/src/components/picker/swatches.tsx +67 -0
- package/src/components/picker/text.ts +46 -0
- package/src/components/picker/tile.tsx +35 -0
- package/src/components/picker/translate.ts +15 -0
- package/src/components/picker/trigger.tsx +54 -0
- package/src/components/picker/types.local.ts +154 -0
- package/src/components/picker/types.ts +125 -0
- package/src/components/scheme/consts.local.ts +13 -0
- package/src/components/scheme/hook.ts +62 -0
- package/src/components/scheme/index.ts +4 -0
- package/src/components/scheme/toggle.tsx +32 -0
- package/src/components/scheme/types.ts +23 -0
- package/src/components/socket/i18n/be.json +9 -0
- package/src/components/socket/i18n/de.json +9 -0
- package/src/components/socket/i18n/en.json +9 -0
- package/src/components/socket/i18n/es.json +9 -0
- package/src/components/socket/i18n/fr.json +9 -0
- package/src/components/socket/i18n/pl.json +9 -0
- package/src/components/socket/i18n/ru.json +9 -0
- package/src/components/socket/i18n/uk.json +9 -0
- package/src/components/socket/i18n.ts +19 -0
- package/src/components/socket/index.ts +2 -0
- package/src/components/socket/reload-dialog.tsx +61 -0
- package/src/components/status.tsx +1 -1
- package/src/components/text.tsx +2 -14
- package/src/components/toaster.tsx +65 -0
- package/src/components/uploader/consts.local.ts +7 -0
- package/src/components/uploader/image.tsx +2 -6
- package/src/consent/component.tsx +84 -0
- package/src/consent/consts.local.ts +10 -0
- package/src/consent/consts.ts +1 -0
- package/src/consent/geo.ts +26 -0
- package/src/consent/index.ts +24 -0
- package/src/consent/language.ts +12 -0
- package/src/consent/menu-widget.tsx +22 -0
- package/src/consent/presence.ts +45 -0
- package/src/consent/service.ts +75 -0
- package/src/consent/translate.ts +31 -0
- package/src/consent/types.local.ts +6 -0
- package/src/consent/types.ts +43 -0
- package/src/context.ts +12 -0
- package/src/editor/component.tsx +172 -0
- package/src/editor/consts.local.ts +62 -0
- package/src/editor/index.ts +2 -0
- package/src/editor/types.ts +24 -0
- package/src/entrypoints.ts +5 -0
- package/src/exports.ts +6 -5
- package/src/index.ts +1 -1
- package/src/main.tsx +2 -6
- package/src/permission/i18n/be.json +13 -0
- package/src/permission/i18n/de.json +13 -0
- package/src/permission/i18n/en.json +13 -0
- package/src/permission/i18n/es.json +13 -0
- package/src/permission/i18n/fr.json +13 -0
- package/src/permission/i18n/pl.json +13 -0
- package/src/permission/i18n/ru.json +13 -0
- package/src/permission/i18n/uk.json +13 -0
- package/src/permission/i18n.ts +13 -0
- package/src/permission/index.ts +27 -0
- package/src/permission/toast.tsx +20 -0
- package/src/permission/types.ts +5 -0
- package/src/picker/icons/consts.ts +309 -0
- package/src/picker/icons/types.ts +18 -0
- package/src/picker/icons.ts +70 -0
- package/src/picker/index.ts +11 -0
- package/src/picker/utils/color/types.ts +37 -0
- package/src/picker/utils/color.ts +119 -0
- package/src/picker/vocabulary/consts.ts +347 -0
- package/src/picker/vocabulary/types.ts +72 -0
- package/src/picker/vocabulary.ts +111 -0
- package/src/scheme/consts.ts +8 -0
- package/src/scheme/index.ts +3 -0
- package/src/scheme/scheme.ts +66 -0
- package/src/scheme/types.ts +30 -0
- package/src/types.ts +19 -2
- package/tests/consent-language.spec.ts +31 -0
- package/tests/consent.spec.ts +112 -0
- package/tests/context.ts +4 -0
- package/tests/editor.spec.ts +58 -0
- package/tests/harness/editor.tsx +32 -0
- package/tests/harness/index.html +1 -0
- package/tests/harness/lazy-screen.tsx +9 -0
- package/tests/harness/mount.tsx +370 -29
- package/tests/harness/picker.tsx +110 -0
- package/tests/lazy.spec.ts +104 -0
- package/tests/login-provider.spec.ts +114 -0
- package/tests/login.spec.ts +447 -0
- package/tests/nav.spec.ts +449 -3
- package/tests/package-boundary.spec.ts +19 -0
- package/tests/picker-shots.spec.ts +174 -0
- package/tests/picker-vocabulary.spec.ts +217 -0
- package/tests/picker.spec.ts +333 -0
- package/tests/scheme.spec.ts +149 -0
- package/tests/smoke.spec.ts +2 -2
- package/tests/socket-dialog.spec.ts +154 -0
- package/tests/toaster.spec.ts +59 -0
- package/zz-tw.d.mts +2 -0
- package/zz-tw.d.mts.map +1 -0
- package/build/.gitkeep +0 -0
- package/src/auth/modules.ts +0 -5
- package/src/modules.ts +0 -5
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { cn } from '
|
|
4
|
-
import { Button } from '
|
|
2
|
+
import { usePanelNav, navLabelHelper } from '@owlmeans/client-panel';
|
|
3
|
+
import { cn } from '../../@/lib/utils.js';
|
|
4
|
+
import { Button } from '../../@/components/ui/button.js';
|
|
5
|
+
import { useWideNav } from './viewport.js';
|
|
5
6
|
/**
|
|
6
7
|
* The second navigation level — the screens of the active section.
|
|
7
8
|
*
|
|
@@ -9,17 +10,16 @@ import { Button } from '@/components/ui/button';
|
|
|
9
10
|
* are already on is noise. The component still exists in the tree, so a section that grows
|
|
10
11
|
* a second screen gains its side menu with no layout change.
|
|
11
12
|
*/
|
|
12
|
-
export const SideNav = ({ config, translate = defaultNavTranslate, variant = 'side', ariaLabel, className, style }) => {
|
|
13
|
+
export const SideNav = ({ config, translate = navLabelHelper.defaultNavTranslate, variant = 'side', ariaLabel, className, style }) => {
|
|
13
14
|
const model = usePanelNav(config);
|
|
15
|
+
const wide = useWideNav();
|
|
14
16
|
if (!model.showSide || model.active == null) {
|
|
15
17
|
return null;
|
|
16
18
|
}
|
|
17
|
-
const items = model.active.items.map(item => {
|
|
18
|
-
const label = resolveNavLabel(translate, item.label, `modules.${item.alias}`, item.alias);
|
|
19
|
-
return _jsxs(Button, { variant: "ghost", size: variant === 'bar' ? 'sm' : 'default', onClick: model.goItem(item), "aria-current": model.isItemActive(item) ? 'page' : undefined, className: cn(variant === 'bar' ? 'shrink-0' : 'w-full justify-start', model.isItemActive(item) && 'bg-accent text-accent-foreground'), children: [item.Icon != null ? _jsx(item.Icon, { className: "size-4" }) : null, label] }, item.alias);
|
|
19
|
+
const items = model.active.items.map((item) => {
|
|
20
|
+
const label = navLabelHelper.resolveNavLabel(translate, item.label, `modules.${item.alias}`, item.alias);
|
|
21
|
+
return (_jsxs(Button, { "data-testid": (variant === 'side' ? wide : !wide) ? item.testId : undefined, variant: "ghost", size: variant === 'bar' ? 'sm' : 'default', onClick: model.goItem(item), "aria-current": model.isItemActive(item) ? 'page' : undefined, className: cn(variant === 'bar' ? 'shrink-0' : 'w-full justify-start', model.isItemActive(item) && 'bg-accent text-accent-foreground'), children: [item.Icon != null ? _jsx(item.Icon, { className: "size-4" }) : null, label] }, item.alias));
|
|
20
22
|
});
|
|
21
|
-
return variant === 'bar'
|
|
22
|
-
? _jsx("nav", { "aria-label": ariaLabel, className: cn('flex gap-1 overflow-x-auto border-b px-2 py-1', className), style: style, children: items })
|
|
23
|
-
: _jsx("aside", { className: cn('w-56 shrink-0 border-r', className), style: style, children: _jsx("nav", { "aria-label": ariaLabel, className: "flex flex-col gap-1 p-3", children: items }) });
|
|
23
|
+
return variant === 'bar' ? (_jsx("nav", { "aria-label": ariaLabel, className: cn('flex gap-1 overflow-x-auto border-b px-2 py-1', className), style: style, children: items })) : (_jsx("aside", { className: cn('w-56 shrink-0 border-r', className), style: style, children: _jsx("nav", { "aria-label": ariaLabel, className: "flex flex-col gap-1 p-3", children: items }) }));
|
|
24
24
|
};
|
|
25
25
|
//# sourceMappingURL=side.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"side.js","sourceRoot":"","sources":["../../../src/components/nav/side.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"side.js","sourceRoot":"","sources":["../../../src/components/nav/side.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAG1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,OAAO,GAAqB,CAAC,EACxC,MAAM,EACN,SAAS,GAAG,cAAc,CAAC,mBAAmB,EAC9C,OAAO,GAAG,MAAM,EAChB,SAAS,EACT,SAAS,EACT,KAAK,EACN,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAA;IAEzB,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5C,MAAM,KAAK,GAAG,cAAc,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAExG,OAAO,CACL,MAAC,MAAM,mBAEQ,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC1E,OAAO,EAAC,OAAO,EACf,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAC1C,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,kBACb,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC3D,SAAS,EAAE,EAAE,CACX,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB,EACvD,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,kCAAkC,CAC/D,aAEA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAC,IAAI,CAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAC3D,KAAK,KAZD,IAAI,CAAC,KAAK,CAaR,CACV,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CACzB,4BACc,SAAS,EACrB,SAAS,EAAE,EAAE,CAAC,+CAA+C,EAAE,SAAS,CAAC,EACzE,KAAK,EAAE,KAAK,YAEX,KAAK,GACF,CACP,CAAC,CAAC,CAAC,CACF,gBAAO,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,YACrE,4BAAiB,SAAS,EAAE,SAAS,EAAC,yBAAyB,YAC5D,KAAK,GACF,GACA,CACT,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"top.d.ts","sourceRoot":"","sources":["../../../src/components/nav/top.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"top.d.ts","sourceRoot":"","sources":["../../../src/components/nav/top.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAU/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAG7C;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CA2ClC,CAAA"}
|
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { cn } from '
|
|
4
|
-
import { NavigationMenu, NavigationMenuItem, NavigationMenuLink, NavigationMenuList
|
|
2
|
+
import { usePanelNav, navLabelHelper } from '@owlmeans/client-panel';
|
|
3
|
+
import { cn } from '../../@/lib/utils.js';
|
|
4
|
+
import { NavigationMenu, NavigationMenuItem, NavigationMenuLink, NavigationMenuList } from '../../@/components/ui/navigation-menu.js';
|
|
5
|
+
import { SECTION_LINK } from './consts.local.js';
|
|
5
6
|
/**
|
|
6
7
|
* The first navigation level — one entry per section.
|
|
7
8
|
*
|
|
8
9
|
* Pressing a section goes to its first screen; the side menu then offers the rest. The
|
|
9
10
|
* viewport is off because no section opens a panel: these are links, not dropdowns.
|
|
10
11
|
*/
|
|
11
|
-
export const TopNav = ({ config, translate = defaultNavTranslate, ariaLabel, className, style }) => {
|
|
12
|
+
export const TopNav = ({ config, translate = navLabelHelper.defaultNavTranslate, ariaLabel, testId, className, style }) => {
|
|
12
13
|
const model = usePanelNav(config);
|
|
13
14
|
if (model.sections.length < 1) {
|
|
14
15
|
return null;
|
|
15
16
|
}
|
|
16
|
-
return _jsx(NavigationMenu, { viewport: false, "aria-label": ariaLabel, className: className, style: style, children: _jsx(NavigationMenuList, { className: "flex-wrap", children: model.sections.map(section => {
|
|
17
|
+
return (_jsx(NavigationMenu, { viewport: false, "aria-label": ariaLabel, "data-testid": testId, className: className, style: style, children: _jsx(NavigationMenuList, { className: "flex-wrap gap-4", children: model.sections.map((section) => {
|
|
17
18
|
const go = model.goSection(section);
|
|
18
|
-
return _jsx(NavigationMenuItem, { children: _jsx(NavigationMenuLink, { active: model.isSectionActive(section),
|
|
19
|
+
return (_jsx(NavigationMenuItem, { children: _jsx(NavigationMenuLink, { active: model.isSectionActive(section), "aria-current": model.isSectionActive(section) ? 'page' : undefined, "data-testid": section.testId,
|
|
19
20
|
// A real `href` keeps the entry focusable and openable in a new tab; the click is
|
|
20
21
|
// still handled in-app, so the browser never reloads the whole application.
|
|
21
|
-
href: model.hrefOf(section), onClick: event => {
|
|
22
|
-
|
|
22
|
+
href: model.hrefOf(section), onClick: (event) => {
|
|
23
|
+
event.preventDefault();
|
|
24
|
+
go();
|
|
25
|
+
}, className: cn(SECTION_LINK), children: navLabelHelper.resolveNavLabel(translate, section.label, `nav.${section.name}`, section.name) }) }, section.name));
|
|
26
|
+
}) }) }));
|
|
23
27
|
};
|
|
24
28
|
//# sourceMappingURL=top.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"top.js","sourceRoot":"","sources":["../../../src/components/nav/top.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"top.js","sourceRoot":"","sources":["../../../src/components/nav/top.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACpE,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,0CAA0C,CAAA;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,MAAM,GAAoB,CAAC,EACtC,MAAM,EACN,SAAS,GAAG,cAAc,CAAC,mBAAmB,EAC9C,SAAS,EACT,MAAM,EACN,SAAS,EACT,KAAK,EACN,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IAEjC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,KAAC,cAAc,IAAC,QAAQ,EAAE,KAAK,gBAAc,SAAS,iBAAe,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,YAC7G,KAAC,kBAAkB,IAAC,SAAS,EAAC,iBAAiB,YAC5C,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;gBAEnC,OAAO,CACL,KAAC,kBAAkB,cACjB,KAAC,kBAAkB,IACjB,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,kBACxB,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,iBACpD,OAAO,CAAC,MAAM;wBAC3B,kFAAkF;wBAClF,4EAA4E;wBAC5E,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;4BACjB,KAAK,CAAC,cAAc,EAAE,CAAA;4BACtB,EAAE,EAAE,CAAA;wBACN,CAAC,EACD,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,YAE1B,cAAc,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,GAC3E,IAfE,OAAO,CAAC,IAAI,CAgBhB,CACtB,CAAA;YACH,CAAC,CAAC,GACiB,GACN,CAClB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { PropsWithChildren, ReactNode } from 'react';
|
|
2
2
|
import type { NavTranslate, PanelNavConfig, PanelNavLink } from '@owlmeans/client-panel';
|
|
3
|
+
import type { FooterThemeToggle } from '../footer/types.js';
|
|
3
4
|
import type { StyledProps } from '../types.js';
|
|
4
5
|
interface NavCommonProps extends StyledProps {
|
|
5
6
|
config: PanelNavConfig;
|
|
6
7
|
/** See {@link NavTranslate} — omitted, literal labels and humanized aliases are used. */
|
|
7
8
|
translate?: NavTranslate;
|
|
8
9
|
ariaLabel?: string;
|
|
10
|
+
testId?: string;
|
|
9
11
|
}
|
|
10
12
|
export interface TopNavProps extends NavCommonProps {
|
|
11
13
|
}
|
|
@@ -16,8 +18,17 @@ export interface SideNavProps extends NavCommonProps {
|
|
|
16
18
|
*/
|
|
17
19
|
variant?: 'side' | 'bar';
|
|
18
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* `ariaLabel` names the navigation landmark INSIDE the sheet; `translate` also resolves the menu
|
|
23
|
+
* button's accessible name and the sheet's title (`shell.menu`, default "Menu") and its close
|
|
24
|
+
* button's (`shell.close`, default "Close"). `className` and `style` land on the trigger button.
|
|
25
|
+
*/
|
|
26
|
+
export interface MobileNavProps extends NavCommonProps {
|
|
27
|
+
}
|
|
19
28
|
export interface NavLayoutProps extends PropsWithChildren<StyledProps> {
|
|
20
29
|
nav: PanelNavConfig;
|
|
30
|
+
/** Stable selector on the desktop navigation landmark. */
|
|
31
|
+
navTestId?: string;
|
|
21
32
|
translate?: NavTranslate;
|
|
22
33
|
/** Brand slot — rendered at the far left of the header. */
|
|
23
34
|
title?: ReactNode;
|
|
@@ -25,9 +36,61 @@ export interface NavLayoutProps extends PropsWithChildren<StyledProps> {
|
|
|
25
36
|
home?: string;
|
|
26
37
|
/** Header right side — sign-in controls, a theme toggle, whatever the app puts there. */
|
|
27
38
|
actions?: ReactNode;
|
|
28
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* Opt-in narrow-viewport menu. Below `md` (768px) the section menu is hidden and a menu button
|
|
41
|
+
* at the end of the header opens a sheet listing every section and its screens ({@link
|
|
42
|
+
* MobileNavProps}); `actions` stay in the header at every width. The screen strip the narrow
|
|
43
|
+
* viewport otherwise gets under the header is NOT rendered then — the sheet already lists the
|
|
44
|
+
* same screens, and two menus for one level is one too many. Off, the shell is exactly what it
|
|
45
|
+
* has always been.
|
|
46
|
+
*/
|
|
47
|
+
mobileMenu?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* The skip link rendered first in the page, ahead of the header, moving focus to the content
|
|
50
|
+
* (`<main id="main">`). Invisible until focused, then a pill in the top-left corner. Defaults to
|
|
51
|
+
* `translate('shell.skip', 'Skip to content')`; `false` renders no link AND leaves `main`
|
|
52
|
+
* without the `main` id, for an application that renders its own skip link and target.
|
|
53
|
+
*/
|
|
54
|
+
skipLinkLabel?: string | false;
|
|
55
|
+
/**
|
|
56
|
+
* The light/dark switcher in the footer's bottom row, beside the credit — forwarded to
|
|
57
|
+
* `Footer`, whether `footer` is links, a node or absent. The accessible names resolve
|
|
58
|
+
* `shell.toLight` / `shell.toDark` through `translate` unless `labels` gives them. Absent or
|
|
59
|
+
* `false`, the footer renders exactly as it does without one.
|
|
60
|
+
*/
|
|
61
|
+
themeToggle?: FooterThemeToggle;
|
|
62
|
+
/**
|
|
63
|
+
* An array renders the standard footer: a centred row of links above the credit line.
|
|
64
|
+
*
|
|
65
|
+
* A node is the application's OWN footer layout — brand, description, link columns — and is
|
|
66
|
+
* rendered as a full-width block (`w-full self-stretch`, start-aligned text) inside the footer's
|
|
67
|
+
* container, on the shell's rhythm, above the platform/owner credit line. It never replaces the
|
|
68
|
+
* credit: `ShellCredit` stays last in every footer, and nothing a caller passes here removes it.
|
|
69
|
+
*/
|
|
29
70
|
footer?: PanelNavLink[] | ReactNode;
|
|
71
|
+
/**
|
|
72
|
+
* Styles the HEADER — the sticky bar carrying the brand, the section menu and `actions`.
|
|
73
|
+
*
|
|
74
|
+
* The header is its own SURFACE: it paints an opaque background because content scrolls
|
|
75
|
+
* under it. Give it a background here and you must give it the paired foreground too
|
|
76
|
+
* (`bg-secondary text-secondary-foreground`), exactly as on any other surface — this is the
|
|
77
|
+
* supported way to give an application a dark top bar, and it is why colouring the root
|
|
78
|
+
* instead is not.
|
|
79
|
+
*/
|
|
80
|
+
headerClassName?: string;
|
|
81
|
+
/** Styles the content area. NOT its width — see `containerClassName`. */
|
|
30
82
|
contentClassName?: string;
|
|
83
|
+
/**
|
|
84
|
+
* The page's horizontal rhythm — width and side padding — applied identically to the header
|
|
85
|
+
* row, the content and the footer row. Give the content a width of its own and it sits inset
|
|
86
|
+
* from a full-width header, which reads as a bug rather than as a layout.
|
|
87
|
+
*
|
|
88
|
+
* MERGED over the shell's default (`mx-auto w-full max-w-6xl px-4`), not substituted for it:
|
|
89
|
+
* pass `max-w-[1280px]` and only the width changes, while the centring and the side padding
|
|
90
|
+
* stay. Name the utility you actually want to move — `px-8` widens the gutters — because
|
|
91
|
+
* anything you do not name keeps its default.
|
|
92
|
+
*/
|
|
93
|
+
containerClassName?: string;
|
|
31
94
|
}
|
|
32
95
|
export {};
|
|
33
96
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/nav/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,UAAU,cAAe,SAAQ,WAAW;IAC1C,MAAM,EAAE,cAAc,CAAA;IACtB,yFAAyF;IACzF,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/nav/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,UAAU,cAAe,SAAQ,WAAW;IAC1C,MAAM,EAAE,cAAc,CAAA;IACtB,yFAAyF;IACzF,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc;CAAG;AAEtD,MAAM,WAAW,YAAa,SAAQ,cAAc;IAClD;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAG;AAEzD,MAAM,WAAW,cAAe,SAAQ,iBAAiB,CAAC,WAAW,CAAC;IACpE,GAAG,EAAE,cAAc,CAAA;IACnB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,YAAY,CAAA;IACxB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yFAAyF;IACzF,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAC9B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,SAAS,CAAA;IACnC;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../../src/components/nav/viewport.ts"],"names":[],"mappings":"AAEA,yFAAyF;AACzF,eAAO,MAAM,UAAU,QAAO,OAY7B,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
/** The same md boundary as the shell's Tailwind layout, including resize after mount. */
|
|
3
|
+
export const useWideNav = () => {
|
|
4
|
+
const [wide, setWide] = useState(() => typeof window === 'undefined' || window.matchMedia('(min-width: 768px)').matches);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
const media = window.matchMedia('(min-width: 768px)');
|
|
7
|
+
const change = () => setWide(media.matches);
|
|
8
|
+
change();
|
|
9
|
+
media.addEventListener('change', change);
|
|
10
|
+
return () => media.removeEventListener('change', change);
|
|
11
|
+
}, []);
|
|
12
|
+
return wide;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=viewport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewport.js","sourceRoot":"","sources":["../../../src/components/nav/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,yFAAyF;AACzF,MAAM,CAAC,MAAM,UAAU,GAAG,GAAY,EAAE;IACtC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAC9B,GAAG,EAAE,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,CACvF,CAAA;IACD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;QACrD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,EAAE,CAAA;QACR,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QACxC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC1D,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/panel-app/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../src/components/panel-app/component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAO/C,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAetC,CAAA"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { App } from '@owlmeans/client';
|
|
3
3
|
import { I18nContext } from '@owlmeans/client-i18n';
|
|
4
|
-
import { cn } from '
|
|
4
|
+
import { cn } from '../../@/lib/utils.js';
|
|
5
|
+
import { SocketReloadDialog } from '../socket/reload-dialog.js';
|
|
5
6
|
export const PanelApp = ({ context, provide, children, rootClassName }) => {
|
|
6
|
-
return _jsx("div", { className: cn('min-h-screen bg-background text-foreground', rootClassName), children: _jsx(I18nContext, { config: context.cfg, children:
|
|
7
|
+
return _jsx("div", { className: cn('min-h-screen bg-background text-foreground', rootClassName), children: _jsx(I18nContext, { config: context.cfg, children: _jsxs(App, { context: context, provide: provide, children: [children, context.cfg.socket?.reloadDialog === true && _jsx(SocketReloadDialog, {})] }) }) });
|
|
7
8
|
};
|
|
8
9
|
//# sourceMappingURL=component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/panel-app/component.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../../../src/components/panel-app/component.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE/D,MAAM,CAAC,MAAM,QAAQ,GAAsB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAE;IAC3F,OAAO,cAAK,SAAS,EAAE,EAAE,CAAC,4CAA4C,EAAE,aAAa,CAAC,YACpF,KAAC,WAAW,IAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAC9B,MAAC,GAAG,IAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,aACpC,QAAQ,EAOR,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,IAAI,KAAC,kBAAkB,KAAG,IAChE,GACM,GACV,CAAA;AACR,CAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import type { ColorPickerProps } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* The colour half alone: a trigger opening the swatches (plus a colour wheel and a hex field with
|
|
5
|
+
* `customColors`). A swatch commits its key and closes; the wheel and the field commit as they
|
|
6
|
+
* change and keep it open. Pass `colors` for an application palette — a status palette, say.
|
|
7
|
+
*/
|
|
8
|
+
export declare const ColorPicker: FC<ColorPickerProps>;
|
|
9
|
+
//# sourceMappingURL=color-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-picker.d.ts","sourceRoot":"","sources":["../../../src/components/picker/color-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGlD;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAK3C,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { PickerRoot } from './root.js';
|
|
3
|
+
/**
|
|
4
|
+
* The colour half alone: a trigger opening the swatches (plus a colour wheel and a hex field with
|
|
5
|
+
* `customColors`). A swatch commits its key and closes; the wheel and the field commit as they
|
|
6
|
+
* change and keep it open. Pass `colors` for an application palette — a status palette, say.
|
|
7
|
+
*/
|
|
8
|
+
export const ColorPicker = ({ value, onChange, trigger = 'button', customColors = false, ...base }) => _jsx(PickerRoot, { ...base, mode: "color", trigger: trigger, customColors: customColors, closeOnPick: true, color: value, onColor: onChange, onIcon: () => undefined });
|
|
9
|
+
//# sourceMappingURL=color-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-picker.js","sourceRoot":"","sources":["../../../src/components/picker/color-picker.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAyB,CAC/C,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAG,QAAQ,EAAE,YAAY,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,EACtE,EAAE,CAAC,KAAC,UAAU,OACV,IAAI,EAAE,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,QAAC,KAAK,EAAE,KAAK,EAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,GAC1C,CAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
import type { PickerDotSize, PickerTileSize } from './types.js';
|
|
3
|
+
import type { PickerLayout } from './types.local.js';
|
|
4
|
+
/** From this width up `surface="auto"` opens a popover; below it, a bottom sheet. */
|
|
5
|
+
export declare const POPOVER_QUERY = "(min-width: 768px)";
|
|
6
|
+
/** A mouse or trackpad — the search field may take focus on open without raising a keyboard. */
|
|
7
|
+
export declare const FINE_POINTER_QUERY = "(pointer: fine)";
|
|
8
|
+
/**
|
|
9
|
+
* The current mode's ink and ground, read from the five custom properties `styleOf` sets.
|
|
10
|
+
*
|
|
11
|
+
* Dark follows web-panel's colour-scheme contract — `.dark` on the document element, or the
|
|
12
|
+
* operating system's dark unless `.light` is there — through explicit arbitrary variants. Never the
|
|
13
|
+
* consumer's `dark:`: an application may define it any way it likes, or not at all. Every part that
|
|
14
|
+
* carries a colour's style puts this on the same element; children read `--pick-fg` / `--pick-bg`.
|
|
15
|
+
*/
|
|
16
|
+
export declare const PICK_SCOPE: string;
|
|
17
|
+
/** A hairline inside a swatch, so a dark swatch keeps an edge on a dark surface and a pale one on a light. */
|
|
18
|
+
export declare const HAIRLINE: string;
|
|
19
|
+
export declare const TILE = "inline-flex shrink-0 items-center justify-center bg-(--pick-bg) text-(--pick-fg)";
|
|
20
|
+
export declare const TILE_SIZE: Record<PickerTileSize, string>;
|
|
21
|
+
export declare const PLAIN = "inline-flex shrink-0 items-center justify-center text-(--pick-fg)";
|
|
22
|
+
export declare const PLAIN_SIZE: Record<PickerTileSize, string>;
|
|
23
|
+
export declare const DOT = "inline-block shrink-0 rounded-full bg-(--pick-fg)";
|
|
24
|
+
export declare const DOT_SIZE: Record<PickerDotSize, string>;
|
|
25
|
+
export declare const TRIGGER_BUTTON: string;
|
|
26
|
+
export declare const TRIGGER_COMPACT: string;
|
|
27
|
+
export declare const TRIGGER_DOT = "rounded-full border border-input bg-transparent hover:bg-accent/60";
|
|
28
|
+
/** The empty tile of a trigger while nothing is chosen. */
|
|
29
|
+
export declare const TRIGGER_EMPTY: string;
|
|
30
|
+
export declare const CHEVRON: string;
|
|
31
|
+
export declare const POPOVER: string;
|
|
32
|
+
export declare const SHEET: string;
|
|
33
|
+
/** With an icon grid the surface keeps one height, so filtering never makes it jump. */
|
|
34
|
+
export declare const TALL: Record<'popover' | 'sheet', string>;
|
|
35
|
+
/** The trigger's swatch disc for a colour-only picker — the colour as it was picked. */
|
|
36
|
+
export declare const TRIGGER_DISC = "block size-4 shrink-0 rounded-full bg-(--pick-swatch)";
|
|
37
|
+
export declare const GRAB = "mx-auto mt-2 mb-1 h-1.5 w-10 shrink-0 rounded-full bg-muted-foreground/30";
|
|
38
|
+
export declare const HEADER: Record<'popover' | 'sheet', string>;
|
|
39
|
+
export declare const HEADER_TITLE = "truncate text-sm font-semibold leading-5";
|
|
40
|
+
export declare const HEADER_SUMMARY = "truncate text-xs leading-4 text-muted-foreground";
|
|
41
|
+
export declare const DONE: string;
|
|
42
|
+
export declare const BODY = "min-h-0 flex-1 overflow-y-auto overscroll-contain";
|
|
43
|
+
export declare const SECTION: Record<'popover' | 'sheet', string>;
|
|
44
|
+
export declare const SECTION_TITLE = "mb-2 text-xs font-medium text-muted-foreground";
|
|
45
|
+
export declare const SWATCHES: Record<PickerLayout, string>;
|
|
46
|
+
export declare const SWATCH: string;
|
|
47
|
+
export declare const SWATCH_DISC: string;
|
|
48
|
+
export declare const SWATCH_SELECTED = "ring-2 ring-foreground ring-offset-2 ring-offset-popover";
|
|
49
|
+
export declare const CUSTOM_ROW: string;
|
|
50
|
+
export declare const CUSTOM_DISC = "block size-5 shrink-0 rounded-full";
|
|
51
|
+
/** The colour wheel's mark while no custom colour is chosen. */
|
|
52
|
+
export declare const RAINBOW = "bg-[conic-gradient(from_180deg,#ef4444,#f59e0b,#eab308,#22c55e,#06b6d4,#3b82f6,#8b5cf6,#ec4899,#ef4444)]";
|
|
53
|
+
export declare const CUSTOM_PANEL = "mt-2 flex flex-col gap-2";
|
|
54
|
+
/** A full six-digit value — committed while typing; a three-digit one waits for Enter or blur. */
|
|
55
|
+
export declare const FULL_HEX: RegExp;
|
|
56
|
+
/** The wheel's colour while nothing custom is chosen yet — also the hex field's placeholder. */
|
|
57
|
+
export declare const CUSTOM_START = "#3b82f6";
|
|
58
|
+
/** react-colorful sizes itself with a stylesheet it injects; an inline size is the one that always wins. */
|
|
59
|
+
export declare const WHEEL_STYLE: CSSProperties;
|
|
60
|
+
export declare const FIELD: string;
|
|
61
|
+
export declare const HEX_FIELD = "font-mono";
|
|
62
|
+
export declare const FIELD_ERROR = "text-xs text-destructive";
|
|
63
|
+
/** The search field and the chips stay in view while the grid scrolls under them. */
|
|
64
|
+
export declare const ICON_TOOLS: Record<PickerLayout, string>;
|
|
65
|
+
export declare const SEARCH_WRAP = "relative";
|
|
66
|
+
export declare const SEARCH_ICON = "pointer-events-none absolute top-1/2 left-2.5 size-4 -translate-y-1/2 text-muted-foreground";
|
|
67
|
+
export declare const SEARCH = "pl-8 [&::-webkit-search-cancel-button]:cursor-pointer";
|
|
68
|
+
/** One scrolling row of category chips, running to the surface's edges rather than its padding. */
|
|
69
|
+
export declare const CHIPS: Record<PickerLayout, string>;
|
|
70
|
+
export declare const CHIP: string;
|
|
71
|
+
export declare const ICONS: Record<PickerLayout, string>;
|
|
72
|
+
export declare const ICON_CELL: string;
|
|
73
|
+
export declare const ICON_GRID_PAD: Record<PickerLayout, string>;
|
|
74
|
+
export declare const EMPTY = "flex flex-col items-center gap-2 px-4 py-8 text-center text-sm text-muted-foreground";
|
|
75
|
+
export declare const LINK_BUTTON: string;
|
|
76
|
+
//# sourceMappingURL=consts.local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.local.d.ts","sourceRoot":"","sources":["../../../src/components/picker/consts.local.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/** From this width up `surface="auto"` opens a popover; below it, a bottom sheet. */
|
|
2
|
+
export const POPOVER_QUERY = '(min-width: 768px)';
|
|
3
|
+
/** A mouse or trackpad — the search field may take focus on open without raising a keyboard. */
|
|
4
|
+
export const FINE_POINTER_QUERY = '(pointer: fine)';
|
|
5
|
+
/**
|
|
6
|
+
* The current mode's ink and ground, read from the five custom properties `styleOf` sets.
|
|
7
|
+
*
|
|
8
|
+
* Dark follows web-panel's colour-scheme contract — `.dark` on the document element, or the
|
|
9
|
+
* operating system's dark unless `.light` is there — through explicit arbitrary variants. Never the
|
|
10
|
+
* consumer's `dark:`: an application may define it any way it likes, or not at all. Every part that
|
|
11
|
+
* carries a colour's style puts this on the same element; children read `--pick-fg` / `--pick-bg`.
|
|
12
|
+
*/
|
|
13
|
+
export const PICK_SCOPE = [
|
|
14
|
+
'[--pick-fg:var(--pick-ink)] [--pick-bg:var(--pick-soft)]',
|
|
15
|
+
'[.dark_&]:[--pick-fg:var(--pick-ink-dark)] [.dark_&]:[--pick-bg:var(--pick-soft-dark)]',
|
|
16
|
+
'[@media(prefers-color-scheme:dark)]:[:root:not(.light)_&]:[--pick-fg:var(--pick-ink-dark)]',
|
|
17
|
+
'[@media(prefers-color-scheme:dark)]:[:root:not(.light)_&]:[--pick-bg:var(--pick-soft-dark)]',
|
|
18
|
+
].join(' ');
|
|
19
|
+
/** A hairline inside a swatch, so a dark swatch keeps an edge on a dark surface and a pale one on a light. */
|
|
20
|
+
export const HAIRLINE = [
|
|
21
|
+
'shadow-[inset_0_0_0_1px_rgb(0_0_0/0.14)]',
|
|
22
|
+
'[.dark_&]:shadow-[inset_0_0_0_1px_rgb(255_255_255/0.24)]',
|
|
23
|
+
'[@media(prefers-color-scheme:dark)]:[:root:not(.light)_&]:shadow-[inset_0_0_0_1px_rgb(255_255_255/0.24)]',
|
|
24
|
+
].join(' ');
|
|
25
|
+
export const TILE = 'inline-flex shrink-0 items-center justify-center bg-(--pick-bg) text-(--pick-fg)';
|
|
26
|
+
export const TILE_SIZE = {
|
|
27
|
+
xs: 'size-5 rounded-[5px] [&>svg]:size-3',
|
|
28
|
+
sm: 'size-7 rounded-md [&>svg]:size-4',
|
|
29
|
+
md: 'size-9 rounded-lg [&>svg]:size-5',
|
|
30
|
+
lg: 'size-12 rounded-xl [&>svg]:size-6',
|
|
31
|
+
};
|
|
32
|
+
export const PLAIN = 'inline-flex shrink-0 items-center justify-center text-(--pick-fg)';
|
|
33
|
+
export const PLAIN_SIZE = {
|
|
34
|
+
xs: '[&>svg]:size-3',
|
|
35
|
+
sm: '[&>svg]:size-4',
|
|
36
|
+
md: '[&>svg]:size-5',
|
|
37
|
+
lg: '[&>svg]:size-6',
|
|
38
|
+
};
|
|
39
|
+
export const DOT = 'inline-block shrink-0 rounded-full bg-(--pick-fg)';
|
|
40
|
+
export const DOT_SIZE = {
|
|
41
|
+
xs: 'size-2',
|
|
42
|
+
sm: 'size-2.5',
|
|
43
|
+
md: 'size-3.5',
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Focus on a cell is an outline, so it never fights the ring that marks the selected one. Tailwind
|
|
47
|
+
* v4's `outline-none` would pin the style to `none` under the focus width — `outline-hidden` plus an
|
|
48
|
+
* explicit `outline-solid` is what shows it.
|
|
49
|
+
*/
|
|
50
|
+
const CELL_FOCUS = [
|
|
51
|
+
'outline-hidden focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-1',
|
|
52
|
+
'focus-visible:outline-ring',
|
|
53
|
+
].join(' ');
|
|
54
|
+
/** Below 768px and on a coarse pointer every control is at least 44px. */
|
|
55
|
+
const TOUCH_HEIGHT = 'max-md:h-11 pointer-coarse:h-11';
|
|
56
|
+
export const TRIGGER_BUTTON = [
|
|
57
|
+
'group/picker inline-flex h-9 w-full min-w-0 cursor-pointer items-center gap-2 rounded-md border border-input',
|
|
58
|
+
'bg-transparent py-1 pr-2.5 pl-1 text-left text-sm shadow-xs outline-none',
|
|
59
|
+
'transition-[color,box-shadow,background-color] hover:bg-accent/60 motion-reduce:transition-none',
|
|
60
|
+
'focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50',
|
|
61
|
+
'aria-expanded:border-ring aria-expanded:ring-[3px] aria-expanded:ring-ring/30',
|
|
62
|
+
'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',
|
|
63
|
+
'max-md:h-11 max-md:pl-2 pointer-coarse:h-11 pointer-coarse:pl-2',
|
|
64
|
+
].join(' ');
|
|
65
|
+
export const TRIGGER_COMPACT = [
|
|
66
|
+
'inline-flex size-9 shrink-0 cursor-pointer items-center justify-center rounded-lg outline-none',
|
|
67
|
+
'transition-shadow motion-reduce:transition-none',
|
|
68
|
+
'focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-expanded:ring-[3px] aria-expanded:ring-ring/30',
|
|
69
|
+
'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50',
|
|
70
|
+
'max-md:size-11 pointer-coarse:size-11',
|
|
71
|
+
].join(' ');
|
|
72
|
+
export const TRIGGER_DOT = 'rounded-full border border-input bg-transparent hover:bg-accent/60';
|
|
73
|
+
/** The empty tile of a trigger while nothing is chosen. */
|
|
74
|
+
export const TRIGGER_EMPTY = [
|
|
75
|
+
'inline-flex size-7 shrink-0 items-center justify-center rounded-md border border-dashed',
|
|
76
|
+
'border-muted-foreground/40 text-muted-foreground [&>svg]:size-4',
|
|
77
|
+
].join(' ');
|
|
78
|
+
export const CHEVRON = [
|
|
79
|
+
'ml-auto size-4 shrink-0 text-muted-foreground transition-transform motion-reduce:transition-none',
|
|
80
|
+
'group-aria-expanded/picker:rotate-180',
|
|
81
|
+
].join(' ');
|
|
82
|
+
export const POPOVER = [
|
|
83
|
+
'flex w-[23rem] max-w-[calc(100vw-1.5rem)] flex-col overflow-hidden rounded-xl border border-border p-0 shadow-lg',
|
|
84
|
+
'bg-popover text-popover-foreground',
|
|
85
|
+
'max-h-[min(34rem,var(--radix-popover-content-available-height))]',
|
|
86
|
+
// `!`: the primitive's `data-[state=open]:animate-in` outranks a plain variant class.
|
|
87
|
+
'pointer-coarse:w-[26rem] motion-reduce:animate-none! motion-reduce:transition-none!',
|
|
88
|
+
].join(' ');
|
|
89
|
+
export const SHEET = [
|
|
90
|
+
'mx-auto max-h-[88dvh] w-full gap-0 overflow-hidden rounded-t-2xl border-t border-border p-0',
|
|
91
|
+
'bg-popover text-popover-foreground pb-[env(safe-area-inset-bottom)]',
|
|
92
|
+
'sm:max-w-xl sm:border-x motion-reduce:animate-none! motion-reduce:transition-none!',
|
|
93
|
+
].join(' ');
|
|
94
|
+
/** With an icon grid the surface keeps one height, so filtering never makes it jump. */
|
|
95
|
+
export const TALL = {
|
|
96
|
+
popover: 'h-[min(34rem,var(--radix-popover-content-available-height))]',
|
|
97
|
+
sheet: 'h-[88dvh]',
|
|
98
|
+
};
|
|
99
|
+
/** The trigger's swatch disc for a colour-only picker — the colour as it was picked. */
|
|
100
|
+
export const TRIGGER_DISC = 'block size-4 shrink-0 rounded-full bg-(--pick-swatch)';
|
|
101
|
+
export const GRAB = 'mx-auto mt-2 mb-1 h-1.5 w-10 shrink-0 rounded-full bg-muted-foreground/30';
|
|
102
|
+
export const HEADER = {
|
|
103
|
+
popover: 'flex shrink-0 items-center gap-3 border-b border-border px-3 py-2.5',
|
|
104
|
+
sheet: 'flex shrink-0 items-center gap-3 border-b border-border px-4 pt-1 pb-3',
|
|
105
|
+
};
|
|
106
|
+
export const HEADER_TITLE = 'truncate text-sm font-semibold leading-5';
|
|
107
|
+
export const HEADER_SUMMARY = 'truncate text-xs leading-4 text-muted-foreground';
|
|
108
|
+
export const DONE = [
|
|
109
|
+
'inline-flex h-11 min-w-16 shrink-0 cursor-pointer items-center justify-center rounded-lg px-4',
|
|
110
|
+
'bg-primary text-sm font-medium text-primary-foreground outline-none hover:bg-primary/90',
|
|
111
|
+
'focus-visible:ring-[3px] focus-visible:ring-ring/50',
|
|
112
|
+
].join(' ');
|
|
113
|
+
export const BODY = 'min-h-0 flex-1 overflow-y-auto overscroll-contain';
|
|
114
|
+
export const SECTION = {
|
|
115
|
+
popover: 'px-3 pt-3',
|
|
116
|
+
sheet: 'px-4 pt-4',
|
|
117
|
+
};
|
|
118
|
+
export const SECTION_TITLE = 'mb-2 text-xs font-medium text-muted-foreground';
|
|
119
|
+
export const SWATCHES = {
|
|
120
|
+
popover: [
|
|
121
|
+
'grid grid-cols-12 gap-1',
|
|
122
|
+
'max-md:grid-cols-[repeat(auto-fill,minmax(44px,1fr))] pointer-coarse:grid-cols-[repeat(auto-fill,minmax(44px,1fr))]',
|
|
123
|
+
].join(' '),
|
|
124
|
+
sheet: 'grid grid-cols-[repeat(auto-fill,minmax(44px,1fr))] gap-1.5',
|
|
125
|
+
inline: [
|
|
126
|
+
'grid grid-cols-[repeat(auto-fill,minmax(44px,1fr))] gap-1.5',
|
|
127
|
+
'md:pointer-fine:grid-cols-[repeat(12,minmax(0,2rem))] md:pointer-fine:gap-1',
|
|
128
|
+
].join(' '),
|
|
129
|
+
};
|
|
130
|
+
export const SWATCH = [
|
|
131
|
+
'group/swatch inline-flex aspect-square w-full min-w-0 cursor-pointer items-center justify-center rounded-full',
|
|
132
|
+
CELL_FOCUS,
|
|
133
|
+
].join(' ');
|
|
134
|
+
export const SWATCH_DISC = [
|
|
135
|
+
'pointer-events-none block size-[76%] max-h-9 max-w-9 rounded-full bg-(--pick-swatch)',
|
|
136
|
+
'transition-transform group-hover/swatch:scale-110 motion-reduce:transition-none motion-reduce:group-hover/swatch:scale-100',
|
|
137
|
+
HAIRLINE,
|
|
138
|
+
].join(' ');
|
|
139
|
+
export const SWATCH_SELECTED = 'ring-2 ring-foreground ring-offset-2 ring-offset-popover';
|
|
140
|
+
export const CUSTOM_ROW = [
|
|
141
|
+
'mt-2 flex h-8 w-full cursor-pointer items-center gap-2 rounded-md px-1.5 text-left text-sm',
|
|
142
|
+
'hover:bg-accent hover:text-accent-foreground',
|
|
143
|
+
'outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50',
|
|
144
|
+
TOUCH_HEIGHT,
|
|
145
|
+
].join(' ');
|
|
146
|
+
export const CUSTOM_DISC = 'block size-5 shrink-0 rounded-full';
|
|
147
|
+
/** The colour wheel's mark while no custom colour is chosen. */
|
|
148
|
+
export const RAINBOW = 'bg-[conic-gradient(from_180deg,#ef4444,#f59e0b,#eab308,#22c55e,#06b6d4,#3b82f6,#8b5cf6,#ec4899,#ef4444)]';
|
|
149
|
+
export const CUSTOM_PANEL = 'mt-2 flex flex-col gap-2';
|
|
150
|
+
/** A full six-digit value — committed while typing; a three-digit one waits for Enter or blur. */
|
|
151
|
+
export const FULL_HEX = /^#?[0-9a-f]{6}$/i;
|
|
152
|
+
/** The wheel's colour while nothing custom is chosen yet — also the hex field's placeholder. */
|
|
153
|
+
export const CUSTOM_START = '#3b82f6';
|
|
154
|
+
/** react-colorful sizes itself with a stylesheet it injects; an inline size is the one that always wins. */
|
|
155
|
+
export const WHEEL_STYLE = { width: '100%', height: 148 };
|
|
156
|
+
export const FIELD = [
|
|
157
|
+
'h-8 w-full min-w-0 rounded-md border border-input bg-transparent px-2.5 text-sm shadow-xs outline-none',
|
|
158
|
+
'placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50',
|
|
159
|
+
'aria-invalid:border-destructive aria-invalid:ring-destructive/20',
|
|
160
|
+
TOUCH_HEIGHT,
|
|
161
|
+
].join(' ');
|
|
162
|
+
export const HEX_FIELD = 'font-mono';
|
|
163
|
+
export const FIELD_ERROR = 'text-xs text-destructive';
|
|
164
|
+
/** The search field and the chips stay in view while the grid scrolls under them. */
|
|
165
|
+
export const ICON_TOOLS = {
|
|
166
|
+
popover: 'sticky top-0 z-10 -mx-3 bg-popover px-3 pb-2',
|
|
167
|
+
sheet: 'sticky top-0 z-10 -mx-4 bg-popover px-4 pb-2',
|
|
168
|
+
inline: 'pb-2',
|
|
169
|
+
};
|
|
170
|
+
export const SEARCH_WRAP = 'relative';
|
|
171
|
+
export const SEARCH_ICON = 'pointer-events-none absolute top-1/2 left-2.5 size-4 -translate-y-1/2 text-muted-foreground';
|
|
172
|
+
export const SEARCH = 'pl-8 [&::-webkit-search-cancel-button]:cursor-pointer';
|
|
173
|
+
/** One scrolling row of category chips, running to the surface's edges rather than its padding. */
|
|
174
|
+
export const CHIPS = {
|
|
175
|
+
popover: 'mt-2 -mx-3 flex gap-1.5 overflow-x-auto px-3 pb-0.5 scroll-px-3 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
|
|
176
|
+
sheet: 'mt-2 -mx-4 flex gap-1.5 overflow-x-auto px-4 pb-0.5 scroll-px-4 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
|
|
177
|
+
inline: 'mt-2 flex gap-1.5 overflow-x-auto pb-0.5 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
|
|
178
|
+
};
|
|
179
|
+
export const CHIP = [
|
|
180
|
+
'inline-flex h-7 shrink-0 cursor-pointer items-center rounded-full border border-input px-2.5',
|
|
181
|
+
'text-xs font-medium text-muted-foreground transition-colors motion-reduce:transition-none',
|
|
182
|
+
'hover:bg-accent hover:text-accent-foreground',
|
|
183
|
+
'aria-pressed:border-transparent aria-pressed:bg-primary aria-pressed:text-primary-foreground',
|
|
184
|
+
CELL_FOCUS,
|
|
185
|
+
'max-md:h-11 max-md:px-4 max-md:text-sm pointer-coarse:h-11 pointer-coarse:px-4 pointer-coarse:text-sm',
|
|
186
|
+
].join(' ');
|
|
187
|
+
export const ICONS = {
|
|
188
|
+
popover: [
|
|
189
|
+
'grid grid-cols-9 gap-0.5',
|
|
190
|
+
'max-md:grid-cols-[repeat(auto-fill,minmax(44px,1fr))] pointer-coarse:grid-cols-[repeat(auto-fill,minmax(44px,1fr))]',
|
|
191
|
+
].join(' '),
|
|
192
|
+
sheet: 'grid grid-cols-[repeat(auto-fill,minmax(44px,1fr))] gap-1',
|
|
193
|
+
inline: [
|
|
194
|
+
'grid grid-cols-[repeat(auto-fill,minmax(44px,1fr))] gap-1',
|
|
195
|
+
'md:pointer-fine:grid-cols-[repeat(auto-fill,minmax(36px,1fr))] md:pointer-fine:gap-0.5',
|
|
196
|
+
].join(' '),
|
|
197
|
+
};
|
|
198
|
+
export const ICON_CELL = [
|
|
199
|
+
'inline-flex aspect-square w-full min-w-0 cursor-pointer items-center justify-center rounded-md text-(--pick-fg)',
|
|
200
|
+
'transition-colors hover:bg-accent motion-reduce:transition-none [&>svg]:size-5',
|
|
201
|
+
'aria-pressed:bg-(--pick-bg) aria-pressed:ring-2 aria-pressed:ring-(--pick-fg) aria-pressed:ring-inset',
|
|
202
|
+
CELL_FOCUS,
|
|
203
|
+
].join(' ');
|
|
204
|
+
export const ICON_GRID_PAD = {
|
|
205
|
+
popover: 'pb-3',
|
|
206
|
+
sheet: 'pb-4',
|
|
207
|
+
inline: '',
|
|
208
|
+
};
|
|
209
|
+
export const EMPTY = 'flex flex-col items-center gap-2 px-4 py-8 text-center text-sm text-muted-foreground';
|
|
210
|
+
export const LINK_BUTTON = [
|
|
211
|
+
'cursor-pointer rounded-sm text-sm font-medium text-foreground underline underline-offset-4',
|
|
212
|
+
'outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50',
|
|
213
|
+
].join(' ');
|
|
214
|
+
//# sourceMappingURL=consts.local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.local.js","sourceRoot":"","sources":["../../../src/components/picker/consts.local.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import type { ColorDotProps } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* A stored colour as a dot, in the colour's ink — the ink keeps 3:1 on the page in both schemes,
|
|
5
|
+
* which a dot (a graphic) needs; the brighter swatch does not. Unknown → slate.
|
|
6
|
+
*/
|
|
7
|
+
export declare const ColorDot: FC<ColorDotProps>;
|
|
8
|
+
//# sourceMappingURL=dot.d.ts.map
|