@drivenets/design-system 0.0.3 → 0.0.5
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/CHANGELOG.md +13 -0
- package/README.md +51 -0
- package/dist/components/ds-alert-banner/ds-alert-banner.cjs +157 -52
- package/dist/components/ds-alert-banner/ds-alert-banner.d.cts +5 -5
- package/dist/components/ds-alert-banner/ds-alert-banner.d.cts.map +1 -1
- package/dist/components/ds-alert-banner/ds-alert-banner.js +157 -52
- package/dist/components/ds-alert-banner/ds-alert-banner.js.map +1 -1
- package/dist/components/ds-alert-banner/ds-alert-banner.types.d.cts.map +1 -1
- package/dist/components/ds-alert-banner/ds-alert-banner.types.js.map +1 -1
- package/dist/components/ds-breadcrumb/ds-breadcrumb.cjs +59 -16
- package/dist/components/ds-breadcrumb/ds-breadcrumb.js +59 -16
- package/dist/components/ds-breadcrumb/ds-breadcrumb.js.map +1 -1
- package/dist/components/ds-button/ds-button.cjs +18 -2
- package/dist/components/ds-button/ds-button.d.cts +2 -2
- package/dist/components/ds-button/ds-button.d.cts.map +1 -1
- package/dist/components/ds-button/ds-button.d.ts +2 -2
- package/dist/components/ds-button/ds-button.js +18 -2
- package/dist/components/ds-button/ds-button.js.map +1 -1
- package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.cjs +79 -10
- package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.js +79 -10
- package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.js.map +1 -1
- package/dist/components/ds-button/versions/ds-button-new/ds-button-new.cjs +78 -10
- package/dist/components/ds-button/versions/ds-button-new/ds-button-new.js +78 -10
- package/dist/components/ds-button/versions/ds-button-new/ds-button-new.js.map +1 -1
- package/dist/components/ds-checkbox/ds-checkbox.cjs +89 -18
- package/dist/components/ds-checkbox/ds-checkbox.js +89 -18
- package/dist/components/ds-checkbox/ds-checkbox.js.map +1 -1
- package/dist/components/ds-chip/ds-chip.cjs +100 -30
- package/dist/components/ds-chip/ds-chip.js +100 -30
- package/dist/components/ds-chip/ds-chip.js.map +1 -1
- package/dist/components/ds-chip-group/ds-chip-group.cjs +6 -6
- package/dist/components/ds-chip-group/ds-chip-group.js +6 -6
- package/dist/components/ds-chip-group/ds-chip-group.js.map +1 -1
- package/dist/components/ds-chip-group/hooks/use-chip-row-calculation.js.map +1 -1
- package/dist/components/ds-confirmation/ds-confirmation.cjs +210 -56
- package/dist/components/ds-confirmation/ds-confirmation.d.cts +8 -8
- package/dist/components/ds-confirmation/ds-confirmation.d.ts +8 -8
- package/dist/components/ds-confirmation/ds-confirmation.js +210 -56
- package/dist/components/ds-confirmation/ds-confirmation.js.map +1 -1
- package/dist/components/ds-dialog/ds-dialog.js.map +1 -1
- package/dist/components/ds-drawer/ds-drawer.cjs +261 -61
- package/dist/components/ds-drawer/ds-drawer.d.cts +9 -9
- package/dist/components/ds-drawer/ds-drawer.d.ts +9 -9
- package/dist/components/ds-drawer/ds-drawer.js +261 -61
- package/dist/components/ds-drawer/ds-drawer.js.map +1 -1
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.cjs +481 -135
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js +481 -135
- package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js.map +1 -1
- package/dist/components/ds-expandable-text-input/ds-expandable-text-input.cjs +146 -56
- package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.cts +2 -2
- package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.ts +2 -2
- package/dist/components/ds-expandable-text-input/ds-expandable-text-input.js +146 -56
- package/dist/components/ds-expandable-text-input/ds-expandable-text-input.js.map +1 -1
- package/dist/components/ds-file-upload/components/file-upload/file-upload.cjs +190 -69
- package/dist/components/ds-file-upload/components/file-upload/file-upload.js +190 -69
- package/dist/components/ds-file-upload/components/file-upload/file-upload.js.map +1 -1
- package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.cjs +273 -132
- package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.js +273 -132
- package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.js.map +1 -1
- package/dist/components/ds-file-upload/ds-file-upload.cjs +96 -16
- package/dist/components/ds-file-upload/ds-file-upload.js +96 -16
- package/dist/components/ds-file-upload/ds-file-upload.js.map +1 -1
- package/dist/components/ds-file-upload/errors/file-upload-errors.js.map +1 -1
- package/dist/components/ds-file-upload/hooks/use-file-upload.cjs +93 -93
- package/dist/components/ds-file-upload/hooks/use-file-upload.js +93 -93
- package/dist/components/ds-file-upload/hooks/use-file-upload.js.map +1 -1
- package/dist/components/ds-file-upload/types/accept-types.js.map +1 -1
- package/dist/components/ds-file-upload/utils/accept-utils.js.map +1 -1
- package/dist/components/ds-file-upload/utils/constants.js.map +1 -1
- package/dist/components/ds-file-upload/utils/file-factory.js.map +1 -1
- package/dist/components/ds-file-upload/utils/format-file-size.js.map +1 -1
- package/dist/components/ds-file-upload/utils/generate-helper-text.js.map +1 -1
- package/dist/components/ds-file-upload/utils/get-error-message.js.map +1 -1
- package/dist/components/ds-file-upload/utils/is-file-equal.js.map +1 -1
- package/dist/components/ds-form-control/ds-form-control.cjs +119 -34
- package/dist/components/ds-form-control/ds-form-control.d.cts +7 -7
- package/dist/components/ds-form-control/ds-form-control.d.ts +7 -7
- package/dist/components/ds-form-control/ds-form-control.d.ts.map +1 -1
- package/dist/components/ds-form-control/ds-form-control.js +119 -34
- package/dist/components/ds-form-control/ds-form-control.js.map +1 -1
- package/dist/components/ds-form-control/ds-form-control.types.js.map +1 -1
- package/dist/components/ds-grid/ds-grid.js.map +1 -1
- package/dist/components/ds-icon/ds-icon.cjs +84 -13
- package/dist/components/ds-icon/ds-icon.js +84 -13
- package/dist/components/ds-icon/ds-icon.js.map +1 -1
- package/dist/components/ds-icon/ds-icon.types.d.cts.map +1 -1
- package/dist/components/ds-icon/ds-icon.types.js.map +1 -1
- package/dist/components/ds-modal/ds-modal.cjs +222 -55
- package/dist/components/ds-modal/ds-modal.d.cts +8 -8
- package/dist/components/ds-modal/ds-modal.d.ts +8 -8
- package/dist/components/ds-modal/ds-modal.d.ts.map +1 -1
- package/dist/components/ds-modal/ds-modal.js +222 -55
- package/dist/components/ds-modal/ds-modal.js.map +1 -1
- package/dist/components/ds-number-input/ds-number-input.cjs +136 -49
- package/dist/components/ds-number-input/ds-number-input.js +136 -49
- package/dist/components/ds-number-input/ds-number-input.js.map +1 -1
- package/dist/components/ds-panel/ds-panel.cjs +111 -19
- package/dist/components/ds-panel/ds-panel.d.cts +2 -2
- package/dist/components/ds-panel/ds-panel.d.cts.map +1 -1
- package/dist/components/ds-panel/ds-panel.d.ts +2 -2
- package/dist/components/ds-panel/ds-panel.js +111 -19
- package/dist/components/ds-panel/ds-panel.js.map +1 -1
- package/dist/components/ds-password-input/ds-password-input.cjs +108 -41
- package/dist/components/ds-password-input/ds-password-input.js +108 -41
- package/dist/components/ds-password-input/ds-password-input.js.map +1 -1
- package/dist/components/ds-popover/ds-popover.cjs +50 -12
- package/dist/components/ds-popover/ds-popover.js +50 -12
- package/dist/components/ds-popover/ds-popover.js.map +1 -1
- package/dist/components/ds-radio-group/ds-radio-group.cjs +209 -53
- package/dist/components/ds-radio-group/ds-radio-group.js +209 -53
- package/dist/components/ds-radio-group/ds-radio-group.js.map +1 -1
- package/dist/components/ds-segment-group/ds-segment-group.cjs +215 -0
- package/dist/components/ds-segment-group/ds-segment-group.d.cts +26 -0
- package/dist/components/ds-segment-group/ds-segment-group.d.cts.map +1 -0
- package/dist/components/ds-segment-group/ds-segment-group.d.ts +26 -0
- package/dist/components/ds-segment-group/ds-segment-group.d.ts.map +1 -0
- package/dist/components/ds-segment-group/ds-segment-group.js +214 -0
- package/dist/components/ds-segment-group/ds-segment-group.js.map +1 -0
- package/dist/components/ds-segment-group/ds-segment-group.module.cjs +12 -0
- package/dist/components/ds-segment-group/ds-segment-group.module.js +12 -0
- package/dist/components/ds-segment-group/ds-segment-group.module.js.map +1 -0
- package/dist/components/ds-segment-group/ds-segment-group.types.cjs +2 -0
- package/dist/components/ds-segment-group/ds-segment-group.types.d.cts +52 -0
- package/dist/components/ds-segment-group/ds-segment-group.types.d.cts.map +1 -0
- package/dist/components/ds-segment-group/ds-segment-group.types.d.ts +52 -0
- package/dist/components/ds-segment-group/ds-segment-group.types.d.ts.map +1 -0
- package/dist/components/ds-segment-group/ds-segment-group.types.js +2 -0
- package/dist/components/ds-segment-group/index.cjs +2 -0
- package/dist/components/ds-segment-group/index.d.ts +2 -0
- package/dist/components/ds-segment-group/index.js +2 -0
- package/dist/components/ds-select/ds-select.cjs +198 -89
- package/dist/components/ds-select/ds-select.d.cts +2 -2
- package/dist/components/ds-select/ds-select.d.cts.map +1 -1
- package/dist/components/ds-select/ds-select.d.ts +2 -2
- package/dist/components/ds-select/ds-select.js +198 -89
- package/dist/components/ds-select/ds-select.js.map +1 -1
- package/dist/components/ds-select/select-items-chips.cjs +73 -22
- package/dist/components/ds-select/select-items-chips.js +73 -22
- package/dist/components/ds-select/select-items-chips.js.map +1 -1
- package/dist/components/ds-smart-tabs/ds-smart-tabs.cjs +208 -46
- package/dist/components/ds-smart-tabs/ds-smart-tabs.d.cts +2 -2
- package/dist/components/ds-smart-tabs/ds-smart-tabs.d.cts.map +1 -1
- package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts +2 -2
- package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts.map +1 -1
- package/dist/components/ds-smart-tabs/ds-smart-tabs.js +208 -46
- package/dist/components/ds-smart-tabs/ds-smart-tabs.js.map +1 -1
- package/dist/components/ds-smart-tabs/ds-smart-tabs.types.js.map +1 -1
- package/dist/components/ds-spinner/ds-spinner.cjs +90 -20
- package/dist/components/ds-spinner/ds-spinner.js +90 -20
- package/dist/components/ds-spinner/ds-spinner.js.map +1 -1
- package/dist/components/ds-spinner/ds-spinner.types.js.map +1 -1
- package/dist/components/ds-status-badge/ds-status-badge.cjs +54 -11
- package/dist/components/ds-status-badge/ds-status-badge.js +54 -11
- package/dist/components/ds-status-badge/ds-status-badge.js.map +1 -1
- package/dist/components/ds-stepper/components/ds-step-content.cjs +59 -13
- package/dist/components/ds-stepper/components/ds-step-content.d.cts +2 -2
- package/dist/components/ds-stepper/components/ds-step-content.js +59 -13
- package/dist/components/ds-stepper/components/ds-step-content.js.map +1 -1
- package/dist/components/ds-stepper/components/ds-step-description.cjs +14 -5
- package/dist/components/ds-stepper/components/ds-step-description.js +14 -5
- package/dist/components/ds-stepper/components/ds-step-description.js.map +1 -1
- package/dist/components/ds-stepper/components/ds-step-label.cjs +14 -5
- package/dist/components/ds-stepper/components/ds-step-label.js +14 -5
- package/dist/components/ds-stepper/components/ds-step-label.js.map +1 -1
- package/dist/components/ds-stepper/components/ds-step-next-button.cjs +23 -6
- package/dist/components/ds-stepper/components/ds-step-next-button.d.cts +2 -2
- package/dist/components/ds-stepper/components/ds-step-next-button.js +23 -6
- package/dist/components/ds-stepper/components/ds-step-next-button.js.map +1 -1
- package/dist/components/ds-stepper/components/ds-step.cjs +106 -25
- package/dist/components/ds-stepper/components/ds-step.d.cts +2 -2
- package/dist/components/ds-stepper/components/ds-step.js +106 -25
- package/dist/components/ds-stepper/components/ds-step.js.map +1 -1
- package/dist/components/ds-stepper/ds-stepper.cjs +62 -15
- package/dist/components/ds-stepper/ds-stepper.d.cts +2 -2
- package/dist/components/ds-stepper/ds-stepper.d.cts.map +1 -1
- package/dist/components/ds-stepper/ds-stepper.js +62 -15
- package/dist/components/ds-stepper/ds-stepper.js.map +1 -1
- package/dist/components/ds-stepper/hooks/use-stepper.js.map +1 -1
- package/dist/components/ds-stepper/hooks/use-steps.cjs +29 -9
- package/dist/components/ds-stepper/hooks/use-steps.js +29 -9
- package/dist/components/ds-stepper/hooks/use-steps.js.map +1 -1
- package/dist/components/ds-system-status/ds-system-status.cjs +37 -7
- package/dist/components/ds-system-status/ds-system-status.js +37 -7
- package/dist/components/ds-system-status/ds-system-status.js.map +1 -1
- package/dist/components/ds-system-status/ds-system-status.types.js.map +1 -1
- package/dist/components/ds-table/components/core-table/core-table.cjs +281 -48
- package/dist/components/ds-table/components/core-table/core-table.js +281 -48
- package/dist/components/ds-table/components/core-table/core-table.js.map +1 -1
- package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.cjs +134 -50
- package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.js +134 -50
- package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.js.map +1 -1
- package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.cjs +140 -43
- package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.js +140 -43
- package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.js.map +1 -1
- package/dist/components/ds-table/components/ds-table-header/ds-table-header.cjs +37 -6
- package/dist/components/ds-table/components/ds-table-header/ds-table-header.js +37 -6
- package/dist/components/ds-table/components/ds-table-header/ds-table-header.js.map +1 -1
- package/dist/components/ds-table/components/ds-table-row/ds-table-row.cjs +272 -100
- package/dist/components/ds-table/components/ds-table-row/ds-table-row.js +272 -100
- package/dist/components/ds-table/components/ds-table-row/ds-table-row.js.map +1 -1
- package/dist/components/ds-table/context/ds-table-context.js.map +1 -1
- package/dist/components/ds-table/ds-table.cjs +15 -15
- package/dist/components/ds-table/ds-table.d.cts +2 -2
- package/dist/components/ds-table/ds-table.js +15 -15
- package/dist/components/ds-table/ds-table.js.map +1 -1
- package/dist/components/ds-table/hooks/use-drag-and-drop.cjs +126 -38
- package/dist/components/ds-table/hooks/use-drag-and-drop.js +126 -38
- package/dist/components/ds-table/hooks/use-drag-and-drop.js.map +1 -1
- package/dist/components/ds-table/utils/column-styling.js.map +1 -1
- package/dist/components/ds-table/utils/create-columns-grid-template.js.map +1 -1
- package/dist/components/ds-table/utils/merge-refs.js.map +1 -1
- package/dist/components/ds-text-input/ds-text-input.cjs +128 -43
- package/dist/components/ds-text-input/ds-text-input.js +128 -43
- package/dist/components/ds-text-input/ds-text-input.js.map +1 -1
- package/dist/components/ds-text-input/ds-text-input.types.js.map +1 -1
- package/dist/components/ds-textarea/ds-textarea.cjs +66 -22
- package/dist/components/ds-textarea/ds-textarea.js +66 -22
- package/dist/components/ds-textarea/ds-textarea.js.map +1 -1
- package/dist/components/ds-toast/ds-toast-context.cjs +62 -17
- package/dist/components/ds-toast/ds-toast-context.js +62 -17
- package/dist/components/ds-toast/ds-toast-context.js.map +1 -1
- package/dist/components/ds-toast/ds-toast.cjs +90 -26
- package/dist/components/ds-toast/ds-toast.js +90 -26
- package/dist/components/ds-toast/ds-toast.js.map +1 -1
- package/dist/components/ds-tooltip/ds-tooltip.cjs +51 -13
- package/dist/components/ds-tooltip/ds-tooltip.js +51 -13
- package/dist/components/ds-tooltip/ds-tooltip.js.map +1 -1
- package/dist/components/ds-typography/ds-typography.cjs +51 -7
- package/dist/components/ds-typography/ds-typography.config.js.map +1 -1
- package/dist/components/ds-typography/ds-typography.js +51 -7
- package/dist/components/ds-typography/ds-typography.js.map +1 -1
- package/dist/components/ds-vertical-tabs/ds-vertical-tabs.cjs +91 -30
- package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.cts +5 -5
- package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.ts +5 -5
- package/dist/components/ds-vertical-tabs/ds-vertical-tabs.js +91 -30
- package/dist/components/ds-vertical-tabs/ds-vertical-tabs.js.map +1 -1
- package/dist/index.cjs +3 -0
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +3 -1
- package/dist/index.min.css +1 -1
- package/package.json +8 -2
- package/src/components/ds-segment-group/ds-segment-group.module.scss +99 -0
- package/src/components/ds-segment-group/ds-segment-group.tsx +76 -0
- package/src/components/ds-segment-group/ds-segment-group.types.tsx +64 -0
- package/src/components/ds-segment-group/index.tsx +2 -0
- package/src/index.ts +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@drivenets/design-system",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.5",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.cts",
|
|
@@ -31,6 +31,10 @@
|
|
|
31
31
|
"!**/stories",
|
|
32
32
|
"!**/*.stories.*"
|
|
33
33
|
],
|
|
34
|
+
"repository": {
|
|
35
|
+
"url": "https://github.com/drivenets/design-system",
|
|
36
|
+
"directory": "/packages/design-system"
|
|
37
|
+
},
|
|
34
38
|
"dependencies": {
|
|
35
39
|
"@ark-ui/react": "^5.18.0",
|
|
36
40
|
"@dnd-kit/core": "^6.3.1",
|
|
@@ -60,6 +64,7 @@
|
|
|
60
64
|
"@chromatic-com/storybook": "^4.1.3",
|
|
61
65
|
"@faker-js/faker": "^9.7.0",
|
|
62
66
|
"@hookform/resolvers": "^5.0.1",
|
|
67
|
+
"@rollup/plugin-babel": "^6.1.0",
|
|
63
68
|
"@storybook/addon-a11y": "^10.1.9",
|
|
64
69
|
"@storybook/addon-docs": "^10.1.9",
|
|
65
70
|
"@storybook/addon-vitest": "^10.1.9",
|
|
@@ -71,6 +76,7 @@
|
|
|
71
76
|
"@types/react": "^19.2.7",
|
|
72
77
|
"@vitest/browser": "^4.0.16",
|
|
73
78
|
"@vitest/browser-playwright": "^4.0.15",
|
|
79
|
+
"babel-plugin-react-compiler": "^1.0.0",
|
|
74
80
|
"eslint": "^9.39.2",
|
|
75
81
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
76
82
|
"eslint-plugin-react": "^7.37.5",
|
|
@@ -91,7 +97,7 @@
|
|
|
91
97
|
"vite": "^7.3.0",
|
|
92
98
|
"vitest": "^4.0.16",
|
|
93
99
|
"zod": "^3.24.2",
|
|
94
|
-
"@drivenets/vite-plugin-design-system": "0.0.
|
|
100
|
+
"@drivenets/vite-plugin-design-system": "0.0.4"
|
|
95
101
|
},
|
|
96
102
|
"scripts": {
|
|
97
103
|
"lint": "eslint --max-warnings=0 .",
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
.segmentGroupRoot {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
position: relative;
|
|
5
|
+
background: var(--color-background-secondary);
|
|
6
|
+
border: 1px solid var(--color-border-contrast);
|
|
7
|
+
border-radius: 4px;
|
|
8
|
+
gap: var(--spacing-2xs);
|
|
9
|
+
height: 36px;
|
|
10
|
+
padding: var(--spacing-3xs);
|
|
11
|
+
|
|
12
|
+
&.small {
|
|
13
|
+
height: 28px;
|
|
14
|
+
padding: var(--spacing-4xs);
|
|
15
|
+
|
|
16
|
+
.segmentItem {
|
|
17
|
+
padding: var(--spacing-4xs) var(--spacing-xs);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.segmentItem {
|
|
23
|
+
position: relative;
|
|
24
|
+
display: flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
justify-content: center;
|
|
27
|
+
padding: var(--spacing-3xs) var(--spacing-sm);
|
|
28
|
+
gap: var(--spacing-2xs);
|
|
29
|
+
flex: 1;
|
|
30
|
+
z-index: 1;
|
|
31
|
+
cursor: pointer;
|
|
32
|
+
border-radius: 4px;
|
|
33
|
+
|
|
34
|
+
&[data-state='checked'] {
|
|
35
|
+
.segmentItemText {
|
|
36
|
+
color: var(--color-font-main);
|
|
37
|
+
font-weight: var(--font-weight-medium);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&[data-state='unchecked'] {
|
|
42
|
+
background: transparent;
|
|
43
|
+
|
|
44
|
+
.segmentItemText {
|
|
45
|
+
color: var(--color-background-action);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&:hover:not([data-disabled]) {
|
|
49
|
+
background: var(--color-background-action-secondary);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
&:active:not([data-disabled]) {
|
|
53
|
+
background: var(--color-background);
|
|
54
|
+
border-color: var(--color-border-contrast);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&[data-disabled] {
|
|
59
|
+
cursor: not-allowed;
|
|
60
|
+
background: var(--color-background-secondary);
|
|
61
|
+
|
|
62
|
+
.segmentItemText {
|
|
63
|
+
color: var(--color-font-disabled);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&:focus-visible {
|
|
68
|
+
outline: 2px solid var(--color-border-action-secondary);
|
|
69
|
+
outline-offset: 2px;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
[data-scope='segment-group'][data-part='item-control'] {
|
|
74
|
+
position: absolute;
|
|
75
|
+
inset: 0;
|
|
76
|
+
pointer-events: none;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.segmentItemText {
|
|
80
|
+
display: flex;
|
|
81
|
+
align-items: center;
|
|
82
|
+
justify-content: center;
|
|
83
|
+
white-space: nowrap;
|
|
84
|
+
transition: color 150ms ease-in-out;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.segmentIndicator {
|
|
88
|
+
position: absolute;
|
|
89
|
+
background: var(--color-background);
|
|
90
|
+
border: 1px solid var(--color-border-contrast);
|
|
91
|
+
border-radius: 4px;
|
|
92
|
+
box-shadow: 0 1.25px 4px 0 rgba(0, 0, 0, 0.25);
|
|
93
|
+
z-index: 0;
|
|
94
|
+
pointer-events: none;
|
|
95
|
+
width: var(--width);
|
|
96
|
+
height: var(--height);
|
|
97
|
+
left: var(--left);
|
|
98
|
+
top: var(--top);
|
|
99
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type React from 'react';
|
|
2
|
+
import { SegmentGroup } from '@ark-ui/react/segment-group';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import styles from './ds-segment-group.module.scss';
|
|
5
|
+
import DsTypography from '../ds-typography/ds-typography';
|
|
6
|
+
import {
|
|
7
|
+
type DsSegmentGroupItemProps,
|
|
8
|
+
type DsSegmentGroupItemTextProps,
|
|
9
|
+
type DsSegmentGroupRootProps,
|
|
10
|
+
} from './ds-segment-group.types';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Root component - provides segment group context
|
|
14
|
+
*/
|
|
15
|
+
const Root: React.FC<DsSegmentGroupRootProps> = ({
|
|
16
|
+
className,
|
|
17
|
+
children,
|
|
18
|
+
onValueChange,
|
|
19
|
+
size = 'default',
|
|
20
|
+
...props
|
|
21
|
+
}) => (
|
|
22
|
+
<SegmentGroup.Root
|
|
23
|
+
className={classNames(styles.segmentGroupRoot, size === 'small' && styles.small, className)}
|
|
24
|
+
onValueChange={(details) => onValueChange?.(details.value)}
|
|
25
|
+
{...props}
|
|
26
|
+
>
|
|
27
|
+
<SegmentGroup.Indicator className={styles.segmentIndicator} />
|
|
28
|
+
{children}
|
|
29
|
+
</SegmentGroup.Root>
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Item component - renders a single segment button
|
|
34
|
+
*/
|
|
35
|
+
const Item: React.FC<DsSegmentGroupItemProps> = ({ value, label, className, style, children, ...props }) => {
|
|
36
|
+
return (
|
|
37
|
+
<SegmentGroup.Item
|
|
38
|
+
value={value}
|
|
39
|
+
className={classNames(styles.segmentItem, className)}
|
|
40
|
+
style={style}
|
|
41
|
+
{...props}
|
|
42
|
+
>
|
|
43
|
+
{label ? <ItemText>{label}</ItemText> : children}
|
|
44
|
+
<SegmentGroup.ItemControl />
|
|
45
|
+
<SegmentGroup.ItemHiddenInput />
|
|
46
|
+
</SegmentGroup.Item>
|
|
47
|
+
);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* ItemText component - renders text content within an item
|
|
52
|
+
*/
|
|
53
|
+
const ItemText: React.FC<DsSegmentGroupItemTextProps> = ({ className, children, ...props }) => (
|
|
54
|
+
<SegmentGroup.ItemText className={classNames(styles.segmentItemText, className)} {...props} asChild>
|
|
55
|
+
<DsTypography variant="body-sm-reg">{children}</DsTypography>
|
|
56
|
+
</SegmentGroup.ItemText>
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Design system SegmentGroup component
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* <DsSegmentGroup.Root value={value} onValueChange={setValue} size="default">
|
|
64
|
+
* <DsSegmentGroup.Indicator />
|
|
65
|
+
* <DsSegmentGroup.Item value="option1" label="Option 1" />
|
|
66
|
+
* <DsSegmentGroup.Item value="option2">
|
|
67
|
+
* <DsIcon icon="settings" />
|
|
68
|
+
* <DsSegmentGroup.ItemText>Option 2</DsSegmentGroup.ItemText>
|
|
69
|
+
* </DsSegmentGroup.Item>
|
|
70
|
+
* </DsSegmentGroup.Root>
|
|
71
|
+
*/
|
|
72
|
+
export const DsSegmentGroup = {
|
|
73
|
+
Root,
|
|
74
|
+
Item,
|
|
75
|
+
ItemText,
|
|
76
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import {
|
|
3
|
+
type SegmentGroupItemProps,
|
|
4
|
+
type SegmentGroupItemTextProps,
|
|
5
|
+
type SegmentGroupRootProps,
|
|
6
|
+
} from '@ark-ui/react/segment-group';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Size variants for the segment group
|
|
10
|
+
*/
|
|
11
|
+
export type DsSegmentGroupSize = 'small' | 'default';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Props for the DsSegmentGroup Root component
|
|
15
|
+
*/
|
|
16
|
+
export interface DsSegmentGroupRootProps extends Pick<
|
|
17
|
+
SegmentGroupRootProps,
|
|
18
|
+
'value' | 'defaultValue' | 'disabled' | 'name' | 'className' | 'style' | 'children'
|
|
19
|
+
> {
|
|
20
|
+
/**
|
|
21
|
+
* Size variant of the segment group
|
|
22
|
+
* @default 'default'
|
|
23
|
+
*/
|
|
24
|
+
size?: DsSegmentGroupSize;
|
|
25
|
+
/**
|
|
26
|
+
* Event handler called when the selected value changes
|
|
27
|
+
*/
|
|
28
|
+
onValueChange?: (value: string | null) => void;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Props for the DsSegmentGroup Item component
|
|
33
|
+
*/
|
|
34
|
+
export type DsSegmentGroupItemProps = Pick<
|
|
35
|
+
SegmentGroupItemProps,
|
|
36
|
+
'id' | 'value' | 'disabled' | 'className' | 'style'
|
|
37
|
+
> &
|
|
38
|
+
(
|
|
39
|
+
| {
|
|
40
|
+
/**
|
|
41
|
+
* The segment group item content
|
|
42
|
+
*/
|
|
43
|
+
children: ReactNode;
|
|
44
|
+
/**
|
|
45
|
+
* Optional label text for the segment item
|
|
46
|
+
*/
|
|
47
|
+
label?: never;
|
|
48
|
+
}
|
|
49
|
+
| {
|
|
50
|
+
/**
|
|
51
|
+
* The segment group item content
|
|
52
|
+
*/
|
|
53
|
+
children?: never;
|
|
54
|
+
/**
|
|
55
|
+
* Optional label text for the segment item
|
|
56
|
+
*/
|
|
57
|
+
label: string;
|
|
58
|
+
}
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Props for the DsSegmentGroup ItemText component
|
|
63
|
+
*/
|
|
64
|
+
export type DsSegmentGroupItemTextProps = Pick<SegmentGroupItemTextProps, 'className' | 'style' | 'children'>;
|
package/src/index.ts
CHANGED
|
@@ -19,6 +19,7 @@ export * from './components/ds-panel';
|
|
|
19
19
|
export * from './components/ds-password-input';
|
|
20
20
|
export * from './components/ds-popover';
|
|
21
21
|
export * from './components/ds-radio-group';
|
|
22
|
+
export * from './components/ds-segment-group';
|
|
22
23
|
export * from './components/ds-select';
|
|
23
24
|
export * from './components/ds-smart-tabs';
|
|
24
25
|
export * from './components/ds-spinner';
|