@d4gger/design-system 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/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 +60 -0
- package/dist/components/button-group.css +25 -0
- package/dist/components/button.css +9 -0
- package/dist/components/card.css +3 -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/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/context-menu.css +1 -1
- 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/dropdown-menu.css +1 -1
- package/dist/components/empty-state.css +5 -0
- 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 +1 -1
- 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/icon/Icon.cjs +25 -2
- package/dist/components/icon/Icon.cjs.map +2 -2
- package/dist/components/icon/Icon.d.cts +29 -1
- package/dist/components/icon/Icon.d.cts.map +1 -1
- package/dist/components/icon/Icon.d.mts +29 -1
- package/dist/components/icon/Icon.d.mts.map +1 -1
- package/dist/components/icon/Icon.d.ts +29 -1
- package/dist/components/icon/Icon.d.ts.map +1 -1
- package/dist/components/icon/Icon.js +33 -2
- package/dist/components/icon/Icon.js.map +2 -2
- package/dist/components/icon/icons.cjs +16 -0
- package/dist/components/icon/icons.cjs.map +2 -2
- package/dist/components/icon/icons.d.cts +40 -0
- package/dist/components/icon/icons.d.cts.map +1 -1
- package/dist/components/icon/icons.d.mts +40 -0
- package/dist/components/icon/icons.d.mts.map +1 -1
- package/dist/components/icon/icons.d.ts +40 -0
- package/dist/components/icon/icons.d.ts.map +1 -1
- package/dist/components/icon/icons.js +16 -0
- package/dist/components/icon/icons.js.map +2 -2
- package/dist/components/icon-button.css +29 -0
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.cjs.map +2 -2
- package/dist/components/index.d.cts +1 -1
- package/dist/components/index.d.cts.map +1 -1
- package/dist/components/index.d.mts +1 -1
- package/dist/components/index.d.mts.map +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/index.js.map +1 -1
- 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/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/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/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/prose.css +1 -1
- package/dist/components/qr-code.css +5 -15
- 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/result.css +2 -1
- package/dist/components/richTextEditor/RichTextEditor.cjs +11 -3
- package/dist/components/richTextEditor/RichTextEditor.cjs.map +2 -2
- package/dist/components/richTextEditor/RichTextEditor.d.cts.map +1 -1
- package/dist/components/richTextEditor/RichTextEditor.d.mts.map +1 -1
- package/dist/components/richTextEditor/RichTextEditor.d.ts.map +1 -1
- package/dist/components/richTextEditor/RichTextEditor.js +11 -3
- package/dist/components/richTextEditor/RichTextEditor.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/sonner.css +1 -1
- 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/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.css +20 -13
- package/dist/components/tabs.css +10 -0
- package/dist/components/timeline.css +54 -18
- package/dist/components/toast.css +33 -1
- package/dist/components/toggle-group.css +5 -0
- package/dist/components.css +1 -2
- package/dist/docs/README.md +1 -1
- package/dist/docs/component-contract.md +4 -4
- package/dist/docs/component-index.json +9 -9
- package/dist/docs/components/banner.md +152 -0
- package/dist/docs/components/button-group.md +4 -3
- package/dist/docs/components/button.md +2 -2
- package/dist/docs/components/card.md +1 -0
- 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/combobox.md +3 -1
- package/dist/docs/components/command.md +2 -2
- 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 +4 -0
- package/dist/docs/components/dropdown-menu.md +2 -1
- package/dist/docs/components/empty-state.md +3 -1
- package/dist/docs/components/file-upload.md +1 -0
- package/dist/docs/components/filter-bar.md +193 -8
- package/dist/docs/components/floating-panel.md +8 -8
- package/dist/docs/components/icon-button.md +4 -1
- package/dist/docs/components/item.md +18 -13
- 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/pagination.md +88 -17
- package/dist/docs/components/pills.md +1 -1
- package/dist/docs/components/popover.md +2 -0
- package/dist/docs/components/prose.md +5 -1
- package/dist/docs/components/qr-code.md +14 -13
- package/dist/docs/components/radio-group.md +5 -2
- package/dist/docs/components/rating.md +2 -0
- package/dist/docs/components/result.md +6 -0
- package/dist/docs/components/segmented-control.md +7 -2
- package/dist/docs/components/select.md +3 -2
- package/dist/docs/components/sidebar.md +3 -1
- package/dist/docs/components/sonner.md +1 -1
- package/dist/docs/components/sortable-list.md +2 -0
- package/dist/docs/components/stat-card.md +5 -4
- package/dist/docs/components/stepper.md +1 -0
- package/dist/docs/components/table.md +14 -5
- package/dist/docs/components/tag.md +4 -2
- package/dist/docs/components/timeline.md +9 -5
- package/dist/docs/components/toast.md +1 -1
- package/dist/docs/components/toggle-group.md +2 -1
- package/dist/fonts.css +1 -1
- package/dist/generated/tokens.cjs +1 -1
- package/dist/generated/tokens.cjs.map +1 -1
- package/dist/generated/tokens.js +1 -1
- package/dist/generated/tokens.js.map +1 -1
- package/dist/motion.css +18 -3
- package/dist/styles.css +1249 -292
- package/dist/tokens.css +21 -15
- package/package.json +1 -1
- package/dist/components/control-group.css +0 -142
- package/dist/components/controlGroup/ControlGroup.cjs.map +0 -7
- package/dist/components/controlGroup/ControlGroup.d.cts +0 -16
- package/dist/components/controlGroup/ControlGroup.d.cts.map +0 -1
- package/dist/components/controlGroup/ControlGroup.d.mts +0 -16
- package/dist/components/controlGroup/ControlGroup.d.mts.map +0 -1
- package/dist/components/controlGroup/ControlGroup.d.ts +0 -16
- package/dist/components/controlGroup/ControlGroup.d.ts.map +0 -1
- package/dist/components/controlGroup/ControlGroup.js +0 -26
- package/dist/components/controlGroup/ControlGroup.js.map +0 -7
- package/dist/components/controlGroup/controlGroup.props.cjs.map +0 -7
- package/dist/components/controlGroup/controlGroup.props.d.cts +0 -18
- package/dist/components/controlGroup/controlGroup.props.d.cts.map +0 -1
- package/dist/components/controlGroup/controlGroup.props.d.mts +0 -18
- package/dist/components/controlGroup/controlGroup.props.d.mts.map +0 -1
- package/dist/components/controlGroup/controlGroup.props.d.ts +0 -18
- package/dist/components/controlGroup/controlGroup.props.d.ts.map +0 -1
- package/dist/components/controlGroup/controlGroup.props.js +0 -20
- package/dist/components/controlGroup/controlGroup.props.js.map +0 -7
- package/dist/docs/components/control-group.md +0 -261
package/dist/styles.css
CHANGED
|
@@ -102,7 +102,7 @@ svg {
|
|
|
102
102
|
--dsx-color-accent-11: #bfb1ff;
|
|
103
103
|
--dsx-color-accent-12: #ded8ff;
|
|
104
104
|
--dsx-color-accent-contrast: #ffffff;
|
|
105
|
-
--dsx-color-accent-surface: rgba(40, 0, 93, 0.
|
|
105
|
+
--dsx-color-accent-surface: rgba(40, 0, 93, 0.2);
|
|
106
106
|
--dsx-color-accent-indicator: #bfb1ff;
|
|
107
107
|
--dsx-color-accent-track: #8553f6;
|
|
108
108
|
--dsx-color-gray-1: #0c0d12;
|
|
@@ -279,7 +279,7 @@ svg {
|
|
|
279
279
|
--dsx-color-accent-indicator: #bfb1ff;
|
|
280
280
|
--dsx-color-accent-track: #8553f6;
|
|
281
281
|
--dsx-color-accent-contrast: #ffffff;
|
|
282
|
-
--dsx-color-accent-surface: rgba(40, 0, 93, 0.
|
|
282
|
+
--dsx-color-accent-surface: rgba(40, 0, 93, 0.2);
|
|
283
283
|
--dsx-color-border-subtle: #333640;
|
|
284
284
|
--dsx-color-border-strong: #565b70;
|
|
285
285
|
--dsx-effect-shadow-1: 0 1px 2px rgba(8, 9, 12, 0.24);
|
|
@@ -306,7 +306,7 @@ svg {
|
|
|
306
306
|
--dsx-sheet-width-sm: 320px;
|
|
307
307
|
--dsx-sheet-width-lg: 480px;
|
|
308
308
|
--dsx-chart-min-height: 240px;
|
|
309
|
-
--dsx-data-table-empty-height:
|
|
309
|
+
--dsx-data-table-empty-height: 192px;
|
|
310
310
|
--dsx-sidebar-width: 272px;
|
|
311
311
|
--dsx-sidebar-width-collapsed: 72px;
|
|
312
312
|
--dsx-calendar-width: 320px;
|
|
@@ -538,7 +538,7 @@ svg {
|
|
|
538
538
|
--dsx-color-accent-indicator: var(--dsx-color-accent-rift-11);
|
|
539
539
|
--dsx-color-accent-track: var(--dsx-color-accent-rift-9);
|
|
540
540
|
--dsx-color-accent-contrast: #ffffff;
|
|
541
|
-
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-rift-3)
|
|
541
|
+
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-rift-3) 20%, transparent);
|
|
542
542
|
--dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-rift-9) 64%, transparent);
|
|
543
543
|
--dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-rift-9) 28%, transparent);
|
|
544
544
|
--dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-rift-9) 40%, transparent);
|
|
@@ -566,7 +566,7 @@ svg {
|
|
|
566
566
|
--dsx-color-accent-indicator: var(--dsx-color-accent-warp-11);
|
|
567
567
|
--dsx-color-accent-track: var(--dsx-color-accent-warp-9);
|
|
568
568
|
--dsx-color-accent-contrast: #ffffff;
|
|
569
|
-
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-warp-3)
|
|
569
|
+
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-warp-3) 20%, transparent);
|
|
570
570
|
--dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-warp-9) 64%, transparent);
|
|
571
571
|
--dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-warp-9) 28%, transparent);
|
|
572
572
|
--dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-warp-9) 40%, transparent);
|
|
@@ -594,7 +594,7 @@ svg {
|
|
|
594
594
|
--dsx-color-accent-indicator: var(--dsx-color-accent-ray-11);
|
|
595
595
|
--dsx-color-accent-track: var(--dsx-color-accent-ray-9);
|
|
596
596
|
--dsx-color-accent-contrast: #ffffff;
|
|
597
|
-
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-ray-3)
|
|
597
|
+
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-ray-3) 20%, transparent);
|
|
598
598
|
--dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-ray-9) 64%, transparent);
|
|
599
599
|
--dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-ray-9) 28%, transparent);
|
|
600
600
|
--dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-ray-9) 40%, transparent);
|
|
@@ -622,7 +622,7 @@ svg {
|
|
|
622
622
|
--dsx-color-accent-indicator: var(--dsx-color-accent-astral-11);
|
|
623
623
|
--dsx-color-accent-track: var(--dsx-color-accent-astral-9);
|
|
624
624
|
--dsx-color-accent-contrast: #ffffff;
|
|
625
|
-
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-astral-3)
|
|
625
|
+
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-astral-3) 20%, transparent);
|
|
626
626
|
--dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-astral-9) 64%, transparent);
|
|
627
627
|
--dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-astral-9) 28%, transparent);
|
|
628
628
|
--dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-astral-9) 40%, transparent);
|
|
@@ -650,7 +650,7 @@ svg {
|
|
|
650
650
|
--dsx-color-accent-indicator: var(--dsx-color-accent-spark-11);
|
|
651
651
|
--dsx-color-accent-track: var(--dsx-color-accent-spark-9);
|
|
652
652
|
--dsx-color-accent-contrast: #0c0d12;
|
|
653
|
-
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-spark-3)
|
|
653
|
+
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-spark-3) 20%, transparent);
|
|
654
654
|
--dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-spark-9) 64%, transparent);
|
|
655
655
|
--dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-spark-9) 28%, transparent);
|
|
656
656
|
--dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-spark-9) 40%, transparent);
|
|
@@ -672,7 +672,7 @@ svg {
|
|
|
672
672
|
--dsx-color-accent-11: #5211ac;
|
|
673
673
|
--dsx-color-accent-12: #28005d;
|
|
674
674
|
--dsx-color-accent-contrast: #ffffff;
|
|
675
|
-
--dsx-color-accent-surface: rgba(230, 226, 255, 0.
|
|
675
|
+
--dsx-color-accent-surface: rgba(230, 226, 255, 0.2);
|
|
676
676
|
--dsx-color-accent-indicator: #28005d;
|
|
677
677
|
--dsx-color-accent-track: #8553f6;
|
|
678
678
|
--dsx-color-gray-1: #fbfbfc;
|
|
@@ -849,7 +849,7 @@ svg {
|
|
|
849
849
|
--dsx-color-accent-indicator: #28005d;
|
|
850
850
|
--dsx-color-accent-track: #8553f6;
|
|
851
851
|
--dsx-color-accent-contrast: #ffffff;
|
|
852
|
-
--dsx-color-accent-surface: rgba(230, 226, 255, 0.
|
|
852
|
+
--dsx-color-accent-surface: rgba(230, 226, 255, 0.2);
|
|
853
853
|
--dsx-color-border-subtle: #c3c8d4;
|
|
854
854
|
--dsx-color-border-strong: #8b90a3;
|
|
855
855
|
--dsx-effect-shadow-1: 0 1px 2px rgba(44, 47, 61, 0.12);
|
|
@@ -894,7 +894,7 @@ svg {
|
|
|
894
894
|
--dsx-color-accent-indicator: var(--dsx-color-accent-rift-12);
|
|
895
895
|
--dsx-color-accent-track: var(--dsx-color-accent-rift-9);
|
|
896
896
|
--dsx-color-accent-contrast: #ffffff;
|
|
897
|
-
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-rift-3)
|
|
897
|
+
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-rift-3) 20%, transparent);
|
|
898
898
|
--dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-rift-9) 56%, transparent);
|
|
899
899
|
--dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-rift-9) 24%, transparent);
|
|
900
900
|
--dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-rift-9) 36%, transparent);
|
|
@@ -923,7 +923,7 @@ svg {
|
|
|
923
923
|
--dsx-color-accent-indicator: var(--dsx-color-accent-warp-12);
|
|
924
924
|
--dsx-color-accent-track: var(--dsx-color-accent-warp-9);
|
|
925
925
|
--dsx-color-accent-contrast: #ffffff;
|
|
926
|
-
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-warp-3)
|
|
926
|
+
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-warp-3) 20%, transparent);
|
|
927
927
|
--dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-warp-9) 56%, transparent);
|
|
928
928
|
--dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-warp-9) 24%, transparent);
|
|
929
929
|
--dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-warp-9) 36%, transparent);
|
|
@@ -952,7 +952,7 @@ svg {
|
|
|
952
952
|
--dsx-color-accent-indicator: var(--dsx-color-accent-ray-12);
|
|
953
953
|
--dsx-color-accent-track: var(--dsx-color-accent-ray-9);
|
|
954
954
|
--dsx-color-accent-contrast: #ffffff;
|
|
955
|
-
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-ray-3)
|
|
955
|
+
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-ray-3) 20%, transparent);
|
|
956
956
|
--dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-ray-9) 56%, transparent);
|
|
957
957
|
--dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-ray-9) 24%, transparent);
|
|
958
958
|
--dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-ray-9) 36%, transparent);
|
|
@@ -981,7 +981,7 @@ svg {
|
|
|
981
981
|
--dsx-color-accent-indicator: var(--dsx-color-accent-astral-12);
|
|
982
982
|
--dsx-color-accent-track: var(--dsx-color-accent-astral-9);
|
|
983
983
|
--dsx-color-accent-contrast: #ffffff;
|
|
984
|
-
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-astral-3)
|
|
984
|
+
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-astral-3) 20%, transparent);
|
|
985
985
|
--dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-astral-9) 56%, transparent);
|
|
986
986
|
--dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-astral-9) 24%, transparent);
|
|
987
987
|
--dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-astral-9) 36%, transparent);
|
|
@@ -1010,7 +1010,7 @@ svg {
|
|
|
1010
1010
|
--dsx-color-accent-indicator: var(--dsx-color-accent-spark-12);
|
|
1011
1011
|
--dsx-color-accent-track: var(--dsx-color-accent-spark-9);
|
|
1012
1012
|
--dsx-color-accent-contrast: #0c0d12;
|
|
1013
|
-
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-spark-3)
|
|
1013
|
+
--dsx-color-accent-surface: color-mix(in srgb, var(--dsx-color-accent-spark-3) 20%, transparent);
|
|
1014
1014
|
--dsx-effect-ring-focus: color-mix(in srgb, var(--dsx-color-accent-spark-9) 56%, transparent);
|
|
1015
1015
|
--dsx-effect-shadow-accent: color-mix(in srgb, var(--dsx-color-accent-spark-9) 24%, transparent);
|
|
1016
1016
|
--dsx-effect-shadow-accent-strong: color-mix(in srgb, var(--dsx-color-accent-spark-9) 36%, transparent);
|
|
@@ -1168,6 +1168,12 @@ svg {
|
|
|
1168
1168
|
--dsx-shadow-elevation-2: var(--dsx-effect-shadow-2);
|
|
1169
1169
|
--dsx-shadow-elevation-3: var(--dsx-effect-shadow-3);
|
|
1170
1170
|
--dsx-shadow-elevation-4: var(--dsx-effect-shadow-4);
|
|
1171
|
+
/* Step 5 (Spotlight: toasts, dragged panels). Step 6 stays raw until an
|
|
1172
|
+
occupant earns it — no elevation-6 alias by decision (B4 Q3). */
|
|
1173
|
+
--dsx-shadow-elevation-5: var(--dsx-effect-shadow-5);
|
|
1174
|
+
/* Menu-tier control point (B4 Q3): every menu-family content rides step 3
|
|
1175
|
+
unless a component file reasserts it locally for cascade order. */
|
|
1176
|
+
--dsx-menu-content-elevation: var(--dsx-shadow-elevation-3);
|
|
1171
1177
|
--dsx-shadow-panel-shadow: var(--dsx-effect-shadow-3);
|
|
1172
1178
|
|
|
1173
1179
|
/* ── Constructed shadows ────────────────────────────────────────────── */
|
|
@@ -2579,6 +2585,68 @@ textarea {
|
|
|
2579
2585
|
border-radius: var(--dsx-rounded-full);
|
|
2580
2586
|
}
|
|
2581
2587
|
|
|
2588
|
+
.dsx-banner {
|
|
2589
|
+
display: flex;
|
|
2590
|
+
flex-direction: column;
|
|
2591
|
+
gap: var(--dsx-space-xs);
|
|
2592
|
+
padding: var(--dsx-space-lg);
|
|
2593
|
+
border-radius: var(--dsx-rounded-lg);
|
|
2594
|
+
background: var(--dsx-color-accent-surface);
|
|
2595
|
+
box-sizing: border-box;
|
|
2596
|
+
min-width: 0;
|
|
2597
|
+
overflow-wrap: anywhere;
|
|
2598
|
+
}
|
|
2599
|
+
|
|
2600
|
+
/* Fill: solid accent mass reusing Button primary's solved compliance —
|
|
2601
|
+
accent-track background with accent-contrast text (near-black on spark,
|
|
2602
|
+
white elsewhere, per the token). Wash stays the default hero. */
|
|
2603
|
+
|
|
2604
|
+
.dsx-banner:where([data-variant='fill'], .dsx-banner-variant-fill) {
|
|
2605
|
+
background: var(--dsx-color-accent-track);
|
|
2606
|
+
}
|
|
2607
|
+
|
|
2608
|
+
.dsx-banner:where([data-variant='fill'], .dsx-banner-variant-fill) .dsx-banner__label,
|
|
2609
|
+
.dsx-banner:where([data-variant='fill'], .dsx-banner-variant-fill) .dsx-banner__value,
|
|
2610
|
+
.dsx-banner:where([data-variant='fill'], .dsx-banner-variant-fill) .dsx-banner__footnote {
|
|
2611
|
+
color: var(--dsx-color-accent-contrast);
|
|
2612
|
+
}
|
|
2613
|
+
|
|
2614
|
+
.dsx-banner__label {
|
|
2615
|
+
font-family: var(--dsx-typography-label-small-font-family), sans-serif;
|
|
2616
|
+
font-size: var(--dsx-typography-label-small-font-size);
|
|
2617
|
+
font-weight: var(--dsx-typography-label-small-font-weight);
|
|
2618
|
+
line-height: var(--dsx-typography-label-small-line-height);
|
|
2619
|
+
letter-spacing: var(--dsx-typography-label-small-letter-spacing);
|
|
2620
|
+
font-variation-settings: var(--dsx-typography-label-small-font-variation-settings);
|
|
2621
|
+
text-transform: var(--dsx-typography-label-small-text-transform);
|
|
2622
|
+
text-decoration: var(--dsx-typography-label-small-text-decoration);
|
|
2623
|
+
color: var(--dsx-color-on-surface-variant);
|
|
2624
|
+
}
|
|
2625
|
+
|
|
2626
|
+
.dsx-banner__value {
|
|
2627
|
+
font-family: var(--dsx-typography-display-medium-font-family), sans-serif;
|
|
2628
|
+
font-size: var(--dsx-typography-display-medium-font-size);
|
|
2629
|
+
font-weight: var(--dsx-typography-display-medium-font-weight);
|
|
2630
|
+
line-height: var(--dsx-typography-display-medium-line-height);
|
|
2631
|
+
letter-spacing: var(--dsx-typography-display-medium-letter-spacing);
|
|
2632
|
+
font-variation-settings: var(--dsx-typography-display-medium-font-variation-settings);
|
|
2633
|
+
text-transform: var(--dsx-typography-display-medium-text-transform);
|
|
2634
|
+
text-decoration: var(--dsx-typography-display-medium-text-decoration);
|
|
2635
|
+
color: var(--dsx-color-on-surface);
|
|
2636
|
+
}
|
|
2637
|
+
|
|
2638
|
+
.dsx-banner__footnote {
|
|
2639
|
+
font-family: var(--dsx-typography-body-small-font-family), sans-serif;
|
|
2640
|
+
font-size: var(--dsx-typography-body-small-font-size);
|
|
2641
|
+
font-weight: var(--dsx-typography-body-small-font-weight);
|
|
2642
|
+
line-height: var(--dsx-typography-body-small-line-height);
|
|
2643
|
+
letter-spacing: var(--dsx-typography-body-small-letter-spacing);
|
|
2644
|
+
font-variation-settings: var(--dsx-typography-body-small-font-variation-settings);
|
|
2645
|
+
text-transform: var(--dsx-typography-body-small-text-transform);
|
|
2646
|
+
text-decoration: var(--dsx-typography-body-small-text-decoration);
|
|
2647
|
+
color: var(--dsx-color-on-surface-variant);
|
|
2648
|
+
}
|
|
2649
|
+
|
|
2582
2650
|
@keyframes dsx-base-button-loading-shimmer {
|
|
2583
2651
|
0% {
|
|
2584
2652
|
background-position: 200% 0;
|
|
@@ -3098,6 +3166,15 @@ textarea {
|
|
|
3098
3166
|
border-color: color-mix(in srgb, var(--dsx-color-error-10), var(--dsx-color-error-11) 35%);
|
|
3099
3167
|
}
|
|
3100
3168
|
|
|
3169
|
+
/* ---- halo: resting accent ring on every variant (primary has its own rule above) ---- */
|
|
3170
|
+
|
|
3171
|
+
.dsx-button:where([data-variant='secondary'])[data-halo='true'],
|
|
3172
|
+
.dsx-button:where([data-variant='outline'])[data-halo='true'],
|
|
3173
|
+
.dsx-button:where([data-variant='ghost'])[data-halo='true'],
|
|
3174
|
+
.dsx-button:where([data-variant='destructive'])[data-halo='true'] {
|
|
3175
|
+
box-shadow: var(--dsx-shadow-accent-ring);
|
|
3176
|
+
}
|
|
3177
|
+
|
|
3101
3178
|
.dsx-button[data-size='sm'] {
|
|
3102
3179
|
min-height: var(--dsx-density-control-height-sm, var(--dsx-size-lg));
|
|
3103
3180
|
padding-inline: var(--dsx-density-control-padding-inline-sm, var(--dsx-space-sm));
|
|
@@ -3341,6 +3418,9 @@ textarea {
|
|
|
3341
3418
|
|
|
3342
3419
|
.dsx-card {
|
|
3343
3420
|
display: flex;
|
|
3421
|
+
min-width: 0;
|
|
3422
|
+
max-width: 100%;
|
|
3423
|
+
overflow-wrap: anywhere;
|
|
3344
3424
|
flex-direction: column;
|
|
3345
3425
|
gap: var(--dsx-space-md);
|
|
3346
3426
|
padding: var(--dsx-space-lg);
|
|
@@ -3419,25 +3499,43 @@ textarea {
|
|
|
3419
3499
|
}
|
|
3420
3500
|
|
|
3421
3501
|
.dsx-carousel {
|
|
3502
|
+
--_carousel-nav-size: var(--dsx-size-lg);
|
|
3422
3503
|
position: relative;
|
|
3423
3504
|
display: flex;
|
|
3424
3505
|
flex-direction: column;
|
|
3425
3506
|
align-items: center;
|
|
3426
3507
|
gap: var(--dsx-space-md);
|
|
3427
3508
|
width: 100%;
|
|
3509
|
+
min-width: 0;
|
|
3510
|
+
max-width: 100%;
|
|
3428
3511
|
}
|
|
3429
3512
|
|
|
3430
3513
|
.dsx-carousel__viewport {
|
|
3514
|
+
--_carousel-gutter-start: 0;
|
|
3515
|
+
--_carousel-gutter-end: 0;
|
|
3431
3516
|
position: relative;
|
|
3432
3517
|
width: 100%;
|
|
3433
3518
|
overflow: hidden;
|
|
3434
3519
|
border-radius: var(--dsx-rounded-xl);
|
|
3435
3520
|
}
|
|
3436
3521
|
|
|
3522
|
+
.dsx-carousel__viewport:where(:not([data-orientation='vertical'])):has(> .dsx-carousel__nav--previous) {
|
|
3523
|
+
--_carousel-gutter-start: calc(var(--_carousel-nav-size) + var(--dsx-space-md) + var(--dsx-space-xs));
|
|
3524
|
+
}
|
|
3525
|
+
|
|
3526
|
+
.dsx-carousel__viewport:has(> .dsx-carousel__nav--next) {
|
|
3527
|
+
--_carousel-gutter-end: calc(var(--_carousel-nav-size) + var(--dsx-space-md) + var(--dsx-space-xs));
|
|
3528
|
+
}
|
|
3529
|
+
|
|
3437
3530
|
.dsx-carousel__viewport[data-orientation='vertical'] {
|
|
3531
|
+
--_carousel-gutter-start: 0;
|
|
3438
3532
|
height: var(--dsx-carousel-vertical-height, 320px);
|
|
3439
3533
|
}
|
|
3440
3534
|
|
|
3535
|
+
.dsx-carousel__viewport:where([data-orientation='vertical']):has(> .dsx-carousel__nav--previous) {
|
|
3536
|
+
--_carousel-gutter-end: calc(var(--_carousel-nav-size) + var(--dsx-space-md) + var(--dsx-space-xs));
|
|
3537
|
+
}
|
|
3538
|
+
|
|
3441
3539
|
.dsx-carousel__track {
|
|
3442
3540
|
display: flex;
|
|
3443
3541
|
flex-direction: row;
|
|
@@ -3448,25 +3546,26 @@ textarea {
|
|
|
3448
3546
|
|
|
3449
3547
|
.dsx-carousel__track--vertical {
|
|
3450
3548
|
flex-direction: column;
|
|
3549
|
+
height: 100%;
|
|
3550
|
+
}
|
|
3551
|
+
|
|
3552
|
+
.dsx-carousel__slide {
|
|
3553
|
+
flex: 0 0 100%;
|
|
3554
|
+
min-width: 0;
|
|
3555
|
+
min-height: 0;
|
|
3451
3556
|
}
|
|
3452
3557
|
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
child to its own content size instead of the slide's 100% width.
|
|
3558
|
+
.dsx-carousel__track--vertical .dsx-carousel__item {
|
|
3559
|
+
height: 100%;
|
|
3560
|
+
}
|
|
3457
3561
|
|
|
3458
|
-
|
|
3459
|
-
absolutely positioned over the viewport (left/right: space-md), and item content had no
|
|
3460
|
-
built-in clearance for them. Short centered content (a price) never reached the edges, so this
|
|
3461
|
-
went unnoticed; a full sentence ("this tier isn't sold in <currency>") does, and sat directly
|
|
3462
|
-
under the chevrons — "the chevrons of the carousel is colliding within the text." Reserving
|
|
3463
|
-
space for the nav buttons here, once, means no consumer has to remember to pad their own item
|
|
3464
|
-
content to avoid them. */
|
|
3562
|
+
/* Keep consumer content full width, reserving only the lanes occupied by controls. */
|
|
3465
3563
|
|
|
3466
3564
|
.dsx-carousel__item {
|
|
3565
|
+
box-sizing: border-box;
|
|
3467
3566
|
flex: 0 0 100%;
|
|
3468
3567
|
min-width: 0;
|
|
3469
|
-
padding-inline:
|
|
3568
|
+
padding-inline: var(--_carousel-gutter-start) var(--_carousel-gutter-end);
|
|
3470
3569
|
}
|
|
3471
3570
|
|
|
3472
3571
|
.dsx-carousel__item:has(+ .dsx-carousel__item) {
|
|
@@ -3480,8 +3579,9 @@ textarea {
|
|
|
3480
3579
|
display: flex;
|
|
3481
3580
|
align-items: center;
|
|
3482
3581
|
justify-content: center;
|
|
3483
|
-
|
|
3484
|
-
|
|
3582
|
+
box-sizing: border-box;
|
|
3583
|
+
width: var(--_carousel-nav-size);
|
|
3584
|
+
height: var(--_carousel-nav-size);
|
|
3485
3585
|
padding: 0;
|
|
3486
3586
|
border: var(--dsx-border-width-sm) solid var(--dsx-panel-border-color);
|
|
3487
3587
|
border-radius: var(--dsx-rounded-full);
|
|
@@ -3495,16 +3595,45 @@ textarea {
|
|
|
3495
3595
|
box-shadow: var(--dsx-shadow-elevation-2);
|
|
3496
3596
|
}
|
|
3497
3597
|
|
|
3498
|
-
.dsx-carousel__nav:hover {
|
|
3598
|
+
.dsx-carousel__nav:hover:enabled {
|
|
3499
3599
|
background: var(--dsx-color-surface-raised);
|
|
3500
3600
|
border-color: var(--dsx-color-primary);
|
|
3501
3601
|
color: var(--dsx-color-primary);
|
|
3502
3602
|
}
|
|
3503
3603
|
|
|
3504
|
-
.dsx-carousel__nav:
|
|
3604
|
+
.dsx-carousel__nav:focus-visible,
|
|
3605
|
+
.dsx-carousel__indicator:focus-visible {
|
|
3606
|
+
outline: none;
|
|
3607
|
+
box-shadow: var(--dsx-shadow-focus-ring);
|
|
3608
|
+
}
|
|
3609
|
+
|
|
3610
|
+
/* Preserve the circular paint while its entire 24px minimum box accepts input. */
|
|
3611
|
+
|
|
3612
|
+
.dsx-carousel__nav::before {
|
|
3613
|
+
content: '';
|
|
3614
|
+
position: absolute;
|
|
3615
|
+
inset: calc(-1 * var(--dsx-border-width-sm));
|
|
3616
|
+
}
|
|
3617
|
+
|
|
3618
|
+
.dsx-carousel__nav:active:enabled {
|
|
3505
3619
|
background: var(--dsx-effect-pressed-layer);
|
|
3506
3620
|
}
|
|
3507
3621
|
|
|
3622
|
+
.dsx-carousel__nav:disabled {
|
|
3623
|
+
cursor: default;
|
|
3624
|
+
opacity: var(--dsx-opacity-disabled);
|
|
3625
|
+
}
|
|
3626
|
+
|
|
3627
|
+
.dsx-carousel__viewport[data-orientation='vertical'] .dsx-carousel__nav--previous {
|
|
3628
|
+
top: 25%;
|
|
3629
|
+
left: auto;
|
|
3630
|
+
right: var(--dsx-space-md);
|
|
3631
|
+
}
|
|
3632
|
+
|
|
3633
|
+
.dsx-carousel__viewport[data-orientation='vertical'] .dsx-carousel__nav--next {
|
|
3634
|
+
top: 75%;
|
|
3635
|
+
}
|
|
3636
|
+
|
|
3508
3637
|
.dsx-carousel__nav--previous {
|
|
3509
3638
|
left: var(--dsx-space-md);
|
|
3510
3639
|
}
|
|
@@ -3513,14 +3642,12 @@ textarea {
|
|
|
3513
3642
|
right: var(--dsx-space-md);
|
|
3514
3643
|
}
|
|
3515
3644
|
|
|
3516
|
-
.dsx-carousel[data-size='sm']
|
|
3517
|
-
|
|
3518
|
-
height: var(--dsx-size-md);
|
|
3645
|
+
.dsx-carousel[data-size='sm'] {
|
|
3646
|
+
--_carousel-nav-size: var(--dsx-size-md);
|
|
3519
3647
|
}
|
|
3520
3648
|
|
|
3521
|
-
.dsx-carousel[data-size='lg']
|
|
3522
|
-
|
|
3523
|
-
height: var(--dsx-size-xl);
|
|
3649
|
+
.dsx-carousel[data-size='lg'] {
|
|
3650
|
+
--_carousel-nav-size: var(--dsx-size-xl);
|
|
3524
3651
|
}
|
|
3525
3652
|
|
|
3526
3653
|
.dsx-carousel__indicators {
|
|
@@ -3536,26 +3663,48 @@ textarea {
|
|
|
3536
3663
|
the stronger --dsx-color-outline token and bumped the dot itself up one size step. */
|
|
3537
3664
|
|
|
3538
3665
|
.dsx-carousel__indicator {
|
|
3539
|
-
|
|
3540
|
-
|
|
3666
|
+
position: relative;
|
|
3667
|
+
width: var(--dsx-size-md);
|
|
3668
|
+
height: var(--dsx-size-md);
|
|
3541
3669
|
padding: 0;
|
|
3542
3670
|
border: none;
|
|
3671
|
+
border-radius: 0;
|
|
3672
|
+
background: transparent;
|
|
3673
|
+
cursor: pointer;
|
|
3674
|
+
}
|
|
3675
|
+
|
|
3676
|
+
.dsx-carousel__indicator::before {
|
|
3677
|
+
content: '';
|
|
3678
|
+
position: absolute;
|
|
3679
|
+
top: 50%;
|
|
3680
|
+
left: 50%;
|
|
3681
|
+
transform: translate(-50%, -50%);
|
|
3682
|
+
width: var(--dsx-space-sm);
|
|
3683
|
+
height: var(--dsx-space-sm);
|
|
3543
3684
|
border-radius: var(--dsx-rounded-full);
|
|
3544
3685
|
background: var(--dsx-color-outline);
|
|
3545
|
-
cursor: pointer;
|
|
3546
3686
|
transition: background var(--dsx-motion-duration-fast) var(--dsx-motion-easing-in-out),
|
|
3547
3687
|
width var(--dsx-motion-duration-fast) var(--dsx-motion-easing-in-out);
|
|
3548
3688
|
}
|
|
3549
3689
|
|
|
3550
|
-
.dsx-carousel__indicator--active {
|
|
3690
|
+
.dsx-carousel__indicator--active::before {
|
|
3551
3691
|
background: var(--dsx-color-primary);
|
|
3552
3692
|
width: var(--dsx-space-md);
|
|
3553
3693
|
}
|
|
3554
3694
|
|
|
3695
|
+
@media (prefers-reduced-motion: reduce) {
|
|
3696
|
+
.dsx-carousel__track,
|
|
3697
|
+
.dsx-carousel__nav,
|
|
3698
|
+
.dsx-carousel__indicator::before {
|
|
3699
|
+
transition: none;
|
|
3700
|
+
}
|
|
3701
|
+
}
|
|
3702
|
+
|
|
3555
3703
|
.dsx-checkbox {
|
|
3556
3704
|
display: inline-flex;
|
|
3557
3705
|
align-items: center;
|
|
3558
3706
|
justify-content: center;
|
|
3707
|
+
position: relative;
|
|
3559
3708
|
width: var(--dsx-size-md);
|
|
3560
3709
|
height: var(--dsx-size-md);
|
|
3561
3710
|
border-radius: var(--dsx-rounded-sm);
|
|
@@ -3618,6 +3767,20 @@ textarea {
|
|
|
3618
3767
|
box-shadow: var(--dsx-shadow-focus-ring);
|
|
3619
3768
|
}
|
|
3620
3769
|
|
|
3770
|
+
/* Extended hit area — the visual box stays 20/24/32px per size, but the
|
|
3771
|
+
pointer target grows to 44px (WCAG 2.5.8 minimum 24px, TMA touch 44px).
|
|
3772
|
+
Absolutely positioned, so it never affects layout. */
|
|
3773
|
+
|
|
3774
|
+
.dsx-checkbox::before {
|
|
3775
|
+
content: '';
|
|
3776
|
+
position: absolute;
|
|
3777
|
+
top: 50%;
|
|
3778
|
+
left: 50%;
|
|
3779
|
+
transform: translate(-50%, -50%);
|
|
3780
|
+
width: max(100% + 16px, 44px);
|
|
3781
|
+
height: max(100% + 16px, 44px);
|
|
3782
|
+
}
|
|
3783
|
+
|
|
3621
3784
|
.dsx-checkbox[data-state='checked'],
|
|
3622
3785
|
.dsx-checkbox[data-state='indeterminate'] {
|
|
3623
3786
|
background: var(--dsx-color-accent-track);
|
|
@@ -3940,155 +4103,6 @@ textarea {
|
|
|
3940
4103
|
}
|
|
3941
4104
|
}
|
|
3942
4105
|
|
|
3943
|
-
/* data-group-radius, not data-radius (2026-08-26, real bug found live): data-radius is a
|
|
3944
|
-
reserved document-theme attribute that PortalThemeBoundary walks up via closest-ancestor
|
|
3945
|
-
lookup to mirror the app's global radius setting into portaled content (Select/Dialog/
|
|
3946
|
-
Popover/etc). A component-local data-radius sitting between a portal trigger and <html>
|
|
3947
|
-
gets picked up instead of the real value — confirmed live via a Select inside this
|
|
3948
|
-
component whose dropdown opened at 9999px border-radius instead of the real global radius. */
|
|
3949
|
-
|
|
3950
|
-
.dsx-control-group {
|
|
3951
|
-
display: inline-flex;
|
|
3952
|
-
align-items: center;
|
|
3953
|
-
gap: 0;
|
|
3954
|
-
isolation: isolate;
|
|
3955
|
-
border: var(--dsx-border-width-sm) solid var(--dsx-color-outline-variant);
|
|
3956
|
-
background: var(--dsx-color-surface);
|
|
3957
|
-
padding: var(--dsx-space-xs);
|
|
3958
|
-
min-width: max-content;
|
|
3959
|
-
}
|
|
3960
|
-
|
|
3961
|
-
/* Real bug found live (2026-08-26, direct screenshot: an active ToggleGroup item's filled
|
|
3962
|
-
background poked a hard square corner past this frame's rounded-full pill): this used to set
|
|
3963
|
-
a bespoke `--dsx-control-group-item-radius` custom property that only this file ever read.
|
|
3964
|
-
ButtonGroup, SegmentedControl, ToggleGroup, and baseInput all already share one established
|
|
3965
|
-
convention for the same concept — `--dsx-grouped-radius` (declared globally in tokens.css,
|
|
3966
|
-
defaulting to `--dsx-rounded-md`) — and ToggleGroup's own per-item corner rules (this file's
|
|
3967
|
-
sibling, toggle-group.css) read exactly that token with that exact fallback. Because
|
|
3968
|
-
ControlGroup never set it, every child silently fell back to `--dsx-rounded-md` (8px)
|
|
3969
|
-
regardless of ControlGroup's own `radius` prop — invisible for a plain-bordered rest-state
|
|
3970
|
-
corner, glaringly visible once an active item got a real fill (this session's ToggleGroup
|
|
3971
|
-
contrast fix). Renamed to join the existing convention instead of inventing a second one. */
|
|
3972
|
-
|
|
3973
|
-
.dsx-control-group[data-group-radius='full'] {
|
|
3974
|
-
border-radius: var(--dsx-rounded-full);
|
|
3975
|
-
--dsx-grouped-radius: var(--dsx-rounded-full);
|
|
3976
|
-
}
|
|
3977
|
-
|
|
3978
|
-
.dsx-control-group[data-group-radius='md'] {
|
|
3979
|
-
border-radius: var(--dsx-rounded-md);
|
|
3980
|
-
--dsx-grouped-radius: var(--dsx-rounded-md);
|
|
3981
|
-
}
|
|
3982
|
-
|
|
3983
|
-
/* Direct children keep their own border/shadow/background — ControlGroup only manages the two
|
|
3984
|
-
outer corners (so a child's own rounded shape matches the frame's curve instead of poking a
|
|
3985
|
-
square corner past it, the exact bug that motivated this component) and a 1px seam between
|
|
3986
|
-
adjacent children. Not a border-collapse like InputGroup: children here are not assumed to
|
|
3987
|
-
share one border width, since they're full DS components, not stacked form parts.
|
|
3988
|
-
--dsx-grouped-radius (set on the root above, per data-radius) keeps these child
|
|
3989
|
-
selectors at class+pseudo-class specificity instead of repeating the [data-radius] attribute
|
|
3990
|
-
on every rule — the CSS selector policy caps specificity, this keeps both radius values
|
|
3991
|
-
covered by two selectors instead of four.
|
|
3992
|
-
|
|
3993
|
-
Real bug found live (2026-08-26): a child composed from a component that renders
|
|
3994
|
-
PortalThemeBoundary (Select, Dialog, Popover, DropdownMenu, ...) injects a `hidden`
|
|
3995
|
-
`<span data-dsx-portal-probe>` as ITS OWN first DOM sibling, ahead of the component's visible
|
|
3996
|
-
markup — confirmed via a Select child, whose actual `:first-child` in the DOM was that hidden
|
|
3997
|
-
probe span, not the visible trigger button. `> *:first-child` landed the corner radius on the
|
|
3998
|
-
invisible probe, leaving the real trigger's own default (non-full) radius untouched — the
|
|
3999
|
-
"currency picker isn't rounded" bug. The probe is always exactly one hidden leading sibling
|
|
4000
|
-
(never last), so `:first-child` alone still needs a fallback for "the element right after a
|
|
4001
|
-
hidden first child"; `:last-child` needed no change since the probe is never last. */
|
|
4002
|
-
|
|
4003
|
-
.dsx-control-group > *:first-child:not([hidden]),
|
|
4004
|
-
.dsx-control-group > [hidden]:first-child + * {
|
|
4005
|
-
border-start-start-radius: var(--dsx-grouped-radius);
|
|
4006
|
-
border-end-start-radius: var(--dsx-grouped-radius);
|
|
4007
|
-
}
|
|
4008
|
-
|
|
4009
|
-
.dsx-control-group > *:last-child {
|
|
4010
|
-
border-start-end-radius: var(--dsx-grouped-radius);
|
|
4011
|
-
border-end-end-radius: var(--dsx-grouped-radius);
|
|
4012
|
-
}
|
|
4013
|
-
|
|
4014
|
-
/* Real bug found live (2026-08-26, direct screenshot annotation pointing at the seam between
|
|
4015
|
-
Select and ToggleGroup): the two rules above only ever touched each child's OUTER corners —
|
|
4016
|
-
the INNER corners (Select's right edge, ToggleGroup's left edge, where they meet at the
|
|
4017
|
-
divider) were left at that child's own component default (Select's own `--dsx-rounded-md`,
|
|
4018
|
-
8px), not explicitly squared. Confirmed via computed style: Select's own `border-radius`
|
|
4019
|
-
read `9999px 8px 8px 9999px` — the outer-left corner correctly matched the pill, but the
|
|
4020
|
-
inner-right corner sat at a stray 8px instead of 0, reading as a mismatched notch right at
|
|
4021
|
-
the seam. Every grouped-control convention in this DS (ButtonGroup, SegmentedControl) squares
|
|
4022
|
-
the inner-facing corners explicitly rather than assuming a child's own default is already 0 —
|
|
4023
|
-
this closes the same gap here.
|
|
4024
|
-
|
|
4025
|
-
ROOT CAUSE, not another patch (2026-08-26, same-day correction after the fix above still
|
|
4026
|
-
broke, confirmed live via a screenshot of the currency dropdown OPEN): the very next rule
|
|
4027
|
-
added here (a generic "middle child" `:not(:first-child):not(:last-child) { border-radius:
|
|
4028
|
-
0 }`) was written for a hypothetical 3+-child ControlGroup that has never existed anywhere in
|
|
4029
|
-
this codebase — the only real usage today is exactly two children (Select + ToggleGroup).
|
|
4030
|
-
Because PortalThemeBoundary's hidden probe span sits at real DOM index 0, Select's own
|
|
4031
|
-
trigger sits at DOM index 1 — neither `:first-child` nor `:last-child` — so the speculative
|
|
4032
|
-
middle-child rule matched it by accident, tied in specificity with the correct
|
|
4033
|
-
`[hidden]:first-child + *` rule above, and won by coming later in the file, forcing
|
|
4034
|
-
`border-radius: 0` on ALL FOUR corners including the outer-left one this file exists to
|
|
4035
|
-
round. Deleted rather than special-cased further: a selector with no real target is the
|
|
4036
|
-
actual defect here, not something to keep patching around. If a genuine 3+-child ControlGroup
|
|
4037
|
-
ever ships, its middle-child corner logic needs designing against that real DOM shape then —
|
|
4038
|
-
not speculatively now, against a shape that doesn't exist and that the hidden-probe mechanic
|
|
4039
|
-
actively defeats. */
|
|
4040
|
-
|
|
4041
|
-
.dsx-control-group > *:first-child:not([hidden]),
|
|
4042
|
-
.dsx-control-group > [hidden]:first-child + * {
|
|
4043
|
-
border-start-end-radius: 0;
|
|
4044
|
-
border-end-end-radius: 0;
|
|
4045
|
-
}
|
|
4046
|
-
|
|
4047
|
-
.dsx-control-group > *:last-child {
|
|
4048
|
-
border-start-start-radius: 0;
|
|
4049
|
-
border-end-start-radius: 0;
|
|
4050
|
-
}
|
|
4051
|
-
|
|
4052
|
-
/* The `:not([hidden])` on the preceding sibling keeps the divider off the first VISIBLE child
|
|
4053
|
-
when a PortalThemeBoundary child (Select, Dialog, Popover, DropdownMenu, ...) injects a hidden
|
|
4054
|
-
`<span data-dsx-portal-probe>` at real DOM index 0 (2026-08-27 "stray separator on the left
|
|
4055
|
-
side" bug). A plain `* + *` matches "has a preceding sibling element" regardless of whether
|
|
4056
|
-
that sibling is hidden, so it previously needed a separate `content: none` override for the
|
|
4057
|
-
probe case. Folding the guard into the base selector removes that override and keeps the rule
|
|
4058
|
-
under the `0,3,0` selector-policy specificity ceiling — a three-class guard plus `::before`
|
|
4059
|
-
lands at `0,3,1`. */
|
|
4060
|
-
|
|
4061
|
-
.dsx-control-group > *:not([hidden]) + * {
|
|
4062
|
-
position: relative;
|
|
4063
|
-
}
|
|
4064
|
-
|
|
4065
|
-
.dsx-control-group > *:not([hidden]) + *::before {
|
|
4066
|
-
content: '';
|
|
4067
|
-
position: absolute;
|
|
4068
|
-
inset-inline-start: calc(-1 * var(--dsx-space-xs));
|
|
4069
|
-
top: 50%;
|
|
4070
|
-
transform: translateY(-50%);
|
|
4071
|
-
width: var(--dsx-border-width-sm);
|
|
4072
|
-
height: 60%;
|
|
4073
|
-
background: var(--dsx-color-outline-variant);
|
|
4074
|
-
pointer-events: none;
|
|
4075
|
-
}
|
|
4076
|
-
|
|
4077
|
-
/* Lift a focused child above its neighbors so its focus ring is never clipped by the group's
|
|
4078
|
-
own rounded corners or the seam divider. */
|
|
4079
|
-
|
|
4080
|
-
.dsx-control-group > *:focus-within {
|
|
4081
|
-
z-index: 1;
|
|
4082
|
-
}
|
|
4083
|
-
|
|
4084
|
-
.dsx-control-group[data-size='sm'] {
|
|
4085
|
-
padding: var(--dsx-space-1, 2px);
|
|
4086
|
-
}
|
|
4087
|
-
|
|
4088
|
-
.dsx-control-group[data-size='lg'] {
|
|
4089
|
-
padding: var(--dsx-space-sm);
|
|
4090
|
-
}
|
|
4091
|
-
|
|
4092
4106
|
.dsx-dropdown-menu__content,
|
|
4093
4107
|
.dsx-context-menu__content,
|
|
4094
4108
|
.dsx-menubar__content,
|
|
@@ -4098,8 +4112,20 @@ textarea {
|
|
|
4098
4112
|
box-shadow: var(--dsx-menu-content-elevation, var(--dsx-shadow-elevation-3));
|
|
4099
4113
|
}
|
|
4100
4114
|
|
|
4101
|
-
|
|
4102
|
-
|
|
4115
|
+
/* Nested floating tier (shared globalization of the FilterBar round-3 fix):
|
|
4116
|
+
menu-tier content nested inside a modal-tier host (Popover/Content,
|
|
4117
|
+
Dialog/Content — hosts provide FloatingLayerHostContext, menu contents add
|
|
4118
|
+
`dsx-menu__nested`) escalates one step above the host popup
|
|
4119
|
+
(`modal + 2`, above the Popover tier at `modal + 1`). A flat bump of the
|
|
4120
|
+
dropdown tier is rejected on purpose: a standalone page-level menu must stay
|
|
4121
|
+
below the modal overlay (80) so an open Dialog still masks page content —
|
|
4122
|
+
one static value cannot be both above 91 and below 80. Standalone menus
|
|
4123
|
+
never carry this class, so their base tier is untouched. */
|
|
4124
|
+
|
|
4125
|
+
.dsx-select__content.dsx-menu__nested,
|
|
4126
|
+
.dsx-combobox__content.dsx-menu__nested,
|
|
4127
|
+
.dsx-menu__content.dsx-menu__nested {
|
|
4128
|
+
z-index: calc(var(--dsx-z-index-modal, 90) + 2);
|
|
4103
4129
|
}
|
|
4104
4130
|
|
|
4105
4131
|
.dsx-dropdown-menu__label,
|
|
@@ -4378,7 +4404,7 @@ textarea {
|
|
|
4378
4404
|
gap: var(--dsx-space-sm);
|
|
4379
4405
|
padding: var(--dsx-space-sm) var(--dsx-space-sm) var(--dsx-space-sm) calc(var(--dsx-space-lg) + var(--dsx-space-sm));
|
|
4380
4406
|
border: 0;
|
|
4381
|
-
border-radius:
|
|
4407
|
+
border-radius: 0;
|
|
4382
4408
|
background: transparent;
|
|
4383
4409
|
color: var(--dsx-color-on-surface);
|
|
4384
4410
|
text-align: left;
|
|
@@ -4803,7 +4829,7 @@ textarea {
|
|
|
4803
4829
|
gap: var(--dsx-space-sm);
|
|
4804
4830
|
padding: var(--dsx-space-sm) var(--dsx-space-sm) var(--dsx-space-sm) calc(var(--dsx-space-lg) + var(--dsx-space-sm));
|
|
4805
4831
|
border: 0;
|
|
4806
|
-
border-radius:
|
|
4832
|
+
border-radius: 0;
|
|
4807
4833
|
background: transparent;
|
|
4808
4834
|
color: var(--dsx-color-on-surface);
|
|
4809
4835
|
text-align: left;
|
|
@@ -4890,6 +4916,9 @@ textarea {
|
|
|
4890
4916
|
|
|
4891
4917
|
.dsx-empty-state {
|
|
4892
4918
|
display: flex;
|
|
4919
|
+
min-width: 0;
|
|
4920
|
+
max-width: 100%;
|
|
4921
|
+
overflow-wrap: anywhere;
|
|
4893
4922
|
flex-direction: column;
|
|
4894
4923
|
align-items: center;
|
|
4895
4924
|
justify-content: center;
|
|
@@ -4919,6 +4948,8 @@ textarea {
|
|
|
4919
4948
|
|
|
4920
4949
|
.dsx-empty-state__header {
|
|
4921
4950
|
display: flex;
|
|
4951
|
+
min-width: 0;
|
|
4952
|
+
max-width: 100%;
|
|
4922
4953
|
flex-direction: column;
|
|
4923
4954
|
gap: var(--dsx-space-sm);
|
|
4924
4955
|
}
|
|
@@ -5174,6 +5205,8 @@ textarea {
|
|
|
5174
5205
|
.dsx-marquee {
|
|
5175
5206
|
overflow: hidden;
|
|
5176
5207
|
width: 100%;
|
|
5208
|
+
min-width: 0;
|
|
5209
|
+
max-width: 100%;
|
|
5177
5210
|
position: relative;
|
|
5178
5211
|
--dsx-marquee-edge-fade-width: var(--dsx-space-xl);
|
|
5179
5212
|
}
|
|
@@ -5213,6 +5246,10 @@ textarea {
|
|
|
5213
5246
|
animation-play-state: paused;
|
|
5214
5247
|
}
|
|
5215
5248
|
|
|
5249
|
+
.dsx-marquee:focus-within .dsx-marquee__track {
|
|
5250
|
+
animation-play-state: paused;
|
|
5251
|
+
}
|
|
5252
|
+
|
|
5216
5253
|
.dsx-marquee__content {
|
|
5217
5254
|
display: flex;
|
|
5218
5255
|
align-items: center;
|
|
@@ -5304,7 +5341,7 @@ textarea {
|
|
|
5304
5341
|
gap: var(--dsx-space-sm);
|
|
5305
5342
|
padding: var(--dsx-space-sm) var(--dsx-space-sm) var(--dsx-space-sm) calc(var(--dsx-space-lg) + var(--dsx-space-sm));
|
|
5306
5343
|
border: 0;
|
|
5307
|
-
border-radius:
|
|
5344
|
+
border-radius: 0;
|
|
5308
5345
|
background: transparent;
|
|
5309
5346
|
color: var(--dsx-color-on-surface);
|
|
5310
5347
|
text-align: left;
|
|
@@ -5744,6 +5781,7 @@ textarea {
|
|
|
5744
5781
|
}
|
|
5745
5782
|
|
|
5746
5783
|
.dsx-radio-item {
|
|
5784
|
+
position: relative;
|
|
5747
5785
|
display: inline-flex;
|
|
5748
5786
|
align-items: center;
|
|
5749
5787
|
justify-content: center;
|
|
@@ -5754,6 +5792,20 @@ textarea {
|
|
|
5754
5792
|
background: var(--dsx-color-surface);
|
|
5755
5793
|
}
|
|
5756
5794
|
|
|
5795
|
+
/* Extended hit area — the visual circle stays 20/24/32px per size, but the
|
|
5796
|
+
pointer target grows to 44px (WCAG 2.5.8 minimum 24px, TMA touch 44px).
|
|
5797
|
+
Absolutely positioned, so it never affects layout. */
|
|
5798
|
+
|
|
5799
|
+
.dsx-radio-item::before {
|
|
5800
|
+
content: '';
|
|
5801
|
+
position: absolute;
|
|
5802
|
+
top: 50%;
|
|
5803
|
+
left: 50%;
|
|
5804
|
+
transform: translate(-50%, -50%);
|
|
5805
|
+
width: max(100% + 16px, 44px);
|
|
5806
|
+
height: max(100% + 16px, 44px);
|
|
5807
|
+
}
|
|
5808
|
+
|
|
5757
5809
|
.dsx-radio-item--sm {
|
|
5758
5810
|
width: var(--dsx-size-sm);
|
|
5759
5811
|
height: var(--dsx-size-sm);
|
|
@@ -5764,6 +5816,11 @@ textarea {
|
|
|
5764
5816
|
height: var(--dsx-size-md);
|
|
5765
5817
|
}
|
|
5766
5818
|
|
|
5819
|
+
.dsx-radio-item--lg {
|
|
5820
|
+
width: var(--dsx-size-lg);
|
|
5821
|
+
height: var(--dsx-size-lg);
|
|
5822
|
+
}
|
|
5823
|
+
|
|
5767
5824
|
.dsx-radio-item:focus-visible {
|
|
5768
5825
|
outline: none;
|
|
5769
5826
|
box-shadow: var(--dsx-shadow-focus-ring);
|
|
@@ -6014,7 +6071,7 @@ textarea {
|
|
|
6014
6071
|
gap: var(--dsx-space-sm);
|
|
6015
6072
|
padding: var(--dsx-space-sm) calc(var(--dsx-space-lg) + var(--dsx-space-sm)) var(--dsx-space-sm) var(--dsx-space-sm);
|
|
6016
6073
|
border: 0;
|
|
6017
|
-
border-radius:
|
|
6074
|
+
border-radius: 0;
|
|
6018
6075
|
background: transparent;
|
|
6019
6076
|
color: var(--dsx-color-on-surface);
|
|
6020
6077
|
text-align: left;
|
|
@@ -6571,6 +6628,7 @@ textarea {
|
|
|
6571
6628
|
.dsx-rating[data-size='xl'] .dsx-rating__star { width: var(--dsx-size-lg); height: var(--dsx-size-lg); }
|
|
6572
6629
|
|
|
6573
6630
|
.dsx-rating__item {
|
|
6631
|
+
position: relative;
|
|
6574
6632
|
display: inline-flex;
|
|
6575
6633
|
align-items: center;
|
|
6576
6634
|
justify-content: center;
|
|
@@ -6588,6 +6646,18 @@ textarea {
|
|
|
6588
6646
|
box-shadow var(--dsx-motion-duration-fast, 150ms) var(--dsx-motion-easing-standard, ease);
|
|
6589
6647
|
}
|
|
6590
6648
|
|
|
6649
|
+
/* Keep the small star unchanged while filling the gap with a 24px target. */
|
|
6650
|
+
|
|
6651
|
+
.dsx-rating:where([data-size='sm']) .dsx-rating__item::before {
|
|
6652
|
+
content: '';
|
|
6653
|
+
position: absolute;
|
|
6654
|
+
top: 50%;
|
|
6655
|
+
left: 50%;
|
|
6656
|
+
width: var(--dsx-size-md);
|
|
6657
|
+
height: var(--dsx-size-md);
|
|
6658
|
+
transform: translate(-50%, -50%);
|
|
6659
|
+
}
|
|
6660
|
+
|
|
6591
6661
|
.dsx-rating__item:hover:not([data-disabled]),
|
|
6592
6662
|
.dsx-rating__item:focus-visible,
|
|
6593
6663
|
.dsx-rating__item[data-state='checked'] {
|
|
@@ -7279,8 +7349,10 @@ textarea {
|
|
|
7279
7349
|
|
|
7280
7350
|
.dsx-chart {
|
|
7281
7351
|
position: relative;
|
|
7352
|
+
min-width: 0;
|
|
7353
|
+
max-width: 100%;
|
|
7282
7354
|
display: flex;
|
|
7283
|
-
min-height: var(--dsx-chart-min-height);
|
|
7355
|
+
min-height: var(--dsx-chart-min-height, 240px);
|
|
7284
7356
|
aspect-ratio: var(--dsx-chart-aspect-ratio, 1.7778);
|
|
7285
7357
|
color: var(--dsx-semantic-card-foreground);
|
|
7286
7358
|
overflow: hidden;
|
|
@@ -7307,6 +7379,13 @@ textarea {
|
|
|
7307
7379
|
gap: var(--dsx-space-xs);
|
|
7308
7380
|
pointer-events: none;
|
|
7309
7381
|
text-align: center;
|
|
7382
|
+
min-width: 0;
|
|
7383
|
+
overflow-wrap: anywhere;
|
|
7384
|
+
}
|
|
7385
|
+
|
|
7386
|
+
.dsx-chart__center-label > * {
|
|
7387
|
+
min-width: 0;
|
|
7388
|
+
max-width: 100%;
|
|
7310
7389
|
}
|
|
7311
7390
|
|
|
7312
7391
|
.dsx-chart__empty {
|
|
@@ -8538,6 +8617,10 @@ textarea {
|
|
|
8538
8617
|
backdrop-filter: var(--dsx-effect-panel-glass-backdrop-filter);
|
|
8539
8618
|
border: var(--dsx-border-width-sm) solid var(--dsx-panel-border-color);
|
|
8540
8619
|
border-radius: var(--dsx-rounded-lg);
|
|
8620
|
+
/* Menu tier (B4 Q3): the merged Popover base paints step 4 here, which
|
|
8621
|
+
outranks dialogs' peers — reassert step 3 in the component file, where it
|
|
8622
|
+
wins by order. Same expression as baseMenu. */
|
|
8623
|
+
box-shadow: var(--dsx-menu-content-elevation, var(--dsx-shadow-elevation-3));
|
|
8541
8624
|
display: flex;
|
|
8542
8625
|
flex-direction: column;
|
|
8543
8626
|
overflow: hidden;
|
|
@@ -8605,7 +8688,7 @@ textarea {
|
|
|
8605
8688
|
justify-content: space-between;
|
|
8606
8689
|
gap: var(--dsx-space-sm);
|
|
8607
8690
|
padding: var(--dsx-space-sm) var(--dsx-space-md);
|
|
8608
|
-
border-radius:
|
|
8691
|
+
border-radius: 0;
|
|
8609
8692
|
cursor: pointer;
|
|
8610
8693
|
color: var(--dsx-color-on-surface);
|
|
8611
8694
|
font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
|
|
@@ -8867,9 +8950,17 @@ textarea {
|
|
|
8867
8950
|
--dsx-data-list-marker-size: 2.25em;
|
|
8868
8951
|
}
|
|
8869
8952
|
|
|
8953
|
+
/* Unordered marker is a drawn dot, not a text glyph: a radial fill at a
|
|
8954
|
+
fixed fraction of the marker box, so it scales with item size for free —
|
|
8955
|
+
no compounding, no font-dependent glyph rendering. Ordered numerals stay
|
|
8956
|
+
text (counter) at natural size. */
|
|
8957
|
+
|
|
8870
8958
|
.dsx-data-list[data-list-type='unordered'] > .dsx-data-list__item::before {
|
|
8871
|
-
content: '
|
|
8872
|
-
|
|
8959
|
+
content: '';
|
|
8960
|
+
background: radial-gradient(circle closest-side, currentColor 100%, transparent 100%);
|
|
8961
|
+
background-size: 32% 32%;
|
|
8962
|
+
background-repeat: no-repeat;
|
|
8963
|
+
background-position: center;
|
|
8873
8964
|
}
|
|
8874
8965
|
|
|
8875
8966
|
.dsx-data-list[data-list-type='ordered'] > .dsx-data-list__item::before {
|
|
@@ -8880,8 +8971,10 @@ textarea {
|
|
|
8880
8971
|
/* ── Item body — offset for marker breathing room ──────── */
|
|
8881
8972
|
|
|
8882
8973
|
.dsx-data-list__item-body {
|
|
8974
|
+
box-sizing: border-box;
|
|
8883
8975
|
display: flex;
|
|
8884
|
-
|
|
8976
|
+
flex-wrap: wrap;
|
|
8977
|
+
align-items: center;
|
|
8885
8978
|
gap: var(--dsx-space-md);
|
|
8886
8979
|
padding: var(--dsx-space-sm) var(--dsx-space-md);
|
|
8887
8980
|
padding-inline-start: var(--dsx-space-2xl);
|
|
@@ -8896,6 +8989,7 @@ textarea {
|
|
|
8896
8989
|
|
|
8897
8990
|
.dsx-data-list__media {
|
|
8898
8991
|
flex-shrink: 0;
|
|
8992
|
+
align-self: flex-start;
|
|
8899
8993
|
display: inline-flex;
|
|
8900
8994
|
align-items: center;
|
|
8901
8995
|
justify-content: center;
|
|
@@ -8914,6 +9008,7 @@ textarea {
|
|
|
8914
9008
|
}
|
|
8915
9009
|
|
|
8916
9010
|
.dsx-data-list__item[data-size='xs'] > .dsx-data-list__item-body {
|
|
9011
|
+
padding-block: var(--dsx-space-xs);
|
|
8917
9012
|
min-height: var(--dsx-size-lg);
|
|
8918
9013
|
}
|
|
8919
9014
|
|
|
@@ -8922,10 +9017,12 @@ textarea {
|
|
|
8922
9017
|
}
|
|
8923
9018
|
|
|
8924
9019
|
.dsx-data-list__item[data-size='md'] > .dsx-data-list__item-body {
|
|
9020
|
+
padding-block: var(--dsx-space-md);
|
|
8925
9021
|
min-height: var(--dsx-size-2xl);
|
|
8926
9022
|
}
|
|
8927
9023
|
|
|
8928
9024
|
.dsx-data-list__item[data-size='lg'] > .dsx-data-list__item-body {
|
|
9025
|
+
padding-block: var(--dsx-space-lg);
|
|
8929
9026
|
min-height: var(--dsx-size-3xl);
|
|
8930
9027
|
}
|
|
8931
9028
|
|
|
@@ -8945,11 +9042,12 @@ textarea {
|
|
|
8945
9042
|
.dsx-data-list__content {
|
|
8946
9043
|
display: grid;
|
|
8947
9044
|
gap: var(--dsx-space-xs);
|
|
8948
|
-
flex: 1;
|
|
9045
|
+
flex: 1 1 8rem;
|
|
8949
9046
|
min-width: 0;
|
|
8950
9047
|
}
|
|
8951
9048
|
|
|
8952
9049
|
.dsx-data-list__text {
|
|
9050
|
+
overflow-wrap: anywhere;
|
|
8953
9051
|
color: var(--dsx-color-on-surface);
|
|
8954
9052
|
font-family: var(--dsx-typography-label-large-font-family), sans-serif;
|
|
8955
9053
|
font-size: var(--dsx-typography-label-large-font-size);
|
|
@@ -8959,6 +9057,7 @@ textarea {
|
|
|
8959
9057
|
}
|
|
8960
9058
|
|
|
8961
9059
|
.dsx-data-list__metadata {
|
|
9060
|
+
overflow-wrap: anywhere;
|
|
8962
9061
|
color: var(--dsx-color-on-surface-variant);
|
|
8963
9062
|
font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
|
|
8964
9063
|
font-size: var(--dsx-typography-body-medium-font-size);
|
|
@@ -9029,6 +9128,7 @@ textarea {
|
|
|
9029
9128
|
|
|
9030
9129
|
.dsx-data-table {
|
|
9031
9130
|
width: 100%;
|
|
9131
|
+
min-width: 0;
|
|
9032
9132
|
overflow: hidden;
|
|
9033
9133
|
border: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
|
|
9034
9134
|
border-radius: var(--dsx-rounded-lg);
|
|
@@ -9091,25 +9191,215 @@ textarea {
|
|
|
9091
9191
|
/* ── Toolbar: shares container background, bottom separator ────────── */
|
|
9092
9192
|
|
|
9093
9193
|
.dsx-data-table-toolbar {
|
|
9194
|
+
display: flex;
|
|
9195
|
+
flex-wrap: wrap;
|
|
9196
|
+
align-items: center;
|
|
9197
|
+
gap: var(--dsx-space-md);
|
|
9198
|
+
padding: var(--dsx-space-sm) var(--dsx-space-md);
|
|
9094
9199
|
background: var(--dsx-color-surface);
|
|
9095
9200
|
border-bottom: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
|
|
9096
9201
|
}
|
|
9097
9202
|
|
|
9098
|
-
|
|
9099
|
-
|
|
9100
|
-
|
|
9101
|
-
background: var(--dsx-color-surface);
|
|
9102
|
-
border-top: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
|
|
9203
|
+
.dsx-data-table-toolbar__search {
|
|
9204
|
+
flex: 1 1 12rem;
|
|
9205
|
+
min-width: 0;
|
|
9103
9206
|
}
|
|
9104
9207
|
|
|
9105
|
-
|
|
9208
|
+
.dsx-data-table__toolbar-region {
|
|
9209
|
+
display: grid;
|
|
9210
|
+
}
|
|
9106
9211
|
|
|
9107
|
-
.dsx-data-
|
|
9212
|
+
.dsx-data-table-toolbar__actions {
|
|
9213
|
+
display: flex;
|
|
9214
|
+
align-items: center;
|
|
9215
|
+
justify-content: flex-end;
|
|
9216
|
+
flex-wrap: wrap;
|
|
9217
|
+
gap: var(--dsx-space-sm);
|
|
9218
|
+
min-width: 0;
|
|
9219
|
+
max-width: 100%;
|
|
9220
|
+
}
|
|
9221
|
+
|
|
9222
|
+
.dsx-data-table-toolbar__row-count {
|
|
9223
|
+
display: flex;
|
|
9224
|
+
align-items: center;
|
|
9225
|
+
gap: var(--dsx-space-xs);
|
|
9226
|
+
color: var(--dsx-color-on-surface-variant);
|
|
9227
|
+
font-family: var(--dsx-typography-body-small-font-family);
|
|
9228
|
+
font-size: var(--dsx-typography-body-small-font-size);
|
|
9229
|
+
font-weight: var(--dsx-typography-body-small-font-weight);
|
|
9230
|
+
white-space: nowrap;
|
|
9231
|
+
}
|
|
9232
|
+
|
|
9233
|
+
.dsx-data-table__sort-button {
|
|
9234
|
+
position: relative;
|
|
9235
|
+
border-radius: var(--dsx-rounded-sm);
|
|
9236
|
+
transition:
|
|
9237
|
+
color var(--dsx-motion-duration-fast) var(--dsx-motion-easing-standard),
|
|
9238
|
+
background-color var(--dsx-motion-duration-fast) var(--dsx-motion-easing-standard);
|
|
9239
|
+
}
|
|
9240
|
+
|
|
9241
|
+
.dsx-data-table__sort-button::before {
|
|
9242
|
+
content: '';
|
|
9243
|
+
position: absolute;
|
|
9244
|
+
inset-inline: 0;
|
|
9245
|
+
top: 50%;
|
|
9246
|
+
height: max(100%, var(--dsx-size-md));
|
|
9247
|
+
transform: translateY(-50%);
|
|
9248
|
+
}
|
|
9249
|
+
|
|
9250
|
+
.dsx-data-table__sort-button:hover {
|
|
9251
|
+
background: var(--dsx-effect-hover-ghost);
|
|
9252
|
+
color: var(--dsx-color-on-surface);
|
|
9253
|
+
}
|
|
9254
|
+
|
|
9255
|
+
.dsx-data-table__sort-button:focus-visible {
|
|
9256
|
+
outline: none;
|
|
9257
|
+
box-shadow: var(--dsx-shadow-focus-ring);
|
|
9258
|
+
}
|
|
9259
|
+
|
|
9260
|
+
.dsx-data-table__sort-indicator {
|
|
9261
|
+
display: inline-grid;
|
|
9262
|
+
place-items: center;
|
|
9263
|
+
width: var(--dsx-size-sm);
|
|
9264
|
+
height: var(--dsx-size-sm);
|
|
9265
|
+
flex: 0 0 var(--dsx-size-sm);
|
|
9266
|
+
color: var(--dsx-color-on-surface-variant);
|
|
9267
|
+
}
|
|
9268
|
+
|
|
9269
|
+
.dsx-data-table__sort-indicator:where([data-direction='none']) {
|
|
9270
|
+
opacity: 0.55;
|
|
9271
|
+
}
|
|
9272
|
+
|
|
9273
|
+
.dsx-data-table__sort-indicator:where([data-direction='asc']),
|
|
9274
|
+
.dsx-data-table__sort-indicator:where([data-direction='desc']) {
|
|
9275
|
+
color: var(--dsx-color-accent-indicator);
|
|
9276
|
+
}
|
|
9277
|
+
|
|
9278
|
+
/* ── Pagination: shares container background, top separator ────────── */
|
|
9279
|
+
|
|
9280
|
+
.dsx-data-table-pagination {
|
|
9281
|
+
background: var(--dsx-color-surface);
|
|
9282
|
+
border-top: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
|
|
9283
|
+
}
|
|
9284
|
+
|
|
9285
|
+
.dsx-data-table-pagination__info,
|
|
9286
|
+
.dsx-data-table-pagination__page-size {
|
|
9287
|
+
display: flex;
|
|
9288
|
+
align-items: center;
|
|
9289
|
+
gap: var(--dsx-space-xs);
|
|
9290
|
+
color: var(--dsx-color-on-surface-variant);
|
|
9291
|
+
font-size: var(--dsx-typography-label-small-font-size);
|
|
9292
|
+
white-space: nowrap;
|
|
9293
|
+
}
|
|
9294
|
+
|
|
9295
|
+
.dsx-data-table-pagination__navigation {
|
|
9296
|
+
display: flex;
|
|
9297
|
+
align-items: center;
|
|
9298
|
+
justify-content: center;
|
|
9299
|
+
flex: 1 1 auto;
|
|
9300
|
+
flex-wrap: wrap;
|
|
9301
|
+
min-width: 0;
|
|
9302
|
+
gap: var(--dsx-space-xs);
|
|
9303
|
+
}
|
|
9304
|
+
|
|
9305
|
+
.dsx-data-table-pagination__page-size {
|
|
9306
|
+
flex-wrap: wrap;
|
|
9307
|
+
min-width: 0;
|
|
9308
|
+
max-width: 100%;
|
|
9309
|
+
}
|
|
9310
|
+
|
|
9311
|
+
.dsx-data-table-pagination__navigation .dsx-pagination__list {
|
|
9312
|
+
flex-wrap: wrap;
|
|
9313
|
+
justify-content: center;
|
|
9314
|
+
padding: 0;
|
|
9315
|
+
border-color: transparent;
|
|
9316
|
+
background: transparent;
|
|
9317
|
+
}
|
|
9318
|
+
|
|
9319
|
+
.dsx-data-table-pagination__page-status {
|
|
9320
|
+
color: var(--dsx-color-on-surface-variant);
|
|
9321
|
+
font-size: var(--dsx-typography-label-small-font-size);
|
|
9322
|
+
white-space: nowrap;
|
|
9323
|
+
}
|
|
9324
|
+
|
|
9325
|
+
/* ── Bulk-selection action bar ─────────────────────────────────────── */
|
|
9326
|
+
|
|
9327
|
+
.dsx-data-table__bulk-bar {
|
|
9328
|
+
display: flex;
|
|
9329
|
+
flex-wrap: wrap;
|
|
9330
|
+
align-items: center;
|
|
9331
|
+
gap: var(--dsx-space-sm);
|
|
9332
|
+
padding: var(--dsx-space-sm) var(--dsx-space-md);
|
|
9333
|
+
background: var(--dsx-color-surface-raised);
|
|
9334
|
+
color: var(--dsx-color-on-surface);
|
|
9335
|
+
border-bottom: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
|
|
9336
|
+
}
|
|
9337
|
+
|
|
9338
|
+
.dsx-data-table__bulk-bar-count {
|
|
9339
|
+
display: inline-flex;
|
|
9340
|
+
align-items: center;
|
|
9341
|
+
min-height: var(--dsx-size-md);
|
|
9342
|
+
padding: 0 var(--dsx-space-sm);
|
|
9343
|
+
border-radius: var(--dsx-rounded-md);
|
|
9344
|
+
background: var(--dsx-color-accent-surface);
|
|
9345
|
+
color: var(--dsx-color-accent-indicator);
|
|
9346
|
+
font-size: var(--dsx-typography-label-small-font-size);
|
|
9347
|
+
font-weight: var(--dsx-typography-label-large-font-weight);
|
|
9348
|
+
white-space: nowrap;
|
|
9349
|
+
}
|
|
9350
|
+
|
|
9351
|
+
.dsx-data-table__bulk-bar-actions {
|
|
9352
|
+
display: flex;
|
|
9353
|
+
align-items: center;
|
|
9354
|
+
flex-wrap: wrap;
|
|
9355
|
+
gap: var(--dsx-space-xs);
|
|
9356
|
+
flex: 1 1 auto;
|
|
9357
|
+
min-width: 0;
|
|
9358
|
+
max-width: 100%;
|
|
9359
|
+
}
|
|
9360
|
+
|
|
9361
|
+
.dsx-data-table__bulk-bar-clear {
|
|
9362
|
+
margin-inline-start: auto;
|
|
9363
|
+
}
|
|
9364
|
+
|
|
9365
|
+
/* ── Pagination placement ──────────────────────────────────────────── */
|
|
9366
|
+
|
|
9367
|
+
/* Bottom is the default (border-top separator). Top flips the border. */
|
|
9368
|
+
|
|
9369
|
+
.dsx-data-table-pagination.dsx-data-table__pagination-top {
|
|
9370
|
+
border-top: 0;
|
|
9371
|
+
border-bottom: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
|
|
9372
|
+
}
|
|
9373
|
+
|
|
9374
|
+
/* ── Empty state ───────────────────────────────────────────────────── */
|
|
9375
|
+
|
|
9376
|
+
.dsx-data-table__empty {
|
|
9108
9377
|
height: var(--dsx-data-table-empty-height);
|
|
9109
9378
|
text-align: center;
|
|
9379
|
+
vertical-align: middle;
|
|
9110
9380
|
color: var(--dsx-color-on-surface-variant);
|
|
9111
9381
|
}
|
|
9112
9382
|
|
|
9383
|
+
.dsx-data-table__empty-content {
|
|
9384
|
+
display: flex;
|
|
9385
|
+
flex-direction: column;
|
|
9386
|
+
align-items: center;
|
|
9387
|
+
gap: var(--dsx-space-xs);
|
|
9388
|
+
padding: var(--dsx-space-lg) var(--dsx-space-md);
|
|
9389
|
+
}
|
|
9390
|
+
|
|
9391
|
+
.dsx-data-table__empty-content strong {
|
|
9392
|
+
color: var(--dsx-color-on-surface);
|
|
9393
|
+
font-family: var(--dsx-typography-label-large-font-family);
|
|
9394
|
+
font-size: var(--dsx-typography-label-large-font-size);
|
|
9395
|
+
font-weight: var(--dsx-typography-label-large-font-weight);
|
|
9396
|
+
}
|
|
9397
|
+
|
|
9398
|
+
.dsx-data-table__empty-content span {
|
|
9399
|
+
font-family: var(--dsx-typography-body-small-font-family);
|
|
9400
|
+
font-size: var(--dsx-typography-body-small-font-size);
|
|
9401
|
+
}
|
|
9402
|
+
|
|
9113
9403
|
/* ── Expanded detail row ───────────────────────────────────────────── */
|
|
9114
9404
|
|
|
9115
9405
|
.dsx-data-table [data-expanded-detail='true'] {
|
|
@@ -9461,7 +9751,7 @@ textarea {
|
|
|
9461
9751
|
}
|
|
9462
9752
|
|
|
9463
9753
|
.dsx-floating-panel[data-dragging] {
|
|
9464
|
-
box-shadow: var(--dsx-shadow-elevation-
|
|
9754
|
+
box-shadow: var(--dsx-shadow-elevation-5); /* Spotlight while lifted (B4 Q3) */
|
|
9465
9755
|
cursor: grabbing;
|
|
9466
9756
|
}
|
|
9467
9757
|
|
|
@@ -9644,7 +9934,10 @@ textarea {
|
|
|
9644
9934
|
}
|
|
9645
9935
|
|
|
9646
9936
|
.dsx-item {
|
|
9937
|
+
box-sizing: border-box;
|
|
9647
9938
|
display: flex;
|
|
9939
|
+
flex-wrap: wrap;
|
|
9940
|
+
min-width: 0;
|
|
9648
9941
|
align-items: center;
|
|
9649
9942
|
gap: var(--dsx-space-md);
|
|
9650
9943
|
padding: var(--dsx-space-sm) var(--dsx-space-md);
|
|
@@ -9663,6 +9956,7 @@ textarea {
|
|
|
9663
9956
|
}
|
|
9664
9957
|
|
|
9665
9958
|
.dsx-item--xs {
|
|
9959
|
+
padding-block: var(--dsx-space-xs);
|
|
9666
9960
|
min-height: var(--dsx-size-lg);
|
|
9667
9961
|
}
|
|
9668
9962
|
|
|
@@ -9671,10 +9965,12 @@ textarea {
|
|
|
9671
9965
|
}
|
|
9672
9966
|
|
|
9673
9967
|
.dsx-item--md {
|
|
9968
|
+
padding-block: var(--dsx-space-md);
|
|
9674
9969
|
min-height: var(--dsx-size-2xl);
|
|
9675
9970
|
}
|
|
9676
9971
|
|
|
9677
9972
|
.dsx-item--lg {
|
|
9973
|
+
padding-block: var(--dsx-space-lg);
|
|
9678
9974
|
min-height: var(--dsx-size-3xl);
|
|
9679
9975
|
}
|
|
9680
9976
|
|
|
@@ -9694,7 +9990,9 @@ textarea {
|
|
|
9694
9990
|
.dsx-item__content {
|
|
9695
9991
|
display: grid;
|
|
9696
9992
|
gap: var(--dsx-space-xs);
|
|
9697
|
-
flex: 1;
|
|
9993
|
+
flex: 1 1 8rem;
|
|
9994
|
+
min-width: 0;
|
|
9995
|
+
overflow-wrap: anywhere;
|
|
9698
9996
|
}
|
|
9699
9997
|
|
|
9700
9998
|
.dsx-item__title {
|
|
@@ -9716,6 +10014,9 @@ textarea {
|
|
|
9716
10014
|
|
|
9717
10015
|
.dsx-item__actions {
|
|
9718
10016
|
display: inline-flex;
|
|
10017
|
+
flex-wrap: wrap;
|
|
10018
|
+
min-width: 0;
|
|
10019
|
+
max-width: 100%;
|
|
9719
10020
|
align-items: center;
|
|
9720
10021
|
gap: var(--dsx-space-sm);
|
|
9721
10022
|
}
|
|
@@ -10489,25 +10790,15 @@ textarea {
|
|
|
10489
10790
|
border: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
|
|
10490
10791
|
}
|
|
10491
10792
|
|
|
10492
|
-
.dsx-qr-code svg
|
|
10793
|
+
.dsx-qr-code svg,
|
|
10794
|
+
.dsx-qr-code:where(.dsx-qr-code-size-sm, .dsx-qr-code-size-md, .dsx-qr-code-size-lg) svg {
|
|
10493
10795
|
display: block;
|
|
10494
10796
|
border-radius: var(--dsx-rounded-sm);
|
|
10495
10797
|
}
|
|
10496
10798
|
|
|
10497
|
-
|
|
10498
|
-
|
|
10499
|
-
|
|
10500
|
-
}
|
|
10501
|
-
|
|
10502
|
-
.dsx-qr-code-size-md svg {
|
|
10503
|
-
width: var(--dsx-size-md);
|
|
10504
|
-
height: var(--dsx-size-md);
|
|
10505
|
-
}
|
|
10506
|
-
|
|
10507
|
-
.dsx-qr-code-size-lg svg {
|
|
10508
|
-
width: var(--dsx-size-xl);
|
|
10509
|
-
height: var(--dsx-size-xl);
|
|
10510
|
-
}
|
|
10799
|
+
/* Painted size comes from the runtime sizeMap (sm: 128, md: 192, lg: 256px)
|
|
10800
|
+
via the adapter's own width/height attributes — the CSS never constrains
|
|
10801
|
+
the SVG, so the matrix always renders at a scannable size. */
|
|
10511
10802
|
|
|
10512
10803
|
/* High-contrast mode: QR modules use high-contrast fg, background stays scannable. */
|
|
10513
10804
|
|
|
@@ -11918,7 +12209,7 @@ textarea {
|
|
|
11918
12209
|
background-color: var(--dsx-color-surface);
|
|
11919
12210
|
border-radius: var(--dsx-rounded-md);
|
|
11920
12211
|
border: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
|
|
11921
|
-
box-shadow: var(--dsx-shadow-elevation-
|
|
12212
|
+
box-shadow: var(--dsx-shadow-elevation-5); /* Spotlight (B4 Q3): below dialogs, above all menus */
|
|
11922
12213
|
}
|
|
11923
12214
|
|
|
11924
12215
|
[data-sonner-toast][data-type='success'],
|
|
@@ -12026,6 +12317,10 @@ textarea {
|
|
|
12026
12317
|
border-bottom: 0;
|
|
12027
12318
|
}
|
|
12028
12319
|
|
|
12320
|
+
.dsx-table__body tr {
|
|
12321
|
+
transition: background-color var(--dsx-motion-duration-fast) var(--dsx-motion-easing-standard);
|
|
12322
|
+
}
|
|
12323
|
+
|
|
12029
12324
|
.dsx-table__body tr:hover {
|
|
12030
12325
|
background: var(--dsx-effect-hover-ghost);
|
|
12031
12326
|
}
|
|
@@ -12053,10 +12348,6 @@ textarea {
|
|
|
12053
12348
|
font-weight: var(--dsx-typography-label-large-font-weight);
|
|
12054
12349
|
}
|
|
12055
12350
|
|
|
12056
|
-
.dsx-table__row:hover {
|
|
12057
|
-
background: var(--dsx-color-high-contrast-container);
|
|
12058
|
-
}
|
|
12059
|
-
|
|
12060
12351
|
.dsx-table__row:last-child .dsx-table__cell {
|
|
12061
12352
|
border-bottom: 0;
|
|
12062
12353
|
}
|
|
@@ -12085,7 +12376,14 @@ textarea {
|
|
|
12085
12376
|
}
|
|
12086
12377
|
|
|
12087
12378
|
.dsx-table[data-variant='ghost'] .dsx-table__row:hover {
|
|
12088
|
-
background: var(--dsx-
|
|
12379
|
+
background: var(--dsx-effect-hover-ghost);
|
|
12380
|
+
}
|
|
12381
|
+
|
|
12382
|
+
/* ---- separator ---- */
|
|
12383
|
+
|
|
12384
|
+
.dsx-table[data-separator='grid'] .dsx-table__head:not(:last-child),
|
|
12385
|
+
.dsx-table[data-separator='grid'] .dsx-table__cell:not(:last-child) {
|
|
12386
|
+
border-right: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
|
|
12089
12387
|
}
|
|
12090
12388
|
|
|
12091
12389
|
/* ---- layout ---- */
|
|
@@ -12113,16 +12411,16 @@ textarea {
|
|
|
12113
12411
|
|
|
12114
12412
|
/* ---- cell justify ---- */
|
|
12115
12413
|
|
|
12116
|
-
.dsx-table__cell[data-justify='start'] {
|
|
12117
|
-
|
|
12414
|
+
.dsx-table .dsx-table__cell[data-justify='start'] {
|
|
12415
|
+
text-align: start;
|
|
12118
12416
|
}
|
|
12119
12417
|
|
|
12120
|
-
.dsx-table__cell[data-justify='center'] {
|
|
12121
|
-
|
|
12418
|
+
.dsx-table .dsx-table__cell[data-justify='center'] {
|
|
12419
|
+
text-align: center;
|
|
12122
12420
|
}
|
|
12123
12421
|
|
|
12124
|
-
.dsx-table__cell[data-justify='end'] {
|
|
12125
|
-
|
|
12422
|
+
.dsx-table .dsx-table__cell[data-justify='end'] {
|
|
12423
|
+
text-align: end;
|
|
12126
12424
|
}
|
|
12127
12425
|
|
|
12128
12426
|
/* ---- cell width ---- */
|
|
@@ -12159,12 +12457,12 @@ textarea {
|
|
|
12159
12457
|
/* ---- column header cell ---- */
|
|
12160
12458
|
|
|
12161
12459
|
.dsx-table__column-header-cell {
|
|
12162
|
-
cursor:
|
|
12163
|
-
user-select: none;
|
|
12460
|
+
cursor: default;
|
|
12164
12461
|
}
|
|
12165
12462
|
|
|
12166
12463
|
.dsx-table__column-header-cell[data-sortable='true'] {
|
|
12167
12464
|
cursor: pointer;
|
|
12465
|
+
user-select: none;
|
|
12168
12466
|
}
|
|
12169
12467
|
|
|
12170
12468
|
.dsx-table__column-header-cell[data-sorted='asc']::after,
|
|
@@ -12222,6 +12520,13 @@ textarea {
|
|
|
12222
12520
|
display: inline-flex;
|
|
12223
12521
|
align-items: center;
|
|
12224
12522
|
width: fit-content;
|
|
12523
|
+
/* Narrow-container rule: cap at the container and scroll internally —
|
|
12524
|
+
same containment as the segmented-control/button/toggle-group family.
|
|
12525
|
+
A 5-tab strip wider than a 320px viewport scrolls instead of bleeding
|
|
12526
|
+
with unreachable tabs. No visual change at widths that fit. */
|
|
12527
|
+
min-width: 0;
|
|
12528
|
+
max-width: 100%;
|
|
12529
|
+
overflow-x: auto;
|
|
12225
12530
|
border-bottom: var(--dsx-border-width-md, var(--dsx-border-width-sm)) solid var(--dsx-control-separator-color);
|
|
12226
12531
|
gap: var(--dsx-space-xs);
|
|
12227
12532
|
}
|
|
@@ -12239,6 +12544,9 @@ textarea {
|
|
|
12239
12544
|
display: inline-flex;
|
|
12240
12545
|
align-items: center;
|
|
12241
12546
|
justify-content: center;
|
|
12547
|
+
/* Never compress inside the scrolled list — labels would truncate
|
|
12548
|
+
otherwise. No effect in roomy containers. */
|
|
12549
|
+
flex-shrink: 0;
|
|
12242
12550
|
padding: var(--dsx-space-sm) var(--dsx-space-md);
|
|
12243
12551
|
border: 0;
|
|
12244
12552
|
border-radius: var(--dsx-rounded-md);
|
|
@@ -12938,7 +13246,40 @@ textarea {
|
|
|
12938
13246
|
background-color: var(--dsx-color-surface);
|
|
12939
13247
|
border-radius: var(--dsx-rounded-md);
|
|
12940
13248
|
border: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
|
|
12941
|
-
box-shadow: var(--dsx-shadow-elevation-
|
|
13249
|
+
box-shadow: var(--dsx-shadow-elevation-5); /* Spotlight (B4 Q3): below dialogs, above all menus */
|
|
13250
|
+
}
|
|
13251
|
+
|
|
13252
|
+
/* Predetermined slot placement for action-bearing toasts: without it all
|
|
13253
|
+
four slots land as flex siblings in one row, so title + description sit
|
|
13254
|
+
side by side and squeeze the action (destructive story). Text stacks in
|
|
13255
|
+
column one, action pins center-right, close top-right — no consumer
|
|
13256
|
+
wrapper needed. Action-less toasts keep the flex row above untouched. */
|
|
13257
|
+
|
|
13258
|
+
.dsx-toast:has(.dsx-toast__action) {
|
|
13259
|
+
display: grid;
|
|
13260
|
+
grid-template-columns: minmax(0, 1fr) auto auto;
|
|
13261
|
+
grid-template-areas:
|
|
13262
|
+
"title action close"
|
|
13263
|
+
"description action close";
|
|
13264
|
+
align-items: center;
|
|
13265
|
+
}
|
|
13266
|
+
|
|
13267
|
+
.dsx-toast:has(.dsx-toast__action) .dsx-toast__title {
|
|
13268
|
+
grid-area: title;
|
|
13269
|
+
}
|
|
13270
|
+
|
|
13271
|
+
.dsx-toast:has(.dsx-toast__action) .dsx-toast__description {
|
|
13272
|
+
grid-area: description;
|
|
13273
|
+
}
|
|
13274
|
+
|
|
13275
|
+
.dsx-toast:has(.dsx-toast__action) .dsx-toast__action {
|
|
13276
|
+
grid-area: action;
|
|
13277
|
+
align-self: center;
|
|
13278
|
+
}
|
|
13279
|
+
|
|
13280
|
+
.dsx-toast:has(.dsx-toast__action) .dsx-toast__close {
|
|
13281
|
+
grid-area: close;
|
|
13282
|
+
align-self: start;
|
|
12942
13283
|
}
|
|
12943
13284
|
|
|
12944
13285
|
.dsx-toast[data-variant='success'] {
|
|
@@ -13149,6 +13490,11 @@ textarea {
|
|
|
13149
13490
|
align-items: stretch;
|
|
13150
13491
|
gap: 0;
|
|
13151
13492
|
isolation: isolate;
|
|
13493
|
+
/* Narrow-container rule (TMA re-audit 2026-09-23): the fused frame cannot
|
|
13494
|
+
wrap, so cap at the container and scroll instead of hard-clipping the
|
|
13495
|
+
last item on 320px screens. */
|
|
13496
|
+
max-width: 100%;
|
|
13497
|
+
overflow-x: auto;
|
|
13152
13498
|
}
|
|
13153
13499
|
|
|
13154
13500
|
.dsx-toggle-group__item {
|
|
@@ -13724,6 +14070,11 @@ textarea {
|
|
|
13724
14070
|
align-items: stretch;
|
|
13725
14071
|
gap: 0;
|
|
13726
14072
|
isolation: isolate;
|
|
14073
|
+
/* Narrow-container rule (TMA re-audit 2026-09-23): the fused frame cannot
|
|
14074
|
+
wrap, so cap at the container and scroll instead of hard-clipping the
|
|
14075
|
+
last action on 320px screens. */
|
|
14076
|
+
max-width: 100%;
|
|
14077
|
+
overflow-x: auto;
|
|
13727
14078
|
}
|
|
13728
14079
|
|
|
13729
14080
|
.dsx-button-group > *,
|
|
@@ -13747,6 +14098,26 @@ textarea {
|
|
|
13747
14098
|
margin-inline-start: calc(-1 * var(--dsx-border-width-sm));
|
|
13748
14099
|
}
|
|
13749
14100
|
|
|
14101
|
+
/* ---- variant: default = fused cluster, children render borderless ---- */
|
|
14102
|
+
|
|
14103
|
+
.dsx-button-group--default > * {
|
|
14104
|
+
border-color: transparent;
|
|
14105
|
+
}
|
|
14106
|
+
|
|
14107
|
+
/* ---- size: the group drives children min-height so sm/md/lg differ ---- */
|
|
14108
|
+
|
|
14109
|
+
.dsx-button-group[data-size='sm'] > * {
|
|
14110
|
+
min-height: var(--dsx-density-control-height-sm, var(--dsx-size-lg));
|
|
14111
|
+
}
|
|
14112
|
+
|
|
14113
|
+
.dsx-button-group[data-size='md'] > * {
|
|
14114
|
+
min-height: var(--dsx-density-control-height, var(--dsx-size-xl));
|
|
14115
|
+
}
|
|
14116
|
+
|
|
14117
|
+
.dsx-button-group[data-size='lg'] > * {
|
|
14118
|
+
min-height: var(--dsx-density-control-height-lg, var(--dsx-size-2xl));
|
|
14119
|
+
}
|
|
14120
|
+
|
|
13750
14121
|
.dsx-button-group > *:focus-visible {
|
|
13751
14122
|
z-index: var(--dsx-z-index-elevated);
|
|
13752
14123
|
}
|
|
@@ -13883,7 +14254,7 @@ textarea {
|
|
|
13883
14254
|
|
|
13884
14255
|
.dsx-article-poll button { min-height: var(--dsx-size-lg); }
|
|
13885
14256
|
|
|
13886
|
-
.dsx-prose { width: 100%; max-width: 68ch; color: var(--dsx-color-on-surface); font-family: var(--dsx-typography-body-medium-font-family); line-height: 1.65; }
|
|
14257
|
+
.dsx-prose { width: 100%; min-width: 0; max-width: 68ch; overflow-wrap: anywhere; color: var(--dsx-color-on-surface); font-family: var(--dsx-typography-body-medium-font-family); line-height: 1.65; }
|
|
13887
14258
|
|
|
13888
14259
|
.dsx-prose > :first-child { margin-block-start: 0; }
|
|
13889
14260
|
|
|
@@ -13911,7 +14282,9 @@ textarea {
|
|
|
13911
14282
|
|
|
13912
14283
|
.dsx-prose th, .dsx-prose td { padding: var(--dsx-space-sm); border: var(--dsx-border-width-sm) solid var(--dsx-color-outline); text-align: start; white-space: nowrap; }
|
|
13913
14284
|
|
|
13914
|
-
.dsx-result { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--dsx-space-md); min-height: var(--dsx-empty-state-min-height); padding: var(--dsx-space-xl); text-align: center; color: var(--dsx-color-on-surface); }
|
|
14285
|
+
.dsx-result { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--dsx-space-md); min-width: 0; max-width: 100%; overflow-wrap: anywhere; min-height: var(--dsx-empty-state-min-height); padding: var(--dsx-space-xl); text-align: center; color: var(--dsx-color-on-surface); }
|
|
14286
|
+
|
|
14287
|
+
.dsx-result > * { min-width: 0; max-width: 100%; }
|
|
13915
14288
|
|
|
13916
14289
|
.dsx-result__icon { display: inline-flex; color: var(--_result-icon-color, var(--dsx-color-on-surface-variant)); }
|
|
13917
14290
|
|
|
@@ -14081,6 +14454,27 @@ textarea {
|
|
|
14081
14454
|
min-width: var(--dsx-copy-field-action-min-width);
|
|
14082
14455
|
}
|
|
14083
14456
|
|
|
14457
|
+
/* One frame: the action half inherits the field-shell outline token at rest
|
|
14458
|
+
and hover, so the group reads as a single frame (the -1px join overlaps
|
|
14459
|
+
the seam into the frame line). baseInput would glow it — pinned here.
|
|
14460
|
+
Focus ring untouched. */
|
|
14461
|
+
|
|
14462
|
+
.dsx-copy-field .dsx-copy-field__action,
|
|
14463
|
+
.dsx-copy-field__action:hover {
|
|
14464
|
+
border-color: var(--dsx-boundary-control-color);
|
|
14465
|
+
}
|
|
14466
|
+
|
|
14467
|
+
/* Read-only value half: no hover invitation */
|
|
14468
|
+
|
|
14469
|
+
:where(.dsx-copy-field) .dsx-input-shell:hover {
|
|
14470
|
+
border-color: var(--dsx-boundary-control-color);
|
|
14471
|
+
background: var(--dsx-color-surface);
|
|
14472
|
+
}
|
|
14473
|
+
|
|
14474
|
+
.dsx-copy-field__input:hover {
|
|
14475
|
+
cursor: default;
|
|
14476
|
+
}
|
|
14477
|
+
|
|
14084
14478
|
.dsx-code-input {
|
|
14085
14479
|
width: 100%;
|
|
14086
14480
|
}
|
|
@@ -14943,6 +15337,15 @@ textarea {
|
|
|
14943
15337
|
border-color: var(--dsx-color-secondary-container);
|
|
14944
15338
|
}
|
|
14945
15339
|
|
|
15340
|
+
/* ---- halo: resting accent ring on every variant ---- */
|
|
15341
|
+
|
|
15342
|
+
.dsx-icon-button:where([data-variant='secondary'])[data-halo='true'],
|
|
15343
|
+
.dsx-icon-button:where([data-variant='outline'])[data-halo='true'],
|
|
15344
|
+
.dsx-icon-button:where([data-variant='ghost'])[data-halo='true'],
|
|
15345
|
+
.dsx-icon-button:where([data-variant='destructive'])[data-halo='true'] {
|
|
15346
|
+
box-shadow: var(--dsx-shadow-accent-ring);
|
|
15347
|
+
}
|
|
15348
|
+
|
|
14946
15349
|
.dsx-icon-button:where([data-variant='outline']):hover:not(:disabled):not([data-disabled='true']),
|
|
14947
15350
|
.dsx-icon-button:where([data-variant='ghost']):hover:not(:disabled):not([data-disabled='true']) {
|
|
14948
15351
|
color: var(--dsx-color-accent-indicator);
|
|
@@ -14955,17 +15358,37 @@ textarea {
|
|
|
14955
15358
|
border-color: var(--dsx-color-error-10);
|
|
14956
15359
|
}
|
|
14957
15360
|
|
|
14958
|
-
|
|
14959
|
-
cursor: var(--dsx-cursor-wait, wait);
|
|
14960
|
-
}
|
|
15361
|
+
/* ---- pressed (after :hover — LVHA: :active must win while held) ---- */
|
|
14961
15362
|
|
|
14962
|
-
.dsx-icon-
|
|
14963
|
-
|
|
14964
|
-
|
|
14965
|
-
|
|
14966
|
-
|
|
14967
|
-
|
|
14968
|
-
|
|
15363
|
+
.dsx-icon-button:where([data-variant='primary']):active:not(:disabled):not([data-disabled='true']),
|
|
15364
|
+
.dsx-icon-button:where([data-variant='primary'])[aria-pressed='true']:not(:disabled):not([data-disabled='true']) {
|
|
15365
|
+
background: linear-gradient(var(--dsx-effect-pressed-primary), var(--dsx-effect-pressed-primary)), var(--dsx-color-accent-track);
|
|
15366
|
+
color: var(--dsx-color-accent-contrast);
|
|
15367
|
+
}
|
|
15368
|
+
|
|
15369
|
+
.dsx-icon-button:where([data-variant='primary'])[data-halo='true']:active:not(:disabled):not([data-disabled='true']),
|
|
15370
|
+
.dsx-icon-button:where([data-variant='primary'])[data-halo='true'][aria-pressed='true']:not(:disabled):not([data-disabled='true']) {
|
|
15371
|
+
box-shadow: var(--dsx-shadow-accent-ring);
|
|
15372
|
+
}
|
|
15373
|
+
|
|
15374
|
+
.dsx-icon-button:where([data-variant='secondary']):active:not(:disabled):not([data-disabled='true']),
|
|
15375
|
+
.dsx-icon-button:where([data-variant='secondary'])[aria-pressed='true']:not(:disabled):not([data-disabled='true']) {
|
|
15376
|
+
background: linear-gradient(var(--dsx-effect-pressed-layer), var(--dsx-effect-pressed-layer)), var(--dsx-color-secondary);
|
|
15377
|
+
color: var(--dsx-color-on-secondary);
|
|
15378
|
+
border-color: var(--dsx-color-secondary);
|
|
15379
|
+
}
|
|
15380
|
+
|
|
15381
|
+
.dsx-icon-button[data-loading='true'] {
|
|
15382
|
+
cursor: var(--dsx-cursor-wait, wait);
|
|
15383
|
+
}
|
|
15384
|
+
|
|
15385
|
+
.dsx-icon-button__content {
|
|
15386
|
+
display: inline-flex;
|
|
15387
|
+
align-items: center;
|
|
15388
|
+
justify-content: center;
|
|
15389
|
+
transition:
|
|
15390
|
+
opacity var(--dsx-motion-duration-fast, 150ms) var(--dsx-motion-easing-standard, ease),
|
|
15391
|
+
color var(--dsx-motion-duration-fast, 150ms) var(--dsx-motion-easing-standard, ease);
|
|
14969
15392
|
}
|
|
14970
15393
|
|
|
14971
15394
|
.dsx-icon-button[data-loading='true'] .dsx-icon-button__content {
|
|
@@ -15161,6 +15584,8 @@ button.dsx-link--none {
|
|
|
15161
15584
|
.dsx-pagination__list {
|
|
15162
15585
|
display: inline-flex;
|
|
15163
15586
|
align-items: center;
|
|
15587
|
+
flex-wrap: wrap;
|
|
15588
|
+
row-gap: var(--dsx-space-xs);
|
|
15164
15589
|
gap: var(--dsx-space-xs);
|
|
15165
15590
|
padding: var(--dsx-space-xs);
|
|
15166
15591
|
border-radius: var(--dsx-rounded-lg);
|
|
@@ -15204,13 +15629,13 @@ button.dsx-link--none {
|
|
|
15204
15629
|
}
|
|
15205
15630
|
|
|
15206
15631
|
.dsx-pagination__link--active {
|
|
15207
|
-
background: var(--dsx-color-accent-
|
|
15632
|
+
background: var(--dsx-color-accent-track);
|
|
15208
15633
|
color: var(--dsx-color-on-primary);
|
|
15209
15634
|
font-weight: var(--dsx-typography-label-large-font-weight, 600);
|
|
15210
15635
|
}
|
|
15211
15636
|
|
|
15212
15637
|
.dsx-pagination__link--active:hover:not(:disabled):not([data-disabled]) {
|
|
15213
|
-
background: var(--dsx-color-accent-
|
|
15638
|
+
background: var(--dsx-color-accent-track);
|
|
15214
15639
|
color: var(--dsx-color-on-primary);
|
|
15215
15640
|
}
|
|
15216
15641
|
|
|
@@ -15247,19 +15672,27 @@ button.dsx-link--none {
|
|
|
15247
15672
|
white-space: nowrap;
|
|
15248
15673
|
}
|
|
15249
15674
|
|
|
15675
|
+
.dsx-pagination__status {
|
|
15676
|
+
display: inline-flex;
|
|
15677
|
+
align-items: center;
|
|
15678
|
+
justify-content: center;
|
|
15679
|
+
color: var(--dsx-color-on-surface-variant);
|
|
15680
|
+
font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
|
|
15681
|
+
font-size: var(--dsx-typography-body-medium-font-size);
|
|
15682
|
+
white-space: nowrap;
|
|
15683
|
+
}
|
|
15684
|
+
|
|
15250
15685
|
.dsx-pagination__page-size {
|
|
15251
|
-
appearance: none;
|
|
15252
15686
|
display: inline-flex;
|
|
15253
15687
|
align-items: center;
|
|
15688
|
+
min-width: 8rem;
|
|
15254
15689
|
height: var(--dsx-size-lg);
|
|
15255
15690
|
padding: 0 var(--dsx-space-sm);
|
|
15256
15691
|
border: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
|
|
15257
15692
|
border-radius: var(--dsx-rounded-md);
|
|
15258
|
-
background: var(--dsx-color-surface);
|
|
15259
15693
|
color: var(--dsx-color-on-surface);
|
|
15260
15694
|
font-family: var(--dsx-typography-label-large-font-family), sans-serif;
|
|
15261
15695
|
font-size: var(--dsx-typography-label-large-font-size);
|
|
15262
|
-
cursor: pointer;
|
|
15263
15696
|
}
|
|
15264
15697
|
|
|
15265
15698
|
.dsx-pagination__page-size:focus-visible {
|
|
@@ -15267,6 +15700,32 @@ button.dsx-link--none {
|
|
|
15267
15700
|
box-shadow: var(--dsx-shadow-focus-ring);
|
|
15268
15701
|
}
|
|
15269
15702
|
|
|
15703
|
+
.dsx-pagination__page-input {
|
|
15704
|
+
display: inline-flex;
|
|
15705
|
+
align-items: center;
|
|
15706
|
+
gap: var(--dsx-space-xs);
|
|
15707
|
+
color: var(--dsx-color-on-surface-variant);
|
|
15708
|
+
font-family: var(--dsx-typography-body-medium-font-family), sans-serif;
|
|
15709
|
+
font-size: var(--dsx-typography-body-medium-font-size);
|
|
15710
|
+
white-space: nowrap;
|
|
15711
|
+
}
|
|
15712
|
+
|
|
15713
|
+
.dsx-pagination__page-input input {
|
|
15714
|
+
width: var(--dsx-size-3xl);
|
|
15715
|
+
height: var(--dsx-size-lg);
|
|
15716
|
+
padding: 0 var(--dsx-space-xs);
|
|
15717
|
+
border: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
|
|
15718
|
+
border-radius: var(--dsx-rounded-md);
|
|
15719
|
+
background: var(--dsx-color-surface);
|
|
15720
|
+
color: var(--dsx-color-on-surface);
|
|
15721
|
+
text-align: center;
|
|
15722
|
+
}
|
|
15723
|
+
|
|
15724
|
+
.dsx-pagination__page-input input:focus-visible {
|
|
15725
|
+
outline: none;
|
|
15726
|
+
box-shadow: var(--dsx-shadow-focus-ring);
|
|
15727
|
+
}
|
|
15728
|
+
|
|
15270
15729
|
.dsx-pagination__item {
|
|
15271
15730
|
display: inline-flex;
|
|
15272
15731
|
align-items: center;
|
|
@@ -15311,14 +15770,20 @@ button.dsx-link--none {
|
|
|
15311
15770
|
display: flex;
|
|
15312
15771
|
align-items: center;
|
|
15313
15772
|
justify-content: space-between;
|
|
15314
|
-
|
|
15773
|
+
flex-wrap: wrap;
|
|
15774
|
+
row-gap: var(--dsx-space-sm);
|
|
15775
|
+
column-gap: var(--dsx-space-md);
|
|
15776
|
+
min-width: 0;
|
|
15315
15777
|
}
|
|
15316
15778
|
|
|
15317
15779
|
.dsx-pagination-bar__controls {
|
|
15318
15780
|
display: flex;
|
|
15319
15781
|
align-items: center;
|
|
15320
|
-
|
|
15321
|
-
flex-
|
|
15782
|
+
flex: 1 1 auto;
|
|
15783
|
+
flex-wrap: wrap;
|
|
15784
|
+
row-gap: var(--dsx-space-xs);
|
|
15785
|
+
column-gap: var(--dsx-space-sm);
|
|
15786
|
+
min-width: 0;
|
|
15322
15787
|
}
|
|
15323
15788
|
|
|
15324
15789
|
.dsx-password-input {
|
|
@@ -15449,7 +15914,29 @@ button.dsx-link--none {
|
|
|
15449
15914
|
background-color: var(--dsx-color-surface-sunken);
|
|
15450
15915
|
border: var(--dsx-boundary-control-width) solid transparent;
|
|
15451
15916
|
border-radius: var(--dsx-grouped-radius, var(--dsx-rounded-md));
|
|
15452
|
-
|
|
15917
|
+
/* Narrow-container rule (TMA slice-1 2026-09-23): same fused-frame
|
|
15918
|
+
containment as button/toggle groups — min-width:max-content would override
|
|
15919
|
+
the cap and hard-clip right segments in narrow FilterBars, so floor at 0,
|
|
15920
|
+
cap at the container, and scroll. The sliding indicator measures live item
|
|
15921
|
+
boxes, so scrolling shifts it along correctly. */
|
|
15922
|
+
min-width: 0;
|
|
15923
|
+
max-width: 100%;
|
|
15924
|
+
overflow-x: auto;
|
|
15925
|
+
}
|
|
15926
|
+
|
|
15927
|
+
/* Fill opt-in (`fill` prop): the root spans the container and items share
|
|
15928
|
+
the width equally. The indicator measures live boxes, so it tracks fill
|
|
15929
|
+
widths with no change. For overflowing groups keep the default hug root
|
|
15930
|
+
(scroll containment above) — fill is for few-item groups that fit. */
|
|
15931
|
+
|
|
15932
|
+
.dsx-segmented-control:where(.dsx-segmented-control--fill, [data-fill='true']) {
|
|
15933
|
+
width: 100%;
|
|
15934
|
+
align-self: stretch;
|
|
15935
|
+
}
|
|
15936
|
+
|
|
15937
|
+
.dsx-segmented-control:where(.dsx-segmented-control--fill, [data-fill='true']) .dsx-segmented-control__item {
|
|
15938
|
+
flex: 1 1 0;
|
|
15939
|
+
min-width: 0;
|
|
15453
15940
|
}
|
|
15454
15941
|
|
|
15455
15942
|
/* ---- Disabled root ---- */
|
|
@@ -15467,6 +15954,9 @@ button.dsx-link--none {
|
|
|
15467
15954
|
display: inline-flex;
|
|
15468
15955
|
align-items: center;
|
|
15469
15956
|
justify-content: center;
|
|
15957
|
+
/* Never compress inside the scrolled root — labels truncate ("Cl…"/"G…")
|
|
15958
|
+
otherwise. No effect in roomy containers. */
|
|
15959
|
+
flex-shrink: 0;
|
|
15470
15960
|
gap: var(--dsx-space-xs);
|
|
15471
15961
|
padding-inline: var(--dsx-space-md);
|
|
15472
15962
|
border: 0;
|
|
@@ -15494,6 +15984,37 @@ button.dsx-link--none {
|
|
|
15494
15984
|
margin-inline-start: calc(-1 * var(--dsx-boundary-control-width));
|
|
15495
15985
|
}
|
|
15496
15986
|
|
|
15987
|
+
/* ---- Vertical orientation ---- */
|
|
15988
|
+
|
|
15989
|
+
.dsx-segmented-control[data-orientation='vertical'] {
|
|
15990
|
+
flex-direction: column;
|
|
15991
|
+
min-width: 0;
|
|
15992
|
+
/* Definite height: Firefox flex-shrinks auto-height column roots inside the
|
|
15993
|
+
matrix row down toward one row; max-content is identical to auto everywhere
|
|
15994
|
+
else and immune to the shrink. */
|
|
15995
|
+
height: max-content;
|
|
15996
|
+
}
|
|
15997
|
+
|
|
15998
|
+
.dsx-segmented-control[data-orientation='vertical'] .dsx-segmented-control__item + .dsx-segmented-control__item {
|
|
15999
|
+
margin-inline-start: 0;
|
|
16000
|
+
margin-block-start: calc(-1 * var(--dsx-boundary-control-width));
|
|
16001
|
+
}
|
|
16002
|
+
|
|
16003
|
+
.dsx-segmented-control[data-orientation='vertical'] .dsx-segmented-control__indicator {
|
|
16004
|
+
top: 0;
|
|
16005
|
+
bottom: auto;
|
|
16006
|
+
left: var(--dsx-space-2xs);
|
|
16007
|
+
right: var(--dsx-space-2xs);
|
|
16008
|
+
width: auto;
|
|
16009
|
+
height: 0;
|
|
16010
|
+
transition-property: transform, height;
|
|
16011
|
+
}
|
|
16012
|
+
|
|
16013
|
+
.dsx-segmented-control[data-orientation='vertical'] .dsx-segmented-control__indicator::before {
|
|
16014
|
+
inset-block: var(--dsx-space-2xs);
|
|
16015
|
+
inset-inline: 0;
|
|
16016
|
+
}
|
|
16017
|
+
|
|
15497
16018
|
/* ---- Sliding indicator — Mantine-style measured pill ---- */
|
|
15498
16019
|
|
|
15499
16020
|
.dsx-segmented-control__indicator {
|
|
@@ -15567,7 +16088,7 @@ button.dsx-link--none {
|
|
|
15567
16088
|
}
|
|
15568
16089
|
|
|
15569
16090
|
.dsx-segmented-control--sm .dsx-segmented-control__item {
|
|
15570
|
-
min-height: var(--dsx-size-lg);
|
|
16091
|
+
min-height: calc(var(--dsx-density-control-height-sm, var(--dsx-size-lg)) - 2 * var(--dsx-boundary-control-width));
|
|
15571
16092
|
padding-inline: var(--dsx-space-sm);
|
|
15572
16093
|
font-size: var(--dsx-typography-label-small-font-size);
|
|
15573
16094
|
letter-spacing: var(--dsx-typography-label-small-letter-spacing);
|
|
@@ -15578,7 +16099,7 @@ button.dsx-link--none {
|
|
|
15578
16099
|
}
|
|
15579
16100
|
|
|
15580
16101
|
.dsx-segmented-control--md .dsx-segmented-control__item {
|
|
15581
|
-
min-height: var(--dsx-size-xl);
|
|
16102
|
+
min-height: calc(var(--dsx-density-control-height, var(--dsx-size-xl)) - 2 * var(--dsx-boundary-control-width));
|
|
15582
16103
|
padding-inline: var(--dsx-space-md);
|
|
15583
16104
|
}
|
|
15584
16105
|
|
|
@@ -15587,7 +16108,7 @@ button.dsx-link--none {
|
|
|
15587
16108
|
}
|
|
15588
16109
|
|
|
15589
16110
|
.dsx-segmented-control--lg .dsx-segmented-control__item {
|
|
15590
|
-
min-height: var(--dsx-size-2xl);
|
|
16111
|
+
min-height: calc(var(--dsx-density-control-height-lg, var(--dsx-size-2xl)) - 2 * var(--dsx-boundary-control-width));
|
|
15591
16112
|
padding-inline: var(--dsx-space-lg);
|
|
15592
16113
|
font-size: var(--dsx-typography-label-large-font-size);
|
|
15593
16114
|
letter-spacing: var(--dsx-typography-label-large-letter-spacing);
|
|
@@ -15646,6 +16167,27 @@ button.dsx-link--none {
|
|
|
15646
16167
|
padding-inline: 0;
|
|
15647
16168
|
}
|
|
15648
16169
|
|
|
16170
|
+
/* ---- Vertical: icon-only targets also constrain the block axis (inline
|
|
16171
|
+
sizing is inherited from the base icon-only rules above) ---- */
|
|
16172
|
+
|
|
16173
|
+
.dsx-segmented-control--sm[data-orientation='vertical'] .dsx-segmented-control__item:where([data-icon-only]) {
|
|
16174
|
+
block-size: var(--dsx-density-control-height-sm, var(--dsx-size-lg));
|
|
16175
|
+
min-block-size: var(--dsx-density-control-height-sm, var(--dsx-size-lg));
|
|
16176
|
+
padding-block: 0;
|
|
16177
|
+
}
|
|
16178
|
+
|
|
16179
|
+
.dsx-segmented-control--md[data-orientation='vertical'] .dsx-segmented-control__item:where([data-icon-only]) {
|
|
16180
|
+
block-size: var(--dsx-density-control-height, var(--dsx-size-xl));
|
|
16181
|
+
min-block-size: var(--dsx-density-control-height, var(--dsx-size-xl));
|
|
16182
|
+
padding-block: 0;
|
|
16183
|
+
}
|
|
16184
|
+
|
|
16185
|
+
.dsx-segmented-control--lg[data-orientation='vertical'] .dsx-segmented-control__item:where([data-icon-only]) {
|
|
16186
|
+
block-size: var(--dsx-density-control-height-lg, var(--dsx-size-2xl));
|
|
16187
|
+
min-block-size: var(--dsx-density-control-height-lg, var(--dsx-size-2xl));
|
|
16188
|
+
padding-block: 0;
|
|
16189
|
+
}
|
|
16190
|
+
|
|
15649
16191
|
.dsx-segmented-control__item:focus-visible {
|
|
15650
16192
|
outline: none;
|
|
15651
16193
|
box-shadow: var(--dsx-shadow-focus-ring);
|
|
@@ -16173,6 +16715,8 @@ button.dsx-link--none {
|
|
|
16173
16715
|
|
|
16174
16716
|
.dsx-stat-card__footer {
|
|
16175
16717
|
display: flex;
|
|
16718
|
+
flex-wrap: wrap;
|
|
16719
|
+
min-width: 0;
|
|
16176
16720
|
align-items: center;
|
|
16177
16721
|
gap: var(--dsx-space-xs);
|
|
16178
16722
|
}
|
|
@@ -16202,6 +16746,9 @@ button.dsx-link--none {
|
|
|
16202
16746
|
|
|
16203
16747
|
.dsx-metric {
|
|
16204
16748
|
display: flex;
|
|
16749
|
+
min-width: 0;
|
|
16750
|
+
max-width: 100%;
|
|
16751
|
+
overflow-wrap: anywhere;
|
|
16205
16752
|
flex-direction: column;
|
|
16206
16753
|
gap: var(--dsx-space-xs);
|
|
16207
16754
|
color: var(--dsx-color-on-surface);
|
|
@@ -16226,6 +16773,8 @@ button.dsx-link--none {
|
|
|
16226
16773
|
|
|
16227
16774
|
.dsx-metric__delta {
|
|
16228
16775
|
display: inline-flex;
|
|
16776
|
+
flex-wrap: wrap;
|
|
16777
|
+
min-width: 0;
|
|
16229
16778
|
align-items: center;
|
|
16230
16779
|
gap: var(--dsx-space-xs);
|
|
16231
16780
|
color: var(--dsx-color-on-surface-variant);
|
|
@@ -16253,9 +16802,10 @@ button.dsx-link--none {
|
|
|
16253
16802
|
display: flex;
|
|
16254
16803
|
align-items: center;
|
|
16255
16804
|
flex-wrap: wrap;
|
|
16256
|
-
gap: var(--dsx-space-sm);
|
|
16805
|
+
gap: var(--dsx-filter-bar-gap, var(--dsx-space-sm));
|
|
16257
16806
|
width: 100%;
|
|
16258
|
-
|
|
16807
|
+
min-width: 0;
|
|
16808
|
+
padding: var(--dsx-filter-bar-padding, var(--dsx-space-md));
|
|
16259
16809
|
border: var(--dsx-border-width-sm) solid var(--dsx-control-separator-color);
|
|
16260
16810
|
border-radius: var(--dsx-rounded-lg);
|
|
16261
16811
|
background: var(--dsx-color-surface-raised);
|
|
@@ -16266,7 +16816,15 @@ button.dsx-link--none {
|
|
|
16266
16816
|
display: flex;
|
|
16267
16817
|
align-items: center;
|
|
16268
16818
|
flex-wrap: wrap;
|
|
16269
|
-
gap: var(--dsx-space-sm);
|
|
16819
|
+
gap: var(--dsx-filter-bar-gap, var(--dsx-space-sm));
|
|
16820
|
+
/* Narrow-container rule (TMA slice-1 2026-09-23): as flex items of the bar
|
|
16821
|
+
these rows default to min-width:auto (= widest child), so a 350px
|
|
16822
|
+
SegmentedControl props a 272px bar open and the control's own
|
|
16823
|
+
max-width:100% resolves against the overflowed row — a no-op. Floor at 0
|
|
16824
|
+
and cap at 100% so the row shrinks to the bar and fused children engage
|
|
16825
|
+
their internal scroll instead. */
|
|
16826
|
+
min-width: 0;
|
|
16827
|
+
max-width: 100%;
|
|
16270
16828
|
}
|
|
16271
16829
|
|
|
16272
16830
|
.dsx-filter-bar__control { display: inline-flex; border-radius: var(--dsx-rounded-md); }
|
|
@@ -16280,18 +16838,380 @@ button.dsx-link--none {
|
|
|
16280
16838
|
.dsx-filter-bar__summary {
|
|
16281
16839
|
min-width: 0;
|
|
16282
16840
|
color: var(--dsx-color-on-surface-variant);
|
|
16283
|
-
font-family: var(--dsx-typography-body-small-font-family), sans-serif;
|
|
16284
|
-
font-size: var(--dsx-typography-body-small-font-size);
|
|
16285
|
-
|
|
16841
|
+
font-family: var(--dsx-filter-bar-summary-font-family, var(--dsx-typography-body-small-font-family)), sans-serif;
|
|
16842
|
+
font-size: var(--dsx-filter-bar-summary-font-size, var(--dsx-typography-body-small-font-size));
|
|
16843
|
+
font-weight: var(--dsx-filter-bar-summary-font-weight, var(--dsx-typography-body-small-font-weight));
|
|
16844
|
+
line-height: var(--dsx-filter-bar-summary-line-height, var(--dsx-typography-body-small-line-height));
|
|
16286
16845
|
}
|
|
16287
16846
|
|
|
16288
16847
|
.dsx-filter-bar__actions {
|
|
16289
16848
|
margin-inline-start: auto;
|
|
16849
|
+
flex: none;
|
|
16850
|
+
}
|
|
16851
|
+
|
|
16852
|
+
.dsx-filter-bar__search {
|
|
16853
|
+
display: inline-flex;
|
|
16854
|
+
flex: 1 1 12rem;
|
|
16855
|
+
min-width: min(10rem, 100%);
|
|
16856
|
+
max-width: 100%;
|
|
16857
|
+
}
|
|
16858
|
+
|
|
16859
|
+
.dsx-filter-bar__rules {
|
|
16860
|
+
min-width: 0;
|
|
16861
|
+
max-width: 100%;
|
|
16862
|
+
gap: var(--dsx-filter-bar-gap, var(--dsx-space-sm));
|
|
16863
|
+
min-height: var(--dsx-filter-bar-control-height, var(--dsx-density-control-height));
|
|
16864
|
+
}
|
|
16865
|
+
|
|
16866
|
+
.dsx-filter-bar__rule {
|
|
16867
|
+
box-sizing: border-box;
|
|
16868
|
+
min-width: 0;
|
|
16869
|
+
max-width: 100%;
|
|
16870
|
+
}
|
|
16871
|
+
|
|
16872
|
+
.dsx-filter-bar__rule-label {
|
|
16873
|
+
position: relative;
|
|
16874
|
+
display: inline-flex;
|
|
16875
|
+
align-items: baseline;
|
|
16876
|
+
flex-wrap: wrap;
|
|
16877
|
+
min-width: 0;
|
|
16878
|
+
overflow-wrap: anywhere;
|
|
16879
|
+
text-align: start;
|
|
16880
|
+
gap: var(--dsx-space-xs);
|
|
16881
|
+
padding: 0;
|
|
16882
|
+
margin: 0;
|
|
16883
|
+
border: none;
|
|
16884
|
+
background: transparent;
|
|
16885
|
+
color: inherit;
|
|
16886
|
+
font: inherit;
|
|
16887
|
+
cursor: pointer;
|
|
16888
|
+
}
|
|
16889
|
+
|
|
16890
|
+
.dsx-filter-bar__rule-label > span {
|
|
16891
|
+
min-width: 0;
|
|
16892
|
+
max-width: 100%;
|
|
16893
|
+
}
|
|
16894
|
+
|
|
16895
|
+
button.dsx-filter-bar__rule-label::before {
|
|
16896
|
+
content: '';
|
|
16897
|
+
position: absolute;
|
|
16898
|
+
inset-inline: 0;
|
|
16899
|
+
top: 50%;
|
|
16900
|
+
height: max(100%, var(--dsx-size-md));
|
|
16901
|
+
transform: translateY(-50%);
|
|
16902
|
+
}
|
|
16903
|
+
|
|
16904
|
+
:where(.dsx-filter-bar__rule) > .dsx-pill__remove {
|
|
16905
|
+
position: relative;
|
|
16906
|
+
flex-shrink: 0;
|
|
16907
|
+
}
|
|
16908
|
+
|
|
16909
|
+
:where(.dsx-filter-bar__rule) > .dsx-pill__remove::before {
|
|
16910
|
+
content: '';
|
|
16911
|
+
position: absolute;
|
|
16912
|
+
top: 50%;
|
|
16913
|
+
left: 50%;
|
|
16914
|
+
width: max(100%, var(--dsx-size-md));
|
|
16915
|
+
height: max(100%, var(--dsx-size-md));
|
|
16916
|
+
transform: translate(-50%, -50%);
|
|
16917
|
+
}
|
|
16918
|
+
|
|
16919
|
+
span.dsx-filter-bar__rule-label {
|
|
16920
|
+
cursor: default;
|
|
16921
|
+
}
|
|
16922
|
+
|
|
16923
|
+
.dsx-filter-bar__rule-field {
|
|
16924
|
+
font-weight: inherit;
|
|
16925
|
+
}
|
|
16926
|
+
|
|
16927
|
+
.dsx-filter-bar__rule-operator {
|
|
16928
|
+
color: var(--dsx-color-on-surface-variant);
|
|
16929
|
+
}
|
|
16930
|
+
|
|
16931
|
+
.dsx-filter-bar__rule-value {
|
|
16932
|
+
color: var(--dsx-color-on-surface);
|
|
16933
|
+
}
|
|
16934
|
+
|
|
16935
|
+
.dsx-filter-bar__rule:where([data-active='true']) {
|
|
16936
|
+
box-shadow: inset 0 0 0 var(--dsx-border-width-sm) var(--dsx-color-accent-indicator);
|
|
16937
|
+
}
|
|
16938
|
+
|
|
16939
|
+
.dsx-filter-bar__builder {
|
|
16940
|
+
display: grid;
|
|
16941
|
+
gap: var(--dsx-space-md);
|
|
16942
|
+
min-width: 16rem;
|
|
16943
|
+
}
|
|
16944
|
+
|
|
16945
|
+
.dsx-filter-bar__builder-anchor {
|
|
16946
|
+
position: fixed;
|
|
16947
|
+
top: 50%;
|
|
16948
|
+
left: 50%;
|
|
16949
|
+
width: 0;
|
|
16950
|
+
height: 0;
|
|
16951
|
+
}
|
|
16952
|
+
|
|
16953
|
+
.dsx-filter-bar__condition-editor {
|
|
16954
|
+
display: grid;
|
|
16955
|
+
gap: var(--dsx-space-md);
|
|
16956
|
+
width: 100%;
|
|
16957
|
+
padding: var(--dsx-space-md);
|
|
16958
|
+
border: var(--dsx-border-width-sm) solid var(--dsx-control-separator-color);
|
|
16959
|
+
border-radius: var(--dsx-rounded-md);
|
|
16960
|
+
background: var(--dsx-color-surface);
|
|
16961
|
+
}
|
|
16962
|
+
|
|
16963
|
+
.dsx-filter-bar__condition-editor-title {
|
|
16964
|
+
color: var(--dsx-color-on-surface);
|
|
16965
|
+
font-family: var(--dsx-typography-label-medium-font-family, var(--dsx-typography-label-small-font-family)), sans-serif;
|
|
16966
|
+
font-size: var(--dsx-typography-label-medium-font-size, var(--dsx-typography-label-small-font-size));
|
|
16967
|
+
font-weight: var(--dsx-typography-label-medium-font-weight, var(--dsx-typography-label-small-font-weight));
|
|
16968
|
+
line-height: var(--dsx-typography-label-medium-line-height, var(--dsx-typography-label-small-line-height));
|
|
16969
|
+
}
|
|
16970
|
+
|
|
16971
|
+
.dsx-filter-bar__condition-editor-body {
|
|
16972
|
+
display: flex;
|
|
16973
|
+
flex-wrap: wrap;
|
|
16974
|
+
gap: var(--dsx-space-md);
|
|
16975
|
+
}
|
|
16976
|
+
|
|
16977
|
+
.dsx-filter-bar__condition-editor-fields {
|
|
16978
|
+
display: flex;
|
|
16979
|
+
flex-direction: column;
|
|
16980
|
+
flex: 0 1 12rem;
|
|
16981
|
+
gap: var(--dsx-space-xs);
|
|
16982
|
+
}
|
|
16983
|
+
|
|
16984
|
+
.dsx-filter-bar__condition-editor-config {
|
|
16985
|
+
display: grid;
|
|
16986
|
+
flex: 1 1 16rem;
|
|
16987
|
+
gap: var(--dsx-space-sm);
|
|
16988
|
+
align-content: start;
|
|
16989
|
+
min-width: 0;
|
|
16990
|
+
}
|
|
16991
|
+
|
|
16992
|
+
.dsx-filter-bar__condition-editor-field {
|
|
16993
|
+
display: grid;
|
|
16994
|
+
gap: var(--dsx-space-xs);
|
|
16995
|
+
}
|
|
16996
|
+
|
|
16997
|
+
.dsx-filter-bar__condition-editor-label {
|
|
16998
|
+
color: var(--dsx-color-on-surface-variant);
|
|
16999
|
+
font-family: var(--dsx-typography-label-small-font-family), sans-serif;
|
|
17000
|
+
font-size: var(--dsx-typography-label-small-font-size);
|
|
17001
|
+
font-weight: var(--dsx-typography-label-small-font-weight);
|
|
17002
|
+
line-height: var(--dsx-typography-label-small-line-height);
|
|
17003
|
+
}
|
|
17004
|
+
|
|
17005
|
+
.dsx-filter-bar__condition-editor-actions {
|
|
17006
|
+
display: flex;
|
|
17007
|
+
justify-content: flex-end;
|
|
17008
|
+
gap: var(--dsx-space-sm);
|
|
17009
|
+
}
|
|
17010
|
+
|
|
17011
|
+
.dsx-filter-bar__condition-grip {
|
|
17012
|
+
display: inline-flex;
|
|
17013
|
+
flex: none;
|
|
17014
|
+
align-items: center;
|
|
17015
|
+
color: var(--dsx-color-on-surface-variant);
|
|
17016
|
+
cursor: grab;
|
|
16290
17017
|
}
|
|
16291
17018
|
|
|
16292
|
-
.dsx-filter-
|
|
17019
|
+
.dsx-filter-bar__condition-rows-label,
|
|
17020
|
+
.dsx-filter-bar__condition-match-label {
|
|
17021
|
+
color: var(--dsx-color-on-surface-variant);
|
|
17022
|
+
font-family: var(--dsx-typography-label-small-font-family), sans-serif;
|
|
17023
|
+
font-size: var(--dsx-typography-label-small-font-size);
|
|
17024
|
+
font-weight: var(--dsx-typography-label-small-font-weight);
|
|
17025
|
+
line-height: var(--dsx-typography-label-small-line-height);
|
|
17026
|
+
}
|
|
16293
17027
|
|
|
16294
|
-
.dsx-filter-
|
|
17028
|
+
.dsx-filter-bar__builder-field {
|
|
17029
|
+
display: grid;
|
|
17030
|
+
gap: var(--dsx-space-xs);
|
|
17031
|
+
}
|
|
17032
|
+
|
|
17033
|
+
.dsx-filter-bar__builder-label {
|
|
17034
|
+
color: var(--dsx-color-on-surface-variant);
|
|
17035
|
+
font-family: var(--dsx-typography-label-small-font-family), sans-serif;
|
|
17036
|
+
font-size: var(--dsx-typography-label-small-font-size);
|
|
17037
|
+
font-weight: var(--dsx-typography-label-small-font-weight);
|
|
17038
|
+
line-height: var(--dsx-typography-label-small-line-height);
|
|
17039
|
+
}
|
|
17040
|
+
|
|
17041
|
+
.dsx-filter-bar__builder-actions {
|
|
17042
|
+
display: flex;
|
|
17043
|
+
justify-content: flex-end;
|
|
17044
|
+
gap: var(--dsx-space-sm);
|
|
17045
|
+
}
|
|
17046
|
+
|
|
17047
|
+
/* Builder selects ride the shared nested floating tier: the Builder popup is a
|
|
17048
|
+
Popover host, so its option lists escalate automatically via
|
|
17049
|
+
`dsx-menu__nested` (see `_internal/baseMenu.css`). The round-3 scoped
|
|
17050
|
+
override (`.dsx-filter-bar__builder-select` at `modal + 2`) is retired. */
|
|
17051
|
+
|
|
17052
|
+
.dsx-filter-bar__rule-count {
|
|
17053
|
+
color: var(--dsx-color-on-surface-variant);
|
|
17054
|
+
font-family: var(--dsx-typography-label-small-font-family), sans-serif;
|
|
17055
|
+
font-size: var(--dsx-typography-label-small-font-size);
|
|
17056
|
+
font-weight: var(--dsx-typography-label-small-font-weight);
|
|
17057
|
+
line-height: var(--dsx-typography-label-small-line-height);
|
|
17058
|
+
}
|
|
17059
|
+
|
|
17060
|
+
.dsx-filter-bar__rules-overflow {
|
|
17061
|
+
display: inline-flex;
|
|
17062
|
+
align-items: center;
|
|
17063
|
+
gap: var(--dsx-space-xs);
|
|
17064
|
+
}
|
|
17065
|
+
|
|
17066
|
+
.dsx-filter-bar__condition-group {
|
|
17067
|
+
display: grid;
|
|
17068
|
+
gap: var(--dsx-filter-bar-gap, var(--dsx-space-sm));
|
|
17069
|
+
width: 100%;
|
|
17070
|
+
padding: var(--dsx-space-sm);
|
|
17071
|
+
border: var(--dsx-border-width-sm) solid var(--dsx-control-separator-color);
|
|
17072
|
+
border-radius: var(--dsx-rounded-md);
|
|
17073
|
+
}
|
|
17074
|
+
|
|
17075
|
+
.dsx-filter-bar__condition-group .dsx-filter-bar__condition-group {
|
|
17076
|
+
width: auto;
|
|
17077
|
+
margin-inline-start: var(--dsx-space-md);
|
|
17078
|
+
padding-inline-start: var(--dsx-space-md);
|
|
17079
|
+
border-inline-start: var(--dsx-border-width-sm) solid var(--dsx-color-outline);
|
|
17080
|
+
background: transparent;
|
|
17081
|
+
}
|
|
17082
|
+
|
|
17083
|
+
.dsx-filter-bar__condition-group[data-empty='true'] {
|
|
17084
|
+
border-style: dashed;
|
|
17085
|
+
}
|
|
17086
|
+
|
|
17087
|
+
.dsx-filter-bar__condition-empty {
|
|
17088
|
+
color: var(--dsx-color-on-surface-variant);
|
|
17089
|
+
font-family: var(--dsx-typography-label-small-font-family), sans-serif;
|
|
17090
|
+
font-size: var(--dsx-typography-label-small-font-size);
|
|
17091
|
+
}
|
|
17092
|
+
|
|
17093
|
+
.dsx-filter-bar__rule-value[data-empty='true'] {
|
|
17094
|
+
padding: 0 var(--dsx-space-xs);
|
|
17095
|
+
border: var(--dsx-border-width-sm) dashed var(--dsx-color-on-surface-variant);
|
|
17096
|
+
border-radius: var(--dsx-rounded-sm);
|
|
17097
|
+
color: var(--dsx-color-on-surface-variant);
|
|
17098
|
+
font-family: var(--dsx-typography-label-small-font-family), sans-serif;
|
|
17099
|
+
font-size: var(--dsx-typography-label-small-font-size);
|
|
17100
|
+
}
|
|
17101
|
+
|
|
17102
|
+
.dsx-filter-bar__condition-combinator {
|
|
17103
|
+
display: flex;
|
|
17104
|
+
align-items: center;
|
|
17105
|
+
gap: var(--dsx-space-xs);
|
|
17106
|
+
}
|
|
17107
|
+
|
|
17108
|
+
.dsx-filter-bar__condition-combinator-label {
|
|
17109
|
+
color: var(--dsx-color-on-surface-variant);
|
|
17110
|
+
font-family: var(--dsx-typography-label-small-font-family), sans-serif;
|
|
17111
|
+
font-size: var(--dsx-typography-label-small-font-size);
|
|
17112
|
+
font-weight: var(--dsx-typography-label-small-font-weight);
|
|
17113
|
+
line-height: var(--dsx-typography-label-small-line-height);
|
|
17114
|
+
}
|
|
17115
|
+
|
|
17116
|
+
.dsx-filter-bar__condition-children {
|
|
17117
|
+
display: grid;
|
|
17118
|
+
gap: var(--dsx-space-sm);
|
|
17119
|
+
}
|
|
17120
|
+
|
|
17121
|
+
.dsx-filter-bar__condition {
|
|
17122
|
+
display: flex;
|
|
17123
|
+
align-items: center;
|
|
17124
|
+
flex-wrap: wrap;
|
|
17125
|
+
gap: var(--dsx-space-sm);
|
|
17126
|
+
width: 100%;
|
|
17127
|
+
}
|
|
17128
|
+
|
|
17129
|
+
.dsx-filter-bar__condition-field {
|
|
17130
|
+
flex: 0 1 10rem;
|
|
17131
|
+
min-width: 0;
|
|
17132
|
+
}
|
|
17133
|
+
|
|
17134
|
+
.dsx-filter-bar__condition-operator {
|
|
17135
|
+
flex: 0 1 8rem;
|
|
17136
|
+
min-width: 0;
|
|
17137
|
+
}
|
|
17138
|
+
|
|
17139
|
+
.dsx-filter-bar__condition-value {
|
|
17140
|
+
flex: 1 1 10rem;
|
|
17141
|
+
min-width: 0;
|
|
17142
|
+
}
|
|
17143
|
+
|
|
17144
|
+
.dsx-filter-bar__condition-gap {
|
|
17145
|
+
display: flex;
|
|
17146
|
+
align-items: center;
|
|
17147
|
+
gap: var(--dsx-space-xs);
|
|
17148
|
+
width: 100%;
|
|
17149
|
+
}
|
|
17150
|
+
|
|
17151
|
+
.dsx-filter-bar__condition-label {
|
|
17152
|
+
display: inline-flex;
|
|
17153
|
+
flex: 1 1 auto;
|
|
17154
|
+
align-items: baseline;
|
|
17155
|
+
justify-content: flex-start;
|
|
17156
|
+
gap: var(--dsx-space-xs);
|
|
17157
|
+
min-width: 0;
|
|
17158
|
+
padding: 0;
|
|
17159
|
+
margin: 0;
|
|
17160
|
+
border: none;
|
|
17161
|
+
background: transparent;
|
|
17162
|
+
color: inherit;
|
|
17163
|
+
font: inherit;
|
|
17164
|
+
text-align: start;
|
|
17165
|
+
cursor: pointer;
|
|
17166
|
+
}
|
|
17167
|
+
|
|
17168
|
+
span.dsx-filter-bar__condition-label {
|
|
17169
|
+
cursor: default;
|
|
17170
|
+
}
|
|
17171
|
+
|
|
17172
|
+
.dsx-filter-bar__rule-value {
|
|
17173
|
+
min-width: 0;
|
|
17174
|
+
overflow: hidden;
|
|
17175
|
+
text-overflow: ellipsis;
|
|
17176
|
+
white-space: nowrap;
|
|
17177
|
+
}
|
|
17178
|
+
|
|
17179
|
+
.dsx-filter-bar__condition-actions {
|
|
17180
|
+
display: flex;
|
|
17181
|
+
align-items: center;
|
|
17182
|
+
flex-wrap: wrap;
|
|
17183
|
+
gap: var(--dsx-space-sm);
|
|
17184
|
+
}
|
|
17185
|
+
|
|
17186
|
+
.dsx-filter-bar:where([data-size='sm']) {
|
|
17187
|
+
--dsx-filter-bar-padding: var(--dsx-space-sm);
|
|
17188
|
+
--dsx-filter-bar-gap: var(--dsx-space-xs);
|
|
17189
|
+
--dsx-filter-bar-control-height: var(--dsx-density-control-height-sm);
|
|
17190
|
+
--dsx-filter-bar-summary-font-family: var(--dsx-typography-label-small-font-family);
|
|
17191
|
+
--dsx-filter-bar-summary-font-size: var(--dsx-typography-label-small-font-size);
|
|
17192
|
+
--dsx-filter-bar-summary-font-weight: var(--dsx-typography-label-small-font-weight);
|
|
17193
|
+
--dsx-filter-bar-summary-line-height: var(--dsx-typography-label-small-line-height);
|
|
17194
|
+
}
|
|
17195
|
+
|
|
17196
|
+
.dsx-filter-bar:where([data-size='md']) {
|
|
17197
|
+
--dsx-filter-bar-padding: var(--dsx-space-md);
|
|
17198
|
+
--dsx-filter-bar-gap: var(--dsx-space-sm);
|
|
17199
|
+
--dsx-filter-bar-control-height: var(--dsx-density-control-height);
|
|
17200
|
+
--dsx-filter-bar-summary-font-family: var(--dsx-typography-body-small-font-family);
|
|
17201
|
+
--dsx-filter-bar-summary-font-size: var(--dsx-typography-body-small-font-size);
|
|
17202
|
+
--dsx-filter-bar-summary-font-weight: var(--dsx-typography-body-small-font-weight);
|
|
17203
|
+
--dsx-filter-bar-summary-line-height: var(--dsx-typography-body-small-line-height);
|
|
17204
|
+
}
|
|
17205
|
+
|
|
17206
|
+
.dsx-filter-bar:where([data-size='lg']) {
|
|
17207
|
+
--dsx-filter-bar-padding: var(--dsx-space-lg);
|
|
17208
|
+
--dsx-filter-bar-gap: var(--dsx-space-md);
|
|
17209
|
+
--dsx-filter-bar-control-height: var(--dsx-density-control-height-lg);
|
|
17210
|
+
--dsx-filter-bar-summary-font-family: var(--dsx-typography-body-medium-font-family);
|
|
17211
|
+
--dsx-filter-bar-summary-font-size: var(--dsx-typography-body-medium-font-size);
|
|
17212
|
+
--dsx-filter-bar-summary-font-weight: var(--dsx-typography-body-medium-font-weight);
|
|
17213
|
+
--dsx-filter-bar-summary-line-height: var(--dsx-typography-body-medium-line-height);
|
|
17214
|
+
}
|
|
16295
17215
|
|
|
16296
17216
|
.dsx-stepper {
|
|
16297
17217
|
display: flex;
|
|
@@ -16608,6 +17528,8 @@ button.dsx-link--none {
|
|
|
16608
17528
|
display: flex;
|
|
16609
17529
|
flex-direction: column;
|
|
16610
17530
|
box-sizing: border-box;
|
|
17531
|
+
min-width: 0;
|
|
17532
|
+
max-width: 100%;
|
|
16611
17533
|
}
|
|
16612
17534
|
|
|
16613
17535
|
.dsx-timeline--left {
|
|
@@ -16621,6 +17543,8 @@ button.dsx-link--none {
|
|
|
16621
17543
|
.dsx-timeline__item {
|
|
16622
17544
|
display: flex;
|
|
16623
17545
|
position: relative;
|
|
17546
|
+
min-width: 0;
|
|
17547
|
+
max-width: 100%;
|
|
16624
17548
|
}
|
|
16625
17549
|
|
|
16626
17550
|
.dsx-timeline--left .dsx-timeline__item {
|
|
@@ -16628,37 +17552,51 @@ button.dsx-link--none {
|
|
|
16628
17552
|
gap: var(--dsx-space-lg);
|
|
16629
17553
|
}
|
|
16630
17554
|
|
|
17555
|
+
/* Alternate variant: centered dot-column spine with parity-split content.
|
|
17556
|
+
Shares Stepper's vertical rail engine (see stepper.css
|
|
17557
|
+
`.dsx-stepper--vertical .dsx-stepper__item:not(:last-child)::after`): the
|
|
17558
|
+
connector is item-local, anchored at the marker bottom (`top` = marker
|
|
17559
|
+
size) and stretched to the item bottom (`bottom: 0`), centered on the dot
|
|
17560
|
+
column via `calc(marker-size / 2 - rail-width / 2)`. Timeline keeps its own
|
|
17561
|
+
Connector DOM node (Stepper draws via ::after and hides its Separator) and
|
|
17562
|
+
its own rail width (`--dsx-border-width-sm`); the geometry recipe is shared,
|
|
17563
|
+
the slot API and ARIA roles stay distinct. Keep in sync with stepper.css. */
|
|
17564
|
+
|
|
16631
17565
|
.dsx-timeline--alternate .dsx-timeline__item {
|
|
16632
|
-
|
|
17566
|
+
display: grid;
|
|
17567
|
+
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
|
|
17568
|
+
column-gap: var(--dsx-space-lg);
|
|
16633
17569
|
width: 100%;
|
|
16634
17570
|
}
|
|
16635
17571
|
|
|
16636
|
-
/*
|
|
16637
|
-
|
|
16638
|
-
|
|
16639
|
-
:nth-child()/[data-size] are wrapped in :where() so these rules tie the
|
|
16640
|
-
file's pre-existing (0,3,0) ceiling on source order instead of exceeding
|
|
16641
|
-
it — same technique as the V-2 card-selection fix. */
|
|
17572
|
+
/* Parity split: the 1fr tracks exist without any spacer element, so equal
|
|
17573
|
+
fr shares keep the marker exactly on the centerline in both parities.
|
|
17574
|
+
Odd items read content-left, even items read content-right. */
|
|
16642
17575
|
|
|
16643
|
-
.dsx-timeline--alternate .dsx-timeline__item:where(:nth-child(
|
|
16644
|
-
|
|
17576
|
+
.dsx-timeline--alternate .dsx-timeline__item:where(:nth-child(odd)) .dsx-timeline__content {
|
|
17577
|
+
grid-column: 1;
|
|
17578
|
+
grid-row: 1;
|
|
17579
|
+
text-align: right;
|
|
16645
17580
|
}
|
|
16646
17581
|
|
|
16647
|
-
.dsx-timeline--alternate .dsx-timeline__item:where(:nth-child(
|
|
16648
|
-
|
|
17582
|
+
.dsx-timeline--alternate .dsx-timeline__item:where(:nth-child(odd)) .dsx-timeline__marker {
|
|
17583
|
+
grid-column: 2;
|
|
17584
|
+
grid-row: 1;
|
|
16649
17585
|
}
|
|
16650
17586
|
|
|
16651
|
-
.dsx-timeline--alternate .dsx-timeline__item:where(:nth-child(even)) .dsx-
|
|
16652
|
-
|
|
16653
|
-
|
|
17587
|
+
.dsx-timeline--alternate .dsx-timeline__item:where(:nth-child(even)) .dsx-timeline__marker {
|
|
17588
|
+
grid-column: 2;
|
|
17589
|
+
grid-row: 1;
|
|
16654
17590
|
}
|
|
16655
17591
|
|
|
16656
|
-
.dsx-timeline--alternate
|
|
16657
|
-
|
|
17592
|
+
.dsx-timeline--alternate .dsx-timeline__item:where(:nth-child(even)) .dsx-timeline__content {
|
|
17593
|
+
grid-column: 3;
|
|
17594
|
+
grid-row: 1;
|
|
17595
|
+
text-align: left;
|
|
16658
17596
|
}
|
|
16659
17597
|
|
|
16660
|
-
.dsx-timeline--alternate
|
|
16661
|
-
|
|
17598
|
+
.dsx-timeline--alternate .dsx-timeline__content {
|
|
17599
|
+
min-width: 0;
|
|
16662
17600
|
}
|
|
16663
17601
|
|
|
16664
17602
|
.dsx-timeline__marker {
|
|
@@ -16699,6 +17637,20 @@ button.dsx-link--none {
|
|
|
16699
17637
|
top: var(--dsx-size-lg);
|
|
16700
17638
|
}
|
|
16701
17639
|
|
|
17640
|
+
/* Centered spine: the connector runs down the item's vertical centerline,
|
|
17641
|
+
which is the marker center because both halves are equal flex: 1. `top`
|
|
17642
|
+
still follows the marker size via the base size rules above — only the
|
|
17643
|
+
horizontal anchor is overridden here. Specificity (0,3,0) ties the base
|
|
17644
|
+
size rules, so this block must stay after them in source order. */
|
|
17645
|
+
|
|
17646
|
+
.dsx-timeline--alternate[data-size='sm'] .dsx-timeline__connector,
|
|
17647
|
+
.dsx-timeline--alternate[data-size='md'] .dsx-timeline__connector,
|
|
17648
|
+
.dsx-timeline--alternate:not([data-size]) .dsx-timeline__connector,
|
|
17649
|
+
.dsx-timeline--alternate[data-size='lg'] .dsx-timeline__connector {
|
|
17650
|
+
left: calc(50% - var(--dsx-border-width-sm) / 2);
|
|
17651
|
+
right: auto;
|
|
17652
|
+
}
|
|
17653
|
+
|
|
16702
17654
|
.dsx-timeline__item--active .dsx-timeline__marker {
|
|
16703
17655
|
border-color: var(--dsx-color-primary);
|
|
16704
17656
|
background: var(--dsx-color-primary);
|
|
@@ -16728,11 +17680,17 @@ button.dsx-link--none {
|
|
|
16728
17680
|
background: var(--dsx-color-primary);
|
|
16729
17681
|
}
|
|
16730
17682
|
|
|
17683
|
+
.dsx-timeline__item--error .dsx-timeline__connector {
|
|
17684
|
+
background: var(--dsx-color-error);
|
|
17685
|
+
}
|
|
17686
|
+
|
|
16731
17687
|
.dsx-timeline__content {
|
|
16732
17688
|
display: flex;
|
|
16733
17689
|
flex-direction: column;
|
|
16734
17690
|
gap: var(--dsx-space-2xs);
|
|
16735
17691
|
flex: 1;
|
|
17692
|
+
min-width: 0;
|
|
17693
|
+
overflow-wrap: anywhere;
|
|
16736
17694
|
padding-bottom: var(--dsx-space-lg);
|
|
16737
17695
|
}
|
|
16738
17696
|
|
|
@@ -16962,7 +17920,6 @@ button.dsx-link--none {
|
|
|
16962
17920
|
.dsx-date-picker__trigger,
|
|
16963
17921
|
.dsx-theme,
|
|
16964
17922
|
.dsx-input-group,
|
|
16965
|
-
.dsx-control-group,
|
|
16966
17923
|
.dsx-item,
|
|
16967
17924
|
.dsx-kbd,
|
|
16968
17925
|
.dsx-calendar,
|