@adea-ai/ui 0.60.3 → 0.61.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/README.md +108 -34
- package/dist/components/composites/account-menu/account-menu.d.ts +48 -0
- package/dist/components/composites/account-menu/account-menu.d.ts.map +1 -0
- package/dist/components/composites/account-menu/account-menu.js +119 -0
- package/dist/components/composites/account-menu/account-menu.js.map +1 -0
- package/dist/components/composites/account-menu/index.d.ts +2 -0
- package/dist/components/composites/account-menu/index.d.ts.map +1 -0
- package/dist/components/composites/list-row/index.d.ts +2 -0
- package/dist/components/composites/list-row/index.d.ts.map +1 -0
- package/dist/components/composites/list-row/list-row.d.ts +44 -0
- package/dist/components/composites/list-row/list-row.d.ts.map +1 -0
- package/dist/components/composites/list-row/list-row.js +124 -0
- package/dist/components/composites/list-row/list-row.js.map +1 -0
- package/dist/components/composites/settings/index.d.ts +2 -0
- package/dist/components/composites/settings/index.d.ts.map +1 -0
- package/dist/components/composites/settings/settings.d.ts +49 -0
- package/dist/components/composites/settings/settings.d.ts.map +1 -0
- package/dist/components/composites/settings/settings.js +148 -0
- package/dist/components/composites/settings/settings.js.map +1 -0
- package/dist/components/composites/stat/index.d.ts +2 -0
- package/dist/components/composites/stat/index.d.ts.map +1 -0
- package/dist/components/composites/stat/stat.d.ts +48 -0
- package/dist/components/composites/stat/stat.d.ts.map +1 -0
- package/dist/components/composites/stat/stat.js +148 -0
- package/dist/components/composites/stat/stat.js.map +1 -0
- package/dist/components/composites/update-dialog/index.d.ts +2 -0
- package/dist/components/composites/update-dialog/index.d.ts.map +1 -0
- package/dist/components/composites/update-dialog/update-dialog.d.ts +108 -0
- package/dist/components/composites/update-dialog/update-dialog.d.ts.map +1 -0
- package/dist/components/composites/update-dialog/update-dialog.js +452 -0
- package/dist/components/composites/update-dialog/update-dialog.js.map +1 -0
- package/dist/components/composites/workspace-mark/index.d.ts +2 -0
- package/dist/components/composites/workspace-mark/index.d.ts.map +1 -0
- package/dist/components/composites/workspace-mark/workspace-mark.d.ts +24 -0
- package/dist/components/composites/workspace-mark/workspace-mark.d.ts.map +1 -0
- package/dist/components/composites/workspace-mark/workspace-mark.js +76 -0
- package/dist/components/composites/workspace-mark/workspace-mark.js.map +1 -0
- package/dist/components/conversation/conversation-avatar.d.ts +21 -0
- package/dist/components/conversation/conversation-avatar.d.ts.map +1 -0
- package/dist/components/conversation/conversation-avatar.js +52 -0
- package/dist/components/conversation/conversation-avatar.js.map +1 -0
- package/dist/components/conversation/conversation-surface.d.ts +27 -0
- package/dist/components/conversation/conversation-surface.d.ts.map +1 -0
- package/dist/components/conversation/conversation-surface.js +118 -0
- package/dist/components/conversation/conversation-surface.js.map +1 -0
- package/dist/components/conversation/index.d.ts +6 -0
- package/dist/components/conversation/index.d.ts.map +1 -0
- package/dist/components/conversation/message-composer.d.ts +70 -0
- package/dist/components/conversation/message-composer.d.ts.map +1 -0
- package/dist/components/conversation/message-composer.js +235 -0
- package/dist/components/conversation/message-composer.js.map +1 -0
- package/dist/components/conversation/message-row.d.ts +101 -0
- package/dist/components/conversation/message-row.d.ts.map +1 -0
- package/dist/components/conversation/message-row.js +389 -0
- package/dist/components/conversation/message-row.js.map +1 -0
- package/dist/components/conversation/thread-panel.d.ts +45 -0
- package/dist/components/conversation/thread-panel.d.ts.map +1 -0
- package/dist/components/conversation/thread-panel.js +123 -0
- package/dist/components/conversation/thread-panel.js.map +1 -0
- package/dist/components/layout/app-shell/app-shell.d.ts +45 -0
- package/dist/components/layout/app-shell/app-shell.d.ts.map +1 -0
- package/dist/components/layout/app-shell/app-shell.js +89 -0
- package/dist/components/layout/app-shell/app-shell.js.map +1 -0
- package/dist/components/layout/app-shell/index.d.ts +2 -0
- package/dist/components/layout/app-shell/index.d.ts.map +1 -0
- package/dist/components/layout/page/index.d.ts +2 -0
- package/dist/components/layout/page/index.d.ts.map +1 -0
- package/dist/components/layout/page/page.d.ts +31 -0
- package/dist/components/layout/page/page.d.ts.map +1 -0
- package/dist/components/layout/page/page.js +143 -0
- package/dist/components/layout/page/page.js.map +1 -0
- package/dist/components/layout/panel/index.d.ts +2 -0
- package/dist/components/layout/panel/index.d.ts.map +1 -0
- package/dist/components/layout/panel/panel.d.ts +44 -0
- package/dist/components/layout/panel/panel.d.ts.map +1 -0
- package/dist/components/layout/panel/panel.js +151 -0
- package/dist/components/layout/panel/panel.js.map +1 -0
- package/dist/components/layout/side-rail/index.d.ts +3 -0
- package/dist/components/layout/side-rail/index.d.ts.map +1 -0
- package/dist/components/layout/side-rail/side-rail-context.d.ts +23 -0
- package/dist/components/layout/side-rail/side-rail-context.d.ts.map +1 -0
- package/dist/components/layout/side-rail/side-rail-context.js +18 -0
- package/dist/components/layout/side-rail/side-rail-context.js.map +1 -0
- package/dist/components/layout/side-rail/side-rail.d.ts +101 -0
- package/dist/components/layout/side-rail/side-rail.d.ts.map +1 -0
- package/dist/components/layout/side-rail/side-rail.js +336 -0
- package/dist/components/layout/side-rail/side-rail.js.map +1 -0
- package/dist/components/layout/sidebar-nav/index.d.ts +2 -0
- package/dist/components/layout/sidebar-nav/index.d.ts.map +1 -0
- package/dist/components/layout/sidebar-nav/sidebar-nav.d.ts +62 -0
- package/dist/components/layout/sidebar-nav/sidebar-nav.d.ts.map +1 -0
- package/dist/components/layout/sidebar-nav/sidebar-nav.js +231 -0
- package/dist/components/layout/sidebar-nav/sidebar-nav.js.map +1 -0
- package/dist/components/layout/status-bar/index.d.ts +2 -0
- package/dist/components/layout/status-bar/index.d.ts.map +1 -0
- package/dist/components/layout/status-bar/status-bar.d.ts +23 -0
- package/dist/components/layout/status-bar/status-bar.d.ts.map +1 -0
- package/dist/components/layout/status-bar/status-bar.js +68 -0
- package/dist/components/layout/status-bar/status-bar.js.map +1 -0
- package/dist/components/layout/top-bar/index.d.ts +2 -0
- package/dist/components/layout/top-bar/index.d.ts.map +1 -0
- package/dist/components/layout/top-bar/top-bar.d.ts +59 -0
- package/dist/components/layout/top-bar/top-bar.d.ts.map +1 -0
- package/dist/components/layout/top-bar/top-bar.js +118 -0
- package/dist/components/layout/top-bar/top-bar.js.map +1 -0
- package/dist/components/motion/index.d.ts +3 -0
- package/dist/components/motion/index.d.ts.map +1 -0
- package/dist/components/motion/index.js +3 -0
- package/dist/components/motion/presence.d.ts +29 -0
- package/dist/components/motion/presence.d.ts.map +1 -0
- package/dist/components/motion/presence.js +10 -0
- package/dist/components/motion/presence.js.map +1 -0
- package/dist/components/theme/appearance-panel.d.ts +25 -0
- package/dist/components/theme/appearance-panel.d.ts.map +1 -0
- package/dist/components/theme/appearance-panel.js +162 -0
- package/dist/components/theme/appearance-panel.js.map +1 -0
- package/dist/components/theme/index.d.ts +5 -0
- package/dist/components/theme/index.d.ts.map +1 -0
- package/dist/components/theme/theme-picker.d.ts +54 -0
- package/dist/components/theme/theme-picker.d.ts.map +1 -0
- package/dist/components/theme/theme-picker.js +156 -0
- package/dist/components/theme/theme-picker.js.map +1 -0
- package/dist/components/theme/theme-provider.d.ts +130 -0
- package/dist/components/theme/theme-provider.d.ts.map +1 -0
- package/dist/components/theme/theme-provider.js +164 -0
- package/dist/components/theme/theme-provider.js.map +1 -0
- package/dist/components/theme/theme-toggle.d.ts +19 -0
- package/dist/components/theme/theme-toggle.d.ts.map +1 -0
- package/dist/components/theme/theme-toggle.js +69 -0
- package/dist/components/theme/theme-toggle.js.map +1 -0
- package/dist/components/ui/accordion/accordion.d.ts +18 -0
- package/dist/components/ui/accordion/accordion.d.ts.map +1 -0
- package/dist/components/ui/accordion/accordion.js +60 -0
- package/dist/components/ui/accordion/accordion.js.map +1 -0
- package/dist/components/ui/accordion/index.d.ts +2 -0
- package/dist/components/ui/accordion/index.d.ts.map +1 -0
- package/dist/components/ui/alert/alert.d.ts +26 -0
- package/dist/components/ui/alert/alert.d.ts.map +1 -0
- package/dist/components/ui/alert/alert.js +89 -0
- package/dist/components/ui/alert/alert.js.map +1 -0
- package/dist/components/ui/alert/index.d.ts +2 -0
- package/dist/components/ui/alert/index.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog/alert-dialog.d.ts +29 -0
- package/dist/components/ui/alert-dialog/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog/alert-dialog.js +155 -0
- package/dist/components/ui/alert-dialog/alert-dialog.js.map +1 -0
- package/dist/components/ui/alert-dialog/index.d.ts +2 -0
- package/dist/components/ui/alert-dialog/index.d.ts.map +1 -0
- package/dist/components/ui/aspect-ratio/aspect-ratio.d.ts +22 -0
- package/dist/components/ui/aspect-ratio/aspect-ratio.d.ts.map +1 -0
- package/dist/components/ui/aspect-ratio/aspect-ratio.js +29 -0
- package/dist/components/ui/aspect-ratio/aspect-ratio.js.map +1 -0
- package/dist/components/ui/aspect-ratio/index.d.ts +2 -0
- package/dist/components/ui/aspect-ratio/index.d.ts.map +1 -0
- package/dist/components/ui/avatar/avatar.d.ts +41 -0
- package/dist/components/ui/avatar/avatar.d.ts.map +1 -0
- package/dist/components/ui/avatar/avatar.js +106 -0
- package/dist/components/ui/avatar/avatar.js.map +1 -0
- package/dist/components/ui/avatar/index.d.ts +2 -0
- package/dist/components/ui/avatar/index.d.ts.map +1 -0
- package/dist/components/ui/badge/badge.d.ts +22 -0
- package/dist/components/ui/badge/badge.d.ts.map +1 -0
- package/dist/components/ui/badge/badge.js +58 -0
- package/dist/components/ui/badge/badge.js.map +1 -0
- package/dist/components/ui/badge/index.d.ts +2 -0
- package/dist/components/ui/badge/index.d.ts.map +1 -0
- package/dist/components/ui/board/board.d.ts +78 -0
- package/dist/components/ui/board/board.d.ts.map +1 -0
- package/dist/components/ui/board/board.js +200 -0
- package/dist/components/ui/board/board.js.map +1 -0
- package/dist/components/ui/board/index.d.ts +2 -0
- package/dist/components/ui/board/index.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb/breadcrumb.d.ts +24 -0
- package/dist/components/ui/breadcrumb/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb/breadcrumb.js +109 -0
- package/dist/components/ui/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/components/ui/breadcrumb/index.d.ts +2 -0
- package/dist/components/ui/breadcrumb/index.d.ts.map +1 -0
- package/dist/components/ui/button/button.d.ts +30 -0
- package/dist/components/ui/button/button.d.ts.map +1 -0
- package/dist/components/ui/button/button.js +80 -0
- package/dist/components/ui/button/button.js.map +1 -0
- package/dist/components/ui/button/index.d.ts +2 -0
- package/dist/components/ui/button/index.d.ts.map +1 -0
- package/dist/components/ui/button-group/button-group.d.ts +39 -0
- package/dist/components/ui/button-group/button-group.d.ts.map +1 -0
- package/dist/components/ui/button-group/button-group.js +63 -0
- package/dist/components/ui/button-group/button-group.js.map +1 -0
- package/dist/components/ui/button-group/index.d.ts +2 -0
- package/dist/components/ui/button-group/index.d.ts.map +1 -0
- package/dist/components/ui/calendar/calendar.d.ts +93 -0
- package/dist/components/ui/calendar/calendar.d.ts.map +1 -0
- package/dist/components/ui/calendar/calendar.js +243 -0
- package/dist/components/ui/calendar/calendar.js.map +1 -0
- package/dist/components/ui/calendar/index.d.ts +2 -0
- package/dist/components/ui/calendar/index.d.ts.map +1 -0
- package/dist/components/ui/card/card.d.ts +23 -0
- package/dist/components/ui/card/card.d.ts.map +1 -0
- package/dist/components/ui/card/card.js +98 -0
- package/dist/components/ui/card/card.js.map +1 -0
- package/dist/components/ui/card/index.d.ts +2 -0
- package/dist/components/ui/card/index.d.ts.map +1 -0
- package/dist/components/ui/carousel/carousel.d.ts +66 -0
- package/dist/components/ui/carousel/carousel.d.ts.map +1 -0
- package/dist/components/ui/carousel/carousel.js +178 -0
- package/dist/components/ui/carousel/carousel.js.map +1 -0
- package/dist/components/ui/carousel/index.d.ts +2 -0
- package/dist/components/ui/carousel/index.d.ts.map +1 -0
- package/dist/components/ui/chart/chart.d.ts +154 -0
- package/dist/components/ui/chart/chart.d.ts.map +1 -0
- package/dist/components/ui/chart/chart.js +373 -0
- package/dist/components/ui/chart/chart.js.map +1 -0
- package/dist/components/ui/chart/index.d.ts +2 -0
- package/dist/components/ui/chart/index.d.ts.map +1 -0
- package/dist/components/ui/checkbox/checkbox.d.ts +33 -0
- package/dist/components/ui/checkbox/checkbox.d.ts.map +1 -0
- package/dist/components/ui/checkbox/checkbox.js +76 -0
- package/dist/components/ui/checkbox/checkbox.js.map +1 -0
- package/dist/components/ui/checkbox/index.d.ts +2 -0
- package/dist/components/ui/checkbox/index.d.ts.map +1 -0
- package/dist/components/ui/code-block/code-block.d.ts +75 -0
- package/dist/components/ui/code-block/code-block.d.ts.map +1 -0
- package/dist/components/ui/code-block/code-block.js +186 -0
- package/dist/components/ui/code-block/code-block.js.map +1 -0
- package/dist/components/ui/code-block/index.d.ts +2 -0
- package/dist/components/ui/code-block/index.d.ts.map +1 -0
- package/dist/components/ui/collapsible/collapsible.d.ts +17 -0
- package/dist/components/ui/collapsible/collapsible.d.ts.map +1 -0
- package/dist/components/ui/collapsible/collapsible.js +38 -0
- package/dist/components/ui/collapsible/collapsible.js.map +1 -0
- package/dist/components/ui/collapsible/index.d.ts +2 -0
- package/dist/components/ui/collapsible/index.d.ts.map +1 -0
- package/dist/components/ui/combobox/combobox.d.ts +28 -0
- package/dist/components/ui/combobox/combobox.d.ts.map +1 -0
- package/dist/components/ui/combobox/combobox.js +102 -0
- package/dist/components/ui/combobox/combobox.js.map +1 -0
- package/dist/components/ui/combobox/index.d.ts +2 -0
- package/dist/components/ui/combobox/index.d.ts.map +1 -0
- package/dist/components/ui/command/command.d.ts +53 -0
- package/dist/components/ui/command/command.d.ts.map +1 -0
- package/dist/components/ui/command/command.js +137 -0
- package/dist/components/ui/command/command.js.map +1 -0
- package/dist/components/ui/command/index.d.ts +2 -0
- package/dist/components/ui/command/index.d.ts.map +1 -0
- package/dist/components/ui/context-menu/context-menu.d.ts +32 -0
- package/dist/components/ui/context-menu/context-menu.d.ts.map +1 -0
- package/dist/components/ui/context-menu/context-menu.js +119 -0
- package/dist/components/ui/context-menu/context-menu.js.map +1 -0
- package/dist/components/ui/context-menu/index.d.ts +2 -0
- package/dist/components/ui/context-menu/index.d.ts.map +1 -0
- package/dist/components/ui/detail-panel/detail-panel.d.ts +61 -0
- package/dist/components/ui/detail-panel/detail-panel.d.ts.map +1 -0
- package/dist/components/ui/detail-panel/detail-panel.js +132 -0
- package/dist/components/ui/detail-panel/detail-panel.js.map +1 -0
- package/dist/components/ui/detail-panel/index.d.ts +2 -0
- package/dist/components/ui/detail-panel/index.d.ts.map +1 -0
- package/dist/components/ui/dialog/dialog.d.ts +40 -0
- package/dist/components/ui/dialog/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog/dialog.js +125 -0
- package/dist/components/ui/dialog/dialog.js.map +1 -0
- package/dist/components/ui/dialog/index.d.ts +2 -0
- package/dist/components/ui/dialog/index.d.ts.map +1 -0
- package/dist/components/ui/diff-block/diff-block.d.ts +95 -0
- package/dist/components/ui/diff-block/diff-block.d.ts.map +1 -0
- package/dist/components/ui/diff-block/diff-block.js +230 -0
- package/dist/components/ui/diff-block/diff-block.js.map +1 -0
- package/dist/components/ui/diff-block/diff-block.test.d.ts +2 -0
- package/dist/components/ui/diff-block/diff-block.test.d.ts.map +1 -0
- package/dist/components/ui/diff-block/index.d.ts +2 -0
- package/dist/components/ui/diff-block/index.d.ts.map +1 -0
- package/dist/components/ui/drawer/drawer.d.ts +39 -0
- package/dist/components/ui/drawer/drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer/drawer.js +106 -0
- package/dist/components/ui/drawer/drawer.js.map +1 -0
- package/dist/components/ui/drawer/index.d.ts +2 -0
- package/dist/components/ui/drawer/index.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +48 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.js +151 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +1 -0
- package/dist/components/ui/dropdown-menu/index.d.ts +2 -0
- package/dist/components/ui/dropdown-menu/index.d.ts.map +1 -0
- package/dist/components/ui/empty/empty.d.ts +27 -0
- package/dist/components/ui/empty/empty.d.ts.map +1 -0
- package/dist/components/ui/{empty.js → empty/empty.js} +28 -23
- package/dist/components/ui/empty/empty.js.map +1 -0
- package/dist/components/ui/empty/index.d.ts +2 -0
- package/dist/components/ui/empty/index.d.ts.map +1 -0
- package/dist/components/ui/entity-icon/entity-icon.d.ts +59 -0
- package/dist/components/ui/entity-icon/entity-icon.d.ts.map +1 -0
- package/dist/components/ui/entity-icon/entity-icon.js +145 -0
- package/dist/components/ui/entity-icon/entity-icon.js.map +1 -0
- package/dist/components/ui/entity-icon/index.d.ts +2 -0
- package/dist/components/ui/entity-icon/index.d.ts.map +1 -0
- package/dist/components/ui/field/field.d.ts +39 -0
- package/dist/components/ui/field/field.d.ts.map +1 -0
- package/dist/components/ui/field/field.js +111 -0
- package/dist/components/ui/field/field.js.map +1 -0
- package/dist/components/ui/field/index.d.ts +2 -0
- package/dist/components/ui/field/index.d.ts.map +1 -0
- package/dist/components/ui/hover-card/hover-card.d.ts +17 -0
- package/dist/components/ui/hover-card/hover-card.d.ts.map +1 -0
- package/dist/components/ui/hover-card/hover-card.js +40 -0
- package/dist/components/ui/hover-card/hover-card.js.map +1 -0
- package/dist/components/ui/hover-card/index.d.ts +2 -0
- package/dist/components/ui/hover-card/index.d.ts.map +1 -0
- package/dist/components/ui/input/index.d.ts +2 -0
- package/dist/components/ui/input/index.d.ts.map +1 -0
- package/dist/components/ui/input/input.d.ts +15 -0
- package/dist/components/ui/input/input.d.ts.map +1 -0
- package/dist/components/ui/input/input.js +36 -0
- package/dist/components/ui/input/input.js.map +1 -0
- package/dist/components/ui/input-group/index.d.ts +2 -0
- package/dist/components/ui/input-group/index.d.ts.map +1 -0
- package/dist/components/ui/input-group/input-group.d.ts +34 -0
- package/dist/components/ui/input-group/input-group.d.ts.map +1 -0
- package/dist/components/ui/input-group/input-group.js +93 -0
- package/dist/components/ui/input-group/input-group.js.map +1 -0
- package/dist/components/ui/input-otp/index.d.ts +2 -0
- package/dist/components/ui/input-otp/index.d.ts.map +1 -0
- package/dist/components/ui/input-otp/input-otp.d.ts +37 -0
- package/dist/components/ui/input-otp/input-otp.d.ts.map +1 -0
- package/dist/components/ui/input-otp/input-otp.js +92 -0
- package/dist/components/ui/input-otp/input-otp.js.map +1 -0
- package/dist/components/ui/item/index.d.ts +2 -0
- package/dist/components/ui/item/index.d.ts.map +1 -0
- package/dist/components/ui/item/item.d.ts +49 -0
- package/dist/components/ui/item/item.d.ts.map +1 -0
- package/dist/components/ui/item/item.js +163 -0
- package/dist/components/ui/item/item.js.map +1 -0
- package/dist/components/ui/kbd/index.d.ts +2 -0
- package/dist/components/ui/kbd/index.d.ts.map +1 -0
- package/dist/components/ui/kbd/kbd.d.ts +14 -0
- package/dist/components/ui/kbd/kbd.d.ts.map +1 -0
- package/dist/components/ui/kbd/kbd.js +40 -0
- package/dist/components/ui/kbd/kbd.js.map +1 -0
- package/dist/components/ui/label/index.d.ts +2 -0
- package/dist/components/ui/label/index.d.ts.map +1 -0
- package/dist/components/ui/label/label.d.ts +17 -0
- package/dist/components/ui/label/label.d.ts.map +1 -0
- package/dist/components/ui/label/label.js +33 -0
- package/dist/components/ui/label/label.js.map +1 -0
- package/dist/components/ui/menubar/index.d.ts +2 -0
- package/dist/components/ui/menubar/index.d.ts.map +1 -0
- package/dist/components/ui/menubar/menubar.d.ts +38 -0
- package/dist/components/ui/menubar/menubar.d.ts.map +1 -0
- package/dist/components/ui/menubar/menubar.js +138 -0
- package/dist/components/ui/menubar/menubar.js.map +1 -0
- package/dist/components/ui/modal-dialog/index.d.ts +2 -0
- package/dist/components/ui/modal-dialog/index.d.ts.map +1 -0
- package/dist/components/ui/modal-dialog/modal-dialog.d.ts +35 -0
- package/dist/components/ui/modal-dialog/modal-dialog.d.ts.map +1 -0
- package/dist/components/ui/modal-dialog/modal-dialog.js +78 -0
- package/dist/components/ui/modal-dialog/modal-dialog.js.map +1 -0
- package/dist/components/ui/navigation-menu/index.d.ts +2 -0
- package/dist/components/ui/navigation-menu/index.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu/navigation-menu.d.ts +77 -0
- package/dist/components/ui/navigation-menu/navigation-menu.d.ts.map +1 -0
- package/dist/components/ui/navigation-menu/navigation-menu.js +116 -0
- package/dist/components/ui/navigation-menu/navigation-menu.js.map +1 -0
- package/dist/components/ui/pagination/index.d.ts +2 -0
- package/dist/components/ui/pagination/index.d.ts.map +1 -0
- package/dist/components/ui/pagination/pagination.d.ts +33 -0
- package/dist/components/ui/pagination/pagination.d.ts.map +1 -0
- package/dist/components/ui/pagination/pagination.js +92 -0
- package/dist/components/ui/pagination/pagination.js.map +1 -0
- package/dist/components/ui/popover/index.d.ts +2 -0
- package/dist/components/ui/popover/index.d.ts.map +1 -0
- package/dist/components/ui/popover/popover.d.ts +26 -0
- package/dist/components/ui/popover/popover.d.ts.map +1 -0
- package/dist/components/ui/popover/popover.js +66 -0
- package/dist/components/ui/popover/popover.js.map +1 -0
- package/dist/components/ui/progress/index.d.ts +2 -0
- package/dist/components/ui/progress/index.d.ts.map +1 -0
- package/dist/components/ui/progress/progress.d.ts +29 -0
- package/dist/components/ui/progress/progress.d.ts.map +1 -0
- package/dist/components/ui/progress/progress.js +53 -0
- package/dist/components/ui/progress/progress.js.map +1 -0
- package/dist/components/ui/radio-group/index.d.ts +2 -0
- package/dist/components/ui/radio-group/index.d.ts.map +1 -0
- package/dist/components/ui/radio-group/radio-group.d.ts +26 -0
- package/dist/components/ui/radio-group/radio-group.d.ts.map +1 -0
- package/dist/components/ui/radio-group/radio-group.js +77 -0
- package/dist/components/ui/radio-group/radio-group.js.map +1 -0
- package/dist/components/ui/resizable/index.d.ts +2 -0
- package/dist/components/ui/resizable/index.d.ts.map +1 -0
- package/dist/components/ui/resizable/resizable.d.ts +33 -0
- package/dist/components/ui/resizable/resizable.d.ts.map +1 -0
- package/dist/components/ui/resizable/resizable.js +57 -0
- package/dist/components/ui/resizable/resizable.js.map +1 -0
- package/dist/components/ui/scroll-area/index.d.ts +2 -0
- package/dist/components/ui/scroll-area/index.d.ts.map +1 -0
- package/dist/components/ui/scroll-area/scroll-area.d.ts +26 -0
- package/dist/components/ui/scroll-area/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area/scroll-area.js +36 -0
- package/dist/components/ui/scroll-area/scroll-area.js.map +1 -0
- package/dist/components/ui/select/index.d.ts +2 -0
- package/dist/components/ui/select/index.d.ts.map +1 -0
- package/dist/components/ui/select/select.d.ts +63 -0
- package/dist/components/ui/select/select.d.ts.map +1 -0
- package/dist/components/ui/select/select.js +142 -0
- package/dist/components/ui/select/select.js.map +1 -0
- package/dist/components/ui/separator/index.d.ts +2 -0
- package/dist/components/ui/separator/index.d.ts.map +1 -0
- package/dist/components/ui/separator/separator.d.ts +17 -0
- package/dist/components/ui/separator/separator.d.ts.map +1 -0
- package/dist/components/ui/separator/separator.js +24 -0
- package/dist/components/ui/separator/separator.js.map +1 -0
- package/dist/components/ui/sheet/index.d.ts +2 -0
- package/dist/components/ui/sheet/index.d.ts.map +1 -0
- package/dist/components/ui/sheet/sheet.d.ts +32 -0
- package/dist/components/ui/sheet/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet/sheet.js +118 -0
- package/dist/components/ui/sheet/sheet.js.map +1 -0
- package/dist/components/ui/skeleton/index.d.ts +2 -0
- package/dist/components/ui/skeleton/index.d.ts.map +1 -0
- package/dist/components/ui/skeleton/skeleton.d.ts +15 -0
- package/dist/components/ui/skeleton/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton/skeleton.js +31 -0
- package/dist/components/ui/skeleton/skeleton.js.map +1 -0
- package/dist/components/ui/slider/index.d.ts +2 -0
- package/dist/components/ui/slider/index.d.ts.map +1 -0
- package/dist/components/ui/slider/slider.d.ts +22 -0
- package/dist/components/ui/slider/slider.d.ts.map +1 -0
- package/dist/components/ui/slider/slider.js +59 -0
- package/dist/components/ui/slider/slider.js.map +1 -0
- package/dist/components/ui/spinner/index.d.ts +2 -0
- package/dist/components/ui/spinner/index.d.ts.map +1 -0
- package/dist/components/ui/spinner/spinner.d.ts +25 -0
- package/dist/components/ui/spinner/spinner.d.ts.map +1 -0
- package/dist/components/ui/spinner/spinner.js +57 -0
- package/dist/components/ui/spinner/spinner.js.map +1 -0
- package/dist/components/ui/status-chip/index.d.ts +2 -0
- package/dist/components/ui/status-chip/index.d.ts.map +1 -0
- package/dist/components/ui/status-chip/status-chip.d.ts +70 -0
- package/dist/components/ui/status-chip/status-chip.d.ts.map +1 -0
- package/dist/components/ui/status-chip/status-chip.js +140 -0
- package/dist/components/ui/status-chip/status-chip.js.map +1 -0
- package/dist/components/ui/switch/index.d.ts +2 -0
- package/dist/components/ui/switch/index.d.ts.map +1 -0
- package/dist/components/ui/switch/switch.d.ts +36 -0
- package/dist/components/ui/switch/switch.d.ts.map +1 -0
- package/dist/components/ui/switch/switch.js +74 -0
- package/dist/components/ui/switch/switch.js.map +1 -0
- package/dist/components/ui/table/index.d.ts +2 -0
- package/dist/components/ui/table/index.d.ts.map +1 -0
- package/dist/components/ui/table/table.d.ts +29 -0
- package/dist/components/ui/table/table.d.ts.map +1 -0
- package/dist/components/ui/table/table.js +129 -0
- package/dist/components/ui/table/table.js.map +1 -0
- package/dist/components/ui/tabs/index.d.ts +2 -0
- package/dist/components/ui/tabs/index.d.ts.map +1 -0
- package/dist/components/ui/tabs/tabs.d.ts +23 -0
- package/dist/components/ui/tabs/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs/tabs.js +43 -0
- package/dist/components/ui/tabs/tabs.js.map +1 -0
- package/dist/components/ui/textarea/index.d.ts +2 -0
- package/dist/components/ui/textarea/index.d.ts.map +1 -0
- package/dist/components/ui/textarea/textarea.d.ts +14 -0
- package/dist/components/ui/textarea/textarea.d.ts.map +1 -0
- package/dist/components/ui/textarea/textarea.js +30 -0
- package/dist/components/ui/textarea/textarea.js.map +1 -0
- package/dist/components/ui/toast/index.d.ts +2 -0
- package/dist/components/ui/toast/index.d.ts.map +1 -0
- package/dist/components/ui/toast/toast.d.ts +68 -0
- package/dist/components/ui/toast/toast.d.ts.map +1 -0
- package/dist/components/ui/toast/toast.js +186 -0
- package/dist/components/ui/toast/toast.js.map +1 -0
- package/dist/components/ui/toggle/index.d.ts +2 -0
- package/dist/components/ui/toggle/index.d.ts.map +1 -0
- package/dist/components/ui/toggle/toggle.d.ts +22 -0
- package/dist/components/ui/toggle/toggle.d.ts.map +1 -0
- package/dist/components/ui/toggle/toggle.js +64 -0
- package/dist/components/ui/toggle/toggle.js.map +1 -0
- package/dist/components/ui/toggle-group/index.d.ts +2 -0
- package/dist/components/ui/toggle-group/index.d.ts.map +1 -0
- package/dist/components/ui/toggle-group/toggle-group.d.ts +35 -0
- package/dist/components/ui/toggle-group/toggle-group.d.ts.map +1 -0
- package/dist/components/ui/toggle-group/toggle-group.js +38 -0
- package/dist/components/ui/toggle-group/toggle-group.js.map +1 -0
- package/dist/components/ui/tooltip/index.d.ts +2 -0
- package/dist/components/ui/tooltip/index.d.ts.map +1 -0
- package/dist/components/ui/tooltip/tooltip.d.ts +18 -0
- package/dist/components/ui/tooltip/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip/tooltip.js +67 -0
- package/dist/components/ui/tooltip/tooltip.js.map +1 -0
- package/dist/index.d.ts +96 -19
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +90 -20
- package/dist/lib/keyed-rows.d.ts +36 -0
- package/dist/lib/keyed-rows.d.ts.map +1 -0
- package/dist/lib/keyed-rows.js +53 -0
- package/dist/lib/keyed-rows.js.map +1 -0
- package/dist/lib/keyed-rows.test.d.ts +2 -0
- package/dist/lib/keyed-rows.test.d.ts.map +1 -0
- package/dist/lib/overlay.d.ts +44 -0
- package/dist/lib/overlay.d.ts.map +1 -0
- package/dist/lib/overlay.js +57 -0
- package/dist/lib/overlay.js.map +1 -0
- package/dist/lib/themes.d.ts +197 -0
- package/dist/lib/themes.d.ts.map +1 -0
- package/dist/lib/themes.js +303 -0
- package/dist/lib/themes.js.map +1 -0
- package/dist/lib/tokens.d.ts +103 -0
- package/dist/lib/tokens.d.ts.map +1 -0
- package/dist/lib/tokens.js +805 -0
- package/dist/lib/tokens.js.map +1 -0
- package/dist/lib/utils.d.ts +27 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +61 -3
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/variants.d.ts +57 -0
- package/dist/lib/variants.d.ts.map +1 -0
- package/dist/lib/variants.js +49 -0
- package/dist/lib/variants.js.map +1 -0
- package/dist/lib/version-notes.d.ts +24 -0
- package/dist/lib/version-notes.d.ts.map +1 -0
- package/dist/lib/version-notes.js +41 -1
- package/dist/lib/version-notes.js.map +1 -0
- package/dist/r/accordion.json +23 -0
- package/dist/r/account-menu.json +25 -0
- package/dist/r/alert-dialog.json +22 -0
- package/dist/r/alert.json +22 -0
- package/dist/r/app-shell.json +20 -0
- package/dist/r/aspect-ratio.json +20 -0
- package/dist/r/avatar.json +20 -0
- package/dist/r/badge.json +22 -0
- package/dist/r/board.json +20 -0
- package/dist/r/breadcrumb.json +22 -0
- package/dist/r/button-group.json +22 -0
- package/dist/r/button.json +22 -0
- package/dist/r/calendar.json +25 -0
- package/dist/r/card.json +20 -0
- package/dist/r/carousel.json +26 -0
- package/dist/r/chart.json +23 -0
- package/dist/r/checkbox.json +23 -0
- package/dist/r/code-block.json +24 -0
- package/dist/r/collapsible.json +22 -0
- package/dist/r/combobox.json +23 -0
- package/dist/r/command.json +23 -0
- package/dist/r/context-menu.json +23 -0
- package/dist/r/conversation.json +48 -0
- package/dist/r/detail-panel.json +24 -0
- package/dist/r/dialog.json +23 -0
- package/dist/r/diff-block.json +20 -0
- package/dist/r/drawer.json +22 -0
- package/dist/r/dropdown-menu.json +23 -0
- package/dist/r/empty.json +20 -0
- package/dist/r/entity-icon.json +20 -0
- package/dist/r/field.json +22 -0
- package/dist/r/hover-card.json +22 -0
- package/dist/r/input-group.json +20 -0
- package/dist/r/input-otp.json +22 -0
- package/dist/r/input.json +20 -0
- package/dist/r/item.json +20 -0
- package/dist/r/kbd.json +20 -0
- package/dist/r/label.json +20 -0
- package/dist/r/list-row.json +22 -0
- package/dist/r/menubar.json +23 -0
- package/dist/r/modal-dialog.json +22 -0
- package/dist/r/navigation-menu.json +23 -0
- package/dist/r/page.json +20 -0
- package/dist/r/pagination.json +23 -0
- package/dist/r/panel.json +20 -0
- package/dist/r/popover.json +22 -0
- package/dist/r/progress.json +22 -0
- package/dist/r/radio-group.json +23 -0
- package/dist/r/registry.json +1676 -0
- package/dist/r/resizable.json +23 -0
- package/dist/r/scroll-area.json +20 -0
- package/dist/r/select.json +23 -0
- package/dist/r/separator.json +22 -0
- package/dist/r/settings.json +20 -0
- package/dist/r/sheet.json +25 -0
- package/dist/r/side-rail.json +27 -0
- package/dist/r/sidebar-nav.json +23 -0
- package/dist/r/skeleton.json +20 -0
- package/dist/r/slider.json +22 -0
- package/dist/r/spinner.json +22 -0
- package/dist/r/stat.json +22 -0
- package/dist/r/status-bar.json +20 -0
- package/dist/r/status-chip.json +22 -0
- package/dist/r/switch.json +22 -0
- package/dist/r/table.json +20 -0
- package/dist/r/tabs.json +22 -0
- package/dist/r/textarea.json +20 -0
- package/dist/r/theme.json +36 -0
- package/dist/r/toast.json +23 -0
- package/dist/r/toggle-group.json +24 -0
- package/dist/r/toggle.json +22 -0
- package/dist/r/tooltip.json +22 -0
- package/dist/r/top-bar.json +20 -0
- package/dist/r/update-dialog.json +27 -0
- package/dist/r/workspace-mark.json +22 -0
- package/package.json +75 -21
- package/registry.json +1676 -0
- package/src/components/composites/account-menu/account-menu.tsx +150 -0
- package/src/components/composites/account-menu/index.ts +1 -0
- package/src/components/composites/list-row/index.ts +1 -0
- package/src/components/composites/list-row/list-row.tsx +116 -0
- package/src/components/composites/settings/index.ts +1 -0
- package/src/components/composites/settings/settings.tsx +142 -0
- package/src/components/composites/stat/index.ts +9 -0
- package/src/components/composites/stat/stat.tsx +155 -0
- package/src/components/composites/update-dialog/index.ts +7 -0
- package/src/components/composites/update-dialog/update-dialog.tsx +529 -0
- package/src/components/composites/workspace-mark/index.ts +1 -0
- package/src/components/composites/workspace-mark/workspace-mark.tsx +72 -0
- package/src/components/conversation/conversation-avatar.tsx +60 -0
- package/src/components/conversation/conversation-surface.tsx +107 -0
- package/src/components/conversation/index.ts +25 -0
- package/src/components/conversation/message-composer.tsx +239 -0
- package/src/components/conversation/message-row.tsx +387 -0
- package/src/components/conversation/thread-panel.tsx +141 -0
- package/src/components/layout/app-shell/app-shell.tsx +92 -0
- package/src/components/layout/app-shell/index.ts +1 -0
- package/src/components/layout/page/index.ts +9 -0
- package/src/components/layout/page/page.tsx +122 -0
- package/src/components/layout/panel/index.ts +12 -0
- package/src/components/layout/panel/panel.tsx +166 -0
- package/src/components/layout/side-rail/index.ts +12 -0
- package/src/components/layout/side-rail/side-rail-context.ts +42 -0
- package/src/components/layout/side-rail/side-rail.tsx +405 -0
- package/src/components/layout/sidebar-nav/index.ts +14 -0
- package/src/components/layout/sidebar-nav/sidebar-nav.tsx +244 -0
- package/src/components/layout/status-bar/index.ts +1 -0
- package/src/components/layout/status-bar/status-bar.tsx +73 -0
- package/src/components/layout/top-bar/index.ts +10 -0
- package/src/components/layout/top-bar/top-bar.tsx +166 -0
- package/src/components/motion/index.ts +2 -0
- package/src/components/motion/presence.tsx +32 -0
- package/src/components/theme/appearance-panel.tsx +179 -0
- package/src/components/theme/index.ts +22 -0
- package/src/components/theme/theme-picker.tsx +174 -0
- package/src/components/theme/theme-provider.tsx +309 -0
- package/src/components/theme/theme-toggle.tsx +64 -0
- package/src/components/ui/accordion/accordion.tsx +66 -0
- package/src/components/ui/accordion/index.ts +1 -0
- package/src/components/ui/alert/alert.tsx +95 -0
- package/src/components/ui/alert/index.ts +1 -0
- package/src/components/ui/alert-dialog/alert-dialog.tsx +176 -0
- package/src/components/ui/alert-dialog/index.ts +13 -0
- package/src/components/ui/aspect-ratio/aspect-ratio.tsx +38 -0
- package/src/components/ui/aspect-ratio/index.ts +1 -0
- package/src/components/ui/avatar/avatar.tsx +114 -0
- package/src/components/ui/avatar/index.ts +9 -0
- package/src/components/ui/badge/badge.tsx +59 -0
- package/src/components/ui/badge/index.ts +1 -0
- package/src/components/ui/board/board.tsx +254 -0
- package/src/components/ui/board/index.ts +10 -0
- package/src/components/ui/breadcrumb/breadcrumb.tsx +117 -0
- package/src/components/ui/breadcrumb/index.ts +9 -0
- package/src/components/ui/button/button.tsx +89 -0
- package/src/components/ui/button/index.ts +1 -0
- package/src/components/ui/button-group/button-group.tsx +92 -0
- package/src/components/ui/button-group/index.ts +6 -0
- package/src/components/ui/calendar/calendar.tsx +277 -0
- package/src/components/ui/calendar/index.ts +1 -0
- package/src/components/ui/card/card.tsx +82 -0
- package/src/components/ui/card/index.ts +10 -0
- package/src/components/ui/carousel/carousel.tsx +209 -0
- package/src/components/ui/carousel/index.ts +1 -0
- package/src/components/ui/chart/chart.tsx +413 -0
- package/src/components/ui/chart/index.ts +17 -0
- package/src/components/ui/checkbox/checkbox.tsx +99 -0
- package/src/components/ui/checkbox/index.ts +1 -0
- package/src/components/ui/code-block/code-block.tsx +238 -0
- package/src/components/ui/code-block/index.ts +1 -0
- package/src/components/ui/collapsible/collapsible.tsx +54 -0
- package/src/components/ui/collapsible/index.ts +1 -0
- package/src/components/ui/combobox/combobox.tsx +142 -0
- package/src/components/ui/combobox/index.ts +10 -0
- package/src/components/ui/command/command.tsx +214 -0
- package/src/components/ui/command/index.ts +12 -0
- package/src/components/ui/context-menu/context-menu.tsx +163 -0
- package/src/components/ui/context-menu/index.ts +15 -0
- package/src/components/ui/detail-panel/detail-panel.tsx +161 -0
- package/src/components/ui/detail-panel/index.ts +9 -0
- package/src/components/ui/dialog/dialog.tsx +138 -0
- package/src/components/ui/dialog/index.ts +14 -0
- package/src/components/ui/diff-block/diff-block.tsx +286 -0
- package/src/components/ui/diff-block/index.ts +11 -0
- package/src/components/ui/drawer/drawer.tsx +144 -0
- package/src/components/ui/drawer/index.ts +13 -0
- package/src/components/ui/dropdown-menu/dropdown-menu.tsx +203 -0
- package/src/components/ui/dropdown-menu/index.ts +18 -0
- package/src/components/ui/empty/empty.tsx +104 -0
- package/src/components/ui/empty/index.ts +10 -0
- package/src/components/ui/entity-icon/entity-icon.tsx +154 -0
- package/src/components/ui/entity-icon/index.ts +1 -0
- package/src/components/ui/field/field.tsx +131 -0
- package/src/components/ui/field/index.ts +11 -0
- package/src/components/ui/hover-card/hover-card.tsx +48 -0
- package/src/components/ui/hover-card/index.ts +1 -0
- package/src/components/ui/input/index.ts +1 -0
- package/src/components/ui/input/input.tsx +41 -0
- package/src/components/ui/input-group/index.ts +8 -0
- package/src/components/ui/input-group/input-group.tsx +111 -0
- package/src/components/ui/input-otp/index.ts +1 -0
- package/src/components/ui/input-otp/input-otp.tsx +108 -0
- package/src/components/ui/item/index.ts +10 -0
- package/src/components/ui/item/item.tsx +146 -0
- package/src/components/ui/kbd/index.ts +1 -0
- package/src/components/ui/kbd/kbd.tsx +42 -0
- package/src/components/ui/label/index.ts +1 -0
- package/src/components/ui/label/label.tsx +36 -0
- package/src/components/ui/menubar/index.ts +16 -0
- package/src/components/ui/menubar/menubar.tsx +190 -0
- package/src/components/ui/modal-dialog/index.ts +1 -0
- package/src/components/ui/modal-dialog/modal-dialog.tsx +95 -0
- package/src/components/ui/navigation-menu/index.ts +13 -0
- package/src/components/ui/navigation-menu/navigation-menu.tsx +229 -0
- package/src/components/ui/pagination/index.ts +8 -0
- package/src/components/ui/pagination/pagination.tsx +144 -0
- package/src/components/ui/popover/index.ts +10 -0
- package/src/components/ui/popover/popover.tsx +81 -0
- package/src/components/ui/progress/index.ts +1 -0
- package/src/components/ui/progress/progress.tsx +67 -0
- package/src/components/ui/radio-group/index.ts +1 -0
- package/src/components/ui/radio-group/radio-group.tsx +78 -0
- package/src/components/ui/resizable/index.ts +6 -0
- package/src/components/ui/resizable/resizable.tsx +74 -0
- package/src/components/ui/scroll-area/index.ts +1 -0
- package/src/components/ui/scroll-area/scroll-area.tsx +66 -0
- package/src/components/ui/select/index.ts +11 -0
- package/src/components/ui/select/select.tsx +188 -0
- package/src/components/ui/separator/index.ts +1 -0
- package/src/components/ui/separator/separator.tsx +40 -0
- package/src/components/ui/sheet/index.ts +13 -0
- package/src/components/ui/sheet/sheet.tsx +132 -0
- package/src/components/ui/skeleton/index.ts +1 -0
- package/src/components/ui/skeleton/skeleton.tsx +28 -0
- package/src/components/ui/slider/index.ts +1 -0
- package/src/components/ui/slider/slider.tsx +81 -0
- package/src/components/ui/spinner/index.ts +1 -0
- package/src/components/ui/spinner/spinner.tsx +58 -0
- package/src/components/ui/status-chip/index.ts +8 -0
- package/src/components/ui/status-chip/status-chip.tsx +142 -0
- package/src/components/ui/switch/index.ts +1 -0
- package/src/components/ui/switch/switch.tsx +100 -0
- package/src/components/ui/table/index.ts +11 -0
- package/src/components/ui/table/table.tsx +125 -0
- package/src/components/ui/tabs/index.ts +8 -0
- package/src/components/ui/tabs/tabs.tsx +77 -0
- package/src/components/ui/textarea/index.ts +1 -0
- package/src/components/ui/textarea/textarea.tsx +36 -0
- package/src/components/ui/toast/index.ts +1 -0
- package/src/components/ui/toast/toast.tsx +220 -0
- package/src/components/ui/toggle/index.ts +1 -0
- package/src/components/ui/toggle/toggle.tsx +60 -0
- package/src/components/ui/toggle-group/index.ts +6 -0
- package/src/components/ui/toggle-group/toggle-group.tsx +66 -0
- package/src/components/ui/tooltip/index.ts +9 -0
- package/src/components/ui/tooltip/tooltip.tsx +102 -0
- package/src/index.ts +154 -0
- package/src/lib/keyed-rows.ts +68 -0
- package/src/lib/overlay.ts +70 -0
- package/src/lib/themes.ts +490 -0
- package/src/lib/tokens.ts +688 -0
- package/src/lib/utils.ts +74 -4
- package/src/lib/variants.ts +62 -0
- package/src/lib/version-notes.ts +35 -0
- package/src/styles/base.css +489 -484
- package/src/styles/fonts.css +26 -0
- package/src/styles/globals.css +14 -3
- package/src/styles/theme.css +838 -229
- package/LICENSE +0 -201
- package/dist/components/account-drawer.d.ts +0 -11
- package/dist/components/account-drawer.js +0 -120
- package/dist/components/appearance.d.ts +0 -261
- package/dist/components/appearance.js +0 -802
- package/dist/components/on-screen-controls.d.ts +0 -8
- package/dist/components/on-screen-controls.js +0 -162
- package/dist/components/scene-settings.d.ts +0 -33
- package/dist/components/scene-settings.js +0 -253
- package/dist/components/theme-preview.d.ts +0 -40
- package/dist/components/theme-preview.js +0 -210
- package/dist/components/theme-provider.d.ts +0 -52
- package/dist/components/theme-provider.js +0 -128
- package/dist/components/theme-swatch.d.ts +0 -12
- package/dist/components/theme-swatch.js +0 -66
- package/dist/components/theme-toggle.d.ts +0 -7
- package/dist/components/theme-toggle.js +0 -64
- package/dist/components/ui/badge.d.ts +0 -8
- package/dist/components/ui/badge.js +0 -34
- package/dist/components/ui/button.d.ts +0 -9
- package/dist/components/ui/button.js +0 -52
- package/dist/components/ui/card.d.ts +0 -4
- package/dist/components/ui/card.js +0 -28
- package/dist/components/ui/dialog.d.ts +0 -15
- package/dist/components/ui/dialog.js +0 -104
- package/dist/components/ui/drawer.d.ts +0 -24
- package/dist/components/ui/drawer.js +0 -120
- package/dist/components/ui/dropdown-menu.d.ts +0 -35
- package/dist/components/ui/dropdown-menu.js +0 -180
- package/dist/components/ui/empty.d.ts +0 -12
- package/dist/components/ui/field.d.ts +0 -25
- package/dist/components/ui/field.js +0 -188
- package/dist/components/ui/input.d.ts +0 -3
- package/dist/components/ui/input.js +0 -22
- package/dist/components/ui/label.d.ts +0 -3
- package/dist/components/ui/label.js +0 -17
- package/dist/components/ui/radio-group.d.ts +0 -5
- package/dist/components/ui/radio-group.js +0 -39
- package/dist/components/ui/separator.d.ts +0 -7
- package/dist/components/ui/separator.js +0 -20
- package/dist/components/ui/skeleton.d.ts +0 -3
- package/dist/components/ui/skeleton.js +0 -17
- package/dist/components/ui/spinner.d.ts +0 -5
- package/dist/components/ui/spinner.js +0 -17
- package/dist/components/ui/switch.d.ts +0 -8
- package/dist/components/ui/switch.js +0 -59
- package/dist/components/ui/tabs.d.ts +0 -11
- package/dist/components/ui/tabs.js +0 -57
- package/dist/components/ui/toggle-group.d.ts +0 -13
- package/dist/components/ui/toggle-group.js +0 -95
- package/dist/components/ui/toggle.d.ts +0 -10
- package/dist/components/ui/toggle.js +0 -41
- package/dist/components/ui/tooltip.d.ts +0 -15
- package/dist/components/ui/tooltip.js +0 -55
- package/dist/components/version-dialog.d.ts +0 -25
- package/dist/components/version-dialog.js +0 -330
- package/dist/components/workspace-brand.d.ts +0 -5
- package/dist/components/workspace-brand.js +0 -13
- package/dist/components/workspace-logo.d.ts +0 -3
- package/dist/components/workspace-logo.js +0 -17
- package/src/components/account-drawer.tsx +0 -114
- package/src/components/appearance.ts +0 -1112
- package/src/components/on-screen-controls.tsx +0 -149
- package/src/components/scene-settings.tsx +0 -199
- package/src/components/theme-preview.tsx +0 -170
- package/src/components/theme-provider.tsx +0 -214
- package/src/components/theme-swatch.tsx +0 -49
- package/src/components/theme-toggle.tsx +0 -48
- package/src/components/ui/badge.tsx +0 -40
- package/src/components/ui/button.tsx +0 -58
- package/src/components/ui/card.tsx +0 -21
- package/src/components/ui/dialog.tsx +0 -132
- package/src/components/ui/drawer.tsx +0 -168
- package/src/components/ui/dropdown-menu.tsx +0 -235
- package/src/components/ui/empty.tsx +0 -97
- package/src/components/ui/field.tsx +0 -220
- package/src/components/ui/input.tsx +0 -20
- package/src/components/ui/label.tsx +0 -19
- package/src/components/ui/radio-group.tsx +0 -41
- package/src/components/ui/separator.tsx +0 -28
- package/src/components/ui/skeleton.tsx +0 -16
- package/src/components/ui/spinner.tsx +0 -20
- package/src/components/ui/switch.tsx +0 -59
- package/src/components/ui/tabs.tsx +0 -76
- package/src/components/ui/toggle-group.tsx +0 -98
- package/src/components/ui/toggle.tsx +0 -42
- package/src/components/ui/tooltip.tsx +0 -61
- package/src/components/version-dialog.tsx +0 -368
- package/src/components/workspace-brand.tsx +0 -18
- package/src/components/workspace-logo.tsx +0 -21
- package/src/index.tsx +0 -53
- package/src/styles/auth-shell.css +0 -167
- package/src/styles/conventional-workspace.css +0 -2858
- package/src/styles/dev-view.css +0 -899
- package/src/styles/workspace-shell.css +0 -82
- package/tsconfig.json +0 -11
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { Menubar as KobalteMenubar } from '@kobalte/core/menubar'
|
|
2
|
+
import { Check, ChevronRight, Circle } from 'lucide-solid'
|
|
3
|
+
import type { ComponentProps } from 'solid-js'
|
|
4
|
+
import { splitProps } from 'solid-js'
|
|
5
|
+
import {
|
|
6
|
+
menuContentPadding,
|
|
7
|
+
menuItem,
|
|
8
|
+
menuLabel,
|
|
9
|
+
menuSeparator,
|
|
10
|
+
overlayMotion,
|
|
11
|
+
overlaySurface,
|
|
12
|
+
popoverArrow,
|
|
13
|
+
} from '#lib/overlay'
|
|
14
|
+
import { cn } from '#lib/utils'
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Menubar.
|
|
18
|
+
*
|
|
19
|
+
* A persistent row of menus at the top of a surface — the desktop application
|
|
20
|
+
* pattern. Each trigger opens its own menu, and the arrow keys move *between*
|
|
21
|
+
* menus once one is open, which is what makes a menubar a single control rather
|
|
22
|
+
* than five menus that happen to be adjacent.
|
|
23
|
+
*
|
|
24
|
+
* This is for a window-level command surface. For actions on one thing, use
|
|
25
|
+
* DropdownMenu; a menubar on a row would be a menu pretending to be chrome.
|
|
26
|
+
*/
|
|
27
|
+
export function Menubar(props: ComponentProps<typeof KobalteMenubar>) {
|
|
28
|
+
const [local, rest] = splitProps(props, ['class'])
|
|
29
|
+
return (
|
|
30
|
+
<KobalteMenubar
|
|
31
|
+
class={cn(
|
|
32
|
+
'flex items-center gap-0.5 rounded-md border border-border bg-card p-0.5',
|
|
33
|
+
local.class
|
|
34
|
+
)}
|
|
35
|
+
{...rest}
|
|
36
|
+
/>
|
|
37
|
+
)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* One top-level menu: a trigger and the panel it opens.
|
|
42
|
+
*
|
|
43
|
+
* Required, and the reason the component is not just a row of triggers — the
|
|
44
|
+
* menubar's arrow keys move *between* menus, which only works when each trigger
|
|
45
|
+
* belongs to a menu the bar knows about. `value` names it.
|
|
46
|
+
*/
|
|
47
|
+
export function MenubarMenu(props: ComponentProps<typeof KobalteMenubar.Menu>) {
|
|
48
|
+
return <KobalteMenubar.Menu {...props} />
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export function MenubarTrigger(props: ComponentProps<typeof KobalteMenubar.Trigger>) {
|
|
52
|
+
const [local, rest] = splitProps(props, ['class'])
|
|
53
|
+
return (
|
|
54
|
+
<KobalteMenubar.Trigger
|
|
55
|
+
class={cn(
|
|
56
|
+
'flex items-center rounded-sm px-2 py-1 text-sm font-medium select-none',
|
|
57
|
+
'transition-colors ease-out outline-none',
|
|
58
|
+
'data-[expanded]:bg-surface-active',
|
|
59
|
+
'data-[highlighted]:bg-surface-hover',
|
|
60
|
+
'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle',
|
|
61
|
+
local.class
|
|
62
|
+
)}
|
|
63
|
+
{...rest}
|
|
64
|
+
/>
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export function MenubarContent(props: ComponentProps<typeof KobalteMenubar.Content>) {
|
|
69
|
+
const [local, rest] = splitProps(props, ['class', 'children'])
|
|
70
|
+
return (
|
|
71
|
+
<KobalteMenubar.Portal>
|
|
72
|
+
<KobalteMenubar.Content
|
|
73
|
+
class={cn(
|
|
74
|
+
overlaySurface,
|
|
75
|
+
overlayMotion,
|
|
76
|
+
'z-(--z-menu) min-w-[10rem] origin-(--kb-menu-content-transform-origin) overflow-hidden',
|
|
77
|
+
menuContentPadding,
|
|
78
|
+
local.class
|
|
79
|
+
)}
|
|
80
|
+
{...rest}
|
|
81
|
+
>
|
|
82
|
+
<KobalteMenubar.Arrow aria-hidden="true" class={popoverArrow} />
|
|
83
|
+
{local.children}
|
|
84
|
+
</KobalteMenubar.Content>
|
|
85
|
+
</KobalteMenubar.Portal>
|
|
86
|
+
)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function MenubarItem(
|
|
90
|
+
props: ComponentProps<typeof KobalteMenubar.Item> & {
|
|
91
|
+
variant?: 'default' | 'destructive'
|
|
92
|
+
shortcut?: string
|
|
93
|
+
}
|
|
94
|
+
) {
|
|
95
|
+
const [local, rest] = splitProps(props, ['class', 'variant', 'shortcut', 'children'])
|
|
96
|
+
return (
|
|
97
|
+
<KobalteMenubar.Item
|
|
98
|
+
class={cn(
|
|
99
|
+
menuItem,
|
|
100
|
+
{
|
|
101
|
+
'text-destructive data-[highlighted]:bg-destructive-subtle data-[highlighted]:text-destructive':
|
|
102
|
+
local.variant === 'destructive',
|
|
103
|
+
},
|
|
104
|
+
local.class
|
|
105
|
+
)}
|
|
106
|
+
{...rest}
|
|
107
|
+
>
|
|
108
|
+
{local.children}
|
|
109
|
+
{local.shortcut ? (
|
|
110
|
+
<span class="text-muted-foreground ms-auto font-mono text-2xs tracking-widest">
|
|
111
|
+
{local.shortcut}
|
|
112
|
+
</span>
|
|
113
|
+
) : null}
|
|
114
|
+
</KobalteMenubar.Item>
|
|
115
|
+
)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export function MenubarCheckboxItem(props: ComponentProps<typeof KobalteMenubar.CheckboxItem>) {
|
|
119
|
+
const [local, rest] = splitProps(props, ['class', 'children'])
|
|
120
|
+
return (
|
|
121
|
+
<KobalteMenubar.CheckboxItem class={cn(menuItem, 'pe-8', local.class)} {...rest}>
|
|
122
|
+
{local.children}
|
|
123
|
+
<KobalteMenubar.ItemIndicator class="absolute end-2 flex size-4 items-center justify-center">
|
|
124
|
+
<Check class="size-4" />
|
|
125
|
+
</KobalteMenubar.ItemIndicator>
|
|
126
|
+
</KobalteMenubar.CheckboxItem>
|
|
127
|
+
)
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export function MenubarRadioGroup(props: ComponentProps<typeof KobalteMenubar.RadioGroup>) {
|
|
131
|
+
return <KobalteMenubar.RadioGroup {...props} />
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export function MenubarRadioItem(props: ComponentProps<typeof KobalteMenubar.RadioItem>) {
|
|
135
|
+
const [local, rest] = splitProps(props, ['class', 'children'])
|
|
136
|
+
return (
|
|
137
|
+
<KobalteMenubar.RadioItem class={cn(menuItem, 'pe-8', local.class)} {...rest}>
|
|
138
|
+
{local.children}
|
|
139
|
+
<KobalteMenubar.ItemIndicator class="absolute end-2 flex size-4 items-center justify-center">
|
|
140
|
+
<Circle class="size-2 fill-current" />
|
|
141
|
+
</KobalteMenubar.ItemIndicator>
|
|
142
|
+
</KobalteMenubar.RadioItem>
|
|
143
|
+
)
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export function MenubarLabel(props: ComponentProps<typeof KobalteMenubar.GroupLabel>) {
|
|
147
|
+
const [local, rest] = splitProps(props, ['class'])
|
|
148
|
+
return <KobalteMenubar.GroupLabel class={cn(menuLabel, local.class)} {...rest} />
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export function MenubarGroup(props: ComponentProps<typeof KobalteMenubar.Group>) {
|
|
152
|
+
return <KobalteMenubar.Group {...props} />
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export function MenubarSeparator(props: ComponentProps<typeof KobalteMenubar.Separator>) {
|
|
156
|
+
const [local, rest] = splitProps(props, ['class'])
|
|
157
|
+
return <KobalteMenubar.Separator class={cn(menuSeparator, local.class)} {...rest} />
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export function MenubarSub(props: ComponentProps<typeof KobalteMenubar.Sub>) {
|
|
161
|
+
return <KobalteMenubar.Sub {...props} />
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export function MenubarSubTrigger(props: ComponentProps<typeof KobalteMenubar.SubTrigger>) {
|
|
165
|
+
const [local, rest] = splitProps(props, ['class', 'children'])
|
|
166
|
+
return (
|
|
167
|
+
<KobalteMenubar.SubTrigger class={cn(menuItem, local.class)} {...rest}>
|
|
168
|
+
{local.children}
|
|
169
|
+
<ChevronRight class="ms-auto size-4" />
|
|
170
|
+
</KobalteMenubar.SubTrigger>
|
|
171
|
+
)
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export function MenubarSubContent(props: ComponentProps<typeof KobalteMenubar.SubContent>) {
|
|
175
|
+
const [local, rest] = splitProps(props, ['class'])
|
|
176
|
+
return (
|
|
177
|
+
<KobalteMenubar.Portal>
|
|
178
|
+
<KobalteMenubar.SubContent
|
|
179
|
+
class={cn(
|
|
180
|
+
overlaySurface,
|
|
181
|
+
overlayMotion,
|
|
182
|
+
'z-(--z-menu) min-w-[8rem] origin-(--kb-menu-content-transform-origin) overflow-hidden',
|
|
183
|
+
menuContentPadding,
|
|
184
|
+
local.class
|
|
185
|
+
)}
|
|
186
|
+
{...rest}
|
|
187
|
+
/>
|
|
188
|
+
</KobalteMenubar.Portal>
|
|
189
|
+
)
|
|
190
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ModalDialog, type ModalDialogProps } from './modal-dialog'
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { ComponentProps, JSX } from 'solid-js'
|
|
2
|
+
import { Show, createEffect, createSignal, onCleanup, splitProps } from 'solid-js'
|
|
3
|
+
import { cn } from '#lib/utils'
|
|
4
|
+
import {
|
|
5
|
+
Dialog,
|
|
6
|
+
DialogContent,
|
|
7
|
+
DialogDescription,
|
|
8
|
+
DialogHeader,
|
|
9
|
+
DialogTitle,
|
|
10
|
+
} from '../dialog/dialog'
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* ModalDialog.
|
|
14
|
+
*
|
|
15
|
+
* A dialog that owns three things `Dialog` leaves to its caller, each of which is a
|
|
16
|
+
* real defect when it is missed:
|
|
17
|
+
*
|
|
18
|
+
* 1. **It unmounts while closed.** An always-mounted dialog that closes as a side
|
|
19
|
+
* effect of an async action can leave Kobalte's `aria-hidden` bookkeeping behind,
|
|
20
|
+
* which hides the rest of the application from assistive technology. Unmounting
|
|
21
|
+
* the whole owner makes cleanup the only way the layer can end.
|
|
22
|
+
* 2. **It marks the background `inert`.** `inert` keeps the background out of the
|
|
23
|
+
* tab order and the accessibility tree without depending on that bookkeeping, and
|
|
24
|
+
* it restores exactly the elements that did not already have it — so a nested
|
|
25
|
+
* dialog does not un-inert its parent.
|
|
26
|
+
* 3. **It labels itself explicitly.** The title registers its id for
|
|
27
|
+
* `aria-labelledby` in a mount effect; if that registration is ever lost, the
|
|
28
|
+
* dialog renders with a heading and no name. Passing the label as well costs
|
|
29
|
+
* nothing and removes the race.
|
|
30
|
+
*
|
|
31
|
+
* Use `Dialog` directly when you need its composition; use this when you want a
|
|
32
|
+
* dialog that is correct by default.
|
|
33
|
+
*/
|
|
34
|
+
export type ModalDialogProps = Omit<ComponentProps<typeof DialogContent>, 'children'> & {
|
|
35
|
+
open: boolean
|
|
36
|
+
onClose: () => void
|
|
37
|
+
title: string
|
|
38
|
+
description?: string
|
|
39
|
+
/** A mark or icon drawn before the title. */
|
|
40
|
+
headerLeading?: JSX.Element
|
|
41
|
+
children?: JSX.Element
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function ModalDialog(props: ModalDialogProps) {
|
|
45
|
+
const [local, rest] = splitProps(props, [
|
|
46
|
+
'open',
|
|
47
|
+
'onClose',
|
|
48
|
+
'title',
|
|
49
|
+
'description',
|
|
50
|
+
'headerLeading',
|
|
51
|
+
'class',
|
|
52
|
+
'children',
|
|
53
|
+
])
|
|
54
|
+
|
|
55
|
+
const [content, setContent] = createSignal<HTMLElement>()
|
|
56
|
+
|
|
57
|
+
createEffect(() => {
|
|
58
|
+
if (!local.open) return
|
|
59
|
+
const element = content()
|
|
60
|
+
if (!element) return
|
|
61
|
+
|
|
62
|
+
const background = [...document.body.children].filter(
|
|
63
|
+
(child): child is HTMLElement => child instanceof HTMLElement && !child.contains(element)
|
|
64
|
+
)
|
|
65
|
+
const wasInert = background.map((node) => node.hasAttribute('inert'))
|
|
66
|
+
for (const node of background) node.setAttribute('inert', '')
|
|
67
|
+
|
|
68
|
+
onCleanup(() => {
|
|
69
|
+
background.forEach((node, index) => {
|
|
70
|
+
// Only the elements that were not already inert are restored, so a nested
|
|
71
|
+
// dialog closing does not undo its parent's containment.
|
|
72
|
+
if (!wasInert[index]) node.removeAttribute('inert')
|
|
73
|
+
})
|
|
74
|
+
})
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
return (
|
|
78
|
+
<Show when={local.open}>
|
|
79
|
+
<Dialog open onOpenChange={(next) => !next && local.onClose()}>
|
|
80
|
+
<DialogContent ref={setContent} class={cn('gap-4', local.class)} {...rest}>
|
|
81
|
+
<DialogHeader>
|
|
82
|
+
<DialogTitle class="flex items-center gap-2">
|
|
83
|
+
<Show when={local.headerLeading}>{local.headerLeading}</Show>
|
|
84
|
+
{local.title}
|
|
85
|
+
</DialogTitle>
|
|
86
|
+
<Show when={local.description}>
|
|
87
|
+
<DialogDescription>{local.description}</DialogDescription>
|
|
88
|
+
</Show>
|
|
89
|
+
</DialogHeader>
|
|
90
|
+
{local.children}
|
|
91
|
+
</DialogContent>
|
|
92
|
+
</Dialog>
|
|
93
|
+
</Show>
|
|
94
|
+
)
|
|
95
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export {
|
|
2
|
+
NavigationMenu,
|
|
3
|
+
NavigationMenuContent,
|
|
4
|
+
NavigationMenuGroup,
|
|
5
|
+
NavigationMenuGroupLabel,
|
|
6
|
+
NavigationMenuItem,
|
|
7
|
+
NavigationMenuMenu,
|
|
8
|
+
NavigationMenuSeparator,
|
|
9
|
+
NavigationMenuTrigger,
|
|
10
|
+
NavigationMenuViewport,
|
|
11
|
+
type NavigationMenuItemProps,
|
|
12
|
+
type NavigationMenuProps,
|
|
13
|
+
} from './navigation-menu'
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { splitProps, type ComponentProps, type JSX } from 'solid-js'
|
|
2
|
+
import * as KobalteNavigationMenu from '@kobalte/core/navigation-menu'
|
|
3
|
+
import { ChevronDown } from 'lucide-solid'
|
|
4
|
+
import { cn } from '#lib/utils'
|
|
5
|
+
import { menuContentPadding, menuItem, overlayMotion, overlaySurface } from '#lib/overlay'
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* NavigationMenu.
|
|
9
|
+
*
|
|
10
|
+
* A site-style menu bar: top-level triggers that open panels of links. It is the
|
|
11
|
+
* header pattern — a documentation site, a marketing page, an application with
|
|
12
|
+
* several top-level destinations — and it is deliberately *not* a `Menubar`.
|
|
13
|
+
* `Menubar` is a row of application menus (File, Edit, View) whose items are
|
|
14
|
+
* commands; this is a row of destinations whose panels are links. The two have
|
|
15
|
+
* different roles, different keyboard models, and different semantics.
|
|
16
|
+
*
|
|
17
|
+
* ## Composition
|
|
18
|
+
*
|
|
19
|
+
* Kobalte's primitive has an unusual shape, and getting it wrong is why this took
|
|
20
|
+
* three attempts to port. The structure is:
|
|
21
|
+
*
|
|
22
|
+
* ```tsx
|
|
23
|
+
* <NavigationMenu>
|
|
24
|
+
* <NavigationMenuMenu>
|
|
25
|
+
* <NavigationMenuTrigger>Destinations</NavigationMenuTrigger>
|
|
26
|
+
* <NavigationMenuContent>
|
|
27
|
+
* <NavigationMenuItem href="/x">X</NavigationMenuItem>
|
|
28
|
+
* </NavigationMenuContent>
|
|
29
|
+
* </NavigationMenuMenu>
|
|
30
|
+
* <NavigationMenuViewport />
|
|
31
|
+
* </NavigationMenu>
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* Three facts that are not obvious from the prop types:
|
|
35
|
+
*
|
|
36
|
+
* - `Menu` renders **nothing**. It is a context provider — one per top-level
|
|
37
|
+
* entry, naming it so the bar's arrow keys can move between entries. A menu
|
|
38
|
+
* without one cannot be reached by keyboard.
|
|
39
|
+
* - `Trigger` renders `<li role="presentation"><button>`. It is already the list
|
|
40
|
+
* item, so wrapping it in your own `<li>` produces a `<ul>` inside a `<ul>`.
|
|
41
|
+
* - `Content` must be a direct child of `Menu`, and the `Viewport` is a **sibling
|
|
42
|
+
* of the menus** — not inside them. All the panels share one viewport, which is
|
|
43
|
+
* what lets the bar animate between them instead of each panel popping in place.
|
|
44
|
+
*
|
|
45
|
+
* The wrapper enforces the last of those by rendering the `Viewport` itself, so a
|
|
46
|
+
* caller cannot forget it and get a menu whose panels never appear.
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
export type NavigationMenuProps = ComponentProps<typeof KobalteNavigationMenu.Root> & {
|
|
50
|
+
/** The accessible name for the navigation landmark. */
|
|
51
|
+
label?: string
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function NavigationMenu(props: NavigationMenuProps) {
|
|
55
|
+
const [local, rest] = splitProps(props, ['label', 'class', 'children'])
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<KobalteNavigationMenu.Root
|
|
59
|
+
class={cn(
|
|
60
|
+
'relative flex max-w-max flex-1 items-center justify-center',
|
|
61
|
+
'[&>nav>ul]:flex [&>nav>ul]:items-center [&>nav>ul]:gap-1',
|
|
62
|
+
local.class
|
|
63
|
+
)}
|
|
64
|
+
aria-label={local.label ?? 'Main'}
|
|
65
|
+
{...rest}
|
|
66
|
+
>
|
|
67
|
+
{local.children}
|
|
68
|
+
{/*
|
|
69
|
+
The shared panel surface. Rendered here rather than left to the caller:
|
|
70
|
+
every panel animates through this one element, and a menu bar without it
|
|
71
|
+
opens panels that never paint.
|
|
72
|
+
*/}
|
|
73
|
+
<NavigationMenuViewport />
|
|
74
|
+
</KobalteNavigationMenu.Root>
|
|
75
|
+
)
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* One top-level entry. Renders nothing itself — see the note above — and exists
|
|
80
|
+
* so a caller cannot build a bar whose entries the keyboard cannot reach.
|
|
81
|
+
*/
|
|
82
|
+
export function NavigationMenuMenu(props: ComponentProps<typeof KobalteNavigationMenu.Menu>) {
|
|
83
|
+
return <KobalteNavigationMenu.Menu {...props} />
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export function NavigationMenuTrigger(props: ComponentProps<typeof KobalteNavigationMenu.Trigger>) {
|
|
87
|
+
const [local, rest] = splitProps(props, ['class', 'children'])
|
|
88
|
+
|
|
89
|
+
return (
|
|
90
|
+
<KobalteNavigationMenu.Trigger
|
|
91
|
+
class={cn(
|
|
92
|
+
'inline-flex items-center gap-1 rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground',
|
|
93
|
+
'transition-colors ease-out outline-none select-none',
|
|
94
|
+
'hover:bg-muted hover:text-foreground',
|
|
95
|
+
'data-[expanded]:bg-muted data-[expanded]:text-foreground',
|
|
96
|
+
'data-[highlighted]:bg-muted data-[highlighted]:text-foreground',
|
|
97
|
+
'focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none',
|
|
98
|
+
local.class
|
|
99
|
+
)}
|
|
100
|
+
{...rest}
|
|
101
|
+
>
|
|
102
|
+
{local.children}
|
|
103
|
+
<ChevronDown
|
|
104
|
+
aria-hidden="true"
|
|
105
|
+
class="size-3.5 transition-transform duration-200 ease-out [[data-expanded]_&]:rotate-180"
|
|
106
|
+
/>
|
|
107
|
+
</KobalteNavigationMenu.Trigger>
|
|
108
|
+
)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export function NavigationMenuContent(props: ComponentProps<typeof KobalteNavigationMenu.Content>) {
|
|
112
|
+
const [local, rest] = splitProps(props, ['class', 'children'])
|
|
113
|
+
|
|
114
|
+
return (
|
|
115
|
+
<KobalteNavigationMenu.Content
|
|
116
|
+
class={cn(
|
|
117
|
+
'grid w-max gap-1 p-2',
|
|
118
|
+
// A two-column panel is the shape most menu bars want, and it is opt-in
|
|
119
|
+
// through this hook rather than a prop because the column count is a
|
|
120
|
+
// layout decision the caller's content makes.
|
|
121
|
+
'data-[wide]:grid-cols-2',
|
|
122
|
+
local.class
|
|
123
|
+
)}
|
|
124
|
+
{...rest}
|
|
125
|
+
>
|
|
126
|
+
{local.children}
|
|
127
|
+
</KobalteNavigationMenu.Content>
|
|
128
|
+
)
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* The shared panel surface. One per menu bar, and the wrapper supplies it — but
|
|
133
|
+
* exported so a caller with an unusual layout can place it themselves.
|
|
134
|
+
*/
|
|
135
|
+
export function NavigationMenuViewport(
|
|
136
|
+
props: ComponentProps<typeof KobalteNavigationMenu.Viewport>
|
|
137
|
+
) {
|
|
138
|
+
const [local, rest] = splitProps(props, ['class'])
|
|
139
|
+
|
|
140
|
+
return (
|
|
141
|
+
<KobalteNavigationMenu.Viewport
|
|
142
|
+
class={cn(
|
|
143
|
+
'absolute top-full left-0 isolate z-(--z-menu) mt-1.5 flex justify-center overflow-hidden',
|
|
144
|
+
'h-(--kb-navigation-menu-viewport-height) w-(--kb-navigation-menu-viewport-width)',
|
|
145
|
+
'origin-top transition-[width,height] duration-200 ease-out',
|
|
146
|
+
local.class
|
|
147
|
+
)}
|
|
148
|
+
{...rest}
|
|
149
|
+
>
|
|
150
|
+
<div
|
|
151
|
+
class={cn(
|
|
152
|
+
overlaySurface,
|
|
153
|
+
overlayMotion,
|
|
154
|
+
'w-full rounded-lg border border-border bg-popover p-1 shadow-lg'
|
|
155
|
+
)}
|
|
156
|
+
>
|
|
157
|
+
<KobalteNavigationMenu.Content />
|
|
158
|
+
</div>
|
|
159
|
+
</KobalteNavigationMenu.Viewport>
|
|
160
|
+
)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* A link inside a panel. `href` is the point of the component, so it is a link
|
|
165
|
+
* rather than a button — and the accessible name comes from its text, which is
|
|
166
|
+
* why there is no `aria-label` here.
|
|
167
|
+
*/
|
|
168
|
+
export type NavigationMenuItemProps = ComponentProps<typeof KobalteNavigationMenu.Item> & {
|
|
169
|
+
/** A one-line description, shown under the label. */
|
|
170
|
+
description?: string
|
|
171
|
+
/** A leading icon. */
|
|
172
|
+
icon?: JSX.Element
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export function NavigationMenuItem(props: NavigationMenuItemProps) {
|
|
176
|
+
const [local, rest] = splitProps(props, ['class', 'children', 'description', 'icon'])
|
|
177
|
+
|
|
178
|
+
return (
|
|
179
|
+
<KobalteNavigationMenu.Item
|
|
180
|
+
class={cn(
|
|
181
|
+
menuItem,
|
|
182
|
+
'grid grid-cols-[auto_1fr] items-center gap-x-2 gap-y-0.5',
|
|
183
|
+
local.description && 'grid-rows-[auto_auto] py-2',
|
|
184
|
+
local.class
|
|
185
|
+
)}
|
|
186
|
+
{...rest}
|
|
187
|
+
>
|
|
188
|
+
{local.icon}
|
|
189
|
+
<span class="font-medium">{local.children}</span>
|
|
190
|
+
{local.description && (
|
|
191
|
+
<span class="col-start-2 text-xs text-muted-foreground">{local.description}</span>
|
|
192
|
+
)}
|
|
193
|
+
</KobalteNavigationMenu.Item>
|
|
194
|
+
)
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export function NavigationMenuSeparator(
|
|
198
|
+
props: ComponentProps<typeof KobalteNavigationMenu.Separator>
|
|
199
|
+
) {
|
|
200
|
+
const [local, rest] = splitProps(props, ['class'])
|
|
201
|
+
return (
|
|
202
|
+
<KobalteNavigationMenu.Separator
|
|
203
|
+
class={cn('-mx-1 my-1 h-px bg-border', local.class)}
|
|
204
|
+
{...rest}
|
|
205
|
+
/>
|
|
206
|
+
)
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/** A non-interactive caption above a group of items. */
|
|
210
|
+
export function NavigationMenuGroupLabel(
|
|
211
|
+
props: ComponentProps<typeof KobalteNavigationMenu.GroupLabel>
|
|
212
|
+
) {
|
|
213
|
+
const [local, rest] = splitProps(props, ['class'])
|
|
214
|
+
return (
|
|
215
|
+
<KobalteNavigationMenu.GroupLabel
|
|
216
|
+
class={cn(
|
|
217
|
+
menuContentPadding,
|
|
218
|
+
'text-2xs font-semibold text-muted-foreground uppercase',
|
|
219
|
+
local.class
|
|
220
|
+
)}
|
|
221
|
+
{...rest}
|
|
222
|
+
/>
|
|
223
|
+
)
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
export function NavigationMenuGroup(props: ComponentProps<typeof KobalteNavigationMenu.Group>) {
|
|
227
|
+
const [local, rest] = splitProps(props, ['class'])
|
|
228
|
+
return <KobalteNavigationMenu.Group class={cn('grid gap-0.5', local.class)} {...rest} />
|
|
229
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Pagination as KobaltePagination,
|
|
3
|
+
type PaginationRootOptions,
|
|
4
|
+
} from '@kobalte/core/pagination'
|
|
5
|
+
import { ChevronLeft, ChevronRight, MoreHorizontal } from 'lucide-solid'
|
|
6
|
+
import type { ComponentProps, JSX } from 'solid-js'
|
|
7
|
+
import { Show, splitProps } from 'solid-js'
|
|
8
|
+
import { cn } from '#lib/utils'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Pagination.
|
|
12
|
+
*
|
|
13
|
+
* Page navigation for a list the server pages, not for a list the client already
|
|
14
|
+
* holds — slicing an array you have is a filter, and it should not spend a round
|
|
15
|
+
* trip.
|
|
16
|
+
*
|
|
17
|
+
* Kobalte computes the visible page window and the ellipsis positions and emits
|
|
18
|
+
* `aria-current="page"`, so the control announces which page is active instead of
|
|
19
|
+
* leaving it to colour alone.
|
|
20
|
+
*
|
|
21
|
+
* The item and ellipsis renderers are *supplied here*, not required of the caller.
|
|
22
|
+
* Kobalte's root makes them mandatory because it has no opinion about how a page
|
|
23
|
+
* number should look; a design system does, so the only thing a caller has to pass
|
|
24
|
+
* is `count` — while still being able to override either renderer when a view
|
|
25
|
+
* needs to.
|
|
26
|
+
*/
|
|
27
|
+
export type PaginationProps = Omit<PaginationRootOptions, 'itemComponent' | 'ellipsisComponent'> & {
|
|
28
|
+
itemComponent?: PaginationRootOptions['itemComponent']
|
|
29
|
+
ellipsisComponent?: PaginationRootOptions['ellipsisComponent']
|
|
30
|
+
class?: string
|
|
31
|
+
children?: JSX.Element
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const paginationControl = cn(
|
|
35
|
+
'inline-flex h-control-md min-w-(--control-height-md) items-center justify-center gap-1 rounded-md border border-transparent px-2 text-sm tabular-nums',
|
|
36
|
+
'transition-colors ease-out outline-none select-none',
|
|
37
|
+
'hover:bg-surface-hover',
|
|
38
|
+
'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle',
|
|
39
|
+
'disabled:pointer-events-none disabled:opacity-50',
|
|
40
|
+
'[&_svg]:pointer-events-none [&_svg]:size-4'
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
export function Pagination(props: PaginationProps) {
|
|
44
|
+
const [local, rest] = splitProps(props, [
|
|
45
|
+
'class',
|
|
46
|
+
'itemComponent',
|
|
47
|
+
'ellipsisComponent',
|
|
48
|
+
'children',
|
|
49
|
+
])
|
|
50
|
+
|
|
51
|
+
return (
|
|
52
|
+
<KobaltePagination
|
|
53
|
+
itemComponent={
|
|
54
|
+
local.itemComponent ??
|
|
55
|
+
((itemProps) => <PaginationItem page={itemProps.page}>{itemProps.page}</PaginationItem>)
|
|
56
|
+
}
|
|
57
|
+
ellipsisComponent={local.ellipsisComponent ?? (() => <PaginationEllipsis />)}
|
|
58
|
+
class={cn('flex w-full items-center justify-center gap-1', local.class)}
|
|
59
|
+
{...rest}
|
|
60
|
+
>
|
|
61
|
+
<Show when={local.children} fallback={<DefaultPaginationControls />}>
|
|
62
|
+
{local.children}
|
|
63
|
+
</Show>
|
|
64
|
+
</KobaltePagination>
|
|
65
|
+
)
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** Previous, the numbered run, next: the arrangement every list view wants. */
|
|
69
|
+
function DefaultPaginationControls() {
|
|
70
|
+
return (
|
|
71
|
+
<>
|
|
72
|
+
<PaginationPrevious />
|
|
73
|
+
<KobaltePagination.Items />
|
|
74
|
+
<PaginationNext />
|
|
75
|
+
</>
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export function PaginationPrevious(props: ComponentProps<typeof KobaltePagination.Previous>) {
|
|
80
|
+
const [local, rest] = splitProps(props, ['class', 'children'])
|
|
81
|
+
|
|
82
|
+
return (
|
|
83
|
+
<KobaltePagination.Previous class={cn(paginationControl, 'ps-1.5', local.class)} {...rest}>
|
|
84
|
+
{local.children ?? (
|
|
85
|
+
<>
|
|
86
|
+
<ChevronLeft class="size-4" />
|
|
87
|
+
<span class="hidden sm:inline">Previous</span>
|
|
88
|
+
</>
|
|
89
|
+
)}
|
|
90
|
+
</KobaltePagination.Previous>
|
|
91
|
+
)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export function PaginationNext(props: ComponentProps<typeof KobaltePagination.Next>) {
|
|
95
|
+
const [local, rest] = splitProps(props, ['class', 'children'])
|
|
96
|
+
|
|
97
|
+
return (
|
|
98
|
+
<KobaltePagination.Next class={cn(paginationControl, 'pe-1.5', local.class)} {...rest}>
|
|
99
|
+
{local.children ?? (
|
|
100
|
+
<>
|
|
101
|
+
<span class="hidden sm:inline">Next</span>
|
|
102
|
+
<ChevronRight class="size-4" />
|
|
103
|
+
</>
|
|
104
|
+
)}
|
|
105
|
+
</KobaltePagination.Next>
|
|
106
|
+
)
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export function PaginationItem(props: ComponentProps<typeof KobaltePagination.Item>) {
|
|
110
|
+
const [local, rest] = splitProps(props, ['class', 'children'])
|
|
111
|
+
|
|
112
|
+
return (
|
|
113
|
+
<KobaltePagination.Item
|
|
114
|
+
class={cn(
|
|
115
|
+
paginationControl,
|
|
116
|
+
'data-[current]:border-border data-[current]:bg-surface-active data-[current]:font-medium',
|
|
117
|
+
local.class
|
|
118
|
+
)}
|
|
119
|
+
{...rest}
|
|
120
|
+
>
|
|
121
|
+
{local.children}
|
|
122
|
+
</KobaltePagination.Item>
|
|
123
|
+
)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export function PaginationEllipsis(
|
|
127
|
+
props: ComponentProps<typeof KobaltePagination.Ellipsis> & { children?: JSX.Element }
|
|
128
|
+
) {
|
|
129
|
+
const [local, rest] = splitProps(props, ['class', 'children'])
|
|
130
|
+
|
|
131
|
+
return (
|
|
132
|
+
<KobaltePagination.Ellipsis
|
|
133
|
+
class={cn('flex size-control-md items-center justify-center', local.class)}
|
|
134
|
+
{...rest}
|
|
135
|
+
>
|
|
136
|
+
{local.children ?? (
|
|
137
|
+
<>
|
|
138
|
+
<MoreHorizontal class="size-4" />
|
|
139
|
+
<span class="visually-hidden">More pages</span>
|
|
140
|
+
</>
|
|
141
|
+
)}
|
|
142
|
+
</KobaltePagination.Ellipsis>
|
|
143
|
+
)
|
|
144
|
+
}
|