@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,7 +5,8 @@ category: Components
|
|
|
5
5
|
archetype: composite
|
|
6
6
|
depends_on:
|
|
7
7
|
- "@radix-ui/react-slot (powers `asChild` on the root, list, item, link, and ellipsis slots)"
|
|
8
|
-
- Icon (the `chevron-left` / `chevron-right` glyphs on `Previous` / `Next`; the `dots-horizontal` glyph on `Ellipsis`)
|
|
8
|
+
- Icon (the `chevron-left` / `chevron-right` glyphs on `Previous` / `Next`; the `chevrons-left` / `chevrons-right` glyphs on `First` / `Last`; the `dots-horizontal` glyph on `Ellipsis`)
|
|
9
|
+
- Select (powers `Pagination.PageSize`; the option list rides the shared menu tier)
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
# Pagination
|
|
@@ -14,11 +15,11 @@ depends_on:
|
|
|
14
15
|
|
|
15
16
|
## Purpose
|
|
16
17
|
|
|
17
|
-
A page-based dataset navigation surface that exposes the previous, next, and numbered links, an ellipsis for truncated ranges, an info summary, and a page-size selector. The DS `Pagination` is a flat composite (no Radix primitive), built directly on HTML elements plus the `Slot` helper for `asChild`. It is the canonical surface for page-based datasets; the roster lists `Button` as a composed-from surface because the page links render as button or anchor elements.
|
|
18
|
+
A page-based dataset navigation surface that exposes the previous, next, and numbered links, an ellipsis for truncated ranges, an info summary, a static page-status indicator, and a page-size selector. The DS `Pagination` is a flat composite (no Radix primitive), built directly on HTML elements plus the `Slot` helper for `asChild`. It is the canonical surface for page-based datasets; the roster lists `Button` as a composed-from surface because the page links render as button or anchor elements.
|
|
18
19
|
|
|
19
20
|
## 2.6 contract
|
|
20
21
|
|
|
21
|
-
`PaginationBar` uses seven page slots whenever more than seven pages exist, including expanded boundary neighbours so first, middle, and final windows have equal width. `messages` localizes range formatting, zero results, previous/next labels, and page-
|
|
22
|
+
`PaginationBar` uses seven page slots whenever more than seven pages exist, including expanded boundary neighbours so first, middle, and final windows have equal width. `messages` localizes range formatting, zero results, previous/next/first/last labels, page-size options, and the page-input `Page` / `of M` text. English remains default; a Russian formatter such as `(start, end, total) => `${start}–${end} из ${total}`` produces `1–8 из 47`. First/Last links and the page-jump input are opt-in (`showFirstLast`, `showPageInput`, both default `false`) so existing bars render unchanged.
|
|
22
23
|
|
|
23
24
|
## Anatomy & slots
|
|
24
25
|
|
|
@@ -34,11 +35,15 @@ A page-based dataset navigation surface that exposes the previous, next, and num
|
|
|
34
35
|
| `Pagination.Link` | `<a>` (when `href` is set and not disabled), `<button>` (otherwise), or `Slot` child when `asChild` | `dsx-pagination__link` + `--active` modifier (when active) + `--disabled` modifier (when disabled) + optional `data-disabled` + `aria-current="page"` (when active) + `aria-disabled` (when disabled) | A page link. |
|
|
35
36
|
| `Pagination.Previous` | wraps `Pagination.Link` | `dsx-pagination__link--edge` + `chevron-left` icon + default `aria-label="Previous page"` + default text `Previous` | The previous-page link. |
|
|
36
37
|
| `Pagination.Next` | wraps `Pagination.Link` | `dsx-pagination__link--edge` + `chevron-right` icon + default `aria-label="Next page"` + default text `Next` | The next-page link. |
|
|
38
|
+
| `Pagination.First` | wraps `Pagination.Link` | `dsx-pagination__link--edge` + `chevrons-left` icon + default `aria-label="First page"` + default text `First` | The first-page link (round-2 gap fill). Opt-in via `showFirstLast` on `PaginationBar` / `DataTablePagination`. |
|
|
39
|
+
| `Pagination.Last` | wraps `Pagination.Link` | `dsx-pagination__link--edge` + `chevrons-right` icon + default `aria-label="Last page"` + default text `Last` | The last-page link (round-2 gap fill). Opt-in via `showFirstLast` on `PaginationBar` / `DataTablePagination`. |
|
|
40
|
+
| `Pagination.PageInput` | `<span>` wrapping a native `<input type="number">` | `dsx-pagination__page-input` + `aria-label="Page number, page N of M"` on the input + visible `Page` / `of M` text | Direct page jump (round-2 gap fill: "Page N of M"). Opt-in via `showPageInput` on `PaginationBar` / `DataTablePagination`. Commits on Enter or blur, clamped to `1..totalPages`. |
|
|
37
41
|
| `Pagination.Ellipsis` | `<span>` (or `Slot` child when `asChild`) | `dsx-pagination__ellipsis` + `aria-hidden="true"` + `dots-horizontal` icon | A non-interactive truncation marker. |
|
|
38
42
|
| `Pagination.Info` | `<span>` | `dsx-pagination__info` | A summary of the visible range (for example `Showing 21–40 of 137`). |
|
|
39
|
-
| `Pagination.
|
|
43
|
+
| `Pagination.Status` | `<span role="status">` | `dsx-pagination__status` | A static page position (for example `Page 1 of 2`). The non-interactive counterpart to `PageInput`: consumers show Status or the Info range, never both (same dedup rule `DataTablePagination` applies in dense mode). `formatStatus` localizes the text; English default. |
|
|
44
|
+
| `Pagination.PageSize` | shared `Select` | `dsx-pagination__page-size` on the trigger | The page-size selector with the standard `[10, 25, 50, 100]` options. The open list is Select content, so it paints in the design language and inherits the shared floating tier. |
|
|
40
45
|
|
|
41
|
-
The roster's `Parent / Slots` column lists `Pagination.Root`, `Pagination.List`, `Pagination.Item`, `Pagination.Link`, `Pagination.Previous`, `Pagination.Next`, `Pagination.Ellipsis`, `Pagination.Info`, `Pagination.PageSize`. The source exports `Pagination` as the root (no `Object.assign` accessor for `.Root`) and the rest as named exports; `Pagination.Content` is an alias of `Pagination.List`. The spec records the runtime shape; the roster's `Pagination.Root` style is the would-be public API if a `Root` accessor were added.
|
|
46
|
+
The roster's `Parent / Slots` column lists `Pagination.Root`, `Pagination.List`, `Pagination.Item`, `Pagination.Link`, `Pagination.Previous`, `Pagination.Next`, `Pagination.First`, `Pagination.Last`, `Pagination.Ellipsis`, `Pagination.Info`, `Pagination.Status`, `Pagination.PageInput`, `Pagination.PageSize`. The source exports `Pagination` as the root (no `Object.assign` accessor for `.Root`) and the rest as named exports; `Pagination.Content` is an alias of `Pagination.List`. The spec records the runtime shape; the roster's `Pagination.Root` style is the would-be public API if a `Root` accessor were added.
|
|
42
47
|
|
|
43
48
|
## Props contract
|
|
44
49
|
|
|
@@ -85,6 +90,32 @@ The roster's `Parent / Slots` column lists `Pagination.Root`, `Pagination.List`,
|
|
|
85
90
|
| `className` | `string` | `undefined` | no | Extra classes appended to the edge modifier. | no |
|
|
86
91
|
| `children` | `React.ReactNode` | `'Previous'` / `'Next'` | no | The text shown next to the chevron. | no |
|
|
87
92
|
|
|
93
|
+
### `Pagination.First` and `Pagination.Last`
|
|
94
|
+
|
|
95
|
+
Same surface as `Previous` / `Next` (thin wrappers over `Link`), with defaults `aria-label="First page"` / `"Last page"` and children `"First"` / `"Last"`.
|
|
96
|
+
|
|
97
|
+
| Prop | Type | Default | Required | Description | Responsive |
|
|
98
|
+
|---|---|---|---|---|---|
|
|
99
|
+
| `active` | `boolean` | `false` | no | Forwarded to the underlying `Pagination.Link`. | no |
|
|
100
|
+
| `disabled` | `boolean` | `false` | no | Forwarded to the underlying `Pagination.Link`. | no |
|
|
101
|
+
| `asChild` | `boolean` | `false` | no | Forwarded to the underlying `Pagination.Link`. | no |
|
|
102
|
+
| `href` | `string` | `undefined` | no | Forwarded to the underlying `Pagination.Link`. | no |
|
|
103
|
+
| `aria-label` | `string` | `'First page'` / `'Last page'` | no | Landmark label. The default is applied when the consumer does not pass one. | no |
|
|
104
|
+
| `className` | `string` | `undefined` | no | Extra classes appended to the edge modifier. | no |
|
|
105
|
+
| `children` | `React.ReactNode` | `'First'` / `'Last'` | no | The text shown next to the chevron. | no |
|
|
106
|
+
|
|
107
|
+
### `Pagination.PageInput`
|
|
108
|
+
|
|
109
|
+
| Prop | Type | Default | Required | Description | Responsive |
|
|
110
|
+
|---|---|---|---|---|---|
|
|
111
|
+
| `page` | `number` | (required) | yes | Current 1-based page. The input shows this value until the consumer types a draft. | no |
|
|
112
|
+
| `totalPages` | `number` | (required) | yes | Total page count. Clamps commits to `1..max(1, totalPages)` and renders the `of M` text. | no |
|
|
113
|
+
| `onPageChange` | `(page: number) => void` | (required) | yes | Called with the clamped page on Enter or blur. Non-numeric drafts are discarded. | no |
|
|
114
|
+
| `pageLabel` | `React.ReactNode` | `'Page'` | no | Visible label before the input. | no |
|
|
115
|
+
| `formatOf` | `(totalPages: number) => React.ReactNode` | `` (t) => `of ${t}` `` | no | Renders the visible `of M` text after the input. | no |
|
|
116
|
+
| `aria-label` | `string` | `'Page number, page N of M'` | no | Accessible name on the input. The default is applied when the consumer does not pass one. | no |
|
|
117
|
+
| `className` | `string` | `undefined` | no | Extra classes appended to `dsx-pagination__page-input`. | no |
|
|
118
|
+
|
|
88
119
|
### `Pagination.Ellipsis`
|
|
89
120
|
|
|
90
121
|
| Prop | Type | Default | Required | Description | Responsive |
|
|
@@ -101,19 +132,29 @@ The roster's `Parent / Slots` column lists `Pagination.Root`, `Pagination.List`,
|
|
|
101
132
|
| `offset` | `number` | (required) | yes | Zero-based offset of the first record on the current page. | no |
|
|
102
133
|
| `limit` | `number` | (required) | yes | Page size. The end of the range is `min(offset + limit, totalCount)`. | no |
|
|
103
134
|
| `className` | `string` | `undefined` | no | Extra classes appended to `dsx-pagination__info`. | no |
|
|
135
|
+
| `formatRange` | `(start: number, end: number, totalCount: number) => React.ReactNode` | `` (s, e, t) => `Showing ${s}–${e} of ${t}` `` | no | Renders the visible range text. | no |
|
|
136
|
+
|
|
137
|
+
### `Pagination.Status`
|
|
138
|
+
|
|
139
|
+
| Prop | Type | Default | Required | Description | Responsive |
|
|
140
|
+
|---|---|---|---|---|---|
|
|
141
|
+
| `page` | `number` | (required) | yes | Current 1-based page. Clamped for display to `1..max(1, totalPages)`. | no |
|
|
142
|
+
| `totalPages` | `number` | (required) | yes | Total page count. | no |
|
|
143
|
+
| `formatStatus` | `(page: number, totalPages: number) => React.ReactNode` | `` (p, t) => `Page ${p} of ${t}` `` | no | Renders the visible status text. | no |
|
|
144
|
+
| `className` | `string` | `undefined` | no | Extra classes appended to `dsx-pagination__status`. | no |
|
|
104
145
|
|
|
105
146
|
### `Pagination.PageSize`
|
|
106
147
|
|
|
107
148
|
| Prop | Type | Default | Required | Description | Responsive |
|
|
108
149
|
|---|---|---|---|---|---|
|
|
109
150
|
| `value` | `number` | (required) | yes | Current page size. | no |
|
|
110
|
-
| `options` | `number[]` | `[
|
|
111
|
-
| `onChange` | `(limit: number) => void` | (required) | yes | Called with the parsed numeric value when the consumer
|
|
151
|
+
| `options` | `number[]` | `[10, 25, 50, 100]` | no | Available page-size options. | no |
|
|
152
|
+
| `onChange` | `(limit: number) => void` | (required) | yes | Called with the parsed numeric value when the consumer picks an option. | no |
|
|
112
153
|
| `className` | `string` | `undefined` | no | Extra classes appended to `dsx-pagination__page-size`. | no |
|
|
113
154
|
|
|
114
155
|
Rules:
|
|
115
156
|
|
|
116
|
-
- The root, list, item, link, and ellipsis slots all run through `extractProps` with the matching prop def bag. `Previous` and `
|
|
157
|
+
- The root, list, item, link, and ellipsis slots all run through `extractProps` with the matching prop def bag. `Previous`, `Next`, `First`, and `Last` are thin wrappers over `Link` and inherit the prop surface.
|
|
117
158
|
- `Link` is polymorphic: it renders `<a>` when `href` is set and the link is not `disabled`, otherwise `<button type="button" disabled>` when `disabled`, otherwise `Slot` when `asChild` is set. The `aria-current`, `aria-disabled`, and `data-disabled` attributes are written in every branch.
|
|
118
159
|
|
|
119
160
|
## CSS class contract
|
|
@@ -138,8 +179,11 @@ Rules:
|
|
|
138
179
|
| `Pagination.Link` (active) | `dsx-pagination__link--active` | `pagination.css` |
|
|
139
180
|
| `Pagination.Link` (disabled) | `dsx-pagination__link--disabled` | `pagination.css` |
|
|
140
181
|
| `Pagination.Previous` / `Pagination.Next` | `dsx-pagination__link` + `dsx-pagination__link--edge` | `pagination.css` |
|
|
182
|
+
| `Pagination.First` / `Pagination.Last` | `dsx-pagination__link` + `dsx-pagination__link--edge` | `pagination.css` |
|
|
183
|
+
| `Pagination.PageInput` | `dsx-pagination__page-input` | `pagination.css` |
|
|
141
184
|
| `Pagination.Ellipsis` | `dsx-pagination__ellipsis` | `pagination.css` |
|
|
142
185
|
| `Pagination.Info` | `dsx-pagination__info` | `pagination.css` |
|
|
186
|
+
| `Pagination.Status` | `dsx-pagination__status` | `pagination.css` |
|
|
143
187
|
| `Pagination.PageSize` | `dsx-pagination__page-size` | `pagination.css` |
|
|
144
188
|
|
|
145
189
|
**Responsive behavior:**
|
|
@@ -170,7 +214,7 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
|
|
|
170
214
|
| Link typography | `var(--dsx-typography-label-large-*)` | Font family, size, weight. |
|
|
171
215
|
| Link hover background | `var(--dsx-effect-hover-ghost)` | Hover surface. |
|
|
172
216
|
| Link focus ring | `var(--dsx-shadow-focus-ring)` | `:focus-visible` ring. |
|
|
173
|
-
| Link active background | `var(--dsx-color-accent-
|
|
217
|
+
| Link active background | `var(--dsx-color-accent-track)` | Active fill (fill step, vivid in both themes — the text-step `accent-indicator` renders near-black in light theme). |
|
|
174
218
|
| Link active color | `var(--dsx-color-on-primary)` | Active text. |
|
|
175
219
|
| Link active weight | `var(--dsx-typography-label-large-font-weight, 600)` | Active weight. |
|
|
176
220
|
| Link edge color | `var(--dsx-color-on-surface-variant)` | Edge variant text. |
|
|
@@ -179,12 +223,23 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
|
|
|
179
223
|
| Ellipsis color | `var(--dsx-color-on-surface-variant)` | Ellipsis text. |
|
|
180
224
|
| Info color | `var(--dsx-color-on-surface-variant)` | Info text. |
|
|
181
225
|
| Info typography | `var(--dsx-typography-body-medium-*)` | Info font family and size. |
|
|
182
|
-
| PageSize height | `var(--dsx-size-lg)` |
|
|
226
|
+
| PageSize height | `var(--dsx-size-lg)` | Trigger height. |
|
|
227
|
+
| PageSize min-width | `8rem` | Fits the `N per page` label. |
|
|
183
228
|
| PageSize padding | `0 var(--dsx-space-sm)` | Internal gutter. |
|
|
184
|
-
| PageSize border | `var(--dsx-border-width-sm) solid var(--dsx-color-outline)` |
|
|
185
|
-
| PageSize
|
|
186
|
-
| PageSize typography | `var(--dsx-typography-label-large-*)` | Select font family and size. |
|
|
229
|
+
| PageSize border | `var(--dsx-border-width-sm) solid var(--dsx-color-outline)` | Trigger edge. |
|
|
230
|
+
| PageSize typography | `var(--dsx-typography-label-large-*)` | Trigger font family and size. |
|
|
187
231
|
| PageSize focus ring | `var(--dsx-shadow-focus-ring)` | `:focus-visible` ring. |
|
|
232
|
+
| PageSize option list | (shared `Select` tokens) | The open list rides `select.css` and the shared menu tier. |
|
|
233
|
+
| PageInput text | `var(--dsx-color-on-surface-variant)` | `Page` / `of M` label text. |
|
|
234
|
+
| PageInput typography | `var(--dsx-typography-body-medium-*)` | Label font family and size. |
|
|
235
|
+
| PageInput input width | `var(--dsx-size-3xl)` | Fixed input width for 2–3 digit pages. |
|
|
236
|
+
| PageInput input height | `var(--dsx-size-lg)` | Input height matching link touch targets. |
|
|
237
|
+
| PageInput input padding | `0 var(--dsx-space-sm)` | Internal gutter. |
|
|
238
|
+
| PageInput input border | `var(--dsx-border-width-sm) solid var(--dsx-color-outline)` | Input edge. |
|
|
239
|
+
| PageInput input radius | `var(--dsx-rounded-md)` | Corner roundness. |
|
|
240
|
+
| PageInput input background | `var(--dsx-color-surface)` | Input surface. |
|
|
241
|
+
| PageInput input color | `var(--dsx-color-on-surface)` | Input text. |
|
|
242
|
+
| PageInput focus ring | `var(--dsx-shadow-focus-ring)` | `:focus-visible` ring. |
|
|
188
243
|
| Motion duration | `var(--dsx-motion-duration-fast, 150ms)` | Link transitions. |
|
|
189
244
|
| Motion easing | `var(--dsx-motion-easing-standard, ease)` | Link easing. |
|
|
190
245
|
|
|
@@ -210,9 +265,12 @@ Rules:
|
|
|
210
265
|
- `Pagination.List` is a `<ul>`; `Pagination.Item` is a `<li>`.
|
|
211
266
|
- `Pagination.Link` is an `<a>` (or a `<button disabled>` when `disabled` and no `href`, or a `Slot` child when `asChild`). The active link carries `aria-current="page"`. The disabled link carries `aria-disabled`.
|
|
212
267
|
- `Pagination.Previous` and `Pagination.Next` carry an `aria-label` (default `Previous page` / `Next page`).
|
|
268
|
+
- `Pagination.First` and `Pagination.Last` carry an `aria-label` (default `First page` / `Last page`).
|
|
269
|
+
- `Pagination.PageInput` is a native number `<input>` with a default `aria-label="Page number, page N of M"`. The visible `Page` / `of M` text is presentational; the input stays operable by keyboard (type, Enter to commit, blur to commit).
|
|
213
270
|
- `Pagination.Ellipsis` is a non-interactive `<span aria-hidden="true">`.
|
|
214
271
|
- `Pagination.Info` is a non-interactive `<span>`.
|
|
215
|
-
- `Pagination.
|
|
272
|
+
- `Pagination.Status` is a non-interactive `<span role="status">` announcing the current page position.
|
|
273
|
+
- `Pagination.PageSize` is the shared `Select` with the standard option semantics.
|
|
216
274
|
|
|
217
275
|
**Keyboard:**
|
|
218
276
|
|
|
@@ -221,11 +279,11 @@ Rules:
|
|
|
221
279
|
| `Tab` | Moves focus to or from the pagination landmark. |
|
|
222
280
|
| `Enter` (focused link) | Activates the link. |
|
|
223
281
|
| `Space` (focused link) | Activates the link. |
|
|
224
|
-
| `Tab` (focused `PageSize`) |
|
|
282
|
+
| `Tab` (focused `PageSize`) | Opens the option list; arrows move, Enter picks. |
|
|
225
283
|
|
|
226
284
|
**Focus:**
|
|
227
285
|
|
|
228
|
-
- The CSS file paints a `var(--dsx-shadow-focus-ring)` ring on `:focus-visible` for the link and the page-size
|
|
286
|
+
- The CSS file paints a `var(--dsx-shadow-focus-ring)` ring on `:focus-visible` for the link and the page-size trigger. The ring stays visible on dark and light surfaces.
|
|
229
287
|
|
|
230
288
|
**Reduced motion:**
|
|
231
289
|
|
|
@@ -239,6 +297,11 @@ Rules:
|
|
|
239
297
|
|
|
240
298
|
- The `Pagination` landmark has a default `aria-label="Pagination"`. The edge links have default `aria-label` values (`Previous page`, `Next page`). Override the labels when the landmark or edge needs product-specific copy.
|
|
241
299
|
|
|
300
|
+
**Responsive (narrow shells):**
|
|
301
|
+
|
|
302
|
+
- `PaginationBar` wraps into stacked rows (info → controls) with no width breakpoints; the pager list wraps its page links the same way. Verified at 320px: zero overflowing descendants, desktop single-row layout unchanged. Narrow stacking is component behavior, not composition guidance — screens arrange the bar, never its internals.
|
|
303
|
+
- Opt-in `dense` mode (`PaginationBar`, mirrored on `DataTablePagination`): info summary + pager only. The page-size block is omitted, and on `DataTablePagination` the "Page X of Y" status (which duplicates the info range) is omitted with it. Default behavior is unchanged — narrow shells opt in explicitly; the component never decides by width, so no breakpoint, container query, or resize observer is involved. Narrow shells that let users choose page size keep the default mode.
|
|
304
|
+
|
|
242
305
|
## Playground demo spec
|
|
243
306
|
|
|
244
307
|
**Default story:**
|
|
@@ -256,6 +319,12 @@ Rules:
|
|
|
256
319
|
**Composition story:**
|
|
257
320
|
|
|
258
321
|
- Renders a `Pagination.List` with `Previous`, an `Ellipsis`, numbered links, another `Ellipsis`, and `Next`. Asserts the list, the ellipsis (with `aria-hidden="true"`), and the edge links all render with their classes.
|
|
322
|
+
- Renders `First` and `Last` edge links with default `aria-label="First page"` / `"Last page"` and the `dsx-pagination__link--edge` modifier.
|
|
323
|
+
- Renders a `PageInput` with `page` / `totalPages`; asserts the input carries the page-number label and commits a clamped page on Enter.
|
|
324
|
+
|
|
325
|
+
**PaginationBar story:**
|
|
326
|
+
|
|
327
|
+
- Renders `PaginationBar` with `showFirstLast` and `showPageInput`; asserts First/Last links and the page-jump input render alongside info, page-size, and numbered links. Without the flags the bar renders info + page-size + Previous/numbered/Next only (default, unchanged). With `dense`, asserts the page-size block is absent and info + pager remain.
|
|
259
328
|
|
|
260
329
|
**Token story:**
|
|
261
330
|
|
|
@@ -277,11 +346,13 @@ Rules:
|
|
|
277
346
|
|
|
278
347
|
- `@radix-ui/react-slot`: enables `asChild` on the root, list, item, link, and ellipsis slots.
|
|
279
348
|
- `_internal/helpers/extractProps`: turns the prop defs into merged class + style output.
|
|
280
|
-
- `Icon`: the `chevron-left` / `chevron-right` glyphs on `Previous` / `Next`; the `dots-horizontal` glyph on `Ellipsis`.
|
|
349
|
+
- `Icon`: the `chevron-left` / `chevron-right` glyphs on `Previous` / `Next`; the `chevrons-left` / `chevrons-right` glyphs on `First` / `Last`; the `dots-horizontal` glyph on `Ellipsis`.
|
|
350
|
+
- `Select`: powers the `PageSize` trigger and option list.
|
|
281
351
|
|
|
282
352
|
**Used by:**
|
|
283
353
|
|
|
284
354
|
- App-level paginated lists. The roster lists `DataTable` as a consumer because the table wraps `Pagination` for its bottom toolbar.
|
|
355
|
+
- `DataTable` positions its pagination footer via `paginationPosition` (`top` / `bottom` / `both`, default `bottom`) and justifies it via `paginationAlign` (`start` / `center` / `end`; unset keeps info-left/controls-right). `DataTable` passes `paginationFirstLast` / `paginationPageInput` through to its internal `DataTablePagination` (`showFirstLast` / `showPageInput`). Placement is a `DataTable`-side concern; this spec owns the link/ellipsis/info/page-size/page-input surface only.
|
|
285
356
|
|
|
286
357
|
**State boundaries:**
|
|
287
358
|
|
|
@@ -292,3 +363,7 @@ Rules:
|
|
|
292
363
|
|
|
293
364
|
- App-owned data: the pagination strategy (offset / limit vs cursor), the page-size policy, the link generation, and the total count.
|
|
294
365
|
- DS-owned visuals: the `dsx-pagination` root class, the slot classes, the token bindings, and the `data-*` and ARIA attribute contract.
|
|
366
|
+
|
|
367
|
+
## Reconciliation stories
|
|
368
|
+
|
|
369
|
+
The live PaginationBar owns page and limit state, commits first/last/previous/next and page input, resets to page 1 when the limit changes, and shows a dense single-page boundary reference. Controls remain visible and wrap within narrow hosts.
|
|
@@ -15,7 +15,7 @@ depends_on:
|
|
|
15
15
|
|
|
16
16
|
## Purpose
|
|
17
17
|
|
|
18
|
-
A compact cluster of selectable
|
|
18
|
+
A compact cluster of selectable pills rendered as a horizontal flex list. Use Pills for filter chips, multi-select chip rows, and segmented status indicators. For a single label surface, use `Badge`. For a lone removable label, use `Tag`. For mutually exclusive options rendered as a segmented control, use `SegmentedControl` or `ToggleGroup`. Cardinality rule (F6 brief): a row of chips with selection state is Pills; one chip with a remove action is a Tag. Selection is consumer-owned: a plain `Pill` is a list item, not an interactive selection control. Compose a button with `aria-pressed` or an existing Toggle inside the item when selection is required.
|
|
19
19
|
|
|
20
20
|
## Anatomy & slots
|
|
21
21
|
|
|
@@ -97,7 +97,7 @@ Each pill also accepts the standard HTML attributes for its host element. The `c
|
|
|
97
97
|
|
|
98
98
|
**Responsive behavior:**
|
|
99
99
|
|
|
100
|
-
- The component does not write `@media` rules. `size`, `variant`, `color`, and `radius` are single-value only.
|
|
100
|
+
- The component does not write `@media` rules. `size`, `variant`, `color`, and `radius` are single-value only. The cluster always wraps; each item is capped to the available width and breaks long labels. The remove button reserves a non-shrinking 24px square (`size-md`).
|
|
101
101
|
|
|
102
102
|
**Reduced motion:**
|
|
103
103
|
|
|
@@ -179,7 +179,7 @@ The component is static. Hover and focus states are instant.
|
|
|
179
179
|
|
|
180
180
|
**Naming:**
|
|
181
181
|
|
|
182
|
-
- The pill's `children` are the accessible name. The remove button has a
|
|
182
|
+
- The pill's `children` are the accessible name. The built-in remove button has a fixed `aria-label="Remove"`. Attributes on the `Pill` host do not override this child button. A consumer needing a contextual action name can compose its own labelled button inside `Pill` instead of using `removable`.
|
|
183
183
|
|
|
184
184
|
## Playground demo spec
|
|
185
185
|
|
|
@@ -205,7 +205,7 @@ The component is static. Hover and focus states are instant.
|
|
|
205
205
|
|
|
206
206
|
**Token story:**
|
|
207
207
|
|
|
208
|
-
- Renders inside a `Theme` wrapper with `accentColor="
|
|
208
|
+
- Renders inside a `Theme` wrapper with `accentColor="warp"` and `accentColor="ray"`. Pills with a `color` prop track `data-accent-color`; the story asserts the destructive and link pills do not flip color because they read from the error and primary palettes.
|
|
209
209
|
|
|
210
210
|
**A11y story:**
|
|
211
211
|
|
|
@@ -244,3 +244,12 @@ The component is static. Hover and focus states are instant.
|
|
|
244
244
|
|
|
245
245
|
- App-owned data: the cluster items, the per-pill labels, the selection state (for filter chips), and the dismiss callbacks.
|
|
246
246
|
- DS-owned visuals: token bindings, the modifier classes, the per-pill surface palette, and the remove button.
|
|
247
|
+
|
|
248
|
+
## Reconciliation stories
|
|
249
|
+
|
|
250
|
+
`Pill asChild` slots a single consumer host and appends its built-in removal
|
|
251
|
+
button inside that host. The host remains responsible for valid list semantics;
|
|
252
|
+
use a list item when placing it directly in `Pills`. Slotted selection controls
|
|
253
|
+
and removable slotted items must mount without a multiple-child Slot error.
|
|
254
|
+
|
|
255
|
+
The live example removes and resets actual filter labels, includes a long wrapping label, and demonstrates consumer-owned selection with labelled aria-pressed buttons inside list items. Static variants are labelled as visual references.
|
|
@@ -82,7 +82,7 @@ An interactive floating surface anchored to a trigger. `Popover` is more interac
|
|
|
82
82
|
|
|
83
83
|
**Close props:**
|
|
84
84
|
|
|
85
|
-
`Popover.Close` accepts the standard Radix `Close` props.
|
|
85
|
+
`Popover.Close` accepts the standard Radix `Close` props. It is an inline dismissal action, normally composed with `asChild` over a Button. It has no fixed corner position or icon-only dimensions; consumers own the label and placement. When composed over Button, its rest palette and border are preserved; Button state selectors own hover, pressed, disabled and high-contrast behavior.
|
|
86
86
|
|
|
87
87
|
Rules:
|
|
88
88
|
|
|
@@ -137,8 +137,7 @@ Rules:
|
|
|
137
137
|
| Description color | `var(--dsx-color-on-surface-variant)` | Body copy. |
|
|
138
138
|
| Content z-index | `calc(var(--dsx-z-index-modal, 90) + 1)` | Keeps portaled content above both sticky chrome and a modal-tier surface that owns its trigger. |
|
|
139
139
|
| Positioner z-index | `var(--dsx-z-index-popover, 60)` | Stacking for an explicitly composed positioner. |
|
|
140
|
-
| Close
|
|
141
|
-
| Close button radius | `var(--dsx-rounded-full)` | Round close. |
|
|
140
|
+
| Close minimum dimensions | `var(--dsx-size-md)` | 24px floor; composed Button supplies its own dimensions and radius. |
|
|
142
141
|
| Motion duration | `var(--dsx-motion-duration-*)` | Mount and exit. |
|
|
143
142
|
| Motion easing | `var(--dsx-motion-easing-*)` | Mount and exit. |
|
|
144
143
|
|
|
@@ -237,6 +236,7 @@ Rules:
|
|
|
237
236
|
- `@radix-ui/react-slot`: enables `asChild` on the positioner, arrow, and content.
|
|
238
237
|
- `framer-motion`: provides the `motion.div` for mount and exit. The reduced motion preset is read from `usePrefersReducedMotion`.
|
|
239
238
|
- `baseDialog.css`: the shared overlay surface and theme-mirror utilities.
|
|
239
|
+
- `_internal/floatingLayer`: `Popover.Content` provides `FloatingLayerHostContext` to its body, so menu-tier content (`Select`, `Combobox`, `DropdownMenu`) nested inside the popover escalates via `dsx-menu__nested` (see the shared nested floating tier contract in `menu.md`).
|
|
240
240
|
|
|
241
241
|
**Used by:**
|
|
242
242
|
|
|
@@ -247,6 +247,7 @@ Rules:
|
|
|
247
247
|
**State boundaries:**
|
|
248
248
|
|
|
249
249
|
- Owned by `Popover`: open state when uncontrolled, presence context, portal theme mirroring, motion preset, and the auto-wired `aria-labelledby` / `aria-describedby`.
|
|
250
|
+
- Owned by `Popover`: the nested-host signal — `Popover.Content` marks its body as a modal-tier host for the shared nested floating tier contract.
|
|
250
251
|
- Owned by the consumer: the trigger label, the popover body, and the close behavior (via `Popover.Close` or `Escape`).
|
|
251
252
|
|
|
252
253
|
**Boundary rules:**
|
|
@@ -304,3 +305,11 @@ Rules:
|
|
|
304
305
|
- [ ] Token bindings resolve at the values `DESIGN.md` describes.
|
|
305
306
|
- [ ] Component is promoted to Main Component under `Components`.
|
|
306
307
|
- [ ] `penpotUtils.shapeStructure(board, 3)` matches the expected hierarchy.
|
|
308
|
+
|
|
309
|
+
## Overlay review containment
|
|
310
|
+
|
|
311
|
+
Content has one minmax(0, 1fr) grid track and wraps long words. This prevents
|
|
312
|
+
a child panel’s preferred width from enlarging an implicit track beyond the
|
|
313
|
+
viewport-capped surface and being clipped by overflow=hidden. The live example
|
|
314
|
+
sets and applies a real density preference; NotificationCenter also composes
|
|
315
|
+
inside this surface with proper Title and Description.
|
|
@@ -19,6 +19,19 @@ Read-side article typography with an approximately `68ch` measure and `1.65` rea
|
|
|
19
19
|
|
|
20
20
|
Consumers preserve heading order, stable IDs, meaningful image alt text, captions, and table headers. Wide tables scroll horizontally rather than hiding data.
|
|
21
21
|
|
|
22
|
+
The root can shrink within its parent. Long words, URLs, and identifiers wrap inside the reading measure; preformatted code and tables retain their explicit horizontal scrolling.
|
|
23
|
+
|
|
24
|
+
## Color roles
|
|
25
|
+
|
|
26
|
+
Inline code and preformatted blocks use `--dsx-code-soft-background`, the
|
|
27
|
+
same contextual neutral wash as soft Code (existing gray-alpha-3 effect).
|
|
28
|
+
A `pre > code` child stays transparent to avoid painting the wash twice.
|
|
29
|
+
Blockquotes use the 1px boundary-divider width with decorative accent-border
|
|
30
|
+
(light step 8 / dark step 11). Links retain readable accent-indicator ink.
|
|
31
|
+
Local Theme and gray changes recompute these paint aliases.
|
|
32
|
+
|
|
22
33
|
## Playground demo spec
|
|
23
34
|
|
|
24
|
-
Render all supported semantic elements, sanitized HTML, a wide table at mobile width, and
|
|
35
|
+
Render all supported semantic elements, sanitized HTML, a wide table at mobile width, and authored blocks in the separate ArticleNodes stream.
|
|
36
|
+
|
|
37
|
+
The live example is a coherent server-selection article with ordered headings, lists, blockquote, a working fragment link, inline/block code, a table with row/column headers, and an image with caption. ArticleNodes stays in the blocks stream.
|
|
@@ -13,7 +13,7 @@ depends_on:
|
|
|
13
13
|
|
|
14
14
|
## Purpose
|
|
15
15
|
|
|
16
|
-
A token-aligned QR code surface that renders a scannable `QRCodeSVG` from `qrcode.react` inside a styled container, with a size scale and high-contrast
|
|
16
|
+
A token-aligned QR code surface that renders a scannable `QRCodeSVG` from `qrcode.react` inside a styled container, with a fixed matrix size scale and a legacy CSS high-contrast hook. The component owns the shell and token binding; the app owns the encoded payload, error-correction level, and any persistence.
|
|
17
17
|
|
|
18
18
|
## Anatomy & slots
|
|
19
19
|
|
|
@@ -21,7 +21,7 @@ A token-aligned QR code surface that renders a scannable `QRCodeSVG` from `qrcod
|
|
|
21
21
|
|
|
22
22
|
**Slots:**
|
|
23
23
|
|
|
24
|
-
No slots: flat export. The component renders a single `<div>` host element (or a slotted child when `asChild` is set) that wraps the `QRCodeSVG` adapter output. The encoded value, the error-correction level, the margin, and the module colors are all props on the host. The component does not own a label, caption, or download action; consumers compose those around the surface.
|
|
24
|
+
No slots: flat export. The component renders a single role=img `<div>` host element (or a consumer-supplied slotted child when `asChild` is set) that wraps the `QRCodeSVG` adapter output. The encoded value, the error-correction level, the margin, and the module colors are all props on the host. The component does not own a label, caption, or download action; consumers compose those around the surface.
|
|
25
25
|
|
|
26
26
|
**Adapter host:** `QRCodeSVG` from `qrcode.react`. The adapter is wrapped in a styled container; the adapter is a `peerDependency` and the package does not own the rendered SVG paths.
|
|
27
27
|
|
|
@@ -30,9 +30,9 @@ No slots: flat export. The component renders a single `<div>` host element (or a
|
|
|
30
30
|
| Prop | Type | Default | Required | Description | Responsive |
|
|
31
31
|
|---|---|---|---|---|---|
|
|
32
32
|
| `value` | `string` | `undefined` | yes | String payload encoded into the QR modules. Required by `QRCodeSVG`; the host element also omits the native `value` attribute. | no |
|
|
33
|
-
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | no |
|
|
33
|
+
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | no | Painted size; selects one of the internal `sizeMap` values (`sm: 128`, `md: 192`, `lg: 256` px) and writes `data-size` plus the matching `dsx-qr-code-size-*` class. The SVG retains sizeMap dimensions, never flex-shrinks and overrides generic SVG max-width rules. Hosts narrower than the matrix must supply scrolling. | no |
|
|
34
34
|
| `level` | `'L' \| 'M' \| 'Q' \| 'H'` | `'M'` | no | Error-correction level passed through to `QRCodeSVG`. `L` is ~7%, `M` is ~15%, `Q` is ~25%, `H` is ~30% recovery. | no |
|
|
35
|
-
| `marginSize` | `number` | `0` | no | Quiet-zone margin passed through to `QRCodeSVG`. Default
|
|
35
|
+
| `marginSize` | `number` | `0` | no | Quiet-zone margin passed through to `QRCodeSVG`. Default 0 matches the adapter baseline; scan/share examples explicitly set 4 modules of quiet zone. | no |
|
|
36
36
|
| `fgColor` | `string` | `var(--dsx-color-on-surface)` | no | Module (foreground) color. Default falls back to the token CSS variable; pass an explicit value to override. | no |
|
|
37
37
|
| `bgColor` | `string` | `var(--dsx-color-surface-raised)` | no | Quiet-zone (background) color. Default falls back to the token CSS variable; pass an explicit value to override. | no |
|
|
38
38
|
| `asChild` | `boolean` | `false` | no | Renders the QR code container through `Slot` from `@radix-ui/react-slot`; consumer supplies the host element. | no |
|
|
@@ -43,7 +43,8 @@ No slots: flat export. The component renders a single `<div>` host element (or a
|
|
|
43
43
|
Rules that apply to this row:
|
|
44
44
|
|
|
45
45
|
- The component extends `Omit<ComponentPropsWithoutRef<'div'>, 'value'>` because `value` is redefined by the QR-specific prop. Native `<div>` attributes that are not prop def keys are forwarded.
|
|
46
|
-
-
|
|
46
|
+
- The three size modifier selectors share the base SVG display and corner treatment; matrix dimensions remain runtime-owned.
|
|
47
|
+
- `size` is wired through `extractProps` and writes both the modifier class and `data-size`. The runtime `sizeMap` (`sm: 128`, `md: 192`, `lg: 256`) is the actual SVG pixel size, painted verbatim through the adapter's own width/height attributes. The `dsx-size-{xs|md|xl}` sizing tokens are NOT applied to the QR matrix — a former revision constrained the SVG to those tokens (16/24/40px) and rendered unscannable codes; the override was removed and must not return.
|
|
47
48
|
- `level`, `marginSize`, `fgColor`, and `bgColor` are NOT in the prop def bag; they are typed in the `QRCodeProps` interface and consumed in the render path. The prop def only declares `asChild` and `size`. The interface-level defaults (`'M'`, `0`, token fallbacks) are applied at the destructuring site, not via `extractProps`.
|
|
48
49
|
- The component does not currently expose a `data-high-contrast` prop or write that attribute, even though `qr-code.css` has a high-contrast block. The CSS block is a hook for downstream apps; the runtime does not emit the attribute today (see Anomalies).
|
|
49
50
|
|
|
@@ -59,7 +60,7 @@ Rules that apply to this row:
|
|
|
59
60
|
| `data-slot` | `qr-code` | (CSS hook only) | n/a |
|
|
60
61
|
| `data-high-contrast` | `true` | `.dsx-qr-code[data-high-contrast='true']` (hook only; runtime does not currently emit) | `qr-code.css` |
|
|
61
62
|
|
|
62
|
-
**Slot classes:** none. The inner
|
|
63
|
+
**Slot classes:** none. The inner svg is targeted by .dsx-qr-code svg; the legacy high-contrast hook targets first/last paths from qrcode.react 4.2. These are CSS hooks, not public slots.
|
|
63
64
|
|
|
64
65
|
**Responsive behavior:**
|
|
65
66
|
|
|
@@ -82,9 +83,9 @@ Every CSS value the component paints is a `var(--dsx-*)` token, with runtime fal
|
|
|
82
83
|
| Background | `var(--dsx-color-surface-raised)` | Container surface. |
|
|
83
84
|
| Border | `var(--dsx-border-width-sm)` + `var(--dsx-color-outline)` | Edge. |
|
|
84
85
|
| SVG border radius | `var(--dsx-rounded-sm)` | SVG corners. |
|
|
85
|
-
| Size `sm` |
|
|
86
|
-
| Size `md` |
|
|
87
|
-
| Size `lg` |
|
|
86
|
+
| Size `sm` | (runtime `128` px) | Painted SVG width and height at the `sm` size — no token. |
|
|
87
|
+
| Size `md` | (runtime `192` px) | Painted SVG width and height at the `md` size — no token. |
|
|
88
|
+
| Size `lg` | (runtime `256` px) | Painted SVG width and height at the `lg` size — no token. |
|
|
88
89
|
| Module color (default) | `var(--dsx-color-on-surface)` (runtime fallback) | QR modules. |
|
|
89
90
|
| Background color (default) | `var(--dsx-color-surface-raised)` (runtime fallback) | Quiet zone. |
|
|
90
91
|
| High-contrast surface | `var(--dsx-color-surface-raised)` | High-contrast container. |
|
|
@@ -93,9 +94,9 @@ Every CSS value the component paints is a `var(--dsx-*)` token, with runtime fal
|
|
|
93
94
|
|
|
94
95
|
Rules:
|
|
95
96
|
|
|
96
|
-
- The runtime SVG dimensions (`128`, `192`, `256`) are NOT tokens; they are the adapter's own pixel size used to compute the QR matrix. The CSS
|
|
97
|
-
- The `fgColor` and `bgColor` props are passed as CSS variable references (`'var(--dsx-color-on-surface)'`, `'var(--dsx-color-surface-raised)'`) when the consumer does not pass explicit values. The adapter forwards
|
|
98
|
-
- The high-contrast
|
|
97
|
+
- The runtime SVG dimensions (`128`, `192`, `256`) are NOT tokens; they are the adapter's own pixel size used to compute the QR matrix, painted verbatim. The CSS must never override the visible width and height with sizing tokens — that revision shipped 16/24/40px unscannable codes.
|
|
98
|
+
- The `fgColor` and `bgColor` props are passed as CSS variable references (`'var(--dsx-color-on-surface)'`, `'var(--dsx-color-surface-raised)'`) when the consumer does not pass explicit values. The adapter forwards CSS variable references into SVG fill attributes; ordinary theme inheritance resolves them. The legacy high-contrast CSS hook overrides paths when an app explicitly supplies its attribute.
|
|
99
|
+
- The high-contrast hook colors the first path as background and last path as modules, matching the installed adapter output. Adapter output changes require a fresh paint check.
|
|
99
100
|
|
|
100
101
|
## Motion contract
|
|
101
102
|
|
|
@@ -112,7 +113,7 @@ Rules:
|
|
|
112
113
|
|
|
113
114
|
**Roles:**
|
|
114
115
|
|
|
115
|
-
- `img` (QR code). The component renders a non-text graphic; consumers must supply an accessible name via `aria-label`, an `aria-labelledby` reference, or a sibling label. The runtime
|
|
116
|
+
- `img` (QR code). The component renders a non-text graphic; consumers must supply an accessible name via `aria-label`, an `aria-labelledby` reference, or a sibling label. The runtime sets role=img and forwards the consumer accessible name.
|
|
116
117
|
|
|
117
118
|
**Keyboard:**
|
|
118
119
|
|
|
@@ -128,7 +129,7 @@ Rules:
|
|
|
128
129
|
|
|
129
130
|
**Color and meaning:**
|
|
130
131
|
|
|
131
|
-
- The QR modules carry the data; the rendered colors are decorative. A high-contrast CSS hook is available
|
|
132
|
+
- The QR modules carry the data; the rendered colors are decorative. A legacy high-contrast CSS hook is available through a native data-high-contrast attribute; there is no highContrast prop. Apps own scanner compatibility and may explicitly select positive dark-on-light fgColor/bgColor for physical scan contexts.
|
|
132
133
|
|
|
133
134
|
**Naming:**
|
|
134
135
|
|
|
@@ -136,15 +137,15 @@ Rules:
|
|
|
136
137
|
|
|
137
138
|
## Playground demo spec
|
|
138
139
|
|
|
139
|
-
The
|
|
140
|
+
The /docs/qr-code registry supplies wrapped comparisons and a scrollable host for matrices wider than their container. It never shrinks the SVG to fit.
|
|
140
141
|
|
|
141
142
|
**Default story:**
|
|
142
143
|
|
|
143
|
-
- Renders `QRCode` with `value="https://d4gger.example"` and no other props. Asserts the root class is `dsx-qr-code`, the inner element is an `svg`, the `data-size` attribute is `md`, and the SVG width and height
|
|
144
|
+
- Renders `QRCode` with `value="https://d4gger.example"` and no other props. Asserts the root class is `dsx-qr-code`, the inner element is an `svg`, the `data-size` attribute is `md`, and the SVG width and height attributes are `192`.
|
|
144
145
|
|
|
145
146
|
**Variant story** (one per size):
|
|
146
147
|
|
|
147
|
-
- Renders QRCode with `size="sm"`, `size="md"`, and `size="lg"`. Asserts the matching `dsx-qr-code-size-{sm|md|lg}` class and `data-size` value. Also asserts the SVG width and height
|
|
148
|
+
- Renders QRCode with `size="sm"`, `size="md"`, and `size="lg"`. Asserts the matching `dsx-qr-code-size-{sm|md|lg}` class and `data-size` value. Also asserts the SVG width and height attributes are `128` / `192` / `256` — never a sizing token.
|
|
148
149
|
|
|
149
150
|
**Composition story** (for `asChild`):
|
|
150
151
|
|
|
@@ -156,11 +157,11 @@ The demo file at `demo_path` exposes the component to the playground. The playgr
|
|
|
156
157
|
|
|
157
158
|
**Token story:**
|
|
158
159
|
|
|
159
|
-
- Renders inside a `Theme` wrapper with
|
|
160
|
+
- Renders inside a `Theme` wrapper with the five supported accents (Rift, Warp, Ray, Astral, Spark). The QR module color is token-driven via the `fgColor` runtime default; the story asserts the modules track the `on-surface` token across all five accents.
|
|
160
161
|
|
|
161
162
|
**A11y story:**
|
|
162
163
|
|
|
163
|
-
- Uses `vitest-axe` against the rendered default QR code wrapped in a labelled element. Asserts there are no axe violations only when the host carries an accessible name.
|
|
164
|
+
- Uses `vitest-axe` against the rendered default QR code wrapped in a labelled element. Asserts there are no axe violations only when the host carries an accessible name. Unlabelled caller output does not satisfy the naming contract.
|
|
164
165
|
|
|
165
166
|
**Props exposed in the playground controls:**
|
|
166
167
|
|
|
@@ -194,7 +195,7 @@ The demo file at `demo_path` exposes the component to the playground. The playgr
|
|
|
194
195
|
**Boundary rules:**
|
|
195
196
|
|
|
196
197
|
- App-owned data: the encoded payload, the persistence of the payload, the security/rotation policy, the print/download lifecycle, and any analytics on scan events.
|
|
197
|
-
- DS-owned visuals: token bindings (`--dsx-space-md`, `--dsx-rounded-xl`, `--dsx-rounded-sm`, `--dsx-color-surface-raised`, `--dsx-color-outline`, `--dsx-color-on-surface`, `--dsx-color-high-contrast-border`, `--dsx-color-high-contrast`, `--dsx-border-width-sm
|
|
198
|
+
- DS-owned visuals: token bindings (`--dsx-space-md`, `--dsx-rounded-xl`, `--dsx-rounded-sm`, `--dsx-color-surface-raised`, `--dsx-color-outline`, `--dsx-color-on-surface`, `--dsx-color-high-contrast-border`, `--dsx-color-high-contrast`, `--dsx-border-width-sm`), the `dsx-qr-code` root class, the `dsx-qr-code-size-{sm|md|lg}` modifier classes, the runtime painted sizes (`128`/`192`/`256`), and the high-contrast CSS hook. The `dsx-size-*` tokens are explicitly NOT bound to the matrix.
|
|
198
199
|
|
|
199
200
|
## Penpot build recipe
|
|
200
201
|
|
|
@@ -205,7 +206,7 @@ The package does not yet publish a Penpot asset for QRCode. Recipe is visual ref
|
|
|
205
206
|
### Root board
|
|
206
207
|
|
|
207
208
|
- **Name**: `Components / QRCode`.
|
|
208
|
-
- **Dimensions**: `
|
|
209
|
+
- **Dimensions**: `192` × `192` px at the default `md` size; `128` px at `sm`; `256` px at `lg` (runtime painted sizes, not tokens).
|
|
209
210
|
- **Layout**: `Fixed`.
|
|
210
211
|
- **Sizing**: `horizontalSizing = 'fix'`, `verticalSizing = 'fix'`.
|
|
211
212
|
|
|
@@ -225,9 +226,9 @@ The package does not yet publish a Penpot asset for QRCode. Recipe is visual ref
|
|
|
225
226
|
| Root | stroke | `--dsx-color-outline` | Color | `strokes` |
|
|
226
227
|
| Root | padding | `--dsx-space-md` | Spacing | `padding` |
|
|
227
228
|
| Root | corner radius | `--dsx-rounded-xl` | Radius | `radius` |
|
|
228
|
-
| Root (size sm) | width, height |
|
|
229
|
-
| Root (size md) | width, height |
|
|
230
|
-
| Root (size lg) | width, height |
|
|
229
|
+
| Root (size sm) | width, height | `128` px (runtime, no token) | Sizing | `size` |
|
|
230
|
+
| Root (size md) | width, height | `192` px (runtime, no token) | Sizing | `size` |
|
|
231
|
+
| Root (size lg) | width, height | `256` px (runtime, no token) | Sizing | `size` |
|
|
231
232
|
| Matrix | fill | `--dsx-color-on-surface` | Color | `fills` |
|
|
232
233
|
| Matrix (high-contrast) | fill | `--dsx-color-high-contrast` | Color | `fills` (state) |
|
|
233
234
|
|
|
@@ -56,18 +56,23 @@ Rules that apply to this row:
|
|
|
56
56
|
|
|
57
57
|
## Token mapping
|
|
58
58
|
|
|
59
|
-
Every CSS value the component paints is a CSS keyword or hard-code; there are no `var(--dsx-*)` tokens in `quote.css`.
|
|
59
|
+
Every CSS value the component paints is a CSS keyword or hard-code; there are no `var(--dsx-*)` tokens in `quote.css`. Italics are this package's visual choice; HTML quotation semantics come from `<q>` and its generated quotation marks.
|
|
60
60
|
|
|
61
61
|
| Property | Token | Role |
|
|
62
62
|
|---|---|---|
|
|
63
63
|
| `quotes` | `auto` (CSS keyword) | Lets the browser pick the right opening and closing quote glyphs from the document language. |
|
|
64
|
-
| Font style | `italic` (hard-coded) |
|
|
64
|
+
| Font style | `italic` (hard-coded) | Package convention for inline quotation, not an HTML requirement; consumer style can override it. |
|
|
65
65
|
|
|
66
66
|
Rules:
|
|
67
67
|
|
|
68
|
-
- `DESIGN.md` and the generated `tokens.css` do not define a `quotes` or italic typography token.
|
|
68
|
+
- `DESIGN.md` and the generated `tokens.css` do not define a `quotes` or italic typography token. Language-aware quotation marks follow native `<q>` behavior; the italic treatment is authored by this package.
|
|
69
69
|
- No raw color, spacing, or motion values are introduced by this component.
|
|
70
70
|
|
|
71
|
+
Large opening/closing quotation glyphs, icons and source captions belong to a
|
|
72
|
+
consumer's block quotation composition using `Blockquote`, not an inline
|
|
73
|
+
Quote variant. Em marks stress emphasis; Quote marks words quoted from a
|
|
74
|
+
source even though both share an italic treatment.
|
|
75
|
+
|
|
71
76
|
## Motion contract
|
|
72
77
|
|
|
73
78
|
| Region | Token | Default | Reduced |
|
|
@@ -108,7 +113,7 @@ Rules:
|
|
|
108
113
|
|
|
109
114
|
## Playground demo spec
|
|
110
115
|
|
|
111
|
-
`Quote` is registered in `apps/playground/lib/registry/typography.tsx` under the `quote` key. The registry entry imports `quotePropDefs` and renders the component with a sample inline quotation. Per-component route: `/docs/quote`.
|
|
116
|
+
`Quote` is registered in `apps/playground/lib/registry/typography.tsx` under the `quote` key. The registry entry imports `quotePropDefs` and renders the component with a sample inline quotation. Per-component route: `/docs/quote`. The live example uses English and Russian quotations, a nested quote and a slotted span.
|
|
112
117
|
|
|
113
118
|
**Default story:**
|
|
114
119
|
|
|
@@ -47,7 +47,7 @@ A mutually exclusive selection cluster backed by `@radix-ui/react-radio-group`.
|
|
|
47
47
|
| Prop | Type | Default | Required | Description | Responsive |
|
|
48
48
|
|---|---|---|---|---|---|
|
|
49
49
|
| `value` | `string` | — | yes | Unique value for this item. | no |
|
|
50
|
-
| `size` | `'sm' \| 'md'` | `'md'` | no | Item-level size override. Drives the `dsx-radio-item--{size}` class. | no |
|
|
50
|
+
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | no | Item-level size override. Drives the `dsx-radio-item--{size}` class. | no |
|
|
51
51
|
| `label` | `ReactNode` | `undefined` | no | When set, the item wraps itself in a `<label class="dsx-radio-option">` and renders the label inside a `dsx-radio-option__label` span. | no |
|
|
52
52
|
| `description` | `ReactNode` | `undefined` | no | When set, the item renders a `dsx-radio-option__description` span under the label. | no |
|
|
53
53
|
| `asChild` | `boolean` | `false` | no | Renders the item host through `Slot`. | no |
|
|
@@ -79,6 +79,7 @@ Rules:
|
|
|
79
79
|
| `RadioGroupItem` (host) | `dsx-radio-item` | `radio-group.css` |
|
|
80
80
|
| `RadioGroupItem` (size sm) | `dsx-radio-item--sm` | `radio-group.css` |
|
|
81
81
|
| `RadioGroupItem` (size md) | `dsx-radio-item--md` | `radio-group.css` |
|
|
82
|
+
| `RadioGroupItem` (size lg) | `dsx-radio-item--lg` | `radio-group.css` |
|
|
82
83
|
| Item indicator | `dsx-radio-item__indicator` | `radio-group.css` |
|
|
83
84
|
| Item dot | `dsx-radio-item__dot` | `radio-group.css` |
|
|
84
85
|
| Option wrapper | `dsx-radio-option` | `radio-group.css` |
|
|
@@ -106,7 +107,9 @@ Every CSS value the component paints is a `var(--dsx-*)` token.
|
|
|
106
107
|
| Option label/description typography | `var(--dsx-typography-body-medium-*)` | Body ramp. |
|
|
107
108
|
| Option description color | `var(--dsx-color-on-surface-variant)` | Muted description. |
|
|
108
109
|
| Item size (default) | `var(--dsx-size-md)` | Default control. |
|
|
109
|
-
| Item size (sm) | `var(--dsx-size-sm)` | Small control. |
|
|
110
|
+
| Item size (sm) | `var(--dsx-size-sm)` | Small control (20px). |
|
|
111
|
+
| Item size (lg) | `var(--dsx-size-lg)` | Large control (32px). |
|
|
112
|
+
| Item hit area | `max(100% + 16px, 44px)` via `::before` | Layout-neutral 44px pointer target (WCAG 2.5.8, TMA touch). |
|
|
110
113
|
| Item radius | `var(--dsx-rounded-full)` | Round. |
|
|
111
114
|
| Item border | `var(--dsx-border-width-md)` solid `var(--dsx-color-outline-variant)` | Resting edge. |
|
|
112
115
|
| Item background | `var(--dsx-color-surface)` | Resting fill. |
|
|
@@ -79,6 +79,8 @@ Rules:
|
|
|
79
79
|
|
|
80
80
|
- The component does not write `@media` rules.
|
|
81
81
|
|
|
82
|
+
- The `sm` star remains 20px visually. A centered `::before` layer expands its pointer target to the 24px `size-md` token, filling the existing 4px gap without overlapping neighboring targets.
|
|
83
|
+
|
|
82
84
|
**Reduced motion:**
|
|
83
85
|
|
|
84
86
|
- Item transitions use `var(--dsx-motion-duration-fast)` and `var(--dsx-motion-easing-standard)` for color, transform, opacity, and box-shadow. No explicit `prefers-reduced-motion` gate is present in the CSS.
|