@kanzo-tech/ui 0.0.1-alpha
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 +60 -0
- package/dist/analytics.d.ts +36 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/analytics.js +155 -0
- package/dist/analytics.js.map +1 -0
- package/dist/charts/arrow.d.ts +37 -0
- package/dist/charts/arrow.d.ts.map +1 -0
- package/dist/charts/arrow.js +29 -0
- package/dist/charts/arrow.js.map +1 -0
- package/dist/charts/chart-axes.d.ts +59 -0
- package/dist/charts/chart-axes.d.ts.map +1 -0
- package/dist/charts/chart-axes.js +39 -0
- package/dist/charts/chart-axes.js.map +1 -0
- package/dist/charts/chart-config.d.ts +52 -0
- package/dist/charts/chart-config.d.ts.map +1 -0
- package/dist/charts/chart-config.js +43 -0
- package/dist/charts/chart-config.js.map +1 -0
- package/dist/charts/chart-inputs.d.ts +174 -0
- package/dist/charts/chart-inputs.d.ts.map +1 -0
- package/dist/charts/chart-inputs.js +382 -0
- package/dist/charts/chart-inputs.js.map +1 -0
- package/dist/charts/chart-interactors.d.ts +75 -0
- package/dist/charts/chart-interactors.d.ts.map +1 -0
- package/dist/charts/chart-interactors.js +35 -0
- package/dist/charts/chart-interactors.js.map +1 -0
- package/dist/charts/chart-legend.d.ts +38 -0
- package/dist/charts/chart-legend.d.ts.map +1 -0
- package/dist/charts/chart-legend.js +49 -0
- package/dist/charts/chart-legend.js.map +1 -0
- package/dist/charts/chart-marks.d.ts +124 -0
- package/dist/charts/chart-marks.d.ts.map +1 -0
- package/dist/charts/chart-marks.js +109 -0
- package/dist/charts/chart-marks.js.map +1 -0
- package/dist/charts/chart-root.d.ts +90 -0
- package/dist/charts/chart-root.d.ts.map +1 -0
- package/dist/charts/chart-root.js +162 -0
- package/dist/charts/chart-root.js.map +1 -0
- package/dist/charts/chart-spec.d.ts +126 -0
- package/dist/charts/chart-spec.d.ts.map +1 -0
- package/dist/charts/chart-spec.js +133 -0
- package/dist/charts/chart-spec.js.map +1 -0
- package/dist/charts/chart-stat.d.ts +23 -0
- package/dist/charts/chart-stat.d.ts.map +1 -0
- package/dist/charts/chart-stat.js +24 -0
- package/dist/charts/chart-stat.js.map +1 -0
- package/dist/charts/id-set-client.d.ts +42 -0
- package/dist/charts/id-set-client.d.ts.map +1 -0
- package/dist/charts/id-set-client.js +43 -0
- package/dist/charts/id-set-client.js.map +1 -0
- package/dist/charts/mosaic-provider.d.ts +70 -0
- package/dist/charts/mosaic-provider.d.ts.map +1 -0
- package/dist/charts/mosaic-provider.js +53 -0
- package/dist/charts/mosaic-provider.js.map +1 -0
- package/dist/charts/query-client.d.ts +22 -0
- package/dist/charts/query-client.d.ts.map +1 -0
- package/dist/charts/query-client.js +26 -0
- package/dist/charts/query-client.js.map +1 -0
- package/dist/charts/tokenized-plot.d.ts +26 -0
- package/dist/charts/tokenized-plot.d.ts.map +1 -0
- package/dist/charts/tokenized-plot.js +41 -0
- package/dist/charts/tokenized-plot.js.map +1 -0
- package/dist/charts/use-chart-query.d.ts +30 -0
- package/dist/charts/use-chart-query.d.ts.map +1 -0
- package/dist/charts/use-chart-query.js +19 -0
- package/dist/charts/use-chart-query.js.map +1 -0
- package/dist/composites/CodeEditor.d.ts +64 -0
- package/dist/composites/CodeEditor.d.ts.map +1 -0
- package/dist/composites/CodeEditor.js +521 -0
- package/dist/composites/CodeEditor.js.map +1 -0
- package/dist/composites/MadeWith.d.ts +39 -0
- package/dist/composites/MadeWith.d.ts.map +1 -0
- package/dist/composites/MadeWith.js +30 -0
- package/dist/composites/MadeWith.js.map +1 -0
- package/dist/composites/Preferences.d.ts +155 -0
- package/dist/composites/Preferences.d.ts.map +1 -0
- package/dist/composites/Preferences.js +501 -0
- package/dist/composites/Preferences.js.map +1 -0
- package/dist/composites/Questionnaire.d.ts +215 -0
- package/dist/composites/Questionnaire.d.ts.map +1 -0
- package/dist/composites/Questionnaire.js +422 -0
- package/dist/composites/Questionnaire.js.map +1 -0
- package/dist/composites/SidebarIdentity.d.ts +63 -0
- package/dist/composites/SidebarIdentity.d.ts.map +1 -0
- package/dist/composites/SidebarIdentity.js +103 -0
- package/dist/composites/SidebarIdentity.js.map +1 -0
- package/dist/composites/code-editor-search.d.ts +40 -0
- package/dist/composites/code-editor-search.d.ts.map +1 -0
- package/dist/composites/code-editor-search.js +212 -0
- package/dist/composites/code-editor-search.js.map +1 -0
- package/dist/composites/sidebar.d.ts +129 -0
- package/dist/composites/sidebar.d.ts.map +1 -0
- package/dist/composites/sidebar.js +671 -0
- package/dist/composites/sidebar.js.map +1 -0
- package/dist/composites/theme-notice.d.ts +54 -0
- package/dist/composites/theme-notice.d.ts.map +1 -0
- package/dist/composites/theme-notice.js +19 -0
- package/dist/composites/theme-notice.js.map +1 -0
- package/dist/editor.d.ts +3 -0
- package/dist/editor.d.ts.map +1 -0
- package/dist/editor.js +6 -0
- package/dist/editor.js.map +1 -0
- package/dist/guard-corpus.d.ts +63 -0
- package/dist/guard-corpus.d.ts.map +1 -0
- package/dist/index.d.ts +112 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +696 -0
- package/dist/index.js.map +1 -0
- package/dist/layouts/section.d.ts +166 -0
- package/dist/layouts/section.d.ts.map +1 -0
- package/dist/layouts/section.js +153 -0
- package/dist/layouts/section.js.map +1 -0
- package/dist/layouts/shell.d.ts +128 -0
- package/dist/layouts/shell.d.ts.map +1 -0
- package/dist/layouts/shell.js +107 -0
- package/dist/layouts/shell.js.map +1 -0
- package/dist/lib/cn.d.ts +4 -0
- package/dist/lib/cn.d.ts.map +1 -0
- package/dist/lib/cn.js +9 -0
- package/dist/lib/cn.js.map +1 -0
- package/dist/lib/is-active-path.d.ts +13 -0
- package/dist/lib/is-active-path.d.ts.map +1 -0
- package/dist/lib/is-active-path.js +7 -0
- package/dist/lib/is-active-path.js.map +1 -0
- package/dist/lib/theme-tick.d.ts +37 -0
- package/dist/lib/theme-tick.d.ts.map +1 -0
- package/dist/lib/theme-tick.js +30 -0
- package/dist/lib/theme-tick.js.map +1 -0
- package/dist/lib/token-color.d.ts +74 -0
- package/dist/lib/token-color.d.ts.map +1 -0
- package/dist/lib/token-color.js +35 -0
- package/dist/lib/token-color.js.map +1 -0
- package/dist/lib/use-is-mobile.d.ts +2 -0
- package/dist/lib/use-is-mobile.d.ts.map +1 -0
- package/dist/lib/use-is-mobile.js +17 -0
- package/dist/lib/use-is-mobile.js.map +1 -0
- package/dist/shark-parity.divergences.d.ts +104 -0
- package/dist/shark-parity.divergences.d.ts.map +1 -0
- package/dist/simples/FacetFilter.d.ts +57 -0
- package/dist/simples/FacetFilter.d.ts.map +1 -0
- package/dist/simples/FacetFilter.js +167 -0
- package/dist/simples/FacetFilter.js.map +1 -0
- package/dist/simples/FieldArray.d.ts +42 -0
- package/dist/simples/FieldArray.d.ts.map +1 -0
- package/dist/simples/FieldArray.js +76 -0
- package/dist/simples/FieldArray.js.map +1 -0
- package/dist/simples/Link.d.ts +38 -0
- package/dist/simples/Link.d.ts.map +1 -0
- package/dist/simples/Link.js +24 -0
- package/dist/simples/Link.js.map +1 -0
- package/dist/simples/accordion.d.ts +8 -0
- package/dist/simples/accordion.d.ts.map +1 -0
- package/dist/simples/accordion.js +78 -0
- package/dist/simples/accordion.js.map +1 -0
- package/dist/simples/action-bar.d.ts +101 -0
- package/dist/simples/action-bar.d.ts.map +1 -0
- package/dist/simples/action-bar.js +195 -0
- package/dist/simples/action-bar.js.map +1 -0
- package/dist/simples/alert-dialog.d.ts +24 -0
- package/dist/simples/alert-dialog.d.ts.map +1 -0
- package/dist/simples/alert-dialog.js +43 -0
- package/dist/simples/alert-dialog.js.map +1 -0
- package/dist/simples/alert.d.ts +36 -0
- package/dist/simples/alert.d.ts.map +1 -0
- package/dist/simples/alert.js +123 -0
- package/dist/simples/alert.js.map +1 -0
- package/dist/simples/avatar.d.ts +37 -0
- package/dist/simples/avatar.d.ts.map +1 -0
- package/dist/simples/avatar.js +133 -0
- package/dist/simples/avatar.js.map +1 -0
- package/dist/simples/badge.d.ts +66 -0
- package/dist/simples/badge.d.ts.map +1 -0
- package/dist/simples/badge.js +138 -0
- package/dist/simples/badge.js.map +1 -0
- package/dist/simples/breadcrumb.d.ts +19 -0
- package/dist/simples/breadcrumb.d.ts.map +1 -0
- package/dist/simples/breadcrumb.js +107 -0
- package/dist/simples/breadcrumb.js.map +1 -0
- package/dist/simples/button-group.d.ts +19 -0
- package/dist/simples/button-group.d.ts.map +1 -0
- package/dist/simples/button-group.js +69 -0
- package/dist/simples/button-group.js.map +1 -0
- package/dist/simples/button.d.ts +148 -0
- package/dist/simples/button.d.ts.map +1 -0
- package/dist/simples/button.js +157 -0
- package/dist/simples/button.js.map +1 -0
- package/dist/simples/calendar.d.ts +45 -0
- package/dist/simples/calendar.d.ts.map +1 -0
- package/dist/simples/calendar.js +342 -0
- package/dist/simples/calendar.js.map +1 -0
- package/dist/simples/card.d.ts +43 -0
- package/dist/simples/card.d.ts.map +1 -0
- package/dist/simples/card.js +151 -0
- package/dist/simples/card.js.map +1 -0
- package/dist/simples/checkbox.d.ts +25 -0
- package/dist/simples/checkbox.d.ts.map +1 -0
- package/dist/simples/checkbox.js +103 -0
- package/dist/simples/checkbox.js.map +1 -0
- package/dist/simples/client-only.d.ts +3 -0
- package/dist/simples/client-only.d.ts.map +1 -0
- package/dist/simples/client-only.js +7 -0
- package/dist/simples/client-only.js.map +1 -0
- package/dist/simples/clipboard.d.ts +11 -0
- package/dist/simples/clipboard.d.ts.map +1 -0
- package/dist/simples/clipboard.js +99 -0
- package/dist/simples/clipboard.js.map +1 -0
- package/dist/simples/collapsible.d.ts +8 -0
- package/dist/simples/collapsible.d.ts.map +1 -0
- package/dist/simples/collapsible.js +79 -0
- package/dist/simples/collapsible.js.map +1 -0
- package/dist/simples/color-picker.d.ts +62 -0
- package/dist/simples/color-picker.d.ts.map +1 -0
- package/dist/simples/color-picker.js +391 -0
- package/dist/simples/color-picker.js.map +1 -0
- package/dist/simples/combobox.d.ts +66 -0
- package/dist/simples/combobox.d.ts.map +1 -0
- package/dist/simples/combobox.js +230 -0
- package/dist/simples/combobox.js.map +1 -0
- package/dist/simples/command.d.ts +45 -0
- package/dist/simples/command.d.ts.map +1 -0
- package/dist/simples/command.js +180 -0
- package/dist/simples/command.js.map +1 -0
- package/dist/simples/data-list.d.ts +25 -0
- package/dist/simples/data-list.d.ts.map +1 -0
- package/dist/simples/data-list.js +62 -0
- package/dist/simples/data-list.js.map +1 -0
- package/dist/simples/date-picker.d.ts +16 -0
- package/dist/simples/date-picker.d.ts.map +1 -0
- package/dist/simples/date-picker.js +117 -0
- package/dist/simples/date-picker.js.map +1 -0
- package/dist/simples/diagnostic.d.ts +138 -0
- package/dist/simples/diagnostic.d.ts.map +1 -0
- package/dist/simples/diagnostic.js +288 -0
- package/dist/simples/diagnostic.js.map +1 -0
- package/dist/simples/dialog.d.ts +100 -0
- package/dist/simples/dialog.d.ts.map +1 -0
- package/dist/simples/dialog.js +267 -0
- package/dist/simples/dialog.js.map +1 -0
- package/dist/simples/download-trigger.d.ts +3 -0
- package/dist/simples/download-trigger.d.ts.map +1 -0
- package/dist/simples/download-trigger.js +7 -0
- package/dist/simples/download-trigger.js.map +1 -0
- package/dist/simples/editable.d.ts +23 -0
- package/dist/simples/editable.d.ts.map +1 -0
- package/dist/simples/editable.js +70 -0
- package/dist/simples/editable.js.map +1 -0
- package/dist/simples/field.d.ts +58 -0
- package/dist/simples/field.d.ts.map +1 -0
- package/dist/simples/field.js +285 -0
- package/dist/simples/field.js.map +1 -0
- package/dist/simples/file-upload.d.ts +19 -0
- package/dist/simples/file-upload.d.ts.map +1 -0
- package/dist/simples/file-upload.js +192 -0
- package/dist/simples/file-upload.js.map +1 -0
- package/dist/simples/float.d.ts +45 -0
- package/dist/simples/float.d.ts.map +1 -0
- package/dist/simples/float.js +40 -0
- package/dist/simples/float.js.map +1 -0
- package/dist/simples/floating-panel.d.ts +25 -0
- package/dist/simples/floating-panel.d.ts.map +1 -0
- package/dist/simples/floating-panel.js +95 -0
- package/dist/simples/floating-panel.js.map +1 -0
- package/dist/simples/highlight.d.ts +6 -0
- package/dist/simples/highlight.d.ts.map +1 -0
- package/dist/simples/highlight.js +24 -0
- package/dist/simples/highlight.js.map +1 -0
- package/dist/simples/hover-card.d.ts +11 -0
- package/dist/simples/hover-card.d.ts.map +1 -0
- package/dist/simples/hover-card.js +83 -0
- package/dist/simples/hover-card.js.map +1 -0
- package/dist/simples/image-cropper.d.ts +17 -0
- package/dist/simples/image-cropper.d.ts.map +1 -0
- package/dist/simples/image-cropper.js +139 -0
- package/dist/simples/image-cropper.js.map +1 -0
- package/dist/simples/input-group.d.ts +116 -0
- package/dist/simples/input-group.d.ts.map +1 -0
- package/dist/simples/input-group.js +245 -0
- package/dist/simples/input-group.js.map +1 -0
- package/dist/simples/input.d.ts +26 -0
- package/dist/simples/input.d.ts.map +1 -0
- package/dist/simples/input.js +60 -0
- package/dist/simples/input.js.map +1 -0
- package/dist/simples/item.d.ts +72 -0
- package/dist/simples/item.d.ts.map +1 -0
- package/dist/simples/item.js +180 -0
- package/dist/simples/item.js.map +1 -0
- package/dist/simples/json-tree-view.d.ts +7 -0
- package/dist/simples/json-tree-view.d.ts.map +1 -0
- package/dist/simples/json-tree-view.js +71 -0
- package/dist/simples/json-tree-view.js.map +1 -0
- package/dist/simples/kbd.d.ts +25 -0
- package/dist/simples/kbd.d.ts.map +1 -0
- package/dist/simples/kbd.js +50 -0
- package/dist/simples/kbd.js.map +1 -0
- package/dist/simples/listbox.d.ts +46 -0
- package/dist/simples/listbox.d.ts.map +1 -0
- package/dist/simples/listbox.js +218 -0
- package/dist/simples/listbox.js.map +1 -0
- package/dist/simples/menu.d.ts +60 -0
- package/dist/simples/menu.d.ts.map +1 -0
- package/dist/simples/menu.js +294 -0
- package/dist/simples/menu.js.map +1 -0
- package/dist/simples/native-select.d.ts +36 -0
- package/dist/simples/native-select.d.ts.map +1 -0
- package/dist/simples/native-select.js +77 -0
- package/dist/simples/native-select.js.map +1 -0
- package/dist/simples/number-input.d.ts +35 -0
- package/dist/simples/number-input.d.ts.map +1 -0
- package/dist/simples/number-input.js +142 -0
- package/dist/simples/number-input.js.map +1 -0
- package/dist/simples/pagination.d.ts +11 -0
- package/dist/simples/pagination.d.ts.map +1 -0
- package/dist/simples/pagination.js +78 -0
- package/dist/simples/pagination.js.map +1 -0
- package/dist/simples/password-input.d.ts +23 -0
- package/dist/simples/password-input.d.ts.map +1 -0
- package/dist/simples/password-input.js +90 -0
- package/dist/simples/password-input.js.map +1 -0
- package/dist/simples/pin-input.d.ts +30 -0
- package/dist/simples/pin-input.d.ts.map +1 -0
- package/dist/simples/pin-input.js +71 -0
- package/dist/simples/pin-input.js.map +1 -0
- package/dist/simples/popover.d.ts +42 -0
- package/dist/simples/popover.d.ts.map +1 -0
- package/dist/simples/popover.js +188 -0
- package/dist/simples/popover.js.map +1 -0
- package/dist/simples/progress.d.ts +23 -0
- package/dist/simples/progress.d.ts.map +1 -0
- package/dist/simples/progress.js +82 -0
- package/dist/simples/progress.js.map +1 -0
- package/dist/simples/prose.d.ts +17 -0
- package/dist/simples/prose.d.ts.map +1 -0
- package/dist/simples/prose.js +18 -0
- package/dist/simples/prose.js.map +1 -0
- package/dist/simples/radio-group.d.ts +23 -0
- package/dist/simples/radio-group.d.ts.map +1 -0
- package/dist/simples/radio-group.js +149 -0
- package/dist/simples/radio-group.js.map +1 -0
- package/dist/simples/rating.d.ts +10 -0
- package/dist/simples/rating.d.ts.map +1 -0
- package/dist/simples/rating.js +81 -0
- package/dist/simples/rating.js.map +1 -0
- package/dist/simples/resizable.d.ts +16 -0
- package/dist/simples/resizable.d.ts.map +1 -0
- package/dist/simples/resizable.js +57 -0
- package/dist/simples/resizable.js.map +1 -0
- package/dist/simples/scroll-area.d.ts +23 -0
- package/dist/simples/scroll-area.d.ts.map +1 -0
- package/dist/simples/scroll-area.js +88 -0
- package/dist/simples/scroll-area.js.map +1 -0
- package/dist/simples/segment-group.d.ts +27 -0
- package/dist/simples/segment-group.d.ts.map +1 -0
- package/dist/simples/segment-group.js +129 -0
- package/dist/simples/segment-group.js.map +1 -0
- package/dist/simples/select.d.ts +34 -0
- package/dist/simples/select.d.ts.map +1 -0
- package/dist/simples/select.js +258 -0
- package/dist/simples/select.js.map +1 -0
- package/dist/simples/separator.d.ts +12 -0
- package/dist/simples/separator.d.ts.map +1 -0
- package/dist/simples/separator.js +27 -0
- package/dist/simples/separator.js.map +1 -0
- package/dist/simples/sheet.d.ts +94 -0
- package/dist/simples/sheet.d.ts.map +1 -0
- package/dist/simples/sheet.js +172 -0
- package/dist/simples/sheet.js.map +1 -0
- package/dist/simples/show.d.ts +10 -0
- package/dist/simples/show.d.ts.map +1 -0
- package/dist/simples/show.js +9 -0
- package/dist/simples/show.js.map +1 -0
- package/dist/simples/skeleton.d.ts +3 -0
- package/dist/simples/skeleton.d.ts.map +1 -0
- package/dist/simples/skeleton.js +23 -0
- package/dist/simples/skeleton.js.map +1 -0
- package/dist/simples/skip-nav.d.ts +54 -0
- package/dist/simples/skip-nav.d.ts.map +1 -0
- package/dist/simples/skip-nav.js +42 -0
- package/dist/simples/skip-nav.js.map +1 -0
- package/dist/simples/slider.d.ts +29 -0
- package/dist/simples/slider.d.ts.map +1 -0
- package/dist/simples/slider.js +189 -0
- package/dist/simples/slider.js.map +1 -0
- package/dist/simples/spinner.d.ts +2 -0
- package/dist/simples/spinner.d.ts.map +1 -0
- package/dist/simples/spinner.js +20 -0
- package/dist/simples/spinner.js.map +1 -0
- package/dist/simples/stat-tile.d.ts +31 -0
- package/dist/simples/stat-tile.d.ts.map +1 -0
- package/dist/simples/stat-tile.js +64 -0
- package/dist/simples/stat-tile.js.map +1 -0
- package/dist/simples/status.d.ts +48 -0
- package/dist/simples/status.d.ts.map +1 -0
- package/dist/simples/status.js +57 -0
- package/dist/simples/status.js.map +1 -0
- package/dist/simples/steps.d.ts +20 -0
- package/dist/simples/steps.d.ts.map +1 -0
- package/dist/simples/steps.js +171 -0
- package/dist/simples/steps.js.map +1 -0
- package/dist/simples/suggestions.d.ts +43 -0
- package/dist/simples/suggestions.d.ts.map +1 -0
- package/dist/simples/suggestions.js +38 -0
- package/dist/simples/suggestions.js.map +1 -0
- package/dist/simples/swatch.d.ts +73 -0
- package/dist/simples/swatch.d.ts.map +1 -0
- package/dist/simples/swatch.js +35 -0
- package/dist/simples/swatch.js.map +1 -0
- package/dist/simples/switch.d.ts +5 -0
- package/dist/simples/switch.d.ts.map +1 -0
- package/dist/simples/switch.js +71 -0
- package/dist/simples/switch.js.map +1 -0
- package/dist/simples/table.d.ts +55 -0
- package/dist/simples/table.d.ts.map +1 -0
- package/dist/simples/table.js +166 -0
- package/dist/simples/table.js.map +1 -0
- package/dist/simples/tabs.d.ts +55 -0
- package/dist/simples/tabs.d.ts.map +1 -0
- package/dist/simples/tabs.js +133 -0
- package/dist/simples/tabs.js.map +1 -0
- package/dist/simples/tags-input.d.ts +64 -0
- package/dist/simples/tags-input.d.ts.map +1 -0
- package/dist/simples/tags-input.js +228 -0
- package/dist/simples/tags-input.js.map +1 -0
- package/dist/simples/textarea.d.ts +6 -0
- package/dist/simples/textarea.d.ts.map +1 -0
- package/dist/simples/textarea.js +34 -0
- package/dist/simples/textarea.js.map +1 -0
- package/dist/simples/toast.d.ts +20 -0
- package/dist/simples/toast.d.ts.map +1 -0
- package/dist/simples/toast.js +127 -0
- package/dist/simples/toast.js.map +1 -0
- package/dist/simples/toggle-group.d.ts +20 -0
- package/dist/simples/toggle-group.d.ts.map +1 -0
- package/dist/simples/toggle-group.js +82 -0
- package/dist/simples/toggle-group.js.map +1 -0
- package/dist/simples/toggle.d.ts +35 -0
- package/dist/simples/toggle.d.ts.map +1 -0
- package/dist/simples/toggle.js +57 -0
- package/dist/simples/toggle.js.map +1 -0
- package/dist/simples/tooltip.d.ts +8 -0
- package/dist/simples/tooltip.d.ts.map +1 -0
- package/dist/simples/tooltip.js +80 -0
- package/dist/simples/tooltip.js.map +1 -0
- package/dist/simples/tour.d.ts +81 -0
- package/dist/simples/tour.d.ts.map +1 -0
- package/dist/simples/tour.js +253 -0
- package/dist/simples/tour.js.map +1 -0
- package/dist/simples/tree-view.d.ts +64 -0
- package/dist/simples/tree-view.d.ts.map +1 -0
- package/dist/simples/tree-view.js +300 -0
- package/dist/simples/tree-view.js.map +1 -0
- package/dist/styles.css +2 -0
- package/dist/table/data-table-content.d.ts +18 -0
- package/dist/table/data-table-content.d.ts.map +1 -0
- package/dist/table/data-table-content.js +53 -0
- package/dist/table/data-table-content.js.map +1 -0
- package/dist/table/data-table-pagination.d.ts +8 -0
- package/dist/table/data-table-pagination.d.ts.map +1 -0
- package/dist/table/data-table-pagination.js +65 -0
- package/dist/table/data-table-pagination.js.map +1 -0
- package/dist/table/data-table-root.d.ts +10 -0
- package/dist/table/data-table-root.d.ts.map +1 -0
- package/dist/table/data-table-root.js +21 -0
- package/dist/table/data-table-root.js.map +1 -0
- package/dist/table/data-table-toolbar.d.ts +44 -0
- package/dist/table/data-table-toolbar.d.ts.map +1 -0
- package/dist/table/data-table-toolbar.js +87 -0
- package/dist/table/data-table-toolbar.js.map +1 -0
- package/dist/table/select-column.d.ts +16 -0
- package/dist/table/select-column.d.ts.map +1 -0
- package/dist/table/select-column.js +39 -0
- package/dist/table/select-column.js.map +1 -0
- package/dist/table/sortableHeader.d.ts +25 -0
- package/dist/table/sortableHeader.d.ts.map +1 -0
- package/dist/table/sortableHeader.js +43 -0
- package/dist/table/sortableHeader.js.map +1 -0
- package/dist/table/use-data-table.d.ts +40 -0
- package/dist/table/use-data-table.d.ts.map +1 -0
- package/dist/table/use-data-table.js +65 -0
- package/dist/table/use-data-table.js.map +1 -0
- package/dist/table.d.ts +15 -0
- package/dist/table.d.ts.map +1 -0
- package/dist/table.js +22 -0
- package/dist/table.js.map +1 -0
- package/dist/theme/KanzoTheme.d.ts +74 -0
- package/dist/theme/KanzoTheme.d.ts.map +1 -0
- package/dist/theme/KanzoTheme.js +61 -0
- package/dist/theme/KanzoTheme.js.map +1 -0
- package/dist/theme/KanzoThemeProvider.d.ts +144 -0
- package/dist/theme/KanzoThemeProvider.d.ts.map +1 -0
- package/dist/theme/KanzoThemeProvider.js +271 -0
- package/dist/theme/KanzoThemeProvider.js.map +1 -0
- package/dist/theme/theme-context.d.ts +146 -0
- package/dist/theme/theme-context.d.ts.map +1 -0
- package/dist/theme/theme-context.js +18 -0
- package/dist/theme/theme-context.js.map +1 -0
- package/dist/theme/theme-script.d.ts +17 -0
- package/dist/theme/theme-script.d.ts.map +1 -0
- package/dist/theme/theme-script.js +16 -0
- package/dist/theme/theme-script.js.map +1 -0
- package/package.json +201 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.js","sources":["../../src/composites/sidebar.tsx"],"sourcesContent":["\"use client\";\n\nimport { ark } from \"@ark-ui/react/factory\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport React from \"react\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { cn } from \"../lib/cn\";\nimport { Button, buttonVariants } from \"../simples/button\";\nimport { Input } from \"../simples/input\";\nimport { ScrollArea } from \"../simples/scroll-area\";\nimport { Separator } from \"../simples/separator\";\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n} from \"../simples/sheet\";\nimport { Skeleton } from \"../simples/skeleton\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"../simples/tooltip\";\nimport { useIsMobile } from \"../lib/use-is-mobile.js\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ninterface SidebarContextProps {\n isMobile: boolean;\n open: boolean;\n openMobile: boolean;\n setOpen: (open: boolean) => void;\n setOpenMobile: (open: boolean) => void;\n state: \"expanded\" | \"collapsed\";\n toggleSidebar: () => void;\n}\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\nSidebarContext.displayName = \"SidebarContext\";\n\ninterface SidebarProviderProps extends React.ComponentProps<\"div\"> {\n /**\n * The default open state of the sidebar.\n *\n * @default true\n */\n defaultOpen?: boolean;\n /**\n * The function to call when the open state of the sidebar changes.\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * The open state of the sidebar.\n */\n open?: boolean;\n}\n\nexport const SidebarProvider = (props: SidebarProviderProps) => {\n const {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n slot,\n ...rest\n } = props;\n\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // biome-ignore lint/suspicious/noDocumentCookie: Persist the sidebar state across reloads.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open]\n );\n\n const toggleSidebar = React.useCallback(() => {\n if (isMobile) {\n setOpenMobile((open) => !open);\n } else {\n setOpen((open) => !open);\n }\n }, [isMobile, setOpen]);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <ark.div\n className={cn(\n \"group/sidebar-wrapper\",\n \"flex\",\n \"min-h-svh w-full\",\n \"has-data-[variant=inset]:bg-sidebar\",\n className\n )}\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n {...rest}\n data-slot={slot ?? \"sidebar-wrapper\"}\n />\n </SidebarContext.Provider>\n );\n};\n\ninterface SidebarProps extends React.ComponentProps<typeof Sheet> {\n className?: string;\n slot?: string;\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n placement?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n}\n\nexport const Sidebar = (props: SidebarProps) => {\n const {\n collapsible = \"offcanvas\",\n placement = \"left\",\n variant = \"sidebar\",\n className,\n children,\n slot,\n ...rest\n } = props;\n\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <ark.aside\n className={cn(\n \"h-full w-(--sidebar-width)\",\n \"flex flex-col\",\n \"bg-sidebar\",\n \"text-sidebar-foreground\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"sidebar\"}\n >\n {children}\n </ark.aside>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet\n {...rest}\n onOpenChange={({ open }) => setOpenMobile(open)}\n open={openMobile}\n >\n <SheetContent\n className={cn(\n \"w-(--sidebar-width)\",\n \"p-0\",\n \"bg-sidebar\",\n \"text-sidebar-foreground\",\n \"[&>button]:hidden\"\n )}\n data-mobile=\"true\"\n data-sidebar=\"sidebar\"\n slot={slot ?? \"sidebar\"}\n placement={placement === \"left\" ? \"left\" : \"right\"}\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n >\n <SheetHeader\n className=\"sr-only\"\n description=\"Displays the mobile sidebar.\"\n title=\"Sidebar\"\n />\n <ark.div className=\"flex size-full flex-col\">{children}</ark.div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <ark.div\n className={cn(\"group peer\", \"hidden md:block\", \"text-sidebar-foreground\")}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-placement={placement}\n data-slot={slot ?? \"sidebar\"}\n data-state={state}\n data-variant={variant}\n >\n <ark.div\n className={cn(\n \"relative\",\n \"w-(--sidebar-width)\",\n \"bg-transparent\",\n \"transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[placement=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n \"motion-reduce:transition-none!\"\n )}\n data-slot=\"sidebar-gap\"\n />\n <ark.div\n className={cn(\n \"fixed inset-y-0 z-10\",\n \"w-(--sidebar-width)\",\n \"hidden md:flex\",\n \"h-svh\",\n \"transition-[inset-inline-start,inset-inline-end,width] duration-200 ease-linear\",\n placement === \"left\"\n ? \"inset-s-0 group-data-[collapsible=offcanvas]:-inset-s-(--sidebar-width)\"\n : \"inset-e-0 group-data-[collapsible=offcanvas]:-inset-e-(--sidebar-width)\",\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[placement=right]:border-s group-data-[placement=left]:border-e\",\n \"motion-reduce:transition-none!\",\n className\n )}\n {...rest}\n data-slot=\"sidebar-container\"\n >\n <ark.aside\n className={cn(\n \"size-full\",\n \"flex flex-col\",\n \"bg-sidebar\",\n \"group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm\"\n )}\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n >\n {children}\n </ark.aside>\n </ark.div>\n </ark.div>\n );\n};\n\nexport const SidebarTrigger = (props: React.ComponentProps<typeof Button>) => {\n const { className, onClick, slot, ...rest } = props;\n\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n className={cn(\"size-7\", className)}\n data-sidebar=\"trigger\"\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n size=\"icon-md\"\n variant=\"ghost\"\n {...rest}\n slot={slot ?? \"sidebar-trigger\"}\n >\n <PanelLeftIcon className=\"rtl:rotate-180\" />\n <ark.span className=\"sr-only\">Toggle Sidebar</ark.span>\n </Button>\n );\n};\n\nexport const SidebarRail = (props: React.ComponentProps<typeof ark.button>) => {\n const { className, slot, ...rest } = props;\n\n const { toggleSidebar } = useSidebar();\n\n return (\n <ark.button\n aria-label=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 -translate-x-1/2\",\n \"w-4\",\n \"hidden sm:flex\",\n \"transition-all ease-linear\",\n \"after:absolute after:inset-s-1/2 after:inset-y-0 after:w-[2px]\",\n \"hover:after:bg-sidebar-border\",\n \"group-data-[placement=left]:-inset-e-4 group-data-[placement=right]:inset-s-0\",\n \"in-data-[placement=left]:cursor-w-resize in-data-[placement=right]:cursor-e-resize\",\n \"[[data-placement=left][data-state=collapsed]_&]:cursor-e-resize [[data-placement=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:after:inset-s-full\",\n \"[[data-placement=left][data-collapsible=offcanvas]_&]:-inset-e-2\",\n \"[[data-placement=right][data-collapsible=offcanvas]_&]:-inset-s-2\",\n \"motion-reduce:transition-none!\",\n className\n )}\n data-sidebar=\"rail\"\n onClick={toggleSidebar}\n tabIndex={-1}\n title=\"Toggle Sidebar\"\n type=\"button\"\n {...rest}\n data-slot={slot ?? \"sidebar-rail\"}\n />\n );\n};\n\n// A neutral offset column, not `<main>`: the content shell goes inside it and `ShellMain` owns\n// the landmark (one `<main>` per page; a region declares no role).\nexport const SidebarInset = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\n \"relative flex w-full min-w-0 flex-1 flex-col bg-background\",\n \"md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ms-2\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ms-0\",\n \"md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm\",\n className\n )}\n {...rest}\n data-slot={slot ?? \"sidebar-inset\"}\n />\n );\n};\n\nexport const SidebarInput = (props: React.ComponentProps<typeof Input>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <Input\n className={cn(\"h-8 w-full bg-background shadow-none\", className)}\n data-sidebar=\"input\"\n {...rest}\n slot={slot ?? \"sidebar-input\"}\n />\n );\n};\n\nexport const SidebarHeader = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n data-sidebar=\"header\"\n {...rest}\n data-slot={slot ?? \"sidebar-header\"}\n />\n );\n};\n\nexport const SidebarFooter = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n data-sidebar=\"footer\"\n {...rest}\n data-slot={slot ?? \"sidebar-footer\"}\n />\n );\n};\n\nexport const SidebarSeparator = (\n props: React.ComponentProps<typeof Separator>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <Separator\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n data-sidebar=\"separator\"\n {...rest}\n slot={slot ?? \"sidebar-separator\"}\n />\n );\n};\n\ninterface SidebarContentProps extends React.ComponentProps<\"div\"> {\n /**\n * Whether to add a scroll fade effect to the sidebar content.\n *\n * @default false\n */\n scrollFade?: boolean;\n}\nexport const SidebarContent = (props: SidebarContentProps) => {\n const { scrollFade = false, className, slot, ...rest } = props;\n\n return (\n <ScrollArea\n className=\"[--fade-size:3rem] **:data-[slot=scroll-area-scrollbar]:hidden\"\n scrollFade={scrollFade}\n >\n <ark.div\n className={cn(\n \"min-h-0\",\n \"flex flex-1 flex-col gap-0\",\n \"overflow-auto\",\n \"group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n data-sidebar=\"content\"\n {...rest}\n data-slot={slot ?? \"sidebar-content\"}\n />\n </ScrollArea>\n );\n};\n\nexport const SidebarGroup = (props: React.ComponentProps<typeof ark.div>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n data-sidebar=\"group\"\n {...rest}\n data-slot={slot ?? \"sidebar-group\"}\n />\n );\n};\n\nexport const SidebarGroupLabel = (\n props: React.ComponentProps<typeof ark.div>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\n \"h-8\",\n \"px-2\",\n \"flex shrink-0 items-center\",\n \"font-medium text-sidebar-foreground/70 text-xs\",\n \"rounded-md\",\n \"transition-[margin,opacity] duration-200 ease-linear\",\n \"outline-hidden ring-sidebar-ring focus-visible:ring-2\",\n \"[&_svg]:size-4 [&_svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n \"motion-reduce:transition-none!\",\n className\n )}\n data-sidebar=\"group-label\"\n {...rest}\n data-slot={slot ?? \"sidebar-group-label\"}\n />\n );\n};\n\nexport const SidebarGroupAction = (\n props: React.ComponentProps<typeof ark.button>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.button\n className={cn(\n buttonVariants({\n variant: \"ghost\",\n size: \"icon-sm\",\n clickEffect: false,\n }),\n \"absolute inset-e-3 top-3.5\",\n \"text-sidebar-foreground\",\n \"transition-transform\",\n \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n \"[&_svg]:size-4 [&_svg]:shrink-0\",\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n \"motion-reduce:transition-none!\",\n className\n )}\n data-sidebar=\"group-action\"\n type=\"button\"\n {...rest}\n data-slot={slot ?? \"sidebar-group-action\"}\n />\n );\n};\n\nexport const SidebarGroupContent = (\n props: React.ComponentProps<typeof ark.div>\n) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(\"w-full text-sm\", className)}\n data-sidebar=\"group-content\"\n {...rest}\n data-slot={slot ?? \"sidebar-group-content\"}\n />\n );\n};\n\nexport const SidebarMenu = (props: React.ComponentProps<typeof ark.ul>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.ul\n className={cn(\"w-full min-w-0\", \"flex flex-col gap-0\", className)}\n data-sidebar=\"menu\"\n {...rest}\n data-slot={slot ?? \"sidebar-menu\"}\n />\n );\n};\n\nexport const SidebarMenuItem = (props: React.ComponentProps<typeof ark.li>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.li\n className={cn(\"group/menu-item relative\", className)}\n data-sidebar=\"menu-item\"\n {...rest}\n data-slot={slot ?? \"sidebar-menu-item\"}\n />\n );\n};\n\ninterface SidebarMenuButtonProps extends React.ComponentProps<typeof Button> {\n /**\n * Whether the button is active.\n *\n * @default false\n */\n isActive?: boolean;\n /**\n * The tooltip to display when hovering over the button.\n *\n */\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n}\n\nexport const SidebarMenuButton = ({\n tooltip,\n ...props\n}: SidebarMenuButtonProps) => {\n const {\n isActive = false,\n size = \"md\",\n variant = \"ghost\",\n className,\n slot,\n ...rest\n } = props;\n\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Button\n className={cn(\n \"peer/menu-button group/menu-button\",\n \"w-full\",\n \"justify-start gap-2\",\n \"p-2\",\n \"overflow-hidden\",\n \"transition-[width,height,padding]\",\n \"data-[size=sm]:text-xs\",\n \"data-[size=lg]:h-12\",\n \"group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2!\",\n \"data-[size=lg]:group-data-[collapsible=icon]:p-0!\",\n \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n // Upstream spells the width `sidebar-ring-[3px]`, which is not a utility — Tailwind emits\n // nothing for it, so these two buttons set a ring colour and no ring, and the focus\n // indicator never renders. The colour was the banned dilution besides: measured 1.49:1 in\n // light and 1.42–1.46 in dark against the surfaces the sidebar sits on, against 4.54 and\n // 3.89–4.18 solid. Nothing else here changes on focus, so the ring is the whole indicator.\n \"outline-none focus-visible:ring-[3px] focus-visible:ring-sidebar-ring\",\n \"active:bg-sidebar-accent active:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground\",\n \"group-has-data-[sidebar=menu-action]/menu-item:pe-8\",\n \"[&>span:last-child]:truncate\",\n \"motion-reduce:transition-none!\",\n className\n )}\n clickEffect={false}\n data-active={isActive}\n data-sidebar=\"menu-button\"\n data-size={size}\n size={size}\n variant={variant}\n {...rest}\n slot={slot ?? \"sidebar-menu-button\"}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip positioning={{ placement: \"right\" }}>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent hidden={state !== \"collapsed\" || isMobile} {...tooltip} />\n </Tooltip>\n );\n};\n\ninterface SidebarMenuActionProps\n extends React.ComponentProps<typeof ark.button> {\n showOnHover?: boolean;\n}\n\nexport const SidebarMenuAction = (props: SidebarMenuActionProps) => {\n const { className, showOnHover = false, slot, ...rest } = props;\n\n return (\n <ark.button\n className={cn(\n buttonVariants({\n variant: \"ghost\",\n size: \"icon-sm\",\n clickEffect: false,\n }),\n \"absolute inset-e-1 top-1.5\",\n \"text-sidebar-foreground\",\n \"transition-transform\",\n \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground\",\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=md]/menu-button:top-1.5 peer-data-[size=sm]/menu-button:top-1\",\n \"group-data-[collapsible=icon]:hidden\",\n \"[&_svg]:size-4 [&_svg]:shrink-0\",\n !showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0\",\n \"motion-reduce:transition-none!\",\n className\n )}\n data-sidebar=\"menu-action\"\n type=\"button\"\n {...rest}\n data-slot={slot ?? \"sidebar-menu-action\"}\n />\n );\n};\n\nconst sidebarMenuBadgeVariants = tv({\n base: [\n \"flex items-center justify-center\",\n \"px-1\",\n \"h-5 min-w-5\",\n \"rounded-md\",\n \"select-none font-medium text-sidebar-foreground text-xs tabular-nums\",\n \"group-data-[collapsible=icon]:hidden\",\n ],\n variants: {\n placement: {\n /** Overlaid on the row's trailing edge, sized off the peer button (Shark/shadcn default). */\n overlay: [\n \"pointer-events-none absolute inset-e-1\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"peer-data-[size=md]/menu-button:top-1.5\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n ],\n /**\n * In the flow, INSIDE the row. Required whenever the row already ends in something else\n * (a chevron, a `SidebarMenuAction`): the overlay placement would stack on top of it.\n */\n inline: \"ms-auto shrink-0\",\n },\n },\n defaultVariants: { placement: \"overlay\" },\n});\n\nexport interface SidebarMenuBadgeProps\n extends React.ComponentProps<typeof ark.div>,\n VariantProps<typeof sidebarMenuBadgeVariants> {}\n\nexport const SidebarMenuBadge = (props: SidebarMenuBadgeProps) => {\n const { className, placement = \"overlay\", slot, ...rest } = props;\n\n return (\n <ark.div\n className={cn(sidebarMenuBadgeVariants({ placement }), className)}\n data-placement={placement}\n data-sidebar=\"menu-badge\"\n {...rest}\n data-slot={slot ?? \"sidebar-menu-badge\"}\n />\n );\n};\n\ninterface SidebarMenuSkeletonProps\n extends React.ComponentProps<typeof ark.div> {\n showIcon?: boolean;\n}\n\nexport const SidebarMenuSkeleton = (props: SidebarMenuSkeletonProps) => {\n const { className, showIcon = false, slot, ...rest } = props;\n\n const width = React.useMemo(\n () => `${Math.floor(Math.random() * 40) + 50}%`,\n []\n );\n\n return (\n <ark.div\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n data-sidebar=\"menu-skeleton\"\n {...rest}\n data-slot={slot ?? \"sidebar-menu-skeleton\"}\n >\n {!!showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </ark.div>\n );\n};\n\nexport const SidebarMenuSub = (props: React.ComponentProps<typeof ark.ul>) => {\n const { className, slot, ...rest } = props;\n\n return (\n <ark.ul\n className={cn(\n \"mx-3.5 flex min-w-0 flex-col gap-1 px-2.5 py-0.5 ltr:translate-x-px rtl:-translate-x-px\",\n \"border-sidebar-border border-s\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n data-sidebar=\"menu-sub\"\n {...rest}\n data-slot={slot ?? \"sidebar-menu-sub\"}\n />\n );\n};\n\nexport const SidebarMenuSubItem = ({\n className,\n slot,\n ...props\n}: React.ComponentProps<typeof ark.li>) => (\n <ark.li\n className={cn(\"group/menu-sub-item relative\", className)}\n data-sidebar=\"menu-sub-item\"\n {...props}\n data-slot={slot ?? \"sidebar-menu-sub-item\"}\n />\n);\n\ninterface SidebarMenuSubButtonProps\n extends React.ComponentProps<typeof ark.a>,\n VariantProps<typeof buttonVariants> {\n isActive?: boolean;\n}\n\nexport const SidebarMenuSubButton = (props: SidebarMenuSubButtonProps) => {\n const { size = \"md\", isActive = false, className, slot, ...rest } = props;\n\n return (\n <ark.a\n className={cn(\n buttonVariants({ size, variant: \"ghost\", clickEffect: false }),\n \"w-full min-w-0\",\n \"justify-start\",\n \"px-2\",\n \"text-sidebar-foreground\",\n \"overflow-hidden\",\n \"ltr:-translate-x-px rtl:translate-x-px\",\n \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n \"active:bg-sidebar-accent active:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n // Same non-utility width and same diluted ring as SidebarMenuButton — see the note there.\n \"outline-none focus-visible:ring-[3px] focus-visible:ring-sidebar-ring\",\n \"[&>span:last-child]:truncate\",\n \"[&_svg]:text-sidebar-accent-foreground\",\n className\n )}\n data-active={isActive}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n {...rest}\n data-slot={slot ?? \"sidebar-menu-sub-button\"}\n />\n );\n};\n\nexport const useSidebar = () => {\n const context = React.useContext(SidebarContext);\n\n if (context === null) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n};\n"],"names":["SidebarContext","React"],"mappings":";;;;;;;;;;;;;;;AAwBA;AAkBAA;AAmBO;AACL;AAAM;AACU;AACR;AACQ;AACd;AACA;AACA;AACG;AAQiB;AAElB;AACA;AAOgG;AAClG;AACkB;AAIlB;AAGyB;AAI3BC;AACE;AACE;AAKE;AAIJ;AAEgE;AAGlE;AAE2B;AAClB;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEwD;AAG5D;AAEI;AAAK;AAAJ;AACY;AACT;AACA;AACA;AACA;AACA;AAAA;AAGA;AACqB;AACK;AACrB;AAAA;AAGH;AACe;AAAA;AAI3B;AAWE;AAAM;AACU;AACF;AACF;AACV;AACA;AACA;AACG;AAKL;AAEI;AAAK;AAAJ;AACY;AACT;AACA;AACA;AACA;AACA;AAAA;AAEE;AACe;AAElB;AAAA;AAOH;AAAC;AAAA;AACK;AAC0C;AACxC;AAEN;AAAC;AAAA;AACY;AACT;AACA;AACA;AACA;AACA;AAAA;AAEU;AACC;AACC;AAC6B;AAEzC;AACqB;AAAA;AAIvB;AAAA;AAAC;AAAA;AACW;AACE;AACN;AAAA;AAAA;AAE+C;AAAA;AAAA;AAAA;AACzD;AAMJ;AAAK;AAAJ;AACyE;AAChB;AACxC;AACG;AACP;AACE;AAEd;AAAA;AAAK;AAAJ;AACY;AACT;AACA;AACA;AACA;AACA;AACA;AAGI;AACJ;AAAA;AAEQ;AAAA;AAAA;AAEZ;AAAK;AAAJ;AACY;AACT;AACA;AACA;AACA;AACA;AAGI;AAGA;AACJ;AACA;AAAA;AAEE;AACM;AAEV;AAAK;AAAJ;AACY;AACT;AACA;AACA;AACA;AAAA;AAEW;AACH;AAET;AAAA;AAAA;AACH;AAAA;AACF;AAAA;AAGN;AAGE;AAIA;AACE;AAAC;AAAA;AACkC;AACpB;AAEX;AACA;AACF;AACK;AACG;AACJ;AACU;AAEd;AAA0C;AACE;AAAA;AAAA;AAGlD;AAGE;AAIA;AACE;AAAK;AAAJ;AACY;AACA;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEW;AACJ;AACC;AACJ;AACD;AACD;AACe;AAAA;AAGzB;AAKE;AAEA;AACE;AAAK;AAAJ;AACY;AACT;AACA;AACA;AACA;AACA;AAAA;AAEE;AACe;AAAA;AAGzB;AAGE;AAEA;AACE;AAAC;AAAA;AACgE;AAClD;AACT;AACU;AAAA;AAGpB;AAGE;AAEA;AACE;AAAK;AAAJ;AACmD;AACrC;AACT;AACe;AAAA;AAGzB;AAGE;AAEA;AACE;AAAK;AAAJ;AACmD;AACrC;AACT;AACe;AAAA;AAGzB;AAKE;AAEA;AACE;AAAC;AAAA;AACyD;AAC3C;AACT;AACU;AAAA;AAGpB;AAWE;AAEA;AACE;AAAC;AAAA;AACW;AACV;AAEA;AAAK;AAAJ;AACY;AACT;AACA;AACA;AACA;AACA;AAAA;AAEW;AACT;AACe;AAAA;AAAA;AACrB;AAGN;AAGE;AAEA;AACE;AAAK;AAAJ;AACqE;AACvD;AACT;AACe;AAAA;AAGzB;AAKE;AAEA;AACE;AAAK;AAAJ;AACY;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEW;AACT;AACe;AAAA;AAGzB;AAKE;AAEA;AACE;AAAK;AAAJ;AACY;AACM;AACJ;AACH;AACO;AACd;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEW;AACR;AACD;AACe;AAAA;AAGzB;AAKE;AAEA;AACE;AAAK;AAAJ;AAC0C;AAC5B;AACT;AACe;AAAA;AAGzB;AAGE;AAEA;AACE;AAAK;AAAJ;AACiE;AACnD;AACT;AACe;AAAA;AAGzB;AAGE;AAEA;AACE;AAAK;AAAJ;AACoD;AACtC;AACT;AACe;AAAA;AAGzB;AAgBkC;AAChC;AAEF;AACE;AAAM;AACO;AACJ;AACG;AACV;AACA;AACG;AAMH;AAAC;AAAA;AACY;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEW;AACA;AACA;AACF;AACX;AACA;AACI;AACU;AAAA;AAIlB;AAKY;AACE;AAMV;AAAgC;AACwC;AAG9E;AAQE;AAEA;AACE;AAAK;AAAJ;AACY;AACM;AACJ;AACH;AACO;AACd;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEE;AACF;AACA;AAAA;AAEW;AACR;AACD;AACe;AAAA;AAGzB;AAEoC;AAC5B;AACJ;AACA;AACA;AACA;AACA;AACA;AAAA;AAEQ;AACG;AAAA;AAEA;AACP;AACA;AACA;AACA;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMM;AAAA;AACV;AAGJ;AAOE;AAEA;AACE;AAAK;AAAJ;AACiE;AAChD;AACH;AACT;AACe;AAAA;AAGzB;AAQE;AAEoB;AAC0B;AAC5C;AAGF;AACE;AAAK;AAAJ;AACuE;AACzD;AACT;AACe;AAElB;AACC;AAAC;AAAA;AACW;AACG;AAAA;AAAA;AAGjB;AAAC;AAAA;AACW;AACG;AAEX;AACsB;AAAA;AACtB;AAAA;AAEJ;AAAA;AAGN;AAGE;AAEA;AACE;AAAK;AAAJ;AACY;AACT;AACA;AACA;AACA;AAAA;AAEW;AACT;AACe;AAAA;AAGzB;AAEmC;AACjC;AACA;AAEF;AACE;AAAK;AAAJ;AACwD;AAC1C;AACT;AACe;AACrB;AAUA;AAEA;AACE;AAAK;AAAJ;AACY;AACoD;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AACA;AACA;AACA;AAAA;AAEW;AACA;AACF;AACP;AACe;AAAA;AAGzB;AAGE;AAEA;AACE;AAGF;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { CreateToasterReturn } from '@ark-ui/react/toast';
|
|
2
|
+
/**
|
|
3
|
+
* The copy for "the theme you chose is no longer published", shared by the two surfaces that
|
|
4
|
+
* say it: this toast, and the `Alert` inside `Preferences.Colour`. One state, said once.
|
|
5
|
+
*
|
|
6
|
+
* Both strings are **library-authored English**, which is exactly the distinction `PreferencesColor`'s `formatSide`
|
|
7
|
+
* draws with its `formatName`: the library wrote "Light" and "Dark", so a caller who translates the
|
|
8
|
+
* app has to be able to translate them. A theme's `label` is the opposite case — the client
|
|
9
|
+
* authored it, at runtime — and takes no formatter, because a formatter over it would only let a
|
|
10
|
+
* host decorate someone else's brand name.
|
|
11
|
+
*/
|
|
12
|
+
export interface ThemeRetiredCopy {
|
|
13
|
+
/** Heading (i18n). */
|
|
14
|
+
title?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Compose the body. The default frame is English; a caller who translates `title` needs this
|
|
17
|
+
* too, or the notice is half-translated.
|
|
18
|
+
*
|
|
19
|
+
* `theme` is the retired **name**, not a label: what the tenant withdrew is gone from
|
|
20
|
+
* `identities`, so its label went with it. A host that keeps its own table of retired names is
|
|
21
|
+
* the reason this is a function rather than a string.
|
|
22
|
+
*/
|
|
23
|
+
formatDescription?: (parts: {
|
|
24
|
+
theme: string;
|
|
25
|
+
}) => string;
|
|
26
|
+
}
|
|
27
|
+
/** Resolve the copy once, so the toast and the panel's Alert cannot drift into two wordings. */
|
|
28
|
+
export declare function themeRetiredCopy({ title, formatDescription }: ThemeRetiredCopy, theme: string): {
|
|
29
|
+
title: string;
|
|
30
|
+
description: string;
|
|
31
|
+
};
|
|
32
|
+
export interface ThemeNoticeProps extends ThemeRetiredCopy {
|
|
33
|
+
/** Feed a second, separately-placed viewport. Defaults to the shared `toast` instance. */
|
|
34
|
+
toaster?: CreateToasterReturn;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* ThemeNotice — says, once, that the identity this user chose is no longer published.
|
|
38
|
+
*
|
|
39
|
+
* **Opt-in, and it renders nothing itself.** `KanzoThemeProvider` detects the retirement, clears
|
|
40
|
+
* the preference and holds the id in `retiredTheme`; it draws no surface, because a themer that
|
|
41
|
+
* draws its own surface is what `KanzoTheme` was deleted for (`index.test.ts` keeps it deleted).
|
|
42
|
+
* So mount this beside the host's own `<Toaster />` — it feeds that viewport and returns `null`.
|
|
43
|
+
*
|
|
44
|
+
* Why it is worth saying at all: the cascade already handled the colour. An attribute selector with
|
|
45
|
+
* no matching rule is inert, so a withdrawn id falls through to `:root`, which is the default
|
|
46
|
+
* identity. What is left is that somebody chose gold and is looking at blue, and silence makes that
|
|
47
|
+
* read as a bug in our product rather than a change in their client's.
|
|
48
|
+
*
|
|
49
|
+
* The panel says the same thing in `Preferences.Colour`, from the same state — and cannot always
|
|
50
|
+
* say it: that section hides itself below two published themes, so a tenant who retired their way
|
|
51
|
+
* down to one has this as the only surface left.
|
|
52
|
+
*/
|
|
53
|
+
export declare const ThemeNotice: ({ toaster, ...copy }?: ThemeNoticeProps) => null;
|
|
54
|
+
//# sourceMappingURL=theme-notice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-notice.d.ts","sourceRoot":"","sources":["../../src/composites/theme-notice.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAK/D;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC;CAC1D;AAMD,gGAAgG;AAChG,wBAAgB,gBAAgB,CAC9B,EAAE,KAAqB,EAAE,iBAAuC,EAAE,EAAE,gBAAgB,EACpF,KAAK,EAAE,MAAM,GACZ;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAExC;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,0FAA0F;IAC1F,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,GAAI,uBAAsC,gBAAqB,SAiBtF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as c from "react";
|
|
3
|
+
import { toast as s } from "../simples/toast.js";
|
|
4
|
+
import { useKanzoTheme as u } from "../theme/theme-context.js";
|
|
5
|
+
const f = "Brand updated", d = ({ theme: t }) => `“${t}” is no longer offered here. You are seeing the default.`;
|
|
6
|
+
function m({ title: t = f, formatDescription: r = d }, e) {
|
|
7
|
+
return { title: t, description: r({ theme: e }) };
|
|
8
|
+
}
|
|
9
|
+
const T = ({ toaster: t = s, ...r } = {}) => {
|
|
10
|
+
const { retiredTheme: e } = u(), { title: o, description: n } = m(r, e ?? ""), i = c.useRef(null);
|
|
11
|
+
return c.useEffect(() => {
|
|
12
|
+
!e || i.current === e || (i.current = e, t.create({ title: o, description: n, type: "info" }));
|
|
13
|
+
}, [e, o, n, t]), null;
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
T as ThemeNotice,
|
|
17
|
+
m as themeRetiredCopy
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=theme-notice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-notice.js","sources":["../../src/composites/theme-notice.tsx"],"sourcesContent":["\"use client\";\n\nimport type { CreateToasterReturn } from \"@ark-ui/react/toast\";\nimport * as React from \"react\";\nimport { toast as sharedToaster } from \"../simples/toast.js\";\nimport { useKanzoTheme } from \"../theme/KanzoThemeProvider.js\";\n\n/**\n * The copy for \"the theme you chose is no longer published\", shared by the two surfaces that\n * say it: this toast, and the `Alert` inside `Preferences.Colour`. One state, said once.\n *\n * Both strings are **library-authored English**, which is exactly the distinction `PreferencesColor`'s `formatSide`\n * draws with its `formatName`: the library wrote \"Light\" and \"Dark\", so a caller who translates the\n * app has to be able to translate them. A theme's `label` is the opposite case — the client\n * authored it, at runtime — and takes no formatter, because a formatter over it would only let a\n * host decorate someone else's brand name.\n */\nexport interface ThemeRetiredCopy {\n /** Heading (i18n). */\n title?: string;\n /**\n * Compose the body. The default frame is English; a caller who translates `title` needs this\n * too, or the notice is half-translated.\n *\n * `theme` is the retired **name**, not a label: what the tenant withdrew is gone from\n * `identities`, so its label went with it. A host that keeps its own table of retired names is\n * the reason this is a function rather than a string.\n */\n formatDescription?: (parts: { theme: string }) => string;\n}\n\nconst DEFAULT_TITLE = \"Brand updated\";\nconst DEFAULT_DESCRIPTION = ({ theme }: { theme: string }) =>\n `“${theme}” is no longer offered here. You are seeing the default.`;\n\n/** Resolve the copy once, so the toast and the panel's Alert cannot drift into two wordings. */\nexport function themeRetiredCopy(\n { title = DEFAULT_TITLE, formatDescription = DEFAULT_DESCRIPTION }: ThemeRetiredCopy,\n theme: string,\n): { title: string; description: string } {\n return { title, description: formatDescription({ theme }) };\n}\n\nexport interface ThemeNoticeProps extends ThemeRetiredCopy {\n /** Feed a second, separately-placed viewport. Defaults to the shared `toast` instance. */\n toaster?: CreateToasterReturn;\n}\n\n/**\n * ThemeNotice — says, once, that the identity this user chose is no longer published.\n *\n * **Opt-in, and it renders nothing itself.** `KanzoThemeProvider` detects the retirement, clears\n * the preference and holds the id in `retiredTheme`; it draws no surface, because a themer that\n * draws its own surface is what `KanzoTheme` was deleted for (`index.test.ts` keeps it deleted).\n * So mount this beside the host's own `<Toaster />` — it feeds that viewport and returns `null`.\n *\n * Why it is worth saying at all: the cascade already handled the colour. An attribute selector with\n * no matching rule is inert, so a withdrawn id falls through to `:root`, which is the default\n * identity. What is left is that somebody chose gold and is looking at blue, and silence makes that\n * read as a bug in our product rather than a change in their client's.\n *\n * The panel says the same thing in `Preferences.Colour`, from the same state — and cannot always\n * say it: that section hides itself below two published themes, so a tenant who retired their way\n * down to one has this as the only surface left.\n */\nexport const ThemeNotice = ({ toaster = sharedToaster, ...copy }: ThemeNoticeProps = {}) => {\n const { retiredTheme } = useKanzoTheme();\n const { title, description } = themeRetiredCopy(copy, retiredTheme ?? \"\");\n\n // Keyed on the id rather than a boolean: the provider's own ref guarantees it *detects* a\n // retirement once, not that this effect runs once. Two things still reach it — StrictMode's\n // double invocation when this mounts AFTER the detection (a host that renders the notice behind\n // a route), and an inline `formatDescription`, which is a new function on every render and so a\n // changed dep. Neither is the \"once per session\" question, which storage already answered.\n const said = React.useRef<string | null>(null);\n React.useEffect(() => {\n if (!retiredTheme || said.current === retiredTheme) return;\n said.current = retiredTheme;\n toaster.create({ title, description, type: \"info\" });\n }, [retiredTheme, title, description, toaster]);\n\n return null;\n};\n"],"names":[],"mappings":";;;;AA+BA;AAKO;AAIL;AACF;AAwBO;AACL;AASA;AACE;AAEmD;AAIvD;;;;;"}
|
package/dist/editor.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/editor.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editor.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export declare const REPO: string;
|
|
2
|
+
export interface Root {
|
|
3
|
+
/** The workspace directory name — `ui`, `ai`. The first segment of every path a guard reports. */
|
|
4
|
+
readonly name: string;
|
|
5
|
+
/** Absolute path to that package's `src/`. */
|
|
6
|
+
readonly src: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Every package the scans cover, derived from the workspace rather than hard-coded to two paths.
|
|
10
|
+
*
|
|
11
|
+
* `packages/*` is one of the two globs in `pnpm-workspace.yaml`, read here as a directory listing:
|
|
12
|
+
* the other is `docs`, which is not a library.
|
|
13
|
+
*/
|
|
14
|
+
export declare const ROOTS: readonly Root[];
|
|
15
|
+
/** `/Users/…/packages/ai/src/message.tsx` → `ai/message.tsx`. Throws rather than guessing. */
|
|
16
|
+
export declare function label(file: string): string;
|
|
17
|
+
/** The inverse, so a pinned list in a guard is spelled the way that guard's failures are. */
|
|
18
|
+
export declare function resolvePath(reported: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Every source file in the corpus, absolute, ordered by the path a failure would report.
|
|
21
|
+
*
|
|
22
|
+
* Tests are excluded: they quote the very spellings the rules ban, on purpose, and several of them
|
|
23
|
+
* assemble one at runtime to keep it out of Tailwind's scan.
|
|
24
|
+
*/
|
|
25
|
+
export declare function sourceFiles(extensions?: RegExp): string[];
|
|
26
|
+
/**
|
|
27
|
+
* Every subtree a scan has to reach, spelled as a path prefix: `ui/simples/`, `ui/charts/`, `ai/`.
|
|
28
|
+
*
|
|
29
|
+
* This replaces the hand-written `LAYERS` array that four of these guards each kept a copy of. Those
|
|
30
|
+
* arrays could only name what somebody remembered to add, which is the failure mode they existed to
|
|
31
|
+
* prevent — a walk that stops descending reports the same green as a real pass, and so does a walk
|
|
32
|
+
* that never learned about a directory added last week. Derived, a new layer and a new package are
|
|
33
|
+
* both covered without an edit; the assertion is that each entry contributed at least one file, so
|
|
34
|
+
* an empty directory added to the tree fails here rather than passing everywhere.
|
|
35
|
+
*
|
|
36
|
+
* A package with sources at the top of its `src/` contributes its bare name. `ai` is flat and that
|
|
37
|
+
* is not drift — it has ten modules and no layer to sort them into, which is why the layer-shaped
|
|
38
|
+
* rules in `logical-properties.test.ts` stay scoped to the package that has layers.
|
|
39
|
+
*/
|
|
40
|
+
export declare function subtrees(): string[];
|
|
41
|
+
/**
|
|
42
|
+
* The two assertions every one of these guards was making by hand, in the same words.
|
|
43
|
+
*
|
|
44
|
+
* A NUL byte makes `file(1)` and every `grep -I` treat a source file as binary and skip it in
|
|
45
|
+
* silence; `charts/chart-inputs.tsx` held one, in the largest file of the layer with the most colour
|
|
46
|
+
* in it. `readFileSync(…, "utf8")` reads it regardless, so none of these scans ever had that hole —
|
|
47
|
+
* but the next reader reaches for grep first, and a corpus that lies to grep is worth failing on.
|
|
48
|
+
* An empty file is the other half: a scan over nothing proves nothing.
|
|
49
|
+
*/
|
|
50
|
+
export declare function unreadable(files: string[]): {
|
|
51
|
+
binary: string[];
|
|
52
|
+
empty: string[];
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Where a colour stops being a grey and starts being somebody's palette.
|
|
56
|
+
*
|
|
57
|
+
* `0.1` in OKLab chroma, and it is the number the retired package used — carried over rather than
|
|
58
|
+
* re-picked, because moving it would silently change which literals the guard bites on and that
|
|
59
|
+
* migration was not the place to re-argue it.
|
|
60
|
+
*/
|
|
61
|
+
export declare const CHROMA_FLOOR = 0.1;
|
|
62
|
+
export { oklch } from '@kanzo-tech/theme';
|
|
63
|
+
//# sourceMappingURL=guard-corpus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guard-corpus.d.ts","sourceRoot":"","sources":["../src/guard-corpus.ts"],"names":[],"mappings":"AA6DA,eAAO,MAAM,IAAI,QAA4B,CAAC;AAE9C,MAAM,WAAW,IAAI;IACnB,kGAAkG;IAClG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAOD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EA6B7B,CAAC;AA0BL,8FAA8F;AAC9F,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1C;AAED,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUpD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,UAAU,SAAY,GAAG,MAAM,EAAE,CAY5D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,IAAI,MAAM,EAAE,CAYnC;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAKjF;AASD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,MAAM,CAAC;AAEhC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
export type { Appearance, AppearancePref, KanzoRadius, KanzoDensity, KanzoFont, KanzoMonoFont, KanzoThemeName, ThemeOption, } from '@kanzo-tech/theme';
|
|
2
|
+
export { KanzoThemeProvider, useKanzoTheme, cookieStorageAdapter } from './theme/KanzoThemeProvider.js';
|
|
3
|
+
export { KanzoTheme, type KanzoThemeProps } from './theme/KanzoTheme.js';
|
|
4
|
+
export type { KanzoThemeProviderProps, ThemePrefs, FontOption, ThemeStorage, AppearanceController, } from './theme/KanzoThemeProvider.js';
|
|
5
|
+
export { themeScript } from './theme/theme-script.js';
|
|
6
|
+
export type { ThemeScriptOptions } from './theme/theme-script.js';
|
|
7
|
+
export { Preferences, PreferencesRoot, PreferencesTrigger, PreferencesPanel, PreferencesField, PreferencesFieldSet, PreferencesColor, PreferencesRadius, PreferencesFont, PreferencesMonoFont, PreferencesDensity, PreferencesSections, } from './composites/Preferences.js';
|
|
8
|
+
export type { PreferencesProps, PreferencesRootProps, PreferencesColorProps, PreferencesSectionsProps, } from './composites/Preferences.js';
|
|
9
|
+
export { ThemeNotice } from './composites/theme-notice.js';
|
|
10
|
+
export type { ThemeNoticeProps, ThemeRetiredCopy } from './composites/theme-notice.js';
|
|
11
|
+
export { MadeWith } from './composites/MadeWith.js';
|
|
12
|
+
export type { MadeWithProps } from './composites/MadeWith.js';
|
|
13
|
+
export { Questionnaire, QuestionnaireProgress, QuestionnaireItem, QuestionnaireTitle, QuestionnaireDescription, QuestionnaireError, QuestionnaireChoices, QuestionnaireChoice, QuestionnaireInput, QuestionnaireTextarea, QuestionnaireActions, QuestionnairePrevious, QuestionnaireSkip, QuestionnaireNext, QuestionnaireSubmit, useQuestionnaire, useQuestionnaireItem, } from './composites/Questionnaire.js';
|
|
14
|
+
export type { QuestionnaireAnswer, QuestionnaireAnswers, QuestionnaireQuestion, QuestionnaireProps, QuestionnaireItemProps, QuestionnaireChoicesProps, QuestionnaireChoiceProps, QuestionnaireActionsProps, } from './composites/Questionnaire.js';
|
|
15
|
+
export { cn } from './lib/cn.js';
|
|
16
|
+
export { CHART_SLOTS, categoricalCapacity, categoricalColor, resolveTokenColor, } from './lib/token-color.js';
|
|
17
|
+
export { useChartCapacity, useThemeTick } from './lib/theme-tick.js';
|
|
18
|
+
export { createListCollection, useListCollection, } from '@ark-ui/react/collection';
|
|
19
|
+
export type { ListCollection, CollectionItem } from '@ark-ui/react/collection';
|
|
20
|
+
export { useFilter } from '@ark-ui/react/locale';
|
|
21
|
+
export { parseDate } from '@internationalized/date';
|
|
22
|
+
export type { DateValue } from '@internationalized/date';
|
|
23
|
+
export * from './simples/accordion.js';
|
|
24
|
+
export * from './simples/action-bar.js';
|
|
25
|
+
export * from './simples/alert.js';
|
|
26
|
+
export * from './simples/alert-dialog.js';
|
|
27
|
+
export * from './simples/avatar.js';
|
|
28
|
+
export * from './simples/badge.js';
|
|
29
|
+
export * from './simples/breadcrumb.js';
|
|
30
|
+
export * from './simples/button.js';
|
|
31
|
+
export * from './simples/button-group.js';
|
|
32
|
+
export * from './simples/calendar.js';
|
|
33
|
+
export * from './simples/card.js';
|
|
34
|
+
export * from './simples/checkbox.js';
|
|
35
|
+
export * from './simples/client-only.js';
|
|
36
|
+
export * from './simples/clipboard.js';
|
|
37
|
+
export * from './simples/download-trigger.js';
|
|
38
|
+
export * from './simples/color-picker.js';
|
|
39
|
+
export * from './simples/collapsible.js';
|
|
40
|
+
export * from './simples/combobox.js';
|
|
41
|
+
export * from './simples/command.js';
|
|
42
|
+
export * from './simples/data-list.js';
|
|
43
|
+
export * from './simples/date-picker.js';
|
|
44
|
+
export * from './simples/dialog.js';
|
|
45
|
+
export * from './simples/diagnostic.js';
|
|
46
|
+
export * from './simples/editable.js';
|
|
47
|
+
export * from './simples/field.js';
|
|
48
|
+
export * from './simples/file-upload.js';
|
|
49
|
+
export * from './simples/float.js';
|
|
50
|
+
export * from './simples/floating-panel.js';
|
|
51
|
+
export * from './simples/highlight.js';
|
|
52
|
+
export * from './simples/hover-card.js';
|
|
53
|
+
export * from './simples/image-cropper.js';
|
|
54
|
+
export * from './simples/input.js';
|
|
55
|
+
export * from './simples/input-group.js';
|
|
56
|
+
export * from './simples/item.js';
|
|
57
|
+
export * from './simples/json-tree-view.js';
|
|
58
|
+
export * from './simples/kbd.js';
|
|
59
|
+
export * from './simples/listbox.js';
|
|
60
|
+
export * from './simples/menu.js';
|
|
61
|
+
export * from './simples/native-select.js';
|
|
62
|
+
export * from './simples/number-input.js';
|
|
63
|
+
export * from './simples/pagination.js';
|
|
64
|
+
export * from './simples/password-input.js';
|
|
65
|
+
export * from './simples/pin-input.js';
|
|
66
|
+
export * from './simples/popover.js';
|
|
67
|
+
export * from './simples/progress.js';
|
|
68
|
+
export * from './simples/prose.js';
|
|
69
|
+
export * from './simples/radio-group.js';
|
|
70
|
+
export * from './simples/rating.js';
|
|
71
|
+
export * from './simples/segment-group.js';
|
|
72
|
+
export * from './simples/resizable.js';
|
|
73
|
+
export * from './simples/scroll-area.js';
|
|
74
|
+
export * from './simples/select.js';
|
|
75
|
+
export * from './simples/sheet.js';
|
|
76
|
+
export * from './simples/separator.js';
|
|
77
|
+
export * from './simples/show.js';
|
|
78
|
+
export * from './simples/skeleton.js';
|
|
79
|
+
export * from './simples/skip-nav.js';
|
|
80
|
+
export * from './simples/slider.js';
|
|
81
|
+
export * from './simples/spinner.js';
|
|
82
|
+
export * from './simples/stat-tile.js';
|
|
83
|
+
export * from './simples/suggestions.js';
|
|
84
|
+
export * from './simples/swatch.js';
|
|
85
|
+
export * from './simples/status.js';
|
|
86
|
+
export * from './simples/steps.js';
|
|
87
|
+
export * from './simples/switch.js';
|
|
88
|
+
export * from './simples/table.js';
|
|
89
|
+
export * from './simples/tabs.js';
|
|
90
|
+
export * from './simples/tags-input.js';
|
|
91
|
+
export * from './simples/textarea.js';
|
|
92
|
+
export * from './simples/toast.js';
|
|
93
|
+
export * from './simples/toggle.js';
|
|
94
|
+
export * from './simples/toggle-group.js';
|
|
95
|
+
export * from './simples/tooltip.js';
|
|
96
|
+
export * from './simples/tour.js';
|
|
97
|
+
export * from './simples/tree-view.js';
|
|
98
|
+
export { Link } from './simples/Link.js';
|
|
99
|
+
export type { LinkProps } from './simples/Link.js';
|
|
100
|
+
export { FieldArray } from './simples/FieldArray.js';
|
|
101
|
+
export type { FieldArrayProps } from './simples/FieldArray.js';
|
|
102
|
+
export { FacetFilter } from './simples/FacetFilter.js';
|
|
103
|
+
export type { FacetFilterProps, FacetFilterItem } from './simples/FacetFilter.js';
|
|
104
|
+
export { ShellRoot, ShellHeader, ShellBody, ShellAside, ShellMain, ShellFooter, } from './layouts/shell.js';
|
|
105
|
+
export type { ShellAsideProps } from './layouts/shell.js';
|
|
106
|
+
export { SectionRoot, SectionHeader, SectionIcon, SectionTitleGroup, SectionTitle, SectionDescription, SectionActions, SectionBody, SectionFooter, } from './layouts/section.js';
|
|
107
|
+
export type { SectionRootProps, SectionHeaderProps, SectionTitleProps, SectionBodyProps, } from './layouts/section.js';
|
|
108
|
+
export * from './composites/sidebar.js';
|
|
109
|
+
export { SidebarIdentity, SidebarIdentityAvatar, SidebarIdentityDescription, SidebarIdentityIcon, SidebarIdentityLabel, SidebarIdentityText, } from './composites/SidebarIdentity.js';
|
|
110
|
+
export type { SidebarIdentityProps } from './composites/SidebarIdentity.js';
|
|
111
|
+
export { isActivePath } from './lib/is-active-path.js';
|
|
112
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|