@keboola/design 10.1.0 → 11.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -0
- package/dist/AIKit-Dre37SJr.js +1320 -0
- package/dist/AIKit-Dre37SJr.js.map +1 -0
- package/dist/Alert-DfZq9kGe.js +133 -0
- package/dist/Alert-DfZq9kGe.js.map +1 -0
- package/dist/AlertModal-BUC4Es8o.js +222 -0
- package/dist/AlertModal-BUC4Es8o.js.map +1 -0
- package/dist/AppShell-B5GQN6Zs.js +143 -0
- package/dist/AppShell-B5GQN6Zs.js.map +1 -0
- package/dist/AutoSaveTextarea-BeuWuszr.js +58 -0
- package/dist/AutoSaveTextarea-BeuWuszr.js.map +1 -0
- package/dist/Badge-Ch26CXoP.js +195 -0
- package/dist/Badge-Ch26CXoP.js.map +1 -0
- package/dist/BrandEditor-B8o9zdZO.js +903 -0
- package/dist/BrandEditor-B8o9zdZO.js.map +1 -0
- package/dist/BrandLogo-CJkRd0F8.js +46 -0
- package/dist/BrandLogo-CJkRd0F8.js.map +1 -0
- package/dist/Breadcrumb-DJp7WwSv.js +330 -0
- package/dist/Breadcrumb-DJp7WwSv.js.map +1 -0
- package/dist/Button-nzmDNS2q.js +391 -0
- package/dist/Button-nzmDNS2q.js.map +1 -0
- package/dist/Calendar-cG5NIJ4O.js +6768 -0
- package/dist/Calendar-cG5NIJ4O.js.map +1 -0
- package/dist/Card-BAoZ35CV.js +105 -0
- package/dist/Card-BAoZ35CV.js.map +1 -0
- package/dist/Checkbox-GJ8-srt4.js +97 -0
- package/dist/Checkbox-GJ8-srt4.js.map +1 -0
- package/dist/Clipboard-CBJZiviP.js +58 -0
- package/dist/Clipboard-CBJZiviP.js.map +1 -0
- package/dist/ClipboardButton-ez5V3fkk.js +43 -0
- package/dist/ClipboardButton-ez5V3fkk.js.map +1 -0
- package/dist/CodeEditor-BfQJfbhL.js +952 -0
- package/dist/CodeEditor-BfQJfbhL.js.map +1 -0
- package/dist/Collapsible-BQXWEOBC.js +34 -0
- package/dist/Collapsible-BQXWEOBC.js.map +1 -0
- package/dist/ColorInput-Dx8Dsv7Y.js +180 -0
- package/dist/ColorInput-Dx8Dsv7Y.js.map +1 -0
- package/dist/ColorModeSwitch-CCqj7tjE.js +77 -0
- package/dist/ColorModeSwitch-CCqj7tjE.js.map +1 -0
- package/dist/Combobox-c_xBjf0P.js +439 -0
- package/dist/Combobox-c_xBjf0P.js.map +1 -0
- package/dist/Command-CQ_bQsJp.js +102 -0
- package/dist/Command-CQ_bQsJp.js.map +1 -0
- package/dist/CopyField-BJ96zvXs.js +322 -0
- package/dist/CopyField-BJ96zvXs.js.map +1 -0
- package/dist/DateInput-CMD3dY-T.js +141 -0
- package/dist/DateInput-CMD3dY-T.js.map +1 -0
- package/dist/DatePicker-BbFbmsGl.js +24 -0
- package/dist/DatePicker-BbFbmsGl.js.map +1 -0
- package/dist/DateRangeInput-D3BhiKyk.js +139 -0
- package/dist/DateRangeInput-D3BhiKyk.js.map +1 -0
- package/dist/DateRangePicker-BiUgtt_M.js +159 -0
- package/dist/DateRangePicker-BiUgtt_M.js.map +1 -0
- package/dist/DiagramSkeleton-lwBS2YBa.js +11 -0
- package/dist/DiagramSkeleton-lwBS2YBa.js.map +1 -0
- package/dist/DiffView-ppTIzh2h.js +429 -0
- package/dist/DiffView-ppTIzh2h.js.map +1 -0
- package/dist/DropdownMenu-B6ZbYvaM.js +327 -0
- package/dist/DropdownMenu-B6ZbYvaM.js.map +1 -0
- package/dist/FieldBox-D7DYtX_m.js +70 -0
- package/dist/FieldBox-D7DYtX_m.js.map +1 -0
- package/dist/FileUpload-sXRv7JiY.js +2527 -0
- package/dist/FileUpload-sXRv7JiY.js.map +1 -0
- package/dist/Form-BDCef6O9.js +371 -0
- package/dist/Form-BDCef6O9.js.map +1 -0
- package/dist/FormGroup-S9mPNHKH.js +124 -0
- package/dist/FormGroup-S9mPNHKH.js.map +1 -0
- package/dist/FullScreenModal-CJa2VkJ2.js +96 -0
- package/dist/FullScreenModal-CJa2VkJ2.js.map +1 -0
- package/dist/HoverCard-WfDkLK1s.js +31 -0
- package/dist/HoverCard-WfDkLK1s.js.map +1 -0
- package/dist/InputGroup-BJWsI35s.js +292 -0
- package/dist/InputGroup-BJWsI35s.js.map +1 -0
- package/dist/Kbd-CxHAo1oo.js +111 -0
- package/dist/Kbd-CxHAo1oo.js.map +1 -0
- package/dist/MarkedText-Ckbft5mw.js +44 -0
- package/dist/MarkedText-Ckbft5mw.js.map +1 -0
- package/dist/MermaidDiagram-BB06gymm.js +399 -0
- package/dist/MermaidDiagram-BB06gymm.js.map +1 -0
- package/dist/Modal-BA5Wc3sx.js +185 -0
- package/dist/Modal-BA5Wc3sx.js.map +1 -0
- package/dist/ModalTitle-C76ke2eo.js +28 -0
- package/dist/ModalTitle-C76ke2eo.js.map +1 -0
- package/dist/MultiActionButtonGroup-CiBHxsSk.js +33 -0
- package/dist/MultiActionButtonGroup-CiBHxsSk.js.map +1 -0
- package/dist/Navbar-t16usFZQ.js +322 -0
- package/dist/Navbar-t16usFZQ.js.map +1 -0
- package/dist/OtpInput-CbbymqYs.js +93 -0
- package/dist/OtpInput-CbbymqYs.js.map +1 -0
- package/dist/PageHeader-Q3IpCnQd.js +177 -0
- package/dist/PageHeader-Q3IpCnQd.js.map +1 -0
- package/dist/PageLayout-DSVM-ASz.js +176 -0
- package/dist/PageLayout-DSVM-ASz.js.map +1 -0
- package/dist/PageToolbar-0_1OBzaZ.js +153 -0
- package/dist/PageToolbar-0_1OBzaZ.js.map +1 -0
- package/dist/Pagination-CM_Rszz-.js +70 -0
- package/dist/Pagination-CM_Rszz-.js.map +1 -0
- package/dist/Popconfirm-BGe1jLov.js +170 -0
- package/dist/Popconfirm-BGe1jLov.js.map +1 -0
- package/dist/Popover-Ca0V6AD1.js +92 -0
- package/dist/Popover-Ca0V6AD1.js.map +1 -0
- package/dist/RadioGroup-sIveSsNa.js +233 -0
- package/dist/RadioGroup-sIveSsNa.js.map +1 -0
- package/dist/Resizable-D3vYToZH.js +52 -0
- package/dist/Resizable-D3vYToZH.js.map +1 -0
- package/dist/Search-3UiqNZRj.js +184 -0
- package/dist/Search-3UiqNZRj.js.map +1 -0
- package/dist/SearchInput-D2fcOv7E.js +102 -0
- package/dist/SearchInput-D2fcOv7E.js.map +1 -0
- package/dist/SectionNav--7bw2b6u.js +276 -0
- package/dist/SectionNav--7bw2b6u.js.map +1 -0
- package/dist/Select-4YX38G5h.js +181 -0
- package/dist/Select-4YX38G5h.js.map +1 -0
- package/dist/Sheet-BQrX8-h5.js +169 -0
- package/dist/Sheet-BQrX8-h5.js.map +1 -0
- package/dist/Sidebar-ROaR_AqC.js +799 -0
- package/dist/Sidebar-ROaR_AqC.js.map +1 -0
- package/dist/Slider-Da_3mS5v.js +127 -0
- package/dist/Slider-Da_3mS5v.js.map +1 -0
- package/dist/Stepper-C8sm9ZFM.js +325 -0
- package/dist/Stepper-C8sm9ZFM.js.map +1 -0
- package/dist/Switch-CX2A0v50.js +201 -0
- package/dist/Switch-CX2A0v50.js.map +1 -0
- package/dist/Table-CvYuTuNU.js +104 -0
- package/dist/Table-CvYuTuNU.js.map +1 -0
- package/dist/Tabs-EAihyqCt.js +74 -0
- package/dist/Tabs-EAihyqCt.js.map +1 -0
- package/dist/TextInput-BGed-V13.js +110 -0
- package/dist/TextInput-BGed-V13.js.map +1 -0
- package/dist/ThemeProvider-QncUrfJn.js +203 -0
- package/dist/ThemeProvider-QncUrfJn.js.map +1 -0
- package/dist/TimePicker-B_NegL-7.js +98 -0
- package/dist/TimePicker-B_NegL-7.js.map +1 -0
- package/dist/Timeline-6btyJl4D.js +154 -0
- package/dist/Timeline-6btyJl4D.js.map +1 -0
- package/dist/Toast-DQSbs3oA.js +49 -0
- package/dist/Toast-DQSbs3oA.js.map +1 -0
- package/dist/ToggleGroup-Cy_10Mvu.js +47 -0
- package/dist/ToggleGroup-Cy_10Mvu.js.map +1 -0
- package/dist/Workbench-BzE-Vvd9.js +293 -0
- package/dist/Workbench-BzE-Vvd9.js.map +1 -0
- package/dist/ZoomableSvg-DG9PnAm8.js +248 -0
- package/dist/ZoomableSvg-DG9PnAm8.js.map +1 -0
- package/dist/charts.d.ts +124 -111
- package/dist/charts.js +303 -249
- package/dist/charts.js.map +1 -1
- package/dist/classNames-BzrkDnOD.js +9 -0
- package/dist/classNames-BzrkDnOD.js.map +1 -0
- package/dist/constants-D6JcsD4_.d.ts +41 -0
- package/dist/context-KxxeMHbR.js +62 -0
- package/dist/context-KxxeMHbR.js.map +1 -0
- package/dist/editors.d.ts +180 -173
- package/dist/editors.js +747 -420
- package/dist/editors.js.map +1 -1
- package/dist/escapeStringRegexp-8MxP2knR.js +6 -0
- package/dist/escapeStringRegexp-8MxP2knR.js.map +1 -0
- package/dist/icons-Cek151jC.js +640 -0
- package/dist/icons-Cek151jC.js.map +1 -0
- package/dist/icons.d.ts +2 -41
- package/dist/icons.js +2 -4
- package/dist/index-m-kQEWiY.d.ts +54 -0
- package/dist/index.d.ts +6192 -9904
- package/dist/index.js +112 -15803
- package/dist/internal/blocks/AIKit.js +2 -0
- package/dist/internal/blocks/AppShell.js +2 -0
- package/dist/internal/blocks/AutoSaveTextarea.js +2 -0
- package/dist/internal/blocks/BrandEditor.js +2 -0
- package/dist/internal/blocks/ChartPanel.js +46 -0
- package/dist/internal/blocks/ChartPanel.js.map +1 -0
- package/dist/internal/blocks/ClipboardButton.js +2 -0
- package/dist/internal/blocks/ColorInput.js +2 -0
- package/dist/internal/blocks/ColorModeSwitch.js +2 -0
- package/dist/internal/blocks/Command.js +2 -0
- package/dist/internal/blocks/CopyField.js +2 -0
- package/dist/internal/blocks/DashboardHero.js +59 -0
- package/dist/internal/blocks/DashboardHero.js.map +1 -0
- package/dist/internal/blocks/DateInput.js +2 -0
- package/dist/internal/blocks/DateRangeInput.js +2 -0
- package/dist/internal/blocks/EmptyConfigurationActionCard.js +16 -0
- package/dist/internal/blocks/EmptyConfigurationActionCard.js.map +1 -0
- package/dist/internal/blocks/EmptyState.js +142 -0
- package/dist/internal/blocks/EmptyState.js.map +1 -0
- package/dist/internal/blocks/ErrorState.js +179 -0
- package/dist/internal/blocks/ErrorState.js.map +1 -0
- package/dist/internal/blocks/ExportMenu.js +41 -0
- package/dist/internal/blocks/ExportMenu.js.map +1 -0
- package/dist/internal/blocks/Form.js +2 -0
- package/dist/internal/blocks/FormGroup.js +2 -0
- package/dist/internal/blocks/GoogleButton.js +95 -0
- package/dist/internal/blocks/GoogleButton.js.map +1 -0
- package/dist/internal/blocks/MicrosoftButton.js +64 -0
- package/dist/internal/blocks/MicrosoftButton.js.map +1 -0
- package/dist/internal/blocks/MultiActionButtonGroup.js +2 -0
- package/dist/internal/blocks/MultiCombobox.js +188 -0
- package/dist/internal/blocks/MultiCombobox.js.map +1 -0
- package/dist/internal/blocks/NumberInput.js +44 -0
- package/dist/internal/blocks/NumberInput.js.map +1 -0
- package/dist/internal/blocks/OtpInput.js +2 -0
- package/dist/internal/blocks/PageHeader.js +2 -0
- package/dist/internal/blocks/PageLayout.js +2 -0
- package/dist/internal/blocks/PageToolbar.js +2 -0
- package/dist/internal/blocks/PasswordInput.js +97 -0
- package/dist/internal/blocks/PasswordInput.js.map +1 -0
- package/dist/internal/blocks/SearchInput.js +2 -0
- package/dist/internal/blocks/SearchInputWithNavigation.js +65 -0
- package/dist/internal/blocks/SearchInputWithNavigation.js.map +1 -0
- package/dist/internal/blocks/SectionNav.js +2 -0
- package/dist/internal/blocks/SplitButton.js +46 -0
- package/dist/internal/blocks/SplitButton.js.map +1 -0
- package/dist/internal/blocks/StatCard.js +97 -0
- package/dist/internal/blocks/StatCard.js.map +1 -0
- package/dist/internal/blocks/TextInput.js +2 -0
- package/dist/internal/blocks/Textarea.js +32 -0
- package/dist/internal/blocks/Textarea.js.map +1 -0
- package/dist/internal/blocks/TimeInput.js +77 -0
- package/dist/internal/blocks/TimeInput.js.map +1 -0
- package/dist/internal/components/Alert.js +2 -0
- package/dist/internal/components/AlertModal.js +2 -0
- package/dist/internal/components/Avatar.js +53 -0
- package/dist/internal/components/Avatar.js.map +1 -0
- package/dist/internal/components/Badge.js +2 -0
- package/dist/internal/components/BrandLogo.js +2 -0
- package/dist/internal/components/Breadcrumb.js +2 -0
- package/dist/internal/components/Button.js +2 -0
- package/dist/internal/components/ButtonGroup.js +66 -0
- package/dist/internal/components/ButtonGroup.js.map +1 -0
- package/dist/internal/components/Calendar.js +2 -0
- package/dist/internal/components/Card.js +2 -0
- package/dist/internal/components/Checkbox.js +2 -0
- package/dist/internal/components/Clipboard.js +2 -0
- package/dist/internal/components/Collapsible.js +2 -0
- package/dist/internal/components/CollapsiblePanel.js +87 -0
- package/dist/internal/components/CollapsiblePanel.js.map +1 -0
- package/dist/internal/components/Combobox.js +2 -0
- package/dist/internal/components/DatePicker.js +2 -0
- package/dist/internal/components/DateRangePicker.js +2 -0
- package/dist/internal/components/DiffView.js +2 -0
- package/dist/internal/components/DotsLoader.js +18 -0
- package/dist/internal/components/DotsLoader.js.map +1 -0
- package/dist/internal/components/DropdownMenu.js +2 -0
- package/dist/internal/components/EmptySearchContent.js +12 -0
- package/dist/internal/components/EmptySearchContent.js.map +1 -0
- package/dist/internal/components/FileUpload.js +2 -0
- package/dist/internal/components/FullScreenModal.js +2 -0
- package/dist/internal/components/HelpBlock.js +25 -0
- package/dist/internal/components/HelpBlock.js.map +1 -0
- package/dist/internal/components/HoverCard.js +2 -0
- package/dist/internal/components/InputGroup.js +2 -0
- package/dist/internal/components/Kbd.js +2 -0
- package/dist/internal/components/Label.js +39 -0
- package/dist/internal/components/Label.js.map +1 -0
- package/dist/internal/components/Link.js +22 -0
- package/dist/internal/components/Link.js.map +1 -0
- package/dist/internal/components/MarkedText.js +2 -0
- package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js +20 -0
- package/dist/internal/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.js.map +1 -0
- package/dist/internal/components/MergeEditor/PaneHeader.js +13 -0
- package/dist/internal/components/MergeEditor/PaneHeader.js.map +1 -0
- package/dist/internal/components/MergeEditor/constants.js +18 -0
- package/dist/internal/components/MergeEditor/constants.js.map +1 -0
- package/dist/internal/components/MergeEditor/useMergeDiff.js +2 -0
- package/dist/internal/components/Modal.js +2 -0
- package/dist/internal/components/Navbar.js +2 -0
- package/dist/internal/components/Pagination.js +2 -0
- package/dist/internal/components/PanelWithDetails.js +31 -0
- package/dist/internal/components/PanelWithDetails.js.map +1 -0
- package/dist/internal/components/Popconfirm.js +2 -0
- package/dist/internal/components/Popover.js +2 -0
- package/dist/internal/components/Progress.js +47 -0
- package/dist/internal/components/Progress.js.map +1 -0
- package/dist/internal/components/RadioGroup.js +2 -0
- package/dist/internal/components/Resizable.js +2 -0
- package/dist/internal/components/ScrollArea.js +42 -0
- package/dist/internal/components/ScrollArea.js.map +1 -0
- package/dist/internal/components/Search.js +2 -0
- package/dist/internal/components/Select.js +2 -0
- package/dist/internal/components/Separator.js +84 -0
- package/dist/internal/components/Separator.js.map +1 -0
- package/dist/internal/components/Sheet.js +2 -0
- package/dist/internal/components/Sidebar.js +2 -0
- package/dist/internal/components/Skeleton/Skeleton.js +39 -0
- package/dist/internal/components/Skeleton/Skeleton.js.map +1 -0
- package/dist/internal/components/Skeleton/SkeletonList.js +41 -0
- package/dist/internal/components/Skeleton/SkeletonList.js.map +1 -0
- package/dist/internal/components/Slider.js +2 -0
- package/dist/internal/components/SpotlightBackdrop.js +132 -0
- package/dist/internal/components/SpotlightBackdrop.js.map +1 -0
- package/dist/internal/components/Stepper.js +2 -0
- package/dist/internal/components/Switch.js +2 -0
- package/dist/internal/components/Table.js +2 -0
- package/dist/internal/components/Tabs.js +2 -0
- package/dist/internal/components/ThemeProvider.js +3 -0
- package/dist/internal/components/TimePicker.js +2 -0
- package/dist/internal/components/Timeline.js +2 -0
- package/dist/internal/components/Toast.js +3 -0
- package/dist/internal/components/Toggle.js +169 -0
- package/dist/internal/components/Toggle.js.map +1 -0
- package/dist/internal/components/ToggleGroup.js +2 -0
- package/dist/internal/components/Tooltip.js +2 -0
- package/dist/internal/components/Truncated.js +45 -0
- package/dist/internal/components/Truncated.js.map +1 -0
- package/dist/internal/components/Workbench.js +2 -0
- package/dist/internal/components/ZoomableSvg.js +2 -0
- package/dist/internal/hooks/useAutosizeInput.js +77 -0
- package/dist/internal/hooks/useAutosizeInput.js.map +1 -0
- package/dist/internal/hooks/useScrollbarPosition.js +45 -0
- package/dist/internal/hooks/useScrollbarPosition.js.map +1 -0
- package/dist/internal/hooks/useStableCallback.js +29 -0
- package/dist/internal/hooks/useStableCallback.js.map +1 -0
- package/dist/internal/utils/mergeRefs.js +20 -0
- package/dist/internal/utils/mergeRefs.js.map +1 -0
- package/dist/internal/utils.js +5 -0
- package/dist/markdown-editor.d.ts +72 -72
- package/dist/markdown-editor.js +1122 -1193
- package/dist/markdown-editor.js.map +1 -1
- package/dist/mermaid.d.ts +12 -12
- package/dist/mermaid.js +2 -10
- package/dist/rjsf.d.ts +33 -34
- package/dist/rjsf.js +1543 -1600
- package/dist/rjsf.js.map +1 -1
- package/dist/rolldown-runtime-Bdc48AWt.js +33 -0
- package/dist/styles-DSUP_-9Z.js +158 -0
- package/dist/styles-DSUP_-9Z.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/testing.d.ts +8 -7
- package/dist/testing.js +36 -16
- package/dist/testing.js.map +1 -1
- package/dist/themeTokens-BNg98Mu9.js +85 -0
- package/dist/themeTokens-BNg98Mu9.js.map +1 -0
- package/dist/toast-CjkURw0M.js +184 -0
- package/dist/toast-CjkURw0M.js.map +1 -0
- package/dist/useColorSchemeState-CYqcUfSH.js +61 -0
- package/dist/useColorSchemeState-CYqcUfSH.js.map +1 -0
- package/dist/useControllableState-M6494mCT.js +31 -0
- package/dist/useControllableState-M6494mCT.js.map +1 -0
- package/dist/useElement-DkF6esWL.js +15 -0
- package/dist/useElement-DkF6esWL.js.map +1 -0
- package/dist/useMergeDiff-CvowEXJ1.js +465 -0
- package/dist/useMergeDiff-CvowEXJ1.js.map +1 -0
- package/dist/utils-D0c5VAyF.js +308 -0
- package/dist/utils-D0c5VAyF.js.map +1 -0
- package/package.json +10 -9
- package/src/styles.css +35 -7
- package/src/theme.css +64 -0
- package/dist/MermaidDiagram-EOKJHQQV.js +0 -10
- package/dist/MermaidDiagram-EOKJHQQV.js.map +0 -1
- package/dist/chunk-63NSN2VL.js +0 -274
- package/dist/chunk-63NSN2VL.js.map +0 -1
- package/dist/chunk-6FPEI4EM.js +0 -6683
- package/dist/chunk-6FPEI4EM.js.map +0 -1
- package/dist/chunk-7PUUHEJQ.js +0 -1313
- package/dist/chunk-7PUUHEJQ.js.map +0 -1
- package/dist/chunk-BOHNXTMM.js +0 -606
- package/dist/chunk-BOHNXTMM.js.map +0 -1
- package/dist/chunk-C3L3TBBT.js +0 -242
- package/dist/chunk-C3L3TBBT.js.map +0 -1
- package/dist/chunk-CTCFYWJC.js +0 -407
- package/dist/chunk-CTCFYWJC.js.map +0 -1
- package/dist/chunk-ESBL3IPF.js +0 -23
- package/dist/chunk-ESBL3IPF.js.map +0 -1
- package/dist/chunk-IJTHFNNJ.js +0 -261
- package/dist/chunk-IJTHFNNJ.js.map +0 -1
- package/dist/chunk-JP7PNHLH.js +0 -40
- package/dist/chunk-JP7PNHLH.js.map +0 -1
- package/dist/chunk-KPNAW5MU.js +0 -229
- package/dist/chunk-KPNAW5MU.js.map +0 -1
- package/dist/chunk-L37JJ6MR.js +0 -152
- package/dist/chunk-L37JJ6MR.js.map +0 -1
- package/dist/chunk-Q7NWXLCT.js +0 -90
- package/dist/chunk-Q7NWXLCT.js.map +0 -1
- package/dist/chunk-SYIEF644.js +0 -1016
- package/dist/chunk-SYIEF644.js.map +0 -1
- package/dist/chunk-VMFSRV5H.js +0 -16
- package/dist/chunk-VMFSRV5H.js.map +0 -1
- package/dist/chunk-VPPM7UUQ.js +0 -47
- package/dist/chunk-VPPM7UUQ.js.map +0 -1
- package/dist/chunk-XV3UUOYF.js +0 -845
- package/dist/chunk-XV3UUOYF.js.map +0 -1
- package/dist/constants-D3gaMY-W.d.ts +0 -39
- package/dist/icons.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/mermaid.js.map +0 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { cn } from "../../classNames-BzrkDnOD.js";
|
|
2
|
+
import { keyCodes } from "../../utils-D0c5VAyF.js";
|
|
3
|
+
import { ChevronDown } from "../../icons-Cek151jC.js";
|
|
4
|
+
import { Collapsible } from "../../Collapsible-BQXWEOBC.js";
|
|
5
|
+
import { useState } from "react";
|
|
6
|
+
import { cva } from "class-variance-authority";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
//#region src/components/CollapsiblePanel.tsx
|
|
9
|
+
const headerVariants = cva("tw:flex tw:flex-1 tw:items-center tw:gap-2 tw:rounded tw:px-4 tw:py-2.5 tw:text-sm tw:text-muted-foreground", {
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
default: "tw:bg-muted",
|
|
13
|
+
white: "tw:bg-card"
|
|
14
|
+
},
|
|
15
|
+
isDisabled: {
|
|
16
|
+
true: "tw:cursor-not-allowed tw:opacity-50",
|
|
17
|
+
false: ""
|
|
18
|
+
},
|
|
19
|
+
hasEnforcedState: {
|
|
20
|
+
true: "",
|
|
21
|
+
false: ""
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
compoundVariants: [{
|
|
25
|
+
isDisabled: false,
|
|
26
|
+
hasEnforcedState: false,
|
|
27
|
+
class: "tw:cursor-pointer tw:hover:text-primary"
|
|
28
|
+
}],
|
|
29
|
+
defaultVariants: {
|
|
30
|
+
variant: "default",
|
|
31
|
+
isDisabled: false,
|
|
32
|
+
hasEnforcedState: false
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
const CollapsiblePanel = ({ header, className, bodyClassName, headerClassName, defaultExpanded = false, isDisabled = false, children, isOpen, onToggle, variant = "default" }) => {
|
|
36
|
+
const [isUncontrolledOpen, setIsUncontrolledOpen] = useState(defaultExpanded);
|
|
37
|
+
const open = isOpen ?? isUncontrolledOpen;
|
|
38
|
+
const hasEnforcedState = isOpen !== void 0 && onToggle === void 0;
|
|
39
|
+
const handleCollapse = (event) => {
|
|
40
|
+
if (event) event.stopPropagation();
|
|
41
|
+
if (!isDisabled) setIsUncontrolledOpen(!isUncontrolledOpen);
|
|
42
|
+
};
|
|
43
|
+
const handleClick = (e) => {
|
|
44
|
+
if (onToggle) {
|
|
45
|
+
onToggle(e);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
handleCollapse(e);
|
|
49
|
+
};
|
|
50
|
+
const handleKeyUp = (e) => {
|
|
51
|
+
if ([keyCodes.ENTER, keyCodes.SPACE].includes(e.key)) handleClick(e);
|
|
52
|
+
};
|
|
53
|
+
return /* @__PURE__ */ jsxs(Collapsible, {
|
|
54
|
+
open,
|
|
55
|
+
className: cn("tw:group tw:flex tw:flex-col tw:rounded tw:!border tw:!border-solid tw:!border-border tw:bg-card", className),
|
|
56
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
57
|
+
className: cn(headerVariants({
|
|
58
|
+
variant,
|
|
59
|
+
isDisabled,
|
|
60
|
+
hasEnforcedState
|
|
61
|
+
}), headerClassName),
|
|
62
|
+
...!hasEnforcedState && !isDisabled && {
|
|
63
|
+
role: "button",
|
|
64
|
+
tabIndex: 0,
|
|
65
|
+
onClick: handleClick,
|
|
66
|
+
onKeyUp: handleKeyUp
|
|
67
|
+
},
|
|
68
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
69
|
+
className: "tw:flex tw:flex-1 tw:items-center tw:gap-2 tw:py-px tw:text-sm tw:font-medium tw:text-foreground",
|
|
70
|
+
children: header
|
|
71
|
+
}), !isDisabled && /* @__PURE__ */ jsx("div", {
|
|
72
|
+
className: "tw:ml-auto tw:shrink-0",
|
|
73
|
+
children: /* @__PURE__ */ jsx(ChevronDown, {
|
|
74
|
+
"data-state": open ? "open" : "closed",
|
|
75
|
+
className: "tw:size-5 tw:data-[state=open]:rotate-180"
|
|
76
|
+
})
|
|
77
|
+
})]
|
|
78
|
+
}), /* @__PURE__ */ jsx(Collapsible.Content, { children: /* @__PURE__ */ jsx("div", {
|
|
79
|
+
className: cn("tw:px-4 tw:py-3", bodyClassName),
|
|
80
|
+
children
|
|
81
|
+
}) })]
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
//#endregion
|
|
85
|
+
export { CollapsiblePanel };
|
|
86
|
+
|
|
87
|
+
//# sourceMappingURL=CollapsiblePanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollapsiblePanel.js","names":[],"sources":["../../../src/components/CollapsiblePanel.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { KeyboardEvent, MouseEvent, ReactNode } from 'react';\nimport { cva } from 'class-variance-authority';\n\nimport { keyCodes } from '../constants/keyCodes';\nimport { ChevronDown } from '../icons';\nimport { cn } from '../utils';\n\nimport { Collapsible } from './Collapsible';\n\nconst headerVariants = cva(\n 'tw:flex tw:flex-1 tw:items-center tw:gap-2 tw:rounded tw:px-4 tw:py-2.5 tw:text-sm tw:text-muted-foreground',\n {\n variants: {\n variant: {\n default: 'tw:bg-muted',\n white: 'tw:bg-card',\n },\n isDisabled: {\n true: 'tw:cursor-not-allowed tw:opacity-50',\n false: '',\n },\n hasEnforcedState: {\n true: '',\n false: '',\n },\n },\n compoundVariants: [\n {\n isDisabled: false,\n hasEnforcedState: false,\n class: 'tw:cursor-pointer tw:hover:text-primary',\n },\n ],\n defaultVariants: {\n variant: 'default',\n isDisabled: false,\n hasEnforcedState: false,\n },\n },\n);\n\ntype Props = {\n header: ReactNode;\n isDisabled?: boolean;\n defaultExpanded?: boolean;\n className?: string;\n bodyClassName?: string;\n headerClassName?: string;\n isOpen?: boolean;\n onToggle?: (event?: MouseEvent<HTMLDivElement> | KeyboardEvent<HTMLDivElement>) => void;\n variant?: 'default' | 'white';\n children: ReactNode;\n};\n\nexport const CollapsiblePanel = ({\n header,\n className,\n bodyClassName,\n headerClassName,\n defaultExpanded = false,\n isDisabled = false,\n children,\n isOpen,\n onToggle,\n variant = 'default',\n}: Props) => {\n const [isUncontrolledOpen, setIsUncontrolledOpen] = useState(defaultExpanded);\n const open = isOpen ?? isUncontrolledOpen;\n const hasEnforcedState = isOpen !== undefined && onToggle === undefined;\n\n const handleCollapse = (event: MouseEvent<HTMLDivElement> | KeyboardEvent<HTMLDivElement>) => {\n if (event) {\n event.stopPropagation();\n }\n if (!isDisabled) {\n setIsUncontrolledOpen(!isUncontrolledOpen);\n }\n };\n\n const handleClick = (e: MouseEvent<HTMLDivElement> | KeyboardEvent<HTMLDivElement>) => {\n if (onToggle) {\n onToggle(e);\n return;\n }\n handleCollapse(e);\n };\n\n const handleKeyUp = (e: KeyboardEvent<HTMLDivElement>) => {\n if ([keyCodes.ENTER, keyCodes.SPACE].includes(e.key)) {\n handleClick(e);\n }\n };\n\n return (\n // `header` is caller-supplied and routinely contains its own buttons, so the toggle stays on\n // this wrapper — `Collapsible.Trigger` renders a `<button>` and would nest them.\n <Collapsible\n open={open}\n className={cn(\n 'tw:group tw:flex tw:flex-col tw:rounded tw:!border tw:!border-solid tw:!border-border tw:bg-card',\n className,\n )}\n >\n <div\n className={cn(headerVariants({ variant, isDisabled, hasEnforcedState }), headerClassName)}\n {...(!hasEnforcedState &&\n !isDisabled && {\n role: 'button',\n tabIndex: 0,\n onClick: handleClick,\n onKeyUp: handleKeyUp,\n })}\n >\n <div className=\"tw:flex tw:flex-1 tw:items-center tw:gap-2 tw:py-px tw:text-sm tw:font-medium tw:text-foreground\">\n {header}\n </div>\n {!isDisabled && (\n <div className=\"tw:ml-auto tw:shrink-0\">\n {/* `group-*` matches *any* ancestor `.group`, so a nested panel's chevron would\n follow the outer panel's state. */}\n <ChevronDown\n data-state={open ? 'open' : 'closed'}\n className=\"tw:size-5 tw:data-[state=open]:rotate-180\"\n />\n </div>\n )}\n </div>\n <Collapsible.Content>\n <div className={cn('tw:px-4 tw:py-3', bodyClassName)}>{children}</div>\n </Collapsible.Content>\n </Collapsible>\n );\n};\n"],"mappings":";;;;;;;;AAUA,MAAM,iBAAiB,IACrB,+GACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;GACT,OAAO;EACT;EACA,YAAY;GACV,MAAM;GACN,OAAO;EACT;EACA,kBAAkB;GAChB,MAAM;GACN,OAAO;EACT;CACF;CACA,kBAAkB,CAChB;EACE,YAAY;EACZ,kBAAkB;EAClB,OAAO;CACT,CACF;CACA,iBAAiB;EACf,SAAS;EACT,YAAY;EACZ,kBAAkB;CACpB;AACF,CACF;AAeA,MAAa,oBAAoB,EAC/B,QACA,WACA,eACA,iBACA,kBAAkB,OAClB,aAAa,OACb,UACA,QACA,UACA,UAAU,gBACC;CACX,MAAM,CAAC,oBAAoB,yBAAyB,SAAS,eAAe;CAC5E,MAAM,OAAO,UAAU;CACvB,MAAM,mBAAmB,WAAW,KAAA,KAAa,aAAa,KAAA;CAE9D,MAAM,kBAAkB,UAAsE;EAC5F,IAAI,OACF,MAAM,gBAAgB;EAExB,IAAI,CAAC,YACH,sBAAsB,CAAC,kBAAkB;CAE7C;CAEA,MAAM,eAAe,MAAkE;EACrF,IAAI,UAAU;GACZ,SAAS,CAAC;GACV;EACF;EACA,eAAe,CAAC;CAClB;CAEA,MAAM,eAAe,MAAqC;EACxD,IAAI,CAAC,SAAS,OAAO,SAAS,KAAK,CAAC,CAAC,SAAS,EAAE,GAAG,GACjD,YAAY,CAAC;CAEjB;CAEA,OAGE,qBAAC,aAAD;EACQ;EACN,WAAW,GACT,oGACA,SACF;EALF,UAAA,CAOE,qBAAC,OAAD;GACE,WAAW,GAAG,eAAe;IAAE;IAAS;IAAY;GAAiB,CAAC,GAAG,eAAe;GACxF,GAAK,CAAC,oBACJ,CAAC,cAAc;IACb,MAAM;IACN,UAAU;IACV,SAAS;IACT,SAAS;GACX;GARJ,UAAA,CAUE,oBAAC,OAAD;IAAK,WAAU;IACZ,UAAA;GACE,CAAA,GACJ,CAAC,cACA,oBAAC,OAAD;IAAK,WAAU;IAGb,UAAA,oBAAC,aAAD;KACE,cAAY,OAAO,SAAS;KAC5B,WAAU;IACX,CAAA;GACE,CAAA,CAEJ;EACL,CAAA,GAAA,oBAAC,YAAY,SAAb,EAAA,UACE,oBAAC,OAAD;GAAK,WAAW,GAAG,mBAAmB,aAAa;GAAI;EAAc,CAAA,EAClD,CAAA,CACV;;AAEjB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { cn } from "../../classNames-BzrkDnOD.js";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/DotsLoader.tsx
|
|
4
|
+
const DOT_CLASS_NAME = cn("tw:h-1.5", "tw:w-1.5", "tw:rounded-full", "tw:bg-muted-foreground");
|
|
5
|
+
const DotsLoader = ({ className }) => {
|
|
6
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
7
|
+
className: cn("tw:relative tw:-m-0.5 tw:flex tw:items-center tw:justify-center tw:gap-1", className),
|
|
8
|
+
children: [
|
|
9
|
+
/* @__PURE__ */ jsx("div", { className: cn(DOT_CLASS_NAME, "tw:animate-dot-pulse-1") }),
|
|
10
|
+
/* @__PURE__ */ jsx("div", { className: cn(DOT_CLASS_NAME, "tw:animate-dot-pulse-2") }),
|
|
11
|
+
/* @__PURE__ */ jsx("div", { className: cn(DOT_CLASS_NAME, "tw:animate-dot-pulse-3") })
|
|
12
|
+
]
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
16
|
+
export { DotsLoader };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=DotsLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DotsLoader.js","names":[],"sources":["../../../src/components/DotsLoader.tsx"],"sourcesContent":["import { cn } from '../utils/classNames';\n\ntype DotsLoaderProps = {\n className?: string;\n};\n\nconst DOT_CLASS_NAME = cn('tw:h-1.5', 'tw:w-1.5', 'tw:rounded-full', 'tw:bg-muted-foreground');\n\nexport const DotsLoader = ({ className }: DotsLoaderProps) => {\n return (\n <div\n className={cn(\n 'tw:relative tw:-m-0.5 tw:flex tw:items-center tw:justify-center tw:gap-1',\n className,\n )}\n >\n <div className={cn(DOT_CLASS_NAME, 'tw:animate-dot-pulse-1')} />\n <div className={cn(DOT_CLASS_NAME, 'tw:animate-dot-pulse-2')} />\n <div className={cn(DOT_CLASS_NAME, 'tw:animate-dot-pulse-3')} />\n </div>\n );\n};\n"],"mappings":";;;AAMA,MAAM,iBAAiB,GAAG,YAAY,YAAY,mBAAmB,wBAAwB;AAE7F,MAAa,cAAc,EAAE,gBAAiC;CAC5D,OACE,qBAAC,OAAD;EACE,WAAW,GACT,4EACA,SACF;EAJF,UAAA;GAME,oBAAC,OAAD,EAAK,WAAW,GAAG,gBAAgB,wBAAwB,EAAI,CAAA;GAC/D,oBAAC,OAAD,EAAK,WAAW,GAAG,gBAAgB,wBAAwB,EAAI,CAAA;GAC/D,oBAAC,OAAD,EAAK,WAAW,GAAG,gBAAgB,wBAAwB,EAAI,CAAA;EAC5D;;AAET"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
//#region src/components/EmptySearchContent.tsx
|
|
3
|
+
const EmptySearchContent = ({ children = "No results found." }) => {
|
|
4
|
+
return /* @__PURE__ */ jsx("div", {
|
|
5
|
+
className: "tw:px-0 tw:py-[30px] tw:text-center tw:text-sm tw:text-muted-foreground",
|
|
6
|
+
children
|
|
7
|
+
});
|
|
8
|
+
};
|
|
9
|
+
//#endregion
|
|
10
|
+
export { EmptySearchContent };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=EmptySearchContent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptySearchContent.js","names":[],"sources":["../../../src/components/EmptySearchContent.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\ntype Props = {\n children?: ReactNode;\n};\n\nexport const EmptySearchContent = ({ children = 'No results found.' }: Props) => {\n return (\n <div className=\"tw:px-0 tw:py-[30px] tw:text-center tw:text-sm tw:text-muted-foreground\">\n {children}\n </div>\n );\n};\n"],"mappings":";;AAMA,MAAa,sBAAsB,EAAE,WAAW,0BAAiC;CAC/E,OACE,oBAAC,OAAD;EAAK,WAAU;EACZ;CACE,CAAA;AAET"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/HelpBlock/HelpBlock.tsx
|
|
4
|
+
const helpVariants = cva(["tw:m-0", "tw:text-xs"], {
|
|
5
|
+
defaultVariants: { state: "default" },
|
|
6
|
+
variants: { state: {
|
|
7
|
+
default: ["tw:text-muted-foreground"],
|
|
8
|
+
warning: ["tw:text-warning"]
|
|
9
|
+
} }
|
|
10
|
+
});
|
|
11
|
+
const HelpBlock = ({ children, className, state = "default", ...rest }) => {
|
|
12
|
+
if (!children) return null;
|
|
13
|
+
return /* @__PURE__ */ jsx("p", {
|
|
14
|
+
...rest,
|
|
15
|
+
className: helpVariants({
|
|
16
|
+
state,
|
|
17
|
+
className
|
|
18
|
+
}),
|
|
19
|
+
children
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { HelpBlock };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=HelpBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpBlock.js","names":[],"sources":["../../../src/components/HelpBlock/HelpBlock.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst helpVariants = cva(['tw:m-0', 'tw:text-xs'], {\n defaultVariants: {\n state: 'default',\n },\n variants: {\n state: {\n default: ['tw:text-muted-foreground'],\n warning: ['tw:text-warning'],\n },\n },\n});\n\ntype Props = ComponentPropsWithRef<'p'> & VariantProps<typeof helpVariants>;\n\nexport const HelpBlock = ({ children, className, state = 'default', ...rest }: Props) => {\n if (!children) return null;\n\n return (\n <p {...rest} className={helpVariants({ state, className })}>\n {children}\n </p>\n );\n};\n"],"mappings":";;;AAGA,MAAM,eAAe,IAAI,CAAC,UAAU,YAAY,GAAG;CACjD,iBAAiB,EACf,OAAO,UACT;CACA,UAAU,EACR,OAAO;EACL,SAAS,CAAC,0BAA0B;EACpC,SAAS,CAAC,iBAAiB;CAC7B,EACF;AACF,CAAC;AAID,MAAa,aAAa,EAAE,UAAU,WAAW,QAAQ,WAAW,GAAG,WAAkB;CACvF,IAAI,CAAC,UAAU,OAAO;CAEtB,OACE,oBAAC,KAAD;EAAG,GAAI;EAAM,WAAW,aAAa;GAAE;GAAO;EAAU,CAAC;EACtD;CACA,CAAA;AAEP"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { cn } from "../../classNames-BzrkDnOD.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as RLabel from "@radix-ui/react-label";
|
|
4
|
+
//#region src/components/Label/Label.tsx
|
|
5
|
+
/**
|
|
6
|
+
* Decorative optional marker (`(optional)`). Like `Label.Required` it is `aria-hidden`, so it is
|
|
7
|
+
* purely visual — optionality is conveyed by the *absence* of `aria-required`/`required` on the
|
|
8
|
+
* associated control, not by this text.
|
|
9
|
+
*/
|
|
10
|
+
const Optional = ({ className, ...props }) => /* @__PURE__ */ jsx("span", {
|
|
11
|
+
...props,
|
|
12
|
+
"aria-hidden": true,
|
|
13
|
+
className: cn("tw:ml-0.5", "tw:text-muted-foreground", className),
|
|
14
|
+
children: "(optional)"
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* Decorative required marker (the `*`). It is `aria-hidden`, so it is purely visual and is **not**
|
|
18
|
+
* announced by assistive tech — conveying the requirement is the caller's responsibility: set
|
|
19
|
+
* `aria-required` (or `required`) on the associated control.
|
|
20
|
+
*/
|
|
21
|
+
const Required = ({ className, ...props }) => /* @__PURE__ */ jsx("span", {
|
|
22
|
+
...props,
|
|
23
|
+
"aria-hidden": true,
|
|
24
|
+
className: cn("tw:ml-0.5", "tw:text-primary", className),
|
|
25
|
+
children: "*"
|
|
26
|
+
});
|
|
27
|
+
const Label = ({ className, children, id, htmlFor, ...rest }) => /* @__PURE__ */ jsx(RLabel.Root, {
|
|
28
|
+
...rest,
|
|
29
|
+
id: id?.toString(),
|
|
30
|
+
htmlFor: htmlFor?.toString(),
|
|
31
|
+
className: cn("tw:m-0 tw:text-foreground tw:font-normal tw:peer-disabled:opacity-50", className),
|
|
32
|
+
children
|
|
33
|
+
});
|
|
34
|
+
Label.Optional = Optional;
|
|
35
|
+
Label.Required = Required;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { Label };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=Label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Label.js","names":[],"sources":["../../../src/components/Label/Label.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react';\nimport type { LabelProps } from '@radix-ui/react-label';\nimport * as RLabel from '@radix-ui/react-label';\n\nimport { cn } from '../../utils';\n\ntype Props = { id?: string | number; htmlFor?: string | number } & Omit<\n LabelProps,\n 'id' | 'htmlFor'\n>;\n\n/**\n * Decorative optional marker (`(optional)`). Like `Label.Required` it is `aria-hidden`, so it is\n * purely visual — optionality is conveyed by the *absence* of `aria-required`/`required` on the\n * associated control, not by this text.\n */\nconst Optional = ({ className, ...props }: ComponentPropsWithRef<'span'>) => (\n <span {...props} aria-hidden className={cn('tw:ml-0.5', 'tw:text-muted-foreground', className)}>\n (optional)\n </span>\n);\n\n/**\n * Decorative required marker (the `*`). It is `aria-hidden`, so it is purely visual and is **not**\n * announced by assistive tech — conveying the requirement is the caller's responsibility: set\n * `aria-required` (or `required`) on the associated control.\n */\nconst Required = ({ className, ...props }: ComponentPropsWithRef<'span'>) => (\n <span {...props} aria-hidden className={cn('tw:ml-0.5', 'tw:text-primary', className)}>\n *\n </span>\n);\n\nexport const Label = ({ className, children, id, htmlFor, ...rest }: Props) => (\n <RLabel.Root\n {...rest}\n id={id?.toString()}\n htmlFor={htmlFor?.toString()}\n className={cn(\n 'tw:m-0 tw:text-foreground tw:font-normal tw:peer-disabled:opacity-50',\n className,\n )}\n >\n {children}\n </RLabel.Root>\n);\n\nLabel.Optional = Optional;\nLabel.Required = Required;\n"],"mappings":";;;;;;;;;AAgBA,MAAM,YAAY,EAAE,WAAW,GAAG,YAChC,oBAAC,QAAD;CAAM,GAAI;CAAO,eAAA;CAAY,WAAW,GAAG,aAAa,4BAA4B,SAAS;CAAG,UAAA;AAE1F,CAAA;;;;;;AAQR,MAAM,YAAY,EAAE,WAAW,GAAG,YAChC,oBAAC,QAAD;CAAM,GAAI;CAAO,eAAA;CAAY,WAAW,GAAG,aAAa,mBAAmB,SAAS;CAAG,UAAA;AAEjF,CAAA;AAGR,MAAa,SAAS,EAAE,WAAW,UAAU,IAAI,SAAS,GAAG,WAC3D,oBAAC,OAAO,MAAR;CACE,GAAI;CACJ,IAAI,IAAI,SAAS;CACjB,SAAS,SAAS,SAAS;CAC3B,WAAW,GACT,wEACA,SACF;CAEC;AACU,CAAA;AAGf,MAAM,WAAW;AACjB,MAAM,WAAW"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { cn } from "../../classNames-BzrkDnOD.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/Link.tsx
|
|
4
|
+
const Link = ({ ref, children, target = "_blank", rel = "noopener noreferrer", onClick, className, ...rest }) => {
|
|
5
|
+
const handleOnClick = (event) => {
|
|
6
|
+
event.stopPropagation();
|
|
7
|
+
onClick?.(event);
|
|
8
|
+
};
|
|
9
|
+
return /* @__PURE__ */ jsx("a", {
|
|
10
|
+
...rest,
|
|
11
|
+
ref,
|
|
12
|
+
target,
|
|
13
|
+
rel,
|
|
14
|
+
onClick: handleOnClick,
|
|
15
|
+
className: cn("tw:text-primary tw:underline tw:hover:text-primary/90 tw:hover:no-underline", className),
|
|
16
|
+
children
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
//#endregion
|
|
20
|
+
export { Link };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=Link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Link.js","names":[],"sources":["../../../src/components/Link.tsx"],"sourcesContent":["import type { ComponentProps, MouseEventHandler } from 'react';\n\nimport { cn } from '../utils';\n\ntype Props = ComponentProps<'a'>;\n\nexport const Link = ({\n ref,\n children,\n target = '_blank',\n rel = 'noopener noreferrer',\n onClick,\n className,\n ...rest\n}: Props) => {\n const handleOnClick: MouseEventHandler<HTMLAnchorElement> = (event) => {\n event.stopPropagation();\n onClick?.(event);\n };\n\n return (\n // oxlint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n <a\n {...rest}\n ref={ref}\n target={target}\n rel={rel}\n onClick={handleOnClick}\n className={cn(\n 'tw:text-primary tw:underline tw:hover:text-primary/90 tw:hover:no-underline',\n className,\n )}\n >\n {children}\n </a>\n );\n};\n"],"mappings":";;;AAMA,MAAa,QAAQ,EACnB,KACA,UACA,SAAS,UACT,MAAM,uBACN,SACA,WACA,GAAG,WACQ;CACX,MAAM,iBAAuD,UAAU;EACrE,MAAM,gBAAgB;EACtB,UAAU,KAAK;CACjB;CAEA,OAEE,oBAAC,KAAD;EACE,GAAI;EACC;EACG;EACH;EACL,SAAS;EACT,WAAW,GACT,+EACA,SACF;EAEC;CACA,CAAA;AAEP"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { cn } from "../../../../classNames-BzrkDnOD.js";
|
|
2
|
+
import { AlertTriangle, CircleCheck } from "../../../../icons-Cek151jC.js";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.tsx
|
|
5
|
+
const ConflictStatusIndicator = ({ remainingConflicts, remainingSafeChanges }) => {
|
|
6
|
+
const hasConflicts = remainingConflicts > 0;
|
|
7
|
+
const allDone = !hasConflicts && remainingSafeChanges === 0;
|
|
8
|
+
const colorClass = hasConflicts ? "tw:text-warning-500" : allDone ? "tw:text-green-500" : "tw:text-muted-foreground";
|
|
9
|
+
const parts = [];
|
|
10
|
+
if (hasConflicts) parts.push(`${remainingConflicts} conflict${remainingConflicts !== 1 ? "s" : ""}`);
|
|
11
|
+
if (remainingSafeChanges > 0) parts.push(`${remainingSafeChanges} change${remainingSafeChanges !== 1 ? "s" : ""}`);
|
|
12
|
+
return /* @__PURE__ */ jsxs("p", {
|
|
13
|
+
className: cn("tw:m-0 tw:flex tw:items-center tw:gap-1.5 tw:text-sm tw:font-medium", colorClass),
|
|
14
|
+
children: [allDone ? /* @__PURE__ */ jsx(CircleCheck, { className: "tw:size-4" }) : /* @__PURE__ */ jsx(AlertTriangle, { className: "tw:size-4" }), allDone ? "All changes resolved" : `${parts.join(", ")} remaining`]
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
18
|
+
export { ConflictStatusIndicator };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=ConflictStatusIndicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConflictStatusIndicator.js","names":[],"sources":["../../../../../src/components/MergeEditor/ConflictStatus/ConflictStatusIndicator.tsx"],"sourcesContent":["import { AlertTriangle, CircleCheck } from '../../../icons';\nimport { cn } from '../../../utils';\n\ntype Props = {\n remainingConflicts: number;\n remainingSafeChanges: number;\n};\n\nexport const ConflictStatusIndicator = ({ remainingConflicts, remainingSafeChanges }: Props) => {\n const hasConflicts = remainingConflicts > 0;\n const allDone = !hasConflicts && remainingSafeChanges === 0;\n\n const colorClass = hasConflicts\n ? 'tw:text-warning-500'\n : allDone\n ? 'tw:text-green-500'\n : 'tw:text-muted-foreground';\n\n const parts: string[] = [];\n if (hasConflicts) {\n parts.push(`${remainingConflicts} conflict${remainingConflicts !== 1 ? 's' : ''}`);\n }\n if (remainingSafeChanges > 0) {\n parts.push(`${remainingSafeChanges} change${remainingSafeChanges !== 1 ? 's' : ''}`);\n }\n\n return (\n <p\n className={cn(\n 'tw:m-0 tw:flex tw:items-center tw:gap-1.5 tw:text-sm tw:font-medium',\n colorClass,\n )}\n >\n {allDone ? <CircleCheck className=\"tw:size-4\" /> : <AlertTriangle className=\"tw:size-4\" />}\n {allDone ? 'All changes resolved' : `${parts.join(', ')} remaining`}\n </p>\n );\n};\n"],"mappings":";;;;AAQA,MAAa,2BAA2B,EAAE,oBAAoB,2BAAkC;CAC9F,MAAM,eAAe,qBAAqB;CAC1C,MAAM,UAAU,CAAC,gBAAgB,yBAAyB;CAE1D,MAAM,aAAa,eACf,wBACA,UACE,sBACA;CAEN,MAAM,QAAkB,CAAC;CACzB,IAAI,cACF,MAAM,KAAK,GAAG,mBAAmB,WAAW,uBAAuB,IAAI,MAAM,IAAI;CAEnF,IAAI,uBAAuB,GACzB,MAAM,KAAK,GAAG,qBAAqB,SAAS,yBAAyB,IAAI,MAAM,IAAI;CAGrF,OACE,qBAAC,KAAD;EACE,WAAW,GACT,uEACA,UACF;EAJF,UAAA,CAMG,UAAU,oBAAC,aAAD,EAAa,WAAU,YAAa,CAAA,IAAI,oBAAC,eAAD,EAAe,WAAU,YAAa,CAAA,GACxF,UAAU,yBAAyB,GAAG,MAAM,KAAK,IAAI,EAAE,WACvD;;AAEP"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
//#region src/components/MergeEditor/PaneHeader.tsx
|
|
3
|
+
const PaneHeader = ({ label, sublabel }) => /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", {
|
|
4
|
+
className: "tw:m-0 tw:text-sm tw:font-medium tw:text-foreground",
|
|
5
|
+
children: label
|
|
6
|
+
}), sublabel && /* @__PURE__ */ jsx("p", {
|
|
7
|
+
className: "tw:m-0 tw:text-xs tw:text-muted-foreground",
|
|
8
|
+
children: sublabel
|
|
9
|
+
})] });
|
|
10
|
+
//#endregion
|
|
11
|
+
export { PaneHeader };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=PaneHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PaneHeader.js","names":[],"sources":["../../../../src/components/MergeEditor/PaneHeader.tsx"],"sourcesContent":["type Props = {\n label: string;\n sublabel?: string;\n};\n\nexport const PaneHeader = ({ label, sublabel }: Props) => (\n <div>\n <p className=\"tw:m-0 tw:text-sm tw:font-medium tw:text-foreground\">{label}</p>\n {sublabel && <p className=\"tw:m-0 tw:text-xs tw:text-muted-foreground\">{sublabel}</p>}\n </div>\n);\n"],"mappings":";;AAKA,MAAa,cAAc,EAAE,OAAO,eAClC,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,KAAD;CAAG,WAAU;CAAuD,UAAA;AAAS,CAAA,GAC5E,YAAY,oBAAC,KAAD;CAAG,WAAU;CAA8C,UAAA;AAAY,CAAA,CACjF,EAAA,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/components/MergeEditor/constants.ts
|
|
2
|
+
const CHUNK_TYPE = {
|
|
3
|
+
UNCHANGED: "unchanged",
|
|
4
|
+
ADDED: "added",
|
|
5
|
+
REMOVED: "removed"
|
|
6
|
+
};
|
|
7
|
+
const CHANGE_CLASS = {
|
|
8
|
+
SAFE: "safe",
|
|
9
|
+
CONFLICT: "conflict"
|
|
10
|
+
};
|
|
11
|
+
/** Must match the CodeMirror line-height set in MergePane */
|
|
12
|
+
const LINE_HEIGHT_PX = 20;
|
|
13
|
+
/** Must match the rendered header height in MergePane (py-3 + content + border) */
|
|
14
|
+
const PANE_HEADER_HEIGHT_PX = 58;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { CHANGE_CLASS, CHUNK_TYPE, LINE_HEIGHT_PX, PANE_HEADER_HEIGHT_PX };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":[],"sources":["../../../../src/components/MergeEditor/constants.ts"],"sourcesContent":["export const CHUNK_TYPE = {\n UNCHANGED: 'unchanged',\n ADDED: 'added',\n REMOVED: 'removed',\n} as const;\n\ntype ChunkType = (typeof CHUNK_TYPE)[keyof typeof CHUNK_TYPE];\n\nexport type DiffChunk = {\n type: ChunkType;\n value: string;\n /** 1-indexed start line in the old (left) text */\n oldStart: number;\n /** 1-indexed end line in the old (left) text */\n oldEnd: number;\n /** 1-indexed start line in the new (right) text */\n newStart: number;\n /** 1-indexed end line in the new (right) text */\n newEnd: number;\n};\n\n/**\n * A paired conflict: adjacent REMOVED + ADDED chunks from diffLines,\n * representing a section that was modified. If only one side exists,\n * the other is empty (pure insertion or deletion).\n */\nexport type MergeConflict = {\n id: string;\n oldValue: string;\n oldStartLine: number;\n oldEndLine: number;\n newValue: string;\n newStartLine: number;\n newEndLine: number;\n};\n\nexport const CHANGE_CLASS = {\n SAFE: 'safe',\n CONFLICT: 'conflict',\n} as const;\n\nexport type ChangeClassification = (typeof CHANGE_CLASS)[keyof typeof CHANGE_CLASS];\n\n/** Must match the CodeMirror line-height set in MergePane */\nexport const LINE_HEIGHT_PX = 20;\n\n/** Must match the rendered header height in MergePane (py-3 + content + border) */\nexport const PANE_HEADER_HEIGHT_PX = 58;\n"],"mappings":";AAAA,MAAa,aAAa;CACxB,WAAW;CACX,OAAO;CACP,SAAS;AACX;AAgCA,MAAa,eAAe;CAC1B,MAAM;CACN,UAAU;AACZ;;AAKA,MAAa,iBAAiB;;AAG9B,MAAa,wBAAwB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { cn } from "../../classNames-BzrkDnOD.js";
|
|
2
|
+
import { ChevronDown } from "../../icons-Cek151jC.js";
|
|
3
|
+
import { Collapsible } from "../../Collapsible-BQXWEOBC.js";
|
|
4
|
+
import { useState } from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/PanelWithDetails.tsx
|
|
7
|
+
const PanelWithDetails = ({ defaultExpanded = false, labelCollapse = "Hide details", labelOpen = "Show details", placement = "top", children }) => {
|
|
8
|
+
const [isOpen, setIsOpen] = useState(defaultExpanded);
|
|
9
|
+
return /* @__PURE__ */ jsxs(Collapsible, {
|
|
10
|
+
open: isOpen,
|
|
11
|
+
onOpenChange: setIsOpen,
|
|
12
|
+
className: cn("tw:flex", placement === "bottom" ? "tw:flex-col-reverse" : "tw:flex-col"),
|
|
13
|
+
children: [/* @__PURE__ */ jsxs(Collapsible.Trigger, {
|
|
14
|
+
className: cn("tw:flex tw:cursor-pointer tw:items-center tw:rounded-sm tw:bg-muted tw:px-4 tw:py-3 tw:text-sm tw:text-muted-foreground", "tw:hover:text-primary"),
|
|
15
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
16
|
+
className: "tw:mr-2 tw:flex tw:shrink-0 tw:items-center",
|
|
17
|
+
children: /* @__PURE__ */ jsx(ChevronDown, { className: cn("tw:size-5", !isOpen ? "tw:-rotate-90" : placement === "bottom" ? "tw:rotate-180" : "") })
|
|
18
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
19
|
+
className: "tw:py-0.5",
|
|
20
|
+
children: isOpen ? labelCollapse : labelOpen
|
|
21
|
+
})]
|
|
22
|
+
}), /* @__PURE__ */ jsx(Collapsible.Content, { children: /* @__PURE__ */ jsx("div", {
|
|
23
|
+
className: "tw:px-5 tw:py-3",
|
|
24
|
+
children
|
|
25
|
+
}) })]
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
//#endregion
|
|
29
|
+
export { PanelWithDetails };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=PanelWithDetails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanelWithDetails.js","names":[],"sources":["../../../src/components/PanelWithDetails.tsx"],"sourcesContent":["import { useState } from 'react';\nimport type { PropsWithChildren, ReactNode } from 'react';\n\nimport { ChevronDown } from '../icons';\nimport { cn } from '../utils';\n\nimport { Collapsible } from './Collapsible';\n\ntype Props = PropsWithChildren<{\n defaultExpanded?: boolean;\n labelCollapse?: ReactNode;\n labelOpen?: ReactNode;\n placement?: 'top' | 'bottom';\n className?: string;\n}>;\n\nexport const PanelWithDetails = ({\n defaultExpanded = false,\n labelCollapse = 'Hide details',\n labelOpen = 'Show details',\n placement = 'top',\n children,\n}: Props) => {\n const [isOpen, setIsOpen] = useState(defaultExpanded);\n\n return (\n <Collapsible\n open={isOpen}\n onOpenChange={setIsOpen}\n className={cn('tw:flex', placement === 'bottom' ? 'tw:flex-col-reverse' : 'tw:flex-col')}\n >\n <Collapsible.Trigger\n className={cn(\n 'tw:flex tw:cursor-pointer tw:items-center tw:rounded-sm tw:bg-muted tw:px-4 tw:py-3 tw:text-sm tw:text-muted-foreground',\n 'tw:hover:text-primary',\n )}\n >\n <div className=\"tw:mr-2 tw:flex tw:shrink-0 tw:items-center\">\n <ChevronDown\n className={cn(\n 'tw:size-5',\n !isOpen ? 'tw:-rotate-90' : placement === 'bottom' ? 'tw:rotate-180' : '',\n )}\n />\n </div>\n\n <div className=\"tw:py-0.5\">{isOpen ? labelCollapse : labelOpen}</div>\n </Collapsible.Trigger>\n\n <Collapsible.Content>\n <div className=\"tw:px-5 tw:py-3\">{children}</div>\n </Collapsible.Content>\n </Collapsible>\n );\n};\n"],"mappings":";;;;;;AAgBA,MAAa,oBAAoB,EAC/B,kBAAkB,OAClB,gBAAgB,gBAChB,YAAY,gBACZ,YAAY,OACZ,eACW;CACX,MAAM,CAAC,QAAQ,aAAa,SAAS,eAAe;CAEpD,OACE,qBAAC,aAAD;EACE,MAAM;EACN,cAAc;EACd,WAAW,GAAG,WAAW,cAAc,WAAW,wBAAwB,aAAa;EAHzF,UAAA,CAKE,qBAAC,YAAY,SAAb;GACE,WAAW,GACT,2HACA,uBACF;GAJF,UAAA,CAME,oBAAC,OAAD;IAAK,WAAU;IACb,UAAA,oBAAC,aAAD,EACE,WAAW,GACT,aACA,CAAC,SAAS,kBAAkB,cAAc,WAAW,kBAAkB,EACzE,EACD,CAAA;GACE,CAAA,GAEL,oBAAC,OAAD;IAAK,WAAU;IAAa,UAAA,SAAS,gBAAgB;GAAe,CAAA,CACjD;EAErB,CAAA,GAAA,oBAAC,YAAY,SAAb,EAAA,UACE,oBAAC,OAAD;GAAK,WAAU;GAAmB;EAAc,CAAA,EAC7B,CAAA,CACV;;AAEjB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { cn } from "../../classNames-BzrkDnOD.js";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { Indicator, Root } from "@radix-ui/react-progress";
|
|
5
|
+
//#region src/components/Progress/Progress.tsx
|
|
6
|
+
const variants = cva([
|
|
7
|
+
"tw:relative",
|
|
8
|
+
"tw:flex",
|
|
9
|
+
"tw:items-center",
|
|
10
|
+
"tw:z-0",
|
|
11
|
+
"tw:overflow-x-hidden",
|
|
12
|
+
"tw:w-full"
|
|
13
|
+
], {
|
|
14
|
+
defaultVariants: {
|
|
15
|
+
variant: "default",
|
|
16
|
+
size: "lg"
|
|
17
|
+
},
|
|
18
|
+
variants: {
|
|
19
|
+
variant: {
|
|
20
|
+
default: ["tw:bg-primary/20", "tw:[&_[data-slot=\"progress-indicator\"]]:bg-primary"],
|
|
21
|
+
success: ["tw:bg-success/20", "tw:[&_[data-slot=\"progress-indicator\"]]:bg-success"]
|
|
22
|
+
},
|
|
23
|
+
size: {
|
|
24
|
+
sm: ["tw:rounded-full", "tw:h-1"],
|
|
25
|
+
lg: ["tw:rounded", "tw:h-4"]
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
const Progress = ({ ref, className, value, variant, size, ...props }) => /* @__PURE__ */ jsx(Root, {
|
|
30
|
+
...props,
|
|
31
|
+
ref,
|
|
32
|
+
className: cn(variants({
|
|
33
|
+
variant,
|
|
34
|
+
size,
|
|
35
|
+
className
|
|
36
|
+
})),
|
|
37
|
+
value,
|
|
38
|
+
children: /* @__PURE__ */ jsx(Indicator, {
|
|
39
|
+
"data-slot": "progress-indicator",
|
|
40
|
+
className: "tw:size-full tw:flex-1 tw:transition-all",
|
|
41
|
+
style: { transform: `translateX(-${100 - (value ?? 0)}%)` }
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
//#endregion
|
|
45
|
+
export { Progress };
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=Progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Progress.js","names":[],"sources":["../../../src/components/Progress/Progress.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport { Indicator, Root } from '@radix-ui/react-progress';\nimport type { VariantProps } from 'class-variance-authority';\nimport { cva } from 'class-variance-authority';\n\nimport { cn } from '../../utils';\n\nconst variants = cva(\n ['tw:relative', 'tw:flex', 'tw:items-center', 'tw:z-0', 'tw:overflow-x-hidden', 'tw:w-full'],\n {\n defaultVariants: {\n variant: 'default',\n size: 'lg',\n },\n variants: {\n variant: {\n default: ['tw:bg-primary/20', 'tw:[&_[data-slot=\"progress-indicator\"]]:bg-primary'],\n success: ['tw:bg-success/20', 'tw:[&_[data-slot=\"progress-indicator\"]]:bg-success'],\n },\n size: {\n sm: ['tw:rounded-full', 'tw:h-1'],\n lg: ['tw:rounded', 'tw:h-4'],\n },\n },\n },\n);\n\ntype Props = ComponentProps<typeof Root> & VariantProps<typeof variants>;\n\nexport const Progress = ({ ref, className, value, variant, size, ...props }: Props) => (\n <Root {...props} ref={ref} className={cn(variants({ variant, size, className }))} value={value}>\n <Indicator\n data-slot=\"progress-indicator\"\n className=\"tw:size-full tw:flex-1 tw:transition-all\"\n style={{ transform: `translateX(-${100 - (value ?? 0)}%)` }}\n />\n </Root>\n);\n"],"mappings":";;;;;AAOA,MAAM,WAAW,IACf;CAAC;CAAe;CAAW;CAAmB;CAAU;CAAwB;AAAW,GAC3F;CACE,iBAAiB;EACf,SAAS;EACT,MAAM;CACR;CACA,UAAU;EACR,SAAS;GACP,SAAS,CAAC,oBAAoB,sDAAoD;GAClF,SAAS,CAAC,oBAAoB,sDAAoD;EACpF;EACA,MAAM;GACJ,IAAI,CAAC,mBAAmB,QAAQ;GAChC,IAAI,CAAC,cAAc,QAAQ;EAC7B;CACF;AACF,CACF;AAIA,MAAa,YAAY,EAAE,KAAK,WAAW,OAAO,SAAS,MAAM,GAAG,YAClE,oBAAC,MAAD;CAAM,GAAI;CAAY;CAAK,WAAW,GAAG,SAAS;EAAE;EAAS;EAAM;CAAU,CAAC,CAAC;CAAU;CACvF,UAAA,oBAAC,WAAD;EACE,aAAU;EACV,WAAU;EACV,OAAO,EAAE,WAAW,eAAe,OAAO,SAAS,GAAG,IAAI;CAC3D,CAAA;AACG,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { cn } from "../../classNames-BzrkDnOD.js";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
|
|
4
|
+
//#region src/components/ScrollArea/ScrollBar.tsx
|
|
5
|
+
const ScrollBar = ({ className, orientation = "vertical", ...props }) => /* @__PURE__ */ jsx(ScrollAreaPrimitive.ScrollAreaScrollbar, {
|
|
6
|
+
orientation,
|
|
7
|
+
className: cn("tw:flex tw:touch-none tw:select-none tw:transition-color", {
|
|
8
|
+
"tw:h-full tw:w-2.5 tw:p-px": orientation === "vertical",
|
|
9
|
+
"tw:h-2.5 tw:flex-col tw:p-px": orientation === "horizontal"
|
|
10
|
+
}, className),
|
|
11
|
+
...props,
|
|
12
|
+
children: /* @__PURE__ */ jsx(ScrollAreaPrimitive.ScrollAreaThumb, { className: cn("tw:relative", "tw:flex-1", "tw:rounded-full", "tw:bg-border", "tw:hover:bg-muted-foreground") })
|
|
13
|
+
});
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region src/components/ScrollArea/ScrollArea.tsx
|
|
16
|
+
const ScrollArea = ({ ref, className, children, viewPortClassName, orientation, scrollBarClassName, ...props }) => /* @__PURE__ */ jsxs(ScrollAreaPrimitive.Root, {
|
|
17
|
+
"data-slot": "scroll-area",
|
|
18
|
+
className: cn("tw:peer/scroll-area tw:relative tw:overflow-hidden tw:focus-visible:outline-hidden", className),
|
|
19
|
+
...props,
|
|
20
|
+
children: [
|
|
21
|
+
/* @__PURE__ */ jsx(ScrollAreaPrimitive.Viewport, {
|
|
22
|
+
ref,
|
|
23
|
+
className: cn("tw:h-full tw:w-full tw:rounded-[inherit] tw:focus-visible:outline-hidden", viewPortClassName),
|
|
24
|
+
children
|
|
25
|
+
}),
|
|
26
|
+
orientation ? /* @__PURE__ */ jsx(ScrollBar, {
|
|
27
|
+
className: scrollBarClassName,
|
|
28
|
+
orientation
|
|
29
|
+
}) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(ScrollBar, {
|
|
30
|
+
className: scrollBarClassName,
|
|
31
|
+
orientation: "vertical"
|
|
32
|
+
}), /* @__PURE__ */ jsx(ScrollBar, {
|
|
33
|
+
className: scrollBarClassName,
|
|
34
|
+
orientation: "horizontal"
|
|
35
|
+
})] }),
|
|
36
|
+
/* @__PURE__ */ jsx(ScrollAreaPrimitive.Corner, {})
|
|
37
|
+
]
|
|
38
|
+
});
|
|
39
|
+
//#endregion
|
|
40
|
+
export { ScrollArea, ScrollBar };
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=ScrollArea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollArea.js","names":[],"sources":["../../../src/components/ScrollArea/ScrollBar.tsx","../../../src/components/ScrollArea/ScrollArea.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\n\nimport { cn } from '../../utils';\n\ntype Props = ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>;\n\nexport const ScrollBar = ({ className, orientation = 'vertical', ...props }: Props) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n orientation={orientation}\n className={cn(\n 'tw:flex tw:touch-none tw:select-none tw:transition-color',\n {\n 'tw:h-full tw:w-2.5 tw:p-px': orientation === 'vertical',\n 'tw:h-2.5 tw:flex-col tw:p-px': orientation === 'horizontal',\n },\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n className={cn(\n 'tw:relative',\n 'tw:flex-1',\n 'tw:rounded-full',\n 'tw:bg-border',\n 'tw:hover:bg-muted-foreground',\n )}\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n);\n","import type { ComponentProps } from 'react';\nimport * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';\n\nimport { cn } from '../../utils';\n\nimport { ScrollBar } from './ScrollBar';\n\ntype Props = ComponentProps<typeof ScrollAreaPrimitive.Root> & {\n viewPortClassName?: string;\n scrollBarClassName?: string;\n orientation?: ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>['orientation'];\n};\n\nexport const ScrollArea = ({\n ref,\n className,\n children,\n viewPortClassName,\n orientation,\n scrollBarClassName,\n ...props\n}: Props) => (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\n 'tw:peer/scroll-area tw:relative tw:overflow-hidden tw:focus-visible:outline-hidden',\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n ref={ref}\n className={cn(\n 'tw:h-full tw:w-full tw:rounded-[inherit] tw:focus-visible:outline-hidden',\n viewPortClassName,\n )}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n {orientation ? (\n <ScrollBar className={scrollBarClassName} orientation={orientation} />\n ) : (\n <>\n <ScrollBar className={scrollBarClassName} orientation=\"vertical\" />\n <ScrollBar className={scrollBarClassName} orientation=\"horizontal\" />\n </>\n )}\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n);\n"],"mappings":";;;;AAOA,MAAa,aAAa,EAAE,WAAW,cAAc,YAAY,GAAG,YAClE,oBAAC,oBAAoB,qBAArB;CACe;CACb,WAAW,GACT,4DACA;EACE,8BAA8B,gBAAgB;EAC9C,gCAAgC,gBAAgB;CAClD,GACA,SACF;CACA,GAAI;CAEJ,UAAA,oBAAC,oBAAoB,iBAArB,EACE,WAAW,GACT,eACA,aACA,mBACA,gBACA,8BACF,EACD,CAAA;AACsC,CAAA;;;AChB3C,MAAa,cAAc,EACzB,KACA,WACA,UACA,mBACA,aACA,oBACA,GAAG,YAEH,qBAAC,oBAAoB,MAArB;CACE,aAAU;CACV,WAAW,GACT,sFACA,SACF;CACA,GAAI;CANN,UAAA;EAQE,oBAAC,oBAAoB,UAArB;GACO;GACL,WAAW,GACT,4EACA,iBACF;GAEC;EAC2B,CAAA;EAC7B,cACC,oBAAC,WAAD;GAAW,WAAW;GAAiC;EAAc,CAAA,IAErE,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,WAAD;GAAW,WAAW;GAAoB,aAAY;EAAY,CAAA,GAClE,oBAAC,WAAD;GAAW,WAAW;GAAoB,aAAY;EAAc,CAAA,CACpE,EAAA,CAAA;EAEJ,oBAAC,oBAAoB,QAArB,CAA6B,CAAA;CACL"}
|