@drivenets/design-system 0.2.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.
Files changed (346) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +1 -1
  3. package/dist/components/ds-alert-banner/ds-alert-banner.d.ts +5 -5
  4. package/dist/components/ds-alert-banner/ds-alert-banner.d.ts.map +1 -1
  5. package/dist/components/ds-autocomplete/ds-autocomplete.cjs +218 -0
  6. package/dist/components/ds-autocomplete/ds-autocomplete.d.cts +22 -0
  7. package/dist/components/ds-autocomplete/ds-autocomplete.d.cts.map +1 -0
  8. package/dist/components/ds-autocomplete/ds-autocomplete.d.ts +22 -0
  9. package/dist/components/ds-autocomplete/ds-autocomplete.d.ts.map +1 -0
  10. package/dist/components/ds-autocomplete/ds-autocomplete.js +217 -0
  11. package/dist/components/ds-autocomplete/ds-autocomplete.js.map +1 -0
  12. package/dist/components/ds-autocomplete/ds-autocomplete.module.cjs +27 -0
  13. package/dist/components/ds-autocomplete/ds-autocomplete.module.js +27 -0
  14. package/dist/components/ds-autocomplete/ds-autocomplete.module.js.map +1 -0
  15. package/dist/components/ds-autocomplete/ds-autocomplete.types.d.cts +79 -0
  16. package/dist/components/ds-autocomplete/ds-autocomplete.types.d.cts.map +1 -0
  17. package/dist/components/ds-autocomplete/ds-autocomplete.types.d.ts +80 -0
  18. package/dist/components/ds-autocomplete/ds-autocomplete.types.d.ts.map +1 -0
  19. package/dist/components/ds-autocomplete/index.cjs +1 -0
  20. package/dist/components/ds-autocomplete/index.d.ts +2 -0
  21. package/dist/components/ds-autocomplete/index.js +1 -0
  22. package/dist/components/ds-avatar/ds-avatar.module.js.map +1 -1
  23. package/dist/components/ds-avatar-group/ds-avatar-group.module.js.map +1 -1
  24. package/dist/components/ds-button/ds-button.d.cts +2 -2
  25. package/dist/components/ds-button/ds-button.d.cts.map +1 -1
  26. package/dist/components/ds-button/ds-button.d.ts +2 -2
  27. package/dist/components/ds-button/ds-button.d.ts.map +1 -1
  28. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.cjs +23 -24
  29. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.js +23 -24
  30. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.js.map +1 -1
  31. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.cjs +24 -25
  32. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.js +24 -25
  33. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.js.map +1 -1
  34. package/dist/components/ds-chip-group/hooks/use-chip-row-calculation.cjs +1 -0
  35. package/dist/components/ds-chip-group/hooks/use-chip-row-calculation.js +1 -0
  36. package/dist/components/ds-chip-group/hooks/use-chip-row-calculation.js.map +1 -1
  37. package/dist/components/ds-confirmation/ds-confirmation.cjs +20 -221
  38. package/dist/components/ds-confirmation/ds-confirmation.d.cts +22 -27
  39. package/dist/components/ds-confirmation/ds-confirmation.d.cts.map +1 -1
  40. package/dist/components/ds-confirmation/ds-confirmation.d.ts +22 -27
  41. package/dist/components/ds-confirmation/ds-confirmation.d.ts.map +1 -1
  42. package/dist/components/ds-confirmation/ds-confirmation.js +21 -221
  43. package/dist/components/ds-confirmation/ds-confirmation.js.map +1 -1
  44. package/dist/components/ds-confirmation/ds-confirmation.types.d.cts +2 -1
  45. package/dist/components/ds-confirmation/ds-confirmation.types.d.cts.map +1 -1
  46. package/dist/components/ds-confirmation/ds-confirmation.types.d.ts +2 -1
  47. package/dist/components/ds-confirmation/ds-confirmation.types.d.ts.map +1 -1
  48. package/dist/components/ds-date-input/ds-date-input.cjs +1 -1
  49. package/dist/components/ds-date-input/ds-date-input.d.cts +2 -2
  50. package/dist/components/ds-date-input/ds-date-input.d.cts.map +1 -1
  51. package/dist/components/ds-date-input/ds-date-input.d.ts +2 -2
  52. package/dist/components/ds-date-input/ds-date-input.js +1 -1
  53. package/dist/components/ds-date-input/ds-date-input.module.cjs +22 -22
  54. package/dist/components/ds-date-input/ds-date-input.module.js +22 -22
  55. package/dist/components/ds-date-input/ds-date-input.module.js.map +1 -1
  56. package/dist/components/ds-date-input/ds-date-input.utils.cjs +9 -2
  57. package/dist/components/ds-date-input/ds-date-input.utils.js +9 -2
  58. package/dist/components/ds-date-input/ds-date-input.utils.js.map +1 -1
  59. package/dist/components/ds-drawer/ds-drawer.cjs +4 -4
  60. package/dist/components/ds-drawer/ds-drawer.d.cts +9 -9
  61. package/dist/components/ds-drawer/ds-drawer.d.cts.map +1 -1
  62. package/dist/components/ds-drawer/ds-drawer.d.ts +9 -9
  63. package/dist/components/ds-drawer/ds-drawer.d.ts.map +1 -1
  64. package/dist/components/ds-drawer/ds-drawer.js +4 -4
  65. package/dist/components/ds-drawer/ds-drawer.js.map +1 -1
  66. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.cjs +1 -1
  67. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js +1 -1
  68. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.cjs +20 -20
  69. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.js +20 -20
  70. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.js.map +1 -1
  71. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.cts +1 -1
  72. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.cts.map +1 -1
  73. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.ts +1 -1
  74. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.ts.map +1 -1
  75. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.cts +2 -2
  76. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.ts +2 -2
  77. package/dist/components/ds-file-upload/utils/format-file-size.cjs +1 -1
  78. package/dist/components/ds-file-upload/utils/format-file-size.js +1 -1
  79. package/dist/components/ds-file-upload/utils/format-file-size.js.map +1 -1
  80. package/dist/components/ds-form-control/ds-form-control.cjs +2 -5
  81. package/dist/components/ds-form-control/ds-form-control.d.cts +8 -8
  82. package/dist/components/ds-form-control/ds-form-control.d.ts +8 -8
  83. package/dist/components/ds-form-control/ds-form-control.js +2 -5
  84. package/dist/components/ds-form-control/ds-form-control.js.map +1 -1
  85. package/dist/components/ds-loader/ds-loader.cjs +60 -0
  86. package/dist/components/ds-loader/ds-loader.d.cts +15 -0
  87. package/dist/components/ds-loader/ds-loader.d.cts.map +1 -0
  88. package/dist/components/ds-loader/ds-loader.d.ts +15 -0
  89. package/dist/components/ds-loader/ds-loader.d.ts.map +1 -0
  90. package/dist/components/ds-loader/ds-loader.js +59 -0
  91. package/dist/components/ds-loader/ds-loader.js.map +1 -0
  92. package/dist/components/ds-loader/ds-loader.module.cjs +15 -0
  93. package/dist/components/ds-loader/ds-loader.module.js +15 -0
  94. package/dist/components/ds-loader/ds-loader.module.js.map +1 -0
  95. package/dist/components/ds-loader/ds-loader.types.cjs +6 -0
  96. package/dist/components/ds-loader/ds-loader.types.d.cts +27 -0
  97. package/dist/components/ds-loader/ds-loader.types.d.cts.map +1 -0
  98. package/dist/components/ds-loader/ds-loader.types.d.ts +27 -0
  99. package/dist/components/ds-loader/ds-loader.types.d.ts.map +1 -0
  100. package/dist/components/ds-loader/ds-loader.types.js +6 -0
  101. package/dist/components/ds-loader/ds-loader.types.js.map +1 -0
  102. package/dist/components/ds-loader/index.cjs +2 -0
  103. package/dist/components/ds-loader/index.d.ts +2 -0
  104. package/dist/components/ds-loader/index.js +2 -0
  105. package/dist/components/ds-loader/pulsing-icon.cjs +37 -0
  106. package/dist/components/ds-loader/pulsing-icon.js +37 -0
  107. package/dist/components/ds-loader/pulsing-icon.js.map +1 -0
  108. package/dist/components/ds-loader/spinner-icon.cjs +74 -0
  109. package/dist/components/ds-loader/spinner-icon.js +74 -0
  110. package/dist/components/ds-loader/spinner-icon.js.map +1 -0
  111. package/dist/components/ds-modal/ds-modal.cjs +47 -48
  112. package/dist/components/ds-modal/ds-modal.d.cts +11 -10
  113. package/dist/components/ds-modal/ds-modal.d.cts.map +1 -1
  114. package/dist/components/ds-modal/ds-modal.d.ts +11 -10
  115. package/dist/components/ds-modal/ds-modal.d.ts.map +1 -1
  116. package/dist/components/ds-modal/ds-modal.js +47 -48
  117. package/dist/components/ds-modal/ds-modal.js.map +1 -1
  118. package/dist/components/ds-modal/ds-modal.module.cjs +24 -24
  119. package/dist/components/ds-modal/ds-modal.module.js +24 -24
  120. package/dist/components/ds-modal/ds-modal.module.js.map +1 -1
  121. package/dist/components/ds-modal/ds-modal.types.d.cts +10 -5
  122. package/dist/components/ds-modal/ds-modal.types.d.cts.map +1 -1
  123. package/dist/components/ds-modal/ds-modal.types.d.ts +10 -5
  124. package/dist/components/ds-modal/ds-modal.types.d.ts.map +1 -1
  125. package/dist/components/ds-panel/ds-panel.d.cts +2 -2
  126. package/dist/components/ds-panel/ds-panel.d.ts +2 -2
  127. package/dist/components/ds-select/ds-select.cjs +2 -2
  128. package/dist/components/ds-select/ds-select.d.cts +2 -2
  129. package/dist/components/ds-select/ds-select.d.ts +2 -2
  130. package/dist/components/ds-select/ds-select.js +2 -2
  131. package/dist/components/ds-select/ds-select.js.map +1 -1
  132. package/dist/components/ds-skeleton/ds-skeleton-circle.cjs +59 -0
  133. package/dist/components/ds-skeleton/ds-skeleton-circle.d.cts +18 -0
  134. package/dist/components/ds-skeleton/ds-skeleton-circle.d.cts.map +1 -0
  135. package/dist/components/ds-skeleton/ds-skeleton-circle.d.ts +18 -0
  136. package/dist/components/ds-skeleton/ds-skeleton-circle.d.ts.map +1 -0
  137. package/dist/components/ds-skeleton/ds-skeleton-circle.js +58 -0
  138. package/dist/components/ds-skeleton/ds-skeleton-circle.js.map +1 -0
  139. package/dist/components/ds-skeleton/ds-skeleton-rect.cjs +61 -0
  140. package/dist/components/ds-skeleton/ds-skeleton-rect.d.cts +18 -0
  141. package/dist/components/ds-skeleton/ds-skeleton-rect.d.cts.map +1 -0
  142. package/dist/components/ds-skeleton/ds-skeleton-rect.d.ts +18 -0
  143. package/dist/components/ds-skeleton/ds-skeleton-rect.d.ts.map +1 -0
  144. package/dist/components/ds-skeleton/ds-skeleton-rect.js +60 -0
  145. package/dist/components/ds-skeleton/ds-skeleton-rect.js.map +1 -0
  146. package/dist/components/ds-skeleton/ds-skeleton-text.cjs +91 -0
  147. package/dist/components/ds-skeleton/ds-skeleton-text.d.cts +21 -0
  148. package/dist/components/ds-skeleton/ds-skeleton-text.d.cts.map +1 -0
  149. package/dist/components/ds-skeleton/ds-skeleton-text.d.ts +21 -0
  150. package/dist/components/ds-skeleton/ds-skeleton-text.d.ts.map +1 -0
  151. package/dist/components/ds-skeleton/ds-skeleton-text.js +90 -0
  152. package/dist/components/ds-skeleton/ds-skeleton-text.js.map +1 -0
  153. package/dist/components/ds-skeleton/ds-skeleton.cjs +13 -0
  154. package/dist/components/ds-skeleton/ds-skeleton.config.cjs +62 -0
  155. package/dist/components/ds-skeleton/ds-skeleton.config.js +59 -0
  156. package/dist/components/ds-skeleton/ds-skeleton.config.js.map +1 -0
  157. package/dist/components/ds-skeleton/ds-skeleton.d.cts +32 -0
  158. package/dist/components/ds-skeleton/ds-skeleton.d.cts.map +1 -0
  159. package/dist/components/ds-skeleton/ds-skeleton.d.ts +32 -0
  160. package/dist/components/ds-skeleton/ds-skeleton.d.ts.map +1 -0
  161. package/dist/components/ds-skeleton/ds-skeleton.js +14 -0
  162. package/dist/components/ds-skeleton/ds-skeleton.js.map +1 -0
  163. package/dist/components/ds-skeleton/ds-skeleton.module.cjs +15 -0
  164. package/dist/components/ds-skeleton/ds-skeleton.module.js +15 -0
  165. package/dist/components/ds-skeleton/ds-skeleton.module.js.map +1 -0
  166. package/dist/components/ds-skeleton/ds-skeleton.types.cjs +8 -0
  167. package/dist/components/ds-skeleton/ds-skeleton.types.d.cts +91 -0
  168. package/dist/components/ds-skeleton/ds-skeleton.types.d.cts.map +1 -0
  169. package/dist/components/ds-skeleton/ds-skeleton.types.d.ts +93 -0
  170. package/dist/components/ds-skeleton/ds-skeleton.types.d.ts.map +1 -0
  171. package/dist/components/ds-skeleton/ds-skeleton.types.js +7 -0
  172. package/dist/components/ds-skeleton/ds-skeleton.types.js.map +1 -0
  173. package/dist/components/ds-skeleton/index.cjs +5 -0
  174. package/dist/components/ds-skeleton/index.d.ts +5 -0
  175. package/dist/components/ds-skeleton/index.js +5 -0
  176. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.cts +2 -2
  177. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts +2 -2
  178. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts.map +1 -1
  179. package/dist/components/ds-spinner/ds-spinner.cjs +43 -45
  180. package/dist/components/ds-spinner/ds-spinner.js +43 -45
  181. package/dist/components/ds-spinner/ds-spinner.js.map +1 -1
  182. package/dist/components/ds-stepper/components/ds-step-content.d.cts +2 -2
  183. package/dist/components/ds-stepper/components/ds-step-content.d.ts +2 -2
  184. package/dist/components/ds-stepper/components/ds-step-next-button.d.cts +2 -2
  185. package/dist/components/ds-stepper/components/ds-step-next-button.d.ts +2 -2
  186. package/dist/components/ds-stepper/components/ds-step.d.cts +2 -2
  187. package/dist/components/ds-stepper/components/ds-step.d.ts +2 -2
  188. package/dist/components/ds-stepper/ds-stepper.d.cts +2 -2
  189. package/dist/components/ds-stepper/ds-stepper.d.ts +2 -2
  190. package/dist/components/ds-table/components/core-table/core-table.cjs +82 -185
  191. package/dist/components/ds-table/components/core-table/core-table.js +82 -185
  192. package/dist/components/ds-table/components/core-table/core-table.js.map +1 -1
  193. package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.cjs +61 -72
  194. package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.js +61 -72
  195. package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.js.map +1 -1
  196. package/dist/components/ds-table/components/ds-table-row/ds-table-row.cjs +80 -81
  197. package/dist/components/ds-table/components/ds-table-row/ds-table-row.js +80 -81
  198. package/dist/components/ds-table/components/ds-table-row/ds-table-row.js.map +1 -1
  199. package/dist/components/ds-table/ds-table.cjs +3 -3
  200. package/dist/components/ds-table/ds-table.d.cts +2 -3
  201. package/dist/components/ds-table/ds-table.d.cts.map +1 -1
  202. package/dist/components/ds-table/ds-table.d.ts +2 -3
  203. package/dist/components/ds-table/ds-table.d.ts.map +1 -1
  204. package/dist/components/ds-table/ds-table.js +3 -3
  205. package/dist/components/ds-table/ds-table.js.map +1 -1
  206. package/dist/components/ds-table/ds-table.types.d.cts +0 -4
  207. package/dist/components/ds-table/ds-table.types.d.cts.map +1 -1
  208. package/dist/components/ds-table/ds-table.types.d.ts +0 -4
  209. package/dist/components/ds-table/ds-table.types.d.ts.map +1 -1
  210. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.cjs +7 -4
  211. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.js +7 -4
  212. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.js.map +1 -1
  213. package/dist/components/ds-table/filters/hooks/index.d.ts +1 -1
  214. package/dist/components/ds-table/filters/hooks/use-table-filters.cjs +180 -178
  215. package/dist/components/ds-table/filters/hooks/use-table-filters.d.cts +58 -25
  216. package/dist/components/ds-table/filters/hooks/use-table-filters.d.cts.map +1 -1
  217. package/dist/components/ds-table/filters/hooks/use-table-filters.d.ts +58 -25
  218. package/dist/components/ds-table/filters/hooks/use-table-filters.d.ts.map +1 -1
  219. package/dist/components/ds-table/filters/hooks/use-table-filters.js +180 -178
  220. package/dist/components/ds-table/filters/hooks/use-table-filters.js.map +1 -1
  221. package/dist/components/ds-table/filters/index.d.ts +1 -1
  222. package/dist/components/ds-table/index.d.ts +1 -1
  223. package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.cjs +37 -0
  224. package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.js +36 -0
  225. package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.js.map +1 -0
  226. package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.module.cjs +9 -0
  227. package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.module.js +9 -0
  228. package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.module.js.map +1 -0
  229. package/dist/components/ds-tabs/components/ds-tabs-content/index.cjs +1 -0
  230. package/dist/components/ds-tabs/components/ds-tabs-content/index.js +1 -0
  231. package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-indicator.module.cjs +6 -0
  232. package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-indicator.module.js +6 -0
  233. package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-indicator.module.js.map +1 -0
  234. package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.cjs +41 -0
  235. package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.js +40 -0
  236. package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.js.map +1 -0
  237. package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.module.cjs +6 -0
  238. package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.module.js +6 -0
  239. package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.module.js.map +1 -0
  240. package/dist/components/ds-tabs/components/ds-tabs-list/index.cjs +1 -0
  241. package/dist/components/ds-tabs/components/ds-tabs-list/index.js +1 -0
  242. package/dist/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.cjs +178 -0
  243. package/dist/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.js +177 -0
  244. package/dist/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.js.map +1 -0
  245. package/dist/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.module.cjs +15 -0
  246. package/dist/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.module.js +15 -0
  247. package/dist/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.module.js.map +1 -0
  248. package/dist/components/ds-tabs/components/ds-tabs-tab/index.cjs +1 -0
  249. package/dist/components/ds-tabs/components/ds-tabs-tab/index.js +1 -0
  250. package/dist/components/ds-tabs/ds-tabs.cjs +71 -0
  251. package/dist/components/ds-tabs/ds-tabs.d.cts +43 -0
  252. package/dist/components/ds-tabs/ds-tabs.d.cts.map +1 -0
  253. package/dist/components/ds-tabs/ds-tabs.d.ts +43 -0
  254. package/dist/components/ds-tabs/ds-tabs.d.ts.map +1 -0
  255. package/dist/components/ds-tabs/ds-tabs.js +70 -0
  256. package/dist/components/ds-tabs/ds-tabs.js.map +1 -0
  257. package/dist/components/ds-tabs/ds-tabs.module.cjs +6 -0
  258. package/dist/components/ds-tabs/ds-tabs.module.js +6 -0
  259. package/dist/components/ds-tabs/ds-tabs.module.js.map +1 -0
  260. package/dist/components/ds-tabs/ds-tabs.types.d.cts +91 -0
  261. package/dist/components/ds-tabs/ds-tabs.types.d.cts.map +1 -0
  262. package/dist/components/ds-tabs/ds-tabs.types.d.ts +92 -0
  263. package/dist/components/ds-tabs/ds-tabs.types.d.ts.map +1 -0
  264. package/dist/components/ds-tabs/index.cjs +1 -0
  265. package/dist/components/ds-tabs/index.d.ts +2 -0
  266. package/dist/components/ds-tabs/index.js +1 -0
  267. package/dist/components/ds-tag/ds-tag.d.cts +2 -2
  268. package/dist/components/ds-tag/ds-tag.d.ts +2 -2
  269. package/dist/components/ds-tag-filter/ds-tag-filter.d.cts +2 -2
  270. package/dist/components/ds-tag-filter/ds-tag-filter.d.ts +2 -2
  271. package/dist/components/ds-toggle/ds-toggle.d.cts +2 -2
  272. package/dist/components/ds-toggle/ds-toggle.d.ts +2 -2
  273. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.cts +5 -5
  274. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.ts +5 -5
  275. package/dist/index.cjs +24 -1
  276. package/dist/index.d.cts +15 -4
  277. package/dist/index.d.ts +20 -5
  278. package/dist/index.js +15 -2
  279. package/dist/index.min.css +1 -1
  280. package/package.json +5 -3
  281. package/src/components/ds-autocomplete/ds-autocomplete.module.scss +257 -0
  282. package/src/components/ds-autocomplete/ds-autocomplete.tsx +130 -0
  283. package/src/components/ds-autocomplete/ds-autocomplete.types.tsx +76 -0
  284. package/src/components/ds-autocomplete/index.ts +2 -0
  285. package/src/components/ds-avatar/ds-avatar.module.scss +1 -1
  286. package/src/components/ds-avatar-group/ds-avatar-group.module.scss +1 -1
  287. package/src/components/ds-button/versions/ds-button-legacy/ds-button-legacy.tsx +1 -7
  288. package/src/components/ds-button/versions/ds-button-new/ds-button-new.tsx +4 -2
  289. package/src/components/ds-chip-group/hooks/use-chip-row-calculation.ts +5 -0
  290. package/src/components/ds-confirmation/ds-confirmation.tsx +11 -115
  291. package/src/components/ds-confirmation/ds-confirmation.types.tsx +2 -1
  292. package/src/components/ds-date-input/ds-date-input.module.scss +1 -0
  293. package/src/components/ds-date-input/ds-date-input.utils.ts +16 -2
  294. package/src/components/ds-drawer/ds-drawer.tsx +4 -1
  295. package/src/components/ds-dropdown-menu/ds-dropdown-menu.module.scss +0 -1
  296. package/src/components/ds-dropdown-menu/ds-dropdown-menu.types.tsx +4 -1
  297. package/src/components/ds-file-upload/utils/format-file-size.ts +1 -1
  298. package/src/components/ds-form-control/ds-form-control.tsx +9 -2
  299. package/src/components/ds-loader/ds-loader.module.scss +57 -0
  300. package/src/components/ds-loader/ds-loader.tsx +18 -0
  301. package/src/components/ds-loader/ds-loader.types.ts +24 -0
  302. package/src/components/ds-loader/index.ts +2 -0
  303. package/src/components/ds-loader/pulsing-icon.tsx +17 -0
  304. package/src/components/ds-loader/spinner-icon.tsx +37 -0
  305. package/src/components/ds-modal/ds-modal.module.scss +123 -60
  306. package/src/components/ds-modal/ds-modal.tsx +12 -3
  307. package/src/components/ds-modal/ds-modal.types.tsx +14 -5
  308. package/src/components/ds-select/ds-select.tsx +1 -1
  309. package/src/components/ds-skeleton/ds-skeleton-circle.tsx +29 -0
  310. package/src/components/ds-skeleton/ds-skeleton-rect.tsx +36 -0
  311. package/src/components/ds-skeleton/ds-skeleton-text.tsx +49 -0
  312. package/src/components/ds-skeleton/ds-skeleton.config.ts +68 -0
  313. package/src/components/ds-skeleton/ds-skeleton.module.scss +72 -0
  314. package/src/components/ds-skeleton/ds-skeleton.tsx +9 -0
  315. package/src/components/ds-skeleton/ds-skeleton.types.ts +92 -0
  316. package/src/components/ds-skeleton/index.ts +5 -0
  317. package/src/components/ds-spinner/ds-spinner.tsx +1 -1
  318. package/src/components/ds-table/components/core-table/core-table.tsx +16 -16
  319. package/src/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.tsx +10 -13
  320. package/src/components/ds-table/components/ds-table-row/ds-table-row.tsx +0 -2
  321. package/src/components/ds-table/ds-table.tsx +6 -5
  322. package/src/components/ds-table/ds-table.types.ts +0 -5
  323. package/src/components/ds-table/filters/adapters/create-dual-range-filter-adapter.tsx +2 -4
  324. package/src/components/ds-table/filters/hooks/index.ts +1 -1
  325. package/src/components/ds-table/filters/hooks/use-table-filters.ts +118 -112
  326. package/src/components/ds-table/utils/story-data-generator.ts +7 -7
  327. package/src/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.module.scss +22 -0
  328. package/src/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.tsx +12 -0
  329. package/src/components/ds-tabs/components/ds-tabs-content/index.ts +1 -0
  330. package/src/components/ds-tabs/components/ds-tabs-list/ds-tabs-indicator.module.scss +31 -0
  331. package/src/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.module.scss +27 -0
  332. package/src/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.tsx +14 -0
  333. package/src/components/ds-tabs/components/ds-tabs-list/index.ts +1 -0
  334. package/src/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.module.scss +242 -0
  335. package/src/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.tsx +130 -0
  336. package/src/components/ds-tabs/components/ds-tabs-tab/index.ts +1 -0
  337. package/src/components/ds-tabs/ds-tabs.module.scss +14 -0
  338. package/src/components/ds-tabs/ds-tabs.tsx +46 -0
  339. package/src/components/ds-tabs/ds-tabs.types.ts +97 -0
  340. package/src/components/ds-tabs/index.ts +2 -0
  341. package/src/index.ts +4 -0
  342. package/src/styles/shared/_modal.scss +0 -123
  343. package/dist/components/ds-confirmation/ds-confirmation.module.cjs +0 -21
  344. package/dist/components/ds-confirmation/ds-confirmation.module.js +0 -21
  345. package/dist/components/ds-confirmation/ds-confirmation.module.js.map +0 -1
  346. package/src/components/ds-confirmation/ds-confirmation.module.scss +0 -58
