@drivenets/design-system 0.16.0 → 0.17.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.
Files changed (101) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/index.cjs +234 -191
  3. package/dist/index.d.cts +250 -197
  4. package/dist/index.d.cts.map +1 -1
  5. package/dist/index.d.ts +250 -197
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +234 -191
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.min.css +1 -1
  10. package/package.json +24 -24
  11. package/src/components/ds-alert-banner/ds-alert-banner.tsx +7 -6
  12. package/src/components/ds-autocomplete/ds-autocomplete.figma.ts +2 -2
  13. package/src/components/ds-avatar/ds-avatar.figma.ts +2 -2
  14. package/src/components/ds-avatar-group/ds-avatar-group.figma.ts +2 -2
  15. package/src/components/ds-breadcrumb/ds-breadcrumb.figma.ts +2 -2
  16. package/src/components/ds-button-v3/ds-button-v3.figma.ts +2 -2
  17. package/src/components/ds-card/figma/ds-card-content.figma.ts +2 -2
  18. package/src/components/ds-card/figma/ds-card-footer.figma.ts +2 -2
  19. package/src/components/ds-card/figma/ds-card-header.figma.ts +2 -2
  20. package/src/components/ds-card/figma/ds-card.figma.ts +2 -2
  21. package/src/components/ds-catalog-layout/ds-catalog-layout.figma.ts +51 -0
  22. package/src/components/ds-catalog-layout/ds-catalog-layout.tsx +9 -8
  23. package/src/components/ds-checkbox/ds-checkbox-level-2.figma.ts +2 -2
  24. package/src/components/ds-checkbox/ds-checkbox.figma.ts +2 -2
  25. package/src/components/ds-checkbox-group/ds-checkbox-group.figma.ts +2 -2
  26. package/src/components/ds-comments-drawer/components/comments-filter-modal/index.ts +0 -1
  27. package/src/components/ds-confirmation/ds-confirmation.tsx +13 -11
  28. package/src/components/ds-date-picker/ds-date-picker.figma.ts +2 -2
  29. package/src/components/ds-divider/ds-divider.figma.ts +2 -2
  30. package/src/components/ds-drawer/ds-drawer.tsx +11 -10
  31. package/src/components/ds-drawer/figma/ds-drawer-content.figma.ts +2 -2
  32. package/src/components/ds-drawer/figma/ds-drawer-footer.figma.ts +2 -2
  33. package/src/components/ds-drawer/figma/ds-drawer-header.figma.ts +2 -2
  34. package/src/components/ds-drawer/figma/ds-drawer.figma.ts +2 -2
  35. package/src/components/ds-dropdown-menu/figma/ds-dropdown-menu-footer.figma.ts +2 -2
  36. package/src/components/ds-dropdown-menu/figma/ds-dropdown-menu-group.figma.ts +2 -2
  37. package/src/components/ds-dropdown-menu/figma/ds-dropdown-menu-item.figma.ts +2 -2
  38. package/src/components/ds-dropdown-menu/figma/ds-dropdown-menu-separator.figma.ts +2 -2
  39. package/src/components/ds-dropdown-menu/figma/ds-dropdown-menu.figma.ts +2 -2
  40. package/src/components/ds-expandable-text-input/ds-expandable-text-input.figma.ts +2 -2
  41. package/src/components/ds-file-upload/components/file-upload-item/index.ts +0 -1
  42. package/src/components/ds-file-upload/ds-file-upload.figma.ts +2 -2
  43. package/src/components/ds-filter-status-icon/ds-filter-status-icon.figma.ts +2 -2
  44. package/src/components/ds-form-control/ds-form-control.figma.ts +2 -2
  45. package/src/components/ds-form-control/ds-form-control.tsx +15 -13
  46. package/src/components/ds-icon/figma/ds-icon-material.figma.batch.ts +1 -1
  47. package/src/components/ds-icon/figma/ds-icon-special.figma.batch.ts +1 -1
  48. package/src/components/ds-key-value-pair/ds-key-value-pair.figma.ts +2 -2
  49. package/src/components/ds-loader/ds-loader.figma.ts +2 -2
  50. package/src/components/ds-modal/ds-modal.tsx +10 -9
  51. package/src/components/ds-modal/figma/ds-modal-content.figma.ts +2 -2
  52. package/src/components/ds-modal/figma/ds-modal-footer.figma.ts +2 -2
  53. package/src/components/ds-modal/figma/ds-modal-header.figma.ts +2 -2
  54. package/src/components/ds-modal/figma/ds-modal.figma.ts +2 -2
  55. package/src/components/ds-number-input/ds-number-input.tsx +1 -0
  56. package/src/components/ds-panel/ds-panel.figma.ts +2 -2
  57. package/src/components/ds-popover/figma/ds-popover-content-item.figma.ts +2 -2
  58. package/src/components/ds-popover/figma/ds-popover-content.figma.ts +2 -2
  59. package/src/components/ds-popover/figma/ds-popover-footer.figma.ts +2 -2
  60. package/src/components/ds-popover/figma/ds-popover-header.figma.ts +2 -2
  61. package/src/components/ds-popover/figma/ds-popover.figma.ts +2 -2
  62. package/src/components/ds-progress-arc/ds-progress-arc.figma.ts +2 -2
  63. package/src/components/ds-progress-donut/ds-progress-donut.figma.ts +2 -2
  64. package/src/components/ds-progress-linear/ds-progress-linear.figma.ts +2 -2
  65. package/src/components/ds-progress-task-bar/ds-progress-task-bar.figma.ts +2 -2
  66. package/src/components/ds-radio-group/figma/ds-radio-group-item.figma.ts +2 -2
  67. package/src/components/ds-radio-group/figma/ds-radio-group.figma.ts +2 -2
  68. package/src/components/ds-segment-group/figma/ds-segment-group-item.figma.ts +2 -2
  69. package/src/components/ds-segment-group/figma/ds-segment-group.figma.ts +2 -2
  70. package/src/components/ds-select/ds-select.figma.ts +2 -2
  71. package/src/components/ds-site-node/ds-site-node.figma.ts +2 -2
  72. package/src/components/ds-smart-tabs/ds-smart-tabs.tsx +5 -4
  73. package/src/components/ds-spinner/ds-spinner.figma.ts +2 -2
  74. package/src/components/ds-split-button/ds-split-button.figma.ts +2 -2
  75. package/src/components/ds-status-badge-v2/ds-status-badge-v2.figma.ts +2 -2
  76. package/src/components/ds-stepper/ds-stepper.figma.ts +2 -2
  77. package/src/components/ds-table/components/ds-table-group-header-cell/index.ts +0 -1
  78. package/src/components/ds-table/components/ds-table-header/ds-table-header.module.scss +2 -2
  79. package/src/components/ds-table/components/ds-table-header/ds-table-header.tsx +2 -4
  80. package/src/components/ds-table/ds-table.module.scss +15 -0
  81. package/src/components/ds-table/ds-table.tsx +37 -34
  82. package/src/components/ds-table/ds-table.types.ts +6 -0
  83. package/src/components/ds-table/figma/ds-table-expandable.figma.ts +2 -2
  84. package/src/components/ds-table/figma/ds-table.figma.ts +2 -2
  85. package/src/components/ds-tabs/figma/ds-tabs-tab-vertical.figma.ts +2 -2
  86. package/src/components/ds-tabs/figma/ds-tabs-tab.figma.ts +2 -2
  87. package/src/components/ds-tabs/figma/ds-tabs-vertical.figma.ts +2 -2
  88. package/src/components/ds-tabs/figma/ds-tabs.figma.ts +2 -2
  89. package/src/components/ds-text-input/ds-input-field-v02.figma.ts +2 -2
  90. package/src/components/ds-text-input/ds-text-input.figma.ts +2 -2
  91. package/src/components/ds-time-picker/ds-time-picker.figma.ts +2 -2
  92. package/src/components/ds-toast/ds-toast.figma.ts +3 -3
  93. package/src/components/ds-toggle/ds-toggle.figma.ts +2 -2
  94. package/src/components/ds-tooltip/ds-tooltip.figma.ts +2 -2
  95. package/src/components/ds-tree/ds-tree.module.scss +2 -2
  96. package/src/components/ds-tree/ds-tree.tsx +6 -0
  97. package/src/components/ds-tree/ds-tree.types.ts +16 -0
  98. package/src/components/ds-typography/ds-typography.figma.ts +2 -2
  99. package/src/components/ds-user-card/ds-user-card.figma.ts +2 -2
  100. package/src/components/ds-vertical-tabs/ds-vertical-tabs.tsx +13 -6
  101. package/src/components/ds-workspace-layout/ds-workspace-layout.tsx +11 -10
