@ds-mo/ui 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ds-accordion.d.ts +11 -0
- package/dist/components/ds-accordion.js +2 -0
- package/dist/components/ds-accordion.js.map +1 -0
- package/dist/components/ds-badge.d.ts +11 -0
- package/dist/components/ds-badge.js +2 -0
- package/dist/components/ds-badge.js.map +1 -0
- package/dist/components/ds-banner.d.ts +11 -0
- package/dist/components/ds-banner.js +2 -0
- package/dist/components/ds-banner.js.map +1 -0
- package/dist/components/ds-breadcrumb.d.ts +11 -0
- package/dist/components/ds-breadcrumb.js +2 -0
- package/dist/components/ds-breadcrumb.js.map +1 -0
- package/dist/components/ds-button.d.ts +11 -0
- package/dist/components/ds-button.js +2 -0
- package/dist/components/ds-button.js.map +1 -0
- package/dist/components/ds-card.d.ts +11 -0
- package/dist/components/ds-card.js +2 -0
- package/dist/components/ds-card.js.map +1 -0
- package/dist/components/ds-checkbox.d.ts +11 -0
- package/dist/components/ds-checkbox.js +2 -0
- package/dist/components/ds-checkbox.js.map +1 -0
- package/dist/components/ds-divider.d.ts +11 -0
- package/dist/components/ds-divider.js +2 -0
- package/dist/components/ds-divider.js.map +1 -0
- package/dist/components/ds-empty-state.d.ts +11 -0
- package/dist/components/ds-empty-state.js +2 -0
- package/dist/components/ds-empty-state.js.map +1 -0
- package/dist/components/ds-fade.d.ts +11 -0
- package/dist/components/ds-fade.js +2 -0
- package/dist/components/ds-fade.js.map +1 -0
- package/dist/components/ds-field.d.ts +11 -0
- package/dist/components/ds-field.js +2 -0
- package/dist/components/ds-field.js.map +1 -0
- package/dist/components/ds-header.d.ts +11 -0
- package/dist/components/ds-header.js +2 -0
- package/dist/components/ds-header.js.map +1 -0
- package/dist/components/ds-input.d.ts +11 -0
- package/dist/components/ds-input.js +2 -0
- package/dist/components/ds-input.js.map +1 -0
- package/dist/components/ds-loader.d.ts +11 -0
- package/dist/components/ds-loader.js +2 -0
- package/dist/components/ds-loader.js.map +1 -0
- package/dist/components/ds-menu.d.ts +11 -0
- package/dist/components/ds-menu.js +2 -0
- package/dist/components/ds-menu.js.map +1 -0
- package/dist/components/ds-modal.d.ts +11 -0
- package/dist/components/ds-modal.js +2 -0
- package/dist/components/ds-modal.js.map +1 -0
- package/dist/components/ds-pagination.d.ts +11 -0
- package/dist/components/ds-pagination.js +2 -0
- package/dist/components/ds-pagination.js.map +1 -0
- package/dist/components/ds-radio-group.d.ts +11 -0
- package/dist/components/ds-radio-group.js +2 -0
- package/dist/components/ds-radio-group.js.map +1 -0
- package/dist/components/ds-scrollbar.d.ts +11 -0
- package/dist/components/ds-scrollbar.js +2 -0
- package/dist/components/ds-scrollbar.js.map +1 -0
- package/dist/components/ds-sidebar.d.ts +11 -0
- package/dist/components/ds-sidebar.js +2 -0
- package/dist/components/ds-sidebar.js.map +1 -0
- package/dist/components/ds-skeleton.d.ts +11 -0
- package/dist/components/ds-skeleton.js +2 -0
- package/dist/components/ds-skeleton.js.map +1 -0
- package/dist/components/ds-slider.d.ts +11 -0
- package/dist/components/ds-slider.js +2 -0
- package/dist/components/ds-slider.js.map +1 -0
- package/dist/components/ds-surface.d.ts +11 -0
- package/dist/components/ds-surface.js +2 -0
- package/dist/components/ds-surface.js.map +1 -0
- package/dist/components/ds-tab-group.d.ts +11 -0
- package/dist/components/ds-tab-group.js +2 -0
- package/dist/components/ds-tab-group.js.map +1 -0
- package/dist/components/ds-table.d.ts +11 -0
- package/dist/components/ds-table.js +2 -0
- package/dist/components/ds-table.js.map +1 -0
- package/dist/components/ds-tag.d.ts +11 -0
- package/dist/components/ds-tag.js +2 -0
- package/dist/components/ds-tag.js.map +1 -0
- package/dist/components/ds-text.d.ts +11 -0
- package/dist/components/ds-text.js +2 -0
- package/dist/components/ds-text.js.map +1 -0
- package/dist/components/ds-toast-provider.d.ts +11 -0
- package/dist/components/ds-toast-provider.js +2 -0
- package/dist/components/ds-toast-provider.js.map +1 -0
- package/dist/components/ds-toggle.d.ts +11 -0
- package/dist/components/ds-toggle.js +2 -0
- package/dist/components/ds-toggle.js.map +1 -0
- package/dist/components/ds-tooltip.d.ts +11 -0
- package/dist/components/ds-tooltip.js +2 -0
- package/dist/components/ds-tooltip.js.map +1 -0
- package/dist/components/index.d.ts +33 -0
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/p-BcuUR5Ao.js +2 -0
- package/dist/components/p-BcuUR5Ao.js.map +1 -0
- package/dist/types/.stencil/Accordion/Accordion.d.ts +28 -0
- package/dist/types/.stencil/Badge/Badge.d.ts +8 -0
- package/dist/types/.stencil/Badge/index.d.ts +2 -0
- package/dist/types/.stencil/Banner/Banner.d.ts +29 -0
- package/dist/types/.stencil/Breadcrumb/Breadcrumb.d.ts +16 -0
- package/dist/types/.stencil/Button/Button.d.ts +38 -0
- package/dist/types/.stencil/Button/index.d.ts +2 -0
- package/dist/types/.stencil/Card/Card.d.ts +8 -0
- package/dist/types/.stencil/Checkbox/Checkbox.d.ts +13 -0
- package/dist/types/.stencil/Checkbox/index.d.ts +2 -0
- package/dist/types/.stencil/Divider/Divider.d.ts +7 -0
- package/dist/types/.stencil/Divider/index.d.ts +2 -0
- package/dist/types/.stencil/EmptyState/EmptyState.d.ts +7 -0
- package/dist/types/.stencil/Fade/Fade.d.ts +10 -0
- package/dist/types/.stencil/Fade/index.d.ts +2 -0
- package/dist/types/.stencil/Field/Field.d.ts +8 -0
- package/dist/types/.stencil/Header/Header.d.ts +7 -0
- package/dist/types/.stencil/Input/Input.d.ts +26 -0
- package/dist/types/.stencil/Input/index.d.ts +2 -0
- package/dist/types/.stencil/Loader/Loader.d.ts +12 -0
- package/dist/types/.stencil/Loader/index.d.ts +2 -0
- package/dist/types/.stencil/Menu/Menu.d.ts +60 -0
- package/dist/types/.stencil/Modal/Modal.d.ts +31 -0
- package/dist/types/.stencil/Pagination/Pagination.d.ts +11 -0
- package/dist/types/.stencil/RadioGroup/RadioGroup.d.ts +21 -0
- package/dist/types/.stencil/RadioGroup/index.d.ts +2 -0
- package/dist/types/.stencil/Scrollbar/Scrollbar.d.ts +27 -0
- package/dist/types/.stencil/Sidebar/Sidebar.d.ts +29 -0
- package/dist/types/.stencil/Skeleton/Skeleton.d.ts +16 -0
- package/dist/types/.stencil/Skeleton/index.d.ts +2 -0
- package/dist/types/.stencil/Slider/Slider.d.ts +18 -0
- package/dist/types/.stencil/Slider/index.d.ts +2 -0
- package/dist/types/.stencil/Surface/Surface.d.ts +22 -0
- package/dist/types/.stencil/TabGroup/TabGroup.d.ts +29 -0
- package/dist/types/.stencil/Table/Table.d.ts +50 -0
- package/dist/types/.stencil/Tag/Tag.d.ts +32 -0
- package/dist/types/.stencil/Tag/index.d.ts +2 -0
- package/dist/types/.stencil/Text/Text.d.ts +22 -0
- package/dist/types/.stencil/Text/index.d.ts +2 -0
- package/dist/types/.stencil/Toast/Toast.d.ts +15 -0
- package/dist/types/.stencil/Toast/toast-service.d.ts +24 -0
- package/dist/types/.stencil/Toggle/Toggle.d.ts +10 -0
- package/dist/types/.stencil/Toggle/index.d.ts +2 -0
- package/dist/types/.stencil/Tooltip/Tooltip.d.ts +36 -0
- package/dist/types/components.d.ts +2024 -0
- package/dist/types/stencil-public-runtime.d.ts +1860 -0
- package/package.json +27 -28
- package/src/angular/angular-component-lib/utils.ts +65 -0
- package/src/angular/index.ts +35 -0
- package/src/angular/proxies.ts +819 -0
- package/dist/components/Accordion/Accordion.d.ts +0 -29
- package/dist/components/Accordion/Accordion.d.ts.map +0 -1
- package/dist/components/Accordion/index.d.ts +0 -3
- package/dist/components/Accordion/index.d.ts.map +0 -1
- package/dist/components/Badge/Badge.d.ts +0 -18
- package/dist/components/Badge/Badge.d.ts.map +0 -1
- package/dist/components/Badge/index.d.ts +0 -3
- package/dist/components/Badge/index.d.ts.map +0 -1
- package/dist/components/Banner/Banner.d.ts +0 -16
- package/dist/components/Banner/Banner.d.ts.map +0 -1
- package/dist/components/Banner/index.d.ts +0 -3
- package/dist/components/Banner/index.d.ts.map +0 -1
- package/dist/components/Breadcrumb/Breadcrumb.d.ts +0 -15
- package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +0 -1
- package/dist/components/Breadcrumb/index.d.ts +0 -3
- package/dist/components/Breadcrumb/index.d.ts.map +0 -1
- package/dist/components/Button/Button.d.ts +0 -85
- package/dist/components/Button/Button.d.ts.map +0 -1
- package/dist/components/Button/index.d.ts +0 -3
- package/dist/components/Button/index.d.ts.map +0 -1
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +0 -26
- package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +0 -1
- package/dist/components/ButtonGroup/index.d.ts +0 -3
- package/dist/components/ButtonGroup/index.d.ts.map +0 -1
- package/dist/components/Card/Card.d.ts +0 -20
- package/dist/components/Card/Card.d.ts.map +0 -1
- package/dist/components/Card/index.d.ts +0 -3
- package/dist/components/Card/index.d.ts.map +0 -1
- package/dist/components/Checkbox/Checkbox.d.ts +0 -18
- package/dist/components/Checkbox/Checkbox.d.ts.map +0 -1
- package/dist/components/Checkbox/index.d.ts +0 -3
- package/dist/components/Checkbox/index.d.ts.map +0 -1
- package/dist/components/Divider/Divider.d.ts +0 -9
- package/dist/components/Divider/Divider.d.ts.map +0 -1
- package/dist/components/Divider/index.d.ts +0 -3
- package/dist/components/Divider/index.d.ts.map +0 -1
- package/dist/components/EmptyState/EmptyState.d.ts +0 -9
- package/dist/components/EmptyState/EmptyState.d.ts.map +0 -1
- package/dist/components/EmptyState/index.d.ts +0 -3
- package/dist/components/EmptyState/index.d.ts.map +0 -1
- package/dist/components/ErrorBoundary/ErrorBoundary.d.ts +0 -18
- package/dist/components/ErrorBoundary/ErrorBoundary.d.ts.map +0 -1
- package/dist/components/ErrorBoundary/index.d.ts +0 -3
- package/dist/components/ErrorBoundary/index.d.ts.map +0 -1
- package/dist/components/Fade/Fade.d.ts +0 -11
- package/dist/components/Fade/Fade.d.ts.map +0 -1
- package/dist/components/Fade/index.d.ts +0 -3
- package/dist/components/Fade/index.d.ts.map +0 -1
- package/dist/components/Field/Field.d.ts +0 -9
- package/dist/components/Field/Field.d.ts.map +0 -1
- package/dist/components/Field/index.d.ts +0 -3
- package/dist/components/Field/index.d.ts.map +0 -1
- package/dist/components/Header/Header.d.ts +0 -12
- package/dist/components/Header/Header.d.ts.map +0 -1
- package/dist/components/Header/index.d.ts +0 -3
- package/dist/components/Header/index.d.ts.map +0 -1
- package/dist/components/Input/Input.d.ts +0 -27
- package/dist/components/Input/Input.d.ts.map +0 -1
- package/dist/components/Input/index.d.ts +0 -3
- package/dist/components/Input/index.d.ts.map +0 -1
- package/dist/components/LabelWrap/LabelWrap.d.ts +0 -27
- package/dist/components/LabelWrap/LabelWrap.d.ts.map +0 -1
- package/dist/components/LabelWrap/index.d.ts +0 -2
- package/dist/components/LabelWrap/index.d.ts.map +0 -1
- package/dist/components/Loader/Loader.d.ts +0 -33
- package/dist/components/Loader/Loader.d.ts.map +0 -1
- package/dist/components/Loader/index.d.ts +0 -3
- package/dist/components/Loader/index.d.ts.map +0 -1
- package/dist/components/Menu/DestructiveMenuItem.d.ts +0 -12
- package/dist/components/Menu/DestructiveMenuItem.d.ts.map +0 -1
- package/dist/components/Menu/Menu.d.ts +0 -55
- package/dist/components/Menu/Menu.d.ts.map +0 -1
- package/dist/components/Menu/MenuItem.d.ts +0 -33
- package/dist/components/Menu/MenuItem.d.ts.map +0 -1
- package/dist/components/Menu/index.d.ts +0 -7
- package/dist/components/Menu/index.d.ts.map +0 -1
- package/dist/components/Modal/Modal.d.ts +0 -15
- package/dist/components/Modal/Modal.d.ts.map +0 -1
- package/dist/components/Modal/index.d.ts +0 -3
- package/dist/components/Modal/index.d.ts.map +0 -1
- package/dist/components/Pagination/Pagination.d.ts +0 -16
- package/dist/components/Pagination/Pagination.d.ts.map +0 -1
- package/dist/components/Pagination/index.d.ts +0 -3
- package/dist/components/Pagination/index.d.ts.map +0 -1
- package/dist/components/Radio/Radio.d.ts +0 -35
- package/dist/components/Radio/Radio.d.ts.map +0 -1
- package/dist/components/Radio/index.d.ts +0 -3
- package/dist/components/Radio/index.d.ts.map +0 -1
- package/dist/components/Scrollbar/Scrollbar.d.ts +0 -13
- package/dist/components/Scrollbar/Scrollbar.d.ts.map +0 -1
- package/dist/components/Scrollbar/index.d.ts +0 -3
- package/dist/components/Scrollbar/index.d.ts.map +0 -1
- package/dist/components/Select/Select.d.ts +0 -22
- package/dist/components/Select/Select.d.ts.map +0 -1
- package/dist/components/Select/index.d.ts +0 -3
- package/dist/components/Select/index.d.ts.map +0 -1
- package/dist/components/Sidebar/Sidebar.d.ts +0 -15
- package/dist/components/Sidebar/Sidebar.d.ts.map +0 -1
- package/dist/components/Sidebar/SidebarItem.d.ts +0 -14
- package/dist/components/Sidebar/SidebarItem.d.ts.map +0 -1
- package/dist/components/Sidebar/SidebarSection.d.ts +0 -10
- package/dist/components/Sidebar/SidebarSection.d.ts.map +0 -1
- package/dist/components/Sidebar/index.d.ts +0 -7
- package/dist/components/Sidebar/index.d.ts.map +0 -1
- package/dist/components/Skeleton/Skeleton.d.ts +0 -17
- package/dist/components/Skeleton/Skeleton.d.ts.map +0 -1
- package/dist/components/Skeleton/index.d.ts +0 -3
- package/dist/components/Skeleton/index.d.ts.map +0 -1
- package/dist/components/Slider/Slider.d.ts +0 -16
- package/dist/components/Slider/Slider.d.ts.map +0 -1
- package/dist/components/Slider/index.d.ts +0 -3
- package/dist/components/Slider/index.d.ts.map +0 -1
- package/dist/components/Surface/Surface.d.ts +0 -59
- package/dist/components/Surface/Surface.d.ts.map +0 -1
- package/dist/components/Surface/index.d.ts +0 -3
- package/dist/components/Surface/index.d.ts.map +0 -1
- package/dist/components/Tab/Tab.d.ts +0 -21
- package/dist/components/Tab/Tab.d.ts.map +0 -1
- package/dist/components/Tab/index.d.ts +0 -3
- package/dist/components/Tab/index.d.ts.map +0 -1
- package/dist/components/TabGroup/TabGroup.d.ts +0 -26
- package/dist/components/TabGroup/TabGroup.d.ts.map +0 -1
- package/dist/components/TabGroup/index.d.ts +0 -3
- package/dist/components/TabGroup/index.d.ts.map +0 -1
- package/dist/components/Table/Table.d.ts +0 -46
- package/dist/components/Table/Table.d.ts.map +0 -1
- package/dist/components/Table/index.d.ts +0 -3
- package/dist/components/Table/index.d.ts.map +0 -1
- package/dist/components/Tag/Tag.d.ts +0 -38
- package/dist/components/Tag/Tag.d.ts.map +0 -1
- package/dist/components/Tag/index.d.ts +0 -3
- package/dist/components/Tag/index.d.ts.map +0 -1
- package/dist/components/Text/Text.d.ts +0 -41
- package/dist/components/Text/Text.d.ts.map +0 -1
- package/dist/components/Text/index.d.ts +0 -3
- package/dist/components/Text/index.d.ts.map +0 -1
- package/dist/components/Toast/Toast.d.ts +0 -33
- package/dist/components/Toast/Toast.d.ts.map +0 -1
- package/dist/components/Toast/index.d.ts +0 -3
- package/dist/components/Toast/index.d.ts.map +0 -1
- package/dist/components/Toggle/Toggle.d.ts +0 -17
- package/dist/components/Toggle/Toggle.d.ts.map +0 -1
- package/dist/components/Toggle/index.d.ts +0 -3
- package/dist/components/Toggle/index.d.ts.map +0 -1
- package/dist/components/ToggleButton/ToggleButton.d.ts +0 -35
- package/dist/components/ToggleButton/ToggleButton.d.ts.map +0 -1
- package/dist/components/ToggleButton/index.d.ts +0 -3
- package/dist/components/ToggleButton/index.d.ts.map +0 -1
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.d.ts +0 -24
- package/dist/components/ToggleButtonGroup/ToggleButtonGroup.d.ts.map +0 -1
- package/dist/components/ToggleButtonGroup/index.d.ts +0 -3
- package/dist/components/ToggleButtonGroup/index.d.ts.map +0 -1
- package/dist/components/Tooltip/Tooltip.d.ts +0 -17
- package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
- package/dist/components/Tooltip/index.d.ts +0 -3
- package/dist/components/Tooltip/index.d.ts.map +0 -1
- package/dist/index.css +0 -2
- package/dist/index.d.ts +0 -82
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2968
- package/dist/index.js.map +0 -1
- package/dist/r/accordion.json +0 -79
- package/dist/r/badge.json +0 -69
- package/dist/r/banner.json +0 -90
- package/dist/r/breadcrumb.json +0 -70
- package/dist/r/button-group.json +0 -65
- package/dist/r/button.json +0 -137
- package/dist/r/card.json +0 -82
- package/dist/r/checkbox.json +0 -91
- package/dist/r/divider.json +0 -57
- package/dist/r/empty-state.json +0 -69
- package/dist/r/error-boundary.json +0 -66
- package/dist/r/fade.json +0 -65
- package/dist/r/field.json +0 -71
- package/dist/r/header.json +0 -67
- package/dist/r/input.json +0 -77
- package/dist/r/loader.json +0 -54
- package/dist/r/menu.json +0 -130
- package/dist/r/modal.json +0 -93
- package/dist/r/pagination.json +0 -80
- package/dist/r/radio.json +0 -85
- package/dist/r/registry.json +0 -1600
- package/dist/r/scrollbar.json +0 -68
- package/dist/r/select.json +0 -93
- package/dist/r/sidebar.json +0 -105
- package/dist/r/skeleton.json +0 -72
- package/dist/r/slider.json +0 -87
- package/dist/r/surface.json +0 -97
- package/dist/r/tab-group.json +0 -72
- package/dist/r/tab.json +0 -71
- package/dist/r/table.json +0 -110
- package/dist/r/tag.json +0 -110
- package/dist/r/text.json +0 -94
- package/dist/r/toast.json +0 -77
- package/dist/r/toggle-button-group.json +0 -65
- package/dist/r/toggle-button.json +0 -94
- package/dist/r/toggle.json +0 -65
- package/dist/r/tooltip.json +0 -86
- package/dist/types/icons.d.ts +0 -14
- package/dist/types/icons.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -2
- package/dist/types/index.d.ts.map +0 -1
- package/dist/utils/cn.d.ts +0 -5
- package/dist/utils/cn.d.ts.map +0 -1
- package/dist/utils/css-tokens.d.ts +0 -11
- package/dist/utils/css-tokens.d.ts.map +0 -1
- package/src/components/Accordion/Accordion.module.css +0 -66
- package/src/components/Accordion/Accordion.stories.tsx +0 -95
- package/src/components/Accordion/Accordion.tsx +0 -131
- package/src/components/Accordion/index.ts +0 -2
- package/src/components/Badge/Badge.module.css +0 -6
- package/src/components/Badge/Badge.stories.tsx +0 -131
- package/src/components/Badge/Badge.tsx +0 -40
- package/src/components/Badge/index.ts +0 -2
- package/src/components/Banner/Banner.module.css +0 -105
- package/src/components/Banner/Banner.stories.tsx +0 -81
- package/src/components/Banner/Banner.tsx +0 -139
- package/src/components/Banner/index.ts +0 -2
- package/src/components/Breadcrumb/Breadcrumb.module.css +0 -46
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +0 -72
- package/src/components/Breadcrumb/Breadcrumb.tsx +0 -68
- package/src/components/Breadcrumb/index.ts +0 -2
- package/src/components/Button/Button.mdx +0 -143
- package/src/components/Button/Button.module.css +0 -343
- package/src/components/Button/Button.stories.tsx +0 -575
- package/src/components/Button/Button.tsx +0 -232
- package/src/components/Button/index.ts +0 -10
- package/src/components/ButtonGroup/ButtonGroup.module.css +0 -157
- package/src/components/ButtonGroup/ButtonGroup.stories.tsx +0 -384
- package/src/components/ButtonGroup/ButtonGroup.tsx +0 -122
- package/src/components/ButtonGroup/index.ts +0 -2
- package/src/components/Card/Card.module.css +0 -36
- package/src/components/Card/Card.stories.tsx +0 -78
- package/src/components/Card/Card.tsx +0 -53
- package/src/components/Card/index.ts +0 -2
- package/src/components/Checkbox/Checkbox.module.css +0 -47
- package/src/components/Checkbox/Checkbox.stories.tsx +0 -129
- package/src/components/Checkbox/Checkbox.tsx +0 -71
- package/src/components/Checkbox/index.ts +0 -2
- package/src/components/Divider/Divider.module.css +0 -19
- package/src/components/Divider/Divider.stories.tsx +0 -55
- package/src/components/Divider/Divider.tsx +0 -28
- package/src/components/Divider/index.ts +0 -2
- package/src/components/EmptyState/EmptyState.module.css +0 -8
- package/src/components/EmptyState/EmptyState.stories.tsx +0 -53
- package/src/components/EmptyState/EmptyState.tsx +0 -31
- package/src/components/EmptyState/index.ts +0 -2
- package/src/components/ErrorBoundary/ErrorBoundary.module.css +0 -18
- package/src/components/ErrorBoundary/ErrorBoundary.stories.tsx +0 -38
- package/src/components/ErrorBoundary/ErrorBoundary.tsx +0 -50
- package/src/components/ErrorBoundary/index.ts +0 -2
- package/src/components/Fade/Fade.module.css +0 -31
- package/src/components/Fade/Fade.stories.tsx +0 -35
- package/src/components/Fade/Fade.tsx +0 -33
- package/src/components/Fade/index.ts +0 -2
- package/src/components/Field/Field.module.css +0 -5
- package/src/components/Field/Field.stories.tsx +0 -111
- package/src/components/Field/Field.tsx +0 -35
- package/src/components/Field/index.ts +0 -2
- package/src/components/Header/Header.module.css +0 -33
- package/src/components/Header/Header.stories.tsx +0 -52
- package/src/components/Header/Header.tsx +0 -42
- package/src/components/Header/index.ts +0 -2
- package/src/components/Input/Input.module.css +0 -92
- package/src/components/Input/Input.stories.tsx +0 -135
- package/src/components/Input/Input.tsx +0 -117
- package/src/components/Input/index.ts +0 -2
- package/src/components/LabelWrap/LabelWrap.module.css +0 -34
- package/src/components/LabelWrap/LabelWrap.tsx +0 -32
- package/src/components/LabelWrap/index.ts +0 -1
- package/src/components/Loader/Loader.module.css +0 -26
- package/src/components/Loader/Loader.stories.tsx +0 -53
- package/src/components/Loader/Loader.tsx +0 -65
- package/src/components/Loader/index.ts +0 -2
- package/src/components/Menu/DestructiveMenuItem.module.css +0 -57
- package/src/components/Menu/DestructiveMenuItem.tsx +0 -117
- package/src/components/Menu/Menu.module.css +0 -49
- package/src/components/Menu/Menu.stories.tsx +0 -129
- package/src/components/Menu/Menu.tsx +0 -418
- package/src/components/Menu/MenuItem.module.css +0 -86
- package/src/components/Menu/MenuItem.tsx +0 -144
- package/src/components/Menu/index.ts +0 -6
- package/src/components/Modal/Modal.module.css +0 -67
- package/src/components/Modal/Modal.stories.tsx +0 -71
- package/src/components/Modal/Modal.tsx +0 -199
- package/src/components/Modal/index.ts +0 -2
- package/src/components/Pagination/Pagination.module.css +0 -64
- package/src/components/Pagination/Pagination.stories.tsx +0 -51
- package/src/components/Pagination/Pagination.tsx +0 -103
- package/src/components/Pagination/index.ts +0 -2
- package/src/components/Radio/Radio.module.css +0 -61
- package/src/components/Radio/Radio.stories.tsx +0 -101
- package/src/components/Radio/Radio.tsx +0 -196
- package/src/components/Radio/index.ts +0 -2
- package/src/components/Scrollbar/Scrollbar.module.css +0 -86
- package/src/components/Scrollbar/Scrollbar.stories.tsx +0 -46
- package/src/components/Scrollbar/Scrollbar.tsx +0 -201
- package/src/components/Scrollbar/index.ts +0 -2
- package/src/components/Select/Select.module.css +0 -31
- package/src/components/Select/Select.stories.tsx +0 -59
- package/src/components/Select/Select.tsx +0 -222
- package/src/components/Select/index.ts +0 -2
- package/src/components/Sidebar/Sidebar.module.css +0 -168
- package/src/components/Sidebar/Sidebar.stories.tsx +0 -125
- package/src/components/Sidebar/Sidebar.tsx +0 -227
- package/src/components/Sidebar/SidebarItem.tsx +0 -57
- package/src/components/Sidebar/SidebarSection.tsx +0 -42
- package/src/components/Sidebar/index.ts +0 -6
- package/src/components/Skeleton/Skeleton.module.css +0 -53
- package/src/components/Skeleton/Skeleton.stories.tsx +0 -89
- package/src/components/Skeleton/Skeleton.tsx +0 -66
- package/src/components/Skeleton/index.ts +0 -2
- package/src/components/Slider/Slider.module.css +0 -66
- package/src/components/Slider/Slider.stories.tsx +0 -145
- package/src/components/Slider/Slider.tsx +0 -74
- package/src/components/Slider/index.ts +0 -2
- package/src/components/Surface/Surface.module.css +0 -222
- package/src/components/Surface/Surface.stories.tsx +0 -213
- package/src/components/Surface/Surface.tsx +0 -219
- package/src/components/Surface/index.ts +0 -12
- package/src/components/Tab/Tab.module.css +0 -66
- package/src/components/Tab/Tab.stories.tsx +0 -103
- package/src/components/Tab/Tab.tsx +0 -71
- package/src/components/Tab/index.ts +0 -2
- package/src/components/TabGroup/TabGroup.module.css +0 -26
- package/src/components/TabGroup/TabGroup.stories.tsx +0 -91
- package/src/components/TabGroup/TabGroup.tsx +0 -150
- package/src/components/TabGroup/index.ts +0 -2
- package/src/components/Table/Table.module.css +0 -140
- package/src/components/Table/Table.stories.tsx +0 -111
- package/src/components/Table/Table.tsx +0 -255
- package/src/components/Table/index.ts +0 -11
- package/src/components/Tag/Tag.module.css +0 -270
- package/src/components/Tag/Tag.stories.tsx +0 -399
- package/src/components/Tag/Tag.tsx +0 -165
- package/src/components/Tag/index.ts +0 -2
- package/src/components/Text/Text.module.css +0 -166
- package/src/components/Text/Text.stories.tsx +0 -212
- package/src/components/Text/Text.tsx +0 -181
- package/src/components/Text/index.ts +0 -13
- package/src/components/Toast/Toast.module.css +0 -91
- package/src/components/Toast/Toast.stories.tsx +0 -66
- package/src/components/Toast/Toast.tsx +0 -218
- package/src/components/Toast/index.ts +0 -8
- package/src/components/Toggle/Toggle.module.css +0 -87
- package/src/components/Toggle/Toggle.stories.tsx +0 -85
- package/src/components/Toggle/Toggle.tsx +0 -53
- package/src/components/Toggle/index.ts +0 -2
- package/src/components/ToggleButton/ToggleButton.module.css +0 -172
- package/src/components/ToggleButton/ToggleButton.stories.tsx +0 -299
- package/src/components/ToggleButton/ToggleButton.tsx +0 -118
- package/src/components/ToggleButton/index.ts +0 -2
- package/src/components/ToggleButtonGroup/ToggleButtonGroup.module.css +0 -163
- package/src/components/ToggleButtonGroup/ToggleButtonGroup.stories.tsx +0 -341
- package/src/components/ToggleButtonGroup/ToggleButtonGroup.tsx +0 -111
- package/src/components/ToggleButtonGroup/index.ts +0 -2
- package/src/components/Tooltip/Tooltip.module.css +0 -45
- package/src/components/Tooltip/Tooltip.stories.tsx +0 -46
- package/src/components/Tooltip/Tooltip.tsx +0 -260
- package/src/components/Tooltip/index.ts +0 -2
- package/src/css-modules.d.ts +0 -4
- package/src/docs/ColorUsage.mdx +0 -195
- package/src/docs/ElevationUsage.mdx +0 -95
- package/src/docs/Introduction.mdx +0 -97
- package/src/docs/OpticalSizing.mdx +0 -178
- package/src/docs/TypographyUsage.mdx +0 -121
- package/src/index.ts +0 -154
- package/src/stories/Colors.stories.tsx +0 -528
- package/src/stories/Dimensions.stories.tsx +0 -200
- package/src/stories/Effects.stories.tsx +0 -231
- package/src/stories/Icons.stories.tsx +0 -159
- package/src/stories/Typography.stories.tsx +0 -157
- package/src/types/icons.ts +0 -15
- package/src/types/index.ts +0 -1
- package/src/utils/cn.ts +0 -6
- package/src/utils/css-tokens.ts +0 -22
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
|
-
|
|
3
|
-
<Meta title="Docs/Elevation Usage" />
|
|
4
|
-
|
|
5
|
-
# Elevation Usage Guidelines
|
|
6
|
-
|
|
7
|
-
## 1. Quick Decision Rule
|
|
8
|
-
|
|
9
|
-
Use this rule first:
|
|
10
|
-
|
|
11
|
-
1. if the surface touches most of its container edges, use a **panel** elevation,
|
|
12
|
-
2. if the surface has breathing room on all four sides, use `flat` or `elevated`,
|
|
13
|
-
3. if the surface has breathing room and is meant to visually float above other content, use `floating`,
|
|
14
|
-
4. if the surface should feel inset or embedded, use `depressed`,
|
|
15
|
-
5. if elevation is intentionally turned off, use `none`.
|
|
16
|
-
|
|
17
|
-
In practice, panel elevations are for surfaces that touch at least three sides of the container they live in, or otherwise read as edge-attached.
|
|
18
|
-
|
|
19
|
-
## 2. Panel Elevations
|
|
20
|
-
|
|
21
|
-
Panel elevations are for surfaces that are attached to the boundary of the area they sit inside.
|
|
22
|
-
|
|
23
|
-
These styles are directional. The panel direction should match the side of the container that the panel is attached to.
|
|
24
|
-
|
|
25
|
-
This makes them the right choice for:
|
|
26
|
-
|
|
27
|
-
- app headers
|
|
28
|
-
- bottom bars
|
|
29
|
-
- left and right drawers
|
|
30
|
-
- edge-attached trays or panels
|
|
31
|
-
|
|
32
|
-
| Surface | Elevation |
|
|
33
|
-
|---------|-----------|
|
|
34
|
-
| Top header or app bar | <code>elevation-panel-top</code> |
|
|
35
|
-
| Bottom bar or footer | <code>elevation-panel-bottom</code> |
|
|
36
|
-
| Left-side drawer | <code>elevation-panel-left</code> |
|
|
37
|
-
| Right-side drawer | <code>elevation-panel-right</code> |
|
|
38
|
-
|
|
39
|
-
> **Do not** use panel elevations on floating cards or standalone containers. They are intentionally asymmetric and will look wrong when the surface has clearance on every side.
|
|
40
|
-
|
|
41
|
-
## 3. Non-Panel Elevations
|
|
42
|
-
|
|
43
|
-
`flat`, `elevated`, and `floating` are for surfaces that do not touch surrounding boundaries on any of their four sides.
|
|
44
|
-
|
|
45
|
-
| Level | Purpose | Use for |
|
|
46
|
-
|-------|---------|---------|
|
|
47
|
-
| <code>flat</code> | Lightest raised treatment | Cards, containers with subtle lift |
|
|
48
|
-
| <code>elevated</code> | Standard raised treatment | Cards, free-standing containers |
|
|
49
|
-
| <code>floating</code> | Visually floating above content | FABs, popups, dropdown menus, modals |
|
|
50
|
-
|
|
51
|
-
> **Do not** use `floating` just because an element needs more lift than `elevated`. If the surface is not actually meant to float above other content, `flat` or `elevated` is usually the better choice.
|
|
52
|
-
|
|
53
|
-
## 4. Depressed Elevation
|
|
54
|
-
|
|
55
|
-
`depressed` is for elements that should appear embedded within a surrounding surface rather than raised above it.
|
|
56
|
-
|
|
57
|
-
Typical use cases:
|
|
58
|
-
|
|
59
|
-
- text inputs
|
|
60
|
-
- embedded fields
|
|
61
|
-
- inset control regions
|
|
62
|
-
- surfaces that read as carved into their parent
|
|
63
|
-
|
|
64
|
-
Like non-panel elevations, `depressed` should only be used when the element has visible clearance on all four sides.
|
|
65
|
-
|
|
66
|
-
## 5. None
|
|
67
|
-
|
|
68
|
-
`none` is for cases where elevation is part of the component model but the visual result should be no elevation treatment.
|
|
69
|
-
|
|
70
|
-
Use it when:
|
|
71
|
-
|
|
72
|
-
- a component supports elevation variants but should currently render flat,
|
|
73
|
-
- you want to explicitly choose no elevation instead of leaving it undefined,
|
|
74
|
-
- you need a zero-elevation option that fits into the same naming system.
|
|
75
|
-
|
|
76
|
-
## 6. Anti-Patterns
|
|
77
|
-
|
|
78
|
-
Avoid these patterns:
|
|
79
|
-
|
|
80
|
-
1. using a panel elevation on a card that has open space on all four sides,
|
|
81
|
-
2. using `flat`, `elevated`, `floating`, or `depressed` on a surface attached to a container edge,
|
|
82
|
-
3. choosing a panel direction that does not match the aligned edge,
|
|
83
|
-
4. using `depressed` for elements meant to read as raised,
|
|
84
|
-
5. using `floating` on a normal card that isn't hovering above content,
|
|
85
|
-
6. leaving elevation unspecified when the component API expects a named elevation style.
|
|
86
|
-
|
|
87
|
-
## 7. Practical Summary
|
|
88
|
-
|
|
89
|
-
| Situation | Use |
|
|
90
|
-
|-----------|-----|
|
|
91
|
-
| Surface attached to container boundary | Panel elevation (matching direction) |
|
|
92
|
-
| Surface with clearance on all sides, standard lift | <code>flat</code> or <code>elevated</code> |
|
|
93
|
-
| Surface visually hovering above other content | <code>floating</code> |
|
|
94
|
-
| Surface embedded/inset into parent | <code>depressed</code> |
|
|
95
|
-
| Elevation slot present but no visual lift needed | <code>none</code> |
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
|
-
|
|
3
|
-
<Meta title="Docs/Introduction" />
|
|
4
|
-
|
|
5
|
-
# CompoMo — `@compomo/ui`
|
|
6
|
-
|
|
7
|
-
Composable React UI components styled with [TokoMo](https://github.com/zainadeel/TokoMo) design tokens.
|
|
8
|
-
|
|
9
|
-
## Install
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install @compomo/ui @ds-mo/tokens
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
**Required peer dependency:** `@ds-mo/tokens` provides all CSS custom properties (colors, dimensions, typography, effects) that CompoMo components consume. Components will not render correctly without it.
|
|
16
|
-
|
|
17
|
-
**Optional:** `@ds-mo/icons` for icon components used via the `icon` prop pattern.
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
npm install @ds-mo/icons
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Setup
|
|
24
|
-
|
|
25
|
-
Import TokoMo tokens globally (once, at your app root):
|
|
26
|
-
|
|
27
|
-
```tsx
|
|
28
|
-
import '@ds-mo/tokens'; // all tokens (colors, dimensions, typography, effects)
|
|
29
|
-
import '@ds-mo/tokens/reset'; // CSS reset
|
|
30
|
-
import '@ds-mo/tokens/globals'; // global styles
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Then import CompoMo components:
|
|
34
|
-
|
|
35
|
-
```tsx
|
|
36
|
-
import { Button, Text, Surface, Card } from '@compomo/ui';
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Components
|
|
40
|
-
|
|
41
|
-
### Primitives
|
|
42
|
-
- **Text** — typography with variant system, semantic colors, truncation, wrap modes
|
|
43
|
-
- **Surface** — container with backgrounds, elevation, edges, radius, interactive states
|
|
44
|
-
- **Card** — elevated content container with header/footer slots
|
|
45
|
-
- **Input** — text input field
|
|
46
|
-
- **Slider** — range slider
|
|
47
|
-
- **Field** — label + input wrapper
|
|
48
|
-
|
|
49
|
-
### Components
|
|
50
|
-
- **Button** — primary/secondary/tertiary with intents, sizes, icon support
|
|
51
|
-
- **Tag** — labels with intents, contrasts, removable
|
|
52
|
-
- **Badge** — numeric count indicator
|
|
53
|
-
- **Toggle** — on/off switch
|
|
54
|
-
- **Checkbox** — with label and indeterminate state
|
|
55
|
-
- **Modal** — dialog with title, subtitle, footer slots
|
|
56
|
-
- **Menu** — dropdown with sections, selection, positioning
|
|
57
|
-
- **Tooltip** — hover tooltip with shortcut key support
|
|
58
|
-
- **Select** — dropdown select
|
|
59
|
-
- **Banner** — notification bar with intents, toast mode
|
|
60
|
-
- **Tab** — tab button with selection state
|
|
61
|
-
- **Table** — sortable, paginated data table
|
|
62
|
-
- **EmptyState** — placeholder states
|
|
63
|
-
|
|
64
|
-
### Layout
|
|
65
|
-
- **Header** — page header with left/center/right slots
|
|
66
|
-
- **Sidebar** — collapsible, resizable navigation with sections and items
|
|
67
|
-
|
|
68
|
-
### Utility
|
|
69
|
-
- **Fade** — gradient overlay
|
|
70
|
-
- **Scrollbar** — custom scrollbar
|
|
71
|
-
- **ErrorBoundary** — error catch with fallback
|
|
72
|
-
|
|
73
|
-
## Token dependency
|
|
74
|
-
|
|
75
|
-
All styling uses TokoMo CSS custom properties. No hardcoded colors, sizes, or shadows — everything maps to the token system. Components will render unstyled if `@ds-mo/tokens` is not imported.
|
|
76
|
-
|
|
77
|
-
## Icon pattern
|
|
78
|
-
|
|
79
|
-
Components that accept icons use the typed prop pattern:
|
|
80
|
-
|
|
81
|
-
```tsx
|
|
82
|
-
icon?: React.ComponentType<{ size?: number | string }>
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
Pass any component that accepts a `size` prop. Works with `@ds-mo/icons` or custom SVG components.
|
|
86
|
-
|
|
87
|
-
## Architecture
|
|
88
|
-
|
|
89
|
-
```
|
|
90
|
-
TokoMo (@ds-mo/tokens) <- CSS variables, JSON, TypeScript constants; source is Figma
|
|
91
|
-
|
|
|
92
|
-
IcoMo (@ds-mo/icons) <- 380+ React icon components; source SVGs are Figma exports
|
|
93
|
-
|
|
|
94
|
-
CompoMo (@compomo/ui) <- This library; consumes tokens + icons
|
|
95
|
-
|
|
|
96
|
-
Apps (Webapp, Dashboard)
|
|
97
|
-
```
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
|
-
|
|
3
|
-
<Meta title="Docs/Optical Sizing & Padding" />
|
|
4
|
-
|
|
5
|
-
# Optical Sizing & Padding — Design Reference
|
|
6
|
-
|
|
7
|
-
A collection of the specific sizing rules, corrections, and reasoning behind them.
|
|
8
|
-
Intended as a reference when building new components so these patterns stay consistent.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## 1. Icon-edge padding correction
|
|
13
|
-
|
|
14
|
-
**The rule:** when an icon sits flush against a component's edge, the padding on that side should equal `(componentHeight - iconSize) / 2` — the same gap the icon already has top and bottom.
|
|
15
|
-
|
|
16
|
-
**Why:** without this, the horizontal padding (a design-system token chosen for text) is too generous for an icon. Text has no visible bounding box so extra padding reads as breathing room. An icon has a hard visual edge, so the same padding creates an unequal-looking gap — more air on the left/right than on the top/bottom of the icon.
|
|
17
|
-
|
|
18
|
-
**The formula:**
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
edge padding = (height - iconSize) / 2
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
**Button / ToggleButton (iconAndLabel layout — icon on left):**
|
|
25
|
-
|
|
26
|
-
| Size | Height | Icon | Optical gap | Left padding (icon side) | Right padding (label side) |
|
|
27
|
-
|------|--------|------|-------------|--------------------------|----------------------------|
|
|
28
|
-
| XS | 16px | 12px | 2px | <code>space-025</code> = 2px | <code>space-025</code> = 2px |
|
|
29
|
-
| SM | 24px | 16px | 4px | <code>space-050</code> = 4px | <code>space-075</code> = 6px |
|
|
30
|
-
| MD | 32px | 20px | 6px | <code>space-075</code> = 6px | <code>space-100</code> = 8px |
|
|
31
|
-
| LG | 40px | 24px | 8px | <code>space-100</code> = 8px | <code>space-150</code> = 12px |
|
|
32
|
-
|
|
33
|
-
Note the asymmetry: the label side keeps its normal token value; only the icon side is corrected. XS happens to already be correct since the base token matches the gap.
|
|
34
|
-
|
|
35
|
-
**Tag (iconLeft / iconRight — leading icon or remove button):**
|
|
36
|
-
|
|
37
|
-
| Size | Height | Icon | Optical gap | CSS class |
|
|
38
|
-
|------|--------|------|-------------|-----------|
|
|
39
|
-
| XS | 12px | 12px | 0px | <code>iconLeftXS</code> / <code>iconRightXS</code> = <code>0</code> |
|
|
40
|
-
| SM | 20px | 16px | 2px | <code>iconLeftSM</code> / <code>iconRightSM</code> = <code>space-025</code> |
|
|
41
|
-
| MD | 28px | 20px | 4px | <code>iconLeftMD</code> / <code>iconRightMD</code> = <code>space-050</code> |
|
|
42
|
-
|
|
43
|
-
For Tag, both the leading icon side (left) and the remove-button side (right) are corrected independently. The classes are applied conditionally in TSX based on whether an icon or remove button is present.
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## 2. LabelWrap inner padding
|
|
48
|
-
|
|
49
|
-
**The rule:** text inside a component needs its own small horizontal padding, independent of the component's outer padding. This is the LabelWrap utility component.
|
|
50
|
-
|
|
51
|
-
**Why:** without it, the component's fixed height is inflated by the body line-height: 1.5 strut — a phantom spacing artifact from inherited typography. LabelWrap sets line-height: 0 to kill the strut, then adds back a small horizontal padding that optically offsets the text from adjacent icons or component edges.
|
|
52
|
-
|
|
53
|
-
**Values:**
|
|
54
|
-
|
|
55
|
-
| Size | Padding | Reasoning |
|
|
56
|
-
|------|---------|-----------|
|
|
57
|
-
| MD / LG | <code>space-050</code> = 4px | Standard body scale |
|
|
58
|
-
| SM | <code>space-025</code> = 2px | Halved — tighter scale, less air needed |
|
|
59
|
-
| XS (caption) | <code>space-025</code> = 2px | Caption scale, same as SM |
|
|
60
|
-
|
|
61
|
-
SM was deliberately halved because at the smaller body scale the extra 4px reads as disproportionate. XS was already at 2px so SM was brought in line with it.
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
## 3. Rounded (pill) padding correction
|
|
66
|
-
|
|
67
|
-
**The rule:** pill-shaped components add <code>space-050</code> (4px) extra padding on any side that has no content anchor (bare label text at the edge, no icon).
|
|
68
|
-
|
|
69
|
-
**Why:** a pill's large corner radius curves far into the edge, eating into the visual breathing room around the text. The extra <code>space-050</code> compensates so the text doesn't feel cramped against the rounded edge. Sides that already have an icon do not get the correction — the icon acts as a visual anchor and the tighter icon-edge padding (rule 1) already applies.
|
|
70
|
-
|
|
71
|
-
**Button / ToggleButton (rounded):**
|
|
72
|
-
|
|
73
|
-
Added to *both* sides for labelOnly. Added only to the *label/right side* for iconAndLabel (the icon side keeps the corrected icon-edge padding from rule 1):
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
labelOnly: padding = base + space-050 (both sides)
|
|
77
|
-
iconAndLabel: left = icon-edge padding + space-050
|
|
78
|
-
right = base + space-050
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**Tag (rounded — pill padding correction classes):**
|
|
82
|
-
|
|
83
|
-
Applied conditionally in TSX:
|
|
84
|
-
|
|
85
|
-
| Condition | Class applied |
|
|
86
|
-
|-----------|---------------|
|
|
87
|
-
| No leading icon | <code>roundedLeft{Size}</code> |
|
|
88
|
-
| No trailing remove | <code>roundedRight{Size}</code> |
|
|
89
|
-
|
|
90
|
-
When both an icon and a remove button are present, neither correction applies. When neither is present (label only), both apply.
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## 4. Remove / dismiss button hover area
|
|
95
|
-
|
|
96
|
-
**The rule:** the hover highlight on a small dismiss button (x) should maintain the same optical gap to the component edge as the icon has to the component top/bottom — and the hover highlight's border-radius should be tuned per-size so it doesn't visually eat into that gap.
|
|
97
|
-
|
|
98
|
-
**Structure:** a ::before pseudo-element on the remove button carries the hover background, sized via inset (negative margin on all sides). The button itself has padding: 0.
|
|
99
|
-
|
|
100
|
-
**Values (Tag remove button):**
|
|
101
|
-
|
|
102
|
-
| Tag size | Icon size | Tag height | Optical gap | <code>inset</code> | Hover area | <code>::before</code> radius |
|
|
103
|
-
|----------|-----------|------------|-------------|---------|------------|-------------------|
|
|
104
|
-
| MD | 20px | 28px | 4px | <code>-2px</code> | 24x24px | <code>radius-025</code> = 2px |
|
|
105
|
-
| SM | 16px | 20px | 2px | <code>-1px</code> | 18x18px | <code>3px</code> |
|
|
106
|
-
| XS | 12px | 12px | 0px | <code>0</code> | 12x12px | <code>radius-050</code> = 4px |
|
|
107
|
-
|
|
108
|
-
**Radius choices:**
|
|
109
|
-
|
|
110
|
-
- MD: 2px — small enough to not visually arc into the 2px gap between the hover area and the tag edge.
|
|
111
|
-
- SM: 3px — 1px gap, proportionally softer corner.
|
|
112
|
-
- XS: 4px (matches the tag's own corner radius) — flush to the tag edge, creating a nested rounded rectangle effect.
|
|
113
|
-
- Rounded tags: border-radius: 50% on ::before for all sizes — fully circular hover, matching the pill tag language.
|
|
114
|
-
|
|
115
|
-
**Why not simply use padding on the button?** The inset approach keeps the button's layout footprint at exactly the icon size, so the tag's own padding tokens (rule 1) drive the spacing without needing to account for extra button padding.
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## 5. Alpha dividers in component groups
|
|
120
|
-
|
|
121
|
-
**The rule:** dividers between grouped components (ButtonGroup, ToggleButtonGroup) must use an alpha color token and must be physically positioned to overlap adjacent button fills — not sit in the gap between them.
|
|
122
|
-
|
|
123
|
-
**Why the token alone isn't enough:** <code>color-border-tertiary</code> = rgb(0 0 0 / 0.1) (10% black in light mode, 10% white in dark mode). This is the right token — it's designed to blend over any surface. But a 1px flex child sitting *between* two buttons composites against the group/page background, not against the button fills. When buttons have a colored pressed state (e.g. bg-faint-brand, blue) the divider still shows as 10% black over white — a gray line that breaks the blue.
|
|
124
|
-
|
|
125
|
-
**The fix:**
|
|
126
|
-
|
|
127
|
-
```css
|
|
128
|
-
.divider {
|
|
129
|
-
position: relative;
|
|
130
|
-
z-index: 1;
|
|
131
|
-
margin: 0 -0.5px;
|
|
132
|
-
pointer-events: none;
|
|
133
|
-
}
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
margin: 0 -0.5px makes the divider overlap 0.5px of each adjacent button. z-index: 1 (works because flex children with position: relative participate in stacking) causes it to paint on top of the button fills. Now rgb(0 0 0 / 0.1) composites over the actual button background — a whisper of darker blue over a pressed blue button, barely-visible gray over a white button.
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## 6. Divider independence from button state
|
|
141
|
-
|
|
142
|
-
**The rule:** dividers in groups must be separate DOM elements, not borders or box-shadows on the buttons.
|
|
143
|
-
|
|
144
|
-
**Why:** opacity: 0.5 on an inactive button would also fade a border-left or box-shadow that forms the divider. This creates visual asymmetry — the inactive button's left divider fades while its right divider (owned by the next button) stays opaque. The divider appears broken on one side.
|
|
145
|
-
|
|
146
|
-
As a separate div the divider is outside any button's stacking context and unaffected by adjacent button opacity, transform, or any other state.
|
|
147
|
-
|
|
148
|
-
**Ghost (elevation: none) dividers:** short centred lines at icon height, additionally hidden when an adjacent button is hovered or pressed (ghost interaction is chip-based, not full-height, so dividers adjacent to active chips should disappear):
|
|
149
|
-
|
|
150
|
-
```css
|
|
151
|
-
.item:hover + .dividerGhost,
|
|
152
|
-
.dividerGhost:has(+ .item:hover) { opacity: 0; }
|
|
153
|
-
.itemPressed + .dividerGhost,
|
|
154
|
-
.dividerGhost:has(+ .itemPressed) { opacity: 0; }
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
Full-height dividers (elevated / flat / floating) do not hide on hover or press — they are part of the component's chrome and remain visible.
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## Quick reference — token ladder
|
|
162
|
-
|
|
163
|
-
For convenience, the spacing tokens used across these rules:
|
|
164
|
-
|
|
165
|
-
| Token | Value |
|
|
166
|
-
|-------|-------|
|
|
167
|
-
| <code>space-012</code> | 1px |
|
|
168
|
-
| <code>space-025</code> | 2px |
|
|
169
|
-
| <code>space-050</code> | 4px |
|
|
170
|
-
| <code>space-075</code> | 6px |
|
|
171
|
-
| <code>space-100</code> | 8px |
|
|
172
|
-
| <code>space-150</code> | 12px |
|
|
173
|
-
|
|
174
|
-
| Token | Value |
|
|
175
|
-
|-------|-------|
|
|
176
|
-
| <code>radius-025</code> | 2px |
|
|
177
|
-
| <code>radius-050</code> | 4px |
|
|
178
|
-
| <code>radius-half</code> | 50% |
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
|
-
|
|
3
|
-
<Meta title="Docs/Typography Usage" />
|
|
4
|
-
|
|
5
|
-
# Typography Usage Guidelines
|
|
6
|
-
|
|
7
|
-
## 1. Quick Decision Rule
|
|
8
|
-
|
|
9
|
-
Use this rule first:
|
|
10
|
-
|
|
11
|
-
1. start with `body-medium` for normal product copy,
|
|
12
|
-
2. use `body-small` when the text is supporting or slightly subdued,
|
|
13
|
-
3. use `body-large` when you need a little more hierarchy than normal body copy,
|
|
14
|
-
4. use `title-*` styles for actual titles and section headers,
|
|
15
|
-
5. use `display-*` styles only for rare, oversized emphasis such as large numeric values.
|
|
16
|
-
|
|
17
|
-
**If you are unsure, start with `body-medium`.**
|
|
18
|
-
|
|
19
|
-
## 2. Body Styles
|
|
20
|
-
|
|
21
|
-
### body-medium (default)
|
|
22
|
-
|
|
23
|
-
The default text style for most product copy:
|
|
24
|
-
|
|
25
|
-
- paragraph text
|
|
26
|
-
- standard labels
|
|
27
|
-
- most explanatory copy
|
|
28
|
-
- the majority of text content in the product
|
|
29
|
-
|
|
30
|
-
### body-small
|
|
31
|
-
|
|
32
|
-
For supporting text that should feel slightly more subdued:
|
|
33
|
-
|
|
34
|
-
- helper text
|
|
35
|
-
- secondary metadata
|
|
36
|
-
- supporting subtext below primary copy
|
|
37
|
-
|
|
38
|
-
### body-large
|
|
39
|
-
|
|
40
|
-
For text that should sit above normal body copy without becoming a true title:
|
|
41
|
-
|
|
42
|
-
- emphasized labels
|
|
43
|
-
- short introductory lines
|
|
44
|
-
- lightweight card or section headings when a full title style would feel too strong
|
|
45
|
-
|
|
46
|
-
> **Note:** Text hierarchy and color hierarchy should work together. De-emphasis usually comes from a combination of text role and foreground role rather than from color alone.
|
|
47
|
-
|
|
48
|
-
## 3. Emphasis Styles
|
|
49
|
-
|
|
50
|
-
Emphasis variants add more weight without changing the size tier. They are useful when:
|
|
51
|
-
|
|
52
|
-
1. emphasizing a term inside a paragraph,
|
|
53
|
-
2. giving one label more emphasis than another at the same body size,
|
|
54
|
-
3. increasing emphasis through weight rather than a size jump.
|
|
55
|
-
|
|
56
|
-
> **Important:** Emphasis variants should not replace hierarchy. If text needs to function as a heading, move to a title or display role instead of trying to create hierarchy through emphasis alone.
|
|
57
|
-
|
|
58
|
-
## 4. Title Styles
|
|
59
|
-
|
|
60
|
-
Use `title-*` styles for actual titles:
|
|
61
|
-
|
|
62
|
-
- card titles
|
|
63
|
-
- section headers
|
|
64
|
-
- page section labels
|
|
65
|
-
- other short text that needs to read clearly as a title rather than body copy
|
|
66
|
-
|
|
67
|
-
| Style | Typical use |
|
|
68
|
-
|-------|------------|
|
|
69
|
-
| <code>title-small</code> | Card titles, compact section headers |
|
|
70
|
-
| <code>title-medium</code> | Standard section headers, dialog titles |
|
|
71
|
-
| <code>title-large</code> | Page-level headers, prominent section titles |
|
|
72
|
-
|
|
73
|
-
If the text is functioning as a title, use a title style rather than forcing hierarchy by increasing body size.
|
|
74
|
-
|
|
75
|
-
## 5. Underline Styles
|
|
76
|
-
|
|
77
|
-
Underline treatments communicate interactive meaning:
|
|
78
|
-
|
|
79
|
-
| Treatment | Meaning |
|
|
80
|
-
|-----------|---------|
|
|
81
|
-
| **Solid underline** | Text is a hyperlink or tappable link |
|
|
82
|
-
| **Dotted underline** | Text has an associated hover/reveal interaction |
|
|
83
|
-
|
|
84
|
-
- If text already uses brand bold foreground color, a solid underline isn't always required — the color can signal link behavior on its own
|
|
85
|
-
- Dotted and solid can work together: dotted at rest, solid on hover (for text that discloses info and also navigates)
|
|
86
|
-
|
|
87
|
-
> These underline treatments should communicate interaction meaning, not be used as decoration.
|
|
88
|
-
|
|
89
|
-
## 6. Display Styles
|
|
90
|
-
|
|
91
|
-
Display styles should be used **very sparingly**. They are reserved for:
|
|
92
|
-
|
|
93
|
-
- large scores
|
|
94
|
-
- primary summary metrics
|
|
95
|
-
- rare hero-value moments (e.g., a prominent driver safety score)
|
|
96
|
-
|
|
97
|
-
> Display styles should not be treated as general-purpose headings. They are intentionally dramatic and reserved for exceptional emphasis.
|
|
98
|
-
|
|
99
|
-
## 7. Anti-Patterns
|
|
100
|
-
|
|
101
|
-
Avoid these patterns:
|
|
102
|
-
|
|
103
|
-
1. defaulting to `body-large` when normal copy should use `body-medium`,
|
|
104
|
-
2. defaulting to emphasis variants instead of using them only where extra emphasis is needed,
|
|
105
|
-
3. using underline treatments as decoration instead of interaction cues,
|
|
106
|
-
4. using title styles for ordinary paragraph text,
|
|
107
|
-
5. using display styles for common headers or labels,
|
|
108
|
-
6. escalating text size too quickly when a smaller hierarchy shift would do the job.
|
|
109
|
-
|
|
110
|
-
## 8. Practical Summary
|
|
111
|
-
|
|
112
|
-
| Need | Style |
|
|
113
|
-
|------|-------|
|
|
114
|
-
| Normal product copy | <code>body-medium</code> |
|
|
115
|
-
| Subdued supporting copy | <code>body-small</code> |
|
|
116
|
-
| Slight hierarchy bump | <code>body-large</code> |
|
|
117
|
-
| More emphasis, same size | <code>body-*-emphasis</code> |
|
|
118
|
-
| Link indication | Solid underline |
|
|
119
|
-
| Hover/reveal indication | Dotted underline |
|
|
120
|
-
| Actual titles | <code>title-small</code>, <code>title-medium</code>, <code>title-large</code> |
|
|
121
|
-
| Rare oversized emphasis | <code>display-small</code>, <code>display-medium</code> |
|
package/src/index.ts
DELETED
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
// Primitives
|
|
2
|
-
export { Text } from './components/Text';
|
|
3
|
-
export type {
|
|
4
|
-
TextProps,
|
|
5
|
-
TextVariant,
|
|
6
|
-
TextStyle,
|
|
7
|
-
TextColor,
|
|
8
|
-
TextColorToken,
|
|
9
|
-
TextDecoration,
|
|
10
|
-
TextAlign,
|
|
11
|
-
LineTruncation,
|
|
12
|
-
TextWrap,
|
|
13
|
-
TextElement,
|
|
14
|
-
} from './components/Text';
|
|
15
|
-
|
|
16
|
-
export { Surface } from './components/Surface';
|
|
17
|
-
export type {
|
|
18
|
-
SurfaceProps,
|
|
19
|
-
SurfaceIntent,
|
|
20
|
-
SurfaceBackground,
|
|
21
|
-
SurfaceContrast,
|
|
22
|
-
SurfaceElevation,
|
|
23
|
-
SurfaceEdge,
|
|
24
|
-
SurfaceRadius,
|
|
25
|
-
SurfaceRadiusPreset,
|
|
26
|
-
SurfaceElement,
|
|
27
|
-
} from './components/Surface';
|
|
28
|
-
|
|
29
|
-
export { Card } from './components/Card';
|
|
30
|
-
export type { CardProps, CardElevation, CardRadius } from './components/Card';
|
|
31
|
-
|
|
32
|
-
// Core Interactive
|
|
33
|
-
export { Button } from './components/Button';
|
|
34
|
-
export type { ButtonProps, ButtonVariant, ButtonElevation, ButtonIntent, ButtonSize, ButtonContrast, ButtonBackground } from './components/Button';
|
|
35
|
-
|
|
36
|
-
export { ToggleButton } from './components/ToggleButton';
|
|
37
|
-
export type { ToggleButtonProps, ToggleButtonElevation, ToggleButtonSize, ToggleButtonBackground } from './components/ToggleButton';
|
|
38
|
-
|
|
39
|
-
export { ButtonGroup } from './components/ButtonGroup';
|
|
40
|
-
export type { ButtonGroupProps } from './components/ButtonGroup';
|
|
41
|
-
|
|
42
|
-
export { ToggleButtonGroup } from './components/ToggleButtonGroup';
|
|
43
|
-
export type { ToggleButtonGroupProps } from './components/ToggleButtonGroup';
|
|
44
|
-
|
|
45
|
-
export { Tag } from './components/Tag';
|
|
46
|
-
export type { TagProps, TagIntent, TagContrast, TagElevation, TagSize, TagBackground } from './components/Tag';
|
|
47
|
-
|
|
48
|
-
export { Badge } from './components/Badge';
|
|
49
|
-
export type { BadgeProps } from './components/Badge';
|
|
50
|
-
|
|
51
|
-
export { Loader } from './components/Loader';
|
|
52
|
-
export type { LoaderProps } from './components/Loader';
|
|
53
|
-
|
|
54
|
-
export { Toggle } from './components/Toggle';
|
|
55
|
-
export type { ToggleProps } from './components/Toggle';
|
|
56
|
-
|
|
57
|
-
export { Checkbox } from './components/Checkbox';
|
|
58
|
-
export type { CheckboxProps } from './components/Checkbox';
|
|
59
|
-
|
|
60
|
-
export { Input } from './components/Input';
|
|
61
|
-
export type { InputProps } from './components/Input';
|
|
62
|
-
|
|
63
|
-
export { Slider } from './components/Slider';
|
|
64
|
-
export type { SliderProps } from './components/Slider';
|
|
65
|
-
|
|
66
|
-
export { Field } from './components/Field';
|
|
67
|
-
export type { FieldProps } from './components/Field';
|
|
68
|
-
|
|
69
|
-
// Floating / Portal
|
|
70
|
-
export { Modal } from './components/Modal';
|
|
71
|
-
export type { ModalProps, ModalWidth } from './components/Modal';
|
|
72
|
-
|
|
73
|
-
export { Menu } from './components/Menu';
|
|
74
|
-
export type { MenuProps, MenuSection, MenuItemData, MenuSide, MenuAlign } from './components/Menu';
|
|
75
|
-
export { MenuItem } from './components/Menu';
|
|
76
|
-
export type { MenuItemProps, MenuItemSelectionStyle } from './components/Menu';
|
|
77
|
-
export { DestructiveMenuItem } from './components/Menu';
|
|
78
|
-
export type { DestructiveMenuItemProps } from './components/Menu';
|
|
79
|
-
|
|
80
|
-
export { Tooltip } from './components/Tooltip';
|
|
81
|
-
export type { TooltipProps, TooltipSide, TooltipAlign } from './components/Tooltip';
|
|
82
|
-
|
|
83
|
-
export { Select } from './components/Select';
|
|
84
|
-
export type { SelectProps, SelectOption } from './components/Select';
|
|
85
|
-
|
|
86
|
-
export { Banner } from './components/Banner';
|
|
87
|
-
export type { BannerProps, BannerIntent, BannerContrast } from './components/Banner';
|
|
88
|
-
|
|
89
|
-
// Complex & Utility
|
|
90
|
-
export { Table } from './components/Table';
|
|
91
|
-
export type {
|
|
92
|
-
TableProps,
|
|
93
|
-
TableColumn,
|
|
94
|
-
SortState,
|
|
95
|
-
SortDirection,
|
|
96
|
-
CellType,
|
|
97
|
-
FilterValue,
|
|
98
|
-
FilterState,
|
|
99
|
-
PaginationState,
|
|
100
|
-
} from './components/Table';
|
|
101
|
-
|
|
102
|
-
export { Tab } from './components/Tab';
|
|
103
|
-
export type { TabProps, TabBackground } from './components/Tab';
|
|
104
|
-
|
|
105
|
-
export { EmptyState } from './components/EmptyState';
|
|
106
|
-
export type { EmptyStateProps, EmptyStateType } from './components/EmptyState';
|
|
107
|
-
|
|
108
|
-
export { Fade } from './components/Fade';
|
|
109
|
-
export type { FadeProps, FadeSide } from './components/Fade';
|
|
110
|
-
|
|
111
|
-
export { Scrollbar } from './components/Scrollbar';
|
|
112
|
-
export type { ScrollbarProps, ScrollbarVariant } from './components/Scrollbar';
|
|
113
|
-
|
|
114
|
-
export { ErrorBoundary } from './components/ErrorBoundary';
|
|
115
|
-
export type { ErrorBoundaryProps } from './components/ErrorBoundary';
|
|
116
|
-
|
|
117
|
-
// Layout
|
|
118
|
-
export { Sidebar } from './components/Sidebar';
|
|
119
|
-
export type { SidebarProps, SidebarWidth } from './components/Sidebar';
|
|
120
|
-
export { SidebarSection } from './components/Sidebar';
|
|
121
|
-
export type { SidebarSectionProps } from './components/Sidebar';
|
|
122
|
-
export { SidebarItem } from './components/Sidebar';
|
|
123
|
-
export type { SidebarItemProps } from './components/Sidebar';
|
|
124
|
-
|
|
125
|
-
export { Header } from './components/Header';
|
|
126
|
-
export type { HeaderProps, HeaderBackground } from './components/Header';
|
|
127
|
-
|
|
128
|
-
// Classic — Additional components
|
|
129
|
-
export { RadioGroup, RadioItem } from './components/Radio';
|
|
130
|
-
export type { RadioGroupProps, RadioItemProps, RadioOption } from './components/Radio';
|
|
131
|
-
|
|
132
|
-
export { TabGroup } from './components/TabGroup';
|
|
133
|
-
export type { TabGroupProps, TabGroupTab } from './components/TabGroup';
|
|
134
|
-
|
|
135
|
-
export { Accordion, AccordionItem } from './components/Accordion';
|
|
136
|
-
export type { AccordionProps, AccordionItemProps, AccordionItemData } from './components/Accordion';
|
|
137
|
-
|
|
138
|
-
export { Breadcrumb } from './components/Breadcrumb';
|
|
139
|
-
export type { BreadcrumbProps, BreadcrumbItem } from './components/Breadcrumb';
|
|
140
|
-
|
|
141
|
-
export { Pagination } from './components/Pagination';
|
|
142
|
-
export type { PaginationProps } from './components/Pagination';
|
|
143
|
-
|
|
144
|
-
export { Divider } from './components/Divider';
|
|
145
|
-
export type { DividerProps, DividerOrientation } from './components/Divider';
|
|
146
|
-
|
|
147
|
-
export { Skeleton } from './components/Skeleton';
|
|
148
|
-
export type { SkeletonProps, SkeletonVariant } from './components/Skeleton';
|
|
149
|
-
|
|
150
|
-
export { ToastContainer, toast, useToasts } from './components/Toast';
|
|
151
|
-
export type { ToastContainerProps, ToastData, ToastOptions, ToastIntent, ToastPosition } from './components/Toast';
|
|
152
|
-
|
|
153
|
-
// Types
|
|
154
|
-
export type { IconProps, IconComponent } from './types';
|