@neynar/ui 0.4.0 → 0.5.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 +205 -134
- package/dist/_virtual/index.js +6 -0
- package/dist/_virtual/index.js.map +1 -0
- package/dist/_virtual/index2.js +5 -0
- package/dist/_virtual/index2.js.map +1 -0
- package/dist/_virtual/use-sync-external-store-shim.development.js +5 -0
- package/dist/_virtual/use-sync-external-store-shim.development.js.map +1 -0
- package/dist/_virtual/use-sync-external-store-shim.production.js +5 -0
- package/dist/_virtual/use-sync-external-store-shim.production.js.map +1 -0
- package/dist/_virtual/with-selector.development.js +5 -0
- package/dist/_virtual/with-selector.development.js.map +1 -0
- package/dist/_virtual/with-selector.js +6 -0
- package/dist/_virtual/with-selector.js.map +1 -0
- package/dist/_virtual/with-selector.production.js +5 -0
- package/dist/_virtual/with-selector.production.js.map +1 -0
- package/dist/_virtual/with-selector2.js +5 -0
- package/dist/_virtual/with-selector2.js.map +1 -0
- package/dist/components/neynar/color-mode/color-mode-initializer.d.ts +46 -0
- package/dist/components/neynar/color-mode/color-mode-initializer.d.ts.map +1 -0
- package/dist/components/neynar/color-mode/color-mode-initializer.js +30 -0
- package/dist/components/neynar/color-mode/color-mode-initializer.js.map +1 -0
- package/dist/components/neynar/color-mode/color-mode-toggle.d.ts +106 -0
- package/dist/components/neynar/color-mode/color-mode-toggle.d.ts.map +1 -0
- package/dist/components/neynar/color-mode/color-mode-toggle.js +88 -0
- package/dist/components/neynar/color-mode/color-mode-toggle.js.map +1 -0
- package/dist/components/neynar/color-mode/index.d.ts +4 -0
- package/dist/components/neynar/color-mode/index.d.ts.map +1 -0
- package/dist/components/neynar/color-mode/index.js +9 -0
- package/dist/components/neynar/color-mode/index.js.map +1 -0
- package/dist/components/neynar/color-mode/use-color-mode.d.ts +91 -0
- package/dist/components/neynar/color-mode/use-color-mode.d.ts.map +1 -0
- package/dist/components/neynar/color-mode/use-color-mode.js +106 -0
- package/dist/components/neynar/color-mode/use-color-mode.js.map +1 -0
- package/dist/components/neynar/first-light/first-light-filters.d.ts +27 -0
- package/dist/components/neynar/first-light/first-light-filters.d.ts.map +1 -0
- package/dist/components/neynar/first-light/first-light-filters.js +114 -0
- package/dist/components/neynar/first-light/first-light-filters.js.map +1 -0
- package/dist/components/neynar/first-light/index.d.ts +2 -0
- package/dist/components/neynar/first-light/index.d.ts.map +1 -0
- package/dist/components/neynar/first-light/index.js +5 -0
- package/dist/components/neynar/first-light/index.js.map +1 -0
- package/dist/components/neynar/typography/blockquote.d.ts +13 -0
- package/dist/components/neynar/typography/blockquote.d.ts.map +1 -0
- package/dist/components/neynar/typography/blockquote.js +23 -0
- package/dist/components/neynar/typography/blockquote.js.map +1 -0
- package/dist/components/neynar/typography/code.d.ts +13 -0
- package/dist/components/neynar/typography/code.d.ts.map +1 -0
- package/dist/components/neynar/typography/code.js +23 -0
- package/dist/components/neynar/typography/code.js.map +1 -0
- package/dist/components/neynar/typography/index.d.ts +5 -0
- package/dist/components/neynar/typography/index.d.ts.map +1 -0
- package/dist/components/neynar/typography/index.js +13 -0
- package/dist/components/neynar/typography/index.js.map +1 -0
- package/dist/components/neynar/typography/text.d.ts +44 -0
- package/dist/components/neynar/typography/text.d.ts.map +1 -0
- package/dist/components/neynar/typography/text.js +59 -0
- package/dist/components/neynar/typography/text.js.map +1 -0
- package/dist/components/neynar/typography/title.d.ts +22 -0
- package/dist/components/neynar/typography/title.d.ts.map +1 -0
- package/dist/components/neynar/typography/title.js +47 -0
- package/dist/components/neynar/typography/title.js.map +1 -0
- package/dist/components/ui/accordion.d.ts +18 -196
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +94 -0
- package/dist/components/ui/accordion.js.map +1 -0
- package/dist/components/ui/alert-dialog.d.ts +45 -439
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.js +164 -0
- package/dist/components/ui/alert-dialog.js.map +1 -0
- package/dist/components/ui/alert.d.ts +20 -239
- package/dist/components/ui/alert.d.ts.map +1 -1
- package/dist/components/ui/alert.js +76 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/aspect-ratio.d.ts +8 -125
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -1
- package/dist/components/ui/aspect-ratio.js +19 -0
- package/dist/components/ui/aspect-ratio.js.map +1 -0
- package/dist/components/ui/avatar.d.ts +34 -320
- package/dist/components/ui/avatar.d.ts.map +1 -1
- package/dist/components/ui/avatar.js +98 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/components/ui/badge.d.ts +11 -143
- package/dist/components/ui/badge.d.ts.map +1 -1
- package/dist/components/ui/badge.js +51 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +23 -447
- package/dist/components/ui/breadcrumb.d.ts.map +1 -1
- package/dist/components/ui/breadcrumb.js +115 -0
- package/dist/components/ui/breadcrumb.js.map +1 -0
- package/dist/components/ui/button-group.d.ts +17 -439
- package/dist/components/ui/button-group.d.ts.map +1 -1
- package/dist/components/ui/button-group.js +79 -0
- package/dist/components/ui/button-group.js.map +1 -0
- package/dist/components/ui/button.d.ts +24 -230
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +56 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/calendar.d.ts +11 -317
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/calendar.js +193 -0
- package/dist/components/ui/calendar.js.map +1 -0
- package/dist/components/ui/card.d.ts +26 -346
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/card.js +99 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/carousel.d.ts +19 -602
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/carousel.js +202 -0
- package/dist/components/ui/carousel.js.map +1 -0
- package/dist/components/ui/chart.d.ts +35 -404
- package/dist/components/ui/chart.d.ts.map +1 -1
- package/dist/components/ui/chart.js +244 -0
- package/dist/components/ui/chart.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts +7 -156
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/checkbox.js +30 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/collapsible.d.ts +14 -360
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/collapsible.js +20 -0
- package/dist/components/ui/collapsible.js.map +1 -0
- package/dist/components/ui/combobox.d.ts +73 -311
- package/dist/components/ui/combobox.d.ts.map +1 -1
- package/dist/components/ui/combobox.js +285 -0
- package/dist/components/ui/combobox.js.map +1 -0
- package/dist/components/ui/command.d.ts +39 -600
- package/dist/components/ui/command.d.ts.map +1 -1
- package/dist/components/ui/command.js +149 -0
- package/dist/components/ui/command.js.map +1 -0
- package/dist/components/ui/context-menu.d.ts +57 -614
- package/dist/components/ui/context-menu.d.ts.map +1 -1
- package/dist/components/ui/context-menu.js +245 -0
- package/dist/components/ui/context-menu.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +47 -381
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +149 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/drawer.d.ts +38 -481
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/drawer.js +106 -0
- package/dist/components/ui/drawer.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +65 -773
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.js +265 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/empty.d.ts +26 -615
- package/dist/components/ui/empty.d.ts.map +1 -1
- package/dist/components/ui/empty.js +101 -0
- package/dist/components/ui/empty.js.map +1 -0
- package/dist/components/ui/field.d.ts +65 -225
- package/dist/components/ui/field.d.ts.map +1 -1
- package/dist/components/ui/field.js +212 -0
- package/dist/components/ui/field.js.map +1 -0
- package/dist/components/ui/hover-card.d.ts +14 -321
- package/dist/components/ui/hover-card.d.ts.map +1 -1
- package/dist/components/ui/hover-card.js +50 -0
- package/dist/components/ui/hover-card.js.map +1 -0
- package/dist/components/ui/input-group.d.ts +32 -618
- package/dist/components/ui/input-group.d.ts.map +1 -1
- package/dist/components/ui/input-group.js +142 -0
- package/dist/components/ui/input-group.js.map +1 -0
- package/dist/components/ui/input-otp.d.ts +34 -0
- package/dist/components/ui/input-otp.d.ts.map +1 -0
- package/dist/components/ui/input-otp.js +73 -0
- package/dist/components/ui/input-otp.js.map +1 -0
- package/dist/components/ui/input.d.ts +6 -183
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/components/ui/input.js +22 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/item.d.ts +44 -741
- package/dist/components/ui/item.d.ts.map +1 -1
- package/dist/components/ui/item.js +194 -0
- package/dist/components/ui/item.js.map +1 -0
- package/dist/components/ui/kbd.d.ts +9 -144
- package/dist/components/ui/kbd.d.ts.map +1 -1
- package/dist/components/ui/kbd.js +30 -0
- package/dist/components/ui/kbd.js.map +1 -0
- package/dist/components/ui/label.d.ts +5 -81
- package/dist/components/ui/label.d.ts.map +1 -1
- package/dist/components/ui/label.js +21 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/menubar.d.ts +79 -540
- package/dist/components/ui/menubar.d.ts.map +1 -1
- package/dist/components/ui/menubar.js +225 -0
- package/dist/components/ui/menubar.js.map +1 -0
- package/dist/components/ui/navigation-menu.d.ts +35 -618
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.js +176 -0
- package/dist/components/ui/navigation-menu.js.map +1 -0
- package/dist/components/ui/pagination.d.ts +17 -594
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/pagination.js +115 -0
- package/dist/components/ui/pagination.js.map +1 -0
- package/dist/components/ui/popover.d.ts +31 -159
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/popover.js +85 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/progress.d.ts +27 -119
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/progress.js +77 -0
- package/dist/components/ui/progress.js.map +1 -0
- package/dist/components/ui/radio-group.d.ts +11 -283
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/radio-group.js +42 -0
- package/dist/components/ui/radio-group.js.map +1 -0
- package/dist/components/ui/resizable.d.ts +17 -272
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/resizable.js +48 -0
- package/dist/components/ui/resizable.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +37 -214
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/scroll-area.js +61 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/select.d.ts +36 -616
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/select.js +200 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/separator.d.ts +6 -90
- package/dist/components/ui/separator.d.ts.map +1 -1
- package/dist/components/ui/separator.js +25 -0
- package/dist/components/ui/separator.js.map +1 -0
- package/dist/components/ui/sheet.d.ts +33 -445
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/sheet.js +133 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/sidebar.d.ts +101 -1538
- package/dist/components/ui/sidebar.d.ts.map +1 -1
- package/dist/components/ui/sidebar.js +624 -0
- package/dist/components/ui/sidebar.js.map +1 -0
- package/dist/components/ui/skeleton.d.ts +5 -125
- package/dist/components/ui/skeleton.d.ts.map +1 -1
- package/dist/components/ui/skeleton.js +16 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/slider.d.ts +12 -92
- package/dist/components/ui/slider.d.ts.map +1 -1
- package/dist/components/ui/slider.js +72 -0
- package/dist/components/ui/slider.js.map +1 -0
- package/dist/components/ui/sonner.d.ts +13 -327
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/sonner.js +63 -0
- package/dist/components/ui/sonner.js.map +1 -0
- package/dist/components/ui/spinner.d.ts +5 -191
- package/dist/components/ui/spinner.d.ts.map +1 -1
- package/dist/components/ui/spinner.js +19 -0
- package/dist/components/ui/spinner.js.map +1 -0
- package/dist/components/ui/switch.d.ts +9 -87
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/switch.js +30 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/table.d.ts +33 -336
- package/dist/components/ui/table.d.ts.map +1 -1
- package/dist/components/ui/table.js +113 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +22 -233
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/tabs.js +81 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +9 -152
- package/dist/components/ui/textarea.d.ts.map +1 -1
- package/dist/components/ui/textarea.js +20 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/toggle-group.d.ts +19 -202
- package/dist/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/components/ui/toggle-group.js +79 -0
- package/dist/components/ui/toggle-group.js.map +1 -0
- package/dist/components/ui/toggle.d.ts +7 -165
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/toggle.js +44 -0
- package/dist/components/ui/toggle.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +18 -317
- package/dist/components/ui/tooltip.d.ts.map +1 -1
- package/dist/components/ui/tooltip.js +68 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +7 -63
- package/dist/hooks/use-mobile.d.ts.map +1 -1
- package/dist/hooks/use-mobile.js +21 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/lib/utils.d.ts +12 -32
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +9 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/variants.d.ts +107 -0
- package/dist/lib/variants.d.ts.map +1 -0
- package/dist/lib/variants.js +128 -0
- package/dist/lib/variants.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/header/AccordionHeader.js +27 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/header/AccordionHeader.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/item/AccordionItem.js +102 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/item/AccordionItem.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/item/AccordionItemContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/item/AccordionItemContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/item/AccordionItemDataAttributes.js +10 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/item/AccordionItemDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/item/stateAttributesMapping.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/item/stateAttributesMapping.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/panel/AccordionPanel.js +139 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/panel/AccordionPanel.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/panel/AccordionPanelCssVars.js +9 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/panel/AccordionPanelCssVars.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/root/AccordionRoot.js +118 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/root/AccordionRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/root/AccordionRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/root/AccordionRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/root/AccordionRootDataAttributes.js +9 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/root/AccordionRootDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/trigger/AccordionTrigger.js +158 -0
- package/dist/node_modules/@base-ui/react/esm/accordion/trigger/AccordionTrigger.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/alert-dialog/root/AlertDialogRoot.js +56 -0
- package/dist/node_modules/@base-ui/react/esm/alert-dialog/root/AlertDialogRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/avatar/fallback/AvatarFallback.js +41 -0
- package/dist/node_modules/@base-ui/react/esm/avatar/fallback/AvatarFallback.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/avatar/image/AvatarImage.js +48 -0
- package/dist/node_modules/@base-ui/react/esm/avatar/image/AvatarImage.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/avatar/image/useImageLoadingStatus.js +40 -0
- package/dist/node_modules/@base-ui/react/esm/avatar/image/useImageLoadingStatus.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/avatar/root/AvatarRoot.js +36 -0
- package/dist/node_modules/@base-ui/react/esm/avatar/root/AvatarRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/avatar/root/AvatarRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/avatar/root/AvatarRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/avatar/root/stateAttributesMapping.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/avatar/root/stateAttributesMapping.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/button/Button.js +36 -0
- package/dist/node_modules/@base-ui/react/esm/button/Button.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/checkbox/indicator/CheckboxIndicator.js +60 -0
- package/dist/node_modules/@base-ui/react/esm/checkbox/indicator/CheckboxIndicator.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/checkbox/root/CheckboxRoot.js +267 -0
- package/dist/node_modules/@base-ui/react/esm/checkbox/root/CheckboxRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/checkbox/root/CheckboxRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/checkbox/root/CheckboxRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/checkbox/root/CheckboxRootDataAttributes.js +18 -0
- package/dist/node_modules/@base-ui/react/esm/checkbox/root/CheckboxRootDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/checkbox/utils/useStateAttributesMapping.js +26 -0
- package/dist/node_modules/@base-ui/react/esm/checkbox/utils/useStateAttributesMapping.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/checkbox-group/CheckboxGroupContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/checkbox-group/CheckboxGroupContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/panel/CollapsiblePanel.js +128 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/panel/CollapsiblePanel.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/panel/CollapsiblePanelCssVars.js +9 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/panel/CollapsiblePanelCssVars.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/panel/CollapsiblePanelDataAttributes.js +12 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/panel/CollapsiblePanelDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/panel/useCollapsiblePanel.js +290 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/panel/useCollapsiblePanel.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/root/CollapsibleRoot.js +51 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/root/CollapsibleRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/root/CollapsibleRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/root/CollapsibleRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/root/stateAttributesMapping.js +10 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/root/stateAttributesMapping.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/root/useCollapsibleRoot.js +111 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/root/useCollapsibleRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/trigger/CollapsibleTrigger.js +54 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/trigger/CollapsibleTrigger.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/trigger/CollapsibleTriggerDataAttributes.js +8 -0
- package/dist/node_modules/@base-ui/react/esm/collapsible/trigger/CollapsibleTriggerDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/chip/ComboboxChip.js +119 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/chip/ComboboxChip.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/chip/ComboboxChipContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/chip/ComboboxChipContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/chip-remove/ComboboxChipRemove.js +96 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/chip-remove/ComboboxChipRemove.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/chips/ComboboxChips.js +44 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/chips/ComboboxChips.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/chips/ComboboxChipsContext.js +11 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/chips/ComboboxChipsContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/clear/ComboboxClear.js +119 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/clear/ComboboxClear.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/collection/ComboboxCollection.js +25 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/collection/ComboboxCollection.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/collection/GroupCollectionContext.js +26 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/collection/GroupCollectionContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/empty/ComboboxEmpty.js +31 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/empty/ComboboxEmpty.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/group/ComboboxGroup.js +43 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/group/ComboboxGroup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/group/ComboboxGroupContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/group/ComboboxGroupContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/group-label/ComboboxGroupLabel.js +36 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/group-label/ComboboxGroupLabel.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/input/ComboboxInput.js +331 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/input/ComboboxInput.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/item/ComboboxItem.js +167 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/item/ComboboxItem.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/item/ComboboxItemContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/item/ComboboxItemContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/item-indicator/ComboboxItemIndicator.js +67 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/item-indicator/ComboboxItemIndicator.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/list/ComboboxList.js +105 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/list/ComboboxList.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/popup/ComboboxPopup.js +94 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/popup/ComboboxPopup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/portal/ComboboxPortal.js +33 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/portal/ComboboxPortal.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/portal/ComboboxPortalContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/portal/ComboboxPortalContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/positioner/ComboboxPositioner.js +123 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/positioner/ComboboxPositioner.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/positioner/ComboboxPositionerContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/positioner/ComboboxPositionerContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/root/AriaCombobox.js +970 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/root/AriaCombobox.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/root/ComboboxRoot.js +24 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/root/ComboboxRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/root/ComboboxRootContext.js +45 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/root/ComboboxRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/root/utils/constants.js +10 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/root/utils/constants.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/root/utils/index.js +31 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/root/utils/index.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/root/utils/useFilter.js +63 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/root/utils/useFilter.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/row/ComboboxRowContext.js +11 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/row/ComboboxRowContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/store.js +64 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/store.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/trigger/ComboboxTrigger.js +200 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/trigger/ComboboxTrigger.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/value/ComboboxValue.js +31 -0
- package/dist/node_modules/@base-ui/react/esm/combobox/value/ComboboxValue.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/composite/composite.js +122 -0
- package/dist/node_modules/@base-ui/react/esm/composite/composite.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/composite/constants.js +5 -0
- package/dist/node_modules/@base-ui/react/esm/composite/constants.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/composite/item/CompositeItem.js +33 -0
- package/dist/node_modules/@base-ui/react/esm/composite/item/CompositeItem.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/composite/item/useCompositeItem.js +44 -0
- package/dist/node_modules/@base-ui/react/esm/composite/item/useCompositeItem.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/composite/list/CompositeList.js +136 -0
- package/dist/node_modules/@base-ui/react/esm/composite/list/CompositeList.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/composite/list/CompositeListContext.js +27 -0
- package/dist/node_modules/@base-ui/react/esm/composite/list/CompositeListContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/composite/list/useCompositeListItem.js +79 -0
- package/dist/node_modules/@base-ui/react/esm/composite/list/useCompositeListItem.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/composite/root/CompositeRoot.js +85 -0
- package/dist/node_modules/@base-ui/react/esm/composite/root/CompositeRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/composite/root/CompositeRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/composite/root/CompositeRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/composite/root/useCompositeRoot.js +214 -0
- package/dist/node_modules/@base-ui/react/esm/composite/root/useCompositeRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/context-menu/root/ContextMenuRoot.js +50 -0
- package/dist/node_modules/@base-ui/react/esm/context-menu/root/ContextMenuRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/context-menu/root/ContextMenuRootContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/context-menu/root/ContextMenuRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/context-menu/trigger/ContextMenuTrigger.js +155 -0
- package/dist/node_modules/@base-ui/react/esm/context-menu/trigger/ContextMenuTrigger.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/backdrop/DialogBackdrop.js +48 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/backdrop/DialogBackdrop.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/close/DialogClose.js +47 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/close/DialogClose.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/description/DialogDescription.js +29 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/description/DialogDescription.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/popup/DialogPopup.js +107 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/popup/DialogPopup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/popup/DialogPopupCssVars.js +8 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/popup/DialogPopupCssVars.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/popup/DialogPopupDataAttributes.js +14 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/popup/DialogPopupDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/portal/DialogPortal.js +39 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/portal/DialogPortal.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/portal/DialogPortalContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/portal/DialogPortalContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/root/DialogRoot.js +61 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/root/DialogRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/root/DialogRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/root/DialogRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/root/useDialogRoot.js +127 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/root/useDialogRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/store/DialogStore.js +77 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/store/DialogStore.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/title/DialogTitle.js +29 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/title/DialogTitle.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/trigger/DialogTrigger.js +69 -0
- package/dist/node_modules/@base-ui/react/esm/dialog/trigger/DialogTrigger.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/direction-provider/DirectionContext.js +13 -0
- package/dist/node_modules/@base-ui/react/esm/direction-provider/DirectionContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/field/control/FieldControl.js +127 -0
- package/dist/node_modules/@base-ui/react/esm/field/control/FieldControl.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/field/control/FieldControlDataAttributes.js +14 -0
- package/dist/node_modules/@base-ui/react/esm/field/control/FieldControlDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/field/item/FieldItemContext.js +14 -0
- package/dist/node_modules/@base-ui/react/esm/field/item/FieldItemContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/field/root/FieldRootContext.js +63 -0
- package/dist/node_modules/@base-ui/react/esm/field/root/FieldRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/field/useField.js +72 -0
- package/dist/node_modules/@base-ui/react/esm/field/useField.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/field/utils/constants.js +34 -0
- package/dist/node_modules/@base-ui/react/esm/field/utils/constants.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/field/utils/getCombinedFieldValidityData.js +13 -0
- package/dist/node_modules/@base-ui/react/esm/field/utils/getCombinedFieldValidityData.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/fieldset/root/FieldsetRootContext.js +22 -0
- package/dist/node_modules/@base-ui/react/esm/fieldset/root/FieldsetRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingDelayGroup.js +146 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingDelayGroup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingFocusManager.js +545 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingFocusManager.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingPortal.js +176 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingPortal.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingRootStore.js +64 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingRootStore.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTree.js +68 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTree.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTreeStore.js +20 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTreeStore.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useClick.js +98 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useClick.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useClientPoint.js +168 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useClientPoint.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useDismiss.js +403 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useDismiss.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloating.js +109 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloating.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloatingRootContext.js +54 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloatingRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFocus.js +116 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFocus.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHover.js +384 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHover.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverFloatingInteraction.js +177 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverFloatingInteraction.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverInteractionSharedState.js +46 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverInteractionSharedState.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js +276 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverReferenceInteraction.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useInteractions.js +91 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useInteractions.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useListNavigation.js +547 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useListNavigation.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useRole.js +107 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useRole.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.js +50 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useTypeahead.js +113 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useTypeahead.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/middleware/arrow.js +73 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/middleware/arrow.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/safePolygon.js +188 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/safePolygon.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/composite.js +340 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/composite.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/constants.js +19 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/constants.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/createAttribute.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/createAttribute.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/createEventEmitter.js +21 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/createEventEmitter.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/element.js +89 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/element.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/enqueueFocus.js +23 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/enqueueFocus.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/event.js +44 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/event.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/getEmptyRootContext.js +18 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/getEmptyRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/markOthers.js +121 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/markOthers.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/nodes.js +21 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/nodes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/tabbable.js +85 -0
- package/dist/node_modules/@base-ui/react/esm/floating-ui-react/utils/tabbable.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/form/FormContext.js +25 -0
- package/dist/node_modules/@base-ui/react/esm/form/FormContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/input/Input.js +15 -0
- package/dist/node_modules/@base-ui/react/esm/input/Input.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/labelable-provider/LabelableContext.js +21 -0
- package/dist/node_modules/@base-ui/react/esm/labelable-provider/LabelableContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/labelable-provider/useLabelableId.js +43 -0
- package/dist/node_modules/@base-ui/react/esm/labelable-provider/useLabelableId.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/checkbox-item/MenuCheckboxItem.js +95 -0
- package/dist/node_modules/@base-ui/react/esm/menu/checkbox-item/MenuCheckboxItem.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/checkbox-item/MenuCheckboxItemContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/menu/checkbox-item/MenuCheckboxItemContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/checkbox-item/MenuCheckboxItemDataAttributes.js +11 -0
- package/dist/node_modules/@base-ui/react/esm/menu/checkbox-item/MenuCheckboxItemDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.js +52 -0
- package/dist/node_modules/@base-ui/react/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/group/MenuGroup.js +33 -0
- package/dist/node_modules/@base-ui/react/esm/menu/group/MenuGroup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/group/MenuGroupContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/menu/group/MenuGroupContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/group-label/MenuGroupLabel.js +37 -0
- package/dist/node_modules/@base-ui/react/esm/menu/group-label/MenuGroupLabel.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/item/MenuItem.js +57 -0
- package/dist/node_modules/@base-ui/react/esm/menu/item/MenuItem.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/item/useMenuItem.js +95 -0
- package/dist/node_modules/@base-ui/react/esm/menu/item/useMenuItem.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/popup/MenuPopup.js +117 -0
- package/dist/node_modules/@base-ui/react/esm/menu/popup/MenuPopup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/portal/MenuPortal.js +32 -0
- package/dist/node_modules/@base-ui/react/esm/menu/portal/MenuPortal.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/portal/MenuPortalContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/menu/portal/MenuPortalContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/positioner/MenuPositioner.js +216 -0
- package/dist/node_modules/@base-ui/react/esm/menu/positioner/MenuPositioner.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/positioner/MenuPositionerContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/menu/positioner/MenuPositionerContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/radio-group/MenuRadioGroup.js +57 -0
- package/dist/node_modules/@base-ui/react/esm/menu/radio-group/MenuRadioGroup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/radio-group/MenuRadioGroupContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/menu/radio-group/MenuRadioGroupContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/radio-item/MenuRadioItem.js +90 -0
- package/dist/node_modules/@base-ui/react/esm/menu/radio-item/MenuRadioItem.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/radio-item/MenuRadioItemContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/menu/radio-item/MenuRadioItemContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/radio-item-indicator/MenuRadioItemIndicator.js +52 -0
- package/dist/node_modules/@base-ui/react/esm/menu/radio-item-indicator/MenuRadioItemIndicator.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/root/MenuRoot.js +402 -0
- package/dist/node_modules/@base-ui/react/esm/menu/root/MenuRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/root/MenuRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/menu/root/MenuRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/store/MenuStore.js +132 -0
- package/dist/node_modules/@base-ui/react/esm/menu/store/MenuStore.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/submenu-root/MenuSubmenuRoot.js +24 -0
- package/dist/node_modules/@base-ui/react/esm/menu/submenu-root/MenuSubmenuRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/submenu-root/MenuSubmenuRootContext.js +11 -0
- package/dist/node_modules/@base-ui/react/esm/menu/submenu-root/MenuSubmenuRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/submenu-trigger/MenuSubmenuTrigger.js +134 -0
- package/dist/node_modules/@base-ui/react/esm/menu/submenu-trigger/MenuSubmenuTrigger.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/trigger/MenuTrigger.js +292 -0
- package/dist/node_modules/@base-ui/react/esm/menu/trigger/MenuTrigger.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/utils/findRootOwnerId.js +14 -0
- package/dist/node_modules/@base-ui/react/esm/menu/utils/findRootOwnerId.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menu/utils/stateAttributesMapping.js +19 -0
- package/dist/node_modules/@base-ui/react/esm/menu/utils/stateAttributesMapping.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menubar/Menubar.js +115 -0
- package/dist/node_modules/@base-ui/react/esm/menubar/Menubar.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/menubar/MenubarContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/menubar/MenubarContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/merge-props/mergeProps.js +129 -0
- package/dist/node_modules/@base-ui/react/esm/merge-props/mergeProps.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/content/NavigationMenuContent.js +116 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/content/NavigationMenuContent.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/icon/NavigationMenuIcon.js +39 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/icon/NavigationMenuIcon.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/item/NavigationMenuItem.js +32 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/item/NavigationMenuItem.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/item/NavigationMenuItemContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/item/NavigationMenuItemContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/link/NavigationMenuLink.js +64 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/link/NavigationMenuLink.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/list/NavigationMenuDismissContext.js +11 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/list/NavigationMenuDismissContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/list/NavigationMenuList.js +82 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/list/NavigationMenuList.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/popup/NavigationMenuPopup.js +65 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/popup/NavigationMenuPopup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/popup/NavigationMenuPopupCssVars.js +9 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/popup/NavigationMenuPopupCssVars.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/portal/NavigationMenuPortal.js +31 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/portal/NavigationMenuPortal.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/portal/NavigationMenuPortalContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/portal/NavigationMenuPortalContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/positioner/NavigationMenuPositioner.js +146 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/positioner/NavigationMenuPositioner.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/positioner/NavigationMenuPositionerContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/positioner/NavigationMenuPositionerContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/positioner/NavigationMenuPositionerCssVars.js +14 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/positioner/NavigationMenuPositionerCssVars.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/root/NavigationMenuRoot.js +207 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/root/NavigationMenuRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/root/NavigationMenuRootContext.js +26 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/root/NavigationMenuRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/trigger/NavigationMenuTrigger.js +397 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/trigger/NavigationMenuTrigger.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/utils/constants.js +5 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/utils/constants.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/utils/isOutsideMenuEvent.js +24 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/utils/isOutsideMenuEvent.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/utils/setFixedSize.js +15 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/utils/setFixedSize.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/viewport/NavigationMenuViewport.js +108 -0
- package/dist/node_modules/@base-ui/react/esm/navigation-menu/viewport/NavigationMenuViewport.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/popover/description/PopoverDescription.js +35 -0
- package/dist/node_modules/@base-ui/react/esm/popover/description/PopoverDescription.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/popover/popup/PopoverPopup.js +138 -0
- package/dist/node_modules/@base-ui/react/esm/popover/popup/PopoverPopup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/popover/portal/PopoverPortal.js +33 -0
- package/dist/node_modules/@base-ui/react/esm/popover/portal/PopoverPortal.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/popover/portal/PopoverPortalContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/popover/portal/PopoverPortalContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/popover/positioner/PopoverPositioner.js +141 -0
- package/dist/node_modules/@base-ui/react/esm/popover/positioner/PopoverPositioner.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/popover/positioner/PopoverPositionerContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/popover/positioner/PopoverPositionerContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/popover/root/PopoverRoot.js +139 -0
- package/dist/node_modules/@base-ui/react/esm/popover/root/PopoverRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/popover/root/PopoverRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/popover/root/PopoverRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/popover/store/PopoverStore.js +125 -0
- package/dist/node_modules/@base-ui/react/esm/popover/store/PopoverStore.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/popover/title/PopoverTitle.js +35 -0
- package/dist/node_modules/@base-ui/react/esm/popover/title/PopoverTitle.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/popover/trigger/PopoverTrigger.js +154 -0
- package/dist/node_modules/@base-ui/react/esm/popover/trigger/PopoverTrigger.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/popover/utils/constants.js +5 -0
- package/dist/node_modules/@base-ui/react/esm/popover/utils/constants.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/popup/PreviewCardPopup.js +58 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/popup/PreviewCardPopup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/portal/PreviewCardPortal.js +31 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/portal/PreviewCardPortal.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/portal/PreviewCardPortalContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/portal/PreviewCardPortalContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/positioner/PreviewCardPositioner.js +95 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/positioner/PreviewCardPositioner.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/positioner/PreviewCardPositionerContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/positioner/PreviewCardPositionerContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/root/PreviewCardContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/root/PreviewCardContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/root/PreviewCardRoot.js +140 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/root/PreviewCardRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/trigger/PreviewCardTrigger.js +42 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/trigger/PreviewCardTrigger.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/utils/constants.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/preview-card/utils/constants.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/progress/indicator/ProgressIndicator.js +44 -0
- package/dist/node_modules/@base-ui/react/esm/progress/indicator/ProgressIndicator.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/progress/label/ProgressLabel.js +38 -0
- package/dist/node_modules/@base-ui/react/esm/progress/label/ProgressLabel.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/progress/root/ProgressRoot.js +80 -0
- package/dist/node_modules/@base-ui/react/esm/progress/root/ProgressRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/progress/root/ProgressRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/progress/root/ProgressRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/progress/root/ProgressRootDataAttributes.js +10 -0
- package/dist/node_modules/@base-ui/react/esm/progress/root/ProgressRootDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/progress/root/stateAttributesMapping.js +25 -0
- package/dist/node_modules/@base-ui/react/esm/progress/root/stateAttributesMapping.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/progress/track/ProgressTrack.js +27 -0
- package/dist/node_modules/@base-ui/react/esm/progress/track/ProgressTrack.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/progress/value/ProgressValue.js +35 -0
- package/dist/node_modules/@base-ui/react/esm/progress/value/ProgressValue.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/radio/indicator/RadioIndicator.js +52 -0
- package/dist/node_modules/@base-ui/react/esm/radio/indicator/RadioIndicator.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/radio/root/RadioRoot.js +182 -0
- package/dist/node_modules/@base-ui/react/esm/radio/root/RadioRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/radio/root/RadioRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/radio/root/RadioRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/radio/root/RadioRootDataAttributes.js +18 -0
- package/dist/node_modules/@base-ui/react/esm/radio/root/RadioRootDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/radio/utils/stateAttributesMapping.js +21 -0
- package/dist/node_modules/@base-ui/react/esm/radio/utils/stateAttributesMapping.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/radio-group/RadioGroup.js +196 -0
- package/dist/node_modules/@base-ui/react/esm/radio-group/RadioGroup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/radio-group/RadioGroupContext.js +24 -0
- package/dist/node_modules/@base-ui/react/esm/radio-group/RadioGroupContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/constants.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/constants.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/corner/ScrollAreaCorner.js +37 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/corner/ScrollAreaCorner.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/root/ScrollAreaRoot.js +248 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/root/ScrollAreaRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/root/ScrollAreaRootContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/root/ScrollAreaRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/root/ScrollAreaRootCssVars.js +9 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/root/ScrollAreaRootCssVars.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/root/ScrollAreaRootDataAttributes.js +13 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/root/ScrollAreaRootDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/root/stateAttributes.js +26 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/root/stateAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/scrollbar/ScrollAreaScrollbar.js +183 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/scrollbar/ScrollAreaScrollbar.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/scrollbar/ScrollAreaScrollbarContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/scrollbar/ScrollAreaScrollbarContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/scrollbar/ScrollAreaScrollbarCssVars.js +9 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/scrollbar/ScrollAreaScrollbarCssVars.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/scrollbar/ScrollAreaScrollbarDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/thumb/ScrollAreaThumb.js +59 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/thumb/ScrollAreaThumb.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/utils/getOffset.js +15 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/utils/getOffset.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/utils/onVisible.js +22 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/utils/onVisible.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/viewport/ScrollAreaViewport.js +290 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/viewport/ScrollAreaViewport.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/viewport/ScrollAreaViewportContext.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/viewport/ScrollAreaViewportContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/viewport/ScrollAreaViewportCssVars.js +11 -0
- package/dist/node_modules/@base-ui/react/esm/scroll-area/viewport/ScrollAreaViewportCssVars.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/group/SelectGroup.js +33 -0
- package/dist/node_modules/@base-ui/react/esm/select/group/SelectGroup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/group/SelectGroupContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/select/group/SelectGroupContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/group-label/SelectGroupLabel.js +33 -0
- package/dist/node_modules/@base-ui/react/esm/select/group-label/SelectGroupLabel.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/icon/SelectIcon.js +36 -0
- package/dist/node_modules/@base-ui/react/esm/select/icon/SelectIcon.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/item/SelectItem.js +205 -0
- package/dist/node_modules/@base-ui/react/esm/select/item/SelectItem.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/item/SelectItemContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/select/item/SelectItemContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/item-indicator/SelectItemIndicator.js +67 -0
- package/dist/node_modules/@base-ui/react/esm/select/item-indicator/SelectItemIndicator.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/item-text/SelectItemText.js +40 -0
- package/dist/node_modules/@base-ui/react/esm/select/item-text/SelectItemText.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/list/SelectList.js +52 -0
- package/dist/node_modules/@base-ui/react/esm/select/list/SelectList.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/popup/SelectPopup.js +345 -0
- package/dist/node_modules/@base-ui/react/esm/select/popup/SelectPopup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/popup/utils.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/select/popup/utils.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/portal/SelectPortal.js +31 -0
- package/dist/node_modules/@base-ui/react/esm/select/portal/SelectPortal.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/portal/SelectPortalContext.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/select/portal/SelectPortalContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/positioner/SelectPositioner.js +205 -0
- package/dist/node_modules/@base-ui/react/esm/select/positioner/SelectPositioner.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/positioner/SelectPositionerContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/select/positioner/SelectPositionerContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/root/SelectRoot.js +440 -0
- package/dist/node_modules/@base-ui/react/esm/select/root/SelectRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/root/SelectRootContext.js +27 -0
- package/dist/node_modules/@base-ui/react/esm/select/root/SelectRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/scroll-arrow/SelectScrollArrow.js +173 -0
- package/dist/node_modules/@base-ui/react/esm/select/scroll-arrow/SelectScrollArrow.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/scroll-down-arrow/SelectScrollDownArrow.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/select/scroll-down-arrow/SelectScrollDownArrow.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/scroll-up-arrow/SelectScrollUpArrow.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/select/scroll-up-arrow/SelectScrollUpArrow.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/store.js +58 -0
- package/dist/node_modules/@base-ui/react/esm/select/store.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/trigger/SelectTrigger.js +180 -0
- package/dist/node_modules/@base-ui/react/esm/select/trigger/SelectTrigger.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/select/value/SelectValue.js +45 -0
- package/dist/node_modules/@base-ui/react/esm/select/value/SelectValue.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/separator/Separator.js +28 -0
- package/dist/node_modules/@base-ui/react/esm/separator/Separator.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/control/SliderControl.js +386 -0
- package/dist/node_modules/@base-ui/react/esm/slider/control/SliderControl.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/indicator/SliderIndicator.js +84 -0
- package/dist/node_modules/@base-ui/react/esm/slider/indicator/SliderIndicator.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/root/SliderRoot.js +272 -0
- package/dist/node_modules/@base-ui/react/esm/slider/root/SliderRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/root/SliderRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/slider/root/SliderRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/root/stateAttributesMapping.js +12 -0
- package/dist/node_modules/@base-ui/react/esm/slider/root/stateAttributesMapping.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/thumb/SliderThumb.js +327 -0
- package/dist/node_modules/@base-ui/react/esm/slider/thumb/SliderThumb.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/thumb/SliderThumbDataAttributes.js +18 -0
- package/dist/node_modules/@base-ui/react/esm/slider/thumb/SliderThumbDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/thumb/prehydrationScript.min.js +5 -0
- package/dist/node_modules/@base-ui/react/esm/slider/thumb/prehydrationScript.min.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/track/SliderTrack.js +31 -0
- package/dist/node_modules/@base-ui/react/esm/slider/track/SliderTrack.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/asc.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/asc.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/getMidpoint.js +11 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/getMidpoint.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/getPushedThumbValues.js +50 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/getPushedThumbValues.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/getSliderValue.js +19 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/getSliderValue.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/replaceArrayItemAtIndex.js +10 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/replaceArrayItemAtIndex.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/resolveThumbCollision.js +129 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/resolveThumbCollision.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/roundValueToStep.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/roundValueToStep.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/validateMinimumDistance.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/slider/utils/validateMinimumDistance.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/switch/root/SwitchRoot.js +192 -0
- package/dist/node_modules/@base-ui/react/esm/switch/root/SwitchRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/switch/root/SwitchRootContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/switch/root/SwitchRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/switch/root/SwitchRootDataAttributes.js +18 -0
- package/dist/node_modules/@base-ui/react/esm/switch/root/SwitchRootDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/switch/stateAttributesMapping.js +19 -0
- package/dist/node_modules/@base-ui/react/esm/switch/stateAttributesMapping.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/switch/thumb/SwitchThumb.js +32 -0
- package/dist/node_modules/@base-ui/react/esm/switch/thumb/SwitchThumb.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/list/TabsList.js +156 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/list/TabsList.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/list/TabsListContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/list/TabsListContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/panel/TabsPanel.js +79 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/panel/TabsPanel.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/panel/TabsPanelDataAttributes.js +11 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/panel/TabsPanelDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/root/TabsRoot.js +156 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/root/TabsRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/root/TabsRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/root/TabsRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/root/TabsRootDataAttributes.js +9 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/root/TabsRootDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/root/stateAttributesMapping.js +10 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/root/stateAttributesMapping.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/tab/TabsTab.js +154 -0
- package/dist/node_modules/@base-ui/react/esm/tabs/tab/TabsTab.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/toggle/Toggle.js +92 -0
- package/dist/node_modules/@base-ui/react/esm/toggle/Toggle.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/toggle-group/ToggleGroup.js +106 -0
- package/dist/node_modules/@base-ui/react/esm/toggle-group/ToggleGroup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/toggle-group/ToggleGroupContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/toggle-group/ToggleGroupContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/toggle-group/ToggleGroupDataAttributes.js +10 -0
- package/dist/node_modules/@base-ui/react/esm/toggle-group/ToggleGroupDataAttributes.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/toolbar/root/ToolbarRootContext.js +13 -0
- package/dist/node_modules/@base-ui/react/esm/toolbar/root/ToolbarRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/arrow/TooltipArrow.js +45 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/arrow/TooltipArrow.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/popup/TooltipPopup.js +93 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/popup/TooltipPopup.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/portal/TooltipPortal.js +30 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/portal/TooltipPortal.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/portal/TooltipPortalContext.js +16 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/portal/TooltipPortalContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/positioner/TooltipPositioner.js +100 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/positioner/TooltipPositioner.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/positioner/TooltipPositionerContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/positioner/TooltipPositionerContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/provider/TooltipProvider.js +33 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/provider/TooltipProvider.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/provider/TooltipProviderContext.js +11 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/provider/TooltipProviderContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/root/TooltipRoot.js +128 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/root/TooltipRoot.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/root/TooltipRootContext.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/root/TooltipRootContext.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/store/TooltipStore.js +96 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/store/TooltipStore.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/trigger/TooltipTrigger.js +107 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/trigger/TooltipTrigger.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/utils/constants.js +5 -0
- package/dist/node_modules/@base-ui/react/esm/tooltip/utils/constants.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/use-button/useButton.js +139 -0
- package/dist/node_modules/@base-ui/react/esm/use-button/useButton.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/use-render/useRender.js +8 -0
- package/dist/node_modules/@base-ui/react/esm/use-render/useRender.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/FloatingPortalLite.js +34 -0
- package/dist/node_modules/@base-ui/react/esm/utils/FloatingPortalLite.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/FocusGuard.js +32 -0
- package/dist/node_modules/@base-ui/react/esm/utils/FocusGuard.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/InternalBackdrop.js +42 -0
- package/dist/node_modules/@base-ui/react/esm/utils/InternalBackdrop.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/adaptiveOriginMiddleware.js +78 -0
- package/dist/node_modules/@base-ui/react/esm/utils/adaptiveOriginMiddleware.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/areArraysEqual.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/utils/areArraysEqual.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/clamp.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/utils/clamp.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/collapsibleOpenStateMapping.js +31 -0
- package/dist/node_modules/@base-ui/react/esm/utils/collapsibleOpenStateMapping.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/constants.js +30 -0
- package/dist/node_modules/@base-ui/react/esm/utils/constants.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/createBaseUIEventDetails.js +39 -0
- package/dist/node_modules/@base-ui/react/esm/utils/createBaseUIEventDetails.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/formatNumber.js +26 -0
- package/dist/node_modules/@base-ui/react/esm/utils/formatNumber.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/getCssDimensions.js +23 -0
- package/dist/node_modules/@base-ui/react/esm/utils/getCssDimensions.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/getDisabledMountTransitionStyles.js +9 -0
- package/dist/node_modules/@base-ui/react/esm/utils/getDisabledMountTransitionStyles.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/getPseudoElementBounds.js +30 -0
- package/dist/node_modules/@base-ui/react/esm/utils/getPseudoElementBounds.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/getStateAttributesProps.js +23 -0
- package/dist/node_modules/@base-ui/react/esm/utils/getStateAttributesProps.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/hideMiddleware.js +23 -0
- package/dist/node_modules/@base-ui/react/esm/utils/hideMiddleware.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/interactions/useFocusWithDelay.js +65 -0
- package/dist/node_modules/@base-ui/react/esm/utils/interactions/useFocusWithDelay.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/itemEquality.js +40 -0
- package/dist/node_modules/@base-ui/react/esm/utils/itemEquality.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/popupStateMapping.js +68 -0
- package/dist/node_modules/@base-ui/react/esm/utils/popupStateMapping.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/popups/popupStoreUtils.js +105 -0
- package/dist/node_modules/@base-ui/react/esm/utils/popups/popupStoreUtils.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/popups/popupTriggerMap.js +68 -0
- package/dist/node_modules/@base-ui/react/esm/utils/popups/popupTriggerMap.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/popups/store.js +51 -0
- package/dist/node_modules/@base-ui/react/esm/utils/popups/store.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/reason-parts.js +49 -0
- package/dist/node_modules/@base-ui/react/esm/utils/reason-parts.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/resolveClassName.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/utils/resolveClassName.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/resolveRef.js +10 -0
- package/dist/node_modules/@base-ui/react/esm/utils/resolveRef.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/resolveStyle.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/utils/resolveStyle.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/resolveValueLabel.js +77 -0
- package/dist/node_modules/@base-ui/react/esm/utils/resolveValueLabel.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/serializeValue.js +17 -0
- package/dist/node_modules/@base-ui/react/esm/utils/serializeValue.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/stateAttributesMapping.js +27 -0
- package/dist/node_modules/@base-ui/react/esm/utils/stateAttributesMapping.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/styles.js +14 -0
- package/dist/node_modules/@base-ui/react/esm/utils/styles.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useAnchorPositioning.js +360 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useAnchorPositioning.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useAnimationsFinished.js +50 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useAnimationsFinished.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useBaseUiId.js +9 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useBaseUiId.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useFocusableWhenDisabled.js +43 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useFocusableWhenDisabled.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useMixedToggleClickHander.js +38 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useMixedToggleClickHander.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useOpenChangeComplete.js +30 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useOpenChangeComplete.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useOpenInteractionType.js +31 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useOpenInteractionType.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/usePopupAutoResize.js +136 -0
- package/dist/node_modules/@base-ui/react/esm/utils/usePopupAutoResize.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useRenderElement.js +94 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useRenderElement.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useTransitionStatus.js +63 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useTransitionStatus.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useValueChanged.js +20 -0
- package/dist/node_modules/@base-ui/react/esm/utils/useValueChanged.js.map +1 -0
- package/dist/node_modules/@base-ui/react/esm/utils/valueToPercent.js +7 -0
- package/dist/node_modules/@base-ui/react/esm/utils/valueToPercent.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/detectBrowser.js +66 -0
- package/dist/node_modules/@base-ui/utils/esm/detectBrowser.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/empty.js +10 -0
- package/dist/node_modules/@base-ui/utils/esm/empty.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/error.js +17 -0
- package/dist/node_modules/@base-ui/utils/esm/error.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/formatErrorMessage.js +9 -0
- package/dist/node_modules/@base-ui/utils/esm/formatErrorMessage.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/getReactElementRef.js +14 -0
- package/dist/node_modules/@base-ui/utils/esm/getReactElementRef.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/inertValue.js +11 -0
- package/dist/node_modules/@base-ui/utils/esm/inertValue.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/isElementDisabled.js +7 -0
- package/dist/node_modules/@base-ui/utils/esm/isElementDisabled.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/isMouseWithinBounds.js +9 -0
- package/dist/node_modules/@base-ui/utils/esm/isMouseWithinBounds.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/mergeObjects.js +19 -0
- package/dist/node_modules/@base-ui/utils/esm/mergeObjects.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/owner.js +7 -0
- package/dist/node_modules/@base-ui/utils/esm/owner.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/reactVersion.js +9 -0
- package/dist/node_modules/@base-ui/utils/esm/reactVersion.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/safeReact.js +8 -0
- package/dist/node_modules/@base-ui/utils/esm/safeReact.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/store/ReactStore.js +247 -0
- package/dist/node_modules/@base-ui/utils/esm/store/ReactStore.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/store/Store.js +96 -0
- package/dist/node_modules/@base-ui/utils/esm/store/Store.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/store/createSelector.js +25 -0
- package/dist/node_modules/@base-ui/utils/esm/store/createSelector.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/store/useStore.js +20 -0
- package/dist/node_modules/@base-ui/utils/esm/store/useStore.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/useAnimationFrame.js +94 -0
- package/dist/node_modules/@base-ui/utils/esm/useAnimationFrame.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/useControlled.js +39 -0
- package/dist/node_modules/@base-ui/utils/esm/useControlled.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/useEnhancedClickHandler.js +30 -0
- package/dist/node_modules/@base-ui/utils/esm/useEnhancedClickHandler.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/useId.js +27 -0
- package/dist/node_modules/@base-ui/utils/esm/useId.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/useIsoLayoutEffect.js +9 -0
- package/dist/node_modules/@base-ui/utils/esm/useIsoLayoutEffect.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/useMergedRefs.js +91 -0
- package/dist/node_modules/@base-ui/utils/esm/useMergedRefs.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/useOnFirstRender.js +12 -0
- package/dist/node_modules/@base-ui/utils/esm/useOnFirstRender.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/useOnMount.js +10 -0
- package/dist/node_modules/@base-ui/utils/esm/useOnMount.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/useRefWithInit.js +14 -0
- package/dist/node_modules/@base-ui/utils/esm/useRefWithInit.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/useScrollLock.js +181 -0
- package/dist/node_modules/@base-ui/utils/esm/useScrollLock.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/useStableCallback.js +35 -0
- package/dist/node_modules/@base-ui/utils/esm/useStableCallback.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/useTimeout.js +42 -0
- package/dist/node_modules/@base-ui/utils/esm/useTimeout.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/useValueAsRef.js +23 -0
- package/dist/node_modules/@base-ui/utils/esm/useValueAsRef.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/visuallyHidden.js +17 -0
- package/dist/node_modules/@base-ui/utils/esm/visuallyHidden.js.map +1 -0
- package/dist/node_modules/@base-ui/utils/esm/warn.js +17 -0
- package/dist/node_modules/@base-ui/utils/esm/warn.js.map +1 -0
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +659 -0
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +624 -0
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +262 -0
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +174 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +155 -0
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -0
- package/dist/node_modules/@radix-ui/primitive/dist/index.js +12 -0
- package/dist/node_modules/@radix-ui/primitive/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +40 -0
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-context/dist/index.js +80 -0
- package/dist/node_modules/@radix-ui/react-context/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-dialog/dist/index.js +339 -0
- package/dist/node_modules/@radix-ui/react-dialog/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +214 -0
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +31 -0
- package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +209 -0
- package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-id/dist/index.js +15 -0
- package/dist/node_modules/@radix-ui/react-id/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-portal/dist/index.js +19 -0
- package/dist/node_modules/@radix-ui/react-portal/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-presence/dist/index.js +130 -0
- package/dist/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +44 -0
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-slot/dist/index.js +89 -0
- package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +12 -0
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +70 -0
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +18 -0
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -0
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +7 -0
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +1 -0
- package/dist/node_modules/aria-hidden/dist/es2015/index.js +123 -0
- package/dist/node_modules/aria-hidden/dist/es2015/index.js.map +1 -0
- package/dist/node_modules/class-variance-authority/dist/index.js +46 -0
- package/dist/node_modules/class-variance-authority/dist/index.js.map +1 -0
- package/dist/node_modules/clsx/dist/clsx.js +18 -0
- package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
- package/dist/node_modules/cmdk/dist/chunk-NZJY6EH4.js +19 -0
- package/dist/node_modules/cmdk/dist/chunk-NZJY6EH4.js.map +1 -0
- package/dist/node_modules/cmdk/dist/index.js +314 -0
- package/dist/node_modules/cmdk/dist/index.js.map +1 -0
- package/dist/node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.js +40 -0
- package/dist/node_modules/cmdk/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -0
- package/dist/node_modules/cmdk/node_modules/@radix-ui/react-slot/dist/index.js +103 -0
- package/dist/node_modules/cmdk/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -0
- package/dist/node_modules/get-nonce/dist/es2015/index.js +10 -0
- package/dist/node_modules/get-nonce/dist/es2015/index.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/Icon.js +36 -0
- package/dist/node_modules/lucide-react/dist/esm/Icon.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +23 -0
- package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js +15 -0
- package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/check.js +8 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/check.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js +8 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.js +8 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js +8 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js +8 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-up.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-check.js +11 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-check.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle.js +8 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/ellipsis.js +12 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/ellipsis.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/info.js +12 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/info.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.js +8 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/minus.js +8 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/minus.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/monitor.js +12 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/monitor.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/moon.js +16 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/moon.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/octagon-x.js +18 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/octagon-x.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/panel-left.js +11 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/panel-left.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/search.js +11 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/search.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sun.js +18 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/sun.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/triangle-alert.js +18 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/triangle-alert.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/x.js +11 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/x.js.map +1 -0
- package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js +27 -0
- package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +12 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +181 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +39 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +20 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +103 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +6 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js.map +1 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +8 -0
- package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js.map +1 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +48 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +11 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js.map +1 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +38 -0
- package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -0
- package/dist/node_modules/react-resizable-panels/dist/react-resizable-panels.js +1736 -0
- package/dist/node_modules/react-resizable-panels/dist/react-resizable-panels.js.map +1 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/component.js +14 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +17 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +49 -0
- package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -0
- package/dist/node_modules/reselect/dist/reselect.js +422 -0
- package/dist/node_modules/reselect/dist/reselect.js.map +1 -0
- package/dist/node_modules/sonner/dist/index.js +1088 -0
- package/dist/node_modules/sonner/dist/index.js.map +1 -0
- package/dist/node_modules/tabbable/dist/index.esm.js +344 -0
- package/dist/node_modules/tabbable/dist/index.esm.js.map +1 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +3015 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
- package/dist/node_modules/tslib/tslib.es6.js +40 -0
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +12 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js.map +1 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +36 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +30 -0
- package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -0
- package/dist/node_modules/use-sidecar/dist/es2015/exports.js +22 -0
- package/dist/node_modules/use-sidecar/dist/es2015/exports.js.map +1 -0
- package/dist/node_modules/use-sidecar/dist/es2015/medium.js +89 -0
- package/dist/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +73 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +69 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +69 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +54 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/shim/index.js +18 -0
- package/dist/node_modules/use-sync-external-store/shim/index.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/shim/with-selector.js +18 -0
- package/dist/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -0
- package/dist/node_modules/vaul/dist/index.js +1480 -0
- package/dist/node_modules/vaul/dist/index.js.map +1 -0
- package/package.json +312 -72
- package/src/components/neynar/color-mode/color-mode-initializer.tsx +78 -0
- package/src/components/neynar/color-mode/color-mode-toggle.tsx +215 -0
- package/src/components/neynar/color-mode/index.ts +3 -0
- package/src/components/neynar/color-mode/stories/color-mode-toggle.stories.tsx +342 -0
- package/src/components/neynar/color-mode/use-color-mode.ts +307 -0
- package/src/components/neynar/first-light/first-light-filters.tsx +110 -0
- package/src/components/neynar/first-light/index.ts +1 -0
- package/src/components/neynar/typography/blockquote.tsx +32 -0
- package/src/components/neynar/typography/code.tsx +31 -0
- package/src/components/neynar/typography/index.ts +19 -0
- package/src/components/neynar/typography/stories/blockquote.stories.tsx +355 -0
- package/src/components/neynar/typography/stories/code.stories.tsx +399 -0
- package/src/components/neynar/typography/stories/text.stories.tsx +487 -0
- package/src/components/neynar/typography/stories/title.stories.tsx +350 -0
- package/src/components/neynar/typography/text.tsx +123 -0
- package/src/components/neynar/typography/title.tsx +86 -0
- package/src/components/ui/accordion.tsx +57 -319
- package/src/components/ui/alert-dialog.tsx +118 -637
- package/src/components/ui/alert.tsx +47 -288
- package/src/components/ui/aspect-ratio.tsx +20 -147
- package/src/components/ui/avatar.tsx +97 -390
- package/src/components/ui/badge.tsx +37 -192
- package/src/components/ui/breadcrumb.tsx +66 -572
- package/src/components/ui/button-group.tsx +50 -470
- package/src/components/ui/button.tsx +48 -252
- package/src/components/ui/calendar.tsx +41 -996
- package/src/components/ui/card.tsx +60 -481
- package/src/components/ui/carousel.tsx +44 -821
- package/src/components/ui/chart.tsx +159 -782
- package/src/components/ui/checkbox.tsx +11 -228
- package/src/components/ui/collapsible.tsx +26 -441
- package/src/components/ui/combobox.tsx +352 -552
- package/src/components/ui/command.tsx +94 -841
- package/src/components/ui/context-menu.tsx +175 -1079
- package/src/components/ui/dialog.tsx +102 -565
- package/src/components/ui/drawer.tsx +61 -655
- package/src/components/ui/dropdown-menu.tsx +206 -1012
- package/src/components/ui/empty.tsx +55 -704
- package/src/components/ui/field.tsx +140 -327
- package/src/components/ui/hover-card.tsx +50 -407
- package/src/components/ui/input-group.tsx +76 -678
- package/src/components/ui/input-otp.tsx +113 -0
- package/src/components/ui/input.tsx +9 -250
- package/src/components/ui/item.tsx +109 -798
- package/src/components/ui/kbd.tsx +16 -153
- package/src/components/ui/label.tsx +9 -183
- package/src/components/ui/menubar.tsx +171 -910
- package/src/components/ui/navigation-menu.tsx +78 -759
- package/src/components/ui/pagination.tsx +50 -828
- package/src/components/ui/popover.tsx +94 -292
- package/src/components/ui/progress.tsx +91 -174
- package/src/components/ui/radio-group.tsx +29 -367
- package/src/components/ui/resizable.tsx +39 -393
- package/src/components/ui/scroll-area.tsx +74 -407
- package/src/components/ui/select.tsx +124 -837
- package/src/components/ui/separator.tsx +8 -186
- package/src/components/ui/sheet.tsx +80 -701
- package/src/components/ui/sidebar.tsx +307 -2095
- package/src/components/ui/skeleton.tsx +6 -145
- package/src/components/ui/slider.tsx +45 -156
- package/src/components/ui/sonner.tsx +56 -624
- package/src/components/ui/spinner.tsx +7 -196
- package/src/components/ui/stories/accordion.stories.tsx +609 -345
- package/src/components/ui/stories/alert-dialog.stories.tsx +737 -463
- package/src/components/ui/stories/alert.stories.tsx +348 -196
- package/src/components/ui/stories/aspect-ratio.stories.tsx +617 -156
- package/src/components/ui/stories/avatar.stories.tsx +471 -245
- package/src/components/ui/stories/badge.stories.tsx +431 -204
- package/src/components/ui/stories/breadcrumb.stories.tsx +610 -424
- package/src/components/ui/stories/button-group.stories.tsx +570 -211
- package/src/components/ui/stories/button.stories.tsx +324 -198
- package/src/components/ui/stories/calendar.stories.tsx +525 -302
- package/src/components/ui/stories/card.stories.tsx +670 -233
- package/src/components/ui/stories/carousel.stories.tsx +440 -219
- package/src/components/ui/stories/chart.stories.tsx +637 -337
- package/src/components/ui/stories/checkbox.stories.tsx +515 -239
- package/src/components/ui/stories/collapsible.stories.tsx +746 -218
- package/src/components/ui/stories/combobox.stories.tsx +753 -256
- package/src/components/ui/stories/command.stories.tsx +424 -514
- package/src/components/ui/stories/context-menu.stories.tsx +841 -318
- package/src/components/ui/stories/dialog.stories.tsx +607 -450
- package/src/components/ui/stories/drawer.stories.tsx +690 -269
- package/src/components/ui/stories/dropdown-menu.stories.tsx +738 -282
- package/src/components/ui/stories/empty.stories.tsx +501 -251
- package/src/components/ui/stories/field.stories.tsx +731 -372
- package/src/components/ui/stories/hover-card.stories.tsx +808 -271
- package/src/components/ui/stories/input-group.stories.tsx +761 -393
- package/src/components/ui/stories/input-otp.stories.tsx +802 -0
- package/src/components/ui/stories/input.stories.tsx +494 -223
- package/src/components/ui/stories/item.stories.tsx +794 -446
- package/src/components/ui/stories/kbd.stories.tsx +516 -346
- package/src/components/ui/stories/label.stories.tsx +529 -211
- package/src/components/ui/stories/menubar.stories.tsx +858 -631
- package/src/components/ui/stories/navigation-menu.stories.tsx +910 -465
- package/src/components/ui/stories/pagination.stories.tsx +454 -451
- package/src/components/ui/stories/popover.stories.tsx +595 -287
- package/src/components/ui/stories/progress.stories.tsx +407 -186
- package/src/components/ui/stories/radio-group.stories.tsx +517 -344
- package/src/components/ui/stories/resizable.stories.tsx +439 -354
- package/src/components/ui/stories/scroll-area.stories.tsx +679 -141
- package/src/components/ui/stories/select.stories.tsx +572 -306
- package/src/components/ui/stories/separator.stories.tsx +498 -148
- package/src/components/ui/stories/sheet.stories.tsx +539 -393
- package/src/components/ui/stories/sidebar.stories.tsx +474 -625
- package/src/components/ui/stories/skeleton.stories.tsx +322 -171
- package/src/components/ui/stories/slider.stories.tsx +407 -257
- package/src/components/ui/stories/sonner.stories.tsx +496 -332
- package/src/components/ui/stories/spinner.stories.tsx +398 -270
- package/src/components/ui/stories/switch.stories.tsx +464 -161
- package/src/components/ui/stories/table.stories.tsx +783 -465
- package/src/components/ui/stories/tabs.stories.tsx +512 -465
- package/src/components/ui/stories/textarea.stories.tsx +422 -198
- package/src/components/ui/stories/toggle-group.stories.tsx +412 -255
- package/src/components/ui/stories/toggle.stories.tsx +348 -272
- package/src/components/ui/stories/tooltip.stories.tsx +469 -386
- package/src/components/ui/switch.tsx +14 -124
- package/src/components/ui/table.tsx +49 -472
- package/src/components/ui/tabs.tsx +64 -357
- package/src/components/ui/textarea.tsx +10 -226
- package/src/components/ui/toggle-group.tsx +50 -345
- package/src/components/ui/toggle.tsx +19 -175
- package/src/components/ui/tooltip.tsx +58 -421
- package/src/hooks/use-mobile.ts +24 -78
- package/src/lib/utils.ts +16 -47
- package/src/lib/variants.ts +240 -0
- package/src/styles/styles.css +94 -0
- package/src/styles/themes/first-light.css +341 -0
- package/src/styles/themes/purple-dawn.css +133 -0
- package/.llm/accordion-content.llm.md +0 -67
- package/.llm/accordion-item.llm.md +0 -61
- package/.llm/accordion-trigger.llm.md +0 -69
- package/.llm/accordion.llm.md +0 -88
- package/.llm/alert-description.llm.md +0 -78
- package/.llm/alert-dialog-action.llm.md +0 -51
- package/.llm/alert-dialog-cancel.llm.md +0 -48
- package/.llm/alert-dialog-content.llm.md +0 -88
- package/.llm/alert-dialog-description.llm.md +0 -53
- package/.llm/alert-dialog-footer.llm.md +0 -41
- package/.llm/alert-dialog-header.llm.md +0 -39
- package/.llm/alert-dialog-overlay.llm.md +0 -44
- package/.llm/alert-dialog-portal.llm.md +0 -41
- package/.llm/alert-dialog-title.llm.md +0 -46
- package/.llm/alert-dialog-trigger.llm.md +0 -40
- package/.llm/alert-dialog.llm.md +0 -80
- package/.llm/alert-title.llm.md +0 -48
- package/.llm/alert.llm.md +0 -92
- package/.llm/aspect-ratio.llm.md +0 -41
- package/.llm/avatar-fallback.llm.md +0 -41
- package/.llm/avatar-image.llm.md +0 -48
- package/.llm/avatar.llm.md +0 -35
- package/.llm/badge.llm.md +0 -117
- package/.llm/blockquote.llm.md +0 -55
- package/.llm/body-text-large.llm.md +0 -49
- package/.llm/body-text-small.llm.md +0 -49
- package/.llm/body-text.llm.md +0 -52
- package/.llm/breadcrumb-ellipsis.llm.md +0 -73
- package/.llm/breadcrumb-item.llm.md +0 -53
- package/.llm/breadcrumb-link.llm.md +0 -84
- package/.llm/breadcrumb-list.llm.md +0 -54
- package/.llm/breadcrumb-page.llm.md +0 -52
- package/.llm/breadcrumb-separator.llm.md +0 -60
- package/.llm/breadcrumb.llm.md +0 -110
- package/.llm/button-group-separator.llm.md +0 -53
- package/.llm/button-group-text.llm.md +0 -56
- package/.llm/button-group.llm.md +0 -81
- package/.llm/button.llm.md +0 -281
- package/.llm/calendar-day-button.llm.md +0 -57
- package/.llm/calendar.llm.md +0 -340
- package/.llm/caption.llm.md +0 -48
- package/.llm/card-action.llm.md +0 -64
- package/.llm/card-content.llm.md +0 -48
- package/.llm/card-description.llm.md +0 -46
- package/.llm/card-footer.llm.md +0 -56
- package/.llm/card-header.llm.md +0 -53
- package/.llm/card-title.llm.md +0 -43
- package/.llm/card.llm.md +0 -100
- package/.llm/carousel-content.llm.md +0 -77
- package/.llm/carousel-item.llm.md +0 -96
- package/.llm/carousel-next.llm.md +0 -95
- package/.llm/carousel-previous.llm.md +0 -95
- package/.llm/carousel.llm.md +0 -211
- package/.llm/chart-config.llm.md +0 -71
- package/.llm/chart-container.llm.md +0 -148
- package/.llm/chart-legend-content.llm.md +0 -85
- package/.llm/chart-legend.llm.md +0 -144
- package/.llm/chart-style.llm.md +0 -28
- package/.llm/chart-tooltip-content.llm.md +0 -149
- package/.llm/chart-tooltip.llm.md +0 -184
- package/.llm/checkbox.llm.md +0 -100
- package/.llm/cn.llm.md +0 -46
- package/.llm/code.llm.md +0 -45
- package/.llm/collapsible-content.llm.md +0 -109
- package/.llm/collapsible-trigger.llm.md +0 -75
- package/.llm/collapsible.llm.md +0 -109
- package/.llm/combobox-option.llm.md +0 -53
- package/.llm/combobox.llm.md +0 -208
- package/.llm/command-dialog.llm.md +0 -112
- package/.llm/command-empty.llm.md +0 -63
- package/.llm/command-group.llm.md +0 -83
- package/.llm/command-input.llm.md +0 -82
- package/.llm/command-item.llm.md +0 -97
- package/.llm/command-list.llm.md +0 -53
- package/.llm/command-loading.llm.md +0 -48
- package/.llm/command-separator.llm.md +0 -44
- package/.llm/command-shortcut.llm.md +0 -63
- package/.llm/command.llm.md +0 -147
- package/.llm/container.llm.md +0 -236
- package/.llm/context-menu-checkbox-item.llm.md +0 -97
- package/.llm/context-menu-content.llm.md +0 -91
- package/.llm/context-menu-group.llm.md +0 -61
- package/.llm/context-menu-item.llm.md +0 -94
- package/.llm/context-menu-label.llm.md +0 -60
- package/.llm/context-menu-portal.llm.md +0 -49
- package/.llm/context-menu-radio-group.llm.md +0 -66
- package/.llm/context-menu-radio-item.llm.md +0 -76
- package/.llm/context-menu-separator.llm.md +0 -51
- package/.llm/context-menu-shortcut.llm.md +0 -57
- package/.llm/context-menu-sub-content.llm.md +0 -90
- package/.llm/context-menu-sub-trigger.llm.md +0 -73
- package/.llm/context-menu-sub.llm.md +0 -61
- package/.llm/context-menu-trigger.llm.md +0 -53
- package/.llm/context-menu.llm.md +0 -103
- package/.llm/date-picker.llm.md +0 -90
- package/.llm/dialog-close.llm.md +0 -61
- package/.llm/dialog-content.llm.md +0 -128
- package/.llm/dialog-description.llm.md +0 -44
- package/.llm/dialog-footer.llm.md +0 -38
- package/.llm/dialog-header.llm.md +0 -40
- package/.llm/dialog-overlay.llm.md +0 -57
- package/.llm/dialog-portal.llm.md +0 -47
- package/.llm/dialog-title.llm.md +0 -41
- package/.llm/dialog-trigger.llm.md +0 -51
- package/.llm/dialog.llm.md +0 -113
- package/.llm/drawer-close.llm.md +0 -53
- package/.llm/drawer-content.llm.md +0 -58
- package/.llm/drawer-description.llm.md +0 -54
- package/.llm/drawer-footer.llm.md +0 -67
- package/.llm/drawer-header.llm.md +0 -60
- package/.llm/drawer-overlay.llm.md +0 -40
- package/.llm/drawer-portal.llm.md +0 -42
- package/.llm/drawer-title.llm.md +0 -51
- package/.llm/drawer-trigger.llm.md +0 -44
- package/.llm/drawer.llm.md +0 -194
- package/.llm/dropdown-menu-checkbox-item.llm.md +0 -111
- package/.llm/dropdown-menu-content.llm.md +0 -109
- package/.llm/dropdown-menu-group.llm.md +0 -38
- package/.llm/dropdown-menu-item.llm.md +0 -94
- package/.llm/dropdown-menu-label.llm.md +0 -66
- package/.llm/dropdown-menu-portal.llm.md +0 -32
- package/.llm/dropdown-menu-radio-group.llm.md +0 -73
- package/.llm/dropdown-menu-radio-item.llm.md +0 -92
- package/.llm/dropdown-menu-separator.llm.md +0 -55
- package/.llm/dropdown-menu-shortcut.llm.md +0 -74
- package/.llm/dropdown-menu-sub-content.llm.md +0 -80
- package/.llm/dropdown-menu-sub-trigger.llm.md +0 -84
- package/.llm/dropdown-menu-sub.llm.md +0 -74
- package/.llm/dropdown-menu-trigger.llm.md +0 -48
- package/.llm/dropdown-menu.llm.md +0 -120
- package/.llm/empty-content.llm.md +0 -103
- package/.llm/empty-description.llm.md +0 -70
- package/.llm/empty-header.llm.md +0 -64
- package/.llm/empty-media.llm.md +0 -81
- package/.llm/empty-state.llm.md +0 -174
- package/.llm/empty-title.llm.md +0 -54
- package/.llm/empty.llm.md +0 -158
- package/.llm/field-content.llm.md +0 -28
- package/.llm/field-description.llm.md +0 -28
- package/.llm/field-error.llm.md +0 -41
- package/.llm/field-group.llm.md +0 -84
- package/.llm/field-label.llm.md +0 -28
- package/.llm/field-legend.llm.md +0 -77
- package/.llm/field-separator.llm.md +0 -35
- package/.llm/field-set.llm.md +0 -80
- package/.llm/field-title.llm.md +0 -28
- package/.llm/field.llm.md +0 -35
- package/.llm/hover-card-content.llm.md +0 -167
- package/.llm/hover-card-trigger.llm.md +0 -65
- package/.llm/hover-card.llm.md +0 -121
- package/.llm/input-group-addon.llm.md +0 -91
- package/.llm/input-group-button.llm.md +0 -120
- package/.llm/input-group-input.llm.md +0 -145
- package/.llm/input-group-text.llm.md +0 -75
- package/.llm/input-group-textarea.llm.md +0 -157
- package/.llm/input-group.llm.md +0 -108
- package/.llm/input.llm.md +0 -319
- package/.llm/item-actions.llm.md +0 -77
- package/.llm/item-content.llm.md +0 -73
- package/.llm/item-description.llm.md +0 -61
- package/.llm/item-footer.llm.md +0 -68
- package/.llm/item-group.llm.md +0 -73
- package/.llm/item-header.llm.md +0 -66
- package/.llm/item-media.llm.md +0 -75
- package/.llm/item-separator.llm.md +0 -80
- package/.llm/item-title.llm.md +0 -59
- package/.llm/item.llm.md +0 -115
- package/.llm/kbd-group.llm.md +0 -71
- package/.llm/kbd.llm.md +0 -71
- package/.llm/label.llm.md +0 -145
- package/.llm/menubar-checkbox-item.llm.md +0 -66
- package/.llm/menubar-content.llm.md +0 -128
- package/.llm/menubar-group.llm.md +0 -40
- package/.llm/menubar-item.llm.md +0 -62
- package/.llm/menubar-label.llm.md +0 -40
- package/.llm/menubar-menu.llm.md +0 -32
- package/.llm/menubar-portal.llm.md +0 -38
- package/.llm/menubar-radio-group.llm.md +0 -39
- package/.llm/menubar-radio-item.llm.md +0 -59
- package/.llm/menubar-separator.llm.md +0 -35
- package/.llm/menubar-shortcut.llm.md +0 -37
- package/.llm/menubar-sub-content.llm.md +0 -127
- package/.llm/menubar-sub-trigger.llm.md +0 -51
- package/.llm/menubar-sub.llm.md +0 -53
- package/.llm/menubar-trigger.llm.md +0 -37
- package/.llm/menubar.llm.md +0 -115
- package/.llm/navigation-menu-content.llm.md +0 -116
- package/.llm/navigation-menu-indicator.llm.md +0 -68
- package/.llm/navigation-menu-item.llm.md +0 -62
- package/.llm/navigation-menu-link.llm.md +0 -109
- package/.llm/navigation-menu-list.llm.md +0 -52
- package/.llm/navigation-menu-trigger-style.llm.md +0 -22
- package/.llm/navigation-menu-trigger.llm.md +0 -57
- package/.llm/navigation-menu-viewport.llm.md +0 -51
- package/.llm/navigation-menu.llm.md +0 -184
- package/.llm/overline.llm.md +0 -51
- package/.llm/page-title.llm.md +0 -52
- package/.llm/pagination-content.llm.md +0 -60
- package/.llm/pagination-ellipsis.llm.md +0 -107
- package/.llm/pagination-item.llm.md +0 -59
- package/.llm/pagination-link.llm.md +0 -150
- package/.llm/pagination-next.llm.md +0 -115
- package/.llm/pagination-previous.llm.md +0 -115
- package/.llm/pagination.llm.md +0 -190
- package/.llm/popover-anchor.llm.md +0 -53
- package/.llm/popover-content.llm.md +0 -109
- package/.llm/popover-trigger.llm.md +0 -54
- package/.llm/popover.llm.md +0 -116
- package/.llm/progress.llm.md +0 -76
- package/.llm/radio-group-indicator.llm.md +0 -28
- package/.llm/radio-group-item.llm.md +0 -40
- package/.llm/radio-group.llm.md +0 -76
- package/.llm/resizable-handle.llm.md +0 -156
- package/.llm/resizable-panel-group.llm.md +0 -149
- package/.llm/resizable-panel.llm.md +0 -157
- package/.llm/scroll-area-corner.llm.md +0 -41
- package/.llm/scroll-area-thumb.llm.md +0 -39
- package/.llm/scroll-area-viewport.llm.md +0 -60
- package/.llm/scroll-area.llm.md +0 -125
- package/.llm/scroll-bar.llm.md +0 -78
- package/.llm/sdk-items-registry.json +0 -2984
- package/.llm/section-title.llm.md +0 -48
- package/.llm/select-content.llm.md +0 -139
- package/.llm/select-group.llm.md +0 -60
- package/.llm/select-item.llm.md +0 -75
- package/.llm/select-label.llm.md +0 -62
- package/.llm/select-scroll-down-button.llm.md +0 -45
- package/.llm/select-scroll-up-button.llm.md +0 -45
- package/.llm/select-separator.llm.md +0 -59
- package/.llm/select-trigger.llm.md +0 -66
- package/.llm/select-value.llm.md +0 -67
- package/.llm/select.llm.md +0 -159
- package/.llm/separator.llm.md +0 -129
- package/.llm/sheet-close.llm.md +0 -49
- package/.llm/sheet-content.llm.md +0 -115
- package/.llm/sheet-description.llm.md +0 -62
- package/.llm/sheet-footer.llm.md +0 -64
- package/.llm/sheet-header.llm.md +0 -52
- package/.llm/sheet-title.llm.md +0 -53
- package/.llm/sheet-trigger.llm.md +0 -46
- package/.llm/sheet.llm.md +0 -126
- package/.llm/sidebar-content.llm.md +0 -63
- package/.llm/sidebar-footer.llm.md +0 -50
- package/.llm/sidebar-group-action.llm.md +0 -60
- package/.llm/sidebar-group-content.llm.md +0 -64
- package/.llm/sidebar-group-label.llm.md +0 -53
- package/.llm/sidebar-group.llm.md +0 -56
- package/.llm/sidebar-header.llm.md +0 -67
- package/.llm/sidebar-input.llm.md +0 -50
- package/.llm/sidebar-inset.llm.md +0 -52
- package/.llm/sidebar-menu-action.llm.md +0 -84
- package/.llm/sidebar-menu-badge.llm.md +0 -60
- package/.llm/sidebar-menu-button.llm.md +0 -103
- package/.llm/sidebar-menu-item.llm.md +0 -75
- package/.llm/sidebar-menu-skeleton.llm.md +0 -76
- package/.llm/sidebar-menu-sub-button.llm.md +0 -85
- package/.llm/sidebar-menu-sub-item.llm.md +0 -54
- package/.llm/sidebar-menu-sub.llm.md +0 -74
- package/.llm/sidebar-menu.llm.md +0 -65
- package/.llm/sidebar-provider.llm.md +0 -79
- package/.llm/sidebar-rail.llm.md +0 -34
- package/.llm/sidebar-separator.llm.md +0 -57
- package/.llm/sidebar-trigger.llm.md +0 -49
- package/.llm/sidebar.llm.md +0 -129
- package/.llm/skeleton.llm.md +0 -134
- package/.llm/slider.llm.md +0 -173
- package/.llm/spinner.llm.md +0 -182
- package/.llm/stack.llm.md +0 -28
- package/.llm/subsection-title.llm.md +0 -46
- package/.llm/switch.llm.md +0 -76
- package/.llm/table-body.llm.md +0 -36
- package/.llm/table-caption.llm.md +0 -48
- package/.llm/table-cell.llm.md +0 -53
- package/.llm/table-footer.llm.md +0 -41
- package/.llm/table-head.llm.md +0 -69
- package/.llm/table-header.llm.md +0 -41
- package/.llm/table-row.llm.md +0 -42
- package/.llm/table.llm.md +0 -123
- package/.llm/tabs-content.llm.md +0 -47
- package/.llm/tabs-list.llm.md +0 -41
- package/.llm/tabs-trigger.llm.md +0 -47
- package/.llm/tabs.llm.md +0 -71
- package/.llm/text-field.llm.md +0 -327
- package/.llm/textarea.llm.md +0 -311
- package/.llm/theme-preference.llm.md +0 -25
- package/.llm/theme-toggle.llm.md +0 -57
- package/.llm/theme.llm.md +0 -14
- package/.llm/toaster.llm.md +0 -193
- package/.llm/toggle-group-item.llm.md +0 -59
- package/.llm/toggle-group.llm.md +0 -101
- package/.llm/toggle.llm.md +0 -40
- package/.llm/tooltip-content.llm.md +0 -185
- package/.llm/tooltip-provider.llm.md +0 -68
- package/.llm/tooltip-trigger.llm.md +0 -70
- package/.llm/tooltip.llm.md +0 -129
- package/.llm/use-carousel.llm.md +0 -55
- package/.llm/use-command-state.llm.md +0 -32
- package/.llm/use-is-mobile.llm.md +0 -73
- package/.llm/use-sidebar.llm.md +0 -61
- package/dist/components/ui/container.d.ts +0 -197
- package/dist/components/ui/container.d.ts.map +0 -1
- package/dist/components/ui/date-picker.d.ts +0 -172
- package/dist/components/ui/date-picker.d.ts.map +0 -1
- package/dist/components/ui/empty-state.d.ts +0 -206
- package/dist/components/ui/empty-state.d.ts.map +0 -1
- package/dist/components/ui/stack.d.ts +0 -334
- package/dist/components/ui/stack.d.ts.map +0 -1
- package/dist/components/ui/stories/accordion.stories.d.ts +0 -70
- package/dist/components/ui/stories/accordion.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/alert-dialog.stories.d.ts +0 -38
- package/dist/components/ui/stories/alert-dialog.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/alert.stories.d.ts +0 -47
- package/dist/components/ui/stories/alert.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/aspect-ratio.stories.d.ts +0 -51
- package/dist/components/ui/stories/aspect-ratio.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/avatar.stories.d.ts +0 -48
- package/dist/components/ui/stories/avatar.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/badge.stories.d.ts +0 -63
- package/dist/components/ui/stories/badge.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/breadcrumb.stories.d.ts +0 -26
- package/dist/components/ui/stories/breadcrumb.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/button-group.stories.d.ts +0 -48
- package/dist/components/ui/stories/button-group.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/button.stories.d.ts +0 -91
- package/dist/components/ui/stories/button.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/calendar.stories.d.ts +0 -93
- package/dist/components/ui/stories/calendar.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/card.stories.d.ts +0 -28
- package/dist/components/ui/stories/card.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/carousel.stories.d.ts +0 -41
- package/dist/components/ui/stories/carousel.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/chart.stories.d.ts +0 -50
- package/dist/components/ui/stories/chart.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/checkbox.stories.d.ts +0 -71
- package/dist/components/ui/stories/checkbox.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/cn.stories.d.ts +0 -19
- package/dist/components/ui/stories/cn.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/collapsible.stories.d.ts +0 -50
- package/dist/components/ui/stories/collapsible.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/colors.stories.d.ts +0 -30
- package/dist/components/ui/stories/colors.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/combobox.stories.d.ts +0 -88
- package/dist/components/ui/stories/combobox.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/command.stories.d.ts +0 -68
- package/dist/components/ui/stories/command.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/container.stories.d.ts +0 -40
- package/dist/components/ui/stories/container.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/context-menu.stories.d.ts +0 -31
- package/dist/components/ui/stories/context-menu.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/date-picker.stories.d.ts +0 -66
- package/dist/components/ui/stories/date-picker.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/dialog.stories.d.ts +0 -47
- package/dist/components/ui/stories/dialog.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/drawer.stories.d.ts +0 -32
- package/dist/components/ui/stories/drawer.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/dropdown-menu.stories.d.ts +0 -30
- package/dist/components/ui/stories/dropdown-menu.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/empty-state.stories.d.ts +0 -73
- package/dist/components/ui/stories/empty-state.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/empty.stories.d.ts +0 -38
- package/dist/components/ui/stories/empty.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/field.stories.d.ts +0 -48
- package/dist/components/ui/stories/field.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/hover-card.stories.d.ts +0 -34
- package/dist/components/ui/stories/hover-card.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/input-group.stories.d.ts +0 -37
- package/dist/components/ui/stories/input-group.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/input.stories.d.ts +0 -68
- package/dist/components/ui/stories/input.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/item.stories.d.ts +0 -61
- package/dist/components/ui/stories/item.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/kbd.stories.d.ts +0 -37
- package/dist/components/ui/stories/kbd.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/label.stories.d.ts +0 -46
- package/dist/components/ui/stories/label.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/menubar.stories.d.ts +0 -38
- package/dist/components/ui/stories/menubar.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/navigation-menu.stories.d.ts +0 -43
- package/dist/components/ui/stories/navigation-menu.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/pagination.stories.d.ts +0 -32
- package/dist/components/ui/stories/pagination.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/popover.stories.d.ts +0 -35
- package/dist/components/ui/stories/popover.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/progress.stories.d.ts +0 -37
- package/dist/components/ui/stories/progress.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/radio-group.stories.d.ts +0 -75
- package/dist/components/ui/stories/radio-group.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/resizable.stories.d.ts +0 -48
- package/dist/components/ui/stories/resizable.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/scroll-area.stories.d.ts +0 -33
- package/dist/components/ui/stories/scroll-area.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/select.stories.d.ts +0 -50
- package/dist/components/ui/stories/select.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/separator.stories.d.ts +0 -57
- package/dist/components/ui/stories/separator.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/sheet.stories.d.ts +0 -42
- package/dist/components/ui/stories/sheet.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/sidebar.stories.d.ts +0 -59
- package/dist/components/ui/stories/sidebar.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/skeleton.stories.d.ts +0 -41
- package/dist/components/ui/stories/skeleton.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/slider.stories.d.ts +0 -98
- package/dist/components/ui/stories/slider.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/sonner.stories.d.ts +0 -9
- package/dist/components/ui/stories/sonner.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/spinner.stories.d.ts +0 -37
- package/dist/components/ui/stories/spinner.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/stack.stories.d.ts +0 -38
- package/dist/components/ui/stories/stack.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/switch.stories.d.ts +0 -70
- package/dist/components/ui/stories/switch.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/table.stories.d.ts +0 -39
- package/dist/components/ui/stories/table.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/tabs.stories.d.ts +0 -61
- package/dist/components/ui/stories/tabs.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/text-field.stories.d.ts +0 -83
- package/dist/components/ui/stories/text-field.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/textarea.stories.d.ts +0 -56
- package/dist/components/ui/stories/textarea.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/theme-toggle.stories.d.ts +0 -70
- package/dist/components/ui/stories/theme-toggle.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/theme.stories.d.ts +0 -50
- package/dist/components/ui/stories/theme.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/toggle-group.stories.d.ts +0 -70
- package/dist/components/ui/stories/toggle-group.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/toggle.stories.d.ts +0 -77
- package/dist/components/ui/stories/toggle.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/tooltip.stories.d.ts +0 -36
- package/dist/components/ui/stories/tooltip.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/typography.stories.d.ts +0 -36
- package/dist/components/ui/stories/typography.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/use-mobile.stories.d.ts +0 -20
- package/dist/components/ui/stories/use-mobile.stories.d.ts.map +0 -1
- package/dist/components/ui/stories/use-theme.stories.d.ts +0 -23
- package/dist/components/ui/stories/use-theme.stories.d.ts.map +0 -1
- package/dist/components/ui/text-field.d.ts +0 -243
- package/dist/components/ui/text-field.d.ts.map +0 -1
- package/dist/components/ui/theme-toggle.d.ts +0 -227
- package/dist/components/ui/theme-toggle.d.ts.map +0 -1
- package/dist/components/ui/theme.d.ts +0 -194
- package/dist/components/ui/theme.d.ts.map +0 -1
- package/dist/components/ui/typography.d.ts +0 -344
- package/dist/components/ui/typography.d.ts.map +0 -1
- package/dist/hooks/use-theme.d.ts +0 -142
- package/dist/hooks/use-theme.d.ts.map +0 -1
- package/dist/index.d.ts +0 -64
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -40730
- package/dist/index.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/docs/llm/colors.md +0 -273
- package/docs/llm/components/buttons.md +0 -68
- package/docs/llm/components/cards.md +0 -53
- package/docs/llm/components/display.md +0 -259
- package/docs/llm/components/feedback.md +0 -82
- package/docs/llm/components/forms.md +0 -184
- package/docs/llm/components/layout.md +0 -228
- package/docs/llm/components/menus.md +0 -70
- package/docs/llm/components/navigation.md +0 -80
- package/docs/llm/components/overlays.md +0 -83
- package/docs/llm/components/tables.md +0 -73
- package/docs/llm/components/typography.md +0 -203
- package/docs/llm/components/utilities.md +0 -114
- package/docs/llm/guide.md +0 -165
- package/llms.txt +0 -298
- package/src/components/ui/container.tsx +0 -266
- package/src/components/ui/date-picker.tsx +0 -403
- package/src/components/ui/empty-state.tsx +0 -305
- package/src/components/ui/stack.tsx +0 -508
- package/src/components/ui/stories/cn.stories.tsx +0 -432
- package/src/components/ui/stories/colors.stories.tsx +0 -501
- package/src/components/ui/stories/container.stories.tsx +0 -249
- package/src/components/ui/stories/date-picker.stories.tsx +0 -377
- package/src/components/ui/stories/empty-state.stories.tsx +0 -243
- package/src/components/ui/stories/stack.stories.tsx +0 -221
- package/src/components/ui/stories/text-field.stories.tsx +0 -279
- package/src/components/ui/stories/theme-toggle.stories.tsx +0 -274
- package/src/components/ui/stories/theme.stories.tsx +0 -411
- package/src/components/ui/stories/typography.stories.tsx +0 -381
- package/src/components/ui/stories/use-mobile.stories.tsx +0 -419
- package/src/components/ui/stories/use-theme.stories.tsx +0 -530
- package/src/components/ui/text-field.tsx +0 -351
- package/src/components/ui/theme-toggle.tsx +0 -431
- package/src/components/ui/theme.tsx +0 -247
- package/src/components/ui/typography.tsx +0 -609
- package/src/hooks/use-theme.ts +0 -319
- package/src/index.ts +0 -84
- package/src/styles/globals.css +0 -154
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import * as React from "react";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
5
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
4
6
|
import { cva, type VariantProps } from "class-variance-authority";
|
|
5
|
-
import { PanelLeftIcon } from "lucide-react";
|
|
6
7
|
|
|
7
|
-
import { useIsMobile } from "@/hooks/use-mobile";
|
|
8
8
|
import { cn } from "@/lib/utils";
|
|
9
9
|
import { Button } from "@/components/ui/button";
|
|
10
10
|
import { Input } from "@/components/ui/input";
|
|
@@ -20,9 +20,10 @@ import { Skeleton } from "@/components/ui/skeleton";
|
|
|
20
20
|
import {
|
|
21
21
|
Tooltip,
|
|
22
22
|
TooltipContent,
|
|
23
|
-
TooltipProvider,
|
|
24
23
|
TooltipTrigger,
|
|
25
24
|
} from "@/components/ui/tooltip";
|
|
25
|
+
import { useIsMobile } from "@/hooks/use-mobile";
|
|
26
|
+
import { PanelLeftIcon } from "lucide-react";
|
|
26
27
|
|
|
27
28
|
const SIDEBAR_COOKIE_NAME = "sidebar_state";
|
|
28
29
|
const SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
@@ -31,366 +32,6 @@ const SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
|
31
32
|
const SIDEBAR_WIDTH_ICON = "3rem";
|
|
32
33
|
const SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
33
34
|
|
|
34
|
-
/**
|
|
35
|
-
* Context props for sidebar state management (Documentation only - NOT used in component implementation)
|
|
36
|
-
* These types are for documentation generation and should not replace inferred context types
|
|
37
|
-
*/
|
|
38
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
39
|
-
type SidebarContextDocsProps = {
|
|
40
|
-
/** Current visual state of the sidebar */
|
|
41
|
-
state: "expanded" | "collapsed";
|
|
42
|
-
/** Whether sidebar is open on desktop */
|
|
43
|
-
open: boolean;
|
|
44
|
-
/** Function to control desktop sidebar open state */
|
|
45
|
-
setOpen: (open: boolean) => void;
|
|
46
|
-
/** Whether sidebar is open on mobile (sheet overlay) */
|
|
47
|
-
openMobile: boolean;
|
|
48
|
-
/** Function to control mobile sidebar open state */
|
|
49
|
-
setOpenMobile: (open: boolean) => void;
|
|
50
|
-
/** Whether current viewport is considered mobile */
|
|
51
|
-
isMobile: boolean;
|
|
52
|
-
/** Function to toggle sidebar state (responsive) */
|
|
53
|
-
toggleSidebar: () => void;
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Props for SidebarProvider component (Documentation only - NOT used in component implementation)
|
|
58
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
59
|
-
*/
|
|
60
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
61
|
-
type SidebarProviderDocsProps = {
|
|
62
|
-
/** Initial open state when uncontrolled @default true */
|
|
63
|
-
defaultOpen?: boolean;
|
|
64
|
-
/** Controlled open state (makes component controlled) */
|
|
65
|
-
open?: boolean;
|
|
66
|
-
/** Callback fired when open state changes */
|
|
67
|
-
onOpenChange?: (open: boolean) => void;
|
|
68
|
-
/** Child components */
|
|
69
|
-
children?: React.ReactNode;
|
|
70
|
-
} & React.ComponentProps<"div">;
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Props for Sidebar component (Documentation only - NOT used in component implementation)
|
|
74
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
75
|
-
*/
|
|
76
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
77
|
-
type SidebarDocsProps = {
|
|
78
|
-
/**
|
|
79
|
-
* Which side of the screen the sidebar appears on @default "left"
|
|
80
|
-
*
|
|
81
|
-
* Controls the horizontal positioning and slide direction of the sidebar.
|
|
82
|
-
* Affects the direction of collapse animations and the positioning of
|
|
83
|
-
* the interactive rail component.
|
|
84
|
-
*/
|
|
85
|
-
side?: "left" | "right";
|
|
86
|
-
/** Visual appearance variant @default "sidebar" */
|
|
87
|
-
variant?: "sidebar" | "floating" | "inset";
|
|
88
|
-
/** Collapse behavior mode @default "offcanvas" */
|
|
89
|
-
collapsible?: "offcanvas" | "icon" | "none";
|
|
90
|
-
/** Additional CSS classes */
|
|
91
|
-
className?: string;
|
|
92
|
-
/** Sidebar content components */
|
|
93
|
-
children?: React.ReactNode;
|
|
94
|
-
} & React.ComponentProps<"div">;
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Props for SidebarTrigger component (Documentation only - NOT used in component implementation)
|
|
98
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
99
|
-
*/
|
|
100
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
101
|
-
type SidebarTriggerDocsProps = {
|
|
102
|
-
/** Additional CSS classes */
|
|
103
|
-
className?: string;
|
|
104
|
-
/** Additional click handler called before toggle */
|
|
105
|
-
onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
106
|
-
} & Omit<React.ComponentProps<typeof Button>, "onClick">;
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Props for SidebarRail component (Documentation only - NOT used in component implementation)
|
|
110
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
111
|
-
*/
|
|
112
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
113
|
-
type SidebarRailDocsProps = {
|
|
114
|
-
/** Additional CSS classes */
|
|
115
|
-
className?: string;
|
|
116
|
-
} & React.ComponentProps<"button">;
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Props for SidebarInset component (Documentation only - NOT used in component implementation)
|
|
120
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
121
|
-
*/
|
|
122
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
123
|
-
type SidebarInsetDocsProps = {
|
|
124
|
-
/** Additional CSS classes */
|
|
125
|
-
className?: string;
|
|
126
|
-
} & React.ComponentProps<"main">;
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Props for SidebarInput component (Documentation only - NOT used in component implementation)
|
|
130
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
131
|
-
*/
|
|
132
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
133
|
-
type SidebarInputDocsProps = {
|
|
134
|
-
/** Additional CSS classes */
|
|
135
|
-
className?: string;
|
|
136
|
-
} & React.ComponentProps<typeof Input>;
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Props for SidebarHeader component (Documentation only - NOT used in component implementation)
|
|
140
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
141
|
-
*/
|
|
142
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
143
|
-
type SidebarHeaderDocsProps = {
|
|
144
|
-
/** Additional CSS classes */
|
|
145
|
-
className?: string;
|
|
146
|
-
} & React.ComponentProps<"div">;
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Props for SidebarFooter component (Documentation only - NOT used in component implementation)
|
|
150
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
151
|
-
*/
|
|
152
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
153
|
-
type SidebarFooterDocsProps = {
|
|
154
|
-
/** Additional CSS classes */
|
|
155
|
-
className?: string;
|
|
156
|
-
} & React.ComponentProps<"div">;
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Props for SidebarSeparator component (Documentation only - NOT used in component implementation)
|
|
160
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
161
|
-
*/
|
|
162
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
163
|
-
type SidebarSeparatorDocsProps = {
|
|
164
|
-
/** Additional CSS classes */
|
|
165
|
-
className?: string;
|
|
166
|
-
} & React.ComponentProps<typeof Separator>;
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Props for SidebarContent component (Documentation only - NOT used in component implementation)
|
|
170
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
171
|
-
*/
|
|
172
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
173
|
-
type SidebarContentDocsProps = {
|
|
174
|
-
/** Additional CSS classes */
|
|
175
|
-
className?: string;
|
|
176
|
-
} & React.ComponentProps<"div">;
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Props for SidebarGroup component (Documentation only - NOT used in component implementation)
|
|
180
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
181
|
-
*/
|
|
182
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
183
|
-
type SidebarGroupDocsProps = {
|
|
184
|
-
/** Additional CSS classes */
|
|
185
|
-
className?: string;
|
|
186
|
-
} & React.ComponentProps<"div">;
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Props for SidebarGroupLabel component (Documentation only - NOT used in component implementation)
|
|
190
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
191
|
-
*/
|
|
192
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
193
|
-
type SidebarGroupLabelDocsProps = {
|
|
194
|
-
/** Additional CSS classes */
|
|
195
|
-
className?: string;
|
|
196
|
-
/**
|
|
197
|
-
* Render as child element using Radix UI Slot composition pattern @default false
|
|
198
|
-
*
|
|
199
|
-
* When true, the component will not render its default element,
|
|
200
|
-
* instead merging its props with its immediate child. This enables
|
|
201
|
-
* composition with custom elements (like Link components) while
|
|
202
|
-
* preserving the component's behavior and styling.
|
|
203
|
-
*/
|
|
204
|
-
asChild?: boolean;
|
|
205
|
-
} & React.ComponentProps<"div">;
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* Props for SidebarGroupAction component (Documentation only - NOT used in component implementation)
|
|
209
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
210
|
-
*/
|
|
211
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
212
|
-
type SidebarGroupActionDocsProps = {
|
|
213
|
-
/** Additional CSS classes */
|
|
214
|
-
className?: string;
|
|
215
|
-
/**
|
|
216
|
-
* Render as child element using Radix UI Slot composition pattern @default false
|
|
217
|
-
*
|
|
218
|
-
* When true, the component will not render its default element,
|
|
219
|
-
* instead merging its props with its immediate child. This enables
|
|
220
|
-
* composition with custom elements (like Link components) while
|
|
221
|
-
* preserving the component's behavior and styling.
|
|
222
|
-
*/
|
|
223
|
-
asChild?: boolean;
|
|
224
|
-
} & React.ComponentProps<"button">;
|
|
225
|
-
|
|
226
|
-
/**
|
|
227
|
-
* Props for SidebarGroupContent component (Documentation only - NOT used in component implementation)
|
|
228
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
229
|
-
*/
|
|
230
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
231
|
-
type SidebarGroupContentDocsProps = {
|
|
232
|
-
/** Additional CSS classes */
|
|
233
|
-
className?: string;
|
|
234
|
-
} & React.ComponentProps<"div">;
|
|
235
|
-
|
|
236
|
-
/**
|
|
237
|
-
* Props for SidebarMenu component (Documentation only - NOT used in component implementation)
|
|
238
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
239
|
-
*/
|
|
240
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
241
|
-
type SidebarMenuDocsProps = {
|
|
242
|
-
/** Additional CSS classes */
|
|
243
|
-
className?: string;
|
|
244
|
-
} & React.ComponentProps<"ul">;
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* Props for SidebarMenuItem component (Documentation only - NOT used in component implementation)
|
|
248
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
249
|
-
*/
|
|
250
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
251
|
-
type SidebarMenuItemDocsProps = {
|
|
252
|
-
/** Additional CSS classes */
|
|
253
|
-
className?: string;
|
|
254
|
-
} & React.ComponentProps<"li">;
|
|
255
|
-
|
|
256
|
-
/**
|
|
257
|
-
* Props for SidebarMenuButton component (Documentation only - NOT used in component implementation)
|
|
258
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
259
|
-
*/
|
|
260
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
261
|
-
type SidebarMenuButtonDocsProps = {
|
|
262
|
-
/**
|
|
263
|
-
* Render as child element using Radix UI Slot composition pattern @default false
|
|
264
|
-
*
|
|
265
|
-
* When true, the component will not render its default element,
|
|
266
|
-
* instead merging its props with its immediate child. This enables
|
|
267
|
-
* composition with custom elements (like Link components) while
|
|
268
|
-
* preserving the component's behavior and styling.
|
|
269
|
-
*/
|
|
270
|
-
asChild?: boolean;
|
|
271
|
-
/** Whether this menu item is currently active @default false */
|
|
272
|
-
isActive?: boolean;
|
|
273
|
-
/** Visual appearance variant @default "default" */
|
|
274
|
-
variant?: "default" | "outline";
|
|
275
|
-
/** Button size variant @default "default" */
|
|
276
|
-
size?: "default" | "sm" | "lg";
|
|
277
|
-
/**
|
|
278
|
-
* Tooltip content shown when sidebar is collapsed to icon mode
|
|
279
|
-
*
|
|
280
|
-
* Can be either a string for simple text or a full TooltipContent props object
|
|
281
|
-
* for advanced configuration. Tooltip is automatically shown/hidden based on
|
|
282
|
-
* sidebar state and is never displayed on mobile devices.
|
|
283
|
-
*
|
|
284
|
-
* @example Simple string tooltip
|
|
285
|
-
* ```tsx
|
|
286
|
-
* <SidebarMenuButton tooltip=\"Dashboard\">
|
|
287
|
-
* <Home />Dashboard
|
|
288
|
-
* </SidebarMenuButton>
|
|
289
|
-
* ```
|
|
290
|
-
*
|
|
291
|
-
* @example Advanced tooltip with props
|
|
292
|
-
* ```tsx
|
|
293
|
-
* <SidebarMenuButton tooltip={{
|
|
294
|
-
* children: \"Go to Dashboard\",
|
|
295
|
-
* side: \"right\",
|
|
296
|
-
* sideOffset: 10
|
|
297
|
-
* }}>
|
|
298
|
-
* <Home />Dashboard
|
|
299
|
-
* </SidebarMenuButton>
|
|
300
|
-
* ```
|
|
301
|
-
*/
|
|
302
|
-
tooltip?: string | React.ComponentProps<typeof TooltipContent>;
|
|
303
|
-
/** Additional CSS classes */
|
|
304
|
-
className?: string;
|
|
305
|
-
} & React.ComponentProps<"button">;
|
|
306
|
-
|
|
307
|
-
/**
|
|
308
|
-
* Props for SidebarMenuAction component (Documentation only - NOT used in component implementation)
|
|
309
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
310
|
-
*/
|
|
311
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
312
|
-
type SidebarMenuActionDocsProps = {
|
|
313
|
-
/** Additional CSS classes */
|
|
314
|
-
className?: string;
|
|
315
|
-
/**
|
|
316
|
-
* Render as child element using Radix UI Slot composition pattern @default false
|
|
317
|
-
*
|
|
318
|
-
* When true, the component will not render its default element,
|
|
319
|
-
* instead merging its props with its immediate child. This enables
|
|
320
|
-
* composition with custom elements (like Link components) while
|
|
321
|
-
* preserving the component's behavior and styling.
|
|
322
|
-
*/
|
|
323
|
-
asChild?: boolean;
|
|
324
|
-
/** Only show button on menu item hover @default false */
|
|
325
|
-
showOnHover?: boolean;
|
|
326
|
-
} & React.ComponentProps<"button">;
|
|
327
|
-
|
|
328
|
-
/**
|
|
329
|
-
* Props for SidebarMenuBadge component (Documentation only - NOT used in component implementation)
|
|
330
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
331
|
-
*/
|
|
332
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
333
|
-
type SidebarMenuBadgeDocsProps = {
|
|
334
|
-
/** Additional CSS classes */
|
|
335
|
-
className?: string;
|
|
336
|
-
} & React.ComponentProps<"div">;
|
|
337
|
-
|
|
338
|
-
/**
|
|
339
|
-
* Props for SidebarMenuSkeleton component (Documentation only - NOT used in component implementation)
|
|
340
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
341
|
-
*/
|
|
342
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
343
|
-
type SidebarMenuSkeletonDocsProps = {
|
|
344
|
-
/** Additional CSS classes */
|
|
345
|
-
className?: string;
|
|
346
|
-
/** Whether to show icon placeholder @default false */
|
|
347
|
-
showIcon?: boolean;
|
|
348
|
-
} & React.ComponentProps<"div">;
|
|
349
|
-
|
|
350
|
-
/**
|
|
351
|
-
* Props for SidebarMenuSub component (Documentation only - NOT used in component implementation)
|
|
352
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
353
|
-
*/
|
|
354
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
355
|
-
type SidebarMenuSubDocsProps = {
|
|
356
|
-
/** Additional CSS classes */
|
|
357
|
-
className?: string;
|
|
358
|
-
} & React.ComponentProps<"ul">;
|
|
359
|
-
|
|
360
|
-
/**
|
|
361
|
-
* Props for SidebarMenuSubItem component (Documentation only - NOT used in component implementation)
|
|
362
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
363
|
-
*/
|
|
364
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
365
|
-
type SidebarMenuSubItemDocsProps = {
|
|
366
|
-
/** Additional CSS classes */
|
|
367
|
-
className?: string;
|
|
368
|
-
} & React.ComponentProps<"li">;
|
|
369
|
-
|
|
370
|
-
/**
|
|
371
|
-
* Props for SidebarMenuSubButton component (Documentation only - NOT used in component implementation)
|
|
372
|
-
* These types are for documentation generation and should not replace React.ComponentProps inferred types
|
|
373
|
-
*/
|
|
374
|
-
// eslint-disable-next-line unused-imports/no-unused-vars
|
|
375
|
-
type SidebarMenuSubButtonDocsProps = {
|
|
376
|
-
/**
|
|
377
|
-
* Render as child element using Radix UI Slot composition pattern @default false
|
|
378
|
-
*
|
|
379
|
-
* When true, the component will not render its default element,
|
|
380
|
-
* instead merging its props with its immediate child. This enables
|
|
381
|
-
* composition with custom elements (like Link components) while
|
|
382
|
-
* preserving the component's behavior and styling.
|
|
383
|
-
*/
|
|
384
|
-
asChild?: boolean;
|
|
385
|
-
/** Button size variant @default "md" */
|
|
386
|
-
size?: "sm" | "md";
|
|
387
|
-
/** Whether this submenu item is currently active @default false */
|
|
388
|
-
isActive?: boolean;
|
|
389
|
-
/** Additional CSS classes */
|
|
390
|
-
className?: string;
|
|
391
|
-
} & React.ComponentProps<"a">;
|
|
392
|
-
|
|
393
|
-
// Internal context type (inferred from implementation)
|
|
394
35
|
type SidebarContextProps = {
|
|
395
36
|
state: "expanded" | "collapsed";
|
|
396
37
|
open: boolean;
|
|
@@ -404,48 +45,8 @@ type SidebarContextProps = {
|
|
|
404
45
|
const SidebarContext = React.createContext<SidebarContextProps | null>(null);
|
|
405
46
|
|
|
406
47
|
/**
|
|
407
|
-
* Hook to access sidebar state and
|
|
408
|
-
*
|
|
409
|
-
* Provides access to the sidebar's state management including expanded/collapsed states,
|
|
410
|
-
* mobile-specific behavior, and toggle functions. This hook must be used within a
|
|
411
|
-
* SidebarProvider component tree to function properly.
|
|
412
|
-
*
|
|
413
|
-
* @returns {SidebarContextProps} Object containing sidebar state and control functions:
|
|
414
|
-
* - `state`: "expanded" | "collapsed" - Current sidebar state
|
|
415
|
-
* - `open`: boolean - Whether sidebar is open (desktop)
|
|
416
|
-
* - `setOpen`: (open: boolean) => void - Function to control sidebar open state
|
|
417
|
-
* - `openMobile`: boolean - Whether sidebar is open on mobile
|
|
418
|
-
* - `setOpenMobile`: (open: boolean) => void - Function to control mobile sidebar state
|
|
419
|
-
* - `isMobile`: boolean - Whether current viewport is considered mobile
|
|
420
|
-
* - `toggleSidebar`: () => void - Function to toggle sidebar state
|
|
421
|
-
*
|
|
422
|
-
* @throws {Error} When used outside of SidebarProvider context
|
|
423
|
-
*
|
|
424
|
-
* @example
|
|
425
|
-
* ```tsx
|
|
426
|
-
* // Basic usage for toggle button
|
|
427
|
-
* function ToggleButton() {
|
|
428
|
-
* const { state, toggleSidebar } = useSidebar()
|
|
429
|
-
* return (
|
|
430
|
-
* <button onClick={toggleSidebar}>
|
|
431
|
-
* {state === "expanded" ? "Collapse" : "Expand"}
|
|
432
|
-
* </button>
|
|
433
|
-
* )
|
|
434
|
-
* }
|
|
435
|
-
* ```
|
|
436
|
-
*
|
|
437
|
-
* @example
|
|
438
|
-
* ```tsx
|
|
439
|
-
* // Conditional rendering based on state
|
|
440
|
-
* function ConditionalContent() {
|
|
441
|
-
* const { state, isMobile } = useSidebar()
|
|
442
|
-
* if (isMobile) return <MobileOnlyContent />
|
|
443
|
-
* return state === "expanded" ? <FullContent /> : <CompactContent />
|
|
444
|
-
* }
|
|
445
|
-
* ```
|
|
446
|
-
*
|
|
447
|
-
* @see {@link SidebarProvider} - Required context provider
|
|
448
|
-
* @since 1.0.0
|
|
48
|
+
* Hook to access sidebar context including state, mobile state, and toggle functions.
|
|
49
|
+
* Must be used within SidebarProvider.
|
|
449
50
|
*/
|
|
450
51
|
function useSidebar() {
|
|
451
52
|
const context = React.useContext(SidebarContext);
|
|
@@ -456,76 +57,18 @@ function useSidebar() {
|
|
|
456
57
|
return context;
|
|
457
58
|
}
|
|
458
59
|
|
|
60
|
+
type SidebarProviderProps = React.ComponentProps<"div"> & {
|
|
61
|
+
/** Initial open state on desktop. @default true */
|
|
62
|
+
defaultOpen?: boolean;
|
|
63
|
+
/** Controlled open state for desktop. */
|
|
64
|
+
open?: boolean;
|
|
65
|
+
/** Callback when open state changes. Persists state in cookie. */
|
|
66
|
+
onOpenChange?: (open: boolean) => void;
|
|
67
|
+
};
|
|
68
|
+
|
|
459
69
|
/**
|
|
460
|
-
*
|
|
461
|
-
*
|
|
462
|
-
* The SidebarProvider is the foundational component that manages all sidebar behavior
|
|
463
|
-
* including state persistence, responsive design, keyboard shortcuts, and mobile handling.
|
|
464
|
-
* It provides context to all sidebar-related components and should wrap your entire
|
|
465
|
-
* application or the section containing the sidebar.
|
|
466
|
-
*
|
|
467
|
-
* @component
|
|
468
|
-
*
|
|
469
|
-
* @param {boolean} [defaultOpen=true] - Initial open state when uncontrolled
|
|
470
|
-
* @param {boolean} [open] - Controlled open state (makes component controlled)
|
|
471
|
-
* @param {(open: boolean) => void} [onOpenChange] - Callback for open state changes
|
|
472
|
-
* @param {string} [className] - Additional CSS classes for wrapper
|
|
473
|
-
* @param {React.CSSProperties} [style] - Inline styles including CSS variables
|
|
474
|
-
* @param {React.ReactNode} children - Child components
|
|
475
|
-
*
|
|
476
|
-
* @example
|
|
477
|
-
* ```tsx
|
|
478
|
-
* // Basic uncontrolled usage
|
|
479
|
-
* <SidebarProvider>
|
|
480
|
-
* <Sidebar />
|
|
481
|
-
* <SidebarInset>
|
|
482
|
-
* <main>Your content</main>
|
|
483
|
-
* </SidebarInset>
|
|
484
|
-
* </SidebarProvider>
|
|
485
|
-
* ```
|
|
486
|
-
*
|
|
487
|
-
* @example
|
|
488
|
-
* ```tsx
|
|
489
|
-
* // Controlled usage with custom state
|
|
490
|
-
* function App() {
|
|
491
|
-
* const [sidebarOpen, setSidebarOpen] = useState(false)
|
|
492
|
-
* return (
|
|
493
|
-
* <SidebarProvider open={sidebarOpen} onOpenChange={setSidebarOpen}>
|
|
494
|
-
* <Sidebar />
|
|
495
|
-
* <SidebarInset>Content</SidebarInset>
|
|
496
|
-
* </SidebarProvider>
|
|
497
|
-
* )
|
|
498
|
-
* }
|
|
499
|
-
* ```
|
|
500
|
-
*
|
|
501
|
-
* @example
|
|
502
|
-
* ```tsx
|
|
503
|
-
* // Custom width with CSS variables
|
|
504
|
-
* <SidebarProvider
|
|
505
|
-
* style={{
|
|
506
|
-
* "--sidebar-width": "20rem",
|
|
507
|
-
* "--sidebar-width-mobile": "18rem"
|
|
508
|
-
* }}
|
|
509
|
-
* >
|
|
510
|
-
* <Sidebar />
|
|
511
|
-
* </SidebarProvider>
|
|
512
|
-
* ```
|
|
513
|
-
*
|
|
514
|
-
* @features
|
|
515
|
-
* - State persistence via cookies
|
|
516
|
-
* - Keyboard shortcut (Cmd/Ctrl+B) support
|
|
517
|
-
* - Responsive mobile behavior
|
|
518
|
-
* - CSS variable-based theming
|
|
519
|
-
* - Tooltip provider integration
|
|
520
|
-
*
|
|
521
|
-
* @accessibility
|
|
522
|
-
* - Keyboard shortcuts for power users
|
|
523
|
-
* - Mobile-optimized touch interactions
|
|
524
|
-
* - Focus management for modal-like mobile behavior
|
|
525
|
-
*
|
|
526
|
-
* @see {@link useSidebar} - Hook to access provided context
|
|
527
|
-
* @see {@link Sidebar} - Main sidebar component
|
|
528
|
-
* @since 1.0.0
|
|
70
|
+
* Root provider for sidebar with state management, keyboard shortcuts (⌘B), and mobile detection.
|
|
71
|
+
* Manages collapsed/expanded state and persists preference in cookie.
|
|
529
72
|
*/
|
|
530
73
|
function SidebarProvider({
|
|
531
74
|
defaultOpen = true,
|
|
@@ -535,12 +78,7 @@ function SidebarProvider({
|
|
|
535
78
|
style,
|
|
536
79
|
children,
|
|
537
80
|
...props
|
|
538
|
-
}: {
|
|
539
|
-
defaultOpen?: boolean;
|
|
540
|
-
open?: boolean;
|
|
541
|
-
onOpenChange?: (open: boolean) => void;
|
|
542
|
-
children?: React.ReactNode;
|
|
543
|
-
} & React.ComponentProps<"div">) {
|
|
81
|
+
}: SidebarProviderProps) {
|
|
544
82
|
const isMobile = useIsMobile();
|
|
545
83
|
const [openMobile, setOpenMobile] = React.useState(false);
|
|
546
84
|
|
|
@@ -548,7 +86,7 @@ function SidebarProvider({
|
|
|
548
86
|
// We use openProp and setOpenProp for control from outside the component.
|
|
549
87
|
const [_open, _setOpen] = React.useState(defaultOpen);
|
|
550
88
|
const open = openProp ?? _open;
|
|
551
|
-
const setOpen = useCallback(
|
|
89
|
+
const setOpen = React.useCallback(
|
|
552
90
|
(value: boolean | ((value: boolean) => boolean)) => {
|
|
553
91
|
const openState = typeof value === "function" ? value(open) : value;
|
|
554
92
|
if (setOpenProp) {
|
|
@@ -560,13 +98,13 @@ function SidebarProvider({
|
|
|
560
98
|
// This sets the cookie to keep the sidebar state.
|
|
561
99
|
document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
|
|
562
100
|
},
|
|
563
|
-
[setOpenProp,
|
|
101
|
+
[setOpenProp, open],
|
|
564
102
|
);
|
|
565
103
|
|
|
566
104
|
// Helper to toggle the sidebar.
|
|
567
|
-
const toggleSidebar = useCallback(() => {
|
|
105
|
+
const toggleSidebar = React.useCallback(() => {
|
|
568
106
|
return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);
|
|
569
|
-
}, [isMobile,
|
|
107
|
+
}, [isMobile, setOpen, setOpenMobile]);
|
|
570
108
|
|
|
571
109
|
// Adds a keyboard shortcut to toggle the sidebar.
|
|
572
110
|
React.useEffect(() => {
|
|
@@ -588,165 +126,54 @@ function SidebarProvider({
|
|
|
588
126
|
// This makes it easier to style the sidebar with Tailwind classes.
|
|
589
127
|
const state = open ? "expanded" : "collapsed";
|
|
590
128
|
|
|
591
|
-
const contextValue
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
129
|
+
const contextValue = React.useMemo<SidebarContextProps>(
|
|
130
|
+
() => ({
|
|
131
|
+
state,
|
|
132
|
+
open,
|
|
133
|
+
setOpen,
|
|
134
|
+
isMobile,
|
|
135
|
+
openMobile,
|
|
136
|
+
setOpenMobile,
|
|
137
|
+
toggleSidebar,
|
|
138
|
+
}),
|
|
139
|
+
[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],
|
|
140
|
+
);
|
|
600
141
|
|
|
601
142
|
return (
|
|
602
143
|
<SidebarContext.Provider value={contextValue}>
|
|
603
|
-
<
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
</div>
|
|
621
|
-
</TooltipProvider>
|
|
144
|
+
<div
|
|
145
|
+
data-slot="sidebar-wrapper"
|
|
146
|
+
style={
|
|
147
|
+
{
|
|
148
|
+
"--sidebar-width": SIDEBAR_WIDTH,
|
|
149
|
+
"--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
|
|
150
|
+
...style,
|
|
151
|
+
} as React.CSSProperties
|
|
152
|
+
}
|
|
153
|
+
className={cn(
|
|
154
|
+
"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",
|
|
155
|
+
className,
|
|
156
|
+
)}
|
|
157
|
+
{...props}
|
|
158
|
+
>
|
|
159
|
+
{children}
|
|
160
|
+
</div>
|
|
622
161
|
</SidebarContext.Provider>
|
|
623
162
|
);
|
|
624
163
|
}
|
|
625
164
|
|
|
165
|
+
type SidebarProps = React.ComponentProps<"div"> & {
|
|
166
|
+
/** Which side to display sidebar. @default "left" */
|
|
167
|
+
side?: "left" | "right";
|
|
168
|
+
/** Visual variant. @default "sidebar" */
|
|
169
|
+
variant?: "sidebar" | "floating" | "inset";
|
|
170
|
+
/** Collapse behavior. @default "offcanvas" */
|
|
171
|
+
collapsible?: "offcanvas" | "icon" | "none";
|
|
172
|
+
};
|
|
173
|
+
|
|
626
174
|
/**
|
|
627
|
-
*
|
|
628
|
-
*
|
|
629
|
-
* The Sidebar component is the main container for navigation content, supporting multiple
|
|
630
|
-
* visual variants, collapsible behaviors, and responsive design patterns. It automatically
|
|
631
|
-
* adapts between desktop layouts and mobile sheet overlays based on viewport size.
|
|
632
|
-
*
|
|
633
|
-
* @component
|
|
634
|
-
*
|
|
635
|
-
* @param {"left" | "right"} [side="left"] - Which side of the screen the sidebar appears on
|
|
636
|
-
* @param {"sidebar" | "floating" | "inset"} [variant="sidebar"] - Visual variant:
|
|
637
|
-
* - `sidebar`: Standard full-height sidebar
|
|
638
|
-
* - `floating`: Sidebar with padding, rounded corners, and shadow
|
|
639
|
-
* - `inset`: Sidebar with margin that affects main content layout
|
|
640
|
-
* @param {"offcanvas" | "icon" | "none"} [collapsible="offcanvas"] - Collapse behavior:
|
|
641
|
-
* - `offcanvas`: Slides completely off-screen when collapsed
|
|
642
|
-
* - `icon`: Collapses to icon-only width, hiding text labels
|
|
643
|
-
* - `none`: Cannot be collapsed, always visible
|
|
644
|
-
* @param {string} [className] - Additional CSS classes
|
|
645
|
-
* @param {React.ReactNode} children - Sidebar content (Header, Content, Footer)
|
|
646
|
-
*
|
|
647
|
-
* @example
|
|
648
|
-
* ```tsx
|
|
649
|
-
* // Standard navigation sidebar
|
|
650
|
-
* <SidebarProvider>
|
|
651
|
-
* <Sidebar>
|
|
652
|
-
* <SidebarHeader>
|
|
653
|
-
* <h2>My Application</h2>
|
|
654
|
-
* </SidebarHeader>
|
|
655
|
-
* <SidebarContent>
|
|
656
|
-
* <SidebarGroup>
|
|
657
|
-
* <SidebarGroupLabel>Main</SidebarGroupLabel>
|
|
658
|
-
* <SidebarGroupContent>
|
|
659
|
-
* <SidebarMenu>
|
|
660
|
-
* <SidebarMenuItem>
|
|
661
|
-
* <SidebarMenuButton asChild>
|
|
662
|
-
* <Link href="/dashboard">
|
|
663
|
-
* <Home />
|
|
664
|
-
* <span>Dashboard</span>
|
|
665
|
-
* </Link>
|
|
666
|
-
* </SidebarMenuButton>
|
|
667
|
-
* </SidebarMenuItem>
|
|
668
|
-
* </SidebarMenu>
|
|
669
|
-
* </SidebarGroupContent>
|
|
670
|
-
* </SidebarGroup>
|
|
671
|
-
* </SidebarContent>
|
|
672
|
-
* <SidebarFooter>
|
|
673
|
-
* <SidebarMenu>
|
|
674
|
-
* <SidebarMenuItem>
|
|
675
|
-
* <SidebarMenuButton>
|
|
676
|
-
* <Settings />
|
|
677
|
-
* <span>Settings</span>
|
|
678
|
-
* </SidebarMenuButton>
|
|
679
|
-
* </SidebarMenuItem>
|
|
680
|
-
* </SidebarMenu>
|
|
681
|
-
* </SidebarFooter>
|
|
682
|
-
* </Sidebar>
|
|
683
|
-
* <SidebarInset>
|
|
684
|
-
* <main>Main content area</main>
|
|
685
|
-
* </SidebarInset>
|
|
686
|
-
* </SidebarProvider>
|
|
687
|
-
* ```
|
|
688
|
-
*
|
|
689
|
-
* @example
|
|
690
|
-
* ```tsx
|
|
691
|
-
* // Icon-collapsible sidebar with tooltips
|
|
692
|
-
* <SidebarProvider>
|
|
693
|
-
* <Sidebar collapsible="icon">
|
|
694
|
-
* <SidebarContent>
|
|
695
|
-
* <SidebarGroup>
|
|
696
|
-
* <SidebarGroupLabel>Navigation</SidebarGroupLabel>
|
|
697
|
-
* <SidebarGroupContent>
|
|
698
|
-
* <SidebarMenu>
|
|
699
|
-
* <SidebarMenuItem>
|
|
700
|
-
* <SidebarMenuButton tooltip="Go to Dashboard">
|
|
701
|
-
* <Home />
|
|
702
|
-
* <span>Dashboard</span>
|
|
703
|
-
* </SidebarMenuButton>
|
|
704
|
-
* </SidebarMenuItem>
|
|
705
|
-
* </SidebarMenu>
|
|
706
|
-
* </SidebarGroupContent>
|
|
707
|
-
* </SidebarGroup>
|
|
708
|
-
* </SidebarContent>
|
|
709
|
-
* </Sidebar>
|
|
710
|
-
* </SidebarProvider>
|
|
711
|
-
* ```
|
|
712
|
-
*
|
|
713
|
-
* @example
|
|
714
|
-
* ```tsx
|
|
715
|
-
* // Floating variant with custom styling
|
|
716
|
-
* <SidebarProvider>
|
|
717
|
-
* <Sidebar variant="floating">
|
|
718
|
-
* <SidebarHeader>
|
|
719
|
-
* <SidebarTrigger />
|
|
720
|
-
* <h2>Floating Sidebar</h2>
|
|
721
|
-
* </SidebarHeader>
|
|
722
|
-
* <SidebarContent>
|
|
723
|
-
* // Navigation content
|
|
724
|
-
* </SidebarContent>
|
|
725
|
-
* </Sidebar>
|
|
726
|
-
* </SidebarProvider>
|
|
727
|
-
* ```
|
|
728
|
-
*
|
|
729
|
-
* @accessibility
|
|
730
|
-
* - Keyboard shortcut: Cmd/Ctrl+B to toggle visibility
|
|
731
|
-
* - Full keyboard navigation support within sidebar
|
|
732
|
-
* - ARIA attributes indicate current state (expanded/collapsed)
|
|
733
|
-
* - Screen reader announcements for state changes
|
|
734
|
-
* - Mobile: Sheet overlay with proper focus management
|
|
735
|
-
* - Desktop: Seamless keyboard navigation between sidebar and main content
|
|
736
|
-
*
|
|
737
|
-
* @responsive
|
|
738
|
-
* - **Desktop**: Fixed-position sidebar with smooth width transitions
|
|
739
|
-
* - **Mobile**: Sheet overlay that slides in from the side
|
|
740
|
-
* - **Tablet**: Responsive breakpoints adapt behavior automatically
|
|
741
|
-
*
|
|
742
|
-
* @see {@link SidebarProvider} - Required context provider
|
|
743
|
-
* @see {@link SidebarHeader} - Header section component
|
|
744
|
-
* @see {@link SidebarContent} - Scrollable content area
|
|
745
|
-
* @see {@link SidebarFooter} - Footer section component
|
|
746
|
-
* @see {@link SidebarTrigger} - Toggle button component
|
|
747
|
-
* @see {@link SidebarRail} - Interactive resize handle
|
|
748
|
-
* @see {@link https://ui.shadcn.com/docs/components/sidebar} - shadcn/ui Sidebar documentation
|
|
749
|
-
* @since 1.0.0
|
|
175
|
+
* Sidebar container with responsive behavior. Renders as Sheet on mobile.
|
|
176
|
+
* Use with SidebarProvider for state management.
|
|
750
177
|
*/
|
|
751
178
|
function Sidebar({
|
|
752
179
|
side = "left",
|
|
@@ -755,13 +182,7 @@ function Sidebar({
|
|
|
755
182
|
className,
|
|
756
183
|
children,
|
|
757
184
|
...props
|
|
758
|
-
}: {
|
|
759
|
-
side?: "left" | "right";
|
|
760
|
-
variant?: "sidebar" | "floating" | "inset";
|
|
761
|
-
collapsible?: "offcanvas" | "icon" | "none";
|
|
762
|
-
className?: string;
|
|
763
|
-
children?: React.ReactNode;
|
|
764
|
-
} & React.ComponentProps<"div">) {
|
|
185
|
+
}: SidebarProps) {
|
|
765
186
|
const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
|
|
766
187
|
|
|
767
188
|
if (collapsible === "none") {
|
|
@@ -817,7 +238,7 @@ function Sidebar({
|
|
|
817
238
|
<div
|
|
818
239
|
data-slot="sidebar-gap"
|
|
819
240
|
className={cn(
|
|
820
|
-
"relative w-(--sidebar-width) bg-transparent
|
|
241
|
+
"transition-[width] duration-200 ease-linear relative w-(--sidebar-width) bg-transparent",
|
|
821
242
|
"group-data-[collapsible=offcanvas]:w-0",
|
|
822
243
|
"group-data-[side=right]:rotate-180",
|
|
823
244
|
variant === "floating" || variant === "inset"
|
|
@@ -843,7 +264,7 @@ function Sidebar({
|
|
|
843
264
|
<div
|
|
844
265
|
data-sidebar="sidebar"
|
|
845
266
|
data-slot="sidebar-inner"
|
|
846
|
-
className="bg-sidebar group-data-[variant=floating]:
|
|
267
|
+
className="bg-sidebar group-data-[variant=floating]:ring-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 flex size-full flex-col"
|
|
847
268
|
>
|
|
848
269
|
{children}
|
|
849
270
|
</div>
|
|
@@ -852,57 +273,12 @@ function Sidebar({
|
|
|
852
273
|
);
|
|
853
274
|
}
|
|
854
275
|
|
|
276
|
+
type SidebarTriggerProps = React.ComponentProps<typeof Button>;
|
|
277
|
+
|
|
855
278
|
/**
|
|
856
|
-
*
|
|
857
|
-
*
|
|
858
|
-
* A pre-styled button that toggles the sidebar between expanded and collapsed states
|
|
859
|
-
* on desktop, or opens/closes the mobile sheet overlay on smaller screens. Features
|
|
860
|
-
* a panel icon and proper accessibility attributes.
|
|
861
|
-
*
|
|
862
|
-
* @component
|
|
863
|
-
*
|
|
864
|
-
* @param {string} [className] - Additional CSS classes
|
|
865
|
-
* @param {(event: React.MouseEvent) => void} [onClick] - Additional click handler
|
|
866
|
-
* @param {...React.ComponentProps<typeof Button>} props - All Button component props
|
|
867
|
-
*
|
|
868
|
-
* @example
|
|
869
|
-
* ```tsx
|
|
870
|
-
* // Basic usage in header
|
|
871
|
-
* <header className="flex items-center gap-2 p-4">
|
|
872
|
-
* <SidebarTrigger />
|
|
873
|
-
* <h1>My Application</h1>
|
|
874
|
-
* </header>
|
|
875
|
-
* ```
|
|
876
|
-
*
|
|
877
|
-
* @example
|
|
878
|
-
* ```tsx
|
|
879
|
-
* // With custom click handler
|
|
880
|
-
* <SidebarTrigger
|
|
881
|
-
* onClick={(e) => {
|
|
882
|
-
* console.log('Sidebar toggled')
|
|
883
|
-
* // Additional logic here
|
|
884
|
-
* }}
|
|
885
|
-
* />
|
|
886
|
-
* ```
|
|
887
|
-
*
|
|
888
|
-
* @accessibility
|
|
889
|
-
* - Screen reader label: "Toggle Sidebar"
|
|
890
|
-
* - Keyboard accessible (Enter and Space keys)
|
|
891
|
-
* - Focus visible indicator for keyboard navigation
|
|
892
|
-
* - ARIA attributes for assistive technology
|
|
893
|
-
*
|
|
894
|
-
* @see {@link useSidebar} - Hook for custom toggle implementations
|
|
895
|
-
* @see {@link SidebarProvider} - Required context provider
|
|
896
|
-
* @since 1.0.0
|
|
279
|
+
* Button to toggle sidebar open/closed. Shows hamburger icon.
|
|
897
280
|
*/
|
|
898
|
-
function SidebarTrigger({
|
|
899
|
-
className,
|
|
900
|
-
onClick,
|
|
901
|
-
...props
|
|
902
|
-
}: {
|
|
903
|
-
className?: string;
|
|
904
|
-
onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
|
|
905
|
-
} & Omit<React.ComponentProps<typeof Button>, "onClick">) {
|
|
281
|
+
function SidebarTrigger({ className, onClick, ...props }: SidebarTriggerProps) {
|
|
906
282
|
const { toggleSidebar } = useSidebar();
|
|
907
283
|
|
|
908
284
|
return (
|
|
@@ -910,8 +286,8 @@ function SidebarTrigger({
|
|
|
910
286
|
data-sidebar="trigger"
|
|
911
287
|
data-slot="sidebar-trigger"
|
|
912
288
|
variant="ghost"
|
|
913
|
-
size="icon"
|
|
914
|
-
className={cn(
|
|
289
|
+
size="icon-sm"
|
|
290
|
+
className={cn(className)}
|
|
915
291
|
onClick={(event) => {
|
|
916
292
|
onClick?.(event);
|
|
917
293
|
toggleSidebar();
|
|
@@ -924,44 +300,12 @@ function SidebarTrigger({
|
|
|
924
300
|
);
|
|
925
301
|
}
|
|
926
302
|
|
|
303
|
+
type SidebarRailProps = React.ComponentProps<"button">;
|
|
304
|
+
|
|
927
305
|
/**
|
|
928
|
-
*
|
|
929
|
-
*
|
|
930
|
-
* Provides a subtle interactive area along the sidebar edge that users can click
|
|
931
|
-
* to toggle the sidebar state. The rail is positioned at the sidebar boundary and
|
|
932
|
-
* includes hover states for discoverability. Only visible on desktop viewports.
|
|
933
|
-
*
|
|
934
|
-
* @component
|
|
935
|
-
*
|
|
936
|
-
* @param {string} [className] - Additional CSS classes
|
|
937
|
-
* @param {...React.ComponentProps<"button">} props - All button element props
|
|
938
|
-
*
|
|
939
|
-
* @example
|
|
940
|
-
* ```tsx
|
|
941
|
-
* // Basic usage (typically placed at end of Sidebar)
|
|
942
|
-
* <Sidebar>
|
|
943
|
-
* <SidebarHeader>Header content</SidebarHeader>
|
|
944
|
-
* <SidebarContent>Navigation content</SidebarContent>
|
|
945
|
-
* <SidebarFooter>Footer content</SidebarFooter>
|
|
946
|
-
* <SidebarRail />
|
|
947
|
-
* </Sidebar>
|
|
948
|
-
* ```
|
|
949
|
-
*
|
|
950
|
-
* @accessibility
|
|
951
|
-
* - ARIA label: "Toggle Sidebar"
|
|
952
|
-
* - Keyboard accessible but with tabIndex={-1} to avoid tab trap
|
|
953
|
-
* - Hover and focus states for discoverability
|
|
954
|
-
* - Cursor changes based on sidebar state and side
|
|
955
|
-
*
|
|
956
|
-
* @see {@link SidebarTrigger} - Alternative toggle button
|
|
957
|
-
* @since 1.0.0
|
|
306
|
+
* Invisible rail element on sidebar edge for drag-to-resize interaction.
|
|
958
307
|
*/
|
|
959
|
-
function SidebarRail({
|
|
960
|
-
className,
|
|
961
|
-
...props
|
|
962
|
-
}: {
|
|
963
|
-
className?: string;
|
|
964
|
-
} & React.ComponentProps<"button">) {
|
|
308
|
+
function SidebarRail({ className, ...props }: SidebarRailProps) {
|
|
965
309
|
const { toggleSidebar } = useSidebar();
|
|
966
310
|
|
|
967
311
|
return (
|
|
@@ -986,69 +330,17 @@ function SidebarRail({
|
|
|
986
330
|
);
|
|
987
331
|
}
|
|
988
332
|
|
|
333
|
+
type SidebarInsetProps = React.ComponentProps<"main">;
|
|
334
|
+
|
|
989
335
|
/**
|
|
990
|
-
* Main content
|
|
991
|
-
*
|
|
992
|
-
* The SidebarInset component serves as the primary content area that automatically
|
|
993
|
-
* adjusts its layout and spacing based on the sidebar's state and variant. It provides
|
|
994
|
-
* proper margins, responsive behavior, and styling coordination with the sidebar.
|
|
995
|
-
*
|
|
996
|
-
* @component
|
|
997
|
-
*
|
|
998
|
-
* @param {string} [className] - Additional CSS classes
|
|
999
|
-
* @param {...React.ComponentProps<"main">} props - All main element props
|
|
1000
|
-
*
|
|
1001
|
-
* @example
|
|
1002
|
-
* ```tsx
|
|
1003
|
-
* // Standard layout with header and content
|
|
1004
|
-
* <SidebarProvider>
|
|
1005
|
-
* <Sidebar>Sidebar content</Sidebar>
|
|
1006
|
-
* <SidebarInset>
|
|
1007
|
-
* <header className="flex h-16 items-center gap-2 px-4">
|
|
1008
|
-
* <SidebarTrigger />
|
|
1009
|
-
* <h1>Page Title</h1>
|
|
1010
|
-
* </header>
|
|
1011
|
-
* <main className="flex-1 p-4">
|
|
1012
|
-
* <p>Your main content goes here</p>
|
|
1013
|
-
* </main>
|
|
1014
|
-
* </SidebarInset>
|
|
1015
|
-
* </SidebarProvider>
|
|
1016
|
-
* ```
|
|
1017
|
-
*
|
|
1018
|
-
* @example
|
|
1019
|
-
* ```tsx
|
|
1020
|
-
* // With inset variant coordination
|
|
1021
|
-
* <SidebarProvider>
|
|
1022
|
-
* <Sidebar variant="inset">Sidebar</Sidebar>
|
|
1023
|
-
* <SidebarInset>
|
|
1024
|
-
* // Content automatically gets proper spacing
|
|
1025
|
-
* <div>Content with proper inset margins</div>
|
|
1026
|
-
* </SidebarInset>
|
|
1027
|
-
* </SidebarProvider>
|
|
1028
|
-
* ```
|
|
1029
|
-
*
|
|
1030
|
-
* @features
|
|
1031
|
-
* - Automatic layout adjustment based on sidebar state
|
|
1032
|
-
* - Responsive margin and padding coordination
|
|
1033
|
-
* - Proper spacing for different sidebar variants
|
|
1034
|
-
* - Smooth transitions when sidebar state changes
|
|
1035
|
-
*
|
|
1036
|
-
* @see {@link Sidebar} - Main sidebar component
|
|
1037
|
-
* @see {@link SidebarProvider} - Required context provider
|
|
1038
|
-
* @since 1.0.0
|
|
336
|
+
* Main content area that sits beside the sidebar. Automatically adjusts margins based on sidebar state.
|
|
1039
337
|
*/
|
|
1040
|
-
function SidebarInset({
|
|
1041
|
-
className,
|
|
1042
|
-
...props
|
|
1043
|
-
}: {
|
|
1044
|
-
className?: string;
|
|
1045
|
-
} & React.ComponentProps<"main">) {
|
|
338
|
+
function SidebarInset({ className, ...props }: SidebarInsetProps) {
|
|
1046
339
|
return (
|
|
1047
340
|
<main
|
|
1048
341
|
data-slot="sidebar-inset"
|
|
1049
342
|
className={cn(
|
|
1050
|
-
"bg-background relative flex w-full flex-1 flex-col",
|
|
1051
|
-
"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",
|
|
343
|
+
"bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 relative flex w-full flex-1 flex-col",
|
|
1052
344
|
className,
|
|
1053
345
|
)}
|
|
1054
346
|
{...props}
|
|
@@ -1056,54 +348,12 @@ function SidebarInset({
|
|
|
1056
348
|
);
|
|
1057
349
|
}
|
|
1058
350
|
|
|
351
|
+
type SidebarInputProps = React.ComponentProps<typeof Input>;
|
|
352
|
+
|
|
1059
353
|
/**
|
|
1060
|
-
*
|
|
1061
|
-
*
|
|
1062
|
-
* A pre-styled input field designed to integrate seamlessly within sidebar layouts.
|
|
1063
|
-
* Commonly used for search functionality, filters, or other input needs within
|
|
1064
|
-
* the sidebar context. Features appropriate sizing and styling for sidebar use.
|
|
1065
|
-
*
|
|
1066
|
-
* @component
|
|
1067
|
-
*
|
|
1068
|
-
* @param {string} [className] - Additional CSS classes
|
|
1069
|
-
* @param {...React.ComponentProps<typeof Input>} props - All Input component props
|
|
1070
|
-
*
|
|
1071
|
-
* @example
|
|
1072
|
-
* ```tsx
|
|
1073
|
-
* // Search input in sidebar header
|
|
1074
|
-
* <SidebarHeader>
|
|
1075
|
-
* <h2>Navigation</h2>
|
|
1076
|
-
* <SidebarInput
|
|
1077
|
-
* placeholder="Search..."
|
|
1078
|
-
* onChange={(e) => handleSearch(e.target.value)}
|
|
1079
|
-
* />
|
|
1080
|
-
* </SidebarHeader>
|
|
1081
|
-
* ```
|
|
1082
|
-
*
|
|
1083
|
-
* @example
|
|
1084
|
-
* ```tsx
|
|
1085
|
-
* // Filter input with icon
|
|
1086
|
-
* <SidebarGroup>
|
|
1087
|
-
* <SidebarGroupLabel>Filter Options</SidebarGroupLabel>
|
|
1088
|
-
* <SidebarGroupContent>
|
|
1089
|
-
* <SidebarInput
|
|
1090
|
-
* type="search"
|
|
1091
|
-
* placeholder="Filter items"
|
|
1092
|
-
* className="mb-2"
|
|
1093
|
-
* />
|
|
1094
|
-
* </SidebarGroupContent>
|
|
1095
|
-
* </SidebarGroup>
|
|
1096
|
-
* ```
|
|
1097
|
-
*
|
|
1098
|
-
* @see {@link Input} - Base input component
|
|
1099
|
-
* @since 1.0.0
|
|
354
|
+
* Styled input for sidebar search/filter functionality.
|
|
1100
355
|
*/
|
|
1101
|
-
function SidebarInput({
|
|
1102
|
-
className,
|
|
1103
|
-
...props
|
|
1104
|
-
}: {
|
|
1105
|
-
className?: string;
|
|
1106
|
-
} & React.ComponentProps<typeof Input>) {
|
|
356
|
+
function SidebarInput({ className, ...props }: SidebarInputProps) {
|
|
1107
357
|
return (
|
|
1108
358
|
<Input
|
|
1109
359
|
data-slot="sidebar-input"
|
|
@@ -1114,208 +364,44 @@ function SidebarInput({
|
|
|
1114
364
|
);
|
|
1115
365
|
}
|
|
1116
366
|
|
|
367
|
+
type SidebarHeaderProps = React.ComponentProps<"div">;
|
|
368
|
+
|
|
1117
369
|
/**
|
|
1118
|
-
*
|
|
1119
|
-
*
|
|
1120
|
-
* A flexible container for sidebar header content such as logos, application titles,
|
|
1121
|
-
* user information, or action buttons. The header remains visible even when the sidebar
|
|
1122
|
-
* is collapsed to icon mode, making it ideal for persistent branding or key actions.
|
|
1123
|
-
*
|
|
1124
|
-
* @component
|
|
1125
|
-
*
|
|
1126
|
-
* @param {string} [className] - Additional CSS classes
|
|
1127
|
-
* @param {...React.ComponentProps<"div">} props - All div element props
|
|
1128
|
-
*
|
|
1129
|
-
* @example
|
|
1130
|
-
* ```tsx
|
|
1131
|
-
* // Simple header with title
|
|
1132
|
-
* <SidebarHeader>
|
|
1133
|
-
* <h2 className="text-lg font-semibold">My Application</h2>
|
|
1134
|
-
* </SidebarHeader>
|
|
1135
|
-
* ```
|
|
1136
|
-
*
|
|
1137
|
-
* @example
|
|
1138
|
-
* ```tsx
|
|
1139
|
-
* // Header with trigger and search
|
|
1140
|
-
* <SidebarHeader>
|
|
1141
|
-
* <div className="flex items-center justify-between">
|
|
1142
|
-
* <h2>Navigation</h2>
|
|
1143
|
-
* <SidebarTrigger />
|
|
1144
|
-
* </div>
|
|
1145
|
-
* <SidebarInput placeholder="Search..." className="mt-2" />
|
|
1146
|
-
* </SidebarHeader>
|
|
1147
|
-
* ```
|
|
1148
|
-
*
|
|
1149
|
-
* @example
|
|
1150
|
-
* ```tsx
|
|
1151
|
-
* // Header with user menu
|
|
1152
|
-
* <SidebarHeader>
|
|
1153
|
-
* <SidebarMenu>
|
|
1154
|
-
* <SidebarMenuItem>
|
|
1155
|
-
* <DropdownMenu>
|
|
1156
|
-
* <DropdownMenuTrigger asChild>
|
|
1157
|
-
* <SidebarMenuButton>
|
|
1158
|
-
* <Avatar />
|
|
1159
|
-
* <span>John Doe</span>
|
|
1160
|
-
* <ChevronDown className="ml-auto" />
|
|
1161
|
-
* </SidebarMenuButton>
|
|
1162
|
-
* </DropdownMenuTrigger>
|
|
1163
|
-
* <DropdownMenuContent>
|
|
1164
|
-
* <DropdownMenuItem>Profile</DropdownMenuItem>
|
|
1165
|
-
* <DropdownMenuItem>Settings</DropdownMenuItem>
|
|
1166
|
-
* <DropdownMenuItem>Logout</DropdownMenuItem>
|
|
1167
|
-
* </DropdownMenuContent>
|
|
1168
|
-
* </DropdownMenu>
|
|
1169
|
-
* </SidebarMenuItem>
|
|
1170
|
-
* </SidebarMenu>
|
|
1171
|
-
* </SidebarHeader>
|
|
1172
|
-
* ```
|
|
1173
|
-
*
|
|
1174
|
-
* @see {@link SidebarFooter} - Footer section component
|
|
1175
|
-
* @see {@link SidebarContent} - Main scrollable content area
|
|
1176
|
-
* @since 1.0.0
|
|
370
|
+
* Top section of sidebar for branding, app switcher, or global actions.
|
|
1177
371
|
*/
|
|
1178
|
-
function SidebarHeader({
|
|
1179
|
-
className,
|
|
1180
|
-
...props
|
|
1181
|
-
}: {
|
|
1182
|
-
className?: string;
|
|
1183
|
-
} & React.ComponentProps<"div">) {
|
|
372
|
+
function SidebarHeader({ className, ...props }: SidebarHeaderProps) {
|
|
1184
373
|
return (
|
|
1185
374
|
<div
|
|
1186
375
|
data-slot="sidebar-header"
|
|
1187
376
|
data-sidebar="header"
|
|
1188
|
-
className={cn("
|
|
377
|
+
className={cn("gap-2 p-2 flex flex-col", className)}
|
|
1189
378
|
{...props}
|
|
1190
379
|
/>
|
|
1191
380
|
);
|
|
1192
381
|
}
|
|
1193
382
|
|
|
383
|
+
type SidebarFooterProps = React.ComponentProps<"div">;
|
|
384
|
+
|
|
1194
385
|
/**
|
|
1195
|
-
*
|
|
1196
|
-
*
|
|
1197
|
-
* A container positioned at the bottom of the sidebar for footer content such as
|
|
1198
|
-
* user profiles, settings links, logout buttons, or help resources. The footer
|
|
1199
|
-
* remains anchored to the bottom regardless of content height.
|
|
1200
|
-
*
|
|
1201
|
-
* @component
|
|
1202
|
-
*
|
|
1203
|
-
* @param {string} [className] - Additional CSS classes
|
|
1204
|
-
* @param {...React.ComponentProps<"div">} props - All div element props
|
|
1205
|
-
*
|
|
1206
|
-
* @example
|
|
1207
|
-
* ```tsx
|
|
1208
|
-
* // Simple footer with settings link
|
|
1209
|
-
* <SidebarFooter>
|
|
1210
|
-
* <SidebarMenu>
|
|
1211
|
-
* <SidebarMenuItem>
|
|
1212
|
-
* <SidebarMenuButton>
|
|
1213
|
-
* <Settings />
|
|
1214
|
-
* <span>Settings</span>
|
|
1215
|
-
* </SidebarMenuButton>
|
|
1216
|
-
* </SidebarMenuItem>
|
|
1217
|
-
* </SidebarMenu>
|
|
1218
|
-
* </SidebarFooter>
|
|
1219
|
-
* ```
|
|
1220
|
-
*
|
|
1221
|
-
* @example
|
|
1222
|
-
* ```tsx
|
|
1223
|
-
* // Footer with user profile and actions
|
|
1224
|
-
* <SidebarFooter>
|
|
1225
|
-
* <SidebarMenu>
|
|
1226
|
-
* <SidebarMenuItem>
|
|
1227
|
-
* <SidebarMenuButton>
|
|
1228
|
-
* <Avatar className="h-6 w-6" />
|
|
1229
|
-
* <div className="flex flex-col text-left">
|
|
1230
|
-
* <span className="text-sm">John Doe</span>
|
|
1231
|
-
* <span className="text-xs text-muted-foreground">john@example.com</span>
|
|
1232
|
-
* </div>
|
|
1233
|
-
* </SidebarMenuButton>
|
|
1234
|
-
* <SidebarMenuAction>
|
|
1235
|
-
* <LogOut />
|
|
1236
|
-
* </SidebarMenuAction>
|
|
1237
|
-
* </SidebarMenuItem>
|
|
1238
|
-
* </SidebarMenu>
|
|
1239
|
-
* </SidebarFooter>
|
|
1240
|
-
* ```
|
|
1241
|
-
*
|
|
1242
|
-
* @see {@link SidebarHeader} - Header section component
|
|
1243
|
-
* @see {@link SidebarContent} - Main content area
|
|
1244
|
-
* @since 1.0.0
|
|
386
|
+
* Bottom section of sidebar for user profile, settings, or secondary actions.
|
|
1245
387
|
*/
|
|
1246
|
-
function SidebarFooter({
|
|
1247
|
-
className,
|
|
1248
|
-
...props
|
|
1249
|
-
}: {
|
|
1250
|
-
className?: string;
|
|
1251
|
-
} & React.ComponentProps<"div">) {
|
|
388
|
+
function SidebarFooter({ className, ...props }: SidebarFooterProps) {
|
|
1252
389
|
return (
|
|
1253
390
|
<div
|
|
1254
391
|
data-slot="sidebar-footer"
|
|
1255
392
|
data-sidebar="footer"
|
|
1256
|
-
className={cn("
|
|
393
|
+
className={cn("gap-2 p-2 flex flex-col", className)}
|
|
1257
394
|
{...props}
|
|
1258
395
|
/>
|
|
1259
396
|
);
|
|
1260
397
|
}
|
|
1261
398
|
|
|
399
|
+
type SidebarSeparatorProps = React.ComponentProps<typeof Separator>;
|
|
400
|
+
|
|
1262
401
|
/**
|
|
1263
|
-
*
|
|
1264
|
-
*
|
|
1265
|
-
* A horizontal divider component used to visually separate different sections
|
|
1266
|
-
* within the sidebar content. Helps organize navigation groups and improve
|
|
1267
|
-
* visual hierarchy and readability.
|
|
1268
|
-
*
|
|
1269
|
-
* @component
|
|
1270
|
-
*
|
|
1271
|
-
* @param {string} [className] - Additional CSS classes
|
|
1272
|
-
* @param {...React.ComponentProps<typeof Separator>} props - All Separator component props
|
|
1273
|
-
*
|
|
1274
|
-
* @example
|
|
1275
|
-
* ```tsx
|
|
1276
|
-
* // Separating navigation groups
|
|
1277
|
-
* <SidebarContent>
|
|
1278
|
-
* <SidebarGroup>
|
|
1279
|
-
* <SidebarGroupLabel>Main Navigation</SidebarGroupLabel>
|
|
1280
|
-
* <SidebarGroupContent>
|
|
1281
|
-
* // Main nav items
|
|
1282
|
-
* </SidebarGroupContent>
|
|
1283
|
-
* </SidebarGroup>
|
|
1284
|
-
*
|
|
1285
|
-
* <SidebarSeparator />
|
|
1286
|
-
*
|
|
1287
|
-
* <SidebarGroup>
|
|
1288
|
-
* <SidebarGroupLabel>Settings</SidebarGroupLabel>
|
|
1289
|
-
* <SidebarGroupContent>
|
|
1290
|
-
* // Settings items
|
|
1291
|
-
* </SidebarGroupContent>
|
|
1292
|
-
* </SidebarGroup>
|
|
1293
|
-
* </SidebarContent>
|
|
1294
|
-
* ```
|
|
1295
|
-
*
|
|
1296
|
-
* @example
|
|
1297
|
-
* ```tsx
|
|
1298
|
-
* // Between header and content
|
|
1299
|
-
* <Sidebar>
|
|
1300
|
-
* <SidebarHeader>
|
|
1301
|
-
* <h2>Application</h2>
|
|
1302
|
-
* </SidebarHeader>
|
|
1303
|
-
* <SidebarSeparator />
|
|
1304
|
-
* <SidebarContent>
|
|
1305
|
-
* // Navigation content
|
|
1306
|
-
* </SidebarContent>
|
|
1307
|
-
* </Sidebar>
|
|
1308
|
-
* ```
|
|
1309
|
-
*
|
|
1310
|
-
* @see {@link Separator} - Base separator component
|
|
1311
|
-
* @since 1.0.0
|
|
402
|
+
* Horizontal divider between sidebar sections.
|
|
1312
403
|
*/
|
|
1313
|
-
function SidebarSeparator({
|
|
1314
|
-
className,
|
|
1315
|
-
...props
|
|
1316
|
-
}: {
|
|
1317
|
-
className?: string;
|
|
1318
|
-
} & React.ComponentProps<typeof Separator>) {
|
|
404
|
+
function SidebarSeparator({ className, ...props }: SidebarSeparatorProps) {
|
|
1319
405
|
return (
|
|
1320
406
|
<Separator
|
|
1321
407
|
data-slot="sidebar-separator"
|
|
@@ -1326,82 +412,18 @@ function SidebarSeparator({
|
|
|
1326
412
|
);
|
|
1327
413
|
}
|
|
1328
414
|
|
|
415
|
+
type SidebarContentProps = React.ComponentProps<"div">;
|
|
416
|
+
|
|
1329
417
|
/**
|
|
1330
|
-
* Scrollable main content area of
|
|
1331
|
-
*
|
|
1332
|
-
* The primary content container that houses navigation groups, menus, and other
|
|
1333
|
-
* sidebar content. Provides automatic scrolling when content exceeds available
|
|
1334
|
-
* height and handles overflow behavior when the sidebar is collapsed.
|
|
1335
|
-
*
|
|
1336
|
-
* @component
|
|
1337
|
-
*
|
|
1338
|
-
* @param {string} [className] - Additional CSS classes
|
|
1339
|
-
* @param {...React.ComponentProps<"div">} props - All div element props
|
|
1340
|
-
*
|
|
1341
|
-
* @example
|
|
1342
|
-
* ```tsx
|
|
1343
|
-
* // Basic content with navigation groups
|
|
1344
|
-
* <SidebarContent>
|
|
1345
|
-
* <SidebarGroup>
|
|
1346
|
-
* <SidebarGroupLabel>Main</SidebarGroupLabel>
|
|
1347
|
-
* <SidebarGroupContent>
|
|
1348
|
-
* <SidebarMenu>
|
|
1349
|
-
* <SidebarMenuItem>
|
|
1350
|
-
* <SidebarMenuButton>
|
|
1351
|
-
* <Home />
|
|
1352
|
-
* <span>Dashboard</span>
|
|
1353
|
-
* </SidebarMenuButton>
|
|
1354
|
-
* </SidebarMenuItem>
|
|
1355
|
-
* </SidebarMenu>
|
|
1356
|
-
* </SidebarGroupContent>
|
|
1357
|
-
* </SidebarGroup>
|
|
1358
|
-
* </SidebarContent>
|
|
1359
|
-
* ```
|
|
1360
|
-
*
|
|
1361
|
-
* @example
|
|
1362
|
-
* ```tsx
|
|
1363
|
-
* // Multiple groups with separators
|
|
1364
|
-
* <SidebarContent>
|
|
1365
|
-
* <SidebarGroup>
|
|
1366
|
-
* <SidebarGroupLabel>Navigation</SidebarGroupLabel>
|
|
1367
|
-
* <SidebarGroupContent>
|
|
1368
|
-
* // Navigation items
|
|
1369
|
-
* </SidebarGroupContent>
|
|
1370
|
-
* </SidebarGroup>
|
|
1371
|
-
*
|
|
1372
|
-
* <SidebarSeparator />
|
|
1373
|
-
*
|
|
1374
|
-
* <SidebarGroup>
|
|
1375
|
-
* <SidebarGroupLabel>Projects</SidebarGroupLabel>
|
|
1376
|
-
* <SidebarGroupContent>
|
|
1377
|
-
* // Project items
|
|
1378
|
-
* </SidebarGroupContent>
|
|
1379
|
-
* </SidebarGroup>
|
|
1380
|
-
* </SidebarContent>
|
|
1381
|
-
* ```
|
|
1382
|
-
*
|
|
1383
|
-
* @features
|
|
1384
|
-
* - Automatic scrolling for overflow content
|
|
1385
|
-
* - Responsive to sidebar collapse states
|
|
1386
|
-
* - Flexible gap spacing between child elements
|
|
1387
|
-
* - Overflow hidden when collapsed to icon mode
|
|
1388
|
-
*
|
|
1389
|
-
* @see {@link SidebarGroup} - Content organization component
|
|
1390
|
-
* @see {@link SidebarMenu} - Menu container component
|
|
1391
|
-
* @since 1.0.0
|
|
418
|
+
* Scrollable main content area of sidebar. Contains SidebarGroup components.
|
|
1392
419
|
*/
|
|
1393
|
-
function SidebarContent({
|
|
1394
|
-
className,
|
|
1395
|
-
...props
|
|
1396
|
-
}: {
|
|
1397
|
-
className?: string;
|
|
1398
|
-
} & React.ComponentProps<"div">) {
|
|
420
|
+
function SidebarContent({ className, ...props }: SidebarContentProps) {
|
|
1399
421
|
return (
|
|
1400
422
|
<div
|
|
1401
423
|
data-slot="sidebar-content"
|
|
1402
424
|
data-sidebar="content"
|
|
1403
425
|
className={cn(
|
|
1404
|
-
"flex min-h-0 flex-1 flex-col
|
|
426
|
+
"no-scrollbar gap-2 flex min-h-0 flex-1 flex-col overflow-auto group-data-[collapsible=icon]:overflow-hidden",
|
|
1405
427
|
className,
|
|
1406
428
|
)}
|
|
1407
429
|
{...props}
|
|
@@ -1409,452 +431,123 @@ function SidebarContent({
|
|
|
1409
431
|
);
|
|
1410
432
|
}
|
|
1411
433
|
|
|
434
|
+
type SidebarGroupProps = React.ComponentProps<"div">;
|
|
435
|
+
|
|
1412
436
|
/**
|
|
1413
|
-
* Container for
|
|
1414
|
-
*
|
|
1415
|
-
* Groups related navigation items together with optional labels and actions,
|
|
1416
|
-
* providing visual organization and hierarchy for complex navigation structures.
|
|
1417
|
-
* Groups can include labels, action buttons, and any combination of menu items.
|
|
1418
|
-
*
|
|
1419
|
-
* @component
|
|
1420
|
-
*
|
|
1421
|
-
* @param {string} [className] - Additional CSS classes
|
|
1422
|
-
* @param {...React.ComponentProps<"div">} props - All div element props
|
|
1423
|
-
*
|
|
1424
|
-
* @example
|
|
1425
|
-
* ```tsx
|
|
1426
|
-
* // Basic group with label and menu
|
|
1427
|
-
* <SidebarGroup>
|
|
1428
|
-
* <SidebarGroupLabel>Navigation</SidebarGroupLabel>
|
|
1429
|
-
* <SidebarGroupContent>
|
|
1430
|
-
* <SidebarMenu>
|
|
1431
|
-
* <SidebarMenuItem>
|
|
1432
|
-
* <SidebarMenuButton>
|
|
1433
|
-
* <Home />
|
|
1434
|
-
* <span>Dashboard</span>
|
|
1435
|
-
* </SidebarMenuButton>
|
|
1436
|
-
* </SidebarMenuItem>
|
|
1437
|
-
* </SidebarMenu>
|
|
1438
|
-
* </SidebarGroupContent>
|
|
1439
|
-
* </SidebarGroup>
|
|
1440
|
-
* ```
|
|
1441
|
-
*
|
|
1442
|
-
* @example
|
|
1443
|
-
* ```tsx
|
|
1444
|
-
* // Group with action button
|
|
1445
|
-
* <SidebarGroup>
|
|
1446
|
-
* <SidebarGroupLabel>Projects</SidebarGroupLabel>
|
|
1447
|
-
* <SidebarGroupAction>
|
|
1448
|
-
* <Plus className="h-4 w-4" />
|
|
1449
|
-
* <span className="sr-only">Add Project</span>
|
|
1450
|
-
* </SidebarGroupAction>
|
|
1451
|
-
* <SidebarGroupContent>
|
|
1452
|
-
* // Project items
|
|
1453
|
-
* </SidebarGroupContent>
|
|
1454
|
-
* </SidebarGroup>
|
|
1455
|
-
* ```
|
|
1456
|
-
*
|
|
1457
|
-
* @see {@link SidebarGroupLabel} - Group label component
|
|
1458
|
-
* @see {@link SidebarGroupAction} - Group action button
|
|
1459
|
-
* @see {@link SidebarGroupContent} - Group content container
|
|
1460
|
-
* @since 1.0.0
|
|
437
|
+
* Container for grouped menu items with optional label.
|
|
1461
438
|
*/
|
|
1462
|
-
function SidebarGroup({
|
|
1463
|
-
className,
|
|
1464
|
-
...props
|
|
1465
|
-
}: {
|
|
1466
|
-
className?: string;
|
|
1467
|
-
} & React.ComponentProps<"div">) {
|
|
439
|
+
function SidebarGroup({ className, ...props }: SidebarGroupProps) {
|
|
1468
440
|
return (
|
|
1469
441
|
<div
|
|
1470
442
|
data-slot="sidebar-group"
|
|
1471
443
|
data-sidebar="group"
|
|
1472
|
-
className={cn("relative flex w-full min-w-0 flex-col
|
|
444
|
+
className={cn("p-2 relative flex w-full min-w-0 flex-col", className)}
|
|
1473
445
|
{...props}
|
|
1474
446
|
/>
|
|
1475
447
|
);
|
|
1476
448
|
}
|
|
1477
449
|
|
|
450
|
+
type SidebarGroupLabelProps = useRender.ComponentProps<"div"> &
|
|
451
|
+
React.ComponentProps<"div">;
|
|
452
|
+
|
|
1478
453
|
/**
|
|
1479
|
-
* Label
|
|
1480
|
-
*
|
|
1481
|
-
* Displays a descriptive label for a group of sidebar items, providing clear
|
|
1482
|
-
* categorization and hierarchy. The label automatically hides when the sidebar
|
|
1483
|
-
* is collapsed to icon mode to maintain clean visual presentation.
|
|
1484
|
-
*
|
|
1485
|
-
* @component
|
|
1486
|
-
*
|
|
1487
|
-
* @param {string} [className] - Additional CSS classes
|
|
1488
|
-
* @param {boolean} [asChild=false] - Render as child element (using Slot)
|
|
1489
|
-
* @param {...React.ComponentProps<"div">} props - All div element props
|
|
1490
|
-
*
|
|
1491
|
-
* @example
|
|
1492
|
-
* ```tsx
|
|
1493
|
-
* // Standard text label
|
|
1494
|
-
* <SidebarGroup>
|
|
1495
|
-
* <SidebarGroupLabel>Main Navigation</SidebarGroupLabel>
|
|
1496
|
-
* <SidebarGroupContent>
|
|
1497
|
-
* // Menu items
|
|
1498
|
-
* </SidebarGroupContent>
|
|
1499
|
-
* </SidebarGroup>
|
|
1500
|
-
* ```
|
|
1501
|
-
*
|
|
1502
|
-
* @example
|
|
1503
|
-
* ```tsx
|
|
1504
|
-
* // Custom element using asChild
|
|
1505
|
-
* <SidebarGroup>
|
|
1506
|
-
* <SidebarGroupLabel asChild>
|
|
1507
|
-
* <h3 className="custom-heading">Projects</h3>
|
|
1508
|
-
* </SidebarGroupLabel>
|
|
1509
|
-
* <SidebarGroupContent>
|
|
1510
|
-
* // Project items
|
|
1511
|
-
* </SidebarGroupContent>
|
|
1512
|
-
* </SidebarGroup>
|
|
1513
|
-
* ```
|
|
1514
|
-
*
|
|
1515
|
-
* @features
|
|
1516
|
-
* - Automatic hide/show based on sidebar collapse state
|
|
1517
|
-
* - Smooth opacity and margin transitions
|
|
1518
|
-
* - Focus management for keyboard navigation
|
|
1519
|
-
* - Support for custom elements via asChild prop
|
|
1520
|
-
*
|
|
1521
|
-
* @see {@link SidebarGroup} - Parent group container
|
|
1522
|
-
* @see {@link SidebarGroupAction} - Associated action button
|
|
1523
|
-
* @since 1.0.0
|
|
454
|
+
* Label heading for a sidebar group. Fades out when sidebar collapses to icon mode.
|
|
1524
455
|
*/
|
|
1525
456
|
function SidebarGroupLabel({
|
|
1526
457
|
className,
|
|
1527
|
-
|
|
458
|
+
render,
|
|
1528
459
|
...props
|
|
1529
|
-
}: {
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
);
|
|
460
|
+
}: SidebarGroupLabelProps) {
|
|
461
|
+
return useRender({
|
|
462
|
+
defaultTagName: "div",
|
|
463
|
+
props: mergeProps<"div">(
|
|
464
|
+
{
|
|
465
|
+
className: cn(
|
|
466
|
+
"text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 flex shrink-0 items-center outline-hidden [&>svg]:shrink-0",
|
|
467
|
+
className,
|
|
468
|
+
),
|
|
469
|
+
},
|
|
470
|
+
props,
|
|
471
|
+
),
|
|
472
|
+
render,
|
|
473
|
+
state: {
|
|
474
|
+
slot: "sidebar-group-label",
|
|
475
|
+
sidebar: "group-label",
|
|
476
|
+
},
|
|
477
|
+
});
|
|
1547
478
|
}
|
|
1548
479
|
|
|
480
|
+
type SidebarGroupActionProps = useRender.ComponentProps<"button"> &
|
|
481
|
+
React.ComponentProps<"button">;
|
|
482
|
+
|
|
1549
483
|
/**
|
|
1550
|
-
* Action button
|
|
1551
|
-
*
|
|
1552
|
-
* A compact action button positioned at the top-right of a sidebar group,
|
|
1553
|
-
* typically used for group-specific actions such as adding new items, editing
|
|
1554
|
-
* group settings, or accessing group options. Automatically hidden when collapsed.
|
|
1555
|
-
*
|
|
1556
|
-
* @component
|
|
1557
|
-
*
|
|
1558
|
-
* @param {string} [className] - Additional CSS classes
|
|
1559
|
-
* @param {boolean} [asChild=false] - Render as child element (using Slot)
|
|
1560
|
-
* @param {...React.ComponentProps<"button">} props - All button element props
|
|
1561
|
-
*
|
|
1562
|
-
* @example
|
|
1563
|
-
* ```tsx
|
|
1564
|
-
* // Add button for projects group
|
|
1565
|
-
* <SidebarGroup>
|
|
1566
|
-
* <SidebarGroupLabel>Projects</SidebarGroupLabel>
|
|
1567
|
-
* <SidebarGroupAction>
|
|
1568
|
-
* <Plus className="h-4 w-4" />
|
|
1569
|
-
* <span className="sr-only">Add Project</span>
|
|
1570
|
-
* </SidebarGroupAction>
|
|
1571
|
-
* <SidebarGroupContent>
|
|
1572
|
-
* // Project items
|
|
1573
|
-
* </SidebarGroupContent>
|
|
1574
|
-
* </SidebarGroup>
|
|
1575
|
-
* ```
|
|
1576
|
-
*
|
|
1577
|
-
* @example
|
|
1578
|
-
* ```tsx
|
|
1579
|
-
* // Custom action with asChild
|
|
1580
|
-
* <SidebarGroup>
|
|
1581
|
-
* <SidebarGroupLabel>Settings</SidebarGroupLabel>
|
|
1582
|
-
* <SidebarGroupAction asChild>
|
|
1583
|
-
* <Button variant="ghost" size="sm">
|
|
1584
|
-
* <MoreHorizontal className="h-4 w-4" />
|
|
1585
|
-
* </Button>
|
|
1586
|
-
* </SidebarGroupAction>
|
|
1587
|
-
* <SidebarGroupContent>
|
|
1588
|
-
* // Settings items
|
|
1589
|
-
* </SidebarGroupContent>
|
|
1590
|
-
* </SidebarGroup>
|
|
1591
|
-
* ```
|
|
1592
|
-
*
|
|
1593
|
-
* @accessibility
|
|
1594
|
-
* - Increased touch target on mobile devices
|
|
1595
|
-
* - Keyboard accessible with focus management
|
|
1596
|
-
* - Screen reader support with descriptive labels
|
|
1597
|
-
*
|
|
1598
|
-
* @see {@link SidebarGroup} - Parent group container
|
|
1599
|
-
* @see {@link SidebarGroupLabel} - Associated group label
|
|
1600
|
-
* @since 1.0.0
|
|
484
|
+
* Action button displayed in top-right of group (e.g., add, expand all).
|
|
1601
485
|
*/
|
|
1602
486
|
function SidebarGroupAction({
|
|
1603
487
|
className,
|
|
1604
|
-
|
|
488
|
+
render,
|
|
1605
489
|
...props
|
|
1606
|
-
}: {
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
/>
|
|
1625
|
-
);
|
|
490
|
+
}: SidebarGroupActionProps) {
|
|
491
|
+
return useRender({
|
|
492
|
+
defaultTagName: "button",
|
|
493
|
+
props: mergeProps<"button">(
|
|
494
|
+
{
|
|
495
|
+
className: cn(
|
|
496
|
+
"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 w-5 rounded-md p-0 focus-visible:ring-2 [&>svg]:size-4 flex aspect-square items-center justify-center outline-hidden transition-transform [&>svg]:shrink-0 after:absolute after:-inset-2 md:after:hidden group-data-[collapsible=icon]:hidden",
|
|
497
|
+
className,
|
|
498
|
+
),
|
|
499
|
+
},
|
|
500
|
+
props,
|
|
501
|
+
),
|
|
502
|
+
render,
|
|
503
|
+
state: {
|
|
504
|
+
slot: "sidebar-group-action",
|
|
505
|
+
sidebar: "group-action",
|
|
506
|
+
},
|
|
507
|
+
});
|
|
1626
508
|
}
|
|
1627
509
|
|
|
510
|
+
type SidebarGroupContentProps = React.ComponentProps<"div">;
|
|
511
|
+
|
|
1628
512
|
/**
|
|
1629
|
-
*
|
|
1630
|
-
*
|
|
1631
|
-
* Houses the actual navigation items, menus, and content within a sidebar group.
|
|
1632
|
-
* Provides consistent spacing and organization for group content while maintaining
|
|
1633
|
-
* proper typography and layout coordination.
|
|
1634
|
-
*
|
|
1635
|
-
* @component
|
|
1636
|
-
*
|
|
1637
|
-
* @param {string} [className] - Additional CSS classes
|
|
1638
|
-
* @param {...React.ComponentProps<"div">} props - All div element props
|
|
1639
|
-
*
|
|
1640
|
-
* @example
|
|
1641
|
-
* ```tsx
|
|
1642
|
-
* // Basic content with menu items
|
|
1643
|
-
* <SidebarGroup>
|
|
1644
|
-
* <SidebarGroupLabel>Navigation</SidebarGroupLabel>
|
|
1645
|
-
* <SidebarGroupContent>
|
|
1646
|
-
* <SidebarMenu>
|
|
1647
|
-
* <SidebarMenuItem>
|
|
1648
|
-
* <SidebarMenuButton>
|
|
1649
|
-
* <Home />
|
|
1650
|
-
* <span>Dashboard</span>
|
|
1651
|
-
* </SidebarMenuButton>
|
|
1652
|
-
* </SidebarMenuItem>
|
|
1653
|
-
* <SidebarMenuItem>
|
|
1654
|
-
* <SidebarMenuButton>
|
|
1655
|
-
* <Settings />
|
|
1656
|
-
* <span>Settings</span>
|
|
1657
|
-
* </SidebarMenuButton>
|
|
1658
|
-
* </SidebarMenuItem>
|
|
1659
|
-
* </SidebarMenu>
|
|
1660
|
-
* </SidebarGroupContent>
|
|
1661
|
-
* </SidebarGroup>
|
|
1662
|
-
* ```
|
|
1663
|
-
*
|
|
1664
|
-
* @example
|
|
1665
|
-
* ```tsx
|
|
1666
|
-
* // Multiple menus in group content
|
|
1667
|
-
* <SidebarGroup>
|
|
1668
|
-
* <SidebarGroupLabel>Projects</SidebarGroupLabel>
|
|
1669
|
-
* <SidebarGroupContent>
|
|
1670
|
-
* <SidebarMenu>
|
|
1671
|
-
* // Recent projects
|
|
1672
|
-
* </SidebarMenu>
|
|
1673
|
-
* <SidebarSeparator />
|
|
1674
|
-
* <SidebarMenu>
|
|
1675
|
-
* // Archived projects
|
|
1676
|
-
* </SidebarMenu>
|
|
1677
|
-
* </SidebarGroupContent>
|
|
1678
|
-
* </SidebarGroup>
|
|
1679
|
-
* ```
|
|
1680
|
-
*
|
|
1681
|
-
* @see {@link SidebarGroup} - Parent group container
|
|
1682
|
-
* @see {@link SidebarMenu} - Menu container component
|
|
1683
|
-
* @since 1.0.0
|
|
513
|
+
* Container for menu items within a group.
|
|
1684
514
|
*/
|
|
1685
515
|
function SidebarGroupContent({
|
|
1686
516
|
className,
|
|
1687
517
|
...props
|
|
1688
|
-
}: {
|
|
1689
|
-
className?: string;
|
|
1690
|
-
} & React.ComponentProps<"div">) {
|
|
518
|
+
}: SidebarGroupContentProps) {
|
|
1691
519
|
return (
|
|
1692
520
|
<div
|
|
1693
521
|
data-slot="sidebar-group-content"
|
|
1694
522
|
data-sidebar="group-content"
|
|
1695
|
-
className={cn("w-full
|
|
523
|
+
className={cn("text-sm w-full", className)}
|
|
1696
524
|
{...props}
|
|
1697
525
|
/>
|
|
1698
526
|
);
|
|
1699
527
|
}
|
|
1700
528
|
|
|
529
|
+
type SidebarMenuProps = React.ComponentProps<"ul">;
|
|
530
|
+
|
|
1701
531
|
/**
|
|
1702
|
-
*
|
|
1703
|
-
*
|
|
1704
|
-
* An unordered list container that holds and organizes SidebarMenuItem components.
|
|
1705
|
-
* Provides consistent spacing, layout, and semantic structure for navigation items
|
|
1706
|
-
* within sidebar groups or sections.
|
|
1707
|
-
*
|
|
1708
|
-
* @component
|
|
1709
|
-
*
|
|
1710
|
-
* @param {string} [className] - Additional CSS classes
|
|
1711
|
-
* @param {...React.ComponentProps<"ul">} props - All ul element props
|
|
1712
|
-
*
|
|
1713
|
-
* @example
|
|
1714
|
-
* ```tsx
|
|
1715
|
-
* // Basic navigation menu
|
|
1716
|
-
* <SidebarMenu>
|
|
1717
|
-
* <SidebarMenuItem>
|
|
1718
|
-
* <SidebarMenuButton>
|
|
1719
|
-
* <Home />
|
|
1720
|
-
* <span>Dashboard</span>
|
|
1721
|
-
* </SidebarMenuButton>
|
|
1722
|
-
* </SidebarMenuItem>
|
|
1723
|
-
* <SidebarMenuItem>
|
|
1724
|
-
* <SidebarMenuButton>
|
|
1725
|
-
* <Settings />
|
|
1726
|
-
* <span>Settings</span>
|
|
1727
|
-
* </SidebarMenuButton>
|
|
1728
|
-
* </SidebarMenuItem>
|
|
1729
|
-
* </SidebarMenu>
|
|
1730
|
-
* ```
|
|
1731
|
-
*
|
|
1732
|
-
* @example
|
|
1733
|
-
* ```tsx
|
|
1734
|
-
* // Menu with badges and actions
|
|
1735
|
-
* <SidebarMenu>
|
|
1736
|
-
* <SidebarMenuItem>
|
|
1737
|
-
* <SidebarMenuButton>
|
|
1738
|
-
* <Inbox />
|
|
1739
|
-
* <span>Messages</span>
|
|
1740
|
-
* </SidebarMenuButton>
|
|
1741
|
-
* <SidebarMenuBadge>3</SidebarMenuBadge>
|
|
1742
|
-
* </SidebarMenuItem>
|
|
1743
|
-
* <SidebarMenuItem>
|
|
1744
|
-
* <SidebarMenuButton>
|
|
1745
|
-
* <Archive />
|
|
1746
|
-
* <span>Archive</span>
|
|
1747
|
-
* </SidebarMenuButton>
|
|
1748
|
-
* <SidebarMenuAction>
|
|
1749
|
-
* <MoreHorizontal />
|
|
1750
|
-
* </SidebarMenuAction>
|
|
1751
|
-
* </SidebarMenuItem>
|
|
1752
|
-
* </SidebarMenu>
|
|
1753
|
-
* ```
|
|
1754
|
-
*
|
|
1755
|
-
* @accessibility
|
|
1756
|
-
* - Semantic ul/li structure for screen readers
|
|
1757
|
-
* - Proper navigation landmarks
|
|
1758
|
-
* - Keyboard navigation support
|
|
1759
|
-
*
|
|
1760
|
-
* @see {@link SidebarMenuItem} - Individual menu item component
|
|
1761
|
-
* @see {@link SidebarMenuButton} - Interactive menu button
|
|
1762
|
-
* @since 1.0.0
|
|
532
|
+
* Unordered list container for sidebar menu items.
|
|
1763
533
|
*/
|
|
1764
|
-
function SidebarMenu({
|
|
1765
|
-
className,
|
|
1766
|
-
...props
|
|
1767
|
-
}: {
|
|
1768
|
-
className?: string;
|
|
1769
|
-
} & React.ComponentProps<"ul">) {
|
|
534
|
+
function SidebarMenu({ className, ...props }: SidebarMenuProps) {
|
|
1770
535
|
return (
|
|
1771
536
|
<ul
|
|
1772
537
|
data-slot="sidebar-menu"
|
|
1773
538
|
data-sidebar="menu"
|
|
1774
|
-
className={cn("flex w-full min-w-0 flex-col
|
|
539
|
+
className={cn("gap-1 flex w-full min-w-0 flex-col", className)}
|
|
1775
540
|
{...props}
|
|
1776
541
|
/>
|
|
1777
542
|
);
|
|
1778
543
|
}
|
|
1779
544
|
|
|
545
|
+
type SidebarMenuItemProps = React.ComponentProps<"li">;
|
|
546
|
+
|
|
1780
547
|
/**
|
|
1781
|
-
*
|
|
1782
|
-
*
|
|
1783
|
-
* A list item container that wraps a single navigation item, typically containing
|
|
1784
|
-
* a SidebarMenuButton along with optional components like SidebarMenuAction,
|
|
1785
|
-
* SidebarMenuBadge, or SidebarMenuSub for hierarchical navigation.
|
|
1786
|
-
*
|
|
1787
|
-
* @component
|
|
1788
|
-
*
|
|
1789
|
-
* @param {string} [className] - Additional CSS classes
|
|
1790
|
-
* @param {...React.ComponentProps<"li">} props - All li element props
|
|
1791
|
-
*
|
|
1792
|
-
* @example
|
|
1793
|
-
* ```tsx
|
|
1794
|
-
* // Simple menu item with button
|
|
1795
|
-
* <SidebarMenuItem>
|
|
1796
|
-
* <SidebarMenuButton>
|
|
1797
|
-
* <Home />
|
|
1798
|
-
* <span>Dashboard</span>
|
|
1799
|
-
* </SidebarMenuButton>
|
|
1800
|
-
* </SidebarMenuItem>
|
|
1801
|
-
* ```
|
|
1802
|
-
*
|
|
1803
|
-
* @example
|
|
1804
|
-
* ```tsx
|
|
1805
|
-
* // Menu item with badge
|
|
1806
|
-
* <SidebarMenuItem>
|
|
1807
|
-
* <SidebarMenuButton>
|
|
1808
|
-
* <Inbox />
|
|
1809
|
-
* <span>Messages</span>
|
|
1810
|
-
* </SidebarMenuButton>
|
|
1811
|
-
* <SidebarMenuBadge>5</SidebarMenuBadge>
|
|
1812
|
-
* </SidebarMenuItem>
|
|
1813
|
-
* ```
|
|
1814
|
-
*
|
|
1815
|
-
* @example
|
|
1816
|
-
* ```tsx
|
|
1817
|
-
* // Menu item with action button
|
|
1818
|
-
* <SidebarMenuItem>
|
|
1819
|
-
* <SidebarMenuButton>
|
|
1820
|
-
* <Folder />
|
|
1821
|
-
* <span>Projects</span>
|
|
1822
|
-
* </SidebarMenuButton>
|
|
1823
|
-
* <SidebarMenuAction showOnHover>
|
|
1824
|
-
* <Plus />
|
|
1825
|
-
* </SidebarMenuAction>
|
|
1826
|
-
* </SidebarMenuItem>
|
|
1827
|
-
* ```
|
|
1828
|
-
*
|
|
1829
|
-
* @example
|
|
1830
|
-
* ```tsx
|
|
1831
|
-
* // Menu item with submenu
|
|
1832
|
-
* <SidebarMenuItem>
|
|
1833
|
-
* <SidebarMenuButton>
|
|
1834
|
-
* <Folder />
|
|
1835
|
-
* <span>Projects</span>
|
|
1836
|
-
* <ChevronRight className="ml-auto" />
|
|
1837
|
-
* </SidebarMenuButton>
|
|
1838
|
-
* <SidebarMenuSub>
|
|
1839
|
-
* <SidebarMenuSubItem>
|
|
1840
|
-
* <SidebarMenuSubButton>Web App</SidebarMenuSubButton>
|
|
1841
|
-
* </SidebarMenuSubItem>
|
|
1842
|
-
* </SidebarMenuSub>
|
|
1843
|
-
* </SidebarMenuItem>
|
|
1844
|
-
* ```
|
|
1845
|
-
*
|
|
1846
|
-
* @see {@link SidebarMenu} - Parent menu container
|
|
1847
|
-
* @see {@link SidebarMenuButton} - Interactive button component
|
|
1848
|
-
* @see {@link SidebarMenuAction} - Action button component
|
|
1849
|
-
* @see {@link SidebarMenuBadge} - Badge indicator component
|
|
1850
|
-
* @since 1.0.0
|
|
548
|
+
* List item wrapper for a single menu entry.
|
|
1851
549
|
*/
|
|
1852
|
-
function SidebarMenuItem({
|
|
1853
|
-
className,
|
|
1854
|
-
...props
|
|
1855
|
-
}: {
|
|
1856
|
-
className?: string;
|
|
1857
|
-
} & React.ComponentProps<"li">) {
|
|
550
|
+
function SidebarMenuItem({ className, ...props }: SidebarMenuItemProps) {
|
|
1858
551
|
return (
|
|
1859
552
|
<li
|
|
1860
553
|
data-slot="sidebar-menu-item"
|
|
@@ -1865,24 +558,14 @@ function SidebarMenuItem({
|
|
|
1865
558
|
);
|
|
1866
559
|
}
|
|
1867
560
|
|
|
1868
|
-
/**
|
|
1869
|
-
* SidebarMenuButton variant configuration for visual appearances and sizes
|
|
1870
|
-
*
|
|
1871
|
-
* @variant default - Standard menu button with subtle hover states
|
|
1872
|
-
* @variant outline - Button with border background that highlights on interaction
|
|
1873
|
-
*
|
|
1874
|
-
* @size default - Standard button height (h-8) with text-sm
|
|
1875
|
-
* @size sm - Compact button height (h-7) with text-xs for dense layouts
|
|
1876
|
-
* @size lg - Large button height (h-12) with text-sm, collapses to icon padding when sidebar is collapsed
|
|
1877
|
-
*/
|
|
1878
561
|
const sidebarMenuButtonVariants = cva(
|
|
1879
|
-
"
|
|
562
|
+
"ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-md p-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium peer/menu-button flex w-full items-center overflow-hidden outline-hidden group/menu-button disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&_svg]:size-4 [&_svg]:shrink-0",
|
|
1880
563
|
{
|
|
1881
564
|
variants: {
|
|
1882
565
|
variant: {
|
|
1883
566
|
default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
|
|
1884
567
|
outline:
|
|
1885
|
-
"bg-background
|
|
568
|
+
"bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]",
|
|
1886
569
|
},
|
|
1887
570
|
size: {
|
|
1888
571
|
default: "h-8 text-sm",
|
|
@@ -1897,133 +580,46 @@ const sidebarMenuButtonVariants = cva(
|
|
|
1897
580
|
},
|
|
1898
581
|
);
|
|
1899
582
|
|
|
583
|
+
type SidebarMenuButtonProps = useRender.ComponentProps<"button"> &
|
|
584
|
+
React.ComponentProps<"button"> & {
|
|
585
|
+
/** Mark as active/current page. */
|
|
586
|
+
isActive?: boolean;
|
|
587
|
+
/** Tooltip content shown when sidebar is collapsed. */
|
|
588
|
+
tooltip?: string | React.ComponentProps<typeof TooltipContent>;
|
|
589
|
+
} & VariantProps<typeof sidebarMenuButtonVariants>;
|
|
590
|
+
|
|
1900
591
|
/**
|
|
1901
|
-
*
|
|
1902
|
-
*
|
|
1903
|
-
* The primary interactive element for sidebar navigation, offering a flexible button
|
|
1904
|
-
* component that supports active states, multiple visual variants, tooltip integration
|
|
1905
|
-
* for collapsed modes, and composition patterns through the asChild prop. Automatically
|
|
1906
|
-
* adapts its appearance based on sidebar state and provides smooth hover/focus transitions.
|
|
1907
|
-
*
|
|
1908
|
-
* @component
|
|
1909
|
-
*
|
|
1910
|
-
* @param {boolean} [asChild=false] - Render as child element using Slot composition
|
|
1911
|
-
* @param {boolean} [isActive=false] - Whether this menu item is currently active
|
|
1912
|
-
* @param {"default" | "outline"} [variant="default"] - Visual variant:
|
|
1913
|
-
* - `default`: Standard button appearance with hover states
|
|
1914
|
-
* - `outline`: Button with border and background on hover
|
|
1915
|
-
* @param {"default" | "sm" | "lg"} [size="default"] - Button size variant:
|
|
1916
|
-
* - `default`: Standard height (h-8)
|
|
1917
|
-
* - `sm`: Small height (h-7)
|
|
1918
|
-
* - `lg`: Large height (h-12)
|
|
1919
|
-
* @param {string | React.ComponentProps<typeof TooltipContent>} [tooltip] - Tooltip content shown when sidebar is collapsed
|
|
1920
|
-
* @param {string} [className] - Additional CSS classes
|
|
1921
|
-
* @param {...React.ComponentProps<"button">} props - All button element props
|
|
1922
|
-
*
|
|
1923
|
-
* @example
|
|
1924
|
-
* ```tsx
|
|
1925
|
-
* // Basic navigation button
|
|
1926
|
-
* <SidebarMenuButton>
|
|
1927
|
-
* <Home className="h-4 w-4" />
|
|
1928
|
-
* <span>Dashboard</span>
|
|
1929
|
-
* </SidebarMenuButton>
|
|
1930
|
-
* ```
|
|
1931
|
-
*
|
|
1932
|
-
* @example
|
|
1933
|
-
* ```tsx
|
|
1934
|
-
* // Active state with Link composition
|
|
1935
|
-
* <SidebarMenuButton asChild isActive={pathname === '/dashboard'}>
|
|
1936
|
-
* <Link href="/dashboard">
|
|
1937
|
-
* <Home className="h-4 w-4" />
|
|
1938
|
-
* <span>Dashboard</span>
|
|
1939
|
-
* </Link>
|
|
1940
|
-
* </SidebarMenuButton>
|
|
1941
|
-
* ```
|
|
1942
|
-
*
|
|
1943
|
-
* @example
|
|
1944
|
-
* ```tsx
|
|
1945
|
-
* // With tooltip for collapsed mode
|
|
1946
|
-
* <SidebarMenuButton tooltip="Go to Dashboard">
|
|
1947
|
-
* <Home className="h-4 w-4" />
|
|
1948
|
-
* <span>Dashboard</span>
|
|
1949
|
-
* </SidebarMenuButton>
|
|
1950
|
-
* ```
|
|
1951
|
-
*
|
|
1952
|
-
* @example
|
|
1953
|
-
* ```tsx
|
|
1954
|
-
* // Different variants and sizes
|
|
1955
|
-
* <SidebarMenuButton variant="outline" size="lg">
|
|
1956
|
-
* <Settings className="h-4 w-4" />
|
|
1957
|
-
* <span>Settings</span>
|
|
1958
|
-
* </SidebarMenuButton>
|
|
1959
|
-
* ```
|
|
1960
|
-
*
|
|
1961
|
-
* @example
|
|
1962
|
-
* ```tsx
|
|
1963
|
-
* // Custom tooltip with props
|
|
1964
|
-
* <SidebarMenuButton
|
|
1965
|
-
* tooltip={{
|
|
1966
|
-
* children: "Dashboard Overview",
|
|
1967
|
-
* side: "right",
|
|
1968
|
-
* sideOffset: 10
|
|
1969
|
-
* }}
|
|
1970
|
-
* >
|
|
1971
|
-
* <Home className="h-4 w-4" />
|
|
1972
|
-
* <span>Dashboard</span>
|
|
1973
|
-
* </SidebarMenuButton>
|
|
1974
|
-
* ```
|
|
1975
|
-
*
|
|
1976
|
-
* @accessibility
|
|
1977
|
-
* - Full keyboard navigation support (Enter, Space)
|
|
1978
|
-
* - Focus visible ring for keyboard users
|
|
1979
|
-
* - Active state indication for screen readers
|
|
1980
|
-
* - Tooltip automatically shown/hidden based on sidebar state
|
|
1981
|
-
* - Proper contrast ratios for all states
|
|
1982
|
-
* - Support for screen reader announcements
|
|
1983
|
-
*
|
|
1984
|
-
* @responsive
|
|
1985
|
-
* - Automatically adapts to collapsed sidebar (icon-only mode)
|
|
1986
|
-
* - Tooltip integration for collapsed state
|
|
1987
|
-
* - Touch-friendly sizing on mobile devices
|
|
1988
|
-
* - Smooth transitions between states
|
|
1989
|
-
*
|
|
1990
|
-
* @see {@link SidebarMenuItem} - Parent menu item container
|
|
1991
|
-
* @see {@link SidebarMenuAction} - Secondary action button
|
|
1992
|
-
* @see {@link SidebarMenuBadge} - Badge component for notifications
|
|
1993
|
-
* @see {@link useSidebar} - Hook for sidebar state
|
|
1994
|
-
* @since 1.0.0
|
|
592
|
+
* Clickable button for sidebar menu item. Supports variants, sizes, active state, and tooltips.
|
|
1995
593
|
*/
|
|
1996
594
|
function SidebarMenuButton({
|
|
1997
|
-
|
|
595
|
+
render,
|
|
1998
596
|
isActive = false,
|
|
1999
597
|
variant = "default",
|
|
2000
598
|
size = "default",
|
|
2001
599
|
tooltip,
|
|
2002
600
|
className,
|
|
2003
601
|
...props
|
|
2004
|
-
}: {
|
|
2005
|
-
asChild?: boolean;
|
|
2006
|
-
isActive?: boolean;
|
|
2007
|
-
tooltip?: string | React.ComponentProps<typeof TooltipContent>;
|
|
2008
|
-
className?: string;
|
|
2009
|
-
} & VariantProps<typeof sidebarMenuButtonVariants> &
|
|
2010
|
-
React.ComponentProps<"button">) {
|
|
2011
|
-
const Comp = asChild ? Slot : "button";
|
|
602
|
+
}: SidebarMenuButtonProps) {
|
|
2012
603
|
const { isMobile, state } = useSidebar();
|
|
2013
|
-
|
|
2014
|
-
|
|
2015
|
-
<
|
|
2016
|
-
|
|
2017
|
-
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
604
|
+
const comp = useRender({
|
|
605
|
+
defaultTagName: "button",
|
|
606
|
+
props: mergeProps<"button">(
|
|
607
|
+
{
|
|
608
|
+
className: cn(sidebarMenuButtonVariants({ variant, size }), className),
|
|
609
|
+
},
|
|
610
|
+
props,
|
|
611
|
+
),
|
|
612
|
+
render: !tooltip ? render : TooltipTrigger,
|
|
613
|
+
state: {
|
|
614
|
+
slot: "sidebar-menu-button",
|
|
615
|
+
sidebar: "menu-button",
|
|
616
|
+
size,
|
|
617
|
+
active: isActive,
|
|
618
|
+
},
|
|
619
|
+
});
|
|
2024
620
|
|
|
2025
621
|
if (!tooltip) {
|
|
2026
|
-
return
|
|
622
|
+
return comp;
|
|
2027
623
|
}
|
|
2028
624
|
|
|
2029
625
|
if (typeof tooltip === "string") {
|
|
@@ -2034,7 +630,7 @@ function SidebarMenuButton({
|
|
|
2034
630
|
|
|
2035
631
|
return (
|
|
2036
632
|
<Tooltip>
|
|
2037
|
-
|
|
633
|
+
{comp}
|
|
2038
634
|
<TooltipContent
|
|
2039
635
|
side="right"
|
|
2040
636
|
align="center"
|
|
@@ -2045,195 +641,54 @@ function SidebarMenuButton({
|
|
|
2045
641
|
);
|
|
2046
642
|
}
|
|
2047
643
|
|
|
644
|
+
type SidebarMenuActionProps = useRender.ComponentProps<"button"> &
|
|
645
|
+
React.ComponentProps<"button"> & {
|
|
646
|
+
/** Only show on hover/focus. @default false */
|
|
647
|
+
showOnHover?: boolean;
|
|
648
|
+
};
|
|
649
|
+
|
|
2048
650
|
/**
|
|
2049
|
-
* Secondary action button for
|
|
2050
|
-
*
|
|
2051
|
-
* A compact action button positioned on the right side of menu items, providing
|
|
2052
|
-
* secondary actions like edit, delete, or more options. Can be configured to show
|
|
2053
|
-
* only on hover for cleaner interfaces or remain always visible for important actions.
|
|
2054
|
-
*
|
|
2055
|
-
* @component
|
|
2056
|
-
*
|
|
2057
|
-
* @param {string} [className] - Additional CSS classes
|
|
2058
|
-
* @param {boolean} [asChild=false] - Render as child element using Slot composition
|
|
2059
|
-
* @param {boolean} [showOnHover=false] - Only show button on menu item hover
|
|
2060
|
-
* @param {...React.ComponentProps<"button">} props - All button element props
|
|
2061
|
-
*
|
|
2062
|
-
* @example
|
|
2063
|
-
* ```tsx
|
|
2064
|
-
* // Always visible action button
|
|
2065
|
-
* <SidebarMenuItem>
|
|
2066
|
-
* <SidebarMenuButton>
|
|
2067
|
-
* <Folder />
|
|
2068
|
-
* <span>Projects</span>
|
|
2069
|
-
* </SidebarMenuButton>
|
|
2070
|
-
* <SidebarMenuAction>
|
|
2071
|
-
* <MoreHorizontal className="h-4 w-4" />
|
|
2072
|
-
* </SidebarMenuAction>
|
|
2073
|
-
* </SidebarMenuItem>
|
|
2074
|
-
* ```
|
|
2075
|
-
*
|
|
2076
|
-
* @example
|
|
2077
|
-
* ```tsx
|
|
2078
|
-
* // Show only on hover
|
|
2079
|
-
* <SidebarMenuItem>
|
|
2080
|
-
* <SidebarMenuButton>
|
|
2081
|
-
* <File />
|
|
2082
|
-
* <span>Document</span>
|
|
2083
|
-
* </SidebarMenuButton>
|
|
2084
|
-
* <SidebarMenuAction showOnHover>
|
|
2085
|
-
* <Trash2 className="h-4 w-4" />
|
|
2086
|
-
* </SidebarMenuAction>
|
|
2087
|
-
* </SidebarMenuItem>
|
|
2088
|
-
* ```
|
|
2089
|
-
*
|
|
2090
|
-
* @example
|
|
2091
|
-
* ```tsx
|
|
2092
|
-
* // Custom action with asChild
|
|
2093
|
-
* <SidebarMenuItem>
|
|
2094
|
-
* <SidebarMenuButton>
|
|
2095
|
-
* <Star />
|
|
2096
|
-
* <span>Favorites</span>
|
|
2097
|
-
* </SidebarMenuButton>
|
|
2098
|
-
* <SidebarMenuAction asChild>
|
|
2099
|
-
* <DropdownMenu>
|
|
2100
|
-
* <DropdownMenuTrigger>
|
|
2101
|
-
* <MoreVertical className="h-4 w-4" />
|
|
2102
|
-
* </DropdownMenuTrigger>
|
|
2103
|
-
* <DropdownMenuContent>
|
|
2104
|
-
* <DropdownMenuItem>Edit</DropdownMenuItem>
|
|
2105
|
-
* <DropdownMenuItem>Delete</DropdownMenuItem>
|
|
2106
|
-
* </DropdownMenuContent>
|
|
2107
|
-
* </DropdownMenu>
|
|
2108
|
-
* </SidebarMenuAction>
|
|
2109
|
-
* </SidebarMenuItem>
|
|
2110
|
-
* ```
|
|
2111
|
-
*
|
|
2112
|
-
* @accessibility
|
|
2113
|
-
* - Increased touch target area on mobile devices
|
|
2114
|
-
* - Keyboard accessible with proper focus management
|
|
2115
|
-
* - Hidden from screen readers when showOnHover and not focused
|
|
2116
|
-
* - Proper contrast ratios for visibility
|
|
2117
|
-
*
|
|
2118
|
-
* @see {@link SidebarMenuItem} - Parent menu item
|
|
2119
|
-
* @see {@link SidebarMenuButton} - Primary menu button
|
|
2120
|
-
* @since 1.0.0
|
|
651
|
+
* Secondary action button for menu item (e.g., delete, edit). Positioned on right side.
|
|
2121
652
|
*/
|
|
2122
653
|
function SidebarMenuAction({
|
|
2123
654
|
className,
|
|
2124
|
-
|
|
655
|
+
render,
|
|
2125
656
|
showOnHover = false,
|
|
2126
657
|
...props
|
|
2127
|
-
}: {
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0",
|
|
2148
|
-
className,
|
|
2149
|
-
)}
|
|
2150
|
-
{...props}
|
|
2151
|
-
/>
|
|
2152
|
-
);
|
|
658
|
+
}: SidebarMenuActionProps) {
|
|
659
|
+
return useRender({
|
|
660
|
+
defaultTagName: "button",
|
|
661
|
+
props: mergeProps<"button">(
|
|
662
|
+
{
|
|
663
|
+
className: cn(
|
|
664
|
+
"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-md p-0 peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>svg]:size-4 flex items-center justify-center outline-hidden transition-transform group-data-[collapsible=icon]:hidden after:absolute after:-inset-2 md:after:hidden [&>svg]:shrink-0",
|
|
665
|
+
showOnHover &&
|
|
666
|
+
"peer-data-active/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-open:opacity-100 md:opacity-0",
|
|
667
|
+
className,
|
|
668
|
+
),
|
|
669
|
+
},
|
|
670
|
+
props,
|
|
671
|
+
),
|
|
672
|
+
render,
|
|
673
|
+
state: {
|
|
674
|
+
slot: "sidebar-menu-action",
|
|
675
|
+
sidebar: "menu-action",
|
|
676
|
+
},
|
|
677
|
+
});
|
|
2153
678
|
}
|
|
2154
679
|
|
|
680
|
+
type SidebarMenuBadgeProps = React.ComponentProps<"div">;
|
|
681
|
+
|
|
2155
682
|
/**
|
|
2156
|
-
* Badge
|
|
2157
|
-
*
|
|
2158
|
-
* Displays count indicators, status badges, or notification markers on menu items.
|
|
2159
|
-
* Positioned on the right side of menu items and automatically coordinates with
|
|
2160
|
-
* menu button states and sidebar collapse behavior.
|
|
2161
|
-
*
|
|
2162
|
-
* @component
|
|
2163
|
-
*
|
|
2164
|
-
* @param {string} [className] - Additional CSS classes
|
|
2165
|
-
* @param {...React.ComponentProps<"div">} props - All div element props
|
|
2166
|
-
*
|
|
2167
|
-
* @example
|
|
2168
|
-
* ```tsx
|
|
2169
|
-
* // Unread count badge
|
|
2170
|
-
* <SidebarMenuItem>
|
|
2171
|
-
* <SidebarMenuButton>
|
|
2172
|
-
* <Inbox />
|
|
2173
|
-
* <span>Messages</span>
|
|
2174
|
-
* </SidebarMenuButton>
|
|
2175
|
-
* <SidebarMenuBadge>12</SidebarMenuBadge>
|
|
2176
|
-
* </SidebarMenuItem>
|
|
2177
|
-
* ```
|
|
2178
|
-
*
|
|
2179
|
-
* @example
|
|
2180
|
-
* ```tsx
|
|
2181
|
-
* // Status indicator
|
|
2182
|
-
* <SidebarMenuItem>
|
|
2183
|
-
* <SidebarMenuButton>
|
|
2184
|
-
* <Activity />
|
|
2185
|
-
* <span>System Status</span>
|
|
2186
|
-
* </SidebarMenuButton>
|
|
2187
|
-
* <SidebarMenuBadge className="bg-green-500">●</SidebarMenuBadge>
|
|
2188
|
-
* </SidebarMenuItem>
|
|
2189
|
-
* ```
|
|
2190
|
-
*
|
|
2191
|
-
* @example
|
|
2192
|
-
* ```tsx
|
|
2193
|
-
* // Dynamic badge with state
|
|
2194
|
-
* <SidebarMenuItem>
|
|
2195
|
-
* <SidebarMenuButton>
|
|
2196
|
-
* <Bell />
|
|
2197
|
-
* <span>Notifications</span>
|
|
2198
|
-
* </SidebarMenuButton>
|
|
2199
|
-
* {notificationCount > 0 && (
|
|
2200
|
-
* <SidebarMenuBadge>{notificationCount}</SidebarMenuBadge>
|
|
2201
|
-
* )}
|
|
2202
|
-
* </SidebarMenuItem>
|
|
2203
|
-
* ```
|
|
2204
|
-
*
|
|
2205
|
-
* @features
|
|
2206
|
-
* - Automatic positioning relative to menu button size
|
|
2207
|
-
* - Hidden when sidebar is collapsed to icon mode
|
|
2208
|
-
* - Tabular numbers for consistent numeric display
|
|
2209
|
-
* - Pointer events disabled to prevent interference
|
|
2210
|
-
*
|
|
2211
|
-
* @accessibility
|
|
2212
|
-
* - Non-interactive (pointer-events-none)
|
|
2213
|
-
* - Proper color contrast for readability
|
|
2214
|
-
* - Screen reader friendly with appropriate text
|
|
2215
|
-
*
|
|
2216
|
-
* @see {@link SidebarMenuItem} - Parent menu item
|
|
2217
|
-
* @see {@link SidebarMenuButton} - Associated menu button
|
|
2218
|
-
* @since 1.0.0
|
|
683
|
+
* Badge/counter displayed on right side of menu item (e.g., notification count).
|
|
2219
684
|
*/
|
|
2220
|
-
function SidebarMenuBadge({
|
|
2221
|
-
className,
|
|
2222
|
-
...props
|
|
2223
|
-
}: {
|
|
2224
|
-
className?: string;
|
|
2225
|
-
} & React.ComponentProps<"div">) {
|
|
685
|
+
function SidebarMenuBadge({ className, ...props }: SidebarMenuBadgeProps) {
|
|
2226
686
|
return (
|
|
2227
687
|
<div
|
|
2228
688
|
data-slot="sidebar-menu-badge"
|
|
2229
689
|
data-sidebar="menu-badge"
|
|
2230
690
|
className={cn(
|
|
2231
|
-
"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5
|
|
2232
|
-
"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
|
|
2233
|
-
"peer-data-[size=sm]/menu-button:top-1",
|
|
2234
|
-
"peer-data-[size=default]/menu-button:top-1.5",
|
|
2235
|
-
"peer-data-[size=lg]/menu-button:top-2.5",
|
|
2236
|
-
"group-data-[collapsible=icon]:hidden",
|
|
691
|
+
"text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 rounded-md px-1 text-xs font-medium peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 flex items-center justify-center tabular-nums select-none group-data-[collapsible=icon]:hidden",
|
|
2237
692
|
className,
|
|
2238
693
|
)}
|
|
2239
694
|
{...props}
|
|
@@ -2241,94 +696,29 @@ function SidebarMenuBadge({
|
|
|
2241
696
|
);
|
|
2242
697
|
}
|
|
2243
698
|
|
|
699
|
+
type SidebarMenuSkeletonProps = React.ComponentProps<"div"> & {
|
|
700
|
+
/** Show icon skeleton. @default false */
|
|
701
|
+
showIcon?: boolean;
|
|
702
|
+
};
|
|
703
|
+
|
|
2244
704
|
/**
|
|
2245
|
-
* Loading skeleton placeholder for menu
|
|
2246
|
-
*
|
|
2247
|
-
* Displays an animated loading placeholder while menu items are being fetched
|
|
2248
|
-
* or loaded. Features random width variation to simulate realistic content
|
|
2249
|
-
* and optional icon placeholder for more accurate representation.
|
|
2250
|
-
*
|
|
2251
|
-
* @component
|
|
2252
|
-
*
|
|
2253
|
-
* @param {string} [className] - Additional CSS classes
|
|
2254
|
-
* @param {boolean} [showIcon=false] - Whether to show icon placeholder
|
|
2255
|
-
* @param {...React.ComponentProps<"div">} props - All div element props
|
|
2256
|
-
*
|
|
2257
|
-
* @example
|
|
2258
|
-
* ```tsx
|
|
2259
|
-
* // Basic skeleton without icon
|
|
2260
|
-
* <SidebarMenu>
|
|
2261
|
-
* <SidebarMenuItem>
|
|
2262
|
-
* <SidebarMenuSkeleton />
|
|
2263
|
-
* </SidebarMenuItem>
|
|
2264
|
-
* <SidebarMenuItem>
|
|
2265
|
-
* <SidebarMenuSkeleton />
|
|
2266
|
-
* </SidebarMenuItem>
|
|
2267
|
-
* </SidebarMenu>
|
|
2268
|
-
* ```
|
|
2269
|
-
*
|
|
2270
|
-
* @example
|
|
2271
|
-
* ```tsx
|
|
2272
|
-
* // Skeleton with icon placeholder
|
|
2273
|
-
* <SidebarMenu>
|
|
2274
|
-
* {Array.from({ length: 5 }).map((_, index) => (
|
|
2275
|
-
* <SidebarMenuItem key={index}>
|
|
2276
|
-
* <SidebarMenuSkeleton showIcon />
|
|
2277
|
-
* </SidebarMenuItem>
|
|
2278
|
-
* ))}
|
|
2279
|
-
* </SidebarMenu>
|
|
2280
|
-
* ```
|
|
2281
|
-
*
|
|
2282
|
-
* @example
|
|
2283
|
-
* ```tsx
|
|
2284
|
-
* // Loading state with React Suspense
|
|
2285
|
-
* <SidebarGroup>
|
|
2286
|
-
* <SidebarGroupLabel>Projects</SidebarGroupLabel>
|
|
2287
|
-
* <SidebarGroupContent>
|
|
2288
|
-
* <SidebarMenu>
|
|
2289
|
-
* <React.Suspense
|
|
2290
|
-
* fallback={
|
|
2291
|
-
* <>
|
|
2292
|
-
* <SidebarMenuItem><SidebarMenuSkeleton showIcon /></SidebarMenuItem>
|
|
2293
|
-
* <SidebarMenuItem><SidebarMenuSkeleton showIcon /></SidebarMenuItem>
|
|
2294
|
-
* <SidebarMenuItem><SidebarMenuSkeleton showIcon /></SidebarMenuItem>
|
|
2295
|
-
* </>
|
|
2296
|
-
* }
|
|
2297
|
-
* >
|
|
2298
|
-
* <ProjectsList />
|
|
2299
|
-
* </React.Suspense>
|
|
2300
|
-
* </SidebarMenu>
|
|
2301
|
-
* </SidebarGroupContent>
|
|
2302
|
-
* </SidebarGroup>
|
|
2303
|
-
* ```
|
|
2304
|
-
*
|
|
2305
|
-
* @features
|
|
2306
|
-
* - Random width variation (50-90%) for realistic appearance
|
|
2307
|
-
* - Optional icon skeleton placeholder
|
|
2308
|
-
* - Smooth loading animation
|
|
2309
|
-
* - Proper sizing to match actual menu items
|
|
2310
|
-
*
|
|
2311
|
-
* @see {@link SidebarMenuItem} - Container for skeleton
|
|
2312
|
-
* @see {@link SidebarMenu} - Parent menu container
|
|
2313
|
-
* @see {@link Skeleton} - Base skeleton component
|
|
2314
|
-
* @since 1.0.0
|
|
705
|
+
* Loading skeleton placeholder for menu item with randomized width.
|
|
2315
706
|
*/
|
|
2316
707
|
function SidebarMenuSkeleton({
|
|
2317
708
|
className,
|
|
2318
709
|
showIcon = false,
|
|
2319
710
|
...props
|
|
2320
|
-
}: {
|
|
2321
|
-
className?: string;
|
|
2322
|
-
showIcon?: boolean;
|
|
2323
|
-
} & React.ComponentProps<"div">) {
|
|
711
|
+
}: SidebarMenuSkeletonProps) {
|
|
2324
712
|
// Random width between 50 to 90%.
|
|
2325
|
-
const width =
|
|
713
|
+
const [width] = React.useState(() => {
|
|
714
|
+
return `${Math.floor(Math.random() * 40) + 50}%`;
|
|
715
|
+
});
|
|
2326
716
|
|
|
2327
717
|
return (
|
|
2328
718
|
<div
|
|
2329
719
|
data-slot="sidebar-menu-skeleton"
|
|
2330
720
|
data-sidebar="menu-skeleton"
|
|
2331
|
-
className={cn("
|
|
721
|
+
className={cn("h-8 gap-2 rounded-md px-2 flex items-center", className)}
|
|
2332
722
|
{...props}
|
|
2333
723
|
>
|
|
2334
724
|
{showIcon && (
|
|
@@ -2350,98 +740,18 @@ function SidebarMenuSkeleton({
|
|
|
2350
740
|
);
|
|
2351
741
|
}
|
|
2352
742
|
|
|
743
|
+
type SidebarMenuSubProps = React.ComponentProps<"ul">;
|
|
744
|
+
|
|
2353
745
|
/**
|
|
2354
|
-
*
|
|
2355
|
-
*
|
|
2356
|
-
* A specialized container for nested navigation items that provides visual hierarchy
|
|
2357
|
-
* through indentation and connecting border lines. Perfect for organizing complex
|
|
2358
|
-
* navigation structures with parent-child relationships.
|
|
2359
|
-
*
|
|
2360
|
-
* @component
|
|
2361
|
-
*
|
|
2362
|
-
* @param {string} [className] - Additional CSS classes
|
|
2363
|
-
* @param {...React.ComponentProps<"ul">} props - All ul element props
|
|
2364
|
-
*
|
|
2365
|
-
* @example
|
|
2366
|
-
* ```tsx
|
|
2367
|
-
* // Collapsible submenu with parent item
|
|
2368
|
-
* <SidebarMenuItem>
|
|
2369
|
-
* <Collapsible>
|
|
2370
|
-
* <CollapsibleTrigger asChild>
|
|
2371
|
-
* <SidebarMenuButton>
|
|
2372
|
-
* <Folder />
|
|
2373
|
-
* <span>Projects</span>
|
|
2374
|
-
* <ChevronRight className="ml-auto transition-transform group-data-[state=open]:rotate-90" />
|
|
2375
|
-
* </SidebarMenuButton>
|
|
2376
|
-
* </CollapsibleTrigger>
|
|
2377
|
-
* <CollapsibleContent>
|
|
2378
|
-
* <SidebarMenuSub>
|
|
2379
|
-
* <SidebarMenuSubItem>
|
|
2380
|
-
* <SidebarMenuSubButton>Web Application</SidebarMenuSubButton>
|
|
2381
|
-
* </SidebarMenuSubItem>
|
|
2382
|
-
* <SidebarMenuSubItem>
|
|
2383
|
-
* <SidebarMenuSubButton>Mobile App</SidebarMenuSubButton>
|
|
2384
|
-
* </SidebarMenuSubItem>
|
|
2385
|
-
* <SidebarMenuSubItem>
|
|
2386
|
-
* <SidebarMenuSubButton>Documentation</SidebarMenuSubButton>
|
|
2387
|
-
* </SidebarMenuSubItem>
|
|
2388
|
-
* </SidebarMenuSub>
|
|
2389
|
-
* </CollapsibleContent>
|
|
2390
|
-
* </Collapsible>
|
|
2391
|
-
* </SidebarMenuItem>
|
|
2392
|
-
* ```
|
|
2393
|
-
*
|
|
2394
|
-
* @example
|
|
2395
|
-
* ```tsx
|
|
2396
|
-
* // Always expanded submenu
|
|
2397
|
-
* <SidebarMenuItem>
|
|
2398
|
-
* <SidebarMenuButton>
|
|
2399
|
-
* <Settings />
|
|
2400
|
-
* <span>Settings</span>
|
|
2401
|
-
* </SidebarMenuButton>
|
|
2402
|
-
* <SidebarMenuSub>
|
|
2403
|
-
* <SidebarMenuSubItem>
|
|
2404
|
-
* <SidebarMenuSubButton>General</SidebarMenuSubButton>
|
|
2405
|
-
* </SidebarMenuSubItem>
|
|
2406
|
-
* <SidebarMenuSubItem>
|
|
2407
|
-
* <SidebarMenuSubButton>Privacy</SidebarMenuSubButton>
|
|
2408
|
-
* </SidebarMenuSubItem>
|
|
2409
|
-
* <SidebarMenuSubItem>
|
|
2410
|
-
* <SidebarMenuSubButton>Security</SidebarMenuSubButton>
|
|
2411
|
-
* </SidebarMenuSubItem>
|
|
2412
|
-
* </SidebarMenuSub>
|
|
2413
|
-
* </SidebarMenuItem>
|
|
2414
|
-
* ```
|
|
2415
|
-
*
|
|
2416
|
-
* @features
|
|
2417
|
-
* - Visual hierarchy with left border and indentation
|
|
2418
|
-
* - Automatic hiding when sidebar is collapsed
|
|
2419
|
-
* - Proper spacing and alignment with parent items
|
|
2420
|
-
* - Seamless integration with collapsible components
|
|
2421
|
-
*
|
|
2422
|
-
* @accessibility
|
|
2423
|
-
* - Semantic ul/li structure for screen readers
|
|
2424
|
-
* - Proper nesting hierarchy for navigation
|
|
2425
|
-
* - Keyboard navigation support
|
|
2426
|
-
*
|
|
2427
|
-
* @see {@link SidebarMenuSubItem} - Individual submenu item
|
|
2428
|
-
* @see {@link SidebarMenuSubButton} - Submenu button component
|
|
2429
|
-
* @see {@link SidebarMenuItem} - Parent menu item
|
|
2430
|
-
* @since 1.0.0
|
|
746
|
+
* Nested submenu list with indented border. Place inside SidebarMenuItem.
|
|
2431
747
|
*/
|
|
2432
|
-
function SidebarMenuSub({
|
|
2433
|
-
className,
|
|
2434
|
-
...props
|
|
2435
|
-
}: {
|
|
2436
|
-
className?: string;
|
|
2437
|
-
} & React.ComponentProps<"ul">) {
|
|
748
|
+
function SidebarMenuSub({ className, ...props }: SidebarMenuSubProps) {
|
|
2438
749
|
return (
|
|
2439
750
|
<ul
|
|
2440
751
|
data-slot="sidebar-menu-sub"
|
|
2441
752
|
data-sidebar="menu-sub"
|
|
2442
753
|
className={cn(
|
|
2443
|
-
"border-sidebar-border mx-3.5
|
|
2444
|
-
"group-data-[collapsible=icon]:hidden",
|
|
754
|
+
"border-sidebar-border mx-3.5 translate-x-px gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden flex min-w-0 flex-col",
|
|
2445
755
|
className,
|
|
2446
756
|
)}
|
|
2447
757
|
{...props}
|
|
@@ -2449,58 +759,12 @@ function SidebarMenuSub({
|
|
|
2449
759
|
);
|
|
2450
760
|
}
|
|
2451
761
|
|
|
762
|
+
type SidebarMenuSubItemProps = React.ComponentProps<"li">;
|
|
763
|
+
|
|
2452
764
|
/**
|
|
2453
|
-
*
|
|
2454
|
-
*
|
|
2455
|
-
* A list item container for single nested navigation items within a submenu,
|
|
2456
|
-
* providing the structural foundation for hierarchical navigation elements.
|
|
2457
|
-
*
|
|
2458
|
-
* @component
|
|
2459
|
-
*
|
|
2460
|
-
* @param {string} [className] - Additional CSS classes
|
|
2461
|
-
* @param {...React.ComponentProps<"li">} props - All li element props
|
|
2462
|
-
*
|
|
2463
|
-
* @example
|
|
2464
|
-
* ```tsx
|
|
2465
|
-
* // Basic submenu item
|
|
2466
|
-
* <SidebarMenuSub>
|
|
2467
|
-
* <SidebarMenuSubItem>
|
|
2468
|
-
* <SidebarMenuSubButton asChild>
|
|
2469
|
-
* <Link href="/projects/web-app">
|
|
2470
|
-
* <span>Web Application</span>
|
|
2471
|
-
* </Link>
|
|
2472
|
-
* </SidebarMenuSubButton>
|
|
2473
|
-
* </SidebarMenuSubItem>
|
|
2474
|
-
* </SidebarMenuSub>
|
|
2475
|
-
* ```
|
|
2476
|
-
*
|
|
2477
|
-
* @example
|
|
2478
|
-
* ```tsx
|
|
2479
|
-
* // Submenu item with active state
|
|
2480
|
-
* <SidebarMenuSub>
|
|
2481
|
-
* <SidebarMenuSubItem>
|
|
2482
|
-
* <SidebarMenuSubButton
|
|
2483
|
-
* isActive={pathname === '/settings/general'}
|
|
2484
|
-
* asChild
|
|
2485
|
-
* >
|
|
2486
|
-
* <Link href="/settings/general">
|
|
2487
|
-
* <span>General Settings</span>
|
|
2488
|
-
* </Link>
|
|
2489
|
-
* </SidebarMenuSubButton>
|
|
2490
|
-
* </SidebarMenuSubItem>
|
|
2491
|
-
* </SidebarMenuSub>
|
|
2492
|
-
* ```
|
|
2493
|
-
*
|
|
2494
|
-
* @see {@link SidebarMenuSub} - Parent submenu container
|
|
2495
|
-
* @see {@link SidebarMenuSubButton} - Interactive button component
|
|
2496
|
-
* @since 1.0.0
|
|
765
|
+
* List item wrapper for submenu entry.
|
|
2497
766
|
*/
|
|
2498
|
-
function SidebarMenuSubItem({
|
|
2499
|
-
className,
|
|
2500
|
-
...props
|
|
2501
|
-
}: {
|
|
2502
|
-
className?: string;
|
|
2503
|
-
} & React.ComponentProps<"li">) {
|
|
767
|
+
function SidebarMenuSubItem({ className, ...props }: SidebarMenuSubItemProps) {
|
|
2504
768
|
return (
|
|
2505
769
|
<li
|
|
2506
770
|
data-slot="sidebar-menu-sub-item"
|
|
@@ -2511,118 +775,43 @@ function SidebarMenuSubItem({
|
|
|
2511
775
|
);
|
|
2512
776
|
}
|
|
2513
777
|
|
|
778
|
+
type SidebarMenuSubButtonProps = useRender.ComponentProps<"a"> &
|
|
779
|
+
React.ComponentProps<"a"> & {
|
|
780
|
+
/** Size variant. @default "md" */
|
|
781
|
+
size?: "sm" | "md";
|
|
782
|
+
/** Mark as active/current page. */
|
|
783
|
+
isActive?: boolean;
|
|
784
|
+
};
|
|
785
|
+
|
|
2514
786
|
/**
|
|
2515
|
-
*
|
|
2516
|
-
*
|
|
2517
|
-
* The primary interactive element for nested navigation items within submenus,
|
|
2518
|
-
* featuring support for active states, different sizes, and composition patterns.
|
|
2519
|
-
* Designed specifically for hierarchical navigation with appropriate styling and spacing.
|
|
2520
|
-
*
|
|
2521
|
-
* @component
|
|
2522
|
-
*
|
|
2523
|
-
* @param {boolean} [asChild=false] - Render as child element using Slot composition
|
|
2524
|
-
* @param {"sm" | "md"} [size="md"] - Button size variant:
|
|
2525
|
-
* - `sm`: Small size with text-xs
|
|
2526
|
-
* - `md`: Medium size with text-sm
|
|
2527
|
-
* @param {boolean} [isActive=false] - Whether this submenu item is currently active
|
|
2528
|
-
* @param {string} [className] - Additional CSS classes
|
|
2529
|
-
* @param {...React.ComponentProps<"a">} props - All anchor element props
|
|
2530
|
-
*
|
|
2531
|
-
* @example
|
|
2532
|
-
* ```tsx
|
|
2533
|
-
* // Basic submenu button
|
|
2534
|
-
* <SidebarMenuSubItem>
|
|
2535
|
-
* <SidebarMenuSubButton>
|
|
2536
|
-
* <span>Documentation</span>
|
|
2537
|
-
* </SidebarMenuSubButton>
|
|
2538
|
-
* </SidebarMenuSubItem>
|
|
2539
|
-
* ```
|
|
2540
|
-
*
|
|
2541
|
-
* @example
|
|
2542
|
-
* ```tsx
|
|
2543
|
-
* // Link composition with active state
|
|
2544
|
-
* <SidebarMenuSubItem>
|
|
2545
|
-
* <SidebarMenuSubButton
|
|
2546
|
-
* asChild
|
|
2547
|
-
* isActive={pathname === '/projects/mobile'}
|
|
2548
|
-
* >
|
|
2549
|
-
* <Link href="/projects/mobile">
|
|
2550
|
-
* <span>Mobile Application</span>
|
|
2551
|
-
* </Link>
|
|
2552
|
-
* </SidebarMenuSubButton>
|
|
2553
|
-
* </SidebarMenuSubItem>
|
|
2554
|
-
* ```
|
|
2555
|
-
*
|
|
2556
|
-
* @example
|
|
2557
|
-
* ```tsx
|
|
2558
|
-
* // Small size variant
|
|
2559
|
-
* <SidebarMenuSubItem>
|
|
2560
|
-
* <SidebarMenuSubButton size="sm">
|
|
2561
|
-
* <span>API Reference</span>
|
|
2562
|
-
* </SidebarMenuSubButton>
|
|
2563
|
-
* </SidebarMenuSubItem>
|
|
2564
|
-
* ```
|
|
2565
|
-
*
|
|
2566
|
-
* @example
|
|
2567
|
-
* ```tsx
|
|
2568
|
-
* // With icon and custom styling
|
|
2569
|
-
* <SidebarMenuSubItem>
|
|
2570
|
-
* <SidebarMenuSubButton className="gap-3">
|
|
2571
|
-
* <File className="h-3 w-3" />
|
|
2572
|
-
* <span>README.md</span>
|
|
2573
|
-
* </SidebarMenuSubButton>
|
|
2574
|
-
* </SidebarMenuSubItem>
|
|
2575
|
-
* ```
|
|
2576
|
-
*
|
|
2577
|
-
* @accessibility
|
|
2578
|
-
* - Full keyboard navigation support
|
|
2579
|
-
* - Focus visible indicators
|
|
2580
|
-
* - Active state indication for screen readers
|
|
2581
|
-
* - Proper contrast ratios for all states
|
|
2582
|
-
* - Support for assistive technology navigation
|
|
2583
|
-
*
|
|
2584
|
-
* @features
|
|
2585
|
-
* - Automatic hiding when parent sidebar is collapsed
|
|
2586
|
-
* - Smooth hover and focus transitions
|
|
2587
|
-
* - Consistent spacing with parent menu items
|
|
2588
|
-
* - Overflow text truncation for long labels
|
|
2589
|
-
*
|
|
2590
|
-
* @see {@link SidebarMenuSubItem} - Parent submenu item container
|
|
2591
|
-
* @see {@link SidebarMenuSub} - Submenu container
|
|
2592
|
-
* @see {@link SidebarMenuButton} - Parent menu button
|
|
2593
|
-
* @since 1.0.0
|
|
787
|
+
* Link button for submenu item. Defaults to anchor tag.
|
|
2594
788
|
*/
|
|
2595
789
|
function SidebarMenuSubButton({
|
|
2596
|
-
|
|
790
|
+
render,
|
|
2597
791
|
size = "md",
|
|
2598
792
|
isActive = false,
|
|
2599
793
|
className,
|
|
2600
794
|
...props
|
|
2601
|
-
}: {
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
2621
|
-
className,
|
|
2622
|
-
)}
|
|
2623
|
-
{...props}
|
|
2624
|
-
/>
|
|
2625
|
-
);
|
|
795
|
+
}: SidebarMenuSubButtonProps) {
|
|
796
|
+
return useRender({
|
|
797
|
+
defaultTagName: "a",
|
|
798
|
+
props: mergeProps<"a">(
|
|
799
|
+
{
|
|
800
|
+
className: cn(
|
|
801
|
+
"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground h-7 gap-2 rounded-md px-2 focus-visible:ring-2 data-[size=md]:text-sm data-[size=sm]:text-xs [&>svg]:size-4 flex min-w-0 -translate-x-px items-center overflow-hidden outline-hidden group-data-[collapsible=icon]:hidden disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0",
|
|
802
|
+
className,
|
|
803
|
+
),
|
|
804
|
+
},
|
|
805
|
+
props,
|
|
806
|
+
),
|
|
807
|
+
render,
|
|
808
|
+
state: {
|
|
809
|
+
slot: "sidebar-menu-sub-button",
|
|
810
|
+
sidebar: "menu-sub-button",
|
|
811
|
+
size,
|
|
812
|
+
active: isActive,
|
|
813
|
+
},
|
|
814
|
+
});
|
|
2626
815
|
}
|
|
2627
816
|
|
|
2628
817
|
export {
|
|
@@ -2650,4 +839,27 @@ export {
|
|
|
2650
839
|
SidebarSeparator,
|
|
2651
840
|
SidebarTrigger,
|
|
2652
841
|
useSidebar,
|
|
842
|
+
type SidebarProps,
|
|
843
|
+
type SidebarContentProps,
|
|
844
|
+
type SidebarFooterProps,
|
|
845
|
+
type SidebarGroupProps,
|
|
846
|
+
type SidebarGroupActionProps,
|
|
847
|
+
type SidebarGroupContentProps,
|
|
848
|
+
type SidebarGroupLabelProps,
|
|
849
|
+
type SidebarHeaderProps,
|
|
850
|
+
type SidebarInputProps,
|
|
851
|
+
type SidebarInsetProps,
|
|
852
|
+
type SidebarMenuProps,
|
|
853
|
+
type SidebarMenuActionProps,
|
|
854
|
+
type SidebarMenuBadgeProps,
|
|
855
|
+
type SidebarMenuButtonProps,
|
|
856
|
+
type SidebarMenuItemProps,
|
|
857
|
+
type SidebarMenuSkeletonProps,
|
|
858
|
+
type SidebarMenuSubProps,
|
|
859
|
+
type SidebarMenuSubButtonProps,
|
|
860
|
+
type SidebarMenuSubItemProps,
|
|
861
|
+
type SidebarProviderProps,
|
|
862
|
+
type SidebarRailProps,
|
|
863
|
+
type SidebarSeparatorProps,
|
|
864
|
+
type SidebarTriggerProps,
|
|
2653
865
|
};
|