@k8ordo/ui 1.0.0
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/LICENSE +21 -0
- package/README.md +624 -0
- package/dist/components/_internal/focus-ring.d.mts +8 -0
- package/dist/components/_internal/focus-ring.mjs +8 -0
- package/dist/components/ai/_internal/collapsible.d.mts +13 -0
- package/dist/components/ai/_internal/collapsible.mjs +49 -0
- package/dist/components/ai/_internal/streaming-cursor.d.mts +5 -0
- package/dist/components/ai/_internal/streaming-cursor.mjs +8 -0
- package/dist/components/ai/conversation/conversation.d.mts +18 -0
- package/dist/components/ai/conversation/conversation.mjs +111 -0
- package/dist/components/ai/conversation/index.d.mts +2 -0
- package/dist/components/ai/conversation/index.mjs +2 -0
- package/dist/components/ai/index.d.mts +14 -0
- package/dist/components/ai/index.mjs +7 -0
- package/dist/components/ai/message/index.d.mts +2 -0
- package/dist/components/ai/message/index.mjs +2 -0
- package/dist/components/ai/message/message.d.mts +17 -0
- package/dist/components/ai/message/message.mjs +34 -0
- package/dist/components/ai/prompt-input/index.d.mts +2 -0
- package/dist/components/ai/prompt-input/index.mjs +2 -0
- package/dist/components/ai/prompt-input/prompt-input.d.mts +27 -0
- package/dist/components/ai/prompt-input/prompt-input.mjs +108 -0
- package/dist/components/ai/reasoning/index.d.mts +2 -0
- package/dist/components/ai/reasoning/index.mjs +2 -0
- package/dist/components/ai/reasoning/reasoning.d.mts +12 -0
- package/dist/components/ai/reasoning/reasoning.mjs +25 -0
- package/dist/components/ai/response/index.d.mts +2 -0
- package/dist/components/ai/response/index.mjs +2 -0
- package/dist/components/ai/response/response.d.mts +20 -0
- package/dist/components/ai/response/response.mjs +57 -0
- package/dist/components/ai/suggestion/index.d.mts +2 -0
- package/dist/components/ai/suggestion/index.mjs +2 -0
- package/dist/components/ai/suggestion/suggestion.d.mts +17 -0
- package/dist/components/ai/suggestion/suggestion.mjs +29 -0
- package/dist/components/ai/tool-invocation/index.d.mts +2 -0
- package/dist/components/ai/tool-invocation/index.mjs +2 -0
- package/dist/components/ai/tool-invocation/tool-invocation.d.mts +17 -0
- package/dist/components/ai/tool-invocation/tool-invocation.mjs +73 -0
- package/dist/components/ai/types.d.mts +5 -0
- package/dist/components/ai/types.mjs +1 -0
- package/dist/components/buttons/button/button.d.mts +27 -0
- package/dist/components/buttons/button/button.mjs +60 -0
- package/dist/components/buttons/button/index.d.mts +2 -0
- package/dist/components/buttons/button/index.mjs +2 -0
- package/dist/components/buttons/icon-button/icon-button.d.mts +29 -0
- package/dist/components/buttons/icon-button/icon-button.mjs +84 -0
- package/dist/components/buttons/icon-button/index.d.mts +2 -0
- package/dist/components/buttons/icon-button/index.mjs +2 -0
- package/dist/components/data-display/accordion/accordion-button.d.mts +5 -0
- package/dist/components/data-display/accordion/accordion-button.mjs +26 -0
- package/dist/components/data-display/accordion/accordion-item.d.mts +9 -0
- package/dist/components/data-display/accordion/accordion-item.mjs +20 -0
- package/dist/components/data-display/accordion/accordion-panel.d.mts +5 -0
- package/dist/components/data-display/accordion/accordion-panel.mjs +18 -0
- package/dist/components/data-display/accordion/accordion.d.mts +5 -0
- package/dist/components/data-display/accordion/accordion.mjs +8 -0
- package/dist/components/data-display/accordion/context.d.mts +14 -0
- package/dist/components/data-display/accordion/context.mjs +32 -0
- package/dist/components/data-display/accordion/index.d.mts +19 -0
- package/dist/components/data-display/accordion/index.mjs +13 -0
- package/dist/components/data-display/avatar/avatar.d.mts +14 -0
- package/dist/components/data-display/avatar/avatar.mjs +43 -0
- package/dist/components/data-display/avatar/index.d.mts +2 -0
- package/dist/components/data-display/avatar/index.mjs +2 -0
- package/dist/components/data-display/badge/badge.d.mts +21 -0
- package/dist/components/data-display/badge/badge.mjs +27 -0
- package/dist/components/data-display/badge/index.d.mts +2 -0
- package/dist/components/data-display/badge/index.mjs +2 -0
- package/dist/components/data-display/card/card.d.mts +10 -0
- package/dist/components/data-display/card/card.mjs +10 -0
- package/dist/components/data-display/card/index.d.mts +2 -0
- package/dist/components/data-display/card/index.mjs +2 -0
- package/dist/components/data-display/code/code.d.mts +8 -0
- package/dist/components/data-display/code/code.mjs +35 -0
- package/dist/components/data-display/code/find-all-colors.d.mts +16 -0
- package/dist/components/data-display/code/find-all-colors.mjs +267 -0
- package/dist/components/data-display/code/index.d.mts +2 -0
- package/dist/components/data-display/code/index.mjs +2 -0
- package/dist/components/data-display/heading/heading.d.mts +9 -0
- package/dist/components/data-display/heading/heading.mjs +46 -0
- package/dist/components/data-display/heading/index.d.mts +2 -0
- package/dist/components/data-display/heading/index.mjs +2 -0
- package/dist/components/data-display/table/index.d.mts +2 -0
- package/dist/components/data-display/table/index.mjs +2 -0
- package/dist/components/data-display/table/table.d.mts +33 -0
- package/dist/components/data-display/table/table.mjs +62 -0
- package/dist/components/feedback/alert/alert.d.mts +19 -0
- package/dist/components/feedback/alert/alert.mjs +71 -0
- package/dist/components/feedback/alert/index.d.mts +2 -0
- package/dist/components/feedback/alert/index.mjs +2 -0
- package/dist/components/feedback/progress/index.d.mts +2 -0
- package/dist/components/feedback/progress/index.mjs +2 -0
- package/dist/components/feedback/progress/progress.d.mts +11 -0
- package/dist/components/feedback/progress/progress.mjs +21 -0
- package/dist/components/feedback/skeleton/index.d.mts +2 -0
- package/dist/components/feedback/skeleton/index.mjs +2 -0
- package/dist/components/feedback/skeleton/skeleton.d.mts +10 -0
- package/dist/components/feedback/skeleton/skeleton.mjs +10 -0
- package/dist/components/feedback/spinner/index.d.mts +2 -0
- package/dist/components/feedback/spinner/index.mjs +2 -0
- package/dist/components/feedback/spinner/spinner.d.mts +9 -0
- package/dist/components/feedback/spinner/spinner.mjs +24 -0
- package/dist/components/feedback/toast/context.d.mts +34 -0
- package/dist/components/feedback/toast/context.mjs +7 -0
- package/dist/components/feedback/toast/index.d.mts +3 -0
- package/dist/components/feedback/toast/index.mjs +3 -0
- package/dist/components/feedback/toast/provider.d.mts +8 -0
- package/dist/components/feedback/toast/provider.mjs +171 -0
- package/dist/components/feedback/toast/toast.d.mts +15 -0
- package/dist/components/feedback/toast/toast.mjs +32 -0
- package/dist/components/form/autocomplete/autocomplete.d.mts +23 -0
- package/dist/components/form/autocomplete/autocomplete.mjs +225 -0
- package/dist/components/form/autocomplete/index.d.mts +2 -0
- package/dist/components/form/autocomplete/index.mjs +2 -0
- package/dist/components/form/checkbox/checkbox.d.mts +21 -0
- package/dist/components/form/checkbox/checkbox.mjs +59 -0
- package/dist/components/form/checkbox/index.d.mts +2 -0
- package/dist/components/form/checkbox/index.mjs +2 -0
- package/dist/components/form/checkbox-card/checkbox-card.d.mts +29 -0
- package/dist/components/form/checkbox-card/checkbox-card.mjs +76 -0
- package/dist/components/form/checkbox-card/index.d.mts +2 -0
- package/dist/components/form/checkbox-card/index.mjs +2 -0
- package/dist/components/form/checkbox-group/checkbox-group.d.mts +29 -0
- package/dist/components/form/checkbox-group/checkbox-group.mjs +43 -0
- package/dist/components/form/checkbox-group/index.d.mts +34 -0
- package/dist/components/form/checkbox-group/index.mjs +9 -0
- package/dist/components/form/file-field/file-field.d.mts +27 -0
- package/dist/components/form/file-field/file-field.mjs +129 -0
- package/dist/components/form/file-field/index.d.mts +2 -0
- package/dist/components/form/file-field/index.mjs +2 -0
- package/dist/components/form/form/form.d.mts +9 -0
- package/dist/components/form/form/form.mjs +11 -0
- package/dist/components/form/form/index.d.mts +2 -0
- package/dist/components/form/form/index.mjs +2 -0
- package/dist/components/form/form-control/form-control.d.mts +23 -0
- package/dist/components/form/form-control/form-control.mjs +61 -0
- package/dist/components/form/form-control/index.d.mts +2 -0
- package/dist/components/form/form-control/index.mjs +2 -0
- package/dist/components/form/number-field/cast.d.mts +4 -0
- package/dist/components/form/number-field/cast.mjs +32 -0
- package/dist/components/form/number-field/index.d.mts +2 -0
- package/dist/components/form/number-field/index.mjs +2 -0
- package/dist/components/form/number-field/number-field.d.mts +25 -0
- package/dist/components/form/number-field/number-field.mjs +115 -0
- package/dist/components/form/password-input/index.d.mts +2 -0
- package/dist/components/form/password-input/index.mjs +2 -0
- package/dist/components/form/password-input/password-input.d.mts +11 -0
- package/dist/components/form/password-input/password-input.mjs +36 -0
- package/dist/components/form/radio/index.d.mts +2 -0
- package/dist/components/form/radio/index.mjs +2 -0
- package/dist/components/form/radio/radio.d.mts +24 -0
- package/dist/components/form/radio/radio.mjs +51 -0
- package/dist/components/form/radio-card/index.d.mts +2 -0
- package/dist/components/form/radio-card/index.mjs +2 -0
- package/dist/components/form/radio-card/radio-card.d.mts +29 -0
- package/dist/components/form/radio-card/radio-card.mjs +74 -0
- package/dist/components/form/select/index.d.mts +2 -0
- package/dist/components/form/select/index.mjs +2 -0
- package/dist/components/form/select/select.d.mts +11 -0
- package/dist/components/form/select/select.mjs +33 -0
- package/dist/components/form/slider/index.d.mts +2 -0
- package/dist/components/form/slider/index.mjs +2 -0
- package/dist/components/form/slider/slider.d.mts +23 -0
- package/dist/components/form/slider/slider.mjs +50 -0
- package/dist/components/form/switch/index.d.mts +2 -0
- package/dist/components/form/switch/index.mjs +2 -0
- package/dist/components/form/switch/switch.d.mts +21 -0
- package/dist/components/form/switch/switch.mjs +50 -0
- package/dist/components/form/text-field/index.d.mts +2 -0
- package/dist/components/form/text-field/index.mjs +2 -0
- package/dist/components/form/text-field/text-field.d.mts +11 -0
- package/dist/components/form/text-field/text-field.mjs +19 -0
- package/dist/components/form/textarea/index.d.mts +2 -0
- package/dist/components/form/textarea/index.mjs +2 -0
- package/dist/components/form/textarea/textarea.d.mts +11 -0
- package/dist/components/form/textarea/textarea.mjs +38 -0
- package/dist/components/icons/base.d.mts +15 -0
- package/dist/components/icons/base.mjs +18 -0
- package/dist/components/icons/browsers.d.mts +9 -0
- package/dist/components/icons/browsers.mjs +891 -0
- package/dist/components/icons/color-scale.d.mts +6 -0
- package/dist/components/icons/color-scale.mjs +44 -0
- package/dist/components/icons/github-mark.d.mts +6 -0
- package/dist/components/icons/github-mark.mjs +19 -0
- package/dist/components/icons/index.d.mts +10 -0
- package/dist/components/icons/index.mjs +9 -0
- package/dist/components/icons/logo.d.mts +7 -0
- package/dist/components/icons/logo.mjs +29 -0
- package/dist/components/icons/lucide-deep.d.mts +9 -0
- package/dist/components/icons/lucide-imports.d.mts +65 -0
- package/dist/components/icons/lucide-imports.mjs +65 -0
- package/dist/components/icons/lucide.d.mts +69 -0
- package/dist/components/icons/lucide.mjs +256 -0
- package/dist/components/icons/qiita.d.mts +6 -0
- package/dist/components/icons/qiita.mjs +28 -0
- package/dist/components/icons/twitter.d.mts +6 -0
- package/dist/components/icons/twitter.mjs +20 -0
- package/dist/components/icons/vertical-writing.d.mts +6 -0
- package/dist/components/icons/vertical-writing.mjs +26 -0
- package/dist/components/index.d.mts +106 -0
- package/dist/components/index.mjs +57 -0
- package/dist/components/layout/_shared/gap.d.mts +11 -0
- package/dist/components/layout/_shared/gap.mjs +10 -0
- package/dist/components/layout/_shared/padding.d.mts +11 -0
- package/dist/components/layout/_shared/padding.mjs +10 -0
- package/dist/components/layout/grid/grid.d.mts +16 -0
- package/dist/components/layout/grid/grid.mjs +35 -0
- package/dist/components/layout/grid/index.d.mts +2 -0
- package/dist/components/layout/grid/index.mjs +2 -0
- package/dist/components/layout/scroll-linked/index.d.mts +2 -0
- package/dist/components/layout/scroll-linked/index.mjs +2 -0
- package/dist/components/layout/scroll-linked/scroll-linked.d.mts +14 -0
- package/dist/components/layout/scroll-linked/scroll-linked.mjs +59 -0
- package/dist/components/layout/separator/index.d.mts +2 -0
- package/dist/components/layout/separator/index.mjs +2 -0
- package/dist/components/layout/separator/separator.d.mts +9 -0
- package/dist/components/layout/separator/separator.mjs +14 -0
- package/dist/components/layout/stack/index.d.mts +2 -0
- package/dist/components/layout/stack/index.mjs +2 -0
- package/dist/components/layout/stack/stack.d.mts +15 -0
- package/dist/components/layout/stack/stack.mjs +24 -0
- package/dist/components/navigation/anchor/anchor.d.mts +20 -0
- package/dist/components/navigation/anchor/anchor.mjs +28 -0
- package/dist/components/navigation/anchor/index.d.mts +2 -0
- package/dist/components/navigation/anchor/index.mjs +2 -0
- package/dist/components/navigation/breadcrumb/breadcrumb.d.mts +19 -0
- package/dist/components/navigation/breadcrumb/breadcrumb.mjs +43 -0
- package/dist/components/navigation/breadcrumb/index.d.mts +14 -0
- package/dist/components/navigation/breadcrumb/index.mjs +10 -0
- package/dist/components/navigation/pagination/index.d.mts +2 -0
- package/dist/components/navigation/pagination/index.mjs +2 -0
- package/dist/components/navigation/pagination/pagination.d.mts +15 -0
- package/dist/components/navigation/pagination/pagination.mjs +74 -0
- package/dist/components/navigation/tabs/index.d.mts +2 -0
- package/dist/components/navigation/tabs/index.mjs +2 -0
- package/dist/components/navigation/tabs/tabs.d.mts +21 -0
- package/dist/components/navigation/tabs/tabs.mjs +130 -0
- package/dist/components/overlays/_internal/index.d.mts +4 -0
- package/dist/components/overlays/_internal/index.mjs +4 -0
- package/dist/components/overlays/_internal/modal-dialog-context.d.mts +14 -0
- package/dist/components/overlays/_internal/modal-dialog-context.mjs +13 -0
- package/dist/components/overlays/_internal/use-can-hover.d.mts +9 -0
- package/dist/components/overlays/_internal/use-can-hover.mjs +20 -0
- package/dist/components/overlays/_internal/use-hover-intent.d.mts +25 -0
- package/dist/components/overlays/_internal/use-hover-intent.mjs +56 -0
- package/dist/components/overlays/_internal/use-list-navigation.d.mts +36 -0
- package/dist/components/overlays/_internal/use-list-navigation.mjs +98 -0
- package/dist/components/overlays/dialog/dialog.d.mts +19 -0
- package/dist/components/overlays/dialog/dialog.mjs +87 -0
- package/dist/components/overlays/dialog/index.d.mts +2 -0
- package/dist/components/overlays/dialog/index.mjs +2 -0
- package/dist/components/overlays/drawer/drawer.d.mts +12 -0
- package/dist/components/overlays/drawer/drawer.mjs +60 -0
- package/dist/components/overlays/drawer/index.d.mts +2 -0
- package/dist/components/overlays/drawer/index.mjs +2 -0
- package/dist/components/overlays/dropdown-menu/dropdown-menu.d.mts +34 -0
- package/dist/components/overlays/dropdown-menu/dropdown-menu.mjs +85 -0
- package/dist/components/overlays/dropdown-menu/hooks.d.mts +24 -0
- package/dist/components/overlays/dropdown-menu/hooks.mjs +26 -0
- package/dist/components/overlays/dropdown-menu/index.d.mts +2 -0
- package/dist/components/overlays/dropdown-menu/index.mjs +2 -0
- package/dist/components/overlays/dropdown-menu/shared.d.mts +7 -0
- package/dist/components/overlays/dropdown-menu/shared.mjs +8 -0
- package/dist/components/overlays/dropdown-menu/sub-menu.d.mts +10 -0
- package/dist/components/overlays/dropdown-menu/sub-menu.mjs +143 -0
- package/dist/components/overlays/dropdown-menu/use-safe-triangle.d.mts +18 -0
- package/dist/components/overlays/dropdown-menu/use-safe-triangle.mjs +57 -0
- package/dist/components/overlays/list-box/hooks.d.mts +35 -0
- package/dist/components/overlays/list-box/hooks.mjs +43 -0
- package/dist/components/overlays/list-box/index.d.mts +2 -0
- package/dist/components/overlays/list-box/index.mjs +2 -0
- package/dist/components/overlays/list-box/list-box.d.mts +28 -0
- package/dist/components/overlays/list-box/list-box.mjs +150 -0
- package/dist/components/overlays/modal/index.d.mts +2 -0
- package/dist/components/overlays/modal/index.mjs +2 -0
- package/dist/components/overlays/modal/modal.d.mts +15 -0
- package/dist/components/overlays/modal/modal.mjs +72 -0
- package/dist/components/overlays/popover/anchor-positioning.d.mts +26 -0
- package/dist/components/overlays/popover/anchor-positioning.mjs +49 -0
- package/dist/components/overlays/popover/escape-stack.d.mts +7 -0
- package/dist/components/overlays/popover/escape-stack.mjs +34 -0
- package/dist/components/overlays/popover/hooks.d.mts +53 -0
- package/dist/components/overlays/popover/hooks.mjs +141 -0
- package/dist/components/overlays/popover/index.d.mts +3 -0
- package/dist/components/overlays/popover/index.mjs +3 -0
- package/dist/components/overlays/popover/popover.d.mts +25 -0
- package/dist/components/overlays/popover/popover.mjs +90 -0
- package/dist/components/overlays/tooltip/bridge.d.mts +5 -0
- package/dist/components/overlays/tooltip/bridge.mjs +29 -0
- package/dist/components/overlays/tooltip/index.d.mts +2 -0
- package/dist/components/overlays/tooltip/index.mjs +2 -0
- package/dist/components/overlays/tooltip/tooltip.d.mts +34 -0
- package/dist/components/overlays/tooltip/tooltip.mjs +87 -0
- package/dist/components/providers/index.d.mts +4 -0
- package/dist/components/providers/index.mjs +3 -0
- package/dist/components/providers/portal-root.d.mts +8 -0
- package/dist/components/providers/portal-root.mjs +12 -0
- package/dist/components/providers/ui-provider.d.mts +8 -0
- package/dist/components/providers/ui-provider.mjs +11 -0
- package/dist/helpers/chain.d.mts +5 -0
- package/dist/helpers/chain.mjs +29 -0
- package/dist/helpers/cn.d.mts +5 -0
- package/dist/helpers/cn.mjs +27 -0
- package/dist/helpers/create-safe-context.d.mts +6 -0
- package/dist/helpers/create-safe-context.mjs +30 -0
- package/dist/helpers/index.d.mts +6 -0
- package/dist/helpers/index.mjs +6 -0
- package/dist/helpers/merge-props.d.mts +6 -0
- package/dist/helpers/merge-props.mjs +56 -0
- package/dist/helpers/merge-refs.d.mts +5 -0
- package/dist/helpers/merge-refs.mjs +55 -0
- package/dist/hooks/breakpoint/index.d.mts +5 -0
- package/dist/hooks/breakpoint/index.mjs +24 -0
- package/dist/hooks/click-away/index.d.mts +5 -0
- package/dist/hooks/click-away/index.mjs +24 -0
- package/dist/hooks/client/index.d.mts +4 -0
- package/dist/hooks/client/index.mjs +6 -0
- package/dist/hooks/clipboard/index.d.mts +7 -0
- package/dist/hooks/clipboard/index.mjs +15 -0
- package/dist/hooks/controllable-state/index.d.mts +9 -0
- package/dist/hooks/controllable-state/index.mjs +21 -0
- package/dist/hooks/debounced-transition/index.d.mts +5 -0
- package/dist/hooks/debounced-transition/index.mjs +49 -0
- package/dist/hooks/deferred-debounce/index.d.mts +4 -0
- package/dist/hooks/deferred-debounce/index.mjs +9 -0
- package/dist/hooks/disclosure/index.d.mts +10 -0
- package/dist/hooks/disclosure/index.mjs +20 -0
- package/dist/hooks/focus-trap/index.d.mts +18 -0
- package/dist/hooks/focus-trap/index.mjs +51 -0
- package/dist/hooks/hash/index.d.mts +4 -0
- package/dist/hooks/hash/index.mjs +25 -0
- package/dist/hooks/hover/index.d.mts +12 -0
- package/dist/hooks/hover/index.mjs +19 -0
- package/dist/hooks/index.d.mts +25 -0
- package/dist/hooks/index.mjs +24 -0
- package/dist/hooks/intersection-observer/index.d.mts +3 -0
- package/dist/hooks/intersection-observer/index.mjs +3 -0
- package/dist/hooks/intersection-observer/use-in-view.d.mts +11 -0
- package/dist/hooks/intersection-observer/use-in-view.mjs +18 -0
- package/dist/hooks/intersection-observer/use-intersection-observer.d.mts +11 -0
- package/dist/hooks/intersection-observer/use-intersection-observer.mjs +33 -0
- package/dist/hooks/interval/index.d.mts +4 -0
- package/dist/hooks/interval/index.mjs +19 -0
- package/dist/hooks/local-storage/index.d.mts +4 -0
- package/dist/hooks/local-storage/index.mjs +46 -0
- package/dist/hooks/resize/index.d.mts +8 -0
- package/dist/hooks/resize/index.mjs +24 -0
- package/dist/hooks/scroll-direction/index.d.mts +13 -0
- package/dist/hooks/scroll-direction/index.mjs +67 -0
- package/dist/hooks/scroll-lock/index.d.mts +9 -0
- package/dist/hooks/scroll-lock/index.mjs +59 -0
- package/dist/hooks/session-storage/index.d.mts +4 -0
- package/dist/hooks/session-storage/index.mjs +46 -0
- package/dist/hooks/step/index.d.mts +15 -0
- package/dist/hooks/step/index.mjs +39 -0
- package/dist/hooks/timeout/index.d.mts +4 -0
- package/dist/hooks/timeout/index.mjs +19 -0
- package/dist/hooks/window-resize/index.d.mts +11 -0
- package/dist/hooks/window-resize/index.mjs +21 -0
- package/dist/hooks/window-size/index.d.mts +8 -0
- package/dist/hooks/window-size/index.mjs +31 -0
- package/dist/hooks/writing-mode/index.d.mts +6 -0
- package/dist/hooks/writing-mode/index.mjs +24 -0
- package/dist/i18n/context.d.mts +9 -0
- package/dist/i18n/context.mjs +19 -0
- package/dist/i18n/en.d.mts +5 -0
- package/dist/i18n/en.mjs +64 -0
- package/dist/i18n/index.d.mts +5 -0
- package/dist/i18n/index.mjs +4 -0
- package/dist/i18n/ja.d.mts +5 -0
- package/dist/i18n/ja.mjs +64 -0
- package/dist/i18n/messages.d.mts +84 -0
- package/dist/i18n/messages.mjs +1 -0
- package/dist/index.d.mts +94 -0
- package/dist/index.mjs +85 -0
- package/dist/integrations/_shared/openui-defs.d.mts +18 -0
- package/dist/integrations/_shared/openui-defs.mjs +162 -0
- package/dist/integrations/_shared/renderers.d.mts +71 -0
- package/dist/integrations/_shared/renderers.mjs +679 -0
- package/dist/integrations/_shared/schemas.d.mts +718 -0
- package/dist/integrations/_shared/schemas.mjs +545 -0
- package/dist/integrations/ai-sdk/index.d.mts +3 -0
- package/dist/integrations/ai-sdk/index.mjs +2 -0
- package/dist/integrations/ai-sdk/map-parts.d.mts +28 -0
- package/dist/integrations/ai-sdk/map-parts.mjs +32 -0
- package/dist/integrations/json-render/catalog.d.mts +838 -0
- package/dist/integrations/json-render/catalog.mjs +311 -0
- package/dist/integrations/json-render/registry.d.mts +29 -0
- package/dist/integrations/json-render/registry.mjs +159 -0
- package/dist/integrations/openui/form-views.d.mts +21 -0
- package/dist/integrations/openui/form-views.mjs +66 -0
- package/dist/integrations/openui/library.d.mts +151 -0
- package/dist/integrations/openui/library.mjs +69 -0
- package/dist/integrations/openui/prompt.d.mts +5 -0
- package/dist/integrations/openui/prompt.mjs +19 -0
- package/dist/internal/clamp.d.mts +4 -0
- package/dist/internal/clamp.mjs +15 -0
- package/dist/internal/to-precision.d.mts +4 -0
- package/dist/internal/to-precision.mjs +15 -0
- package/dist/styles/base.css +315 -0
- package/dist/styles/index.css +2677 -0
- package/dist/styles/tailwind.css +22 -0
- package/dist/styles/tokens.css +380 -0
- package/dist/styles/tokens.d.mts +2 -0
- package/dist/styles/tokens.generated.d.mts +840 -0
- package/dist/styles/tokens.generated.mjs +813 -0
- package/dist/styles/tokens.mjs +2 -0
- package/dist/styles/utilities.css +62 -0
- package/dist/types/index.d.mts +2 -0
- package/dist/types/index.mjs +1 -0
- package/dist/types/variables.d.mts +23 -0
- package/dist/types/variables.mjs +1 -0
- package/docs/GUIDE.md +324 -0
- package/docs/llms.txt +25 -0
- package/docs/props.generated.json +3519 -0
- package/docs/references/ai-chat.md +354 -0
- package/docs/references/color.md +121 -0
- package/docs/references/components.md +1466 -0
- package/docs/references/generative-ui.md +112 -0
- package/docs/references/helpers.md +120 -0
- package/docs/references/hooks.md +314 -0
- package/docs/references/interaction-design.md +95 -0
- package/docs/references/spatial-design.md +137 -0
- package/docs/references/typography.md +110 -0
- package/package.json +197 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
//#region src/hooks/intersection-observer/use-intersection-observer.d.ts
|
|
3
|
+
type UseIntersectionObserverOptions = {
|
|
4
|
+
threshold?: number | number[];
|
|
5
|
+
root?: Element | null;
|
|
6
|
+
rootMargin?: string;
|
|
7
|
+
once?: boolean;
|
|
8
|
+
};
|
|
9
|
+
declare const useIntersectionObserver: <T extends Element = HTMLElement>(ref: RefObject<T | null>, callback: (entry: IntersectionObserverEntry) => void, options?: UseIntersectionObserverOptions) => void;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { useIntersectionObserver };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
//#region src/hooks/intersection-observer/use-intersection-observer.ts
|
|
4
|
+
const useIntersectionObserver = (ref, callback, options = {}) => {
|
|
5
|
+
const { threshold = 0, root = null, rootMargin = "0px", once = false } = options;
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
const element = ref.current;
|
|
8
|
+
if (!element) return void 0;
|
|
9
|
+
const observer = new IntersectionObserver(([entry]) => {
|
|
10
|
+
if (entry) {
|
|
11
|
+
callback(entry);
|
|
12
|
+
if (once && entry.isIntersecting) observer.disconnect();
|
|
13
|
+
}
|
|
14
|
+
}, {
|
|
15
|
+
threshold,
|
|
16
|
+
root,
|
|
17
|
+
rootMargin
|
|
18
|
+
});
|
|
19
|
+
observer.observe(element);
|
|
20
|
+
return () => {
|
|
21
|
+
observer.disconnect();
|
|
22
|
+
};
|
|
23
|
+
}, [
|
|
24
|
+
ref,
|
|
25
|
+
callback,
|
|
26
|
+
threshold,
|
|
27
|
+
root,
|
|
28
|
+
rootMargin,
|
|
29
|
+
once
|
|
30
|
+
]);
|
|
31
|
+
};
|
|
32
|
+
//#endregion
|
|
33
|
+
export { useIntersectionObserver };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
//#region src/hooks/interval/index.ts
|
|
4
|
+
const useInterval = (callback, timeout) => {
|
|
5
|
+
const callbackRef = useRef(callback);
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
callbackRef.current = callback;
|
|
8
|
+
});
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
const intervalId = window.setInterval(() => {
|
|
11
|
+
callbackRef.current();
|
|
12
|
+
}, timeout);
|
|
13
|
+
return () => {
|
|
14
|
+
window.clearInterval(intervalId);
|
|
15
|
+
};
|
|
16
|
+
}, [timeout]);
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
19
|
+
export { useInterval };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useMemo, useRef, useSyncExternalStore } from "react";
|
|
3
|
+
//#region src/hooks/local-storage/index.ts
|
|
4
|
+
const dispatchStorageEvent = (key, newValue) => window.dispatchEvent(new StorageEvent("storage", {
|
|
5
|
+
key,
|
|
6
|
+
newValue
|
|
7
|
+
}));
|
|
8
|
+
const getLocalStorageItem = (key) => window.localStorage.getItem(key);
|
|
9
|
+
const localStorageSubscribe = (cb) => {
|
|
10
|
+
window.addEventListener("storage", cb);
|
|
11
|
+
return () => {
|
|
12
|
+
window.removeEventListener("storage", cb);
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
const useLocalStorage = (key, initialValue) => {
|
|
16
|
+
const initialValueRef = useRef(initialValue);
|
|
17
|
+
const getSnapshot = () => getLocalStorageItem(key);
|
|
18
|
+
const store = useSyncExternalStore(localStorageSubscribe, getSnapshot, () => null);
|
|
19
|
+
const current = useMemo(() => {
|
|
20
|
+
try {
|
|
21
|
+
if (store === null) return initialValueRef.current;
|
|
22
|
+
return JSON.parse(store);
|
|
23
|
+
} catch (e) {
|
|
24
|
+
console.error(e);
|
|
25
|
+
return initialValueRef.current;
|
|
26
|
+
}
|
|
27
|
+
}, [store]);
|
|
28
|
+
const handleRemove = useCallback(() => {
|
|
29
|
+
window.localStorage.removeItem(key);
|
|
30
|
+
dispatchStorageEvent(key, null);
|
|
31
|
+
}, [key]);
|
|
32
|
+
return [
|
|
33
|
+
current,
|
|
34
|
+
useCallback((value) => {
|
|
35
|
+
if (value === void 0 || value === null) handleRemove();
|
|
36
|
+
else {
|
|
37
|
+
const stringifiedValue = JSON.stringify(value);
|
|
38
|
+
window.localStorage.setItem(key, stringifiedValue);
|
|
39
|
+
dispatchStorageEvent(key, stringifiedValue);
|
|
40
|
+
}
|
|
41
|
+
}, [key, handleRemove]),
|
|
42
|
+
handleRemove
|
|
43
|
+
];
|
|
44
|
+
};
|
|
45
|
+
//#endregion
|
|
46
|
+
export { useLocalStorage };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
//#region src/hooks/resize/index.d.ts
|
|
3
|
+
type Options = {
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
};
|
|
6
|
+
declare const useResize: <T extends Element = HTMLElement>(ref: RefObject<T | null>, callback: (entry: ResizeObserverEntry) => void, options?: Options) => void;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { useResize };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
//#region src/hooks/resize/index.ts
|
|
4
|
+
const useResize = (ref, callback, options = {}) => {
|
|
5
|
+
const { enabled = true } = options;
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
if (!enabled) return void 0;
|
|
8
|
+
const element = ref.current;
|
|
9
|
+
if (!element) return void 0;
|
|
10
|
+
const observer = new ResizeObserver((entries) => {
|
|
11
|
+
for (const entry of entries) callback(entry);
|
|
12
|
+
});
|
|
13
|
+
observer.observe(element);
|
|
14
|
+
return () => {
|
|
15
|
+
observer.disconnect();
|
|
16
|
+
};
|
|
17
|
+
}, [
|
|
18
|
+
ref,
|
|
19
|
+
callback,
|
|
20
|
+
enabled
|
|
21
|
+
]);
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
export { useResize };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
//#region src/hooks/scroll-direction/index.d.ts
|
|
3
|
+
type ScrollDirection = {
|
|
4
|
+
x: 'left' | 'right';
|
|
5
|
+
y: 'up' | 'down';
|
|
6
|
+
};
|
|
7
|
+
type UseScrollDirectionOptions = {
|
|
8
|
+
threshold?: number;
|
|
9
|
+
target?: RefObject<HTMLElement | null>;
|
|
10
|
+
};
|
|
11
|
+
declare const useScrollDirection: (options?: UseScrollDirectionOptions) => ScrollDirection;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { useScrollDirection };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useRef, useSyncExternalStore } from "react";
|
|
3
|
+
//#region src/hooks/scroll-direction/index.ts
|
|
4
|
+
const SERVER_SNAPSHOT = {
|
|
5
|
+
x: "right",
|
|
6
|
+
y: "up"
|
|
7
|
+
};
|
|
8
|
+
const getServerSnapshot = () => SERVER_SNAPSHOT;
|
|
9
|
+
const useScrollDirection = (options = {}) => {
|
|
10
|
+
const { threshold = 50, target } = options;
|
|
11
|
+
const stateRef = useRef({
|
|
12
|
+
direction: {
|
|
13
|
+
x: "right",
|
|
14
|
+
y: "up"
|
|
15
|
+
},
|
|
16
|
+
prevScrollX: 0,
|
|
17
|
+
prevScrollY: 0
|
|
18
|
+
});
|
|
19
|
+
const subscribe = useCallback((callback) => {
|
|
20
|
+
const element = target?.current ?? null;
|
|
21
|
+
const eventTarget = element ?? window;
|
|
22
|
+
const getScroll = () => {
|
|
23
|
+
if (element) return {
|
|
24
|
+
x: element.scrollLeft,
|
|
25
|
+
y: element.scrollTop
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
x: window.scrollX,
|
|
29
|
+
y: window.scrollY
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
const handleScroll = () => {
|
|
33
|
+
const { x: currentScrollX, y: currentScrollY } = getScroll();
|
|
34
|
+
const state = stateRef.current;
|
|
35
|
+
let changed = false;
|
|
36
|
+
const newDirection = { ...state.direction };
|
|
37
|
+
if (currentScrollY > state.prevScrollY && currentScrollY > threshold && newDirection.y !== "down") {
|
|
38
|
+
newDirection.y = "down";
|
|
39
|
+
changed = true;
|
|
40
|
+
} else if (currentScrollY < state.prevScrollY && newDirection.y !== "up") {
|
|
41
|
+
newDirection.y = "up";
|
|
42
|
+
changed = true;
|
|
43
|
+
}
|
|
44
|
+
if (currentScrollX > state.prevScrollX && currentScrollX > threshold && newDirection.x !== "right") {
|
|
45
|
+
newDirection.x = "right";
|
|
46
|
+
changed = true;
|
|
47
|
+
} else if (currentScrollX < state.prevScrollX && newDirection.x !== "left") {
|
|
48
|
+
newDirection.x = "left";
|
|
49
|
+
changed = true;
|
|
50
|
+
}
|
|
51
|
+
stateRef.current = {
|
|
52
|
+
direction: newDirection,
|
|
53
|
+
prevScrollX: currentScrollX,
|
|
54
|
+
prevScrollY: currentScrollY
|
|
55
|
+
};
|
|
56
|
+
if (changed) callback();
|
|
57
|
+
};
|
|
58
|
+
eventTarget.addEventListener("scroll", handleScroll, { passive: true });
|
|
59
|
+
return () => {
|
|
60
|
+
eventTarget.removeEventListener("scroll", handleScroll);
|
|
61
|
+
};
|
|
62
|
+
}, [threshold, target]);
|
|
63
|
+
const getSnapshot = () => stateRef.current.direction;
|
|
64
|
+
return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
65
|
+
};
|
|
66
|
+
//#endregion
|
|
67
|
+
export { useScrollDirection };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RefObject } from "react";
|
|
2
|
+
//#region src/hooks/scroll-lock/index.d.ts
|
|
3
|
+
type UseScrollLockReturn = {
|
|
4
|
+
lock: () => void;
|
|
5
|
+
unlock: () => void;
|
|
6
|
+
};
|
|
7
|
+
declare const useScrollLock: (target?: RefObject<HTMLElement | null>) => UseScrollLockReturn;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { useScrollLock };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useEffect, useRef } from "react";
|
|
3
|
+
//#region src/hooks/scroll-lock/index.ts
|
|
4
|
+
const lockRegistry = /* @__PURE__ */ new WeakMap();
|
|
5
|
+
const resolveTarget = (target) => target?.current ?? document.body;
|
|
6
|
+
const useScrollLock = (target) => {
|
|
7
|
+
const isLockedRef = useRef(false);
|
|
8
|
+
const lockedElementRef = useRef(null);
|
|
9
|
+
const lock = useCallback(() => {
|
|
10
|
+
if (isLockedRef.current) return;
|
|
11
|
+
const element = resolveTarget(target);
|
|
12
|
+
isLockedRef.current = true;
|
|
13
|
+
lockedElementRef.current = element;
|
|
14
|
+
const entry = lockRegistry.get(element);
|
|
15
|
+
if (entry) entry.count++;
|
|
16
|
+
else {
|
|
17
|
+
lockRegistry.set(element, {
|
|
18
|
+
count: 1,
|
|
19
|
+
originalOverflow: element.style.overflow
|
|
20
|
+
});
|
|
21
|
+
element.style.overflow = "hidden";
|
|
22
|
+
}
|
|
23
|
+
}, [target]);
|
|
24
|
+
const unlock = useCallback(() => {
|
|
25
|
+
if (!isLockedRef.current) return;
|
|
26
|
+
const element = lockedElementRef.current;
|
|
27
|
+
if (!element) return;
|
|
28
|
+
isLockedRef.current = false;
|
|
29
|
+
lockedElementRef.current = null;
|
|
30
|
+
const entry = lockRegistry.get(element);
|
|
31
|
+
if (!entry) return;
|
|
32
|
+
entry.count--;
|
|
33
|
+
if (entry.count === 0) {
|
|
34
|
+
element.style.overflow = entry.originalOverflow;
|
|
35
|
+
lockRegistry.delete(element);
|
|
36
|
+
}
|
|
37
|
+
}, []);
|
|
38
|
+
useEffect(() => () => {
|
|
39
|
+
if (isLockedRef.current) {
|
|
40
|
+
const element = lockedElementRef.current;
|
|
41
|
+
isLockedRef.current = false;
|
|
42
|
+
lockedElementRef.current = null;
|
|
43
|
+
if (!element) return;
|
|
44
|
+
const entry = lockRegistry.get(element);
|
|
45
|
+
if (!entry) return;
|
|
46
|
+
entry.count--;
|
|
47
|
+
if (entry.count === 0) {
|
|
48
|
+
element.style.overflow = entry.originalOverflow;
|
|
49
|
+
lockRegistry.delete(element);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}, []);
|
|
53
|
+
return {
|
|
54
|
+
lock,
|
|
55
|
+
unlock
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
//#endregion
|
|
59
|
+
export { useScrollLock };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useMemo, useRef, useSyncExternalStore } from "react";
|
|
3
|
+
//#region src/hooks/session-storage/index.ts
|
|
4
|
+
const dispatchStorageEvent = (key, newValue) => window.dispatchEvent(new StorageEvent("storage", {
|
|
5
|
+
key,
|
|
6
|
+
newValue
|
|
7
|
+
}));
|
|
8
|
+
const getSessionStorageItem = (key) => window.sessionStorage.getItem(key);
|
|
9
|
+
const sessionStorageSubscribe = (cb) => {
|
|
10
|
+
window.addEventListener("storage", cb);
|
|
11
|
+
return () => {
|
|
12
|
+
window.removeEventListener("storage", cb);
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
const useSessionStorage = (key, initialValue) => {
|
|
16
|
+
const initialValueRef = useRef(initialValue);
|
|
17
|
+
const getSnapshot = () => getSessionStorageItem(key);
|
|
18
|
+
const store = useSyncExternalStore(sessionStorageSubscribe, getSnapshot, () => null);
|
|
19
|
+
const current = useMemo(() => {
|
|
20
|
+
try {
|
|
21
|
+
if (store === null) return initialValueRef.current;
|
|
22
|
+
return JSON.parse(store);
|
|
23
|
+
} catch (e) {
|
|
24
|
+
console.error(e);
|
|
25
|
+
return initialValueRef.current;
|
|
26
|
+
}
|
|
27
|
+
}, [store]);
|
|
28
|
+
const handleRemove = useCallback(() => {
|
|
29
|
+
window.sessionStorage.removeItem(key);
|
|
30
|
+
dispatchStorageEvent(key, null);
|
|
31
|
+
}, [key]);
|
|
32
|
+
return [
|
|
33
|
+
current,
|
|
34
|
+
useCallback((value) => {
|
|
35
|
+
if (value === void 0 || value === null) handleRemove();
|
|
36
|
+
else {
|
|
37
|
+
const stringifiedValue = JSON.stringify(value);
|
|
38
|
+
window.sessionStorage.setItem(key, stringifiedValue);
|
|
39
|
+
dispatchStorageEvent(key, stringifiedValue);
|
|
40
|
+
}
|
|
41
|
+
}, [key, handleRemove]),
|
|
42
|
+
handleRemove
|
|
43
|
+
];
|
|
44
|
+
};
|
|
45
|
+
//#endregion
|
|
46
|
+
export { useSessionStorage };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/hooks/step/index.d.ts
|
|
2
|
+
type Step = {
|
|
3
|
+
count: number;
|
|
4
|
+
next: () => void;
|
|
5
|
+
back: () => void;
|
|
6
|
+
isDisabledBack: boolean;
|
|
7
|
+
isDisabledNext: boolean;
|
|
8
|
+
};
|
|
9
|
+
type UseStep = (props: {
|
|
10
|
+
initialCount: number;
|
|
11
|
+
maxCount: number;
|
|
12
|
+
}) => Step;
|
|
13
|
+
declare const useStep: UseStep;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { useStep };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
|
+
//#region src/hooks/step/index.ts
|
|
4
|
+
const useStep = ({ initialCount, maxCount }) => {
|
|
5
|
+
const [count, setCount] = useState(initialCount);
|
|
6
|
+
const isDisabledBack = count === initialCount;
|
|
7
|
+
const isDisabledNext = count === maxCount;
|
|
8
|
+
const back = useCallback(() => {
|
|
9
|
+
setCount((prev) => {
|
|
10
|
+
if (prev === initialCount) return prev;
|
|
11
|
+
return prev - 1;
|
|
12
|
+
});
|
|
13
|
+
}, [initialCount]);
|
|
14
|
+
const next = useCallback(() => {
|
|
15
|
+
setCount((prev) => {
|
|
16
|
+
if (prev === maxCount) return prev;
|
|
17
|
+
return prev + 1;
|
|
18
|
+
});
|
|
19
|
+
}, [maxCount]);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
const listener = (e) => {
|
|
22
|
+
if (e.key === "ArrowLeft") back();
|
|
23
|
+
if (e.key === "ArrowRight") next();
|
|
24
|
+
};
|
|
25
|
+
window.addEventListener("keydown", listener);
|
|
26
|
+
return () => {
|
|
27
|
+
window.removeEventListener("keydown", listener);
|
|
28
|
+
};
|
|
29
|
+
}, [back, next]);
|
|
30
|
+
return {
|
|
31
|
+
count,
|
|
32
|
+
next,
|
|
33
|
+
back,
|
|
34
|
+
isDisabledBack,
|
|
35
|
+
isDisabledNext
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
//#endregion
|
|
39
|
+
export { useStep };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
//#region src/hooks/timeout/index.ts
|
|
4
|
+
const useTimeout = (callback, delay) => {
|
|
5
|
+
const callbackRef = useRef(callback);
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
callbackRef.current = callback;
|
|
8
|
+
});
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
const timeoutId = window.setTimeout(() => {
|
|
11
|
+
callbackRef.current();
|
|
12
|
+
}, delay);
|
|
13
|
+
return () => {
|
|
14
|
+
window.clearTimeout(timeoutId);
|
|
15
|
+
};
|
|
16
|
+
}, [delay]);
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
19
|
+
export { useTimeout };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/hooks/window-resize/index.d.ts
|
|
2
|
+
type Size = {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
};
|
|
6
|
+
type Options = {
|
|
7
|
+
enabled?: boolean;
|
|
8
|
+
};
|
|
9
|
+
declare const useWindowResize: (callback: (size: Size) => void, options?: Options) => void;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { useWindowResize };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
//#region src/hooks/window-resize/index.ts
|
|
4
|
+
const useWindowResize = (callback, options = {}) => {
|
|
5
|
+
const { enabled = true } = options;
|
|
6
|
+
useEffect(() => {
|
|
7
|
+
if (!enabled) return void 0;
|
|
8
|
+
const handleResize = () => {
|
|
9
|
+
callback({
|
|
10
|
+
width: window.innerWidth,
|
|
11
|
+
height: window.innerHeight
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
window.addEventListener("resize", handleResize);
|
|
15
|
+
return () => {
|
|
16
|
+
window.removeEventListener("resize", handleResize);
|
|
17
|
+
};
|
|
18
|
+
}, [callback, enabled]);
|
|
19
|
+
};
|
|
20
|
+
//#endregion
|
|
21
|
+
export { useWindowResize };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useSyncExternalStore } from "react";
|
|
3
|
+
//#region src/hooks/window-size/index.ts
|
|
4
|
+
let cachedSnapshot = {
|
|
5
|
+
width: 0,
|
|
6
|
+
height: 0
|
|
7
|
+
};
|
|
8
|
+
const getSnapshot = () => {
|
|
9
|
+
const w = window.innerWidth;
|
|
10
|
+
const h = window.innerHeight;
|
|
11
|
+
if (cachedSnapshot.width === w && cachedSnapshot.height === h) return cachedSnapshot;
|
|
12
|
+
cachedSnapshot = {
|
|
13
|
+
width: w,
|
|
14
|
+
height: h
|
|
15
|
+
};
|
|
16
|
+
return cachedSnapshot;
|
|
17
|
+
};
|
|
18
|
+
const SERVER_SNAPSHOT = {
|
|
19
|
+
width: 0,
|
|
20
|
+
height: 0
|
|
21
|
+
};
|
|
22
|
+
const getServerSnapshot = () => SERVER_SNAPSHOT;
|
|
23
|
+
const subscribe = (callback) => {
|
|
24
|
+
window.addEventListener("resize", callback);
|
|
25
|
+
return () => {
|
|
26
|
+
window.removeEventListener("resize", callback);
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
const useWindowSize = () => useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
30
|
+
//#endregion
|
|
31
|
+
export { useWindowSize };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useSyncExternalStore } from "react";
|
|
3
|
+
//#region src/hooks/writing-mode/index.ts
|
|
4
|
+
const getServerSnapshot = () => "horizontal";
|
|
5
|
+
const resolve = (value) => value.startsWith("vertical") || value.startsWith("sideways") ? "vertical" : "horizontal";
|
|
6
|
+
const useWritingMode = (ref) => {
|
|
7
|
+
const subscribe = useCallback((onChange) => {
|
|
8
|
+
const el = ref.current;
|
|
9
|
+
if (!el) return () => {};
|
|
10
|
+
const observer = new ResizeObserver(onChange);
|
|
11
|
+
observer.observe(el);
|
|
12
|
+
return () => {
|
|
13
|
+
observer.disconnect();
|
|
14
|
+
};
|
|
15
|
+
}, [ref]);
|
|
16
|
+
const getSnapshot = useCallback(() => {
|
|
17
|
+
const el = ref.current;
|
|
18
|
+
if (!el) return "horizontal";
|
|
19
|
+
return resolve(getComputedStyle(el).writingMode);
|
|
20
|
+
}, [ref]);
|
|
21
|
+
return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
export { useWritingMode };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Messages } from "./messages.mjs";
|
|
2
|
+
import { FC, PropsWithChildren } from "react";
|
|
3
|
+
//#region src/i18n/context.d.ts
|
|
4
|
+
declare const useMessages: () => Messages;
|
|
5
|
+
declare const MessagesProvider: FC<PropsWithChildren<{
|
|
6
|
+
messages?: Partial<Messages> | undefined;
|
|
7
|
+
}>>;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { MessagesProvider, useMessages };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { ja } from "./ja.mjs";
|
|
3
|
+
import { createContext, use, useMemo } from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
//#region src/i18n/context.tsx
|
|
6
|
+
const MessagesContext = createContext(void 0);
|
|
7
|
+
const useMessages = () => use(MessagesContext) ?? ja;
|
|
8
|
+
const MessagesProvider = ({ messages, children }) => {
|
|
9
|
+
const value = useMemo(() => messages === void 0 ? ja : {
|
|
10
|
+
...ja,
|
|
11
|
+
...messages
|
|
12
|
+
}, [messages]);
|
|
13
|
+
return /* @__PURE__ */ jsx(MessagesContext, {
|
|
14
|
+
value,
|
|
15
|
+
children
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
//#endregion
|
|
19
|
+
export { MessagesProvider, useMessages };
|
package/dist/i18n/en.mjs
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
//#region src/i18n/en.ts
|
|
2
|
+
const en = {
|
|
3
|
+
close: "Close",
|
|
4
|
+
required: "Required",
|
|
5
|
+
loading: "Loading",
|
|
6
|
+
avatar: "Avatar",
|
|
7
|
+
color: "Color",
|
|
8
|
+
alertSuccess: "Success",
|
|
9
|
+
alertInfo: "Information",
|
|
10
|
+
alertWarning: "Warning",
|
|
11
|
+
alertError: "Error",
|
|
12
|
+
toastRegion: "Notifications",
|
|
13
|
+
autocompletePlaceholder: "Type to filter",
|
|
14
|
+
autocompleteRemoveTag: "Remove tag",
|
|
15
|
+
autocompleteClear: "Clear all",
|
|
16
|
+
autocompleteEmpty: "No results",
|
|
17
|
+
fileFieldRemove: "Remove file",
|
|
18
|
+
fileFieldTrigger: "Select files",
|
|
19
|
+
numberFieldIncrement: "Increase",
|
|
20
|
+
numberFieldDecrement: "Decrease",
|
|
21
|
+
passwordShow: "Show password",
|
|
22
|
+
passwordHide: "Hide password",
|
|
23
|
+
listBoxPlaceholder: "Select an option",
|
|
24
|
+
breadcrumb: "Breadcrumb",
|
|
25
|
+
tabList: "Tabs",
|
|
26
|
+
paginationLabel: "Pagination",
|
|
27
|
+
paginationPrevious: "Previous",
|
|
28
|
+
paginationNext: "Next",
|
|
29
|
+
chat: "Chat",
|
|
30
|
+
scrollToLatest: "Scroll to latest message",
|
|
31
|
+
reasoning: "Reasoning",
|
|
32
|
+
reasoningStreaming: "Thinking…",
|
|
33
|
+
suggestions: "Suggestions",
|
|
34
|
+
send: "Send",
|
|
35
|
+
stop: "Stop",
|
|
36
|
+
toolInput: "Input",
|
|
37
|
+
toolOutput: "Output",
|
|
38
|
+
toolError: "The tool failed to run.",
|
|
39
|
+
toolDenied: "The tool run was not approved.",
|
|
40
|
+
responseCopied: "Copied",
|
|
41
|
+
responseCopyCode: "Copy code",
|
|
42
|
+
responseCopyLink: "Copy link",
|
|
43
|
+
responseCopyTable: "Copy table",
|
|
44
|
+
responseCopyTableAsCsv: "Copy table as CSV",
|
|
45
|
+
responseCopyTableAsMarkdown: "Copy table as Markdown",
|
|
46
|
+
responseCopyTableAsTsv: "Copy table as TSV",
|
|
47
|
+
responseDownloadDiagram: "Download diagram",
|
|
48
|
+
responseDownloadDiagramAsMmd: "Download diagram as MMD",
|
|
49
|
+
responseDownloadDiagramAsPng: "Download diagram as PNG",
|
|
50
|
+
responseDownloadDiagramAsSvg: "Download diagram as SVG",
|
|
51
|
+
responseDownloadFile: "Download file",
|
|
52
|
+
responseDownloadImage: "Download image",
|
|
53
|
+
responseDownloadTable: "Download table",
|
|
54
|
+
responseDownloadTableAsCsv: "Download table as CSV",
|
|
55
|
+
responseDownloadTableAsMarkdown: "Download table as Markdown",
|
|
56
|
+
responseExitFullscreen: "Exit fullscreen",
|
|
57
|
+
responseViewFullscreen: "View fullscreen",
|
|
58
|
+
responseImageNotAvailable: "Image not available",
|
|
59
|
+
responseOpenExternalLink: "Open external link?",
|
|
60
|
+
responseExternalLinkWarning: "You're about to visit an external website.",
|
|
61
|
+
responseOpenLink: "Open link"
|
|
62
|
+
};
|
|
63
|
+
//#endregion
|
|
64
|
+
export { en };
|