@d4gger/design-system 3.0.0 → 4.0.0
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/{components/controlGroup/ControlGroup.cjs → _internal/floatingLayer.cjs} +11 -26
- package/dist/_internal/floatingLayer.cjs.map +7 -0
- package/dist/_internal/floatingLayer.d.cts +28 -0
- package/dist/_internal/floatingLayer.d.cts.map +1 -0
- package/dist/_internal/floatingLayer.d.mts +28 -0
- package/dist/_internal/floatingLayer.d.mts.map +1 -0
- package/dist/_internal/floatingLayer.d.ts +28 -0
- package/dist/_internal/floatingLayer.d.ts.map +1 -0
- package/dist/_internal/floatingLayer.js +11 -0
- package/dist/_internal/floatingLayer.js.map +7 -0
- package/dist/components/accordion.css +9 -2
- package/dist/components/alert/Alert.cjs +11 -7
- package/dist/components/alert/Alert.cjs.map +2 -2
- package/dist/components/alert/Alert.d.cts.map +1 -1
- package/dist/components/alert/Alert.d.mts.map +1 -1
- package/dist/components/alert/Alert.d.ts.map +1 -1
- package/dist/components/alert/Alert.js +12 -8
- package/dist/components/alert/Alert.js.map +2 -2
- package/dist/components/alert.css +13 -0
- 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/Banner.cjs +105 -0
- package/dist/components/banner/Banner.cjs.map +7 -0
- package/dist/components/banner/Banner.d.cts +27 -0
- package/dist/components/banner/Banner.d.cts.map +1 -0
- package/dist/components/banner/Banner.d.mts +27 -0
- package/dist/components/banner/Banner.d.mts.map +1 -0
- package/dist/components/banner/Banner.d.ts +27 -0
- package/dist/components/banner/Banner.d.ts.map +1 -0
- package/dist/components/banner/Banner.js +80 -0
- package/dist/components/banner/Banner.js.map +7 -0
- package/dist/components/{controlGroup/controlGroup.props.cjs → banner/banner.props.cjs} +23 -16
- package/dist/components/banner/banner.props.cjs.map +7 -0
- package/dist/components/banner/banner.props.d.cts +32 -0
- package/dist/components/banner/banner.props.d.cts.map +1 -0
- package/dist/components/banner/banner.props.d.mts +32 -0
- package/dist/components/banner/banner.props.d.mts.map +1 -0
- package/dist/components/banner/banner.props.d.ts +32 -0
- package/dist/components/banner/banner.props.d.ts.map +1 -0
- package/dist/components/banner/banner.props.js +27 -0
- package/dist/components/banner/banner.props.js.map +7 -0
- package/dist/components/banner.css +61 -0
- package/dist/components/blockquote.css +7 -4
- package/dist/components/bottom-dock.css +132 -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/button-group.css +25 -0
- package/dist/components/button.css +9 -0
- package/dist/components/callout.css +20 -7
- package/dist/components/card.css +11 -0
- package/dist/components/carousel/Carousel.cjs +109 -39
- package/dist/components/carousel/Carousel.cjs.map +3 -3
- package/dist/components/carousel/Carousel.d.cts.map +1 -1
- package/dist/components/carousel/Carousel.d.mts.map +1 -1
- package/dist/components/carousel/Carousel.d.ts.map +1 -1
- package/dist/components/carousel/Carousel.js +111 -41
- package/dist/components/carousel/Carousel.js.map +3 -3
- package/dist/components/carousel.css +93 -26
- package/dist/components/chart/Chart.cjs +61 -11
- package/dist/components/chart/Chart.cjs.map +2 -2
- package/dist/components/chart/Chart.d.cts.map +1 -1
- package/dist/components/chart/Chart.d.mts.map +1 -1
- package/dist/components/chart/Chart.d.ts.map +1 -1
- package/dist/components/chart/Chart.js +62 -11
- package/dist/components/chart/Chart.js.map +2 -2
- package/dist/components/chart.css +10 -1
- package/dist/components/checkbox.css +14 -0
- package/dist/components/code.css +29 -13
- package/dist/components/collapsible/Collapsible.cjs +4 -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 +4 -0
- package/dist/components/collapsible/Collapsible.js.map +2 -2
- package/dist/components/collapsible.css +10 -1
- package/dist/components/combobox/Combobox.cjs +3 -1
- package/dist/components/combobox/Combobox.cjs.map +2 -2
- package/dist/components/combobox/Combobox.d.cts.map +1 -1
- package/dist/components/combobox/Combobox.d.mts.map +1 -1
- package/dist/components/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.js +3 -1
- package/dist/components/combobox/Combobox.js.map +2 -2
- package/dist/components/combobox.css +5 -1
- package/dist/components/command/Command.cjs +1 -1
- package/dist/components/command/Command.cjs.map +2 -2
- package/dist/components/command/Command.js +1 -1
- package/dist/components/command/Command.js.map +2 -2
- 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 +4 -2
- 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/copy-field.css +18 -0
- package/dist/components/copyField/CopyField.cjs +3 -3
- package/dist/components/copyField/CopyField.cjs.map +2 -2
- package/dist/components/copyField/CopyField.d.cts.map +1 -1
- package/dist/components/copyField/CopyField.d.mts.map +1 -1
- package/dist/components/copyField/CopyField.d.ts.map +1 -1
- package/dist/components/copyField/CopyField.js +3 -3
- package/dist/components/copyField/CopyField.js.map +2 -2
- package/dist/components/data-list.css +19 -4
- package/dist/components/data-table.css +190 -0
- package/dist/components/dataTable/DataTable.cjs +193 -68
- package/dist/components/dataTable/DataTable.cjs.map +3 -3
- package/dist/components/dataTable/DataTable.d.cts +29 -1
- package/dist/components/dataTable/DataTable.d.cts.map +1 -1
- package/dist/components/dataTable/DataTable.d.mts +29 -1
- package/dist/components/dataTable/DataTable.d.mts.map +1 -1
- package/dist/components/dataTable/DataTable.d.ts +29 -1
- package/dist/components/dataTable/DataTable.d.ts.map +1 -1
- package/dist/components/dataTable/DataTable.js +193 -68
- package/dist/components/dataTable/DataTable.js.map +2 -2
- package/dist/components/dataTable/DataTableContext.cjs +41 -0
- package/dist/components/dataTable/DataTableContext.cjs.map +7 -0
- package/dist/components/dataTable/DataTableContext.d.cts +23 -0
- package/dist/components/dataTable/DataTableContext.d.cts.map +1 -0
- package/dist/components/dataTable/DataTableContext.d.mts +23 -0
- package/dist/components/dataTable/DataTableContext.d.mts.map +1 -0
- package/dist/components/dataTable/DataTableContext.d.ts +23 -0
- package/dist/components/dataTable/DataTableContext.d.ts.map +1 -0
- package/dist/components/dataTable/DataTableContext.js +11 -0
- package/dist/components/dataTable/DataTableContext.js.map +7 -0
- package/dist/components/dataTable/DataTablePagination.cjs +72 -47
- package/dist/components/dataTable/DataTablePagination.cjs.map +2 -2
- package/dist/components/dataTable/DataTablePagination.d.cts +5 -1
- package/dist/components/dataTable/DataTablePagination.d.cts.map +1 -1
- package/dist/components/dataTable/DataTablePagination.d.mts +5 -1
- package/dist/components/dataTable/DataTablePagination.d.mts.map +1 -1
- package/dist/components/dataTable/DataTablePagination.d.ts +5 -1
- package/dist/components/dataTable/DataTablePagination.d.ts.map +1 -1
- package/dist/components/dataTable/DataTablePagination.js +75 -47
- package/dist/components/dataTable/DataTablePagination.js.map +2 -2
- package/dist/components/dataTable/DataTableToolbar.cjs +122 -93
- package/dist/components/dataTable/DataTableToolbar.cjs.map +2 -2
- package/dist/components/dataTable/DataTableToolbar.d.cts +6 -5
- package/dist/components/dataTable/DataTableToolbar.d.cts.map +1 -1
- package/dist/components/dataTable/DataTableToolbar.d.mts +6 -5
- package/dist/components/dataTable/DataTableToolbar.d.mts.map +1 -1
- package/dist/components/dataTable/DataTableToolbar.d.ts +6 -5
- package/dist/components/dataTable/DataTableToolbar.d.ts.map +1 -1
- package/dist/components/dataTable/DataTableToolbar.js +123 -94
- package/dist/components/dataTable/DataTableToolbar.js.map +2 -2
- package/dist/components/dataTable/dataTable.export.cjs +83 -0
- package/dist/components/dataTable/dataTable.export.cjs.map +7 -0
- package/dist/components/dataTable/dataTable.export.d.cts +11 -0
- package/dist/components/dataTable/dataTable.export.d.cts.map +1 -0
- package/dist/components/dataTable/dataTable.export.d.mts +11 -0
- package/dist/components/dataTable/dataTable.export.d.mts.map +1 -0
- package/dist/components/dataTable/dataTable.export.d.ts +11 -0
- package/dist/components/dataTable/dataTable.export.d.ts.map +1 -0
- package/dist/components/dataTable/dataTable.export.js +63 -0
- package/dist/components/dataTable/dataTable.export.js.map +7 -0
- package/dist/components/dataTable/dataTable.props.cjs +23 -1
- package/dist/components/dataTable/dataTable.props.cjs.map +2 -2
- package/dist/components/dataTable/dataTable.props.d.cts +21 -1
- package/dist/components/dataTable/dataTable.props.d.cts.map +1 -1
- package/dist/components/dataTable/dataTable.props.d.mts +21 -1
- package/dist/components/dataTable/dataTable.props.d.mts.map +1 -1
- package/dist/components/dataTable/dataTable.props.d.ts +21 -1
- package/dist/components/dataTable/dataTable.props.d.ts.map +1 -1
- package/dist/components/dataTable/dataTable.props.js +23 -1
- package/dist/components/dataTable/dataTable.props.js.map +2 -2
- package/dist/components/dialog/Dialog.cjs +2 -1
- package/dist/components/dialog/Dialog.cjs.map +2 -2
- package/dist/components/dialog/Dialog.d.cts.map +1 -1
- package/dist/components/dialog/Dialog.d.mts.map +1 -1
- package/dist/components/dialog/Dialog.d.ts.map +1 -1
- package/dist/components/dialog/Dialog.js +2 -1
- package/dist/components/dialog/Dialog.js.map +2 -2
- package/dist/components/drawer.css +23 -6
- package/dist/components/dropdown-menu.css +1 -1
- 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/empty-state.css +5 -0
- package/dist/components/file-upload.css +36 -9
- package/dist/components/fileUpload/FileUpload.cjs +10 -1
- package/dist/components/fileUpload/FileUpload.cjs.map +2 -2
- package/dist/components/fileUpload/FileUpload.d.cts +1 -0
- package/dist/components/fileUpload/FileUpload.d.cts.map +1 -1
- package/dist/components/fileUpload/FileUpload.d.mts +1 -0
- package/dist/components/fileUpload/FileUpload.d.mts.map +1 -1
- package/dist/components/fileUpload/FileUpload.d.ts +1 -0
- package/dist/components/fileUpload/FileUpload.d.ts.map +1 -1
- package/dist/components/fileUpload/FileUpload.js +10 -1
- package/dist/components/fileUpload/FileUpload.js.map +2 -2
- package/dist/components/filter-bar.css +380 -8
- package/dist/components/filterBar/FilterBar.cjs +630 -1
- package/dist/components/filterBar/FilterBar.cjs.map +2 -2
- package/dist/components/filterBar/FilterBar.d.cts +132 -2
- package/dist/components/filterBar/FilterBar.d.cts.map +1 -1
- package/dist/components/filterBar/FilterBar.d.mts +132 -2
- package/dist/components/filterBar/FilterBar.d.mts.map +1 -1
- package/dist/components/filterBar/FilterBar.d.ts +132 -2
- package/dist/components/filterBar/FilterBar.d.ts.map +1 -1
- package/dist/components/filterBar/FilterBar.js +631 -2
- package/dist/components/filterBar/FilterBar.js.map +2 -2
- package/dist/components/floating-panel.css +50 -19
- 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/fontProvider/FontProvider.cjs +1 -1
- package/dist/components/fontProvider/FontProvider.cjs.map +1 -1
- package/dist/components/fontProvider/FontProvider.js +1 -1
- package/dist/components/fontProvider/FontProvider.js.map +1 -1
- 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 +28 -2
- package/dist/components/icon/Icon.cjs.map +2 -2
- package/dist/components/icon/Icon.d.cts +33 -1
- package/dist/components/icon/Icon.d.cts.map +1 -1
- package/dist/components/icon/Icon.d.mts +33 -1
- package/dist/components/icon/Icon.d.mts.map +1 -1
- package/dist/components/icon/Icon.d.ts +33 -1
- package/dist/components/icon/Icon.d.ts.map +1 -1
- package/dist/components/icon/Icon.js +37 -2
- package/dist/components/icon/Icon.js.map +2 -2
- package/dist/components/icon/icons.cjs +18 -0
- package/dist/components/icon/icons.cjs.map +2 -2
- package/dist/components/icon/icons.d.cts +45 -0
- package/dist/components/icon/icons.d.cts.map +1 -1
- package/dist/components/icon/icons.d.mts +45 -0
- package/dist/components/icon/icons.d.mts.map +1 -1
- package/dist/components/icon/icons.d.ts +45 -0
- package/dist/components/icon/icons.d.ts.map +1 -1
- package/dist/components/icon/icons.js +18 -0
- package/dist/components/icon/icons.js.map +2 -2
- package/dist/components/icon-button.css +29 -0
- package/dist/components/index.cjs +2 -1
- package/dist/components/index.cjs.map +2 -2
- package/dist/components/index.d.cts +2 -1
- package/dist/components/index.d.cts.map +1 -1
- package/dist/components/index.d.mts +2 -1
- package/dist/components/index.d.mts.map +1 -1
- package/dist/components/index.d.ts +2 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -1
- package/dist/components/index.js.map +2 -2
- package/dist/components/item/Item.cjs +1 -1
- package/dist/components/item/Item.cjs.map +2 -2
- package/dist/components/item/Item.js +1 -1
- package/dist/components/item/Item.js.map +2 -2
- package/dist/components/item.css +12 -1
- package/dist/components/label.css +3 -0
- package/dist/components/link.css +33 -97
- package/dist/components/marquee/Marquee.cjs +1 -1
- package/dist/components/marquee/Marquee.cjs.map +2 -2
- package/dist/components/marquee/Marquee.js +1 -1
- package/dist/components/marquee/Marquee.js.map +2 -2
- package/dist/components/marquee.css +6 -0
- package/dist/components/menu/Menu.cjs +3 -1
- package/dist/components/menu/Menu.cjs.map +2 -2
- package/dist/components/menu/Menu.d.cts.map +1 -1
- package/dist/components/menu/Menu.d.mts.map +1 -1
- package/dist/components/menu/Menu.d.ts.map +1 -1
- package/dist/components/menu/Menu.js +3 -1
- package/dist/components/menu/Menu.js.map +2 -2
- package/dist/components/menubar.css +1 -1
- package/dist/components/metric.css +5 -0
- package/dist/components/notification-center.css +49 -9
- package/dist/components/notificationCenter/NotificationCenter.cjs +21 -16
- package/dist/components/notificationCenter/NotificationCenter.cjs.map +2 -2
- package/dist/components/notificationCenter/NotificationCenter.d.cts.map +1 -1
- package/dist/components/notificationCenter/NotificationCenter.d.mts.map +1 -1
- package/dist/components/notificationCenter/NotificationCenter.d.ts.map +1 -1
- package/dist/components/notificationCenter/NotificationCenter.js +22 -17
- package/dist/components/notificationCenter/NotificationCenter.js.map +2 -2
- package/dist/components/pagination/Pagination.cjs +143 -17
- package/dist/components/pagination/Pagination.cjs.map +2 -2
- package/dist/components/pagination/Pagination.d.cts +64 -4
- package/dist/components/pagination/Pagination.d.cts.map +1 -1
- package/dist/components/pagination/Pagination.d.mts +64 -4
- package/dist/components/pagination/Pagination.d.mts.map +1 -1
- package/dist/components/pagination/Pagination.d.ts +64 -4
- package/dist/components/pagination/Pagination.d.ts.map +1 -1
- package/dist/components/pagination/Pagination.js +143 -17
- package/dist/components/pagination/Pagination.js.map +2 -2
- package/dist/components/pagination.css +50 -8
- package/dist/components/phoneInput/PhoneInput.cjs +18 -13
- package/dist/components/phoneInput/PhoneInput.cjs.map +2 -2
- package/dist/components/phoneInput/PhoneInput.d.cts.map +1 -1
- package/dist/components/phoneInput/PhoneInput.d.mts.map +1 -1
- package/dist/components/phoneInput/PhoneInput.d.ts.map +1 -1
- package/dist/components/phoneInput/PhoneInput.js +19 -14
- package/dist/components/phoneInput/PhoneInput.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/Popover.cjs +2 -1
- package/dist/components/popover/Popover.cjs.map +2 -2
- package/dist/components/popover/Popover.d.cts.map +1 -1
- package/dist/components/popover/Popover.d.mts.map +1 -1
- package/dist/components/popover/Popover.d.ts.map +1 -1
- package/dist/components/popover/Popover.js +2 -1
- package/dist/components/popover/Popover.js.map +2 -2
- package/dist/components/popover.css +45 -6
- package/dist/components/prose.css +4 -4
- package/dist/components/qr-code.css +10 -17
- 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/radio-group.css +19 -0
- package/dist/components/radioGroup/RadioGroup.cjs +3 -2
- package/dist/components/radioGroup/RadioGroup.cjs.map +2 -2
- package/dist/components/radioGroup/RadioGroup.d.cts.map +1 -1
- package/dist/components/radioGroup/RadioGroup.d.mts.map +1 -1
- package/dist/components/radioGroup/RadioGroup.d.ts.map +1 -1
- package/dist/components/radioGroup/RadioGroup.js +3 -2
- package/dist/components/radioGroup/RadioGroup.js.map +2 -2
- package/dist/components/radioGroup/radioGroup.props.cjs +1 -1
- package/dist/components/radioGroup/radioGroup.props.cjs.map +2 -2
- package/dist/components/radioGroup/radioGroup.props.d.cts +1 -1
- package/dist/components/radioGroup/radioGroup.props.d.mts +1 -1
- package/dist/components/radioGroup/radioGroup.props.d.ts +1 -1
- package/dist/components/radioGroup/radioGroup.props.js +1 -1
- package/dist/components/radioGroup/radioGroup.props.js.map +2 -2
- package/dist/components/rating.css +12 -0
- package/dist/components/resizable.css +20 -4
- package/dist/components/result.css +2 -1
- 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 +63 -208
- 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 +63 -208
- 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/segmented-control.css +80 -4
- package/dist/components/segmentedControl/SegmentedControl.cjs +18 -5
- 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 +18 -5
- package/dist/components/segmentedControl/SegmentedControl.js.map +2 -2
- package/dist/components/segmentedControl/segmentedControl.props.cjs +10 -0
- package/dist/components/segmentedControl/segmentedControl.props.cjs.map +2 -2
- package/dist/components/segmentedControl/segmentedControl.props.d.cts +9 -0
- package/dist/components/segmentedControl/segmentedControl.props.d.cts.map +1 -1
- package/dist/components/segmentedControl/segmentedControl.props.d.mts +9 -0
- package/dist/components/segmentedControl/segmentedControl.props.d.mts.map +1 -1
- package/dist/components/segmentedControl/segmentedControl.props.d.ts +9 -0
- package/dist/components/segmentedControl/segmentedControl.props.d.ts.map +1 -1
- package/dist/components/segmentedControl/segmentedControl.props.js +10 -0
- package/dist/components/segmentedControl/segmentedControl.props.js.map +2 -2
- package/dist/components/select/Select.cjs +3 -1
- package/dist/components/select/Select.cjs.map +2 -2
- package/dist/components/select/Select.d.cts.map +1 -1
- package/dist/components/select/Select.d.mts.map +1 -1
- package/dist/components/select/Select.d.ts.map +1 -1
- package/dist/components/select/Select.js +3 -1
- package/dist/components/select/Select.js.map +2 -2
- package/dist/components/select.css +1 -1
- package/dist/components/separator.css +3 -9
- package/dist/components/sidebar/Sidebar.cjs +12 -4
- package/dist/components/sidebar/Sidebar.cjs.map +2 -2
- package/dist/components/sidebar/Sidebar.d.cts +4 -1
- package/dist/components/sidebar/Sidebar.d.cts.map +1 -1
- package/dist/components/sidebar/Sidebar.d.mts +4 -1
- package/dist/components/sidebar/Sidebar.d.mts.map +1 -1
- package/dist/components/sidebar/Sidebar.d.ts +4 -1
- package/dist/components/sidebar/Sidebar.d.ts.map +1 -1
- package/dist/components/sidebar/Sidebar.js +12 -4
- 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 +28 -0
- package/dist/components/sonner.css +79 -17
- package/dist/components/sortableList/SortableList.cjs +8 -2
- package/dist/components/sortableList/SortableList.cjs.map +2 -2
- package/dist/components/sortableList/SortableList.d.cts.map +1 -1
- package/dist/components/sortableList/SortableList.d.mts.map +1 -1
- package/dist/components/sortableList/SortableList.d.ts.map +1 -1
- package/dist/components/sortableList/SortableList.js +8 -2
- package/dist/components/sortableList/SortableList.js.map +2 -2
- package/dist/components/stat-card.css +2 -0
- 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/Table.cjs +3 -2
- package/dist/components/table/Table.cjs.map +2 -2
- package/dist/components/table/Table.d.cts.map +1 -1
- package/dist/components/table/Table.d.mts.map +1 -1
- package/dist/components/table/Table.d.ts.map +1 -1
- package/dist/components/table/Table.js +3 -2
- package/dist/components/table/Table.js.map +2 -2
- package/dist/components/table/table.props.cjs +6 -0
- package/dist/components/table/table.props.cjs.map +2 -2
- package/dist/components/table/table.props.d.cts +5 -0
- package/dist/components/table/table.props.d.cts.map +1 -1
- package/dist/components/table/table.props.d.mts +5 -0
- package/dist/components/table/table.props.d.mts.map +1 -1
- package/dist/components/table/table.props.d.ts +5 -0
- package/dist/components/table/table.props.d.ts.map +1 -1
- package/dist/components/table/table.props.js +6 -0
- package/dist/components/table/table.props.js.map +2 -2
- package/dist/components/table-of-contents.css +12 -2
- package/dist/components/table.css +20 -13
- 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 +62 -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/timeline.css +54 -18
- 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 +50 -18
- package/dist/components/toggle-group.css +5 -0
- 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 -2
- package/dist/docs/README.md +2 -1
- package/dist/docs/component-contract.md +7 -6
- package/dist/docs/component-index.json +17 -9
- package/dist/docs/components/accordion.md +5 -36
- package/dist/docs/components/alert.md +17 -10
- package/dist/docs/components/article-nodes.md +59 -2
- package/dist/docs/components/aspect-ratio.md +3 -26
- package/dist/docs/components/banner.md +152 -0
- 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/button-group.md +4 -3
- package/dist/docs/components/button.md +2 -2
- package/dist/docs/components/callout.md +18 -7
- package/dist/docs/components/card.md +10 -2
- package/dist/docs/components/carousel.md +55 -32
- package/dist/docs/components/chart.md +25 -7
- package/dist/docs/components/checkbox.md +4 -0
- package/dist/docs/components/code.md +33 -220
- package/dist/docs/components/collapsible.md +11 -35
- package/dist/docs/components/combobox.md +3 -1
- package/dist/docs/components/command.md +4 -2
- 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/copy-field.md +2 -2
- package/dist/docs/components/data-list.md +15 -3
- package/dist/docs/components/data-table.md +98 -17
- package/dist/docs/components/dialog.md +7 -1
- package/dist/docs/components/drawer.md +17 -6
- package/dist/docs/components/dropdown-menu.md +13 -3
- package/dist/docs/components/em.md +1 -1
- package/dist/docs/components/empty-state.md +3 -1
- package/dist/docs/components/file-upload.md +14 -7
- package/dist/docs/components/filter-bar.md +193 -8
- 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-button.md +4 -1
- package/dist/docs/components/item.md +18 -13
- 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/marquee.md +2 -2
- package/dist/docs/components/menu.md +4 -1
- package/dist/docs/components/metric.md +4 -1
- package/dist/docs/components/notification-center.md +24 -14
- package/dist/docs/components/page-header.md +2 -0
- package/dist/docs/components/pagination.md +92 -17
- package/dist/docs/components/pills.md +13 -4
- package/dist/docs/components/popover.md +12 -3
- package/dist/docs/components/prose.md +14 -1
- package/dist/docs/components/qr-code.md +25 -24
- package/dist/docs/components/quote.md +9 -4
- package/dist/docs/components/radio-group.md +5 -2
- package/dist/docs/components/rating.md +2 -0
- package/dist/docs/components/resizable.md +26 -18
- package/dist/docs/components/result.md +6 -0
- 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 +8 -3
- package/dist/docs/components/segmented-meter.md +9 -0
- package/dist/docs/components/select.md +3 -2
- package/dist/docs/components/separator.md +10 -46
- package/dist/docs/components/sidebar.md +20 -4
- package/dist/docs/components/sonner.md +26 -17
- package/dist/docs/components/sortable-list.md +2 -0
- package/dist/docs/components/stat-card.md +5 -4
- package/dist/docs/components/stepper.md +8 -32
- 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/table.md +14 -5
- package/dist/docs/components/tabs.md +19 -50
- package/dist/docs/components/tag.md +4 -2
- 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/timeline.md +9 -5
- package/dist/docs/components/toast.md +28 -14
- package/dist/docs/components/toggle-group.md +2 -1
- 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/fonts.css +1 -1
- package/dist/generated/tokens.cjs +2 -1
- 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 +2 -1
- package/dist/generated/tokens.js.map +2 -2
- package/dist/motion.css +18 -3
- package/dist/styles.css +3045 -1756
- package/dist/tokens.css +349 -361
- package/package.json +1 -1
- package/dist/components/control-group.css +0 -142
- package/dist/components/controlGroup/ControlGroup.cjs.map +0 -7
- package/dist/components/controlGroup/ControlGroup.d.cts +0 -16
- package/dist/components/controlGroup/ControlGroup.d.cts.map +0 -1
- package/dist/components/controlGroup/ControlGroup.d.mts +0 -16
- package/dist/components/controlGroup/ControlGroup.d.mts.map +0 -1
- package/dist/components/controlGroup/ControlGroup.d.ts +0 -16
- package/dist/components/controlGroup/ControlGroup.d.ts.map +0 -1
- package/dist/components/controlGroup/ControlGroup.js +0 -26
- package/dist/components/controlGroup/ControlGroup.js.map +0 -7
- package/dist/components/controlGroup/controlGroup.props.cjs.map +0 -7
- package/dist/components/controlGroup/controlGroup.props.d.cts +0 -18
- package/dist/components/controlGroup/controlGroup.props.d.cts.map +0 -1
- package/dist/components/controlGroup/controlGroup.props.d.mts +0 -18
- package/dist/components/controlGroup/controlGroup.props.d.mts.map +0 -1
- package/dist/components/controlGroup/controlGroup.props.d.ts +0 -18
- package/dist/components/controlGroup/controlGroup.props.d.ts.map +0 -1
- package/dist/components/controlGroup/controlGroup.props.js +0 -20
- package/dist/components/controlGroup/controlGroup.props.js.map +0 -7
- package/dist/docs/components/control-group.md +0 -261
package/package.json
CHANGED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
/* data-group-radius, not data-radius (2026-08-26, real bug found live): data-radius is a
|
|
2
|
-
reserved document-theme attribute that PortalThemeBoundary walks up via closest-ancestor
|
|
3
|
-
lookup to mirror the app's global radius setting into portaled content (Select/Dialog/
|
|
4
|
-
Popover/etc). A component-local data-radius sitting between a portal trigger and <html>
|
|
5
|
-
gets picked up instead of the real value — confirmed live via a Select inside this
|
|
6
|
-
component whose dropdown opened at 9999px border-radius instead of the real global radius. */
|
|
7
|
-
.dsx-control-group {
|
|
8
|
-
display: inline-flex;
|
|
9
|
-
align-items: center;
|
|
10
|
-
gap: 0;
|
|
11
|
-
isolation: isolate;
|
|
12
|
-
border: var(--dsx-border-width-sm) solid var(--dsx-color-outline-variant);
|
|
13
|
-
background: var(--dsx-color-surface);
|
|
14
|
-
padding: var(--dsx-space-xs);
|
|
15
|
-
min-width: max-content;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/* Real bug found live (2026-08-26, direct screenshot: an active ToggleGroup item's filled
|
|
19
|
-
background poked a hard square corner past this frame's rounded-full pill): this used to set
|
|
20
|
-
a bespoke `--dsx-control-group-item-radius` custom property that only this file ever read.
|
|
21
|
-
ButtonGroup, SegmentedControl, ToggleGroup, and baseInput all already share one established
|
|
22
|
-
convention for the same concept — `--dsx-grouped-radius` (declared globally in tokens.css,
|
|
23
|
-
defaulting to `--dsx-rounded-md`) — and ToggleGroup's own per-item corner rules (this file's
|
|
24
|
-
sibling, toggle-group.css) read exactly that token with that exact fallback. Because
|
|
25
|
-
ControlGroup never set it, every child silently fell back to `--dsx-rounded-md` (8px)
|
|
26
|
-
regardless of ControlGroup's own `radius` prop — invisible for a plain-bordered rest-state
|
|
27
|
-
corner, glaringly visible once an active item got a real fill (this session's ToggleGroup
|
|
28
|
-
contrast fix). Renamed to join the existing convention instead of inventing a second one. */
|
|
29
|
-
.dsx-control-group[data-group-radius='full'] {
|
|
30
|
-
border-radius: var(--dsx-rounded-full);
|
|
31
|
-
--dsx-grouped-radius: var(--dsx-rounded-full);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
.dsx-control-group[data-group-radius='md'] {
|
|
35
|
-
border-radius: var(--dsx-rounded-md);
|
|
36
|
-
--dsx-grouped-radius: var(--dsx-rounded-md);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/* Direct children keep their own border/shadow/background — ControlGroup only manages the two
|
|
40
|
-
outer corners (so a child's own rounded shape matches the frame's curve instead of poking a
|
|
41
|
-
square corner past it, the exact bug that motivated this component) and a 1px seam between
|
|
42
|
-
adjacent children. Not a border-collapse like InputGroup: children here are not assumed to
|
|
43
|
-
share one border width, since they're full DS components, not stacked form parts.
|
|
44
|
-
--dsx-grouped-radius (set on the root above, per data-radius) keeps these child
|
|
45
|
-
selectors at class+pseudo-class specificity instead of repeating the [data-radius] attribute
|
|
46
|
-
on every rule — the CSS selector policy caps specificity, this keeps both radius values
|
|
47
|
-
covered by two selectors instead of four.
|
|
48
|
-
|
|
49
|
-
Real bug found live (2026-08-26): a child composed from a component that renders
|
|
50
|
-
PortalThemeBoundary (Select, Dialog, Popover, DropdownMenu, ...) injects a `hidden`
|
|
51
|
-
`<span data-dsx-portal-probe>` as ITS OWN first DOM sibling, ahead of the component's visible
|
|
52
|
-
markup — confirmed via a Select child, whose actual `:first-child` in the DOM was that hidden
|
|
53
|
-
probe span, not the visible trigger button. `> *:first-child` landed the corner radius on the
|
|
54
|
-
invisible probe, leaving the real trigger's own default (non-full) radius untouched — the
|
|
55
|
-
"currency picker isn't rounded" bug. The probe is always exactly one hidden leading sibling
|
|
56
|
-
(never last), so `:first-child` alone still needs a fallback for "the element right after a
|
|
57
|
-
hidden first child"; `:last-child` needed no change since the probe is never last. */
|
|
58
|
-
.dsx-control-group > *:first-child:not([hidden]),
|
|
59
|
-
.dsx-control-group > [hidden]:first-child + * {
|
|
60
|
-
border-start-start-radius: var(--dsx-grouped-radius);
|
|
61
|
-
border-end-start-radius: var(--dsx-grouped-radius);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
.dsx-control-group > *:last-child {
|
|
65
|
-
border-start-end-radius: var(--dsx-grouped-radius);
|
|
66
|
-
border-end-end-radius: var(--dsx-grouped-radius);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/* Real bug found live (2026-08-26, direct screenshot annotation pointing at the seam between
|
|
70
|
-
Select and ToggleGroup): the two rules above only ever touched each child's OUTER corners —
|
|
71
|
-
the INNER corners (Select's right edge, ToggleGroup's left edge, where they meet at the
|
|
72
|
-
divider) were left at that child's own component default (Select's own `--dsx-rounded-md`,
|
|
73
|
-
8px), not explicitly squared. Confirmed via computed style: Select's own `border-radius`
|
|
74
|
-
read `9999px 8px 8px 9999px` — the outer-left corner correctly matched the pill, but the
|
|
75
|
-
inner-right corner sat at a stray 8px instead of 0, reading as a mismatched notch right at
|
|
76
|
-
the seam. Every grouped-control convention in this DS (ButtonGroup, SegmentedControl) squares
|
|
77
|
-
the inner-facing corners explicitly rather than assuming a child's own default is already 0 —
|
|
78
|
-
this closes the same gap here.
|
|
79
|
-
|
|
80
|
-
ROOT CAUSE, not another patch (2026-08-26, same-day correction after the fix above still
|
|
81
|
-
broke, confirmed live via a screenshot of the currency dropdown OPEN): the very next rule
|
|
82
|
-
added here (a generic "middle child" `:not(:first-child):not(:last-child) { border-radius:
|
|
83
|
-
0 }`) was written for a hypothetical 3+-child ControlGroup that has never existed anywhere in
|
|
84
|
-
this codebase — the only real usage today is exactly two children (Select + ToggleGroup).
|
|
85
|
-
Because PortalThemeBoundary's hidden probe span sits at real DOM index 0, Select's own
|
|
86
|
-
trigger sits at DOM index 1 — neither `:first-child` nor `:last-child` — so the speculative
|
|
87
|
-
middle-child rule matched it by accident, tied in specificity with the correct
|
|
88
|
-
`[hidden]:first-child + *` rule above, and won by coming later in the file, forcing
|
|
89
|
-
`border-radius: 0` on ALL FOUR corners including the outer-left one this file exists to
|
|
90
|
-
round. Deleted rather than special-cased further: a selector with no real target is the
|
|
91
|
-
actual defect here, not something to keep patching around. If a genuine 3+-child ControlGroup
|
|
92
|
-
ever ships, its middle-child corner logic needs designing against that real DOM shape then —
|
|
93
|
-
not speculatively now, against a shape that doesn't exist and that the hidden-probe mechanic
|
|
94
|
-
actively defeats. */
|
|
95
|
-
.dsx-control-group > *:first-child:not([hidden]),
|
|
96
|
-
.dsx-control-group > [hidden]:first-child + * {
|
|
97
|
-
border-start-end-radius: 0;
|
|
98
|
-
border-end-end-radius: 0;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.dsx-control-group > *:last-child {
|
|
102
|
-
border-start-start-radius: 0;
|
|
103
|
-
border-end-start-radius: 0;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/* The `:not([hidden])` on the preceding sibling keeps the divider off the first VISIBLE child
|
|
107
|
-
when a PortalThemeBoundary child (Select, Dialog, Popover, DropdownMenu, ...) injects a hidden
|
|
108
|
-
`<span data-dsx-portal-probe>` at real DOM index 0 (2026-08-27 "stray separator on the left
|
|
109
|
-
side" bug). A plain `* + *` matches "has a preceding sibling element" regardless of whether
|
|
110
|
-
that sibling is hidden, so it previously needed a separate `content: none` override for the
|
|
111
|
-
probe case. Folding the guard into the base selector removes that override and keeps the rule
|
|
112
|
-
under the `0,3,0` selector-policy specificity ceiling — a three-class guard plus `::before`
|
|
113
|
-
lands at `0,3,1`. */
|
|
114
|
-
.dsx-control-group > *:not([hidden]) + * {
|
|
115
|
-
position: relative;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
.dsx-control-group > *:not([hidden]) + *::before {
|
|
119
|
-
content: '';
|
|
120
|
-
position: absolute;
|
|
121
|
-
inset-inline-start: calc(-1 * var(--dsx-space-xs));
|
|
122
|
-
top: 50%;
|
|
123
|
-
transform: translateY(-50%);
|
|
124
|
-
width: var(--dsx-border-width-sm);
|
|
125
|
-
height: 60%;
|
|
126
|
-
background: var(--dsx-color-outline-variant);
|
|
127
|
-
pointer-events: none;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/* Lift a focused child above its neighbors so its focus ring is never clipped by the group's
|
|
131
|
-
own rounded corners or the seam divider. */
|
|
132
|
-
.dsx-control-group > *:focus-within {
|
|
133
|
-
z-index: 1;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
.dsx-control-group[data-size='sm'] {
|
|
137
|
-
padding: var(--dsx-space-1, 2px);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
.dsx-control-group[data-size='lg'] {
|
|
141
|
-
padding: var(--dsx-space-sm);
|
|
142
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/controlGroup/ControlGroup.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react'\nimport classNames from 'classnames'\nimport { Slot } from '@radix-ui/react-slot'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { controlGroupPropDefs } from './controlGroup.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype ControlGroupOwnProps = GetPropDefTypes<typeof controlGroupPropDefs>\n\ninterface ControlGroupProps extends React.HTMLAttributes<HTMLDivElement>, ControlGroupOwnProps {}\n\n/**\n * Visually groups two or more unlike controls (a Select next to a ToggleGroup, a Button next to\n * a SegmentedControl) inside one shared bordered frame. Unlike InputGroup, no single child is\n * assumed to be \"the\" input, so children are consumed as-is \u2014 no Addon/Text/Button wrapper slots.\n * See docs/design-system/control-group.md for the full spec.\n */\nconst ControlGroup = React.forwardRef<HTMLDivElement, ControlGroupProps>((props, forwardedRef) => {\n const { asChild, className, size, radius, ...controlGroupProps } = extractProps(props, controlGroupPropDefs)\n const Comp = asChild ? Slot : 'div'\n\n return (\n <Comp\n {...controlGroupProps}\n ref={forwardedRef}\n role={props.role ?? 'group'}\n className={classNames('dsx-control-group', className)}\n data-size={size}\n // NOT data-radius (2026-08-26, real bug found live): `data-radius` is a reserved\n // document-theme attribute \u2014 PortalThemeBoundary's getClosestThemeAttribute(el,\n // 'data-radius') walks up the nearest ancestor with that attribute name to mirror the\n // app's global radius setting into portaled content (Select/Dialog/Popover/etc). A\n // component-local `data-radius` sitting between the portal trigger and <html> gets\n // picked up INSTEAD of the real document-level value \u2014 confirmed live: a Select inside\n // this component's radius=\"full\" frame opened its dropdown at 9999px border-radius and\n // --dsx-rounded-lg itself resolved to 9999px on the portaled content, while <html> still\n // correctly read data-radius=\"md\". data-group-radius avoids the collision.\n data-group-radius={radius}\n />\n )\n})\nControlGroup.displayName = 'ControlGroup'\n\nexport { ControlGroup }\nexport type { ControlGroupProps }\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAuB;AACvB,wBAAuB;AACvB,wBAAqB;AAErB,0BAA6B;AAC7B,0BAAqC;AAmBjC;AALJ,MAAM,eAAe,MAAM,WAA8C,CAAC,OAAO,iBAAiB;AAChG,QAAM,EAAE,SAAS,WAAW,MAAM,QAAQ,GAAG,kBAAkB,QAAI,kCAAa,OAAO,wCAAoB;AAC3G,QAAM,OAAO,UAAU,yBAAO;AAE9B,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,KAAK;AAAA,MACL,MAAM,MAAM,QAAQ;AAAA,MACpB,eAAW,kBAAAA,SAAW,qBAAqB,SAAS;AAAA,MACpD,aAAW;AAAA,MAUX,qBAAmB;AAAA;AAAA,EACrB;AAEJ,CAAC;AACD,aAAa,cAAc;",
|
|
6
|
-
"names": ["classNames"]
|
|
7
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { controlGroupPropDefs } from './controlGroup.props.cjs';
|
|
3
|
-
import type { GetPropDefTypes } from '../../_internal/props/propDef.cjs';
|
|
4
|
-
type ControlGroupOwnProps = GetPropDefTypes<typeof controlGroupPropDefs>;
|
|
5
|
-
interface ControlGroupProps extends React.HTMLAttributes<HTMLDivElement>, ControlGroupOwnProps {
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Visually groups two or more unlike controls (a Select next to a ToggleGroup, a Button next to
|
|
9
|
-
* a SegmentedControl) inside one shared bordered frame. Unlike InputGroup, no single child is
|
|
10
|
-
* assumed to be "the" input, so children are consumed as-is — no Addon/Text/Button wrapper slots.
|
|
11
|
-
* See docs/design-system/control-group.md for the full spec.
|
|
12
|
-
*/
|
|
13
|
-
declare const ControlGroup: React.ForwardRefExoticComponent<ControlGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
-
export { ControlGroup };
|
|
15
|
-
export type { ControlGroupProps };
|
|
16
|
-
//# sourceMappingURL=ControlGroup.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ControlGroup.d.cts","sourceRoot":"","sources":["../../../src/components/controlGroup/ControlGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,oBAAoB,GAAG,eAAe,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAExE,UAAU,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,oBAAoB;CAAG;AAEjG;;;;;GAKG;AACH,QAAA,MAAM,YAAY,0FAuBhB,CAAA;AAGF,OAAO,EAAE,YAAY,EAAE,CAAA;AACvB,YAAY,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { controlGroupPropDefs } from './controlGroup.props.js';
|
|
3
|
-
import type { GetPropDefTypes } from '../../_internal/props/propDef.js';
|
|
4
|
-
type ControlGroupOwnProps = GetPropDefTypes<typeof controlGroupPropDefs>;
|
|
5
|
-
interface ControlGroupProps extends React.HTMLAttributes<HTMLDivElement>, ControlGroupOwnProps {
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Visually groups two or more unlike controls (a Select next to a ToggleGroup, a Button next to
|
|
9
|
-
* a SegmentedControl) inside one shared bordered frame. Unlike InputGroup, no single child is
|
|
10
|
-
* assumed to be "the" input, so children are consumed as-is — no Addon/Text/Button wrapper slots.
|
|
11
|
-
* See docs/design-system/control-group.md for the full spec.
|
|
12
|
-
*/
|
|
13
|
-
declare const ControlGroup: React.ForwardRefExoticComponent<ControlGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
-
export { ControlGroup };
|
|
15
|
-
export type { ControlGroupProps };
|
|
16
|
-
//# sourceMappingURL=ControlGroup.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ControlGroup.d.mts","sourceRoot":"","sources":["../../../src/components/controlGroup/ControlGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,oBAAoB,GAAG,eAAe,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAExE,UAAU,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,oBAAoB;CAAG;AAEjG;;;;;GAKG;AACH,QAAA,MAAM,YAAY,0FAuBhB,CAAA;AAGF,OAAO,EAAE,YAAY,EAAE,CAAA;AACvB,YAAY,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { controlGroupPropDefs } from './controlGroup.props.js';
|
|
3
|
-
import type { GetPropDefTypes } from '../../_internal/props/propDef.js';
|
|
4
|
-
type ControlGroupOwnProps = GetPropDefTypes<typeof controlGroupPropDefs>;
|
|
5
|
-
interface ControlGroupProps extends React.HTMLAttributes<HTMLDivElement>, ControlGroupOwnProps {
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Visually groups two or more unlike controls (a Select next to a ToggleGroup, a Button next to
|
|
9
|
-
* a SegmentedControl) inside one shared bordered frame. Unlike InputGroup, no single child is
|
|
10
|
-
* assumed to be "the" input, so children are consumed as-is — no Addon/Text/Button wrapper slots.
|
|
11
|
-
* See docs/design-system/control-group.md for the full spec.
|
|
12
|
-
*/
|
|
13
|
-
declare const ControlGroup: React.ForwardRefExoticComponent<ControlGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
-
export { ControlGroup };
|
|
15
|
-
export type { ControlGroupProps };
|
|
16
|
-
//# sourceMappingURL=ControlGroup.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ControlGroup.d.ts","sourceRoot":"","sources":["../../../src/components/controlGroup/ControlGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAEpE,KAAK,oBAAoB,GAAG,eAAe,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAExE,UAAU,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,oBAAoB;CAAG;AAEjG;;;;;GAKG;AACH,QAAA,MAAM,YAAY,0FAuBhB,CAAA;AAGF,OAAO,EAAE,YAAY,EAAE,CAAA;AACvB,YAAY,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import classNames from "classnames";
|
|
3
|
-
import { Slot } from "@radix-ui/react-slot";
|
|
4
|
-
import { extractProps } from "../../_internal/helpers/extractProps.js";
|
|
5
|
-
import { controlGroupPropDefs } from "./controlGroup.props.js";
|
|
6
|
-
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
const ControlGroup = React.forwardRef((props, forwardedRef) => {
|
|
8
|
-
const { asChild, className, size, radius, ...controlGroupProps } = extractProps(props, controlGroupPropDefs);
|
|
9
|
-
const Comp = asChild ? Slot : "div";
|
|
10
|
-
return /* @__PURE__ */ jsx(
|
|
11
|
-
Comp,
|
|
12
|
-
{
|
|
13
|
-
...controlGroupProps,
|
|
14
|
-
ref: forwardedRef,
|
|
15
|
-
role: props.role ?? "group",
|
|
16
|
-
className: classNames("dsx-control-group", className),
|
|
17
|
-
"data-size": size,
|
|
18
|
-
"data-group-radius": radius
|
|
19
|
-
}
|
|
20
|
-
);
|
|
21
|
-
});
|
|
22
|
-
ControlGroup.displayName = "ControlGroup";
|
|
23
|
-
export {
|
|
24
|
-
ControlGroup
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=ControlGroup.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/controlGroup/ControlGroup.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react'\nimport classNames from 'classnames'\nimport { Slot } from '@radix-ui/react-slot'\n\nimport { extractProps } from '../../_internal/helpers/extractProps'\nimport { controlGroupPropDefs } from './controlGroup.props'\n\nimport type { GetPropDefTypes } from '../../_internal/props/propDef'\n\ntype ControlGroupOwnProps = GetPropDefTypes<typeof controlGroupPropDefs>\n\ninterface ControlGroupProps extends React.HTMLAttributes<HTMLDivElement>, ControlGroupOwnProps {}\n\n/**\n * Visually groups two or more unlike controls (a Select next to a ToggleGroup, a Button next to\n * a SegmentedControl) inside one shared bordered frame. Unlike InputGroup, no single child is\n * assumed to be \"the\" input, so children are consumed as-is \u2014 no Addon/Text/Button wrapper slots.\n * See docs/design-system/control-group.md for the full spec.\n */\nconst ControlGroup = React.forwardRef<HTMLDivElement, ControlGroupProps>((props, forwardedRef) => {\n const { asChild, className, size, radius, ...controlGroupProps } = extractProps(props, controlGroupPropDefs)\n const Comp = asChild ? Slot : 'div'\n\n return (\n <Comp\n {...controlGroupProps}\n ref={forwardedRef}\n role={props.role ?? 'group'}\n className={classNames('dsx-control-group', className)}\n data-size={size}\n // NOT data-radius (2026-08-26, real bug found live): `data-radius` is a reserved\n // document-theme attribute \u2014 PortalThemeBoundary's getClosestThemeAttribute(el,\n // 'data-radius') walks up the nearest ancestor with that attribute name to mirror the\n // app's global radius setting into portaled content (Select/Dialog/Popover/etc). A\n // component-local `data-radius` sitting between the portal trigger and <html> gets\n // picked up INSTEAD of the real document-level value \u2014 confirmed live: a Select inside\n // this component's radius=\"full\" frame opened its dropdown at 9999px border-radius and\n // --dsx-rounded-lg itself resolved to 9999px on the portaled content, while <html> still\n // correctly read data-radius=\"md\". data-group-radius avoids the collision.\n data-group-radius={radius}\n />\n )\n})\nControlGroup.displayName = 'ControlGroup'\n\nexport { ControlGroup }\nexport type { ControlGroupProps }\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;AACvB,OAAO,gBAAgB;AACvB,SAAS,YAAY;AAErB,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AAmBjC;AALJ,MAAM,eAAe,MAAM,WAA8C,CAAC,OAAO,iBAAiB;AAChG,QAAM,EAAE,SAAS,WAAW,MAAM,QAAQ,GAAG,kBAAkB,IAAI,aAAa,OAAO,oBAAoB;AAC3G,QAAM,OAAO,UAAU,OAAO;AAE9B,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,KAAK;AAAA,MACL,MAAM,MAAM,QAAQ;AAAA,MACpB,WAAW,WAAW,qBAAqB,SAAS;AAAA,MACpD,aAAW;AAAA,MAUX,qBAAmB;AAAA;AAAA,EACrB;AAEJ,CAAC;AACD,aAAa,cAAc;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/controlGroup/controlGroup.props.ts"],
|
|
4
|
-
"sourcesContent": ["import { asChildPropDef } from '../../_internal/props/asChild.prop'\n\nimport type { PropDef } from '../../_internal/props/propDef'\n\nconst controlGroupSizes = ['sm', 'md', 'lg'] as const\nconst controlGroupRadii = ['md', 'full'] as const\n\nconst controlGroupPropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n values: controlGroupSizes,\n default: 'md',\n },\n radius: {\n type: 'enum',\n values: controlGroupRadii,\n default: 'full',\n },\n} satisfies {\n asChild: PropDef\n size: PropDef<(typeof controlGroupSizes)[number]>\n radius: PropDef<(typeof controlGroupRadii)[number]>\n}\n\nexport { controlGroupPropDefs }\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA+B;AAI/B,MAAM,oBAAoB,CAAC,MAAM,MAAM,IAAI;AAC3C,MAAM,oBAAoB,CAAC,MAAM,MAAM;AAEvC,MAAM,uBAAuB;AAAA,EAC3B,GAAG;AAAA,EACH,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
declare const controlGroupPropDefs: {
|
|
2
|
-
size: {
|
|
3
|
-
type: "enum";
|
|
4
|
-
values: readonly ["sm", "md", "lg"];
|
|
5
|
-
default: "md";
|
|
6
|
-
};
|
|
7
|
-
radius: {
|
|
8
|
-
type: "enum";
|
|
9
|
-
values: readonly ["md", "full"];
|
|
10
|
-
default: "full";
|
|
11
|
-
};
|
|
12
|
-
asChild: {
|
|
13
|
-
type: "boolean";
|
|
14
|
-
default: false;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
export { controlGroupPropDefs };
|
|
18
|
-
//# sourceMappingURL=controlGroup.props.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controlGroup.props.d.cts","sourceRoot":"","sources":["../../../src/components/controlGroup/controlGroup.props.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;CAgBzB,CAAA;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAA"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
declare const controlGroupPropDefs: {
|
|
2
|
-
size: {
|
|
3
|
-
type: "enum";
|
|
4
|
-
values: readonly ["sm", "md", "lg"];
|
|
5
|
-
default: "md";
|
|
6
|
-
};
|
|
7
|
-
radius: {
|
|
8
|
-
type: "enum";
|
|
9
|
-
values: readonly ["md", "full"];
|
|
10
|
-
default: "full";
|
|
11
|
-
};
|
|
12
|
-
asChild: {
|
|
13
|
-
type: "boolean";
|
|
14
|
-
default: false;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
export { controlGroupPropDefs };
|
|
18
|
-
//# sourceMappingURL=controlGroup.props.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controlGroup.props.d.mts","sourceRoot":"","sources":["../../../src/components/controlGroup/controlGroup.props.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;CAgBzB,CAAA;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAA"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
declare const controlGroupPropDefs: {
|
|
2
|
-
size: {
|
|
3
|
-
type: "enum";
|
|
4
|
-
values: readonly ["sm", "md", "lg"];
|
|
5
|
-
default: "md";
|
|
6
|
-
};
|
|
7
|
-
radius: {
|
|
8
|
-
type: "enum";
|
|
9
|
-
values: readonly ["md", "full"];
|
|
10
|
-
default: "full";
|
|
11
|
-
};
|
|
12
|
-
asChild: {
|
|
13
|
-
type: "boolean";
|
|
14
|
-
default: false;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
export { controlGroupPropDefs };
|
|
18
|
-
//# sourceMappingURL=controlGroup.props.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controlGroup.props.d.ts","sourceRoot":"","sources":["../../../src/components/controlGroup/controlGroup.props.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;CAgBzB,CAAA;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAA"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { asChildPropDef } from "../../_internal/props/asChild.prop.js";
|
|
2
|
-
const controlGroupSizes = ["sm", "md", "lg"];
|
|
3
|
-
const controlGroupRadii = ["md", "full"];
|
|
4
|
-
const controlGroupPropDefs = {
|
|
5
|
-
...asChildPropDef,
|
|
6
|
-
size: {
|
|
7
|
-
type: "enum",
|
|
8
|
-
values: controlGroupSizes,
|
|
9
|
-
default: "md"
|
|
10
|
-
},
|
|
11
|
-
radius: {
|
|
12
|
-
type: "enum",
|
|
13
|
-
values: controlGroupRadii,
|
|
14
|
-
default: "full"
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
export {
|
|
18
|
-
controlGroupPropDefs
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=controlGroup.props.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/controlGroup/controlGroup.props.ts"],
|
|
4
|
-
"sourcesContent": ["import { asChildPropDef } from '../../_internal/props/asChild.prop'\n\nimport type { PropDef } from '../../_internal/props/propDef'\n\nconst controlGroupSizes = ['sm', 'md', 'lg'] as const\nconst controlGroupRadii = ['md', 'full'] as const\n\nconst controlGroupPropDefs = {\n ...asChildPropDef,\n size: {\n type: 'enum',\n values: controlGroupSizes,\n default: 'md',\n },\n radius: {\n type: 'enum',\n values: controlGroupRadii,\n default: 'full',\n },\n} satisfies {\n asChild: PropDef\n size: PropDef<(typeof controlGroupSizes)[number]>\n radius: PropDef<(typeof controlGroupRadii)[number]>\n}\n\nexport { controlGroupPropDefs }\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,sBAAsB;AAI/B,MAAM,oBAAoB,CAAC,MAAM,MAAM,IAAI;AAC3C,MAAM,oBAAoB,CAAC,MAAM,MAAM;AAEvC,MAAM,uBAAuB;AAAA,EAC3B,GAAG;AAAA,EACH,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AACF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: ControlGroup
|
|
3
|
-
status: canonical
|
|
4
|
-
category: Components
|
|
5
|
-
archetype: composite
|
|
6
|
-
depends_on:
|
|
7
|
-
- Select
|
|
8
|
-
- ToggleGroup
|
|
9
|
-
- SegmentedControl
|
|
10
|
-
- Button
|
|
11
|
-
- Separator
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# ControlGroup
|
|
15
|
-
|
|
16
|
-
> Consumer note: this document describes public intent and contracts; the package TypeScript declarations are the exact API.
|
|
17
|
-
|
|
18
|
-
## Purpose
|
|
19
|
-
|
|
20
|
-
Visually groups two or more *unlike* interactive controls (a `Select` next to a `ToggleGroup`, a
|
|
21
|
-
`Button` next to a `SegmentedControl`, etc.) inside one shared bordered frame, so they read as one
|
|
22
|
-
settings cluster instead of separate floating widgets.
|
|
23
|
-
|
|
24
|
-
## Anatomy & slots
|
|
25
|
-
|
|
26
|
-
**Parent:** `ControlGroup` (flat export — no compound sub-components).
|
|
27
|
-
|
|
28
|
-
**Slots:**
|
|
29
|
-
|
|
30
|
-
| Slot | Element | Renders | Notes |
|
|
31
|
-
|---|---|---|---|
|
|
32
|
-
| `ControlGroup` (Root) | `<div>` | Flex container, `role="group"` | Holds any number of DS control children directly — no wrapper slot components. |
|
|
33
|
-
|
|
34
|
-
No named child slots: unlike `InputGroup` (which wraps its children in `InputGroup.Addon` /
|
|
35
|
-
`InputGroup.Text` / `InputGroup.Button` for input-specific semantics), `ControlGroup`'s children
|
|
36
|
-
are consumed as-is. This is the deliberate distinction from `InputGroup` — see Wiring notes.
|
|
37
|
-
|
|
38
|
-
## Props contract
|
|
39
|
-
|
|
40
|
-
| Prop | Type | Default | Required | Description | Responsive |
|
|
41
|
-
|---|---|---|---|---|---|
|
|
42
|
-
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | no | Controls the group's height and inner item padding. | no |
|
|
43
|
-
| `radius` | `'md' \| 'full'` | `'full'` | no | Outer corner radius of the group frame and of the first/last child's outer corners. | no |
|
|
44
|
-
| `asChild` | `boolean` | `false` | no | Renders the root as its child via Radix `Slot` instead of a `div`. | no |
|
|
45
|
-
|
|
46
|
-
Rules:
|
|
47
|
-
|
|
48
|
-
- Every prop in this table must exist in `controlGroup.props.ts`. The runtime prop def is the source.
|
|
49
|
-
- Every prop in `controlGroup.props.ts` must be in this table. Mismatches fail `qa:contracts`.
|
|
50
|
-
- No `Responsive` column values are `yes` — this component does not vary by breakpoint.
|
|
51
|
-
|
|
52
|
-
## CSS class contract
|
|
53
|
-
|
|
54
|
-
**Root class:** `dsx-control-group`
|
|
55
|
-
|
|
56
|
-
**Modifier classes** (driven by `data-*` attributes written by the component):
|
|
57
|
-
|
|
58
|
-
| Attribute | Allowed values | Class | CSS file |
|
|
59
|
-
|---|---|---|---|
|
|
60
|
-
| `data-size` | `sm`, `md`, `lg` | `.dsx-control-group[data-size="sm"]` | `control-group.css` |
|
|
61
|
-
| `data-group-radius` | `md`, `full` | `.dsx-control-group[data-group-radius="md"]`, `.dsx-control-group[data-group-radius="full"]` | `control-group.css` |
|
|
62
|
-
|
|
63
|
-
**Not `data-radius`, deliberately (2026-08-26, real bug found live):** `data-radius` is a
|
|
64
|
-
reserved document-theme attribute — `PortalThemeBoundary`'s `getClosestThemeAttribute(el,
|
|
65
|
-
'data-radius')` walks up the nearest ancestor carrying that attribute to mirror the app's global
|
|
66
|
-
radius setting into portaled content (`Select`/`Dialog`/`Popover`/etc). A component that emits
|
|
67
|
-
its own local `data-radius` between a portal trigger and `<html>` gets picked up *instead of* the
|
|
68
|
-
real document-level value. Confirmed live: a `Select` inside a `ControlGroup radius="full"` frame
|
|
69
|
-
opened its dropdown at `9999px` border-radius (`--dsx-rounded-lg` itself resolved to `9999px` on
|
|
70
|
-
the portaled content), while `<html>` still correctly read `data-radius="md"`. Any future
|
|
71
|
-
component with its own per-instance radius axis should avoid the literal `data-radius` name for
|
|
72
|
-
the same reason — this isn't `ControlGroup`-specific.
|
|
73
|
-
|
|
74
|
-
**Slot classes:** none — flat export, no named slots.
|
|
75
|
-
|
|
76
|
-
**Corner-radius mechanism:**
|
|
77
|
-
|
|
78
|
-
The root paints the visible border/background. Direct children get their shared (inner-facing)
|
|
79
|
-
corners squared and outer corners rounded to match the root, via structural selectors
|
|
80
|
-
(`:first-child`, `:last-child`, `:not(:first-child)`) — the same technique `InputGroup` already
|
|
81
|
-
uses, applied here to children that are complete DS components (Select, ToggleGroup, Button,
|
|
82
|
-
SegmentedControl) rather than raw form parts. A child's own border/shadow/background is
|
|
83
|
-
intentionally left alone — `ControlGroup` only manages corner radius on the two outer edges and a
|
|
84
|
-
1px visual seam between children (a `Separator`-style divider, not a border collapse, since
|
|
85
|
-
children are not assumed to share the exact same border width the way stacked inputs do).
|
|
86
|
-
|
|
87
|
-
**Responsive behavior:**
|
|
88
|
-
|
|
89
|
-
- The component does not write `@media` rules.
|
|
90
|
-
|
|
91
|
-
**Reduced motion:**
|
|
92
|
-
|
|
93
|
-
- No motion — a static layout container.
|
|
94
|
-
|
|
95
|
-
## Token mapping
|
|
96
|
-
|
|
97
|
-
| Property | Token | Role |
|
|
98
|
-
|---|---|---|
|
|
99
|
-
| Background | `var(--dsx-color-surface)` | Group frame surface |
|
|
100
|
-
| Border | `var(--dsx-color-outline-variant)` | Group frame edge |
|
|
101
|
-
| Radius (full) | `var(--dsx-rounded-full)` | Pill frame |
|
|
102
|
-
| Radius (md) | `var(--dsx-rounded-md)` | Rectangular frame |
|
|
103
|
-
| Padding | `var(--dsx-space-xs)` | Inner gutter between frame edge and first/last child |
|
|
104
|
-
| Seam | `var(--dsx-color-outline-variant)` | Divider between adjacent children |
|
|
105
|
-
|
|
106
|
-
Rules:
|
|
107
|
-
|
|
108
|
-
- No raw color, spacing, radius, or motion values in this table or in the CSS file.
|
|
109
|
-
- Accent-driven children (a `ToggleGroup` item's active fill, a `SegmentedControl`'s active
|
|
110
|
-
state) keep their own accent tokens — `ControlGroup` does not repaint or override a child's own
|
|
111
|
-
interactive state, only its outer corner radius.
|
|
112
|
-
|
|
113
|
-
## Motion contract
|
|
114
|
-
|
|
115
|
-
| Region | Token | Default | Reduced |
|
|
116
|
-
|---|---|---|---|
|
|
117
|
-
| Root | `none` | `none` | `none` |
|
|
118
|
-
|
|
119
|
-
## Accessibility
|
|
120
|
-
|
|
121
|
-
**Roles:**
|
|
122
|
-
|
|
123
|
-
- `group` on the root, so assistive tech announces the contained controls as one related cluster.
|
|
124
|
-
|
|
125
|
-
**Keyboard:**
|
|
126
|
-
|
|
127
|
-
- No keyboard handling of its own — each child control owns its own keyboard interaction
|
|
128
|
-
(`Tab` moves between children exactly as it would without the wrapper).
|
|
129
|
-
|
|
130
|
-
**Focus:**
|
|
131
|
-
|
|
132
|
-
- A focused child's own focus ring must remain fully visible — the root's `overflow` stays
|
|
133
|
-
visible (not `hidden`), so a focus ring is never clipped by the group's rounded corners.
|
|
134
|
-
|
|
135
|
-
**Reduced motion:**
|
|
136
|
-
|
|
137
|
-
- N/A — no motion.
|
|
138
|
-
|
|
139
|
-
**Color and meaning:**
|
|
140
|
-
|
|
141
|
-
- N/A — a layout container, no semantic state of its own.
|
|
142
|
-
|
|
143
|
-
**Naming:**
|
|
144
|
-
|
|
145
|
-
- The root's `aria-label` is left to the consumer when the group's purpose isn't obvious from its
|
|
146
|
-
children's own labels (e.g. `<ControlGroup aria-label="Currency and language">`).
|
|
147
|
-
|
|
148
|
-
## Playground demo spec
|
|
149
|
-
|
|
150
|
-
**Default story:**
|
|
151
|
-
|
|
152
|
-
- Renders `ControlGroup` with a `Select` and a `ToggleGroup` child, no extra props.
|
|
153
|
-
- Asserts the root class is `dsx-control-group`.
|
|
154
|
-
|
|
155
|
-
**Variant story** (one per `radius` value):
|
|
156
|
-
|
|
157
|
-
- `radius="full"` and `radius="md"`, asserting `data-group-radius` matches.
|
|
158
|
-
|
|
159
|
-
**State story:**
|
|
160
|
-
|
|
161
|
-
- One child focused (via `Tab`) — asserts the focus ring is not clipped.
|
|
162
|
-
|
|
163
|
-
**Composition story:**
|
|
164
|
-
|
|
165
|
-
- Three children (`Select`, `Separator`-free two-item `ToggleGroup`, `Button`) to prove the
|
|
166
|
-
corner-radius mechanism holds for more than two children.
|
|
167
|
-
|
|
168
|
-
**Token story:**
|
|
169
|
-
|
|
170
|
-
- Rendered inside `Theme` with `accentColor="silver"` and `accentColor="bronze"` — asserts a
|
|
171
|
-
`ToggleGroup` child's active-item fill still resolves to the right accent (proving
|
|
172
|
-
`ControlGroup` doesn't interfere with a child's own accent scoping).
|
|
173
|
-
|
|
174
|
-
**A11y story:**
|
|
175
|
-
|
|
176
|
-
- `vitest-axe` on the composition story.
|
|
177
|
-
|
|
178
|
-
**Props exposed in the playground controls:**
|
|
179
|
-
|
|
180
|
-
| Prop | Control | Default |
|
|
181
|
-
|---|---|---|
|
|
182
|
-
| `size` | `select` | `md` |
|
|
183
|
-
| `radius` | `select` | `full` |
|
|
184
|
-
|
|
185
|
-
## Wiring notes
|
|
186
|
-
|
|
187
|
-
**Composes from:**
|
|
188
|
-
|
|
189
|
-
- Any DS interactive component as a direct child — `Select`, `ToggleGroup`, `SegmentedControl`,
|
|
190
|
-
`Button`, `IconButton` are the ones currently exercised.
|
|
191
|
-
|
|
192
|
-
**Used by:**
|
|
193
|
-
|
|
194
|
-
- Landing header's currency + language cluster (`apps/playground/.../landing/_shared/landing-view.tsx`)
|
|
195
|
-
— the motivating real usage. Previously hand-built as a bordered `Stack` with per-instance CSS
|
|
196
|
-
overrides for corner radius; migrated to `ControlGroup` in the same change that added this spec.
|
|
197
|
-
|
|
198
|
-
**State boundaries:**
|
|
199
|
-
|
|
200
|
-
- Owned by this component: corner-radius/seam geometry only.
|
|
201
|
-
- Owned by the consumer: every child's own value/state — `ControlGroup` never reads or writes a
|
|
202
|
-
child's `value`/`onValueChange`.
|
|
203
|
-
|
|
204
|
-
**Boundary rules:**
|
|
205
|
-
|
|
206
|
-
- App-owned data: which controls are grouped, their values, their change handlers.
|
|
207
|
-
- DS-owned visuals: the group frame's border/background/radius and the inter-child seam.
|
|
208
|
-
|
|
209
|
-
**Distinction from InputGroup:** `InputGroup`'s purpose is input-centric (a text field with
|
|
210
|
-
leading/trailing addons — "Ideal for search fields, URLs, copy/share flows," per its roster row)
|
|
211
|
-
and its convenience sub-components (`Addon`/`Text`/`Button`/`Input`/`Textarea`) assume the group
|
|
212
|
-
is built around exactly one text-entry control. `ControlGroup` has no such assumption — it exists
|
|
213
|
-
for clusters where no single child is "the" input (e.g. two independent selectors). Using
|
|
214
|
-
`InputGroup` for the landing header (checked before building this) would have stretched it past
|
|
215
|
-
its documented purpose for a resemblance in CSS mechanism alone, not a real semantic fit.
|
|
216
|
-
|
|
217
|
-
## Penpot build recipe
|
|
218
|
-
|
|
219
|
-
### Root board
|
|
220
|
-
|
|
221
|
-
- **Name**: `Components / ControlGroup`.
|
|
222
|
-
- **Dimensions**: `auto × auto` (content-sized).
|
|
223
|
-
- **Layout**: `Flex`.
|
|
224
|
-
- **Sizing**: `horizontalSizing = 'auto'`, `verticalSizing = 'auto'`.
|
|
225
|
-
|
|
226
|
-
### Layer tree
|
|
227
|
-
|
|
228
|
-
```
|
|
229
|
-
ControlGroup
|
|
230
|
-
├── Child 1 (e.g. Select instance)
|
|
231
|
-
├── Seam (1px divider)
|
|
232
|
-
└── Child 2 (e.g. ToggleGroup instance)
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
### Token bindings (Penpot properties)
|
|
236
|
-
|
|
237
|
-
| Shape | Property | Token | Token type | Penpot property name |
|
|
238
|
-
|---|---|---|---|---|
|
|
239
|
-
| Root | fill | `--dsx-color-surface` | Color | fills |
|
|
240
|
-
| Root | stroke | `--dsx-color-outline-variant` | Color | strokes |
|
|
241
|
-
| Root | radius | `--dsx-rounded-full` | Radius | corner-radius |
|
|
242
|
-
| Root | padding | `--dsx-space-xs` | Spacing | padding |
|
|
243
|
-
| Seam | fill | `--dsx-color-outline-variant` | Color | fills |
|
|
244
|
-
|
|
245
|
-
### State transformations
|
|
246
|
-
|
|
247
|
-
| State | Root fill | Stroke | Text fill | Shadow |
|
|
248
|
-
|---|---|---|---|---|
|
|
249
|
-
| `default` | `--dsx-color-surface` | `--dsx-color-outline-variant` | n/a (children own their own text) | none |
|
|
250
|
-
|
|
251
|
-
### Variant model
|
|
252
|
-
|
|
253
|
-
- `radius`: `full`, `md`. Default `full`.
|
|
254
|
-
- `size`: `sm`, `md`, `lg`. Default `md`.
|
|
255
|
-
- Total members: `6`.
|
|
256
|
-
|
|
257
|
-
### Validation checklist
|
|
258
|
-
|
|
259
|
-
- [ ] Token bindings resolve at the values `DESIGN.md` describes.
|
|
260
|
-
- [ ] Component is promoted to Main Component under `Components`.
|
|
261
|
-
- [ ] `penpotUtils.shapeStructure(board, 3)` matches the expected hierarchy.
|