@mastra/playground-ui 37.0.0-alpha.3 → 37.0.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/{Badge-uc10IvHk.js → Badge-CIIPrVJ8.js} +2 -2
- package/dist/{Badge-uc10IvHk.js.map → Badge-CIIPrVJ8.js.map} +1 -1
- package/dist/{Badge-COWZ8pf7.cjs → Badge-DhIGMqUf.cjs} +3 -3
- package/dist/{Badge-COWZ8pf7.cjs.map → Badge-DhIGMqUf.cjs.map} +1 -1
- package/dist/{Breadcrumb-D7lcwKK6.cjs → Breadcrumb-CArFRvVX.cjs} +4 -6
- package/dist/Breadcrumb-CArFRvVX.cjs.map +1 -0
- package/dist/{Breadcrumb--hRsY96j.js → Breadcrumb-Ciy7FM3z.js} +4 -5
- package/dist/Breadcrumb-Ciy7FM3z.js.map +1 -0
- package/dist/{Button-BVNuv0IS.cjs → Button-Bj667lJx.cjs} +3 -3
- package/dist/{Button-BVNuv0IS.cjs.map → Button-Bj667lJx.cjs.map} +1 -1
- package/dist/{Button-lkWOSV62.js → Button-DUxP65eY.js} +2 -2
- package/dist/{Button-lkWOSV62.js.map → Button-DUxP65eY.js.map} +1 -1
- package/dist/{Entity-jOILJB7_.cjs → Entity-Bwbh0iLW.cjs} +3 -3
- package/dist/{Entity-jOILJB7_.cjs.map → Entity-Bwbh0iLW.cjs.map} +1 -1
- package/dist/{Entity-CSd7oH01.js → Entity-CyYGTYWL.js} +2 -2
- package/dist/{Entity-CSd7oH01.js.map → Entity-CyYGTYWL.js.map} +1 -1
- package/dist/{ErrorBoundary-Bh0P3RR7.cjs → ErrorBoundary-Dzim3WH6.cjs} +2 -2
- package/dist/{ErrorBoundary-Bh0P3RR7.cjs.map → ErrorBoundary-Dzim3WH6.cjs.map} +1 -1
- package/dist/{ErrorBoundary-Bdm6QBVz.js → ErrorBoundary-UTpu5Qah.js} +2 -2
- package/dist/{ErrorBoundary-Bdm6QBVz.js.map → ErrorBoundary-UTpu5Qah.js.map} +1 -1
- package/dist/{Notice-BzzC2DcE.js → Notice-BJ6lke5l.js} +2 -2
- package/dist/{Notice-BzzC2DcE.js.map → Notice-BJ6lke5l.js.map} +1 -1
- package/dist/{Notice-wX_dMPTN.cjs → Notice-BoWYUdbS.cjs} +2 -2
- package/dist/{Notice-wX_dMPTN.cjs.map → Notice-BoWYUdbS.cjs.map} +1 -1
- package/dist/{PermissionDenied-C3I9RlvX.cjs → PermissionDenied-BmfZuVPC.cjs} +3 -3
- package/dist/{PermissionDenied-C3I9RlvX.cjs.map → PermissionDenied-BmfZuVPC.cjs.map} +1 -1
- package/dist/{PermissionDenied-BFTDtDH5.js → PermissionDenied-DgS-ANHj.js} +2 -2
- package/dist/{PermissionDenied-BFTDtDH5.js.map → PermissionDenied-DgS-ANHj.js.map} +1 -1
- package/dist/{SessionExpired-Mwi94d_-.js → SessionExpired-1MYjtwiy.js} +3 -3
- package/dist/{SessionExpired-Mwi94d_-.js.map → SessionExpired-1MYjtwiy.js.map} +1 -1
- package/dist/{SessionExpired-BYX9o6QV.cjs → SessionExpired-DFE3cHmO.cjs} +4 -4
- package/dist/{SessionExpired-BYX9o6QV.cjs.map → SessionExpired-DFE3cHmO.cjs.map} +1 -1
- package/dist/{alert-dialog-DAoPqgQ_.js → alert-dialog-BRvoYQwJ.js} +2 -2
- package/dist/{alert-dialog-DAoPqgQ_.js.map → alert-dialog-BRvoYQwJ.js.map} +1 -1
- package/dist/{alert-dialog-BebviYXz.cjs → alert-dialog-k5-YzF6v.cjs} +2 -2
- package/dist/{alert-dialog-BebviYXz.cjs.map → alert-dialog-k5-YzF6v.cjs.map} +1 -1
- package/dist/{code-block-DEoFei7v.cjs → code-block-QAdMwht_.cjs} +3 -3
- package/dist/{code-block-DEoFei7v.cjs.map → code-block-QAdMwht_.cjs.map} +1 -1
- package/dist/{code-block-CCB6fgF8.js → code-block-wIYnRia5.js} +3 -3
- package/dist/{code-block-CCB6fgF8.js.map → code-block-wIYnRia5.js.map} +1 -1
- package/dist/{code-editor-Do6JeqGb.js → code-editor-Dy7xhPHz.js} +2 -2
- package/dist/{code-editor-Do6JeqGb.js.map → code-editor-Dy7xhPHz.js.map} +1 -1
- package/dist/{code-editor-Cu1UZsfM.cjs → code-editor-PXyii7uq.cjs} +2 -2
- package/dist/{code-editor-Cu1UZsfM.cjs.map → code-editor-PXyii7uq.cjs.map} +1 -1
- package/dist/{combobox-Db9cmoVE.js → combobox-B3lIawbp.js} +2 -2
- package/dist/{combobox-Db9cmoVE.js.map → combobox-B3lIawbp.js.map} +1 -1
- package/dist/{combobox-_D0TWENi.cjs → combobox-DPV6JFnR.cjs} +2 -2
- package/dist/{combobox-_D0TWENi.cjs.map → combobox-DPV6JFnR.cjs.map} +1 -1
- package/dist/{command-BnG5P-qM.cjs → command-BT3bjfa0.cjs} +2 -2
- package/dist/{command-BnG5P-qM.cjs.map → command-BT3bjfa0.cjs.map} +1 -1
- package/dist/{command-DNmjUcRb.js → command-DnI0VT4j.js} +2 -2
- package/dist/{command-DNmjUcRb.js.map → command-DnI0VT4j.js.map} +1 -1
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Badge.cjs.js +1 -1
- package/dist/components/Badge.es.js +1 -1
- package/dist/components/Breadcrumb.cjs.js +1 -1
- package/dist/components/Breadcrumb.es.js +1 -1
- package/dist/components/Button.cjs.js +1 -1
- package/dist/components/Button.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Columns.cjs.js +1 -1
- package/dist/components/Columns.es.js +1 -1
- package/dist/components/Combobox.cjs.js +1 -1
- package/dist/components/Combobox.es.js +1 -1
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +2 -2
- package/dist/components/DataDetailsPanel.es.js +2 -2
- package/dist/components/DataFilter.cjs.js +1 -1
- package/dist/components/DataFilter.es.js +1 -1
- package/dist/components/DataKeysAndValues.cjs.js +1 -1
- package/dist/components/DataKeysAndValues.es.js +1 -1
- package/dist/components/DataList.cjs.js +3 -3
- package/dist/components/DataList.es.js +3 -3
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +2 -2
- package/dist/components/DateTimePicker.es.js +2 -2
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +1 -1
- package/dist/components/Dialog.es.js +1 -1
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/Entity.cjs.js +1 -1
- package/dist/components/Entity.es.js +1 -1
- package/dist/components/EntityHeader.cjs.js +1 -1
- package/dist/components/EntityHeader.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/FormFieldBlocks.cjs.js +2 -2
- package/dist/components/FormFieldBlocks.es.js +2 -2
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +9 -9
- package/dist/components/JSONSchemaForm.cjs.js.map +1 -1
- package/dist/components/JSONSchemaForm.es.js +3 -3
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -2
- package/dist/components/LogsDataList.es.js +2 -2
- package/dist/components/MainSidebar.cjs.js +1 -1
- package/dist/components/MainSidebar.es.js +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/PermissionDenied.cjs.js +1 -1
- package/dist/components/PermissionDenied.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +1 -1
- package/dist/components/PropertyFilter.es.js +1 -1
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SessionExpired.cjs.js +1 -1
- package/dist/components/SessionExpired.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +3 -3
- package/dist/components/SideDialog.es.js +3 -3
- package/dist/components/Table.cjs.js +1 -1
- package/dist/components/Table.es.js +1 -1
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/Toaster.cjs.js +10 -0
- package/dist/components/Toaster.cjs.js.map +1 -0
- package/dist/components/Toaster.d.ts +2 -0
- package/dist/components/Toaster.es.js +2 -0
- package/dist/components/Toaster.es.js.map +1 -0
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/{copy-button-BUOdkU40.js → copy-button-CXn_T1Vi.js} +3 -3
- package/dist/{copy-button-BUOdkU40.js.map → copy-button-CXn_T1Vi.js.map} +1 -1
- package/dist/{copy-button-BqD3pp1G.cjs → copy-button-UYec6W5c.cjs} +3 -3
- package/dist/{copy-button-BqD3pp1G.cjs.map → copy-button-UYec6W5c.cjs.map} +1 -1
- package/dist/{data-code-section-CB2LT738.js → data-code-section-BUcQHFw2.js} +5 -5
- package/dist/{data-code-section-CB2LT738.js.map → data-code-section-BUcQHFw2.js.map} +1 -1
- package/dist/{data-code-section-5_l37a1B.cjs → data-code-section-WbOdAr6i.cjs} +5 -5
- package/dist/{data-code-section-5_l37a1B.cjs.map → data-code-section-WbOdAr6i.cjs.map} +1 -1
- package/dist/{data-keys-and-values-CwDiJOoE.cjs → data-keys-and-values-B-K23j9Y.cjs} +2 -2
- package/dist/{data-keys-and-values-CwDiJOoE.cjs.map → data-keys-and-values-B-K23j9Y.cjs.map} +1 -1
- package/dist/{data-keys-and-values-BjJjw-sC.js → data-keys-and-values-Dly5DG8l.js} +2 -2
- package/dist/{data-keys-and-values-BjJjw-sC.js.map → data-keys-and-values-Dly5DG8l.js.map} +1 -1
- package/dist/{data-list-fdicRqId.cjs → data-list-BZxmpMh8.cjs} +2 -2
- package/dist/{data-list-fdicRqId.cjs.map → data-list-BZxmpMh8.cjs.map} +1 -1
- package/dist/{data-list-CuNTfygB.js → data-list-DDgI1bcK.js} +2 -2
- package/dist/{data-list-CuNTfygB.js.map → data-list-DDgI1bcK.js.map} +1 -1
- package/dist/data-list-skeleton-CKtfnKu1.cjs +32 -0
- package/dist/data-list-skeleton-CKtfnKu1.cjs.map +1 -0
- package/dist/data-list-skeleton-DdII1DEa.js +30 -0
- package/dist/data-list-skeleton-DdII1DEa.js.map +1 -0
- package/dist/{data-panel-ybSXn-Em.js → data-panel-C-Cw6JZU.js} +3 -3
- package/dist/{data-panel-ybSXn-Em.js.map → data-panel-C-Cw6JZU.js.map} +1 -1
- package/dist/{data-panel-BspICGLi.cjs → data-panel-Cfjo5g3E.cjs} +3 -3
- package/dist/{data-panel-BspICGLi.cjs.map → data-panel-Cfjo5g3E.cjs.map} +1 -1
- package/dist/{date-time-picker-BKf46hfL.cjs → date-time-picker-CS4HSyCh.cjs} +3 -3
- package/dist/{date-time-picker-BKf46hfL.cjs.map → date-time-picker-CS4HSyCh.cjs.map} +1 -1
- package/dist/{date-time-picker-Bc2qtOjj.js → date-time-picker-CxYld6QS.js} +3 -3
- package/dist/{date-time-picker-Bc2qtOjj.js.map → date-time-picker-CxYld6QS.js.map} +1 -1
- package/dist/{date-time-range-picker-DS8pApgs.cjs → date-time-range-picker-C4zzA37w.cjs} +3 -3
- package/dist/{date-time-range-picker-DS8pApgs.cjs.map → date-time-range-picker-C4zzA37w.cjs.map} +1 -1
- package/dist/{date-time-range-picker-D0fnJG3j.js → date-time-range-picker-lu44sN6F.js} +3 -3
- package/dist/{date-time-range-picker-D0fnJG3j.js.map → date-time-range-picker-lu44sN6F.js.map} +1 -1
- package/dist/{dialog-CbstgOet.js → dialog-CFJARbIM.js} +2 -2
- package/dist/{dialog-CbstgOet.js.map → dialog-CFJARbIM.js.map} +1 -1
- package/dist/{dialog-DtZ7ym37.cjs → dialog-Lm_EDANe.cjs} +2 -2
- package/dist/{dialog-DtZ7ym37.cjs.map → dialog-Lm_EDANe.cjs.map} +1 -1
- package/dist/{drawer-CczLUJ6T.js → drawer-CiUjFp3u.js} +2 -2
- package/dist/{drawer-CczLUJ6T.js.map → drawer-CiUjFp3u.js.map} +1 -1
- package/dist/{drawer-CS2EU0Q_.cjs → drawer-jT2bUkrJ.cjs} +2 -2
- package/dist/{drawer-CS2EU0Q_.cjs.map → drawer-jT2bUkrJ.cjs.map} +1 -1
- package/dist/{entity-header-DZzzm248.js → entity-header-C8I47AfB.js} +2 -2
- package/dist/{entity-header-DZzzm248.js.map → entity-header-C8I47AfB.js.map} +1 -1
- package/dist/{entity-header-Crw9v7TH.cjs → entity-header-FXlDOgXp.cjs} +3 -3
- package/dist/{entity-header-Crw9v7TH.cjs.map → entity-header-FXlDOgXp.cjs.map} +1 -1
- package/dist/{environment-variables-editor-BQma-nhE.cjs → environment-variables-editor-DwkANgjj.cjs} +6 -6
- package/dist/{environment-variables-editor-BQma-nhE.cjs.map → environment-variables-editor-DwkANgjj.cjs.map} +1 -1
- package/dist/{environment-variables-editor-BcEqoErE.js → environment-variables-editor-PCGuUAIv.js} +6 -6
- package/dist/{environment-variables-editor-BcEqoErE.js.map → environment-variables-editor-PCGuUAIv.js.map} +1 -1
- package/dist/hooks/use-copy-to-clipboard.cjs.js +77 -4
- package/dist/hooks/use-copy-to-clipboard.cjs.js.map +1 -1
- package/dist/hooks/use-copy-to-clipboard.es.js +79 -2
- package/dist/hooks/use-copy-to-clipboard.es.js.map +1 -1
- package/dist/icons/AgentCoinIcon.cjs.js +60 -0
- package/dist/icons/AgentCoinIcon.cjs.js.map +1 -0
- package/dist/icons/AgentCoinIcon.d.ts +2 -0
- package/dist/icons/AgentCoinIcon.es.js +56 -0
- package/dist/icons/AgentCoinIcon.es.js.map +1 -0
- package/dist/icons/AgentIcon.cjs.js +25 -0
- package/dist/icons/AgentIcon.cjs.js.map +1 -0
- package/dist/icons/AgentIcon.d.ts +2 -0
- package/dist/icons/AgentIcon.es.js +21 -0
- package/dist/icons/AgentIcon.es.js.map +1 -0
- package/dist/icons/AgentNetworkCoinIcon.cjs.js +51 -0
- package/dist/icons/AgentNetworkCoinIcon.cjs.js.map +1 -0
- package/dist/icons/AgentNetworkCoinIcon.d.ts +2 -0
- package/dist/icons/AgentNetworkCoinIcon.es.js +47 -0
- package/dist/icons/AgentNetworkCoinIcon.es.js.map +1 -0
- package/dist/icons/AiIcon.cjs.js +34 -0
- package/dist/icons/AiIcon.cjs.js.map +1 -0
- package/dist/icons/AiIcon.d.ts +2 -0
- package/dist/icons/AiIcon.es.js +30 -0
- package/dist/icons/AiIcon.es.js.map +1 -0
- package/dist/icons/AmazonIcon.cjs.js +51 -0
- package/dist/icons/AmazonIcon.cjs.js.map +1 -0
- package/dist/icons/AmazonIcon.d.ts +2 -0
- package/dist/icons/AmazonIcon.es.js +47 -0
- package/dist/icons/AmazonIcon.es.js.map +1 -0
- package/dist/icons/AnthropicChatIcon.cjs.js +10 -0
- package/dist/icons/AnthropicChatIcon.cjs.js.map +1 -0
- package/dist/icons/AnthropicChatIcon.d.ts +2 -0
- package/dist/icons/AnthropicChatIcon.es.js +6 -0
- package/dist/icons/AnthropicChatIcon.es.js.map +1 -0
- package/dist/icons/AnthropicMessagesIcon.cjs.js +29 -0
- package/dist/icons/AnthropicMessagesIcon.cjs.js.map +1 -0
- package/dist/icons/AnthropicMessagesIcon.d.ts +2 -0
- package/dist/icons/AnthropicMessagesIcon.es.js +25 -0
- package/dist/icons/AnthropicMessagesIcon.es.js.map +1 -0
- package/dist/icons/ApiIcon.cjs.js +29 -0
- package/dist/icons/ApiIcon.cjs.js.map +1 -0
- package/dist/icons/ApiIcon.d.ts +2 -0
- package/dist/icons/ApiIcon.es.js +25 -0
- package/dist/icons/ApiIcon.es.js.map +1 -0
- package/dist/icons/AzureIcon.cjs.js +29 -0
- package/dist/icons/AzureIcon.cjs.js.map +1 -0
- package/dist/icons/AzureIcon.d.ts +2 -0
- package/dist/icons/AzureIcon.es.js +25 -0
- package/dist/icons/AzureIcon.es.js.map +1 -0
- package/dist/icons/BranchIcon.cjs.js +14 -0
- package/dist/icons/BranchIcon.cjs.js.map +1 -0
- package/dist/icons/BranchIcon.d.ts +2 -0
- package/dist/icons/BranchIcon.es.js +10 -0
- package/dist/icons/BranchIcon.es.js.map +1 -0
- package/dist/icons/CheckIcon.cjs.js +29 -0
- package/dist/icons/CheckIcon.cjs.js.map +1 -0
- package/dist/icons/CheckIcon.d.ts +2 -0
- package/dist/icons/CheckIcon.es.js +25 -0
- package/dist/icons/CheckIcon.es.js.map +1 -0
- package/dist/icons/ChevronIcon.cjs.js +18 -0
- package/dist/icons/ChevronIcon.cjs.js.map +1 -0
- package/dist/icons/ChevronIcon.d.ts +2 -0
- package/dist/icons/ChevronIcon.es.js +14 -0
- package/dist/icons/ChevronIcon.es.js.map +1 -0
- package/dist/icons/CohereIcon.cjs.js +39 -0
- package/dist/icons/CohereIcon.cjs.js.map +1 -0
- package/dist/icons/CohereIcon.d.ts +2 -0
- package/dist/icons/CohereIcon.es.js +35 -0
- package/dist/icons/CohereIcon.es.js.map +1 -0
- package/dist/icons/CommitIcon.cjs.js +18 -0
- package/dist/icons/CommitIcon.cjs.js.map +1 -0
- package/dist/icons/CommitIcon.d.ts +2 -0
- package/dist/icons/CommitIcon.es.js +14 -0
- package/dist/icons/CommitIcon.es.js.map +1 -0
- package/dist/icons/CrossIcon.cjs.js +29 -0
- package/dist/icons/CrossIcon.cjs.js.map +1 -0
- package/dist/icons/CrossIcon.d.ts +2 -0
- package/dist/icons/CrossIcon.es.js +25 -0
- package/dist/icons/CrossIcon.es.js.map +1 -0
- package/dist/icons/DatasetsIcon.cjs.js +16 -0
- package/dist/icons/DatasetsIcon.cjs.js.map +1 -0
- package/dist/icons/DatasetsIcon.d.ts +2 -0
- package/dist/icons/DatasetsIcon.es.js +12 -0
- package/dist/icons/DatasetsIcon.es.js.map +1 -0
- package/dist/icons/DbIcon.cjs.js +18 -0
- package/dist/icons/DbIcon.cjs.js.map +1 -0
- package/dist/icons/DbIcon.d.ts +2 -0
- package/dist/icons/DbIcon.es.js +14 -0
- package/dist/icons/DbIcon.es.js.map +1 -0
- package/dist/icons/DebugIcon.cjs.js +16 -0
- package/dist/icons/DebugIcon.cjs.js.map +1 -0
- package/dist/icons/DebugIcon.d.ts +2 -0
- package/dist/icons/DebugIcon.es.js +12 -0
- package/dist/icons/DebugIcon.es.js.map +1 -0
- package/dist/icons/DeploymentIcon.cjs.js +36 -0
- package/dist/icons/DeploymentIcon.cjs.js.map +1 -0
- package/dist/icons/DeploymentIcon.d.ts +2 -0
- package/dist/icons/DeploymentIcon.es.js +32 -0
- package/dist/icons/DeploymentIcon.es.js.map +1 -0
- package/dist/icons/DividerIcon.cjs.js +10 -0
- package/dist/icons/DividerIcon.cjs.js.map +1 -0
- package/dist/icons/DividerIcon.d.ts +2 -0
- package/dist/icons/DividerIcon.es.js +6 -0
- package/dist/icons/DividerIcon.es.js.map +1 -0
- package/dist/icons/DocsIcon.cjs.js +18 -0
- package/dist/icons/DocsIcon.cjs.js.map +1 -0
- package/dist/icons/DocsIcon.d.ts +2 -0
- package/dist/icons/DocsIcon.es.js +14 -0
- package/dist/icons/DocsIcon.es.js.map +1 -0
- package/dist/icons/EnvIcon.cjs.js +20 -0
- package/dist/icons/EnvIcon.cjs.js.map +1 -0
- package/dist/icons/EnvIcon.d.ts +2 -0
- package/dist/icons/EnvIcon.es.js +16 -0
- package/dist/icons/EnvIcon.es.js.map +1 -0
- package/dist/icons/ExperimentsIcon.cjs.js +18 -0
- package/dist/icons/ExperimentsIcon.cjs.js.map +1 -0
- package/dist/icons/ExperimentsIcon.d.ts +2 -0
- package/dist/icons/ExperimentsIcon.es.js +14 -0
- package/dist/icons/ExperimentsIcon.es.js.map +1 -0
- package/dist/icons/FiltersIcon.cjs.js +18 -0
- package/dist/icons/FiltersIcon.cjs.js.map +1 -0
- package/dist/icons/FiltersIcon.d.ts +2 -0
- package/dist/icons/FiltersIcon.es.js +14 -0
- package/dist/icons/FiltersIcon.es.js.map +1 -0
- package/dist/icons/FolderIcon.cjs.js +18 -0
- package/dist/icons/FolderIcon.cjs.js.map +1 -0
- package/dist/icons/FolderIcon.d.ts +2 -0
- package/dist/icons/FolderIcon.es.js +14 -0
- package/dist/icons/FolderIcon.es.js.map +1 -0
- package/dist/icons/GithubCoinIcon.cjs.js +49 -0
- package/dist/icons/GithubCoinIcon.cjs.js.map +1 -0
- package/dist/icons/GithubCoinIcon.d.ts +2 -0
- package/dist/icons/GithubCoinIcon.es.js +45 -0
- package/dist/icons/GithubCoinIcon.es.js.map +1 -0
- package/dist/icons/GithubIcon.cjs.js +19 -0
- package/dist/icons/GithubIcon.cjs.js.map +1 -0
- package/dist/icons/GithubIcon.d.ts +2 -0
- package/dist/icons/GithubIcon.es.js +15 -0
- package/dist/icons/GithubIcon.es.js.map +1 -0
- package/dist/icons/GoogleIcon.cjs.js +42 -0
- package/dist/icons/GoogleIcon.cjs.js.map +1 -0
- package/dist/icons/GoogleIcon.d.ts +2 -0
- package/dist/icons/GoogleIcon.es.js +38 -0
- package/dist/icons/GoogleIcon.es.js.map +1 -0
- package/dist/icons/GroqIcon.cjs.js +48 -0
- package/dist/icons/GroqIcon.cjs.js.map +1 -0
- package/dist/icons/GroqIcon.d.ts +2 -0
- package/dist/icons/GroqIcon.es.js +44 -0
- package/dist/icons/GroqIcon.es.js.map +1 -0
- package/dist/icons/HomeIcon.cjs.js +21 -0
- package/dist/icons/HomeIcon.cjs.js.map +1 -0
- package/dist/icons/HomeIcon.d.ts +2 -0
- package/dist/icons/HomeIcon.es.js +17 -0
- package/dist/icons/HomeIcon.es.js.map +1 -0
- package/dist/{Icon-xYD5TR12.cjs → icons/Icon.cjs.js} +4 -2
- package/dist/icons/Icon.cjs.js.map +1 -0
- package/dist/icons/Icon.d.ts +2 -0
- package/dist/{Icon-BAgNsQRj.js → icons/Icon.es.js} +3 -3
- package/dist/icons/Icon.es.js.map +1 -0
- package/dist/icons/InfoIcon.cjs.js +34 -0
- package/dist/icons/InfoIcon.cjs.js.map +1 -0
- package/dist/icons/InfoIcon.d.ts +2 -0
- package/dist/icons/InfoIcon.es.js +30 -0
- package/dist/icons/InfoIcon.es.js.map +1 -0
- package/dist/icons/JudgeIcon.cjs.js +28 -0
- package/dist/icons/JudgeIcon.cjs.js.map +1 -0
- package/dist/icons/JudgeIcon.d.ts +2 -0
- package/dist/icons/JudgeIcon.es.js +24 -0
- package/dist/icons/JudgeIcon.es.js.map +1 -0
- package/dist/icons/LatencyIcon.cjs.js +32 -0
- package/dist/icons/LatencyIcon.cjs.js.map +1 -0
- package/dist/icons/LatencyIcon.d.ts +2 -0
- package/dist/icons/LatencyIcon.es.js +28 -0
- package/dist/icons/LatencyIcon.es.js.map +1 -0
- package/dist/icons/LogsIcon.cjs.js +74 -0
- package/dist/icons/LogsIcon.cjs.js.map +1 -0
- package/dist/icons/LogsIcon.d.ts +2 -0
- package/dist/icons/LogsIcon.es.js +70 -0
- package/dist/icons/LogsIcon.es.js.map +1 -0
- package/dist/icons/MastraIcon.cjs.js +16 -0
- package/dist/icons/MastraIcon.cjs.js.map +1 -0
- package/dist/icons/MastraIcon.d.ts +2 -0
- package/dist/icons/MastraIcon.es.js +12 -0
- package/dist/icons/MastraIcon.es.js.map +1 -0
- package/dist/icons/McpCoinIcon.cjs.js +47 -0
- package/dist/icons/McpCoinIcon.cjs.js.map +1 -0
- package/dist/icons/McpCoinIcon.d.ts +2 -0
- package/dist/icons/McpCoinIcon.es.js +43 -0
- package/dist/icons/McpCoinIcon.es.js.map +1 -0
- package/dist/icons/McpServerIcon.cjs.js +25 -0
- package/dist/icons/McpServerIcon.cjs.js.map +1 -0
- package/dist/icons/McpServerIcon.d.ts +2 -0
- package/dist/icons/McpServerIcon.es.js +21 -0
- package/dist/icons/McpServerIcon.es.js.map +1 -0
- package/dist/icons/MemoryIcon.cjs.js +16 -0
- package/dist/icons/MemoryIcon.cjs.js.map +1 -0
- package/dist/icons/MemoryIcon.d.ts +2 -0
- package/dist/icons/MemoryIcon.es.js +12 -0
- package/dist/icons/MemoryIcon.es.js.map +1 -0
- package/dist/icons/MetricsIcon.cjs.js +25 -0
- package/dist/icons/MetricsIcon.cjs.js.map +1 -0
- package/dist/icons/MetricsIcon.d.ts +2 -0
- package/dist/icons/MetricsIcon.es.js +21 -0
- package/dist/icons/MetricsIcon.es.js.map +1 -0
- package/dist/icons/MistralIcon.cjs.js +128 -0
- package/dist/icons/MistralIcon.cjs.js.map +1 -0
- package/dist/icons/MistralIcon.d.ts +2 -0
- package/dist/icons/MistralIcon.es.js +124 -0
- package/dist/icons/MistralIcon.es.js.map +1 -0
- package/dist/icons/NetlifyIcon.cjs.js +63 -0
- package/dist/icons/NetlifyIcon.cjs.js.map +1 -0
- package/dist/icons/NetlifyIcon.d.ts +2 -0
- package/dist/icons/NetlifyIcon.es.js +59 -0
- package/dist/icons/NetlifyIcon.es.js.map +1 -0
- package/dist/icons/OpenAIIcon.cjs.js +16 -0
- package/dist/icons/OpenAIIcon.cjs.js.map +1 -0
- package/dist/icons/OpenAIIcon.d.ts +2 -0
- package/dist/icons/OpenAIIcon.es.js +12 -0
- package/dist/icons/OpenAIIcon.es.js.map +1 -0
- package/dist/icons/OpenaiChatIcon.cjs.js +10 -0
- package/dist/icons/OpenaiChatIcon.cjs.js.map +1 -0
- package/dist/icons/OpenaiChatIcon.d.ts +2 -0
- package/dist/icons/OpenaiChatIcon.es.js +6 -0
- package/dist/icons/OpenaiChatIcon.es.js.map +1 -0
- package/dist/icons/ProcessorIcon.cjs.js +20 -0
- package/dist/icons/ProcessorIcon.cjs.js.map +1 -0
- package/dist/icons/ProcessorIcon.d.ts +2 -0
- package/dist/icons/ProcessorIcon.es.js +16 -0
- package/dist/icons/ProcessorIcon.es.js.map +1 -0
- package/dist/icons/PromptIcon.cjs.js +18 -0
- package/dist/icons/PromptIcon.cjs.js.map +1 -0
- package/dist/icons/PromptIcon.d.ts +2 -0
- package/dist/icons/PromptIcon.es.js +14 -0
- package/dist/icons/PromptIcon.es.js.map +1 -0
- package/dist/icons/RepoIcon.cjs.js +21 -0
- package/dist/icons/RepoIcon.cjs.js.map +1 -0
- package/dist/icons/RepoIcon.d.ts +2 -0
- package/dist/icons/RepoIcon.es.js +17 -0
- package/dist/icons/RepoIcon.es.js.map +1 -0
- package/dist/icons/RequestContextIcon.cjs.js +18 -0
- package/dist/icons/RequestContextIcon.cjs.js.map +1 -0
- package/dist/icons/RequestContextIcon.d.ts +2 -0
- package/dist/icons/RequestContextIcon.es.js +14 -0
- package/dist/icons/RequestContextIcon.es.js.map +1 -0
- package/dist/icons/ScorersIcon.cjs.js +41 -0
- package/dist/icons/ScorersIcon.cjs.js.map +1 -0
- package/dist/icons/ScorersIcon.d.ts +2 -0
- package/dist/icons/ScorersIcon.es.js +37 -0
- package/dist/icons/ScorersIcon.es.js.map +1 -0
- package/dist/icons/SettingsIcon.cjs.js +18 -0
- package/dist/icons/SettingsIcon.cjs.js.map +1 -0
- package/dist/icons/SettingsIcon.d.ts +2 -0
- package/dist/icons/SettingsIcon.es.js +14 -0
- package/dist/icons/SettingsIcon.es.js.map +1 -0
- package/dist/icons/SkillIcon.cjs.js +11 -0
- package/dist/icons/SkillIcon.cjs.js.map +1 -0
- package/dist/icons/SkillIcon.d.ts +2 -0
- package/dist/icons/SkillIcon.es.js +7 -0
- package/dist/icons/SkillIcon.es.js.map +1 -0
- package/dist/icons/SlashIcon.cjs.js +10 -0
- package/dist/icons/SlashIcon.cjs.js.map +1 -0
- package/dist/icons/SlashIcon.d.ts +2 -0
- package/dist/icons/SlashIcon.es.js +6 -0
- package/dist/icons/SlashIcon.es.js.map +1 -0
- package/dist/icons/ToolCoinIcon.cjs.js +42 -0
- package/dist/icons/ToolCoinIcon.cjs.js.map +1 -0
- package/dist/icons/ToolCoinIcon.d.ts +2 -0
- package/dist/icons/ToolCoinIcon.es.js +38 -0
- package/dist/icons/ToolCoinIcon.es.js.map +1 -0
- package/dist/icons/ToolsIcon.cjs.js +18 -0
- package/dist/icons/ToolsIcon.cjs.js.map +1 -0
- package/dist/icons/ToolsIcon.d.ts +2 -0
- package/dist/icons/ToolsIcon.es.js +14 -0
- package/dist/icons/ToolsIcon.es.js.map +1 -0
- package/dist/icons/TraceIcon.cjs.js +39 -0
- package/dist/icons/TraceIcon.cjs.js.map +1 -0
- package/dist/icons/TraceIcon.d.ts +2 -0
- package/dist/icons/TraceIcon.es.js +35 -0
- package/dist/icons/TraceIcon.es.js.map +1 -0
- package/dist/icons/TsIcon.cjs.js +20 -0
- package/dist/icons/TsIcon.cjs.js.map +1 -0
- package/dist/icons/TsIcon.d.ts +2 -0
- package/dist/icons/TsIcon.es.js +16 -0
- package/dist/icons/TsIcon.es.js.map +1 -0
- package/dist/icons/VariablesIcon.cjs.js +32 -0
- package/dist/icons/VariablesIcon.cjs.js.map +1 -0
- package/dist/icons/VariablesIcon.d.ts +2 -0
- package/dist/icons/VariablesIcon.es.js +28 -0
- package/dist/icons/VariablesIcon.es.js.map +1 -0
- package/dist/icons/WorkflowCoinIcon.cjs.js +42 -0
- package/dist/icons/WorkflowCoinIcon.cjs.js.map +1 -0
- package/dist/icons/WorkflowCoinIcon.d.ts +2 -0
- package/dist/icons/WorkflowCoinIcon.es.js +38 -0
- package/dist/icons/WorkflowCoinIcon.es.js.map +1 -0
- package/dist/icons/WorkflowIcon.cjs.js +16 -0
- package/dist/icons/WorkflowIcon.cjs.js.map +1 -0
- package/dist/icons/WorkflowIcon.d.ts +2 -0
- package/dist/icons/WorkflowIcon.es.js +12 -0
- package/dist/icons/WorkflowIcon.es.js.map +1 -0
- package/dist/icons/WorkspacesIcon.cjs.js +16 -0
- package/dist/icons/WorkspacesIcon.cjs.js.map +1 -0
- package/dist/icons/WorkspacesIcon.d.ts +2 -0
- package/dist/icons/WorkspacesIcon.es.js +12 -0
- package/dist/icons/WorkspacesIcon.es.js.map +1 -0
- package/dist/icons/XGroqIcon.cjs.js +53 -0
- package/dist/icons/XGroqIcon.cjs.js.map +1 -0
- package/dist/icons/XGroqIcon.d.ts +2 -0
- package/dist/icons/XGroqIcon.es.js +49 -0
- package/dist/icons/XGroqIcon.es.js.map +1 -0
- package/dist/index.cjs.js +194 -1396
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +116 -1318
- package/dist/index.es.js.map +1 -1
- package/dist/{input-group-BJUC93w1.cjs → input-group-bzqIGNp3.cjs} +2 -2
- package/dist/{input-group-BJUC93w1.cjs.map → input-group-bzqIGNp3.cjs.map} +1 -1
- package/dist/{input-group-zRbpW2OB.js → input-group-iZZD8Z65.js} +2 -2
- package/dist/{input-group-zRbpW2OB.js.map → input-group-iZZD8Z65.js.map} +1 -1
- package/dist/{list-search-BZ7vrE2M.js → list-search-Cd7OGOdt.js} +2 -2
- package/dist/{list-search-BZ7vrE2M.js.map → list-search-Cd7OGOdt.js.map} +1 -1
- package/dist/{list-search-mMHuCnvL.cjs → list-search-Cn23Rbyh.cjs} +2 -2
- package/dist/{list-search-mMHuCnvL.cjs.map → list-search-Cn23Rbyh.cjs.map} +1 -1
- package/dist/logs-data-list-CCaTeaUh.js +80 -0
- package/dist/logs-data-list-CCaTeaUh.js.map +1 -0
- package/dist/logs-data-list-Dwh8cMrt.cjs +82 -0
- package/dist/logs-data-list-Dwh8cMrt.cjs.map +1 -0
- package/dist/{main-sidebar-DOwuzCVj.js → main-sidebar-DyA0N-zw.js} +2 -2
- package/dist/{main-sidebar-DOwuzCVj.js.map → main-sidebar-DyA0N-zw.js.map} +1 -1
- package/dist/{main-sidebar-BzyLk9al.cjs → main-sidebar-Fa0x88X0.cjs} +2 -2
- package/dist/{main-sidebar-BzyLk9al.cjs.map → main-sidebar-Fa0x88X0.cjs.map} +1 -1
- package/dist/{markdown-renderer-furyWBRc.js → markdown-renderer-D_sNkQ-a.js} +2 -2
- package/dist/{markdown-renderer-furyWBRc.js.map → markdown-renderer-D_sNkQ-a.js.map} +1 -1
- package/dist/{markdown-renderer-7SQ50R7L.cjs → markdown-renderer-m0Qqa1u8.cjs} +2 -2
- package/dist/{markdown-renderer-7SQ50R7L.cjs.map → markdown-renderer-m0Qqa1u8.cjs.map} +1 -1
- package/dist/{multi-column-yjFC88Z6.cjs → multi-column-B9TVKcLl.cjs} +3 -3
- package/dist/{multi-column-yjFC88Z6.cjs.map → multi-column-B9TVKcLl.cjs.map} +1 -1
- package/dist/{multi-column-B-Gd6DJJ.js → multi-column-p8sEagdM.js} +3 -3
- package/dist/{multi-column-B-Gd6DJJ.js.map → multi-column-p8sEagdM.js.map} +1 -1
- package/dist/{property-filter-creator-N6YVZDUw.cjs → property-filter-creator-CdxTSrOs.cjs} +3 -3
- package/dist/{property-filter-creator-N6YVZDUw.cjs.map → property-filter-creator-CdxTSrOs.cjs.map} +1 -1
- package/dist/{property-filter-creator-DxxQ7nnp.js → property-filter-creator-D60-FVBL.js} +3 -3
- package/dist/{property-filter-creator-DxxQ7nnp.js.map → property-filter-creator-D60-FVBL.js.map} +1 -1
- package/dist/{search-field-block-BEBsQ2-6.cjs → search-field-block-BkRBAVCC.cjs} +2 -2
- package/dist/{search-field-block-BEBsQ2-6.cjs.map → search-field-block-BkRBAVCC.cjs.map} +1 -1
- package/dist/{search-field-block-CHB9BY84.js → search-field-block-CJSnpu8G.js} +2 -2
- package/dist/{search-field-block-CHB9BY84.js.map → search-field-block-CJSnpu8G.js.map} +1 -1
- package/dist/{select-BCKCKsi9.js → select-BSf4VfTX.js} +2 -2
- package/dist/{select-BCKCKsi9.js.map → select-BSf4VfTX.js.map} +1 -1
- package/dist/{select-DBbnw8QV.cjs → select-CA9x5WdL.cjs} +2 -2
- package/dist/{select-DBbnw8QV.cjs.map → select-CA9x5WdL.cjs.map} +1 -1
- package/dist/{select-data-filter-s_79ePBD.cjs → select-data-filter-B1ZSewKM.cjs} +2 -2
- package/dist/{select-data-filter-s_79ePBD.cjs.map → select-data-filter-B1ZSewKM.cjs.map} +1 -1
- package/dist/{select-data-filter-BdoLm7cU.js → select-data-filter-CRsIOTuD.js} +2 -2
- package/dist/{select-data-filter-BdoLm7cU.js.map → select-data-filter-CRsIOTuD.js.map} +1 -1
- package/dist/{select-field-block-CVy2hRpS.cjs → select-field-block-DuCz05gv.cjs} +2 -2
- package/dist/{select-field-block-CVy2hRpS.cjs.map → select-field-block-DuCz05gv.cjs.map} +1 -1
- package/dist/{select-field-block-C5wc3v5m.js → select-field-block-z5_ve898.js} +2 -2
- package/dist/{select-field-block-C5wc3v5m.js.map → select-field-block-z5_ve898.js.map} +1 -1
- package/dist/src/ds/components/Toaster/index.d.ts +1 -0
- package/dist/src/utils/toast.d.ts +1 -0
- package/dist/{thread-list-5lqbiVjT.cjs → thread-list-DISOdCG1.cjs} +2 -2
- package/dist/{thread-list-5lqbiVjT.cjs.map → thread-list-DISOdCG1.cjs.map} +1 -1
- package/dist/{thread-list-B0wpNa1l.js → thread-list-DStSVzaX.js} +2 -2
- package/dist/{thread-list-B0wpNa1l.js.map → thread-list-DStSVzaX.js.map} +1 -1
- package/dist/{time-picker-DoReHQCM.js → time-picker-CL4xWUGp.js} +2 -2
- package/dist/{time-picker-DoReHQCM.js.map → time-picker-CL4xWUGp.js.map} +1 -1
- package/dist/{time-picker-CQnJSakJ.cjs → time-picker-CR4_fwUk.cjs} +2 -2
- package/dist/{time-picker-CQnJSakJ.cjs.map → time-picker-CR4_fwUk.cjs.map} +1 -1
- package/dist/toast-BKsfnapA.js +52 -0
- package/dist/toast-BKsfnapA.js.map +1 -0
- package/dist/toast-Bh4WQDyj.cjs +55 -0
- package/dist/toast-Bh4WQDyj.cjs.map +1 -0
- package/dist/{traces-data-list-DSPQP1h9.cjs → traces-data-list-C_7puLGo.cjs} +6 -5
- package/dist/{traces-data-list-DSPQP1h9.cjs.map → traces-data-list-C_7puLGo.cjs.map} +1 -1
- package/dist/{traces-data-list-rt7G6c-b.js → traces-data-list-D8pdf9Yu.js} +4 -3
- package/dist/{traces-data-list-rt7G6c-b.js.map → traces-data-list-D8pdf9Yu.js.map} +1 -1
- package/dist/{truncate-B__sdTWJ.cjs → truncate-Dc4uvGy6.cjs} +2 -2
- package/dist/{truncate-B__sdTWJ.cjs.map → truncate-Dc4uvGy6.cjs.map} +1 -1
- package/dist/{truncate-S31tpC20.js → truncate-ReelyWbD.js} +2 -2
- package/dist/{truncate-S31tpC20.js.map → truncate-ReelyWbD.js.map} +1 -1
- package/dist/{use-table-keyboard-navigation-4FqdVh0f.js → use-table-keyboard-navigation-Cy_SvYwQ.js} +2 -2
- package/dist/{use-table-keyboard-navigation-4FqdVh0f.js.map → use-table-keyboard-navigation-Cy_SvYwQ.js.map} +1 -1
- package/dist/{use-table-keyboard-navigation-DGHSNehl.cjs → use-table-keyboard-navigation-DWo2Q8_r.cjs} +3 -3
- package/dist/{use-table-keyboard-navigation-DGHSNehl.cjs.map → use-table-keyboard-navigation-DWo2Q8_r.cjs.map} +1 -1
- package/dist/utils/toast.cjs.js +10 -0
- package/dist/utils/toast.cjs.js.map +1 -0
- package/dist/utils/toast.d.ts +2 -0
- package/dist/utils/toast.es.js +2 -0
- package/dist/utils/toast.es.js.map +1 -0
- package/package.json +13 -7
- package/dist/Breadcrumb--hRsY96j.js.map +0 -1
- package/dist/Breadcrumb-D7lcwKK6.cjs.map +0 -1
- package/dist/Icon-BAgNsQRj.js.map +0 -1
- package/dist/Icon-xYD5TR12.cjs.map +0 -1
- package/dist/data-list-skeleton-CcEwvf6q.cjs +0 -59
- package/dist/data-list-skeleton-CcEwvf6q.cjs.map +0 -1
- package/dist/data-list-skeleton-DNIPkS_y.js +0 -55
- package/dist/data-list-skeleton-DNIPkS_y.js.map +0 -1
- package/dist/logs-data-list-Bm45BZfQ.cjs +0 -91
- package/dist/logs-data-list-Bm45BZfQ.cjs.map +0 -1
- package/dist/logs-data-list-Bs7F_646.js +0 -88
- package/dist/logs-data-list-Bs7F_646.js.map +0 -1
- package/dist/use-copy-to-clipboard-CiSfp8oO.js +0 -127
- package/dist/use-copy-to-clipboard-CiSfp8oO.js.map +0 -1
- package/dist/use-copy-to-clipboard-y495_Ckw.cjs +0 -131
- package/dist/use-copy-to-clipboard-y495_Ckw.cjs.map +0 -1
- /package/dist/{use-copy-to-clipboard.css → toast.css} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-time-picker-Bc2qtOjj.js","sources":["../src/ds/components/DateTimePicker/date-time-picker.tsx"],"sourcesContent":["import { format, formatDate, isValid } from 'date-fns';\nimport { CalendarIcon, CircleAlertIcon } from 'lucide-react';\nimport * as React from 'react';\nimport type { DayPickerSingleProps } from 'react-day-picker';\nimport { useDebouncedCallback } from 'use-debounce';\n\nimport { TextFieldBlock } from '../FormFieldBlocks/fields/text-field-block';\nimport { DatePicker } from './date-picker';\nimport { TimePicker } from './time-picker';\nimport { Button } from '@/ds/components/Button';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { cn } from '@/lib/utils';\n\ntype CommonProps = Omit<DayPickerSingleProps, 'mode' | 'selected' | 'onSelect'> & {\n value: Date | undefined | null;\n minValue?: Date | null;\n maxValue?: Date | null;\n defaultTimeStrValue?: string;\n onValueChange: (date: Date | undefined) => void;\n};\n\nexport type DateTimePickerProps =\n | (CommonProps & { children?: never; className?: string; placeholder?: string })\n | (CommonProps & { children: React.ReactNode; className?: never; placeholder?: string });\n\nexport const DateTimePicker: React.FC<DateTimePickerProps> = ({\n value,\n minValue,\n maxValue,\n defaultTimeStrValue,\n onValueChange,\n children,\n className,\n placeholder,\n ...props\n}) => {\n const [openPopover, setOpenPopover] = React.useState(false);\n\n return (\n <Popover open={openPopover} onOpenChange={setOpenPopover}>\n <PopoverTrigger asChild>\n {children ? (\n children\n ) : (\n <DefaultTrigger\n value={value}\n placeholder={placeholder}\n className={className}\n data-testid=\"datepicker-button\"\n />\n )}\n </PopoverTrigger>\n <PopoverContent\n className=\"backdrop-blur-4xl w-auto p-0! bg-surface4 max-w-[16.5rem]\"\n align=\"start\"\n data-testid=\"datepicker-calendar\"\n >\n <DateTimePickerContent\n value={value}\n minValue={minValue}\n maxValue={maxValue}\n onValueChange={onValueChange}\n setOpenPopover={setOpenPopover}\n defaultTimeStrValue={defaultTimeStrValue}\n {...props}\n />\n </PopoverContent>\n </Popover>\n );\n};\n\nfunction getCompoundDate({ date, timeStr = '' }: { date: Date; timeStr?: string }): Date | null {\n if (!isValid(date)) {\n return null;\n }\n\n if (timeStr) {\n const dateStr = format(date, 'yyyy-MM-dd');\n const newDate = new Date(`${dateStr} ${timeStr}`);\n if (isValid(newDate)) {\n return newDate;\n }\n }\n\n return date;\n}\n\nexport const DateTimePickerContent = ({\n value,\n minValue,\n maxValue,\n onValueChange,\n setOpenPopover,\n placeholder,\n className,\n defaultTimeStrValue,\n ...props\n}: CommonProps & {\n setOpenPopover?: (open: boolean) => void;\n placeholder?: string;\n className?: string;\n}) => {\n const [localErrorMsg, setLocalErrorMsg] = React.useState<string | null>(null);\n const [dateInputValue, setDateInputValue] = React.useState<string>(\n value ? format(getCompoundDate({ date: value, timeStr: defaultTimeStrValue }) || '', 'PP p') : '',\n );\n const [timeStrValue, setTimeStrValue] = React.useState<string>(defaultTimeStrValue || '');\n const [selected, setSelected] = React.useState<Date | undefined>(value ? new Date(value) : undefined);\n\n const debouncedDateUpdate = useDebouncedCallback((date: Date) => {\n if (isValid(date)) {\n setSelected(date);\n onValueChange?.(date);\n setOpenPopover?.(false);\n }\n }, 500);\n\n const handleInputChange: React.ChangeEventHandler<HTMLInputElement> = e => {\n setDateInputValue(e.currentTarget.value);\n const date = new Date(e.currentTarget.value);\n debouncedDateUpdate(date);\n };\n\n const updateInputValue = (date: Date | string) => {\n if (isValid(date)) {\n if (maxValue && date > maxValue) {\n setLocalErrorMsg(`The selected date should be before ${format(maxValue, 'PP p')}`);\n setDateInputValue('');\n } else if (minValue && date < minValue) {\n setLocalErrorMsg(`The selected date should be after ${format(minValue, 'PP p')}`);\n setDateInputValue('');\n } else {\n setDateInputValue(format(date, 'PP p'));\n setLocalErrorMsg('');\n }\n } else {\n setDateInputValue('');\n setLocalErrorMsg('');\n }\n };\n\n const dateInputValueDate = new Date(dateInputValue);\n const dateInputValueIsValid = isValid(dateInputValueDate);\n const newValueDefined = dateInputValueIsValid && dateInputValueDate.getTime() !== value?.getTime();\n\n const handleDaySelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleMonthSelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleTimeStrChange = (val: string) => {\n setTimeStrValue(val);\n\n if (dateInputValueIsValid) {\n const newDate = getCompoundDate({ date: dateInputValueDate, timeStr: val });\n updateInputValue(newDate || '');\n }\n };\n\n const handleCancel = () => {\n setOpenPopover?.(false);\n };\n\n const handleApply = () => {\n if (isValid(dateInputValueDate)) {\n onValueChange(dateInputValueDate);\n }\n setOpenPopover?.(false);\n };\n\n const handleClear = () => {\n onValueChange(undefined);\n setSelected(undefined);\n setDateInputValue('');\n setTimeStrValue('');\n setOpenPopover?.(false);\n };\n\n return (\n <div\n aria-label=\"Choose date\"\n className={cn('relative flex flex-col', className)}\n onKeyDown={e => {\n e.stopPropagation();\n if (e.key === 'Escape') {\n setOpenPopover?.(false);\n }\n }}\n >\n <TextFieldBlock\n name=\"date-range\"\n type=\"text\"\n value={dateInputValue}\n onChange={handleInputChange}\n placeholder={placeholder}\n className=\"m-4 mb-0 w-auto!\"\n />\n\n {localErrorMsg && (\n <div\n className={cn(\n 'text-ui-md m-4 mb-0 text-neutral3',\n '[&>svg]:w-[1.1em] [&>svg]:h-[1.1em] [&>svg]:mt-0.5 [&>svg]:text-red-500 [&>svg]:float-left [&>svg]:mr-2',\n )}\n >\n <CircleAlertIcon /> {localErrorMsg}\n </div>\n )}\n\n <DatePicker\n mode=\"single\"\n month={selected}\n selected={selected}\n onMonthChange={handleMonthSelect}\n onSelect={handleDaySelect}\n {...props}\n />\n\n <TimePicker\n onValueChange={handleTimeStrChange}\n className=\"m-4 mt-0 w-auto\"\n defaultValue={value ? formatDate(new Date(value), 'hh:mm a') : defaultTimeStrValue}\n />\n\n <div className=\"grid grid-cols-[1fr_2fr] gap-2 m-4 mt-0\">\n {newValueDefined && (\n <Button tabIndex={0} size=\"md\" onClick={handleClear} type=\"button\">\n Clear\n </Button>\n )}\n <Button\n tabIndex={0}\n type=\"button\"\n size=\"md\"\n variant={newValueDefined ? 'primary' : 'default'}\n onClick={() => {\n dateInputValueIsValid ? handleApply() : handleCancel();\n }}\n >\n {newValueDefined ? `Apply` : `Cancel`}\n </Button>\n </div>\n </div>\n );\n};\n\ntype DefaultButtonProps = {\n className?: string;\n placeholder?: string;\n value: Date | undefined | null;\n};\n\nexport const DefaultTrigger = React.forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ value, placeholder, className, ...props }, ref) => {\n return (\n <Button ref={ref} className={cn('justify-start', className)} {...props}>\n <CalendarIcon className=\"h-4 w-4\" />\n {value ? (\n <span className=\"text-white\">{format(value, 'PP p')}</span>\n ) : (\n <span className=\"text-gray\">{placeholder ?? 'Pick a date'}</span>\n )}\n </Button>\n );\n },\n);\n"],"names":[],"mappings":";;;;;;;;;;;AAyBO,MAAM,iBAAgD,CAAC;AAAA,EAC5D,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,mBAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,KAAA,CAAM,SAAS,KAAK,CAAA;AAE1D,EAAA,uBACE,IAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAM,WAAA,EAAa,cAAc,cAAA,EACxC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,OAAA,EAAO,IAAA,EACpB,QAAA,EAAA,QAAA,GACC,QAAA,mBAEA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,KAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA;AAAA,QACA,aAAA,EAAY;AAAA;AAAA,KACd,EAEJ,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,2DAAA;AAAA,QACV,KAAA,EAAM,OAAA;AAAA,QACN,aAAA,EAAY,qBAAA;AAAA,QAEZ,QAAA,kBAAA,GAAA;AAAA,UAAC,qBAAA;AAAA,UAAA;AAAA,YACC,KAAA;AAAA,YACA,QAAA;AAAA,YACA,QAAA;AAAA,YACA,aAAA;AAAA,YACA,cAAA;AAAA,YACA,mBAAA;AAAA,YACC,GAAG;AAAA;AAAA;AACN;AAAA;AACF,GAAA,EACF,CAAA;AAEJ;AAEA,SAAS,eAAA,CAAgB,EAAE,IAAA,EAAM,OAAA,GAAU,IAAG,EAAkD;AAC9F,EAAA,IAAI,CAAC,OAAA,CAAQ,IAAI,CAAA,EAAG;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,MAAM,OAAA,GAAU,MAAA,CAAO,IAAA,EAAM,YAAY,CAAA;AACzC,IAAA,MAAM,0BAAU,IAAI,IAAA,CAAK,GAAG,OAAO,CAAA,CAAA,EAAI,OAAO,CAAA,CAAE,CAAA;AAChD,IAAA,IAAI,OAAA,CAAQ,OAAO,CAAA,EAAG;AACpB,MAAA,OAAO,OAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,MAAM,wBAAwB,CAAC;AAAA,EACpC,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,mBAAA;AAAA,EACA,GAAG;AACL,CAAA,KAIM;AACJ,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,KAAA,CAAM,SAAwB,IAAI,CAAA;AAC5E,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,KAAA,CAAM,QAAA;AAAA,IAChD,KAAA,GAAQ,MAAA,CAAO,eAAA,CAAgB,EAAE,IAAA,EAAM,KAAA,EAAO,OAAA,EAAS,mBAAA,EAAqB,CAAA,IAAK,EAAA,EAAI,MAAM,CAAA,GAAI;AAAA,GACjG;AACA,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,IAAI,KAAA,CAAM,QAAA,CAAiB,uBAAuB,EAAE,CAAA;AACxF,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,KAAA,CAAM,QAAA,CAA2B,KAAA,GAAQ,IAAI,IAAA,CAAK,KAAK,CAAA,GAAI,MAAS,CAAA;AAEpG,EAAA,MAAM,mBAAA,GAAsB,oBAAA,CAAqB,CAAC,IAAA,KAAe;AAC/D,IAAA,IAAI,OAAA,CAAQ,IAAI,CAAA,EAAG;AACjB,MAAA,WAAA,CAAY,IAAI,CAAA;AAChB,MAAA,aAAA,GAAgB,IAAI,CAAA;AACpB,MAAA,cAAA,GAAiB,KAAK,CAAA;AAAA,IACxB;AAAA,EACF,GAAG,GAAG,CAAA;AAEN,EAAA,MAAM,oBAAgE,CAAA,CAAA,KAAK;AACzE,IAAA,iBAAA,CAAkB,CAAA,CAAE,cAAc,KAAK,CAAA;AACvC,IAAA,MAAM,IAAA,GAAO,IAAI,IAAA,CAAK,CAAA,CAAE,cAAc,KAAK,CAAA;AAC3C,IAAA,mBAAA,CAAoB,IAAI,CAAA;AAAA,EAC1B,CAAA;AAEA,EAAA,MAAM,gBAAA,GAAmB,CAAC,IAAA,KAAwB;AAChD,IAAA,IAAI,OAAA,CAAQ,IAAI,CAAA,EAAG;AACjB,MAAA,IAAI,QAAA,IAAY,OAAO,QAAA,EAAU;AAC/B,QAAA,gBAAA,CAAiB,CAAA,mCAAA,EAAsC,MAAA,CAAO,QAAA,EAAU,MAAM,CAAC,CAAA,CAAE,CAAA;AACjF,QAAA,iBAAA,CAAkB,EAAE,CAAA;AAAA,MACtB,CAAA,MAAA,IAAW,QAAA,IAAY,IAAA,GAAO,QAAA,EAAU;AACtC,QAAA,gBAAA,CAAiB,CAAA,kCAAA,EAAqC,MAAA,CAAO,QAAA,EAAU,MAAM,CAAC,CAAA,CAAE,CAAA;AAChF,QAAA,iBAAA,CAAkB,EAAE,CAAA;AAAA,MACtB,CAAA,MAAO;AACL,QAAA,iBAAA,CAAkB,MAAA,CAAO,IAAA,EAAM,MAAM,CAAC,CAAA;AACtC,QAAA,gBAAA,CAAiB,EAAE,CAAA;AAAA,MACrB;AAAA,IACF,CAAA,MAAO;AACL,MAAA,iBAAA,CAAkB,EAAE,CAAA;AACpB,MAAA,gBAAA,CAAiB,EAAE,CAAA;AAAA,IACrB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,IAAI,IAAA,CAAK,cAAc,CAAA;AAClD,EAAA,MAAM,qBAAA,GAAwB,QAAQ,kBAAkB,CAAA;AACxD,EAAA,MAAM,kBAAkB,qBAAA,IAAyB,kBAAA,CAAmB,OAAA,EAAQ,KAAM,OAAO,OAAA,EAAQ;AAEjG,EAAA,MAAM,eAAA,GAAkB,CAAC,IAAA,KAA2B;AAClD,IAAA,WAAA,CAAY,IAAI,CAAA;AAChB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,MAAM,UAAU,eAAA,CAAgB,EAAE,IAAA,EAAM,OAAA,EAAS,cAAc,CAAA;AAC/D,MAAA,gBAAA,CAAiB,WAAW,EAAE,CAAA;AAAA,IAChC,CAAA,MAAO;AACL,MAAA,gBAAA,CAAiB,EAAE,CAAA;AAAA,IACrB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,iBAAA,GAAoB,CAAC,IAAA,KAA2B;AACpD,IAAA,WAAA,CAAY,IAAI,CAAA;AAChB,IAAA,IAAI,IAAA,EAAM;AACR,MAAA,MAAM,UAAU,eAAA,CAAgB,EAAE,IAAA,EAAM,OAAA,EAAS,cAAc,CAAA;AAC/D,MAAA,gBAAA,CAAiB,WAAW,EAAE,CAAA;AAAA,IAChC,CAAA,MAAO;AACL,MAAA,gBAAA,CAAiB,EAAE,CAAA;AAAA,IACrB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,mBAAA,GAAsB,CAAC,GAAA,KAAgB;AAC3C,IAAA,eAAA,CAAgB,GAAG,CAAA;AAEnB,IAAA,IAAI,qBAAA,EAAuB;AACzB,MAAA,MAAM,UAAU,eAAA,CAAgB,EAAE,MAAM,kBAAA,EAAoB,OAAA,EAAS,KAAK,CAAA;AAC1E,MAAA,gBAAA,CAAiB,WAAW,EAAE,CAAA;AAAA,IAChC;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,eAAe,MAAM;AACzB,IAAA,cAAA,GAAiB,KAAK,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,IAAI,OAAA,CAAQ,kBAAkB,CAAA,EAAG;AAC/B,MAAA,aAAA,CAAc,kBAAkB,CAAA;AAAA,IAClC;AACA,IAAA,cAAA,GAAiB,KAAK,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,aAAA,CAAc,MAAS,CAAA;AACvB,IAAA,WAAA,CAAY,MAAS,CAAA;AACrB,IAAA,iBAAA,CAAkB,EAAE,CAAA;AACpB,IAAA,eAAA,CAAgB,EAAE,CAAA;AAClB,IAAA,cAAA,GAAiB,KAAK,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,YAAA,EAAW,aAAA;AAAA,MACX,SAAA,EAAW,EAAA,CAAG,wBAAA,EAA0B,SAAS,CAAA;AAAA,MACjD,WAAW,CAAA,CAAA,KAAK;AACd,QAAA,CAAA,CAAE,eAAA,EAAgB;AAClB,QAAA,IAAI,CAAA,CAAE,QAAQ,QAAA,EAAU;AACtB,UAAA,cAAA,GAAiB,KAAK,CAAA;AAAA,QACxB;AAAA,MACF,CAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,YAAA;AAAA,YACL,IAAA,EAAK,MAAA;AAAA,YACL,KAAA,EAAO,cAAA;AAAA,YACP,QAAA,EAAU,iBAAA;AAAA,YACV,WAAA;AAAA,YACA,SAAA,EAAU;AAAA;AAAA,SACZ;AAAA,QAEC,aAAA,oBACC,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,mCAAA;AAAA,cACA;AAAA,aACF;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,eAAA,EAAA,EAAgB,CAAA;AAAA,cAAE,GAAA;AAAA,cAAE;AAAA;AAAA;AAAA,SACvB;AAAA,wBAGF,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,QAAA;AAAA,YACL,KAAA,EAAO,QAAA;AAAA,YACP,QAAA;AAAA,YACA,aAAA,EAAe,iBAAA;AAAA,YACf,QAAA,EAAU,eAAA;AAAA,YACT,GAAG;AAAA;AAAA,SACN;AAAA,wBAEA,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAe,mBAAA;AAAA,YACf,SAAA,EAAU,iBAAA;AAAA,YACV,YAAA,EAAc,QAAQ,UAAA,CAAW,IAAI,KAAK,KAAK,CAAA,EAAG,SAAS,CAAA,GAAI;AAAA;AAAA,SACjE;AAAA,wBAEA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yCAAA,EACZ,QAAA,EAAA;AAAA,UAAA,eAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAO,QAAA,EAAU,CAAA,EAAG,IAAA,EAAK,MAAK,OAAA,EAAS,WAAA,EAAa,IAAA,EAAK,QAAA,EAAS,QAAA,EAAA,OAAA,EAEnE,CAAA;AAAA,0BAEF,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,QAAA,EAAU,CAAA;AAAA,cACV,IAAA,EAAK,QAAA;AAAA,cACL,IAAA,EAAK,IAAA;AAAA,cACL,OAAA,EAAS,kBAAkB,SAAA,GAAY,SAAA;AAAA,cACvC,SAAS,MAAM;AACb,gBAAA,qBAAA,GAAwB,WAAA,KAAgB,YAAA,EAAa;AAAA,cACvD,CAAA;AAAA,cAEC,4BAAkB,CAAA,KAAA,CAAA,GAAU,CAAA,MAAA;AAAA;AAAA;AAC/B,SAAA,EACF;AAAA;AAAA;AAAA,GACF;AAEJ;AAQO,MAAM,iBAAiB,KAAA,CAAM,UAAA;AAAA,EAClC,CAAC,EAAE,KAAA,EAAO,WAAA,EAAa,WAAW,GAAG,KAAA,IAAS,GAAA,KAAQ;AACpD,IAAA,uBACE,IAAA,CAAC,UAAO,GAAA,EAAU,SAAA,EAAW,GAAG,eAAA,EAAiB,SAAS,CAAA,EAAI,GAAG,KAAA,EAC/D,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,WAAU,SAAA,EAAU,CAAA;AAAA,MACjC,KAAA,mBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,cAAc,QAAA,EAAA,MAAA,CAAO,KAAA,EAAO,MAAM,CAAA,EAAE,oBAEpD,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,WAAA,EAAa,yBAAe,aAAA,EAAc;AAAA,KAAA,EAE9D,CAAA;AAAA,EAEJ;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"date-time-picker-CxYld6QS.js","sources":["../src/ds/components/DateTimePicker/date-time-picker.tsx"],"sourcesContent":["import { format, formatDate, isValid } from 'date-fns';\nimport { CalendarIcon, CircleAlertIcon } from 'lucide-react';\nimport * as React from 'react';\nimport type { DayPickerSingleProps } from 'react-day-picker';\nimport { useDebouncedCallback } from 'use-debounce';\n\nimport { TextFieldBlock } from '../FormFieldBlocks/fields/text-field-block';\nimport { DatePicker } from './date-picker';\nimport { TimePicker } from './time-picker';\nimport { Button } from '@/ds/components/Button';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { cn } from '@/lib/utils';\n\ntype CommonProps = Omit<DayPickerSingleProps, 'mode' | 'selected' | 'onSelect'> & {\n value: Date | undefined | null;\n minValue?: Date | null;\n maxValue?: Date | null;\n defaultTimeStrValue?: string;\n onValueChange: (date: Date | undefined) => void;\n};\n\nexport type DateTimePickerProps =\n | (CommonProps & { children?: never; className?: string; placeholder?: string })\n | (CommonProps & { children: React.ReactNode; className?: never; placeholder?: string });\n\nexport const DateTimePicker: React.FC<DateTimePickerProps> = ({\n value,\n minValue,\n maxValue,\n defaultTimeStrValue,\n onValueChange,\n children,\n className,\n placeholder,\n ...props\n}) => {\n const [openPopover, setOpenPopover] = React.useState(false);\n\n return (\n <Popover open={openPopover} onOpenChange={setOpenPopover}>\n <PopoverTrigger asChild>\n {children ? (\n children\n ) : (\n <DefaultTrigger\n value={value}\n placeholder={placeholder}\n className={className}\n data-testid=\"datepicker-button\"\n />\n )}\n </PopoverTrigger>\n <PopoverContent\n className=\"backdrop-blur-4xl w-auto p-0! bg-surface4 max-w-[16.5rem]\"\n align=\"start\"\n data-testid=\"datepicker-calendar\"\n >\n <DateTimePickerContent\n value={value}\n minValue={minValue}\n maxValue={maxValue}\n onValueChange={onValueChange}\n setOpenPopover={setOpenPopover}\n defaultTimeStrValue={defaultTimeStrValue}\n {...props}\n />\n </PopoverContent>\n </Popover>\n );\n};\n\nfunction getCompoundDate({ date, timeStr = '' }: { date: Date; timeStr?: string }): Date | null {\n if (!isValid(date)) {\n return null;\n }\n\n if (timeStr) {\n const dateStr = format(date, 'yyyy-MM-dd');\n const newDate = new Date(`${dateStr} ${timeStr}`);\n if (isValid(newDate)) {\n return newDate;\n }\n }\n\n return date;\n}\n\nexport const DateTimePickerContent = ({\n value,\n minValue,\n maxValue,\n onValueChange,\n setOpenPopover,\n placeholder,\n className,\n defaultTimeStrValue,\n ...props\n}: CommonProps & {\n setOpenPopover?: (open: boolean) => void;\n placeholder?: string;\n className?: string;\n}) => {\n const [localErrorMsg, setLocalErrorMsg] = React.useState<string | null>(null);\n const [dateInputValue, setDateInputValue] = React.useState<string>(\n value ? format(getCompoundDate({ date: value, timeStr: defaultTimeStrValue }) || '', 'PP p') : '',\n );\n const [timeStrValue, setTimeStrValue] = React.useState<string>(defaultTimeStrValue || '');\n const [selected, setSelected] = React.useState<Date | undefined>(value ? new Date(value) : undefined);\n\n const debouncedDateUpdate = useDebouncedCallback((date: Date) => {\n if (isValid(date)) {\n setSelected(date);\n onValueChange?.(date);\n setOpenPopover?.(false);\n }\n }, 500);\n\n const handleInputChange: React.ChangeEventHandler<HTMLInputElement> = e => {\n setDateInputValue(e.currentTarget.value);\n const date = new Date(e.currentTarget.value);\n debouncedDateUpdate(date);\n };\n\n const updateInputValue = (date: Date | string) => {\n if (isValid(date)) {\n if (maxValue && date > maxValue) {\n setLocalErrorMsg(`The selected date should be before ${format(maxValue, 'PP p')}`);\n setDateInputValue('');\n } else if (minValue && date < minValue) {\n setLocalErrorMsg(`The selected date should be after ${format(minValue, 'PP p')}`);\n setDateInputValue('');\n } else {\n setDateInputValue(format(date, 'PP p'));\n setLocalErrorMsg('');\n }\n } else {\n setDateInputValue('');\n setLocalErrorMsg('');\n }\n };\n\n const dateInputValueDate = new Date(dateInputValue);\n const dateInputValueIsValid = isValid(dateInputValueDate);\n const newValueDefined = dateInputValueIsValid && dateInputValueDate.getTime() !== value?.getTime();\n\n const handleDaySelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleMonthSelect = (date: Date | undefined) => {\n setSelected(date);\n if (date) {\n const newDate = getCompoundDate({ date, timeStr: timeStrValue });\n updateInputValue(newDate || '');\n } else {\n updateInputValue('');\n }\n };\n\n const handleTimeStrChange = (val: string) => {\n setTimeStrValue(val);\n\n if (dateInputValueIsValid) {\n const newDate = getCompoundDate({ date: dateInputValueDate, timeStr: val });\n updateInputValue(newDate || '');\n }\n };\n\n const handleCancel = () => {\n setOpenPopover?.(false);\n };\n\n const handleApply = () => {\n if (isValid(dateInputValueDate)) {\n onValueChange(dateInputValueDate);\n }\n setOpenPopover?.(false);\n };\n\n const handleClear = () => {\n onValueChange(undefined);\n setSelected(undefined);\n setDateInputValue('');\n setTimeStrValue('');\n setOpenPopover?.(false);\n };\n\n return (\n <div\n aria-label=\"Choose date\"\n className={cn('relative flex flex-col', className)}\n onKeyDown={e => {\n e.stopPropagation();\n if (e.key === 'Escape') {\n setOpenPopover?.(false);\n }\n }}\n >\n <TextFieldBlock\n name=\"date-range\"\n type=\"text\"\n value={dateInputValue}\n onChange={handleInputChange}\n placeholder={placeholder}\n className=\"m-4 mb-0 w-auto!\"\n />\n\n {localErrorMsg && (\n <div\n className={cn(\n 'text-ui-md m-4 mb-0 text-neutral3',\n '[&>svg]:w-[1.1em] [&>svg]:h-[1.1em] [&>svg]:mt-0.5 [&>svg]:text-red-500 [&>svg]:float-left [&>svg]:mr-2',\n )}\n >\n <CircleAlertIcon /> {localErrorMsg}\n </div>\n )}\n\n <DatePicker\n mode=\"single\"\n month={selected}\n selected={selected}\n onMonthChange={handleMonthSelect}\n onSelect={handleDaySelect}\n {...props}\n />\n\n <TimePicker\n onValueChange={handleTimeStrChange}\n className=\"m-4 mt-0 w-auto\"\n defaultValue={value ? formatDate(new Date(value), 'hh:mm a') : defaultTimeStrValue}\n />\n\n <div className=\"grid grid-cols-[1fr_2fr] gap-2 m-4 mt-0\">\n {newValueDefined && (\n <Button tabIndex={0} size=\"md\" onClick={handleClear} type=\"button\">\n Clear\n </Button>\n )}\n <Button\n tabIndex={0}\n type=\"button\"\n size=\"md\"\n variant={newValueDefined ? 'primary' : 'default'}\n onClick={() => {\n dateInputValueIsValid ? handleApply() : handleCancel();\n }}\n >\n {newValueDefined ? `Apply` : `Cancel`}\n </Button>\n </div>\n </div>\n );\n};\n\ntype DefaultButtonProps = {\n className?: string;\n placeholder?: string;\n value: Date | undefined | null;\n};\n\nexport const DefaultTrigger = React.forwardRef<HTMLButtonElement, DefaultButtonProps>(\n ({ value, placeholder, className, ...props }, ref) => {\n return (\n <Button ref={ref} className={cn('justify-start', className)} {...props}>\n <CalendarIcon className=\"h-4 w-4\" />\n {value ? (\n <span className=\"text-white\">{format(value, 'PP p')}</span>\n ) : (\n <span className=\"text-gray\">{placeholder ?? 'Pick a date'}</span>\n )}\n </Button>\n );\n },\n);\n"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,8 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
const dateFns = require('date-fns');
|
|
5
5
|
const lucideReact = require('lucide-react');
|
|
6
6
|
const React = require('react');
|
|
7
|
-
const Button = require('./Button-
|
|
8
|
-
const timePicker = require('./time-picker-
|
|
7
|
+
const Button = require('./Button-Bj667lJx.cjs');
|
|
8
|
+
const timePicker = require('./time-picker-CR4_fwUk.cjs');
|
|
9
9
|
const dropdownMenu = require('./dropdown-menu-BvpUs54j.cjs');
|
|
10
10
|
const popover = require('./popover-BjnbSCQw.cjs');
|
|
11
11
|
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
@@ -167,4 +167,4 @@ function DateTimeRangePicker({
|
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
exports.DateTimeRangePicker = DateTimeRangePicker;
|
|
170
|
-
//# sourceMappingURL=date-time-range-picker-
|
|
170
|
+
//# sourceMappingURL=date-time-range-picker-C4zzA37w.cjs.map
|
package/dist/{date-time-range-picker-DS8pApgs.cjs.map → date-time-range-picker-C4zzA37w.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-time-range-picker-DS8pApgs.cjs","sources":["../src/ds/components/DateTimeRangePicker/date-time-range-picker.tsx"],"sourcesContent":["import { isValid, parse } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { DatePicker, TimePicker } from '@/ds/components/DateTimePicker';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { Popover, PopoverTrigger, PopoverContent } from '@/ds/components/Popover/popover';\nimport { cn } from '@/lib/utils';\n\nexport type DateRangePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\nconst DATE_PRESETS: { value: DateRangePreset; label: string; ms?: number }[] = [\n { value: 'all', label: 'All' },\n { value: 'last-24h', label: 'Last 24 hours', ms: 24 * 60 * 60 * 1000 },\n { value: 'last-3d', label: 'Last 3 days', ms: 3 * 24 * 60 * 60 * 1000 },\n { value: 'last-7d', label: 'Last 7 days', ms: 7 * 24 * 60 * 60 * 1000 },\n { value: 'last-14d', label: 'Last 14 days', ms: 14 * 24 * 60 * 60 * 1000 },\n { value: 'last-30d', label: 'Last 30 days', ms: 30 * 24 * 60 * 60 * 1000 },\n { value: 'custom', label: 'Custom range...' },\n];\n\nfunction buildDateWithTime(date: Date, timeStr: string): Date | null {\n const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const combined = parse(timeStr, 'h:mm a', dateOnly);\n return isValid(combined) ? combined : null;\n}\n\nexport interface DateTimeRangePickerProps {\n preset?: DateRangePreset;\n onPresetChange?: (preset: DateRangePreset) => void;\n dateFrom?: Date;\n dateTo?: Date;\n onDateChange?: (value: Date | undefined, type: 'from' | 'to') => void;\n disabled?: boolean;\n /** Subset of presets to show. If omitted, all presets are shown. */\n presets?: readonly DateRangePreset[];\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n}\n\nexport function DateTimeRangePicker({\n preset = 'all',\n onPresetChange,\n dateFrom,\n dateTo,\n onDateChange,\n disabled,\n presets,\n size = 'md',\n}: DateTimeRangePickerProps) {\n const visiblePresets = presets ? DATE_PRESETS.filter(p => presets.includes(p.value)) : DATE_PRESETS;\n const fallbackPreset: DateRangePreset = visiblePresets.find(p => p.value !== 'custom')?.value ?? 'all';\n const [customRangeOpen, setCustomRangeOpen] = useState(false);\n const [draftDateFrom, setDraftDateFrom] = useState<Date | undefined>(dateFrom);\n const [draftDateTo, setDraftDateTo] = useState<Date | undefined>(dateTo);\n const [draftTimeFrom, setDraftTimeFrom] = useState('12:00 AM');\n const [draftTimeTo, setDraftTimeTo] = useState('11:59 PM');\n const [customRangeError, setCustomRangeError] = useState<string | undefined>();\n\n const datePresetLabel = DATE_PRESETS.find(p => p.value === preset)?.label ?? 'All';\n\n const handlePresetSelect = (value: DateRangePreset) => {\n onPresetChange?.(value);\n if (value === 'custom') {\n setDraftDateFrom(dateFrom);\n setDraftDateTo(dateTo);\n setDraftTimeFrom('12:00 AM');\n setDraftTimeTo('11:59 PM');\n setCustomRangeOpen(true);\n return;\n }\n const entry = DATE_PRESETS.find(p => p.value === value);\n if (entry?.ms) {\n onDateChange?.(new Date(Date.now() - entry.ms), 'from');\n onDateChange?.(undefined, 'to');\n } else {\n onDateChange?.(undefined, 'from');\n onDateChange?.(undefined, 'to');\n }\n };\n\n const applyCustomRange = () => {\n const fromDate = draftDateFrom ? (buildDateWithTime(draftDateFrom, draftTimeFrom) ?? draftDateFrom) : undefined;\n const toDate = draftDateTo ? (buildDateWithTime(draftDateTo, draftTimeTo) ?? draftDateTo) : undefined;\n if (fromDate && toDate && fromDate.getTime() > toDate.getTime()) {\n setCustomRangeError('Start date/time must be before end date/time');\n return;\n }\n setCustomRangeError(undefined);\n onDateChange?.(fromDate, 'from');\n onDateChange?.(toDate, 'to');\n setCustomRangeOpen(false);\n };\n\n if (preset === 'custom') {\n return (\n <Popover open={customRangeOpen} onOpenChange={setCustomRangeOpen}>\n <PopoverTrigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {dateFrom ? dateFrom.toLocaleDateString() : 'Start'} {' \\u2013 '}\n {dateTo ? dateTo.toLocaleDateString() : 'End'}\n </Button>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className={cn('w-auto p-0')}>\n <div className={cn('flex')}>\n <div className={cn('border-r border-border1')}>\n <span className={cn('text-ui-sm text-neutral3 font-medium px-4 pt-3 block')}>Start</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateFrom}\n month={draftDateFrom}\n onSelect={setDraftDateFrom}\n disabled={disabled}\n toDate={draftDateTo}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeFrom}\n onValueChange={v => {\n if (!disabled) setDraftTimeFrom(v);\n }}\n />\n </div>\n <div>\n <span className={cn('text-ui-sm text-neutral3 font-medium px-4 pt-3 block')}>End</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateTo}\n month={draftDateTo}\n onSelect={setDraftDateTo}\n disabled={disabled}\n fromDate={draftDateFrom}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeTo}\n onValueChange={v => {\n if (!disabled) setDraftTimeTo(v);\n }}\n />\n </div>\n </div>\n {customRangeError && <p className={cn('text-ui-sm text-red-500 px-4 pb-1')}>{customRangeError}</p>}\n <div className={cn('flex justify-between items-center px-4 pb-3')}>\n <button\n type=\"button\"\n disabled={disabled}\n className={cn(\n 'text-ui-sm text-neutral3 hover:text-neutral4',\n disabled && 'opacity-50 pointer-events-none',\n )}\n onClick={() => {\n setCustomRangeError(undefined);\n handlePresetSelect(fallbackPreset);\n }}\n >\n ← Presets\n </button>\n <Button variant=\"primary\" size=\"sm\" onClick={applyCustomRange} disabled={disabled}>\n Apply\n </Button>\n </div>\n </PopoverContent>\n </Popover>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {datePresetLabel}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n {visiblePresets.map(p => (\n <DropdownMenu.Item key={p.value} onSelect={() => handlePresetSelect(p.value)}>\n {p.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":["parse","isValid","useState","jsxs","Popover","jsx","PopoverTrigger","Button","CalendarIcon","PopoverContent","cn","DatePicker","TimePicker","DropdownMenu"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-time-range-picker-C4zzA37w.cjs","sources":["../src/ds/components/DateTimeRangePicker/date-time-range-picker.tsx"],"sourcesContent":["import { isValid, parse } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { DatePicker, TimePicker } from '@/ds/components/DateTimePicker';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { Popover, PopoverTrigger, PopoverContent } from '@/ds/components/Popover/popover';\nimport { cn } from '@/lib/utils';\n\nexport type DateRangePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\nconst DATE_PRESETS: { value: DateRangePreset; label: string; ms?: number }[] = [\n { value: 'all', label: 'All' },\n { value: 'last-24h', label: 'Last 24 hours', ms: 24 * 60 * 60 * 1000 },\n { value: 'last-3d', label: 'Last 3 days', ms: 3 * 24 * 60 * 60 * 1000 },\n { value: 'last-7d', label: 'Last 7 days', ms: 7 * 24 * 60 * 60 * 1000 },\n { value: 'last-14d', label: 'Last 14 days', ms: 14 * 24 * 60 * 60 * 1000 },\n { value: 'last-30d', label: 'Last 30 days', ms: 30 * 24 * 60 * 60 * 1000 },\n { value: 'custom', label: 'Custom range...' },\n];\n\nfunction buildDateWithTime(date: Date, timeStr: string): Date | null {\n const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const combined = parse(timeStr, 'h:mm a', dateOnly);\n return isValid(combined) ? combined : null;\n}\n\nexport interface DateTimeRangePickerProps {\n preset?: DateRangePreset;\n onPresetChange?: (preset: DateRangePreset) => void;\n dateFrom?: Date;\n dateTo?: Date;\n onDateChange?: (value: Date | undefined, type: 'from' | 'to') => void;\n disabled?: boolean;\n /** Subset of presets to show. If omitted, all presets are shown. */\n presets?: readonly DateRangePreset[];\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n}\n\nexport function DateTimeRangePicker({\n preset = 'all',\n onPresetChange,\n dateFrom,\n dateTo,\n onDateChange,\n disabled,\n presets,\n size = 'md',\n}: DateTimeRangePickerProps) {\n const visiblePresets = presets ? DATE_PRESETS.filter(p => presets.includes(p.value)) : DATE_PRESETS;\n const fallbackPreset: DateRangePreset = visiblePresets.find(p => p.value !== 'custom')?.value ?? 'all';\n const [customRangeOpen, setCustomRangeOpen] = useState(false);\n const [draftDateFrom, setDraftDateFrom] = useState<Date | undefined>(dateFrom);\n const [draftDateTo, setDraftDateTo] = useState<Date | undefined>(dateTo);\n const [draftTimeFrom, setDraftTimeFrom] = useState('12:00 AM');\n const [draftTimeTo, setDraftTimeTo] = useState('11:59 PM');\n const [customRangeError, setCustomRangeError] = useState<string | undefined>();\n\n const datePresetLabel = DATE_PRESETS.find(p => p.value === preset)?.label ?? 'All';\n\n const handlePresetSelect = (value: DateRangePreset) => {\n onPresetChange?.(value);\n if (value === 'custom') {\n setDraftDateFrom(dateFrom);\n setDraftDateTo(dateTo);\n setDraftTimeFrom('12:00 AM');\n setDraftTimeTo('11:59 PM');\n setCustomRangeOpen(true);\n return;\n }\n const entry = DATE_PRESETS.find(p => p.value === value);\n if (entry?.ms) {\n onDateChange?.(new Date(Date.now() - entry.ms), 'from');\n onDateChange?.(undefined, 'to');\n } else {\n onDateChange?.(undefined, 'from');\n onDateChange?.(undefined, 'to');\n }\n };\n\n const applyCustomRange = () => {\n const fromDate = draftDateFrom ? (buildDateWithTime(draftDateFrom, draftTimeFrom) ?? draftDateFrom) : undefined;\n const toDate = draftDateTo ? (buildDateWithTime(draftDateTo, draftTimeTo) ?? draftDateTo) : undefined;\n if (fromDate && toDate && fromDate.getTime() > toDate.getTime()) {\n setCustomRangeError('Start date/time must be before end date/time');\n return;\n }\n setCustomRangeError(undefined);\n onDateChange?.(fromDate, 'from');\n onDateChange?.(toDate, 'to');\n setCustomRangeOpen(false);\n };\n\n if (preset === 'custom') {\n return (\n <Popover open={customRangeOpen} onOpenChange={setCustomRangeOpen}>\n <PopoverTrigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {dateFrom ? dateFrom.toLocaleDateString() : 'Start'} {' \\u2013 '}\n {dateTo ? dateTo.toLocaleDateString() : 'End'}\n </Button>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className={cn('w-auto p-0')}>\n <div className={cn('flex')}>\n <div className={cn('border-r border-border1')}>\n <span className={cn('text-ui-sm text-neutral3 font-medium px-4 pt-3 block')}>Start</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateFrom}\n month={draftDateFrom}\n onSelect={setDraftDateFrom}\n disabled={disabled}\n toDate={draftDateTo}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeFrom}\n onValueChange={v => {\n if (!disabled) setDraftTimeFrom(v);\n }}\n />\n </div>\n <div>\n <span className={cn('text-ui-sm text-neutral3 font-medium px-4 pt-3 block')}>End</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateTo}\n month={draftDateTo}\n onSelect={setDraftDateTo}\n disabled={disabled}\n fromDate={draftDateFrom}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeTo}\n onValueChange={v => {\n if (!disabled) setDraftTimeTo(v);\n }}\n />\n </div>\n </div>\n {customRangeError && <p className={cn('text-ui-sm text-red-500 px-4 pb-1')}>{customRangeError}</p>}\n <div className={cn('flex justify-between items-center px-4 pb-3')}>\n <button\n type=\"button\"\n disabled={disabled}\n className={cn(\n 'text-ui-sm text-neutral3 hover:text-neutral4',\n disabled && 'opacity-50 pointer-events-none',\n )}\n onClick={() => {\n setCustomRangeError(undefined);\n handlePresetSelect(fallbackPreset);\n }}\n >\n ← Presets\n </button>\n <Button variant=\"primary\" size=\"sm\" onClick={applyCustomRange} disabled={disabled}>\n Apply\n </Button>\n </div>\n </PopoverContent>\n </Popover>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {datePresetLabel}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n {visiblePresets.map(p => (\n <DropdownMenu.Item key={p.value} onSelect={() => handlePresetSelect(p.value)}>\n {p.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":["parse","isValid","useState","jsxs","Popover","jsx","PopoverTrigger","Button","CalendarIcon","PopoverContent","cn","DatePicker","TimePicker","DropdownMenu"],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { parse, isValid } from 'date-fns';
|
|
3
3
|
import { CalendarIcon } from 'lucide-react';
|
|
4
4
|
import { useState } from 'react';
|
|
5
|
-
import { B as Button } from './Button-
|
|
6
|
-
import { D as DatePicker, T as TimePicker } from './time-picker-
|
|
5
|
+
import { B as Button } from './Button-DUxP65eY.js';
|
|
6
|
+
import { D as DatePicker, T as TimePicker } from './time-picker-CL4xWUGp.js';
|
|
7
7
|
import { D as DropdownMenu } from './dropdown-menu-rYjDHlMP.js';
|
|
8
8
|
import { P as Popover, b as PopoverTrigger, a as PopoverContent } from './popover-DaFWFKma.js';
|
|
9
9
|
import { c as cn } from './cn-BakJzhuv.js';
|
|
@@ -165,4 +165,4 @@ function DateTimeRangePicker({
|
|
|
165
165
|
}
|
|
166
166
|
|
|
167
167
|
export { DateTimeRangePicker as D };
|
|
168
|
-
//# sourceMappingURL=date-time-range-picker-
|
|
168
|
+
//# sourceMappingURL=date-time-range-picker-lu44sN6F.js.map
|
package/dist/{date-time-range-picker-D0fnJG3j.js.map → date-time-range-picker-lu44sN6F.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-time-range-picker-D0fnJG3j.js","sources":["../src/ds/components/DateTimeRangePicker/date-time-range-picker.tsx"],"sourcesContent":["import { isValid, parse } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { DatePicker, TimePicker } from '@/ds/components/DateTimePicker';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { Popover, PopoverTrigger, PopoverContent } from '@/ds/components/Popover/popover';\nimport { cn } from '@/lib/utils';\n\nexport type DateRangePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\nconst DATE_PRESETS: { value: DateRangePreset; label: string; ms?: number }[] = [\n { value: 'all', label: 'All' },\n { value: 'last-24h', label: 'Last 24 hours', ms: 24 * 60 * 60 * 1000 },\n { value: 'last-3d', label: 'Last 3 days', ms: 3 * 24 * 60 * 60 * 1000 },\n { value: 'last-7d', label: 'Last 7 days', ms: 7 * 24 * 60 * 60 * 1000 },\n { value: 'last-14d', label: 'Last 14 days', ms: 14 * 24 * 60 * 60 * 1000 },\n { value: 'last-30d', label: 'Last 30 days', ms: 30 * 24 * 60 * 60 * 1000 },\n { value: 'custom', label: 'Custom range...' },\n];\n\nfunction buildDateWithTime(date: Date, timeStr: string): Date | null {\n const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const combined = parse(timeStr, 'h:mm a', dateOnly);\n return isValid(combined) ? combined : null;\n}\n\nexport interface DateTimeRangePickerProps {\n preset?: DateRangePreset;\n onPresetChange?: (preset: DateRangePreset) => void;\n dateFrom?: Date;\n dateTo?: Date;\n onDateChange?: (value: Date | undefined, type: 'from' | 'to') => void;\n disabled?: boolean;\n /** Subset of presets to show. If omitted, all presets are shown. */\n presets?: readonly DateRangePreset[];\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n}\n\nexport function DateTimeRangePicker({\n preset = 'all',\n onPresetChange,\n dateFrom,\n dateTo,\n onDateChange,\n disabled,\n presets,\n size = 'md',\n}: DateTimeRangePickerProps) {\n const visiblePresets = presets ? DATE_PRESETS.filter(p => presets.includes(p.value)) : DATE_PRESETS;\n const fallbackPreset: DateRangePreset = visiblePresets.find(p => p.value !== 'custom')?.value ?? 'all';\n const [customRangeOpen, setCustomRangeOpen] = useState(false);\n const [draftDateFrom, setDraftDateFrom] = useState<Date | undefined>(dateFrom);\n const [draftDateTo, setDraftDateTo] = useState<Date | undefined>(dateTo);\n const [draftTimeFrom, setDraftTimeFrom] = useState('12:00 AM');\n const [draftTimeTo, setDraftTimeTo] = useState('11:59 PM');\n const [customRangeError, setCustomRangeError] = useState<string | undefined>();\n\n const datePresetLabel = DATE_PRESETS.find(p => p.value === preset)?.label ?? 'All';\n\n const handlePresetSelect = (value: DateRangePreset) => {\n onPresetChange?.(value);\n if (value === 'custom') {\n setDraftDateFrom(dateFrom);\n setDraftDateTo(dateTo);\n setDraftTimeFrom('12:00 AM');\n setDraftTimeTo('11:59 PM');\n setCustomRangeOpen(true);\n return;\n }\n const entry = DATE_PRESETS.find(p => p.value === value);\n if (entry?.ms) {\n onDateChange?.(new Date(Date.now() - entry.ms), 'from');\n onDateChange?.(undefined, 'to');\n } else {\n onDateChange?.(undefined, 'from');\n onDateChange?.(undefined, 'to');\n }\n };\n\n const applyCustomRange = () => {\n const fromDate = draftDateFrom ? (buildDateWithTime(draftDateFrom, draftTimeFrom) ?? draftDateFrom) : undefined;\n const toDate = draftDateTo ? (buildDateWithTime(draftDateTo, draftTimeTo) ?? draftDateTo) : undefined;\n if (fromDate && toDate && fromDate.getTime() > toDate.getTime()) {\n setCustomRangeError('Start date/time must be before end date/time');\n return;\n }\n setCustomRangeError(undefined);\n onDateChange?.(fromDate, 'from');\n onDateChange?.(toDate, 'to');\n setCustomRangeOpen(false);\n };\n\n if (preset === 'custom') {\n return (\n <Popover open={customRangeOpen} onOpenChange={setCustomRangeOpen}>\n <PopoverTrigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {dateFrom ? dateFrom.toLocaleDateString() : 'Start'} {' \\u2013 '}\n {dateTo ? dateTo.toLocaleDateString() : 'End'}\n </Button>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className={cn('w-auto p-0')}>\n <div className={cn('flex')}>\n <div className={cn('border-r border-border1')}>\n <span className={cn('text-ui-sm text-neutral3 font-medium px-4 pt-3 block')}>Start</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateFrom}\n month={draftDateFrom}\n onSelect={setDraftDateFrom}\n disabled={disabled}\n toDate={draftDateTo}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeFrom}\n onValueChange={v => {\n if (!disabled) setDraftTimeFrom(v);\n }}\n />\n </div>\n <div>\n <span className={cn('text-ui-sm text-neutral3 font-medium px-4 pt-3 block')}>End</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateTo}\n month={draftDateTo}\n onSelect={setDraftDateTo}\n disabled={disabled}\n fromDate={draftDateFrom}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeTo}\n onValueChange={v => {\n if (!disabled) setDraftTimeTo(v);\n }}\n />\n </div>\n </div>\n {customRangeError && <p className={cn('text-ui-sm text-red-500 px-4 pb-1')}>{customRangeError}</p>}\n <div className={cn('flex justify-between items-center px-4 pb-3')}>\n <button\n type=\"button\"\n disabled={disabled}\n className={cn(\n 'text-ui-sm text-neutral3 hover:text-neutral4',\n disabled && 'opacity-50 pointer-events-none',\n )}\n onClick={() => {\n setCustomRangeError(undefined);\n handlePresetSelect(fallbackPreset);\n }}\n >\n ← Presets\n </button>\n <Button variant=\"primary\" size=\"sm\" onClick={applyCustomRange} disabled={disabled}>\n Apply\n </Button>\n </div>\n </PopoverContent>\n </Popover>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {datePresetLabel}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n {visiblePresets.map(p => (\n <DropdownMenu.Item key={p.value} onSelect={() => handlePresetSelect(p.value)}>\n {p.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-time-range-picker-lu44sN6F.js","sources":["../src/ds/components/DateTimeRangePicker/date-time-range-picker.tsx"],"sourcesContent":["import { isValid, parse } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { Button } from '@/ds/components/Button/Button';\nimport type { ButtonProps } from '@/ds/components/Button/Button';\nimport { DatePicker, TimePicker } from '@/ds/components/DateTimePicker';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu/dropdown-menu';\nimport { Popover, PopoverTrigger, PopoverContent } from '@/ds/components/Popover/popover';\nimport { cn } from '@/lib/utils';\n\nexport type DateRangePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\nconst DATE_PRESETS: { value: DateRangePreset; label: string; ms?: number }[] = [\n { value: 'all', label: 'All' },\n { value: 'last-24h', label: 'Last 24 hours', ms: 24 * 60 * 60 * 1000 },\n { value: 'last-3d', label: 'Last 3 days', ms: 3 * 24 * 60 * 60 * 1000 },\n { value: 'last-7d', label: 'Last 7 days', ms: 7 * 24 * 60 * 60 * 1000 },\n { value: 'last-14d', label: 'Last 14 days', ms: 14 * 24 * 60 * 60 * 1000 },\n { value: 'last-30d', label: 'Last 30 days', ms: 30 * 24 * 60 * 60 * 1000 },\n { value: 'custom', label: 'Custom range...' },\n];\n\nfunction buildDateWithTime(date: Date, timeStr: string): Date | null {\n const dateOnly = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n const combined = parse(timeStr, 'h:mm a', dateOnly);\n return isValid(combined) ? combined : null;\n}\n\nexport interface DateTimeRangePickerProps {\n preset?: DateRangePreset;\n onPresetChange?: (preset: DateRangePreset) => void;\n dateFrom?: Date;\n dateTo?: Date;\n onDateChange?: (value: Date | undefined, type: 'from' | 'to') => void;\n disabled?: boolean;\n /** Subset of presets to show. If omitted, all presets are shown. */\n presets?: readonly DateRangePreset[];\n /** Size passed through to the trigger Button. Defaults to 'md'. */\n size?: ButtonProps['size'];\n}\n\nexport function DateTimeRangePicker({\n preset = 'all',\n onPresetChange,\n dateFrom,\n dateTo,\n onDateChange,\n disabled,\n presets,\n size = 'md',\n}: DateTimeRangePickerProps) {\n const visiblePresets = presets ? DATE_PRESETS.filter(p => presets.includes(p.value)) : DATE_PRESETS;\n const fallbackPreset: DateRangePreset = visiblePresets.find(p => p.value !== 'custom')?.value ?? 'all';\n const [customRangeOpen, setCustomRangeOpen] = useState(false);\n const [draftDateFrom, setDraftDateFrom] = useState<Date | undefined>(dateFrom);\n const [draftDateTo, setDraftDateTo] = useState<Date | undefined>(dateTo);\n const [draftTimeFrom, setDraftTimeFrom] = useState('12:00 AM');\n const [draftTimeTo, setDraftTimeTo] = useState('11:59 PM');\n const [customRangeError, setCustomRangeError] = useState<string | undefined>();\n\n const datePresetLabel = DATE_PRESETS.find(p => p.value === preset)?.label ?? 'All';\n\n const handlePresetSelect = (value: DateRangePreset) => {\n onPresetChange?.(value);\n if (value === 'custom') {\n setDraftDateFrom(dateFrom);\n setDraftDateTo(dateTo);\n setDraftTimeFrom('12:00 AM');\n setDraftTimeTo('11:59 PM');\n setCustomRangeOpen(true);\n return;\n }\n const entry = DATE_PRESETS.find(p => p.value === value);\n if (entry?.ms) {\n onDateChange?.(new Date(Date.now() - entry.ms), 'from');\n onDateChange?.(undefined, 'to');\n } else {\n onDateChange?.(undefined, 'from');\n onDateChange?.(undefined, 'to');\n }\n };\n\n const applyCustomRange = () => {\n const fromDate = draftDateFrom ? (buildDateWithTime(draftDateFrom, draftTimeFrom) ?? draftDateFrom) : undefined;\n const toDate = draftDateTo ? (buildDateWithTime(draftDateTo, draftTimeTo) ?? draftDateTo) : undefined;\n if (fromDate && toDate && fromDate.getTime() > toDate.getTime()) {\n setCustomRangeError('Start date/time must be before end date/time');\n return;\n }\n setCustomRangeError(undefined);\n onDateChange?.(fromDate, 'from');\n onDateChange?.(toDate, 'to');\n setCustomRangeOpen(false);\n };\n\n if (preset === 'custom') {\n return (\n <Popover open={customRangeOpen} onOpenChange={setCustomRangeOpen}>\n <PopoverTrigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {dateFrom ? dateFrom.toLocaleDateString() : 'Start'} {' \\u2013 '}\n {dateTo ? dateTo.toLocaleDateString() : 'End'}\n </Button>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className={cn('w-auto p-0')}>\n <div className={cn('flex')}>\n <div className={cn('border-r border-border1')}>\n <span className={cn('text-ui-sm text-neutral3 font-medium px-4 pt-3 block')}>Start</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateFrom}\n month={draftDateFrom}\n onSelect={setDraftDateFrom}\n disabled={disabled}\n toDate={draftDateTo}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeFrom}\n onValueChange={v => {\n if (!disabled) setDraftTimeFrom(v);\n }}\n />\n </div>\n <div>\n <span className={cn('text-ui-sm text-neutral3 font-medium px-4 pt-3 block')}>End</span>\n <DatePicker\n mode=\"single\"\n selected={draftDateTo}\n month={draftDateTo}\n onSelect={setDraftDateTo}\n disabled={disabled}\n fromDate={draftDateFrom}\n />\n <TimePicker\n className=\"mx-4 mb-3 w-auto\"\n defaultValue={draftTimeTo}\n onValueChange={v => {\n if (!disabled) setDraftTimeTo(v);\n }}\n />\n </div>\n </div>\n {customRangeError && <p className={cn('text-ui-sm text-red-500 px-4 pb-1')}>{customRangeError}</p>}\n <div className={cn('flex justify-between items-center px-4 pb-3')}>\n <button\n type=\"button\"\n disabled={disabled}\n className={cn(\n 'text-ui-sm text-neutral3 hover:text-neutral4',\n disabled && 'opacity-50 pointer-events-none',\n )}\n onClick={() => {\n setCustomRangeError(undefined);\n handlePresetSelect(fallbackPreset);\n }}\n >\n ← Presets\n </button>\n <Button variant=\"primary\" size=\"sm\" onClick={applyCustomRange} disabled={disabled}>\n Apply\n </Button>\n </div>\n </PopoverContent>\n </Popover>\n );\n }\n\n return (\n <DropdownMenu>\n <DropdownMenu.Trigger asChild>\n <Button size={size} disabled={disabled}>\n <CalendarIcon />\n {datePresetLabel}\n </Button>\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n {visiblePresets.map(p => (\n <DropdownMenu.Item key={p.value} onSelect={() => handlePresetSelect(p.value)}>\n {p.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import { Dialog as Dialog$1 } from '@base-ui/react/dialog';
|
|
3
3
|
import { X } from 'lucide-react';
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import { B as Button } from './Button-
|
|
5
|
+
import { B as Button } from './Button-DUxP65eY.js';
|
|
6
6
|
import { a as asChildRenderProps } from './as-child-N1qMDCr8.js';
|
|
7
7
|
import { c as cn } from './cn-BakJzhuv.js';
|
|
8
8
|
import './dialog.css';/* empty css */
|
|
@@ -73,4 +73,4 @@ const DialogDescription = React.forwardRef(
|
|
|
73
73
|
DialogDescription.displayName = "DialogDescription";
|
|
74
74
|
|
|
75
75
|
export { Dialog as D, DialogBody as a, DialogClose as b, DialogContent as c, DialogDescription as d, DialogFooter as e, DialogHeader as f, DialogOverlay as g, DialogPortal as h, DialogTitle as i, DialogTrigger as j };
|
|
76
|
-
//# sourceMappingURL=dialog-
|
|
76
|
+
//# sourceMappingURL=dialog-CFJARbIM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-
|
|
1
|
+
{"version":3,"file":"dialog-CFJARbIM.js","sources":["../src/ds/components/Dialog/dialog.tsx"],"sourcesContent":["import { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\nimport { X } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport { asChildRenderProps } from '@/lib/as-child';\nimport { cn } from '@/lib/utils';\n\nimport './dialog.css';\n\nconst Dialog = DialogPrimitive.Root;\n\ntype DialogTriggerProps = DialogPrimitive.Trigger.Props & {\n /** @deprecated Use Base UI's `render` prop instead, e.g. `render={<Button />}`. */\n asChild?: boolean;\n};\n\nconst DialogTrigger = React.forwardRef<HTMLButtonElement, DialogTriggerProps>(\n ({ asChild, children, ...props }, ref) => {\n return (\n <DialogPrimitive.Trigger ref={ref} {...asChildRenderProps(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Trigger>\n );\n },\n);\nDialogTrigger.displayName = 'DialogTrigger';\n\nconst DialogPortal = DialogPrimitive.Portal;\n\ntype DialogCloseProps = DialogPrimitive.Close.Props & {\n /** @deprecated Use Base UI's `render` prop instead, e.g. `render={<Button />}`. */\n asChild?: boolean;\n};\n\nconst DialogClose = React.forwardRef<HTMLButtonElement, DialogCloseProps>(({ asChild, children, ...props }, ref) => {\n return (\n <DialogPrimitive.Close ref={ref} {...asChildRenderProps(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Close>\n );\n});\nDialogClose.displayName = 'DialogClose';\n\ntype DialogOverlayProps = Omit<DialogPrimitive.Backdrop.Props, 'className'> & {\n className?: string;\n};\n\nconst DialogOverlay = React.forwardRef<HTMLDivElement, DialogOverlayProps>(({ className, ...props }, ref) => (\n <DialogPrimitive.Backdrop\n ref={ref}\n className={cn('dialog-overlay-anim fixed inset-0 z-50 bg-overlay backdrop-blur-xs', className)}\n {...props}\n />\n));\nDialogOverlay.displayName = 'DialogOverlay';\n\ntype DialogContentProps = Omit<DialogPrimitive.Popup.Props, 'className'> & {\n className?: string;\n showOverlay?: boolean;\n overlayClassName?: string;\n};\n\nconst DialogContent = React.forwardRef<HTMLDivElement, DialogContentProps>(\n ({ className, children, showOverlay = true, overlayClassName, ...props }, ref) => (\n <DialogPortal>\n {showOverlay && <DialogOverlay className={overlayClassName} />}\n <DialogPrimitive.Popup\n ref={ref}\n data-slot=\"dialog-content\"\n className={cn(\n 'dialog-content-anim',\n 'fixed left-[50%] top-[50%] z-50 grid translate-x-[-50%] translate-y-[-50%]',\n 'w-full max-w-[calc(100%-2rem)] sm:max-w-lg',\n 'rounded-xl border border-border1/40 bg-surface2/96 backdrop-blur-md shadow-dialog',\n 'focus-visible:outline-hidden',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close\n render={\n <Button variant=\"ghost\" size=\"sm\" className=\"absolute top-3 right-3\" aria-label=\"Close\">\n <X />\n </Button>\n }\n />\n </DialogPrimitive.Popup>\n </DialogPortal>\n ),\n);\nDialogContent.displayName = 'DialogContent';\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col gap-0.5 px-4 py-3 text-left', className)} {...props} />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col-reverse gap-1.5 px-4 py-2.5 sm:flex-row sm:justify-end', className)} {...props} />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogBody = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('overflow-y-auto px-4 py-3.5 max-h-[50vh]', className)} {...props} />\n);\nDialogBody.displayName = 'DialogBody';\n\ntype DialogTitleProps = Omit<DialogPrimitive.Title.Props, 'className'> & {\n className?: string;\n};\n\nconst DialogTitle = React.forwardRef<HTMLHeadingElement, DialogTitleProps>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title ref={ref} className={cn('text-ui-md font-medium', className)} {...props} />\n));\nDialogTitle.displayName = 'DialogTitle';\n\ntype DialogDescriptionProps = Omit<DialogPrimitive.Description.Props, 'className'> & {\n className?: string;\n};\n\nconst DialogDescription = React.forwardRef<HTMLParagraphElement, DialogDescriptionProps>(\n ({ className, ...props }, ref) => (\n <DialogPrimitive.Description ref={ref} className={cn('sr-only', className)} {...props} />\n ),\n);\nDialogDescription.displayName = 'DialogDescription';\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogBody,\n DialogTitle,\n DialogDescription,\n};\n"],"names":["DialogPrimitive"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ require('./dialog.css');const jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
const dialog = require('@base-ui/react/dialog');
|
|
5
5
|
const lucideReact = require('lucide-react');
|
|
6
6
|
const React = require('react');
|
|
7
|
-
const Button = require('./Button-
|
|
7
|
+
const Button = require('./Button-Bj667lJx.cjs');
|
|
8
8
|
const asChild = require('./as-child-Dgr1RHLO.cjs');
|
|
9
9
|
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
10
10
|
;/* empty css */
|
|
@@ -104,4 +104,4 @@ exports.DialogOverlay = DialogOverlay;
|
|
|
104
104
|
exports.DialogPortal = DialogPortal;
|
|
105
105
|
exports.DialogTitle = DialogTitle;
|
|
106
106
|
exports.DialogTrigger = DialogTrigger;
|
|
107
|
-
//# sourceMappingURL=dialog-
|
|
107
|
+
//# sourceMappingURL=dialog-Lm_EDANe.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialog-
|
|
1
|
+
{"version":3,"file":"dialog-Lm_EDANe.cjs","sources":["../src/ds/components/Dialog/dialog.tsx"],"sourcesContent":["import { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\nimport { X } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport { asChildRenderProps } from '@/lib/as-child';\nimport { cn } from '@/lib/utils';\n\nimport './dialog.css';\n\nconst Dialog = DialogPrimitive.Root;\n\ntype DialogTriggerProps = DialogPrimitive.Trigger.Props & {\n /** @deprecated Use Base UI's `render` prop instead, e.g. `render={<Button />}`. */\n asChild?: boolean;\n};\n\nconst DialogTrigger = React.forwardRef<HTMLButtonElement, DialogTriggerProps>(\n ({ asChild, children, ...props }, ref) => {\n return (\n <DialogPrimitive.Trigger ref={ref} {...asChildRenderProps(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Trigger>\n );\n },\n);\nDialogTrigger.displayName = 'DialogTrigger';\n\nconst DialogPortal = DialogPrimitive.Portal;\n\ntype DialogCloseProps = DialogPrimitive.Close.Props & {\n /** @deprecated Use Base UI's `render` prop instead, e.g. `render={<Button />}`. */\n asChild?: boolean;\n};\n\nconst DialogClose = React.forwardRef<HTMLButtonElement, DialogCloseProps>(({ asChild, children, ...props }, ref) => {\n return (\n <DialogPrimitive.Close ref={ref} {...asChildRenderProps(asChild, children)} {...props}>\n {asChild ? undefined : children}\n </DialogPrimitive.Close>\n );\n});\nDialogClose.displayName = 'DialogClose';\n\ntype DialogOverlayProps = Omit<DialogPrimitive.Backdrop.Props, 'className'> & {\n className?: string;\n};\n\nconst DialogOverlay = React.forwardRef<HTMLDivElement, DialogOverlayProps>(({ className, ...props }, ref) => (\n <DialogPrimitive.Backdrop\n ref={ref}\n className={cn('dialog-overlay-anim fixed inset-0 z-50 bg-overlay backdrop-blur-xs', className)}\n {...props}\n />\n));\nDialogOverlay.displayName = 'DialogOverlay';\n\ntype DialogContentProps = Omit<DialogPrimitive.Popup.Props, 'className'> & {\n className?: string;\n showOverlay?: boolean;\n overlayClassName?: string;\n};\n\nconst DialogContent = React.forwardRef<HTMLDivElement, DialogContentProps>(\n ({ className, children, showOverlay = true, overlayClassName, ...props }, ref) => (\n <DialogPortal>\n {showOverlay && <DialogOverlay className={overlayClassName} />}\n <DialogPrimitive.Popup\n ref={ref}\n data-slot=\"dialog-content\"\n className={cn(\n 'dialog-content-anim',\n 'fixed left-[50%] top-[50%] z-50 grid translate-x-[-50%] translate-y-[-50%]',\n 'w-full max-w-[calc(100%-2rem)] sm:max-w-lg',\n 'rounded-xl border border-border1/40 bg-surface2/96 backdrop-blur-md shadow-dialog',\n 'focus-visible:outline-hidden',\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close\n render={\n <Button variant=\"ghost\" size=\"sm\" className=\"absolute top-3 right-3\" aria-label=\"Close\">\n <X />\n </Button>\n }\n />\n </DialogPrimitive.Popup>\n </DialogPortal>\n ),\n);\nDialogContent.displayName = 'DialogContent';\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col gap-0.5 px-4 py-3 text-left', className)} {...props} />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col-reverse gap-1.5 px-4 py-2.5 sm:flex-row sm:justify-end', className)} {...props} />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogBody = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('overflow-y-auto px-4 py-3.5 max-h-[50vh]', className)} {...props} />\n);\nDialogBody.displayName = 'DialogBody';\n\ntype DialogTitleProps = Omit<DialogPrimitive.Title.Props, 'className'> & {\n className?: string;\n};\n\nconst DialogTitle = React.forwardRef<HTMLHeadingElement, DialogTitleProps>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title ref={ref} className={cn('text-ui-md font-medium', className)} {...props} />\n));\nDialogTitle.displayName = 'DialogTitle';\n\ntype DialogDescriptionProps = Omit<DialogPrimitive.Description.Props, 'className'> & {\n className?: string;\n};\n\nconst DialogDescription = React.forwardRef<HTMLParagraphElement, DialogDescriptionProps>(\n ({ className, ...props }, ref) => (\n <DialogPrimitive.Description ref={ref} className={cn('sr-only', className)} {...props} />\n ),\n);\nDialogDescription.displayName = 'DialogDescription';\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogBody,\n DialogTitle,\n DialogDescription,\n};\n"],"names":["DialogPrimitive","React","asChild","jsx","asChildRenderProps","cn","jsxs","Button","X"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { Drawer as Drawer$1 } from '@base-ui/react/drawer';
|
|
|
3
3
|
import { c as cva } from './index-CSm06eOE.js';
|
|
4
4
|
import { XIcon } from 'lucide-react';
|
|
5
5
|
import * as React from 'react';
|
|
6
|
-
import { B as Button } from './Button-
|
|
6
|
+
import { B as Button } from './Button-DUxP65eY.js';
|
|
7
7
|
import { c as cn } from './cn-BakJzhuv.js';
|
|
8
8
|
|
|
9
9
|
import './drawer.css';const drawerBackdropVariants = cva("drawer-backdrop fixed inset-0 z-50", {
|
|
@@ -323,4 +323,4 @@ const DrawerDescription = React.forwardRef(
|
|
|
323
323
|
DrawerDescription.displayName = "DrawerDescription";
|
|
324
324
|
|
|
325
325
|
export { Drawer as D, DrawerBackdrop as a, DrawerBody as b, DrawerClose as c, DrawerContent as d, DrawerDescription as e, DrawerFooter as f, DrawerHeader as g, DrawerIndent as h, DrawerIndentBackground as i, DrawerInteractive as j, DrawerPopup as k, DrawerPortal as l, DrawerProvider as m, DrawerSwipeArea as n, DrawerTitle as o, DrawerTrigger as p, DrawerViewport as q, createDrawerHandle as r, useDrawerSide as u };
|
|
326
|
-
//# sourceMappingURL=drawer-
|
|
326
|
+
//# sourceMappingURL=drawer-CiUjFp3u.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer-CczLUJ6T.js","sources":["../src/ds/components/Drawer/drawer.tsx"],"sourcesContent":["import { Drawer as DrawerPrimitive } from '@base-ui/react/drawer';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { XIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\n// Swipe/stack transforms live in drawer.css — unreadable as Tailwind arbitrary values.\nimport './drawer.css';\n\nexport type DrawerSide = 'top' | 'right' | 'bottom' | 'left';\n\nconst drawerBackdropVariants = cva('drawer-backdrop fixed inset-0 z-50', {\n variants: {\n overlay: {\n visible: 'bg-overlay backdrop-blur-xs',\n transparent: 'bg-transparent',\n none: 'hidden',\n },\n },\n defaultVariants: {\n overlay: 'visible',\n },\n});\n\nconst drawerViewportVariants = cva('fixed z-50 flex', {\n variants: {\n side: {\n top: 'items-start justify-center',\n bottom: 'items-end justify-center',\n left: 'items-stretch justify-start',\n right: 'items-stretch justify-end',\n },\n layout: {\n default: 'inset-0',\n floating: 'p-3 sm:p-4',\n floatingOverlay: 'inset-0 p-3 sm:p-4',\n },\n },\n compoundVariants: [\n {\n side: 'right',\n layout: 'floating',\n className: 'inset-y-0 right-0 w-[calc(32rem+1.5rem)] max-w-full sm:w-[calc(32rem+2rem)]',\n },\n {\n side: 'left',\n layout: 'floating',\n className: 'inset-y-0 left-0 w-[calc(32rem+1.5rem)] max-w-full sm:w-[calc(32rem+2rem)]',\n },\n {\n side: 'bottom',\n layout: 'floating',\n className: 'inset-x-0 bottom-0 h-[calc(85dvh+1.5rem)] max-h-full sm:h-[calc(85dvh+2rem)]',\n },\n {\n side: 'top',\n layout: 'floating',\n className: 'inset-x-0 top-0 h-[calc(85dvh+1.5rem)] max-h-full sm:h-[calc(85dvh+2rem)]',\n },\n ],\n defaultVariants: {\n side: 'bottom',\n layout: 'default',\n },\n});\n\n// `drawer-popup` hooks into drawer.css for swipe/stack transforms; `::after` dims under nested drawers.\nconst drawerPopupVariants = cva(\n cn(\n 'drawer-popup group/popup relative z-50 box-border flex flex-col overflow-y-auto overscroll-contain outline-none [touch-action:auto] will-change-transform',\n 'border-border1 bg-surface3 text-neutral5 shadow-dialog',\n 'data-[swiping]:select-none',\n \"after:pointer-events-none after:absolute after:inset-0 after:bg-transparent after:transition-[background-color] after:duration-[450ms] after:content-['']\",\n 'data-[nested-drawer-open]:after:bg-black/25',\n ),\n {\n variants: {\n side: {\n bottom: '',\n top: '',\n left: '',\n right: '',\n },\n variant: {\n default: '',\n floating: 'drawer-popup-floating pointer-events-auto rounded-lg border',\n },\n },\n compoundVariants: [\n {\n side: 'bottom',\n variant: 'default',\n className:\n 'h-[var(--drawer-height,auto)] max-h-[calc(85vh_+_3rem)] w-full -mb-12 pb-12 rounded-t-xl border-x border-t',\n },\n {\n side: 'top',\n variant: 'default',\n className:\n 'h-[var(--drawer-height,auto)] max-h-[calc(85vh_+_3rem)] w-full -mt-12 pt-12 rounded-b-xl border-x border-b',\n },\n {\n side: 'left',\n variant: 'default',\n className: 'h-full w-[20rem] max-w-[85vw] rounded-r-xl border-y border-r',\n },\n {\n side: 'right',\n variant: 'default',\n className: 'h-full w-[20rem] max-w-[85vw] rounded-l-xl border-y border-l',\n },\n {\n side: ['left', 'right'],\n variant: 'floating',\n className:\n 'h-[calc(100dvh-1.5rem)] w-[32rem] max-w-[calc(100vw-1.5rem)] sm:h-[calc(100dvh-2rem)] sm:max-w-[calc(100vw-2rem)]',\n },\n {\n side: ['top', 'bottom'],\n variant: 'floating',\n className:\n 'max-h-[calc(85dvh-1.5rem)] w-[calc(100vw-1.5rem)] sm:max-h-[calc(85dvh-2rem)] sm:w-[calc(100vw-2rem)]',\n },\n ],\n defaultVariants: {\n side: 'bottom',\n variant: 'default',\n },\n },\n);\n\ntype DrawerBackdropVariantsProps = VariantProps<typeof drawerBackdropVariants>;\ntype DrawerViewportClassVariantsProps = VariantProps<typeof drawerViewportVariants>;\ntype DrawerPopupVariantsProps = VariantProps<typeof drawerPopupVariants>;\nexport type DrawerVariant = NonNullable<DrawerPopupVariantsProps['variant']>;\ntype DrawerViewportLayout = NonNullable<DrawerViewportClassVariantsProps['layout']>;\ntype DrawerViewportVariantsProps = Pick<DrawerViewportClassVariantsProps, 'side'> & {\n variant?: DrawerVariant;\n};\nexport type DrawerOverlay = 'auto' | NonNullable<DrawerBackdropVariantsProps['overlay']>;\n\n// `side` = anchor edge; Base UI's `swipeDirection` = dismissal gesture (bottom sheet swipes `down`).\nconst sideToSwipeDirection: Record<DrawerSide, 'up' | 'down' | 'left' | 'right'> = {\n top: 'up',\n bottom: 'down',\n left: 'left',\n right: 'right',\n};\n\ntype DrawerContextValue = {\n side: DrawerSide;\n variant: DrawerVariant;\n resolvedOverlay: NonNullable<DrawerBackdropVariantsProps['overlay']>;\n};\n\nconst resolveDrawerOverlay = (\n overlay: DrawerOverlay,\n variant: DrawerVariant,\n): NonNullable<DrawerBackdropVariantsProps['overlay']> => {\n if (overlay !== 'auto') {\n return overlay;\n }\n\n return variant === 'floating' ? 'none' : 'visible';\n};\n\nconst DrawerContext = React.createContext<DrawerContextValue>({\n side: 'bottom',\n variant: 'default',\n resolvedOverlay: 'visible',\n});\n\nconst useDrawerContext = () => React.useContext(DrawerContext);\n\nexport const useDrawerSide = () => useDrawerContext().side;\n\nconst resolveDrawerViewportLayout = (\n variant: DrawerVariant,\n overlay: NonNullable<DrawerBackdropVariantsProps['overlay']>,\n): DrawerViewportLayout => {\n if (variant !== 'floating') {\n return 'default';\n }\n\n return overlay === 'none' ? 'floating' : 'floatingOverlay';\n};\n\nexport type DrawerProps<Payload = unknown> = Omit<DrawerPrimitive.Root.Props<Payload>, 'swipeDirection'> & {\n /** Edge the drawer is anchored to. Defaults to `bottom`. */\n side?: DrawerSide;\n /** Visual treatment for the drawer panel. Defaults to `default`. */\n variant?: DrawerVariant;\n /** Backdrop behavior. `auto` renders a visible backdrop for default drawers and no backdrop for floating drawers. */\n overlay?: DrawerOverlay;\n};\n\nfunction Drawer<Payload = unknown>({\n side = 'bottom',\n variant = 'default',\n overlay = 'auto',\n modal,\n disablePointerDismissal,\n children,\n ...props\n}: DrawerProps<Payload>) {\n const resolvedOverlay = resolveDrawerOverlay(overlay, variant);\n const resolvedModal = modal ?? (resolvedOverlay === 'none' ? false : undefined);\n const resolvedDisablePointerDismissal = disablePointerDismissal ?? (resolvedOverlay === 'none' ? true : undefined);\n const contextValue = React.useMemo<DrawerContextValue>(\n () => ({ side, variant, resolvedOverlay }),\n [side, variant, resolvedOverlay],\n );\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <DrawerPrimitive.Root\n swipeDirection={sideToSwipeDirection[side]}\n modal={resolvedModal}\n disablePointerDismissal={resolvedDisablePointerDismissal}\n {...props}\n >\n {children}\n </DrawerPrimitive.Root>\n </DrawerContext.Provider>\n );\n}\nDrawer.displayName = 'Drawer';\n\n// Generic (not `forwardRef`) so `handle` / `payload` stay type-safe on detached triggers.\ntype DrawerTriggerProps<Payload = unknown> = DrawerPrimitive.Trigger.Props<Payload> & {\n asChild?: boolean;\n};\n\nfunction DrawerTrigger<Payload = unknown>({ asChild, children, ...props }: DrawerTriggerProps<Payload>) {\n const renderProps = asChild && React.isValidElement(children) ? { render: children as React.ReactElement } : {};\n\n return (\n <DrawerPrimitive.Trigger {...renderProps} {...props}>\n {asChild ? undefined : children}\n </DrawerPrimitive.Trigger>\n );\n}\nDrawerTrigger.displayName = 'DrawerTrigger';\n\ntype DrawerCloseProps = DrawerPrimitive.Close.Props & {\n asChild?: boolean;\n};\n\nconst DrawerClose = React.forwardRef<HTMLButtonElement, DrawerCloseProps>(({ asChild, children, ...props }, ref) => {\n const renderProps = asChild && React.isValidElement(children) ? { render: children as React.ReactElement } : {};\n\n return (\n <DrawerPrimitive.Close ref={ref} {...renderProps} {...props}>\n {asChild ? undefined : children}\n </DrawerPrimitive.Close>\n );\n});\nDrawerClose.displayName = 'DrawerClose';\n\nconst DrawerPortal = DrawerPrimitive.Portal;\nconst DrawerProvider = DrawerPrimitive.Provider;\nconst DrawerIndent = DrawerPrimitive.Indent;\nconst DrawerIndentBackground = DrawerPrimitive.IndentBackground;\nconst DrawerSwipeArea = DrawerPrimitive.SwipeArea;\nconst createDrawerHandle = DrawerPrimitive.createHandle;\n// Inner region where pointer drags select text / scroll instead of swiping the drawer closed.\nconst DrawerInteractive = DrawerPrimitive.Content;\n\ntype DrawerBackdropProps = Omit<DrawerPrimitive.Backdrop.Props, 'className'> & {\n className?: string;\n} & DrawerBackdropVariantsProps;\n\n// The `drawer-backdrop` class (drawer.css) fades the overlay with the swipe gesture.\nconst DrawerBackdrop = React.forwardRef<HTMLDivElement, DrawerBackdropProps>(\n ({ className, overlay, ...props }, ref) => {\n const { resolvedOverlay } = useDrawerContext();\n const resolvedBackdropOverlay = overlay ?? resolvedOverlay;\n\n return (\n <DrawerPrimitive.Backdrop\n ref={ref}\n data-slot=\"drawer-backdrop\"\n data-overlay={resolvedBackdropOverlay}\n className={cn(drawerBackdropVariants({ overlay: resolvedBackdropOverlay }), className)}\n {...props}\n />\n );\n },\n);\nDrawerBackdrop.displayName = 'DrawerBackdrop';\n\ntype DrawerViewportProps = Omit<DrawerPrimitive.Viewport.Props, 'className'> & {\n className?: string;\n} & DrawerViewportVariantsProps;\n\n// Keep the viewport pointer-interactive: Base UI wires native drag-to-dismiss to it.\n// Floating drawers without an overlay constrain the viewport so the page behind stays interactive.\n// Floating drawers with an overlay keep a full-screen viewport so overlay-start drags stay native.\nconst DrawerViewport = React.forwardRef<HTMLDivElement, DrawerViewportProps>(\n ({ className, side, variant, ...props }, ref) => {\n const context = useDrawerContext();\n const resolvedSide = side ?? context.side;\n const resolvedVariant = variant ?? context.variant;\n const layout = resolveDrawerViewportLayout(resolvedVariant, context.resolvedOverlay);\n\n return (\n <DrawerPrimitive.Viewport\n ref={ref}\n data-slot=\"drawer-viewport\"\n data-variant={resolvedVariant}\n className={cn(drawerViewportVariants({ side: resolvedSide, layout }), className)}\n {...props}\n />\n );\n },\n);\nDrawerViewport.displayName = 'DrawerViewport';\n\ntype DrawerPopupProps = Omit<DrawerPrimitive.Popup.Props, 'className'> & {\n className?: string;\n} & DrawerPopupVariantsProps;\n\nconst DrawerPopup = React.forwardRef<HTMLDivElement, DrawerPopupProps>(\n ({ className, side, variant, ...props }, ref) => {\n const context = useDrawerContext();\n const resolvedSide = side ?? context.side;\n const resolvedVariant = variant ?? context.variant;\n\n return (\n <DrawerPrimitive.Popup\n ref={ref}\n data-slot=\"drawer-popup\"\n data-variant={resolvedVariant}\n className={cn(drawerPopupVariants({ side: resolvedSide, variant: resolvedVariant }), className)}\n {...props}\n />\n );\n },\n);\nDrawerPopup.displayName = 'DrawerPopup';\n\n// Inner-content fade while a nested drawer covers the parent. Off the popup itself so border/shadow stay crisp.\nconst nestedFadeClass = cn(\n 'transition-opacity duration-300 ease-[cubic-bezier(0.32,0.72,0,1)] motion-reduce:duration-0',\n 'group-data-[nested-drawer-open]/popup:opacity-0',\n);\n\nconst DrawerHandleBar = () => (\n <div\n aria-hidden\n data-slot=\"drawer-handle\"\n className={cn('mx-auto my-2 h-1 w-12 shrink-0 rounded-full bg-surface5', nestedFadeClass)}\n />\n);\nDrawerHandleBar.displayName = 'DrawerHandleBar';\n\ntype DrawerFloatingSideHandleProps = {\n side: DrawerSide;\n variant: DrawerVariant;\n};\n\nconst DrawerFloatingSideHandle = ({ side, variant }: DrawerFloatingSideHandleProps) => {\n if (variant !== 'floating' || (side !== 'left' && side !== 'right')) {\n return null;\n }\n\n return (\n <div\n aria-hidden\n data-slot=\"drawer-side-handle\"\n className={cn(\n 'absolute top-1/2 z-10 flex h-20 w-5 -translate-y-1/2 touch-none select-none items-center justify-center cursor-ew-resize lg:hidden',\n side === 'right' ? '-left-2' : '-right-2',\n )}\n >\n <div className=\"h-10 w-1 rounded-full bg-surface5/80 shadow-sm\" />\n </div>\n );\n};\nDrawerFloatingSideHandle.displayName = 'DrawerFloatingSideHandle';\n\ntype DrawerContentProps = Omit<DrawerPrimitive.Popup.Props, 'className' | 'children'> & {\n className?: string;\n children?: React.ReactNode;\n /** Shows the built-in top-right close button. Defaults to `true`. */\n showCloseButton?: boolean;\n} & Pick<DrawerPopupVariantsProps, 'variant'>;\n\n// Opinionated bundle: Portal + Backdrop + Viewport + Popup, with handle on top/bottom sheets.\n// Drop to the primitives for non-modal pages, custom portal targets, or chrome outside the popup.\nconst DrawerContent = React.forwardRef<HTMLDivElement, DrawerContentProps>(\n ({ className, children, variant, showCloseButton = true, ...props }, ref) => {\n const { side, variant: contextVariant, resolvedOverlay } = useDrawerContext();\n const resolvedVariant = variant ?? contextVariant;\n const showHandle = side === 'top' || side === 'bottom';\n\n return (\n <DrawerPortal>\n {resolvedOverlay !== 'none' && <DrawerBackdrop />}\n <DrawerViewport variant={resolvedVariant}>\n <DrawerPopup ref={ref} variant={resolvedVariant} className={className} {...props}>\n {showHandle && side === 'bottom' && <DrawerHandleBar />}\n <DrawerFloatingSideHandle side={side} variant={resolvedVariant} />\n <div data-slot=\"drawer-content\" className={cn('relative flex min-h-0 flex-1 flex-col', nestedFadeClass)}>\n {showCloseButton && <DrawerDefaultCloseButton />}\n {children}\n </div>\n {showHandle && side === 'top' && <DrawerHandleBar />}\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n );\n },\n);\nDrawerContent.displayName = 'DrawerContent';\n\nconst DrawerDefaultCloseButton = () => (\n <DrawerClose asChild>\n <Button type=\"button\" variant=\"ghost\" size=\"icon-sm\" className=\"absolute top-3 right-3 z-10\" aria-label=\"Close\">\n <XIcon />\n </Button>\n </DrawerClose>\n);\nDrawerDefaultCloseButton.displayName = 'DrawerDefaultCloseButton';\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"drawer-header\"\n className={cn('flex flex-col gap-0.5 px-4 py-3 pr-12 text-left', className)}\n {...props}\n />\n);\nDrawerHeader.displayName = 'DrawerHeader';\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"drawer-footer\"\n className={cn('mt-auto flex flex-col-reverse gap-1.5 px-4 py-3 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n);\nDrawerFooter.displayName = 'DrawerFooter';\n\nconst DrawerBody = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div data-slot=\"drawer-body\" className={cn('flex-1 px-4 py-3', className)} {...props} />\n);\nDrawerBody.displayName = 'DrawerBody';\n\ntype DrawerTitleProps = Omit<DrawerPrimitive.Title.Props, 'className'> & {\n className?: string;\n};\n\nconst DrawerTitle = React.forwardRef<HTMLHeadingElement, DrawerTitleProps>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title ref={ref} className={cn('text-ui-md font-medium text-neutral6', className)} {...props} />\n));\nDrawerTitle.displayName = 'DrawerTitle';\n\ntype DrawerDescriptionProps = Omit<DrawerPrimitive.Description.Props, 'className'> & {\n className?: string;\n};\n\nconst DrawerDescription = React.forwardRef<HTMLParagraphElement, DrawerDescriptionProps>(\n ({ className, ...props }, ref) => (\n <DrawerPrimitive.Description ref={ref} className={cn('text-ui-sm text-neutral3', className)} {...props} />\n ),\n);\nDrawerDescription.displayName = 'DrawerDescription';\n\nexport {\n Drawer,\n DrawerTrigger,\n DrawerClose,\n DrawerPortal,\n DrawerBackdrop,\n DrawerViewport,\n DrawerPopup,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerBody,\n DrawerTitle,\n DrawerDescription,\n DrawerProvider,\n DrawerIndent,\n DrawerIndentBackground,\n DrawerSwipeArea,\n DrawerInteractive,\n createDrawerHandle,\n};\n\nexport type {\n DrawerTriggerProps,\n DrawerCloseProps,\n DrawerBackdropProps,\n DrawerViewportProps,\n DrawerPopupProps,\n DrawerContentProps,\n DrawerTitleProps,\n DrawerDescriptionProps,\n};\n"],"names":["DrawerPrimitive"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"drawer-CiUjFp3u.js","sources":["../src/ds/components/Drawer/drawer.tsx"],"sourcesContent":["import { Drawer as DrawerPrimitive } from '@base-ui/react/drawer';\nimport { cva } from 'class-variance-authority';\nimport type { VariantProps } from 'class-variance-authority';\nimport { XIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport { cn } from '@/lib/utils';\n\n// Swipe/stack transforms live in drawer.css — unreadable as Tailwind arbitrary values.\nimport './drawer.css';\n\nexport type DrawerSide = 'top' | 'right' | 'bottom' | 'left';\n\nconst drawerBackdropVariants = cva('drawer-backdrop fixed inset-0 z-50', {\n variants: {\n overlay: {\n visible: 'bg-overlay backdrop-blur-xs',\n transparent: 'bg-transparent',\n none: 'hidden',\n },\n },\n defaultVariants: {\n overlay: 'visible',\n },\n});\n\nconst drawerViewportVariants = cva('fixed z-50 flex', {\n variants: {\n side: {\n top: 'items-start justify-center',\n bottom: 'items-end justify-center',\n left: 'items-stretch justify-start',\n right: 'items-stretch justify-end',\n },\n layout: {\n default: 'inset-0',\n floating: 'p-3 sm:p-4',\n floatingOverlay: 'inset-0 p-3 sm:p-4',\n },\n },\n compoundVariants: [\n {\n side: 'right',\n layout: 'floating',\n className: 'inset-y-0 right-0 w-[calc(32rem+1.5rem)] max-w-full sm:w-[calc(32rem+2rem)]',\n },\n {\n side: 'left',\n layout: 'floating',\n className: 'inset-y-0 left-0 w-[calc(32rem+1.5rem)] max-w-full sm:w-[calc(32rem+2rem)]',\n },\n {\n side: 'bottom',\n layout: 'floating',\n className: 'inset-x-0 bottom-0 h-[calc(85dvh+1.5rem)] max-h-full sm:h-[calc(85dvh+2rem)]',\n },\n {\n side: 'top',\n layout: 'floating',\n className: 'inset-x-0 top-0 h-[calc(85dvh+1.5rem)] max-h-full sm:h-[calc(85dvh+2rem)]',\n },\n ],\n defaultVariants: {\n side: 'bottom',\n layout: 'default',\n },\n});\n\n// `drawer-popup` hooks into drawer.css for swipe/stack transforms; `::after` dims under nested drawers.\nconst drawerPopupVariants = cva(\n cn(\n 'drawer-popup group/popup relative z-50 box-border flex flex-col overflow-y-auto overscroll-contain outline-none [touch-action:auto] will-change-transform',\n 'border-border1 bg-surface3 text-neutral5 shadow-dialog',\n 'data-[swiping]:select-none',\n \"after:pointer-events-none after:absolute after:inset-0 after:bg-transparent after:transition-[background-color] after:duration-[450ms] after:content-['']\",\n 'data-[nested-drawer-open]:after:bg-black/25',\n ),\n {\n variants: {\n side: {\n bottom: '',\n top: '',\n left: '',\n right: '',\n },\n variant: {\n default: '',\n floating: 'drawer-popup-floating pointer-events-auto rounded-lg border',\n },\n },\n compoundVariants: [\n {\n side: 'bottom',\n variant: 'default',\n className:\n 'h-[var(--drawer-height,auto)] max-h-[calc(85vh_+_3rem)] w-full -mb-12 pb-12 rounded-t-xl border-x border-t',\n },\n {\n side: 'top',\n variant: 'default',\n className:\n 'h-[var(--drawer-height,auto)] max-h-[calc(85vh_+_3rem)] w-full -mt-12 pt-12 rounded-b-xl border-x border-b',\n },\n {\n side: 'left',\n variant: 'default',\n className: 'h-full w-[20rem] max-w-[85vw] rounded-r-xl border-y border-r',\n },\n {\n side: 'right',\n variant: 'default',\n className: 'h-full w-[20rem] max-w-[85vw] rounded-l-xl border-y border-l',\n },\n {\n side: ['left', 'right'],\n variant: 'floating',\n className:\n 'h-[calc(100dvh-1.5rem)] w-[32rem] max-w-[calc(100vw-1.5rem)] sm:h-[calc(100dvh-2rem)] sm:max-w-[calc(100vw-2rem)]',\n },\n {\n side: ['top', 'bottom'],\n variant: 'floating',\n className:\n 'max-h-[calc(85dvh-1.5rem)] w-[calc(100vw-1.5rem)] sm:max-h-[calc(85dvh-2rem)] sm:w-[calc(100vw-2rem)]',\n },\n ],\n defaultVariants: {\n side: 'bottom',\n variant: 'default',\n },\n },\n);\n\ntype DrawerBackdropVariantsProps = VariantProps<typeof drawerBackdropVariants>;\ntype DrawerViewportClassVariantsProps = VariantProps<typeof drawerViewportVariants>;\ntype DrawerPopupVariantsProps = VariantProps<typeof drawerPopupVariants>;\nexport type DrawerVariant = NonNullable<DrawerPopupVariantsProps['variant']>;\ntype DrawerViewportLayout = NonNullable<DrawerViewportClassVariantsProps['layout']>;\ntype DrawerViewportVariantsProps = Pick<DrawerViewportClassVariantsProps, 'side'> & {\n variant?: DrawerVariant;\n};\nexport type DrawerOverlay = 'auto' | NonNullable<DrawerBackdropVariantsProps['overlay']>;\n\n// `side` = anchor edge; Base UI's `swipeDirection` = dismissal gesture (bottom sheet swipes `down`).\nconst sideToSwipeDirection: Record<DrawerSide, 'up' | 'down' | 'left' | 'right'> = {\n top: 'up',\n bottom: 'down',\n left: 'left',\n right: 'right',\n};\n\ntype DrawerContextValue = {\n side: DrawerSide;\n variant: DrawerVariant;\n resolvedOverlay: NonNullable<DrawerBackdropVariantsProps['overlay']>;\n};\n\nconst resolveDrawerOverlay = (\n overlay: DrawerOverlay,\n variant: DrawerVariant,\n): NonNullable<DrawerBackdropVariantsProps['overlay']> => {\n if (overlay !== 'auto') {\n return overlay;\n }\n\n return variant === 'floating' ? 'none' : 'visible';\n};\n\nconst DrawerContext = React.createContext<DrawerContextValue>({\n side: 'bottom',\n variant: 'default',\n resolvedOverlay: 'visible',\n});\n\nconst useDrawerContext = () => React.useContext(DrawerContext);\n\nexport const useDrawerSide = () => useDrawerContext().side;\n\nconst resolveDrawerViewportLayout = (\n variant: DrawerVariant,\n overlay: NonNullable<DrawerBackdropVariantsProps['overlay']>,\n): DrawerViewportLayout => {\n if (variant !== 'floating') {\n return 'default';\n }\n\n return overlay === 'none' ? 'floating' : 'floatingOverlay';\n};\n\nexport type DrawerProps<Payload = unknown> = Omit<DrawerPrimitive.Root.Props<Payload>, 'swipeDirection'> & {\n /** Edge the drawer is anchored to. Defaults to `bottom`. */\n side?: DrawerSide;\n /** Visual treatment for the drawer panel. Defaults to `default`. */\n variant?: DrawerVariant;\n /** Backdrop behavior. `auto` renders a visible backdrop for default drawers and no backdrop for floating drawers. */\n overlay?: DrawerOverlay;\n};\n\nfunction Drawer<Payload = unknown>({\n side = 'bottom',\n variant = 'default',\n overlay = 'auto',\n modal,\n disablePointerDismissal,\n children,\n ...props\n}: DrawerProps<Payload>) {\n const resolvedOverlay = resolveDrawerOverlay(overlay, variant);\n const resolvedModal = modal ?? (resolvedOverlay === 'none' ? false : undefined);\n const resolvedDisablePointerDismissal = disablePointerDismissal ?? (resolvedOverlay === 'none' ? true : undefined);\n const contextValue = React.useMemo<DrawerContextValue>(\n () => ({ side, variant, resolvedOverlay }),\n [side, variant, resolvedOverlay],\n );\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <DrawerPrimitive.Root\n swipeDirection={sideToSwipeDirection[side]}\n modal={resolvedModal}\n disablePointerDismissal={resolvedDisablePointerDismissal}\n {...props}\n >\n {children}\n </DrawerPrimitive.Root>\n </DrawerContext.Provider>\n );\n}\nDrawer.displayName = 'Drawer';\n\n// Generic (not `forwardRef`) so `handle` / `payload` stay type-safe on detached triggers.\ntype DrawerTriggerProps<Payload = unknown> = DrawerPrimitive.Trigger.Props<Payload> & {\n asChild?: boolean;\n};\n\nfunction DrawerTrigger<Payload = unknown>({ asChild, children, ...props }: DrawerTriggerProps<Payload>) {\n const renderProps = asChild && React.isValidElement(children) ? { render: children as React.ReactElement } : {};\n\n return (\n <DrawerPrimitive.Trigger {...renderProps} {...props}>\n {asChild ? undefined : children}\n </DrawerPrimitive.Trigger>\n );\n}\nDrawerTrigger.displayName = 'DrawerTrigger';\n\ntype DrawerCloseProps = DrawerPrimitive.Close.Props & {\n asChild?: boolean;\n};\n\nconst DrawerClose = React.forwardRef<HTMLButtonElement, DrawerCloseProps>(({ asChild, children, ...props }, ref) => {\n const renderProps = asChild && React.isValidElement(children) ? { render: children as React.ReactElement } : {};\n\n return (\n <DrawerPrimitive.Close ref={ref} {...renderProps} {...props}>\n {asChild ? undefined : children}\n </DrawerPrimitive.Close>\n );\n});\nDrawerClose.displayName = 'DrawerClose';\n\nconst DrawerPortal = DrawerPrimitive.Portal;\nconst DrawerProvider = DrawerPrimitive.Provider;\nconst DrawerIndent = DrawerPrimitive.Indent;\nconst DrawerIndentBackground = DrawerPrimitive.IndentBackground;\nconst DrawerSwipeArea = DrawerPrimitive.SwipeArea;\nconst createDrawerHandle = DrawerPrimitive.createHandle;\n// Inner region where pointer drags select text / scroll instead of swiping the drawer closed.\nconst DrawerInteractive = DrawerPrimitive.Content;\n\ntype DrawerBackdropProps = Omit<DrawerPrimitive.Backdrop.Props, 'className'> & {\n className?: string;\n} & DrawerBackdropVariantsProps;\n\n// The `drawer-backdrop` class (drawer.css) fades the overlay with the swipe gesture.\nconst DrawerBackdrop = React.forwardRef<HTMLDivElement, DrawerBackdropProps>(\n ({ className, overlay, ...props }, ref) => {\n const { resolvedOverlay } = useDrawerContext();\n const resolvedBackdropOverlay = overlay ?? resolvedOverlay;\n\n return (\n <DrawerPrimitive.Backdrop\n ref={ref}\n data-slot=\"drawer-backdrop\"\n data-overlay={resolvedBackdropOverlay}\n className={cn(drawerBackdropVariants({ overlay: resolvedBackdropOverlay }), className)}\n {...props}\n />\n );\n },\n);\nDrawerBackdrop.displayName = 'DrawerBackdrop';\n\ntype DrawerViewportProps = Omit<DrawerPrimitive.Viewport.Props, 'className'> & {\n className?: string;\n} & DrawerViewportVariantsProps;\n\n// Keep the viewport pointer-interactive: Base UI wires native drag-to-dismiss to it.\n// Floating drawers without an overlay constrain the viewport so the page behind stays interactive.\n// Floating drawers with an overlay keep a full-screen viewport so overlay-start drags stay native.\nconst DrawerViewport = React.forwardRef<HTMLDivElement, DrawerViewportProps>(\n ({ className, side, variant, ...props }, ref) => {\n const context = useDrawerContext();\n const resolvedSide = side ?? context.side;\n const resolvedVariant = variant ?? context.variant;\n const layout = resolveDrawerViewportLayout(resolvedVariant, context.resolvedOverlay);\n\n return (\n <DrawerPrimitive.Viewport\n ref={ref}\n data-slot=\"drawer-viewport\"\n data-variant={resolvedVariant}\n className={cn(drawerViewportVariants({ side: resolvedSide, layout }), className)}\n {...props}\n />\n );\n },\n);\nDrawerViewport.displayName = 'DrawerViewport';\n\ntype DrawerPopupProps = Omit<DrawerPrimitive.Popup.Props, 'className'> & {\n className?: string;\n} & DrawerPopupVariantsProps;\n\nconst DrawerPopup = React.forwardRef<HTMLDivElement, DrawerPopupProps>(\n ({ className, side, variant, ...props }, ref) => {\n const context = useDrawerContext();\n const resolvedSide = side ?? context.side;\n const resolvedVariant = variant ?? context.variant;\n\n return (\n <DrawerPrimitive.Popup\n ref={ref}\n data-slot=\"drawer-popup\"\n data-variant={resolvedVariant}\n className={cn(drawerPopupVariants({ side: resolvedSide, variant: resolvedVariant }), className)}\n {...props}\n />\n );\n },\n);\nDrawerPopup.displayName = 'DrawerPopup';\n\n// Inner-content fade while a nested drawer covers the parent. Off the popup itself so border/shadow stay crisp.\nconst nestedFadeClass = cn(\n 'transition-opacity duration-300 ease-[cubic-bezier(0.32,0.72,0,1)] motion-reduce:duration-0',\n 'group-data-[nested-drawer-open]/popup:opacity-0',\n);\n\nconst DrawerHandleBar = () => (\n <div\n aria-hidden\n data-slot=\"drawer-handle\"\n className={cn('mx-auto my-2 h-1 w-12 shrink-0 rounded-full bg-surface5', nestedFadeClass)}\n />\n);\nDrawerHandleBar.displayName = 'DrawerHandleBar';\n\ntype DrawerFloatingSideHandleProps = {\n side: DrawerSide;\n variant: DrawerVariant;\n};\n\nconst DrawerFloatingSideHandle = ({ side, variant }: DrawerFloatingSideHandleProps) => {\n if (variant !== 'floating' || (side !== 'left' && side !== 'right')) {\n return null;\n }\n\n return (\n <div\n aria-hidden\n data-slot=\"drawer-side-handle\"\n className={cn(\n 'absolute top-1/2 z-10 flex h-20 w-5 -translate-y-1/2 touch-none select-none items-center justify-center cursor-ew-resize lg:hidden',\n side === 'right' ? '-left-2' : '-right-2',\n )}\n >\n <div className=\"h-10 w-1 rounded-full bg-surface5/80 shadow-sm\" />\n </div>\n );\n};\nDrawerFloatingSideHandle.displayName = 'DrawerFloatingSideHandle';\n\ntype DrawerContentProps = Omit<DrawerPrimitive.Popup.Props, 'className' | 'children'> & {\n className?: string;\n children?: React.ReactNode;\n /** Shows the built-in top-right close button. Defaults to `true`. */\n showCloseButton?: boolean;\n} & Pick<DrawerPopupVariantsProps, 'variant'>;\n\n// Opinionated bundle: Portal + Backdrop + Viewport + Popup, with handle on top/bottom sheets.\n// Drop to the primitives for non-modal pages, custom portal targets, or chrome outside the popup.\nconst DrawerContent = React.forwardRef<HTMLDivElement, DrawerContentProps>(\n ({ className, children, variant, showCloseButton = true, ...props }, ref) => {\n const { side, variant: contextVariant, resolvedOverlay } = useDrawerContext();\n const resolvedVariant = variant ?? contextVariant;\n const showHandle = side === 'top' || side === 'bottom';\n\n return (\n <DrawerPortal>\n {resolvedOverlay !== 'none' && <DrawerBackdrop />}\n <DrawerViewport variant={resolvedVariant}>\n <DrawerPopup ref={ref} variant={resolvedVariant} className={className} {...props}>\n {showHandle && side === 'bottom' && <DrawerHandleBar />}\n <DrawerFloatingSideHandle side={side} variant={resolvedVariant} />\n <div data-slot=\"drawer-content\" className={cn('relative flex min-h-0 flex-1 flex-col', nestedFadeClass)}>\n {showCloseButton && <DrawerDefaultCloseButton />}\n {children}\n </div>\n {showHandle && side === 'top' && <DrawerHandleBar />}\n </DrawerPopup>\n </DrawerViewport>\n </DrawerPortal>\n );\n },\n);\nDrawerContent.displayName = 'DrawerContent';\n\nconst DrawerDefaultCloseButton = () => (\n <DrawerClose asChild>\n <Button type=\"button\" variant=\"ghost\" size=\"icon-sm\" className=\"absolute top-3 right-3 z-10\" aria-label=\"Close\">\n <XIcon />\n </Button>\n </DrawerClose>\n);\nDrawerDefaultCloseButton.displayName = 'DrawerDefaultCloseButton';\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"drawer-header\"\n className={cn('flex flex-col gap-0.5 px-4 py-3 pr-12 text-left', className)}\n {...props}\n />\n);\nDrawerHeader.displayName = 'DrawerHeader';\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n data-slot=\"drawer-footer\"\n className={cn('mt-auto flex flex-col-reverse gap-1.5 px-4 py-3 sm:flex-row sm:justify-end', className)}\n {...props}\n />\n);\nDrawerFooter.displayName = 'DrawerFooter';\n\nconst DrawerBody = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div data-slot=\"drawer-body\" className={cn('flex-1 px-4 py-3', className)} {...props} />\n);\nDrawerBody.displayName = 'DrawerBody';\n\ntype DrawerTitleProps = Omit<DrawerPrimitive.Title.Props, 'className'> & {\n className?: string;\n};\n\nconst DrawerTitle = React.forwardRef<HTMLHeadingElement, DrawerTitleProps>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title ref={ref} className={cn('text-ui-md font-medium text-neutral6', className)} {...props} />\n));\nDrawerTitle.displayName = 'DrawerTitle';\n\ntype DrawerDescriptionProps = Omit<DrawerPrimitive.Description.Props, 'className'> & {\n className?: string;\n};\n\nconst DrawerDescription = React.forwardRef<HTMLParagraphElement, DrawerDescriptionProps>(\n ({ className, ...props }, ref) => (\n <DrawerPrimitive.Description ref={ref} className={cn('text-ui-sm text-neutral3', className)} {...props} />\n ),\n);\nDrawerDescription.displayName = 'DrawerDescription';\n\nexport {\n Drawer,\n DrawerTrigger,\n DrawerClose,\n DrawerPortal,\n DrawerBackdrop,\n DrawerViewport,\n DrawerPopup,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerBody,\n DrawerTitle,\n DrawerDescription,\n DrawerProvider,\n DrawerIndent,\n DrawerIndentBackground,\n DrawerSwipeArea,\n DrawerInteractive,\n createDrawerHandle,\n};\n\nexport type {\n DrawerTriggerProps,\n DrawerCloseProps,\n DrawerBackdropProps,\n DrawerViewportProps,\n DrawerPopupProps,\n DrawerContentProps,\n DrawerTitleProps,\n DrawerDescriptionProps,\n};\n"],"names":["DrawerPrimitive"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ const drawer = require('@base-ui/react/drawer');
|
|
|
5
5
|
const index = require('./index-C-Lt4Bx_.cjs');
|
|
6
6
|
const lucideReact = require('lucide-react');
|
|
7
7
|
const React = require('react');
|
|
8
|
-
const Button = require('./Button-
|
|
8
|
+
const Button = require('./Button-Bj667lJx.cjs');
|
|
9
9
|
const utils_cn = require('./cn-vA5sWo9W.cjs');
|
|
10
10
|
|
|
11
11
|
function _interopNamespaceDefault(e) {
|
|
@@ -363,4 +363,4 @@ exports.DrawerTrigger = DrawerTrigger;
|
|
|
363
363
|
exports.DrawerViewport = DrawerViewport;
|
|
364
364
|
exports.createDrawerHandle = createDrawerHandle;
|
|
365
365
|
exports.useDrawerSide = useDrawerSide;
|
|
366
|
-
//# sourceMappingURL=drawer-
|
|
366
|
+
//# sourceMappingURL=drawer-jT2bUkrJ.cjs.map
|