@health-samurai/react-components 0.0.0-alpha.2 → 0.0.0-alpha.21
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/LICENSE +21 -0
- package/README.md +102 -1
- package/dist/bundle.css +2349 -754
- package/dist/src/components/button-dropdown.d.ts +10 -0
- package/dist/src/components/button-dropdown.d.ts.map +1 -0
- package/dist/src/components/button-dropdown.js +70 -0
- package/dist/src/components/button-dropdown.js.map +1 -0
- package/dist/src/components/button-dropdown.stories.js +48 -0
- package/dist/src/components/button-dropdown.stories.js.map +1 -0
- package/dist/src/components/code-editor/fhir-autocomplete.d.ts +70 -0
- package/dist/src/components/code-editor/fhir-autocomplete.d.ts.map +1 -0
- package/dist/src/components/code-editor/fhir-autocomplete.js +1850 -0
- package/dist/src/components/code-editor/fhir-autocomplete.js.map +1 -0
- package/dist/src/components/code-editor/fhir-autocomplete.test.js +1099 -0
- package/dist/src/components/code-editor/fhir-autocomplete.test.js.map +1 -0
- package/dist/src/components/code-editor/http/grammar/http.d.ts +3 -0
- package/dist/src/components/code-editor/http/grammar/http.d.ts.map +1 -0
- package/dist/src/components/code-editor/http/grammar/http.grammar +74 -0
- package/dist/src/components/code-editor/http/grammar/http.js +38 -0
- package/dist/src/components/code-editor/http/grammar/http.js.map +1 -0
- package/dist/src/components/code-editor/http/grammar/http.terms.d.ts +2 -0
- package/dist/src/components/code-editor/http/grammar/http.terms.d.ts.map +1 -0
- package/dist/src/components/code-editor/http/grammar/http.terms.js +4 -0
- package/dist/src/components/code-editor/http/grammar/http.terms.js.map +1 -0
- package/dist/src/components/code-editor/http/grammar/http.test.js +80 -0
- package/dist/src/components/code-editor/http/grammar/http.test.js.map +1 -0
- package/dist/src/components/code-editor/http/index.d.ts +12 -0
- package/dist/src/components/code-editor/http/index.d.ts.map +1 -0
- package/dist/src/components/code-editor/http/index.js +486 -0
- package/dist/src/components/code-editor/http/index.js.map +1 -0
- package/dist/src/components/code-editor/index.d.ts +39 -1
- package/dist/src/components/code-editor/index.d.ts.map +1 -1
- package/dist/src/components/code-editor/index.js +1792 -45
- package/dist/src/components/code-editor/index.js.map +1 -1
- package/dist/src/components/code-editor/json-ast.d.ts +46 -0
- package/dist/src/components/code-editor/json-ast.d.ts.map +1 -0
- package/dist/src/components/code-editor/json-ast.js +465 -0
- package/dist/src/components/code-editor/json-ast.js.map +1 -0
- package/dist/src/components/code-editor/json-ast.test.js +206 -0
- package/dist/src/components/code-editor/json-ast.test.js.map +1 -0
- package/dist/src/components/code-editor/sql-completion.d.ts +22 -0
- package/dist/src/components/code-editor/sql-completion.d.ts.map +1 -0
- package/dist/src/components/code-editor/sql-completion.js +897 -0
- package/dist/src/components/code-editor/sql-completion.js.map +1 -0
- package/dist/src/components/code-editor.stories.js +280 -3
- package/dist/src/components/code-editor.stories.js.map +1 -1
- package/dist/src/components/copy-icon.d.ts +5 -1
- package/dist/src/components/copy-icon.d.ts.map +1 -1
- package/dist/src/components/copy-icon.js +41 -3
- package/dist/src/components/copy-icon.js.map +1 -1
- package/dist/src/components/data-table.d.ts +9 -0
- package/dist/src/components/data-table.d.ts.map +1 -0
- package/dist/src/components/data-table.js +66 -0
- package/dist/src/components/data-table.js.map +1 -0
- package/dist/src/components/data-table.stories.js +240 -0
- package/dist/src/components/data-table.stories.js.map +1 -0
- package/dist/src/components/date-picker-input.d.ts +10 -0
- package/dist/src/components/date-picker-input.d.ts.map +1 -0
- package/dist/src/components/date-picker-input.js +90 -0
- package/dist/src/components/date-picker-input.js.map +1 -0
- package/dist/src/components/date-picker-input.stories.js +76 -0
- package/dist/src/components/date-picker-input.stories.js.map +1 -0
- package/dist/src/components/fhir-structure-view.d.ts +34 -0
- package/dist/src/components/fhir-structure-view.d.ts.map +1 -0
- package/dist/src/components/fhir-structure-view.js +230 -0
- package/dist/src/components/fhir-structure-view.js.map +1 -0
- package/dist/src/components/fhir-structure-view.stories.js +447 -0
- package/dist/src/components/fhir-structure-view.stories.js.map +1 -0
- package/dist/src/components/icon-button.d.ts +12 -0
- package/dist/src/components/icon-button.d.ts.map +1 -0
- package/dist/src/components/icon-button.js +41 -0
- package/dist/src/components/icon-button.js.map +1 -0
- package/dist/src/components/icon-button.stories.js +157 -0
- package/dist/src/components/icon-button.stories.js.map +1 -0
- package/dist/src/components/operation-outcome-view.d.ts +27 -0
- package/dist/src/components/operation-outcome-view.d.ts.map +1 -0
- package/dist/src/components/operation-outcome-view.js +198 -0
- package/dist/src/components/operation-outcome-view.js.map +1 -0
- package/dist/src/components/operation-outcome-view.stories.js +207 -0
- package/dist/src/components/operation-outcome-view.stories.js.map +1 -0
- package/dist/src/components/request-line-editor.d.ts +13 -35
- package/dist/src/components/request-line-editor.d.ts.map +1 -1
- package/dist/src/components/request-line-editor.js +73 -49
- package/dist/src/components/request-line-editor.js.map +1 -1
- package/dist/src/components/request-line-editor.stories.js +17 -53
- package/dist/src/components/request-line-editor.stories.js.map +1 -1
- package/dist/src/components/sandbox.d.ts +13 -0
- package/dist/src/components/sandbox.d.ts.map +1 -0
- package/dist/src/components/sandbox.js +107 -0
- package/dist/src/components/sandbox.js.map +1 -0
- package/dist/src/components/sandbox.stories.js +126 -0
- package/dist/src/components/sandbox.stories.js.map +1 -0
- package/dist/src/components/segment-control.d.ts +13 -0
- package/dist/src/components/segment-control.d.ts.map +1 -0
- package/dist/src/components/segment-control.js +33 -0
- package/dist/src/components/segment-control.js.map +1 -0
- package/dist/src/components/segment-control.stories.js +68 -0
- package/dist/src/components/segment-control.stories.js.map +1 -0
- package/dist/src/components/split-button.d.ts +12 -0
- package/dist/src/components/split-button.d.ts.map +1 -0
- package/dist/src/components/split-button.js +33 -0
- package/dist/src/components/split-button.js.map +1 -0
- package/dist/src/components/split-button.stories.js +84 -0
- package/dist/src/components/split-button.stories.js.map +1 -0
- package/dist/src/components/tag.d.ts +16 -0
- package/dist/src/components/tag.d.ts.map +1 -0
- package/dist/src/components/tag.js +198 -0
- package/dist/src/components/tag.js.map +1 -0
- package/dist/src/components/tag.stories.js +459 -0
- package/dist/src/components/tag.stories.js.map +1 -0
- package/dist/src/components/tile.d.ts +15 -0
- package/dist/src/components/tile.d.ts.map +1 -0
- package/dist/src/components/tile.js +76 -0
- package/dist/src/components/tile.js.map +1 -0
- package/dist/src/components/tile.stories.js +167 -0
- package/dist/src/components/tile.stories.js.map +1 -0
- package/dist/src/components/toolbar.d.ts +18 -0
- package/dist/src/components/toolbar.d.ts.map +1 -0
- package/dist/src/components/toolbar.js +61 -0
- package/dist/src/components/toolbar.js.map +1 -0
- package/dist/src/components/toolbar.stories.js +69 -0
- package/dist/src/components/toolbar.stories.js.map +1 -0
- package/dist/src/components/tree-view.d.ts +47 -0
- package/dist/src/components/tree-view.d.ts.map +1 -0
- package/dist/src/components/tree-view.js +122 -0
- package/dist/src/components/tree-view.js.map +1 -0
- package/dist/src/components/tree-view.stories.js +283 -0
- package/dist/src/components/tree-view.stories.js.map +1 -0
- package/dist/src/icons.d.ts +11 -0
- package/dist/src/icons.d.ts.map +1 -0
- package/dist/src/icons.js +328 -0
- package/dist/src/icons.js.map +1 -0
- package/dist/src/index.css +358 -74
- package/dist/src/index.d.ts +17 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +17 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/shadcn/components/ui/accordion.d.ts +2 -2
- package/dist/src/shadcn/components/ui/accordion.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/accordion.js +35 -9
- package/dist/src/shadcn/components/ui/accordion.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert-dialog.d.ts +12 -4
- package/dist/src/shadcn/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/alert-dialog.js +128 -18
- package/dist/src/shadcn/components/ui/alert-dialog.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert-dialog.stories.js +269 -19
- package/dist/src/shadcn/components/ui/alert-dialog.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert.d.ts +29 -6
- package/dist/src/shadcn/components/ui/alert.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/alert.js +50 -19
- package/dist/src/shadcn/components/ui/alert.js.map +1 -1
- package/dist/src/shadcn/components/ui/alert.stories.js +140 -36
- package/dist/src/shadcn/components/ui/alert.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/aspect-ratio.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/aspect-ratio.js +1 -0
- package/dist/src/shadcn/components/ui/aspect-ratio.js.map +1 -1
- package/dist/src/shadcn/components/ui/avatar.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/avatar.js +4 -3
- package/dist/src/shadcn/components/ui/avatar.js.map +1 -1
- package/dist/src/shadcn/components/ui/avatar.stories.js +68 -2
- package/dist/src/shadcn/components/ui/avatar.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/badge.d.ts +1 -1
- package/dist/src/shadcn/components/ui/badge.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/badge.js +16 -5
- package/dist/src/shadcn/components/ui/badge.js.map +1 -1
- package/dist/src/shadcn/components/ui/breadcrumb.d.ts +5 -2
- package/dist/src/shadcn/components/ui/breadcrumb.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/breadcrumb.js +98 -13
- package/dist/src/shadcn/components/ui/breadcrumb.js.map +1 -1
- package/dist/src/shadcn/components/ui/breadcrumb.stories.js +205 -45
- package/dist/src/shadcn/components/ui/breadcrumb.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/button.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/button.js +65 -11
- package/dist/src/shadcn/components/ui/button.js.map +1 -1
- package/dist/src/shadcn/components/ui/button.stories.js +99 -17
- package/dist/src/shadcn/components/ui/button.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/calendar.d.ts +1 -1
- package/dist/src/shadcn/components/ui/calendar.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/calendar.js +1 -0
- package/dist/src/shadcn/components/ui/calendar.js.map +1 -1
- package/dist/src/shadcn/components/ui/card.d.ts +5 -1
- package/dist/src/shadcn/components/ui/card.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/card.js +28 -7
- package/dist/src/shadcn/components/ui/card.js.map +1 -1
- package/dist/src/shadcn/components/ui/card.stories.js +23 -2
- package/dist/src/shadcn/components/ui/card.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/carousel.d.ts +1 -1
- package/dist/src/shadcn/components/ui/carousel.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/carousel.js +1 -0
- package/dist/src/shadcn/components/ui/carousel.js.map +1 -1
- package/dist/src/shadcn/components/ui/chart.d.ts +5 -5
- package/dist/src/shadcn/components/ui/chart.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/chart.js +4 -3
- package/dist/src/shadcn/components/ui/chart.js.map +1 -1
- package/dist/src/shadcn/components/ui/checkbox.d.ts +5 -1
- package/dist/src/shadcn/components/ui/checkbox.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/checkbox.js +46 -6
- package/dist/src/shadcn/components/ui/checkbox.js.map +1 -1
- package/dist/src/shadcn/components/ui/checkbox.stories.js +156 -46
- package/dist/src/shadcn/components/ui/checkbox.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/combobox.d.ts +29 -0
- package/dist/src/shadcn/components/ui/combobox.d.ts.map +1 -0
- package/dist/src/shadcn/components/ui/combobox.js +226 -0
- package/dist/src/shadcn/components/ui/combobox.js.map +1 -0
- package/dist/src/shadcn/components/ui/combobox.stories.js +167 -0
- package/dist/src/shadcn/components/ui/combobox.stories.js.map +1 -0
- package/dist/src/shadcn/components/ui/command.d.ts +4 -2
- package/dist/src/shadcn/components/ui/command.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/command.js +75 -13
- package/dist/src/shadcn/components/ui/command.js.map +1 -1
- package/dist/src/shadcn/components/ui/command.stories.js +277 -57
- package/dist/src/shadcn/components/ui/command.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/context-menu.d.ts +7 -3
- package/dist/src/shadcn/components/ui/context-menu.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/context-menu.js +120 -13
- package/dist/src/shadcn/components/ui/context-menu.js.map +1 -1
- package/dist/src/shadcn/components/ui/dialog.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/dialog.js +35 -7
- package/dist/src/shadcn/components/ui/dialog.js.map +1 -1
- package/dist/src/shadcn/components/ui/drawer.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/drawer.js +27 -5
- package/dist/src/shadcn/components/ui/drawer.js.map +1 -1
- package/dist/src/shadcn/components/ui/dropdown-menu.d.ts +7 -3
- package/dist/src/shadcn/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/dropdown-menu.js +122 -14
- package/dist/src/shadcn/components/ui/dropdown-menu.js.map +1 -1
- package/dist/src/shadcn/components/ui/dropdown-menu.stories.js +22 -5
- package/dist/src/shadcn/components/ui/dropdown-menu.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/form.d.ts +2 -2
- package/dist/src/shadcn/components/ui/form.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/form.js +17 -8
- package/dist/src/shadcn/components/ui/form.js.map +1 -1
- package/dist/src/shadcn/components/ui/hover-card.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/hover-card.js +2 -1
- package/dist/src/shadcn/components/ui/hover-card.js.map +1 -1
- package/dist/src/shadcn/components/ui/input-otp.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/input-otp.js +1 -0
- package/dist/src/shadcn/components/ui/input-otp.js.map +1 -1
- package/dist/src/shadcn/components/ui/input.d.ts +3 -1
- package/dist/src/shadcn/components/ui/input.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/input.js +126 -17
- package/dist/src/shadcn/components/ui/input.js.map +1 -1
- package/dist/src/shadcn/components/ui/input.stories.js +218 -29
- package/dist/src/shadcn/components/ui/input.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/label.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/label.js +9 -1
- package/dist/src/shadcn/components/ui/label.js.map +1 -1
- package/dist/src/shadcn/components/ui/menubar.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/menubar.js +35 -13
- package/dist/src/shadcn/components/ui/menubar.js.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.d.ts +9 -2
- package/dist/src/shadcn/components/ui/pagination.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.js +41 -24
- package/dist/src/shadcn/components/ui/pagination.js.map +1 -1
- package/dist/src/shadcn/components/ui/pagination.stories.js +44 -37
- package/dist/src/shadcn/components/ui/pagination.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/popover.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/popover.js +13 -1
- package/dist/src/shadcn/components/ui/popover.js.map +1 -1
- package/dist/src/shadcn/components/ui/progress.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/progress.js +6 -2
- package/dist/src/shadcn/components/ui/progress.js.map +1 -1
- package/dist/src/shadcn/components/ui/radio-button-group.d.ts +21 -0
- package/dist/src/shadcn/components/ui/radio-button-group.d.ts.map +1 -0
- package/dist/src/shadcn/components/ui/radio-button-group.js +148 -0
- package/dist/src/shadcn/components/ui/radio-button-group.js.map +1 -0
- package/dist/src/shadcn/components/ui/radio-button-group.stories.js +283 -0
- package/dist/src/shadcn/components/ui/radio-button-group.stories.js.map +1 -0
- package/dist/src/shadcn/components/ui/radio-group.d.ts +5 -1
- package/dist/src/shadcn/components/ui/radio-group.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/radio-group.js +40 -7
- package/dist/src/shadcn/components/ui/radio-group.js.map +1 -1
- package/dist/src/shadcn/components/ui/radio-group.stories.js +107 -32
- package/dist/src/shadcn/components/ui/radio-group.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/resizable.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/resizable.js +2 -1
- package/dist/src/shadcn/components/ui/resizable.js.map +1 -1
- package/dist/src/shadcn/components/ui/resizable.stories.js +2 -2
- package/dist/src/shadcn/components/ui/resizable.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/scroll-area.js +10 -3
- package/dist/src/shadcn/components/ui/scroll-area.js.map +1 -1
- package/dist/src/shadcn/components/ui/select.d.ts +1 -2
- package/dist/src/shadcn/components/ui/select.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/select.js +49 -19
- package/dist/src/shadcn/components/ui/select.js.map +1 -1
- package/dist/src/shadcn/components/ui/select.stories.js +193 -70
- package/dist/src/shadcn/components/ui/select.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/separator.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/separator.js +8 -1
- package/dist/src/shadcn/components/ui/separator.js.map +1 -1
- package/dist/src/shadcn/components/ui/sheet.js +1 -1
- package/dist/src/shadcn/components/ui/sheet.js.map +1 -1
- package/dist/src/shadcn/components/ui/sidebar.d.ts +4 -4
- package/dist/src/shadcn/components/ui/sidebar.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/sidebar.js +21 -6
- package/dist/src/shadcn/components/ui/sidebar.js.map +1 -1
- package/dist/src/shadcn/components/ui/skeleton.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/skeleton.js +3 -1
- package/dist/src/shadcn/components/ui/skeleton.js.map +1 -1
- package/dist/src/shadcn/components/ui/slider.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/slider.js +35 -4
- package/dist/src/shadcn/components/ui/slider.js.map +1 -1
- package/dist/src/shadcn/components/ui/sonner.d.ts +24 -2
- package/dist/src/shadcn/components/ui/sonner.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/sonner.js +127 -9
- package/dist/src/shadcn/components/ui/sonner.js.map +1 -1
- package/dist/src/shadcn/components/ui/sonner.stories.js +251 -12
- package/dist/src/shadcn/components/ui/sonner.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/switch.d.ts +7 -1
- package/dist/src/shadcn/components/ui/switch.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/switch.js +55 -3
- package/dist/src/shadcn/components/ui/switch.js.map +1 -1
- package/dist/src/shadcn/components/ui/switch.stories.js +84 -9
- package/dist/src/shadcn/components/ui/switch.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/table.d.ts +23 -6
- package/dist/src/shadcn/components/ui/table.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/table.js +65 -20
- package/dist/src/shadcn/components/ui/table.js.map +1 -1
- package/dist/src/shadcn/components/ui/table.stories.js +217 -97
- package/dist/src/shadcn/components/ui/table.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.d.ts +30 -5
- package/dist/src/shadcn/components/ui/tabs.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.js +470 -23
- package/dist/src/shadcn/components/ui/tabs.js.map +1 -1
- package/dist/src/shadcn/components/ui/tabs.stories.js +405 -181
- package/dist/src/shadcn/components/ui/tabs.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/textarea.d.ts +8 -1
- package/dist/src/shadcn/components/ui/textarea.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/textarea.js +30 -2
- package/dist/src/shadcn/components/ui/textarea.js.map +1 -1
- package/dist/src/shadcn/components/ui/textarea.stories.js +85 -4
- package/dist/src/shadcn/components/ui/textarea.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle-group.d.ts +3 -3
- package/dist/src/shadcn/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/toggle-group.js +14 -12
- package/dist/src/shadcn/components/ui/toggle-group.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle.d.ts +3 -4
- package/dist/src/shadcn/components/ui/toggle.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/toggle.js +44 -16
- package/dist/src/shadcn/components/ui/toggle.js.map +1 -1
- package/dist/src/shadcn/components/ui/toggle.stories.js +130 -7
- package/dist/src/shadcn/components/ui/toggle.stories.js.map +1 -1
- package/dist/src/shadcn/components/ui/tooltip.d.ts.map +1 -1
- package/dist/src/shadcn/components/ui/tooltip.js +12 -1
- package/dist/src/shadcn/components/ui/tooltip.js.map +1 -1
- package/dist/src/shadcn/components/ui/tree.d.ts +29 -0
- package/dist/src/shadcn/components/ui/tree.d.ts.map +1 -0
- package/dist/src/shadcn/components/ui/tree.js +135 -0
- package/dist/src/shadcn/components/ui/tree.js.map +1 -0
- package/dist/src/shadcn/shadcn.css +4 -4
- package/dist/src/tokens.css +50 -20
- package/dist/src/typography.css +78 -15
- package/package.json +84 -64
- package/src/components/button-dropdown.stories.tsx +41 -0
- package/src/components/button-dropdown.tsx +97 -0
- package/src/components/code-editor/fhir-autocomplete.test.ts +993 -0
- package/src/components/code-editor/fhir-autocomplete.ts +2322 -0
- package/src/components/code-editor/http/grammar/http.grammar +74 -0
- package/src/components/code-editor/http/grammar/http.terms.ts +9 -0
- package/src/components/code-editor/http/grammar/http.test.ts +110 -0
- package/src/components/code-editor/http/grammar/http.ts +21 -0
- package/src/components/code-editor/http/index.ts +424 -0
- package/src/components/code-editor/index.tsx +1944 -42
- package/src/components/code-editor/json-ast.test.ts +230 -0
- package/src/components/code-editor/json-ast.ts +590 -0
- package/src/components/code-editor/sql-completion.ts +1112 -0
- package/src/components/code-editor.stories.tsx +325 -2
- package/src/components/copy-icon.tsx +57 -3
- package/src/components/data-table.stories.tsx +91 -0
- package/src/components/data-table.tsx +126 -0
- package/src/components/date-picker-input.stories.tsx +79 -0
- package/src/components/date-picker-input.tsx +104 -0
- package/src/components/fhir-structure-view.stories.tsx +439 -0
- package/src/components/fhir-structure-view.tsx +233 -0
- package/src/components/icon-button.stories.tsx +86 -0
- package/src/components/icon-button.tsx +57 -0
- package/src/components/operation-outcome-view.stories.tsx +163 -0
- package/src/components/operation-outcome-view.tsx +254 -0
- package/src/components/request-line-editor.stories.tsx +17 -27
- package/src/components/request-line-editor.tsx +103 -61
- package/src/components/sandbox.stories.tsx +131 -0
- package/src/components/sandbox.tsx +191 -0
- package/src/components/segment-control.stories.tsx +61 -0
- package/src/components/segment-control.tsx +83 -0
- package/src/components/split-button.stories.tsx +68 -0
- package/src/components/split-button.tsx +74 -0
- package/src/components/tag.stories.tsx +371 -0
- package/src/components/tag.tsx +236 -0
- package/src/components/tile.stories.tsx +149 -0
- package/src/components/tile.tsx +105 -0
- package/src/components/toolbar.stories.tsx +64 -0
- package/src/components/toolbar.tsx +98 -0
- package/src/components/tree-view.stories.tsx +265 -0
- package/src/components/tree-view.tsx +246 -0
- package/src/icons.tsx +331 -0
- package/src/index.css +358 -74
- package/src/index.tsx +17 -3
- package/src/shadcn/components/ui/accordion.tsx +91 -10
- package/src/shadcn/components/ui/alert-dialog.stories.tsx +209 -15
- package/src/shadcn/components/ui/alert-dialog.tsx +236 -26
- package/src/shadcn/components/ui/alert.stories.tsx +120 -21
- package/src/shadcn/components/ui/alert.tsx +125 -28
- package/src/shadcn/components/ui/aspect-ratio.tsx +1 -0
- package/src/shadcn/components/ui/avatar.stories.tsx +74 -1
- package/src/shadcn/components/ui/avatar.tsx +22 -6
- package/src/shadcn/components/ui/badge.tsx +67 -18
- package/src/shadcn/components/ui/breadcrumb.stories.tsx +161 -41
- package/src/shadcn/components/ui/breadcrumb.tsx +172 -23
- package/src/shadcn/components/ui/button.stories.tsx +106 -18
- package/src/shadcn/components/ui/button.tsx +151 -55
- package/src/shadcn/components/ui/calendar.tsx +1 -0
- package/src/shadcn/components/ui/card.stories.tsx +17 -3
- package/src/shadcn/components/ui/card.tsx +89 -14
- package/src/shadcn/components/ui/carousel.tsx +1 -0
- package/src/shadcn/components/ui/chart.tsx +9 -5
- package/src/shadcn/components/ui/checkbox.stories.tsx +78 -30
- package/src/shadcn/components/ui/checkbox.tsx +91 -8
- package/src/shadcn/components/ui/combobox.stories.tsx +148 -0
- package/src/shadcn/components/ui/combobox.tsx +324 -0
- package/src/shadcn/components/ui/command.stories.tsx +184 -39
- package/src/shadcn/components/ui/command.tsx +218 -37
- package/src/shadcn/components/ui/context-menu.tsx +333 -40
- package/src/shadcn/components/ui/dialog.tsx +101 -13
- package/src/shadcn/components/ui/drawer.tsx +94 -18
- package/src/shadcn/components/ui/dropdown-menu.stories.tsx +18 -2
- package/src/shadcn/components/ui/dropdown-menu.tsx +334 -68
- package/src/shadcn/components/ui/form.tsx +22 -11
- package/src/shadcn/components/ui/hover-card.tsx +2 -1
- package/src/shadcn/components/ui/input-otp.tsx +1 -0
- package/src/shadcn/components/ui/input.stories.tsx +235 -27
- package/src/shadcn/components/ui/input.tsx +400 -29
- package/src/shadcn/components/ui/label.tsx +22 -4
- package/src/shadcn/components/ui/menubar.tsx +188 -43
- package/src/shadcn/components/ui/pagination.stories.tsx +8 -2
- package/src/shadcn/components/ui/pagination.tsx +65 -8
- package/src/shadcn/components/ui/popover.tsx +36 -4
- package/src/shadcn/components/ui/progress.tsx +21 -5
- package/src/shadcn/components/ui/radio-button-group.stories.tsx +247 -0
- package/src/shadcn/components/ui/radio-button-group.tsx +188 -0
- package/src/shadcn/components/ui/radio-group.stories.tsx +70 -14
- package/src/shadcn/components/ui/radio-group.tsx +85 -9
- package/src/shadcn/components/ui/resizable.stories.tsx +2 -2
- package/src/shadcn/components/ui/resizable.tsx +2 -1
- package/src/shadcn/components/ui/scroll-area.tsx +34 -5
- package/src/shadcn/components/ui/select.stories.tsx +108 -32
- package/src/shadcn/components/ui/select.tsx +182 -36
- package/src/shadcn/components/ui/separator.tsx +16 -5
- package/src/shadcn/components/ui/sheet.tsx +1 -1
- package/src/shadcn/components/ui/sidebar.tsx +69 -26
- package/src/shadcn/components/ui/skeleton.tsx +4 -1
- package/src/shadcn/components/ui/slider.tsx +83 -11
- package/src/shadcn/components/ui/sonner.stories.tsx +238 -17
- package/src/shadcn/components/ui/sonner.tsx +254 -11
- package/src/shadcn/components/ui/switch.stories.tsx +52 -5
- package/src/shadcn/components/ui/switch.tsx +92 -7
- package/src/shadcn/components/ui/table.stories.tsx +252 -72
- package/src/shadcn/components/ui/table.tsx +204 -26
- package/src/shadcn/components/ui/tabs.stories.tsx +235 -123
- package/src/shadcn/components/ui/tabs.tsx +694 -36
- package/src/shadcn/components/ui/textarea.stories.tsx +94 -2
- package/src/shadcn/components/ui/textarea.tsx +70 -5
- package/src/shadcn/components/ui/toggle-group.tsx +35 -13
- package/src/shadcn/components/ui/toggle.stories.tsx +92 -5
- package/src/shadcn/components/ui/toggle.tsx +96 -23
- package/src/shadcn/components/ui/tooltip.tsx +34 -8
- package/src/shadcn/components/ui/tree.tsx +257 -0
- package/src/shadcn/shadcn.css +4 -4
- package/src/tokens.css +50 -20
- package/src/typography.css +78 -15
- package/dist/src/components/code-editor.stories.d.ts +0 -7
- package/dist/src/components/code-editor.stories.d.ts.map +0 -1
- package/dist/src/components/request-line-editor.stories.d.ts +0 -11
- package/dist/src/components/request-line-editor.stories.d.ts.map +0 -1
- package/dist/src/index.stories.d.ts +0 -14
- package/dist/src/index.stories.d.ts.map +0 -1
- package/dist/src/index.stories.js +0 -19
- package/dist/src/index.stories.js.map +0 -1
- package/dist/src/shadcn/components/ui/accordion.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/accordion.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/alert-dialog.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/alert-dialog.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/alert.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/alert.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/aspect-ratio.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/aspect-ratio.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/avatar.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/avatar.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/badge.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/badge.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/breadcrumb.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/breadcrumb.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/button.stories.d.ts +0 -23
- package/dist/src/shadcn/components/ui/button.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/calendar.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/calendar.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/card.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/card.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/carousel.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/carousel.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/chart.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/chart.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/checkbox.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/checkbox.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/collapsible.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/collapsible.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/command.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/command.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/context-menu.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/context-menu.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/dialog.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/dialog.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/drawer.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/drawer.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/dropdown-menu.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/dropdown-menu.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/form.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/form.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/hover-card.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/hover-card.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/input-otp.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/input-otp.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/input.stories.d.ts +0 -18
- package/dist/src/shadcn/components/ui/input.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/label.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/label.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/menubar.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/menubar.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/navigation-menu.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/navigation-menu.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/pagination.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/pagination.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/popover.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/popover.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/progress.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/progress.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/radio-group.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/radio-group.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/resizable.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/resizable.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/scroll-area.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/scroll-area.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/select.stories.d.ts +0 -11
- package/dist/src/shadcn/components/ui/select.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/separator.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/separator.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/sheet.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/sheet.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/sidebar.stories.d.ts +0 -11
- package/dist/src/shadcn/components/ui/sidebar.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/skeleton.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/skeleton.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/slider.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/slider.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/sonner.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/sonner.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/switch.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/switch.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/table.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/table.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/tabs.stories.d.ts +0 -32
- package/dist/src/shadcn/components/ui/tabs.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/textarea.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/textarea.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/toggle-group.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/toggle-group.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/toggle.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/toggle.stories.d.ts.map +0 -1
- package/dist/src/shadcn/components/ui/tooltip.stories.d.ts +0 -8
- package/dist/src/shadcn/components/ui/tooltip.stories.d.ts.map +0 -1
- package/src/index.stories.tsx +0 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/shadcn/components/ui/sidebar.tsx"],"sourcesContent":["import { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { Button } from \"#shadcn/components/ui/button\";\nimport { Input } from \"#shadcn/components/ui/input\";\nimport { Separator } from \"#shadcn/components/ui/separator\";\nimport {\n\tSheet,\n\tSheetContent,\n\tSheetDescription,\n\tSheetHeader,\n\tSheetTitle,\n} from \"#shadcn/components/ui/sheet\";\nimport { Skeleton } from \"#shadcn/components/ui/skeleton\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipProvider,\n\tTooltipTrigger,\n} from \"#shadcn/components/ui/tooltip\";\nimport { useIsMobile } from \"#shadcn/hooks/use-mobile\";\nimport { cn } from \"#shadcn/lib/utils\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"13.75rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3.125rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n\tstate: \"expanded\" | \"collapsed\";\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\topenMobile: boolean;\n\tsetOpenMobile: (open: boolean) => void;\n\tisMobile: boolean;\n\ttoggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n\tconst context = React.useContext(SidebarContext);\n\tif (!context) {\n\t\tthrow new Error(\"useSidebar must be used within a SidebarProvider.\");\n\t}\n\n\treturn context;\n}\n\nfunction SidebarProvider({\n\tdefaultOpen = true,\n\topen: openProp,\n\tonOpenChange: setOpenProp,\n\tclassName,\n\tstyle,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}) {\n\tconst isMobile = useIsMobile();\n\tconst [openMobile, setOpenMobile] = React.useState(false);\n\n\t// This is the internal state of the sidebar.\n\t// We use openProp and setOpenProp for control from outside the component.\n\tconst [_open, _setOpen] = React.useState(defaultOpen);\n\tconst open = openProp ?? _open;\n\tconst setOpen = React.useCallback(\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\n\t\t\tconst openState = typeof value === \"function\" ? value(open) : value;\n\t\t\tif (setOpenProp) {\n\t\t\t\tsetOpenProp(openState);\n\t\t\t} else {\n\t\t\t\t_setOpen(openState);\n\t\t\t}\n\n\t\t\t// This sets the cookie to keep the sidebar state.\n\t\t\t// biome-ignore lint/suspicious/noDocumentCookie: FIXME: unchanged shadcn\n\t\t\tdocument.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n\t\t},\n\t\t[setOpenProp, open],\n\t);\n\n\t// Helper to toggle the sidebar.\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: FIXME: unchanged shadcn\n\tconst toggleSidebar = React.useCallback(() => {\n\t\treturn isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n\t}, [isMobile, setOpen, setOpenMobile]);\n\n\t// Adds a keyboard shortcut to toggle the sidebar.\n\tReact.useEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (\n\t\t\t\tevent.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n\t\t\t\t(event.metaKey || event.ctrlKey)\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttoggleSidebar();\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\n\t\treturn () => window.removeEventListener(\"keydown\", handleKeyDown);\n\t}, [toggleSidebar]);\n\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n\t// This makes it easier to style the sidebar with Tailwind classes.\n\tconst state = open ? \"expanded\" : \"collapsed\";\n\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: FIXME: unchanged shadcn\n\tconst contextValue = React.useMemo<SidebarContextProps>(\n\t\t() => ({\n\t\t\tstate,\n\t\t\topen,\n\t\t\tsetOpen,\n\t\t\tisMobile,\n\t\t\topenMobile,\n\t\t\tsetOpenMobile,\n\t\t\ttoggleSidebar,\n\t\t}),\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n\t);\n\n\treturn (\n\t\t<SidebarContext.Provider value={contextValue}>\n\t\t\t<TooltipProvider delayDuration={0}>\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"sidebar-wrapper\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH,\n\t\t\t\t\t\t\t\"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full box-content\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</TooltipProvider>\n\t\t</SidebarContext.Provider>\n\t);\n}\n\nfunction Sidebar({\n\tside = \"left\",\n\tvariant = \"sidebar\",\n\tcollapsible = \"offcanvas\",\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tside?: \"left\" | \"right\";\n\tvariant?: \"sidebar\" | \"floating\" | \"inset\";\n\tcollapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}) {\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n\tif (collapsible === \"none\") {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (isMobile) {\n\t\treturn (\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t<SheetContent\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\tclassName=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t<SheetTitle>Sidebar</SheetTitle>\n\t\t\t\t\t\t<SheetDescription>Displays the mobile sidebar.</SheetDescription>\n\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t</SheetContent>\n\t\t\t</Sheet>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"group peer text-sidebar-foreground hidden md:block\"\n\t\t\tdata-state={state}\n\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t\tdata-slot=\"sidebar\"\n\t\t>\n\t\t\t{/* This is what handles the sidebar gap on desktop */}\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-gap\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"relative w-(--sidebar-width) bg-transparent transition-[width] duration-120 ease-linear\",\n\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\n\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-container\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-120 ease-linear md:flex box-content\",\n\t\t\t\t\tside === \"left\"\n\t\t\t\t\t\t? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n\t\t\t\t\t\t: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n\t\t\t\t\t// Adjust the padding for floating and inset variants.\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar-inner\"\n\t\t\t\t\tclassName=\"bg-bg-primary group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction SidebarTrigger({\n\tclassName,\n\tonClick,\n\t...props\n}: React.ComponentProps<typeof Button>) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<Button\n\t\t\tdata-sidebar=\"trigger\"\n\t\t\tdata-slot=\"sidebar-trigger\"\n\t\t\tvariant=\"ghost\"\n\t\t\tsize=\"small\"\n\t\t\tclassName={cn(\"size-7\", className)}\n\t\t\tonClick={(event) => {\n\t\t\t\tonClick?.(event);\n\t\t\t\ttoggleSidebar();\n\t\t\t}}\n\t\t\t{...props}\n\t\t>\n\t\t\t<PanelLeftIcon />\n\t\t\t<span className=\"sr-only\">Toggle Sidebar</span>\n\t\t</Button>\n\t);\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<button\n\t\t\tdata-sidebar=\"rail\"\n\t\t\tdata-slot=\"sidebar-rail\"\n\t\t\taria-label=\"Toggle Sidebar\"\n\t\t\ttabIndex={-1}\n\t\t\tonClick={toggleSidebar}\n\t\t\ttitle=\"Toggle Sidebar\"\n\t\t\tclassName={cn(\n\t\t\t\t\"hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex\",\n\t\t\t\t\"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n\t\t\t\t\"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n\t\t\t\t\"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n\t\t\t\t\"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n\t\t\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n\treturn (\n\t\t<main\n\t\t\tdata-slot=\"sidebar-inset\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-background relative flex w-full flex-1 flex-col\",\n\t\t\t\t\"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl\",\n\t\t\t\t\"md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n\t\t\t\t\"peer-has-data-[sidebar-mode=hover]:fixed peer-has-data-[sidebar-mode=hover]:h-full peer-has-data-[sidebar-mode=hover]:grow\",\n\t\t\t\t\"peer-has-data-[sidebar-mode=hover]:left-(--sidebar-width-icon)\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInput({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof Input>) {\n\treturn (\n\t\t<Input\n\t\t\tdata-slot=\"sidebar-input\"\n\t\t\tdata-sidebar=\"input\"\n\t\t\tclassName={cn(\"bg-background h-8 w-full shadow-none\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-header\"\n\t\t\tdata-sidebar=\"header\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-footer\"\n\t\t\tdata-sidebar=\"footer\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2 pb-3\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof Separator>) {\n\treturn (\n\t\t<Separator\n\t\t\tdata-slot=\"sidebar-separator\"\n\t\t\tdata-sidebar=\"separator\"\n\t\t\tclassName={cn(\"border-border-secondary w-auto\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-content\"\n\t\t\tdata-sidebar=\"content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex min-h-0 flex-1 flex-col gap-1 p-2 pt-3 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group\"\n\t\t\tdata-sidebar=\"group\"\n\t\t\tclassName={cn(\"relative flex w-full min-w-0 flex-col\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupLabel({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"div\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-label\"\n\t\t\tdata-sidebar=\"group-label\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t\"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupAction({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-action\"\n\t\t\tdata-sidebar=\"group-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group-content\"\n\t\t\tdata-sidebar=\"group-content\"\n\t\t\tclassName={cn(\"w-full text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu\"\n\t\t\tdata-sidebar=\"menu\"\n\t\t\tclassName={cn(\"flex w-full min-w-0 flex-col gap-0.5\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-item\"\n\t\t\tdata-sidebar=\"menu-item\"\n\t\t\tclassName={cn(\"group/menu-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nconst sidebarMenuButtonVariants = cva(\n\tcn(\n\t\t\"typo-body text-text-secondary flex items-center gap-2 overflow-hidden rounded-lg py-2 px-[0.44rem] outline-hidden \",\n\t\t\"ring-sidebar-ring transition-all focus-visible:ring-2 active:bg-bg-quaternary disabled:pointer-events-none\",\n\t\t\"disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50\",\n\t\t\"data-[active=true]:bg-bg-brand-secondary data-[active=true]:text-text-primary data-[state=open]:hover:bg-sidebar-accent\",\n\t\t\"data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:py-2! group-data-[collapsible=icon]:px-[0.44rem]!\",\n\t\t\"[&>span:last-child]:truncate [&>svg]:size-5 [&>svg]:shrink-0 hover:bg-bg-secondary hover:text-text-primary\",\n\t\t\"data-[active=true]:[&>svg]:text-text-brand-primary w-full\",\n\t),\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"\",\n\t\t\t\toutline:\n\t\t\t\t\t\"shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tdefault: \"\",\n\t\t\t\tsm: \"\",\n\t\t\t\tlg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"default\",\n\t\t\tsize: \"default\",\n\t\t},\n\t},\n);\n\nfunction SidebarMenuButton({\n\tasChild = false,\n\tisActive = false,\n\tvariant = \"default\",\n\tsize = \"default\",\n\ttooltip,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tisActive?: boolean;\n\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n\tconst Comp = asChild ? Slot : \"button\";\n\tconst { isMobile, state } = useSidebar();\n\n\tconst button = (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-button\"\n\t\t\tdata-sidebar=\"menu-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n\n\tif (!tooltip) {\n\t\treturn button;\n\t}\n\n\tif (typeof tooltip === \"string\") {\n\t\ttooltip = {\n\t\t\tchildren: tooltip,\n\t\t};\n\t}\n\n\treturn (\n\t\t<Tooltip>\n\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\n\t\t\t<TooltipContent\n\t\t\t\tside=\"right\"\n\t\t\t\talign=\"center\"\n\t\t\t\thidden={state !== \"collapsed\" || isMobile}\n\t\t\t\t{...tooltip}\n\t\t\t/>\n\t\t</Tooltip>\n\t);\n}\n\nfunction SidebarMenuAction({\n\tclassName,\n\tasChild = false,\n\tshowOnHover = false,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tshowOnHover?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-action\"\n\t\t\tdata-sidebar=\"menu-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tshowOnHover &&\n\t\t\t\t\t\"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuBadge({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-badge\"\n\t\t\tdata-sidebar=\"menu-badge\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none\",\n\t\t\t\t\"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSkeleton({\n\tclassName,\n\tshowIcon = false,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tshowIcon?: boolean;\n}) {\n\t// Random width between 50 to 90%.\n\tconst width = React.useMemo(() => {\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`;\n\t}, []);\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-skeleton\"\n\t\t\tdata-sidebar=\"menu-skeleton\"\n\t\t\tclassName={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{showIcon && (\n\t\t\t\t<Skeleton\n\t\t\t\t\tclassName=\"size-4 rounded-md\"\n\t\t\t\t\tdata-sidebar=\"menu-skeleton-icon\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<Skeleton\n\t\t\t\tclassName=\"h-4 max-w-(--skeleton-width) flex-1\"\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--skeleton-width\": width,\n\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu-sub\"\n\t\t\tdata-sidebar=\"menu-sub\"\n\t\t\tclassName={cn(\n\t\t\t\t\"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubItem({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-sub-item\"\n\t\t\tdata-sidebar=\"menu-sub-item\"\n\t\t\tclassName={cn(\"group/menu-sub-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubButton({\n\tasChild = false,\n\tsize = \"md\",\n\tisActive = false,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"a\"> & {\n\tasChild?: boolean;\n\tsize?: \"sm\" | \"md\";\n\tisActive?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"a\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-sub-button\"\n\t\t\tdata-sidebar=\"menu-sub-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t\"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n\t\t\t\tsize === \"sm\" && \"text-xs\",\n\t\t\t\tsize === \"md\" && \"text-sm\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tSidebar,\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarGroupAction,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarHeader,\n\tSidebarInput,\n\tSidebarInset,\n\tSidebarMenu,\n\tSidebarMenuAction,\n\tSidebarMenuBadge,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSkeleton,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarProvider,\n\tSidebarRail,\n\tSidebarSeparator,\n\tSidebarTrigger,\n\tuseSidebar,\n};\n"],"names":["Slot","cva","PanelLeftIcon","React","Button","Input","Separator","Sheet","SheetContent","SheetDescription","SheetHeader","SheetTitle","Skeleton","Tooltip","TooltipContent","TooltipProvider","TooltipTrigger","useIsMobile","cn","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","createContext","useSidebar","context","useContext","Error","SidebarProvider","defaultOpen","open","openProp","onOpenChange","setOpenProp","className","style","children","props","isMobile","openMobile","setOpenMobile","useState","_open","_setOpen","setOpen","useCallback","value","openState","document","cookie","toggleSidebar","useEffect","handleKeyDown","event","key","metaKey","ctrlKey","preventDefault","window","addEventListener","removeEventListener","state","contextValue","useMemo","Provider","delayDuration","div","data-slot","Sidebar","side","variant","collapsible","data-sidebar","data-mobile","data-state","data-collapsible","data-variant","data-side","SidebarTrigger","onClick","size","span","SidebarRail","button","aria-label","tabIndex","title","SidebarInset","main","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Comp","SidebarGroupAction","SidebarGroupContent","SidebarMenu","ul","SidebarMenuItem","li","sidebarMenuButtonVariants","variants","default","outline","sm","lg","defaultVariants","SidebarMenuButton","isActive","tooltip","data-size","data-active","align","hidden","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Math","floor","random","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/sidebar.tsx"],"sourcesContent":["\"use client\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { Button } from \"#shadcn/components/ui/button\";\nimport { Input } from \"#shadcn/components/ui/input\";\nimport { Separator } from \"#shadcn/components/ui/separator\";\nimport {\n\tSheet,\n\tSheetContent,\n\tSheetDescription,\n\tSheetHeader,\n\tSheetTitle,\n} from \"#shadcn/components/ui/sheet\";\nimport { Skeleton } from \"#shadcn/components/ui/skeleton\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipProvider,\n\tTooltipTrigger,\n} from \"#shadcn/components/ui/tooltip\";\nimport { useIsMobile } from \"#shadcn/hooks/use-mobile\";\nimport { cn } from \"#shadcn/lib/utils\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"13.75rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3.125rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n\tstate: \"expanded\" | \"collapsed\";\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\topenMobile: boolean;\n\tsetOpenMobile: (open: boolean) => void;\n\tisMobile: boolean;\n\ttoggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n\tconst context = React.useContext(SidebarContext);\n\tif (!context) {\n\t\tthrow new Error(\"useSidebar must be used within a SidebarProvider.\");\n\t}\n\n\treturn context;\n}\n\nfunction SidebarProvider({\n\tdefaultOpen = true,\n\topen: openProp,\n\tonOpenChange: setOpenProp,\n\tclassName,\n\tstyle,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}) {\n\tconst isMobile = useIsMobile();\n\tconst [openMobile, setOpenMobile] = React.useState(false);\n\n\t// This is the internal state of the sidebar.\n\t// We use openProp and setOpenProp for control from outside the component.\n\tconst [_open, _setOpen] = React.useState(defaultOpen);\n\tconst open = openProp ?? _open;\n\tconst setOpen = React.useCallback(\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\n\t\t\tconst openState = typeof value === \"function\" ? value(open) : value;\n\t\t\tif (setOpenProp) {\n\t\t\t\tsetOpenProp(openState);\n\t\t\t} else {\n\t\t\t\t_setOpen(openState);\n\t\t\t}\n\n\t\t\t// This sets the cookie to keep the sidebar state.\n\t\t\t// biome-ignore lint/suspicious/noDocumentCookie: FIXME: unchanged shadcn\n\t\t\tdocument.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n\t\t},\n\t\t[setOpenProp, open],\n\t);\n\n\t// Helper to toggle the sidebar.\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: FIXME: unchanged shadcn\n\tconst toggleSidebar = React.useCallback(() => {\n\t\treturn isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n\t}, [isMobile, setOpen, setOpenMobile]);\n\n\t// Adds a keyboard shortcut to toggle the sidebar.\n\tReact.useEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (\n\t\t\t\tevent.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n\t\t\t\t(event.metaKey || event.ctrlKey)\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttoggleSidebar();\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\n\t\treturn () => window.removeEventListener(\"keydown\", handleKeyDown);\n\t}, [toggleSidebar]);\n\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n\t// This makes it easier to style the sidebar with Tailwind classes.\n\tconst state = open ? \"expanded\" : \"collapsed\";\n\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: FIXME: unchanged shadcn\n\tconst contextValue = React.useMemo<SidebarContextProps>(\n\t\t() => ({\n\t\t\tstate,\n\t\t\topen,\n\t\t\tsetOpen,\n\t\t\tisMobile,\n\t\t\topenMobile,\n\t\t\tsetOpenMobile,\n\t\t\ttoggleSidebar,\n\t\t}),\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n\t);\n\n\treturn (\n\t\t<SidebarContext.Provider value={contextValue}>\n\t\t\t<TooltipProvider delayDuration={0}>\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"sidebar-wrapper\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH,\n\t\t\t\t\t\t\t\"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full box-content\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</TooltipProvider>\n\t\t</SidebarContext.Provider>\n\t);\n}\n\nfunction Sidebar({\n\tside = \"left\",\n\tvariant = \"sidebar\",\n\tcollapsible = \"offcanvas\",\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tside?: \"left\" | \"right\";\n\tvariant?: \"sidebar\" | \"floating\" | \"inset\";\n\tcollapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}) {\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n\tif (collapsible === \"none\") {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (isMobile) {\n\t\treturn (\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t<SheetContent\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\tclassName=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t<SheetTitle>Sidebar</SheetTitle>\n\t\t\t\t\t\t<SheetDescription>Displays the mobile sidebar.</SheetDescription>\n\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t</SheetContent>\n\t\t\t</Sheet>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"group peer text-sidebar-foreground hidden md:block\"\n\t\t\tdata-state={state}\n\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t\tdata-slot=\"sidebar\"\n\t\t>\n\t\t\t{/* This is what handles the sidebar gap on desktop */}\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-gap\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"relative w-(--sidebar-width) bg-transparent transition-[width] duration-120 ease-linear\",\n\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\n\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-container\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-120 ease-linear md:flex box-content\",\n\t\t\t\t\tside === \"left\"\n\t\t\t\t\t\t? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n\t\t\t\t\t\t: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n\t\t\t\t\t// Adjust the padding for floating and inset variants.\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar-inner\"\n\t\t\t\t\tclassName=\"bg-bg-primary group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction SidebarTrigger({\n\tclassName,\n\tonClick,\n\t...props\n}: React.ComponentProps<typeof Button>) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<Button\n\t\t\tdata-sidebar=\"trigger\"\n\t\t\tdata-slot=\"sidebar-trigger\"\n\t\t\tvariant=\"ghost\"\n\t\t\tsize=\"small\"\n\t\t\tclassName={cn(\"size-7\", className)}\n\t\t\tonClick={(event) => {\n\t\t\t\tonClick?.(event);\n\t\t\t\ttoggleSidebar();\n\t\t\t}}\n\t\t\t{...props}\n\t\t>\n\t\t\t<PanelLeftIcon />\n\t\t\t<span className=\"sr-only\">Toggle Sidebar</span>\n\t\t</Button>\n\t);\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<button\n\t\t\tdata-sidebar=\"rail\"\n\t\t\tdata-slot=\"sidebar-rail\"\n\t\t\taria-label=\"Toggle Sidebar\"\n\t\t\ttabIndex={-1}\n\t\t\tonClick={toggleSidebar}\n\t\t\ttitle=\"Toggle Sidebar\"\n\t\t\tclassName={cn(\n\t\t\t\t\"hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex\",\n\t\t\t\t\"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n\t\t\t\t\"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n\t\t\t\t\"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n\t\t\t\t\"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n\t\t\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n\treturn (\n\t\t<main\n\t\t\tdata-slot=\"sidebar-inset\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-background relative flex w-full flex-1 flex-col\",\n\t\t\t\t\"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl\",\n\t\t\t\t\"md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n\t\t\t\t\"peer-has-data-[sidebar-mode=hover]:fixed peer-has-data-[sidebar-mode=hover]:h-full peer-has-data-[sidebar-mode=hover]:grow\",\n\t\t\t\t\"peer-has-data-[sidebar-mode=hover]:left-(--sidebar-width-icon)\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInput({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof Input>) {\n\treturn (\n\t\t<Input\n\t\t\tdata-slot=\"sidebar-input\"\n\t\t\tdata-sidebar=\"input\"\n\t\t\tclassName={cn(\"bg-background h-8 w-full shadow-none\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-header\"\n\t\t\tdata-sidebar=\"header\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-footer\"\n\t\t\tdata-sidebar=\"footer\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2 pb-3\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof Separator>) {\n\treturn (\n\t\t<Separator\n\t\t\tdata-slot=\"sidebar-separator\"\n\t\t\tdata-sidebar=\"separator\"\n\t\t\tclassName={cn(\"border-border-secondary w-auto\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-content\"\n\t\t\tdata-sidebar=\"content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex min-h-0 flex-1 flex-col gap-1 p-2 pt-3 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group\"\n\t\t\tdata-sidebar=\"group\"\n\t\t\tclassName={cn(\"relative flex w-full min-w-0 flex-col\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupLabel({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"div\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-label\"\n\t\t\tdata-sidebar=\"group-label\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t\"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupAction({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-action\"\n\t\t\tdata-sidebar=\"group-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group-content\"\n\t\t\tdata-sidebar=\"group-content\"\n\t\t\tclassName={cn(\"w-full text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu\"\n\t\t\tdata-sidebar=\"menu\"\n\t\t\tclassName={cn(\"flex w-full min-w-0 flex-col gap-0.5\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-item\"\n\t\t\tdata-sidebar=\"menu-item\"\n\t\t\tclassName={cn(\"group/menu-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Base sidebar menu button styles\nconst baseSidebarMenuButtonStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"items-center\",\n\t\"gap-2\",\n\t\"w-full\",\n\t\"overflow-hidden\",\n\t// Shape\n\t\"rounded-lg\",\n\t// Spacing\n\t\"py-2\",\n\t\"px-[0.44rem]\",\n\t// Typography\n\t\"typo-body\",\n\t\"text-fg-secondary\",\n\t// Interaction\n\t\"outline-hidden\",\n\t\"transition-all\",\n\t\"cursor-pointer\",\n\t// Focus\n\t\"focus-visible:ring-2\",\n\t\"focus-visible:ring-utility-blue/70\",\n\t// Hover\n\t\"hover:bg-bg-secondary\",\n\t\"hover:text-text-primary\",\n\t// Active\n\t\"active:bg-bg-quaternary\",\n\t\"data-[active=true]:bg-bg-brand-primary\",\n\t\"data-[active=true]:text-text-primary\",\n\t\"data-[active=true]:[&>svg]:text-fg-brand-primary\",\n\t// Open state\n\t\"data-[state=open]:hover:bg-bg-secondary\",\n\t\"data-[state=open]:hover:text-text-primary\",\n\t// Disabled\n\t\"disabled:pointer-events-none\",\n\t\"disabled:opacity-50\",\n\t\"aria-disabled:pointer-events-none\",\n\t\"aria-disabled:opacity-50\",\n\t// Group styles\n\t\"group-has-data-[sidebar=menu-action]/menu-item:pr-8\",\n\t\"group-data-[collapsible=icon]:py-2!\",\n\t\"group-data-[collapsible=icon]:px-[0.44rem]!\",\n\t// Content styles\n\t\"[&>span:last-child]:truncate\",\n\t\"[&>svg]:size-5\",\n\t\"[&>svg]:shrink-0\",\n);\n\nconst sidebarMenuButtonVariants = cva(baseSidebarMenuButtonStyles, {\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: cn(\"\"),\n\t\t\toutline: cn(\n\t\t\t\t\"shadow-[0_0_0_1px_hsl(var(--sidebar-border))]\",\n\t\t\t\t\"hover:bg-bg-secondary\",\n\t\t\t\t\"hover:text-text-primary\",\n\t\t\t\t\"hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n\t\t\t),\n\t\t},\n\t\tsize: {\n\t\t\tdefault: cn(\"\"),\n\t\t\tsm: cn(\"\"),\n\t\t\tlg: cn(\"h-12\", \"text-sm\", \"group-data-[collapsible=icon]:p-0!\"),\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t\tsize: \"default\",\n\t},\n});\n\nfunction SidebarMenuButton({\n\tasChild = false,\n\tisActive = false,\n\tvariant = \"default\",\n\tsize = \"default\",\n\ttooltip,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tisActive?: boolean;\n\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n\tconst Comp = asChild ? Slot : \"button\";\n\tconst { isMobile, state } = useSidebar();\n\n\tconst button = (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-button\"\n\t\t\tdata-sidebar=\"menu-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n\n\tif (!tooltip) {\n\t\treturn button;\n\t}\n\n\tif (typeof tooltip === \"string\") {\n\t\ttooltip = {\n\t\t\tchildren: tooltip,\n\t\t};\n\t}\n\n\treturn (\n\t\t<Tooltip>\n\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\n\t\t\t<TooltipContent\n\t\t\t\tside=\"right\"\n\t\t\t\talign=\"center\"\n\t\t\t\thidden={state !== \"collapsed\" || isMobile}\n\t\t\t\t{...tooltip}\n\t\t\t/>\n\t\t</Tooltip>\n\t);\n}\n\nfunction SidebarMenuAction({\n\tclassName,\n\tasChild = false,\n\tshowOnHover = false,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tshowOnHover?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-action\"\n\t\t\tdata-sidebar=\"menu-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tshowOnHover &&\n\t\t\t\t\t\"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuBadge({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-badge\"\n\t\t\tdata-sidebar=\"menu-badge\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none\",\n\t\t\t\t\"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSkeleton({\n\tclassName,\n\tshowIcon = false,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tshowIcon?: boolean;\n}) {\n\t// Random width between 50 to 90%.\n\tconst width = React.useMemo(() => {\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`;\n\t}, []);\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-skeleton\"\n\t\t\tdata-sidebar=\"menu-skeleton\"\n\t\t\tclassName={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{showIcon && (\n\t\t\t\t<Skeleton\n\t\t\t\t\tclassName=\"size-4 rounded-md\"\n\t\t\t\t\tdata-sidebar=\"menu-skeleton-icon\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<Skeleton\n\t\t\t\tclassName=\"h-4 max-w-(--skeleton-width) flex-1\"\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--skeleton-width\": width,\n\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu-sub\"\n\t\t\tdata-sidebar=\"menu-sub\"\n\t\t\tclassName={cn(\n\t\t\t\t\"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubItem({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-sub-item\"\n\t\t\tdata-sidebar=\"menu-sub-item\"\n\t\t\tclassName={cn(\"group/menu-sub-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubButton({\n\tasChild = false,\n\tsize = \"md\",\n\tisActive = false,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"a\"> & {\n\tasChild?: boolean;\n\tsize?: \"sm\" | \"md\";\n\tisActive?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"a\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-sub-button\"\n\t\t\tdata-sidebar=\"menu-sub-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t\"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n\t\t\t\tsize === \"sm\" && \"text-xs\",\n\t\t\t\tsize === \"md\" && \"text-sm\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tSidebar,\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarGroupAction,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarHeader,\n\tSidebarInput,\n\tSidebarInset,\n\tSidebarMenu,\n\tSidebarMenuAction,\n\tSidebarMenuBadge,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSkeleton,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarProvider,\n\tSidebarRail,\n\tSidebarSeparator,\n\tSidebarTrigger,\n\tuseSidebar,\n};\n"],"names":["Slot","cva","PanelLeftIcon","React","Button","Input","Separator","Sheet","SheetContent","SheetDescription","SheetHeader","SheetTitle","Skeleton","Tooltip","TooltipContent","TooltipProvider","TooltipTrigger","useIsMobile","cn","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","createContext","useSidebar","context","useContext","Error","SidebarProvider","defaultOpen","open","openProp","onOpenChange","setOpenProp","className","style","children","props","isMobile","openMobile","setOpenMobile","useState","_open","_setOpen","setOpen","useCallback","value","openState","document","cookie","toggleSidebar","useEffect","handleKeyDown","event","key","metaKey","ctrlKey","preventDefault","window","addEventListener","removeEventListener","state","contextValue","useMemo","Provider","delayDuration","div","data-slot","Sidebar","side","variant","collapsible","data-sidebar","data-mobile","data-state","data-collapsible","data-variant","data-side","SidebarTrigger","onClick","size","span","SidebarRail","button","aria-label","tabIndex","title","SidebarInset","main","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Comp","SidebarGroupAction","SidebarGroupContent","SidebarMenu","ul","SidebarMenuItem","li","baseSidebarMenuButtonStyles","sidebarMenuButtonVariants","variants","default","outline","sm","lg","defaultVariants","SidebarMenuButton","isActive","tooltip","data-size","data-active","align","hidden","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Math","floor","random","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/skeleton.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/skeleton.tsx"],"names":[],"mappings":"AAKA,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQrE;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from "../../lib/utils.js";
|
|
3
|
+
// Skeleton styles
|
|
4
|
+
const skeletonStyles = cn("bg-bg-tertiary", "animate-pulse", "rounded-md");
|
|
3
5
|
function Skeleton({ className, ...props }) {
|
|
4
6
|
return /*#__PURE__*/ _jsx("div", {
|
|
5
7
|
"data-slot": "skeleton",
|
|
6
|
-
className: cn(
|
|
8
|
+
className: cn(skeletonStyles, className),
|
|
7
9
|
...props
|
|
8
10
|
});
|
|
9
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/shadcn/components/ui/skeleton.tsx"],"sourcesContent":["import { cn } from \"#shadcn/lib/utils\";\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"skeleton\"\n\t\t\tclassName={cn(
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/skeleton.tsx"],"sourcesContent":["import { cn } from \"#shadcn/lib/utils\";\n\n// Skeleton styles\nconst skeletonStyles = cn(\"bg-bg-tertiary\", \"animate-pulse\", \"rounded-md\");\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"skeleton\"\n\t\t\tclassName={cn(skeletonStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Skeleton };\n"],"names":["cn","skeletonStyles","Skeleton","className","props","div","data-slot"],"mappings":";AAAA,SAASA,EAAE,QAAQ,qBAAoB;AAEvC,kBAAkB;AAClB,MAAMC,iBAAiBD,GAAG,kBAAkB,iBAAiB;AAE7D,SAASE,SAAS,EAAEC,SAAS,EAAE,GAAGC,OAAoC;IACrE,qBACC,KAACC;QACAC,aAAU;QACVH,WAAWH,GAAGC,gBAAgBE;QAC7B,GAAGC,KAAK;;AAGZ;AAEA,SAASF,QAAQ,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/slider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/slider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkF/B,iBAAS,MAAM,CAAC,EACf,SAAS,EACT,YAAY,EACZ,KAAK,EACL,GAAO,EACP,GAAS,EACT,GAAG,KAAK,EACR,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAwCnD;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -1,7 +1,38 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
3
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
3
4
|
import * as React from "react";
|
|
4
5
|
import { cn } from "../../lib/utils.js";
|
|
6
|
+
// Slider root styles
|
|
7
|
+
const sliderRootStyles = cn(// Layout
|
|
8
|
+
"relative", "flex", "w-full", "items-center", // Interaction
|
|
9
|
+
"touch-none", "select-none", // Disabled
|
|
10
|
+
"data-[disabled]:opacity-50", // Vertical orientation
|
|
11
|
+
"data-[orientation=vertical]:h-full", "data-[orientation=vertical]:min-h-44", "data-[orientation=vertical]:w-auto", "data-[orientation=vertical]:flex-col");
|
|
12
|
+
// Slider track styles
|
|
13
|
+
const sliderTrackStyles = cn(// Background
|
|
14
|
+
"bg-bg-quaternary", // Layout
|
|
15
|
+
"relative", "grow", "overflow-hidden", // Shape
|
|
16
|
+
"rounded-full", // Horizontal orientation
|
|
17
|
+
"data-[orientation=horizontal]:h-1.5", "data-[orientation=horizontal]:w-full", // Vertical orientation
|
|
18
|
+
"data-[orientation=vertical]:h-full", "data-[orientation=vertical]:w-1.5");
|
|
19
|
+
// Slider range styles
|
|
20
|
+
const sliderRangeStyles = cn(// Background
|
|
21
|
+
"bg-bg-link", // Layout
|
|
22
|
+
"absolute", // Horizontal orientation
|
|
23
|
+
"data-[orientation=horizontal]:h-full", // Vertical orientation
|
|
24
|
+
"data-[orientation=vertical]:w-full");
|
|
25
|
+
// Slider thumb styles
|
|
26
|
+
const sliderThumbStyles = cn(// Layout
|
|
27
|
+
"block", "size-4", "shrink-0", // Shape
|
|
28
|
+
"rounded-full", // Borders
|
|
29
|
+
"border", "border-border-link", // Background
|
|
30
|
+
"bg-bg-primary", // Shadow
|
|
31
|
+
"shadow-sm", // Transitions
|
|
32
|
+
"transition-[color,box-shadow]", // Hover
|
|
33
|
+
"hover:ring-4", "hover:ring-utility-blue/70", // Focus
|
|
34
|
+
"focus-visible:ring-4", "focus-visible:ring-utility-blue/70", "focus-visible:outline-hidden", // Disabled
|
|
35
|
+
"disabled:pointer-events-none", "disabled:opacity-50");
|
|
5
36
|
function Slider({ className, defaultValue, value, min = 0, max = 100, ...props }) {
|
|
6
37
|
const _values = React.useMemo(()=>Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [
|
|
7
38
|
min,
|
|
@@ -22,22 +53,22 @@ function Slider({ className, defaultValue, value, min = 0, max = 100, ...props }
|
|
|
22
53
|
} : {},
|
|
23
54
|
min: min,
|
|
24
55
|
max: max,
|
|
25
|
-
className: cn(
|
|
56
|
+
className: cn(sliderRootStyles, className),
|
|
26
57
|
...props,
|
|
27
58
|
children: [
|
|
28
59
|
/*#__PURE__*/ _jsx(SliderPrimitive.Track, {
|
|
29
60
|
"data-slot": "slider-track",
|
|
30
|
-
className:
|
|
61
|
+
className: sliderTrackStyles,
|
|
31
62
|
children: /*#__PURE__*/ _jsx(SliderPrimitive.Range, {
|
|
32
63
|
"data-slot": "slider-range",
|
|
33
|
-
className:
|
|
64
|
+
className: sliderRangeStyles
|
|
34
65
|
})
|
|
35
66
|
}),
|
|
36
67
|
Array.from({
|
|
37
68
|
length: _values.length
|
|
38
69
|
}, (_, index)=>/*#__PURE__*/ _jsx(SliderPrimitive.Thumb, {
|
|
39
70
|
"data-slot": "slider-thumb",
|
|
40
|
-
className:
|
|
71
|
+
className: sliderThumbStyles
|
|
41
72
|
}, index))
|
|
42
73
|
]
|
|
43
74
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/shadcn/components/ui/slider.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/slider.tsx"],"sourcesContent":["\"use client\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\n// Slider root styles\nconst sliderRootStyles = cn(\n\t// Layout\n\t\"relative\",\n\t\"flex\",\n\t\"w-full\",\n\t\"items-center\",\n\t// Interaction\n\t\"touch-none\",\n\t\"select-none\",\n\t// Disabled\n\t\"data-[disabled]:opacity-50\",\n\t// Vertical orientation\n\t\"data-[orientation=vertical]:h-full\",\n\t\"data-[orientation=vertical]:min-h-44\",\n\t\"data-[orientation=vertical]:w-auto\",\n\t\"data-[orientation=vertical]:flex-col\",\n);\n\n// Slider track styles\nconst sliderTrackStyles = cn(\n\t// Background\n\t\"bg-bg-quaternary\",\n\t// Layout\n\t\"relative\",\n\t\"grow\",\n\t\"overflow-hidden\",\n\t// Shape\n\t\"rounded-full\",\n\t// Horizontal orientation\n\t\"data-[orientation=horizontal]:h-1.5\",\n\t\"data-[orientation=horizontal]:w-full\",\n\t// Vertical orientation\n\t\"data-[orientation=vertical]:h-full\",\n\t\"data-[orientation=vertical]:w-1.5\",\n);\n\n// Slider range styles\nconst sliderRangeStyles = cn(\n\t// Background\n\t\"bg-bg-link\",\n\t// Layout\n\t\"absolute\",\n\t// Horizontal orientation\n\t\"data-[orientation=horizontal]:h-full\",\n\t// Vertical orientation\n\t\"data-[orientation=vertical]:w-full\",\n);\n\n// Slider thumb styles\nconst sliderThumbStyles = cn(\n\t// Layout\n\t\"block\",\n\t\"size-4\",\n\t\"shrink-0\",\n\t// Shape\n\t\"rounded-full\",\n\t// Borders\n\t\"border\",\n\t\"border-border-link\",\n\t// Background\n\t\"bg-bg-primary\",\n\t// Shadow\n\t\"shadow-sm\",\n\t// Transitions\n\t\"transition-[color,box-shadow]\",\n\t// Hover\n\t\"hover:ring-4\",\n\t\"hover:ring-utility-blue/70\",\n\t// Focus\n\t\"focus-visible:ring-4\",\n\t\"focus-visible:ring-utility-blue/70\",\n\t\"focus-visible:outline-hidden\",\n\t// Disabled\n\t\"disabled:pointer-events-none\",\n\t\"disabled:opacity-50\",\n);\n\nfunction Slider({\n\tclassName,\n\tdefaultValue,\n\tvalue,\n\tmin = 0,\n\tmax = 100,\n\t...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n\tconst _values = React.useMemo(\n\t\t() =>\n\t\t\tArray.isArray(value)\n\t\t\t\t? value\n\t\t\t\t: Array.isArray(defaultValue)\n\t\t\t\t\t? defaultValue\n\t\t\t\t\t: [min, max],\n\t\t[value, defaultValue, min, max],\n\t);\n\n\treturn (\n\t\t<SliderPrimitive.Root\n\t\t\tdata-slot=\"slider\"\n\t\t\t{...(defaultValue !== undefined ? { defaultValue } : {})}\n\t\t\t{...(value !== undefined ? { value } : {})}\n\t\t\tmin={min}\n\t\t\tmax={max}\n\t\t\tclassName={cn(sliderRootStyles, className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<SliderPrimitive.Track\n\t\t\t\tdata-slot=\"slider-track\"\n\t\t\t\tclassName={sliderTrackStyles}\n\t\t\t>\n\t\t\t\t<SliderPrimitive.Range\n\t\t\t\t\tdata-slot=\"slider-range\"\n\t\t\t\t\tclassName={sliderRangeStyles}\n\t\t\t\t/>\n\t\t\t</SliderPrimitive.Track>\n\t\t\t{Array.from({ length: _values.length }, (_, index) => (\n\t\t\t\t<SliderPrimitive.Thumb\n\t\t\t\t\tdata-slot=\"slider-thumb\"\n\t\t\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: FIXME: unchanged shadcn\n\t\t\t\t\tkey={index}\n\t\t\t\t\tclassName={sliderThumbStyles}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</SliderPrimitive.Root>\n\t);\n}\n\nexport { Slider };\n"],"names":["SliderPrimitive","React","cn","sliderRootStyles","sliderTrackStyles","sliderRangeStyles","sliderThumbStyles","Slider","className","defaultValue","value","min","max","props","_values","useMemo","Array","isArray","Root","data-slot","undefined","Track","Range","from","length","_","index","Thumb"],"mappings":"AAAA;;AACA,YAAYA,qBAAqB,yBAAyB;AAC1D,YAAYC,WAAW,QAAQ;AAE/B,SAASC,EAAE,QAAQ,qBAAoB;AAEvC,qBAAqB;AACrB,MAAMC,mBAAmBD,GACxB,SAAS;AACT,YACA,QACA,UACA,gBACA,cAAc;AACd,cACA,eACA,WAAW;AACX,8BACA,uBAAuB;AACvB,sCACA,wCACA,sCACA;AAGD,sBAAsB;AACtB,MAAME,oBAAoBF,GACzB,aAAa;AACb,oBACA,SAAS;AACT,YACA,QACA,mBACA,QAAQ;AACR,gBACA,yBAAyB;AACzB,uCACA,wCACA,uBAAuB;AACvB,sCACA;AAGD,sBAAsB;AACtB,MAAMG,oBAAoBH,GACzB,aAAa;AACb,cACA,SAAS;AACT,YACA,yBAAyB;AACzB,wCACA,uBAAuB;AACvB;AAGD,sBAAsB;AACtB,MAAMI,oBAAoBJ,GACzB,SAAS;AACT,SACA,UACA,YACA,QAAQ;AACR,gBACA,UAAU;AACV,UACA,sBACA,aAAa;AACb,iBACA,SAAS;AACT,aACA,cAAc;AACd,iCACA,QAAQ;AACR,gBACA,8BACA,QAAQ;AACR,wBACA,sCACA,gCACA,WAAW;AACX,gCACA;AAGD,SAASK,OAAO,EACfC,SAAS,EACTC,YAAY,EACZC,KAAK,EACLC,MAAM,CAAC,EACPC,MAAM,GAAG,EACT,GAAGC,OACgD;IACnD,MAAMC,UAAUb,MAAMc,OAAO,CAC5B,IACCC,MAAMC,OAAO,CAACP,SACXA,QACAM,MAAMC,OAAO,CAACR,gBACbA,eACA;YAACE;YAAKC;SAAI,EACf;QAACF;QAAOD;QAAcE;QAAKC;KAAI;IAGhC,qBACC,MAACZ,gBAAgBkB,IAAI;QACpBC,aAAU;QACT,GAAIV,iBAAiBW,YAAY;YAAEX;QAAa,IAAI,CAAC,CAAC;QACtD,GAAIC,UAAUU,YAAY;YAAEV;QAAM,IAAI,CAAC,CAAC;QACzCC,KAAKA;QACLC,KAAKA;QACLJ,WAAWN,GAAGC,kBAAkBK;QAC/B,GAAGK,KAAK;;0BAET,KAACb,gBAAgBqB,KAAK;gBACrBF,aAAU;gBACVX,WAAWJ;0BAEX,cAAA,KAACJ,gBAAgBsB,KAAK;oBACrBH,aAAU;oBACVX,WAAWH;;;YAGZW,MAAMO,IAAI,CAAC;gBAAEC,QAAQV,QAAQU,MAAM;YAAC,GAAG,CAACC,GAAGC,sBAC3C,KAAC1B,gBAAgB2B,KAAK;oBACrBR,aAAU;oBAGVX,WAAWF;mBADNoB;;;AAMV;AAEA,SAASnB,MAAM,GAAG"}
|
|
@@ -1,4 +1,26 @@
|
|
|
1
|
+
import type * as React from "react";
|
|
1
2
|
import { type ToasterProps } from "sonner";
|
|
2
|
-
declare
|
|
3
|
-
|
|
3
|
+
declare function Toaster({ ...props }: ToasterProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
interface ToastOptions {
|
|
5
|
+
description?: string;
|
|
6
|
+
actionSlot?: React.ReactNode;
|
|
7
|
+
secondaryActionSlot?: React.ReactNode;
|
|
8
|
+
closeButton?: boolean;
|
|
9
|
+
duration?: number;
|
|
10
|
+
}
|
|
11
|
+
declare const toast: {
|
|
12
|
+
/**
|
|
13
|
+
* Default info toast
|
|
14
|
+
*/
|
|
15
|
+
info: (title: string, options?: ToastOptions) => string | number;
|
|
16
|
+
/**
|
|
17
|
+
* Error/alert toast
|
|
18
|
+
*/
|
|
19
|
+
error: (title: string, options?: ToastOptions) => string | number;
|
|
20
|
+
/**
|
|
21
|
+
* Dismiss a toast by id
|
|
22
|
+
*/
|
|
23
|
+
dismiss: (id?: number | string) => string | number;
|
|
24
|
+
};
|
|
25
|
+
export { Toaster, toast };
|
|
4
26
|
//# sourceMappingURL=sonner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/sonner.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../../../../../src/shadcn/components/ui/sonner.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,EAGN,KAAK,YAAY,EACjB,MAAM,QAAQ,CAAC;AAmLhB,iBAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,2CAkB1C;AAMD,UAAU,YAAY;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AA4BD,QAAA,MAAM,KAAK;IACV;;OAEG;kBACW,MAAM,YAAY,YAAY;IAG5C;;OAEG;mBACY,MAAM,YAAY,YAAY;IAG7C;;OAEG;;CAEH,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -1,19 +1,137 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Info, TriangleAlert, X } from "lucide-react";
|
|
2
4
|
import { useTheme } from "next-themes";
|
|
3
|
-
import { Toaster as Sonner } from "sonner";
|
|
4
|
-
|
|
5
|
+
import { Toaster as Sonner, toast as sonnerToast } from "sonner";
|
|
6
|
+
import { cn } from "../../lib/utils.js";
|
|
7
|
+
/* ==========================================================================
|
|
8
|
+
Styles
|
|
9
|
+
========================================================================== */ const toastBaseStyles = cn(// Layout
|
|
10
|
+
"flex", "items-start", "gap-[var(--spacing-x1point5,12px)]", // Shape
|
|
11
|
+
"rounded-[var(--corner-corner-m,6px)]", // Spacing
|
|
12
|
+
"p-[var(--spacing-x2,16px)]", // Border
|
|
13
|
+
"border");
|
|
14
|
+
const toastDefaultStyles = cn(toastBaseStyles, // Background
|
|
15
|
+
"bg-bg-primary", // Border
|
|
16
|
+
"border-border-separator");
|
|
17
|
+
const toastErrorStyles = cn(toastBaseStyles, // Background
|
|
18
|
+
"bg-bg-error-secondary", // Border
|
|
19
|
+
"border-border-error_inverse");
|
|
20
|
+
const iconContainerStyles = cn(// Layout
|
|
21
|
+
"shrink-0", "size-5");
|
|
22
|
+
const contentContainerStyles = cn(// Layout
|
|
23
|
+
"flex", "flex-col", "gap-[var(--spacing-x1,8px)]", "flex-1", "min-w-0");
|
|
24
|
+
const titleDefaultStyles = cn(// Typography
|
|
25
|
+
"body14bold", "text-text-primary");
|
|
26
|
+
const titleErrorStyles = cn(// Typography
|
|
27
|
+
"body14bold", "text-text-error-primary");
|
|
28
|
+
const descriptionDefaultStyles = cn(// Typography
|
|
29
|
+
"body14", "text-text-secondary_hover");
|
|
30
|
+
const descriptionErrorStyles = cn(// Typography
|
|
31
|
+
"body14", "text-[var(--color-red-800)]");
|
|
32
|
+
const closeButtonStyles = cn(// Layout
|
|
33
|
+
"shrink-0", "size-5", // Interaction
|
|
34
|
+
"cursor-pointer", "hover:opacity-70", "transition-opacity");
|
|
35
|
+
const closeButtonDefaultStyles = cn(closeButtonStyles, // Typography
|
|
36
|
+
"text-text-primary");
|
|
37
|
+
const closeButtonErrorStyles = cn(closeButtonStyles, // Typography
|
|
38
|
+
"text-[var(--color-red-800)]");
|
|
39
|
+
function ToastContent({ id, title, description, variant = "default", showCloseButton = false, actionSlot, secondaryActionSlot }) {
|
|
40
|
+
const isError = variant === "error";
|
|
41
|
+
const Icon = isError ? TriangleAlert : Info;
|
|
42
|
+
const iconColor = isError ? "text-text-error-primary" : "text-text-primary";
|
|
43
|
+
const hasActions = actionSlot || secondaryActionSlot;
|
|
44
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
45
|
+
className: isError ? toastErrorStyles : toastDefaultStyles,
|
|
46
|
+
children: [
|
|
47
|
+
/*#__PURE__*/ _jsx("div", {
|
|
48
|
+
className: cn(iconContainerStyles, iconColor),
|
|
49
|
+
children: /*#__PURE__*/ _jsx(Icon, {
|
|
50
|
+
className: "size-5"
|
|
51
|
+
})
|
|
52
|
+
}),
|
|
53
|
+
/*#__PURE__*/ _jsxs("div", {
|
|
54
|
+
className: contentContainerStyles,
|
|
55
|
+
children: [
|
|
56
|
+
/*#__PURE__*/ _jsx("div", {
|
|
57
|
+
className: isError ? titleErrorStyles : titleDefaultStyles,
|
|
58
|
+
children: title
|
|
59
|
+
}),
|
|
60
|
+
description && /*#__PURE__*/ _jsx("div", {
|
|
61
|
+
className: isError ? descriptionErrorStyles : descriptionDefaultStyles,
|
|
62
|
+
children: description
|
|
63
|
+
}),
|
|
64
|
+
hasActions && /*#__PURE__*/ _jsxs("div", {
|
|
65
|
+
className: "mt-1 flex items-center gap-2 flex-wrap",
|
|
66
|
+
children: [
|
|
67
|
+
actionSlot && /*#__PURE__*/ _jsx("div", {
|
|
68
|
+
children: actionSlot
|
|
69
|
+
}),
|
|
70
|
+
secondaryActionSlot && /*#__PURE__*/ _jsx("div", {
|
|
71
|
+
children: secondaryActionSlot
|
|
72
|
+
})
|
|
73
|
+
]
|
|
74
|
+
})
|
|
75
|
+
]
|
|
76
|
+
}),
|
|
77
|
+
showCloseButton && /*#__PURE__*/ _jsx("button", {
|
|
78
|
+
type: "button",
|
|
79
|
+
onClick: ()=>sonnerToast.dismiss(id),
|
|
80
|
+
className: isError ? closeButtonErrorStyles : closeButtonDefaultStyles,
|
|
81
|
+
"aria-label": "Close",
|
|
82
|
+
children: /*#__PURE__*/ _jsx(X, {
|
|
83
|
+
className: "size-5"
|
|
84
|
+
})
|
|
85
|
+
})
|
|
86
|
+
]
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/* ==========================================================================
|
|
90
|
+
Toaster
|
|
91
|
+
========================================================================== */ function Toaster({ ...props }) {
|
|
5
92
|
const { theme = "system" } = useTheme();
|
|
6
93
|
return /*#__PURE__*/ _jsx(Sonner, {
|
|
7
|
-
theme: theme,
|
|
94
|
+
theme: theme === "system" ? "system" : theme === "dark" ? "dark" : "light",
|
|
8
95
|
className: "toaster group",
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
96
|
+
toastOptions: {
|
|
97
|
+
unstyled: true,
|
|
98
|
+
classNames: {
|
|
99
|
+
toast: "w-full max-w-[588px]"
|
|
100
|
+
}
|
|
13
101
|
},
|
|
14
102
|
...props
|
|
15
103
|
});
|
|
104
|
+
}
|
|
105
|
+
function createToast(title, variant, options) {
|
|
106
|
+
const showCloseButton = options?.closeButton ?? false;
|
|
107
|
+
return sonnerToast.custom((id)=>{
|
|
108
|
+
const contentProps = {
|
|
109
|
+
title,
|
|
110
|
+
description: options?.description,
|
|
111
|
+
variant,
|
|
112
|
+
showCloseButton,
|
|
113
|
+
actionSlot: options?.actionSlot,
|
|
114
|
+
secondaryActionSlot: options?.secondaryActionSlot
|
|
115
|
+
};
|
|
116
|
+
return /*#__PURE__*/ _jsx(ToastContent, {
|
|
117
|
+
id: id,
|
|
118
|
+
...contentProps
|
|
119
|
+
});
|
|
120
|
+
}, options?.duration !== undefined ? {
|
|
121
|
+
duration: options.duration
|
|
122
|
+
} : undefined);
|
|
123
|
+
}
|
|
124
|
+
const toast = {
|
|
125
|
+
/**
|
|
126
|
+
* Default info toast
|
|
127
|
+
*/ info: (title, options)=>createToast(title, "default", options),
|
|
128
|
+
/**
|
|
129
|
+
* Error/alert toast
|
|
130
|
+
*/ error: (title, options)=>createToast(title, "error", options),
|
|
131
|
+
/**
|
|
132
|
+
* Dismiss a toast by id
|
|
133
|
+
*/ dismiss: sonnerToast.dismiss
|
|
16
134
|
};
|
|
17
|
-
export { Toaster };
|
|
135
|
+
export { Toaster, toast };
|
|
18
136
|
|
|
19
137
|
//# sourceMappingURL=sonner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/shadcn/components/ui/sonner.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../src/shadcn/components/ui/sonner.tsx"],"sourcesContent":["\"use client\";\n\nimport { Info, TriangleAlert, X } from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\nimport type * as React from \"react\";\nimport {\n\tToaster as Sonner,\n\ttoast as sonnerToast,\n\ttype ToasterProps,\n} from \"sonner\";\nimport { cn } from \"#shadcn/lib/utils\";\n\n/* ==========================================================================\n Styles\n ========================================================================== */\n\nconst toastBaseStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"items-start\",\n\t\"gap-[var(--spacing-x1point5,12px)]\",\n\t// Shape\n\t\"rounded-[var(--corner-corner-m,6px)]\",\n\t// Spacing\n\t\"p-[var(--spacing-x2,16px)]\",\n\t// Border\n\t\"border\",\n);\n\nconst toastDefaultStyles = cn(\n\ttoastBaseStyles,\n\t// Background\n\t\"bg-bg-primary\",\n\t// Border\n\t\"border-border-separator\",\n);\n\nconst toastErrorStyles = cn(\n\ttoastBaseStyles,\n\t// Background\n\t\"bg-bg-error-secondary\",\n\t// Border\n\t\"border-border-error_inverse\",\n);\n\nconst iconContainerStyles = cn(\n\t// Layout\n\t\"shrink-0\",\n\t\"size-5\",\n);\n\nconst contentContainerStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"flex-col\",\n\t\"gap-[var(--spacing-x1,8px)]\",\n\t\"flex-1\",\n\t\"min-w-0\",\n);\n\nconst titleDefaultStyles = cn(\n\t// Typography\n\t\"body14bold\",\n\t\"text-text-primary\",\n);\n\nconst titleErrorStyles = cn(\n\t// Typography\n\t\"body14bold\",\n\t\"text-text-error-primary\",\n);\n\nconst descriptionDefaultStyles = cn(\n\t// Typography\n\t\"body14\",\n\t\"text-text-secondary_hover\",\n);\n\nconst descriptionErrorStyles = cn(\n\t// Typography\n\t\"body14\",\n\t\"text-[var(--color-red-800)]\",\n);\n\nconst closeButtonStyles = cn(\n\t// Layout\n\t\"shrink-0\",\n\t\"size-5\",\n\t// Interaction\n\t\"cursor-pointer\",\n\t\"hover:opacity-70\",\n\t\"transition-opacity\",\n);\n\nconst closeButtonDefaultStyles = cn(\n\tcloseButtonStyles,\n\t// Typography\n\t\"text-text-primary\",\n);\n\nconst closeButtonErrorStyles = cn(\n\tcloseButtonStyles,\n\t// Typography\n\t\"text-[var(--color-red-800)]\",\n);\n\n/* ==========================================================================\n Components\n ========================================================================== */\n\ntype ToastVariant = \"default\" | \"error\";\n\ninterface ToastContentProps {\n\tid: string | number;\n\ttitle: string;\n\tdescription?: string | undefined;\n\tvariant?: ToastVariant;\n\tshowCloseButton?: boolean;\n\tactionSlot?: React.ReactNode;\n\tsecondaryActionSlot?: React.ReactNode;\n}\n\nfunction ToastContent({\n\tid,\n\ttitle,\n\tdescription,\n\tvariant = \"default\",\n\tshowCloseButton = false,\n\tactionSlot,\n\tsecondaryActionSlot,\n}: ToastContentProps) {\n\tconst isError = variant === \"error\";\n\n\tconst Icon = isError ? TriangleAlert : Info;\n\tconst iconColor = isError ? \"text-text-error-primary\" : \"text-text-primary\";\n\n\tconst hasActions = actionSlot || secondaryActionSlot;\n\n\treturn (\n\t\t<div className={isError ? toastErrorStyles : toastDefaultStyles}>\n\t\t\t{/* Icon */}\n\t\t\t<div className={cn(iconContainerStyles, iconColor)}>\n\t\t\t\t<Icon className=\"size-5\" />\n\t\t\t</div>\n\n\t\t\t{/* Content */}\n\t\t\t<div className={contentContainerStyles}>\n\t\t\t\t<div className={isError ? titleErrorStyles : titleDefaultStyles}>\n\t\t\t\t\t{title}\n\t\t\t\t</div>\n\t\t\t\t{description && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\tisError ? descriptionErrorStyles : descriptionDefaultStyles\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{description}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{hasActions && (\n\t\t\t\t\t<div className=\"mt-1 flex items-center gap-2 flex-wrap\">\n\t\t\t\t\t\t{actionSlot && <div>{actionSlot}</div>}\n\t\t\t\t\t\t{secondaryActionSlot && <div>{secondaryActionSlot}</div>}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{/* Close button - always shown if showCloseButton is true */}\n\t\t\t{showCloseButton && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={() => sonnerToast.dismiss(id)}\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tisError ? closeButtonErrorStyles : closeButtonDefaultStyles\n\t\t\t\t\t}\n\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t>\n\t\t\t\t\t<X className=\"size-5\" />\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\n/* ==========================================================================\n Toaster\n ========================================================================== */\n\nfunction Toaster({ ...props }: ToasterProps) {\n\tconst { theme = \"system\" } = useTheme();\n\n\treturn (\n\t\t<Sonner\n\t\t\ttheme={\n\t\t\t\ttheme === \"system\" ? \"system\" : theme === \"dark\" ? \"dark\" : \"light\"\n\t\t\t}\n\t\t\tclassName=\"toaster group\"\n\t\t\ttoastOptions={{\n\t\t\t\tunstyled: true,\n\t\t\t\tclassNames: {\n\t\t\t\t\ttoast: \"w-full max-w-[588px]\",\n\t\t\t\t},\n\t\t\t}}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n/* ==========================================================================\n Toast API\n ========================================================================== */\n\ninterface ToastOptions {\n\tdescription?: string;\n\tactionSlot?: React.ReactNode;\n\tsecondaryActionSlot?: React.ReactNode;\n\tcloseButton?: boolean;\n\tduration?: number;\n}\n\nfunction createToast(\n\ttitle: string,\n\tvariant: ToastVariant,\n\toptions?: ToastOptions,\n) {\n\tconst showCloseButton = options?.closeButton ?? false;\n\n\treturn sonnerToast.custom(\n\t\t(id) => {\n\t\t\tconst contentProps: Omit<ToastContentProps, \"id\"> = {\n\t\t\t\ttitle,\n\t\t\t\tdescription: options?.description,\n\t\t\t\tvariant,\n\t\t\t\tshowCloseButton,\n\t\t\t\tactionSlot: options?.actionSlot,\n\t\t\t\tsecondaryActionSlot: options?.secondaryActionSlot,\n\t\t\t};\n\n\t\t\treturn <ToastContent id={id} {...contentProps} />;\n\t\t},\n\t\toptions?.duration !== undefined\n\t\t\t? { duration: options.duration }\n\t\t\t: undefined,\n\t);\n}\n\nconst toast = {\n\t/**\n\t * Default info toast\n\t */\n\tinfo: (title: string, options?: ToastOptions) =>\n\t\tcreateToast(title, \"default\", options),\n\n\t/**\n\t * Error/alert toast\n\t */\n\terror: (title: string, options?: ToastOptions) =>\n\t\tcreateToast(title, \"error\", options),\n\n\t/**\n\t * Dismiss a toast by id\n\t */\n\tdismiss: sonnerToast.dismiss,\n};\n\nexport { Toaster, toast };\n"],"names":["Info","TriangleAlert","X","useTheme","Toaster","Sonner","toast","sonnerToast","cn","toastBaseStyles","toastDefaultStyles","toastErrorStyles","iconContainerStyles","contentContainerStyles","titleDefaultStyles","titleErrorStyles","descriptionDefaultStyles","descriptionErrorStyles","closeButtonStyles","closeButtonDefaultStyles","closeButtonErrorStyles","ToastContent","id","title","description","variant","showCloseButton","actionSlot","secondaryActionSlot","isError","Icon","iconColor","hasActions","div","className","button","type","onClick","dismiss","aria-label","props","theme","toastOptions","unstyled","classNames","createToast","options","closeButton","custom","contentProps","duration","undefined","info","error"],"mappings":"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"}
|