@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
|
@@ -5,11 +5,14 @@ category: Components
|
|
|
5
5
|
archetype: adapter-backed
|
|
6
6
|
depends_on:
|
|
7
7
|
- Embla (declared adapter per the roster; the current runtime implements its own slide math, see Anomalies)
|
|
8
|
-
- Icon (lucide-react `ChevronLeft`, `ChevronRight`)
|
|
8
|
+
- Icon (lucide-react `ChevronLeft`, `ChevronRight`, `ChevronUp`, `ChevronDown`)
|
|
9
|
+
- Button
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
# Carousel
|
|
12
13
|
|
|
14
|
+
`asChild` accepts one consumer host containing the normal Viewport/navigation/indicator slots. The package preserves that host and arranges its slots inside it; navigation and slide-count behavior remain the same as the default host.
|
|
15
|
+
|
|
13
16
|
> Consumer note: this document describes public intent and contracts; the package TypeScript declarations are the exact API.
|
|
14
17
|
|
|
15
18
|
## Purpose
|
|
@@ -31,7 +34,7 @@ A horizontal content carousel with optional autoplay, loop, vertical orientation
|
|
|
31
34
|
| `Carousel.Item` | `<div>` | `dsx-carousel__item` | One slide. Flexes to `flex: 0 0 100%` so the track measures by item count. |
|
|
32
35
|
| `Carousel.Previous` | `<button>` | `dsx-carousel__nav`, `dsx-carousel__nav--previous` | Calls `prev` from context. `aria-label="Previous slide"`. |
|
|
33
36
|
| `Carousel.Next` | `<button>` | `dsx-carousel__nav`, `dsx-carousel__nav--next` | Calls `next` from context. `aria-label="Next slide"`. |
|
|
34
|
-
| `Carousel.Indicators` | `<div>` | `dsx-carousel__indicators` | Renders a `<button>` per slide; renders nothing when `slideCount <= 1`. The indicator row
|
|
37
|
+
| `Carousel.Indicators` | `<div>` | `dsx-carousel__indicators` | Renders a `<button>` per slide; renders nothing when `slideCount <= 1`. The indicator row is a named `group` of native buttons; the active button has `aria-disabled="true"`. Each target is 24px with a smaller painted dot. |
|
|
35
38
|
|
|
36
39
|
**Adapter host:**
|
|
37
40
|
|
|
@@ -44,10 +47,10 @@ The current runtime does not use a third-party adapter. The slide transform is c
|
|
|
44
47
|
| Prop | Type | Default | Required | Description | Responsive |
|
|
45
48
|
|---|---|---|---|---|---|
|
|
46
49
|
| `orientation` | `'horizontal' \| 'vertical'` | `'horizontal'` | no | Slide direction. The `orientation` prop def has `className: 'dsx-carousel--'`, so the runtime emits `dsx-carousel--{orientation}` on the root; the CSS only consumes `[data-orientation='vertical']` on the viewport, so the root modifier class is currently a no-op CSS hook (see Anomalies). | no |
|
|
47
|
-
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | no | Drives `data-size` on the root. The size prop def has no `className`, so the runtime only writes the attribute. The CSS
|
|
48
|
-
| `initialIndex` | `number` | `0` | no | Initial slide index.
|
|
49
|
-
| `loop` | `boolean` | `false` | no | When `true`,
|
|
50
|
-
| `autoPlay` | `boolean` | `false` | no | Enables the
|
|
50
|
+
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | no | Drives `data-size` on the root. The size prop def has no `className`, so the runtime only writes the attribute. The CSS consumes this attribute to size the navigation buttons (sm 24px, md 32px, lg 40px). | no |
|
|
51
|
+
| `initialIndex` | `number` | `0` | no | Initial slide index, normalized to a finite integer and clamped to the available slides. An empty carousel stays at zero; removing slides reclamps the index. | no |
|
|
52
|
+
| `loop` | `boolean` | `false` | no | When `true`, manual and automatic navigation wrap around. Otherwise navigation stops at the endpoints and the corresponding nav button is disabled. | no |
|
|
53
|
+
| `autoPlay` | `boolean` | `false` | no | Enables automatic rotation and a built-in stop/start Button before the viewport. No-op with fewer than two slides or reduced motion. Hover pauses temporarily; focus or pointer interaction with slide content/navigation stops until explicitly restarted. | no |
|
|
51
54
|
| `autoPlayInterval` | `number` (ms) | `3000` | no | Autoplay tick interval. | no |
|
|
52
55
|
| `asChild` | `boolean` | `false` | no | Renders the root through `Slot` from `@radix-ui/react-slot`. The slot attachments stay on the same host. | no |
|
|
53
56
|
| `children` | `React.ReactNode` | `undefined` | no | Must include a single `Carousel.Viewport` and may include `Carousel.Indicators`. `Previous` and `Next` are accepted either at the root or inside the viewport. The runtime filters and re-parents the navigation buttons to live inside the viewport. | no |
|
|
@@ -69,11 +72,11 @@ Standard `React.ComponentPropsWithoutRef<'div'>` plus `className`. The slot is `
|
|
|
69
72
|
|
|
70
73
|
### `Carousel.Previous` and `Carousel.Next` props
|
|
71
74
|
|
|
72
|
-
Standard `React.ComponentPropsWithoutRef<'button'>` plus `className`. The runtime
|
|
75
|
+
Standard `React.ComponentPropsWithoutRef<'button'>` plus `className`. The runtime defaults `type` to button, preserves a consumer accessible name, and invokes the consumer click handler before navigation. `preventDefault()` cancels navigation. Disabled applies at non-looping boundaries and with fewer than two slides.
|
|
73
76
|
|
|
74
77
|
### `Carousel.Indicators` props
|
|
75
78
|
|
|
76
|
-
Standard `React.ComponentPropsWithoutRef<'div'>` plus `className`. The runtime renders a
|
|
79
|
+
Standard `React.ComponentPropsWithoutRef<'div'>` plus `className`. The runtime renders a native button per slide; the row is a `group` with `aria-label="Slide indicators"`. The active picker has `aria-disabled="true"`. Returns `null` when `slideCount <= 1`.
|
|
77
80
|
|
|
78
81
|
## CSS class contract
|
|
79
82
|
|
|
@@ -121,8 +124,8 @@ The runtime also writes `dsx-carousel--{orientation}` on the root via the `orien
|
|
|
121
124
|
|
|
122
125
|
**Reduced motion:**
|
|
123
126
|
|
|
124
|
-
- The track transitions `transform` against `var(--dsx-motion-duration-normal)` and `var(--dsx-motion-easing-in-out)`. The runtime
|
|
125
|
-
- Autoplay is JS-driven;
|
|
127
|
+
- The track transitions `transform` against `var(--dsx-motion-duration-normal)` and `var(--dsx-motion-easing-in-out)`. The runtime imports `usePrefersReducedMotion` to gate rotation, and component CSS disables track, nav, and indicator transitions when the query matches.
|
|
128
|
+
- Autoplay is JS-driven; the runtime does not start its interval while the reduced-motion hook matches.
|
|
126
129
|
|
|
127
130
|
## Token mapping
|
|
128
131
|
|
|
@@ -137,12 +140,12 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
|
|
|
137
140
|
| Item size | `flex: 0 0 100%` | Each slide takes the full viewport width or height. |
|
|
138
141
|
| Nav position (vertical center) | `top: 50%` + `translateY(-50%)` | Centering. |
|
|
139
142
|
| Nav size | `var(--dsx-size-lg)` square | Tap target. |
|
|
140
|
-
| Nav border | `var(--dsx-border-width-sm)` + `var(--dsx-color
|
|
143
|
+
| Nav border | `var(--dsx-border-width-sm)` + `var(--dsx-panel-border-color)` | Resting edge. |
|
|
141
144
|
| Nav radius | `var(--dsx-rounded-full)` | Round affordance. |
|
|
142
145
|
| Nav fill | `var(--dsx-color-panel-translucent)` | Resting surface. |
|
|
143
146
|
| Nav text color | `var(--dsx-color-on-surface)` | Glyph color. |
|
|
144
147
|
| Nav z-index | `var(--dsx-z-index-elevated)` | Above the slide content. |
|
|
145
|
-
| Nav shadow | `var(--dsx-shadow-2)` | Resting shadow. |
|
|
148
|
+
| Nav shadow | `var(--dsx-shadow-elevation-2)` | Resting shadow. |
|
|
146
149
|
| Nav hover fill | `var(--dsx-color-surface-raised)` | Hover surface. |
|
|
147
150
|
| Nav hover border | `var(--dsx-color-primary)` | Hover edge. |
|
|
148
151
|
| Nav hover text | `var(--dsx-color-primary)` | Hover glyph color. |
|
|
@@ -151,7 +154,7 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
|
|
|
151
154
|
| Indicator row gap | `var(--dsx-space-xs)` | Gap between indicator dots. |
|
|
152
155
|
| Indicator size | `var(--dsx-space-xs)` square | Dot size. |
|
|
153
156
|
| Indicator radius | `var(--dsx-rounded-full)` | Round dot. |
|
|
154
|
-
| Indicator fill | `var(--dsx-color-outline
|
|
157
|
+
| Indicator fill | `var(--dsx-color-outline)` | Inactive dot. |
|
|
155
158
|
| Indicator active fill | `var(--dsx-color-primary)` | Active dot. |
|
|
156
159
|
| Indicator active width | `var(--dsx-space-md)` | Active dot width. |
|
|
157
160
|
| Indicator motion | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-in-out)` | Active dot transition. |
|
|
@@ -165,9 +168,9 @@ Rules:
|
|
|
165
168
|
|
|
166
169
|
| Region | Token | Default | Reduced |
|
|
167
170
|
|---|---|---|---|
|
|
168
|
-
| Track transform (slide animation) | `var(--dsx-motion-duration-normal)` + `var(--dsx-motion-easing-in-out)` | `translateX(-{currentIndex * 100}%)` or `translateY(-{currentIndex * 100}%)` on transition | `none` —
|
|
169
|
-
| Nav and indicator transitions | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-in-out)` | Background, border, and indicator width transitions | `none` —
|
|
170
|
-
| Autoplay timer | `setInterval(autoPlayInterval, ms)` | Default `3000`ms | The runtime
|
|
171
|
+
| Track transform (slide animation) | `var(--dsx-motion-duration-normal)` + `var(--dsx-motion-easing-in-out)` | `translateX(-{currentIndex * 100}%)` or `translateY(-{currentIndex * 100}%)` on transition | `none` — the component owns a `prefers-reduced-motion` rule. The runtime skips the timer when the reduced-motion hook matches. |
|
|
172
|
+
| Nav and indicator transitions | `var(--dsx-motion-duration-fast)` + `var(--dsx-motion-easing-in-out)` | Background, border, and indicator width transitions | `none` — the component media query disables these transitions. |
|
|
173
|
+
| Autoplay timer | `setInterval(autoPlayInterval, ms)` | Default `3000`ms | The runtime skips the interval when `prefers-reduced-motion: reduce` matches; hover and user pause also stop the interval. |
|
|
171
174
|
|
|
172
175
|
Rules:
|
|
173
176
|
|
|
@@ -178,8 +181,8 @@ Rules:
|
|
|
178
181
|
|
|
179
182
|
**Roles:**
|
|
180
183
|
|
|
181
|
-
- The root
|
|
182
|
-
- `aria-live`
|
|
184
|
+
- The root defaults to `role="group"` with `aria-roledescription="carousel"`; consumers provide a name and may opt into a region role. Internal slide wrappers are numbered groups with `aria-roledescription="slide"`. Offscreen wrappers are aria-hidden and inert, preventing offscreen controls from entering the focus order. Picker controls are grouped buttons rather than incomplete tabs.
|
|
185
|
+
- The track is `aria-live="off"` during rotation and `polite` otherwise, with `aria-atomic="false"`. The rotation control precedes the viewport and supports keyboard and touch. Focusing slide content or navigation stops rotation until explicitly restarted; the stop/start control handles its own focus so activation can restart. Hover pauses while the pointer remains over the carousel.
|
|
183
186
|
|
|
184
187
|
**Keyboard:**
|
|
185
188
|
|
|
@@ -191,25 +194,25 @@ Rules:
|
|
|
191
194
|
|
|
192
195
|
**Focus:**
|
|
193
196
|
|
|
194
|
-
-
|
|
197
|
+
- Arrow and indicator buttons use `--dsx-shadow-focus-ring` on `:focus-visible`, replacing the browser-default outline.
|
|
195
198
|
- The track itself is not focusable.
|
|
196
199
|
|
|
197
200
|
**Reduced motion:**
|
|
198
201
|
|
|
199
|
-
- The
|
|
202
|
+
- The component CSS disables the track, nav, and indicator transitions when `prefers-reduced-motion` matches. The autoplay timer is disabled while the query matches; manual navigation remains available.
|
|
200
203
|
|
|
201
204
|
**Color and meaning:**
|
|
202
205
|
|
|
203
|
-
- The active indicator is communicated by the `--dsx-color-primary` fill and the wider width. Color is not the only signal; the
|
|
206
|
+
- The active indicator is communicated by the `--dsx-color-primary` fill and the wider width. Color is not the only signal; the active picker has `aria-disabled="true"` within a named group of native buttons.
|
|
204
207
|
|
|
205
208
|
**Naming:**
|
|
206
209
|
|
|
207
210
|
- The Previous and Next buttons are auto-labeled `Previous slide` and `Next slide`. The indicator row is labeled `Slide indicators`, and each indicator button is labeled `Go to slide ${index + 1}`.
|
|
208
|
-
-
|
|
211
|
+
- Consumers supply the root name through `aria-label` or `aria-labelledby`. The root does not fabricate a name.
|
|
209
212
|
|
|
210
213
|
## Playground demo spec
|
|
211
214
|
|
|
212
|
-
The
|
|
215
|
+
The shared docs route at `demo_path` renders `/docs/carousel` from `apps/playground/lib/registry/data.tsx`. All examples supply a meaningful root name. The live fixture includes a named picker-only composition with full-width slide content.
|
|
213
216
|
|
|
214
217
|
**Default story:**
|
|
215
218
|
|
|
@@ -234,7 +237,7 @@ The demo file at `demo_path` exposes the component to the playground. The playgr
|
|
|
234
237
|
|
|
235
238
|
**A11y story:**
|
|
236
239
|
|
|
237
|
-
- Uses `vitest-axe` against the rendered default carousel. Asserts the navigation buttons have accessible names and the
|
|
240
|
+
- Uses `vitest-axe` against the rendered default carousel. Asserts the navigation buttons have accessible names and the grouped picker row has an accessible name. Also verify empty/dynamic slides, form containment, cancelable navigation, and offscreen focus isolation.
|
|
238
241
|
|
|
239
242
|
**Props exposed in the playground controls:**
|
|
240
243
|
|
|
@@ -258,7 +261,7 @@ The demo file at `demo_path` exposes the component to the playground. The playgr
|
|
|
258
261
|
|
|
259
262
|
**Used by:**
|
|
260
263
|
|
|
261
|
-
- App-level hero strips, image galleries, testimonial rows, and
|
|
264
|
+
- App-level hero strips, image galleries, testimonial rows, and content surfaces navigated with buttons. Swipe gestures are not implemented by the shipped native runtime. No DS component currently wraps `Carousel`; the pattern is the intended app-side composition.
|
|
262
265
|
|
|
263
266
|
**State boundaries:**
|
|
264
267
|
|
|
@@ -268,15 +271,15 @@ The demo file at `demo_path` exposes the component to the playground. The playgr
|
|
|
268
271
|
**Boundary rules:**
|
|
269
272
|
|
|
270
273
|
- App-owned data: the slide content, the persistence of `currentIndex` (no built-in URL sync), the per-slide analytics, and any keyboard navigation beyond the default focus order.
|
|
271
|
-
- DS-owned visuals: token bindings, the `dsx-carousel` and slot classes, the `data-orientation` and `data-size` attributes, the nav and indicator `aria-label` templates, the
|
|
274
|
+
- DS-owned visuals: token bindings, the `dsx-carousel` and slot classes, the `data-orientation` and `data-size` attributes, the nav and indicator `aria-label` templates, the grouped-button semantics on the picker row, and the autoplay timer interval.
|
|
272
275
|
- When the canonical Embla adapter lands, the DS shell, the slot hierarchy, the class names, and the prop defs stay unchanged. The runtime will swap the in-source slide math for an Embla instance and forward Embla events through the existing `CarouselContext`.
|
|
273
276
|
|
|
274
277
|
**Anomalies** (open items that this spec flags for the next promotion):
|
|
275
278
|
|
|
276
279
|
1. **Adapter mismatch.** The roster and the archetype guide say Carousel is `adapter-backed` with `Embla`. The runtime does not import Embla and does not declare it under `peerDependencies` or `peerDependenciesMeta`. The slide transform is hand-rolled in `CarouselViewport`.
|
|
277
280
|
2. **Orientation modifier class is a no-op.** The `orientation` prop def has `className: 'dsx-carousel--'`, so the runtime emits `dsx-carousel--horizontal` / `dsx-carousel--vertical` on the root. The CSS does not define either class. Visual orientation is driven by `data-orientation` on the viewport and `dsx-carousel__track--vertical` on the track.
|
|
278
|
-
3. **Size
|
|
279
|
-
4. **Autoplay
|
|
281
|
+
3. **Size consumer confirmed.** Navigation buttons consume root `data-size`: sm 24px, md 32px, lg 40px.
|
|
282
|
+
4. **Autoplay controls repaired (2026-10-03).** Reduced motion, hover pause, interaction stop, and a visible stop/start control now gate the timer. Non-looping autoplay respects the endpoint.
|
|
280
283
|
5. **Vertical viewport height has no token.** The CSS uses `var(--dsx-carousel-vertical-height, 320px)`. There is no `--dsx-carousel-vertical-height` token in `tokens/`; the `320px` value is a fallback only.
|
|
281
284
|
|
|
282
285
|
## Penpot build recipe
|
|
@@ -316,11 +319,11 @@ The package does not yet publish a Penpot asset for Carousel. Recipe is visual r
|
|
|
316
319
|
| Viewport | radius | `--dsx-rounded-xl` | Radius | `radius` |
|
|
317
320
|
| Nav | fill | `--dsx-color-panel-translucent` | Color | `fills` |
|
|
318
321
|
| Nav | stroke | `--dsx-color-outline` | Color | `strokes` |
|
|
319
|
-
| Nav | shadow | `--dsx-shadow-2` | Effect | `shadow` |
|
|
322
|
+
| Nav | shadow | `--dsx-shadow-elevation-2` | Effect | `shadow` |
|
|
320
323
|
| Nav (hover) | stroke | `--dsx-color-primary` | Color | `strokes` (state) |
|
|
321
324
|
| Nav (hover) | text | `--dsx-color-primary` | Color | `fills` (state) |
|
|
322
325
|
| Nav (active) | fill | `--dsx-effect-pressed-layer` | Effect | `fills` (state) |
|
|
323
|
-
| Indicator | fill | `--dsx-color-outline
|
|
326
|
+
| Indicator | fill | `--dsx-color-outline` | Color | `fills` |
|
|
324
327
|
| Indicator (active) | fill | `--dsx-color-primary` | Color | `fills` (state) |
|
|
325
328
|
| Track | motion | `--dsx-motion-duration-normal` + `--dsx-motion-easing-in-out` | Motion | `motion` |
|
|
326
329
|
|
|
@@ -328,7 +331,7 @@ The package does not yet publish a Penpot asset for Carousel. Recipe is visual r
|
|
|
328
331
|
|
|
329
332
|
| State | Track transform | Nav fill | Indicator fill |
|
|
330
333
|
|---|---|---|---|
|
|
331
|
-
| `default` | `translateX(-0%)` | `--dsx-color-panel-translucent` | `--dsx-color-outline
|
|
334
|
+
| `default` | `translateX(-0%)` | `--dsx-color-panel-translucent` | `--dsx-color-outline` |
|
|
332
335
|
| `next` | `translateX(-{currentIndex * 100}%)` | `--dsx-color-panel-translucent` | `--dsx-color-primary` (active index) |
|
|
333
336
|
| `nav-hover` | (unchanged) | `--dsx-color-surface-raised` | (unchanged) |
|
|
334
337
|
| `vertical` | `translateY(-{currentIndex * 100}%)` | `--dsx-color-panel-translucent` | (unchanged) |
|
|
@@ -336,7 +339,7 @@ The package does not yet publish a Penpot asset for Carousel. Recipe is visual r
|
|
|
336
339
|
### Variant model
|
|
337
340
|
|
|
338
341
|
- `orientation`: `horizontal`, `vertical`. Default `horizontal`.
|
|
339
|
-
- `size`: `sm`, `md`, `lg`. Default `md`.
|
|
342
|
+
- `size`: `sm`, `md`, `lg`. Default `md`. Navigation buttons and the reserved slide gutter consume this scale.
|
|
340
343
|
- `loop`: `true`, `false`. Default `false`. (Affects wrap-around only; no visual model.)
|
|
341
344
|
- `autoPlay`: `true`, `false`. Default `false`. (Affects motion only; no visual model.)
|
|
342
345
|
- Total members: 2 × 3 = 6 for the visual variant matrix.
|
|
@@ -349,3 +352,23 @@ The package does not yet publish a Penpot asset for Carousel. Recipe is visual r
|
|
|
349
352
|
- [ ] Indicator active state uses both fill and width change so sighted and low-vision users see the same cue.
|
|
350
353
|
- [ ] Previous, Next, and indicator button `aria-label` strings are baked in; do not treat them as themable in Penpot.
|
|
351
354
|
- [ ] When the canonical Embla adapter lands, re-run the spec QA and re-validate the Penpot recipe against the new runtime.
|
|
355
|
+
|
|
356
|
+
## Package review, 2026-10-03
|
|
357
|
+
|
|
358
|
+
The vertical track is exactly one viewport high; each internal slide wrapper occupies one viewport, so `translateY(-100%)` advances one slide. Up/down glyphs and vertically separated controls replace the sideways glyphs. The horizontal layout and named exports remain intact. The root and viewport stay bounded by their container.
|
|
359
|
+
|
|
360
|
+
The indicator hit box is 24px (`size-md`); its `::before` paints the existing 8px dot or 16px active pill. Offscreen slide controls are inert. Runtime-only autoplay props are consumed rather than leaked to the DOM, and the slide-count callback fires on count changes.
|
|
361
|
+
|
|
362
|
+
Research: [WAI APG carousel pattern](https://www.w3.org/WAI/ARIA/apg/patterns/carousel/), using its grouped native-button model and explicit rotation control. The existing Embla migration remains an architectural follow-up; this review repairs the shipped native runtime.
|
|
363
|
+
|
|
364
|
+
## Navigation clearance follow-up, 2026-10-03
|
|
365
|
+
|
|
366
|
+
One internal nav-size variable drives both the button diameter (24/32/40px) and the slide inset. Each occupied inset reserves the button, space-md edge offset, and space-xs clearance. Buttons and slide items use border-box sizing. Large controls therefore remain outside slide content. Size changes control density and reserved space; the consumer owns slide dimensions. Native named buttons remain the navigation implementation.
|
|
367
|
+
|
|
368
|
+
The circular navigation paint has an invisible square pseudo-element across its full button box. This makes the small control's 24px floor real at its corners, as confirmed by elementFromPoint; no visible diameter changes.
|
|
369
|
+
|
|
370
|
+
## Research follow-up, 2026-10-03
|
|
371
|
+
|
|
372
|
+
Round native buttons and grouped pickers remain the chosen model. Control density (24/32/40px) is independent from consumer-owned slide dimensions. A viewport reserves an inset only where a Previous/Next slot exists. Both horizontal controls reserve both sides; a single control reserves its own side; vertical controls share the right-side rail. Without arrows, slides use the full viewport width. Slot-driven `:has()` selectors make this intrinsic rather than viewport-triggered.
|
|
373
|
+
|
|
374
|
+
Component CSS supplies the canonical focus ring for arrows and pickers and disables transitions under reduced motion. Runtime rotation already respects reduced motion. Research references and the existing Embla/swipe boundary remain in the batch decision record. No public prop or dependency changed.
|
|
@@ -37,7 +37,7 @@ A token-aligned chart family that exposes line, bar, pie, donut, radial, and are
|
|
|
37
37
|
|
|
38
38
|
**Adapter host:**
|
|
39
39
|
|
|
40
|
-
`Chart.Line`, `Chart.Bar`,
|
|
40
|
+
`Chart.Line`, `Chart.Bar`, `Chart.Area`, `Chart.Pie`, `Chart.Donut`, and `Chart.Radial` wrap a Recharts `ResponsiveContainer` (`width="100%"`, `height="100%"` — the frame's aspect ratio owns the height, so the svg can never overflow the rounded shell). Cartesian slots (`Line`, `Bar`, `Area`) always render a `CartesianGrid`, `XAxis` keyed by `name`, `YAxis`, the Recharts `Tooltip`, and the Recharts `Legend`, except `Area` with `spark`, which strips axes, grid, legend, and tooltip for stat sparklines. `Pie`/`Donut` render a `Pie` with per-slice `Cell` fills plus tooltip and legend; `Donut` uses an inner radius at 62% of the outer radius and `Radial` renders a `RadialBarChart` progress ring. The single data series is keyed by `value` and uses `var(--dsx-color-primary)` for fill or stroke. Pie and donut slices cycle through `var(--dsx-chart-1)` through `var(--dsx-chart-5)` based on the slice index modulo 5. Line and bar charts reserve an inset margin so axis ticks never clip against the rounded shell, and both axes render without tick or axis lines with muted 12px ticks.
|
|
41
41
|
|
|
42
42
|
**Compatibility exports:**
|
|
43
43
|
|
|
@@ -149,9 +149,9 @@ The type is exported as `ChartDatum` from the package barrel.
|
|
|
149
149
|
|
|
150
150
|
| Attribute | Allowed values | Class | CSS file |
|
|
151
151
|
|---|---|---|---|
|
|
152
|
-
| `data-chart-type` | `line`, `bar`, `pie` | `.dsx-chart[data-chart-type='line']`, `.dsx-chart[data-chart-type='bar']`, `.dsx-chart[data-chart-type='pie']` | `chart.css` |
|
|
152
|
+
| `data-chart-type` | `line`, `bar`, `pie`, `donut`, `radial`, `area` | `.dsx-chart[data-chart-type='line']`, `.dsx-chart[data-chart-type='bar']`, `.dsx-chart[data-chart-type='pie']`, `.dsx-chart[data-chart-type='donut']`, `.dsx-chart[data-chart-type='radial']`, `.dsx-chart[data-chart-type='area']` | `chart.css` |
|
|
153
153
|
|
|
154
|
-
`data-chart-type="pie"`
|
|
154
|
+
`data-chart-type="pie"`, `"donut"`, and `"radial"` override the aspect ratio custom property to `1` for square plots. `data-chart-type="area"` with `data-spark="true"` overrides it to `3` for the spark strip and resets the root min-height to `0`.
|
|
155
155
|
|
|
156
156
|
**Slot classes:**
|
|
157
157
|
|
|
@@ -174,6 +174,8 @@ The type is exported as `ChartDatum` from the package barrel.
|
|
|
174
174
|
- The component does not write `@media` rules. None of its prop defs are `responsive: true`.
|
|
175
175
|
- The component's CSS file is breakpoint-agnostic.
|
|
176
176
|
|
|
177
|
+
- The plot shell has `min-width: 0` and `max-width: 100%` to contain its aspect-ratio sizing in narrow hosts. Grid demo tracks use `minmax(0, 1fr)` so plot intrinsic width cannot expand their cards. Explicit host sizing still applies; this does not set a new shell width.
|
|
178
|
+
|
|
177
179
|
**Reduced motion:**
|
|
178
180
|
|
|
179
181
|
- The component does not add motion of its own. Recharts animation is explicitly disabled via `isAnimationActive={false}` on every primitive. Hover, focus, and selection transitions are expected to honor the global `prefers-reduced-motion` stylesheet when the host application adds them.
|
|
@@ -184,7 +186,7 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
|
|
|
184
186
|
|
|
185
187
|
| Property | Token | Role |
|
|
186
188
|
|---|---|---|
|
|
187
|
-
| Root min-height | `var(--dsx-chart-min-height)` | Minimum chart height when the host width is large. |
|
|
189
|
+
| Root min-height | `var(--dsx-chart-min-height, 240px)` | Minimum chart height when the host width is large. The `240px` fallback mirrors `tokens/component-geometry.json` so the floor holds even when the generated tokens layer is absent. |
|
|
188
190
|
| Root aspect ratio | `var(--dsx-chart-aspect-ratio, 1.7778)` | Default 16:9. Overridden to `1` for pies. |
|
|
189
191
|
| Root border | `var(--dsx-semantic-border)` | Edge. |
|
|
190
192
|
| Root radius | `var(--dsx-rounded-xl)` | Corner roundness. |
|
|
@@ -249,11 +251,17 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
|
|
|
249
251
|
|
|
250
252
|
**Composition story:**
|
|
251
253
|
|
|
252
|
-
- Renders dashboard cards (`Card` + stat header + chart + `Chart.Legend`): a multi-series bar card, a donut card with center total, a radial progress card, and a
|
|
254
|
+
- Renders dashboard cards (`Card` + stat header + chart + `Chart.Legend`): a multi-series bar card, a stacked bar card, a donut card with center total and status-named data, a radial progress card, a full `area` card, a pie card, and a line card on a sunken plot well. Asserts each composition renders real chart content inside a titled card — never a bare chart where a dashboard meaning belongs.
|
|
255
|
+
- Renders the spark-in-`StatCard` composition (`StatCard.Label` + `StatCard.Value` + `Chart.Area spark` + `StatCard.Footer` with `StatCard.Trend`) and the spark-inside-`Card.Content` variant. Both spark hosts are block wrappers with an explicit `min-height` and a definite width (see the host-sizing rule below) — bare content-sized wrappers collapse the spark to 0×0 inside flex-row card content (verified live 2026-09-21).
|
|
253
256
|
|
|
254
257
|
**State story:**
|
|
255
258
|
|
|
256
259
|
- Renders `Chart.Empty` inside a `Chart.Container`. Asserts the empty slot is rendered with `dsx-chart__empty` and no chart data is present.
|
|
260
|
+
- Renders `Skeleton` loading hosts per plot geometry (cartesian 16:9, square, spark strip), each an explicitly-sized host with `aria-busy`. Loading is app-owned: the chart family ships no loading prop by design (see the boundary rules).
|
|
261
|
+
|
|
262
|
+
**Host-sizing rule (demo and apps):**
|
|
263
|
+
|
|
264
|
+
- Every chart story wrapper is a block box with an explicit `min-height` (`280px` cartesian, `320px` square, `96px` spark strip, `280px` radial) and a definite width (`width: 100%`, plus `max-width` for square plots). Card content rows are flex rows, so the wrappers also carry `width: 100%` to fill the row. Never place a chart type — especially `spark` — in a bare content-sized box.
|
|
257
265
|
|
|
258
266
|
**Props exposed in the playground controls:**
|
|
259
267
|
|
|
@@ -263,7 +271,7 @@ The `Chart.Container` exposes only `asChild` from its prop defs. `Chart.Line`, `
|
|
|
263
271
|
|
|
264
272
|
**Composes from:**
|
|
265
273
|
|
|
266
|
-
- `recharts`: the adapter engine. `LineChart`, `BarChart`, `PieChart`, `Line`, `Bar`, `Pie`, `CartesianGrid`, `XAxis`, `YAxis`, `Tooltip`, `Legend`, and `ResponsiveContainer` are imported from `recharts`.
|
|
274
|
+
- `recharts`: the adapter engine. `LineChart`, `BarChart`, `AreaChart`, `PieChart`, `RadialBarChart`, `Line`, `Bar`, `Area`, `Pie`, `RadialBar`, `Cell`, `CartesianGrid`, `XAxis`, `YAxis`, `Tooltip`, `Legend`, and `ResponsiveContainer` are imported from `recharts`. `Scatter`/`ScatterChart`/`ZAxis` are intentionally not imported (see anomaly 5).
|
|
267
275
|
- `@radix-ui/react-slot`: enables `asChild` on the container.
|
|
268
276
|
- `classnames`: used to merge `dsx-chart` with the caller's `className` on every slot.
|
|
269
277
|
|
|
@@ -275,7 +283,7 @@ The `Chart.Container` exposes only `asChild` from its prop defs. `Chart.Line`, `
|
|
|
275
283
|
|
|
276
284
|
- Owned by this component: the DS shell class wiring, the chart palette token references, the `data-chart-type` attribute, the `dsx-chart` and `dsx-chart__*` slot classes, and the `ChartDatum` type.
|
|
277
285
|
- Owned by the adapter: chart math, axis math, tooltip rendering, the Recharts legend, animation, and the responsive size observer.
|
|
278
|
-
- Owned by the consumer: the data array, the semantic meaning of the data, custom tooltips, custom axis formatting, and any deviation from the single-series single-axis default.
|
|
286
|
+
- Owned by the consumer: the data array, the semantic meaning of the data, custom tooltips, custom axis formatting, the host box that gives the shell a definite size (explicit `min-height` + width per the host-sizing rule), loading placeholders (`Skeleton` in an explicitly-sized host — there is intentionally no chart loading prop), and any deviation from the single-series single-axis default.
|
|
279
287
|
|
|
280
288
|
**Boundary rules:**
|
|
281
289
|
|
|
@@ -292,6 +300,12 @@ The `Chart.Container` exposes only `asChild` from its prop defs. `Chart.Line`, `
|
|
|
292
300
|
|
|
293
301
|
4. **Chart.Legend's missing color swatches were a symptom of the Cell bug, not a separate defect.** The Recharts `<Legend>` component (aliased as `RechartsLegend`, used inside `ChartBar`, `ChartLine`, and `ChartPie`) automatically derives each series/slice's swatch color from its corresponding fill value. When `<Cell>` elements were not rendering (bug #2 above), the legend had no per-slice fill to read, so every swatch rendered with the default color. Fixing the Cell bug (adding explicit Cell elements with correct fill values) automatically corrected the legend swatches as a side effect — no separate CSS or component fix was needed for the legend itself.
|
|
294
302
|
|
|
303
|
+
5. **Bubble/scatter gap verdict (F12, 2026-09-21): DEFERRED, not added.** Finance-dashboard reference imagery shows bubble charts alongside bars/radials. The adapter supports it — `recharts@3.8.1` ships `ScatterChart`, `Scatter`, `XAxis`/`YAxis` (numeric mode), and `ZAxis`. The package still does not add `Chart.Scatter`/`Chart.Bubble`, for three reasons: (a) scatter/bubble needs numeric x/y axes plus a z-scale, which breaks the family's `name`-keyed category-axis + `ChartDatum` (`{ name, value }`) contract that every slot, the palette auto-mapping, and `qa:contracts` assume — it would be a second data contract, not a seventh slot; (b) neither F12 reference demands it (antd core has no charts; the dashboard has one bespoke bar), so there is no app-side correlation/distribution need to design against; (c) the F12 brief verdict is verify-only ("no anatomy change"), and a scatter slot is new anatomy. Revisit when an app needs correlation/distribution plots: add `Chart.Scatter` with its own `{ x, y, z? }` datum shape, numeric-axis contract, and `ZAxis` range mapping — do not shoehorn it into `ChartDatum`.
|
|
304
|
+
|
|
305
|
+
6. **Spark collapsed to 0×0 in the playground demo (F12, 2026-09-21).** The Conversion-rate spark (`ChartArea spark` in a bare `<div style={{ marginTop: 8 }}>` inside flex-row `Card.Content`) measured `0×0` with no svg: `spark` sets `min-height: 0`, so with no definite size on either axis the 3:1 aspect ratio cannot resolve, and the `ResponsiveContainer` percentage child contributes no intrinsic size for the flex item to transfer. Non-spark types survived only via the 240px min-height transfer. This is a host-sizing failure, not a shell bug — the shell intentionally keeps the spark floor at 0 (a 240px floor inside a ~60px spark cell renders cropped). FIXED demo-side: every chart story wrapper is now a block box with an explicit `min-height` and definite width per the host-sizing rule; apps must do the same. No shell layout change (a shell-level `width: 100%` would retarget every app's flex-row chart heights — breaking).
|
|
306
|
+
|
|
307
|
+
7. **Loading has no chart prop by design (F12, 2026-09-21).** Empty is DS-owned (`Chart.Empty`); loading is app-owned (`Skeleton` in an explicitly-sized host, `aria-busy` on the wrapper). The demo shows one skeleton host per plot geometry (cartesian, square, spark strip) and the suite covers empty-data renders per type. Do not add `isLoading`/`fallback` props to the chart slots without a spec-first API decision.
|
|
308
|
+
|
|
295
309
|
## Penpot build recipe
|
|
296
310
|
|
|
297
311
|
> Optional. Penpot is a visual reference, not a code authority. The package source is the only authority.
|
|
@@ -356,3 +370,7 @@ The `Chart.Container` exposes only `asChild` from its prop defs. `Chart.Line`, `
|
|
|
356
370
|
- [ ] Token bindings resolve at the values `DESIGN.md` describes.
|
|
357
371
|
- [ ] Component is promoted to Main Component under `Components`.
|
|
358
372
|
- [ ] `penpotUtils.shapeStructure(board, 3)` matches the expected hierarchy.
|
|
373
|
+
|
|
374
|
+
## Package review, 2026-10-03
|
|
375
|
+
|
|
376
|
+
Pie and donut use measured container dimensions and legend height to cap the radius at 100 while shrinking to the available plot area (including the Recharts default 5px plot margins). Large plots retain the 100/62 radius pair. The donut center label excludes the measured legend band, so wrapping the legend does not shift the label away from the ring. Long center-label content wraps inside the shell. No viewport breakpoint or new public prop is introduced.
|
|
@@ -83,6 +83,10 @@ Rules:
|
|
|
83
83
|
|
|
84
84
|
- The component does not write `@media` rules. `size` is single-value only; the prop def is not `responsive: true`.
|
|
85
85
|
|
|
86
|
+
**Hit area:**
|
|
87
|
+
|
|
88
|
+
- The visual box stays 20/24/32px per `size`, but a `::before` layer extends the pointer target to 44px (WCAG 2.5.8 minimum 24px, TMA touch 44px). Absolutely positioned — never affects layout.
|
|
89
|
+
|
|
86
90
|
**Reduced motion:**
|
|
87
91
|
|
|
88
92
|
- The `transition` properties on `dsx-checkbox` collapse to `none` when `@media (prefers-reduced-motion: reduce)` matches. The rule is in `checkbox.css`.
|