@drivenets/design-system 0.0.5 → 0.2.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 (340) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/components/ds-alert-banner/ds-alert-banner.d.ts +5 -5
  3. package/dist/components/ds-alert-banner/ds-alert-banner.d.ts.map +1 -1
  4. package/dist/components/ds-avatar/ds-avatar.cjs +98 -0
  5. package/dist/components/ds-avatar/ds-avatar.d.cts +12 -0
  6. package/dist/components/ds-avatar/ds-avatar.d.cts.map +1 -0
  7. package/dist/components/ds-avatar/ds-avatar.d.ts +12 -0
  8. package/dist/components/ds-avatar/ds-avatar.d.ts.map +1 -0
  9. package/dist/components/ds-avatar/ds-avatar.js +97 -0
  10. package/dist/components/ds-avatar/ds-avatar.js.map +1 -0
  11. package/dist/components/ds-avatar/ds-avatar.module.cjs +17 -0
  12. package/dist/components/ds-avatar/ds-avatar.module.js +17 -0
  13. package/dist/components/ds-avatar/ds-avatar.module.js.map +1 -0
  14. package/dist/components/ds-avatar/ds-avatar.types.d.cts +44 -0
  15. package/dist/components/ds-avatar/ds-avatar.types.d.cts.map +1 -0
  16. package/dist/components/ds-avatar/ds-avatar.types.d.ts +44 -0
  17. package/dist/components/ds-avatar/ds-avatar.types.d.ts.map +1 -0
  18. package/dist/components/ds-avatar/index.cjs +1 -0
  19. package/dist/components/ds-avatar/index.d.ts +2 -0
  20. package/dist/components/ds-avatar/index.js +1 -0
  21. package/dist/components/ds-avatar-group/ds-avatar-group.cjs +93 -0
  22. package/dist/components/ds-avatar-group/ds-avatar-group.d.cts +12 -0
  23. package/dist/components/ds-avatar-group/ds-avatar-group.d.cts.map +1 -0
  24. package/dist/components/ds-avatar-group/ds-avatar-group.d.ts +12 -0
  25. package/dist/components/ds-avatar-group/ds-avatar-group.d.ts.map +1 -0
  26. package/dist/components/ds-avatar-group/ds-avatar-group.js +92 -0
  27. package/dist/components/ds-avatar-group/ds-avatar-group.js.map +1 -0
  28. package/dist/components/ds-avatar-group/ds-avatar-group.module.cjs +19 -0
  29. package/dist/components/ds-avatar-group/ds-avatar-group.module.js +19 -0
  30. package/dist/components/ds-avatar-group/ds-avatar-group.module.js.map +1 -0
  31. package/dist/components/ds-avatar-group/ds-avatar-group.types.d.cts +31 -0
  32. package/dist/components/ds-avatar-group/ds-avatar-group.types.d.cts.map +1 -0
  33. package/dist/components/ds-avatar-group/ds-avatar-group.types.d.ts +32 -0
  34. package/dist/components/ds-avatar-group/ds-avatar-group.types.d.ts.map +1 -0
  35. package/dist/components/ds-avatar-group/index.cjs +1 -0
  36. package/dist/components/ds-avatar-group/index.d.ts +2 -0
  37. package/dist/components/ds-avatar-group/index.js +1 -0
  38. package/dist/components/ds-button/ds-button.d.cts +2 -2
  39. package/dist/components/ds-button/ds-button.d.ts +2 -2
  40. package/dist/components/ds-button/ds-button.d.ts.map +1 -1
  41. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.module.cjs +18 -18
  42. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.module.js +18 -18
  43. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.module.js.map +1 -1
  44. package/dist/components/ds-chip/ds-chip.cjs +2 -1
  45. package/dist/components/ds-chip/ds-chip.d.cts +2 -1
  46. package/dist/components/ds-chip/ds-chip.d.cts.map +1 -1
  47. package/dist/components/ds-chip/ds-chip.d.ts +2 -1
  48. package/dist/components/ds-chip/ds-chip.d.ts.map +1 -1
  49. package/dist/components/ds-chip/ds-chip.js +2 -1
  50. package/dist/components/ds-chip/ds-chip.js.map +1 -1
  51. package/dist/components/ds-chip/ds-chip.types.d.cts +13 -0
  52. package/dist/components/ds-chip/ds-chip.types.d.cts.map +1 -1
  53. package/dist/components/ds-chip/ds-chip.types.d.ts +13 -0
  54. package/dist/components/ds-chip/ds-chip.types.d.ts.map +1 -1
  55. package/dist/components/ds-chip-group/ds-chip-group.cjs +2 -2
  56. package/dist/components/ds-chip-group/ds-chip-group.d.cts +2 -2
  57. package/dist/components/ds-chip-group/ds-chip-group.d.ts +2 -2
  58. package/dist/components/ds-chip-group/ds-chip-group.js +2 -2
  59. package/dist/components/ds-chip-group/ds-chip-group.js.map +1 -1
  60. package/dist/components/ds-chip-group/ds-chip-group.types.d.cts +9 -0
  61. package/dist/components/ds-chip-group/ds-chip-group.types.d.cts.map +1 -1
  62. package/dist/components/ds-chip-group/ds-chip-group.types.d.ts +9 -0
  63. package/dist/components/ds-chip-group/ds-chip-group.types.d.ts.map +1 -1
  64. package/dist/components/ds-confirmation/ds-confirmation.d.cts +8 -8
  65. package/dist/components/ds-confirmation/ds-confirmation.d.cts.map +1 -1
  66. package/dist/components/ds-confirmation/ds-confirmation.d.ts +8 -8
  67. package/dist/components/ds-date-input/ds-date-input.cjs +352 -0
  68. package/dist/components/ds-date-input/ds-date-input.d.cts +31 -0
  69. package/dist/components/ds-date-input/ds-date-input.d.cts.map +1 -0
  70. package/dist/components/ds-date-input/ds-date-input.d.ts +31 -0
  71. package/dist/components/ds-date-input/ds-date-input.d.ts.map +1 -0
  72. package/dist/components/ds-date-input/ds-date-input.js +351 -0
  73. package/dist/components/ds-date-input/ds-date-input.js.map +1 -0
  74. package/dist/components/ds-date-input/ds-date-input.module.cjs +29 -0
  75. package/dist/components/ds-date-input/ds-date-input.module.js +29 -0
  76. package/dist/components/ds-date-input/ds-date-input.module.js.map +1 -0
  77. package/dist/components/ds-date-input/ds-date-input.types.d.cts +92 -0
  78. package/dist/components/ds-date-input/ds-date-input.types.d.cts.map +1 -0
  79. package/dist/components/ds-date-input/ds-date-input.types.d.ts +92 -0
  80. package/dist/components/ds-date-input/ds-date-input.types.d.ts.map +1 -0
  81. package/dist/components/ds-date-input/ds-date-input.utils.cjs +169 -0
  82. package/dist/components/ds-date-input/ds-date-input.utils.js +164 -0
  83. package/dist/components/ds-date-input/ds-date-input.utils.js.map +1 -0
  84. package/dist/components/ds-date-input/index.cjs +1 -0
  85. package/dist/components/ds-date-input/index.d.ts +2 -0
  86. package/dist/components/ds-date-input/index.js +1 -0
  87. package/dist/components/ds-divider/ds-divider.cjs +47 -0
  88. package/dist/components/ds-divider/ds-divider.d.cts +8 -0
  89. package/dist/components/ds-divider/ds-divider.d.cts.map +1 -0
  90. package/dist/components/ds-divider/ds-divider.d.ts +8 -0
  91. package/dist/components/ds-divider/ds-divider.d.ts.map +1 -0
  92. package/dist/components/ds-divider/ds-divider.js +46 -0
  93. package/dist/components/ds-divider/ds-divider.js.map +1 -0
  94. package/dist/components/ds-divider/ds-divider.module.cjs +10 -0
  95. package/dist/components/ds-divider/ds-divider.module.js +10 -0
  96. package/dist/components/ds-divider/ds-divider.module.js.map +1 -0
  97. package/dist/components/ds-divider/ds-divider.types.d.cts +25 -0
  98. package/dist/components/ds-divider/ds-divider.types.d.cts.map +1 -0
  99. package/dist/components/ds-divider/ds-divider.types.d.ts +25 -0
  100. package/dist/components/ds-divider/ds-divider.types.d.ts.map +1 -0
  101. package/dist/components/ds-divider/index.cjs +1 -0
  102. package/dist/components/ds-divider/index.d.ts +2 -0
  103. package/dist/components/ds-divider/index.js +1 -0
  104. package/dist/components/ds-drawer/ds-drawer.d.ts +9 -9
  105. package/dist/components/ds-drawer/ds-drawer.js +2 -2
  106. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.cjs +80 -24
  107. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.cts +1 -0
  108. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.cts.map +1 -1
  109. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.ts +1 -0
  110. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.ts.map +1 -1
  111. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js +83 -27
  112. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js.map +1 -1
  113. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.cjs +20 -18
  114. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.js +20 -18
  115. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.js.map +1 -1
  116. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.cts +5 -1
  117. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.cts.map +1 -1
  118. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.ts +5 -1
  119. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.ts.map +1 -1
  120. package/dist/components/ds-dropdown-menu/index.d.ts +1 -1
  121. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.cts +2 -2
  122. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.ts +2 -2
  123. package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.cjs +2 -2
  124. package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.js +2 -2
  125. package/dist/components/ds-form-control/ds-form-control.cjs +3 -0
  126. package/dist/components/ds-form-control/ds-form-control.d.cts +9 -7
  127. package/dist/components/ds-form-control/ds-form-control.d.cts.map +1 -1
  128. package/dist/components/ds-form-control/ds-form-control.d.ts +10 -7
  129. package/dist/components/ds-form-control/ds-form-control.d.ts.map +1 -1
  130. package/dist/components/ds-form-control/ds-form-control.js +3 -0
  131. package/dist/components/ds-form-control/ds-form-control.js.map +1 -1
  132. package/dist/components/ds-modal/ds-modal.d.cts +8 -8
  133. package/dist/components/ds-modal/ds-modal.d.cts.map +1 -1
  134. package/dist/components/ds-modal/ds-modal.d.ts +8 -8
  135. package/dist/components/ds-modal/ds-modal.d.ts.map +1 -1
  136. package/dist/components/ds-panel/ds-panel.d.cts +2 -2
  137. package/dist/components/ds-panel/ds-panel.d.ts +2 -2
  138. package/dist/components/ds-radio-group/ds-radio-group.types.d.cts +1 -1
  139. package/dist/components/ds-radio-group/ds-radio-group.types.d.cts.map +1 -1
  140. package/dist/components/ds-radio-group/ds-radio-group.types.d.ts +1 -1
  141. package/dist/components/ds-radio-group/ds-radio-group.types.d.ts.map +1 -1
  142. package/dist/components/ds-select/ds-select.d.cts +2 -2
  143. package/dist/components/ds-select/ds-select.d.ts +2 -2
  144. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.cts +2 -2
  145. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts +2 -2
  146. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts.map +1 -1
  147. package/dist/components/ds-stepper/components/ds-step-content.d.cts +2 -2
  148. package/dist/components/ds-stepper/components/ds-step-content.d.ts +2 -2
  149. package/dist/components/ds-stepper/components/ds-step-next-button.d.cts +2 -2
  150. package/dist/components/ds-stepper/components/ds-step-next-button.d.ts +2 -2
  151. package/dist/components/ds-stepper/components/ds-step.d.cts +2 -2
  152. package/dist/components/ds-stepper/components/ds-step.d.ts +2 -2
  153. package/dist/components/ds-stepper/ds-stepper.d.cts +2 -2
  154. package/dist/components/ds-stepper/ds-stepper.d.ts +2 -2
  155. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.cts +1 -0
  156. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.cts.map +1 -1
  157. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.ts +1 -1
  158. package/dist/components/ds-table/ds-table.d.cts +2 -2
  159. package/dist/components/ds-table/ds-table.d.ts +2 -2
  160. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.cjs +55 -0
  161. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.d.cts +49 -0
  162. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.d.cts.map +1 -0
  163. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.d.ts +50 -0
  164. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.d.ts.map +1 -0
  165. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.js +55 -0
  166. package/dist/components/ds-table/filters/adapters/create-checkbox-filter-adapter.js.map +1 -0
  167. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.cjs +87 -0
  168. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.d.cts +44 -0
  169. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.d.cts.map +1 -0
  170. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.d.ts +44 -0
  171. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.d.ts.map +1 -0
  172. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.js +87 -0
  173. package/dist/components/ds-table/filters/adapters/create-dual-range-filter-adapter.js.map +1 -0
  174. package/dist/components/ds-table/filters/adapters/create-filter-adapter.cjs +83 -0
  175. package/dist/components/ds-table/filters/adapters/create-filter-adapter.d.cts +111 -0
  176. package/dist/components/ds-table/filters/adapters/create-filter-adapter.d.cts.map +1 -0
  177. package/dist/components/ds-table/filters/adapters/create-filter-adapter.d.ts +111 -0
  178. package/dist/components/ds-table/filters/adapters/create-filter-adapter.d.ts.map +1 -0
  179. package/dist/components/ds-table/filters/adapters/create-filter-adapter.js +83 -0
  180. package/dist/components/ds-table/filters/adapters/create-filter-adapter.js.map +1 -0
  181. package/dist/components/ds-table/filters/adapters/index.cjs +3 -0
  182. package/dist/components/ds-table/filters/adapters/index.d.ts +3 -0
  183. package/dist/components/ds-table/filters/adapters/index.js +3 -0
  184. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.cjs +22 -0
  185. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.cts +17 -0
  186. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.cts.map +1 -0
  187. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.ts +18 -0
  188. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.d.ts.map +1 -0
  189. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.js +22 -0
  190. package/dist/components/ds-table/filters/components/checkbox-filter/checkbox-filter.js.map +1 -0
  191. package/dist/components/ds-table/filters/components/checkbox-filter/index.cjs +1 -0
  192. package/dist/components/ds-table/filters/components/checkbox-filter/index.d.ts +1 -0
  193. package/dist/components/ds-table/filters/components/checkbox-filter/index.js +1 -0
  194. package/dist/components/ds-table/filters/components/range-filter/index.cjs +1 -0
  195. package/dist/components/ds-table/filters/components/range-filter/index.d.ts +1 -0
  196. package/dist/components/ds-table/filters/components/range-filter/index.js +1 -0
  197. package/dist/components/ds-table/filters/components/range-filter/range-filter.cjs +177 -0
  198. package/dist/components/ds-table/filters/components/range-filter/range-filter.d.cts +14 -0
  199. package/dist/components/ds-table/filters/components/range-filter/range-filter.d.cts.map +1 -0
  200. package/dist/components/ds-table/filters/components/range-filter/range-filter.d.ts +16 -0
  201. package/dist/components/ds-table/filters/components/range-filter/range-filter.d.ts.map +1 -0
  202. package/dist/components/ds-table/filters/components/range-filter/range-filter.js +177 -0
  203. package/dist/components/ds-table/filters/components/range-filter/range-filter.js.map +1 -0
  204. package/dist/components/ds-table/filters/components/range-filter/range-filter.module.cjs +11 -0
  205. package/dist/components/ds-table/filters/components/range-filter/range-filter.module.js +11 -0
  206. package/dist/components/ds-table/filters/components/range-filter/range-filter.module.js.map +1 -0
  207. package/dist/components/ds-table/filters/hooks/index.cjs +1 -0
  208. package/dist/components/ds-table/filters/hooks/index.d.ts +1 -0
  209. package/dist/components/ds-table/filters/hooks/index.js +1 -0
  210. package/dist/components/ds-table/filters/hooks/use-table-filters.cjs +211 -0
  211. package/dist/components/ds-table/filters/hooks/use-table-filters.d.cts +65 -0
  212. package/dist/components/ds-table/filters/hooks/use-table-filters.d.cts.map +1 -0
  213. package/dist/components/ds-table/filters/hooks/use-table-filters.d.ts +66 -0
  214. package/dist/components/ds-table/filters/hooks/use-table-filters.d.ts.map +1 -0
  215. package/dist/components/ds-table/filters/hooks/use-table-filters.js +211 -0
  216. package/dist/components/ds-table/filters/hooks/use-table-filters.js.map +1 -0
  217. package/dist/components/ds-table/filters/index.cjs +6 -0
  218. package/dist/components/ds-table/filters/index.d.ts +11 -0
  219. package/dist/components/ds-table/filters/index.js +6 -0
  220. package/dist/components/ds-table/filters/types/filter-adapter.types.d.cts +101 -0
  221. package/dist/components/ds-table/filters/types/filter-adapter.types.d.cts.map +1 -0
  222. package/dist/components/ds-table/filters/types/filter-adapter.types.d.ts +102 -0
  223. package/dist/components/ds-table/filters/types/filter-adapter.types.d.ts.map +1 -0
  224. package/dist/components/ds-table/index.cjs +5 -0
  225. package/dist/components/ds-table/index.d.ts +8 -0
  226. package/dist/components/ds-table/index.js +5 -0
  227. package/dist/components/ds-tag/ds-tag.cjs +254 -0
  228. package/dist/components/ds-tag/ds-tag.d.cts +25 -0
  229. package/dist/components/ds-tag/ds-tag.d.cts.map +1 -0
  230. package/dist/components/ds-tag/ds-tag.d.ts +25 -0
  231. package/dist/components/ds-tag/ds-tag.d.ts.map +1 -0
  232. package/dist/components/ds-tag/ds-tag.js +253 -0
  233. package/dist/components/ds-tag/ds-tag.js.map +1 -0
  234. package/dist/components/ds-tag/ds-tag.module.cjs +17 -0
  235. package/dist/components/ds-tag/ds-tag.module.js +17 -0
  236. package/dist/components/ds-tag/ds-tag.module.js.map +1 -0
  237. package/dist/components/ds-tag/ds-tag.types.d.cts +68 -0
  238. package/dist/components/ds-tag/ds-tag.types.d.cts.map +1 -0
  239. package/dist/components/ds-tag/ds-tag.types.d.ts +68 -0
  240. package/dist/components/ds-tag/ds-tag.types.d.ts.map +1 -0
  241. package/dist/components/ds-tag/index.cjs +1 -0
  242. package/dist/components/ds-tag/index.d.ts +2 -0
  243. package/dist/components/ds-tag/index.js +1 -0
  244. package/dist/components/ds-tag-filter/ds-tag-filter.cjs +325 -0
  245. package/dist/components/ds-tag-filter/ds-tag-filter.d.cts +24 -0
  246. package/dist/components/ds-tag-filter/ds-tag-filter.d.cts.map +1 -0
  247. package/dist/components/ds-tag-filter/ds-tag-filter.d.ts +24 -0
  248. package/dist/components/ds-tag-filter/ds-tag-filter.d.ts.map +1 -0
  249. package/dist/components/ds-tag-filter/ds-tag-filter.js +324 -0
  250. package/dist/components/ds-tag-filter/ds-tag-filter.js.map +1 -0
  251. package/dist/components/ds-tag-filter/ds-tag-filter.module.cjs +17 -0
  252. package/dist/components/ds-tag-filter/ds-tag-filter.module.js +17 -0
  253. package/dist/components/ds-tag-filter/ds-tag-filter.module.js.map +1 -0
  254. package/dist/components/ds-tag-filter/ds-tag-filter.types.d.cts +71 -0
  255. package/dist/components/ds-tag-filter/ds-tag-filter.types.d.cts.map +1 -0
  256. package/dist/components/ds-tag-filter/ds-tag-filter.types.d.ts +72 -0
  257. package/dist/components/ds-tag-filter/ds-tag-filter.types.d.ts.map +1 -0
  258. package/dist/components/ds-tag-filter/hooks/use-tag-overflow-calculation.cjs +137 -0
  259. package/dist/components/ds-tag-filter/hooks/use-tag-overflow-calculation.js +137 -0
  260. package/dist/components/ds-tag-filter/hooks/use-tag-overflow-calculation.js.map +1 -0
  261. package/dist/components/ds-tag-filter/index.cjs +1 -0
  262. package/dist/components/ds-tag-filter/index.d.ts +2 -0
  263. package/dist/components/ds-tag-filter/index.js +1 -0
  264. package/dist/components/ds-tag-filter/utils.cjs +54 -0
  265. package/dist/components/ds-tag-filter/utils.js +52 -0
  266. package/dist/components/ds-tag-filter/utils.js.map +1 -0
  267. package/dist/components/ds-text-input/ds-text-input.js +2 -2
  268. package/dist/components/ds-toggle/ds-toggle.cjs +192 -0
  269. package/dist/components/ds-toggle/ds-toggle.d.cts +24 -0
  270. package/dist/components/ds-toggle/ds-toggle.d.cts.map +1 -0
  271. package/dist/components/ds-toggle/ds-toggle.d.ts +24 -0
  272. package/dist/components/ds-toggle/ds-toggle.d.ts.map +1 -0
  273. package/dist/components/ds-toggle/ds-toggle.js +191 -0
  274. package/dist/components/ds-toggle/ds-toggle.js.map +1 -0
  275. package/dist/components/ds-toggle/ds-toggle.module.cjs +13 -0
  276. package/dist/components/ds-toggle/ds-toggle.module.js +13 -0
  277. package/dist/components/ds-toggle/ds-toggle.module.js.map +1 -0
  278. package/dist/components/ds-toggle/ds-toggle.types.d.cts +67 -0
  279. package/dist/components/ds-toggle/ds-toggle.types.d.cts.map +1 -0
  280. package/dist/components/ds-toggle/ds-toggle.types.d.ts +67 -0
  281. package/dist/components/ds-toggle/ds-toggle.types.d.ts.map +1 -0
  282. package/dist/components/ds-toggle/index.cjs +1 -0
  283. package/dist/components/ds-toggle/index.d.ts +2 -0
  284. package/dist/components/ds-toggle/index.js +1 -0
  285. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.cts +5 -5
  286. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.ts +5 -5
  287. package/dist/index.cjs +31 -2
  288. package/dist/index.d.cts +23 -2
  289. package/dist/index.d.ts +30 -2
  290. package/dist/index.js +21 -3
  291. package/dist/index.min.css +1 -1
  292. package/package.json +7 -2
  293. package/src/components/ds-avatar/_mixins.scss +45 -0
  294. package/src/components/ds-avatar/ds-avatar.module.scss +52 -0
  295. package/src/components/ds-avatar/ds-avatar.tsx +42 -0
  296. package/src/components/ds-avatar/ds-avatar.types.ts +41 -0
  297. package/src/components/ds-avatar/index.ts +2 -0
  298. package/src/components/ds-avatar-group/ds-avatar-group.module.scss +70 -0
  299. package/src/components/ds-avatar-group/ds-avatar-group.tsx +51 -0
  300. package/src/components/ds-avatar-group/ds-avatar-group.types.ts +27 -0
  301. package/src/components/ds-avatar-group/index.ts +2 -0
  302. package/src/components/ds-button/versions/ds-button-new/ds-button-new.module.scss +0 -1
  303. package/src/components/ds-chip/ds-chip.tsx +2 -1
  304. package/src/components/ds-chip/ds-chip.types.tsx +13 -0
  305. package/src/components/ds-chip/index.tsx +8 -0
  306. package/src/components/ds-chip-group/ds-chip-group.tsx +2 -2
  307. package/src/components/ds-chip-group/ds-chip-group.types.ts +8 -0
  308. package/src/components/ds-chip-group/index.ts +1 -0
  309. package/src/components/ds-date-input/ds-date-input.module.scss +246 -0
  310. package/src/components/ds-date-input/ds-date-input.tsx +309 -0
  311. package/src/components/ds-date-input/ds-date-input.types.tsx +104 -0
  312. package/src/components/ds-date-input/ds-date-input.utils.ts +242 -0
  313. package/src/components/ds-date-input/index.ts +2 -0
  314. package/src/components/ds-divider/ds-divider.module.scss +21 -0
  315. package/src/components/ds-divider/ds-divider.tsx +22 -0
  316. package/src/components/ds-divider/ds-divider.types.ts +21 -0
  317. package/src/components/ds-divider/index.ts +2 -0
  318. package/src/components/ds-dropdown-menu/ds-dropdown-menu.module.scss +11 -3
  319. package/src/components/ds-dropdown-menu/ds-dropdown-menu.tsx +17 -1
  320. package/src/components/ds-dropdown-menu/ds-dropdown-menu.types.tsx +5 -0
  321. package/src/components/ds-form-control/ds-form-control.tsx +2 -0
  322. package/src/components/ds-radio-group/ds-radio-group.types.tsx +1 -1
  323. package/src/components/ds-table/filters/hooks/index.ts +1 -0
  324. package/src/components/ds-table/index.ts +2 -0
  325. package/src/components/ds-tag/ds-tag.module.scss +112 -0
  326. package/src/components/ds-tag/ds-tag.tsx +124 -0
  327. package/src/components/ds-tag/ds-tag.types.tsx +67 -0
  328. package/src/components/ds-tag/index.tsx +2 -0
  329. package/src/components/ds-tag-filter/ds-tag-filter.module.scss +72 -0
  330. package/src/components/ds-tag-filter/ds-tag-filter.tsx +178 -0
  331. package/src/components/ds-tag-filter/ds-tag-filter.types.ts +68 -0
  332. package/src/components/ds-tag-filter/hooks/use-tag-overflow-calculation.ts +135 -0
  333. package/src/components/ds-tag-filter/index.ts +2 -0
  334. package/src/components/ds-tag-filter/utils.test.ts +401 -0
  335. package/src/components/ds-tag-filter/utils.ts +65 -0
  336. package/src/components/ds-toggle/ds-toggle.module.scss +154 -0
  337. package/src/components/ds-toggle/ds-toggle.tsx +78 -0
  338. package/src/components/ds-toggle/ds-toggle.types.tsx +76 -0
  339. package/src/components/ds-toggle/index.tsx +2 -0
  340. package/src/index.ts +7 -0
