@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,137 @@
1
+ import { fitTagsInRow, getContainerAvailableWidth, getElementMeasurements } from "../utils.js";
2
+ import { c } from "react/compiler-runtime";
3
+ import { useLayoutEffect, useState } from "react";
4
+
5
+ //#region src/components/ds-tag-filter/hooks/use-tag-overflow-calculation.ts
6
+ const TAG_HOVER_BUTTON_SPACE = 20;
7
+ /**
8
+ * Custom hook to calculate how many tags can fit in 2 rows.
9
+ *
10
+ * Row 1: Label + Tags + Clear Button
11
+ * Row 2: Remaining Tags + Expand Tag (only if overflow)
12
+ *
13
+ * Measures actual element widths to determine optimal placement.
14
+ */
15
+ const useTagOverflowCalculation = (t0) => {
16
+ const $ = c(16);
17
+ const { containerRef, measurementRef, totalItems, expanded } = t0;
18
+ let t1;
19
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
20
+ t1 = {
21
+ row1TagCount: 0,
22
+ row2TagCount: 0,
23
+ hasOverflow: false
24
+ };
25
+ $[0] = t1;
26
+ } else t1 = $[0];
27
+ const [state, setState] = useState(t1);
28
+ let t2;
29
+ if ($[1] !== containerRef || $[2] !== measurementRef) {
30
+ t2 = () => {
31
+ if (!containerRef.current || !measurementRef.current) return;
32
+ const container = containerRef.current;
33
+ const measurementContainer = measurementRef.current;
34
+ const { tagWidths, labelWidth, clearButtonWidth, expandTagWidth, gap } = getElementMeasurements(measurementContainer);
35
+ if (tagWidths.length === 0) {
36
+ setState({
37
+ row1TagCount: 0,
38
+ row2TagCount: 0,
39
+ hasOverflow: false
40
+ });
41
+ return;
42
+ }
43
+ const containerWidth = getContainerAvailableWidth(container);
44
+ const row1Result = fitTagsInRow(tagWidths, containerWidth - labelWidth - clearButtonWidth - TAG_HOVER_BUTTON_SPACE, gap);
45
+ const remainingTags = tagWidths.slice(row1Result.count);
46
+ if (remainingTags.length === 0) {
47
+ setState({
48
+ row1TagCount: row1Result.count,
49
+ row2TagCount: 0,
50
+ hasOverflow: false
51
+ });
52
+ return;
53
+ }
54
+ const row2WithExpandResult = fitTagsInRow(remainingTags, containerWidth - expandTagWidth - TAG_HOVER_BUTTON_SPACE, gap);
55
+ if (remainingTags.length > row2WithExpandResult.count) setState({
56
+ row1TagCount: row1Result.count,
57
+ row2TagCount: row2WithExpandResult.count,
58
+ hasOverflow: true
59
+ });
60
+ else {
61
+ const row2FullResult = fitTagsInRow(remainingTags, containerWidth - TAG_HOVER_BUTTON_SPACE, gap);
62
+ if (row2FullResult.count < remainingTags.length) setState({
63
+ row1TagCount: row1Result.count,
64
+ row2TagCount: row2WithExpandResult.count,
65
+ hasOverflow: true
66
+ });
67
+ else setState({
68
+ row1TagCount: row1Result.count,
69
+ row2TagCount: row2FullResult.count,
70
+ hasOverflow: false
71
+ });
72
+ }
73
+ };
74
+ $[1] = containerRef;
75
+ $[2] = measurementRef;
76
+ $[3] = t2;
77
+ } else t2 = $[3];
78
+ const calculateLayout = t2;
79
+ let t3;
80
+ if ($[4] !== calculateLayout || $[5] !== containerRef) {
81
+ t3 = () => {
82
+ const rafId = requestAnimationFrame(() => {
83
+ calculateLayout();
84
+ });
85
+ const resizeObserver = new ResizeObserver(() => {
86
+ requestAnimationFrame(() => {
87
+ calculateLayout();
88
+ });
89
+ });
90
+ if (containerRef.current) resizeObserver.observe(containerRef.current);
91
+ return () => {
92
+ cancelAnimationFrame(rafId);
93
+ resizeObserver.disconnect();
94
+ };
95
+ };
96
+ $[4] = calculateLayout;
97
+ $[5] = containerRef;
98
+ $[6] = t3;
99
+ } else t3 = $[6];
100
+ let t4;
101
+ if ($[7] !== calculateLayout || $[8] !== containerRef || $[9] !== expanded || $[10] !== measurementRef || $[11] !== totalItems) {
102
+ t4 = [
103
+ containerRef,
104
+ measurementRef,
105
+ totalItems,
106
+ expanded,
107
+ calculateLayout
108
+ ];
109
+ $[7] = calculateLayout;
110
+ $[8] = containerRef;
111
+ $[9] = expanded;
112
+ $[10] = measurementRef;
113
+ $[11] = totalItems;
114
+ $[12] = t4;
115
+ } else t4 = $[12];
116
+ useLayoutEffect(t3, t4);
117
+ if (expanded) {
118
+ const t5 = totalItems - state.row1TagCount;
119
+ let t6;
120
+ if ($[13] !== state.row1TagCount || $[14] !== t5) {
121
+ t6 = {
122
+ row1TagCount: state.row1TagCount,
123
+ row2TagCount: t5,
124
+ hasOverflow: true
125
+ };
126
+ $[13] = state.row1TagCount;
127
+ $[14] = t5;
128
+ $[15] = t6;
129
+ } else t6 = $[15];
130
+ return t6;
131
+ }
132
+ return state;
133
+ };
134
+
135
+ //#endregion
136
+ export { useTagOverflowCalculation };
137
+ //# sourceMappingURL=use-tag-overflow-calculation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-tag-overflow-calculation.js","names":["RefObject","useCallback","useLayoutEffect","useState","fitTagsInRow","getContainerAvailableWidth","getElementMeasurements","UseTagOverflowCalculationOptions","containerRef","HTMLDivElement","measurementRef","totalItems","expanded","UseTagOverflowCalculationResult","row1TagCount","row2TagCount","hasOverflow","TAG_HOVER_BUTTON_SPACE","useTagOverflowCalculation","t0","$","_c","t1","Symbol","for","state","setState","t2","current","container","measurementContainer","tagWidths","labelWidth","clearButtonWidth","expandTagWidth","gap","length","containerWidth","row1AvailableWidth","row1Result","remainingTags","slice","count","row2AvailableWithExpand","row2WithExpandResult","overflowExists","row2AvailableWithoutExpand","row2FullResult","calculateLayout","t3","rafId","requestAnimationFrame","resizeObserver","ResizeObserver","observe","cancelAnimationFrame","disconnect","t4","t5","t6"],"sources":["../../../../src/components/ds-tag-filter/hooks/use-tag-overflow-calculation.ts"],"sourcesContent":["import { type RefObject, useCallback, useLayoutEffect, useState } from 'react';\nimport { fitTagsInRow, getContainerAvailableWidth, getElementMeasurements } from '../utils';\n\ninterface UseTagOverflowCalculationOptions {\n\tcontainerRef: RefObject<HTMLDivElement | null>;\n\tmeasurementRef: RefObject<HTMLDivElement | null>;\n\ttotalItems: number;\n\texpanded: boolean;\n}\n\ninterface UseTagOverflowCalculationResult {\n\trow1TagCount: number;\n\trow2TagCount: number;\n\thasOverflow: boolean;\n}\n\n// Extra space needed per row for animated delete button that appears on hover\nconst TAG_HOVER_BUTTON_SPACE = 20;\n\n/**\n * Custom hook to calculate how many tags can fit in 2 rows.\n *\n * Row 1: Label + Tags + Clear Button\n * Row 2: Remaining Tags + Expand Tag (only if overflow)\n *\n * Measures actual element widths to determine optimal placement.\n */\nexport const useTagOverflowCalculation = ({\n\tcontainerRef,\n\tmeasurementRef,\n\ttotalItems,\n\texpanded,\n}: UseTagOverflowCalculationOptions): UseTagOverflowCalculationResult => {\n\tconst [state, setState] = useState<UseTagOverflowCalculationResult>({\n\t\trow1TagCount: 0,\n\t\trow2TagCount: 0,\n\t\thasOverflow: false,\n\t});\n\n\tconst calculateLayout = useCallback(() => {\n\t\tif (!containerRef.current || !measurementRef.current) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst container = containerRef.current;\n\t\tconst measurementContainer = measurementRef.current;\n\n\t\tconst { tagWidths, labelWidth, clearButtonWidth, expandTagWidth, gap } =\n\t\t\tgetElementMeasurements(measurementContainer);\n\n\t\tif (tagWidths.length === 0) {\n\t\t\tsetState({ row1TagCount: 0, row2TagCount: 0, hasOverflow: false });\n\t\t\treturn;\n\t\t}\n\n\t\tconst containerWidth = getContainerAvailableWidth(container);\n\n\t\t// Calculate Row 1 available space (Label + Tags + Clear Button)\n\t\tconst row1AvailableWidth = containerWidth - labelWidth - clearButtonWidth - TAG_HOVER_BUTTON_SPACE;\n\n\t\t// Calculate how many tags fit in Row 1\n\t\tconst row1Result = fitTagsInRow(tagWidths, row1AvailableWidth, gap);\n\t\tconst remainingTags = tagWidths.slice(row1Result.count);\n\n\t\tif (remainingTags.length === 0) {\n\t\t\t// All tags fit in Row 1, no overflow\n\t\t\tsetState({ row1TagCount: row1Result.count, row2TagCount: 0, hasOverflow: false });\n\t\t\treturn;\n\t\t}\n\n\t\t// Calculate with expand tag reserved (pessimistic)\n\t\tconst row2AvailableWithExpand = containerWidth - expandTagWidth - TAG_HOVER_BUTTON_SPACE;\n\t\tconst row2WithExpandResult = fitTagsInRow(remainingTags, row2AvailableWithExpand, gap);\n\n\t\t// Check if there's overflow (more remaining tags than fit in Row 2 with expand)\n\t\tconst overflowExists = remainingTags.length > row2WithExpandResult.count;\n\n\t\tif (overflowExists) {\n\t\t\t// Use the count with expand tag space reserved\n\t\t\tsetState({\n\t\t\t\trow1TagCount: row1Result.count,\n\t\t\t\trow2TagCount: row2WithExpandResult.count,\n\t\t\t\thasOverflow: true,\n\t\t\t});\n\t\t} else {\n\t\t\t// No overflow - recalculate Row 2 without reserving expand tag space\n\t\t\tconst row2AvailableWithoutExpand = containerWidth - TAG_HOVER_BUTTON_SPACE;\n\t\t\tconst row2FullResult = fitTagsInRow(remainingTags, row2AvailableWithoutExpand, gap);\n\n\t\t\t// Double-check: if even without expand tag we can't fit all, we have overflow\n\t\t\tif (row2FullResult.count < remainingTags.length) {\n\t\t\t\tsetState({\n\t\t\t\t\trow1TagCount: row1Result.count,\n\t\t\t\t\trow2TagCount: row2WithExpandResult.count,\n\t\t\t\t\thasOverflow: true,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tsetState({ row1TagCount: row1Result.count, row2TagCount: row2FullResult.count, hasOverflow: false });\n\t\t\t}\n\t\t}\n\t}, [containerRef, measurementRef]);\n\n\tuseLayoutEffect(() => {\n\t\t// Use requestAnimationFrame to ensure DOM is fully laid out\n\t\tconst rafId = requestAnimationFrame(() => {\n\t\t\tcalculateLayout();\n\t\t});\n\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tcalculateLayout();\n\t\t\t});\n\t\t});\n\n\t\tif (containerRef.current) {\n\t\t\tresizeObserver.observe(containerRef.current);\n\t\t}\n\n\t\treturn () => {\n\t\t\tcancelAnimationFrame(rafId);\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t}, [containerRef, measurementRef, totalItems, expanded, calculateLayout]);\n\n\t// When expanded, show all tags\n\tif (expanded) {\n\t\treturn {\n\t\t\trow1TagCount: state.row1TagCount,\n\t\t\trow2TagCount: totalItems - state.row1TagCount,\n\t\t\thasOverflow: true, // Keep expand button visible to allow collapse\n\t\t};\n\t}\n\n\treturn state;\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ const require_ds_tag_filter = require('./ds-tag-filter.cjs');
@@ -0,0 +1,2 @@
1
+ import { DsTagFilterProps, TagFilterItem } from "./ds-tag-filter.types.js";
2
+ import { DsTagFilter } from "./ds-tag-filter.js";
@@ -0,0 +1 @@
1
+ import ds_tag_filter_default from "./ds-tag-filter.js";
@@ -0,0 +1,54 @@
1
+
2
+ //#region src/components/ds-tag-filter/utils.ts
3
+ /**
4
+ * Calculate how many tags fit within the available width.
5
+ * Pure function for easy testing.
6
+ */
7
+ function fitTagsInRow(tagWidths, availableWidth, gap) {
8
+ let usedWidth = 0;
9
+ let count = 0;
10
+ for (const tagWidth of tagWidths) {
11
+ const widthWithGap = tagWidth + (count > 0 ? gap : 0);
12
+ if (usedWidth + widthWithGap <= availableWidth) {
13
+ usedWidth += widthWithGap;
14
+ count++;
15
+ } else break;
16
+ }
17
+ return {
18
+ count,
19
+ usedWidth
20
+ };
21
+ }
22
+ /**
23
+ * Calculate the available width inside a container, accounting for padding.
24
+ */
25
+ function getContainerAvailableWidth(container) {
26
+ const containerRect = container.getBoundingClientRect();
27
+ const containerStyle = getComputedStyle(container);
28
+ const paddingLeft = parseFloat(containerStyle.paddingLeft) || 0;
29
+ const paddingRight = parseFloat(containerStyle.paddingRight) || 0;
30
+ return containerRect.width - paddingLeft - paddingRight;
31
+ }
32
+ /**
33
+ * Measure all relevant elements (tags, label, buttons) inside the measurement container.
34
+ */
35
+ function getElementMeasurements(measurementContainer) {
36
+ const tags = Array.from(measurementContainer.querySelectorAll("[data-measure-tag]"));
37
+ const label = measurementContainer.querySelector("[data-measure-label]");
38
+ const clearButton = measurementContainer.querySelector("[data-measure-clear]");
39
+ const expandTag = measurementContainer.querySelector("[data-measure-expand]");
40
+ const computedStyle = getComputedStyle(measurementContainer);
41
+ const gap = parseFloat(computedStyle.gap) || 8;
42
+ return {
43
+ tagWidths: tags.map((tag) => tag.getBoundingClientRect().width),
44
+ labelWidth: label ? label.getBoundingClientRect().width + gap : 0,
45
+ clearButtonWidth: clearButton ? clearButton.getBoundingClientRect().width + gap : 0,
46
+ expandTagWidth: expandTag ? expandTag.getBoundingClientRect().width + gap : 100,
47
+ gap
48
+ };
49
+ }
50
+
51
+ //#endregion
52
+ exports.fitTagsInRow = fitTagsInRow;
53
+ exports.getContainerAvailableWidth = getContainerAvailableWidth;
54
+ exports.getElementMeasurements = getElementMeasurements;
@@ -0,0 +1,52 @@
1
+ //#region src/components/ds-tag-filter/utils.ts
2
+ /**
3
+ * Calculate how many tags fit within the available width.
4
+ * Pure function for easy testing.
5
+ */
6
+ function fitTagsInRow(tagWidths, availableWidth, gap) {
7
+ let usedWidth = 0;
8
+ let count = 0;
9
+ for (const tagWidth of tagWidths) {
10
+ const widthWithGap = tagWidth + (count > 0 ? gap : 0);
11
+ if (usedWidth + widthWithGap <= availableWidth) {
12
+ usedWidth += widthWithGap;
13
+ count++;
14
+ } else break;
15
+ }
16
+ return {
17
+ count,
18
+ usedWidth
19
+ };
20
+ }
21
+ /**
22
+ * Calculate the available width inside a container, accounting for padding.
23
+ */
24
+ function getContainerAvailableWidth(container) {
25
+ const containerRect = container.getBoundingClientRect();
26
+ const containerStyle = getComputedStyle(container);
27
+ const paddingLeft = parseFloat(containerStyle.paddingLeft) || 0;
28
+ const paddingRight = parseFloat(containerStyle.paddingRight) || 0;
29
+ return containerRect.width - paddingLeft - paddingRight;
30
+ }
31
+ /**
32
+ * Measure all relevant elements (tags, label, buttons) inside the measurement container.
33
+ */
34
+ function getElementMeasurements(measurementContainer) {
35
+ const tags = Array.from(measurementContainer.querySelectorAll("[data-measure-tag]"));
36
+ const label = measurementContainer.querySelector("[data-measure-label]");
37
+ const clearButton = measurementContainer.querySelector("[data-measure-clear]");
38
+ const expandTag = measurementContainer.querySelector("[data-measure-expand]");
39
+ const computedStyle = getComputedStyle(measurementContainer);
40
+ const gap = parseFloat(computedStyle.gap) || 8;
41
+ return {
42
+ tagWidths: tags.map((tag) => tag.getBoundingClientRect().width),
43
+ labelWidth: label ? label.getBoundingClientRect().width + gap : 0,
44
+ clearButtonWidth: clearButton ? clearButton.getBoundingClientRect().width + gap : 0,
45
+ expandTagWidth: expandTag ? expandTag.getBoundingClientRect().width + gap : 100,
46
+ gap
47
+ };
48
+ }
49
+
50
+ //#endregion
51
+ export { fitTagsInRow, getContainerAvailableWidth, getElementMeasurements };
52
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["FitTagsResult","count","usedWidth","ElementMeasurements","tagWidths","labelWidth","clearButtonWidth","expandTagWidth","gap","fitTagsInRow","availableWidth","tagWidth","widthWithGap","getContainerAvailableWidth","container","HTMLDivElement","containerRect","getBoundingClientRect","containerStyle","getComputedStyle","paddingLeft","parseFloat","paddingRight","width","getElementMeasurements","measurementContainer","tags","Array","from","querySelectorAll","label","querySelector","clearButton","expandTag","computedStyle","map","tag"],"sources":["../../../src/components/ds-tag-filter/utils.ts"],"sourcesContent":["export interface FitTagsResult {\n\tcount: number;\n\tusedWidth: number;\n}\n\nexport interface ElementMeasurements {\n\ttagWidths: number[];\n\tlabelWidth: number;\n\tclearButtonWidth: number;\n\texpandTagWidth: number;\n\tgap: number;\n}\n\n/**\n * Calculate how many tags fit within the available width.\n * Pure function for easy testing.\n */\nexport function fitTagsInRow(tagWidths: number[], availableWidth: number, gap: number): FitTagsResult {\n\tlet usedWidth = 0;\n\tlet count = 0;\n\n\tfor (const tagWidth of tagWidths) {\n\t\tconst widthWithGap = tagWidth + (count > 0 ? gap : 0);\n\t\tif (usedWidth + widthWithGap <= availableWidth) {\n\t\t\tusedWidth += widthWithGap;\n\t\t\tcount++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn { count, usedWidth };\n}\n\n/**\n * Calculate the available width inside a container, accounting for padding.\n */\nexport function getContainerAvailableWidth(container: HTMLDivElement): number {\n\tconst containerRect = container.getBoundingClientRect();\n\tconst containerStyle = getComputedStyle(container);\n\tconst paddingLeft = parseFloat(containerStyle.paddingLeft) || 0;\n\tconst paddingRight = parseFloat(containerStyle.paddingRight) || 0;\n\treturn containerRect.width - paddingLeft - paddingRight;\n}\n\n/**\n * Measure all relevant elements (tags, label, buttons) inside the measurement container.\n */\nexport function getElementMeasurements(measurementContainer: HTMLDivElement): ElementMeasurements {\n\tconst tags = Array.from(measurementContainer.querySelectorAll('[data-measure-tag]'));\n\tconst label = measurementContainer.querySelector('[data-measure-label]');\n\tconst clearButton = measurementContainer.querySelector('[data-measure-clear]');\n\tconst expandTag = measurementContainer.querySelector('[data-measure-expand]');\n\n\tconst computedStyle = getComputedStyle(measurementContainer);\n\tconst gap = parseFloat(computedStyle.gap) || 8;\n\n\tconst tagWidths = tags.map((tag) => tag.getBoundingClientRect().width);\n\tconst labelWidth = label ? label.getBoundingClientRect().width + gap : 0;\n\tconst clearButtonWidth = clearButton ? clearButton.getBoundingClientRect().width + gap : 0;\n\t// Fallback width for expand tag (~100px for \"+99 filters\" text) if measurement fails\n\tconst expandTagWidth = expandTag ? expandTag.getBoundingClientRect().width + gap : 100;\n\n\treturn { tagWidths, labelWidth, clearButtonWidth, expandTagWidth, gap };\n}\n"],"mappings":";;;;;AAiBA,SAAgBS,aAAaL,WAAqBM,gBAAwBF,KAA4B;CACrG,IAAIN,YAAY;CAChB,IAAID,QAAQ;AAEZ,MAAK,MAAMU,YAAYP,WAAW;EACjC,MAAMQ,eAAeD,YAAYV,QAAQ,IAAIO,MAAM;AACnD,MAAIN,YAAYU,gBAAgBF,gBAAgB;AAC/CR,gBAAaU;AACbX;QAEA;;AAIF,QAAO;EAAEA;EAAOC;EAAW;;;;;AAM5B,SAAgBW,2BAA2BC,WAAmC;CAC7E,MAAME,gBAAgBF,UAAUG,uBAAuB;CACvD,MAAMC,iBAAiBC,iBAAiBL,UAAU;CAClD,MAAMM,cAAcC,WAAWH,eAAeE,YAAY,IAAI;CAC9D,MAAME,eAAeD,WAAWH,eAAeI,aAAa,IAAI;AAChE,QAAON,cAAcO,QAAQH,cAAcE;;;;;AAM5C,SAAgBE,uBAAuBC,sBAA2D;CACjG,MAAMC,OAAOC,MAAMC,KAAKH,qBAAqBI,iBAAiB,qBAAqB,CAAC;CACpF,MAAMC,QAAQL,qBAAqBM,cAAc,uBAAuB;CACxE,MAAMC,cAAcP,qBAAqBM,cAAc,uBAAuB;CAC9E,MAAME,YAAYR,qBAAqBM,cAAc,wBAAwB;CAE7E,MAAMG,gBAAgBf,iBAAiBM,qBAAqB;CAC5D,MAAMjB,MAAMa,WAAWa,cAAc1B,IAAI,IAAI;AAQ7C,QAAO;EAAEJ,WANSsB,KAAKS,KAAKC,QAAQA,IAAInB,uBAAuB,CAACM,MAAM;EAMlDlB,YALDyB,QAAQA,MAAMb,uBAAuB,CAACM,QAAQf,MAAM;EAKvCF,kBAJP0B,cAAcA,YAAYf,uBAAuB,CAACM,QAAQf,MAAM;EAIvCD,gBAF3B0B,YAAYA,UAAUhB,uBAAuB,CAACM,QAAQf,MAAM;EAEjBA;EAAK"}
@@ -2,7 +2,7 @@ import ds_text_input_module_default from "./ds-text-input.module.js";
2
2
  import { c } from "react/compiler-runtime";