@@ -9,24 +9,49 @@ import type {
9
9
  FilterState,
10
10
  } from '../types/filter-adapter.types';
11
11
 
12
+ export interface UseTableFiltersOptions<TData, TValue, TCellValue> {
13
+ /**
14
+ * Array of filter adapters that define filter behavior
15
+ */
16
+ filterAdapters: FilterAdapter<TData, TValue, TCellValue>[] | AnyAdapter[];
17
+
18
+ /**
19
+ * Base column definitions
20
+ */
21
+ baseColumns?: ColumnDef<TData>[];
22
+
23
+ /**
24
+ * Controlled mode: External applied filters (source of truth).
25
+ * When provided with onFiltersChange, the hook operates in controlled mode.
26
+ * Keys must match adapter IDs.
27
+ */
28
+ appliedFilters?: FilterState<TValue>;
29
+
30
+ /**
31
+ * Controlled mode: Callback when filters change.
32
+ * Called by applyFilters(), deleteChip(), clearAll().
33
+ */
34
+ onFiltersChange?: (filters: FilterState<TValue>) => void;
35
+ }
36
+
12
37
  export interface UseTableFiltersResult<TData, TValue> {
13
38
  /**
14
- * Current filter state
39
+ * Current draft filter state (uncommitted user selections)
15
40
  */
16
41
  filterState: FilterState<TValue>;
17
42
 
18
43
  /**
19
- * Column filters for TanStack Table
44
+ * Column filters (derived from applied state)
20
45
  */
21
46
  columnFilters: ColumnFilterState<TValue>[];
22
47
 
23
48
  /**
24
- * Filter chips for display
49
+ * Filter chips for display (derived from applied state)
25
50
  */
26
51
  filterChips: ChipItem[];
27
52
 
28
53
  /**
29
- * Filter navigation items with counts
54
+ * Filter navigation items with active counts
30
55
  */
31
56
  filterNavItems: FilterNavItem[];
32
57
 
@@ -36,127 +61,128 @@ export interface UseTableFiltersResult<TData, TValue> {
36
61
  enhancedColumns: ColumnDef<TData>[];
37
62
 
38
63
  /**
39
- * Handlers
64
+ * Handlers for filter operations
40
65
  */
41
66
  handlers: {
42
- /**
43
- * Update a specific filter's value
44
- */
67
+ /** Update a specific filter's draft value */
45
68
  updateFilter: (filterId: string, value: TValue) => void;
46
-
47
- /**
48
- * Apply all filters (converts to TanStack format)
49
- */
69
+ /** Commit draft state to applied state */
50
70
  applyFilters: () => void;
51
-
52
- /**
53
- * Clear all filters
54
- */
71
+ /** Clear all filters */
55
72
  clearAll: () => void;
56
-
57
- /**
58
- * Delete a specific chip
59
- */
73
+ /** Delete a specific filter chip */
60
74
  deleteChip: (chip: ChipItem) => void;
61
75
  };
62
76
 
63
77
  /**
64
- * Render function for filter modal content
78
+ * Render function for filter content
65
79
  */
66
80
  renderFilterContent: (selectedFilter: FilterNavItem) => ReactNode;
67
81
  }
68
82
 
69
83
  /**
70
- * Hook to orchestrate table filtering with adapters
71
- * Manages filter state, generates chips, handles column definitions
84
+ * Hook to orchestrate table filtering with adapters.
85
+ * Manages filter state, generates chips, and handles column definitions.
86
+ *
87
+ * **Uncontrolled mode** (default): Filters are managed internally.
88
+ * **Controlled mode**: Filters are managed externally via appliedFilters/onFiltersChange.
72
89
  *
73
- * @param filterAdapters Array of filter adapters
74
- * @param baseColumns Base column definitions (optional)
75
- * @returns Complete filter management system
90
+ * @example
91
+ * // Uncontrolled mode
92
+ * const { filterChips, handlers } = useTableFilters({
93
+ * filterAdapters: adapters,
94
+ * baseColumns: columns,
95
+ * });
96
+ *
97
+ * @example
98
+ * // Controlled mode (e.g., URL-driven filtering)
99
+ * const { filterChips, handlers } = useTableFilters({
100
+ * filterAdapters: adapters,
101
+ * baseColumns: columns,
102
+ * appliedFilters: filtersFromUrl,
103
+ * onFiltersChange: (filters) => updateUrlAndRefetch(filters),
104
+ * });
76
105
  */
77
- export function useTableFilters<TData, TValue, TCellValue>(
78
- filterAdapters: FilterAdapter<TData, TValue, TCellValue>[] | AnyAdapter[],
79
- baseColumns?: ColumnDef<TData>[],
80
- ): UseTableFiltersResult<TData, TValue> {
106
+ export function useTableFilters<TData, TValue, TCellValue>({
107
+ filterAdapters,
108
+ baseColumns,
109
+ appliedFilters: externalAppliedFilters,
110
+ onFiltersChange: setExternalAppliedFilters,
111
+ }: UseTableFiltersOptions<TData, TValue, TCellValue>): UseTableFiltersResult<TData, TValue> {
81
112
  // Internal variable just to avoid assignment issues of `any`.
82
113
  const _filterAdapters = filterAdapters as FilterAdapter<TData, TValue, TCellValue>[];
83
114
 
84
- // Initialize filter state from adapters
85
- const initialState: FilterState<TValue> = {};
86
- _filterAdapters.forEach((adapter) => {
87
- initialState[adapter.id] = adapter.initialValue;
88
- });
115
+ const isControlled = externalAppliedFilters !== undefined && setExternalAppliedFilters !== undefined;
116
+
117
+ const initialFilters = _filterAdapters.reduce<FilterState<TValue>>(
118
+ (state, adapter) => ({ ...state, [adapter.id]: adapter.initialValue }),
119
+ {},
120
+ );
121
+
122
+ const [internalAppliedFilters, setInternalAppliedFilters] = useState<FilterState<TValue>>({});
123
+ const [pendingFilters, setPendingFilters] = useState<FilterState<TValue>>({});
124
+
125
+ const appliedFilters = isControlled ? externalAppliedFilters : internalAppliedFilters;
126
+ const setAppliedFilters = isControlled ? setExternalAppliedFilters : setInternalAppliedFilters;
89
127
 
90
- const [filterState, setFilterState] = useState<FilterState<TValue>>(initialState);
91
- const [columnFilters, setColumnFilters] = useState<ColumnFilterState<TValue>[]>([]);
92
- const [filterChips, setFilterChips] = useState<ChipItem[]>([]);
128
+ const draftFilters = { ...initialFilters, ...appliedFilters, ...pendingFilters };
129
+
130
+ const columnFilters: ColumnFilterState<TValue>[] = Object.entries(appliedFilters)
131
+ .filter(([id]) => {
132
+ const adapter = _filterAdapters.find((a) => a.id === id);
133
+ return adapter ? adapter.getActiveFiltersCount(appliedFilters[id] as TValue) > 0 : false;
134
+ })
135
+ .map(([id, value]) => ({ id, value }));
136
+
137
+ const filterChips = _filterAdapters.flatMap((adapter) => {
138
+ const value = appliedFilters[adapter.id];
139
+ return value !== undefined ? adapter.toChips(value) : [];
140
+ });
93
141
 
94
- // Generate filter nav items with counts (updates as user changes filters in modal)
95
142
  const filterNavItems: FilterNavItem[] = _filterAdapters.map((adapter) => ({
96
143
  id: adapter.id,
97
144
  label: adapter.label,
98
- count: adapter.getActiveFiltersCount(filterState[adapter.id]),
145
+ count: adapter.getActiveFiltersCount(draftFilters[adapter.id] as TValue),
99
146
  }));
100
147
 
101
- // Enhance column definitions with filter functions and renderers
102
148
  const enhancedColumns: ColumnDef<TData>[] = !baseColumns
103
149
  ? []
104
150
  : baseColumns.map((col) => {
105
151
  const adapter = _filterAdapters.find((a) => a.id === col.id);
106
-
107
- if (adapter) {
108
- const cellRenderer = adapter.cellRenderer;
109
- return {
110
- ...col,
111
- filterFn: adapter.columnFilterFn,
112
- ...(cellRenderer && {
113
- cell: (info: CellContext<TData, TCellValue>) => cellRenderer(info.getValue()),
114
- }),
115
- };
152
+ if (!adapter) {
153
+ return col;
116
154
  }
117
155
 
118
- return col;
156
+ const cellRenderer = adapter.cellRenderer;
157
+ return {
158
+ ...col,
159
+ filterFn: adapter.columnFilterFn,
160
+ ...(cellRenderer && {
161
+ cell: (info: CellContext<TData, TCellValue>) => cellRenderer(info.getValue()),
162
+ }),
163
+ };
119
164
  });
120
165
 
121
- // Handlers
122
166
  const updateFilter = (filterId: string, value: TValue) => {
123
- setFilterState((prev) => ({
124
- ...prev,
125
- [filterId]: value,
126
- }));
167
+ setPendingFilters((prev) => ({ ...prev, [filterId]: value }));
127
168
  };
128
169
 
129
170
  const applyFilters = () => {
130
- const filters: ColumnFilterState<TValue>[] = [];
131
- const chips: ChipItem[] = [];
132
-
133
- _filterAdapters.forEach((adapter) => {
134
- const value = filterState[adapter.id];
135
-
171
+ const filtersToApply = _filterAdapters.reduce<FilterState<TValue>>((acc, adapter) => {
172
+ const value = draftFilters[adapter.id] as TValue;
136
173
  if (adapter.getActiveFiltersCount(value) > 0) {
137
- filters.push({
138
- id: adapter.id,
139
- value,
140
- });
174
+ acc[adapter.id] = value;
141
175
  }
176
+ return acc;
177
+ }, {});
142
178
 
143
- // Generate chips from current filter value
144
- const adapterChips = adapter.toChips(value);
145
- chips.push(...adapterChips);
146
- });
147
-
148
- setColumnFilters(filters);
149
- setFilterChips(chips);
179
+ setAppliedFilters(filtersToApply);
180
+ setPendingFilters({});
150
181
  };
151
182
 
152
183
  const clearAll = () => {
153
- const resetState: FilterState<TValue> = {};
154
- _filterAdapters.forEach((adapter) => {
155
- resetState[adapter.id] = adapter.reset();
156
- });
157
- setFilterState(resetState);
158
- setColumnFilters([]);
159
- setFilterChips([]);
184
+ setPendingFilters({});
185
+ setAppliedFilters({});
160
186
  };
161
187
 
162
188
  const deleteChip = (chip: ChipItem) => {
@@ -170,39 +196,19 @@ export function useTableFilters<TData, TValue, TCellValue>(
170
196
  return;
171
197
  }
172
198
 
173
- const currentValue = filterState[filterKey];
174
- const newValue = adapter.fromChip(chip, currentValue);
175
-
176
- // Regenerate chips to check if this was the last one
177
- const chips: ChipItem[] = [];
178
- _filterAdapters.forEach((adapter) => {
179
- const value = adapter.id === filterKey ? newValue : filterState[adapter.id];
180
- const adapterChips = adapter.toChips(value);
181
- chips.push(...adapterChips);
182
- });
183
-
184
- // If no chips left, clear all filters
185
- if (chips.length === 0) {
186
- clearAll();
199
+ const currentValue = appliedFilters[filterKey];
200
+ if (currentValue === undefined) {
187
201
  return;
188
202
  }
189
203
 
190
- // Otherwise, update state and filters
191
- setFilterState((prev) => ({
192
- ...prev,
193
- [filterKey]: newValue,
194
- }));
195
-
196
- // Update column filters
197
- if (adapter.getActiveFiltersCount(newValue) === 0) {
198
- setColumnFilters((prev) => prev.filter((cf) => cf.id !== filterKey));
199
- } else {
200
- setColumnFilters((prev) =>
201
- prev.map((cf) => (cf.id === filterKey ? { id: filterKey, value: newValue } : cf)),
202
- );
203
- }
204
+ const newValue = adapter.fromChip(chip, currentValue);
205
+
206
+ const newFilters =
207
+ adapter.getActiveFiltersCount(newValue) === 0
208
+ ? Object.fromEntries(Object.entries(appliedFilters).filter(([key]) => key !== filterKey))
209
+ : { ...appliedFilters, [filterKey]: newValue };
204
210
 
205
- setFilterChips(chips);
211
+ setAppliedFilters(newFilters);
206
212
  };
207
213
 
208
214
  const renderFilterContent = (selectedFilter: FilterNavItem) => {
@@ -211,14 +217,14 @@ export function useTableFilters<TData, TValue, TCellValue>(
211
217
  return null;
212
218
  }
213
219
 
214
- const value = filterState[adapter.id];
220
+ const value = draftFilters[adapter.id] as TValue;
215
221
  const onChange = (newValue: TValue) => updateFilter(adapter.id, newValue);
216
222
 
217
223
  return adapter.renderFilter(value, onChange);
218
224
  };
219
225
 
220
226
  return {
221
- filterState,
227
+ filterState: draftFilters,
222
228
  columnFilters,
223
229
  filterChips,
224
230
  filterNavItems,
@@ -43,23 +43,23 @@ export const generatePersonData = (
43
43
  const statuses: Status[] = ['single', 'relationship', 'complicated'];
44
44
 
45
45
  // Generate all data first for sorting
46
- const allData: Person[] = Array.from({ length: totalRows }).map((_, index) => {
46
+ const allData = Array.from({ length: totalRows }).map((_, index) => {
47
47
  const i = index + 1;
48
48
  return {
49
49
  id: i.toString(),
50
- firstName: firstNames[i % firstNames.length],
51
- lastName: lastNames[i % lastNames.length],
50
+ firstName: firstNames[i % firstNames.length] as string,
51
+ lastName: lastNames[i % lastNames.length] as string,
52
52
  age: 20 + (i % 50),
53
53
  visits: Math.floor(Math.random() * 500) + 1,
54
- status: statuses[i % statuses.length],
54
+ status: statuses[i % statuses.length] as Status,
55
55
  progress: Math.floor(Math.random() * 100) + 1,
56
- };
56
+ } satisfies Person;
57
57
  });
58
58
 
59
59
  // Apply sorting if provided
60
60
  const sortedData = [...allData];
61
- if (sorting.length) {
62
- const sort = sorting[0];
61
+ const sort = sorting[0];
62
+ if (sort) {
63
63
  const { id, desc } = sort;
64
64
  sortedData.sort((a, b) => {
65
65
  const aValue = a[id as keyof Person];
@@ -0,0 +1,22 @@
1
+ $animation-duration: 0.2s;
2
+ $animation-translate: -4px;
3
+
4
+ .tabContent {
5
+ padding: var(--spacing-standard) 0;
6
+ animation: fadeIn $animation-duration ease-in;
7
+
8
+ &[data-state='closed'] {
9
+ display: none;
10
+ }
11
+ }
12
+
13
+ @keyframes fadeIn {
14
+ from {
15
+ opacity: 0;
16
+ transform: translateY($animation-translate);
17
+ }
18
+ to {
19
+ opacity: 1;
20
+ transform: translateY(0);
21
+ }
22
+ }
@@ -0,0 +1,12 @@
1
+ import { Tabs } from '@ark-ui/react/tabs';
2
+ import classNames from 'classnames';
3
+ import type { DsTabsContentProps } from '../../ds-tabs.types';
4
+ import styles from './ds-tabs-content.module.scss';
5
+
6
+ export const DsTabsContent = ({ value, className, style, children }: DsTabsContentProps) => {
7
+ return (
8
+ <Tabs.Content value={value} className={classNames(styles.tabContent, className)} style={style}>
9
+ {children}
10
+ </Tabs.Content>
11
+ );
12
+ };
@@ -0,0 +1 @@
1
+ export { DsTabsContent } from './ds-tabs-content';
@@ -0,0 +1,31 @@
1
+ $indicator-border-radius: 4px;
2
+ $indicator-thickness: 2px;
3
+ $indicator-offset: -4px;
4
+ $transition-duration: 0.2s;
5
+
6
+ .indicator {
7
+ position: absolute;
8
+ background: var(--color-background-selected);
9
+ transition:
10
+ left $transition-duration ease-in-out,
11
+ top $transition-duration ease-in-out,
12
+ width $transition-duration ease-in-out,
13
+ height $transition-duration ease-in-out,
14
+ opacity $transition-duration ease-in-out;
15
+ border-radius: $indicator-border-radius;
16
+ pointer-events: none;
17
+
18
+ [data-orientation='horizontal'] & {
19
+ bottom: $indicator-offset;
20
+ height: $indicator-thickness;
21
+ left: var(--left);
22
+ width: var(--width);
23
+ }
24
+
25
+ [data-orientation='vertical'] & {
26
+ left: 0;
27
+ width: $indicator-thickness;
28
+ top: var(--top);
29
+ height: var(--height);
30
+ }
31
+ }
@@ -0,0 +1,27 @@
1
+ $border-width: 1px;
2
+
3
+ .tabList {
4
+ display: flex;
5
+ position: relative;
6
+
7
+ [data-orientation='horizontal'] & {
8
+ flex-direction: row;
9
+ align-items: center;
10
+ border-bottom: $border-width solid var(--color-border-main);
11
+ gap: var(--spacing-xs);
12
+ }
13
+
14
+ [data-orientation='vertical'] & {
15
+ flex-direction: column;
16
+ align-items: stretch;
17
+ border-right: $border-width solid var(--color-border-main);
18
+ }
19
+
20
+ [data-orientation='vertical'][data-size='medium'] & {
21
+ gap: var(--spacing-xs);
22
+ }
23
+
24
+ [data-orientation='vertical'][data-size='small'] & {
25
+ gap: var(--spacing-3xs);
26
+ }
27
+ }
@@ -0,0 +1,14 @@
1
+ import { Tabs } from '@ark-ui/react/tabs';
2
+ import classNames from 'classnames';
3
+ import type { DsTabsListProps } from '../../ds-tabs.types';
4
+ import styles from './ds-tabs-list.module.scss';
5
+ import indicatorStyles from './ds-tabs-indicator.module.scss';
6
+
7
+ export const DsTabsList = ({ className, style, children }: DsTabsListProps) => {
8
+ return (
9
+ <Tabs.List className={classNames(styles.tabList, className)} style={style}>
10
+ {children}
11
+ <Tabs.Indicator className={indicatorStyles.indicator} />
12
+ </Tabs.List>
13
+ );
14
+ };
@@ -0,0 +1 @@
1
+ export { DsTabsList } from './ds-tabs-list';