@@ -26,9 +26,9 @@ createToast({
26
26
  description: 'Description',${actionsLine}
27
27
  });`,
28
28
  imports: [
29
- "import { useToaster } from '@drivenets/design-system'",
30
- "import { DsButtonV3 } from '@drivenets/design-system'",
29
+ "import { useToaster } from '@drivenets/design-system';",
30
+ "import { DsButtonV3 } from '@drivenets/design-system';",
31
31
  ],
32
32
  id: 'ds-toast',
33
33
  metadata: { nestable: false },
34
- };
34
+ } satisfies figma.Template;
@@ -33,7 +33,7 @@ const attrs = [
33
33
 
34
34
  export default {
35
35
  example: figma.code`<DsToggle ${attrs} />`,
36
- imports: ["import { DsToggle } from '@drivenets/design-system'"],
36
+ imports: ["import { DsToggle } from '@drivenets/design-system';"],
37
37
  id: 'ds-toggle',
38
38
  metadata: { nestable: true },
39
- };
39
+ } satisfies figma.Template;
@@ -10,7 +10,7 @@ const content = labelNode.type === 'TEXT' ? labelNode.textContent : 'Tooltip tex
10
10
 
11
11
  export default {
12
12
  example: figma.code`<DsTooltip content="${content}">{/* trigger element */}</DsTooltip>`,
13
- imports: ["import { DsTooltip } from '@drivenets/design-system'"],
13
+ imports: ["import { DsTooltip } from '@drivenets/design-system';"],
14
14
  id: 'ds-tooltip',
15
15
  metadata: { nestable: false },
16
- };
16
+ } satisfies figma.Template;
@@ -27,7 +27,7 @@ $transition-duration: 0.2s;
27
27
  background: var(--background-action-hover-weak);
28
28
  }
29
29
 
30
- &[data-focus] {
30
+ &:focus-visible {
31
31
  position: relative;
32
32
  outline: none;
33
33
  background: var(--background-action-hover-weak);
@@ -56,7 +56,7 @@ $transition-duration: 0.2s;
56
56
  }
57
57
 
58
58
  &:hover .itemAction,
59
- &[data-focus-visible] .itemAction {
59
+ &:focus-within .itemAction {
60
60
  opacity: 1;
61
61
  }
62
62
  }
@@ -38,6 +38,9 @@ const DsTreeRoot = <T extends DsTreeNode = DsTreeNode>({
38
38
  checkedValue,
39
39
  defaultCheckedValue,
40
40
  onCheckedChange,
41
+ focusedValue,
42
+ defaultFocusedValue,
43
+ onFocusChange,
41
44
  typeahead = true,
42
45
  lazyMount = true,
43
46
  unmountOnExit,
@@ -56,6 +59,9 @@ const DsTreeRoot = <T extends DsTreeNode = DsTreeNode>({
56
59
  checkedValue={checkedValue}
57
60
  defaultCheckedValue={defaultCheckedValue}
58
61
  onCheckedChange={onCheckedChange}
62
+ focusedValue={focusedValue}
63
+ defaultFocusedValue={defaultFocusedValue}
64
+ onFocusChange={onFocusChange}
59
65
  typeahead={typeahead}
60
66
  lazyMount={lazyMount}
61
67
  unmountOnExit={unmountOnExit}
@@ -115,6 +115,22 @@ export interface DsTreeRootProps<T extends DsTreeNode = DsTreeNode> extends DsTr
115
115
  */
116
116
  onCheckedChange?: ArkTreeView.RootProps<T>['onCheckedChange'];
117
117
 
118
+ /**
119
+ * Id of the node with keyboard focus (controlled). Use with `onFocusChange`.
120
+ * When `null`, Ark treats the first node as focused for roving-tabindex purposes.
121
+ */
122
+ focusedValue?: string | null;
123
+ /**
124
+ * Id of the node focused initially when uncontrolled. When `null` (the Ark
125
+ * default), the first node receives focus for roving-tabindex purposes.
126
+ */
127
+ defaultFocusedValue?: string | null;
128
+ /**
129
+ * Called when the focused node changes. Receives the Ark focus-change details
130
+ * including the new `focusedValue` (or `null` when nothing is focused).
131
+ */
132
+ onFocusChange?: ArkTreeView.RootProps<T>['onFocusChange'];
133
+
118
134
  /**
119
135
  * Whether to enable typeahead navigation — typing characters focuses matching nodes.
120
136
  */
@@ -57,7 +57,7 @@ const colorProp = color === 'main' ? '' : figma.code` color="${color}"`;
57
57
 
58
58
  export default {
59
59
  example: figma.code`<DsTypography variant="${variant}"${colorProp}>${text}</DsTypography>`,
60
- imports: ["import { DsTypography } from '@drivenets/design-system'"],
60
+ imports: ["import { DsTypography } from '@drivenets/design-system';"],
61
61
  id: 'ds-typography',
62
62
  metadata: { nestable: true },
63
- };
63
+ } satisfies figma.Template;
@@ -10,7 +10,7 @@ import figma from 'figma';
10
10
 
11
11
  export default {
12
12
  example: figma.code`<DsUserCard name="Full Name" subtitle="subtitle" />`,
13
- imports: ["import { DsUserCard } from '@drivenets/design-system'"],
13
+ imports: ["import { DsUserCard } from '@drivenets/design-system';"],
14
14
  id: 'ds-user-card',
15
15
  metadata: { nestable: true },
16
- };
16
+ } satisfies figma.Template;
@@ -26,7 +26,13 @@ import styles from './ds-vertical-tabs.module.scss';
26
26
  * </DsVerticalTabs>
27
27
  * ```