@@ -0,0 +1,324 @@
1
+ import ds_icon_default from "../ds-icon/ds-icon.js";
2
+ import "../ds-icon/index.js";
3
+ import ds_typography_default from "../ds-typography/ds-typography.js";
4
+ import "../ds-typography/index.js";
5
+ import ds_button_default from "../ds-button/ds-button.js";
6
+ import "../ds-button/index.js";
7
+ import ds_tag_default from "../ds-tag/ds-tag.js";
8
+ import "../ds-tag/index.js";
9
+ import ds_tag_filter_module_default from "./ds-tag-filter.module.js";
10
+ import { useTagOverflowCalculation } from "./hooks/use-tag-overflow-calculation.js";
11
+ import { c } from "react/compiler-runtime";
12
+ import classNames from "classnames";
13
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
14
+ import { createElement, useRef, useState } from "react";
15
+ import { createPortal } from "react-dom";
16
+
17
+ //#region src/components/ds-tag-filter/ds-tag-filter.tsx
18
+ /**
19
+ * Design system TagFilter component
20
+ *
21
+ * A component for displaying active filters as tags with overflow handling.
22
+ * Shows visible tags in up to 2 rows, with the Expand button to show hidden items.
23
+ */
24
+ const DsTagFilter = (t0) => {
25
+ const $ = c(81);
26
+ const { items, locale: t1, className, style, onClearAll, onItemDelete, onItemSelect, onExpand } = t0;
27
+ let t2;
28
+ if ($[0] !== t1) {
29
+ t2 = t1 === void 0 ? {} : t1;
30
+ $[0] = t1;
31
+ $[1] = t2;
32
+ } else t2 = $[1];
33
+ const locale = t2;
34
+ const [expanded, setExpanded] = useState(false);
35
+ const containerRef = useRef(null);
36
+ const measurementRef = useRef(null);
37
+ let t3;
38
+ if ($[2] !== expanded || $[3] !== items.length) {
39
+ t3 = {
40
+ containerRef,
41
+ measurementRef,
42
+ totalItems: items.length,
43
+ expanded
44
+ };
45
+ $[2] = expanded;
46
+ $[3] = items.length;
47
+ $[4] = t3;
48
+ } else t3 = $[4];
49
+ const { row1TagCount, row2TagCount, hasOverflow } = useTagOverflowCalculation(t3);
50
+ const { label: t4, clearButton: t5, hiddenCountPlural: t6, hiddenCountSingular: t7, collapseTagLabel: t8 } = locale;
51
+ const label = t4 === void 0 ? "Filtered by:" : t4;
52
+ const clearButton = t5 === void 0 ? "Clear all filters" : t5;
53
+ const hiddenCountPlural = t6 === void 0 ? "filters" : t6;
54
+ const hiddenCountSingular = t7 === void 0 ? "filter" : t7;
55
+ const collapseTagLabel = t8 === void 0 ? "Collapse" : t8;
56
+ let measurementContainer;
57
+ let t10;
58
+ let t11;
59
+ let t12;
60
+ let t13;
61
+ let t14;
62
+ let t9;
63
+ if ($[5] !== className || $[6] !== clearButton || $[7] !== collapseTagLabel || $[8] !== expanded || $[9] !== hasOverflow || $[10] !== hiddenCountPlural || $[11] !== hiddenCountSingular || $[12] !== items || $[13] !== label || $[14] !== onClearAll || $[15] !== onExpand || $[16] !== onItemDelete || $[17] !== onItemSelect || $[18] !== row1TagCount || $[19] !== row2TagCount || $[20] !== style) {
64
+ t14 = Symbol.for("react.early_return_sentinel");
65
+ bb0: {
66
+ const row1Tags = items.slice(0, row1TagCount);
67
+ const row2Tags = items.slice(row1TagCount, row1TagCount + row2TagCount);
68
+ let t15$1;
69
+ if ($[28] !== expanded || $[29] !== items || $[30] !== row1TagCount || $[31] !== row2TagCount) {
70
+ t15$1 = expanded ? [] : items.slice(row1TagCount + row2TagCount);
71
+ $[28] = expanded;
72
+ $[29] = items;
73
+ $[30] = row1TagCount;
74
+ $[31] = row2TagCount;
75
+ $[32] = t15$1;
76
+ } else t15$1 = $[32];
77
+ const hiddenTags = t15$1;
78
+ if (items.length === 0) {
79
+ t14 = null;
80
+ break bb0;
81
+ }
82
+ const hiddenCount = hiddenTags.length;
83
+ const hasRow2Content = row2Tags.length > 0 || hasOverflow;
84
+ let t16$1;
85
+ if ($[33] !== onItemDelete || $[34] !== onItemSelect) {
86
+ t16$1 = (item) => {
87
+ return /* @__PURE__ */ createElement(ds_tag_default, {
88
+ ...item.slotProps?.tag || {},
89
+ key: item.id,
90
+ label: item.label,
91
+ selected: item.selected,
92
+ onClick: onItemSelect ? () => onItemSelect(item) : void 0,
93
+ onDelete: onItemDelete ? () => onItemDelete(item) : void 0
94
+ });
95
+ };
96
+ $[33] = onItemDelete;
97
+ $[34] = onItemSelect;
98
+ $[35] = t16$1;
99
+ } else t16$1 = $[35];
100
+ const renderTag = t16$1;
101
+ let t17$1;
102
+ if ($[36] !== expanded || $[37] !== onExpand) {
103
+ t17$1 = () => {
104
+ const newExpanded = !expanded;
105
+ setExpanded(newExpanded);
106
+ onExpand?.(newExpanded);
107
+ };
108
+ $[36] = expanded;
109
+ $[37] = onExpand;
110
+ $[38] = t17$1;
111
+ } else t17$1 = $[38];
112
+ const handleExpandToggle = t17$1;
113
+ let t18;
114
+ if ($[39] !== label) {
115
+ t18 = label && /* @__PURE__ */ jsx("span", {
116
+ "data-measure-label": "",
117
+ children: /* @__PURE__ */ jsx(ds_typography_default, {
118
+ variant: "body-sm-reg",
119
+ className: ds_tag_filter_module_default.label,
120
+ children: label
121
+ })
122
+ });
123
+ $[39] = label;
124
+ $[40] = t18;
125
+ } else t18 = $[40];
126
+ let t19;
127
+ if ($[41] !== items || $[42] !== onItemDelete || $[43] !== onItemSelect) {
128
+ let t20$1;
129
+ if ($[45] !== onItemDelete || $[46] !== onItemSelect) {
130
+ t20$1 = (item_0) => /* @__PURE__ */ jsx(ds_tag_default, {
131
+ "data-measure-tag": "",
132
+ label: item_0.label,
133
+ selected: item_0.selected,
134
+ onClick: onItemSelect ? () => onItemSelect(item_0) : void 0,
135
+ onDelete: onItemDelete ? () => onItemDelete(item_0) : void 0
136
+ }, item_0.id);
137
+ $[45] = onItemDelete;
138
+ $[46] = onItemSelect;
139
+ $[47] = t20$1;
140
+ } else t20$1 = $[47];
141
+ t19 = items.map(t20$1);
142
+ $[41] = items;
143
+ $[42] = onItemDelete;
144
+ $[43] = onItemSelect;
145
+ $[44] = t19;
146
+ } else t19 = $[44];
147
+ let t20;
148
+ if ($[48] !== clearButton || $[49] !== onClearAll) {
149
+ t20 = onClearAll && /* @__PURE__ */ jsxs(ds_button_default, {
150
+ "data-measure-clear": "",
151
+ design: "v1.2",
152
+ buttonType: "tertiary",
153
+ variant: "ghost",
154
+ className: ds_tag_filter_module_default.clearButton,
155
+ contentClassName: ds_tag_filter_module_default.clearContent,
156
+ size: "small",
157
+ children: [/* @__PURE__ */ jsx(ds_icon_default, { icon: "close" }), clearButton]
158
+ });
159
+ $[48] = clearButton;
160
+ $[49] = onClearAll;
161
+ $[50] = t20;
162
+ } else t20 = $[50];
163
+ let t21;
164
+ if ($[51] === Symbol.for("react.memo_cache_sentinel")) {
165
+ t21 = /* @__PURE__ */ jsx(ds_tag_default, {
166
+ "data-measure-expand": "",
167
+ label: "+99 filters",
168
+ className: ds_tag_filter_module_default.expandTag
169
+ });
170
+ $[51] = t21;
171
+ } else t21 = $[51];
172
+ let t22;
173
+ if ($[52] !== t18 || $[53] !== t19 || $[54] !== t20) {
174
+ t22 = /* @__PURE__ */ jsxs("div", {
175
+ ref: measurementRef,
176
+ className: ds_tag_filter_module_default.measurementContainer,
177
+ "aria-hidden": "true",
178
+ children: [
179
+ t18,
180
+ t19,
181
+ t20,
182
+ t21
183
+ ]
184
+ });
185
+ $[52] = t18;
186
+ $[53] = t19;
187
+ $[54] = t20;
188
+ $[55] = t22;
189
+ } else t22 = $[55];
190
+ measurementContainer = t22;
191
+ t9 = containerRef;
192
+ const t23 = expanded && ds_tag_filter_module_default.expanded;
193
+ if ($[56] !== className || $[57] !== t23) {
194
+ t10 = classNames(ds_tag_filter_module_default.container, t23, className);
195
+ $[56] = className;
196
+ $[57] = t23;
197
+ $[58] = t10;
198
+ } else t10 = $[58];
199
+ t11 = style;
200
+ let t24;
201
+ if ($[59] !== label) {
202
+ t24 = label && /* @__PURE__ */ jsx(ds_typography_default, {
203
+ variant: "body-sm-reg",
204
+ className: ds_tag_filter_module_default.label,
205
+ children: label
206
+ });
207
+ $[59] = label;
208
+ $[60] = t24;
209
+ } else t24 = $[60];
210
+ let t25;
211
+ if ($[61] !== renderTag) {
212
+ t25 = (item_1) => renderTag(item_1);
213
+ $[61] = renderTag;
214
+ $[62] = t25;
215
+ } else t25 = $[62];
216
+ const t26 = row1Tags.map(t25);
217
+ let t27;
218
+ if ($[63] !== clearButton || $[64] !== onClearAll) {
219
+ t27 = onClearAll && /* @__PURE__ */ jsxs(ds_button_default, {
220
+ design: "v1.2",
221
+ buttonType: "tertiary",
222
+ variant: "ghost",
223
+ className: ds_tag_filter_module_default.clearButton,
224
+ contentClassName: ds_tag_filter_module_default.clearContent,
225
+ size: "small",
226
+ onClick: onClearAll,
227
+ children: [/* @__PURE__ */ jsx(ds_icon_default, { icon: "close" }), clearButton]
228
+ });
229
+ $[63] = clearButton;
230
+ $[64] = onClearAll;
231
+ $[65] = t27;
232
+ } else t27 = $[65];
233
+ if ($[66] !== t24 || $[67] !== t26 || $[68] !== t27) {
234
+ t12 = /* @__PURE__ */ jsxs("div", {
235
+ className: ds_tag_filter_module_default.row1,
236
+ children: [
237
+ t24,
238
+ t26,
239
+ t27
240
+ ]
241
+ });
242
+ $[66] = t24;
243
+ $[67] = t26;
244
+ $[68] = t27;
245
+ $[69] = t12;
246
+ } else t12 = $[69];
247
+ t13 = hasRow2Content && /* @__PURE__ */ jsxs("div", {
248
+ className: ds_tag_filter_module_default.row2,
249
+ children: [row2Tags.map((item_2) => renderTag(item_2)), hasOverflow && /* @__PURE__ */ jsx(ds_tag_default, {
250
+ label: expanded ? collapseTagLabel : `+${String(hiddenCount)} ${hiddenCount === 1 ? hiddenCountSingular : hiddenCountPlural}`,
251
+ selected: expanded,
252
+ className: ds_tag_filter_module_default.expandTag,
253
+ onClick: handleExpandToggle
254
+ })]
255
+ });
256
+ }
257
+ $[5] = className;
258
+ $[6] = clearButton;
259
+ $[7] = collapseTagLabel;
260
+ $[8] = expanded;
261
+ $[9] = hasOverflow;
262
+ $[10] = hiddenCountPlural;
263
+ $[11] = hiddenCountSingular;
264
+ $[12] = items;
265
+ $[13] = label;
266
+ $[14] = onClearAll;
267
+ $[15] = onExpand;
268
+ $[16] = onItemDelete;
269
+ $[17] = onItemSelect;
270
+ $[18] = row1TagCount;
271
+ $[19] = row2TagCount;
272
+ $[20] = style;
273
+ $[21] = measurementContainer;
274
+ $[22] = t10;
275
+ $[23] = t11;
276
+ $[24] = t12;
277
+ $[25] = t13;
278
+ $[26] = t14;
279
+ $[27] = t9;
280
+ } else {
281
+ measurementContainer = $[21];
282
+ t10 = $[22];
283
+ t11 = $[23];
284
+ t12 = $[24];
285
+ t13 = $[25];
286
+ t14 = $[26];
287
+ t9 = $[27];
288
+ }
289
+ if (t14 !== Symbol.for("react.early_return_sentinel")) return t14;
290
+ let t15;
291
+ if ($[70] !== t10 || $[71] !== t11 || $[72] !== t12 || $[73] !== t13 || $[74] !== t9) {
292
+ t15 = /* @__PURE__ */ jsxs("div", {
293
+ ref: t9,
294
+ className: t10,
295
+ style: t11,
296
+ children: [t12, t13]
297
+ });
298
+ $[70] = t10;
299
+ $[71] = t11;
300
+ $[72] = t12;
301
+ $[73] = t13;
302
+ $[74] = t9;
303
+ $[75] = t15;
304
+ } else t15 = $[75];
305
+ let t16;
306
+ if ($[76] !== measurementContainer) {
307
+ t16 = createPortal(measurementContainer, document.body);
308
+ $[76] = measurementContainer;
309
+ $[77] = t16;
310
+ } else t16 = $[77];
311
+ let t17;
312
+ if ($[78] !== t15 || $[79] !== t16) {
313
+ t17 = /* @__PURE__ */ jsxs(Fragment, { children: [t15, t16] });
314
+ $[78] = t15;
315
+ $[79] = t16;
316
+ $[80] = t17;
317
+ } else t17 = $[80];
318
+ return t17;
319
+ };
320
+ var ds_tag_filter_default = DsTagFilter;
321
+
322
+ //#endregion
323
+ export { ds_tag_filter_default as default };
324
+ //# sourceMappingURL=ds-tag-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-tag-filter.js","names":["useRef","useState","createPortal","classNames","styles","DsTagFilterProps","TagFilterItem","useTagOverflowCalculation","DsTypography","DsTag","DsButton","DsIcon","DsTagFilter","t0","$","_c","items","locale","t1","className","style","onClearAll","onItemDelete","onItemSelect","onExpand","t2","undefined","expanded","setExpanded","containerRef","measurementRef","t3","length","totalItems","row1TagCount","row2TagCount","hasOverflow","label","t4","clearButton","t5","hiddenCountPlural","t6","hiddenCountSingular","t7","collapseTagLabel","t8","measurementContainer","t10","t11","t12","t13","t14","t9","Symbol","for","bb0","row1Tags","slice","row2Tags","t15","hiddenTags","hiddenCount","hasRow2Content","t16","item","tagProps","slotProps","tag","id","selected","renderTag","t17","newExpanded","handleExpandToggle","t18","t19","t20","item_0","map","clearContent","t21","expandTag","t22","t23","container","t24","t25","item_1","t26","t27","row1","row2","item_2","String","document","body"],"sources":["../../../src/components/ds-tag-filter/ds-tag-filter.tsx"],"sourcesContent":["import { useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport styles from './ds-tag-filter.module.scss';\nimport type { DsTagFilterProps, TagFilterItem } from './ds-tag-filter.types';\nimport { useTagOverflowCalculation } from './hooks/use-tag-overflow-calculation';\nimport { DsTypography } from '../ds-typography';\nimport { DsTag } from '../ds-tag';\nimport { DsButton } from '../ds-button';\nimport { DsIcon } from '../ds-icon';\n\n/**\n * Design system TagFilter component\n *\n * A component for displaying active filters as tags with overflow handling.\n * Shows visible tags in up to 2 rows, with the Expand button to show hidden items.\n */\nconst DsTagFilter = ({\n\titems,\n\tlocale = {},\n\tclassName,\n\tstyle,\n\tonClearAll,\n\tonItemDelete,\n\tonItemSelect,\n\tonExpand,\n}: DsTagFilterProps) => {\n\tconst [expanded, setExpanded] = useState(false);\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\tconst measurementRef = useRef<HTMLDivElement>(null);\n\n\tconst { row1TagCount, row2TagCount, hasOverflow } = useTagOverflowCalculation({\n\t\tcontainerRef,\n\t\tmeasurementRef,\n\t\ttotalItems: items.length,\n\t\texpanded,\n\t});\n\n\tconst {\n\t\tlabel = 'Filtered by:',\n\t\tclearButton = 'Clear all filters',\n\t\thiddenCountPlural = 'filters',\n\t\thiddenCountSingular = 'filter',\n\t\tcollapseTagLabel = 'Collapse',\n\t} = locale;\n\n\t// Split items into row sections\n\tconst row1Tags = items.slice(0, row1TagCount);\n\tconst row2Tags = items.slice(row1TagCount, row1TagCount + row2TagCount);\n\tconst hiddenTags = expanded ? [] : items.slice(row1TagCount + row2TagCount);\n\n\tif (items.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst hiddenCount = hiddenTags.length;\n\tconst hasRow2Content = row2Tags.length > 0 || hasOverflow;\n\n\tconst renderTag = (item: TagFilterItem) => {\n\t\tconst tagProps = item.slotProps?.tag || {};\n\n\t\treturn (\n\t\t\t<DsTag\n\t\t\t\t{...tagProps}\n\t\t\t\tkey={item.id}\n\t\t\t\tlabel={item.label}\n\t\t\t\tselected={item.selected}\n\t\t\t\tonClick={onItemSelect ? () => onItemSelect(item) : undefined}\n\t\t\t\tonDelete={onItemDelete ? () => onItemDelete(item) : undefined}\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst handleExpandToggle = () => {\n\t\tconst newExpanded = !expanded;\n\t\tsetExpanded(newExpanded);\n\t\tonExpand?.(newExpanded);\n\t};\n\n\t// Measurement container rendered via portal to keep it outside the component's DOM tree\n\t// This prevents Testing Library from finding duplicate elements\n\t// We use it to calculate the number of remaining tags to render\n\tconst measurementContainer = (\n\t\t<div ref={measurementRef} className={styles.measurementContainer} aria-hidden=\"true\">\n\t\t\t{label && (\n\t\t\t\t<span data-measure-label=\"\">\n\t\t\t\t\t<DsTypography variant=\"body-sm-reg\" className={styles.label}>\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</DsTypography>\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t{items.map((item) => (\n\t\t\t\t<DsTag\n\t\t\t\t\tkey={item.id}\n\t\t\t\t\tdata-measure-tag=\"\"\n\t\t\t\t\tlabel={item.label}\n\t\t\t\t\tselected={item.selected}\n\t\t\t\t\tonClick={onItemSelect ? () => onItemSelect(item) : undefined}\n\t\t\t\t\tonDelete={onItemDelete ? () => onItemDelete(item) : undefined}\n\t\t\t\t/>\n\t\t\t))}\n\t\t\t{onClearAll && (\n\t\t\t\t<DsButton\n\t\t\t\t\tdata-measure-clear=\"\"\n\t\t\t\t\tdesign=\"v1.2\"\n\t\t\t\t\tbuttonType=\"tertiary\"\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\tclassName={styles.clearButton}\n\t\t\t\t\tcontentClassName={styles.clearContent}\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t>\n\t\t\t\t\t<DsIcon icon=\"close\" />\n\t\t\t\t\t{clearButton}\n\t\t\t\t</DsButton>\n\t\t\t)}\n\t\t\t<DsTag data-measure-expand=\"\" label=\"+99 filters\" className={styles.expandTag} />\n\t\t</div>\n\t);\n\n\t/**\n\t * IMPORTANT!\n\t * If you make any changes to this layout (styling, JSX, anything that affects it.)\n\t * please, apply the exact same changes to the \"measurementContainer\"\n\t */\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tref={containerRef}\n\t\t\t\tclassName={classNames(styles.container, expanded && styles.expanded, className)}\n\t\t\t\tstyle={style}\n\t\t\t>\n\t\t\t\t<div className={styles.row1}>\n\t\t\t\t\t{label && (\n\t\t\t\t\t\t<DsTypography variant=\"body-sm-reg\" className={styles.label}>\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t</DsTypography>\n\t\t\t\t\t)}\n\t\t\t\t\t{row1Tags.map((item) => renderTag(item))}\n\t\t\t\t\t{onClearAll && (\n\t\t\t\t\t\t<DsButton\n\t\t\t\t\t\t\tdesign=\"v1.2\"\n\t\t\t\t\t\t\tbuttonType=\"tertiary\"\n\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\tclassName={styles.clearButton}\n\t\t\t\t\t\t\tcontentClassName={styles.clearContent}\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tonClick={onClearAll}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DsIcon icon=\"close\" />\n\t\t\t\t\t\t\t{clearButton}\n\t\t\t\t\t\t</DsButton>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{hasRow2Content && (\n\t\t\t\t\t<div className={styles.row2}>\n\t\t\t\t\t\t{row2Tags.map((item) => renderTag(item))}\n\t\t\t\t\t\t{hasOverflow && (\n\t\t\t\t\t\t\t<DsTag\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\t\t\t? collapseTagLabel\n\t\t\t\t\t\t\t\t\t\t: `+${String(hiddenCount)} ${hiddenCount === 1 ? hiddenCountSingular : hiddenCountPlural}`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tselected={expanded}\n\t\t\t\t\t\t\t\tclassName={styles.expandTag}\n\t\t\t\t\t\t\t\tonClick={handleExpandToggle}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{createPortal(measurementContainer, document.body)}\n\t\t</>\n\t);\n};\n\nexport default DsTagFilter;\n"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+
2
+ //#region src/components/ds-tag-filter/ds-tag-filter.module.scss
3
+ var ds_tag_filter_module_default = {
4
+ "container": "_container_1jmga_1",
5
+ "expanded": "_expanded_1jmga_1",
6
+ "row1": "_row1_1jmga_1",
7
+ "row2": "_row2_1jmga_1",
8
+ "label": "_label_1jmga_1",
9
+ "expandTag": "_expandTag_1jmga_1",
10
+ "itemCheckbox": "_itemCheckbox_1jmga_1",
11
+ "clearContent": "_clearContent_1jmga_1",
12
+ "clearButton": "_clearButton_1jmga_1",
13
+ "measurementContainer": "_measurementContainer_1jmga_1"
14
+ };
15
+
16
+ //#endregion
17
+ exports.default = ds_tag_filter_module_default;
@@ -0,0 +1,17 @@
1
+ //#region src/components/ds-tag-filter/ds-tag-filter.module.scss
2
+ var ds_tag_filter_module_default = {
3
+ "container": "_container_1jmga_1",
4
+ "expanded": "_expanded_1jmga_1",
5
+ "row1": "_row1_1jmga_1",
6
+ "row2": "_row2_1jmga_1",
7
+ "label": "_label_1jmga_1",
8
+ "expandTag": "_expandTag_1jmga_1",
9
+ "itemCheckbox": "_itemCheckbox_1jmga_1",
10
+ "clearContent": "_clearContent_1jmga_1",
11
+ "clearButton": "_clearButton_1jmga_1",
12
+ "measurementContainer": "_measurementContainer_1jmga_1"
13
+ };
14
+
15
+ //#endregion
16
+ export { ds_tag_filter_module_default as default };
17
+ //# sourceMappingURL=ds-tag-filter.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-tag-filter.module.js","names":[],"sources":["../../../src/components/ds-tag-filter/ds-tag-filter.module.scss"],"sourcesContent":[".container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--spacing-xs);\n\tpadding: var(--spacing-xs) var(--spacing-standard);\n\tbackground: var(--color-background-selected-weak);\n\tborder: 1px solid var(--color-outline-weak);\n\tborder-radius: var(--spacing-3xs);\n\tmax-height: 88px; // hardcoded value required in the design\n\toverflow: hidden;\n\n\t&.expanded {\n\t\tmax-height: none;\n\t}\n}\n\n.row1 {\n\tdisplay: flex;\n\talign-items: center;\n\twidth: 100%;\n\tgap: var(--spacing-xs);\n\tflex-shrink: 0;\n}\n\n.row2 {\n\tdisplay: flex;\n\talign-items: center;\n\twidth: 100%;\n\tgap: var(--spacing-xs);\n\tflex-wrap: wrap;\n}\n\n.label {\n\tcolor: var(--color-font-secondary);\n\twhite-space: nowrap;\n\tflex-shrink: 0;\n}\n\n.expandTag {\n\tcursor: pointer;\n\tflex-shrink: 0;\n}\n\n.itemCheckbox {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.clearContent {\n\tbackground: transparent !important;\n}\n\n.clearButton {\n\tmargin-left: auto;\n\tpadding: 0;\n\tflex-shrink: 0;\n}\n\n// Hidden container for measuring element widths\n// Must render all elements to get accurate measurements\n.measurementContainer {\n\tpointer-events: none;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--spacing-xs);\n\n\t// Ensure it doesn't affect layout\n\theight: 0;\n\toverflow: hidden;\n\tposition: absolute;\n\tvisibility: hidden;\n}\n"],"mappings":""}
@@ -0,0 +1,71 @@
1
+ import { DsTagProps } from "../ds-tag/ds-tag.types.cjs";
2
+ import { CSSProperties } from "react";
3
+
4
+ //#region src/components/ds-tag-filter/ds-tag-filter.types.d.ts
5
+ interface TagFilterItem {
6
+ /**
7
+ * Unique identifier for the tag
8
+ */
9
+ id: string;
10
+ /**
11
+ * The label text to display in the tag
12
+ */
13
+ label: string;
14
+ /**
15
+ * Additional metadata to store with the tag
16
+ */
17
+ metadata?: Record<string, unknown>;
18
+ /**
19
+ * Whether the tag is selected/checked
20
+ */
21
+ selected?: boolean;
22
+ /**
23
+ * Additional props to pass to the components
24
+ */
25
+ slotProps?: {
26
+ tag?: Partial<DsTagProps>;
27
+ };
28
+ }
29
+ interface DsTagFilterProps {
30
+ /**
31
+ * Array of tag items to display
32
+ */
33
+ items: TagFilterItem[];
34
+ /**
35
+ * Locale object (you can pass custom strings for localization)
36
+ */
37
+ locale?: {
38
+ label?: string;
39
+ clearButton?: string;
40
+ collapseTagLabel?: string;
41
+ hiddenCountSingular?: string;
42
+ hiddenCountPlural?: string;
43
+ };
44
+ /**
45
+ * Callback when "Clear all" is clicked
46
+ */
47
+ onClearAll?: () => void;
48
+ /**
49
+ * Callback when a tag is deleted/removed
50
+ */
51
+ onItemDelete?: (item: TagFilterItem) => void;
52
+ /**
53
+ * Callback when a tag is selected
54
+ */
55
+ onItemSelect?: (item: TagFilterItem) => void;
56
+ /**
57
+ * Callback when the Expand button is clicked
58
+ */
59
+ onExpand?: (expanded?: boolean) => void;
60
+ /**
61
+ * Additional CSS class names
62
+ */
63
+ className?: string;
64
+ /**
65
+ * Additional styles to apply to the component
66
+ */
67
+ style?: CSSProperties;
68
+ }
69
+ //#endregion
70
+ export { DsTagFilterProps, TagFilterItem };
71
+ //# sourceMappingURL=ds-tag-filter.types.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-tag-filter.types.d.cts","names":[],"sources":["../../../src/components/ds-tag-filter/ds-tag-filter.types.ts"],"sourcesContent":[],"mappings":";;;;UAGiB,aAAA;;AAAjB;;EAqBgB,EAAA,EAAA,MAAA;EAAR;;AAIR;EAIQ,KAAA,EAAA,MAAA;EAkBe;;;EAgBD,QAAA,CAAA,EAnDV,MAmDU,CAAA,MAAA,EAAA,OAAA,CAAA;;;;;;;;;UA1Cd,QAAQ;;;UAIC,gBAAA;;;;SAIT;;;;;;;;;;;;;;;;;;wBAkBe;;;;wBAIA;;;;;;;;;;;;UAYd"}
@@ -0,0 +1,72 @@
1
+ import { DsTagProps } from "../ds-tag/ds-tag.types.js";
2
+ import "../ds-tag/index.js";
3
+ import { CSSProperties } from "react";
4
+
5
+ //#region src/components/ds-tag-filter/ds-tag-filter.types.d.ts
6
+ interface TagFilterItem {
7
+ /**
8
+ * Unique identifier for the tag
9
+ */
10
+ id: string;
11
+ /**
12
+ * The label text to display in the tag
13
+ */
14
+ label: string;
15
+ /**
16
+ * Additional metadata to store with the tag
17
+ */
18
+ metadata?: Record<string, unknown>;
19
+ /**
20
+ * Whether the tag is selected/checked
21
+ */
22
+ selected?: boolean;
23
+ /**
24
+ * Additional props to pass to the components
25
+ */
26
+ slotProps?: {
27
+ tag?: Partial<DsTagProps>;
28
+ };
29
+ }
30
+ interface DsTagFilterProps {
31
+ /**
32
+ * Array of tag items to display
33
+ */
34
+ items: TagFilterItem[];
35
+ /**
36
+ * Locale object (you can pass custom strings for localization)
37
+ */
38
+ locale?: {
39
+ label?: string;
40
+ clearButton?: string;
41
+ collapseTagLabel?: string;
42
+ hiddenCountSingular?: string;
43
+ hiddenCountPlural?: string;
44
+ };
45
+ /**
46
+ * Callback when "Clear all" is clicked
47
+ */
48
+ onClearAll?: () => void;
49
+ /**
50
+ * Callback when a tag is deleted/removed
51
+ */
52
+ onItemDelete?: (item: TagFilterItem) => void;
53
+ /**
54
+ * Callback when a tag is selected
55
+ */
56
+ onItemSelect?: (item: TagFilterItem) => void;
57
+ /**
58
+ * Callback when the Expand button is clicked
59
+ */
60
+ onExpand?: (expanded?: boolean) => void;
61
+ /**
62
+ * Additional CSS class names
63
+ */
64
+ className?: string;
65
+ /**
66
+ * Additional styles to apply to the component
67
+ */
68
+ style?: CSSProperties;
69
+ }
70
+ //#endregion
71
+ export { DsTagFilterProps, TagFilterItem };
72
+ //# sourceMappingURL=ds-tag-filter.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-tag-filter.types.d.ts","names":[],"sources":["../../../src/components/ds-tag-filter/ds-tag-filter.types.ts"],"sourcesContent":[],"mappings":";;;;;UAGiB,aAAA;;;AAAjB;EAYY,EAAA,EAAA,MAAA;EASI;;;EAIC,KAAA,EAAA,MAAA;EAIT;;;EAkCC,QAAA,CAAA,EAnDG,MAmDH,CAAA,MAAA,EAAA,OAAA,CAAA;EAAa;;;;;;;;UA1Cd,QAAQ;;;UAIC,gBAAA;;;;SAIT;;;;;;;;;;;;;;;;;;wBAkBe;;;;wBAIA;;;;;;;;;;;;UAYd"}
@@ -0,0 +1,137 @@
1
+ const require_rolldown_runtime = require('../../../_virtual/rolldown_runtime.cjs');
2
+ const require_utils = require('../utils.cjs');
3
+ let react_compiler_runtime = require("react/compiler-runtime");
4
+ let react = require("react");
5
+
6
+ //#region src/components/ds-tag-filter/hooks/use-tag-overflow-calculation.ts
7
+ const TAG_HOVER_BUTTON_SPACE = 20;
8
+ /**
9
+ * Custom hook to calculate how many tags can fit in 2 rows.
10
+ *
11
+ * Row 1: Label + Tags + Clear Button
12
+ * Row 2: Remaining Tags + Expand Tag (only if overflow)
13
+ *
14
+ * Measures actual element widths to determine optimal placement.
15
+ */
16
+ const useTagOverflowCalculation = (t0) => {
17
+ const $ = (0, react_compiler_runtime.c)(16);
18
+ const { containerRef, measurementRef, totalItems, expanded } = t0;
19
+ let t1;
20
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
21
+ t1 = {
22
+ row1TagCount: 0,
23
+ row2TagCount: 0,
24
+ hasOverflow: false
25
+ };
26
+ $[0] = t1;
27
+ } else t1 = $[0];
28
+ const [state, setState] = (0, react.useState)(t1);
29
+ let t2;
30
+ if ($[1] !== containerRef || $[2] !== measurementRef) {
31
+ t2 = () => {
32
+ if (!containerRef.current || !measurementRef.current) return;
33
+ const container = containerRef.current;
34
+ const measurementContainer = measurementRef.current;
35
+ const { tagWidths, labelWidth, clearButtonWidth, expandTagWidth, gap } = require_utils.getElementMeasurements(measurementContainer);
36
+ if (tagWidths.length === 0) {
37
+ setState({
38
+ row1TagCount: 0,
39
+ row2TagCount: 0,
40
+ hasOverflow: false
41
+ });
42
+ return;
43
+ }
44
+ const containerWidth = require_utils.getContainerAvailableWidth(container);
45
+ const row1Result = require_utils.fitTagsInRow(tagWidths, containerWidth - labelWidth - clearButtonWidth - TAG_HOVER_BUTTON_SPACE, gap);
46
+ const remainingTags = tagWidths.slice(row1Result.count);
47
+ if (remainingTags.length === 0) {
48
+ setState({
49
+ row1TagCount: row1Result.count,
50
+ row2TagCount: 0,
51
+ hasOverflow: false
52
+ });
53
+ return;
54
+ }
55
+ const row2WithExpandResult = require_utils.fitTagsInRow(remainingTags, containerWidth - expandTagWidth - TAG_HOVER_BUTTON_SPACE, gap);
56
+ if (remainingTags.length > row2WithExpandResult.count) setState({
57
+ row1TagCount: row1Result.count,
58
+ row2TagCount: row2WithExpandResult.count,
59
+ hasOverflow: true
60
+ });
61
+ else {
62
+ const row2FullResult = require_utils.fitTagsInRow(remainingTags, containerWidth - TAG_HOVER_BUTTON_SPACE, gap);
63
+ if (row2FullResult.count < remainingTags.length) setState({
64
+ row1TagCount: row1Result.count,
65
+ row2TagCount: row2WithExpandResult.count,
66
+ hasOverflow: true
67
+ });
68
+ else setState({
69
+ row1TagCount: row1Result.count,
70
+ row2TagCount: row2FullResult.count,
71
+ hasOverflow: false
72
+ });
73
+ }
74
+ };
75
+ $[1] = containerRef;
76
+ $[2] = measurementRef;
77
+ $[3] = t2;
78
+ } else t2 = $[3];
79
+ const calculateLayout = t2;
80
+ let t3;
81
+ if ($[4] !== calculateLayout || $[5] !== containerRef) {
82
+ t3 = () => {
83
+ const rafId = requestAnimationFrame(() => {
84
+ calculateLayout();
85
+ });
86
+ const resizeObserver = new ResizeObserver(() => {
87
+ requestAnimationFrame(() => {
88
+ calculateLayout();
89
+ });
90
+ });
91
+ if (containerRef.current) resizeObserver.observe(containerRef.current);
92
+ return () => {
93
+ cancelAnimationFrame(rafId);
94
+ resizeObserver.disconnect();
95
+ };
96
+ };
97
+ $[4] = calculateLayout;
98
+ $[5] = containerRef;
99
+ $[6] = t3;
100
+ } else t3 = $[6];
101
+ let t4;
102
+ if ($[7] !== calculateLayout || $[8] !== containerRef || $[9] !== expanded || $[10] !== measurementRef || $[11] !== totalItems) {
103
+ t4 = [
104
+ containerRef,
105
+ measurementRef,
106
+ totalItems,
107
+ expanded,
108
+ calculateLayout
109
+ ];
110
+ $[7] = calculateLayout;
111
+ $[8] = containerRef;
112
+ $[9] = expanded;
113
+ $[10] = measurementRef;
114
+ $[11] = totalItems;
115
+ $[12] = t4;
116
+ } else t4 = $[12];
117
+ (0, react.useLayoutEffect)(t3, t4);
118
+ if (expanded) {
119
+ const t5 = totalItems - state.row1TagCount;
120
+ let t6;
121
+ if ($[13] !== state.row1TagCount || $[14] !== t5) {
122
+ t6 = {
123
+ row1TagCount: state.row1TagCount,
124
+ row2TagCount: t5,
125
+ hasOverflow: true
126
+ };
127
+ $[13] = state.row1TagCount;
128
+ $[14] = t5;
129
+ $[15] = t6;
130
+ } else t6 = $[15];
131
+ return t6;
132
+ }
133
+ return state;
134
+ };
135
+
136
+ //#endregion
137
+ exports.useTagOverflowCalculation = useTagOverflowCalculation;