@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,137 @@
|
|
|
1
|
+
import { cn } from "../../../lib/utils.js";
|
|
2
|
+
import { menuItem } from "../../../lib/overlay.js";
|
|
3
|
+
import { className, createComponent, effect, insert, mergeProps, template, use } from "solid-js/web";
|
|
4
|
+
import { Search } from "lucide-solid";
|
|
5
|
+
import { createEffect, createSignal, splitProps } from "solid-js";
|
|
6
|
+
import { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, CommandRoot, CommandSeparator, useCommandState } from "cmdk-solid";
|
|
7
|
+
//#region src/components/ui/command/command.tsx
|
|
8
|
+
var _tmpl$ = /*#__PURE__*/ template(`<div data-slot=command-input-wrapper class="flex h-11 items-center gap-2 border-b border-border px-3">`);
|
|
9
|
+
var _tmpl$2 = /*#__PURE__*/ template(`<div class=contents>`);
|
|
10
|
+
var _tmpl$3 = /*#__PURE__*/ template(`<span>`);
|
|
11
|
+
/**
|
|
12
|
+
* Command.
|
|
13
|
+
*
|
|
14
|
+
* The command palette: a filtered list of everything the user can do, ranked
|
|
15
|
+
* by fuzzy match. It is the one place in an app where a keyboard-first surface
|
|
16
|
+
* is the *primary* one, so it carries rules the rest of the system does not:
|
|
17
|
+
*
|
|
18
|
+
* - Every item must be reachable by typing its name. If a user has to
|
|
19
|
+
* remember which group it lives in, the palette has failed at its job.
|
|
20
|
+
* - Groups exist for reading, not for navigation. The ranking crosses them.
|
|
21
|
+
* - The empty state is not an apology — it should offer the closest thing
|
|
22
|
+
* the app could guess, or say plainly that nothing matched.
|
|
23
|
+
*
|
|
24
|
+
* cmdk-solid supplies the filter, the scoring, the `aria-activedescendant`
|
|
25
|
+
* wiring and the arrow-key navigation.
|
|
26
|
+
*/
|
|
27
|
+
function Command(props) {
|
|
28
|
+
const [local, rest] = splitProps(props, ["class"]);
|
|
29
|
+
return createComponent(CommandRoot, mergeProps({ get ["class"]() {
|
|
30
|
+
return cn("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-xl", local.class);
|
|
31
|
+
} }, rest));
|
|
32
|
+
}
|
|
33
|
+
function CommandDialog$1(props) {
|
|
34
|
+
const [local, rest] = splitProps(props, ["class"]);
|
|
35
|
+
return createComponent(CommandDialog, mergeProps({ get ["class"]() {
|
|
36
|
+
return cn("bg-popover text-popover-foreground fixed top-1/3 left-1/2 z-(--z-dialog) w-full max-w-lg -translate-x-1/2 -translate-y-1/2", "overflow-hidden rounded-xl border border-border shadow-xl", "data-expanded:animate-in data-expanded:fade-in-0 data-expanded:zoom-in-95", "data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", local.class);
|
|
37
|
+
} }, rest));
|
|
38
|
+
}
|
|
39
|
+
function CommandInput$1(props) {
|
|
40
|
+
const [local, rest] = splitProps(props, ["class"]);
|
|
41
|
+
return (() => {
|
|
42
|
+
var _el$ = _tmpl$();
|
|
43
|
+
insert(_el$, createComponent(Search, {
|
|
44
|
+
"class": "size-4 shrink-0 text-muted-foreground",
|
|
45
|
+
"aria-hidden": "true"
|
|
46
|
+
}), null);
|
|
47
|
+
insert(_el$, createComponent(CommandInput, mergeProps({ get ["class"]() {
|
|
48
|
+
return cn("h-full w-full bg-transparent text-sm outline-none placeholder:text-muted-foreground", "disabled:cursor-not-allowed disabled:opacity-50", local.class);
|
|
49
|
+
} }, rest)), null);
|
|
50
|
+
return _el$;
|
|
51
|
+
})();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The scrolling list.
|
|
55
|
+
*
|
|
56
|
+
* Two DOM corrections, and both are deliberate. cmdk builds a `role="listbox"`
|
|
57
|
+
* whose children include two elements ARIA does not allow there:
|
|
58
|
+
*
|
|
59
|
+
* - a bare `<div cmdk-list-sizer>` with no role, wrapped around every group;
|
|
60
|
+
* - a `<div cmdk-separator role="separator">`, and `separator` is a menu and
|
|
61
|
+
* toolbar role — inside a listbox the only owned elements may be `option`
|
|
62
|
+
* and `group`.
|
|
63
|
+
*
|
|
64
|
+
* Both are pure presentation: the sizer is layout, and the separator is a
|
|
65
|
+
* hairline between groups that the groups already structure. `role="presentation"`
|
|
66
|
+
* is their accurate role rather than a workaround — each is flattened out of the
|
|
67
|
+
* accessibility tree, and the options inside are reached exactly as before.
|
|
68
|
+
*
|
|
69
|
+
* Written onto the mounted nodes rather than through props, because cmdk owns
|
|
70
|
+
* this markup and does not forward a `ref`; in an effect rather than `onMount`,
|
|
71
|
+
* because cmdk renders the sizer with the first item, after the list itself.
|
|
72
|
+
*/
|
|
73
|
+
function CommandList$1(props) {
|
|
74
|
+
const [local, rest] = splitProps(props, ["class"]);
|
|
75
|
+
const [wrapper, setWrapper] = createSignal();
|
|
76
|
+
const resultCount = useCommandState((state) => state.filtered.count);
|
|
77
|
+
createEffect(() => {
|
|
78
|
+
const root = wrapper();
|
|
79
|
+
if (!root) return;
|
|
80
|
+
for (const selector of ["[cmdk-list-sizer]", "[cmdk-separator]"]) root.querySelector(selector)?.setAttribute("role", "presentation");
|
|
81
|
+
root.querySelector("[cmdk-list]")?.setAttribute("role", resultCount() > 0 ? "listbox" : "presentation");
|
|
82
|
+
});
|
|
83
|
+
return (() => {
|
|
84
|
+
var _el$2 = _tmpl$2();
|
|
85
|
+
use(setWrapper, _el$2);
|
|
86
|
+
insert(_el$2, createComponent(CommandList, mergeProps({ get ["class"]() {
|
|
87
|
+
return cn("max-h-80 scroll-py-1 overflow-y-auto overflow-x-hidden p-1", local.class);
|
|
88
|
+
} }, rest)));
|
|
89
|
+
return _el$2;
|
|
90
|
+
})();
|
|
91
|
+
}
|
|
92
|
+
function CommandEmpty$1(props) {
|
|
93
|
+
const [local, rest] = splitProps(props, ["class"]);
|
|
94
|
+
return createComponent(CommandEmpty, mergeProps({
|
|
95
|
+
role: "status",
|
|
96
|
+
get ["class"]() {
|
|
97
|
+
return cn("text-muted-foreground py-8 text-center text-sm", local.class);
|
|
98
|
+
}
|
|
99
|
+
}, rest));
|
|
100
|
+
}
|
|
101
|
+
function CommandGroup$1(props) {
|
|
102
|
+
const [local, rest] = splitProps(props, ["class"]);
|
|
103
|
+
return createComponent(CommandGroup, mergeProps({ get ["class"]() {
|
|
104
|
+
return cn("text-foreground overflow-hidden p-1", "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-2xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:tracking-wide [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:uppercase", local.class);
|
|
105
|
+
} }, rest));
|
|
106
|
+
}
|
|
107
|
+
function CommandItem$1(props) {
|
|
108
|
+
const [local, rest] = splitProps(props, ["class"]);
|
|
109
|
+
return createComponent(CommandItem, mergeProps({ get ["class"]() {
|
|
110
|
+
return cn(menuItem, "data-[selected=true]:bg-surface-hover data-[selected=true]:text-foreground", local.class);
|
|
111
|
+
} }, rest));
|
|
112
|
+
}
|
|
113
|
+
function CommandSeparator$1(props) {
|
|
114
|
+
const [local, rest] = splitProps(props, ["class"]);
|
|
115
|
+
return createComponent(CommandSeparator, mergeProps({ get ["class"]() {
|
|
116
|
+
return cn("bg-border -mx-1 my-1 h-px", local.class);
|
|
117
|
+
} }, rest));
|
|
118
|
+
}
|
|
119
|
+
function CommandLoading$1(props) {
|
|
120
|
+
const [local, rest] = splitProps(props, ["class"]);
|
|
121
|
+
return createComponent(CommandLoading, mergeProps({ get ["class"]() {
|
|
122
|
+
return cn("text-muted-foreground py-6 text-center text-sm", local.class);
|
|
123
|
+
} }, rest));
|
|
124
|
+
}
|
|
125
|
+
/** The keyboard hint a palette item usually carries. */
|
|
126
|
+
function CommandShortcut(props) {
|
|
127
|
+
return (() => {
|
|
128
|
+
var _el$3 = _tmpl$3();
|
|
129
|
+
insert(_el$3, () => props.children);
|
|
130
|
+
effect(() => className(_el$3, cn("text-muted-foreground ms-auto font-mono text-2xs tracking-widest", props.class)));
|
|
131
|
+
return _el$3;
|
|
132
|
+
})();
|
|
133
|
+
}
|
|
134
|
+
//#endregion
|
|
135
|
+
export { Command, CommandDialog$1 as CommandDialog, CommandEmpty$1 as CommandEmpty, CommandGroup$1 as CommandGroup, CommandInput$1 as CommandInput, CommandItem$1 as CommandItem, CommandList$1 as CommandList, CommandLoading$1 as CommandLoading, CommandSeparator$1 as CommandSeparator, CommandShortcut };
|
|
136
|
+
|
|
137
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","names":["CommandDialog","CmdkDialog","CommandEmpty","CmdkEmpty","CommandGroup","CmdkGroup","CommandInput","CmdkInput","CommandItem","CmdkItem","CommandList","CmdkList","CommandLoading","CmdkLoading","CommandRoot","CmdkRoot","CommandSeparator","CmdkSeparator","useCommandState","Search","ComponentProps","createEffect","createSignal","splitProps","menuItem","cn","Command","props","local","rest","_$createComponent","_$mergeProps","class","_el$","_tmpl$","_$insert","wrapper","setWrapper","HTMLDivElement","resultCount","state","filtered","count","root","selector","querySelector","setAttribute","_el$2","_tmpl$2","_$use","role","CommandShortcut","children","_el$3","_tmpl$3","_$effect","_$className","_$createComponent","CmdkRoot","_$mergeProps","CommandDialog","CmdkDialog","CommandInput","CmdkInput","CommandList","CmdkList","CommandEmpty","CmdkEmpty","CommandGroup","CmdkGroup","CommandItem","CmdkItem","CommandSeparator","CmdkSeparator","CommandLoading","CmdkLoading","_$className"],"sources":["../../../../src/components/ui/command/command.tsx"],"sourcesContent":["import {\n CommandDialog as CmdkDialog,\n CommandEmpty as CmdkEmpty,\n CommandGroup as CmdkGroup,\n CommandInput as CmdkInput,\n CommandItem as CmdkItem,\n CommandList as CmdkList,\n CommandLoading as CmdkLoading,\n CommandRoot as CmdkRoot,\n CommandSeparator as CmdkSeparator,\n useCommandState,\n} from 'cmdk-solid'\nimport { Search } from 'lucide-solid'\nimport type { ComponentProps } from 'solid-js'\nimport { createEffect, createSignal, splitProps } from 'solid-js'\nimport { menuItem } from '#lib/overlay'\nimport { cn } from '#lib/utils'\n\n/**\n * Command.\n *\n * The command palette: a filtered list of everything the user can do, ranked\n * by fuzzy match. It is the one place in an app where a keyboard-first surface\n * is the *primary* one, so it carries rules the rest of the system does not:\n *\n * - Every item must be reachable by typing its name. If a user has to\n * remember which group it lives in, the palette has failed at its job.\n * - Groups exist for reading, not for navigation. The ranking crosses them.\n * - The empty state is not an apology — it should offer the closest thing\n * the app could guess, or say plainly that nothing matched.\n *\n * cmdk-solid supplies the filter, the scoring, the `aria-activedescendant`\n * wiring and the arrow-key navigation.\n */\nexport function Command(props: ComponentProps<typeof CmdkRoot>) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <CmdkRoot\n class={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-xl',\n local.class\n )}\n {...rest}\n />\n )\n}\n\nexport function CommandDialog(props: ComponentProps<typeof CmdkDialog>) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <CmdkDialog\n class={cn(\n 'bg-popover text-popover-foreground fixed top-1/3 left-1/2 z-(--z-dialog) w-full max-w-lg -translate-x-1/2 -translate-y-1/2',\n 'overflow-hidden rounded-xl border border-border shadow-xl',\n 'data-expanded:animate-in data-expanded:fade-in-0 data-expanded:zoom-in-95',\n 'data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n local.class\n )}\n {...rest}\n />\n )\n}\n\nexport function CommandInput(props: ComponentProps<typeof CmdkInput>) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <div\n data-slot=\"command-input-wrapper\"\n class=\"flex h-11 items-center gap-2 border-b border-border px-3\"\n >\n <Search class=\"size-4 shrink-0 text-muted-foreground\" aria-hidden=\"true\" />\n <CmdkInput\n class={cn(\n 'h-full w-full bg-transparent text-sm outline-none placeholder:text-muted-foreground',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n local.class\n )}\n {...rest}\n />\n </div>\n )\n}\n\n/**\n * The scrolling list.\n *\n * Two DOM corrections, and both are deliberate. cmdk builds a `role=\"listbox\"`\n * whose children include two elements ARIA does not allow there:\n *\n * - a bare `<div cmdk-list-sizer>` with no role, wrapped around every group;\n * - a `<div cmdk-separator role=\"separator\">`, and `separator` is a menu and\n * toolbar role — inside a listbox the only owned elements may be `option`\n * and `group`.\n *\n * Both are pure presentation: the sizer is layout, and the separator is a\n * hairline between groups that the groups already structure. `role=\"presentation\"`\n * is their accurate role rather than a workaround — each is flattened out of the\n * accessibility tree, and the options inside are reached exactly as before.\n *\n * Written onto the mounted nodes rather than through props, because cmdk owns\n * this markup and does not forward a `ref`; in an effect rather than `onMount`,\n * because cmdk renders the sizer with the first item, after the list itself.\n */\nexport function CommandList(props: ComponentProps<typeof CmdkList>) {\n const [local, rest] = splitProps(props, ['class'])\n const [wrapper, setWrapper] = createSignal<HTMLDivElement>()\n const resultCount = useCommandState((state) => state.filtered.count)\n\n createEffect(() => {\n const root = wrapper()\n if (!root) return\n for (const selector of ['[cmdk-list-sizer]', '[cmdk-separator]']) {\n root.querySelector(selector)?.setAttribute('role', 'presentation')\n }\n\n /*\n * A `listbox` must own at least one `option`, so a listbox with nothing in it\n * is invalid ARIA — which is what a search with no matches produces. When\n * there are no results the list is inert, so it becomes presentational and\n * the empty message carries the information instead. It keeps its `id`, so\n * the input's `aria-controls` still resolves.\n */\n root\n .querySelector('[cmdk-list]')\n ?.setAttribute('role', resultCount() > 0 ? 'listbox' : 'presentation')\n })\n\n return (\n <div ref={setWrapper} class=\"contents\">\n <CmdkList\n class={cn('max-h-80 scroll-py-1 overflow-y-auto overflow-x-hidden p-1', local.class)}\n {...rest}\n />\n </div>\n )\n}\n\nexport function CommandEmpty(props: ComponentProps<typeof CmdkEmpty>) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <CmdkEmpty\n /*\n * A status rather than plain text: when the list is presentational, this is\n * the only thing that tells a screen reader the search matched nothing.\n */\n role=\"status\"\n class={cn('text-muted-foreground py-8 text-center text-sm', local.class)}\n {...rest}\n />\n )\n}\n\nexport function CommandGroup(props: ComponentProps<typeof CmdkGroup>) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <CmdkGroup\n class={cn(\n 'text-foreground overflow-hidden p-1',\n '[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-2xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:tracking-wide [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:uppercase',\n local.class\n )}\n {...rest}\n />\n )\n}\n\nexport function CommandItem(props: ComponentProps<typeof CmdkItem>) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <CmdkItem\n class={cn(\n menuItem,\n 'data-[selected=true]:bg-surface-hover data-[selected=true]:text-foreground',\n local.class\n )}\n {...rest}\n />\n )\n}\n\nexport function CommandSeparator(props: ComponentProps<typeof CmdkSeparator>) {\n const [local, rest] = splitProps(props, ['class'])\n return <CmdkSeparator class={cn('bg-border -mx-1 my-1 h-px', local.class)} {...rest} />\n}\n\nexport function CommandLoading(props: ComponentProps<typeof CmdkLoading>) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <CmdkLoading\n class={cn('text-muted-foreground py-6 text-center text-sm', local.class)}\n {...rest}\n />\n )\n}\n\n/** The keyboard hint a palette item usually carries. */\nexport function CommandShortcut(props: {\n class?: string\n children?: ComponentProps<'span'>['children']\n}) {\n return (\n <span\n class={cn('text-muted-foreground ms-auto font-mono text-2xs tracking-widest', props.class)}\n >\n {props.children}\n </span>\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/command/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ContextMenu as KobalteContextMenu } from '@kobalte/core/context-menu';
|
|
2
|
+
import type { ComponentProps } from 'solid-js';
|
|
3
|
+
/**
|
|
4
|
+
* ContextMenu.
|
|
5
|
+
*
|
|
6
|
+
* The same actions as DropdownMenu, opened by right-click. The trigger is the
|
|
7
|
+
* region the menu belongs to — a file row, a canvas, a code block — and the
|
|
8
|
+
* menu opens at the pointer.
|
|
9
|
+
*
|
|
10
|
+
* The accessibility rule for this component is not about its own markup: a
|
|
11
|
+
* context menu must never hold the *only* route to an action, because a
|
|
12
|
+
* right-click is unavailable on touch and undiscoverable on a trackpad. Every
|
|
13
|
+
* item here should also appear somewhere reachable, usually a DropdownMenu on
|
|
14
|
+
* the same row.
|
|
15
|
+
*/
|
|
16
|
+
export declare function ContextMenu(props: ComponentProps<typeof KobalteContextMenu>): import("solid-js").JSX.Element;
|
|
17
|
+
export declare function ContextMenuTrigger(props: ComponentProps<typeof KobalteContextMenu.Trigger>): import("solid-js").JSX.Element;
|
|
18
|
+
export declare function ContextMenuContent(props: ComponentProps<typeof KobalteContextMenu.Content>): import("solid-js").JSX.Element;
|
|
19
|
+
export declare function ContextMenuItem(props: ComponentProps<typeof KobalteContextMenu.Item> & {
|
|
20
|
+
variant?: 'default' | 'destructive';
|
|
21
|
+
shortcut?: string;
|
|
22
|
+
}): import("solid-js").JSX.Element;
|
|
23
|
+
export declare function ContextMenuCheckboxItem(props: ComponentProps<typeof KobalteContextMenu.CheckboxItem>): import("solid-js").JSX.Element;
|
|
24
|
+
export declare function ContextMenuRadioGroup(props: ComponentProps<typeof KobalteContextMenu.RadioGroup>): import("solid-js").JSX.Element;
|
|
25
|
+
export declare function ContextMenuRadioItem(props: ComponentProps<typeof KobalteContextMenu.RadioItem>): import("solid-js").JSX.Element;
|
|
26
|
+
export declare function ContextMenuLabel(props: ComponentProps<typeof KobalteContextMenu.GroupLabel>): import("solid-js").JSX.Element;
|
|
27
|
+
export declare function ContextMenuGroup(props: ComponentProps<typeof KobalteContextMenu.Group>): import("solid-js").JSX.Element;
|
|
28
|
+
export declare function ContextMenuSeparator(props: ComponentProps<typeof KobalteContextMenu.Separator>): import("solid-js").JSX.Element;
|
|
29
|
+
export declare function ContextMenuSub(props: ComponentProps<typeof KobalteContextMenu.Sub>): import("solid-js").JSX.Element;
|
|
30
|
+
export declare function ContextMenuSubTrigger(props: ComponentProps<typeof KobalteContextMenu.SubTrigger>): import("solid-js").JSX.Element;
|
|
31
|
+
export declare function ContextMenuSubContent(props: ComponentProps<typeof KobalteContextMenu.SubContent>): import("solid-js").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=context-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/context-menu/context-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAY9C;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,kCAE3E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,kCAE1F;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,kCAiB1F;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,GAAG;IACtD,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,kCAwBF;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,YAAY,CAAC,kCAY9D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,UAAU,CAAC,kCAEhG;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,SAAS,CAAC,kCAW9F;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,UAAU,CAAC,kCAG3F;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,KAAK,CAAC,kCAEtF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,SAAS,CAAC,kCAG9F;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,GAAG,CAAC,kCAElF;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,UAAU,CAAC,kCAShG;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,UAAU,CAAC,kCAiBhG"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { cn } from "../../../lib/utils.js";
|
|
2
|
+
import { menuItem, menuLabel, menuSeparator, overlayMotion, overlaySurface } from "../../../lib/overlay.js";
|
|
3
|
+
import { createComponent, insert, memo, mergeProps, template } from "solid-js/web";
|
|
4
|
+
import { Check, ChevronRight, Circle } from "lucide-solid";
|
|
5
|
+
import { splitProps } from "solid-js";
|
|
6
|
+
import { ContextMenu } from "@kobalte/core/context-menu";
|
|
7
|
+
//#region src/components/ui/context-menu/context-menu.tsx
|
|
8
|
+
var _tmpl$ = /*#__PURE__*/ template(`<span class="text-muted-foreground ms-auto font-mono text-2xs tracking-widest">`);
|
|
9
|
+
/**
|
|
10
|
+
* ContextMenu.
|
|
11
|
+
*
|
|
12
|
+
* The same actions as DropdownMenu, opened by right-click. The trigger is the
|
|
13
|
+
* region the menu belongs to — a file row, a canvas, a code block — and the
|
|
14
|
+
* menu opens at the pointer.
|
|
15
|
+
*
|
|
16
|
+
* The accessibility rule for this component is not about its own markup: a
|
|
17
|
+
* context menu must never hold the *only* route to an action, because a
|
|
18
|
+
* right-click is unavailable on touch and undiscoverable on a trackpad. Every
|
|
19
|
+
* item here should also appear somewhere reachable, usually a DropdownMenu on
|
|
20
|
+
* the same row.
|
|
21
|
+
*/
|
|
22
|
+
function ContextMenu$1(props) {
|
|
23
|
+
return createComponent(ContextMenu, props);
|
|
24
|
+
}
|
|
25
|
+
function ContextMenuTrigger(props) {
|
|
26
|
+
return createComponent(ContextMenu.Trigger, props);
|
|
27
|
+
}
|
|
28
|
+
function ContextMenuContent(props) {
|
|
29
|
+
const [local, rest] = splitProps(props, ["class"]);
|
|
30
|
+
return createComponent(ContextMenu.Portal, { get children() {
|
|
31
|
+
return createComponent(ContextMenu.Content, mergeProps({ get ["class"]() {
|
|
32
|
+
return cn(overlaySurface, overlayMotion, "z-(--z-menu) min-w-[10rem] origin-(--kb-menu-content-transform-origin) overflow-hidden", "p-1", local.class);
|
|
33
|
+
} }, rest));
|
|
34
|
+
} });
|
|
35
|
+
}
|
|
36
|
+
function ContextMenuItem(props) {
|
|
37
|
+
const [local, rest] = splitProps(props, [
|
|
38
|
+
"class",
|
|
39
|
+
"variant",
|
|
40
|
+
"shortcut",
|
|
41
|
+
"children"
|
|
42
|
+
]);
|
|
43
|
+
return createComponent(ContextMenu.Item, mergeProps({ get ["class"]() {
|
|
44
|
+
return cn(menuItem, { "text-destructive data-[highlighted]:bg-destructive-subtle data-[highlighted]:text-destructive": local.variant === "destructive" }, local.class);
|
|
45
|
+
} }, rest, { get children() {
|
|
46
|
+
return [memo(() => local.children), memo(() => memo(() => !!local.shortcut)() ? (() => {
|
|
47
|
+
var _el$ = _tmpl$();
|
|
48
|
+
insert(_el$, () => local.shortcut);
|
|
49
|
+
return _el$;
|
|
50
|
+
})() : null)];
|
|
51
|
+
} }));
|
|
52
|
+
}
|
|
53
|
+
function ContextMenuCheckboxItem(props) {
|
|
54
|
+
const [local, rest] = splitProps(props, ["class", "children"]);
|
|
55
|
+
return createComponent(ContextMenu.CheckboxItem, mergeProps({ get ["class"]() {
|
|
56
|
+
return cn(menuItem, "pe-8", local.class);
|
|
57
|
+
} }, rest, { get children() {
|
|
58
|
+
return [memo(() => local.children), createComponent(ContextMenu.ItemIndicator, {
|
|
59
|
+
"class": "absolute end-2 flex size-4 items-center justify-center",
|
|
60
|
+
get children() {
|
|
61
|
+
return createComponent(Check, { "class": "size-4" });
|
|
62
|
+
}
|
|
63
|
+
})];
|
|
64
|
+
} }));
|
|
65
|
+
}
|
|
66
|
+
function ContextMenuRadioGroup(props) {
|
|
67
|
+
return createComponent(ContextMenu.RadioGroup, props);
|
|
68
|
+
}
|
|
69
|
+
function ContextMenuRadioItem(props) {
|
|
70
|
+
const [local, rest] = splitProps(props, ["class", "children"]);
|
|
71
|
+
return createComponent(ContextMenu.RadioItem, mergeProps({ get ["class"]() {
|
|
72
|
+
return cn(menuItem, "pe-8", local.class);
|
|
73
|
+
} }, rest, { get children() {
|
|
74
|
+
return [memo(() => local.children), createComponent(ContextMenu.ItemIndicator, {
|
|
75
|
+
"class": "absolute end-2 flex size-4 items-center justify-center",
|
|
76
|
+
get children() {
|
|
77
|
+
return createComponent(Circle, { "class": "size-2 fill-current" });
|
|
78
|
+
}
|
|
79
|
+
})];
|
|
80
|
+
} }));
|
|
81
|
+
}
|
|
82
|
+
function ContextMenuLabel(props) {
|
|
83
|
+
const [local, rest] = splitProps(props, ["class"]);
|
|
84
|
+
return createComponent(ContextMenu.GroupLabel, mergeProps({ get ["class"]() {
|
|
85
|
+
return cn(menuLabel, local.class);
|
|
86
|
+
} }, rest));
|
|
87
|
+
}
|
|
88
|
+
function ContextMenuGroup(props) {
|
|
89
|
+
return createComponent(ContextMenu.Group, props);
|
|
90
|
+
}
|
|
91
|
+
function ContextMenuSeparator(props) {
|
|
92
|
+
const [local, rest] = splitProps(props, ["class"]);
|
|
93
|
+
return createComponent(ContextMenu.Separator, mergeProps({ get ["class"]() {
|
|
94
|
+
return cn(menuSeparator, local.class);
|
|
95
|
+
} }, rest));
|
|
96
|
+
}
|
|
97
|
+
function ContextMenuSub(props) {
|
|
98
|
+
return createComponent(ContextMenu.Sub, props);
|
|
99
|
+
}
|
|
100
|
+
function ContextMenuSubTrigger(props) {
|
|
101
|
+
const [local, rest] = splitProps(props, ["class", "children"]);
|
|
102
|
+
return createComponent(ContextMenu.SubTrigger, mergeProps({ get ["class"]() {
|
|
103
|
+
return cn(menuItem, local.class);
|
|
104
|
+
} }, rest, { get children() {
|
|
105
|
+
return [memo(() => local.children), createComponent(ChevronRight, { "class": "ms-auto size-4" })];
|
|
106
|
+
} }));
|
|
107
|
+
}
|
|
108
|
+
function ContextMenuSubContent(props) {
|
|
109
|
+
const [local, rest] = splitProps(props, ["class"]);
|
|
110
|
+
return createComponent(ContextMenu.Portal, { get children() {
|
|
111
|
+
return createComponent(ContextMenu.SubContent, mergeProps({ get ["class"]() {
|
|
112
|
+
return cn(overlaySurface, overlayMotion, "z-(--z-menu) min-w-[8rem] origin-(--kb-menu-content-transform-origin) overflow-hidden", "p-1", local.class);
|
|
113
|
+
} }, rest));
|
|
114
|
+
} });
|
|
115
|
+
}
|
|
116
|
+
//#endregion
|
|
117
|
+
export { ContextMenu$1 as ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
|
|
118
|
+
|
|
119
|
+
//# sourceMappingURL=context-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-menu.js","names":["ContextMenu","KobalteContextMenu","Check","ChevronRight","Circle","ComponentProps","splitProps","menuContentPadding","menuItem","menuLabel","menuSeparator","overlayMotion","overlaySurface","cn","props","_$createComponent","ContextMenuTrigger","Trigger","ContextMenuContent","Content","local","rest","Portal","children","_$mergeProps","class","ContextMenuItem","Item","variant","shortcut","_$memo","_el$","_tmpl$","_$insert","ContextMenuCheckboxItem","CheckboxItem","ItemIndicator","ContextMenuRadioGroup","RadioGroup","ContextMenuRadioItem","RadioItem","ContextMenuLabel","GroupLabel","ContextMenuGroup","Group","ContextMenuSeparator","Separator","ContextMenuSub","Sub","ContextMenuSubTrigger","SubTrigger","ContextMenuSubContent","SubContent","ContextMenu","_$createComponent","KobalteContextMenu","_$mergeProps","_$memo"],"sources":["../../../../src/components/ui/context-menu/context-menu.tsx"],"sourcesContent":["import { ContextMenu as KobalteContextMenu } from '@kobalte/core/context-menu'\nimport { Check, ChevronRight, Circle } from 'lucide-solid'\nimport type { ComponentProps } from 'solid-js'\nimport { splitProps } from 'solid-js'\nimport {\n menuContentPadding,\n menuItem,\n menuLabel,\n menuSeparator,\n overlayMotion,\n overlaySurface,\n} from '#lib/overlay'\nimport { cn } from '#lib/utils'\n\n/**\n * ContextMenu.\n *\n * The same actions as DropdownMenu, opened by right-click. The trigger is the\n * region the menu belongs to — a file row, a canvas, a code block — and the\n * menu opens at the pointer.\n *\n * The accessibility rule for this component is not about its own markup: a\n * context menu must never hold the *only* route to an action, because a\n * right-click is unavailable on touch and undiscoverable on a trackpad. Every\n * item here should also appear somewhere reachable, usually a DropdownMenu on\n * the same row.\n */\nexport function ContextMenu(props: ComponentProps<typeof KobalteContextMenu>) {\n return <KobalteContextMenu {...props} />\n}\n\nexport function ContextMenuTrigger(props: ComponentProps<typeof KobalteContextMenu.Trigger>) {\n return <KobalteContextMenu.Trigger {...props} />\n}\n\nexport function ContextMenuContent(props: ComponentProps<typeof KobalteContextMenu.Content>) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <KobalteContextMenu.Portal>\n <KobalteContextMenu.Content\n class={cn(\n overlaySurface,\n overlayMotion,\n 'z-(--z-menu) min-w-[10rem] origin-(--kb-menu-content-transform-origin) overflow-hidden',\n menuContentPadding,\n local.class\n )}\n {...rest}\n />\n </KobalteContextMenu.Portal>\n )\n}\n\nexport function ContextMenuItem(\n props: ComponentProps<typeof KobalteContextMenu.Item> & {\n variant?: 'default' | 'destructive'\n shortcut?: string\n }\n) {\n const [local, rest] = splitProps(props, ['class', 'variant', 'shortcut', 'children'])\n\n return (\n <KobalteContextMenu.Item\n class={cn(\n menuItem,\n {\n 'text-destructive data-[highlighted]:bg-destructive-subtle data-[highlighted]:text-destructive':\n local.variant === 'destructive',\n },\n local.class\n )}\n {...rest}\n >\n {local.children}\n {local.shortcut ? (\n <span class=\"text-muted-foreground ms-auto font-mono text-2xs tracking-widest\">\n {local.shortcut}\n </span>\n ) : null}\n </KobalteContextMenu.Item>\n )\n}\n\nexport function ContextMenuCheckboxItem(\n props: ComponentProps<typeof KobalteContextMenu.CheckboxItem>\n) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobalteContextMenu.CheckboxItem class={cn(menuItem, 'pe-8', local.class)} {...rest}>\n {local.children}\n <KobalteContextMenu.ItemIndicator class=\"absolute end-2 flex size-4 items-center justify-center\">\n <Check class=\"size-4\" />\n </KobalteContextMenu.ItemIndicator>\n </KobalteContextMenu.CheckboxItem>\n )\n}\n\nexport function ContextMenuRadioGroup(props: ComponentProps<typeof KobalteContextMenu.RadioGroup>) {\n return <KobalteContextMenu.RadioGroup {...props} />\n}\n\nexport function ContextMenuRadioItem(props: ComponentProps<typeof KobalteContextMenu.RadioItem>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobalteContextMenu.RadioItem class={cn(menuItem, 'pe-8', local.class)} {...rest}>\n {local.children}\n <KobalteContextMenu.ItemIndicator class=\"absolute end-2 flex size-4 items-center justify-center\">\n <Circle class=\"size-2 fill-current\" />\n </KobalteContextMenu.ItemIndicator>\n </KobalteContextMenu.RadioItem>\n )\n}\n\nexport function ContextMenuLabel(props: ComponentProps<typeof KobalteContextMenu.GroupLabel>) {\n const [local, rest] = splitProps(props, ['class'])\n return <KobalteContextMenu.GroupLabel class={cn(menuLabel, local.class)} {...rest} />\n}\n\nexport function ContextMenuGroup(props: ComponentProps<typeof KobalteContextMenu.Group>) {\n return <KobalteContextMenu.Group {...props} />\n}\n\nexport function ContextMenuSeparator(props: ComponentProps<typeof KobalteContextMenu.Separator>) {\n const [local, rest] = splitProps(props, ['class'])\n return <KobalteContextMenu.Separator class={cn(menuSeparator, local.class)} {...rest} />\n}\n\nexport function ContextMenuSub(props: ComponentProps<typeof KobalteContextMenu.Sub>) {\n return <KobalteContextMenu.Sub {...props} />\n}\n\nexport function ContextMenuSubTrigger(props: ComponentProps<typeof KobalteContextMenu.SubTrigger>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobalteContextMenu.SubTrigger class={cn(menuItem, local.class)} {...rest}>\n {local.children}\n <ChevronRight class=\"ms-auto size-4\" />\n </KobalteContextMenu.SubTrigger>\n )\n}\n\nexport function ContextMenuSubContent(props: ComponentProps<typeof KobalteContextMenu.SubContent>) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <KobalteContextMenu.Portal>\n <KobalteContextMenu.SubContent\n class={cn(\n overlaySurface,\n overlayMotion,\n 'z-(--z-menu) min-w-[8rem] origin-(--kb-menu-content-transform-origin) overflow-hidden',\n menuContentPadding,\n local.class\n )}\n {...rest}\n />\n </KobalteContextMenu.Portal>\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, } from './context-menu';
|
|
2
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/context-menu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type ComponentProps, type JSX } from 'solid-js';
|
|
2
|
+
/**
|
|
3
|
+
* DetailPanel.
|
|
4
|
+
*
|
|
5
|
+
* The companion surface to a list: something is selected over there, and its
|
|
6
|
+
* detail is here. Every application grows one — an artifact, a task, a member, a
|
|
7
|
+
* file, a commit — and every one of them is a header, a body, and a way to close.
|
|
8
|
+
*
|
|
9
|
+
* It is an `<aside>` with a label, not a `<div>`. That is the whole reason it is a
|
|
10
|
+
* component: a detail panel is a *second region* next to the main content, and a
|
|
11
|
+
* screen reader user needs to be able to skip to it, name it, and know when it
|
|
12
|
+
* appeared. A div with a heading inside is invisible to that navigation. The
|
|
13
|
+
* label is wired to the title by id, so the panel announces itself as the thing
|
|
14
|
+
* it is showing rather than as "complementary".
|
|
15
|
+
*
|
|
16
|
+
* The header is sticky and the body scrolls, because a detail panel is usually
|
|
17
|
+
* taller than its viewport and the close affordance must not scroll away — the
|
|
18
|
+
* panel is dismissed far more often than it is read to the end.
|
|
19
|
+
*
|
|
20
|
+
* `DetailPanelSection` is the repeating unit of a detail body: a small caption
|
|
21
|
+
* and its value. Definition-list semantics, because these are facets of one
|
|
22
|
+
* subject rather than a table with columns to compare.
|
|
23
|
+
*/
|
|
24
|
+
export type DetailPanelProps = ComponentProps<'aside'> & {
|
|
25
|
+
/** The panel's name, for its accessible label. Usually the selected item's name. */
|
|
26
|
+
label: string;
|
|
27
|
+
};
|
|
28
|
+
export declare function DetailPanel(props: DetailPanelProps): JSX.Element;
|
|
29
|
+
export type DetailPanelHeaderProps = ComponentProps<'header'> & {
|
|
30
|
+
/** A small caption above the title: what kind of thing this is. */
|
|
31
|
+
eyebrow?: string;
|
|
32
|
+
title: string;
|
|
33
|
+
/** Trailing controls, before the close button. */
|
|
34
|
+
actions?: JSX.Element;
|
|
35
|
+
onDismiss?: () => void;
|
|
36
|
+
/** Accessible name for the dismiss control. Defaults to `Dismiss <title>`. */
|
|
37
|
+
dismissLabel?: string;
|
|
38
|
+
};
|
|
39
|
+
export declare function DetailPanelHeader(props: DetailPanelHeaderProps): JSX.Element;
|
|
40
|
+
export declare function DetailPanelBody(props: ComponentProps<'div'>): JSX.Element;
|
|
41
|
+
/**
|
|
42
|
+
* A group of related facets. Renders a `<dl>`, so its children are
|
|
43
|
+
* `DetailPanelField`s; a section whose content is not name/value pairs — a
|
|
44
|
+
* preview, a list, a form — belongs directly in `DetailPanelBody` with its own
|
|
45
|
+
* layout rather than inside this.
|
|
46
|
+
*/
|
|
47
|
+
export declare function DetailPanelSection(props: ComponentProps<'dl'> & {
|
|
48
|
+
title: string;
|
|
49
|
+
}): JSX.Element;
|
|
50
|
+
/**
|
|
51
|
+
* One facet: a name and its value. `muted` is for a value that is absent or
|
|
52
|
+
* unknown, so "—" reads as *no value* rather than as a value that happens to be
|
|
53
|
+
* a dash.
|
|
54
|
+
*/
|
|
55
|
+
export declare function DetailPanelField(props: {
|
|
56
|
+
name: string;
|
|
57
|
+
value?: JSX.Element;
|
|
58
|
+
/** Render the value in the muted colour: an absent, unknown, or inherited value. */
|
|
59
|
+
muted?: boolean;
|
|
60
|
+
}): JSX.Element;
|
|
61
|
+
//# sourceMappingURL=detail-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detail-panel.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/detail-panel/detail-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,cAAc,EAAE,KAAK,GAAG,EAAE,MAAM,UAAU,CAAA;AAK1F;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG;IACvD,oFAAoF;IACpF,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,eAelD;AAED,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC,QAAQ,CAAC,GAAG;IAC9D,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,kDAAkD;IAClD,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,eAgD9D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,eAQ3D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,eAajF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACnB,oFAAoF;IACpF,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,eASA"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { cn } from "../../../lib/utils.js";
|
|
2
|
+
import { Button } from "../button/button.js";
|
|
3
|
+
import { className, createComponent, effect, insert, mergeProps, setAttribute, spread, template } from "solid-js/web";
|
|
4
|
+
import { X } from "lucide-solid";
|
|
5
|
+
import { Show, createUniqueId, splitProps } from "solid-js";
|
|
6
|
+
//#region src/components/ui/detail-panel/detail-panel.tsx
|
|
7
|
+
var _tmpl$ = /*#__PURE__*/ template(`<aside>`);
|
|
8
|
+
var _tmpl$2 = /*#__PURE__*/ template(`<p class="text-2xs font-semibold tracking-wide text-muted-foreground uppercase">`);
|
|
9
|
+
var _tmpl$3 = /*#__PURE__*/ template(`<header><div class=min-w-0><h2 class="truncate text-sm font-semibold text-foreground"></h2></div><div class="flex shrink-0 items-center gap-1">`);
|
|
10
|
+
var _tmpl$4 = /*#__PURE__*/ template(`<div>`);
|
|
11
|
+
var _tmpl$5 = /*#__PURE__*/ template(`<div class="grid gap-2"><h3 class="text-2xs font-semibold tracking-wide text-muted-foreground uppercase"></h3><dl>`);
|
|
12
|
+
var _tmpl$6 = /*#__PURE__*/ template(`<div class="flex items-baseline justify-between gap-4 text-sm"><dt class=text-muted-foreground></dt><dd>`);
|
|
13
|
+
function DetailPanel(props) {
|
|
14
|
+
const [local, rest] = splitProps(props, [
|
|
15
|
+
"label",
|
|
16
|
+
"class",
|
|
17
|
+
"children"
|
|
18
|
+
]);
|
|
19
|
+
return (() => {
|
|
20
|
+
var _el$ = _tmpl$();
|
|
21
|
+
spread(_el$, mergeProps({
|
|
22
|
+
get ["class"]() {
|
|
23
|
+
return cn("flex h-full min-h-0 flex-col overflow-hidden border-l border-border bg-card", local.class);
|
|
24
|
+
},
|
|
25
|
+
get ["aria-label"]() {
|
|
26
|
+
return local.label;
|
|
27
|
+
}
|
|
28
|
+
}, rest), false, true);
|
|
29
|
+
insert(_el$, () => local.children);
|
|
30
|
+
return _el$;
|
|
31
|
+
})();
|
|
32
|
+
}
|
|
33
|
+
function DetailPanelHeader(props) {
|
|
34
|
+
const [local, rest] = splitProps(props, [
|
|
35
|
+
"eyebrow",
|
|
36
|
+
"title",
|
|
37
|
+
"actions",
|
|
38
|
+
"onDismiss",
|
|
39
|
+
"dismissLabel",
|
|
40
|
+
"class",
|
|
41
|
+
"children"
|
|
42
|
+
]);
|
|
43
|
+
const titleId = createUniqueId();
|
|
44
|
+
return (() => {
|
|
45
|
+
var _el$2 = _tmpl$3(), _el$3 = _el$2.firstChild, _el$5 = _el$3.firstChild, _el$6 = _el$3.nextSibling;
|
|
46
|
+
spread(_el$2, mergeProps({ get ["class"]() {
|
|
47
|
+
return cn("sticky top-0 z-(--z-sticky) flex shrink-0 items-start justify-between gap-3 border-b border-border bg-card px-4 py-3", local.class);
|
|
48
|
+
} }, rest), false, true);
|
|
49
|
+
insert(_el$3, createComponent(Show, {
|
|
50
|
+
get when() {
|
|
51
|
+
return local.eyebrow;
|
|
52
|
+
},
|
|
53
|
+
get children() {
|
|
54
|
+
var _el$4 = _tmpl$2();
|
|
55
|
+
insert(_el$4, () => local.eyebrow);
|
|
56
|
+
return _el$4;
|
|
57
|
+
}
|
|
58
|
+
}), _el$5);
|
|
59
|
+
setAttribute(_el$5, "id", titleId);
|
|
60
|
+
insert(_el$5, () => local.title);
|
|
61
|
+
insert(_el$3, () => local.children, null);
|
|
62
|
+
insert(_el$6, () => local.actions, null);
|
|
63
|
+
insert(_el$6, createComponent(Show, {
|
|
64
|
+
get when() {
|
|
65
|
+
return local.onDismiss;
|
|
66
|
+
},
|
|
67
|
+
children: (dismiss) => createComponent(Button, {
|
|
68
|
+
variant: "ghost",
|
|
69
|
+
size: "icon-sm",
|
|
70
|
+
get ["aria-label"]() {
|
|
71
|
+
return local.dismissLabel ?? `Dismiss ${local.title}`;
|
|
72
|
+
},
|
|
73
|
+
onClick: () => dismiss()(),
|
|
74
|
+
get children() {
|
|
75
|
+
return createComponent(X, { "aria-hidden": "true" });
|
|
76
|
+
}
|
|
77
|
+
})
|
|
78
|
+
}), null);
|
|
79
|
+
return _el$2;
|
|
80
|
+
})();
|
|
81
|
+
}
|
|
82
|
+
function DetailPanelBody(props) {
|
|
83
|
+
const [local, rest] = splitProps(props, ["class", "children"]);
|
|
84
|
+
return (() => {
|
|
85
|
+
var _el$7 = _tmpl$4();
|
|
86
|
+
spread(_el$7, mergeProps({ get ["class"]() {
|
|
87
|
+
return cn("min-h-0 flex-1 overflow-y-auto px-4 py-3", local.class);
|
|
88
|
+
} }, rest), false, true);
|
|
89
|
+
insert(_el$7, () => local.children);
|
|
90
|
+
return _el$7;
|
|
91
|
+
})();
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* A group of related facets. Renders a `<dl>`, so its children are
|
|
95
|
+
* `DetailPanelField`s; a section whose content is not name/value pairs — a
|
|
96
|
+
* preview, a list, a form — belongs directly in `DetailPanelBody` with its own
|
|
97
|
+
* layout rather than inside this.
|
|
98
|
+
*/
|
|
99
|
+
function DetailPanelSection(props) {
|
|
100
|
+
const [local, rest] = splitProps(props, [
|
|
101
|
+
"title",
|
|
102
|
+
"class",
|
|
103
|
+
"children"
|
|
104
|
+
]);
|
|
105
|
+
return (() => {
|
|
106
|
+
var _el$8 = _tmpl$5(), _el$9 = _el$8.firstChild, _el$0 = _el$9.nextSibling;
|
|
107
|
+
insert(_el$9, () => local.title);
|
|
108
|
+
spread(_el$0, mergeProps({ get ["class"]() {
|
|
109
|
+
return cn("grid gap-2", local.class);
|
|
110
|
+
} }, rest), false, true);
|
|
111
|
+
insert(_el$0, () => local.children);
|
|
112
|
+
return _el$8;
|
|
113
|
+
})();
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* One facet: a name and its value. `muted` is for a value that is absent or
|
|
117
|
+
* unknown, so "—" reads as *no value* rather than as a value that happens to be
|
|
118
|
+
* a dash.
|
|
119
|
+
*/
|
|
120
|
+
function DetailPanelField(props) {
|
|
121
|
+
return (() => {
|
|
122
|
+
var _el$1 = _tmpl$6(), _el$10 = _el$1.firstChild, _el$11 = _el$10.nextSibling;
|
|
123
|
+
insert(_el$10, () => props.name);
|
|
124
|
+
insert(_el$11, () => props.value ?? "—");
|
|
125
|
+
effect(() => className(_el$11, cn("text-right", props.muted ? "text-muted-foreground" : "text-foreground")));
|
|
126
|
+
return _el$1;
|
|
127
|
+
})();
|
|
128
|
+
}
|
|
129
|
+
//#endregion
|
|
130
|
+
export { DetailPanel, DetailPanelBody, DetailPanelField, DetailPanelHeader, DetailPanelSection };
|
|
131
|
+
|
|
132
|
+
//# sourceMappingURL=detail-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detail-panel.js","names":["createUniqueId","Show","splitProps","ComponentProps","JSX","X","Button","cn","DetailPanelProps","label","DetailPanel","props","local","rest","_el$","_tmpl$","_$spread","_$mergeProps","class","aria-label","_$insert","children","DetailPanelHeaderProps","eyebrow","title","actions","Element","onDismiss","dismissLabel","DetailPanelHeader","titleId","_el$2","_tmpl$3","_el$3","firstChild","_el$5","_el$6","nextSibling","_$createComponent","when","_el$4","_tmpl$2","_$setAttribute","dismiss","variant","size","onClick","DetailPanelBody","_el$7","_tmpl$4","DetailPanelSection","_el$8","_tmpl$5","_el$9","_el$0","DetailPanelField","name","value","muted","_el$1","_tmpl$6","_el$10","_el$11","_$effect","_$className","_$mergeProps","_$createComponent","_$className"],"sources":["../../../../src/components/ui/detail-panel/detail-panel.tsx"],"sourcesContent":["import { createUniqueId, Show, splitProps, type ComponentProps, type JSX } from 'solid-js'\nimport { X } from 'lucide-solid'\nimport { Button } from '../button'\nimport { cn } from '#lib/utils'\n\n/**\n * DetailPanel.\n *\n * The companion surface to a list: something is selected over there, and its\n * detail is here. Every application grows one — an artifact, a task, a member, a\n * file, a commit — and every one of them is a header, a body, and a way to close.\n *\n * It is an `<aside>` with a label, not a `<div>`. That is the whole reason it is a\n * component: a detail panel is a *second region* next to the main content, and a\n * screen reader user needs to be able to skip to it, name it, and know when it\n * appeared. A div with a heading inside is invisible to that navigation. The\n * label is wired to the title by id, so the panel announces itself as the thing\n * it is showing rather than as \"complementary\".\n *\n * The header is sticky and the body scrolls, because a detail panel is usually\n * taller than its viewport and the close affordance must not scroll away — the\n * panel is dismissed far more often than it is read to the end.\n *\n * `DetailPanelSection` is the repeating unit of a detail body: a small caption\n * and its value. Definition-list semantics, because these are facets of one\n * subject rather than a table with columns to compare.\n */\nexport type DetailPanelProps = ComponentProps<'aside'> & {\n /** The panel's name, for its accessible label. Usually the selected item's name. */\n label: string\n}\n\nexport function DetailPanel(props: DetailPanelProps) {\n const [local, rest] = splitProps(props, ['label', 'class', 'children'])\n\n return (\n <aside\n class={cn(\n 'flex h-full min-h-0 flex-col overflow-hidden border-l border-border bg-card',\n local.class\n )}\n aria-label={local.label}\n {...rest}\n >\n {local.children}\n </aside>\n )\n}\n\nexport type DetailPanelHeaderProps = ComponentProps<'header'> & {\n /** A small caption above the title: what kind of thing this is. */\n eyebrow?: string\n title: string\n /** Trailing controls, before the close button. */\n actions?: JSX.Element\n onDismiss?: () => void\n /** Accessible name for the dismiss control. Defaults to `Dismiss <title>`. */\n dismissLabel?: string\n}\n\nexport function DetailPanelHeader(props: DetailPanelHeaderProps) {\n const [local, rest] = splitProps(props, [\n 'eyebrow',\n 'title',\n 'actions',\n 'onDismiss',\n 'dismissLabel',\n 'class',\n 'children',\n ])\n const titleId = createUniqueId()\n\n return (\n <header\n class={cn(\n 'sticky top-0 z-(--z-sticky) flex shrink-0 items-start justify-between gap-3 border-b border-border bg-card px-4 py-3',\n local.class\n )}\n {...rest}\n >\n <div class=\"min-w-0\">\n <Show when={local.eyebrow}>\n <p class=\"text-2xs font-semibold tracking-wide text-muted-foreground uppercase\">\n {local.eyebrow}\n </p>\n </Show>\n <h2 id={titleId} class=\"truncate text-sm font-semibold text-foreground\">\n {local.title}\n </h2>\n {local.children}\n </div>\n <div class=\"flex shrink-0 items-center gap-1\">\n {local.actions}\n <Show when={local.onDismiss}>\n {(dismiss) => (\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={local.dismissLabel ?? `Dismiss ${local.title}`}\n onClick={() => dismiss()()}\n >\n <X aria-hidden=\"true\" />\n </Button>\n )}\n </Show>\n </div>\n </header>\n )\n}\n\nexport function DetailPanelBody(props: ComponentProps<'div'>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <div class={cn('min-h-0 flex-1 overflow-y-auto px-4 py-3', local.class)} {...rest}>\n {local.children}\n </div>\n )\n}\n\n/**\n * A group of related facets. Renders a `<dl>`, so its children are\n * `DetailPanelField`s; a section whose content is not name/value pairs — a\n * preview, a list, a form — belongs directly in `DetailPanelBody` with its own\n * layout rather than inside this.\n */\nexport function DetailPanelSection(props: ComponentProps<'dl'> & { title: string }) {\n const [local, rest] = splitProps(props, ['title', 'class', 'children'])\n\n return (\n <div class=\"grid gap-2\">\n <h3 class=\"text-2xs font-semibold tracking-wide text-muted-foreground uppercase\">\n {local.title}\n </h3>\n <dl class={cn('grid gap-2', local.class)} {...rest}>\n {local.children}\n </dl>\n </div>\n )\n}\n\n/**\n * One facet: a name and its value. `muted` is for a value that is absent or\n * unknown, so \"—\" reads as *no value* rather than as a value that happens to be\n * a dash.\n */\nexport function DetailPanelField(props: {\n name: string\n value?: JSX.Element\n /** Render the value in the muted colour: an absent, unknown, or inherited value. */\n muted?: boolean\n}) {\n return (\n <div class=\"flex items-baseline justify-between gap-4 text-sm\">\n <dt class=\"text-muted-foreground\">{props.name}</dt>\n <dd class={cn('text-right', props.muted ? 'text-muted-foreground' : 'text-foreground')}>\n {props.value ?? '—'}\n </dd>\n </div>\n )\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/detail-panel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Dialog as KobalteDialog } from '@kobalte/core/dialog';
|
|
2
|
+
import type { ComponentProps, JSX } from 'solid-js';
|
|
3
|
+
/**
|
|
4
|
+
* Dialog.
|
|
5
|
+
*
|
|
6
|
+
* A modal surface for a decision or a short task. `Dialog.Portal` keeps the
|
|
7
|
+
* panel out of the app's stacking and overflow contexts, `Dialog.Overlay`
|
|
8
|
+
* dims what is behind it, and Kobalte handles the focus trap, the escape key,
|
|
9
|
+
* scroll locking and returning focus to the trigger on close.
|
|
10
|
+
*
|
|
11
|
+
* The close button is part of the content rather than optional, because every
|
|
12
|
+
* modal needs a way out that is not the keyboard. A dialog whose only exit is
|
|
13
|
+
* Escape is a trap for anyone using a pointer.
|
|
14
|
+
*/
|
|
15
|
+
export declare function Dialog(props: ComponentProps<typeof KobalteDialog>): JSX.Element;
|
|
16
|
+
export declare function DialogTrigger(props: ComponentProps<typeof KobalteDialog.Trigger>): JSX.Element;
|
|
17
|
+
export declare function DialogPortal(props: ComponentProps<typeof KobalteDialog.Portal>): JSX.Element;
|
|
18
|
+
export declare function DialogOverlay(props: ComponentProps<typeof KobalteDialog.Overlay>): JSX.Element;
|
|
19
|
+
export type DialogContentProps = ComponentProps<typeof KobalteDialog.Content> & {
|
|
20
|
+
/**
|
|
21
|
+
* Replaces the default close button. Pass `false` to remove it — only for a
|
|
22
|
+
* dialog that cannot be dismissed (an update that must finish); anything the
|
|
23
|
+
* user can escape from needs the button.
|
|
24
|
+
*/
|
|
25
|
+
closeButton?: JSX.Element | false;
|
|
26
|
+
};
|
|
27
|
+
export declare function DialogContent(props: DialogContentProps): JSX.Element;
|
|
28
|
+
export declare function DialogHeader(props: ComponentProps<'div'>): JSX.Element;
|
|
29
|
+
export declare function DialogFooter(props: ComponentProps<'div'>): JSX.Element;
|
|
30
|
+
export declare function DialogTitle(props: ComponentProps<typeof KobalteDialog.Title>): JSX.Element;
|
|
31
|
+
export declare function DialogDescription(props: ComponentProps<typeof KobalteDialog.Description>): JSX.Element;
|
|
32
|
+
export declare function DialogCloseButton(props: ComponentProps<typeof KobalteDialog.CloseButton>): JSX.Element;
|
|
33
|
+
/**
|
|
34
|
+
* The close control, unstyled and polymorphic — for a footer's text "Cancel" or
|
|
35
|
+
* "Close", which is a different control from the corner icon `DialogCloseButton`
|
|
36
|
+
* draws. Take it as `as={Button}` so it carries the button's variants rather than
|
|
37
|
+
* a copied class string.
|
|
38
|
+
*/
|
|
39
|
+
export declare function DialogClose(props: ComponentProps<typeof KobalteDialog.CloseButton>): JSX.Element;
|
|
40
|
+
//# sourceMappingURL=dialog.d.ts.map
|