@mastra/playground-ui 33.0.0-alpha.2 → 33.0.0-alpha.4
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/CHANGELOG.md +179 -0
- package/dist/Avatar-Dcmi3-pN.js +42 -0
- package/dist/Avatar-Dcmi3-pN.js.map +1 -0
- package/dist/Avatar-Y-1fas25.cjs +44 -0
- package/dist/Avatar-Y-1fas25.cjs.map +1 -0
- package/dist/Badge-C5MzMyCa.js +34 -0
- package/dist/Badge-C5MzMyCa.js.map +1 -0
- package/dist/Badge-CQD9T1Yd.cjs +36 -0
- package/dist/Badge-CQD9T1Yd.cjs.map +1 -0
- package/dist/Breadcrumb-BT_nzL3M.cjs +39 -0
- package/dist/Breadcrumb-BT_nzL3M.cjs.map +1 -0
- package/dist/Breadcrumb-CxbCgAij.js +35 -0
- package/dist/Breadcrumb-CxbCgAij.js.map +1 -0
- package/dist/Button-DoOEJwa_.js +105 -0
- package/dist/Button-DoOEJwa_.js.map +1 -0
- package/dist/Button-DpIX8JMz.cjs +108 -0
- package/dist/Button-DpIX8JMz.cjs.map +1 -0
- package/dist/Card-Xx0_PeuI.cjs +90 -0
- package/dist/Card-Xx0_PeuI.cjs.map +1 -0
- package/dist/Card-cFJPRQ9O.js +64 -0
- package/dist/Card-cFJPRQ9O.js.map +1 -0
- package/dist/EmptyState-DfXdX6I8.js +31 -0
- package/dist/EmptyState-DfXdX6I8.js.map +1 -0
- package/dist/EmptyState-vw7dhSKP.cjs +33 -0
- package/dist/EmptyState-vw7dhSKP.cjs.map +1 -0
- package/dist/Entity-CVzaJDXu.js +42 -0
- package/dist/Entity-CVzaJDXu.js.map +1 -0
- package/dist/Entity-DALpbsRa.cjs +48 -0
- package/dist/Entity-DALpbsRa.cjs.map +1 -0
- package/dist/ErrorBoundary-6_BD8AkH.js +154 -0
- package/dist/ErrorBoundary-6_BD8AkH.js.map +1 -0
- package/dist/ErrorBoundary-BqiUSXyJ.cjs +175 -0
- package/dist/ErrorBoundary-BqiUSXyJ.cjs.map +1 -0
- package/dist/ErrorState-DH5KsoFs.js +14 -0
- package/dist/ErrorState-DH5KsoFs.js.map +1 -0
- package/dist/ErrorState-Dq9BVWmR.cjs +16 -0
- package/dist/ErrorState-Dq9BVWmR.cjs.map +1 -0
- package/dist/Header-Cfc5fIp6.js +31 -0
- package/dist/Header-Cfc5fIp6.js.map +1 -0
- package/dist/Header-wkLHG26m.cjs +36 -0
- package/dist/Header-wkLHG26m.cjs.map +1 -0
- package/dist/Icon-CJEjdbjB.js +14 -0
- package/dist/Icon-CJEjdbjB.js.map +1 -0
- package/dist/Icon-C_Ooy-cP.cjs +16 -0
- package/dist/Icon-C_Ooy-cP.cjs.map +1 -0
- package/dist/Notice-D5nzvm08.js +89 -0
- package/dist/Notice-D5nzvm08.js.map +1 -0
- package/dist/Notice-Mjo3MJi2.cjs +91 -0
- package/dist/Notice-Mjo3MJi2.cjs.map +1 -0
- package/dist/PermissionDenied-DFCUFnNH.js +22 -0
- package/dist/PermissionDenied-DFCUFnNH.js.map +1 -0
- package/dist/PermissionDenied-DjZjq-3E.cjs +24 -0
- package/dist/PermissionDenied-DjZjq-3E.cjs.map +1 -0
- package/dist/SessionExpired-DGk3CXNp.cjs +47 -0
- package/dist/SessionExpired-DGk3CXNp.cjs.map +1 -0
- package/dist/SessionExpired-Dhmm8eLq.js +45 -0
- package/dist/SessionExpired-Dhmm8eLq.js.map +1 -0
- package/dist/StatusBadge-Bow-zeGQ.cjs +74 -0
- package/dist/StatusBadge-Bow-zeGQ.cjs.map +1 -0
- package/dist/StatusBadge-CBbwykMh.js +72 -0
- package/dist/StatusBadge-CBbwykMh.js.map +1 -0
- package/dist/Txt-AhytBlTj.js +26 -0
- package/dist/Txt-AhytBlTj.js.map +1 -0
- package/dist/Txt-Cmn4ug68.cjs +28 -0
- package/dist/Txt-Cmn4ug68.cjs.map +1 -0
- package/dist/alert-dialog-DfQhrc2F.cjs +120 -0
- package/dist/alert-dialog-DfQhrc2F.cjs.map +1 -0
- package/dist/alert-dialog-bKOBpddM.js +99 -0
- package/dist/alert-dialog-bKOBpddM.js.map +1 -0
- package/dist/as-child-Dgr1RHLO.cjs +29 -0
- package/dist/as-child-Dgr1RHLO.cjs.map +1 -0
- package/dist/as-child-N1qMDCr8.js +8 -0
- package/dist/as-child-N1qMDCr8.js.map +1 -0
- package/dist/brand-loader-Bxz0bWdp.js +52 -0
- package/dist/brand-loader-Bxz0bWdp.js.map +1 -0
- package/dist/brand-loader-DNMY5ZK7.cjs +54 -0
- package/dist/brand-loader-DNMY5ZK7.cjs.map +1 -0
- package/dist/brand-loader.css +68 -0
- package/dist/buttons-group-BAU7uXE9.js +161 -0
- package/dist/buttons-group-BAU7uXE9.js.map +1 -0
- package/dist/buttons-group-BvLg2kpv.cjs +185 -0
- package/dist/buttons-group-BvLg2kpv.cjs.map +1 -0
- package/dist/checkbox-Bda6srNY.cjs +109 -0
- package/dist/checkbox-Bda6srNY.cjs.map +1 -0
- package/dist/checkbox-DmKlRClz.js +88 -0
- package/dist/checkbox-DmKlRClz.js.map +1 -0
- package/dist/chip-Cx5D5DkA.cjs +68 -0
- package/dist/chip-Cx5D5DkA.cjs.map +1 -0
- package/dist/chip-Dgrpa03p.js +66 -0
- package/dist/chip-Dgrpa03p.js.map +1 -0
- package/dist/chips-group-CaxAKuxv.cjs +23 -0
- package/dist/chips-group-CaxAKuxv.cjs.map +1 -0
- package/dist/chips-group-DgaAmiHe.js +21 -0
- package/dist/chips-group-DgaAmiHe.js.map +1 -0
- package/dist/code-B3WONxnA.cjs +68 -0
- package/dist/code-B3WONxnA.cjs.map +1 -0
- package/dist/code-C5KVVzOZ.js +47 -0
- package/dist/code-C5KVVzOZ.js.map +1 -0
- package/dist/code-block-53x4kvYO.js +73 -0
- package/dist/code-block-53x4kvYO.js.map +1 -0
- package/dist/code-block-UyWLLMZ0.cjs +75 -0
- package/dist/code-block-UyWLLMZ0.cjs.map +1 -0
- package/dist/code-diff-C2vuR6Ti.cjs +136 -0
- package/dist/code-diff-C2vuR6Ti.cjs.map +1 -0
- package/dist/code-diff-lktH1err.js +134 -0
- package/dist/code-diff-lktH1err.js.map +1 -0
- package/dist/code-editor-BuzhLm2a.cjs +446 -0
- package/dist/code-editor-BuzhLm2a.cjs.map +1 -0
- package/dist/code-editor-XAfFI9V8.js +438 -0
- package/dist/code-editor-XAfFI9V8.js.map +1 -0
- package/dist/collapsible-CDSgJ39O.cjs +61 -0
- package/dist/collapsible-CDSgJ39O.cjs.map +1 -0
- package/dist/collapsible-PODbdTuV.js +57 -0
- package/dist/collapsible-PODbdTuV.js.map +1 -0
- package/dist/combobox-B2TriE9Z.cjs +77 -0
- package/dist/combobox-B2TriE9Z.cjs.map +1 -0
- package/dist/combobox-q2xPfCZc.js +75 -0
- package/dist/combobox-q2xPfCZc.js.map +1 -0
- package/dist/command-D0tQ1Lpz.cjs +151 -0
- package/dist/command-D0tQ1Lpz.cjs.map +1 -0
- package/dist/command-DPEUOKZw.js +122 -0
- package/dist/command-DPEUOKZw.js.map +1 -0
- package/dist/components/AlertDialog.cjs.js +10 -0
- package/dist/components/AlertDialog.cjs.js.map +1 -0
- package/dist/components/AlertDialog.d.ts +2 -0
- package/dist/components/AlertDialog.es.js +2 -0
- package/dist/components/AlertDialog.es.js.map +1 -0
- package/dist/components/Avatar.cjs.js +10 -0
- package/dist/components/Avatar.cjs.js.map +1 -0
- package/dist/components/Avatar.d.ts +2 -0
- package/dist/components/Avatar.es.js +2 -0
- package/dist/components/Avatar.es.js.map +1 -0
- package/dist/components/Badge.cjs.js +10 -0
- package/dist/components/Badge.cjs.js.map +1 -0
- package/dist/components/Badge.d.ts +2 -0
- package/dist/components/Badge.es.js +2 -0
- package/dist/components/Badge.es.js.map +1 -0
- package/dist/components/BrandLoader.cjs.js +10 -0
- package/dist/components/BrandLoader.cjs.js.map +1 -0
- package/dist/components/BrandLoader.d.ts +2 -0
- package/dist/components/BrandLoader.es.js +2 -0
- package/dist/components/BrandLoader.es.js.map +1 -0
- package/dist/components/Breadcrumb.cjs.js +11 -0
- package/dist/components/Breadcrumb.cjs.js.map +1 -0
- package/dist/components/Breadcrumb.d.ts +2 -0
- package/dist/components/Breadcrumb.es.js +2 -0
- package/dist/components/Breadcrumb.es.js.map +1 -0
- package/dist/components/Button.cjs.js +11 -0
- package/dist/components/Button.cjs.js.map +1 -0
- package/dist/components/Button.d.ts +2 -0
- package/dist/components/Button.es.js +2 -0
- package/dist/components/Button.es.js.map +1 -0
- package/dist/components/ButtonsGroup.cjs.js +13 -0
- package/dist/components/ButtonsGroup.cjs.js.map +1 -0
- package/dist/components/ButtonsGroup.d.ts +2 -0
- package/dist/components/ButtonsGroup.es.js +2 -0
- package/dist/components/ButtonsGroup.es.js.map +1 -0
- package/dist/components/Card.cjs.js +15 -0
- package/dist/components/Card.cjs.js.map +1 -0
- package/dist/components/Card.d.ts +2 -0
- package/dist/components/Card.es.js +2 -0
- package/dist/components/Card.es.js.map +1 -0
- package/dist/components/Checkbox.cjs.js +10 -0
- package/dist/components/Checkbox.cjs.js.map +1 -0
- package/dist/components/Checkbox.d.ts +2 -0
- package/dist/components/Checkbox.es.js +2 -0
- package/dist/components/Checkbox.es.js.map +1 -0
- package/dist/components/Chip.cjs.js +12 -0
- package/dist/components/Chip.cjs.js.map +1 -0
- package/dist/components/Chip.d.ts +2 -0
- package/dist/components/Chip.es.js +3 -0
- package/dist/components/Chip.es.js.map +1 -0
- package/dist/components/Code.cjs.js +10 -0
- package/dist/components/Code.cjs.js.map +1 -0
- package/dist/components/Code.d.ts +2 -0
- package/dist/components/Code.es.js +2 -0
- package/dist/components/Code.es.js.map +1 -0
- package/dist/components/CodeBlock.cjs.js +10 -0
- package/dist/components/CodeBlock.cjs.js.map +1 -0
- package/dist/components/CodeBlock.d.ts +2 -0
- package/dist/components/CodeBlock.es.js +2 -0
- package/dist/components/CodeBlock.es.js.map +1 -0
- package/dist/components/CodeDiff.cjs.js +10 -0
- package/dist/components/CodeDiff.cjs.js.map +1 -0
- package/dist/components/CodeDiff.d.ts +2 -0
- package/dist/components/CodeDiff.es.js +2 -0
- package/dist/components/CodeDiff.es.js.map +1 -0
- package/dist/components/CodeEditor.cjs.js +18 -0
- package/dist/components/CodeEditor.cjs.js.map +1 -0
- package/dist/components/CodeEditor.d.ts +2 -0
- package/dist/components/CodeEditor.es.js +3 -0
- package/dist/components/CodeEditor.es.js.map +1 -0
- package/dist/components/Collapsible.cjs.js +12 -0
- package/dist/components/Collapsible.cjs.js.map +1 -0
- package/dist/components/Collapsible.d.ts +2 -0
- package/dist/components/Collapsible.es.js +2 -0
- package/dist/components/Collapsible.es.js.map +1 -0
- package/dist/components/Columns.cjs.js +12 -0
- package/dist/components/Columns.cjs.js.map +1 -0
- package/dist/components/Columns.d.ts +2 -0
- package/dist/components/Columns.es.js +2 -0
- package/dist/components/Columns.es.js.map +1 -0
- package/dist/components/Combobox.cjs.js +18 -0
- package/dist/components/Combobox.cjs.js.map +1 -0
- package/dist/components/Combobox.d.ts +2 -0
- package/dist/components/Combobox.es.js +4 -0
- package/dist/components/Combobox.es.js.map +1 -0
- package/dist/components/Command.cjs.js +18 -0
- package/dist/components/Command.cjs.js.map +1 -0
- package/dist/components/Command.d.ts +2 -0
- package/dist/components/Command.es.js +2 -0
- package/dist/components/Command.es.js.map +1 -0
- package/dist/components/ContentBlocks.cjs.js +11 -0
- package/dist/components/ContentBlocks.cjs.js.map +1 -0
- package/dist/components/ContentBlocks.d.ts +2 -0
- package/dist/components/ContentBlocks.es.js +2 -0
- package/dist/components/ContentBlocks.es.js.map +1 -0
- package/dist/components/ContextMenu.cjs.js +212 -0
- package/dist/components/ContextMenu.cjs.js.map +1 -0
- package/dist/components/ContextMenu.d.ts +2 -0
- package/dist/components/ContextMenu.es.js +189 -0
- package/dist/components/ContextMenu.es.js.map +1 -0
- package/dist/components/CopyButton.cjs.js +10 -0
- package/dist/components/CopyButton.cjs.js.map +1 -0
- package/dist/components/CopyButton.d.ts +2 -0
- package/dist/components/CopyButton.es.js +2 -0
- package/dist/components/CopyButton.es.js.map +1 -0
- package/dist/components/DashboardCard.cjs.js +10 -0
- package/dist/components/DashboardCard.cjs.js.map +1 -0
- package/dist/components/DashboardCard.d.ts +2 -0
- package/dist/components/DashboardCard.es.js +2 -0
- package/dist/components/DashboardCard.es.js.map +1 -0
- package/dist/components/DataCodeSection.cjs.js +10 -0
- package/dist/components/DataCodeSection.cjs.js.map +1 -0
- package/dist/components/DataCodeSection.d.ts +2 -0
- package/dist/components/DataCodeSection.es.js +2 -0
- package/dist/components/DataCodeSection.es.js.map +1 -0
- package/dist/components/DataDetailsPanel.cjs.js +228 -0
- package/dist/components/DataDetailsPanel.cjs.js.map +1 -0
- package/dist/components/DataDetailsPanel.d.ts +2 -0
- package/dist/components/DataDetailsPanel.es.js +224 -0
- package/dist/components/DataDetailsPanel.es.js.map +1 -0
- package/dist/components/DataFilter.cjs.js +10 -0
- package/dist/components/DataFilter.cjs.js.map +1 -0
- package/dist/components/DataFilter.d.ts +2 -0
- package/dist/components/DataFilter.es.js +2 -0
- package/dist/components/DataFilter.es.js.map +1 -0
- package/dist/components/DataKeysAndValues.cjs.js +10 -0
- package/dist/components/DataKeysAndValues.cjs.js.map +1 -0
- package/dist/components/DataKeysAndValues.d.ts +2 -0
- package/dist/components/DataKeysAndValues.es.js +2 -0
- package/dist/components/DataKeysAndValues.es.js.map +1 -0
- package/dist/components/DataList.cjs.js +14 -0
- package/dist/components/DataList.cjs.js.map +1 -0
- package/dist/components/DataList.d.ts +2 -0
- package/dist/components/DataList.es.js +3 -0
- package/dist/components/DataList.es.js.map +1 -0
- package/dist/components/DataPanel.cjs.js +10 -0
- package/dist/components/DataPanel.cjs.js.map +1 -0
- package/dist/components/DataPanel.d.ts +2 -0
- package/dist/components/DataPanel.es.js +2 -0
- package/dist/components/DataPanel.es.js.map +1 -0
- package/dist/components/DateTimePicker.cjs.js +15 -0
- package/dist/components/DateTimePicker.cjs.js.map +1 -0
- package/dist/components/DateTimePicker.d.ts +2 -0
- package/dist/components/DateTimePicker.es.js +3 -0
- package/dist/components/DateTimePicker.es.js.map +1 -0
- package/dist/components/DateTimeRangePicker.cjs.js +10 -0
- package/dist/components/DateTimeRangePicker.cjs.js.map +1 -0
- package/dist/components/DateTimeRangePicker.d.ts +2 -0
- package/dist/components/DateTimeRangePicker.es.js +2 -0
- package/dist/components/DateTimeRangePicker.es.js.map +1 -0
- package/dist/components/Dialog.cjs.js +20 -0
- package/dist/components/Dialog.cjs.js.map +1 -0
- package/dist/components/Dialog.d.ts +2 -0
- package/dist/components/Dialog.es.js +2 -0
- package/dist/components/Dialog.es.js.map +1 -0
- package/dist/components/Drawer.cjs.js +29 -0
- package/dist/components/Drawer.cjs.js.map +1 -0
- package/dist/components/Drawer.d.ts +2 -0
- package/dist/components/Drawer.es.js +2 -0
- package/dist/components/Drawer.es.js.map +1 -0
- package/dist/components/DropdownMenu.cjs.js +10 -0
- package/dist/components/DropdownMenu.cjs.js.map +1 -0
- package/dist/components/DropdownMenu.d.ts +2 -0
- package/dist/components/DropdownMenu.es.js +2 -0
- package/dist/components/DropdownMenu.es.js.map +1 -0
- package/dist/components/EmptyState.cjs.js +10 -0
- package/dist/components/EmptyState.cjs.js.map +1 -0
- package/dist/components/EmptyState.d.ts +2 -0
- package/dist/components/EmptyState.es.js +2 -0
- package/dist/components/EmptyState.es.js.map +1 -0
- package/dist/components/Entity.cjs.js +14 -0
- package/dist/components/Entity.cjs.js.map +1 -0
- package/dist/components/Entity.d.ts +2 -0
- package/dist/components/Entity.es.js +2 -0
- package/dist/components/Entity.es.js.map +1 -0
- package/dist/components/EntityHeader.cjs.js +10 -0
- package/dist/components/EntityHeader.cjs.js.map +1 -0
- package/dist/components/EntityHeader.d.ts +2 -0
- package/dist/components/EntityHeader.es.js +2 -0
- package/dist/components/EntityHeader.es.js.map +1 -0
- package/dist/components/Entry.cjs.js +10 -0
- package/dist/components/Entry.cjs.js.map +1 -0
- package/dist/components/Entry.d.ts +2 -0
- package/dist/components/Entry.es.js +2 -0
- package/dist/components/Entry.es.js.map +1 -0
- package/dist/components/ErrorBoundary.cjs.js +10 -0
- package/dist/components/ErrorBoundary.cjs.js.map +1 -0
- package/dist/components/ErrorBoundary.d.ts +2 -0
- package/dist/components/ErrorBoundary.es.js +2 -0
- package/dist/components/ErrorBoundary.es.js.map +1 -0
- package/dist/components/ErrorState.cjs.js +10 -0
- package/dist/components/ErrorState.cjs.js.map +1 -0
- package/dist/components/ErrorState.d.ts +2 -0
- package/dist/components/ErrorState.es.js +2 -0
- package/dist/components/ErrorState.es.js.map +1 -0
- package/dist/components/FormFieldBlocks.cjs.js +18 -0
- package/dist/components/FormFieldBlocks.cjs.js.map +1 -0
- package/dist/components/FormFieldBlocks.d.ts +2 -0
- package/dist/components/FormFieldBlocks.es.js +6 -0
- package/dist/components/FormFieldBlocks.es.js.map +1 -0
- package/dist/components/Header.cjs.js +13 -0
- package/dist/components/Header.cjs.js.map +1 -0
- package/dist/components/Header.d.ts +2 -0
- package/dist/components/Header.es.js +2 -0
- package/dist/components/Header.es.js.map +1 -0
- package/dist/components/HorizontalBars.cjs.js +10 -0
- package/dist/components/HorizontalBars.cjs.js.map +1 -0
- package/dist/components/HorizontalBars.d.ts +2 -0
- package/dist/components/HorizontalBars.es.js +2 -0
- package/dist/components/HorizontalBars.es.js.map +1 -0
- package/dist/components/HoverCard.cjs.js +12 -0
- package/dist/components/HoverCard.cjs.js.map +1 -0
- package/dist/components/HoverCard.d.ts +2 -0
- package/dist/components/HoverCard.es.js +2 -0
- package/dist/components/HoverCard.es.js.map +1 -0
- package/dist/components/Input.cjs.js +10 -0
- package/dist/components/Input.cjs.js.map +1 -0
- package/dist/components/Input.d.ts +2 -0
- package/dist/components/Input.es.js +2 -0
- package/dist/components/Input.es.js.map +1 -0
- package/dist/components/InputGroup.cjs.js +15 -0
- package/dist/components/InputGroup.cjs.js.map +1 -0
- package/dist/components/InputGroup.d.ts +2 -0
- package/dist/components/InputGroup.es.js +2 -0
- package/dist/components/InputGroup.es.js.map +1 -0
- package/dist/components/ItemList.cjs.js +14 -0
- package/dist/components/ItemList.cjs.js.map +1 -0
- package/dist/components/ItemList.d.ts +2 -0
- package/dist/components/ItemList.es.js +2 -0
- package/dist/components/ItemList.es.js.map +1 -0
- package/dist/components/JSONSchemaForm.cjs.js +547 -0
- package/dist/components/JSONSchemaForm.cjs.js.map +1 -0
- package/dist/components/JSONSchemaForm.d.ts +2 -0
- package/dist/components/JSONSchemaForm.es.js +507 -0
- package/dist/components/JSONSchemaForm.es.js.map +1 -0
- package/dist/components/Kbd.cjs.js +10 -0
- package/dist/components/Kbd.cjs.js.map +1 -0
- package/dist/components/Kbd.d.ts +2 -0
- package/dist/components/Kbd.es.js +2 -0
- package/dist/components/Kbd.es.js.map +1 -0
- package/dist/components/KeyValueList.cjs.js +10 -0
- package/dist/components/KeyValueList.cjs.js.map +1 -0
- package/dist/components/KeyValueList.d.ts +2 -0
- package/dist/components/KeyValueList.es.js +2 -0
- package/dist/components/KeyValueList.es.js.map +1 -0
- package/dist/components/Label.cjs.js +10 -0
- package/dist/components/Label.cjs.js.map +1 -0
- package/dist/components/Label.d.ts +2 -0
- package/dist/components/Label.es.js +2 -0
- package/dist/components/Label.es.js.map +1 -0
- package/dist/components/ListSearch.cjs.js +10 -0
- package/dist/components/ListSearch.cjs.js.map +1 -0
- package/dist/components/ListSearch.d.ts +2 -0
- package/dist/components/ListSearch.es.js +2 -0
- package/dist/components/ListSearch.es.js.map +1 -0
- package/dist/components/Logo.cjs.js +11 -0
- package/dist/components/Logo.cjs.js.map +1 -0
- package/dist/components/Logo.d.ts +2 -0
- package/dist/components/Logo.es.js +2 -0
- package/dist/components/Logo.es.js.map +1 -0
- package/dist/components/LogsDataList.cjs.js +12 -0
- package/dist/components/LogsDataList.cjs.js.map +1 -0
- package/dist/components/LogsDataList.d.ts +2 -0
- package/dist/components/LogsDataList.es.js +3 -0
- package/dist/components/LogsDataList.es.js.map +1 -0
- package/dist/components/MainContent.cjs.js +12 -0
- package/dist/components/MainContent.cjs.js.map +1 -0
- package/dist/components/MainContent.d.ts +2 -0
- package/dist/components/MainContent.es.js +2 -0
- package/dist/components/MainContent.es.js.map +1 -0
- package/dist/components/MainHeader.cjs.js +10 -0
- package/dist/components/MainHeader.cjs.js.map +1 -0
- package/dist/components/MainHeader.d.ts +2 -0
- package/dist/components/MainHeader.es.js +2 -0
- package/dist/components/MainHeader.es.js.map +1 -0
- package/dist/components/MainSidebar.cjs.js +17 -0
- package/dist/components/MainSidebar.cjs.js.map +1 -0
- package/dist/components/MainSidebar.d.ts +2 -0
- package/dist/components/MainSidebar.es.js +2 -0
- package/dist/components/MainSidebar.es.js.map +1 -0
- package/dist/components/MarkdownRenderer.cjs.js +10 -0
- package/dist/components/MarkdownRenderer.cjs.js.map +1 -0
- package/dist/components/MarkdownRenderer.d.ts +2 -0
- package/dist/components/MarkdownRenderer.es.js +2 -0
- package/dist/components/MarkdownRenderer.es.js.map +1 -0
- package/dist/components/MetricsCard.cjs.js +10 -0
- package/dist/components/MetricsCard.cjs.js.map +1 -0
- package/dist/components/MetricsCard.d.ts +2 -0
- package/dist/components/MetricsCard.es.js +2 -0
- package/dist/components/MetricsCard.es.js.map +1 -0
- package/dist/components/MetricsDataTable.cjs.js +10 -0
- package/dist/components/MetricsDataTable.cjs.js.map +1 -0
- package/dist/components/MetricsDataTable.d.ts +2 -0
- package/dist/components/MetricsDataTable.es.js +2 -0
- package/dist/components/MetricsDataTable.es.js.map +1 -0
- package/dist/components/MetricsFlexGrid.cjs.js +10 -0
- package/dist/components/MetricsFlexGrid.cjs.js.map +1 -0
- package/dist/components/MetricsFlexGrid.d.ts +2 -0
- package/dist/components/MetricsFlexGrid.es.js +2 -0
- package/dist/components/MetricsFlexGrid.es.js.map +1 -0
- package/dist/components/MetricsKpiCard.cjs.js +10 -0
- package/dist/components/MetricsKpiCard.cjs.js.map +1 -0
- package/dist/components/MetricsKpiCard.d.ts +2 -0
- package/dist/components/MetricsKpiCard.es.js +2 -0
- package/dist/components/MetricsKpiCard.es.js.map +1 -0
- package/dist/components/MetricsLineChart.cjs.js +11 -0
- package/dist/components/MetricsLineChart.cjs.js.map +1 -0
- package/dist/components/MetricsLineChart.d.ts +2 -0
- package/dist/components/MetricsLineChart.es.js +2 -0
- package/dist/components/MetricsLineChart.es.js.map +1 -0
- package/dist/components/Notice.cjs.js +10 -0
- package/dist/components/Notice.cjs.js.map +1 -0
- package/dist/components/Notice.d.ts +2 -0
- package/dist/components/Notice.es.js +2 -0
- package/dist/components/Notice.es.js.map +1 -0
- package/dist/components/PageHeader.cjs.js +10 -0
- package/dist/components/PageHeader.cjs.js.map +1 -0
- package/dist/components/PageHeader.d.ts +2 -0
- package/dist/components/PageHeader.es.js +2 -0
- package/dist/components/PageHeader.es.js.map +1 -0
- package/dist/components/PageLayout.cjs.js +14 -0
- package/dist/components/PageLayout.cjs.js.map +1 -0
- package/dist/components/PageLayout.d.ts +2 -0
- package/dist/components/PageLayout.es.js +3 -0
- package/dist/components/PageLayout.es.js.map +1 -0
- package/dist/components/PendingIndicator.cjs.js +10 -0
- package/dist/components/PendingIndicator.cjs.js.map +1 -0
- package/dist/components/PendingIndicator.d.ts +2 -0
- package/dist/components/PendingIndicator.es.js +2 -0
- package/dist/components/PendingIndicator.es.js.map +1 -0
- package/dist/components/PermissionDenied.cjs.js +10 -0
- package/dist/components/PermissionDenied.cjs.js.map +1 -0
- package/dist/components/PermissionDenied.d.ts +2 -0
- package/dist/components/PermissionDenied.es.js +2 -0
- package/dist/components/PermissionDenied.es.js.map +1 -0
- package/dist/components/Popover.cjs.js +13 -0
- package/dist/components/Popover.cjs.js.map +1 -0
- package/dist/components/Popover.d.ts +2 -0
- package/dist/components/Popover.es.js +2 -0
- package/dist/components/Popover.es.js.map +1 -0
- package/dist/components/PrevNextNav.cjs.js +29 -0
- package/dist/components/PrevNextNav.cjs.js.map +1 -0
- package/dist/components/PrevNextNav.d.ts +2 -0
- package/dist/components/PrevNextNav.es.js +25 -0
- package/dist/components/PrevNextNav.es.js.map +1 -0
- package/dist/components/PropertyFilter.cjs.js +13 -0
- package/dist/components/PropertyFilter.cjs.js.map +1 -0
- package/dist/components/PropertyFilter.d.ts +2 -0
- package/dist/components/PropertyFilter.es.js +2 -0
- package/dist/components/PropertyFilter.es.js.map +1 -0
- package/dist/components/RadioGroup.cjs.js +11 -0
- package/dist/components/RadioGroup.cjs.js.map +1 -0
- package/dist/components/RadioGroup.d.ts +2 -0
- package/dist/components/RadioGroup.es.js +2 -0
- package/dist/components/RadioGroup.es.js.map +1 -0
- package/dist/components/ScrollArea.cjs.js +11 -0
- package/dist/components/ScrollArea.cjs.js.map +1 -0
- package/dist/components/ScrollArea.d.ts +2 -0
- package/dist/components/ScrollArea.es.js +2 -0
- package/dist/components/ScrollArea.es.js.map +1 -0
- package/dist/components/ScrollableContainer.cjs.js +10 -0
- package/dist/components/ScrollableContainer.cjs.js.map +1 -0
- package/dist/components/ScrollableContainer.d.ts +2 -0
- package/dist/components/ScrollableContainer.es.js +2 -0
- package/dist/components/ScrollableContainer.es.js.map +1 -0
- package/dist/components/Searchbar.cjs.js +11 -0
- package/dist/components/Searchbar.cjs.js.map +1 -0
- package/dist/components/Searchbar.d.ts +2 -0
- package/dist/components/Searchbar.es.js +2 -0
- package/dist/components/Searchbar.es.js.map +1 -0
- package/dist/components/Section.cjs.js +12 -0
- package/dist/components/Section.cjs.js.map +1 -0
- package/dist/components/Section.d.ts +2 -0
- package/dist/components/Section.es.js +2 -0
- package/dist/components/Section.es.js.map +1 -0
- package/dist/components/SectionCard.cjs.js +11 -0
- package/dist/components/SectionCard.cjs.js.map +1 -0
- package/dist/components/SectionCard.d.ts +2 -0
- package/dist/components/SectionCard.es.js +2 -0
- package/dist/components/SectionCard.es.js.map +1 -0
- package/dist/components/Sections.cjs.js +10 -0
- package/dist/components/Sections.cjs.js.map +1 -0
- package/dist/components/Sections.d.ts +2 -0
- package/dist/components/Sections.es.js +2 -0
- package/dist/components/Sections.es.js.map +1 -0
- package/dist/components/Select.cjs.js +15 -0
- package/dist/components/Select.cjs.js.map +1 -0
- package/dist/components/Select.d.ts +2 -0
- package/dist/components/Select.es.js +2 -0
- package/dist/components/Select.es.js.map +1 -0
- package/dist/components/SessionExpired.cjs.js +10 -0
- package/dist/components/SessionExpired.cjs.js.map +1 -0
- package/dist/components/SessionExpired.d.ts +2 -0
- package/dist/components/SessionExpired.es.js +2 -0
- package/dist/components/SessionExpired.es.js.map +1 -0
- package/dist/components/SettingsRow.cjs.js +27 -0
- package/dist/components/SettingsRow.cjs.js.map +1 -0
- package/dist/components/SettingsRow.d.ts +2 -0
- package/dist/components/SettingsRow.es.js +23 -0
- package/dist/components/SettingsRow.es.js.map +1 -0
- package/dist/components/Shimmer.cjs.js +10 -0
- package/dist/components/Shimmer.cjs.js.map +1 -0
- package/dist/components/Shimmer.d.ts +2 -0
- package/dist/components/Shimmer.es.js +2 -0
- package/dist/components/Shimmer.es.js.map +1 -0
- package/dist/components/SideDialog.cjs.js +297 -0
- package/dist/components/SideDialog.cjs.js.map +1 -0
- package/dist/components/SideDialog.d.ts +2 -0
- package/dist/components/SideDialog.es.js +275 -0
- package/dist/components/SideDialog.es.js.map +1 -0
- package/dist/components/Skeleton.cjs.js +10 -0
- package/dist/components/Skeleton.cjs.js.map +1 -0
- package/dist/components/Skeleton.d.ts +2 -0
- package/dist/components/Skeleton.es.js +2 -0
- package/dist/components/Skeleton.es.js.map +1 -0
- package/dist/components/Slider.cjs.js +10 -0
- package/dist/components/Slider.cjs.js.map +1 -0
- package/dist/components/Slider.d.ts +2 -0
- package/dist/components/Slider.es.js +2 -0
- package/dist/components/Slider.es.js.map +1 -0
- package/dist/components/Spinner.cjs.js +10 -0
- package/dist/components/Spinner.cjs.js.map +1 -0
- package/dist/components/Spinner.d.ts +2 -0
- package/dist/components/Spinner.es.js +2 -0
- package/dist/components/Spinner.es.js.map +1 -0
- package/dist/components/StatusBadge.cjs.js +10 -0
- package/dist/components/StatusBadge.cjs.js.map +1 -0
- package/dist/components/StatusBadge.d.ts +2 -0
- package/dist/components/StatusBadge.es.js +2 -0
- package/dist/components/StatusBadge.es.js.map +1 -0
- package/dist/components/Steps.cjs.js +13 -0
- package/dist/components/Steps.cjs.js.map +1 -0
- package/dist/components/Steps.d.ts +2 -0
- package/dist/components/Steps.es.js +2 -0
- package/dist/components/Steps.es.js.map +1 -0
- package/dist/components/Switch.cjs.js +10 -0
- package/dist/components/Switch.cjs.js.map +1 -0
- package/dist/components/Switch.d.ts +2 -0
- package/dist/components/Switch.es.js +2 -0
- package/dist/components/Switch.es.js.map +1 -0
- package/dist/components/Table.cjs.js +19 -0
- package/dist/components/Table.cjs.js.map +1 -0
- package/dist/components/Table.d.ts +2 -0
- package/dist/components/Table.es.js +2 -0
- package/dist/components/Table.es.js.map +1 -0
- package/dist/components/Tabs.cjs.js +14 -0
- package/dist/components/Tabs.cjs.js.map +1 -0
- package/dist/components/Tabs.d.ts +2 -0
- package/dist/components/Tabs.es.js +3 -0
- package/dist/components/Tabs.es.js.map +1 -0
- package/dist/components/Text.cjs.js +11 -0
- package/dist/components/Text.cjs.js.map +1 -0
- package/dist/components/Text.d.ts +2 -0
- package/dist/components/Text.es.js +2 -0
- package/dist/components/Text.es.js.map +1 -0
- package/dist/components/Textarea.cjs.js +10 -0
- package/dist/components/Textarea.cjs.js.map +1 -0
- package/dist/components/Textarea.d.ts +2 -0
- package/dist/components/Textarea.es.js +2 -0
- package/dist/components/Textarea.es.js.map +1 -0
- package/dist/components/ThemeProvider.cjs.js +11 -0
- package/dist/components/ThemeProvider.cjs.js.map +1 -0
- package/dist/components/ThemeProvider.d.ts +2 -0
- package/dist/components/ThemeProvider.es.js +2 -0
- package/dist/components/ThemeProvider.es.js.map +1 -0
- package/dist/components/ThemeToggle.cjs.js +10 -0
- package/dist/components/ThemeToggle.cjs.js.map +1 -0
- package/dist/components/ThemeToggle.d.ts +2 -0
- package/dist/components/ThemeToggle.es.js +2 -0
- package/dist/components/ThemeToggle.es.js.map +1 -0
- package/dist/components/Tooltip.cjs.js +13 -0
- package/dist/components/Tooltip.cjs.js.map +1 -0
- package/dist/components/Tooltip.d.ts +2 -0
- package/dist/components/Tooltip.es.js +2 -0
- package/dist/components/Tooltip.es.js.map +1 -0
- package/dist/components/Tree.cjs.js +10 -0
- package/dist/components/Tree.cjs.js.map +1 -0
- package/dist/components/Tree.d.ts +2 -0
- package/dist/components/Tree.es.js +2 -0
- package/dist/components/Tree.es.js.map +1 -0
- package/dist/components/Truncate.cjs.js +10 -0
- package/dist/components/Truncate.cjs.js.map +1 -0
- package/dist/components/Truncate.d.ts +2 -0
- package/dist/components/Truncate.es.js +2 -0
- package/dist/components/Truncate.es.js.map +1 -0
- package/dist/components/Txt.cjs.js +10 -0
- package/dist/components/Txt.cjs.js.map +1 -0
- package/dist/components/Txt.d.ts +2 -0
- package/dist/components/Txt.es.js +2 -0
- package/dist/components/Txt.es.js.map +1 -0
- package/dist/content-block-BTpK7gPz.js +38 -0
- package/dist/content-block-BTpK7gPz.js.map +1 -0
- package/dist/content-block-Csb01oxE.cjs +41 -0
- package/dist/content-block-Csb01oxE.cjs.map +1 -0
- package/dist/control-size-BdDLgGX4.js +22 -0
- package/dist/control-size-BdDLgGX4.js.map +1 -0
- package/dist/control-size-D67C0kPZ.cjs +26 -0
- package/dist/control-size-D67C0kPZ.cjs.map +1 -0
- package/dist/copy-button-DDKn1NUS.js +42 -0
- package/dist/copy-button-DDKn1NUS.js.map +1 -0
- package/dist/copy-button-lrxHKwwi.cjs +44 -0
- package/dist/copy-button-lrxHKwwi.cjs.map +1 -0
- package/dist/dashboard-card-B9enj4NG.cjs +11 -0
- package/dist/dashboard-card-B9enj4NG.cjs.map +1 -0
- package/dist/dashboard-card-C7nmBU5A.js +9 -0
- package/dist/dashboard-card-C7nmBU5A.js.map +1 -0
- package/dist/data-code-section-BYhkWiIy.js +332 -0
- package/dist/data-code-section-BYhkWiIy.js.map +1 -0
- package/dist/data-code-section-Bz_B8nrw.cjs +335 -0
- package/dist/data-code-section-Bz_B8nrw.cjs.map +1 -0
- package/dist/data-keys-and-values-BSeQG7jb.js +122 -0
- package/dist/data-keys-and-values-BSeQG7jb.js.map +1 -0
- package/dist/data-keys-and-values-Spy2O_IE.cjs +124 -0
- package/dist/data-keys-and-values-Spy2O_IE.cjs.map +1 -0
- package/dist/data-list-skeleton-Bges_t5u.cjs +416 -0
- package/dist/data-list-skeleton-Bges_t5u.cjs.map +1 -0
- package/dist/data-list-skeleton-C9Ncz3jM.js +389 -0
- package/dist/data-list-skeleton-C9Ncz3jM.js.map +1 -0
- package/dist/data-panel-CaS60apX.js +87 -0
- package/dist/data-panel-CaS60apX.js.map +1 -0
- package/dist/data-panel-CbV9Ycys.cjs +89 -0
- package/dist/data-panel-CbV9Ycys.cjs.map +1 -0
- package/dist/date-time-picker-BKqGpw5w.cjs +268 -0
- package/dist/date-time-picker-BKqGpw5w.cjs.map +1 -0
- package/dist/date-time-picker-t67keTZg.js +245 -0
- package/dist/date-time-picker-t67keTZg.js.map +1 -0
- package/dist/date-time-range-picker-Do-3VVvo.cjs +170 -0
- package/dist/date-time-range-picker-Do-3VVvo.cjs.map +1 -0
- package/dist/date-time-range-picker-iMvwOfiZ.js +168 -0
- package/dist/date-time-range-picker-iMvwOfiZ.js.map +1 -0
- package/dist/dialog-46zkb32X.cjs +105 -0
- package/dist/dialog-46zkb32X.cjs.map +1 -0
- package/dist/dialog-CSSfcjSX.js +74 -0
- package/dist/dialog-CSSfcjSX.js.map +1 -0
- package/dist/dialog.css +70 -0
- package/dist/drawer-BaUXhUlI.cjs +177 -0
- package/dist/drawer-BaUXhUlI.cjs.map +1 -0
- package/dist/drawer-wvz8SreU.js +137 -0
- package/dist/drawer-wvz8SreU.js.map +1 -0
- package/dist/drawer.css +131 -0
- package/dist/dropdown-menu-Dh-CMMjl.js +203 -0
- package/dist/dropdown-menu-Dh-CMMjl.js.map +1 -0
- package/dist/dropdown-menu-Vl_C0N5e.cjs +224 -0
- package/dist/dropdown-menu-Vl_C0N5e.cjs.map +1 -0
- package/dist/entity-header-CpClAdJT.js +17 -0
- package/dist/entity-header-CpClAdJT.js.map +1 -0
- package/dist/entity-header-D2q5PizE.cjs +19 -0
- package/dist/entity-header-D2q5PizE.cjs.map +1 -0
- package/dist/entry-B53NXi9c.js +12 -0
- package/dist/entry-B53NXi9c.js.map +1 -0
- package/dist/entry-BwpOISbt.cjs +14 -0
- package/dist/entry-BwpOISbt.cjs.map +1 -0
- package/dist/field-block-CdCFQi7X.js +85 -0
- package/dist/field-block-CdCFQi7X.js.map +1 -0
- package/dist/field-block-D9R9O6XE.cjs +87 -0
- package/dist/field-block-D9R9O6XE.cjs.map +1 -0
- package/dist/field-blocks-layout-BpbpaIev.js +31 -0
- package/dist/field-blocks-layout-BpbpaIev.js.map +1 -0
- package/dist/field-blocks-layout-Bqock2Nu.cjs +33 -0
- package/dist/field-blocks-layout-Bqock2Nu.cjs.map +1 -0
- package/dist/form-element-Cy7aV1Ds.cjs +22 -0
- package/dist/form-element-Cy7aV1Ds.cjs.map +1 -0
- package/dist/form-element-DUtZESwq.js +12 -0
- package/dist/form-element-DUtZESwq.js.map +1 -0
- package/dist/get-short-id-B4_2mLzM.js +25 -0
- package/dist/get-short-id-B4_2mLzM.js.map +1 -0
- package/dist/get-short-id-DtN4BmrD.cjs +28 -0
- package/dist/get-short-id-DtN4BmrD.cjs.map +1 -0
- package/dist/helpers-BH-wPlF0.js +346 -0
- package/dist/helpers-BH-wPlF0.js.map +1 -0
- package/dist/helpers-BbJUaSrW.cjs +352 -0
- package/dist/helpers-BbJUaSrW.cjs.map +1 -0
- package/dist/highlight-C2uRVhiA.cjs +68 -0
- package/dist/highlight-C2uRVhiA.cjs.map +1 -0
- package/dist/highlight-Dis62bkj.js +66 -0
- package/dist/highlight-Dis62bkj.js.map +1 -0
- package/dist/horizontal-bars-B43f5B_S.js +106 -0
- package/dist/horizontal-bars-B43f5B_S.js.map +1 -0
- package/dist/horizontal-bars-DkJlf6-x.cjs +108 -0
- package/dist/horizontal-bars-DkJlf6-x.cjs.map +1 -0
- package/dist/hover-card-ByLYfB05.cjs +56 -0
- package/dist/hover-card-ByLYfB05.cjs.map +1 -0
- package/dist/hover-card-CV2ASE_w.js +33 -0
- package/dist/hover-card-CV2ASE_w.js.map +1 -0
- package/dist/index-CsyK0ihk.js +45 -0
- package/dist/index-CsyK0ihk.js.map +1 -0
- package/dist/index-DPkWrpVb.cjs +47 -0
- package/dist/index-DPkWrpVb.cjs.map +1 -0
- package/dist/index.cjs.js +1477 -15901
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.css +343 -1960
- package/dist/index.es.js +881 -15301
- package/dist/index.es.js.map +1 -1
- package/dist/input-DGvJg7no.cjs +86 -0
- package/dist/input-DGvJg7no.cjs.map +1 -0
- package/dist/input-DsX-P_dO.js +65 -0
- package/dist/input-DsX-P_dO.js.map +1 -0
- package/dist/input-group-Bi_4j-WW.cjs +245 -0
- package/dist/input-group-Bi_4j-WW.cjs.map +1 -0
- package/dist/input-group-DpQPpHRU.js +219 -0
- package/dist/input-group-DpQPpHRU.js.map +1 -0
- package/dist/kbd-CnIg1L19.cjs +29 -0
- package/dist/kbd-CnIg1L19.cjs.map +1 -0
- package/dist/kbd-DRd56y7q.js +27 -0
- package/dist/kbd-DRd56y7q.js.map +1 -0
- package/dist/key-value-list-BFGuMFbL.js +84 -0
- package/dist/key-value-list-BFGuMFbL.js.map +1 -0
- package/dist/key-value-list-D067I300.cjs +86 -0
- package/dist/key-value-list-D067I300.cjs.map +1 -0
- package/dist/label-Dgz2hRMg.js +13 -0
- package/dist/label-Dgz2hRMg.js.map +1 -0
- package/dist/label-U8omtW8w.cjs +34 -0
- package/dist/label-U8omtW8w.cjs.map +1 -0
- package/dist/list-search-DY84ZCM-.cjs +59 -0
- package/dist/list-search-DY84ZCM-.cjs.map +1 -0
- package/dist/list-search-Dk2A1fUf.js +57 -0
- package/dist/list-search-Dk2A1fUf.js.map +1 -0
- package/dist/logo-BvzT5a1s.cjs +70 -0
- package/dist/logo-BvzT5a1s.cjs.map +1 -0
- package/dist/logo-CaqfKyP7.js +67 -0
- package/dist/logo-CaqfKyP7.js.map +1 -0
- package/dist/logo.css +70 -0
- package/dist/logs-data-list-B0Y5AHWL.js +87 -0
- package/dist/logs-data-list-B0Y5AHWL.js.map +1 -0
- package/dist/logs-data-list-DikL8ZQ0.cjs +90 -0
- package/dist/logs-data-list-DikL8ZQ0.cjs.map +1 -0
- package/dist/main-content-CR0j00N1.js +75 -0
- package/dist/main-content-CR0j00N1.js.map +1 -0
- package/dist/main-content-CnmMWNin.cjs +79 -0
- package/dist/main-content-CnmMWNin.cjs.map +1 -0
- package/dist/main-header-Bp0d1TMi.js +96 -0
- package/dist/main-header-Bp0d1TMi.js.map +1 -0
- package/dist/main-header-DJLRceP9.cjs +98 -0
- package/dist/main-header-DJLRceP9.cjs.map +1 -0
- package/dist/main-sidebar-0q7MXh2j.js +761 -0
- package/dist/main-sidebar-0q7MXh2j.js.map +1 -0
- package/dist/main-sidebar-H8NQ7njm.cjs +771 -0
- package/dist/main-sidebar-H8NQ7njm.cjs.map +1 -0
- package/dist/markdown-renderer-BjWUNVYf.cjs +88 -0
- package/dist/markdown-renderer-BjWUNVYf.cjs.map +1 -0
- package/dist/markdown-renderer-fXSUbDkK.js +86 -0
- package/dist/markdown-renderer-fXSUbDkK.js.map +1 -0
- package/dist/metrics-card-Bk3X19xx.js +93 -0
- package/dist/metrics-card-Bk3X19xx.js.map +1 -0
- package/dist/metrics-card-hs1pqY2Y.cjs +95 -0
- package/dist/metrics-card-hs1pqY2Y.cjs.map +1 -0
- package/dist/metrics-data-table-BpEAlJi0.cjs +77 -0
- package/dist/metrics-data-table-BpEAlJi0.cjs.map +1 -0
- package/dist/metrics-data-table-Dds2TkvE.js +75 -0
- package/dist/metrics-data-table-Dds2TkvE.js.map +1 -0
- package/dist/metrics-flex-grid-BqtZ5emh.js +9 -0
- package/dist/metrics-flex-grid-BqtZ5emh.js.map +1 -0
- package/dist/metrics-flex-grid-DzlyAgr7.cjs +11 -0
- package/dist/metrics-flex-grid-DzlyAgr7.cjs.map +1 -0
- package/dist/metrics-kpi-card-CNUpkoQO.js +77 -0
- package/dist/metrics-kpi-card-CNUpkoQO.js.map +1 -0
- package/dist/metrics-kpi-card-D_SaIWBc.cjs +79 -0
- package/dist/metrics-kpi-card-D_SaIWBc.cjs.map +1 -0
- package/dist/metrics-line-chart-BUUqDQPW.js +106 -0
- package/dist/metrics-line-chart-BUUqDQPW.js.map +1 -0
- package/dist/metrics-line-chart-D1ZGVepo.cjs +109 -0
- package/dist/metrics-line-chart-D1ZGVepo.cjs.map +1 -0
- package/dist/multi-column-BzL86JPK.cjs +136 -0
- package/dist/multi-column-BzL86JPK.cjs.map +1 -0
- package/dist/multi-column-C1sXoVG3.js +132 -0
- package/dist/multi-column-C1sXoVG3.js.map +1 -0
- package/dist/multi-combobox-DkFLK64B.cjs +193 -0
- package/dist/multi-combobox-DkFLK64B.cjs.map +1 -0
- package/dist/multi-combobox-Y3gT0MqV.js +189 -0
- package/dist/multi-combobox-Y3gT0MqV.js.map +1 -0
- package/dist/no-data-page-layout-CZzEj0NE.js +101 -0
- package/dist/no-data-page-layout-CZzEj0NE.js.map +1 -0
- package/dist/no-data-page-layout-CiNBx-vK.cjs +104 -0
- package/dist/no-data-page-layout-CiNBx-vK.cjs.map +1 -0
- package/dist/page-header-BS_LNnKw.js +51 -0
- package/dist/page-header-BS_LNnKw.js.map +1 -0
- package/dist/page-header-C1ZlL4Ua.cjs +53 -0
- package/dist/page-header-C1ZlL4Ua.cjs.map +1 -0
- package/dist/page-heading-context-D3yjYoJE.js +9 -0
- package/dist/page-heading-context-D3yjYoJE.js.map +1 -0
- package/dist/page-heading-context-Du-CpxAx.cjs +12 -0
- package/dist/page-heading-context-Du-CpxAx.cjs.map +1 -0
- package/dist/pending-indicator-BxD-kwEk.cjs +9 -0
- package/dist/pending-indicator-BxD-kwEk.cjs.map +1 -0
- package/dist/pending-indicator-DmowRHLo.js +7 -0
- package/dist/pending-indicator-DmowRHLo.js.map +1 -0
- package/dist/popover-CRLP2Ay_.js +75 -0
- package/dist/popover-CRLP2Ay_.js.map +1 -0
- package/dist/popover-ttQgAb0m.cjs +99 -0
- package/dist/popover-ttQgAb0m.cjs.map +1 -0
- package/dist/portal-container-BlQ6JKob.js +17 -0
- package/dist/portal-container-BlQ6JKob.js.map +1 -0
- package/dist/portal-container-BsvHZxj7.cjs +39 -0
- package/dist/portal-container-BsvHZxj7.cjs.map +1 -0
- package/dist/process-step-progress-bar-C0mArMKD.js +136 -0
- package/dist/process-step-progress-bar-C0mArMKD.js.map +1 -0
- package/dist/process-step-progress-bar-D74Y-8Jo.cjs +141 -0
- package/dist/process-step-progress-bar-D74Y-8Jo.cjs.map +1 -0
- package/dist/property-filter-creator-Cl7xhaML.cjs +673 -0
- package/dist/property-filter-creator-Cl7xhaML.cjs.map +1 -0
- package/dist/property-filter-creator-CnuA0Otn.js +668 -0
- package/dist/property-filter-creator-CnuA0Otn.js.map +1 -0
- package/dist/radio-group-CcZMn-TY.cjs +77 -0
- package/dist/radio-group-CcZMn-TY.cjs.map +1 -0
- package/dist/radio-group-DIbajvIk.js +55 -0
- package/dist/radio-group-DIbajvIk.js.map +1 -0
- package/dist/scroll-area-BCZiAvhR.js +199 -0
- package/dist/scroll-area-BCZiAvhR.js.map +1 -0
- package/dist/scroll-area-KogxLVrV.cjs +221 -0
- package/dist/scroll-area-KogxLVrV.cjs.map +1 -0
- package/dist/scrollable-container-BqOFHwdb.js +151 -0
- package/dist/scrollable-container-BqOFHwdb.js.map +1 -0
- package/dist/scrollable-container-Btq-TfCL.cjs +153 -0
- package/dist/scrollable-container-Btq-TfCL.cjs.map +1 -0
- package/dist/search-field-block-Cn_Ffn5P.cjs +117 -0
- package/dist/search-field-block-Cn_Ffn5P.cjs.map +1 -0
- package/dist/search-field-block-CuyiDT1k.js +115 -0
- package/dist/search-field-block-CuyiDT1k.js.map +1 -0
- package/dist/searchbar-8KtQRL0s.cjs +105 -0
- package/dist/searchbar-8KtQRL0s.cjs.map +1 -0
- package/dist/searchbar-HmTfVgXd.js +102 -0
- package/dist/searchbar-HmTfVgXd.js.map +1 -0
- package/dist/section-BUngbrvn.js +36 -0
- package/dist/section-BUngbrvn.js.map +1 -0
- package/dist/section-card-23Os1QRs.cjs +96 -0
- package/dist/section-card-23Os1QRs.cjs.map +1 -0
- package/dist/section-card-BMArnkcD.js +93 -0
- package/dist/section-card-BMArnkcD.js.map +1 -0
- package/dist/section-muObW4n-.cjs +40 -0
- package/dist/section-muObW4n-.cjs.map +1 -0
- package/dist/sections-BgrvBjOR.cjs +11 -0
- package/dist/sections-BgrvBjOR.cjs.map +1 -0
- package/dist/sections-SdJxf4JD.js +9 -0
- package/dist/sections-SdJxf4JD.js.map +1 -0
- package/dist/select-D2w0zRz4.js +138 -0
- package/dist/select-D2w0zRz4.js.map +1 -0
- package/dist/select-DDgw1wG-.cjs +164 -0
- package/dist/select-DDgw1wG-.cjs.map +1 -0
- package/dist/select-data-filter-BFGZYkQ_.js +192 -0
- package/dist/select-data-filter-BFGZYkQ_.js.map +1 -0
- package/dist/select-data-filter-DxoxTXk2.cjs +194 -0
- package/dist/select-data-filter-DxoxTXk2.cjs.map +1 -0
- package/dist/select-field-block-BA6vHkOP.js +48 -0
- package/dist/select-field-block-BA6vHkOP.js.map +1 -0
- package/dist/select-field-block-BpXYm4K0.cjs +50 -0
- package/dist/select-field-block-BpXYm4K0.cjs.map +1 -0
- package/dist/shimmer-CTVYNDBn.js +22 -0
- package/dist/shimmer-CTVYNDBn.js.map +1 -0
- package/dist/shimmer-DK8TWAV-.cjs +24 -0
- package/dist/shimmer-DK8TWAV-.cjs.map +1 -0
- package/dist/skeleton-Bo71UMWV.cjs +25 -0
- package/dist/skeleton-Bo71UMWV.cjs.map +1 -0
- package/dist/skeleton-Dbr54vol.js +23 -0
- package/dist/skeleton-Dbr54vol.js.map +1 -0
- package/dist/slider-BhA0bVR8.js +88 -0
- package/dist/slider-BhA0bVR8.js.map +1 -0
- package/dist/slider-b9_82QLR.cjs +90 -0
- package/dist/slider-b9_82QLR.cjs.map +1 -0
- package/dist/spacings-0Zbr65EW.js +208 -0
- package/dist/spacings-0Zbr65EW.js.map +1 -0
- package/dist/spacings-BP8L49kn.cjs +218 -0
- package/dist/spacings-BP8L49kn.cjs.map +1 -0
- package/dist/spinner-DuizqJj9.js +51 -0
- package/dist/spinner-DuizqJj9.js.map +1 -0
- package/dist/spinner-PSUHmhye.cjs +53 -0
- package/dist/spinner-PSUHmhye.cjs.map +1 -0
- package/dist/spinner.css +114 -0
- package/dist/src/domains/metrics/components/index.d.ts +1 -0
- package/dist/src/domains/metrics/components/token-usage-timeline-card-view.d.ts +10 -0
- package/dist/src/domains/metrics/hooks/index.d.ts +1 -0
- package/dist/src/domains/metrics/hooks/use-token-usage-timeseries.d.ts +15 -0
- package/dist/src/domains/traces/hooks/index.d.ts +1 -0
- package/dist/src/domains/traces/hooks/use-download-trace-json.d.ts +4 -0
- package/dist/src/domains/traces/hooks/use-trace-url-state.d.ts +6 -0
- package/dist/src/ds/components/AlertDialog/alert-dialog.d.ts +1 -0
- package/dist/src/ds/components/Breadcrumb/Breadcrumb.d.ts +1 -0
- package/dist/src/ds/components/Button/Button.d.ts +3 -2
- package/dist/src/ds/components/ButtonsGroup/buttons-group.d.ts +4 -4
- package/dist/src/ds/components/Code/code.d.ts +14 -0
- package/dist/src/ds/components/Code/code.stories.d.ts +9 -0
- package/dist/src/ds/components/Code/index.d.ts +1 -0
- package/dist/src/ds/components/CodeBlock/code-block.d.ts +5 -1
- package/dist/src/ds/components/CodeBlock/code-block.stories.d.ts +1 -0
- package/dist/src/ds/components/Combobox/combobox-styles.d.ts +27 -12
- package/dist/src/ds/components/Combobox/combobox.d.ts +4 -3
- package/dist/src/ds/components/Combobox/multi-combobox.d.ts +5 -5
- package/dist/src/ds/components/DataList/data-list-cells.d.ts +2 -2
- package/dist/src/ds/components/DataList/data-list-row-wrapper-context.d.ts +2 -0
- package/dist/src/ds/components/DataList/data-list.stories.d.ts +2 -0
- package/dist/src/ds/components/DataList/shared.d.ts +8 -6
- package/dist/src/ds/components/DateTimeRangePicker/date-time-range-picker.d.ts +1 -1
- package/dist/src/ds/components/Dialog/dialog.d.ts +2 -0
- package/dist/src/ds/components/DropdownMenu/dropdown-menu.d.ts +1 -0
- package/dist/src/ds/components/Input/input.d.ts +2 -2
- package/dist/src/ds/components/InputGroup/input-group.d.ts +3 -3
- package/dist/src/ds/components/MetricsCard/index.d.ts +0 -1
- package/dist/src/ds/components/PendingIndicator/index.d.ts +1 -0
- package/dist/src/ds/components/PendingIndicator/pending-indicator.d.ts +9 -0
- package/dist/src/ds/components/Popover/popover.d.ts +1 -0
- package/dist/src/ds/components/Searchbar/searchbar.d.ts +2 -2
- package/dist/src/ds/components/Select/select.d.ts +12 -5
- package/dist/src/ds/components/Select/select.stories.d.ts +8 -0
- package/dist/src/ds/components/Shimmer/index.d.ts +1 -0
- package/dist/src/ds/components/Shimmer/shimmer.d.ts +6 -0
- package/dist/src/ds/components/Textarea/textarea.d.ts +2 -2
- package/dist/src/ds/primitives/control-size.d.ts +5 -0
- package/dist/src/ds/primitives/form-element.d.ts +1 -9
- package/dist/src/ds/primitives/resize-handle-indicator.d.ts +9 -0
- package/dist/src/ds/tokens/sizes.d.ts +1 -0
- package/dist/src/index.d.ts +4 -5
- package/dist/src/lib/as-child.d.ts +22 -0
- package/dist/src/lib/file/downloadJson.d.ts +1 -0
- package/dist/src/lib/file/index.d.ts +1 -0
- package/dist/src/lib/resize/separator.d.ts +5 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/switch-DJRX_Onf.cjs +124 -0
- package/dist/switch-DJRX_Onf.cjs.map +1 -0
- package/dist/switch-VX4iYp3j.js +103 -0
- package/dist/switch-VX4iYp3j.js.map +1 -0
- package/dist/switch.css +51 -0
- package/dist/tabs-content-D-fKCtLW.js +18 -0
- package/dist/tabs-content-D-fKCtLW.js.map +1 -0
- package/dist/tabs-content-m86TGI_b.cjs +20 -0
- package/dist/tabs-content-m86TGI_b.cjs.map +1 -0
- package/dist/tabs-tab-Cjv_3xGC.js +118 -0
- package/dist/tabs-tab-Cjv_3xGC.js.map +1 -0
- package/dist/tabs-tab-Dl9FqQhm.cjs +122 -0
- package/dist/tabs-tab-Dl9FqQhm.cjs.map +1 -0
- package/dist/text-field-block-CGzVPqnF.cjs +50 -0
- package/dist/text-field-block-CGzVPqnF.cjs.map +1 -0
- package/dist/text-field-block-gjrZyIFr.js +48 -0
- package/dist/text-field-block-gjrZyIFr.js.map +1 -0
- package/dist/textarea-DTTTODYL.js +62 -0
- package/dist/textarea-DTTTODYL.js.map +1 -0
- package/dist/textarea-DdUaiUA3.cjs +83 -0
- package/dist/textarea-DdUaiUA3.cjs.map +1 -0
- package/dist/theme-provider-C9ih9jSS.js +117 -0
- package/dist/theme-provider-C9ih9jSS.js.map +1 -0
- package/dist/theme-provider-aO5-jZVp.cjs +120 -0
- package/dist/theme-provider-aO5-jZVp.cjs.map +1 -0
- package/dist/theme-toggle-AzjABhTN.js +85 -0
- package/dist/theme-toggle-AzjABhTN.js.map +1 -0
- package/dist/theme-toggle-DWtjTo-a.cjs +87 -0
- package/dist/theme-toggle-DWtjTo-a.cjs.map +1 -0
- package/dist/time-picker-BtJz6IU2.js +110 -0
- package/dist/time-picker-BtJz6IU2.js.map +1 -0
- package/dist/time-picker-DWrxHBfR.cjs +113 -0
- package/dist/time-picker-DWrxHBfR.cjs.map +1 -0
- package/dist/tokens.cjs.js +11 -214
- package/dist/tokens.cjs.js.map +1 -1
- package/dist/tokens.es.js +3 -206
- package/dist/tokens.es.js.map +1 -1
- package/dist/tooltip-DehuxlSR.js +90 -0
- package/dist/tooltip-DehuxlSR.js.map +1 -0
- package/dist/tooltip-j8gUR1Qk.cjs +114 -0
- package/dist/tooltip-j8gUR1Qk.cjs.map +1 -0
- package/dist/traces-data-list-5GA3JumQ.cjs +238 -0
- package/dist/traces-data-list-5GA3JumQ.cjs.map +1 -0
- package/dist/traces-data-list-Dru2XnRN.js +234 -0
- package/dist/traces-data-list-Dru2XnRN.js.map +1 -0
- package/dist/transitions-DpczSjmD.cjs +39 -0
- package/dist/transitions-DpczSjmD.cjs.map +1 -0
- package/dist/transitions-tFfqxz40.js +35 -0
- package/dist/transitions-tFfqxz40.js.map +1 -0
- package/dist/tree-D04KhP5w.js +212 -0
- package/dist/tree-D04KhP5w.js.map +1 -0
- package/dist/tree-P2k9UCFX.cjs +233 -0
- package/dist/tree-P2k9UCFX.cjs.map +1 -0
- package/dist/truncate-B2kAcoie.js +47 -0
- package/dist/truncate-B2kAcoie.js.map +1 -0
- package/dist/truncate-mOutaqxm.cjs +49 -0
- package/dist/truncate-mOutaqxm.cjs.map +1 -0
- package/dist/use-copy-to-clipboard-CGqfkXnN.js +73 -0
- package/dist/use-copy-to-clipboard-CGqfkXnN.js.map +1 -0
- package/dist/use-copy-to-clipboard-CQgIuR1c.cjs +77 -0
- package/dist/use-copy-to-clipboard-CQgIuR1c.cjs.map +1 -0
- package/dist/use-copy-to-clipboard.css +126 -0
- package/dist/use-table-keyboard-navigation-D9tbkeqJ.cjs +214 -0
- package/dist/use-table-keyboard-navigation-D9tbkeqJ.cjs.map +1 -0
- package/dist/use-table-keyboard-navigation-TaCn1tec.js +203 -0
- package/dist/use-table-keyboard-navigation-TaCn1tec.js.map +1 -0
- package/dist/utils-CzYGxqbG.js +3290 -0
- package/dist/utils-CzYGxqbG.js.map +1 -0
- package/dist/utils-vA5sWo9W.cjs +3293 -0
- package/dist/utils-vA5sWo9W.cjs.map +1 -0
- package/package.json +18 -7
- package/theme.css +412 -0
- package/dist/vite.config.d.ts +0 -3
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { FilterIcon, SearchIcon, XIcon } from 'lucide-react';
|
|
3
|
+
import { useState, useCallback, useMemo } from 'react';
|
|
4
|
+
import { B as Button } from './Button-DoOEJwa_.js';
|
|
5
|
+
import { D as DropdownMenu } from './dropdown-menu-Dh-CMMjl.js';
|
|
6
|
+
import { c as cn } from './utils-CzYGxqbG.js';
|
|
7
|
+
|
|
8
|
+
const SUBMENU_SEARCH_THRESHOLD = 6;
|
|
9
|
+
function SubMenuSearch({
|
|
10
|
+
value,
|
|
11
|
+
onChange,
|
|
12
|
+
label = "Search"
|
|
13
|
+
}) {
|
|
14
|
+
return /* @__PURE__ */ jsx("div", { className: cn("px-2 pb-2"), children: /* @__PURE__ */ jsxs(
|
|
15
|
+
"div",
|
|
16
|
+
{
|
|
17
|
+
className: cn(
|
|
18
|
+
"flex items-center gap-2 border border-border1 rounded-md px-2 py-1",
|
|
19
|
+
"focus-within:border-neutral2"
|
|
20
|
+
),
|
|
21
|
+
children: [
|
|
22
|
+
/* @__PURE__ */ jsx(SearchIcon, { className: cn("text-neutral3 h-3.5 w-3.5 shrink-0") }),
|
|
23
|
+
/* @__PURE__ */ jsx(
|
|
24
|
+
"input",
|
|
25
|
+
{
|
|
26
|
+
type: "text",
|
|
27
|
+
placeholder: "Search...",
|
|
28
|
+
"aria-label": label,
|
|
29
|
+
value,
|
|
30
|
+
onChange: (e) => onChange(e.target.value),
|
|
31
|
+
onKeyDown: (e) => e.stopPropagation(),
|
|
32
|
+
className: cn("bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full")
|
|
33
|
+
}
|
|
34
|
+
)
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
) });
|
|
38
|
+
}
|
|
39
|
+
function SelectDataFilter({
|
|
40
|
+
categories,
|
|
41
|
+
value,
|
|
42
|
+
onChange,
|
|
43
|
+
disabled,
|
|
44
|
+
label = "Filter",
|
|
45
|
+
align = "end",
|
|
46
|
+
searchThreshold = SUBMENU_SEARCH_THRESHOLD
|
|
47
|
+
}) {
|
|
48
|
+
const [filterSearch, setFilterSearch] = useState("");
|
|
49
|
+
const [subSearch, setSubSearch] = useState("");
|
|
50
|
+
const resetSubSearch = useCallback((open) => {
|
|
51
|
+
if (!open) setSubSearch("");
|
|
52
|
+
}, []);
|
|
53
|
+
const activeFilterCount = useMemo(() => {
|
|
54
|
+
let count = 0;
|
|
55
|
+
for (const selections of Object.values(value)) {
|
|
56
|
+
if (selections.length > 0) count++;
|
|
57
|
+
}
|
|
58
|
+
return count;
|
|
59
|
+
}, [value]);
|
|
60
|
+
const grouped = useMemo(() => {
|
|
61
|
+
const q = filterSearch.toLowerCase();
|
|
62
|
+
const groups = [];
|
|
63
|
+
const groupMap = /* @__PURE__ */ new Map();
|
|
64
|
+
const ungrouped = [];
|
|
65
|
+
for (const cat of categories) {
|
|
66
|
+
if (cat.values.length === 0) continue;
|
|
67
|
+
if (q) {
|
|
68
|
+
const matchesLabel = cat.label.toLowerCase().includes(q);
|
|
69
|
+
const matchesValues = cat.values.some((v) => v.label.toLowerCase().includes(q));
|
|
70
|
+
if (!matchesLabel && !matchesValues) continue;
|
|
71
|
+
}
|
|
72
|
+
if (cat.group) {
|
|
73
|
+
let items = groupMap.get(cat.group);
|
|
74
|
+
if (!items) {
|
|
75
|
+
items = [];
|
|
76
|
+
groupMap.set(cat.group, items);
|
|
77
|
+
}
|
|
78
|
+
items.push(cat);
|
|
79
|
+
} else {
|
|
80
|
+
ungrouped.push(cat);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
for (const cat of ungrouped) {
|
|
84
|
+
groups.push({ key: cat.id, items: [cat] });
|
|
85
|
+
}
|
|
86
|
+
for (const [groupLabel, items] of groupMap) {
|
|
87
|
+
groups.push({ key: `group-${groupLabel}`, label: groupLabel, items });
|
|
88
|
+
}
|
|
89
|
+
return groups;
|
|
90
|
+
}, [categories, filterSearch]);
|
|
91
|
+
const handleSelect = (categoryId, selectedValue, mode) => {
|
|
92
|
+
const current = value[categoryId] ?? [];
|
|
93
|
+
let next;
|
|
94
|
+
if (mode === "single") {
|
|
95
|
+
next = current.includes(selectedValue) ? [] : [selectedValue];
|
|
96
|
+
} else {
|
|
97
|
+
next = current.includes(selectedValue) ? current.filter((v) => v !== selectedValue) : [...current, selectedValue];
|
|
98
|
+
}
|
|
99
|
+
onChange({ ...value, [categoryId]: next });
|
|
100
|
+
};
|
|
101
|
+
const handleClearAll = () => {
|
|
102
|
+
onChange({});
|
|
103
|
+
};
|
|
104
|
+
const renderCategory = (cat) => {
|
|
105
|
+
const mode = cat.mode ?? "multi";
|
|
106
|
+
const selected = value[cat.id] ?? [];
|
|
107
|
+
const selectedCount = selected.length;
|
|
108
|
+
return /* @__PURE__ */ jsxs(DropdownMenu.Sub, { onOpenChange: resetSubSearch, children: [
|
|
109
|
+
/* @__PURE__ */ jsxs(DropdownMenu.SubTrigger, { children: [
|
|
110
|
+
/* @__PURE__ */ jsx("span", { className: cn("truncate"), children: cat.label }),
|
|
111
|
+
selectedCount > 0 && /* @__PURE__ */ jsx("span", { className: cn("ml-auto text-ui-sm text-accent1"), children: selectedCount })
|
|
112
|
+
] }),
|
|
113
|
+
/* @__PURE__ */ jsxs(DropdownMenu.SubContent, { className: cn("max-h-[20rem]"), children: [
|
|
114
|
+
cat.values.length >= searchThreshold && /* @__PURE__ */ jsx(SubMenuSearch, { value: subSearch, onChange: setSubSearch, label: `Search ${cat.label.toLowerCase()}` }),
|
|
115
|
+
mode === "single" ? /* @__PURE__ */ jsx(DropdownMenu.RadioGroup, { value: selected[0] ?? "", onValueChange: (val) => handleSelect(cat.id, val, mode), children: cat.values.filter((v) => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase())).map((v) => /* @__PURE__ */ jsx(DropdownMenu.RadioItem, { value: v.value, children: /* @__PURE__ */ jsx("span", { className: cn("truncate"), children: v.label }) }, v.value)) }) : cat.values.filter((v) => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase())).map((v) => /* @__PURE__ */ jsx(
|
|
116
|
+
DropdownMenu.CheckboxItem,
|
|
117
|
+
{
|
|
118
|
+
checked: selected.includes(v.value),
|
|
119
|
+
onCheckedChange: () => handleSelect(cat.id, v.value, mode),
|
|
120
|
+
onSelect: (e) => e.preventDefault(),
|
|
121
|
+
children: /* @__PURE__ */ jsx("span", { className: cn("truncate"), children: v.label })
|
|
122
|
+
},
|
|
123
|
+
v.value
|
|
124
|
+
))
|
|
125
|
+
] })
|
|
126
|
+
] }, cat.id);
|
|
127
|
+
};
|
|
128
|
+
return /* @__PURE__ */ jsxs(DropdownMenu, { modal: false, children: [
|
|
129
|
+
/* @__PURE__ */ jsx(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { variant: "outline", disabled, size: "md", children: [
|
|
130
|
+
/* @__PURE__ */ jsx(FilterIcon, {}),
|
|
131
|
+
label,
|
|
132
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsx(
|
|
133
|
+
"span",
|
|
134
|
+
{
|
|
135
|
+
className: cn(
|
|
136
|
+
"ml-0.5 inline-flex items-center justify-center rounded-full bg-accent1/50 text-neutral5 text-ui-sm w-5 h-5"
|
|
137
|
+
),
|
|
138
|
+
children: activeFilterCount
|
|
139
|
+
}
|
|
140
|
+
)
|
|
141
|
+
] }) }),
|
|
142
|
+
/* @__PURE__ */ jsxs(DropdownMenu.Content, { align, className: cn("min-w-[12rem]"), children: [
|
|
143
|
+
/* @__PURE__ */ jsx("div", { className: cn("px-2 pb-2"), children: /* @__PURE__ */ jsxs(
|
|
144
|
+
"div",
|
|
145
|
+
{
|
|
146
|
+
className: cn(
|
|
147
|
+
"flex items-center gap-2 border border-border1 rounded-md px-2 py-1",
|
|
148
|
+
"focus-within:border-neutral2"
|
|
149
|
+
),
|
|
150
|
+
children: [
|
|
151
|
+
/* @__PURE__ */ jsx(SearchIcon, { className: cn("text-neutral3 h-3.5 w-3.5 shrink-0") }),
|
|
152
|
+
/* @__PURE__ */ jsx(
|
|
153
|
+
"input",
|
|
154
|
+
{
|
|
155
|
+
type: "text",
|
|
156
|
+
placeholder: "Search filters...",
|
|
157
|
+
"aria-label": "Search filters",
|
|
158
|
+
value: filterSearch,
|
|
159
|
+
onChange: (e) => setFilterSearch(e.target.value),
|
|
160
|
+
onKeyDown: (e) => e.stopPropagation(),
|
|
161
|
+
className: cn("bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full")
|
|
162
|
+
}
|
|
163
|
+
)
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
) }),
|
|
167
|
+
/* @__PURE__ */ jsx(DropdownMenu.Separator, {}),
|
|
168
|
+
grouped.map((group) => {
|
|
169
|
+
if (group.items.length === 1 && !group.label) {
|
|
170
|
+
return renderCategory(group.items[0]);
|
|
171
|
+
}
|
|
172
|
+
if (group.label && group.items.length === 1) {
|
|
173
|
+
return renderCategory(group.items[0]);
|
|
174
|
+
}
|
|
175
|
+
return /* @__PURE__ */ jsxs(DropdownMenu.Sub, { children: [
|
|
176
|
+
/* @__PURE__ */ jsx(DropdownMenu.SubTrigger, { children: group.label }),
|
|
177
|
+
/* @__PURE__ */ jsx(DropdownMenu.SubContent, { className: cn("max-h-[20rem]"), children: group.items.map((cat) => renderCategory(cat)) })
|
|
178
|
+
] }, group.key);
|
|
179
|
+
}),
|
|
180
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
181
|
+
/* @__PURE__ */ jsx(DropdownMenu.Separator, {}),
|
|
182
|
+
/* @__PURE__ */ jsxs(DropdownMenu.Item, { onSelect: handleClearAll, children: [
|
|
183
|
+
/* @__PURE__ */ jsx(XIcon, {}),
|
|
184
|
+
"Clear all filters"
|
|
185
|
+
] })
|
|
186
|
+
] })
|
|
187
|
+
] })
|
|
188
|
+
] });
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
export { SelectDataFilter as S };
|
|
192
|
+
//# sourceMappingURL=select-data-filter-BFGZYkQ_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-data-filter-BFGZYkQ_.js","sources":["../src/ds/components/DataFilter/select-data-filter.tsx"],"sourcesContent":["import { FilterIcon, SearchIcon, XIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { useState, useMemo, useCallback } from 'react';\n\nimport { Button } from '@/ds/components/Button/Button';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** A single selectable value within a filter category */\nexport type SelectDataFilterValue = {\n value: string;\n label: string;\n};\n\n/** Selection mode for a filter category */\nexport type SelectDataFilterMode = 'single' | 'multi';\n\n/** A filter category that appears in the filter dropdown */\nexport type SelectDataFilterCategory = {\n /** Unique identifier */\n id: string;\n /** Display label */\n label: string;\n /** Optional group header (categories with the same group are nested under it) */\n group?: string;\n /** Available values to pick from */\n values: SelectDataFilterValue[];\n /** 'single' = radio, 'multi' = checkboxes. Defaults to 'multi'. */\n mode?: SelectDataFilterMode;\n};\n\n/** Current selected state: category id -> selected value(s) */\nexport type SelectDataFilterState = Record<string, string[]>;\n\nexport type SelectDataFilterProps = {\n /** Filter categories to display */\n categories: SelectDataFilterCategory[];\n /** Current filter selections */\n value: SelectDataFilterState;\n /** Called when selections change */\n onChange: (next: SelectDataFilterState) => void;\n /** Disable the trigger button */\n disabled?: boolean;\n /** Override the trigger label */\n label?: ReactNode;\n /** Content alignment */\n align?: 'start' | 'center' | 'end';\n /** Minimum items before showing search in a submenu */\n searchThreshold?: number;\n};\n\n// ---------------------------------------------------------------------------\n// Internal helpers\n// ---------------------------------------------------------------------------\n\nconst SUBMENU_SEARCH_THRESHOLD = 6;\n\nfunction SubMenuSearch({\n value,\n onChange,\n label = 'Search',\n}: {\n value: string;\n onChange: (v: string) => void;\n label?: string;\n}) {\n return (\n <div className={cn('px-2 pb-2')}>\n <div\n className={cn(\n 'flex items-center gap-2 border border-border1 rounded-md px-2 py-1',\n 'focus-within:border-neutral2',\n )}\n >\n <SearchIcon className={cn('text-neutral3 h-3.5 w-3.5 shrink-0')} />\n <input\n type=\"text\"\n placeholder=\"Search...\"\n aria-label={label}\n value={value}\n onChange={e => onChange(e.target.value)}\n onKeyDown={e => e.stopPropagation()}\n className={cn('bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full')}\n />\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nexport function SelectDataFilter({\n categories,\n value,\n onChange,\n disabled,\n label = 'Filter',\n align = 'end',\n searchThreshold = SUBMENU_SEARCH_THRESHOLD,\n}: SelectDataFilterProps) {\n const [filterSearch, setFilterSearch] = useState('');\n const [subSearch, setSubSearch] = useState('');\n\n const resetSubSearch = useCallback((open: boolean) => {\n if (!open) setSubSearch('');\n }, []);\n\n // Count active filters\n const activeFilterCount = useMemo(() => {\n let count = 0;\n for (const selections of Object.values(value)) {\n if (selections.length > 0) count++;\n }\n return count;\n }, [value]);\n\n // Group categories\n const grouped = useMemo(() => {\n const q = filterSearch.toLowerCase();\n const groups: { key: string; label?: string; items: SelectDataFilterCategory[] }[] = [];\n const groupMap = new Map<string, SelectDataFilterCategory[]>();\n const ungrouped: SelectDataFilterCategory[] = [];\n\n for (const cat of categories) {\n if (cat.values.length === 0) continue;\n // Filter by search\n if (q) {\n const matchesLabel = cat.label.toLowerCase().includes(q);\n const matchesValues = cat.values.some(v => v.label.toLowerCase().includes(q));\n if (!matchesLabel && !matchesValues) continue;\n }\n if (cat.group) {\n let items = groupMap.get(cat.group);\n if (!items) {\n items = [];\n groupMap.set(cat.group, items);\n }\n items.push(cat);\n } else {\n ungrouped.push(cat);\n }\n }\n\n // Ungrouped items first\n for (const cat of ungrouped) {\n groups.push({ key: cat.id, items: [cat] });\n }\n // Then grouped\n for (const [groupLabel, items] of groupMap) {\n groups.push({ key: `group-${groupLabel}`, label: groupLabel, items });\n }\n\n return groups;\n }, [categories, filterSearch]);\n\n const handleSelect = (categoryId: string, selectedValue: string, mode: SelectDataFilterMode) => {\n const current = value[categoryId] ?? [];\n let next: string[];\n\n if (mode === 'single') {\n next = current.includes(selectedValue) ? [] : [selectedValue];\n } else {\n next = current.includes(selectedValue) ? current.filter(v => v !== selectedValue) : [...current, selectedValue];\n }\n\n onChange({ ...value, [categoryId]: next });\n };\n\n const handleClearAll = () => {\n onChange({});\n };\n\n const renderCategory = (cat: SelectDataFilterCategory) => {\n const mode = cat.mode ?? 'multi';\n const selected = value[cat.id] ?? [];\n const selectedCount = selected.length;\n\n return (\n <DropdownMenu.Sub key={cat.id} onOpenChange={resetSubSearch}>\n <DropdownMenu.SubTrigger>\n <span className={cn('truncate')}>{cat.label}</span>\n {selectedCount > 0 && <span className={cn('ml-auto text-ui-sm text-accent1')}>{selectedCount}</span>}\n </DropdownMenu.SubTrigger>\n <DropdownMenu.SubContent className={cn('max-h-[20rem]')}>\n {cat.values.length >= searchThreshold && (\n <SubMenuSearch value={subSearch} onChange={setSubSearch} label={`Search ${cat.label.toLowerCase()}`} />\n )}\n {mode === 'single' ? (\n <DropdownMenu.RadioGroup value={selected[0] ?? ''} onValueChange={val => handleSelect(cat.id, val, mode)}>\n {cat.values\n .filter(v => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase()))\n .map(v => (\n <DropdownMenu.RadioItem key={v.value} value={v.value}>\n <span className={cn('truncate')}>{v.label}</span>\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n ) : (\n cat.values\n .filter(v => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase()))\n .map(v => (\n <DropdownMenu.CheckboxItem\n key={v.value}\n checked={selected.includes(v.value)}\n onCheckedChange={() => handleSelect(cat.id, v.value, mode)}\n onSelect={e => e.preventDefault()}\n >\n <span className={cn('truncate')}>{v.label}</span>\n </DropdownMenu.CheckboxItem>\n ))\n )}\n </DropdownMenu.SubContent>\n </DropdownMenu.Sub>\n );\n };\n\n return (\n <DropdownMenu modal={false}>\n <DropdownMenu.Trigger asChild>\n <Button variant=\"outline\" disabled={disabled} size=\"md\">\n <FilterIcon />\n {label}\n {activeFilterCount > 0 && (\n <span\n className={cn(\n 'ml-0.5 inline-flex items-center justify-center rounded-full bg-accent1/50 text-neutral5 text-ui-sm w-5 h-5',\n )}\n >\n {activeFilterCount}\n </span>\n )}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align={align} className={cn('min-w-[12rem]')}>\n {/* Search */}\n <div className={cn('px-2 pb-2')}>\n <div\n className={cn(\n 'flex items-center gap-2 border border-border1 rounded-md px-2 py-1',\n 'focus-within:border-neutral2',\n )}\n >\n <SearchIcon className={cn('text-neutral3 h-3.5 w-3.5 shrink-0')} />\n <input\n type=\"text\"\n placeholder=\"Search filters...\"\n aria-label=\"Search filters\"\n value={filterSearch}\n onChange={e => setFilterSearch(e.target.value)}\n onKeyDown={e => e.stopPropagation()}\n className={cn('bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full')}\n />\n </div>\n </div>\n\n <DropdownMenu.Separator />\n\n {grouped.map(group => {\n if (group.items.length === 1 && !group.label) {\n return renderCategory(group.items[0]);\n }\n\n if (group.label && group.items.length === 1) {\n // Single item in a named group — render directly with group as context\n return renderCategory(group.items[0]);\n }\n\n // Multiple items under a group label — nest under a sub-trigger\n return (\n <DropdownMenu.Sub key={group.key}>\n <DropdownMenu.SubTrigger>{group.label}</DropdownMenu.SubTrigger>\n <DropdownMenu.SubContent className={cn('max-h-[20rem]')}>\n {group.items.map(cat => renderCategory(cat))}\n </DropdownMenu.SubContent>\n </DropdownMenu.Sub>\n );\n })}\n\n {/* Clear all */}\n {activeFilterCount > 0 && (\n <>\n <DropdownMenu.Separator />\n <DropdownMenu.Item onSelect={handleClearAll}>\n <XIcon />\n Clear all filters\n </DropdownMenu.Item>\n </>\n )}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":[],"mappings":";;;;;;;AA2DA,MAAM,wBAAA,GAA2B,CAAA;AAEjC,SAAS,aAAA,CAAc;AAAA,EACrB,KAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA,GAAQ;AACV,CAAA,EAIG;AACD,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,WAAW,CAAA,EAC5B,QAAA,kBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,oEAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,EAAA,CAAG,oCAAoC,CAAA,EAAG,CAAA;AAAA,wBACjE,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,MAAA;AAAA,YACL,WAAA,EAAY,WAAA;AAAA,YACZ,YAAA,EAAY,KAAA;AAAA,YACZ,KAAA;AAAA,YACA,QAAA,EAAU,CAAA,CAAA,KAAK,QAAA,CAAS,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,YACtC,SAAA,EAAW,CAAA,CAAA,KAAK,CAAA,CAAE,eAAA,EAAgB;AAAA,YAClC,SAAA,EAAW,GAAG,uFAAuF;AAAA;AAAA;AACvG;AAAA;AAAA,GACF,EACF,CAAA;AAEJ;AAMO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,UAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA,GAAQ,QAAA;AAAA,EACR,KAAA,GAAQ,KAAA;AAAA,EACR,eAAA,GAAkB;AACpB,CAAA,EAA0B;AACxB,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,EAAE,CAAA;AACnD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,EAAE,CAAA;AAE7C,EAAA,MAAM,cAAA,GAAiB,WAAA,CAAY,CAAC,IAAA,KAAkB;AACpD,IAAA,IAAI,CAAC,IAAA,EAAM,YAAA,CAAa,EAAE,CAAA;AAAA,EAC5B,CAAA,EAAG,EAAE,CAAA;AAGL,EAAA,MAAM,iBAAA,GAAoB,QAAQ,MAAM;AACtC,IAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,IAAA,KAAA,MAAW,UAAA,IAAc,MAAA,CAAO,MAAA,CAAO,KAAK,CAAA,EAAG;AAC7C,MAAA,IAAI,UAAA,CAAW,SAAS,CAAA,EAAG,KAAA,EAAA;AAAA,IAC7B;AACA,IAAA,OAAO,KAAA;AAAA,EACT,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAGV,EAAA,MAAM,OAAA,GAAU,QAAQ,MAAM;AAC5B,IAAA,MAAM,CAAA,GAAI,aAAa,WAAA,EAAY;AACnC,IAAA,MAAM,SAA+E,EAAC;AACtF,IAAA,MAAM,QAAA,uBAAe,GAAA,EAAwC;AAC7D,IAAA,MAAM,YAAwC,EAAC;AAE/C,IAAA,KAAA,MAAW,OAAO,UAAA,EAAY;AAC5B,MAAA,IAAI,GAAA,CAAI,MAAA,CAAO,MAAA,KAAW,CAAA,EAAG;AAE7B,MAAA,IAAI,CAAA,EAAG;AACL,QAAA,MAAM,eAAe,GAAA,CAAI,KAAA,CAAM,WAAA,EAAY,CAAE,SAAS,CAAC,CAAA;AACvD,QAAA,MAAM,aAAA,GAAgB,GAAA,CAAI,MAAA,CAAO,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,KAAA,CAAM,WAAA,EAAY,CAAE,QAAA,CAAS,CAAC,CAAC,CAAA;AAC5E,QAAA,IAAI,CAAC,YAAA,IAAgB,CAAC,aAAA,EAAe;AAAA,MACvC;AACA,MAAA,IAAI,IAAI,KAAA,EAAO;AACb,QAAA,IAAI,KAAA,GAAQ,QAAA,CAAS,GAAA,CAAI,GAAA,CAAI,KAAK,CAAA;AAClC,QAAA,IAAI,CAAC,KAAA,EAAO;AACV,UAAA,KAAA,GAAQ,EAAC;AACT,UAAA,QAAA,CAAS,GAAA,CAAI,GAAA,CAAI,KAAA,EAAO,KAAK,CAAA;AAAA,QAC/B;AACA,QAAA,KAAA,CAAM,KAAK,GAAG,CAAA;AAAA,MAChB,CAAA,MAAO;AACL,QAAA,SAAA,CAAU,KAAK,GAAG,CAAA;AAAA,MACpB;AAAA,IACF;AAGA,IAAA,KAAA,MAAW,OAAO,SAAA,EAAW;AAC3B,MAAA,MAAA,CAAO,IAAA,CAAK,EAAE,GAAA,EAAK,GAAA,CAAI,IAAI,KAAA,EAAO,CAAC,GAAG,CAAA,EAAG,CAAA;AAAA,IAC3C;AAEA,IAAA,KAAA,MAAW,CAAC,UAAA,EAAY,KAAK,CAAA,IAAK,QAAA,EAAU;AAC1C,MAAA,MAAA,CAAO,IAAA,CAAK,EAAE,GAAA,EAAK,CAAA,MAAA,EAAS,UAAU,CAAA,CAAA,EAAI,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,CAAA;AAAA,IACtE;AAEA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA,EAAG,CAAC,UAAA,EAAY,YAAY,CAAC,CAAA;AAE7B,EAAA,MAAM,YAAA,GAAe,CAAC,UAAA,EAAoB,aAAA,EAAuB,IAAA,KAA+B;AAC9F,IAAA,MAAM,OAAA,GAAU,KAAA,CAAM,UAAU,CAAA,IAAK,EAAC;AACtC,IAAA,IAAI,IAAA;AAEJ,IAAA,IAAI,SAAS,QAAA,EAAU;AACrB,MAAA,IAAA,GAAO,QAAQ,QAAA,CAAS,aAAa,IAAI,EAAC,GAAI,CAAC,aAAa,CAAA;AAAA,IAC9D,CAAA,MAAO;AACL,MAAA,IAAA,GAAO,OAAA,CAAQ,QAAA,CAAS,aAAa,CAAA,GAAI,OAAA,CAAQ,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,KAAM,aAAa,CAAA,GAAI,CAAC,GAAG,SAAS,aAAa,CAAA;AAAA,IAChH;AAEA,IAAA,QAAA,CAAS,EAAE,GAAG,KAAA,EAAO,CAAC,UAAU,GAAG,MAAM,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAA,QAAA,CAAS,EAAE,CAAA;AAAA,EACb,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,CAAC,GAAA,KAAkC;AACxD,IAAA,MAAM,IAAA,GAAO,IAAI,IAAA,IAAQ,OAAA;AACzB,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,GAAA,CAAI,EAAE,KAAK,EAAC;AACnC,IAAA,MAAM,gBAAgB,QAAA,CAAS,MAAA;AAE/B,IAAA,uBACE,IAAA,CAAC,YAAA,CAAa,GAAA,EAAb,EAA8B,cAAc,cAAA,EAC3C,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,YAAA,CAAa,YAAb,EACC,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAK,SAAA,EAAW,EAAA,CAAG,UAAU,CAAA,EAAI,cAAI,KAAA,EAAM,CAAA;AAAA,QAC3C,aAAA,GAAgB,qBAAK,GAAA,CAAC,MAAA,EAAA,EAAK,WAAW,EAAA,CAAG,iCAAiC,GAAI,QAAA,EAAA,aAAA,EAAc;AAAA,OAAA,EAC/F,CAAA;AAAA,2BACC,YAAA,CAAa,UAAA,EAAb,EAAwB,SAAA,EAAW,EAAA,CAAG,eAAe,CAAA,EACnD,QAAA,EAAA;AAAA,QAAA,GAAA,CAAI,MAAA,CAAO,MAAA,IAAU,eAAA,oBACpB,GAAA,CAAC,iBAAc,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,YAAA,EAAc,OAAO,CAAA,OAAA,EAAU,GAAA,CAAI,KAAA,CAAM,WAAA,EAAa,CAAA,CAAA,EAAI,CAAA;AAAA,QAEtG,IAAA,KAAS,QAAA,mBACR,GAAA,CAAC,YAAA,CAAa,YAAb,EAAwB,KAAA,EAAO,QAAA,CAAS,CAAC,KAAK,EAAA,EAAI,aAAA,EAAe,CAAA,GAAA,KAAO,YAAA,CAAa,IAAI,EAAA,EAAI,GAAA,EAAK,IAAI,CAAA,EACpG,cAAI,MAAA,CACF,MAAA,CAAO,CAAA,CAAA,KAAK,CAAC,aAAa,CAAA,CAAE,KAAA,CAAM,WAAA,EAAY,CAAE,SAAS,SAAA,CAAU,WAAA,EAAa,CAAC,EACjF,GAAA,CAAI,CAAA,CAAA,qBACH,GAAA,CAAC,YAAA,CAAa,WAAb,EAAqC,KAAA,EAAO,CAAA,CAAE,KAAA,EAC7C,8BAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,UAAU,GAAI,QAAA,EAAA,CAAA,CAAE,KAAA,EAAM,CAAA,EAAA,EADf,CAAA,CAAE,KAE/B,CACD,CAAA,EACL,CAAA,GAEA,GAAA,CAAI,OACD,MAAA,CAAO,CAAA,CAAA,KAAK,CAAC,SAAA,IAAa,EAAE,KAAA,CAAM,WAAA,EAAY,CAAE,QAAA,CAAS,UAAU,WAAA,EAAa,CAAC,CAAA,CACjF,IAAI,CAAA,CAAA,qBACH,GAAA;AAAA,UAAC,YAAA,CAAa,YAAA;AAAA,UAAb;AAAA,YAEC,OAAA,EAAS,QAAA,CAAS,QAAA,CAAS,CAAA,CAAE,KAAK,CAAA;AAAA,YAClC,iBAAiB,MAAM,YAAA,CAAa,IAAI,EAAA,EAAI,CAAA,CAAE,OAAO,IAAI,CAAA;AAAA,YACzD,QAAA,EAAU,CAAA,CAAA,KAAK,CAAA,CAAE,cAAA,EAAe;AAAA,YAEhC,8BAAC,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,UAAU,CAAA,EAAI,YAAE,KAAA,EAAM;AAAA,WAAA;AAAA,UALrC,CAAA,CAAE;AAAA,SAOV;AAAA,OAAA,EAEP;AAAA,KAAA,EAAA,EAjCqB,IAAI,EAkC3B,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,uBACE,IAAA,CAAC,YAAA,EAAA,EAAa,KAAA,EAAO,KAAA,EACnB,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,YAAA,CAAa,OAAA,EAAb,EAAqB,OAAA,EAAO,IAAA,EAC3B,QAAA,kBAAA,IAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,QAAA,EAAoB,IAAA,EAAK,IAAA,EACjD,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,CAAA;AAAA,MACX,KAAA;AAAA,MACA,oBAAoB,CAAA,oBACnB,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT;AAAA,WACF;AAAA,UAEC,QAAA,EAAA;AAAA;AAAA;AACH,KAAA,EAEJ,CAAA,EACF,CAAA;AAAA,oBACA,IAAA,CAAC,aAAa,OAAA,EAAb,EAAqB,OAAc,SAAA,EAAW,EAAA,CAAG,eAAe,CAAA,EAE/D,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,WAAW,CAAA,EAC5B,QAAA,kBAAA,IAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,oEAAA;AAAA,YACA;AAAA,WACF;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,EAAA,CAAG,oCAAoC,CAAA,EAAG,CAAA;AAAA,4BACjE,GAAA;AAAA,cAAC,OAAA;AAAA,cAAA;AAAA,gBACC,IAAA,EAAK,MAAA;AAAA,gBACL,WAAA,EAAY,mBAAA;AAAA,gBACZ,YAAA,EAAW,gBAAA;AAAA,gBACX,KAAA,EAAO,YAAA;AAAA,gBACP,QAAA,EAAU,CAAA,CAAA,KAAK,eAAA,CAAgB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,gBAC7C,SAAA,EAAW,CAAA,CAAA,KAAK,CAAA,CAAE,eAAA,EAAgB;AAAA,gBAClC,SAAA,EAAW,GAAG,uFAAuF;AAAA;AAAA;AACvG;AAAA;AAAA,OACF,EACF,CAAA;AAAA,sBAEA,GAAA,CAAC,YAAA,CAAa,SAAA,EAAb,EAAuB,CAAA;AAAA,MAEvB,OAAA,CAAQ,IAAI,CAAA,KAAA,KAAS;AACpB,QAAA,IAAI,MAAM,KAAA,CAAM,MAAA,KAAW,CAAA,IAAK,CAAC,MAAM,KAAA,EAAO;AAC5C,UAAA,OAAO,cAAA,CAAe,KAAA,CAAM,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,QACtC;AAEA,QAAA,IAAI,KAAA,CAAM,KAAA,IAAS,KAAA,CAAM,KAAA,CAAM,WAAW,CAAA,EAAG;AAE3C,UAAA,OAAO,cAAA,CAAe,KAAA,CAAM,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,QACtC;AAGA,QAAA,uBACE,IAAA,CAAC,YAAA,CAAa,GAAA,EAAb,EACC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,YAAA,CAAa,UAAA,EAAb,EAAyB,QAAA,EAAA,KAAA,CAAM,KAAA,EAAM,CAAA;AAAA,0BACtC,GAAA,CAAC,YAAA,CAAa,UAAA,EAAb,EAAwB,WAAW,EAAA,CAAG,eAAe,CAAA,EACnD,QAAA,EAAA,KAAA,CAAM,MAAM,GAAA,CAAI,CAAA,GAAA,KAAO,cAAA,CAAe,GAAG,CAAC,CAAA,EAC7C;AAAA,SAAA,EAAA,EAJqB,MAAM,GAK7B,CAAA;AAAA,MAEJ,CAAC,CAAA;AAAA,MAGA,iBAAA,GAAoB,qBACnB,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,YAAA,CAAa,WAAb,EAAuB,CAAA;AAAA,wBACxB,IAAA,CAAC,YAAA,CAAa,IAAA,EAAb,EAAkB,UAAU,cAAA,EAC3B,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,KAAA,EAAA,EAAM,CAAA;AAAA,UAAE;AAAA,SAAA,EAEX;AAAA,OAAA,EACF;AAAA,KAAA,EAEJ;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
const lucideReact = require('lucide-react');
|
|
5
|
+
const React = require('react');
|
|
6
|
+
const Button = require('./Button-DpIX8JMz.cjs');
|
|
7
|
+
const dropdownMenu = require('./dropdown-menu-Vl_C0N5e.cjs');
|
|
8
|
+
const utils = require('./utils-vA5sWo9W.cjs');
|
|
9
|
+
|
|
10
|
+
const SUBMENU_SEARCH_THRESHOLD = 6;
|
|
11
|
+
function SubMenuSearch({
|
|
12
|
+
value,
|
|
13
|
+
onChange,
|
|
14
|
+
label = "Search"
|
|
15
|
+
}) {
|
|
16
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn("px-2 pb-2"), children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
17
|
+
"div",
|
|
18
|
+
{
|
|
19
|
+
className: utils.cn(
|
|
20
|
+
"flex items-center gap-2 border border-border1 rounded-md px-2 py-1",
|
|
21
|
+
"focus-within:border-neutral2"
|
|
22
|
+
),
|
|
23
|
+
children: [
|
|
24
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchIcon, { className: utils.cn("text-neutral3 h-3.5 w-3.5 shrink-0") }),
|
|
25
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
26
|
+
"input",
|
|
27
|
+
{
|
|
28
|
+
type: "text",
|
|
29
|
+
placeholder: "Search...",
|
|
30
|
+
"aria-label": label,
|
|
31
|
+
value,
|
|
32
|
+
onChange: (e) => onChange(e.target.value),
|
|
33
|
+
onKeyDown: (e) => e.stopPropagation(),
|
|
34
|
+
className: utils.cn("bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full")
|
|
35
|
+
}
|
|
36
|
+
)
|
|
37
|
+
]
|
|
38
|
+
}
|
|
39
|
+
) });
|
|
40
|
+
}
|
|
41
|
+
function SelectDataFilter({
|
|
42
|
+
categories,
|
|
43
|
+
value,
|
|
44
|
+
onChange,
|
|
45
|
+
disabled,
|
|
46
|
+
label = "Filter",
|
|
47
|
+
align = "end",
|
|
48
|
+
searchThreshold = SUBMENU_SEARCH_THRESHOLD
|
|
49
|
+
}) {
|
|
50
|
+
const [filterSearch, setFilterSearch] = React.useState("");
|
|
51
|
+
const [subSearch, setSubSearch] = React.useState("");
|
|
52
|
+
const resetSubSearch = React.useCallback((open) => {
|
|
53
|
+
if (!open) setSubSearch("");
|
|
54
|
+
}, []);
|
|
55
|
+
const activeFilterCount = React.useMemo(() => {
|
|
56
|
+
let count = 0;
|
|
57
|
+
for (const selections of Object.values(value)) {
|
|
58
|
+
if (selections.length > 0) count++;
|
|
59
|
+
}
|
|
60
|
+
return count;
|
|
61
|
+
}, [value]);
|
|
62
|
+
const grouped = React.useMemo(() => {
|
|
63
|
+
const q = filterSearch.toLowerCase();
|
|
64
|
+
const groups = [];
|
|
65
|
+
const groupMap = /* @__PURE__ */ new Map();
|
|
66
|
+
const ungrouped = [];
|
|
67
|
+
for (const cat of categories) {
|
|
68
|
+
if (cat.values.length === 0) continue;
|
|
69
|
+
if (q) {
|
|
70
|
+
const matchesLabel = cat.label.toLowerCase().includes(q);
|
|
71
|
+
const matchesValues = cat.values.some((v) => v.label.toLowerCase().includes(q));
|
|
72
|
+
if (!matchesLabel && !matchesValues) continue;
|
|
73
|
+
}
|
|
74
|
+
if (cat.group) {
|
|
75
|
+
let items = groupMap.get(cat.group);
|
|
76
|
+
if (!items) {
|
|
77
|
+
items = [];
|
|
78
|
+
groupMap.set(cat.group, items);
|
|
79
|
+
}
|
|
80
|
+
items.push(cat);
|
|
81
|
+
} else {
|
|
82
|
+
ungrouped.push(cat);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
for (const cat of ungrouped) {
|
|
86
|
+
groups.push({ key: cat.id, items: [cat] });
|
|
87
|
+
}
|
|
88
|
+
for (const [groupLabel, items] of groupMap) {
|
|
89
|
+
groups.push({ key: `group-${groupLabel}`, label: groupLabel, items });
|
|
90
|
+
}
|
|
91
|
+
return groups;
|
|
92
|
+
}, [categories, filterSearch]);
|
|
93
|
+
const handleSelect = (categoryId, selectedValue, mode) => {
|
|
94
|
+
const current = value[categoryId] ?? [];
|
|
95
|
+
let next;
|
|
96
|
+
if (mode === "single") {
|
|
97
|
+
next = current.includes(selectedValue) ? [] : [selectedValue];
|
|
98
|
+
} else {
|
|
99
|
+
next = current.includes(selectedValue) ? current.filter((v) => v !== selectedValue) : [...current, selectedValue];
|
|
100
|
+
}
|
|
101
|
+
onChange({ ...value, [categoryId]: next });
|
|
102
|
+
};
|
|
103
|
+
const handleClearAll = () => {
|
|
104
|
+
onChange({});
|
|
105
|
+
};
|
|
106
|
+
const renderCategory = (cat) => {
|
|
107
|
+
const mode = cat.mode ?? "multi";
|
|
108
|
+
const selected = value[cat.id] ?? [];
|
|
109
|
+
const selectedCount = selected.length;
|
|
110
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.Sub, { onOpenChange: resetSubSearch, children: [
|
|
111
|
+
/* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.SubTrigger, { children: [
|
|
112
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: utils.cn("truncate"), children: cat.label }),
|
|
113
|
+
selectedCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils.cn("ml-auto text-ui-sm text-accent1"), children: selectedCount })
|
|
114
|
+
] }),
|
|
115
|
+
/* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.SubContent, { className: utils.cn("max-h-[20rem]"), children: [
|
|
116
|
+
cat.values.length >= searchThreshold && /* @__PURE__ */ jsxRuntime.jsx(SubMenuSearch, { value: subSearch, onChange: setSubSearch, label: `Search ${cat.label.toLowerCase()}` }),
|
|
117
|
+
mode === "single" ? /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.RadioGroup, { value: selected[0] ?? "", onValueChange: (val) => handleSelect(cat.id, val, mode), children: cat.values.filter((v) => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase())).map((v) => /* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.RadioItem, { value: v.value, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils.cn("truncate"), children: v.label }) }, v.value)) }) : cat.values.filter((v) => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase())).map((v) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
118
|
+
dropdownMenu.DropdownMenu.CheckboxItem,
|
|
119
|
+
{
|
|
120
|
+
checked: selected.includes(v.value),
|
|
121
|
+
onCheckedChange: () => handleSelect(cat.id, v.value, mode),
|
|
122
|
+
onSelect: (e) => e.preventDefault(),
|
|
123
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: utils.cn("truncate"), children: v.label })
|
|
124
|
+
},
|
|
125
|
+
v.value
|
|
126
|
+
))
|
|
127
|
+
] })
|
|
128
|
+
] }, cat.id);
|
|
129
|
+
};
|
|
130
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu, { modal: false, children: [
|
|
131
|
+
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(Button.Button, { variant: "outline", disabled, size: "md", children: [
|
|
132
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.FilterIcon, {}),
|
|
133
|
+
label,
|
|
134
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
135
|
+
"span",
|
|
136
|
+
{
|
|
137
|
+
className: utils.cn(
|
|
138
|
+
"ml-0.5 inline-flex items-center justify-center rounded-full bg-accent1/50 text-neutral5 text-ui-sm w-5 h-5"
|
|
139
|
+
),
|
|
140
|
+
children: activeFilterCount
|
|
141
|
+
}
|
|
142
|
+
)
|
|
143
|
+
] }) }),
|
|
144
|
+
/* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.Content, { align, className: utils.cn("min-w-[12rem]"), children: [
|
|
145
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: utils.cn("px-2 pb-2"), children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
146
|
+
"div",
|
|
147
|
+
{
|
|
148
|
+
className: utils.cn(
|
|
149
|
+
"flex items-center gap-2 border border-border1 rounded-md px-2 py-1",
|
|
150
|
+
"focus-within:border-neutral2"
|
|
151
|
+
),
|
|
152
|
+
children: [
|
|
153
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.SearchIcon, { className: utils.cn("text-neutral3 h-3.5 w-3.5 shrink-0") }),
|
|
154
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
155
|
+
"input",
|
|
156
|
+
{
|
|
157
|
+
type: "text",
|
|
158
|
+
placeholder: "Search filters...",
|
|
159
|
+
"aria-label": "Search filters",
|
|
160
|
+
value: filterSearch,
|
|
161
|
+
onChange: (e) => setFilterSearch(e.target.value),
|
|
162
|
+
onKeyDown: (e) => e.stopPropagation(),
|
|
163
|
+
className: utils.cn("bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full")
|
|
164
|
+
}
|
|
165
|
+
)
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
) }),
|
|
169
|
+
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.Separator, {}),
|
|
170
|
+
grouped.map((group) => {
|
|
171
|
+
if (group.items.length === 1 && !group.label) {
|
|
172
|
+
return renderCategory(group.items[0]);
|
|
173
|
+
}
|
|
174
|
+
if (group.label && group.items.length === 1) {
|
|
175
|
+
return renderCategory(group.items[0]);
|
|
176
|
+
}
|
|
177
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.Sub, { children: [
|
|
178
|
+
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.SubTrigger, { children: group.label }),
|
|
179
|
+
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.SubContent, { className: utils.cn("max-h-[20rem]"), children: group.items.map((cat) => renderCategory(cat)) })
|
|
180
|
+
] }, group.key);
|
|
181
|
+
}),
|
|
182
|
+
activeFilterCount > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
183
|
+
/* @__PURE__ */ jsxRuntime.jsx(dropdownMenu.DropdownMenu.Separator, {}),
|
|
184
|
+
/* @__PURE__ */ jsxRuntime.jsxs(dropdownMenu.DropdownMenu.Item, { onSelect: handleClearAll, children: [
|
|
185
|
+
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.XIcon, {}),
|
|
186
|
+
"Clear all filters"
|
|
187
|
+
] })
|
|
188
|
+
] })
|
|
189
|
+
] })
|
|
190
|
+
] });
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
exports.SelectDataFilter = SelectDataFilter;
|
|
194
|
+
//# sourceMappingURL=select-data-filter-DxoxTXk2.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-data-filter-DxoxTXk2.cjs","sources":["../src/ds/components/DataFilter/select-data-filter.tsx"],"sourcesContent":["import { FilterIcon, SearchIcon, XIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { useState, useMemo, useCallback } from 'react';\n\nimport { Button } from '@/ds/components/Button/Button';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { cn } from '@/lib/utils';\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** A single selectable value within a filter category */\nexport type SelectDataFilterValue = {\n value: string;\n label: string;\n};\n\n/** Selection mode for a filter category */\nexport type SelectDataFilterMode = 'single' | 'multi';\n\n/** A filter category that appears in the filter dropdown */\nexport type SelectDataFilterCategory = {\n /** Unique identifier */\n id: string;\n /** Display label */\n label: string;\n /** Optional group header (categories with the same group are nested under it) */\n group?: string;\n /** Available values to pick from */\n values: SelectDataFilterValue[];\n /** 'single' = radio, 'multi' = checkboxes. Defaults to 'multi'. */\n mode?: SelectDataFilterMode;\n};\n\n/** Current selected state: category id -> selected value(s) */\nexport type SelectDataFilterState = Record<string, string[]>;\n\nexport type SelectDataFilterProps = {\n /** Filter categories to display */\n categories: SelectDataFilterCategory[];\n /** Current filter selections */\n value: SelectDataFilterState;\n /** Called when selections change */\n onChange: (next: SelectDataFilterState) => void;\n /** Disable the trigger button */\n disabled?: boolean;\n /** Override the trigger label */\n label?: ReactNode;\n /** Content alignment */\n align?: 'start' | 'center' | 'end';\n /** Minimum items before showing search in a submenu */\n searchThreshold?: number;\n};\n\n// ---------------------------------------------------------------------------\n// Internal helpers\n// ---------------------------------------------------------------------------\n\nconst SUBMENU_SEARCH_THRESHOLD = 6;\n\nfunction SubMenuSearch({\n value,\n onChange,\n label = 'Search',\n}: {\n value: string;\n onChange: (v: string) => void;\n label?: string;\n}) {\n return (\n <div className={cn('px-2 pb-2')}>\n <div\n className={cn(\n 'flex items-center gap-2 border border-border1 rounded-md px-2 py-1',\n 'focus-within:border-neutral2',\n )}\n >\n <SearchIcon className={cn('text-neutral3 h-3.5 w-3.5 shrink-0')} />\n <input\n type=\"text\"\n placeholder=\"Search...\"\n aria-label={label}\n value={value}\n onChange={e => onChange(e.target.value)}\n onKeyDown={e => e.stopPropagation()}\n className={cn('bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full')}\n />\n </div>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Component\n// ---------------------------------------------------------------------------\n\nexport function SelectDataFilter({\n categories,\n value,\n onChange,\n disabled,\n label = 'Filter',\n align = 'end',\n searchThreshold = SUBMENU_SEARCH_THRESHOLD,\n}: SelectDataFilterProps) {\n const [filterSearch, setFilterSearch] = useState('');\n const [subSearch, setSubSearch] = useState('');\n\n const resetSubSearch = useCallback((open: boolean) => {\n if (!open) setSubSearch('');\n }, []);\n\n // Count active filters\n const activeFilterCount = useMemo(() => {\n let count = 0;\n for (const selections of Object.values(value)) {\n if (selections.length > 0) count++;\n }\n return count;\n }, [value]);\n\n // Group categories\n const grouped = useMemo(() => {\n const q = filterSearch.toLowerCase();\n const groups: { key: string; label?: string; items: SelectDataFilterCategory[] }[] = [];\n const groupMap = new Map<string, SelectDataFilterCategory[]>();\n const ungrouped: SelectDataFilterCategory[] = [];\n\n for (const cat of categories) {\n if (cat.values.length === 0) continue;\n // Filter by search\n if (q) {\n const matchesLabel = cat.label.toLowerCase().includes(q);\n const matchesValues = cat.values.some(v => v.label.toLowerCase().includes(q));\n if (!matchesLabel && !matchesValues) continue;\n }\n if (cat.group) {\n let items = groupMap.get(cat.group);\n if (!items) {\n items = [];\n groupMap.set(cat.group, items);\n }\n items.push(cat);\n } else {\n ungrouped.push(cat);\n }\n }\n\n // Ungrouped items first\n for (const cat of ungrouped) {\n groups.push({ key: cat.id, items: [cat] });\n }\n // Then grouped\n for (const [groupLabel, items] of groupMap) {\n groups.push({ key: `group-${groupLabel}`, label: groupLabel, items });\n }\n\n return groups;\n }, [categories, filterSearch]);\n\n const handleSelect = (categoryId: string, selectedValue: string, mode: SelectDataFilterMode) => {\n const current = value[categoryId] ?? [];\n let next: string[];\n\n if (mode === 'single') {\n next = current.includes(selectedValue) ? [] : [selectedValue];\n } else {\n next = current.includes(selectedValue) ? current.filter(v => v !== selectedValue) : [...current, selectedValue];\n }\n\n onChange({ ...value, [categoryId]: next });\n };\n\n const handleClearAll = () => {\n onChange({});\n };\n\n const renderCategory = (cat: SelectDataFilterCategory) => {\n const mode = cat.mode ?? 'multi';\n const selected = value[cat.id] ?? [];\n const selectedCount = selected.length;\n\n return (\n <DropdownMenu.Sub key={cat.id} onOpenChange={resetSubSearch}>\n <DropdownMenu.SubTrigger>\n <span className={cn('truncate')}>{cat.label}</span>\n {selectedCount > 0 && <span className={cn('ml-auto text-ui-sm text-accent1')}>{selectedCount}</span>}\n </DropdownMenu.SubTrigger>\n <DropdownMenu.SubContent className={cn('max-h-[20rem]')}>\n {cat.values.length >= searchThreshold && (\n <SubMenuSearch value={subSearch} onChange={setSubSearch} label={`Search ${cat.label.toLowerCase()}`} />\n )}\n {mode === 'single' ? (\n <DropdownMenu.RadioGroup value={selected[0] ?? ''} onValueChange={val => handleSelect(cat.id, val, mode)}>\n {cat.values\n .filter(v => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase()))\n .map(v => (\n <DropdownMenu.RadioItem key={v.value} value={v.value}>\n <span className={cn('truncate')}>{v.label}</span>\n </DropdownMenu.RadioItem>\n ))}\n </DropdownMenu.RadioGroup>\n ) : (\n cat.values\n .filter(v => !subSearch || v.label.toLowerCase().includes(subSearch.toLowerCase()))\n .map(v => (\n <DropdownMenu.CheckboxItem\n key={v.value}\n checked={selected.includes(v.value)}\n onCheckedChange={() => handleSelect(cat.id, v.value, mode)}\n onSelect={e => e.preventDefault()}\n >\n <span className={cn('truncate')}>{v.label}</span>\n </DropdownMenu.CheckboxItem>\n ))\n )}\n </DropdownMenu.SubContent>\n </DropdownMenu.Sub>\n );\n };\n\n return (\n <DropdownMenu modal={false}>\n <DropdownMenu.Trigger asChild>\n <Button variant=\"outline\" disabled={disabled} size=\"md\">\n <FilterIcon />\n {label}\n {activeFilterCount > 0 && (\n <span\n className={cn(\n 'ml-0.5 inline-flex items-center justify-center rounded-full bg-accent1/50 text-neutral5 text-ui-sm w-5 h-5',\n )}\n >\n {activeFilterCount}\n </span>\n )}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align={align} className={cn('min-w-[12rem]')}>\n {/* Search */}\n <div className={cn('px-2 pb-2')}>\n <div\n className={cn(\n 'flex items-center gap-2 border border-border1 rounded-md px-2 py-1',\n 'focus-within:border-neutral2',\n )}\n >\n <SearchIcon className={cn('text-neutral3 h-3.5 w-3.5 shrink-0')} />\n <input\n type=\"text\"\n placeholder=\"Search filters...\"\n aria-label=\"Search filters\"\n value={filterSearch}\n onChange={e => setFilterSearch(e.target.value)}\n onKeyDown={e => e.stopPropagation()}\n className={cn('bg-transparent text-ui-sm text-neutral4 placeholder:text-neutral3 outline-none w-full')}\n />\n </div>\n </div>\n\n <DropdownMenu.Separator />\n\n {grouped.map(group => {\n if (group.items.length === 1 && !group.label) {\n return renderCategory(group.items[0]);\n }\n\n if (group.label && group.items.length === 1) {\n // Single item in a named group — render directly with group as context\n return renderCategory(group.items[0]);\n }\n\n // Multiple items under a group label — nest under a sub-trigger\n return (\n <DropdownMenu.Sub key={group.key}>\n <DropdownMenu.SubTrigger>{group.label}</DropdownMenu.SubTrigger>\n <DropdownMenu.SubContent className={cn('max-h-[20rem]')}>\n {group.items.map(cat => renderCategory(cat))}\n </DropdownMenu.SubContent>\n </DropdownMenu.Sub>\n );\n })}\n\n {/* Clear all */}\n {activeFilterCount > 0 && (\n <>\n <DropdownMenu.Separator />\n <DropdownMenu.Item onSelect={handleClearAll}>\n <XIcon />\n Clear all filters\n </DropdownMenu.Item>\n </>\n )}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":["jsx","cn","jsxs","SearchIcon","useState","useCallback","useMemo","DropdownMenu","Button","FilterIcon","Fragment","XIcon"],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { F as FieldBlock } from './field-block-CdCFQi7X.js';
|
|
3
|
+
import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from './select-D2w0zRz4.js';
|
|
4
|
+
import { VisuallyHidden } from '@radix-ui/react-visually-hidden';
|
|
5
|
+
|
|
6
|
+
function SelectFieldBlock({
|
|
7
|
+
name,
|
|
8
|
+
helpText,
|
|
9
|
+
errorMsg,
|
|
10
|
+
required = false,
|
|
11
|
+
disabled = false,
|
|
12
|
+
size = "md",
|
|
13
|
+
value,
|
|
14
|
+
label,
|
|
15
|
+
labelIsHidden = false,
|
|
16
|
+
layout = "vertical",
|
|
17
|
+
labelColumnWidth,
|
|
18
|
+
options,
|
|
19
|
+
placeholder = "Select an option",
|
|
20
|
+
onValueChange,
|
|
21
|
+
className
|
|
22
|
+
}) {
|
|
23
|
+
return /* @__PURE__ */ jsxs(FieldBlock.Layout, { layout, labelColumnWidth, className, children: [
|
|
24
|
+
layout === "horizontal" ? /* @__PURE__ */ jsx(FieldBlock.Column, { children: /* @__PURE__ */ jsx(FieldBlock.Label, { name, required, children: labelIsHidden ? /* @__PURE__ */ jsx(VisuallyHidden, { children: label }) : label }) }) : null,
|
|
25
|
+
/* @__PURE__ */ jsxs(FieldBlock.Column, { children: [
|
|
26
|
+
layout === "vertical" && label && !labelIsHidden ? /* @__PURE__ */ jsx(FieldBlock.Label, { name, required, children: label }) : null,
|
|
27
|
+
/* @__PURE__ */ jsxs(
|
|
28
|
+
Select,
|
|
29
|
+
{
|
|
30
|
+
"aria-label": labelIsHidden ? label : void 0,
|
|
31
|
+
name,
|
|
32
|
+
value,
|
|
33
|
+
onValueChange,
|
|
34
|
+
disabled,
|
|
35
|
+
children: [
|
|
36
|
+
/* @__PURE__ */ jsx(SelectTrigger, { size, children: /* @__PURE__ */ jsx(SelectValue, { placeholder }) }),
|
|
37
|
+
/* @__PURE__ */ jsx(SelectContent, { children: options.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option.value, children: option.label }, option.value)) })
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
),
|
|
41
|
+
helpText && /* @__PURE__ */ jsx(FieldBlock.HelpText, { children: helpText }),
|
|
42
|
+
errorMsg && /* @__PURE__ */ jsx(FieldBlock.ErrorMsg, { children: errorMsg })
|
|
43
|
+
] })
|
|
44
|
+
] });
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { SelectFieldBlock as S };
|
|
48
|
+
//# sourceMappingURL=select-field-block-BA6vHkOP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-field-block-BA6vHkOP.js","sources":["../src/ds/components/FormFieldBlocks/fields/select-field-block.tsx"],"sourcesContent":["import type { SelectTriggerProps } from '../../Select/select';\nimport { FieldBlock } from '../block/field-block';\nimport type { FieldBlockErrorMsgProps } from '../block/field-block-error-msg';\nimport type { FieldBlockHelpTextProps } from '../block/field-block-help-text';\nimport type { FieldBlockLabelProps } from '../block/field-block-label';\nimport type { FieldBlockLayoutProps } from '../block/field-block-layout';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\n\nexport type SelectFieldBlockProps = Pick<FieldBlockLayoutProps, 'layout' | 'labelColumnWidth'> &\n Pick<FieldBlockLabelProps, 'name' | 'required'> & {\n testId?: string;\n label?: string | null;\n labelIsHidden?: boolean;\n labelSize?: FieldBlockLabelProps['size'];\n disabled?: boolean;\n value?: string;\n options: { value: string; label: string }[];\n placeholder?: string;\n onValueChange: (value: string) => void;\n helpText?: FieldBlockHelpTextProps['children'];\n errorMsg?: FieldBlockErrorMsgProps['children'];\n error?: boolean;\n className?: string;\n size?: SelectTriggerProps['size'];\n };\n\nexport function SelectFieldBlock({\n name,\n helpText,\n errorMsg,\n required = false,\n disabled = false,\n size = 'md',\n value,\n label,\n labelIsHidden = false,\n layout = 'vertical',\n labelColumnWidth,\n options,\n placeholder = 'Select an option',\n onValueChange,\n className,\n}: SelectFieldBlockProps) {\n return (\n <FieldBlock.Layout layout={layout} labelColumnWidth={labelColumnWidth} className={className}>\n {layout === 'horizontal' ? (\n <FieldBlock.Column>\n <FieldBlock.Label name={name} required={required}>\n {labelIsHidden ? <VisuallyHidden>{label}</VisuallyHidden> : label}\n </FieldBlock.Label>\n </FieldBlock.Column>\n ) : null}\n <FieldBlock.Column>\n {layout === 'vertical' && label && !labelIsHidden ? (\n <FieldBlock.Label name={name} required={required}>\n {label}\n </FieldBlock.Label>\n ) : null}\n <Select\n aria-label={labelIsHidden ? label : undefined}\n name={name}\n value={value}\n onValueChange={onValueChange}\n disabled={disabled}\n >\n <SelectTrigger size={size}>\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent>\n {options.map(option => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {helpText && <FieldBlock.HelpText>{helpText}</FieldBlock.HelpText>}\n {errorMsg && <FieldBlock.ErrorMsg>{errorMsg}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n );\n}\n"],"names":[],"mappings":";;;;;AA2BO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,IAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,IAAA,GAAO,IAAA;AAAA,EACP,KAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA,GAAgB,KAAA;AAAA,EAChB,MAAA,GAAS,UAAA;AAAA,EACT,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA,GAAc,kBAAA;AAAA,EACd,aAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,4BACG,UAAA,CAAW,MAAA,EAAX,EAAkB,MAAA,EAAgB,kBAAoC,SAAA,EACpE,QAAA,EAAA;AAAA,IAAA,MAAA,KAAW,+BACV,GAAA,CAAC,UAAA,CAAW,QAAX,EACC,QAAA,kBAAA,GAAA,CAAC,WAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAC3B,0CAAgB,GAAA,CAAC,cAAA,EAAA,EAAgB,iBAAM,CAAA,GAAoB,KAAA,EAC9D,GACF,CAAA,GACE,IAAA;AAAA,oBACJ,IAAA,CAAC,UAAA,CAAW,MAAA,EAAX,EACE,QAAA,EAAA;AAAA,MAAA,MAAA,KAAW,UAAA,IAAc,KAAA,IAAS,CAAC,aAAA,mBAClC,GAAA,CAAC,UAAA,CAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAC3B,QAAA,EAAA,KAAA,EACH,CAAA,GACE,IAAA;AAAA,sBACJ,IAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,YAAA,EAAY,gBAAgB,KAAA,GAAQ,MAAA;AAAA,UACpC,IAAA;AAAA,UACA,KAAA;AAAA,UACA,aAAA;AAAA,UACA,QAAA;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,aAAA,EAAA,EAAc,IAAA,EACb,QAAA,kBAAA,GAAA,CAAC,WAAA,EAAA,EAAY,aAA0B,CAAA,EACzC,CAAA;AAAA,4BACA,GAAA,CAAC,aAAA,EAAA,EACE,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,4BACX,GAAA,CAAC,UAAA,EAAA,EAA8B,KAAA,EAAO,MAAA,CAAO,OAC1C,QAAA,EAAA,MAAA,CAAO,KAAA,EAAA,EADO,MAAA,CAAO,KAExB,CACD,CAAA,EACH;AAAA;AAAA;AAAA,OACF;AAAA,MACC,QAAA,oBAAY,GAAA,CAAC,UAAA,CAAW,QAAA,EAAX,EAAqB,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,MAC3C,QAAA,oBAAY,GAAA,CAAC,UAAA,CAAW,QAAA,EAAX,EAAqB,QAAA,EAAA,QAAA,EAAS;AAAA,KAAA,EAC9C;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
const fieldBlock = require('./field-block-D9R9O6XE.cjs');
|
|
5
|
+
const select = require('./select-DDgw1wG-.cjs');
|
|
6
|
+
const reactVisuallyHidden = require('@radix-ui/react-visually-hidden');
|
|
7
|
+
|
|
8
|
+
function SelectFieldBlock({
|
|
9
|
+
name,
|
|
10
|
+
helpText,
|
|
11
|
+
errorMsg,
|
|
12
|
+
required = false,
|
|
13
|
+
disabled = false,
|
|
14
|
+
size = "md",
|
|
15
|
+
value,
|
|
16
|
+
label,
|
|
17
|
+
labelIsHidden = false,
|
|
18
|
+
layout = "vertical",
|
|
19
|
+
labelColumnWidth,
|
|
20
|
+
options,
|
|
21
|
+
placeholder = "Select an option",
|
|
22
|
+
onValueChange,
|
|
23
|
+
className
|
|
24
|
+
}) {
|
|
25
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(fieldBlock.FieldBlock.Layout, { layout, labelColumnWidth, className, children: [
|
|
26
|
+
layout === "horizontal" ? /* @__PURE__ */ jsxRuntime.jsx(fieldBlock.FieldBlock.Column, { children: /* @__PURE__ */ jsxRuntime.jsx(fieldBlock.FieldBlock.Label, { name, required, children: labelIsHidden ? /* @__PURE__ */ jsxRuntime.jsx(reactVisuallyHidden.VisuallyHidden, { children: label }) : label }) }) : null,
|
|
27
|
+
/* @__PURE__ */ jsxRuntime.jsxs(fieldBlock.FieldBlock.Column, { children: [
|
|
28
|
+
layout === "vertical" && label && !labelIsHidden ? /* @__PURE__ */ jsxRuntime.jsx(fieldBlock.FieldBlock.Label, { name, required, children: label }) : null,
|
|
29
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
30
|
+
select.Select,
|
|
31
|
+
{
|
|
32
|
+
"aria-label": labelIsHidden ? label : void 0,
|
|
33
|
+
name,
|
|
34
|
+
value,
|
|
35
|
+
onValueChange,
|
|
36
|
+
disabled,
|
|
37
|
+
children: [
|
|
38
|
+
/* @__PURE__ */ jsxRuntime.jsx(select.SelectTrigger, { size, children: /* @__PURE__ */ jsxRuntime.jsx(select.SelectValue, { placeholder }) }),
|
|
39
|
+
/* @__PURE__ */ jsxRuntime.jsx(select.SelectContent, { children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(select.SelectItem, { value: option.value, children: option.label }, option.value)) })
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
),
|
|
43
|
+
helpText && /* @__PURE__ */ jsxRuntime.jsx(fieldBlock.FieldBlock.HelpText, { children: helpText }),
|
|
44
|
+
errorMsg && /* @__PURE__ */ jsxRuntime.jsx(fieldBlock.FieldBlock.ErrorMsg, { children: errorMsg })
|
|
45
|
+
] })
|
|
46
|
+
] });
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
exports.SelectFieldBlock = SelectFieldBlock;
|
|
50
|
+
//# sourceMappingURL=select-field-block-BpXYm4K0.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select-field-block-BpXYm4K0.cjs","sources":["../src/ds/components/FormFieldBlocks/fields/select-field-block.tsx"],"sourcesContent":["import type { SelectTriggerProps } from '../../Select/select';\nimport { FieldBlock } from '../block/field-block';\nimport type { FieldBlockErrorMsgProps } from '../block/field-block-error-msg';\nimport type { FieldBlockHelpTextProps } from '../block/field-block-help-text';\nimport type { FieldBlockLabelProps } from '../block/field-block-label';\nimport type { FieldBlockLayoutProps } from '../block/field-block-layout';\nimport { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/ds/components/Select';\nimport { VisuallyHidden } from '@/ds/primitives/visually-hidden';\n\nexport type SelectFieldBlockProps = Pick<FieldBlockLayoutProps, 'layout' | 'labelColumnWidth'> &\n Pick<FieldBlockLabelProps, 'name' | 'required'> & {\n testId?: string;\n label?: string | null;\n labelIsHidden?: boolean;\n labelSize?: FieldBlockLabelProps['size'];\n disabled?: boolean;\n value?: string;\n options: { value: string; label: string }[];\n placeholder?: string;\n onValueChange: (value: string) => void;\n helpText?: FieldBlockHelpTextProps['children'];\n errorMsg?: FieldBlockErrorMsgProps['children'];\n error?: boolean;\n className?: string;\n size?: SelectTriggerProps['size'];\n };\n\nexport function SelectFieldBlock({\n name,\n helpText,\n errorMsg,\n required = false,\n disabled = false,\n size = 'md',\n value,\n label,\n labelIsHidden = false,\n layout = 'vertical',\n labelColumnWidth,\n options,\n placeholder = 'Select an option',\n onValueChange,\n className,\n}: SelectFieldBlockProps) {\n return (\n <FieldBlock.Layout layout={layout} labelColumnWidth={labelColumnWidth} className={className}>\n {layout === 'horizontal' ? (\n <FieldBlock.Column>\n <FieldBlock.Label name={name} required={required}>\n {labelIsHidden ? <VisuallyHidden>{label}</VisuallyHidden> : label}\n </FieldBlock.Label>\n </FieldBlock.Column>\n ) : null}\n <FieldBlock.Column>\n {layout === 'vertical' && label && !labelIsHidden ? (\n <FieldBlock.Label name={name} required={required}>\n {label}\n </FieldBlock.Label>\n ) : null}\n <Select\n aria-label={labelIsHidden ? label : undefined}\n name={name}\n value={value}\n onValueChange={onValueChange}\n disabled={disabled}\n >\n <SelectTrigger size={size}>\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent>\n {options.map(option => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {helpText && <FieldBlock.HelpText>{helpText}</FieldBlock.HelpText>}\n {errorMsg && <FieldBlock.ErrorMsg>{errorMsg}</FieldBlock.ErrorMsg>}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n );\n}\n"],"names":["FieldBlock","jsx","VisuallyHidden","jsxs","Select","SelectTrigger","SelectValue","SelectContent","SelectItem"],"mappings":";;;;;;;AA2BO,SAAS,gBAAA,CAAiB;AAAA,EAC/B,IAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA,GAAW,KAAA;AAAA,EACX,QAAA,GAAW,KAAA;AAAA,EACX,IAAA,GAAO,IAAA;AAAA,EACP,KAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA,GAAgB,KAAA;AAAA,EAChB,MAAA,GAAS,UAAA;AAAA,EACT,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA,GAAc,kBAAA;AAAA,EACd,aAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,uCACGA,qBAAA,CAAW,MAAA,EAAX,EAAkB,MAAA,EAAgB,kBAAoC,SAAA,EACpE,QAAA,EAAA;AAAA,IAAA,MAAA,KAAW,+BACVC,cAAA,CAACD,qBAAA,CAAW,QAAX,EACC,QAAA,kBAAAC,cAAA,CAACD,sBAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAC3B,0CAAgBC,cAAA,CAACC,kCAAA,EAAA,EAAgB,iBAAM,CAAA,GAAoB,KAAA,EAC9D,GACF,CAAA,GACE,IAAA;AAAA,oBACJC,eAAA,CAACH,qBAAA,CAAW,MAAA,EAAX,EACE,QAAA,EAAA;AAAA,MAAA,MAAA,KAAW,UAAA,IAAc,KAAA,IAAS,CAAC,aAAA,mBAClCC,cAAA,CAACD,qBAAA,CAAW,KAAA,EAAX,EAAiB,IAAA,EAAY,QAAA,EAC3B,QAAA,EAAA,KAAA,EACH,CAAA,GACE,IAAA;AAAA,sBACJG,eAAA;AAAA,QAACC,aAAA;AAAA,QAAA;AAAA,UACC,YAAA,EAAY,gBAAgB,KAAA,GAAQ,MAAA;AAAA,UACpC,IAAA;AAAA,UACA,KAAA;AAAA,UACA,aAAA;AAAA,UACA,QAAA;AAAA,UAEA,QAAA,EAAA;AAAA,4BAAAH,cAAA,CAACI,oBAAA,EAAA,EAAc,IAAA,EACb,QAAA,kBAAAJ,cAAA,CAACK,kBAAA,EAAA,EAAY,aAA0B,CAAA,EACzC,CAAA;AAAA,4BACAL,cAAA,CAACM,oBAAA,EAAA,EACE,QAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,4BACXN,cAAA,CAACO,iBAAA,EAAA,EAA8B,KAAA,EAAO,MAAA,CAAO,OAC1C,QAAA,EAAA,MAAA,CAAO,KAAA,EAAA,EADO,MAAA,CAAO,KAExB,CACD,CAAA,EACH;AAAA;AAAA;AAAA,OACF;AAAA,MACC,QAAA,oBAAYP,cAAA,CAACD,qBAAA,CAAW,QAAA,EAAX,EAAqB,QAAA,EAAA,QAAA,EAAS,CAAA;AAAA,MAC3C,QAAA,oBAAYC,cAAA,CAACD,qBAAA,CAAW,QAAA,EAAX,EAAqB,QAAA,EAAA,QAAA,EAAS;AAAA,KAAA,EAC9C;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { c as cn } from './utils-CzYGxqbG.js';
|
|
3
|
+
|
|
4
|
+
const Shimmer = ({ children, className }) => {
|
|
5
|
+
return /* @__PURE__ */ jsx(
|
|
6
|
+
"span",
|
|
7
|
+
{
|
|
8
|
+
className: cn("inline-block text-transparent", className),
|
|
9
|
+
style: {
|
|
10
|
+
backgroundImage: "linear-gradient(to right, var(--neutral3), var(--neutral6), var(--neutral3))",
|
|
11
|
+
backgroundSize: "200% 100%",
|
|
12
|
+
backgroundClip: "text",
|
|
13
|
+
WebkitBackgroundClip: "text",
|
|
14
|
+
animation: "shimmer-text 2s linear infinite"
|
|
15
|
+
},
|
|
16
|
+
children
|
|
17
|
+
}
|
|
18
|
+
);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { Shimmer as S };
|
|
22
|
+
//# sourceMappingURL=shimmer-CTVYNDBn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shimmer-CTVYNDBn.js","sources":["../src/ds/components/Shimmer/shimmer.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport interface ShimmerProps {\n children: ReactNode;\n className?: string;\n}\n\nexport const Shimmer = ({ children, className }: ShimmerProps) => {\n return (\n <span\n className={cn('inline-block text-transparent', className)}\n style={{\n backgroundImage: 'linear-gradient(to right, var(--neutral3), var(--neutral6), var(--neutral3))',\n backgroundSize: '200% 100%',\n backgroundClip: 'text',\n WebkitBackgroundClip: 'text',\n animation: 'shimmer-text 2s linear infinite',\n }}\n >\n {children}\n </span>\n );\n};\n"],"names":[],"mappings":";;;AASO,MAAM,OAAA,GAAU,CAAC,EAAE,QAAA,EAAU,WAAU,KAAoB;AAChE,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,MACxD,KAAA,EAAO;AAAA,QACL,eAAA,EAAiB,8EAAA;AAAA,QACjB,cAAA,EAAgB,WAAA;AAAA,QAChB,cAAA,EAAgB,MAAA;AAAA,QAChB,oBAAA,EAAsB,MAAA;AAAA,QACtB,SAAA,EAAW;AAAA,OACb;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;;;;"}
|