@keboola/design 15.0.0 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +6 -5
- package/CHANGELOG.md +94 -0
- package/COMPONENT-API.md +62 -61
- package/dist/{AIKit-CaAW4GLx.js → AIKit-Cf5plya2.js} +381 -224
- package/dist/AIKit-Cf5plya2.js.map +1 -0
- package/dist/{Alert-Chz6KZ7e.js → Alert-DziS8n1H.js} +12 -19
- package/dist/{Alert-Chz6KZ7e.js.map → Alert-DziS8n1H.js.map} +1 -1
- package/dist/{AlertModal-D4AtpvLS.js → AlertModal-De04fFoy.js} +16 -26
- package/dist/AlertModal-De04fFoy.js.map +1 -0
- package/dist/{AppShell-C8V1KRr_.js → AppShell-BUa3U7-e.js} +6 -9
- package/dist/{AppShell-C8V1KRr_.js.map → AppShell-BUa3U7-e.js.map} +1 -1
- package/dist/{AutoSaveTextarea-BbMhC5Aq.js → AutoSaveTextarea-CXHOQSun.js} +4 -5
- package/dist/{AutoSaveTextarea-BbMhC5Aq.js.map → AutoSaveTextarea-CXHOQSun.js.map} +1 -1
- package/dist/{Badge-5GHIsgRS.js → Badge-CFRhducL.js} +18 -23
- package/dist/Badge-CFRhducL.js.map +1 -0
- package/dist/{BrandEditor-CTGtQUFZ.js → BrandEditor-hiLBX7az.js} +16 -23
- package/dist/{BrandEditor-CTGtQUFZ.js.map → BrandEditor-hiLBX7az.js.map} +1 -1
- package/dist/{BrandLogo-DkESE19K.js → BrandLogo-Dn7hhp2c.js} +4 -5
- package/dist/{BrandLogo-DkESE19K.js.map → BrandLogo-Dn7hhp2c.js.map} +1 -1
- package/dist/{Breadcrumb-B2YSNON4.js → Breadcrumb-uGFEIjFF.js} +17 -28
- package/dist/{Breadcrumb-B2YSNON4.js.map → Breadcrumb-uGFEIjFF.js.map} +1 -1
- package/dist/{Button-BNkyYU8u.js → Button-DbvGzEDb.js} +24 -20
- package/dist/Button-DbvGzEDb.js.map +1 -0
- package/dist/{Calendar-BnKi1kPu.js → Calendar-lJBTETbk.js} +752 -905
- package/dist/Calendar-lJBTETbk.js.map +1 -0
- package/dist/{Card-DxjGiqH8.js → Card-VIPfOVW5.js} +8 -14
- package/dist/{Card-DxjGiqH8.js.map → Card-VIPfOVW5.js.map} +1 -1
- package/dist/{Checkbox-CHDDJyAA.js → Checkbox-B2jLlyaO.js} +6 -8
- package/dist/{Checkbox-CHDDJyAA.js.map → Checkbox-B2jLlyaO.js.map} +1 -1
- package/dist/{Clipboard-DlwVZS1P.js → Clipboard-fAkDdpEu.js} +4 -5
- package/dist/{Clipboard-DlwVZS1P.js.map → Clipboard-fAkDdpEu.js.map} +1 -1
- package/dist/{ClipboardButton-B1Hr_n_Z.js → ClipboardButton-71Ugbl8c.js} +6 -8
- package/dist/{ClipboardButton-B1Hr_n_Z.js.map → ClipboardButton-71Ugbl8c.js.map} +1 -1
- package/dist/{CodeEditor-DVSPdfdo.js → CodeEditor-D_b-ZCng.js} +19 -31
- package/dist/{CodeEditor-DVSPdfdo.js.map → CodeEditor-D_b-ZCng.js.map} +1 -1
- package/dist/{Collapsible-DD4xTL75.js → Collapsible-zsXk4Vpp.js} +5 -8
- package/dist/{Collapsible-DD4xTL75.js.map → Collapsible-zsXk4Vpp.js.map} +1 -1
- package/dist/{ColorInput-B_eZIu39.js → ColorInput-Cjr1jkvy.js} +9 -12
- package/dist/{ColorInput-B_eZIu39.js.map → ColorInput-Cjr1jkvy.js.map} +1 -1
- package/dist/{ColorModeSwitch-B6UEzG0H.js → ColorModeSwitch-CuPYnJ2V.js} +5 -6
- package/dist/{ColorModeSwitch-B6UEzG0H.js.map → ColorModeSwitch-CuPYnJ2V.js.map} +1 -1
- package/dist/{Combobox-CaKqgstG.js → Combobox-DYjvYgl3.js} +38 -67
- package/dist/Combobox-DYjvYgl3.js.map +1 -0
- package/dist/{Command-DhXmqFLT.js → Command-BcTb6GsR.js} +14 -24
- package/dist/{Command-DhXmqFLT.js.map → Command-BcTb6GsR.js.map} +1 -1
- package/dist/{CopyField-D0Pg4Z0R.js → CopyField-CnwAvQz9.js} +16 -28
- package/dist/{CopyField-D0Pg4Z0R.js.map → CopyField-CnwAvQz9.js.map} +1 -1
- package/dist/{DateInput-BgbMDJkm.js → DateInput-DJNX7Vdx.js} +8 -10
- package/dist/{DateInput-BgbMDJkm.js.map → DateInput-DJNX7Vdx.js.map} +1 -1
- package/dist/{DatePicker-BXpDRo-R.js → DatePicker-CI59gF3S.js} +4 -5
- package/dist/{DatePicker-BXpDRo-R.js.map → DatePicker-CI59gF3S.js.map} +1 -1
- package/dist/{DateRangeInput-BW0-_jV0.js → DateRangeInput-B3g8cyS0.js} +8 -10
- package/dist/{DateRangeInput-BW0-_jV0.js.map → DateRangeInput-B3g8cyS0.js.map} +1 -1
- package/dist/{DateRangePicker-C4-DoWac.js → DateRangePicker-48yOB2qV.js} +9 -10
- package/dist/{DateRangePicker-C4-DoWac.js.map → DateRangePicker-48yOB2qV.js.map} +1 -1
- package/dist/{DiffView-Dy4z-n-1.js → DiffView-DITZdVbh.js} +7 -12
- package/dist/{DiffView-Dy4z-n-1.js.map → DiffView-DITZdVbh.js.map} +1 -1
- package/dist/{DropdownMenu-CcVbZ_5u.js → DropdownMenu-Ba9atqDa.js} +21 -37
- package/dist/DropdownMenu-Ba9atqDa.js.map +1 -0
- package/dist/{FieldBox-BrxLkY9C.js → FieldBox-DdSdJ3ZN.js} +6 -10
- package/dist/{FieldBox-BrxLkY9C.js.map → FieldBox-DdSdJ3ZN.js.map} +1 -1
- package/dist/{FieldItem-BHUqgSO1.js → FieldItem-D7eCMfMB.js} +6 -8
- package/dist/{FieldItem-BHUqgSO1.js.map → FieldItem-D7eCMfMB.js.map} +1 -1
- package/dist/{FieldItem-CPN1xjN5.d.ts → FieldItem-fqm3CNR8.d.ts} +7 -6
- package/dist/{FileUpload-BYFONpEl.js → FileUpload-DskvxhAr.js} +25 -45
- package/dist/{FileUpload-BYFONpEl.js.map → FileUpload-DskvxhAr.js.map} +1 -1
- package/dist/{Form-CAofWyMI.js → Form-BUNW7nlt.js} +24 -38
- package/dist/{Form-CAofWyMI.js.map → Form-BUNW7nlt.js.map} +1 -1
- package/dist/{FormGroup-V5kIgQRN.js → FormGroup-QJB21LKp.js} +12 -20
- package/dist/{FormGroup-V5kIgQRN.js.map → FormGroup-QJB21LKp.js.map} +1 -1
- package/dist/{FullScreenModal-DAvvlGOz.js → FullScreenModal-RzY5XxiG.js} +8 -12
- package/dist/{FullScreenModal-DAvvlGOz.js.map → FullScreenModal-RzY5XxiG.js.map} +1 -1
- package/dist/HoverCard-OGWKRXJ7.js +24 -0
- package/dist/HoverCard-OGWKRXJ7.js.map +1 -0
- package/dist/{InlineEdit-D4P0SvCB.js → InlineEdit-CXL0ZslO.js} +7 -8
- package/dist/{InlineEdit-D4P0SvCB.js.map → InlineEdit-CXL0ZslO.js.map} +1 -1
- package/dist/{InputGroup-CZv_7QlM.js → InputGroup-BWeanEo7.js} +9 -15
- package/dist/{InputGroup-CZv_7QlM.js.map → InputGroup-BWeanEo7.js.map} +1 -1
- package/dist/{Kbd-CflKthfu.js → Kbd-BprYCICe.js} +8 -13
- package/dist/{Kbd-CflKthfu.js.map → Kbd-BprYCICe.js.map} +1 -1
- package/dist/{MarkedText-DlmlJO0u.js → MarkedText-BrganZ_V.js} +4 -6
- package/dist/{MarkedText-DlmlJO0u.js.map → MarkedText-BrganZ_V.js.map} +1 -1
- package/dist/{MermaidDiagram-Te-5gOCU.js → MermaidDiagram-E3azndPk.js} +9 -11
- package/dist/{MermaidDiagram-Te-5gOCU.js.map → MermaidDiagram-E3azndPk.js.map} +1 -1
- package/dist/{Modal-CbUz-5YH.js → Modal-Cf_kPEBW.js} +14 -22
- package/dist/Modal-Cf_kPEBW.js.map +1 -0
- package/dist/{ModalTitle-cy0Ht9VY.js → ModalTitle-7vgpfc6B.js} +6 -9
- package/dist/ModalTitle-7vgpfc6B.js.map +1 -0
- package/dist/{MultiActionButtonGroup-Dzig87s1.js → MultiActionButtonGroup-8WQwL4UQ.js} +6 -8
- package/dist/{MultiActionButtonGroup-Dzig87s1.js.map → MultiActionButtonGroup-8WQwL4UQ.js.map} +1 -1
- package/dist/{Navbar-DHUS7XiU.js → Navbar-CRjxVboE.js} +13 -22
- package/dist/{Navbar-DHUS7XiU.js.map → Navbar-CRjxVboE.js.map} +1 -1
- package/dist/{OtpInput-CY8yCaJk.js → OtpInput-C5plPzGU.js} +7 -11
- package/dist/{OtpInput-CY8yCaJk.js.map → OtpInput-C5plPzGU.js.map} +1 -1
- package/dist/{PageHeader-CL1A6jFM.js → PageHeader-DosMyar2.js} +6 -10
- package/dist/{PageHeader-CL1A6jFM.js.map → PageHeader-DosMyar2.js.map} +1 -1
- package/dist/{PageLayout-C9aXTpqV.js → PageLayout-LcvJccOW.js} +5 -8
- package/dist/{PageLayout-C9aXTpqV.js.map → PageLayout-LcvJccOW.js.map} +1 -1
- package/dist/{PageToolbar-DJ5tdYla.js → PageToolbar-By2HznxO.js} +8 -10
- package/dist/{PageToolbar-DJ5tdYla.js.map → PageToolbar-By2HznxO.js.map} +1 -1
- package/dist/{Pagination-D27x5KmH.js → Pagination-DrXTrvfD.js} +11 -18
- package/dist/{Pagination-D27x5KmH.js.map → Pagination-DrXTrvfD.js.map} +1 -1
- package/dist/{Popconfirm-DwLCYNaF.js → Popconfirm-BJuDOHdv.js} +46 -25
- package/dist/Popconfirm-BJuDOHdv.js.map +1 -0
- package/dist/{Popover-DtUDwUVO.js → Popover-DhOPlWgF.js} +5 -7
- package/dist/Popover-DhOPlWgF.js.map +1 -0
- package/dist/{RadioGroup-B0TwHjBb.js → RadioGroup-B9oC8P15.js} +12 -18
- package/dist/{RadioGroup-B0TwHjBb.js.map → RadioGroup-B9oC8P15.js.map} +1 -1
- package/dist/{Resizable-D8zs0kcq.js → Resizable-Co-L3qg7.js} +4 -6
- package/dist/{Resizable-D8zs0kcq.js.map → Resizable-Co-L3qg7.js.map} +1 -1
- package/dist/{Search-vyZwGKMU.js → Search-OgaNjqQM.js} +26 -21
- package/dist/Search-OgaNjqQM.js.map +1 -0
- package/dist/{SearchInput-DyYXyw3u.js → SearchInput-eLS-uvOn.js} +18 -29
- package/dist/SearchInput-eLS-uvOn.js.map +1 -0
- package/dist/{SectionNav-tLK3iF6c.js → SectionNav-L81iJBo3.js} +11 -14
- package/dist/{SectionNav-tLK3iF6c.js.map → SectionNav-L81iJBo3.js.map} +1 -1
- package/dist/{Select-B22hB_-w.js → Select-DRdkdzBp.js} +29 -26
- package/dist/Select-DRdkdzBp.js.map +1 -0
- package/dist/{Sheet-0TWKTqid.js → Sheet-DVb4XoJ5.js} +13 -20
- package/dist/Sheet-DVb4XoJ5.js.map +1 -0
- package/dist/{Sidebar-C5hdANBU.js → Sidebar-DYvodJWN.js} +43 -75
- package/dist/{Sidebar-C5hdANBU.js.map → Sidebar-DYvodJWN.js.map} +1 -1
- package/dist/{Slider-DrcsM8_G.js → Slider-B9IskDxf.js} +8 -12
- package/dist/{Slider-DrcsM8_G.js.map → Slider-B9IskDxf.js.map} +1 -1
- package/dist/{Stepper-CQrUPVFL.js → Stepper-D7VspVEt.js} +11 -19
- package/dist/{Stepper-CQrUPVFL.js.map → Stepper-D7VspVEt.js.map} +1 -1
- package/dist/{Switch-DccpSpzC.js → Switch-DONWW7ju.js} +4 -6
- package/dist/{Switch-DccpSpzC.js.map → Switch-DONWW7ju.js.map} +1 -1
- package/dist/{Table-CilEvpMq.js → Table-BwgBm3hJ.js} +12 -21
- package/dist/{Table-CilEvpMq.js.map → Table-BwgBm3hJ.js.map} +1 -1
- package/dist/{Tabs-Ck4uWf8U.js → Tabs-DmJB4l_N.js} +9 -14
- package/dist/{Tabs-Ck4uWf8U.js.map → Tabs-DmJB4l_N.js.map} +1 -1
- package/dist/{TextInput-CR0_USaY.js → TextInput--1CfZybC.js} +8 -10
- package/dist/TextInput--1CfZybC.js.map +1 -0
- package/dist/{ThemeProvider-BTK7AL-T.js → ThemeProvider-BCHllN7d.js} +8 -13
- package/dist/{ThemeProvider-BTK7AL-T.js.map → ThemeProvider-BCHllN7d.js.map} +1 -1
- package/dist/{TimePicker-CoRpiEM3.js → TimePicker-CCV3SOw5.js} +4 -6
- package/dist/{TimePicker-CoRpiEM3.js.map → TimePicker-CCV3SOw5.js.map} +1 -1
- package/dist/{Timeline-DUXgByUE.js → Timeline-EMOpTLAT.js} +8 -13
- package/dist/{Timeline-DUXgByUE.js.map → Timeline-EMOpTLAT.js.map} +1 -1
- package/dist/{Toast-937n7n8i.js → Toast-BOTINeTX.js} +4 -6
- package/dist/{Toast-937n7n8i.js.map → Toast-BOTINeTX.js.map} +1 -1
- package/dist/{ToggleAllTooltip-DEjbWFoj.js → ToggleAllTooltip-BFmA6TXf.js} +4 -6
- package/dist/{ToggleAllTooltip-DEjbWFoj.js.map → ToggleAllTooltip-BFmA6TXf.js.map} +1 -1
- package/dist/{ToggleGroup-BOz1yyz6.js → ToggleGroup-DsDS7k70.js} +3 -4
- package/dist/{ToggleGroup-BOz1yyz6.js.map → ToggleGroup-DsDS7k70.js.map} +1 -1
- package/dist/{Workbench-CxgNCs3I.js → Workbench-4s0xP6XU.js} +18 -32
- package/dist/{Workbench-CxgNCs3I.js.map → Workbench-4s0xP6XU.js.map} +1 -1
- package/dist/{ZoomableSvg-DnFXo2L4.js → ZoomableSvg-BRPGgaWJ.js} +9 -11
- package/dist/{ZoomableSvg-DnFXo2L4.js.map → ZoomableSvg-BRPGgaWJ.js.map} +1 -1
- package/dist/charts.d.ts +0 -16
- package/dist/charts.js +10 -19
- package/dist/charts.js.map +1 -1
- package/dist/{classNames-DcGnTh2N.js → classNames-DkX30VJU.js} +2 -3
- package/dist/{classNames-DcGnTh2N.js.map → classNames-DkX30VJU.js.map} +1 -1
- package/dist/editors.d.ts +2 -16
- package/dist/editors.js +16 -26
- package/dist/editors.js.map +1 -1
- package/dist/{findLiteralMatches-DgGLzyG0.js → findLiteralMatches-BaLZTPtx.js} +2 -3
- package/dist/{findLiteralMatches-DgGLzyG0.js.map → findLiteralMatches-BaLZTPtx.js.map} +1 -1
- package/dist/flint.d.ts +0 -2
- package/dist/flint.js +10 -14
- package/dist/flint.js.map +1 -1
- package/dist/{highlightCode-D354tCXO.js → highlightCode-2spZP7ZA.js} +2 -3
- package/dist/{highlightCode-D354tCXO.js.map → highlightCode-2spZP7ZA.js.map} +1 -1
- package/dist/{icons-ZIeZXXS7.js → icons-DDR9dFSr.js} +21 -40
- package/dist/{icons-ZIeZXXS7.js.map → icons-DDR9dFSr.js.map} +1 -1
- package/dist/icons.d.ts +1 -1
- package/dist/icons.js +1 -2
- package/dist/{index-D-itZ3VP.d.ts → index-BljYaTWL.d.ts} +1 -39
- package/dist/index.d.ts +452 -1296
- package/dist/index.js +76 -74
- package/dist/internal/blocks/AIKit.js +1 -2
- package/dist/internal/blocks/AppShell.js +1 -2
- package/dist/internal/blocks/AuthLayout.js +3 -4
- package/dist/internal/blocks/AutoSaveTextarea.js +1 -2
- package/dist/internal/blocks/BrandEditor.js +1 -2
- package/dist/internal/blocks/ChartPanel.js +3 -4
- package/dist/internal/blocks/ChipEditor.js +6 -7
- package/dist/internal/blocks/ClipboardButton.js +1 -2
- package/dist/internal/blocks/ColorInput.js +1 -2
- package/dist/internal/blocks/ColorModeSwitch.js +1 -2
- package/dist/internal/blocks/Command.js +1 -2
- package/dist/internal/blocks/CopyField.js +1 -2
- package/dist/internal/blocks/DashboardHero.js +2 -3
- package/dist/internal/blocks/DateInput.js +1 -2
- package/dist/internal/blocks/DateRangeInput.js +1 -2
- package/dist/internal/blocks/DiagramShared/DiagramSkeleton.js +1 -2
- package/dist/internal/blocks/EmptyConfigurationActionCard.js +2 -3
- package/dist/internal/blocks/EmptyState.js +1 -2
- package/dist/internal/blocks/ErrorState.js +1 -2
- package/dist/internal/blocks/ExportMenu.js +5 -6
- package/dist/internal/blocks/FacebookButton.js +3 -4
- package/dist/internal/blocks/Form/connectors/ComboboxField.js +3 -4
- package/dist/internal/blocks/Form/connectors/MultiComboboxField.js +2 -3
- package/dist/internal/blocks/Form.js +3 -2
- package/dist/internal/blocks/FormGroup.js +1 -2
- package/dist/internal/blocks/GoogleButton.js +3 -4
- package/dist/internal/blocks/InlineEdit.js +1 -2
- package/dist/internal/blocks/MicrosoftButton.js +3 -4
- package/dist/internal/blocks/MultiActionButtonGroup.js +1 -2
- package/dist/internal/blocks/MultiCombobox.js +7 -8
- package/dist/internal/blocks/NumberInput.js +2 -3
- package/dist/internal/blocks/OtpInput.js +1 -2
- package/dist/internal/blocks/PageHeader.js +1 -2
- package/dist/internal/blocks/PageLayout.js +1 -2
- package/dist/internal/blocks/PageToolbar.js +1 -2
- package/dist/internal/blocks/PasswordInput.js +5 -6
- package/dist/internal/blocks/SearchInput.js +1 -2
- package/dist/internal/blocks/SearchInputWithNavigation.js +6 -7
- package/dist/internal/blocks/SectionNav.js +1 -2
- package/dist/internal/blocks/SplitButton.js +4 -5
- package/dist/internal/blocks/StatCard.js +4 -6
- package/dist/internal/blocks/StatCard.js.map +1 -1
- package/dist/internal/blocks/TextInput.js +1 -2
- package/dist/internal/blocks/Textarea.js +3 -4
- package/dist/internal/blocks/TimeInput.js +6 -7
- package/dist/internal/components/Alert.js +1 -2
- package/dist/internal/components/AlertModal.js +1 -2
- package/dist/internal/components/Avatar.js +3 -4
- package/dist/internal/components/Badge.js +1 -2
- package/dist/internal/components/BrandLogo.js +1 -2
- package/dist/internal/components/Breadcrumb.js +1 -2
- package/dist/internal/components/Button.js +1 -2
- package/dist/internal/components/ButtonGroup.js +2 -3
- package/dist/internal/components/Calendar.js +1 -2
- package/dist/internal/components/Card.js +1 -2
- package/dist/internal/components/Checkbox.js +1 -2
- package/dist/internal/components/Clipboard.js +1 -2
- package/dist/internal/components/Collapsible.js +1 -2
- package/dist/internal/components/CollapsiblePanel.js +5 -6
- package/dist/internal/components/Combobox.js +1 -2
- package/dist/internal/components/DatePicker.js +1 -2
- package/dist/internal/components/DateRangePicker.js +1 -2
- package/dist/internal/components/DiffView.js +1 -2
- package/dist/internal/components/DotsLoader.js +2 -3
- package/dist/internal/components/DropdownMenu.js +1 -2
- package/dist/internal/components/EmptySearchContent.js +1 -2
- package/dist/internal/components/FileUpload.js +1 -2
- package/dist/internal/components/FullScreenModal.js +1 -2
- package/dist/internal/components/HelpBlock.js +1 -2
- package/dist/internal/components/HoverCard.js +1 -2
- package/dist/internal/components/InputGroup.js +1 -2
- package/dist/internal/components/Kbd.js +1 -2
- package/dist/internal/components/Label.js +2 -3
- package/dist/internal/components/Link.js +2 -3
- package/dist/internal/components/MarkedText.js +1 -2
- package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js +3 -4
- package/dist/internal/components/MergeEditor/PaneHeader.js +1 -2
- package/dist/internal/components/MergeEditor/constants.js +1 -2
- package/dist/internal/components/MergeEditor/useMergeDiff.js +1 -2
- package/dist/internal/components/Modal.js +1 -2
- package/dist/internal/components/Navbar.js +1 -2
- package/dist/internal/components/Pagination.js +1 -2
- package/dist/internal/components/PanelWithDetails.js +4 -5
- package/dist/internal/components/Popconfirm.js +1 -2
- package/dist/internal/components/Popover.js +1 -2
- package/dist/internal/components/Progress.js +2 -3
- package/dist/internal/components/RadioGroup.js +1 -2
- package/dist/internal/components/Resizable.js +1 -2
- package/dist/internal/components/ScrollArea.js +3 -5
- package/dist/internal/components/ScrollArea.js.map +1 -1
- package/dist/internal/components/Search.js +1 -2
- package/dist/internal/components/Select.js +1 -2
- package/dist/internal/components/Separator.js +2 -3
- package/dist/internal/components/Sheet.js +1 -2
- package/dist/internal/components/Sidebar.js +1 -2
- package/dist/internal/components/Skeleton/Skeleton.js +2 -3
- package/dist/internal/components/Skeleton/SkeletonList.js +2 -3
- package/dist/internal/components/Slider.js +1 -2
- package/dist/internal/components/SpotlightBackdrop.js +3 -5
- package/dist/internal/components/SpotlightBackdrop.js.map +1 -1
- package/dist/internal/components/Stepper.js +1 -2
- package/dist/internal/components/Switch.js +1 -2
- package/dist/internal/components/Table.js +1 -2
- package/dist/internal/components/Tabs.js +1 -2
- package/dist/internal/components/ThemeProvider.js +2 -2
- package/dist/internal/components/TimePicker.js +1 -2
- package/dist/internal/components/Timeline.js +1 -2
- package/dist/internal/components/Toast.js +2 -2
- package/dist/internal/components/Toggle.js +2 -3
- package/dist/internal/components/ToggleGroup.js +1 -2
- package/dist/internal/components/Tooltip.js +1 -2
- package/dist/internal/components/Truncated.js +3 -4
- package/dist/internal/components/Workbench.js +1 -2
- package/dist/internal/components/ZoomableSvg.js +1 -2
- package/dist/internal/hooks/useAltDigitHotkey.js +1 -2
- package/dist/internal/hooks/useAutosizeInput.js +1 -2
- package/dist/internal/hooks/useScrollbarPosition.js +2 -3
- package/dist/internal/hooks/useStableCallback.js +1 -2
- package/dist/internal/hooks/useTimeout.js +18 -0
- package/dist/internal/hooks/useTimeout.js.map +1 -0
- package/dist/internal/utils/accessibleName.js +1 -2
- package/dist/internal/utils/mergeRefs.js +1 -2
- package/dist/internal/utils.js +3 -3
- package/dist/markdown-editor.d.ts +0 -4
- package/dist/markdown-editor.js +30 -49
- package/dist/markdown-editor.js.map +1 -1
- package/dist/mermaid.d.ts +0 -2
- package/dist/mermaid.js +1 -2
- package/dist/rjsf.d.ts +0 -8
- package/dist/rjsf.js +47 -78
- package/dist/rjsf.js.map +1 -1
- package/dist/{rolldown-runtime-Bdc48AWt.js → rolldown-runtime-BrwM56v-.js} +2 -3
- package/dist/{styles-T8xwr0sR.js → styles-BXXXosW_.js} +2 -3
- package/dist/{styles-T8xwr0sR.js.map → styles-BXXXosW_.js.map} +1 -1
- package/dist/{styles-DxazJ8Mz.js → styles-nwtCRF7y.js} +2 -3
- package/dist/{styles-DxazJ8Mz.js.map → styles-nwtCRF7y.js.map} +1 -1
- package/dist/styles.css +1 -1
- package/dist/{svgCache-Dhmbe-7i.js → svgCache-BzvN_fgr.js} +2 -3
- package/dist/{svgCache-Dhmbe-7i.js.map → svgCache-BzvN_fgr.js.map} +1 -1
- package/dist/{svgTransforms-Hnvev3Vs.js → svgTransforms-BBxxO9T6.js} +4 -6
- package/dist/{svgTransforms-Hnvev3Vs.js.map → svgTransforms-BBxxO9T6.js.map} +1 -1
- package/dist/testing.d.ts +0 -2
- package/dist/testing.js +2 -3
- package/dist/{themeScopeContext-CEVXbYvZ.js → themeScopeContext-BZGPdyG8.js} +6 -11
- package/dist/{themeScopeContext-CEVXbYvZ.js.map → themeScopeContext-BZGPdyG8.js.map} +1 -1
- package/dist/{themeTokens-DCeb62ap.js → themeTokens-B60cQtAY.js} +4 -6
- package/dist/{themeTokens-DCeb62ap.js.map → themeTokens-B60cQtAY.js.map} +1 -1
- package/dist/{toast-Y3cTMBW8.js → toast-Dzj1EFOb.js} +10 -17
- package/dist/{toast-Y3cTMBW8.js.map → toast-Dzj1EFOb.js.map} +1 -1
- package/dist/{types-BPcAjMG0.d.ts → types-CsZuwfxc.d.ts} +1 -3
- package/dist/{useControllableState-CUYXMsfz.js → useControllableState-BCvUOC6G.js} +2 -3
- package/dist/{useControllableState-CUYXMsfz.js.map → useControllableState-BCvUOC6G.js.map} +1 -1
- package/dist/{useElement-D-RjrGa4.js → useElement-Dcoo9Jlr.js} +2 -3
- package/dist/{useElement-D-RjrGa4.js.map → useElement-Dcoo9Jlr.js.map} +1 -1
- package/dist/{useMergeDiff-CvowEXJ1.js → useMergeDiff-DFIATaTw.js} +3 -5
- package/dist/{useMergeDiff-CvowEXJ1.js.map → useMergeDiff-DFIATaTw.js.map} +1 -1
- package/dist/{utils-DwC9u0tM.js → utils-DjFceY3H.js} +18 -34
- package/dist/utils-DjFceY3H.js.map +1 -0
- package/dist/vega.d.ts +1 -5
- package/dist/vega.js +3 -4
- package/dist/{vegaTheme-ISwGXvof.js → vegaTheme-BcTNRmVS.js} +3 -4
- package/dist/{vegaTheme-ISwGXvof.js.map → vegaTheme-BcTNRmVS.js.map} +1 -1
- package/dist/{vegaTokens-DCkvpIVE.js → vegaTokens-DnCcy7JY.js} +3 -4
- package/dist/{vegaTokens-DCkvpIVE.js.map → vegaTokens-DnCcy7JY.js.map} +1 -1
- package/package.json +40 -40
- package/src/styles.css +70 -4
- package/src/theme.css +117 -11
- package/dist/AIKit-CaAW4GLx.js.map +0 -1
- package/dist/AlertModal-D4AtpvLS.js.map +0 -1
- package/dist/Badge-5GHIsgRS.js.map +0 -1
- package/dist/Button-BNkyYU8u.js.map +0 -1
- package/dist/Calendar-BnKi1kPu.js.map +0 -1
- package/dist/Combobox-CaKqgstG.js.map +0 -1
- package/dist/DropdownMenu-CcVbZ_5u.js.map +0 -1
- package/dist/HoverCard-Cv5rmvJq.js +0 -26
- package/dist/HoverCard-Cv5rmvJq.js.map +0 -1
- package/dist/Modal-CbUz-5YH.js.map +0 -1
- package/dist/ModalTitle-cy0Ht9VY.js.map +0 -1
- package/dist/Popconfirm-DwLCYNaF.js.map +0 -1
- package/dist/Popover-DtUDwUVO.js.map +0 -1
- package/dist/Search-vyZwGKMU.js.map +0 -1
- package/dist/SearchInput-DyYXyw3u.js.map +0 -1
- package/dist/Select-B22hB_-w.js.map +0 -1
- package/dist/Sheet-0TWKTqid.js.map +0 -1
- package/dist/TextInput-CR0_USaY.js.map +0 -1
- package/dist/utils-DwC9u0tM.js.map +0 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { cn } from "./classNames-
|
|
2
|
-
import { Check, ChevronDown, ChevronUp } from "./icons-
|
|
3
|
-
import { Button } from "./Button-
|
|
4
|
-
import { overlayTriggerVariants } from "./styles-
|
|
1
|
+
import { cn } from "./classNames-DkX30VJU.js";
|
|
2
|
+
import { Check, ChevronDown, ChevronUp } from "./icons-DDR9dFSr.js";
|
|
3
|
+
import { Button } from "./Button-DbvGzEDb.js";
|
|
4
|
+
import { overlayTriggerVariants } from "./styles-BXXXosW_.js";
|
|
5
5
|
import { forwardAccessibleName } from "./internal/utils/accessibleName.js";
|
|
6
6
|
import { useId } from "react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
9
9
|
import { Root } from "@radix-ui/react-select";
|
|
10
|
-
|
|
10
|
+
// src/components/Select/SelectContent.tsx
|
|
11
11
|
const scrollButtonStyles = cn("tw:flex", "tw:items-center", "tw:justify-center", "tw:rounded-sm", "tw:p-1", "tw:[&_svg:not([class*=\"tw:size-\"])]:size-5");
|
|
12
12
|
/**
|
|
13
13
|
* Listbox container for `Select`. Portals items into a popover sized to the trigger.
|
|
@@ -22,7 +22,7 @@ const SelectContent = ({ ref, className, children, container, position = "popper
|
|
|
22
22
|
ref,
|
|
23
23
|
position,
|
|
24
24
|
sideOffset,
|
|
25
|
-
className: cn("tailwindcss-preflight", "tw:z-
|
|
25
|
+
className: cn("tailwindcss-preflight", "tw:z-overlay", "tw:flex tw:flex-col", "tw:p-1", "tw:overflow-hidden", "tw:origin-(--radix-select-content-transform-origin)", "tw:max-h-[var(--radix-select-content-available-height)]", "tw:min-w-[var(--radix-select-trigger-width)]", "tw:bg-popover", "tw:text-popover-foreground", "tw:shadow-md", "tw:ring-1", "tw:ring-foreground/10", "tw:rounded-lg", "tw:data-[state=open]:animate-in", "tw:data-[state=open]:fade-in-0", "tw:data-[state=open]:zoom-in-95", "tw:data-[state=closed]:animate-out", "tw:data-[state=closed]:fade-out-0", "tw:data-[state=closed]:zoom-out-95", "tw:data-[side=bottom]:slide-in-from-top-2", "tw:data-[side=left]:slide-in-from-right-2", "tw:data-[side=right]:slide-in-from-left-2", "tw:data-[side=top]:slide-in-from-bottom-2", className),
|
|
26
26
|
children: [
|
|
27
27
|
/* @__PURE__ */ jsx(SelectPrimitive.ScrollUpButton, {
|
|
28
28
|
className: scrollButtonStyles,
|
|
@@ -40,14 +40,12 @@ const SelectContent = ({ ref, className, children, container, position = "popper
|
|
|
40
40
|
})
|
|
41
41
|
});
|
|
42
42
|
};
|
|
43
|
-
|
|
44
|
-
//#region src/components/Select/SelectGroup.tsx
|
|
43
|
+
// src/components/Select/SelectGroup.tsx
|
|
45
44
|
const SelectGroup = ({ className, ...props }) => /* @__PURE__ */ jsx(SelectPrimitive.Group, {
|
|
46
45
|
...props,
|
|
47
46
|
className: cn("tw:flex tw:flex-col tw:gap-0.5", className)
|
|
48
47
|
});
|
|
49
|
-
|
|
50
|
-
//#region src/components/Select/SelectItem.tsx
|
|
48
|
+
// src/components/Select/SelectItem.tsx
|
|
51
49
|
const SelectItem = ({ ref, className, children, icon, hint, "aria-describedby": ariaDescribedBy, ...props }) => {
|
|
52
50
|
const hintId = useId();
|
|
53
51
|
return /* @__PURE__ */ jsxs(SelectPrimitive.Item, {
|
|
@@ -73,23 +71,19 @@ const SelectItem = ({ ref, className, children, icon, hint, "aria-describedby":
|
|
|
73
71
|
]
|
|
74
72
|
});
|
|
75
73
|
};
|
|
76
|
-
|
|
77
|
-
//#region src/components/Select/SelectLabel.tsx
|
|
74
|
+
// src/components/Select/SelectLabel.tsx
|
|
78
75
|
const SelectLabel = ({ className, ...props }) => /* @__PURE__ */ jsx(SelectPrimitive.Label, {
|
|
79
76
|
...props,
|
|
80
77
|
className: cn("tw:px-2", "tw:py-1.5", "tw:text-xs", "tw:font-medium", "tw:leading-none", "tw:text-muted-foreground", className)
|
|
81
78
|
});
|
|
82
|
-
|
|
83
|
-
//#region src/components/Select/SelectRoot.tsx
|
|
79
|
+
// src/components/Select/SelectRoot.tsx
|
|
84
80
|
const SelectRoot = (props) => /* @__PURE__ */ jsx(Root, { ...props });
|
|
85
|
-
|
|
86
|
-
//#region src/components/Select/SelectSeparator.tsx
|
|
81
|
+
// src/components/Select/SelectSeparator.tsx
|
|
87
82
|
const SelectSeparator = ({ className, ...props }) => /* @__PURE__ */ jsx(SelectPrimitive.Separator, {
|
|
88
83
|
...props,
|
|
89
84
|
className: cn("tw:mx-2 tw:my-1 tw:h-px tw:bg-border", className)
|
|
90
85
|
});
|
|
91
|
-
|
|
92
|
-
//#region src/components/Select/SelectTrigger.tsx
|
|
86
|
+
// src/components/Select/SelectTrigger.tsx
|
|
93
87
|
const SelectTrigger = ({ ref, className, inline, state, placeholder, ...props }) => {
|
|
94
88
|
if (inline) return /* @__PURE__ */ jsx(SelectPrimitive.Trigger, {
|
|
95
89
|
...props,
|
|
@@ -114,29 +108,39 @@ const SelectTrigger = ({ ref, className, inline, state, placeholder, ...props })
|
|
|
114
108
|
})]
|
|
115
109
|
});
|
|
116
110
|
};
|
|
117
|
-
|
|
118
|
-
//#region src/components/Select/Select.tsx
|
|
111
|
+
// src/components/Select/Select.tsx
|
|
119
112
|
const isGroup = (itemOrGroup) => "items" in itemOrGroup;
|
|
120
113
|
/**
|
|
114
|
+
* Radix's value for an item whose `value` is `''`.
|
|
115
|
+
*
|
|
116
|
+
* - Radix reads `''` as "no value" and shows the placeholder, even when an item holds it.
|
|
117
|
+
* - Swapped in only when such an item exists; otherwise `''` still shows the placeholder.
|
|
118
|
+
* - With `name` in a natively submitted form, the hidden `<select>` sends it and passes `required`.
|
|
119
|
+
*/
|
|
120
|
+
const EMPTY_ITEM_VALUE = "__select-empty-item__";
|
|
121
|
+
/**
|
|
121
122
|
* Single selection from a short enumerated list. Built on Radix Select.
|
|
122
123
|
*
|
|
123
124
|
* - Use for ~10 or fewer options where search adds nothing; else `Combobox` / `MultiCombobox`.
|
|
124
125
|
* - In forms: `FormGroup`, or `useAppForm` + `field.SelectField` for validation.
|
|
125
126
|
* - Compound parts (`Select.Root`, `.Trigger`, `.Content`, `.Item`) for custom item layouts.
|
|
127
|
+
* - An item may hold `''` (an "All" filter): selected, it shows its label, not the placeholder.
|
|
126
128
|
*/
|
|
127
129
|
const Select = ({ value, defaultValue, onValueChange, disabled, name, required, open, defaultOpen, onOpenChange, dir, autoComplete, form, inline, state, placeholder, className, onBlur, "aria-describedby": ariaDescribedBy, "aria-invalid": ariaInvalid, "aria-required": ariaRequired, items = [], ...accessibleName }) => {
|
|
128
130
|
const groupKeyId = useId();
|
|
131
|
+
const hasEmptyItem = items.some((itemOrGroup) => isGroup(itemOrGroup) ? itemOrGroup.items.some((item) => item.value === "") : itemOrGroup.value === "");
|
|
132
|
+
const toRootValue = (rawValue) => hasEmptyItem && rawValue === "" ? EMPTY_ITEM_VALUE : rawValue;
|
|
129
133
|
const renderItem = (item) => /* @__PURE__ */ jsx(SelectItem, {
|
|
130
|
-
value: item.value,
|
|
134
|
+
value: toRootValue(item.value),
|
|
131
135
|
icon: item.icon,
|
|
132
136
|
hint: item.hint,
|
|
133
137
|
disabled: item.disabled,
|
|
134
138
|
children: item.label
|
|
135
139
|
}, item.value);
|
|
136
140
|
return /* @__PURE__ */ jsxs(SelectRoot, {
|
|
137
|
-
value,
|
|
138
|
-
defaultValue,
|
|
139
|
-
onValueChange,
|
|
141
|
+
value: toRootValue(value),
|
|
142
|
+
defaultValue: toRootValue(defaultValue),
|
|
143
|
+
onValueChange: onValueChange && ((rootValue) => onValueChange(rootValue === EMPTY_ITEM_VALUE ? "" : rootValue)),
|
|
140
144
|
disabled,
|
|
141
145
|
name,
|
|
142
146
|
required,
|
|
@@ -169,7 +173,6 @@ Select.Item = SelectItem;
|
|
|
169
173
|
Select.Group = SelectGroup;
|
|
170
174
|
Select.Label = SelectLabel;
|
|
171
175
|
Select.Separator = SelectSeparator;
|
|
172
|
-
//#endregion
|
|
173
176
|
export { Select };
|
|
174
177
|
|
|
175
|
-
//# sourceMappingURL=Select-
|
|
178
|
+
//# sourceMappingURL=Select-DRdkdzBp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select-DRdkdzBp.js","names":["SelectItemComponent"],"sources":["../src/components/Select/SelectContent.tsx","../src/components/Select/SelectGroup.tsx","../src/components/Select/SelectItem.tsx","../src/components/Select/SelectLabel.tsx","../src/components/Select/SelectRoot.tsx","../src/components/Select/SelectSeparator.tsx","../src/components/Select/SelectTrigger.tsx","../src/components/Select/Select.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\n\nimport { ChevronDown, ChevronUp } from '../../icons';\nimport { cn } from '../../utils';\n\nconst scrollButtonStyles = cn(\n 'tw:flex',\n 'tw:items-center',\n 'tw:justify-center',\n 'tw:rounded-sm',\n 'tw:p-1',\n 'tw:[&_svg:not([class*=\"tw:size-\"])]:size-5',\n);\n\n/**\n * Props for `Select.Content`. `container` portals the listbox into a custom element (useful inside modals).\n */\ntype Props = ComponentProps<typeof SelectPrimitive.Content> & {\n container?: HTMLElement | null;\n};\n\n/**\n * Listbox container for `Select`. Portals items into a popover sized to the trigger.\n * Normally rendered implicitly by `Select`; use directly only when composing custom item layouts via\n * the `Select.Root` / `Select.Trigger` / `Select.Content` compound parts.\n */\nexport const SelectContent = ({\n ref,\n className,\n children,\n container,\n position = 'popper',\n sideOffset = 4,\n ...props\n}: Props) => {\n return (\n <SelectPrimitive.Portal container={container}>\n <SelectPrimitive.Content\n {...props}\n ref={ref}\n position={position}\n sideOffset={sideOffset}\n className={cn(\n 'tailwindcss-preflight',\n 'tw:z-overlay',\n\n // layout\n 'tw:flex tw:flex-col',\n 'tw:p-1',\n 'tw:overflow-hidden',\n 'tw:origin-(--radix-select-content-transform-origin)',\n\n // sizing\n 'tw:max-h-[var(--radix-select-content-available-height)]',\n 'tw:min-w-[var(--radix-select-trigger-width)]',\n\n // appearance\n 'tw:bg-popover',\n 'tw:text-popover-foreground',\n 'tw:shadow-md',\n 'tw:ring-1',\n 'tw:ring-foreground/10',\n 'tw:rounded-lg',\n\n // open animation\n 'tw:data-[state=open]:animate-in',\n 'tw:data-[state=open]:fade-in-0',\n 'tw:data-[state=open]:zoom-in-95',\n\n // closed animation\n 'tw:data-[state=closed]:animate-out',\n 'tw:data-[state=closed]:fade-out-0',\n 'tw:data-[state=closed]:zoom-out-95',\n\n // position animations\n 'tw:data-[side=bottom]:slide-in-from-top-2',\n 'tw:data-[side=left]:slide-in-from-right-2',\n 'tw:data-[side=right]:slide-in-from-left-2',\n 'tw:data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n >\n <SelectPrimitive.ScrollUpButton className={scrollButtonStyles}>\n <ChevronUp />\n </SelectPrimitive.ScrollUpButton>\n\n <SelectPrimitive.Viewport\n className={cn({\n 'tw:h-[var(--radix-select-trigger-height)] tw:w-full tw:min-w-[var(--radix-select-trigger-width)]':\n position === 'popper',\n })}\n >\n {children}\n </SelectPrimitive.Viewport>\n\n <SelectPrimitive.ScrollDownButton className={scrollButtonStyles}>\n <ChevronDown />\n </SelectPrimitive.ScrollDownButton>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n};\n","import type { ComponentProps } from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<typeof SelectPrimitive.Group>;\n\nexport const SelectGroup = ({ className, ...props }: Props) => (\n <SelectPrimitive.Group {...props} className={cn('tw:flex tw:flex-col tw:gap-0.5', className)} />\n);\n","import { useId } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\n\nimport { Check } from '../../icons';\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<typeof SelectPrimitive.Item> & {\n icon?: ReactNode;\n hint?: ReactNode;\n};\n\nexport const SelectItem = ({\n ref,\n className,\n children,\n icon,\n hint,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}: Props) => {\n const hintId = useId();\n\n return (\n <SelectPrimitive.Item\n {...props}\n ref={ref}\n // Radix names the option from `ItemText` alone (`aria-labelledby`), so the hint is\n // described rather than named — it reaches a screen reader without joining the label.\n aria-describedby={\n [ariaDescribedBy, hint ? hintId : null].filter(Boolean).join(' ') || undefined\n }\n className={cn(\n 'tw:group/select-item',\n\n // layout\n 'tw:relative',\n 'tw:flex',\n 'tw:flex-1',\n 'tw:items-center',\n 'tw:gap-2',\n\n // spacing\n 'tw:py-2',\n 'tw:px-2',\n 'tw:rounded-lg',\n\n // typography\n 'tw:text-sm',\n 'tw:select-none',\n 'tw:cursor-default',\n 'tw:outline-hidden',\n\n // highlighted (keyboard / hover)\n 'tw:focus:outline-hidden',\n 'tw:data-[highlighted]:bg-hover',\n 'tw:data-[highlighted]:text-hover-foreground',\n\n // disabled\n 'tw:data-[disabled]:pointer-events-none',\n 'tw:data-[disabled]:opacity-disabled',\n\n // child svg defaults\n 'tw:[&_svg]:pointer-events-none',\n 'tw:[&_svg]:shrink-0',\n 'tw:[&_svg]:text-muted-foreground',\n \"tw:[&_svg:not([class*='tw:size-'])]:size-4\",\n className,\n )}\n >\n {icon}\n <span className=\"tw:flex-1 tw:truncate\">\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </span>\n {/* Outside `ItemText`, so the trigger shows the label alone once the option is picked. */}\n {hint && (\n <span id={hintId} className=\"tw:shrink-0 tw:text-xs tw:text-muted-foreground\">\n {hint}\n </span>\n )}\n <SelectPrimitive.ItemIndicator className=\"tw:pointer-events-none\">\n <Check className=\"tw:size-4\" />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n );\n};\n","import type { ComponentProps } from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<typeof SelectPrimitive.Label>;\n\nexport const SelectLabel = ({ className, ...props }: Props) => (\n <SelectPrimitive.Label\n {...props}\n className={cn(\n // Soft grey section label.\n 'tw:px-2',\n 'tw:py-1.5',\n 'tw:text-xs',\n 'tw:font-medium',\n 'tw:leading-none',\n 'tw:text-muted-foreground',\n\n className,\n )}\n />\n);\n","import type { ReactNode } from 'react';\nimport { Root } from '@radix-ui/react-select';\n\n// Mirror Radix's `SelectProps` as an explicit list. We can't infer via\n// `ComponentProps<typeof Root>` or reuse Radix's `SelectProps` directly: both\n// transitively reference the un-exported `SelectSharedProps` interface, and\n// TS4023 fires when DTS emits anything that consumes it (e.g. `useAppForm`).\n// Keep this in sync with `@radix-ui/react-select`'s `SelectProps` shape.\nexport type SelectRootProps = {\n // SelectSharedProps\n children?: ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n dir?: 'ltr' | 'rtl';\n name?: string;\n autoComplete?: string;\n disabled?: boolean;\n required?: boolean;\n form?: string;\n // SelectProps\n value?: string;\n defaultValue?: string;\n onValueChange?(value: string): void;\n};\n\nexport const SelectRoot = (props: SelectRootProps) => <Root {...props} />;\n","import type { ComponentProps } from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<typeof SelectPrimitive.Separator>;\n\nexport const SelectSeparator = ({ className, ...props }: Props) => (\n <SelectPrimitive.Separator\n {...props}\n className={cn('tw:mx-2 tw:my-1 tw:h-px tw:bg-border', className)}\n />\n);\n","import type { ComponentProps } from 'react';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { type VariantProps } from 'class-variance-authority';\n\nimport { ChevronDown } from '../../icons';\nimport { cn } from '../../utils';\nimport type { WithAccessibleName } from '../../utils/accessibleName';\nimport { Button } from '../Button';\nimport { overlayTriggerVariants } from '../OverlayTrigger/styles';\n\ntype BaseProps = ComponentProps<typeof SelectPrimitive.Trigger> &\n VariantProps<typeof overlayTriggerVariants> & {\n /** Text-like trigger with no field chrome, for a select inside a sentence or toolbar; ignores `state`. */\n inline?: boolean;\n } & Pick<ComponentProps<typeof SelectPrimitive.Value>, 'placeholder'>;\n\n/** `role=\"combobox\"` is not named from content: neither the item label nor `placeholder` names it. */\ntype SelectTriggerProps = WithAccessibleName<BaseProps>;\n\nexport const SelectTrigger = ({\n ref,\n className,\n inline,\n state,\n placeholder,\n ...props\n}: SelectTriggerProps) => {\n if (inline)\n return (\n <SelectPrimitive.Trigger {...props} ref={ref} className={cn(className)} asChild>\n <Button variant=\"inline\">\n <SelectPrimitive.Value placeholder={placeholder} />\n <SelectPrimitive.Icon asChild>\n <ChevronDown />\n </SelectPrimitive.Icon>\n </Button>\n </SelectPrimitive.Trigger>\n );\n\n return (\n <SelectPrimitive.Trigger\n {...props}\n ref={ref}\n className={cn(overlayTriggerVariants({ state }), className)}\n >\n <SelectPrimitive.Value placeholder={placeholder} />\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"tw:size-4 tw:text-muted-foreground\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n};\n","import { useId } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { forwardAccessibleName, type WithAccessibleName } from '../../utils/accessibleName';\n\nimport { SelectContent } from './SelectContent';\nimport { SelectGroup } from './SelectGroup';\nimport { SelectItem as SelectItemComponent } from './SelectItem';\nimport { SelectLabel } from './SelectLabel';\nimport { SelectRoot, type SelectRootProps } from './SelectRoot';\nimport { SelectSeparator } from './SelectSeparator';\nimport { SelectTrigger } from './SelectTrigger';\n\nexport type SelectItem = {\n value: string;\n label: ReactNode;\n icon?: ReactNode;\n /** Trailing muted note shown in the listbox only — never in the trigger. */\n hint?: ReactNode;\n disabled?: boolean;\n};\n\nexport type SelectItemGroup = {\n label?: ReactNode;\n items: readonly SelectItem[];\n};\n\nconst isGroup = (itemOrGroup: SelectItem | SelectItemGroup): itemOrGroup is SelectItemGroup =>\n 'items' in itemOrGroup;\n\n/**\n * Radix's value for an item whose `value` is `''`.\n *\n * - Radix reads `''` as \"no value\" and shows the placeholder, even when an item holds it.\n * - Swapped in only when such an item exists; otherwise `''` still shows the placeholder.\n * - With `name` in a natively submitted form, the hidden `<select>` sends it and passes `required`.\n */\nconst EMPTY_ITEM_VALUE = '__select-empty-item__';\n\ntype TriggerProps = ComponentProps<typeof SelectTrigger>;\n\ntype BaseProps = Pick<\n SelectRootProps,\n | 'value'\n | 'defaultValue'\n | 'onValueChange'\n | 'disabled'\n | 'name'\n | 'required'\n | 'open'\n | 'defaultOpen'\n | 'onOpenChange'\n | 'dir'\n | 'autoComplete'\n | 'form'\n> &\n Pick<\n TriggerProps,\n | 'inline'\n | 'state'\n | 'placeholder'\n | 'id'\n | 'className'\n | 'onBlur'\n | 'aria-label'\n | 'aria-labelledby'\n | 'aria-describedby'\n | 'aria-invalid'\n | 'aria-required'\n > & {\n items?: readonly (SelectItem | SelectItemGroup)[];\n };\n\n/** `role=\"combobox\"` is not named from content: neither the item label nor `placeholder` names it. */\nexport type SelectProps = WithAccessibleName<BaseProps>;\n\n/**\n * Single selection from a short enumerated list. Built on Radix Select.\n *\n * - Use for ~10 or fewer options where search adds nothing; else `Combobox` / `MultiCombobox`.\n * - In forms: `FormGroup`, or `useAppForm` + `field.SelectField` for validation.\n * - Compound parts (`Select.Root`, `.Trigger`, `.Content`, `.Item`) for custom item layouts.\n * - An item may hold `''` (an \"All\" filter): selected, it shows its label, not the placeholder.\n */\nexport const Select = ({\n value,\n defaultValue,\n onValueChange,\n disabled,\n name,\n required,\n open,\n defaultOpen,\n onOpenChange,\n dir,\n autoComplete,\n form,\n inline,\n state,\n placeholder,\n className,\n onBlur,\n 'aria-describedby': ariaDescribedBy,\n 'aria-invalid': ariaInvalid,\n 'aria-required': ariaRequired,\n items = [],\n // Kept grouped: destructured apart, the required-one-of union becomes three optional props.\n ...accessibleName\n}: SelectProps) => {\n const groupKeyId = useId();\n const hasEmptyItem = items.some((itemOrGroup) =>\n isGroup(itemOrGroup)\n ? itemOrGroup.items.some((item) => item.value === '')\n : itemOrGroup.value === '',\n );\n const toRootValue = <T extends string | undefined>(rawValue: T) =>\n hasEmptyItem && rawValue === '' ? EMPTY_ITEM_VALUE : rawValue;\n\n const renderItem = (item: SelectItem) => (\n <SelectItemComponent\n key={item.value}\n value={toRootValue(item.value)}\n icon={item.icon}\n hint={item.hint}\n disabled={item.disabled}\n >\n {item.label}\n </SelectItemComponent>\n );\n\n return (\n <SelectRoot\n value={toRootValue(value)}\n defaultValue={toRootValue(defaultValue)}\n onValueChange={\n onValueChange &&\n ((rootValue) => onValueChange(rootValue === EMPTY_ITEM_VALUE ? '' : rootValue))\n }\n disabled={disabled}\n name={name}\n required={required}\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n dir={dir}\n autoComplete={autoComplete}\n form={form}\n >\n <SelectTrigger\n {...forwardAccessibleName(accessibleName)}\n inline={inline}\n state={state}\n placeholder={placeholder}\n className={className}\n onBlur={onBlur}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n aria-required={ariaRequired}\n />\n <SelectContent>\n {items.map((itemOrGroup, index) => {\n if (isGroup(itemOrGroup)) {\n return (\n <SelectGroup key={`${groupKeyId}-group-${index}`}>\n {itemOrGroup.label && <SelectLabel>{itemOrGroup.label}</SelectLabel>}\n {itemOrGroup.items.map(renderItem)}\n </SelectGroup>\n );\n }\n\n return renderItem(itemOrGroup);\n })}\n </SelectContent>\n </SelectRoot>\n );\n};\n\nSelect.Root = SelectRoot;\nSelect.Trigger = SelectTrigger;\nSelect.Content = SelectContent;\nSelect.Item = SelectItemComponent;\nSelect.Group = SelectGroup;\nSelect.Label = SelectLabel;\nSelect.Separator = SelectSeparator;\n"],"mappings":"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"}
|
|
@@ -1,27 +1,25 @@
|
|
|
1
|
-
import { cn } from "./classNames-
|
|
2
|
-
import { X } from "./icons-
|
|
3
|
-
import { Button } from "./Button-
|
|
4
|
-
import { ModalDescription, ModalOverlay, ModalTitle } from "./ModalTitle-
|
|
1
|
+
import { cn } from "./classNames-DkX30VJU.js";
|
|
2
|
+
import { X } from "./icons-DDR9dFSr.js";
|
|
3
|
+
import { Button } from "./Button-DbvGzEDb.js";
|
|
4
|
+
import { ModalDescription, ModalOverlay, ModalTitle } from "./ModalTitle-7vgpfc6B.js";
|
|
5
5
|
import { cva } from "class-variance-authority";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { Close, Content, Portal, Root, Title, Trigger } from "@radix-ui/react-dialog";
|
|
8
|
-
|
|
8
|
+
// src/components/Sheet/SheetBody.tsx
|
|
9
9
|
const SheetBody = ({ className, ...rest }) => /* @__PURE__ */ jsx("div", {
|
|
10
10
|
...rest,
|
|
11
11
|
className: cn("tw:flex", "tw:flex-col", "tw:overflow-x-hidden", "tw:px-4", className)
|
|
12
12
|
});
|
|
13
|
-
|
|
14
|
-
//#region src/components/Sheet/SheetOverlay.tsx
|
|
13
|
+
// src/components/Sheet/SheetOverlay.tsx
|
|
15
14
|
const SheetOverlay = ({ ref, ...props }) => /* @__PURE__ */ jsx(ModalOverlay, {
|
|
16
15
|
ref,
|
|
17
16
|
...props
|
|
18
17
|
});
|
|
19
|
-
|
|
20
|
-
//#region src/components/Sheet/SheetContent.tsx
|
|
18
|
+
// src/components/Sheet/SheetContent.tsx
|
|
21
19
|
const sheetContentVariants = cva([
|
|
22
20
|
"tailwindcss-preflight",
|
|
23
21
|
"tw:fixed",
|
|
24
|
-
"tw:z-
|
|
22
|
+
"tw:z-overlay",
|
|
25
23
|
"tw:flex",
|
|
26
24
|
"tw:flex-col",
|
|
27
25
|
"tw:bg-card",
|
|
@@ -108,14 +106,12 @@ const SheetContent = ({ className, children, side = "right", disableTransition =
|
|
|
108
106
|
})]
|
|
109
107
|
});
|
|
110
108
|
};
|
|
111
|
-
|
|
112
|
-
//#region src/components/Sheet/SheetFooter.tsx
|
|
109
|
+
// src/components/Sheet/SheetFooter.tsx
|
|
113
110
|
const SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
114
111
|
className: cn("tw:mt-auto tw:flex tw:flex-col tw:gap-2 tw:p-4", className),
|
|
115
112
|
...props
|
|
116
113
|
});
|
|
117
|
-
|
|
118
|
-
//#region src/components/Sheet/SheetHeader.tsx
|
|
114
|
+
// src/components/Sheet/SheetHeader.tsx
|
|
119
115
|
const SheetHeader = ({ className, children, hideCloseIcon = false, title, description, ...props }) => {
|
|
120
116
|
const isHeaderRendered = title || description || !hideCloseIcon;
|
|
121
117
|
return /* @__PURE__ */ jsxs("div", {
|
|
@@ -140,14 +136,12 @@ const SheetHeader = ({ className, children, hideCloseIcon = false, title, descri
|
|
|
140
136
|
}), children]
|
|
141
137
|
});
|
|
142
138
|
};
|
|
143
|
-
|
|
144
|
-
//#region src/components/Sheet/SheetTitle.tsx
|
|
139
|
+
// src/components/Sheet/SheetTitle.tsx
|
|
145
140
|
const SheetTitle = ({ className, visuallyHidden = false, ...props }) => /* @__PURE__ */ jsx(Title, {
|
|
146
141
|
className: cn({ "tw:sr-only": visuallyHidden }, className),
|
|
147
142
|
...props
|
|
148
143
|
});
|
|
149
|
-
|
|
150
|
-
//#region src/components/Sheet/Sheet.tsx
|
|
144
|
+
// src/components/Sheet/Sheet.tsx
|
|
151
145
|
const Sheet = (props) => /* @__PURE__ */ jsx(Root, { ...props });
|
|
152
146
|
Sheet.Close = Close;
|
|
153
147
|
Sheet.Trigger = Trigger;
|
|
@@ -156,7 +150,6 @@ Sheet.Title = SheetTitle;
|
|
|
156
150
|
Sheet.Header = SheetHeader;
|
|
157
151
|
Sheet.Footer = SheetFooter;
|
|
158
152
|
Sheet.Body = SheetBody;
|
|
159
|
-
//#endregion
|
|
160
153
|
export { Sheet };
|
|
161
154
|
|
|
162
|
-
//# sourceMappingURL=Sheet-
|
|
155
|
+
//# sourceMappingURL=Sheet-DVb4XoJ5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sheet-DVb4XoJ5.js","names":[],"sources":["../src/components/Sheet/SheetBody.tsx","../src/components/Sheet/SheetOverlay.tsx","../src/components/Sheet/SheetContent.tsx","../src/components/Sheet/SheetFooter.tsx","../src/components/Sheet/SheetHeader.tsx","../src/components/Sheet/SheetTitle.tsx","../src/components/Sheet/Sheet.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'div'>;\n\nexport const SheetBody = ({ className, ...rest }: Props) => (\n <div\n {...rest}\n className={cn('tw:flex', 'tw:flex-col', 'tw:overflow-x-hidden', 'tw:px-4', className)}\n />\n);\n","import type { ComponentProps } from 'react';\n\nimport { ModalOverlay } from '../Modal/ModalOverlay';\n\ntype Props = ComponentProps<typeof ModalOverlay>;\n\n// Assuming it should have the same style as standard modal, if not remove the modal dependency and style it separately.\nexport const SheetOverlay = ({ ref, ...props }: Props) => <ModalOverlay ref={ref} {...props} />;\n","import type { ComponentProps } from 'react';\nimport { Content, Portal } from '@radix-ui/react-dialog';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cva } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\n\nimport { SheetOverlay } from './SheetOverlay';\n\nconst sheetContentVariants = cva(\n [\n 'tailwindcss-preflight',\n\n 'tw:fixed',\n\n 'tw:z-overlay',\n\n 'tw:flex',\n 'tw:flex-col',\n\n 'tw:bg-card',\n 'tw:text-card-foreground',\n 'tw:shadow-lg',\n\n 'tw:border',\n 'tw:border-border',\n 'tw:focus-visible:outline-hidden',\n 'tw:focus-visible:ring-2',\n 'tw:focus-visible:ring-ring/50',\n\n 'tw:ease-in-out',\n 'tw:data-[state=open]:duration-200',\n 'tw:data-[state=closed]:duration-200',\n ],\n {\n defaultVariants: {\n side: 'right',\n disableTransition: false,\n },\n variants: {\n disableTransition: {\n true: [],\n false: ['tw:data-[state=open]:animate-in', 'tw:data-[state=closed]:animate-out'],\n },\n side: {\n top: [\n 'tw:inset-x-0',\n 'tw:top-0',\n 'tw:h-auto',\n 'tw:data-[state=closed]:slide-out-to-top',\n 'tw:data-[state=open]:slide-in-from-top',\n 'tw:rounded-b-sheet',\n ],\n right: [\n 'tw:inset-y-0',\n 'tw:right-0',\n 'tw:h-full',\n 'tw:data-[state=closed]:slide-out-to-right',\n 'tw:data-[state=open]:slide-in-from-right',\n 'tw:rounded-l-sheet',\n ],\n\n bottom: [\n 'tw:inset-x-0',\n 'tw:bottom-0',\n 'tw:h-auto',\n 'tw:data-[state=closed]:slide-out-to-bottom',\n 'tw:data-[state=open]:slide-in-from-bottom',\n 'tw:drop-shadow-2xl', // standard tailwindcss shadow is invisible for a bottom sheet because of positioning\n 'tw:rounded-t-sheet',\n ],\n\n left: [\n 'tw:inset-y-0',\n 'tw:left-0',\n 'tw:h-full',\n 'tw:data-[state=closed]:slide-out-to-left',\n 'tw:data-[state=open]:slide-in-from-left',\n 'tw:rounded-r-sheet',\n ],\n },\n },\n },\n);\n\ntype Props = ComponentProps<typeof Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left';\n hideOverlay?: boolean;\n keepOpenOnPointerDownOutside?: boolean;\n} & VariantProps<typeof sheetContentVariants> &\n Pick<ComponentProps<typeof Portal>, 'container'>;\n\nexport const SheetContent = ({\n className,\n children,\n side = 'right',\n disableTransition = false,\n hideOverlay = false,\n keepOpenOnPointerDownOutside = false,\n onPointerDownOutside,\n onInteractOutside,\n container,\n ...props\n}: Props) => {\n const handleOnPointerDownOutside: ComponentProps<typeof Content>['onPointerDownOutside'] = (\n event,\n ) => {\n if (keepOpenOnPointerDownOutside) event.preventDefault();\n onPointerDownOutside?.(event);\n };\n\n const handleOnInteractOutside: ComponentProps<typeof Content>['onInteractOutside'] = (event) => {\n if (keepOpenOnPointerDownOutside) event.preventDefault();\n onInteractOutside?.(event);\n };\n\n return (\n <Portal container={container}>\n {!hideOverlay && <SheetOverlay disableTransition={disableTransition ?? false} />}\n <Content\n {...props}\n // Silences Radix's missing-description warning; no sheet uses a description.\n aria-describedby={undefined}\n className={cn(sheetContentVariants({ side, className, disableTransition }))}\n onPointerDownOutside={handleOnPointerDownOutside}\n onInteractOutside={handleOnInteractOutside}\n data-side={side}\n >\n {children}\n </Content>\n </Portal>\n );\n};\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<'div'>;\n\nexport const SheetFooter = ({ className, ...props }: Props) => (\n <div className={cn('tw:mt-auto tw:flex tw:flex-col tw:gap-2 tw:p-4', className)} {...props} />\n);\n","import type { ComponentProps, ReactNode } from 'react';\nimport { Close } from '@radix-ui/react-dialog';\n\nimport { X } from '../../icons';\nimport { cn } from '../../utils';\nimport { Button } from '../Button';\nimport { ModalDescription } from '../Modal/ModalDescription';\nimport { ModalTitle } from '../Modal/ModalTitle';\n\ntype Props = {\n title?: ReactNode;\n description?: ReactNode;\n hideCloseIcon?: boolean;\n} & ComponentProps<'div'>;\n\nexport const SheetHeader = ({\n className,\n children,\n hideCloseIcon = false,\n title,\n description,\n ...props\n}: Props) => {\n const isHeaderRendered = title || description || !hideCloseIcon;\n\n return (\n <div className={cn('tw:flex', 'tw:flex-col', 'tw:gap-1.5', 'tw:p-4', className)} {...props}>\n {isHeaderRendered && (\n <div className=\"tw:flex tw:flex-col\">\n <div className=\"tw:flex tw:justify-end tw:gap-2\">\n {title && <ModalTitle>{title}</ModalTitle>}\n {!hideCloseIcon && (\n <Close asChild>\n <Button variant=\"invisible\" size=\"icon-sm\">\n <X />\n <span className=\"tw:sr-only\">Close</span>\n </Button>\n </Close>\n )}\n </div>\n {description && <ModalDescription>{description}</ModalDescription>}\n </div>\n )}\n\n {children}\n </div>\n );\n};\n","import type { ComponentProps } from 'react';\nimport { Title } from '@radix-ui/react-dialog';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<typeof Title> & {\n visuallyHidden?: boolean;\n};\n\nexport const SheetTitle = ({ className, visuallyHidden = false, ...props }: Props) => (\n <Title className={cn({ 'tw:sr-only': visuallyHidden }, className)} {...props} />\n);\n","import type { ComponentProps } from 'react';\nimport { Close, Root, Trigger } from '@radix-ui/react-dialog';\n\nimport { SheetBody } from './SheetBody';\nimport { SheetContent } from './SheetContent';\nimport { SheetFooter } from './SheetFooter';\nimport { SheetHeader } from './SheetHeader';\nimport { SheetTitle } from './SheetTitle';\n\ntype Props = ComponentProps<typeof Root>;\n\nexport const Sheet = (props: Props) => <Root {...props} />;\n\nSheet.Close = Close;\nSheet.Trigger = Trigger;\nSheet.Content = SheetContent;\nSheet.Title = SheetTitle;\n\nSheet.Header = SheetHeader;\nSheet.Footer = SheetFooter;\nSheet.Body = SheetBody;\n"],"mappings":"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"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { cn } from "./classNames-
|
|
2
|
-
import { Tooltip, TooltipProvider } from "./utils-
|
|
1
|
+
import { cn } from "./classNames-DkX30VJU.js";
|
|
2
|
+
import { Tooltip, TooltipProvider } from "./utils-DjFceY3H.js";
|
|
3
3
|
import { mergeRefs } from "./internal/utils/mergeRefs.js";
|
|
4
|
-
import { ChevronDown, Search } from "./icons-
|
|
5
|
-
import { DropdownMenu } from "./DropdownMenu-
|
|
4
|
+
import { ChevronDown, Search } from "./icons-DDR9dFSr.js";
|
|
5
|
+
import { DropdownMenu } from "./DropdownMenu-Ba9atqDa.js";
|
|
6
6
|
import { ScrollArea } from "./internal/components/ScrollArea.js";
|
|
7
|
-
import { Sheet } from "./Sheet-
|
|
8
|
-
import { HoverCard } from "./HoverCard-
|
|
7
|
+
import { Sheet } from "./Sheet-DVb4XoJ5.js";
|
|
8
|
+
import { HoverCard } from "./HoverCard-OGWKRXJ7.js";
|
|
9
9
|
import { Separator } from "./internal/components/Separator.js";
|
|
10
|
-
import { useElement } from "./useElement-
|
|
11
|
-
import { Collapsible } from "./Collapsible-
|
|
12
|
-
import { useThemeScopeContainer } from "./ThemeProvider-
|
|
13
|
-
import { BrandLogo } from "./BrandLogo-
|
|
10
|
+
import { useElement } from "./useElement-Dcoo9Jlr.js";
|
|
11
|
+
import { Collapsible } from "./Collapsible-zsXk4Vpp.js";
|
|
12
|
+
import { useThemeScopeContainer } from "./ThemeProvider-BCHllN7d.js";
|
|
13
|
+
import { BrandLogo } from "./BrandLogo-Dn7hhp2c.js";
|
|
14
14
|
import { useScrollbarPosition } from "./internal/hooks/useScrollbarPosition.js";
|
|
15
15
|
import { createContext, use, useCallback, useEffect, useLayoutEffect, useMemo, useReducer, useRef, useState, useSyncExternalStore } from "react";
|
|
16
16
|
import { Root, Slot, Slottable } from "@radix-ui/react-slot";
|
|
17
17
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
18
|
-
|
|
18
|
+
// src/components/Sidebar/SidebarProvider/useTransitionPresence.ts
|
|
19
19
|
const FALLBACK_TIMEOUT_MS = 500;
|
|
20
20
|
/** Under reduced motion there is no `transitionend` to wait for, so the mount is not deferred. */
|
|
21
21
|
const prefersReducedMotion = () => typeof window !== "undefined" && (window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ?? false);
|
|
@@ -58,8 +58,7 @@ const useTransitionPresence = ({ mounted, keepMounted = false, mountAfterEnter =
|
|
|
58
58
|
completeUnmount: () => send("TRANSITION_END")
|
|
59
59
|
}), [state, keepMounted]);
|
|
60
60
|
};
|
|
61
|
-
|
|
62
|
-
//#region src/components/Sidebar/SidebarContent.tsx
|
|
61
|
+
// src/components/Sidebar/SidebarContent.tsx
|
|
63
62
|
const SidebarContent = ({ ref, className, children, contentRef }) => {
|
|
64
63
|
const { setElement, isBottom, isTop, isMiddle } = useScrollbarPosition();
|
|
65
64
|
const mergedRefs = mergeRefs(ref ?? null, (ref) => setElement(ref));
|
|
@@ -80,8 +79,7 @@ const SidebarContent = ({ ref, className, children, contentRef }) => {
|
|
|
80
79
|
})
|
|
81
80
|
});
|
|
82
81
|
};
|
|
83
|
-
|
|
84
|
-
//#region src/hooks/useMediaQuery.ts
|
|
82
|
+
// src/hooks/useMediaQuery.ts
|
|
85
83
|
/**
|
|
86
84
|
* Whether a CSS media query currently matches, re-rendering when it flips.
|
|
87
85
|
*
|
|
@@ -98,8 +96,7 @@ const useMediaQuery = (query) => {
|
|
|
98
96
|
const getSnapshot = useCallback(() => globalThis.matchMedia?.(query).matches ?? false, [query]);
|
|
99
97
|
return useSyncExternalStore(subscribe, getSnapshot, () => false);
|
|
100
98
|
};
|
|
101
|
-
|
|
102
|
-
//#region src/components/Sidebar/utils.ts
|
|
99
|
+
// src/components/Sidebar/utils.ts
|
|
103
100
|
const SidebarWidthInPx = {
|
|
104
101
|
MIN_DEFAULT: 256,
|
|
105
102
|
COLLAPSED_ICON: 52,
|
|
@@ -151,8 +148,7 @@ const calcEffectiveWidths = ({ variant, width: customWidth, collapsible, state,
|
|
|
151
148
|
})();
|
|
152
149
|
return collapsible === "icon" ? iconWidths : offCanvasWidths;
|
|
153
150
|
};
|
|
154
|
-
|
|
155
|
-
//#region src/components/Sidebar/SidebarProvider/context.ts
|
|
151
|
+
// src/components/Sidebar/SidebarProvider/context.ts
|
|
156
152
|
const SidebarContext = createContext(null);
|
|
157
153
|
/** `useSidebar` that returns `null` outside a `SidebarProvider` instead of throwing. */
|
|
158
154
|
const useOptionalSidebar = (side = "left") => use(SidebarContext)?.[side] ?? null;
|
|
@@ -161,8 +157,7 @@ const useSidebar = (side = "left") => {
|
|
|
161
157
|
if (context === null) throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
162
158
|
return context[side];
|
|
163
159
|
};
|
|
164
|
-
|
|
165
|
-
//#region src/components/Sidebar/SidebarProvider/useHoverTracking.ts
|
|
160
|
+
// src/components/Sidebar/SidebarProvider/useHoverTracking.ts
|
|
166
161
|
const PORTAL_OPEN_SELECTORS_STRING = ["[aria-haspopup=\"menu\"][aria-expanded=true]", "[aria-haspopup=\"dialog\"][aria-expanded=true]"].join(",");
|
|
167
162
|
const useHoverTracking = (sidebarElement) => {
|
|
168
163
|
const [hoveredElement, setHoveredElement] = useState(null);
|
|
@@ -207,8 +202,7 @@ const useHoverTracking = (sidebarElement) => {
|
|
|
207
202
|
}, [sidebarElement]);
|
|
208
203
|
return isHovered;
|
|
209
204
|
};
|
|
210
|
-
|
|
211
|
-
//#region src/components/Sidebar/SidebarProvider/useSidebarState.ts
|
|
205
|
+
// src/components/Sidebar/SidebarProvider/useSidebarState.ts
|
|
212
206
|
const useSidebarState = ({ defaultMode, mode: modeProp, onModeChange }) => {
|
|
213
207
|
const [sidebarElement, setSidebarElement] = useElement();
|
|
214
208
|
const isHovered = useHoverTracking(sidebarElement);
|
|
@@ -243,8 +237,7 @@ const useSidebarState = ({ defaultMode, mode: modeProp, onModeChange }) => {
|
|
|
243
237
|
setSidebarElement
|
|
244
238
|
]);
|
|
245
239
|
};
|
|
246
|
-
|
|
247
|
-
//#region src/components/Sidebar/SidebarProvider/SidebarProvider.tsx
|
|
240
|
+
// src/components/Sidebar/SidebarProvider/SidebarProvider.tsx
|
|
248
241
|
const DEFAULT_SIDEBAR_VARIANT = "none";
|
|
249
242
|
const DEFAULT_SIDEBAR_MODE = "expanded";
|
|
250
243
|
const DEFAULT_SIDEBAR_COLLAPSIBLE = "off-canvas";
|
|
@@ -379,8 +372,7 @@ const SidebarProvider = ({ children, defaultLeftMode = DEFAULT_SIDEBAR_MODE, lef
|
|
|
379
372
|
children
|
|
380
373
|
});
|
|
381
374
|
};
|
|
382
|
-
|
|
383
|
-
//#region src/components/Sidebar/SidebarFillTrigger.tsx
|
|
375
|
+
// src/components/Sidebar/SidebarFillTrigger.tsx
|
|
384
376
|
const SidebarFillTrigger = ({ ref, side = "left", onClick, ...rest }) => {
|
|
385
377
|
const { toggleFill, isFill } = useSidebar(side);
|
|
386
378
|
const handleOnClick = (event) => {
|
|
@@ -394,27 +386,23 @@ const SidebarFillTrigger = ({ ref, side = "left", onClick, ...rest }) => {
|
|
|
394
386
|
"aria-selected": isFill
|
|
395
387
|
});
|
|
396
388
|
};
|
|
397
|
-
|
|
398
|
-
//#region src/components/Sidebar/SidebarFooter.tsx
|
|
389
|
+
// src/components/Sidebar/SidebarFooter.tsx
|
|
399
390
|
const SidebarFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
400
391
|
"data-slot": "sidebar-footer",
|
|
401
392
|
className: cn("tw:flex", "tw:flex-col", "tw:gap-2", "tw:p-2", className),
|
|
402
393
|
...props
|
|
403
394
|
});
|
|
404
|
-
|
|
405
|
-
//#region src/components/Sidebar/SidebarGroup/SidebarGroup.tsx
|
|
395
|
+
// src/components/Sidebar/SidebarGroup/SidebarGroup.tsx
|
|
406
396
|
const SidebarGroup = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
407
397
|
className: cn("tw:group/sidebar-group", "tw:relative", "tw:w-full", "tw:flex", "tw:flex-col", "tw:min-w-0", "tw:rounded-lg", className),
|
|
408
398
|
...props
|
|
409
399
|
});
|
|
410
|
-
|
|
411
|
-
//#region src/components/Sidebar/SidebarGroup/SidebarGroupContent.tsx
|
|
400
|
+
// src/components/Sidebar/SidebarGroup/SidebarGroupContent.tsx
|
|
412
401
|
const SidebarGroupContent = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
413
402
|
className: cn("tw:flex", "tw:flex-col", "tw:gap-2", "tw:w-full", className),
|
|
414
403
|
...props
|
|
415
404
|
});
|
|
416
|
-
|
|
417
|
-
//#region src/components/Sidebar/SidebarGroup/SidebarGroupAction.tsx
|
|
405
|
+
// src/components/Sidebar/SidebarGroup/SidebarGroupAction.tsx
|
|
418
406
|
const SidebarGroupAction = ({ ref, className, type = "button", children, ...props }) => /* @__PURE__ */ jsx("button", {
|
|
419
407
|
...props,
|
|
420
408
|
type,
|
|
@@ -422,8 +410,7 @@ const SidebarGroupAction = ({ ref, className, type = "button", children, ...prop
|
|
|
422
410
|
className: cn("tw:group-data-[state=collapsed]/sidebar:hidden", "tw:absolute", "tw:right-1.5", "tw:top-2", "tw:flex", "tw:items-center", "tw:justify-center", "tw:size-5", "tw:text-sidebar-foreground", "tw:rounded-full", "tw:[&_svg:not([class*=\"tw:size-\"])]:size-3", "tw:[&_svg]:text-muted-foreground", "tw:hover:[&_svg]:text-secondary-600", "tw:hover:bg-muted", "tw:focus-visible:ring-4", "tw:focus-visible:ring-ring/30", "tw:focus-visible:outline", "tw:focus-visible:outline-1", "tw:focus-visible:outline-ring", className),
|
|
423
411
|
children
|
|
424
412
|
});
|
|
425
|
-
|
|
426
|
-
//#region src/components/Sidebar/SidebarGroup/SidebarGroupLabel.tsx
|
|
413
|
+
// src/components/Sidebar/SidebarGroup/SidebarGroupLabel.tsx
|
|
427
414
|
const SidebarGroupLabel = ({ ref, className, children, ...props }) => /* @__PURE__ */ jsxs("div", {
|
|
428
415
|
ref,
|
|
429
416
|
className: cn("tw:relative", "tw:flex", "tw:flex-col", "tw:shrink-0", "tw:h-8", "tw:px-2", "tw:-mb-1", "tw:rounded-lg", "tw:uppercase", "tw:font-sans", "tw:text-xs", "tw:tracking-[1px]", className),
|
|
@@ -437,16 +424,14 @@ const SidebarGroupLabel = ({ ref, className, children, ...props }) => /* @__PURE
|
|
|
437
424
|
children
|
|
438
425
|
})]
|
|
439
426
|
});
|
|
440
|
-
|
|
441
|
-
//#region src/components/Sidebar/SidebarInstanceContext.ts
|
|
427
|
+
// src/components/Sidebar/SidebarInstanceContext.ts
|
|
442
428
|
const SidebarInstanceContext = createContext(null);
|
|
443
429
|
const useSidebarInstance = () => {
|
|
444
430
|
const context = use(SidebarInstanceContext);
|
|
445
431
|
if (context === null) throw new Error("useSidebarInstance must be used within a SidebarInstanceContext.");
|
|
446
432
|
return context;
|
|
447
433
|
};
|
|
448
|
-
|
|
449
|
-
//#region src/components/Sidebar/SidebarHeader.tsx
|
|
434
|
+
// src/components/Sidebar/SidebarHeader.tsx
|
|
450
435
|
const SidebarHeader = ({ className, children, ...props }) => {
|
|
451
436
|
const variant = use(SidebarInstanceContext)?.state === "collapsed" ? "mark" : "wordmark";
|
|
452
437
|
const fallback = /* @__PURE__ */ jsx(BrandLogo, {
|
|
@@ -460,23 +445,20 @@ const SidebarHeader = ({ className, children, ...props }) => {
|
|
|
460
445
|
children: children ?? fallback
|
|
461
446
|
});
|
|
462
447
|
};
|
|
463
|
-
|
|
464
|
-
//#region src/components/Sidebar/SidebarMenu/SidebarMenu.tsx
|
|
448
|
+
// src/components/Sidebar/SidebarMenu/SidebarMenu.tsx
|
|
465
449
|
const SidebarMenu = ({ className, ...props }) => /* @__PURE__ */ jsx("ul", {
|
|
466
450
|
"data-sidebar": "menu",
|
|
467
451
|
className: cn("tw:flex", "tw:w-full", "tw:min-w-0", "tw:flex-col", "tw:gap-1", "tw:transition-[margin,opacity]", "tw:duration-(--sidebar-motion-duration)", "tw:ease-(--sidebar-motion-easing)", "tw:motion-reduce:transition-none", "tw:pl-0", className),
|
|
468
452
|
...props
|
|
469
453
|
});
|
|
470
|
-
|
|
471
|
-
//#region src/components/Sidebar/SidebarMenu/SidebarMenuIcon.tsx
|
|
454
|
+
// src/components/Sidebar/SidebarMenu/SidebarMenuIcon.tsx
|
|
472
455
|
const SidebarMenuIcon = ({ ref, className, children, ...rest }) => /* @__PURE__ */ jsx("span", {
|
|
473
456
|
...rest,
|
|
474
457
|
ref,
|
|
475
458
|
className: cn("tw:inline-flex", "tw:items-center", "tw:justify-center", "tw:aspect-square", "tw:shrink-0", "tw:p-0.5", "tw:text-sidebar-primary", "tw:[&_svg:not([class*=\"tw:size-\"])]:size-4", className),
|
|
476
459
|
children
|
|
477
460
|
});
|
|
478
|
-
|
|
479
|
-
//#region src/components/Sidebar/SidebarMenu/useDestinationDismiss.ts
|
|
461
|
+
// src/components/Sidebar/SidebarMenu/useDestinationDismiss.ts
|
|
480
462
|
/**
|
|
481
463
|
* A menu item's click handler: the caller's own, then (on a phone) dismissing the sheet.
|
|
482
464
|
*
|
|
@@ -493,8 +475,7 @@ const useDestinationDismiss = (props, onClick) => {
|
|
|
493
475
|
if (isMobile && isDestination) setMobileOpen(false);
|
|
494
476
|
};
|
|
495
477
|
};
|
|
496
|
-
|
|
497
|
-
//#region src/components/Sidebar/SidebarMenu/SidebarMenuButton.tsx
|
|
478
|
+
// src/components/Sidebar/SidebarMenu/SidebarMenuButton.tsx
|
|
498
479
|
/** A collapsed rail is icon-only, so its labels appear almost at once instead of after the default 300ms. */
|
|
499
480
|
const COLLAPSED_TOOLTIP_DELAY_MS = 50;
|
|
500
481
|
const SidebarMenuButton = ({ ref, "aria-selected": selected, className, children, asChild = false, icon, tooltip, onClick, ...props }) => {
|
|
@@ -521,14 +502,12 @@ const SidebarMenuButton = ({ ref, "aria-selected": selected, className, children
|
|
|
521
502
|
});
|
|
522
503
|
return button;
|
|
523
504
|
};
|
|
524
|
-
|
|
525
|
-
//#region src/components/Sidebar/SidebarMenu/SidebarMenuItem.tsx
|
|
505
|
+
// src/components/Sidebar/SidebarMenu/SidebarMenuItem.tsx
|
|
526
506
|
const SidebarMenuItem = ({ className, ...props }) => /* @__PURE__ */ jsx("li", {
|
|
527
507
|
className: cn("tw:group/sidebar-menu-item", "tw:relative", className),
|
|
528
508
|
...props
|
|
529
509
|
});
|
|
530
|
-
|
|
531
|
-
//#region src/components/Sidebar/SidebarMenu/SidebarMenuAction.tsx
|
|
510
|
+
// src/components/Sidebar/SidebarMenu/SidebarMenuAction.tsx
|
|
532
511
|
const SidebarMenuAction = ({ ref, className, asChild = false, showOnHover = false, children, ...props }) => {
|
|
533
512
|
return /* @__PURE__ */ jsx(asChild ? Slot : "button", {
|
|
534
513
|
...props,
|
|
@@ -539,8 +518,7 @@ const SidebarMenuAction = ({ ref, className, asChild = false, showOnHover = fals
|
|
|
539
518
|
children
|
|
540
519
|
});
|
|
541
520
|
};
|
|
542
|
-
|
|
543
|
-
//#region src/components/Sidebar/SidebarMenu/SidebarSearchInput.tsx
|
|
521
|
+
// src/components/Sidebar/SidebarMenu/SidebarSearchInput.tsx
|
|
544
522
|
const wrapperClassnames = cn("tw:group/search-input", "tw:relative", "tw:flex", "tw:items-center", "tw:min-h-9", "tw:rounded-lg", "tw:border", "tw:transition-all", "tw:group-data-[state=collapsed]/sidebar:cursor-pointer", "tw:group-data-[state=collapsed]/sidebar:border-transparent", "tw:group-data-[state=collapsed]/sidebar:hover:bg-sidebar-hover", "tw:group-data-[state=expanded]/sidebar:cursor-text", "tw:group-data-[state=expanded]/sidebar:px-2", "tw:group-data-[state=expanded]/sidebar:border-sidebar-border", "tw:focus-within:ring-2", "tw:focus-within:ring-sidebar-ring/50", "tw:focus-within:text-sidebar-foreground");
|
|
545
523
|
const SidebarSearchInput = ({ ref: forwardedRef, className, ...inputProps }) => {
|
|
546
524
|
const { side } = useSidebarInstance();
|
|
@@ -562,8 +540,7 @@ const SidebarSearchInput = ({ ref: forwardedRef, className, ...inputProps }) =>
|
|
|
562
540
|
})]
|
|
563
541
|
});
|
|
564
542
|
};
|
|
565
|
-
|
|
566
|
-
//#region src/components/Sidebar/SidebarMenu/SidebarMenuCard.tsx
|
|
543
|
+
// src/components/Sidebar/SidebarMenu/SidebarMenuCard.tsx
|
|
567
544
|
const Title = ({ children }) => /* @__PURE__ */ jsx("div", {
|
|
568
545
|
className: "tw:flex tw:select-none tw:gap-2 tw:text-sm tw:font-semibold",
|
|
569
546
|
children
|
|
@@ -613,8 +590,7 @@ const SidebarMenuCard = ({ children, className, icon, title, ...rest }) => {
|
|
|
613
590
|
})]
|
|
614
591
|
});
|
|
615
592
|
};
|
|
616
|
-
|
|
617
|
-
//#region src/components/Sidebar/SidebarMenu/SidebarMenuBadge.tsx
|
|
593
|
+
// src/components/Sidebar/SidebarMenu/SidebarMenuBadge.tsx
|
|
618
594
|
const SidebarMenuBadge = ({ ref, className, ...props }) => {
|
|
619
595
|
return /* @__PURE__ */ jsx("div", {
|
|
620
596
|
ref,
|
|
@@ -624,8 +600,7 @@ const SidebarMenuBadge = ({ ref, className, ...props }) => {
|
|
|
624
600
|
...props
|
|
625
601
|
});
|
|
626
602
|
};
|
|
627
|
-
|
|
628
|
-
//#region src/components/Sidebar/SidebarMenu/SidebarMenuSub.tsx
|
|
603
|
+
// src/components/Sidebar/SidebarMenu/SidebarMenuSub.tsx
|
|
629
604
|
const SidebarMenuSub = ({ children, icon, isActive = false, label, defaultOpen = false, open: openProp, onOpenChange }) => {
|
|
630
605
|
const { state, side, mode } = useSidebarInstance();
|
|
631
606
|
const [open, setOpen] = useState(null);
|
|
@@ -695,8 +670,7 @@ const SidebarMenuSub = ({ children, icon, isActive = false, label, defaultOpen =
|
|
|
695
670
|
}) })]
|
|
696
671
|
});
|
|
697
672
|
};
|
|
698
|
-
|
|
699
|
-
//#region src/components/Sidebar/SidebarMenu/SidebarMenuSubItem.tsx
|
|
673
|
+
// src/components/Sidebar/SidebarMenu/SidebarMenuSubItem.tsx
|
|
700
674
|
const SidebarMenuSubItem = ({ ref, className, asChild = false, children, disabled, onClick, "aria-current": ariaCurrent, ...props }) => {
|
|
701
675
|
const { mode } = useSidebarInstance();
|
|
702
676
|
const handleClick = useDestinationDismiss(props, onClick);
|
|
@@ -722,8 +696,7 @@ const SidebarMenuSubItem = ({ ref, className, asChild = false, children, disable
|
|
|
722
696
|
})
|
|
723
697
|
});
|
|
724
698
|
};
|
|
725
|
-
|
|
726
|
-
//#region src/components/Sidebar/useResizeSidebar.ts
|
|
699
|
+
// src/components/Sidebar/useResizeSidebar.ts
|
|
727
700
|
const DEFAULT_MIN_WIDTH = 384;
|
|
728
701
|
const DEFAULT_MAX_WIDTH = 800;
|
|
729
702
|
const useResizeSidebar = ({ side, minWidth = DEFAULT_MIN_WIDTH, maxWidth = DEFAULT_MAX_WIDTH }) => {
|
|
@@ -793,8 +766,7 @@ const useResizeSidebar = ({ side, minWidth = DEFAULT_MIN_WIDTH, maxWidth = DEFAU
|
|
|
793
766
|
isResizable
|
|
794
767
|
};
|
|
795
768
|
};
|
|
796
|
-
|
|
797
|
-
//#region src/components/Sidebar/SidebarResizeHandle.tsx
|
|
769
|
+
// src/components/Sidebar/SidebarResizeHandle.tsx
|
|
798
770
|
const SidebarResizeHandle = ({ side, minWidth, maxWidth }) => {
|
|
799
771
|
const { handleProps, isResizable } = useResizeSidebar({
|
|
800
772
|
side,
|
|
@@ -808,16 +780,14 @@ const SidebarResizeHandle = ({ side, minWidth, maxWidth }) => {
|
|
|
808
780
|
className: cn("tw:absolute tw:inset-y-0 tw:z-10 tw:w-3", side === "right" ? "tw:left-0" : "tw:right-0", "tw:cursor-col-resize")
|
|
809
781
|
});
|
|
810
782
|
};
|
|
811
|
-
|
|
812
|
-
//#region src/components/Sidebar/SidebarSeparator.tsx
|
|
783
|
+
// src/components/Sidebar/SidebarSeparator.tsx
|
|
813
784
|
const SidebarSeparator = ({ className, ...props }) => /* @__PURE__ */ jsx(Separator, {
|
|
814
785
|
...props,
|
|
815
786
|
orientation: "horizontal",
|
|
816
787
|
size: "full",
|
|
817
788
|
className: cn("tw:before:bg-sidebar-border tw:p-2", className)
|
|
818
789
|
});
|
|
819
|
-
|
|
820
|
-
//#region src/components/Sidebar/SidebarTrigger.tsx
|
|
790
|
+
// src/components/Sidebar/SidebarTrigger.tsx
|
|
821
791
|
const SidebarTrigger = ({ side = "left", onClick, hideWhenCollapsed = false, className, ...rest }) => {
|
|
822
792
|
const { toggle, state, isMobile, isMobileOpen } = useSidebar(side);
|
|
823
793
|
const handleOnClick = (event) => {
|
|
@@ -833,8 +803,7 @@ const SidebarTrigger = ({ side = "left", onClick, hideWhenCollapsed = false, cla
|
|
|
833
803
|
className: cn({ "tw:group-data-[state=collapsed]/sidebar:hidden": hideWhenCollapsed }, className)
|
|
834
804
|
});
|
|
835
805
|
};
|
|
836
|
-
|
|
837
|
-
//#region src/components/Sidebar/Sidebar.tsx
|
|
806
|
+
// src/components/Sidebar/Sidebar.tsx
|
|
838
807
|
const Sidebar = ({ children, className, id, side = "left", style, container = false, keepMounted, mountAfterEnter, resizable = false, mobileTitle, ...rest }) => {
|
|
839
808
|
const oppositeSide = side === "left" ? "right" : "left";
|
|
840
809
|
const { setSidebarElement, state, mode, isFill, widths, collapsible, variant, isDragging, isMobile, isMobileOpen, setMobileOpen } = useSidebar(side);
|
|
@@ -970,7 +939,6 @@ Sidebar.MenuCard = SidebarMenuCard;
|
|
|
970
939
|
Sidebar.MenuBadge = SidebarMenuBadge;
|
|
971
940
|
Sidebar.SubMenu = SidebarMenuSub;
|
|
972
941
|
Sidebar.SubItem = SidebarMenuSubItem;
|
|
973
|
-
//#endregion
|
|
974
942
|
export { Sidebar, SidebarProvider, useOptionalSidebar, useSidebar };
|
|
975
943
|
|
|
976
|
-
//# sourceMappingURL=Sidebar-
|
|
944
|
+
//# sourceMappingURL=Sidebar-DYvodJWN.js.map
|