28
28
  */
29
- const DsVerticalTabs = ({ value, onValueChange, className, style, children }: DsVerticalTabsRootProps) => {
29
+ const DsVerticalTabsRoot = ({
30
+ value,
31
+ onValueChange,
32
+ className,
33
+ style,
34
+ children,
35
+ }: DsVerticalTabsRootProps) => {
30
36
  const handleValueChange = (details: { value: string | null }) => {
31
37
  onValueChange?.(details.value);
32
38
  };
@@ -77,10 +83,11 @@ DsVerticalTabsList.displayName = 'DsVerticalTabs.List';
77
83
  DsVerticalTabsTab.displayName = 'DsVerticalTabs.Tab';
78
84
  DsVerticalTabsContent.displayName = 'DsVerticalTabs.Content';
79
85
 
80
- DsVerticalTabs.List = DsVerticalTabsList;
81
- DsVerticalTabs.Tab = DsVerticalTabsTab;
82
- DsVerticalTabs.Content = DsVerticalTabsContent;
83
-
84
- DsVerticalTabs.displayName = 'DsVerticalTabs';
86
+ const DsVerticalTabs = Object.assign(DsVerticalTabsRoot, {
87
+ displayName: 'DsVerticalTabs',
88
+ List: DsVerticalTabsList,
89
+ Tab: DsVerticalTabsTab,
90
+ Content: DsVerticalTabsContent,
91
+ });
85
92
 
86
93
  export default DsVerticalTabs;
@@ -19,7 +19,7 @@ const DEFAULT_LOCALE = Object.freeze({
19
19
  unpinButtonLabel: 'Unpin side menu',
20
20
  });
21
21
 
22
- const DsWorkspaceLayout = ({ className, fillParent = false, ...rest }: DsWorkspaceLayoutProps) => {
22
+ const DsWorkspaceLayoutRoot = ({ className, fillParent = false, ...rest }: DsWorkspaceLayoutProps) => {
23
23
  const [hasLeftSidePanel, setHasLeftSidePanel] = useState(false);
24
24
 
25
25
  const registerLeftSidePanel = useCallback(() => setHasLeftSidePanel(true), []);
@@ -132,14 +132,15 @@ Body.displayName = 'DsWorkspaceLayout.Body';
132
132
  SideMenu.displayName = 'DsWorkspaceLayout.SideMenu';
133
133
  LeftPanel.displayName = 'DsWorkspaceLayout.LeftPanel';
134
134
 
135
- DsWorkspaceLayout.Header = Header;
136
- DsWorkspaceLayout.SubHeader = SubHeader;
137
- DsWorkspaceLayout.Content = Content;
138
- DsWorkspaceLayout.Footer = Footer;
139
- DsWorkspaceLayout.Body = Body;
140
- DsWorkspaceLayout.SideMenu = SideMenu;
141
- DsWorkspaceLayout.LeftPanel = LeftPanel;
142
-
143
- DsWorkspaceLayout.displayName = 'DsWorkspaceLayout';
135
+ const DsWorkspaceLayout = Object.assign(DsWorkspaceLayoutRoot, {
136
+ displayName: 'DsWorkspaceLayout',
137
+ Header,
138
+ SubHeader,
139
+ Content,
140
+ Footer,
141
+ Body,
142
+ SideMenu,
143
+ LeftPanel,
144
+ });
144
145
 
145
146
  export default DsWorkspaceLayout;