@d4gger/design-system 3.0.1 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -0
- package/dist/brand-effects.css +5 -3
- package/dist/components/accordion.css +9 -2
- package/dist/components/alert/Alert.cjs +27 -9
- package/dist/components/alert/Alert.cjs.map +2 -2
- package/dist/components/alert/Alert.d.cts +6 -0
- package/dist/components/alert/Alert.d.cts.map +1 -1
- package/dist/components/alert/Alert.d.mts +6 -0
- package/dist/components/alert/Alert.d.mts.map +1 -1
- package/dist/components/alert/Alert.d.ts +6 -0
- package/dist/components/alert/Alert.d.ts.map +1 -1
- package/dist/components/alert/Alert.js +28 -10
- package/dist/components/alert/Alert.js.map +2 -2
- package/dist/components/alert.css +73 -3
- package/dist/components/article-nodes.css +16 -1
- package/dist/components/articleNodes/ArticleNodes.cjs +46 -5
- package/dist/components/articleNodes/ArticleNodes.cjs.map +2 -2
- package/dist/components/articleNodes/ArticleNodes.d.cts +7 -3
- package/dist/components/articleNodes/ArticleNodes.d.cts.map +1 -1
- package/dist/components/articleNodes/ArticleNodes.d.mts +7 -3
- package/dist/components/articleNodes/ArticleNodes.d.mts.map +1 -1
- package/dist/components/articleNodes/ArticleNodes.d.ts +7 -3
- package/dist/components/articleNodes/ArticleNodes.d.ts.map +1 -1
- package/dist/components/articleNodes/ArticleNodes.js +46 -5
- package/dist/components/articleNodes/ArticleNodes.js.map +2 -2
- package/dist/components/articleNodes/articleExtensions.cjs +21 -4
- package/dist/components/articleNodes/articleExtensions.cjs.map +2 -2
- package/dist/components/articleNodes/articleExtensions.d.cts +8 -2
- package/dist/components/articleNodes/articleExtensions.d.cts.map +1 -1
- package/dist/components/articleNodes/articleExtensions.d.mts +8 -2
- package/dist/components/articleNodes/articleExtensions.d.mts.map +1 -1
- package/dist/components/articleNodes/articleExtensions.d.ts +8 -2
- package/dist/components/articleNodes/articleExtensions.d.ts.map +1 -1
- package/dist/components/articleNodes/articleExtensions.js +21 -4
- package/dist/components/articleNodes/articleExtensions.js.map +2 -2
- package/dist/components/articleNodes/articleNodeViews.cjs +154 -0
- package/dist/components/articleNodes/articleNodeViews.cjs.map +7 -0
- package/dist/components/articleNodes/articleNodeViews.d.cts +3 -0
- package/dist/components/articleNodes/articleNodeViews.d.cts.map +1 -0
- package/dist/components/articleNodes/articleNodeViews.d.mts +3 -0
- package/dist/components/articleNodes/articleNodeViews.d.mts.map +1 -0
- package/dist/components/articleNodes/articleNodeViews.d.ts +3 -0
- package/dist/components/articleNodes/articleNodeViews.d.ts.map +1 -0
- package/dist/components/articleNodes/articleNodeViews.js +124 -0
- package/dist/components/articleNodes/articleNodeViews.js.map +7 -0
- package/dist/components/articleNodes/articleNodes.props.cjs.map +1 -1
- package/dist/components/articleNodes/articleNodes.props.d.cts +25 -2
- package/dist/components/articleNodes/articleNodes.props.d.cts.map +1 -1
- package/dist/components/articleNodes/articleNodes.props.d.mts +25 -2
- package/dist/components/articleNodes/articleNodes.props.d.mts.map +1 -1
- package/dist/components/articleNodes/articleNodes.props.d.ts +25 -2
- package/dist/components/articleNodes/articleNodes.props.d.ts.map +1 -1
- package/dist/components/banner.css +5 -4
- package/dist/components/blockquote.css +7 -4
- package/dist/components/bottom-dock.css +140 -0
- package/dist/components/bottomDock/BottomDock.cjs +140 -0
- package/dist/components/bottomDock/BottomDock.cjs.map +7 -0
- package/dist/components/bottomDock/BottomDock.d.cts +25 -0
- package/dist/components/bottomDock/BottomDock.d.cts.map +1 -0
- package/dist/components/bottomDock/BottomDock.d.mts +25 -0
- package/dist/components/bottomDock/BottomDock.d.mts.map +1 -0
- package/dist/components/bottomDock/BottomDock.d.ts +25 -0
- package/dist/components/bottomDock/BottomDock.d.ts.map +1 -0
- package/dist/components/bottomDock/BottomDock.js +110 -0
- package/dist/components/bottomDock/BottomDock.js.map +7 -0
- package/dist/components/bottomDock/bottomDock.props.cjs +49 -0
- package/dist/components/bottomDock/bottomDock.props.cjs.map +7 -0
- package/dist/components/bottomDock/bottomDock.props.d.cts +29 -0
- package/dist/components/bottomDock/bottomDock.props.d.cts.map +1 -0
- package/dist/components/bottomDock/bottomDock.props.d.mts +29 -0
- package/dist/components/bottomDock/bottomDock.props.d.mts.map +1 -0
- package/dist/components/bottomDock/bottomDock.props.d.ts +29 -0
- package/dist/components/bottomDock/bottomDock.props.d.ts.map +1 -0
- package/dist/components/bottomDock/bottomDock.props.js +29 -0
- package/dist/components/bottomDock/bottomDock.props.js.map +7 -0
- package/dist/components/breadcrumb.css +24 -3
- package/dist/components/callout.css +20 -7
- package/dist/components/card.css +9 -1
- package/dist/components/code.css +29 -13
- package/dist/components/collapsible/Collapsible.cjs +14 -0
- package/dist/components/collapsible/Collapsible.cjs.map +2 -2
- package/dist/components/collapsible/Collapsible.d.cts.map +1 -1
- package/dist/components/collapsible/Collapsible.d.mts.map +1 -1
- package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
- package/dist/components/collapsible/Collapsible.js +14 -0
- package/dist/components/collapsible/Collapsible.js.map +2 -2
- package/dist/components/collapsible.css +10 -1
- package/dist/components/command.css +0 -2
- package/dist/components/comment-thread.css +15 -7
- package/dist/components/commentThread/CommentThread.cjs +45 -17
- package/dist/components/commentThread/CommentThread.cjs.map +2 -2
- package/dist/components/commentThread/CommentThread.d.cts +6 -6
- package/dist/components/commentThread/CommentThread.d.cts.map +1 -1
- package/dist/components/commentThread/CommentThread.d.mts +6 -6
- package/dist/components/commentThread/CommentThread.d.mts.map +1 -1
- package/dist/components/commentThread/CommentThread.d.ts +6 -6
- package/dist/components/commentThread/CommentThread.d.ts.map +1 -1
- package/dist/components/commentThread/CommentThread.js +45 -17
- package/dist/components/commentThread/CommentThread.js.map +2 -2
- package/dist/components/commentThread/commentThread.props.cjs.map +1 -1
- package/dist/components/commentThread/commentThread.props.d.cts +24 -0
- package/dist/components/commentThread/commentThread.props.d.cts.map +1 -1
- package/dist/components/commentThread/commentThread.props.d.mts +24 -0
- package/dist/components/commentThread/commentThread.props.d.mts.map +1 -1
- package/dist/components/commentThread/commentThread.props.d.ts +24 -0
- package/dist/components/commentThread/commentThread.props.d.ts.map +1 -1
- package/dist/components/config-drawer.css +7 -3
- package/dist/components/configDrawer/ConfigDrawer.cjs +1 -1
- package/dist/components/configDrawer/ConfigDrawer.cjs.map +2 -2
- package/dist/components/configDrawer/ConfigDrawer.js +1 -1
- package/dist/components/configDrawer/ConfigDrawer.js.map +2 -2
- package/dist/components/context-menu.css +3 -1
- package/dist/components/contextMenu/ContextMenu.cjs +37 -6
- package/dist/components/contextMenu/ContextMenu.cjs.map +2 -2
- package/dist/components/contextMenu/ContextMenu.d.cts +1 -1
- package/dist/components/contextMenu/ContextMenu.d.cts.map +1 -1
- package/dist/components/contextMenu/ContextMenu.d.mts +1 -1
- package/dist/components/contextMenu/ContextMenu.d.mts.map +1 -1
- package/dist/components/contextMenu/ContextMenu.d.ts +1 -1
- package/dist/components/contextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/components/contextMenu/ContextMenu.js +37 -6
- package/dist/components/contextMenu/ContextMenu.js.map +2 -2
- package/dist/components/dialog.css +1 -1
- package/dist/components/drawer.css +23 -6
- package/dist/components/dropdownMenu/DropdownMenu.cjs +10 -5
- package/dist/components/dropdownMenu/DropdownMenu.cjs.map +2 -2
- package/dist/components/dropdownMenu/DropdownMenu.d.cts.map +1 -1
- package/dist/components/dropdownMenu/DropdownMenu.d.mts.map +1 -1
- package/dist/components/dropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/components/dropdownMenu/DropdownMenu.js +10 -5
- package/dist/components/dropdownMenu/DropdownMenu.js.map +2 -2
- package/dist/components/environment-ribbon.css +73 -0
- package/dist/components/environmentRibbon/EnvironmentRibbon.cjs +69 -0
- package/dist/components/environmentRibbon/EnvironmentRibbon.cjs.map +7 -0
- package/dist/components/environmentRibbon/EnvironmentRibbon.d.cts +15 -0
- package/dist/components/environmentRibbon/EnvironmentRibbon.d.cts.map +1 -0
- package/dist/components/environmentRibbon/EnvironmentRibbon.d.mts +15 -0
- package/dist/components/environmentRibbon/EnvironmentRibbon.d.mts.map +1 -0
- package/dist/components/environmentRibbon/EnvironmentRibbon.d.ts +15 -0
- package/dist/components/environmentRibbon/EnvironmentRibbon.d.ts.map +1 -0
- package/dist/components/environmentRibbon/EnvironmentRibbon.js +39 -0
- package/dist/components/environmentRibbon/EnvironmentRibbon.js.map +7 -0
- package/dist/components/environmentRibbon/environmentRibbon.props.cjs +39 -0
- package/dist/components/environmentRibbon/environmentRibbon.props.cjs.map +7 -0
- package/dist/components/environmentRibbon/environmentRibbon.props.d.cts +18 -0
- package/dist/components/environmentRibbon/environmentRibbon.props.d.cts.map +1 -0
- package/dist/components/environmentRibbon/environmentRibbon.props.d.mts +18 -0
- package/dist/components/environmentRibbon/environmentRibbon.props.d.mts.map +1 -0
- package/dist/components/environmentRibbon/environmentRibbon.props.d.ts +18 -0
- package/dist/components/environmentRibbon/environmentRibbon.props.d.ts.map +1 -0
- package/dist/components/environmentRibbon/environmentRibbon.props.js +19 -0
- package/dist/components/environmentRibbon/environmentRibbon.props.js.map +7 -0
- package/dist/components/field.css +5 -0
- package/dist/components/file-upload.css +36 -9
- package/dist/components/floating-panel.css +49 -18
- package/dist/components/floatingPanel/FloatingPanel.cjs +156 -58
- package/dist/components/floatingPanel/FloatingPanel.cjs.map +2 -2
- package/dist/components/floatingPanel/FloatingPanel.d.cts.map +1 -1
- package/dist/components/floatingPanel/FloatingPanel.d.mts.map +1 -1
- package/dist/components/floatingPanel/FloatingPanel.d.ts.map +1 -1
- package/dist/components/floatingPanel/FloatingPanel.js +156 -58
- package/dist/components/floatingPanel/FloatingPanel.js.map +2 -2
- package/dist/components/grid/Grid.cjs +24 -35
- package/dist/components/grid/Grid.cjs.map +2 -2
- package/dist/components/grid/Grid.d.cts.map +1 -1
- package/dist/components/grid/Grid.d.mts.map +1 -1
- package/dist/components/grid/Grid.d.ts.map +1 -1
- package/dist/components/grid/Grid.js +24 -35
- package/dist/components/grid/Grid.js.map +2 -2
- package/dist/components/heading/Heading.cjs +1 -8
- package/dist/components/heading/Heading.cjs.map +2 -2
- package/dist/components/heading/Heading.d.cts.map +1 -1
- package/dist/components/heading/Heading.d.mts.map +1 -1
- package/dist/components/heading/Heading.d.ts.map +1 -1
- package/dist/components/heading/Heading.js +1 -8
- package/dist/components/heading/Heading.js.map +2 -2
- package/dist/components/heading/heading.props.cjs +9 -9
- package/dist/components/heading/heading.props.cjs.map +2 -2
- package/dist/components/heading/heading.props.d.cts +42 -43
- package/dist/components/heading/heading.props.d.cts.map +1 -1
- package/dist/components/heading/heading.props.d.mts +42 -43
- package/dist/components/heading/heading.props.d.mts.map +1 -1
- package/dist/components/heading/heading.props.d.ts +42 -43
- package/dist/components/heading/heading.props.d.ts.map +1 -1
- package/dist/components/heading/heading.props.js +9 -9
- package/dist/components/heading/heading.props.js.map +2 -2
- package/dist/components/heading.css +127 -104
- package/dist/components/hover-card.css +5 -2
- package/dist/components/icon/Icon.cjs +19 -0
- package/dist/components/icon/Icon.cjs.map +2 -2
- package/dist/components/icon/Icon.d.cts +29 -1
- package/dist/components/icon/Icon.d.cts.map +1 -1
- package/dist/components/icon/Icon.d.mts +29 -1
- package/dist/components/icon/Icon.d.mts.map +1 -1
- package/dist/components/icon/Icon.d.ts +29 -1
- package/dist/components/icon/Icon.d.ts.map +1 -1
- package/dist/components/icon/Icon.js +25 -0
- package/dist/components/icon/Icon.js.map +2 -2
- package/dist/components/icon/icons.cjs +14 -0
- package/dist/components/icon/icons.cjs.map +2 -2
- package/dist/components/icon/icons.d.cts +35 -0
- package/dist/components/icon/icons.d.cts.map +1 -1
- package/dist/components/icon/icons.d.mts +35 -0
- package/dist/components/icon/icons.d.mts.map +1 -1
- package/dist/components/icon/icons.d.ts +35 -0
- package/dist/components/icon/icons.d.ts.map +1 -1
- package/dist/components/icon/icons.js +14 -0
- package/dist/components/icon/icons.js.map +2 -2
- package/dist/components/index.cjs +2 -0
- package/dist/components/index.cjs.map +2 -2
- package/dist/components/index.d.cts +2 -0
- package/dist/components/index.d.cts.map +1 -1
- package/dist/components/index.d.mts +2 -0
- package/dist/components/index.d.mts.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +2 -2
- package/dist/components/label.css +3 -0
- package/dist/components/link.css +33 -97
- package/dist/components/notification-center.css +58 -10
- package/dist/components/notificationCenter/NotificationCenter.cjs +27 -17
- package/dist/components/notificationCenter/NotificationCenter.cjs.map +2 -2
- package/dist/components/notificationCenter/NotificationCenter.d.cts +2 -0
- package/dist/components/notificationCenter/NotificationCenter.d.cts.map +1 -1
- package/dist/components/notificationCenter/NotificationCenter.d.mts +2 -0
- package/dist/components/notificationCenter/NotificationCenter.d.mts.map +1 -1
- package/dist/components/notificationCenter/NotificationCenter.d.ts +2 -0
- package/dist/components/notificationCenter/NotificationCenter.d.ts.map +1 -1
- package/dist/components/notificationCenter/NotificationCenter.js +28 -18
- package/dist/components/notificationCenter/NotificationCenter.js.map +2 -2
- package/dist/components/page-header.css +21 -0
- package/dist/components/pageHeader/PageHeader.cjs +10 -2
- package/dist/components/pageHeader/PageHeader.cjs.map +2 -2
- package/dist/components/pageHeader/PageHeader.d.cts.map +1 -1
- package/dist/components/pageHeader/PageHeader.d.mts.map +1 -1
- package/dist/components/pageHeader/PageHeader.d.ts.map +1 -1
- package/dist/components/pageHeader/PageHeader.js +10 -2
- package/dist/components/pageHeader/PageHeader.js.map +2 -2
- package/dist/components/pageHeader/pageHeader.props.cjs +7 -1
- package/dist/components/pageHeader/pageHeader.props.cjs.map +2 -2
- package/dist/components/pageHeader/pageHeader.props.d.cts +5 -0
- package/dist/components/pageHeader/pageHeader.props.d.cts.map +1 -1
- package/dist/components/pageHeader/pageHeader.props.d.mts +5 -0
- package/dist/components/pageHeader/pageHeader.props.d.mts.map +1 -1
- package/dist/components/pageHeader/pageHeader.props.d.ts +5 -0
- package/dist/components/pageHeader/pageHeader.props.d.ts.map +1 -1
- package/dist/components/pageHeader/pageHeader.props.js +7 -1
- package/dist/components/pageHeader/pageHeader.props.js.map +2 -2
- package/dist/components/pills/Pills.cjs +1 -1
- package/dist/components/pills/Pills.cjs.map +2 -2
- package/dist/components/pills/Pills.js +2 -2
- package/dist/components/pills/Pills.js.map +2 -2
- package/dist/components/pills.css +6 -0
- package/dist/components/popover.css +45 -6
- package/dist/components/prose.css +3 -3
- package/dist/components/qr-code.css +5 -2
- package/dist/components/qrCode/QrCode.cjs +14 -11
- package/dist/components/qrCode/QrCode.cjs.map +2 -2
- package/dist/components/qrCode/QrCode.d.cts.map +1 -1
- package/dist/components/qrCode/QrCode.d.mts.map +1 -1
- package/dist/components/qrCode/QrCode.d.ts.map +1 -1
- package/dist/components/qrCode/QrCode.js +14 -11
- package/dist/components/qrCode/QrCode.js.map +2 -2
- package/dist/components/resizable.css +20 -4
- package/dist/components/rich-text-editor.css +50 -14
- package/dist/components/richTextEditor/EditorTools.cjs +226 -0
- package/dist/components/richTextEditor/EditorTools.cjs.map +7 -0
- package/dist/components/richTextEditor/EditorTools.d.cts +22 -0
- package/dist/components/richTextEditor/EditorTools.d.cts.map +1 -0
- package/dist/components/richTextEditor/EditorTools.d.mts +22 -0
- package/dist/components/richTextEditor/EditorTools.d.mts.map +1 -0
- package/dist/components/richTextEditor/EditorTools.d.ts +22 -0
- package/dist/components/richTextEditor/EditorTools.d.ts.map +1 -0
- package/dist/components/richTextEditor/EditorTools.js +196 -0
- package/dist/components/richTextEditor/EditorTools.js.map +7 -0
- package/dist/components/richTextEditor/MentionSuggestions.cjs +96 -0
- package/dist/components/richTextEditor/MentionSuggestions.cjs.map +7 -0
- package/dist/components/richTextEditor/MentionSuggestions.d.cts +7 -0
- package/dist/components/richTextEditor/MentionSuggestions.d.cts.map +1 -0
- package/dist/components/richTextEditor/MentionSuggestions.d.mts +7 -0
- package/dist/components/richTextEditor/MentionSuggestions.d.mts.map +1 -0
- package/dist/components/richTextEditor/MentionSuggestions.d.ts +7 -0
- package/dist/components/richTextEditor/MentionSuggestions.d.ts.map +1 -0
- package/dist/components/richTextEditor/MentionSuggestions.js +66 -0
- package/dist/components/richTextEditor/MentionSuggestions.js.map +7 -0
- package/dist/components/richTextEditor/RichTextEditor.cjs +53 -206
- package/dist/components/richTextEditor/RichTextEditor.cjs.map +3 -3
- package/dist/components/richTextEditor/RichTextEditor.d.cts +17 -7
- package/dist/components/richTextEditor/RichTextEditor.d.cts.map +1 -1
- package/dist/components/richTextEditor/RichTextEditor.d.mts +17 -7
- package/dist/components/richTextEditor/RichTextEditor.d.mts.map +1 -1
- package/dist/components/richTextEditor/RichTextEditor.d.ts +17 -7
- package/dist/components/richTextEditor/RichTextEditor.d.ts.map +1 -1
- package/dist/components/richTextEditor/RichTextEditor.js +53 -206
- package/dist/components/richTextEditor/RichTextEditor.js.map +3 -3
- package/dist/components/richTextEditor/editorTokens.cjs +75 -0
- package/dist/components/richTextEditor/editorTokens.cjs.map +7 -0
- package/dist/components/richTextEditor/editorTokens.d.cts +21 -0
- package/dist/components/richTextEditor/editorTokens.d.cts.map +1 -0
- package/dist/components/richTextEditor/editorTokens.d.mts +21 -0
- package/dist/components/richTextEditor/editorTokens.d.mts.map +1 -0
- package/dist/components/richTextEditor/editorTokens.d.ts +21 -0
- package/dist/components/richTextEditor/editorTokens.d.ts.map +1 -0
- package/dist/components/richTextEditor/editorTokens.js +55 -0
- package/dist/components/richTextEditor/editorTokens.js.map +7 -0
- package/dist/components/scroll-area.css +12 -0
- package/dist/components/scrollArea/ScrollArea.cjs +12 -1
- package/dist/components/scrollArea/ScrollArea.cjs.map +2 -2
- package/dist/components/scrollArea/ScrollArea.d.cts.map +1 -1
- package/dist/components/scrollArea/ScrollArea.d.mts.map +1 -1
- package/dist/components/scrollArea/ScrollArea.d.ts.map +1 -1
- package/dist/components/scrollArea/ScrollArea.js +12 -1
- package/dist/components/scrollArea/ScrollArea.js.map +2 -2
- package/dist/components/segmentedControl/SegmentedControl.cjs +2 -2
- package/dist/components/segmentedControl/SegmentedControl.cjs.map +2 -2
- package/dist/components/segmentedControl/SegmentedControl.d.cts.map +1 -1
- package/dist/components/segmentedControl/SegmentedControl.d.mts.map +1 -1
- package/dist/components/segmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/components/segmentedControl/SegmentedControl.js +2 -2
- package/dist/components/segmentedControl/SegmentedControl.js.map +2 -2
- package/dist/components/separator.css +3 -9
- package/dist/components/sidebar/Sidebar.cjs +17 -5
- package/dist/components/sidebar/Sidebar.cjs.map +2 -2
- package/dist/components/sidebar/Sidebar.d.cts +12 -1
- package/dist/components/sidebar/Sidebar.d.cts.map +1 -1
- package/dist/components/sidebar/Sidebar.d.mts +12 -1
- package/dist/components/sidebar/Sidebar.d.mts.map +1 -1
- package/dist/components/sidebar/Sidebar.d.ts +12 -1
- package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
- package/dist/components/sidebar/Sidebar.js +17 -5
- package/dist/components/sidebar/Sidebar.js.map +2 -2
- package/dist/components/sidebar/sidebar.props.cjs +8 -1
- package/dist/components/sidebar/sidebar.props.cjs.map +2 -2
- package/dist/components/sidebar/sidebar.props.d.cts +9 -1
- package/dist/components/sidebar/sidebar.props.d.cts.map +1 -1
- package/dist/components/sidebar/sidebar.props.d.mts +9 -1
- package/dist/components/sidebar/sidebar.props.d.mts.map +1 -1
- package/dist/components/sidebar/sidebar.props.d.ts +9 -1
- package/dist/components/sidebar/sidebar.props.d.ts.map +1 -1
- package/dist/components/sidebar/sidebar.props.js +8 -1
- package/dist/components/sidebar/sidebar.props.js.map +2 -2
- package/dist/components/sidebar.css +86 -13
- package/dist/components/sonner.css +78 -16
- package/dist/components/stepper.css +23 -12
- package/dist/components/tab-nav.css +25 -13
- package/dist/components/tabNav/TabNav.cjs +1 -4
- package/dist/components/tabNav/TabNav.cjs.map +2 -2
- package/dist/components/tabNav/TabNav.d.cts.map +1 -1
- package/dist/components/tabNav/TabNav.d.mts.map +1 -1
- package/dist/components/tabNav/TabNav.d.ts.map +1 -1
- package/dist/components/tabNav/TabNav.js +1 -4
- package/dist/components/tabNav/TabNav.js.map +2 -2
- package/dist/components/table-of-contents.css +12 -2
- package/dist/components/tableOfContents/TableOfContents.cjs +11 -4
- package/dist/components/tableOfContents/TableOfContents.cjs.map +2 -2
- package/dist/components/tableOfContents/TableOfContents.d.cts.map +1 -1
- package/dist/components/tableOfContents/TableOfContents.d.mts.map +1 -1
- package/dist/components/tableOfContents/TableOfContents.d.ts.map +1 -1
- package/dist/components/tableOfContents/TableOfContents.js +11 -4
- package/dist/components/tableOfContents/TableOfContents.js.map +2 -2
- package/dist/components/tabs/Tabs.cjs +39 -54
- package/dist/components/tabs/Tabs.cjs.map +2 -2
- package/dist/components/tabs/Tabs.d.cts.map +1 -1
- package/dist/components/tabs/Tabs.d.mts.map +1 -1
- package/dist/components/tabs/Tabs.d.ts.map +1 -1
- package/dist/components/tabs/Tabs.js +39 -54
- package/dist/components/tabs/Tabs.js.map +2 -2
- package/dist/components/tabs.css +52 -7
- package/dist/components/text/text.props.cjs +9 -9
- package/dist/components/text/text.props.cjs.map +2 -2
- package/dist/components/text/text.props.d.cts +42 -43
- package/dist/components/text/text.props.d.cts.map +1 -1
- package/dist/components/text/text.props.d.mts +42 -43
- package/dist/components/text/text.props.d.mts.map +1 -1
- package/dist/components/text/text.props.d.ts +42 -43
- package/dist/components/text/text.props.d.ts.map +1 -1
- package/dist/components/text/text.props.js +9 -9
- package/dist/components/text/text.props.js.map +2 -2
- package/dist/components/text/typography.props.cjs +32 -0
- package/dist/components/text/typography.props.cjs.map +7 -0
- package/dist/components/text/typography.props.d.cts +3 -0
- package/dist/components/text/typography.props.d.cts.map +1 -0
- package/dist/components/text/typography.props.d.mts +3 -0
- package/dist/components/text/typography.props.d.mts.map +1 -0
- package/dist/components/text/typography.props.d.ts +3 -0
- package/dist/components/text/typography.props.d.ts.map +1 -0
- package/dist/components/text/typography.props.js +12 -0
- package/dist/components/text/typography.props.js.map +7 -0
- package/dist/components/text-field.css +1 -0
- package/dist/components/text.css +41 -6
- package/dist/components/theme-panel.css +6 -0
- package/dist/components/toast/Toast.cjs +3 -1
- package/dist/components/toast/Toast.cjs.map +2 -2
- package/dist/components/toast/Toast.d.cts.map +1 -1
- package/dist/components/toast/Toast.d.mts.map +1 -1
- package/dist/components/toast/Toast.d.ts.map +1 -1
- package/dist/components/toast/Toast.js +3 -1
- package/dist/components/toast/Toast.js.map +2 -2
- package/dist/components/toast.css +36 -36
- package/dist/components/toggle-tip.css +58 -9
- package/dist/components/toggleTip/ToggleTip.cjs +9 -5
- package/dist/components/toggleTip/ToggleTip.cjs.map +2 -2
- package/dist/components/toggleTip/ToggleTip.d.cts.map +1 -1
- package/dist/components/toggleTip/ToggleTip.d.mts.map +1 -1
- package/dist/components/toggleTip/ToggleTip.d.ts.map +1 -1
- package/dist/components/toggleTip/ToggleTip.js +9 -5
- package/dist/components/toggleTip/ToggleTip.js.map +2 -2
- package/dist/components/toolbar/Toolbar.cjs +10 -7
- package/dist/components/toolbar/Toolbar.cjs.map +2 -2
- package/dist/components/toolbar/Toolbar.js +10 -7
- package/dist/components/toolbar/Toolbar.js.map +2 -2
- package/dist/components/toolbar.css +58 -4
- package/dist/components/tooltip.css +9 -5
- package/dist/components/tree-view.css +17 -3
- package/dist/components/treeView/TreeView.cjs +76 -21
- package/dist/components/treeView/TreeView.cjs.map +2 -2
- package/dist/components/treeView/TreeView.d.cts.map +1 -1
- package/dist/components/treeView/TreeView.d.mts.map +1 -1
- package/dist/components/treeView/TreeView.d.ts.map +1 -1
- package/dist/components/treeView/TreeView.js +76 -21
- package/dist/components/treeView/TreeView.js.map +2 -2
- package/dist/components.css +2 -0
- package/dist/docs/README.md +2 -0
- package/dist/docs/component-contract.md +7 -4
- package/dist/docs/component-index.json +17 -1
- package/dist/docs/components/accordion.md +5 -36
- package/dist/docs/components/alert.md +44 -17
- package/dist/docs/components/article-nodes.md +59 -2
- package/dist/docs/components/aspect-ratio.md +3 -26
- package/dist/docs/components/banner.md +7 -7
- package/dist/docs/components/blockquote.md +15 -14
- package/dist/docs/components/bottom-dock.md +146 -0
- package/dist/docs/components/box.md +3 -34
- package/dist/docs/components/breadcrumb.md +13 -8
- package/dist/docs/components/callout.md +18 -7
- package/dist/docs/components/card.md +10 -3
- package/dist/docs/components/code.md +33 -220
- package/dist/docs/components/collapsible.md +16 -35
- package/dist/docs/components/command.md +2 -0
- package/dist/docs/components/comment-thread.md +51 -1
- package/dist/docs/components/config-drawer.md +72 -171
- package/dist/docs/components/container.md +2 -0
- package/dist/docs/components/context-menu.md +19 -5
- package/dist/docs/components/dialog.md +4 -2
- package/dist/docs/components/drawer.md +17 -6
- package/dist/docs/components/dropdown-menu.md +11 -2
- package/dist/docs/components/em.md +1 -1
- package/dist/docs/components/environment-ribbon.md +126 -0
- package/dist/docs/components/field.md +2 -0
- package/dist/docs/components/file-upload.md +13 -7
- package/dist/docs/components/floating-panel.md +79 -285
- package/dist/docs/components/form.md +4 -0
- package/dist/docs/components/grid.md +11 -60
- package/dist/docs/components/heading.md +35 -32
- package/dist/docs/components/hover-card.md +9 -1
- package/dist/docs/components/icon.md +1 -0
- package/dist/docs/components/kbd.md +2 -0
- package/dist/docs/components/label.md +11 -9
- package/dist/docs/components/link.md +31 -209
- package/dist/docs/components/notification-center.md +30 -15
- package/dist/docs/components/page-header.md +20 -6
- package/dist/docs/components/pagination.md +4 -0
- package/dist/docs/components/pills.md +13 -4
- package/dist/docs/components/popover.md +10 -3
- package/dist/docs/components/prose.md +9 -0
- package/dist/docs/components/qr-code.md +12 -12
- package/dist/docs/components/quote.md +9 -4
- package/dist/docs/components/resizable.md +26 -18
- package/dist/docs/components/rich-text-editor.md +68 -18
- package/dist/docs/components/scroll-area.md +17 -9
- package/dist/docs/components/section.md +3 -38
- package/dist/docs/components/segmented-control.md +1 -1
- package/dist/docs/components/segmented-meter.md +9 -0
- package/dist/docs/components/separator.md +10 -46
- package/dist/docs/components/sidebar.md +34 -9
- package/dist/docs/components/sonner.md +25 -16
- package/dist/docs/components/stepper.md +8 -33
- package/dist/docs/components/strong.md +1 -1
- package/dist/docs/components/tab-nav.md +33 -96
- package/dist/docs/components/table-of-contents.md +8 -2
- package/dist/docs/components/tabs.md +19 -50
- package/dist/docs/components/text-field.md +1 -0
- package/dist/docs/components/text.md +34 -28
- package/dist/docs/components/theme-panel.md +3 -28
- package/dist/docs/components/theme.md +7 -3
- package/dist/docs/components/toast.md +27 -13
- package/dist/docs/components/toggle-tip.md +58 -241
- package/dist/docs/components/toolbar.md +16 -39
- package/dist/docs/components/tooltip.md +13 -7
- package/dist/docs/components/tree-view.md +22 -55
- package/dist/docs/consumer-guide.md +11 -4
- package/dist/generated/tokens.cjs +1 -0
- package/dist/generated/tokens.cjs.map +2 -2
- package/dist/generated/tokens.d.cts.map +1 -1
- package/dist/generated/tokens.d.mts.map +1 -1
- package/dist/generated/tokens.d.ts.map +1 -1
- package/dist/generated/tokens.js +1 -0
- package/dist/generated/tokens.js.map +2 -2
- package/dist/styles.css +1921 -1349
- package/dist/tokens.css +346 -362
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/segmentedControl/SegmentedControl.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react'\nimport classNames from 'classnames'\nimport * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { segmentedControlPropDefs } from './segmentedControl.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype SegmentedControlRootOwnProps = GetPropDefTypes<typeof segmentedControlPropDefs> & {\n value?: string\n defaultValue?: string\n onValueChange?(value: string): void\n}\n\ntype SegmentedControlRootProps = React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>\n & SegmentedControlRootOwnProps\n\ntype SegmentedControlRootElement = React.ComponentRef<typeof ToggleGroupPrimitive.Root>\n\nfunction composeRefs<T>(...refs: Array<React.Ref<T> | undefined>) {\n return (node: T | null) => {\n for (const ref of refs) {\n if (!ref) {\n continue\n }\n\n if (typeof ref === 'function') {\n ref(node)\n continue\n }\n\n ;(ref as { current: T | null }).current = node\n }\n }\n}\n\nconst useIsomorphicLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\ninterface SegmentedControlSelection {\n activationMode: 'manual' | 'automatic'\n disabled: boolean\n selectedValue: string | undefined\n requestSelect(value: string): void\n}\n\nconst SegmentedControlSelectionContext = React.createContext<SegmentedControlSelection | null>(null)\n\nconst SegmentedControlRoot = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Root>,\n SegmentedControlRootProps\n>(({ className, children, disabled = false, size = 'md', variant = 'default', orientation = 'horizontal', activationMode = 'manual', fill = false, value, defaultValue, onValueChange, ...props }, forwardedRef) => {\n const rootProps = extractProps(\n { className, disabled, orientation, size },\n segmentedControlPropDefs,\n )\n const innerRootRef = React.useRef<SegmentedControlRootElement | null>(null)\n const mergedRef = composeRefs(forwardedRef, innerRootRef)\n\n // Deselect guard (disallowEmptySelection): own the selection so the control\n // can never render with no active item. Radix fires \"\" when the active item\n // is clicked; the handler below swallows it and keeps the last value, and\n // the resolved value below keeps Radix controlled so its internal state can\n // never clear either.\n const [uncontrolledValue, setUncontrolledValue] = React.useState<string | undefined>(defaultValue)\n const resolvedValue = value ?? uncontrolledValue\n\n // Sliding indicator: Mantine-style measured pill rendered behind the active\n // item. The offset is a physical-pixel diff (active.left - root.left), which\n // is direction-agnostic and therefore RTL-correct without special-casing.\n // Measuring in layout effect positions the pill before first paint, and the\n // `indicatorLive` gate keeps `transition: none` until that first positioned\n // frame so mount never animates from the origin.\n const [indicator, setIndicator] = React.useState({ x: 0, y: 0, width: 0, height: 0 })\n const [indicatorLive, setIndicatorLive] = React.useState(false)\n\n const measureActive = React.useCallback((root: HTMLElement) => {\n const active = root.querySelector<HTMLElement>('[data-state=\"on\"]')\n\n if (!active) {\n return\n }\n\n const rootRect = root.getBoundingClientRect()\n const activeRect = active.getBoundingClientRect()\n // Border-box diffs are padding-box positioned: subtract the frame so the\n // wrapper never overshoots the content box (1-2px overflow summoned a\n // horizontal scrollbar on bordered variants).\n setIndicator({\n x: activeRect.left - rootRect.left - root.clientLeft,\n y: activeRect.top - rootRect.top - root.clientTop,\n width: activeRect.width,\n height: activeRect.height,\n })\n }, [])\n\n useIsomorphicLayoutEffect(() => {\n const root = innerRootRef.current\n\n if (!root) {\n return undefined\n }\n\n const measure = () => measureActive(root)\n\n measure()\n setIndicatorLive(true)\n\n if (typeof ResizeObserver === 'undefined') {\n return undefined\n }\n\n const observer = new ResizeObserver(measure)\n observer.observe(root)\n\n const active = root.querySelector('[data-state=\"on\"]')\n\n if (active) {\n observer.observe(active)\n }\n\n return () => observer.disconnect()\n }, [resolvedValue, measureActive])\n\n const handleValueChange = (nextValue: string) => {\n if (!nextValue) {\n return\n }\n\n if (value === undefined) {\n setUncontrolledValue(nextValue)\n }\n\n onValueChange?.(nextValue)\n }\n\n // Automatic activation: selection follows focus, so arrow-key navigation\n // selects without Enter. The focused value goes through the same guarded\n // setter, so focus can never empty the selection; landing on the\n // already-selected item is a no-op. Manual mode (default) ignores focus\n // and only selects on activation \u2014 use it when onValueChange drives side\n // effects that must not fire on focus. Each item reads this context in its\n // own onFocus (Radix strips the value prop from the DOM, so the root\n // cannot recover the focused value from the event target).\n const selection = React.useMemo<SegmentedControlSelection>(\n () => ({\n activationMode,\n disabled,\n selectedValue: resolvedValue,\n requestSelect: handleValueChange,\n }),\n [activationMode, disabled, resolvedValue, handleValueChange],\n )\n\n return (\n <ToggleGroupPrimitive.Root\n {...props}\n {...rootProps}\n ref={mergedRef}\n className={classNames(\n 'dsx-segmented-control',\n `dsx-segmented-control--${size}`,\n `dsx-segmented-control--${variant}`,\n fill && 'dsx-segmented-control--fill',\n className,\n )}\n type=\"single\"\n value={resolvedValue}\n onValueChange={handleValueChange}\n disabled={disabled}\n orientation={orientation}\n data-disabled={disabled || undefined}\n data-fill={fill || undefined}\n data-size={size}\n data-variant={variant}\n data-orientation={orientation}\n data-activation-mode={activationMode}\n >\n <SegmentedControlSelectionContext.Provider value={selection}>\n {children}\n </SegmentedControlSelectionContext.Provider>\n <span\n aria-hidden=\"true\"\n className=\"dsx-segmented-control__indicator\"\n style={\n orientation === 'vertical'\n ? {\n transform: `translateY(${indicator.y}px)`,\n height: indicator.height,\n transition: indicatorLive ? undefined : 'none',\n }\n : {\n transform: `translateX(${indicator.x}px)`,\n width: indicator.width,\n transition: indicatorLive ? undefined : 'none',\n }\n }\n />\n </ToggleGroupPrimitive.Root>\n )\n})\nSegmentedControlRoot.displayName = 'SegmentedControl'\n\ninterface SegmentedControlItemProps\n extends React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> {\n iconOnly?: boolean\n value: string\n}\n\nconst SegmentedControlItem = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Item>,\n SegmentedControlItemProps\n>(({ children, className, disabled, iconOnly = false, value, onFocus, ...props }, forwardedRef) => {\n const selection = React.useContext(SegmentedControlSelectionContext)\n\n const handleItemFocus: React.FocusEventHandler<React.ComponentRef<typeof ToggleGroupPrimitive.Item>> = (event) => {\n onFocus?.(event)\n\n if (!selection || selection.activationMode !== 'automatic') {\n return\n }\n\n if (selection.disabled || disabled || value === selection.selectedValue) {\n return\n }\n\n selection.requestSelect(value)\n }\n\n return (\n <ToggleGroupPrimitive.Item\n {...props}\n ref={forwardedRef}\n value={value}\n className={classNames('dsx-segmented-control__item', className)}\n disabled={disabled}\n data-disabled={disabled || undefined}\n data-icon-only={iconOnly || undefined}\n onFocus={handleItemFocus}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n})\nSegmentedControlItem.displayName = 'SegmentedControlItem'\n\nconst SegmentedControl: typeof SegmentedControlRoot & {\n Item: typeof SegmentedControlItem\n} = Object.assign(SegmentedControlRoot, {\n Item: SegmentedControlItem,\n})\n\nexport { SegmentedControl, SegmentedControlItem, SegmentedControlRoot }\nexport type { SegmentedControlItemProps, SegmentedControlRootProps }\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAuB;AACvB,wBAAuB;AACvB,2BAAsC;AAEtC,0BAA6B;AAC7B,8BAAyC;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react'\nimport classNames from 'classnames'\nimport * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { segmentedControlPropDefs } from './segmentedControl.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype SegmentedControlRootOwnProps = GetPropDefTypes<typeof segmentedControlPropDefs> & {\n value?: string\n defaultValue?: string\n onValueChange?(value: string): void\n}\n\ntype SegmentedControlRootProps = React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>\n & SegmentedControlRootOwnProps\n\ntype SegmentedControlRootElement = React.ComponentRef<typeof ToggleGroupPrimitive.Root>\n\nfunction composeRefs<T>(...refs: Array<React.Ref<T> | undefined>) {\n return (node: T | null) => {\n for (const ref of refs) {\n if (!ref) {\n continue\n }\n\n if (typeof ref === 'function') {\n ref(node)\n continue\n }\n\n ;(ref as { current: T | null }).current = node\n }\n }\n}\n\nconst useIsomorphicLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\ninterface SegmentedControlSelection {\n activationMode: 'manual' | 'automatic'\n disabled: boolean\n selectedValue: string | undefined\n requestSelect(value: string): void\n}\n\nconst SegmentedControlSelectionContext = React.createContext<SegmentedControlSelection | null>(null)\n\nconst SegmentedControlRoot = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Root>,\n SegmentedControlRootProps\n>(({ className, children, disabled = false, size = 'md', variant = 'default', orientation = 'horizontal', activationMode = 'manual', fill = false, value, defaultValue, onValueChange, ...props }, forwardedRef) => {\n const rootProps = extractProps(\n { className, disabled, orientation, size },\n segmentedControlPropDefs,\n )\n const innerRootRef = React.useRef<SegmentedControlRootElement | null>(null)\n const mergedRef = composeRefs(forwardedRef, innerRootRef)\n\n // Deselect guard (disallowEmptySelection): own the selection so the control\n // can never render with no active item. Radix fires \"\" when the active item\n // is clicked; the handler below swallows it and keeps the last value, and\n // the resolved value below keeps Radix controlled so its internal state can\n // never clear either.\n const [uncontrolledValue, setUncontrolledValue] = React.useState<string | undefined>(defaultValue)\n const resolvedValue = value ?? uncontrolledValue\n\n // Sliding indicator: Mantine-style measured pill rendered behind the active\n // item. The offset is a physical-pixel diff (active.left - root.left), which\n // is direction-agnostic and therefore RTL-correct without special-casing.\n // Measuring in layout effect positions the pill before first paint, and the\n // `indicatorLive` gate keeps `transition: none` until that first positioned\n // frame so mount never animates from the origin.\n const [indicator, setIndicator] = React.useState({ x: 0, y: 0, width: 0, height: 0 })\n const [indicatorLive, setIndicatorLive] = React.useState(false)\n\n const measureActive = React.useCallback((root: HTMLElement) => {\n const active = root.querySelector<HTMLElement>('[data-state=\"on\"]')\n\n if (!active) {\n return\n }\n\n const rootRect = root.getBoundingClientRect()\n const activeRect = active.getBoundingClientRect()\n // Border-box diffs are padding-box positioned: subtract the frame so the\n // wrapper never overshoots the content box (1-2px overflow summoned a\n // horizontal scrollbar on bordered variants). Add scroll offsets to convert\n // viewport coordinates into the indicator's content coordinates; otherwise\n // a scrolled selection paints behind the preceding item.\n setIndicator({\n x: activeRect.left - rootRect.left - root.clientLeft + root.scrollLeft,\n y: activeRect.top - rootRect.top - root.clientTop + root.scrollTop,\n width: activeRect.width,\n height: activeRect.height,\n })\n }, [])\n\n useIsomorphicLayoutEffect(() => {\n const root = innerRootRef.current\n\n if (!root) {\n return undefined\n }\n\n const measure = () => measureActive(root)\n\n measure()\n setIndicatorLive(true)\n\n if (typeof ResizeObserver === 'undefined') {\n return undefined\n }\n\n const observer = new ResizeObserver(measure)\n observer.observe(root)\n\n const active = root.querySelector('[data-state=\"on\"]')\n\n if (active) {\n observer.observe(active)\n }\n\n return () => observer.disconnect()\n }, [resolvedValue, measureActive])\n\n const handleValueChange = (nextValue: string) => {\n if (!nextValue) {\n return\n }\n\n if (value === undefined) {\n setUncontrolledValue(nextValue)\n }\n\n onValueChange?.(nextValue)\n }\n\n // Automatic activation: selection follows focus, so arrow-key navigation\n // selects without Enter. The focused value goes through the same guarded\n // setter, so focus can never empty the selection; landing on the\n // already-selected item is a no-op. Manual mode (default) ignores focus\n // and only selects on activation \u2014 use it when onValueChange drives side\n // effects that must not fire on focus. Each item reads this context in its\n // own onFocus (Radix strips the value prop from the DOM, so the root\n // cannot recover the focused value from the event target).\n const selection = React.useMemo<SegmentedControlSelection>(\n () => ({\n activationMode,\n disabled,\n selectedValue: resolvedValue,\n requestSelect: handleValueChange,\n }),\n [activationMode, disabled, resolvedValue, handleValueChange],\n )\n\n return (\n <ToggleGroupPrimitive.Root\n {...props}\n {...rootProps}\n ref={mergedRef}\n className={classNames(\n 'dsx-segmented-control',\n `dsx-segmented-control--${size}`,\n `dsx-segmented-control--${variant}`,\n fill && 'dsx-segmented-control--fill',\n className,\n )}\n type=\"single\"\n value={resolvedValue}\n onValueChange={handleValueChange}\n disabled={disabled}\n orientation={orientation}\n data-disabled={disabled || undefined}\n data-fill={fill || undefined}\n data-size={size}\n data-variant={variant}\n data-orientation={orientation}\n data-activation-mode={activationMode}\n >\n <SegmentedControlSelectionContext.Provider value={selection}>\n {children}\n </SegmentedControlSelectionContext.Provider>\n <span\n aria-hidden=\"true\"\n className=\"dsx-segmented-control__indicator\"\n style={\n orientation === 'vertical'\n ? {\n transform: `translateY(${indicator.y}px)`,\n height: indicator.height,\n transition: indicatorLive ? undefined : 'none',\n }\n : {\n transform: `translateX(${indicator.x}px)`,\n width: indicator.width,\n transition: indicatorLive ? undefined : 'none',\n }\n }\n />\n </ToggleGroupPrimitive.Root>\n )\n})\nSegmentedControlRoot.displayName = 'SegmentedControl'\n\ninterface SegmentedControlItemProps\n extends React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> {\n iconOnly?: boolean\n value: string\n}\n\nconst SegmentedControlItem = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Item>,\n SegmentedControlItemProps\n>(({ children, className, disabled, iconOnly = false, value, onFocus, ...props }, forwardedRef) => {\n const selection = React.useContext(SegmentedControlSelectionContext)\n\n const handleItemFocus: React.FocusEventHandler<React.ComponentRef<typeof ToggleGroupPrimitive.Item>> = (event) => {\n onFocus?.(event)\n\n if (!selection || selection.activationMode !== 'automatic') {\n return\n }\n\n if (selection.disabled || disabled || value === selection.selectedValue) {\n return\n }\n\n selection.requestSelect(value)\n }\n\n return (\n <ToggleGroupPrimitive.Item\n {...props}\n ref={forwardedRef}\n value={value}\n className={classNames('dsx-segmented-control__item', className)}\n disabled={disabled}\n data-disabled={disabled || undefined}\n data-icon-only={iconOnly || undefined}\n onFocus={handleItemFocus}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n})\nSegmentedControlItem.displayName = 'SegmentedControlItem'\n\nconst SegmentedControl: typeof SegmentedControlRoot & {\n Item: typeof SegmentedControlItem\n} = Object.assign(SegmentedControlRoot, {\n Item: SegmentedControlItem,\n})\n\nexport { SegmentedControl, SegmentedControlItem, SegmentedControlRoot }\nexport type { SegmentedControlItemProps, SegmentedControlRootProps }\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["classNames"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.d.cts","sourceRoot":"","sources":["../../../src/components/segmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,4BAA4B,GAAG,eAAe,CAAC,OAAO,wBAAwB,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,KAAK,yBAAyB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAC7F,4BAA4B,CAAA;AAgChC,QAAA,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"SegmentedControl.d.cts","sourceRoot":"","sources":["../../../src/components/segmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,4BAA4B,GAAG,eAAe,CAAC,OAAO,wBAAwB,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,KAAK,yBAAyB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAC7F,4BAA4B,CAAA;AAgChC,QAAA,MAAM,oBAAoB,kGA0JxB,CAAA;AAGF,UAAU,yBACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,QAAA,MAAM,oBAAoB,qGAkCxB,CAAA;AAGF,QAAA,MAAM,gBAAgB,EAAE,OAAO,oBAAoB,GAAG;IACpD,IAAI,EAAE,OAAO,oBAAoB,CAAA;CAGjC,CAAA;AAEF,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAA;AACvE,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.d.mts","sourceRoot":"","sources":["../../../src/components/segmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,4BAA4B,GAAG,eAAe,CAAC,OAAO,wBAAwB,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,KAAK,yBAAyB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAC7F,4BAA4B,CAAA;AAgChC,QAAA,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"SegmentedControl.d.mts","sourceRoot":"","sources":["../../../src/components/segmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,4BAA4B,GAAG,eAAe,CAAC,OAAO,wBAAwB,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,KAAK,yBAAyB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAC7F,4BAA4B,CAAA;AAgChC,QAAA,MAAM,oBAAoB,kGA0JxB,CAAA;AAGF,UAAU,yBACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,QAAA,MAAM,oBAAoB,qGAkCxB,CAAA;AAGF,QAAA,MAAM,gBAAgB,EAAE,OAAO,oBAAoB,GAAG;IACpD,IAAI,EAAE,OAAO,oBAAoB,CAAA;CAGjC,CAAA;AAEF,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAA;AACvE,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../../src/components/segmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,4BAA4B,GAAG,eAAe,CAAC,OAAO,wBAAwB,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,KAAK,yBAAyB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAC7F,4BAA4B,CAAA;AAgChC,QAAA,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"SegmentedControl.d.ts","sourceRoot":"","sources":["../../../src/components/segmentedControl/SegmentedControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,oBAAoB,MAAM,8BAA8B,CAAA;AAGpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,4BAA4B,GAAG,eAAe,CAAC,OAAO,wBAAwB,CAAC,GAAG;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,KAAK,yBAAyB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAC7F,4BAA4B,CAAA;AAgChC,QAAA,MAAM,oBAAoB,kGA0JxB,CAAA;AAGF,UAAU,yBACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd;AAED,QAAA,MAAM,oBAAoB,qGAkCxB,CAAA;AAGF,QAAA,MAAM,gBAAgB,EAAE,OAAO,oBAAoB,GAAG;IACpD,IAAI,EAAE,OAAO,oBAAoB,CAAA;CAGjC,CAAA;AAEF,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAA;AACvE,YAAY,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAA"}
|
|
@@ -40,8 +40,8 @@ const SegmentedControlRoot = React.forwardRef(({ className, children, disabled =
|
|
|
40
40
|
const rootRect = root.getBoundingClientRect();
|
|
41
41
|
const activeRect = active.getBoundingClientRect();
|
|
42
42
|
setIndicator({
|
|
43
|
-
x: activeRect.left - rootRect.left - root.clientLeft,
|
|
44
|
-
y: activeRect.top - rootRect.top - root.clientTop,
|
|
43
|
+
x: activeRect.left - rootRect.left - root.clientLeft + root.scrollLeft,
|
|
44
|
+
y: activeRect.top - rootRect.top - root.clientTop + root.scrollTop,
|
|
45
45
|
width: activeRect.width,
|
|
46
46
|
height: activeRect.height
|
|
47
47
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/segmentedControl/SegmentedControl.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react'\nimport classNames from 'classnames'\nimport * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { segmentedControlPropDefs } from './segmentedControl.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype SegmentedControlRootOwnProps = GetPropDefTypes<typeof segmentedControlPropDefs> & {\n value?: string\n defaultValue?: string\n onValueChange?(value: string): void\n}\n\ntype SegmentedControlRootProps = React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>\n & SegmentedControlRootOwnProps\n\ntype SegmentedControlRootElement = React.ComponentRef<typeof ToggleGroupPrimitive.Root>\n\nfunction composeRefs<T>(...refs: Array<React.Ref<T> | undefined>) {\n return (node: T | null) => {\n for (const ref of refs) {\n if (!ref) {\n continue\n }\n\n if (typeof ref === 'function') {\n ref(node)\n continue\n }\n\n ;(ref as { current: T | null }).current = node\n }\n }\n}\n\nconst useIsomorphicLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\ninterface SegmentedControlSelection {\n activationMode: 'manual' | 'automatic'\n disabled: boolean\n selectedValue: string | undefined\n requestSelect(value: string): void\n}\n\nconst SegmentedControlSelectionContext = React.createContext<SegmentedControlSelection | null>(null)\n\nconst SegmentedControlRoot = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Root>,\n SegmentedControlRootProps\n>(({ className, children, disabled = false, size = 'md', variant = 'default', orientation = 'horizontal', activationMode = 'manual', fill = false, value, defaultValue, onValueChange, ...props }, forwardedRef) => {\n const rootProps = extractProps(\n { className, disabled, orientation, size },\n segmentedControlPropDefs,\n )\n const innerRootRef = React.useRef<SegmentedControlRootElement | null>(null)\n const mergedRef = composeRefs(forwardedRef, innerRootRef)\n\n // Deselect guard (disallowEmptySelection): own the selection so the control\n // can never render with no active item. Radix fires \"\" when the active item\n // is clicked; the handler below swallows it and keeps the last value, and\n // the resolved value below keeps Radix controlled so its internal state can\n // never clear either.\n const [uncontrolledValue, setUncontrolledValue] = React.useState<string | undefined>(defaultValue)\n const resolvedValue = value ?? uncontrolledValue\n\n // Sliding indicator: Mantine-style measured pill rendered behind the active\n // item. The offset is a physical-pixel diff (active.left - root.left), which\n // is direction-agnostic and therefore RTL-correct without special-casing.\n // Measuring in layout effect positions the pill before first paint, and the\n // `indicatorLive` gate keeps `transition: none` until that first positioned\n // frame so mount never animates from the origin.\n const [indicator, setIndicator] = React.useState({ x: 0, y: 0, width: 0, height: 0 })\n const [indicatorLive, setIndicatorLive] = React.useState(false)\n\n const measureActive = React.useCallback((root: HTMLElement) => {\n const active = root.querySelector<HTMLElement>('[data-state=\"on\"]')\n\n if (!active) {\n return\n }\n\n const rootRect = root.getBoundingClientRect()\n const activeRect = active.getBoundingClientRect()\n // Border-box diffs are padding-box positioned: subtract the frame so the\n // wrapper never overshoots the content box (1-2px overflow summoned a\n // horizontal scrollbar on bordered variants).\n setIndicator({\n x: activeRect.left - rootRect.left - root.clientLeft,\n y: activeRect.top - rootRect.top - root.clientTop,\n width: activeRect.width,\n height: activeRect.height,\n })\n }, [])\n\n useIsomorphicLayoutEffect(() => {\n const root = innerRootRef.current\n\n if (!root) {\n return undefined\n }\n\n const measure = () => measureActive(root)\n\n measure()\n setIndicatorLive(true)\n\n if (typeof ResizeObserver === 'undefined') {\n return undefined\n }\n\n const observer = new ResizeObserver(measure)\n observer.observe(root)\n\n const active = root.querySelector('[data-state=\"on\"]')\n\n if (active) {\n observer.observe(active)\n }\n\n return () => observer.disconnect()\n }, [resolvedValue, measureActive])\n\n const handleValueChange = (nextValue: string) => {\n if (!nextValue) {\n return\n }\n\n if (value === undefined) {\n setUncontrolledValue(nextValue)\n }\n\n onValueChange?.(nextValue)\n }\n\n // Automatic activation: selection follows focus, so arrow-key navigation\n // selects without Enter. The focused value goes through the same guarded\n // setter, so focus can never empty the selection; landing on the\n // already-selected item is a no-op. Manual mode (default) ignores focus\n // and only selects on activation \u2014 use it when onValueChange drives side\n // effects that must not fire on focus. Each item reads this context in its\n // own onFocus (Radix strips the value prop from the DOM, so the root\n // cannot recover the focused value from the event target).\n const selection = React.useMemo<SegmentedControlSelection>(\n () => ({\n activationMode,\n disabled,\n selectedValue: resolvedValue,\n requestSelect: handleValueChange,\n }),\n [activationMode, disabled, resolvedValue, handleValueChange],\n )\n\n return (\n <ToggleGroupPrimitive.Root\n {...props}\n {...rootProps}\n ref={mergedRef}\n className={classNames(\n 'dsx-segmented-control',\n `dsx-segmented-control--${size}`,\n `dsx-segmented-control--${variant}`,\n fill && 'dsx-segmented-control--fill',\n className,\n )}\n type=\"single\"\n value={resolvedValue}\n onValueChange={handleValueChange}\n disabled={disabled}\n orientation={orientation}\n data-disabled={disabled || undefined}\n data-fill={fill || undefined}\n data-size={size}\n data-variant={variant}\n data-orientation={orientation}\n data-activation-mode={activationMode}\n >\n <SegmentedControlSelectionContext.Provider value={selection}>\n {children}\n </SegmentedControlSelectionContext.Provider>\n <span\n aria-hidden=\"true\"\n className=\"dsx-segmented-control__indicator\"\n style={\n orientation === 'vertical'\n ? {\n transform: `translateY(${indicator.y}px)`,\n height: indicator.height,\n transition: indicatorLive ? undefined : 'none',\n }\n : {\n transform: `translateX(${indicator.x}px)`,\n width: indicator.width,\n transition: indicatorLive ? undefined : 'none',\n }\n }\n />\n </ToggleGroupPrimitive.Root>\n )\n})\nSegmentedControlRoot.displayName = 'SegmentedControl'\n\ninterface SegmentedControlItemProps\n extends React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> {\n iconOnly?: boolean\n value: string\n}\n\nconst SegmentedControlItem = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Item>,\n SegmentedControlItemProps\n>(({ children, className, disabled, iconOnly = false, value, onFocus, ...props }, forwardedRef) => {\n const selection = React.useContext(SegmentedControlSelectionContext)\n\n const handleItemFocus: React.FocusEventHandler<React.ComponentRef<typeof ToggleGroupPrimitive.Item>> = (event) => {\n onFocus?.(event)\n\n if (!selection || selection.activationMode !== 'automatic') {\n return\n }\n\n if (selection.disabled || disabled || value === selection.selectedValue) {\n return\n }\n\n selection.requestSelect(value)\n }\n\n return (\n <ToggleGroupPrimitive.Item\n {...props}\n ref={forwardedRef}\n value={value}\n className={classNames('dsx-segmented-control__item', className)}\n disabled={disabled}\n data-disabled={disabled || undefined}\n data-icon-only={iconOnly || undefined}\n onFocus={handleItemFocus}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n})\nSegmentedControlItem.displayName = 'SegmentedControlItem'\n\nconst SegmentedControl: typeof SegmentedControlRoot & {\n Item: typeof SegmentedControlItem\n} = Object.assign(SegmentedControlRoot, {\n Item: SegmentedControlItem,\n})\n\nexport { SegmentedControl, SegmentedControlItem, SegmentedControlRoot }\nexport type { SegmentedControlItemProps, SegmentedControlRootProps }\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;AACvB,OAAO,gBAAgB;AACvB,YAAY,0BAA0B;AAEtC,SAAS,oBAAoB;AAC7B,SAAS,gCAAgC;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react'\nimport classNames from 'classnames'\nimport * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { segmentedControlPropDefs } from './segmentedControl.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype SegmentedControlRootOwnProps = GetPropDefTypes<typeof segmentedControlPropDefs> & {\n value?: string\n defaultValue?: string\n onValueChange?(value: string): void\n}\n\ntype SegmentedControlRootProps = React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root>\n & SegmentedControlRootOwnProps\n\ntype SegmentedControlRootElement = React.ComponentRef<typeof ToggleGroupPrimitive.Root>\n\nfunction composeRefs<T>(...refs: Array<React.Ref<T> | undefined>) {\n return (node: T | null) => {\n for (const ref of refs) {\n if (!ref) {\n continue\n }\n\n if (typeof ref === 'function') {\n ref(node)\n continue\n }\n\n ;(ref as { current: T | null }).current = node\n }\n }\n}\n\nconst useIsomorphicLayoutEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect\n\ninterface SegmentedControlSelection {\n activationMode: 'manual' | 'automatic'\n disabled: boolean\n selectedValue: string | undefined\n requestSelect(value: string): void\n}\n\nconst SegmentedControlSelectionContext = React.createContext<SegmentedControlSelection | null>(null)\n\nconst SegmentedControlRoot = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Root>,\n SegmentedControlRootProps\n>(({ className, children, disabled = false, size = 'md', variant = 'default', orientation = 'horizontal', activationMode = 'manual', fill = false, value, defaultValue, onValueChange, ...props }, forwardedRef) => {\n const rootProps = extractProps(\n { className, disabled, orientation, size },\n segmentedControlPropDefs,\n )\n const innerRootRef = React.useRef<SegmentedControlRootElement | null>(null)\n const mergedRef = composeRefs(forwardedRef, innerRootRef)\n\n // Deselect guard (disallowEmptySelection): own the selection so the control\n // can never render with no active item. Radix fires \"\" when the active item\n // is clicked; the handler below swallows it and keeps the last value, and\n // the resolved value below keeps Radix controlled so its internal state can\n // never clear either.\n const [uncontrolledValue, setUncontrolledValue] = React.useState<string | undefined>(defaultValue)\n const resolvedValue = value ?? uncontrolledValue\n\n // Sliding indicator: Mantine-style measured pill rendered behind the active\n // item. The offset is a physical-pixel diff (active.left - root.left), which\n // is direction-agnostic and therefore RTL-correct without special-casing.\n // Measuring in layout effect positions the pill before first paint, and the\n // `indicatorLive` gate keeps `transition: none` until that first positioned\n // frame so mount never animates from the origin.\n const [indicator, setIndicator] = React.useState({ x: 0, y: 0, width: 0, height: 0 })\n const [indicatorLive, setIndicatorLive] = React.useState(false)\n\n const measureActive = React.useCallback((root: HTMLElement) => {\n const active = root.querySelector<HTMLElement>('[data-state=\"on\"]')\n\n if (!active) {\n return\n }\n\n const rootRect = root.getBoundingClientRect()\n const activeRect = active.getBoundingClientRect()\n // Border-box diffs are padding-box positioned: subtract the frame so the\n // wrapper never overshoots the content box (1-2px overflow summoned a\n // horizontal scrollbar on bordered variants). Add scroll offsets to convert\n // viewport coordinates into the indicator's content coordinates; otherwise\n // a scrolled selection paints behind the preceding item.\n setIndicator({\n x: activeRect.left - rootRect.left - root.clientLeft + root.scrollLeft,\n y: activeRect.top - rootRect.top - root.clientTop + root.scrollTop,\n width: activeRect.width,\n height: activeRect.height,\n })\n }, [])\n\n useIsomorphicLayoutEffect(() => {\n const root = innerRootRef.current\n\n if (!root) {\n return undefined\n }\n\n const measure = () => measureActive(root)\n\n measure()\n setIndicatorLive(true)\n\n if (typeof ResizeObserver === 'undefined') {\n return undefined\n }\n\n const observer = new ResizeObserver(measure)\n observer.observe(root)\n\n const active = root.querySelector('[data-state=\"on\"]')\n\n if (active) {\n observer.observe(active)\n }\n\n return () => observer.disconnect()\n }, [resolvedValue, measureActive])\n\n const handleValueChange = (nextValue: string) => {\n if (!nextValue) {\n return\n }\n\n if (value === undefined) {\n setUncontrolledValue(nextValue)\n }\n\n onValueChange?.(nextValue)\n }\n\n // Automatic activation: selection follows focus, so arrow-key navigation\n // selects without Enter. The focused value goes through the same guarded\n // setter, so focus can never empty the selection; landing on the\n // already-selected item is a no-op. Manual mode (default) ignores focus\n // and only selects on activation \u2014 use it when onValueChange drives side\n // effects that must not fire on focus. Each item reads this context in its\n // own onFocus (Radix strips the value prop from the DOM, so the root\n // cannot recover the focused value from the event target).\n const selection = React.useMemo<SegmentedControlSelection>(\n () => ({\n activationMode,\n disabled,\n selectedValue: resolvedValue,\n requestSelect: handleValueChange,\n }),\n [activationMode, disabled, resolvedValue, handleValueChange],\n )\n\n return (\n <ToggleGroupPrimitive.Root\n {...props}\n {...rootProps}\n ref={mergedRef}\n className={classNames(\n 'dsx-segmented-control',\n `dsx-segmented-control--${size}`,\n `dsx-segmented-control--${variant}`,\n fill && 'dsx-segmented-control--fill',\n className,\n )}\n type=\"single\"\n value={resolvedValue}\n onValueChange={handleValueChange}\n disabled={disabled}\n orientation={orientation}\n data-disabled={disabled || undefined}\n data-fill={fill || undefined}\n data-size={size}\n data-variant={variant}\n data-orientation={orientation}\n data-activation-mode={activationMode}\n >\n <SegmentedControlSelectionContext.Provider value={selection}>\n {children}\n </SegmentedControlSelectionContext.Provider>\n <span\n aria-hidden=\"true\"\n className=\"dsx-segmented-control__indicator\"\n style={\n orientation === 'vertical'\n ? {\n transform: `translateY(${indicator.y}px)`,\n height: indicator.height,\n transition: indicatorLive ? undefined : 'none',\n }\n : {\n transform: `translateX(${indicator.x}px)`,\n width: indicator.width,\n transition: indicatorLive ? undefined : 'none',\n }\n }\n />\n </ToggleGroupPrimitive.Root>\n )\n})\nSegmentedControlRoot.displayName = 'SegmentedControl'\n\ninterface SegmentedControlItemProps\n extends React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> {\n iconOnly?: boolean\n value: string\n}\n\nconst SegmentedControlItem = React.forwardRef<\n React.ComponentRef<typeof ToggleGroupPrimitive.Item>,\n SegmentedControlItemProps\n>(({ children, className, disabled, iconOnly = false, value, onFocus, ...props }, forwardedRef) => {\n const selection = React.useContext(SegmentedControlSelectionContext)\n\n const handleItemFocus: React.FocusEventHandler<React.ComponentRef<typeof ToggleGroupPrimitive.Item>> = (event) => {\n onFocus?.(event)\n\n if (!selection || selection.activationMode !== 'automatic') {\n return\n }\n\n if (selection.disabled || disabled || value === selection.selectedValue) {\n return\n }\n\n selection.requestSelect(value)\n }\n\n return (\n <ToggleGroupPrimitive.Item\n {...props}\n ref={forwardedRef}\n value={value}\n className={classNames('dsx-segmented-control__item', className)}\n disabled={disabled}\n data-disabled={disabled || undefined}\n data-icon-only={iconOnly || undefined}\n onFocus={handleItemFocus}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n})\nSegmentedControlItem.displayName = 'SegmentedControlItem'\n\nconst SegmentedControl: typeof SegmentedControlRoot & {\n Item: typeof SegmentedControlItem\n} = Object.assign(SegmentedControlRoot, {\n Item: SegmentedControlItem,\n})\n\nexport { SegmentedControl, SegmentedControlItem, SegmentedControlRoot }\nexport type { SegmentedControlItemProps, SegmentedControlRootProps }\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -19,18 +19,12 @@
|
|
|
19
19
|
margin-inline: var(--dsx-space-xs);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
.dsx-separator[data-orientation='horizontal'][data-size='sm'] { height: var(--dsx-border-width-sm); }
|
|
23
|
-
.dsx-separator[data-orientation='horizontal'][data-size='lg'] { height: var(--dsx-border-width-lg); }
|
|
24
|
-
|
|
25
|
-
.dsx-separator[data-orientation='vertical'][data-size='sm'] { width: var(--dsx-border-width-sm); }
|
|
26
|
-
.dsx-separator[data-orientation='vertical'][data-size='lg'] { width: var(--dsx-border-width-lg); }
|
|
27
|
-
|
|
28
22
|
.dsx-separator--decorative {
|
|
29
23
|
background: var(--dsx-color-separator-muted);
|
|
30
24
|
}
|
|
31
25
|
|
|
32
|
-
/*
|
|
33
|
-
|
|
26
|
+
/* Explicit accent rules use the decorative role; readable ink and selected
|
|
27
|
+
control indicators retain their own accent-indicator role. */
|
|
34
28
|
.dsx-separator[data-accent-color] {
|
|
35
|
-
background: var(--dsx-color-accent-
|
|
29
|
+
background: var(--dsx-color-accent-border);
|
|
36
30
|
}
|
|
@@ -167,6 +167,7 @@ function useSidebar() {
|
|
|
167
167
|
},
|
|
168
168
|
isMobile: false,
|
|
169
169
|
mobile: "none",
|
|
170
|
+
mobileTrigger: true,
|
|
170
171
|
sidebarId: void 0,
|
|
171
172
|
collapsible: "offcanvas",
|
|
172
173
|
manualToggleRef: { current: false },
|
|
@@ -174,7 +175,8 @@ function useSidebar() {
|
|
|
174
175
|
recoveryRailRef: { current: null },
|
|
175
176
|
rootRef: { current: null },
|
|
176
177
|
defaultSubmenuMode: "click",
|
|
177
|
-
submenuOpenOnActive: true
|
|
178
|
+
submenuOpenOnActive: true,
|
|
179
|
+
variant: "default"
|
|
178
180
|
};
|
|
179
181
|
}
|
|
180
182
|
function useMergedRef(...refs) {
|
|
@@ -254,8 +256,10 @@ const SidebarProvider = React.forwardRef((props, forwardedRef) => {
|
|
|
254
256
|
storage = "localStorage",
|
|
255
257
|
toggleShortcut = true,
|
|
256
258
|
mobile = "sheet",
|
|
259
|
+
mobileTrigger = true,
|
|
257
260
|
mobileBreakpoint = 768,
|
|
258
261
|
collapsible = "offcanvas",
|
|
262
|
+
variant = "default",
|
|
259
263
|
hoverExpand = false,
|
|
260
264
|
previewOpen = false,
|
|
261
265
|
nested = false,
|
|
@@ -338,6 +342,7 @@ const SidebarProvider = React.forwardRef((props, forwardedRef) => {
|
|
|
338
342
|
}
|
|
339
343
|
}, [isMobile]);
|
|
340
344
|
const isMobileMode = mobile !== "none" && isMobile;
|
|
345
|
+
const effectiveVariant = variant === "floating" && !isMobileMode ? "floating" : "default";
|
|
341
346
|
const canPreview = hoverExpand && collapsible === "icon" && !isMobileMode;
|
|
342
347
|
const effectivePreviewExpanded = canPreview && (previewExpanded || previewOpen);
|
|
343
348
|
const effectiveExpanded = persisted.expanded || effectivePreviewExpanded;
|
|
@@ -363,6 +368,7 @@ const SidebarProvider = React.forwardRef((props, forwardedRef) => {
|
|
|
363
368
|
setMobileSheetOpen,
|
|
364
369
|
isMobile: isMobileMode,
|
|
365
370
|
mobile,
|
|
371
|
+
mobileTrigger,
|
|
366
372
|
sidebarId,
|
|
367
373
|
collapsible,
|
|
368
374
|
manualToggleRef,
|
|
@@ -370,9 +376,10 @@ const SidebarProvider = React.forwardRef((props, forwardedRef) => {
|
|
|
370
376
|
recoveryRailRef,
|
|
371
377
|
rootRef,
|
|
372
378
|
defaultSubmenuMode,
|
|
373
|
-
submenuOpenOnActive
|
|
379
|
+
submenuOpenOnActive,
|
|
380
|
+
variant: effectiveVariant
|
|
374
381
|
}),
|
|
375
|
-
[effectiveExpanded, persisted.expanded, persisted.setExpanded, effectivePreviewExpanded, canPreview, mobileSheetOpen, isMobileMode, mobile, sidebarId, collapsible, defaultSubmenuMode, submenuOpenOnActive]
|
|
382
|
+
[effectiveExpanded, persisted.expanded, persisted.setExpanded, effectivePreviewExpanded, canPreview, mobileSheetOpen, isMobileMode, mobile, mobileTrigger, sidebarId, collapsible, defaultSubmenuMode, submenuOpenOnActive, effectiveVariant]
|
|
376
383
|
);
|
|
377
384
|
const nestedCounterRef = React.useRef(0);
|
|
378
385
|
const desktopChildren = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SidebarNestedContext.Provider, { value: { counter: nestedCounterRef, isActive: nested }, children });
|
|
@@ -387,6 +394,7 @@ const SidebarProvider = React.forwardRef((props, forwardedRef) => {
|
|
|
387
394
|
"data-preview-expanded": effectivePreviewExpanded ? "true" : "false",
|
|
388
395
|
"data-pinned-state": getSidebarState(persisted.expanded),
|
|
389
396
|
"data-transitions-ready": transitionsReady ? "true" : "false",
|
|
397
|
+
"data-variant": effectiveVariant,
|
|
390
398
|
...providerProps,
|
|
391
399
|
suppressHydrationWarning: true,
|
|
392
400
|
children: [
|
|
@@ -433,6 +441,7 @@ const SidebarRoot = React.forwardRef((props, forwardedRef) => {
|
|
|
433
441
|
},
|
|
434
442
|
isMobile: false,
|
|
435
443
|
mobile: "none",
|
|
444
|
+
mobileTrigger: true,
|
|
436
445
|
sidebarId: void 0,
|
|
437
446
|
collapsible: "offcanvas",
|
|
438
447
|
manualToggleRef: { current: false },
|
|
@@ -440,7 +449,8 @@ const SidebarRoot = React.forwardRef((props, forwardedRef) => {
|
|
|
440
449
|
recoveryRailRef: { current: null },
|
|
441
450
|
rootRef: { current: null },
|
|
442
451
|
defaultSubmenuMode: "click",
|
|
443
|
-
submenuOpenOnActive: true
|
|
452
|
+
submenuOpenOnActive: true,
|
|
453
|
+
variant: "default"
|
|
444
454
|
};
|
|
445
455
|
const { className, ...sidebarProps } = (0, import_extractProps.extractProps)(
|
|
446
456
|
{
|
|
@@ -544,7 +554,7 @@ const SidebarRoot = React.forwardRef((props, forwardedRef) => {
|
|
|
544
554
|
} = sidebarProps;
|
|
545
555
|
const isMobileSheetMode = value.isMobile && value.mobile === "sheet";
|
|
546
556
|
const content = isMobileSheetMode ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(React.Suspense, { fallback: null, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Drawer, { open: value.mobileSheetOpen, onOpenChange: value.setMobileSheetOpen, direction: "left", children: [
|
|
547
|
-
!value.mobileSheetOpen && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DrawerTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
557
|
+
!value.mobileSheetOpen && value.mobileTrigger && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DrawerTrigger, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
548
558
|
"button",
|
|
549
559
|
{
|
|
550
560
|
type: "button",
|
|
@@ -568,6 +578,7 @@ const SidebarRoot = React.forwardRef((props, forwardedRef) => {
|
|
|
568
578
|
"data-preview-expanded": "false",
|
|
569
579
|
"data-pinned-state": getSidebarState(value.pinnedExpanded),
|
|
570
580
|
"data-effect": effect,
|
|
581
|
+
"data-variant": value.variant,
|
|
571
582
|
"data-nested": isNestedInstance ? "true" : void 0,
|
|
572
583
|
"data-slot": "sidebar",
|
|
573
584
|
"aria-label": "Sidebar",
|
|
@@ -588,6 +599,7 @@ const SidebarRoot = React.forwardRef((props, forwardedRef) => {
|
|
|
588
599
|
"data-preview-expanded": value.previewExpanded ? "true" : "false",
|
|
589
600
|
"data-pinned-state": getSidebarState(value.pinnedExpanded),
|
|
590
601
|
"data-effect": effect,
|
|
602
|
+
"data-variant": value.variant,
|
|
591
603
|
"data-nested": isNestedInstance ? "true" : void 0,
|
|
592
604
|
"data-slot": "sidebar",
|
|
593
605
|
"aria-label": "Sidebar",
|