3
3
  import classNames from "classnames";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
- import { Fragment } from "react";
5
+ import { Fragment as Fragment$1 } from "react";
6
6
 
7
7
  //#region src/components/ds-text-input/ds-text-input.tsx
8
8
  const DsTextInput = (t0) => {
@@ -18,7 +18,7 @@ const DsTextInput = (t0) => {
18
18
  } else t5 = $[1];
19
19
  const style = t5;
20
20
  const disabled = t4 === void 0 ? false : t4;
21
- const InputWrapper = slots?.inputWrapper ?? Fragment;
21
+ const InputWrapper = slots?.inputWrapper ?? Fragment$1;
22
22
  const t6 = size === "small";
23
23
  const t7 = size === "default";
24
24
  let t8;
@@ -0,0 +1,192 @@
1
+ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
+ const require_ds_icon = require('../ds-icon/ds-icon.cjs');
3
+ require('../ds-icon/index.cjs');
4
+ const require_ds_typography = require('../ds-typography/ds-typography.cjs');
5
+ require('../ds-typography/index.cjs');
6
+ const require_ds_toggle_module = require('./ds-toggle.module.cjs');
7
+ let react_compiler_runtime = require("react/compiler-runtime");
8
+ let classnames = require("classnames");
9
+ classnames = require_rolldown_runtime.__toESM(classnames);
10
+ let react_jsx_runtime = require("react/jsx-runtime");
11
+ let __ark_ui_react_switch = require("@ark-ui/react/switch");
12
+
13
+ //#region src/components/ds-toggle/ds-toggle.tsx
14
+ /**
15
+ * Design system Toggle component
16
+ */
17
+ const DsToggle = (t0) => {
18
+ const $ = (0, react_compiler_runtime.c)(48);
19
+ let checked;
20
+ let children;
21
+ let className;
22
+ let label;
23
+ let labelInfo;
24
+ let name;
25
+ let onChange;
26
+ let onValueChange;
27
+ let ref;
28
+ let rest;
29
+ let t1;
30
+ let t2;
31
+ if ($[0] !== t0) {
32
+ ({ref, label, name, labelInfo, className, style: t1, onChange, onValueChange, size: t2, children, checked, ...rest} = t0);
33
+ $[0] = t0;
34
+ $[1] = checked;
35
+ $[2] = children;
36
+ $[3] = className;
37
+ $[4] = label;
38
+ $[5] = labelInfo;
39
+ $[6] = name;
40
+ $[7] = onChange;
41
+ $[8] = onValueChange;
42
+ $[9] = ref;
43
+ $[10] = rest;
44
+ $[11] = t1;
45
+ $[12] = t2;
46
+ } else {
47
+ checked = $[1];
48
+ children = $[2];
49
+ className = $[3];
50
+ label = $[4];
51
+ labelInfo = $[5];
52
+ name = $[6];
53
+ onChange = $[7];
54
+ onValueChange = $[8];
55
+ ref = $[9];
56
+ rest = $[10];
57
+ t1 = $[11];
58
+ t2 = $[12];
59
+ }
60
+ let t3;
61
+ if ($[13] !== t1) {
62
+ t3 = t1 === void 0 ? {} : t1;
63
+ $[13] = t1;
64
+ $[14] = t3;
65
+ } else t3 = $[14];
66
+ const style = t3;
67
+ const isSmall = (t2 === void 0 ? "default" : t2) === "small";
68
+ const iconSize = isSmall ? "tiny" : "small";
69
+ let t4;
70
+ if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
71
+ t4 = (0, classnames.default)(require_ds_toggle_module.default.icon, require_ds_toggle_module.default.iconCheck);
72
+ $[15] = t4;
73
+ } else t4 = $[15];
74
+ const checkIconClass = t4;
75
+ let t5;
76
+ if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
77
+ t5 = (0, classnames.default)(require_ds_toggle_module.default.icon, require_ds_toggle_module.default.iconClose);
78
+ $[16] = t5;
79
+ } else t5 = $[16];
80
+ const closeIconClass = t5;
81
+ let t6;
82
+ if ($[17] !== className || $[18] !== isSmall) {
83
+ t6 = (0, classnames.default)(require_ds_toggle_module.default.root, { [require_ds_toggle_module.default.small]: isSmall }, className);
84
+ $[17] = className;
85
+ $[18] = isSmall;
86
+ $[19] = t6;
87
+ } else t6 = $[19];
88
+ const rootClass = t6;
89
+ let t7;
90
+ if ($[20] !== onValueChange) {
91
+ t7 = (e) => {
92
+ onValueChange?.(e.checked);
93
+ };
94
+ $[20] = onValueChange;
95
+ $[21] = t7;
96
+ } else t7 = $[21];
97
+ const handleCheckedChange = t7;
98
+ const t8 = ref;
99
+ let t9;
100
+ if ($[22] !== iconSize) {
101
+ t9 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ds_icon.default, {
102
+ icon: "check",
103
+ size: iconSize,
104
+ className: checkIconClass
105
+ });
106
+ $[22] = iconSize;
107
+ $[23] = t9;
108
+ } else t9 = $[23];
109
+ let t10;
110
+ if ($[24] === Symbol.for("react.memo_cache_sentinel")) {
111
+ t10 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ark_ui_react_switch.Switch.Thumb, {});
112
+ $[24] = t10;
113
+ } else t10 = $[24];
114
+ let t11;
115
+ if ($[25] !== iconSize) {
116
+ t11 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ds_icon.default, {
117
+ icon: "close",
118
+ size: iconSize,
119
+ className: closeIconClass
120
+ });
121
+ $[25] = iconSize;
122
+ $[26] = t11;
123
+ } else t11 = $[26];
124
+ let t12;
125
+ if ($[27] !== t11 || $[28] !== t9) {
126
+ t12 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__ark_ui_react_switch.Switch.Control, { children: [
127
+ t9,
128
+ t10,
129
+ t11
130
+ ] });
131
+ $[27] = t11;
132
+ $[28] = t9;
133
+ $[29] = t12;
134
+ } else t12 = $[29];
135
+ let t13;
136
+ if ($[30] !== children || $[31] !== isSmall || $[32] !== label || $[33] !== labelInfo) {
137
+ t13 = label ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__ark_ui_react_switch.Switch.Label, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ds_typography.default, {
138
+ variant: isSmall ? "body-xs-md" : "body-sm-md",
139
+ children: label
140
+ }), !!labelInfo && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ds_typography.default, {
141
+ variant: "body-xs-reg",
142
+ className: require_ds_toggle_module.default.labelInfo,
143
+ children: labelInfo
144
+ })] }) : children;
145
+ $[30] = children;
146
+ $[31] = isSmall;
147
+ $[32] = label;
148
+ $[33] = labelInfo;
149
+ $[34] = t13;
150
+ } else t13 = $[34];
151
+ let t14;
152
+ if ($[35] === Symbol.for("react.memo_cache_sentinel")) {
153
+ t14 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ark_ui_react_switch.Switch.HiddenInput, {});
154
+ $[35] = t14;
155
+ } else t14 = $[35];
156
+ let t15;
157
+ if ($[36] !== checked || $[37] !== handleCheckedChange || $[38] !== label || $[39] !== name || $[40] !== onChange || $[41] !== rest || $[42] !== rootClass || $[43] !== style || $[44] !== t12 || $[45] !== t13 || $[46] !== t8) {
158
+ t15 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__ark_ui_react_switch.Switch.Root, {
159
+ ref: t8,
160
+ style,
161
+ className: rootClass,
162
+ label,
163
+ checked,
164
+ name,
165
+ onCheckedChange: handleCheckedChange,
166
+ onClick: onChange,
167
+ ...rest,
168
+ children: [
169
+ t12,
170
+ t13,
171
+ t14
172
+ ]
173
+ });
174
+ $[36] = checked;
175
+ $[37] = handleCheckedChange;
176
+ $[38] = label;
177
+ $[39] = name;
178
+ $[40] = onChange;
179
+ $[41] = rest;
180
+ $[42] = rootClass;
181
+ $[43] = style;
182
+ $[44] = t12;
183
+ $[45] = t13;
184
+ $[46] = t8;
185
+ $[47] = t15;
186
+ } else t15 = $[47];
187
+ return t15;
188
+ };
189
+ var ds_toggle_default = DsToggle;
190
+
191
+ //#endregion
192
+ exports.default = ds_toggle_default;
@@ -0,0 +1,24 @@
1
+ import { DsToggleProps } from "./ds-toggle.types.cjs";
2
+ import * as react_jsx_runtime49 from "react/jsx-runtime";
3
+
4
+ //#region src/components/ds-toggle/ds-toggle.d.ts
5
+ /**
6
+ * Design system Toggle component
7
+ */
8
+ declare const DsToggle: ({
9
+ ref,
10
+ label,
11
+ name,
12
+ labelInfo,
13
+ className,
14
+ style,
15
+ onChange,
16
+ onValueChange,
17
+ size,
18
+ children,
19
+ checked,
20
+ ...rest
21
+ }: DsToggleProps) => react_jsx_runtime49.JSX.Element;
22
+ //#endregion
23
+ export { DsToggle };
24
+ //# sourceMappingURL=ds-toggle.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-toggle.d.cts","names":[],"sources":["../../../src/components/ds-toggle/ds-toggle.tsx"],"sourcesContent":[],"mappings":";;;;;;;AAEuD,cASjD,QAgEL,EAAA,CAAA;EAAA,GAAA;EAAA,KAAA;EAAA,IAAA;EAAA,SAAA;EAAA,SAAA;EAAA,KAAA;EAAA,QAAA;EAAA,aAAA;EAAA,IAAA;EAAA,QAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAnDE,aAmDF,EAAA,GAnDe,mBAAA,CAAA,GAAA,CAAA,OAmDf"}
@@ -0,0 +1,24 @@
1
+ import { DsToggleProps } from "./ds-toggle.types.js";
2
+ import * as react_jsx_runtime39 from "react/jsx-runtime";
3
+
4
+ //#region src/components/ds-toggle/ds-toggle.d.ts
5
+ /**
6
+ * Design system Toggle component
7
+ */
8
+ declare const DsToggle: ({
9
+ ref,
10
+ label,
11
+ name,
12
+ labelInfo,
13
+ className,
14
+ style,
15
+ onChange,
16
+ onValueChange,
17
+ size,
18
+ children,
19
+ checked,
20
+ ...rest
21
+ }: DsToggleProps) => react_jsx_runtime39.JSX.Element;
22
+ //#endregion
23
+ export { DsToggle };
24
+ //# sourceMappingURL=ds-toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ds-toggle.d.ts","names":[],"sources":["../../../src/components/ds-toggle/ds-toggle.tsx"],"sourcesContent":[],"mappings":";;;;;;;AAEuD,cASjD,QAgEL,EAAA,CAAA;EAAA,GAAA;EAAA,KAAA;EAAA,IAAA;EAAA,SAAA;EAAA,SAAA;EAAA,KAAA;EAAA,QAAA;EAAA,aAAA;EAAA,IAAA;EAAA,QAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAnDE,aAmDF,EAAA,GAnDe,mBAAA,CAAA,GAAA,CAAA,OAmDf"}