@drivenets/design-system 0.0.2 → 0.0.4

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 (822) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/_virtual/rolldown_runtime.cjs +29 -0
  3. package/dist/components/ds-alert-banner/ds-alert-banner.cjs +182 -0
  4. package/dist/components/ds-alert-banner/ds-alert-banner.d.cts +53 -0
  5. package/dist/components/ds-alert-banner/ds-alert-banner.d.cts.map +1 -0
  6. package/dist/components/ds-alert-banner/ds-alert-banner.d.ts +53 -0
  7. package/dist/components/ds-alert-banner/ds-alert-banner.d.ts.map +1 -0
  8. package/dist/components/ds-alert-banner/ds-alert-banner.js +181 -0
  9. package/dist/components/ds-alert-banner/ds-alert-banner.js.map +1 -0
  10. package/dist/components/ds-alert-banner/ds-alert-banner.module.cjs +21 -0
  11. package/dist/components/ds-alert-banner/ds-alert-banner.module.js +21 -0
  12. package/dist/components/ds-alert-banner/ds-alert-banner.module.js.map +1 -0
  13. package/dist/components/ds-alert-banner/ds-alert-banner.types.cjs +12 -0
  14. package/dist/components/ds-alert-banner/ds-alert-banner.types.d.cts +49 -0
  15. package/dist/components/ds-alert-banner/ds-alert-banner.types.d.cts.map +1 -0
  16. package/dist/components/ds-alert-banner/ds-alert-banner.types.d.ts +50 -0
  17. package/dist/components/ds-alert-banner/ds-alert-banner.types.d.ts.map +1 -0
  18. package/dist/components/ds-alert-banner/ds-alert-banner.types.js +12 -0
  19. package/dist/components/ds-alert-banner/ds-alert-banner.types.js.map +1 -0
  20. package/dist/components/ds-alert-banner/index.cjs +2 -0
  21. package/dist/components/ds-alert-banner/index.d.ts +2 -0
  22. package/dist/components/ds-alert-banner/index.js +2 -0
  23. package/dist/components/ds-breadcrumb/ds-breadcrumb.cjs +135 -0
  24. package/dist/components/ds-breadcrumb/ds-breadcrumb.d.cts +12 -0
  25. package/dist/components/ds-breadcrumb/ds-breadcrumb.d.cts.map +1 -0
  26. package/dist/components/ds-breadcrumb/ds-breadcrumb.d.ts +12 -0
  27. package/dist/components/ds-breadcrumb/ds-breadcrumb.d.ts.map +1 -0
  28. package/dist/components/ds-breadcrumb/ds-breadcrumb.js +134 -0
  29. package/dist/components/ds-breadcrumb/ds-breadcrumb.js.map +1 -0
  30. package/dist/components/ds-breadcrumb/ds-breadcrumb.module.cjs +16 -0
  31. package/dist/components/ds-breadcrumb/ds-breadcrumb.module.js +16 -0
  32. package/dist/components/ds-breadcrumb/ds-breadcrumb.module.js.map +1 -0
  33. package/dist/components/ds-breadcrumb/ds-breadcrumb.types.d.cts +36 -0
  34. package/dist/components/ds-breadcrumb/ds-breadcrumb.types.d.cts.map +1 -0
  35. package/dist/components/ds-breadcrumb/ds-breadcrumb.types.d.ts +37 -0
  36. package/dist/components/ds-breadcrumb/ds-breadcrumb.types.d.ts.map +1 -0
  37. package/dist/components/ds-breadcrumb/index.cjs +1 -0
  38. package/dist/components/ds-breadcrumb/index.d.ts +2 -0
  39. package/dist/components/ds-breadcrumb/index.js +1 -0
  40. package/dist/components/ds-button/ds-button.cjs +32 -0
  41. package/dist/components/ds-button/ds-button.d.cts +8 -0
  42. package/dist/components/ds-button/ds-button.d.cts.map +1 -0
  43. package/dist/components/ds-button/ds-button.d.ts +8 -0
  44. package/dist/components/ds-button/ds-button.d.ts.map +1 -0
  45. package/dist/components/ds-button/ds-button.js +32 -0
  46. package/dist/components/ds-button/ds-button.js.map +1 -0
  47. package/dist/components/ds-button/ds-button.types.d.cts +12 -0
  48. package/dist/components/ds-button/ds-button.types.d.cts.map +1 -0
  49. package/dist/components/ds-button/ds-button.types.d.ts +12 -0
  50. package/dist/components/ds-button/ds-button.types.d.ts.map +1 -0
  51. package/dist/components/ds-button/index.cjs +1 -0
  52. package/dist/components/ds-button/index.d.ts +2 -0
  53. package/dist/components/ds-button/index.js +1 -0
  54. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.cjs +95 -0
  55. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.js +94 -0
  56. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.js.map +1 -0
  57. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.module.cjs +27 -0
  58. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.module.js +27 -0
  59. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.module.js.map +1 -0
  60. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.types.d.cts +38 -0
  61. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.types.d.cts.map +1 -0
  62. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.types.d.ts +38 -0
  63. package/dist/components/ds-button/versions/ds-button-legacy/ds-button-legacy.types.d.ts.map +1 -0
  64. package/dist/components/ds-button/versions/ds-button-legacy/index.cjs +1 -0
  65. package/dist/components/ds-button/versions/ds-button-legacy/index.js +1 -0
  66. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.cjs +102 -0
  67. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.js +101 -0
  68. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.js.map +1 -0
  69. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.module.cjs +25 -0
  70. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.module.js +25 -0
  71. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.module.js.map +1 -0
  72. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.types.d.cts +38 -0
  73. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.types.d.cts.map +1 -0
  74. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.types.d.ts +38 -0
  75. package/dist/components/ds-button/versions/ds-button-new/ds-button-new.types.d.ts.map +1 -0
  76. package/dist/components/ds-button/versions/ds-button-new/index.cjs +1 -0
  77. package/dist/components/ds-button/versions/ds-button-new/index.js +1 -0
  78. package/dist/components/ds-checkbox/ds-checkbox.cjs +123 -0
  79. package/dist/components/ds-checkbox/ds-checkbox.d.cts +12 -0
  80. package/dist/components/ds-checkbox/ds-checkbox.d.cts.map +1 -0
  81. package/dist/components/ds-checkbox/ds-checkbox.d.ts +12 -0
  82. package/dist/components/ds-checkbox/ds-checkbox.d.ts.map +1 -0
  83. package/dist/components/ds-checkbox/ds-checkbox.js +121 -0
  84. package/dist/components/ds-checkbox/ds-checkbox.js.map +1 -0
  85. package/dist/components/ds-checkbox/ds-checkbox.module.cjs +13 -0
  86. package/dist/components/ds-checkbox/ds-checkbox.module.js +13 -0
  87. package/dist/components/ds-checkbox/ds-checkbox.module.js.map +1 -0
  88. package/dist/components/ds-checkbox/ds-checkbox.types.d.cts +31 -0
  89. package/dist/components/ds-checkbox/ds-checkbox.types.d.cts.map +1 -0
  90. package/dist/components/ds-checkbox/ds-checkbox.types.d.ts +31 -0
  91. package/dist/components/ds-checkbox/ds-checkbox.types.d.ts.map +1 -0
  92. package/dist/components/ds-checkbox/index.cjs +1 -0
  93. package/dist/components/ds-checkbox/index.d.ts +2 -0
  94. package/dist/components/ds-checkbox/index.js +1 -0
  95. package/dist/components/ds-chip/ds-chip.cjs +130 -0
  96. package/dist/components/ds-chip/ds-chip.d.cts +12 -0
  97. package/dist/components/ds-chip/ds-chip.d.cts.map +1 -0
  98. package/dist/components/ds-chip/ds-chip.d.ts +12 -0
  99. package/dist/components/ds-chip/ds-chip.d.ts.map +1 -0
  100. package/dist/components/ds-chip/ds-chip.js +129 -0
  101. package/dist/components/ds-chip/ds-chip.js.map +1 -0
  102. package/dist/components/ds-chip/ds-chip.module.cjs +12 -0
  103. package/dist/components/ds-chip/ds-chip.module.js +12 -0
  104. package/dist/components/ds-chip/ds-chip.module.js.map +1 -0
  105. package/dist/components/ds-chip/ds-chip.types.d.cts +49 -0
  106. package/dist/components/ds-chip/ds-chip.types.d.cts.map +1 -0
  107. package/dist/components/ds-chip/ds-chip.types.d.ts +50 -0
  108. package/dist/components/ds-chip/ds-chip.types.d.ts.map +1 -0
  109. package/dist/components/ds-chip/index.cjs +1 -0
  110. package/dist/components/ds-chip/index.d.ts +2 -0
  111. package/dist/components/ds-chip/index.js +1 -0
  112. package/dist/components/ds-chip-group/ds-chip-group.cjs +108 -0
  113. package/dist/components/ds-chip-group/ds-chip-group.d.cts +13 -0
  114. package/dist/components/ds-chip-group/ds-chip-group.d.cts.map +1 -0
  115. package/dist/components/ds-chip-group/ds-chip-group.d.ts +13 -0
  116. package/dist/components/ds-chip-group/ds-chip-group.d.ts.map +1 -0
  117. package/dist/components/ds-chip-group/ds-chip-group.js +106 -0
  118. package/dist/components/ds-chip-group/ds-chip-group.js.map +1 -0
  119. package/dist/components/ds-chip-group/ds-chip-group.module.cjs +15 -0
  120. package/dist/components/ds-chip-group/ds-chip-group.module.js +15 -0
  121. package/dist/components/ds-chip-group/ds-chip-group.module.js.map +1 -0
  122. package/dist/components/ds-chip-group/ds-chip-group.types.d.cts +55 -0
  123. package/dist/components/ds-chip-group/ds-chip-group.types.d.cts.map +1 -0
  124. package/dist/components/ds-chip-group/ds-chip-group.types.d.ts +55 -0
  125. package/dist/components/ds-chip-group/ds-chip-group.types.d.ts.map +1 -0
  126. package/dist/components/ds-chip-group/hooks/use-chip-row-calculation.cjs +51 -0
  127. package/dist/components/ds-chip-group/hooks/use-chip-row-calculation.js +51 -0
  128. package/dist/components/ds-chip-group/hooks/use-chip-row-calculation.js.map +1 -0
  129. package/dist/components/ds-chip-group/index.cjs +1 -0
  130. package/dist/components/ds-chip-group/index.d.ts +2 -0
  131. package/dist/components/ds-chip-group/index.js +1 -0
  132. package/dist/components/ds-confirmation/ds-confirmation.cjs +235 -0
  133. package/dist/components/ds-confirmation/ds-confirmation.d.cts +72 -0
  134. package/dist/components/ds-confirmation/ds-confirmation.d.cts.map +1 -0
  135. package/dist/components/ds-confirmation/ds-confirmation.d.ts +72 -0
  136. package/dist/components/ds-confirmation/ds-confirmation.d.ts.map +1 -0
  137. package/dist/components/ds-confirmation/ds-confirmation.js +234 -0
  138. package/dist/components/ds-confirmation/ds-confirmation.js.map +1 -0
  139. package/dist/components/ds-confirmation/ds-confirmation.module.cjs +21 -0
  140. package/dist/components/ds-confirmation/ds-confirmation.module.js +21 -0
  141. package/dist/components/ds-confirmation/ds-confirmation.module.js.map +1 -0
  142. package/dist/components/ds-confirmation/ds-confirmation.types.d.cts +33 -0
  143. package/dist/components/ds-confirmation/ds-confirmation.types.d.cts.map +1 -0
  144. package/dist/components/ds-confirmation/ds-confirmation.types.d.ts +33 -0
  145. package/dist/components/ds-confirmation/ds-confirmation.types.d.ts.map +1 -0
  146. package/dist/components/ds-confirmation/index.cjs +1 -0
  147. package/dist/components/ds-confirmation/index.d.ts +2 -0
  148. package/dist/components/ds-confirmation/index.js +1 -0
  149. package/dist/components/ds-dialog/ds-dialog.cjs +60 -0
  150. package/dist/components/ds-dialog/ds-dialog.d.cts +8 -0
  151. package/dist/components/ds-dialog/ds-dialog.d.cts.map +1 -0
  152. package/dist/components/ds-dialog/ds-dialog.d.ts +8 -0
  153. package/dist/components/ds-dialog/ds-dialog.d.ts.map +1 -0
  154. package/dist/components/ds-dialog/ds-dialog.js +58 -0
  155. package/dist/components/ds-dialog/ds-dialog.js.map +1 -0
  156. package/dist/components/ds-dialog/ds-dialog.module.cjs +12 -0
  157. package/dist/components/ds-dialog/ds-dialog.module.js +12 -0
  158. package/dist/components/ds-dialog/ds-dialog.module.js.map +1 -0
  159. package/dist/components/ds-dialog/ds-dialog.types.d.cts +55 -0
  160. package/dist/components/ds-dialog/ds-dialog.types.d.cts.map +1 -0
  161. package/dist/components/ds-dialog/ds-dialog.types.d.ts +55 -0
  162. package/dist/components/ds-dialog/ds-dialog.types.d.ts.map +1 -0
  163. package/dist/components/ds-dialog/index.cjs +1 -0
  164. package/dist/components/ds-dialog/index.d.ts +2 -0
  165. package/dist/components/ds-dialog/index.js +1 -0
  166. package/dist/components/ds-drawer/ds-drawer.cjs +297 -0
  167. package/dist/components/ds-drawer/ds-drawer.d.cts +90 -0
  168. package/dist/components/ds-drawer/ds-drawer.d.cts.map +1 -0
  169. package/dist/components/ds-drawer/ds-drawer.d.ts +90 -0
  170. package/dist/components/ds-drawer/ds-drawer.d.ts.map +1 -0
  171. package/dist/components/ds-drawer/ds-drawer.js +296 -0
  172. package/dist/components/ds-drawer/ds-drawer.js.map +1 -0
  173. package/dist/components/ds-drawer/ds-drawer.module.cjs +38 -0
  174. package/dist/components/ds-drawer/ds-drawer.module.js +38 -0
  175. package/dist/components/ds-drawer/ds-drawer.module.js.map +1 -0
  176. package/dist/components/ds-drawer/ds-drawer.types.d.cts +58 -0
  177. package/dist/components/ds-drawer/ds-drawer.types.d.cts.map +1 -0
  178. package/dist/components/ds-drawer/ds-drawer.types.d.ts +58 -0
  179. package/dist/components/ds-drawer/ds-drawer.types.d.ts.map +1 -0
  180. package/dist/components/ds-drawer/index.cjs +1 -0
  181. package/dist/components/ds-drawer/index.d.ts +2 -0
  182. package/dist/components/ds-drawer/index.js +1 -0
  183. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.cjs +629 -0
  184. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.cts +58 -0
  185. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.cts.map +1 -0
  186. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.ts +58 -0
  187. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.d.ts.map +1 -0
  188. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js +626 -0
  189. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js.map +1 -0
  190. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.cjs +25 -0
  191. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.js +25 -0
  192. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.js.map +1 -0
  193. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.cts +247 -0
  194. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.cts.map +1 -0
  195. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.ts +247 -0
  196. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.types.d.ts.map +1 -0
  197. package/dist/components/ds-dropdown-menu/index.cjs +1 -0
  198. package/dist/components/ds-dropdown-menu/index.d.ts +2 -0
  199. package/dist/components/ds-dropdown-menu/index.js +1 -0
  200. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.cjs +173 -0
  201. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.cts +13 -0
  202. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.cts.map +1 -0
  203. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.ts +13 -0
  204. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.ts.map +1 -0
  205. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.js +172 -0
  206. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.js.map +1 -0
  207. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.module.cjs +13 -0
  208. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.module.js +13 -0
  209. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.module.js.map +1 -0
  210. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.types.d.cts +21 -0
  211. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.types.d.cts.map +1 -0
  212. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.types.d.ts +23 -0
  213. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.types.d.ts.map +1 -0
  214. package/dist/components/ds-expandable-text-input/index.cjs +1 -0
  215. package/dist/components/ds-expandable-text-input/index.d.ts +2 -0
  216. package/dist/components/ds-expandable-text-input/index.js +1 -0
  217. package/dist/components/ds-file-upload/components/file-upload/file-upload.cjs +217 -0
  218. package/dist/components/ds-file-upload/components/file-upload/file-upload.d.cts +13 -0
  219. package/dist/components/ds-file-upload/components/file-upload/file-upload.d.cts.map +1 -0
  220. package/dist/components/ds-file-upload/components/file-upload/file-upload.d.ts +13 -0
  221. package/dist/components/ds-file-upload/components/file-upload/file-upload.d.ts.map +1 -0
  222. package/dist/components/ds-file-upload/components/file-upload/file-upload.js +216 -0
  223. package/dist/components/ds-file-upload/components/file-upload/file-upload.js.map +1 -0
  224. package/dist/components/ds-file-upload/components/file-upload/file-upload.module.cjs +15 -0
  225. package/dist/components/ds-file-upload/components/file-upload/file-upload.module.js +15 -0
  226. package/dist/components/ds-file-upload/components/file-upload/file-upload.module.js.map +1 -0
  227. package/dist/components/ds-file-upload/components/file-upload/file-upload.types.d.cts +98 -0
  228. package/dist/components/ds-file-upload/components/file-upload/file-upload.types.d.cts.map +1 -0
  229. package/dist/components/ds-file-upload/components/file-upload/file-upload.types.d.ts +98 -0
  230. package/dist/components/ds-file-upload/components/file-upload/file-upload.types.d.ts.map +1 -0
  231. package/dist/components/ds-file-upload/components/file-upload/index.cjs +1 -0
  232. package/dist/components/ds-file-upload/components/file-upload/index.d.ts +2 -0
  233. package/dist/components/ds-file-upload/components/file-upload/index.js +1 -0
  234. package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.cjs +297 -0
  235. package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.js +296 -0
  236. package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.js.map +1 -0
  237. package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.module.cjs +24 -0
  238. package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.module.js +24 -0
  239. package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.module.js.map +1 -0
  240. package/dist/components/ds-file-upload/components/file-upload-item/index.cjs +1 -0
  241. package/dist/components/ds-file-upload/components/file-upload-item/index.js +1 -0
  242. package/dist/components/ds-file-upload/ds-file-upload-api.types.d.cts +38 -0
  243. package/dist/components/ds-file-upload/ds-file-upload-api.types.d.cts.map +1 -0
  244. package/dist/components/ds-file-upload/ds-file-upload-api.types.d.ts +38 -0
  245. package/dist/components/ds-file-upload/ds-file-upload-api.types.d.ts.map +1 -0
  246. package/dist/components/ds-file-upload/ds-file-upload.cjs +117 -0
  247. package/dist/components/ds-file-upload/ds-file-upload.d.cts +12 -0
  248. package/dist/components/ds-file-upload/ds-file-upload.d.cts.map +1 -0
  249. package/dist/components/ds-file-upload/ds-file-upload.d.ts +12 -0
  250. package/dist/components/ds-file-upload/ds-file-upload.d.ts.map +1 -0
  251. package/dist/components/ds-file-upload/ds-file-upload.js +117 -0
  252. package/dist/components/ds-file-upload/ds-file-upload.js.map +1 -0
  253. package/dist/components/ds-file-upload/ds-file-upload.types.d.cts +36 -0
  254. package/dist/components/ds-file-upload/ds-file-upload.types.d.cts.map +1 -0
  255. package/dist/components/ds-file-upload/ds-file-upload.types.d.ts +37 -0
  256. package/dist/components/ds-file-upload/ds-file-upload.types.d.ts.map +1 -0
  257. package/dist/components/ds-file-upload/errors/file-upload-errors.cjs +30 -0
  258. package/dist/components/ds-file-upload/errors/file-upload-errors.d.cts +25 -0
  259. package/dist/components/ds-file-upload/errors/file-upload-errors.d.cts.map +1 -0
  260. package/dist/components/ds-file-upload/errors/file-upload-errors.d.ts +25 -0
  261. package/dist/components/ds-file-upload/errors/file-upload-errors.d.ts.map +1 -0
  262. package/dist/components/ds-file-upload/errors/file-upload-errors.js +28 -0
  263. package/dist/components/ds-file-upload/errors/file-upload-errors.js.map +1 -0
  264. package/dist/components/ds-file-upload/hooks/index.cjs +1 -0
  265. package/dist/components/ds-file-upload/hooks/index.d.ts +1 -0
  266. package/dist/components/ds-file-upload/hooks/index.js +1 -0
  267. package/dist/components/ds-file-upload/hooks/use-file-upload.cjs +201 -0
  268. package/dist/components/ds-file-upload/hooks/use-file-upload.d.cts +59 -0
  269. package/dist/components/ds-file-upload/hooks/use-file-upload.d.cts.map +1 -0
  270. package/dist/components/ds-file-upload/hooks/use-file-upload.d.ts +60 -0
  271. package/dist/components/ds-file-upload/hooks/use-file-upload.d.ts.map +1 -0
  272. package/dist/components/ds-file-upload/hooks/use-file-upload.js +201 -0
  273. package/dist/components/ds-file-upload/hooks/use-file-upload.js.map +1 -0
  274. package/dist/components/ds-file-upload/index.cjs +6 -0
  275. package/dist/components/ds-file-upload/index.d.ts +9 -0
  276. package/dist/components/ds-file-upload/index.js +6 -0
  277. package/dist/components/ds-file-upload/types/accept-types.cjs +117 -0
  278. package/dist/components/ds-file-upload/types/accept-types.d.cts +21 -0
  279. package/dist/components/ds-file-upload/types/accept-types.d.cts.map +1 -0
  280. package/dist/components/ds-file-upload/types/accept-types.d.ts +21 -0
  281. package/dist/components/ds-file-upload/types/accept-types.d.ts.map +1 -0
  282. package/dist/components/ds-file-upload/types/accept-types.js +117 -0
  283. package/dist/components/ds-file-upload/types/accept-types.js.map +1 -0
  284. package/dist/components/ds-file-upload/utils/accept-utils.cjs +26 -0
  285. package/dist/components/ds-file-upload/utils/accept-utils.js +26 -0
  286. package/dist/components/ds-file-upload/utils/accept-utils.js.map +1 -0
  287. package/dist/components/ds-file-upload/utils/constants.cjs +24 -0
  288. package/dist/components/ds-file-upload/utils/constants.js +22 -0
  289. package/dist/components/ds-file-upload/utils/constants.js.map +1 -0
  290. package/dist/components/ds-file-upload/utils/file-factory.cjs +20 -0
  291. package/dist/components/ds-file-upload/utils/file-factory.js +20 -0
  292. package/dist/components/ds-file-upload/utils/file-factory.js.map +1 -0
  293. package/dist/components/ds-file-upload/utils/format-file-size.cjs +22 -0
  294. package/dist/components/ds-file-upload/utils/format-file-size.js +22 -0
  295. package/dist/components/ds-file-upload/utils/format-file-size.js.map +1 -0
  296. package/dist/components/ds-file-upload/utils/generate-helper-text.cjs +21 -0
  297. package/dist/components/ds-file-upload/utils/generate-helper-text.js +22 -0
  298. package/dist/components/ds-file-upload/utils/generate-helper-text.js.map +1 -0
  299. package/dist/components/ds-file-upload/utils/get-error-message.cjs +19 -0
  300. package/dist/components/ds-file-upload/utils/get-error-message.js +19 -0
  301. package/dist/components/ds-file-upload/utils/get-error-message.js.map +1 -0
  302. package/dist/components/ds-file-upload/utils/is-file-equal.cjs +13 -0
  303. package/dist/components/ds-file-upload/utils/is-file-equal.js +13 -0
  304. package/dist/components/ds-file-upload/utils/is-file-equal.js.map +1 -0
  305. package/dist/components/ds-form-control/ds-form-control.cjs +179 -0
  306. package/dist/components/ds-form-control/ds-form-control.d.cts +33 -0
  307. package/dist/components/ds-form-control/ds-form-control.d.cts.map +1 -0
  308. package/dist/components/ds-form-control/ds-form-control.d.ts +38 -0
  309. package/dist/components/ds-form-control/ds-form-control.d.ts.map +1 -0
  310. package/dist/components/ds-form-control/ds-form-control.js +178 -0
  311. package/dist/components/ds-form-control/ds-form-control.js.map +1 -0
  312. package/dist/components/ds-form-control/ds-form-control.module.cjs +24 -0
  313. package/dist/components/ds-form-control/ds-form-control.module.js +24 -0
  314. package/dist/components/ds-form-control/ds-form-control.module.js.map +1 -0
  315. package/dist/components/ds-form-control/ds-form-control.types.cjs +11 -0
  316. package/dist/components/ds-form-control/ds-form-control.types.d.cts +59 -0
  317. package/dist/components/ds-form-control/ds-form-control.types.d.cts.map +1 -0
  318. package/dist/components/ds-form-control/ds-form-control.types.d.ts +60 -0
  319. package/dist/components/ds-form-control/ds-form-control.types.d.ts.map +1 -0
  320. package/dist/components/ds-form-control/ds-form-control.types.js +11 -0
  321. package/dist/components/ds-form-control/ds-form-control.types.js.map +1 -0
  322. package/dist/components/ds-form-control/index.cjs +2 -0
  323. package/dist/components/ds-form-control/index.d.ts +2 -0
  324. package/dist/components/ds-form-control/index.js +2 -0
  325. package/dist/components/ds-grid/ds-grid.cjs +36 -0
  326. package/dist/components/ds-grid/ds-grid.d.cts +16 -0
  327. package/dist/components/ds-grid/ds-grid.d.cts.map +1 -0
  328. package/dist/components/ds-grid/ds-grid.d.ts +16 -0
  329. package/dist/components/ds-grid/ds-grid.d.ts.map +1 -0
  330. package/dist/components/ds-grid/ds-grid.js +34 -0
  331. package/dist/components/ds-grid/ds-grid.js.map +1 -0
  332. package/dist/components/ds-grid/ds-grid.types.d.cts +50 -0
  333. package/dist/components/ds-grid/ds-grid.types.d.cts.map +1 -0
  334. package/dist/components/ds-grid/ds-grid.types.d.ts +50 -0
  335. package/dist/components/ds-grid/ds-grid.types.d.ts.map +1 -0
  336. package/dist/components/ds-grid/index.cjs +1 -0
  337. package/dist/components/ds-grid/index.d.ts +2 -0
  338. package/dist/components/ds-grid/index.js +1 -0
  339. package/dist/components/ds-icon/ds-icon.cjs +100 -0
  340. package/dist/components/ds-icon/ds-icon.d.cts +12 -0
  341. package/dist/components/ds-icon/ds-icon.d.cts.map +1 -0
  342. package/dist/components/ds-icon/ds-icon.d.ts +12 -0
  343. package/dist/components/ds-icon/ds-icon.d.ts.map +1 -0
  344. package/dist/components/ds-icon/ds-icon.js +99 -0
  345. package/dist/components/ds-icon/ds-icon.js.map +1 -0
  346. package/dist/components/ds-icon/ds-icon.module.cjs +14 -0
  347. package/dist/components/ds-icon/ds-icon.module.js +14 -0
  348. package/dist/components/ds-icon/ds-icon.module.js.map +1 -0
  349. package/dist/components/ds-icon/ds-icon.types.cjs +14 -0
  350. package/dist/components/ds-icon/ds-icon.types.d.cts +46 -0
  351. package/dist/components/ds-icon/ds-icon.types.d.cts.map +1 -0
  352. package/dist/components/ds-icon/ds-icon.types.d.ts +46 -0
  353. package/dist/components/ds-icon/ds-icon.types.d.ts.map +1 -0
  354. package/dist/components/ds-icon/ds-icon.types.js +13 -0
  355. package/dist/components/ds-icon/ds-icon.types.js.map +1 -0
  356. package/dist/components/ds-icon/index.cjs +2 -0
  357. package/dist/components/ds-icon/index.d.ts +2 -0
  358. package/dist/components/ds-icon/index.js +2 -0
  359. package/dist/components/ds-icon/material-icons.d.cts +6186 -0
  360. package/dist/components/ds-icon/material-icons.d.cts.map +1 -0
  361. package/dist/components/ds-icon/material-icons.d.ts +6186 -0
  362. package/dist/components/ds-icon/material-icons.d.ts.map +1 -0
  363. package/dist/components/ds-modal/ds-modal.cjs +252 -0
  364. package/dist/components/ds-modal/ds-modal.d.cts +79 -0
  365. package/dist/components/ds-modal/ds-modal.d.cts.map +1 -0
  366. package/dist/components/ds-modal/ds-modal.d.ts +79 -0
  367. package/dist/components/ds-modal/ds-modal.d.ts.map +1 -0
  368. package/dist/components/ds-modal/ds-modal.js +251 -0
  369. package/dist/components/ds-modal/ds-modal.js.map +1 -0
  370. package/dist/components/ds-modal/ds-modal.module.cjs +31 -0
  371. package/dist/components/ds-modal/ds-modal.module.js +31 -0
  372. package/dist/components/ds-modal/ds-modal.module.js.map +1 -0
  373. package/dist/components/ds-modal/ds-modal.types.d.cts +43 -0
  374. package/dist/components/ds-modal/ds-modal.types.d.cts.map +1 -0
  375. package/dist/components/ds-modal/ds-modal.types.d.ts +43 -0
  376. package/dist/components/ds-modal/ds-modal.types.d.ts.map +1 -0
  377. package/dist/components/ds-modal/index.cjs +1 -0
  378. package/dist/components/ds-modal/index.d.ts +2 -0
  379. package/dist/components/ds-modal/index.js +1 -0
  380. package/dist/components/ds-number-input/ds-number-input.cjs +158 -0
  381. package/dist/components/ds-number-input/ds-number-input.d.cts +8 -0
  382. package/dist/components/ds-number-input/ds-number-input.d.cts.map +1 -0
  383. package/dist/components/ds-number-input/ds-number-input.d.ts +8 -0
  384. package/dist/components/ds-number-input/ds-number-input.d.ts.map +1 -0
  385. package/dist/components/ds-number-input/ds-number-input.js +157 -0
  386. package/dist/components/ds-number-input/ds-number-input.js.map +1 -0
  387. package/dist/components/ds-number-input/ds-number-input.module.cjs +14 -0
  388. package/dist/components/ds-number-input/ds-number-input.module.js +14 -0
  389. package/dist/components/ds-number-input/ds-number-input.module.js.map +1 -0
  390. package/dist/components/ds-number-input/ds-number-input.types.d.cts +80 -0
  391. package/dist/components/ds-number-input/ds-number-input.types.d.cts.map +1 -0
  392. package/dist/components/ds-number-input/ds-number-input.types.d.ts +80 -0
  393. package/dist/components/ds-number-input/ds-number-input.types.d.ts.map +1 -0
  394. package/dist/components/ds-number-input/index.cjs +1 -0
  395. package/dist/components/ds-number-input/index.d.ts +2 -0
  396. package/dist/components/ds-number-input/index.js +1 -0
  397. package/dist/components/ds-panel/ds-panel.cjs +130 -0
  398. package/dist/components/ds-panel/ds-panel.d.cts +17 -0
  399. package/dist/components/ds-panel/ds-panel.d.cts.map +1 -0
  400. package/dist/components/ds-panel/ds-panel.d.ts +17 -0
  401. package/dist/components/ds-panel/ds-panel.d.ts.map +1 -0
  402. package/dist/components/ds-panel/ds-panel.js +128 -0
  403. package/dist/components/ds-panel/ds-panel.js.map +1 -0
  404. package/dist/components/ds-panel/ds-panel.module.cjs +13 -0
  405. package/dist/components/ds-panel/ds-panel.module.js +13 -0
  406. package/dist/components/ds-panel/ds-panel.module.js.map +1 -0
  407. package/dist/components/ds-panel/ds-panel.types.d.cts +19 -0
  408. package/dist/components/ds-panel/ds-panel.types.d.cts.map +1 -0
  409. package/dist/components/ds-panel/ds-panel.types.d.ts +19 -0
  410. package/dist/components/ds-panel/ds-panel.types.d.ts.map +1 -0
  411. package/dist/components/ds-panel/index.cjs +1 -0
  412. package/dist/components/ds-panel/index.d.ts +2 -0
  413. package/dist/components/ds-panel/index.js +1 -0
  414. package/dist/components/ds-password-input/ds-password-input.cjs +125 -0
  415. package/dist/components/ds-password-input/ds-password-input.d.cts +8 -0
  416. package/dist/components/ds-password-input/ds-password-input.d.cts.map +1 -0
  417. package/dist/components/ds-password-input/ds-password-input.d.ts +8 -0
  418. package/dist/components/ds-password-input/ds-password-input.d.ts.map +1 -0
  419. package/dist/components/ds-password-input/ds-password-input.js +124 -0
  420. package/dist/components/ds-password-input/ds-password-input.js.map +1 -0
  421. package/dist/components/ds-password-input/ds-password-input.module.cjs +14 -0
  422. package/dist/components/ds-password-input/ds-password-input.module.js +14 -0
  423. package/dist/components/ds-password-input/ds-password-input.module.js.map +1 -0
  424. package/dist/components/ds-password-input/ds-password-input.types.d.cts +66 -0
  425. package/dist/components/ds-password-input/ds-password-input.types.d.cts.map +1 -0
  426. package/dist/components/ds-password-input/ds-password-input.types.d.ts +66 -0
  427. package/dist/components/ds-password-input/ds-password-input.types.d.ts.map +1 -0
  428. package/dist/components/ds-password-input/index.cjs +1 -0
  429. package/dist/components/ds-password-input/index.d.ts +2 -0
  430. package/dist/components/ds-password-input/index.js +1 -0
  431. package/dist/components/ds-popover/ds-popover.cjs +64 -0
  432. package/dist/components/ds-popover/ds-popover.d.cts +8 -0
  433. package/dist/components/ds-popover/ds-popover.d.cts.map +1 -0
  434. package/dist/components/ds-popover/ds-popover.d.ts +8 -0
  435. package/dist/components/ds-popover/ds-popover.d.ts.map +1 -0
  436. package/dist/components/ds-popover/ds-popover.js +62 -0
  437. package/dist/components/ds-popover/ds-popover.js.map +1 -0
  438. package/dist/components/ds-popover/ds-popover.module.cjs +9 -0
  439. package/dist/components/ds-popover/ds-popover.module.js +9 -0
  440. package/dist/components/ds-popover/ds-popover.module.js.map +1 -0
  441. package/dist/components/ds-popover/ds-popover.types.d.cts +28 -0
  442. package/dist/components/ds-popover/ds-popover.types.d.cts.map +1 -0
  443. package/dist/components/ds-popover/ds-popover.types.d.ts +28 -0
  444. package/dist/components/ds-popover/ds-popover.types.d.ts.map +1 -0
  445. package/dist/components/ds-popover/index.cjs +1 -0
  446. package/dist/components/ds-popover/index.d.ts +2 -0
  447. package/dist/components/ds-popover/index.js +1 -0
  448. package/dist/components/ds-radio-group/ds-radio-group.cjs +255 -0
  449. package/dist/components/ds-radio-group/ds-radio-group.d.cts +27 -0
  450. package/dist/components/ds-radio-group/ds-radio-group.d.cts.map +1 -0
  451. package/dist/components/ds-radio-group/ds-radio-group.d.ts +27 -0
  452. package/dist/components/ds-radio-group/ds-radio-group.d.ts.map +1 -0
  453. package/dist/components/ds-radio-group/ds-radio-group.js +252 -0
  454. package/dist/components/ds-radio-group/ds-radio-group.js.map +1 -0
  455. package/dist/components/ds-radio-group/ds-radio-group.module.cjs +14 -0
  456. package/dist/components/ds-radio-group/ds-radio-group.module.js +14 -0
  457. package/dist/components/ds-radio-group/ds-radio-group.module.js.map +1 -0
  458. package/dist/components/ds-radio-group/ds-radio-group.types.cjs +1 -0
  459. package/dist/components/ds-radio-group/ds-radio-group.types.d.cts +87 -0
  460. package/dist/components/ds-radio-group/ds-radio-group.types.d.cts.map +1 -0
  461. package/dist/components/ds-radio-group/ds-radio-group.types.d.ts +87 -0
  462. package/dist/components/ds-radio-group/ds-radio-group.types.d.ts.map +1 -0
  463. package/dist/components/ds-radio-group/ds-radio-group.types.js +1 -0
  464. package/dist/components/ds-radio-group/index.cjs +2 -0
  465. package/dist/components/ds-radio-group/index.d.ts +2 -0
  466. package/dist/components/ds-radio-group/index.js +2 -0
  467. package/dist/components/ds-select/ds-select.cjs +276 -0
  468. package/dist/components/ds-select/ds-select.d.cts +21 -0
  469. package/dist/components/ds-select/ds-select.d.cts.map +1 -0
  470. package/dist/components/ds-select/ds-select.d.ts +21 -0
  471. package/dist/components/ds-select/ds-select.d.ts.map +1 -0
  472. package/dist/components/ds-select/ds-select.js +275 -0
  473. package/dist/components/ds-select/ds-select.js.map +1 -0
  474. package/dist/components/ds-select/ds-select.module.cjs +24 -0
  475. package/dist/components/ds-select/ds-select.module.js +24 -0
  476. package/dist/components/ds-select/ds-select.module.js.map +1 -0
  477. package/dist/components/ds-select/ds-select.types.d.cts +74 -0
  478. package/dist/components/ds-select/ds-select.types.d.cts.map +1 -0
  479. package/dist/components/ds-select/ds-select.types.d.ts +75 -0
  480. package/dist/components/ds-select/ds-select.types.d.ts.map +1 -0
  481. package/dist/components/ds-select/index.cjs +1 -0
  482. package/dist/components/ds-select/index.d.ts +2 -0
  483. package/dist/components/ds-select/index.js +1 -0
  484. package/dist/components/ds-select/select-items-chips.cjs +97 -0
  485. package/dist/components/ds-select/select-items-chips.js +97 -0
  486. package/dist/components/ds-select/select-items-chips.js.map +1 -0
  487. package/dist/components/ds-smart-tabs/ds-smart-tabs.cjs +252 -0
  488. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.cts +22 -0
  489. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.cts.map +1 -0
  490. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts +22 -0
  491. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts.map +1 -0
  492. package/dist/components/ds-smart-tabs/ds-smart-tabs.js +251 -0
  493. package/dist/components/ds-smart-tabs/ds-smart-tabs.js.map +1 -0
  494. package/dist/components/ds-smart-tabs/ds-smart-tabs.module.cjs +15 -0
  495. package/dist/components/ds-smart-tabs/ds-smart-tabs.module.js +15 -0
  496. package/dist/components/ds-smart-tabs/ds-smart-tabs.module.js.map +1 -0
  497. package/dist/components/ds-smart-tabs/ds-smart-tabs.types.cjs +16 -0
  498. package/dist/components/ds-smart-tabs/ds-smart-tabs.types.d.cts +65 -0
  499. package/dist/components/ds-smart-tabs/ds-smart-tabs.types.d.cts.map +1 -0
  500. package/dist/components/ds-smart-tabs/ds-smart-tabs.types.d.ts +65 -0
  501. package/dist/components/ds-smart-tabs/ds-smart-tabs.types.d.ts.map +1 -0
  502. package/dist/components/ds-smart-tabs/ds-smart-tabs.types.js +16 -0
  503. package/dist/components/ds-smart-tabs/ds-smart-tabs.types.js.map +1 -0
  504. package/dist/components/ds-smart-tabs/index.cjs +2 -0
  505. package/dist/components/ds-smart-tabs/index.d.ts +2 -0
  506. package/dist/components/ds-smart-tabs/index.js +2 -0
  507. package/dist/components/ds-spinner/ds-spinner.cjs +122 -0
  508. package/dist/components/ds-spinner/ds-spinner.d.cts +12 -0
  509. package/dist/components/ds-spinner/ds-spinner.d.cts.map +1 -0
  510. package/dist/components/ds-spinner/ds-spinner.d.ts +12 -0
  511. package/dist/components/ds-spinner/ds-spinner.d.ts.map +1 -0
  512. package/dist/components/ds-spinner/ds-spinner.js +121 -0
  513. package/dist/components/ds-spinner/ds-spinner.js.map +1 -0
  514. package/dist/components/ds-spinner/ds-spinner.module.cjs +11 -0
  515. package/dist/components/ds-spinner/ds-spinner.module.js +11 -0
  516. package/dist/components/ds-spinner/ds-spinner.module.js.map +1 -0
  517. package/dist/components/ds-spinner/ds-spinner.types.cjs +10 -0
  518. package/dist/components/ds-spinner/ds-spinner.types.d.cts +23 -0
  519. package/dist/components/ds-spinner/ds-spinner.types.d.cts.map +1 -0
  520. package/dist/components/ds-spinner/ds-spinner.types.d.ts +23 -0
  521. package/dist/components/ds-spinner/ds-spinner.types.d.ts.map +1 -0
  522. package/dist/components/ds-spinner/ds-spinner.types.js +10 -0
  523. package/dist/components/ds-spinner/ds-spinner.types.js.map +1 -0
  524. package/dist/components/ds-spinner/index.cjs +2 -0
  525. package/dist/components/ds-spinner/index.d.ts +2 -0
  526. package/dist/components/ds-spinner/index.js +2 -0
  527. package/dist/components/ds-status-badge/ds-status-badge.cjs +79 -0
  528. package/dist/components/ds-status-badge/ds-status-badge.d.cts +12 -0
  529. package/dist/components/ds-status-badge/ds-status-badge.d.cts.map +1 -0
  530. package/dist/components/ds-status-badge/ds-status-badge.d.ts +12 -0
  531. package/dist/components/ds-status-badge/ds-status-badge.d.ts.map +1 -0
  532. package/dist/components/ds-status-badge/ds-status-badge.js +78 -0
  533. package/dist/components/ds-status-badge/ds-status-badge.js.map +1 -0
  534. package/dist/components/ds-status-badge/ds-status-badge.module.cjs +18 -0
  535. package/dist/components/ds-status-badge/ds-status-badge.module.js +18 -0
  536. package/dist/components/ds-status-badge/ds-status-badge.module.js.map +1 -0
  537. package/dist/components/ds-status-badge/ds-status-badge.types.d.cts +47 -0
  538. package/dist/components/ds-status-badge/ds-status-badge.types.d.cts.map +1 -0
  539. package/dist/components/ds-status-badge/ds-status-badge.types.d.ts +48 -0
  540. package/dist/components/ds-status-badge/ds-status-badge.types.d.ts.map +1 -0
  541. package/dist/components/ds-status-badge/index.cjs +1 -0
  542. package/dist/components/ds-status-badge/index.d.ts +2 -0
  543. package/dist/components/ds-status-badge/index.js +1 -0
  544. package/dist/components/ds-stepper/components/ds-step-content.cjs +74 -0
  545. package/dist/components/ds-stepper/components/ds-step-content.d.cts +19 -0
  546. package/dist/components/ds-stepper/components/ds-step-content.d.cts.map +1 -0
  547. package/dist/components/ds-stepper/components/ds-step-content.d.ts +19 -0
  548. package/dist/components/ds-stepper/components/ds-step-content.d.ts.map +1 -0
  549. package/dist/components/ds-stepper/components/ds-step-content.js +73 -0
  550. package/dist/components/ds-stepper/components/ds-step-content.js.map +1 -0
  551. package/dist/components/ds-stepper/components/ds-step-description.cjs +23 -0
  552. package/dist/components/ds-stepper/components/ds-step-description.js +23 -0
  553. package/dist/components/ds-stepper/components/ds-step-description.js.map +1 -0
  554. package/dist/components/ds-stepper/components/ds-step-label.cjs +23 -0
  555. package/dist/components/ds-stepper/components/ds-step-label.js +23 -0
  556. package/dist/components/ds-stepper/components/ds-step-label.js.map +1 -0
  557. package/dist/components/ds-stepper/components/ds-step-next-button.cjs +33 -0
  558. package/dist/components/ds-stepper/components/ds-step-next-button.d.cts +10 -0
  559. package/dist/components/ds-stepper/components/ds-step-next-button.d.cts.map +1 -0
  560. package/dist/components/ds-stepper/components/ds-step-next-button.d.ts +10 -0
  561. package/dist/components/ds-stepper/components/ds-step-next-button.d.ts.map +1 -0
  562. package/dist/components/ds-stepper/components/ds-step-next-button.js +33 -0
  563. package/dist/components/ds-stepper/components/ds-step-next-button.js.map +1 -0
  564. package/dist/components/ds-stepper/components/ds-step.cjs +126 -0
  565. package/dist/components/ds-stepper/components/ds-step.d.cts +16 -0
  566. package/dist/components/ds-stepper/components/ds-step.d.cts.map +1 -0
  567. package/dist/components/ds-stepper/components/ds-step.d.ts +16 -0
  568. package/dist/components/ds-stepper/components/ds-step.d.ts.map +1 -0
  569. package/dist/components/ds-stepper/components/ds-step.js +125 -0
  570. package/dist/components/ds-stepper/components/ds-step.js.map +1 -0
  571. package/dist/components/ds-stepper/ds-stepper.cjs +78 -0
  572. package/dist/components/ds-stepper/ds-stepper.d.cts +15 -0
  573. package/dist/components/ds-stepper/ds-stepper.d.cts.map +1 -0
  574. package/dist/components/ds-stepper/ds-stepper.d.ts +15 -0
  575. package/dist/components/ds-stepper/ds-stepper.d.ts.map +1 -0
  576. package/dist/components/ds-stepper/ds-stepper.js +77 -0
  577. package/dist/components/ds-stepper/ds-stepper.js.map +1 -0
  578. package/dist/components/ds-stepper/ds-stepper.module.cjs +18 -0
  579. package/dist/components/ds-stepper/ds-stepper.module.js +18 -0
  580. package/dist/components/ds-stepper/ds-stepper.module.js.map +1 -0
  581. package/dist/components/ds-stepper/ds-stepper.types.d.cts +13 -0
  582. package/dist/components/ds-stepper/ds-stepper.types.d.cts.map +1 -0
  583. package/dist/components/ds-stepper/ds-stepper.types.d.ts +13 -0
  584. package/dist/components/ds-stepper/ds-stepper.types.d.ts.map +1 -0
  585. package/dist/components/ds-stepper/hooks/use-stepper.cjs +14 -0
  586. package/dist/components/ds-stepper/hooks/use-stepper.js +13 -0
  587. package/dist/components/ds-stepper/hooks/use-stepper.js.map +1 -0
  588. package/dist/components/ds-stepper/hooks/use-steps.cjs +40 -0
  589. package/dist/components/ds-stepper/hooks/use-steps.js +39 -0
  590. package/dist/components/ds-stepper/hooks/use-steps.js.map +1 -0
  591. package/dist/components/ds-stepper/index.cjs +4 -0
  592. package/dist/components/ds-stepper/index.d.ts +5 -0
  593. package/dist/components/ds-stepper/index.js +4 -0
  594. package/dist/components/ds-system-status/ds-system-status.cjs +67 -0
  595. package/dist/components/ds-system-status/ds-system-status.d.cts +13 -0
  596. package/dist/components/ds-system-status/ds-system-status.d.cts.map +1 -0
  597. package/dist/components/ds-system-status/ds-system-status.d.ts +13 -0
  598. package/dist/components/ds-system-status/ds-system-status.d.ts.map +1 -0
  599. package/dist/components/ds-system-status/ds-system-status.js +66 -0
  600. package/dist/components/ds-system-status/ds-system-status.js.map +1 -0
  601. package/dist/components/ds-system-status/ds-system-status.module.cjs +17 -0
  602. package/dist/components/ds-system-status/ds-system-status.module.js +17 -0
  603. package/dist/components/ds-system-status/ds-system-status.module.js.map +1 -0
  604. package/dist/components/ds-system-status/ds-system-status.types.cjs +18 -0
  605. package/dist/components/ds-system-status/ds-system-status.types.d.cts +31 -0
  606. package/dist/components/ds-system-status/ds-system-status.types.d.cts.map +1 -0
  607. package/dist/components/ds-system-status/ds-system-status.types.d.ts +31 -0
  608. package/dist/components/ds-system-status/ds-system-status.types.d.ts.map +1 -0
  609. package/dist/components/ds-system-status/ds-system-status.types.js +18 -0
  610. package/dist/components/ds-system-status/ds-system-status.types.js.map +1 -0
  611. package/dist/components/ds-system-status/index.cjs +2 -0
  612. package/dist/components/ds-system-status/index.d.ts +2 -0
  613. package/dist/components/ds-system-status/index.js +2 -0
  614. package/dist/components/ds-table/components/core-table/core-table.cjs +312 -0
  615. package/dist/components/ds-table/components/core-table/core-table.js +306 -0
  616. package/dist/components/ds-table/components/core-table/core-table.js.map +1 -0
  617. package/dist/components/ds-table/components/core-table/core-table.module.cjs +12 -0
  618. package/dist/components/ds-table/components/core-table/core-table.module.js +12 -0
  619. package/dist/components/ds-table/components/core-table/core-table.module.js.map +1 -0
  620. package/dist/components/ds-table/components/core-table/index.cjs +1 -0
  621. package/dist/components/ds-table/components/core-table/index.js +1 -0
  622. package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.cjs +161 -0
  623. package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.js +160 -0
  624. package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.js.map +1 -0
  625. package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.module.cjs +20 -0
  626. package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.module.js +20 -0
  627. package/dist/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.module.js.map +1 -0
  628. package/dist/components/ds-table/components/ds-table-bulk-actions/index.cjs +1 -0
  629. package/dist/components/ds-table/components/ds-table-bulk-actions/index.js +1 -0
  630. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.cjs +175 -0
  631. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.d.ts +2 -0
  632. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.js +174 -0
  633. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.js.map +1 -0
  634. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.module.cjs +13 -0
  635. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.module.js +13 -0
  636. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.module.js.map +1 -0
  637. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.cts +41 -0
  638. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.cts.map +1 -0
  639. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.ts +42 -0
  640. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.ts.map +1 -0
  641. package/dist/components/ds-table/components/ds-table-cell/index.cjs +1 -0
  642. package/dist/components/ds-table/components/ds-table-cell/index.d.ts +2 -0
  643. package/dist/components/ds-table/components/ds-table-cell/index.js +1 -0
  644. package/dist/components/ds-table/components/ds-table-header/ds-table-header.cjs +104 -0
  645. package/dist/components/ds-table/components/ds-table-header/ds-table-header.js +103 -0
  646. package/dist/components/ds-table/components/ds-table-header/ds-table-header.js.map +1 -0
  647. package/dist/components/ds-table/components/ds-table-header/ds-table-header.module.cjs +20 -0
  648. package/dist/components/ds-table/components/ds-table-header/ds-table-header.module.js +20 -0
  649. package/dist/components/ds-table/components/ds-table-header/ds-table-header.module.js.map +1 -0
  650. package/dist/components/ds-table/components/ds-table-header/index.cjs +1 -0
  651. package/dist/components/ds-table/components/ds-table-header/index.js +1 -0
  652. package/dist/components/ds-table/components/ds-table-row/ds-table-row.cjs +312 -0
  653. package/dist/components/ds-table/components/ds-table-row/ds-table-row.js +310 -0
  654. package/dist/components/ds-table/components/ds-table-row/ds-table-row.js.map +1 -0
  655. package/dist/components/ds-table/components/ds-table-row/ds-table-row.module.cjs +23 -0
  656. package/dist/components/ds-table/components/ds-table-row/ds-table-row.module.js +23 -0
  657. package/dist/components/ds-table/components/ds-table-row/ds-table-row.module.js.map +1 -0
  658. package/dist/components/ds-table/components/ds-table-row/index.cjs +1 -0
  659. package/dist/components/ds-table/components/ds-table-row/index.js +1 -0
  660. package/dist/components/ds-table/context/ds-table-context.cjs +14 -0
  661. package/dist/components/ds-table/context/ds-table-context.js +13 -0
  662. package/dist/components/ds-table/context/ds-table-context.js.map +1 -0
  663. package/dist/components/ds-table/ds-table.cjs +200 -0
  664. package/dist/components/ds-table/ds-table.d.cts +45 -0
  665. package/dist/components/ds-table/ds-table.d.cts.map +1 -0
  666. package/dist/components/ds-table/ds-table.d.ts +45 -0
  667. package/dist/components/ds-table/ds-table.d.ts.map +1 -0
  668. package/dist/components/ds-table/ds-table.js +199 -0
  669. package/dist/components/ds-table/ds-table.js.map +1 -0
  670. package/dist/components/ds-table/ds-table.module.cjs +25 -0
  671. package/dist/components/ds-table/ds-table.module.js +25 -0
  672. package/dist/components/ds-table/ds-table.module.js.map +1 -0
  673. package/dist/components/ds-table/ds-table.types.d.cts +332 -0
  674. package/dist/components/ds-table/ds-table.types.d.cts.map +1 -0
  675. package/dist/components/ds-table/ds-table.types.d.ts +333 -0
  676. package/dist/components/ds-table/ds-table.types.d.ts.map +1 -0
  677. package/dist/components/ds-table/hooks/use-drag-and-drop.cjs +142 -0
  678. package/dist/components/ds-table/hooks/use-drag-and-drop.js +141 -0
  679. package/dist/components/ds-table/hooks/use-drag-and-drop.js.map +1 -0
  680. package/dist/components/ds-table/index.cjs +1 -0
  681. package/dist/components/ds-table/index.d.ts +4 -0
  682. package/dist/components/ds-table/index.js +1 -0
  683. package/dist/components/ds-table/styles/shared/ds-table-shared.module.cjs +17 -0
  684. package/dist/components/ds-table/styles/shared/ds-table-shared.module.js +17 -0
  685. package/dist/components/ds-table/styles/shared/ds-table-shared.module.js.map +1 -0
  686. package/dist/components/ds-table/utils/column-styling.cjs +23 -0
  687. package/dist/components/ds-table/utils/column-styling.js +23 -0
  688. package/dist/components/ds-table/utils/column-styling.js.map +1 -0
  689. package/dist/components/ds-table/utils/create-columns-grid-template.cjs +11 -0
  690. package/dist/components/ds-table/utils/create-columns-grid-template.js +11 -0
  691. package/dist/components/ds-table/utils/create-columns-grid-template.js.map +1 -0
  692. package/dist/components/ds-table/utils/merge-refs.cjs +13 -0
  693. package/dist/components/ds-table/utils/merge-refs.js +13 -0
  694. package/dist/components/ds-table/utils/merge-refs.js.map +1 -0
  695. package/dist/components/ds-text-input/ds-text-input.cjs +142 -0
  696. package/dist/components/ds-text-input/ds-text-input.d.cts +8 -0
  697. package/dist/components/ds-text-input/ds-text-input.d.cts.map +1 -0
  698. package/dist/components/ds-text-input/ds-text-input.d.ts +8 -0
  699. package/dist/components/ds-text-input/ds-text-input.d.ts.map +1 -0
  700. package/dist/components/ds-text-input/ds-text-input.js +141 -0
  701. package/dist/components/ds-text-input/ds-text-input.js.map +1 -0
  702. package/dist/components/ds-text-input/ds-text-input.module.cjs +15 -0
  703. package/dist/components/ds-text-input/ds-text-input.module.js +15 -0
  704. package/dist/components/ds-text-input/ds-text-input.module.js.map +1 -0
  705. package/dist/components/ds-text-input/ds-text-input.types.cjs +6 -0
  706. package/dist/components/ds-text-input/ds-text-input.types.d.cts +111 -0
  707. package/dist/components/ds-text-input/ds-text-input.types.d.cts.map +1 -0
  708. package/dist/components/ds-text-input/ds-text-input.types.d.ts +111 -0
  709. package/dist/components/ds-text-input/ds-text-input.types.d.ts.map +1 -0
  710. package/dist/components/ds-text-input/ds-text-input.types.js +6 -0
  711. package/dist/components/ds-text-input/ds-text-input.types.js.map +1 -0
  712. package/dist/components/ds-text-input/index.cjs +2 -0
  713. package/dist/components/ds-text-input/index.d.ts +2 -0
  714. package/dist/components/ds-text-input/index.js +2 -0
  715. package/dist/components/ds-textarea/ds-textarea.cjs +78 -0
  716. package/dist/components/ds-textarea/ds-textarea.d.cts +8 -0
  717. package/dist/components/ds-textarea/ds-textarea.d.cts.map +1 -0
  718. package/dist/components/ds-textarea/ds-textarea.d.ts +8 -0
  719. package/dist/components/ds-textarea/ds-textarea.d.ts.map +1 -0
  720. package/dist/components/ds-textarea/ds-textarea.js +77 -0
  721. package/dist/components/ds-textarea/ds-textarea.js.map +1 -0
  722. package/dist/components/ds-textarea/ds-textarea.module.cjs +6 -0
  723. package/dist/components/ds-textarea/ds-textarea.module.js +6 -0
  724. package/dist/components/ds-textarea/ds-textarea.module.js.map +1 -0
  725. package/dist/components/ds-textarea/ds-textarea.types.d.cts +71 -0
  726. package/dist/components/ds-textarea/ds-textarea.types.d.cts.map +1 -0
  727. package/dist/components/ds-textarea/ds-textarea.types.d.ts +71 -0
  728. package/dist/components/ds-textarea/ds-textarea.types.d.ts.map +1 -0
  729. package/dist/components/ds-textarea/index.cjs +1 -0
  730. package/dist/components/ds-textarea/index.d.ts +2 -0
  731. package/dist/components/ds-textarea/index.js +1 -0
  732. package/dist/components/ds-toast/ds-toast-context.cjs +85 -0
  733. package/dist/components/ds-toast/ds-toast-context.d.cts +42 -0
  734. package/dist/components/ds-toast/ds-toast-context.d.cts.map +1 -0
  735. package/dist/components/ds-toast/ds-toast-context.d.ts +42 -0
  736. package/dist/components/ds-toast/ds-toast-context.d.ts.map +1 -0
  737. package/dist/components/ds-toast/ds-toast-context.js +84 -0
  738. package/dist/components/ds-toast/ds-toast-context.js.map +1 -0
  739. package/dist/components/ds-toast/ds-toast.cjs +129 -0
  740. package/dist/components/ds-toast/ds-toast.js +129 -0
  741. package/dist/components/ds-toast/ds-toast.js.map +1 -0
  742. package/dist/components/ds-toast/ds-toast.module.cjs +11 -0
  743. package/dist/components/ds-toast/ds-toast.module.js +11 -0
  744. package/dist/components/ds-toast/ds-toast.module.js.map +1 -0
  745. package/dist/components/ds-toast/ds-toast.types.d.cts +53 -0
  746. package/dist/components/ds-toast/ds-toast.types.d.cts.map +1 -0
  747. package/dist/components/ds-toast/ds-toast.types.d.ts +53 -0
  748. package/dist/components/ds-toast/ds-toast.types.d.ts.map +1 -0
  749. package/dist/components/ds-toast/index.cjs +1 -0
  750. package/dist/components/ds-toast/index.d.ts +2 -0
  751. package/dist/components/ds-toast/index.js +1 -0
  752. package/dist/components/ds-tooltip/ds-tooltip.cjs +74 -0
  753. package/dist/components/ds-tooltip/ds-tooltip.d.cts +8 -0
  754. package/dist/components/ds-tooltip/ds-tooltip.d.cts.map +1 -0
  755. package/dist/components/ds-tooltip/ds-tooltip.d.ts +8 -0
  756. package/dist/components/ds-tooltip/ds-tooltip.d.ts.map +1 -0
  757. package/dist/components/ds-tooltip/ds-tooltip.js +72 -0
  758. package/dist/components/ds-tooltip/ds-tooltip.js.map +1 -0
  759. package/dist/components/ds-tooltip/ds-tooltip.module.cjs +10 -0
  760. package/dist/components/ds-tooltip/ds-tooltip.module.js +10 -0
  761. package/dist/components/ds-tooltip/ds-tooltip.module.js.map +1 -0
  762. package/dist/components/ds-tooltip/ds-tooltip.types.d.cts +16 -0
  763. package/dist/components/ds-tooltip/ds-tooltip.types.d.cts.map +1 -0
  764. package/dist/components/ds-tooltip/ds-tooltip.types.d.ts +16 -0
  765. package/dist/components/ds-tooltip/ds-tooltip.types.d.ts.map +1 -0
  766. package/dist/components/ds-tooltip/index.cjs +1 -0
  767. package/dist/components/ds-tooltip/index.d.ts +2 -0
  768. package/dist/components/ds-tooltip/index.js +1 -0
  769. package/dist/components/ds-typography/ds-typography.cjs +65 -0
  770. package/dist/components/ds-typography/ds-typography.config.cjs +30 -0
  771. package/dist/components/ds-typography/ds-typography.config.d.cts +29 -0
  772. package/dist/components/ds-typography/ds-typography.config.d.cts.map +1 -0
  773. package/dist/components/ds-typography/ds-typography.config.d.ts +29 -0
  774. package/dist/components/ds-typography/ds-typography.config.d.ts.map +1 -0
  775. package/dist/components/ds-typography/ds-typography.config.js +30 -0
  776. package/dist/components/ds-typography/ds-typography.config.js.map +1 -0
  777. package/dist/components/ds-typography/ds-typography.d.cts +10 -0
  778. package/dist/components/ds-typography/ds-typography.d.cts.map +1 -0
  779. package/dist/components/ds-typography/ds-typography.d.ts +10 -0
  780. package/dist/components/ds-typography/ds-typography.d.ts.map +1 -0
  781. package/dist/components/ds-typography/ds-typography.js +64 -0
  782. package/dist/components/ds-typography/ds-typography.js.map +1 -0
  783. package/dist/components/ds-typography/ds-typography.module.cjs +30 -0
  784. package/dist/components/ds-typography/ds-typography.module.js +30 -0
  785. package/dist/components/ds-typography/ds-typography.module.js.map +1 -0
  786. package/dist/components/ds-typography/ds-typography.types.d.cts +30 -0
  787. package/dist/components/ds-typography/ds-typography.types.d.cts.map +1 -0
  788. package/dist/components/ds-typography/ds-typography.types.d.ts +30 -0
  789. package/dist/components/ds-typography/ds-typography.types.d.ts.map +1 -0
  790. package/dist/components/ds-typography/index.cjs +1 -0
  791. package/dist/components/ds-typography/index.d.ts +2 -0
  792. package/dist/components/ds-typography/index.js +1 -0
  793. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.cjs +137 -0
  794. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.cts +50 -0
  795. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.cts.map +1 -0
  796. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.ts +50 -0
  797. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.ts.map +1 -0
  798. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.js +136 -0
  799. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.js.map +1 -0
  800. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.module.cjs +10 -0
  801. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.module.js +10 -0
  802. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.module.js.map +1 -0
  803. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.types.d.cts +70 -0
  804. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.types.d.cts.map +1 -0
  805. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.types.d.ts +70 -0
  806. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.types.d.ts.map +1 -0
  807. package/dist/components/ds-vertical-tabs/index.cjs +1 -0
  808. package/dist/components/ds-vertical-tabs/index.d.ts +2 -0
  809. package/dist/components/ds-vertical-tabs/index.js +1 -0
  810. package/dist/index.cjs +136 -5394
  811. package/dist/index.d.cts +78 -9157
  812. package/dist/index.d.ts +112 -9157
  813. package/dist/index.js +83 -5335
  814. package/dist/index.min.css +1 -0
  815. package/package.json +10 -3
  816. package/src/components/ds-drawer/ds-drawer.module.scss +2 -2
  817. package/src/styles/_grid-variables.scss +13 -0
  818. package/src/styles/_grid.scss +17 -29
  819. package/dist/index.css +0 -1
  820. package/dist/index.d.cts.map +0 -1
  821. package/dist/index.d.ts.map +0 -1
  822. package/dist/index.js.map +0 -1
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["DsIcon: React.FC<DsIconProps>","styles","DsTypography: React.FC<DsTypographyProps & { ref?: React.Ref<HTMLElement> }>","styles","styles","DsIcon","Title","DsTypography","Body","Actions","warning","React","is","objectIs","useState","useEffect","useLayoutEffect","useDebugValue","shim","is","useSyncExternalStore$2","React","useState","checkIfSnapshotChanged","objectIs","useSyncExternalStore$1","useEffect","useLayoutEffect","useDebugValue","shim","React","useRef","useEffect","is","React","shim","objectIs","useSyncExternalStore","useRef","useEffect","useMemo","useDebugValue","React","React","useLayoutEffect","React","intersectionObserverOptions","React","noop","REACT_PORTAL_TYPE","ReactSharedInternals","React","Internals","React","DsTextInput: FC<DsTextInputProps>","styles","DEFAULT_POSITIONING: DsDropdownMenuPositioning","Root: React.FC<DsDropdownMenuRootProps>","Trigger: React.FC<DsDropdownMenuTriggerProps>","Content: React.FC<DsDropdownMenuContentProps>","styles","Item: React.FC<DsDropdownMenuItemProps>","ItemIndicator: React.FC<DsDropdownMenuItemIndicatorProps>","DsIcon","Header: React.FC<DsDropdownMenuHeaderProps>","Actions: React.FC<DsDropdownMenuActionsProps>","ItemGroup: React.FC<DsDropdownMenuItemGroupProps>","ItemGroupLabel: React.FC<DsDropdownMenuItemGroupLabelProps>","DsTypography","ItemGroupContent: React.FC<DsDropdownMenuItemGroupContentProps>","Separator: React.FC<DsDropdownMenuSeparatorProps>","DsDropdownMenuLegacy: React.FC<DsDropdownMenuLegacyProps>","DsTextInput","DsBreadcrumb: React.FC<DsBreadcrumbProps>","styles","DsIcon","DsTextInput","DsTypography","DsButton: React.FC<DsButtonProps>","styles","DsButton","DsIcon","DsButton: React.FC<DsButtonProps>","styles","DsButton","DsButtonNew","DsButtonLegacy","DsCheckbox: React.FC<DsCheckboxProps>","styles","DsIcon","DsChip: React.FC<DsChipProps>","styles","DsTypography","DsIcon","DsChipGroup: React.FC<DsChipGroupProps>","dialogStyle: React.CSSProperties","styles","DsTypography","DsChip","DsButton","DsIcon","VisuallyHidden","DsCheckbox","styles","Header","Title","DsTypography","CloseTrigger","DsIcon","Body","Footer","Actions","DsDialog: React.FC<DsDialogProps>","style: React.CSSProperties","styles","VisuallyHidden","styles","Header","Title","DsTypography","CloseTrigger","DsIcon","Body","Footer","Actions","DsTextInput","styles","DsIcon","DsButton","DsTooltip: FC<DsTooltipProps>","styles","DsTypography","FILE_ERROR_MESSAGES: Record<FileError, string>","FileUploadItem: React.FC<FileUploadItemProps>","styles","DsIcon","DsTooltip","DsButton","DEFAULT_ALLOWED_FILE_TYPES: AcceptedFileType[]","EXTENSIONS_MAP: Record<FileUploadFileMimeType, FileExtension[]>","parts: string[]","FileUpload: React.FC<FileUploadProps>","ArkUiFileUpload","styles","DsIcon","DsTypography","DsButton","files","filesToAdd: File[]","rejectedFiles: File[]","status: UploadFileStatus","DsFileUpload: React.FC<DsFileUploadProps>","styles","DsChip","DsButton","SELECT_ALL: DsSelectOption","value","styles","DsTypography","DsIcon","DsTextInput","DsCheckbox","DsTextarea: React.FC<DsTextareaProps>","styles","DsNumberInput: FC<DsNumberInputProps>","styles","DsIcon","DsPasswordInput: FC<DsPasswordInputProps>","styles","DsIcon","DsFormControlDescription: React.FC<DsFormControlDescriptionProps>","styles","DsIcon","DsTextInput","DsNumberInput","DsPasswordInput","DsTextarea","DsSelect","DsGrid: React.FC<DsGridProps>","DsGridItem: React.FC<DsGridItemProps>","styles","DsTypography","DsIcon","classnames","styles","DsIcon","DsPopover: React.FC<DsPopoverProps>","styles","Root: React.FC<DsRadioGroupRootProps>","styles","Item: React.FC<DsRadioGroupItemProps>","DsRadioGroupLegacy: React.FC<DsRadioGroupLegacyProps>","colorMap: Record<Color, string>","DsSmartTab: React.FC<DsSmartTabProps>","styles","DsIcon","contextValue: SmartTabsContextType","sizeMap: Record<SpinnerSize, number>","widthMap: Record<SpinnerSize, number>","DsSpinner: React.FC<DsSpinnerProps>","styles","DsStatusBadge: React.FC<DsStatusBadgeProps>","styles","DsIcon","DsTypography","classnames","styles","classnames","styles","DsIcon","styles","styles","classnames","styles","DsButton","defaultLabels: Record<DsSystemStatusProps['status'], string>","DsSystemStatus: React.FC<DsSystemStatusProps>","styles","Table","classnames","styles","DsTableBulkActions: React.FC<BulkActionsProps>","styles","classnames","DsButton","DsIcon","classnames","styles","DsCheckbox","stylesShared","DsIcon","styles","classnames","DsIcon","classnames","styles","DsIcon","rowStyle: React.CSSProperties","DsCheckbox","stylesShared","DsButton","ROW_SIZE_HEIGHT_MAP: Record<DsTableRowSize, number>","React","selection: Record<string, boolean>","styles","contextValue: DsTableContextType<TData, TValue>","classnames","DragWrapper","Table","DsTableHeader","DsTableRow","SortableWrapper","DsTableBulkActions","DsIcon","styles","DsTypography","DsToastGroup: React.FC<{ toaster: CreateToasterReturn }>","DsToastProvider: FC<DsToastProviderProps>","contextValue: DsToastContextType","styles"],"sources":["../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-alert-banner/ds-alert-banner.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-icon/ds-icon.module.scss","../src/components/ds-icon/ds-icon.tsx","../src/components/ds-icon/ds-icon.types.ts","../src/components/ds-typography/ds-typography.config.ts","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-typography/ds-typography.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-typography/ds-typography.tsx","../src/components/ds-alert-banner/ds-alert-banner.tsx","../src/components/ds-alert-banner/ds-alert-banner.types.tsx","../../../node_modules/.pnpm/@tanstack+router-core@1.141.4/node_modules/@tanstack/router-core/dist/esm/utils.js","../../../node_modules/.pnpm/@tanstack+router-core@1.141.4/node_modules/@tanstack/router-core/dist/esm/path.js","../../../node_modules/.pnpm/@tanstack+router-core@1.141.4/node_modules/@tanstack/router-core/dist/esm/link.js","../../../node_modules/.pnpm/tiny-warning@1.0.3/node_modules/tiny-warning/dist/tiny-warning.cjs.js","../../../node_modules/.pnpm/use-sync-external-store@1.6.0_react@19.2.3/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../../node_modules/.pnpm/use-sync-external-store@1.6.0_react@19.2.3/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","../../../node_modules/.pnpm/use-sync-external-store@1.6.0_react@19.2.3/node_modules/use-sync-external-store/shim/index.js","../../../node_modules/.pnpm/use-sync-external-store@1.6.0_react@19.2.3/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","../../../node_modules/.pnpm/use-sync-external-store@1.6.0_react@19.2.3/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js","../../../node_modules/.pnpm/use-sync-external-store@1.6.0_react@19.2.3/node_modules/use-sync-external-store/shim/with-selector.js","../../../node_modules/.pnpm/@tanstack+react-store@0.8.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@tanstack/react-store/dist/esm/index.js","../../../node_modules/.pnpm/@tanstack+react-router@1.141.4_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@tanstack/react-router/dist/esm/routerContext.js","../../../node_modules/.pnpm/@tanstack+react-router@1.141.4_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@tanstack/react-router/dist/esm/useRouter.js","../../../node_modules/.pnpm/@tanstack+react-router@1.141.4_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@tanstack/react-router/dist/esm/useRouterState.js","../../../node_modules/.pnpm/@tanstack+react-router@1.141.4_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@tanstack/react-router/dist/esm/utils.js","../../../node_modules/.pnpm/react-dom@19.2.3_react@19.2.3/node_modules/react-dom/cjs/react-dom.production.js","../../../node_modules/.pnpm/react-dom@19.2.3_react@19.2.3/node_modules/react-dom/cjs/react-dom.development.js","../../../node_modules/.pnpm/react-dom@19.2.3_react@19.2.3/node_modules/react-dom/index.js","../../../node_modules/.pnpm/@tanstack+react-router@1.141.4_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@tanstack/react-router/dist/esm/link.js","../../../node_modules/.pnpm/@tanstack+react-router@1.141.4_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@tanstack/react-router/dist/esm/useLocation.js","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-breadcrumb/ds-breadcrumb.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-dropdown-menu/ds-dropdown-menu.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/shared/_dropdown.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/mixins/_bounding-box.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_variables.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-text-input/ds-text-input.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/shared/_input.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-text-input/ds-text-input.tsx","../src/components/ds-dropdown-menu/ds-dropdown-menu.tsx","../src/components/ds-text-input/ds-text-input.types.tsx","../src/components/ds-breadcrumb/ds-breadcrumb.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-button/versions/ds-button-legacy/ds-button-legacy.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_variables.scss","../src/components/ds-button/versions/ds-button-legacy/ds-button-legacy.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-button/versions/ds-button-new/ds-button-new.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-button/versions/ds-button-new/ds-button-new.tsx","../src/components/ds-button/ds-button.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-checkbox/ds-checkbox.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-checkbox/ds-checkbox.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-chip/ds-chip.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-chip/ds-chip.tsx","../src/components/ds-chip-group/ds-chip-group.module.scss","../src/components/ds-chip-group/hooks/use-chip-row-calculation.ts","../src/components/ds-chip-group/ds-chip-group.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/shared/_modal.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-confirmation/ds-confirmation.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-confirmation/ds-confirmation.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-dialog/ds-dialog.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/mixins/_bounding-box.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_variables.scss","../src/components/ds-dialog/ds-dialog.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_grid.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-drawer/ds-drawer.module.scss","../src/components/ds-drawer/ds-drawer.tsx","../src/components/ds-expandable-text-input/ds-expandable-text-input.module.scss","../src/components/ds-table/utils/merge-refs.ts","../src/components/ds-expandable-text-input/ds-expandable-text-input.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-tooltip/ds-tooltip.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-tooltip/ds-tooltip.tsx","../src/components/ds-file-upload/utils/get-error-message.ts","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-file-upload/components/file-upload-item/file-upload-item.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-file-upload/components/file-upload-item/file-upload-item.tsx","../src/components/ds-file-upload/utils/constants.ts","../src/components/ds-file-upload/types/accept-types.ts","../src/components/ds-file-upload/utils/accept-utils.ts","../src/components/ds-file-upload/utils/format-file-size.ts","../src/components/ds-file-upload/utils/generate-helper-text.ts","../src/components/ds-file-upload/components/file-upload/file-upload.module.scss","../src/components/ds-file-upload/components/file-upload/file-upload.tsx","../src/components/ds-file-upload/utils/file-factory.ts","../src/components/ds-file-upload/utils/is-file-equal.ts","../src/components/ds-file-upload/errors/file-upload-errors.ts","../src/components/ds-file-upload/hooks/use-file-upload.ts","../src/components/ds-file-upload/ds-file-upload.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-select/ds-select.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/shared/_input.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/shared/_dropdown.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/mixins/_bounding-box.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-select/select-items-chips.tsx","../src/components/ds-select/ds-select.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-textarea/ds-textarea.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/shared/_input.scss","../src/components/ds-textarea/ds-textarea.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-number-input/ds-number-input.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/shared/_input.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-number-input/ds-number-input.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-password-input/ds-password-input.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/shared/_input.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-password-input/ds-password-input.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-form-control/ds-form-control.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_variables.scss","../src/components/ds-form-control/ds-form-control.tsx","../src/components/ds-form-control/ds-form-control.types.tsx","../src/components/ds-grid/ds-grid.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/shared/_modal.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-modal/ds-modal.module.scss","../src/components/ds-modal/ds-modal.tsx","../src/components/ds-panel/ds-panel.module.scss","../src/components/ds-panel/ds-panel.tsx","../src/components/ds-popover/ds-popover.module.scss","../src/components/ds-popover/ds-popover.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-radio-group/ds-radio-group.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-radio-group/ds-radio-group.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-smart-tabs/ds-smart-tabs.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-smart-tabs/ds-smart-tabs.tsx","../src/components/ds-smart-tabs/ds-smart-tabs.types.tsx","../src/components/ds-spinner/ds-spinner.module.scss","../src/components/ds-spinner/ds-spinner.tsx","../src/components/ds-spinner/ds-spinner.types.tsx","../src/components/ds-status-badge/ds-status-badge.module.scss","../src/components/ds-status-badge/ds-status-badge.tsx","../src/components/ds-stepper/ds-stepper.module.scss","../src/components/ds-stepper/hooks/use-steps.ts","../src/components/ds-stepper/hooks/use-stepper.ts","../src/components/ds-stepper/ds-stepper.tsx","../src/components/ds-stepper/components/ds-step.tsx","../src/components/ds-stepper/components/ds-step-label.tsx","../src/components/ds-stepper/components/ds-step-description.tsx","../src/components/ds-stepper/components/ds-step-content.tsx","../src/components/ds-stepper/components/ds-step-next-button.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-system-status/ds-system-status.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_variables.scss","../src/components/ds-system-status/ds-system-status.tsx","../src/components/ds-system-status/ds-system-status.types.tsx","../src/components/ds-table/components/core-table/core-table.module.scss","../src/components/ds-table/components/core-table/core-table.tsx","../src/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.module.scss","../src/components/ds-table/components/ds-table-bulk-actions/ds-table-bulk-actions.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-table/components/ds-table-header/ds-table-header.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-table/styles/_variables.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_utilities.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-table/styles/shared/ds-table-shared.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-table/styles/_variables.scss","../src/components/ds-table/context/ds-table-context.tsx","../src/components/ds-table/utils/column-styling.ts","../src/components/ds-table/components/ds-table-header/ds-table-header.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_utilities.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-table/ds-table.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-table/styles/_variables.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_variables.scss","../src/components/ds-table/components/ds-table-cell/ds-table-cell.module.scss","../src/components/ds-table/components/ds-table-cell/ds-table-cell.tsx","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-table/components/ds-table-row/ds-table-row.module.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/components/ds-table/styles/_variables.scss","../file:/home/runner/work/design-system/design-system/packages/design-system/src/styles/_typography.scss","../src/components/ds-table/components/ds-table-row/ds-table-row.tsx","../src/components/ds-table/hooks/use-drag-and-drop.tsx","../src/components/ds-table/utils/create-columns-grid-template.ts","../src/components/ds-table/ds-table.tsx","../src/components/ds-toast/ds-toast.module.scss","../src/components/ds-toast/ds-toast.tsx","../src/components/ds-toast/ds-toast-context.tsx","../src/components/ds-vertical-tabs/ds-vertical-tabs.module.scss","../src/components/ds-vertical-tabs/ds-vertical-tabs.tsx"],"sourcesContent":["@use '../../styles/typography';\n\n.alertBanner {\n\t&.inline {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: auto 1fr auto;\n\t\tgrid-template-rows: auto auto auto;\n\t\tgrid-template-areas:\n\t\t\t'icon title close'\n\t\t\t'icon description close'\n\t\t\t'icon actions close';\n\t\talign-items: start;\n\t\tpadding: var(--spacing-standard);\n\t\tborder-radius: 4px;\n\t\tborder: 1px solid;\n\t\tcolumn-gap: var(--spacing-xs);\n\t\trow-gap: var(--spacing-4xs);\n\n\t\t&:not(:has(.title)) {\n\t\t\talign-items: center;\n\t\t}\n\t}\n\n\t&.global {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tpadding: var(--spacing-sm) var(--spacing-standard);\n\t\tgap: var(--spacing-2xs);\n\t\tborder-bottom: 2px solid;\n\n\t\t.title {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t.description {\n\t\t\t@include typography.ellipsis;\n\t\t\tflex: 1;\n\t\t}\n\t}\n\n\t&.hidden {\n\t\tdisplay: none;\n\t}\n\n\t.icon {\n\t\tgrid-area: icon;\n\t}\n\n\t.title {\n\t\tgrid-area: title;\n\t\tcolor: var(--color-font-main);\n\t}\n\n\t.description {\n\t\tgrid-area: description;\n\t\tcolor: var(--color-font-secondary);\n\t\tmargin-top: var(--spacing-4xs);\n\t}\n\n\t.actions {\n\t\tgrid-area: actions;\n\t\tdisplay: inline-flex;\n\t\tgap: var(--spacing-xs);\n\t}\n\n\t.closeButton {\n\t\tgrid-area: close;\n\t\tdisplay: flex;\n\t\tcolor: var(--color-background-action);\n\t}\n\n\t&.infoNeutral {\n\t\tbackground-color: var(--color-background-secondary);\n\t\tborder-color: var(--color-border);\n\n\t\t.icon {\n\t\t\tcolor: var(--color-icon-secondary);\n\t\t}\n\t}\n\n\t&.infoBlue {\n\t\tbackground-color: var(--color-background-info);\n\t\tborder-color: var(--color-border-action-primary);\n\n\t\t.icon {\n\t\t\tcolor: var(--color-icon-primary);\n\t\t}\n\t}\n\n\t&.warning {\n\t\tbackground-color: var(--color-background-warning);\n\t\tborder-color: var(--color-background-warning-strong);\n\n\t\t.icon {\n\t\t\tcolor: var(--color-icon-warning);\n\t\t}\n\t}\n\n\t&.error {\n\t\tbackground-color: var(--color-background-danger-weak);\n\t\tborder-color: var(--color-border-danger-strong);\n\n\t\t.icon {\n\t\t\tcolor: var(--color-icon-danger);\n\t\t}\n\t}\n\n\t&.success {\n\t\tbackground-color: var(--color-background-success);\n\t\tborder-color: var(--color-border-success);\n\n\t\t.icon {\n\t\t\tcolor: var(--color-icon-success);\n\t\t}\n\t}\n}\n",".icon {\n\t&.extra-large {\n\t\tfont-size: var(--icon-width-extra-large);\n\t}\n\n\t&.large {\n\t\tfont-size: var(--icon-width-large);\n\t}\n\n\t&.medium {\n\t\tfont-size: var(--icon-width-medium);\n\t}\n\n\t&.small {\n\t\tfont-size: var(--icon-width-small);\n\t}\n\n\t&.tiny {\n\t\tfont-size: var(--icon-width-tiny);\n\t}\n}\n\n.filled {\n\tfont-variation-settings: 'FILL' 1;\n}\n","import type React from 'react';\nimport classNames from 'classnames';\nimport styles from './ds-icon.module.scss';\nimport type { DsIconProps } from './ds-icon.types';\n\n/**\n * Design system Icon component that renders Google Material Icons or inline SVGs\n */\nconst DsIcon: React.FC<DsIconProps> = ({\n\ticon,\n\tsize = 'medium',\n\tvariant = 'outlined',\n\tfilled,\n\tclassName = '',\n\tstyle = {},\n\t...rest\n}) => {\n\tconst variantClass = `material-symbols-${variant}`;\n\tconst iconClass = classNames(styles.icon, styles[size], { [styles.filled]: filled }, className);\n\n\tif (typeof icon === 'function') {\n\t\tconst SvgComponent = icon;\n\t\treturn <SvgComponent className={iconClass} style={style} {...rest} />;\n\t}\n\n\treturn (\n\t\t<span className={classNames(iconClass, variantClass)} style={style} {...rest}>\n\t\t\t{icon}\n\t\t</span>\n\t);\n};\n\nexport default DsIcon;\n","import type React from 'react';\nimport type { IconPrefix, materialIcons } from './material-icons';\n\nexport const iconSizes = ['tiny', 'small', 'medium', 'large', 'extra-large'] as const;\nexport type IconSize = (typeof iconSizes)[number];\nexport const iconVariants = ['outlined', 'rounded'] as const;\nexport type IconVariant = (typeof iconVariants)[number];\n\nexport type IconName = {\n\t[K in keyof typeof materialIcons]: K extends `${IconPrefix}::${infer Name}` ? Name : never;\n}[keyof typeof materialIcons];\n\nexport type IconType = IconName | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;\n\nexport interface DsIconProps {\n\t/**\n\t * The icon to display. This can be a Material Icon name (e.g., 'home') or an SVG component.\n\t */\n\ticon: IconType;\n\n\t/**\n\t * The size of the icon\n\t * @default 'medium'\n\t */\n\tsize?: IconSize;\n\n\t/**\n\t * The variant of the Material Icon\n\t * @default 'outlined'\n\t */\n\tvariant?: IconVariant;\n\n\t/**\n\t * Whether the icon should be filled\n\t * @default false\n\t */\n\tfilled?: boolean;\n\n\t/**\n\t * Additional CSS class names\n\t */\n\tclassName?: string;\n\n\t/**\n\t * Additional styles to apply to the icon\n\t */\n\tstyle?: React.CSSProperties;\n\n\t/**\n\t * Optional click handler\n\t */\n\tonClick?: (event: React.MouseEvent<HTMLSpanElement | SVGSVGElement>) => void;\n}\n","export const semanticElementMap = {\n\t// Body variants\n\t'body-md-reg': 'p',\n\t'body-md-md': 'p',\n\t'body-md-semi-bold': 'p',\n\t'body-md-bold': 'p',\n\t'body-md-link': 'a',\n\n\t'body-sm-reg': 'span',\n\t'body-sm-md': 'span',\n\t'body-sm-semi-bold': 'span',\n\t'body-sm-bold': 'span',\n\t'body-sm-link': 'a',\n\n\t'body-xs-reg': 'span',\n\t'body-xs-md': 'span',\n\t'body-xs-semi-bold': 'span',\n\t'body-xs-bold': 'span',\n\t'body-xs-link': 'a',\n\n\t// Code variants\n\t'code-sm-reg': 'code',\n\t'code-sm-semi-bold': 'code',\n\t'code-xs-reg': 'code',\n\t'code-xs-semi-bold': 'code',\n\n\t// Heading variants\n\theading1: 'h1',\n\theading2: 'h2',\n\theading3: 'h3',\n\theading4: 'h4',\n} as const;\n","@use '../../styles/typography';\n\n.heading1 {\n\t@include typography.heading1;\n}\n\n.heading2 {\n\t@include typography.heading2;\n}\n\n.heading3 {\n\t@include typography.heading3;\n}\n\n.heading4 {\n\t@include typography.heading4;\n}\n\n.body-md-reg {\n\t@include typography.body-md-reg;\n}\n\n.body-md-md {\n\t@include typography.body-md-md;\n}\n\n.body-md-semi-bold {\n\t@include typography.body-md-semi-bold;\n}\n\n.body-md-bold {\n\t@include typography.body-md-bold;\n}\n\n.body-md-link {\n\t@include typography.body-md-link;\n}\n\n.body-sm-reg {\n\t@include typography.body-sm-reg;\n}\n\n.body-sm-md {\n\t@include typography.body-sm-md;\n}\n\n.body-sm-semi-bold {\n\t@include typography.body-sm-semi-bold;\n}\n\n.body-sm-bold {\n\t@include typography.body-sm-bold;\n}\n\n.body-sm-link {\n\t@include typography.body-sm-link;\n}\n\n.body-xs-reg {\n\t@include typography.body-xs-reg;\n}\n\n.body-xs-md {\n\t@include typography.body-xs-md;\n}\n\n.body-xs-semi-bold {\n\t@include typography.body-xs-semi-bold;\n}\n\n.body-xs-bold {\n\t@include typography.body-xs-bold;\n}\n\n.body-xs-link {\n\t@include typography.body-xs-link;\n}\n\n.code-sm-reg {\n\t@include typography.code-sm-reg;\n}\n\n.code-sm-semi-bold {\n\t@include typography.code-sm-semi-bold;\n}\n\n.code-xs-reg {\n\t@include typography.code-xs-reg;\n}\n\n.code-xs-semi-bold {\n\t@include typography.code-xs-semi-bold;\n}\n","import type React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport classNames from 'classnames';\nimport type { DsTypographyProps } from './ds-typography.types';\nimport { semanticElementMap } from './ds-typography.config';\nimport styles from './ds-typography.module.scss';\n\n/*\n * Design system Typography component that provides consistent text styling\n */\nconst DsTypography: React.FC<DsTypographyProps & { ref?: React.Ref<HTMLElement> }> = ({\n\tref,\n\tvariant,\n\tasChild = false,\n\tclassName,\n\tchildren,\n\t...props\n}) => {\n\tconst Component: React.ElementType = asChild ? Slot : semanticElementMap[variant];\n\treturn (\n\t\t<Component ref={ref} className={classNames(styles[variant], className)} {...props}>\n\t\t\t{children}\n\t\t</Component>\n\t);\n};\n\nexport default DsTypography;\n","import type { CSSProperties, ReactNode } from 'react';\nimport classNames from 'classnames';\nimport styles from './ds-alert-banner.module.scss';\nimport type { DsAlertBannerProps } from './ds-alert-banner.types';\nimport { DsIcon } from '../ds-icon';\nimport { DsTypography } from '../ds-typography';\n\n/**\n * Design system AlertBanner component\n * Controlled component that displays alert messages with different variants\n */\nconst DsAlertBanner = ({\n\topen,\n\tonOpenChange,\n\tinline = false,\n\tvariant = 'info-blue',\n\ticon,\n\tclosable = false,\n\tclassName,\n\tstyle = {},\n\tchildren,\n}: DsAlertBannerProps) => {\n\tconst variantClass = {\n\t\t'info-neutral': styles.infoNeutral,\n\t\t'info-blue': styles.infoBlue,\n\t\twarning: styles.warning,\n\t\terror: styles.error,\n\t\tsuccess: styles.success,\n\t}[variant];\n\n\tconst alertBannerClass = classNames(\n\t\tstyles.alertBanner,\n\t\tinline && styles.inline,\n\t\t!inline && styles.global,\n\t\tvariantClass,\n\t\t{\n\t\t\t[styles.hidden]: !open,\n\t\t},\n\t\tclassName,\n\t);\n\n\tconst handleClose = () => {\n\t\tonOpenChange(false);\n\t};\n\n\tif (!open) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className={alertBannerClass} style={style}>\n\t\t\t{icon && <DsIcon className={styles.icon} icon={icon} size=\"small\" filled />}\n\t\t\t{children}\n\t\t\t{closable && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName={styles.closeButton}\n\t\t\t\t\tonClick={handleClose}\n\t\t\t\t\taria-label=\"Close alert\"\n\t\t\t\t\tdata-close\n\t\t\t\t>\n\t\t\t\t\t<DsIcon icon=\"close\" size=\"small\" />\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nconst Title = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<DsTypography style={style} className={classNames(styles.title, className)} variant=\"body-md-md\">\n\t\t{children}\n\t</DsTypography>\n);\n\nconst Body = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<DsTypography style={style} className={classNames(styles.description, className)} variant=\"body-sm-reg\">\n\t\t{children}\n\t</DsTypography>\n);\n\nconst Actions = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.actions, className)}>\n\t\t{children}\n\t</div>\n);\n\nDsAlertBanner.Title = Title;\nDsAlertBanner.Body = Body;\nDsAlertBanner.Actions = Actions;\n\nexport default DsAlertBanner;\n","import type { ReactNode } from 'react';\nimport type React from 'react';\nimport type { IconType } from '../ds-icon';\n\nexport const alertBannerVariants = ['info-neutral', 'info-blue', 'warning', 'error', 'success'] as const;\nexport type AlertBannerVariant = (typeof alertBannerVariants)[number];\n\nexport interface DsAlertBannerProps {\n\t/**\n\t * Controls whether the alert banner is visible\n\t */\n\topen: boolean;\n\t/**\n\t * Callback fired when the alert banner should be closed\n\t */\n\tonOpenChange: (open: boolean) => void;\n\t/**\n\t * Whether the alert banner should be inline (normal document flow) instead of global (designed for top of the page)\n\t * @default false\n\t */\n\tinline?: boolean;\n\t/**\n\t * The variant of the alert banner\n\t * @default 'info-blue'\n\t */\n\tvariant?: AlertBannerVariant;\n\t/**\n\t * Optional icon to display using DsIcon\n\t */\n\ticon?: IconType;\n\t/**\n\t * Whether the alert banner can be closed with an X button\n\t */\n\tclosable?: boolean;\n\t/**\n\t * Additional CSS class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Additional styles to apply to the component\n\t */\n\tstyle?: React.CSSProperties;\n\t/**\n\t * Optional children to be rendered inside the component (typically action buttons)\n\t */\n\tchildren?: ReactNode;\n}\n","function last(arr) {\n return arr[arr.length - 1];\n}\nfunction isFunction(d) {\n return typeof d === \"function\";\n}\nfunction functionalUpdate(updater, previous) {\n if (isFunction(updater)) {\n return updater(previous);\n }\n return updater;\n}\nconst hasOwn = Object.prototype.hasOwnProperty;\nfunction replaceEqualDeep(prev, _next) {\n if (prev === _next) {\n return prev;\n }\n const next = _next;\n const array = isPlainArray(prev) && isPlainArray(next);\n if (!array && !(isPlainObject(prev) && isPlainObject(next))) return next;\n const prevItems = array ? prev : getEnumerableOwnKeys(prev);\n if (!prevItems) return next;\n const nextItems = array ? next : getEnumerableOwnKeys(next);\n if (!nextItems) return next;\n const prevSize = prevItems.length;\n const nextSize = nextItems.length;\n const copy = array ? new Array(nextSize) : {};\n let equalItems = 0;\n for (let i = 0; i < nextSize; i++) {\n const key = array ? i : nextItems[i];\n const p = prev[key];\n const n = next[key];\n if (p === n) {\n copy[key] = p;\n if (array ? i < prevSize : hasOwn.call(prev, key)) equalItems++;\n continue;\n }\n if (p === null || n === null || typeof p !== \"object\" || typeof n !== \"object\") {\n copy[key] = n;\n continue;\n }\n const v = replaceEqualDeep(p, n);\n copy[key] = v;\n if (v === p) equalItems++;\n }\n return prevSize === nextSize && equalItems === prevSize ? prev : copy;\n}\nfunction getEnumerableOwnKeys(o) {\n const keys = [];\n const names = Object.getOwnPropertyNames(o);\n for (const name of names) {\n if (!Object.prototype.propertyIsEnumerable.call(o, name)) return false;\n keys.push(name);\n }\n const symbols = Object.getOwnPropertySymbols(o);\n for (const symbol of symbols) {\n if (!Object.prototype.propertyIsEnumerable.call(o, symbol)) return false;\n keys.push(symbol);\n }\n return keys;\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (typeof ctor === \"undefined\") {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction deepEqual(a, b, opts) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n for (let i = 0, l = a.length; i < l; i++) {\n if (!deepEqual(a[i], b[i], opts)) return false;\n }\n return true;\n }\n if (isPlainObject(a) && isPlainObject(b)) {\n const ignoreUndefined = opts?.ignoreUndefined ?? true;\n if (opts?.partial) {\n for (const k in b) {\n if (!ignoreUndefined || b[k] !== void 0) {\n if (!deepEqual(a[k], b[k], opts)) return false;\n }\n }\n return true;\n }\n let aCount = 0;\n if (!ignoreUndefined) {\n aCount = Object.keys(a).length;\n } else {\n for (const k in a) {\n if (a[k] !== void 0) aCount++;\n }\n }\n let bCount = 0;\n for (const k in b) {\n if (!ignoreUndefined || b[k] !== void 0) {\n bCount++;\n if (bCount > aCount || !deepEqual(a[k], b[k], opts)) return false;\n }\n }\n return aCount === bCount;\n }\n return false;\n}\nfunction createControlledPromise(onResolve) {\n let resolveLoadPromise;\n let rejectLoadPromise;\n const controlledPromise = new Promise((resolve, reject) => {\n resolveLoadPromise = resolve;\n rejectLoadPromise = reject;\n });\n controlledPromise.status = \"pending\";\n controlledPromise.resolve = (value) => {\n controlledPromise.status = \"resolved\";\n controlledPromise.value = value;\n resolveLoadPromise(value);\n onResolve?.(value);\n };\n controlledPromise.reject = (e) => {\n controlledPromise.status = \"rejected\";\n rejectLoadPromise(e);\n };\n return controlledPromise;\n}\nfunction isModuleNotFoundError(error) {\n if (typeof error?.message !== \"string\") return false;\n return error.message.startsWith(\"Failed to fetch dynamically imported module\") || error.message.startsWith(\"error loading dynamically imported module\") || error.message.startsWith(\"Importing a module script failed\");\n}\nfunction isPromise(value) {\n return Boolean(\n value && typeof value === \"object\" && typeof value.then === \"function\"\n );\n}\nfunction findLast(array, predicate) {\n for (let i = array.length - 1; i >= 0; i--) {\n const item = array[i];\n if (predicate(item)) return item;\n }\n return void 0;\n}\nfunction decodeSegment(segment) {\n try {\n return decodeURI(segment);\n } catch {\n return segment.replaceAll(/%[0-9A-F]{2}/gi, (match) => {\n try {\n return decodeURI(match);\n } catch {\n return match;\n }\n });\n }\n}\nfunction decodePath(path, decodeIgnore) {\n if (!path) return path;\n const re = decodeIgnore ? new RegExp(`${decodeIgnore.join(\"|\")}`, \"gi\") : /%25|%5C/gi;\n let cursor = 0;\n let result = \"\";\n let match;\n while (null !== (match = re.exec(path))) {\n result += decodeSegment(path.slice(cursor, match.index)) + match[0];\n cursor = re.lastIndex;\n }\n return result + decodeSegment(cursor ? path.slice(cursor) : path);\n}\nexport {\n createControlledPromise,\n decodePath,\n deepEqual,\n findLast,\n functionalUpdate,\n isModuleNotFoundError,\n isPlainArray,\n isPlainObject,\n isPromise,\n last,\n replaceEqualDeep\n};\n//# sourceMappingURL=utils.js.map\n","import { last } from \"./utils.js\";\nimport { parseSegment, SEGMENT_TYPE_PATHNAME, SEGMENT_TYPE_WILDCARD, SEGMENT_TYPE_PARAM, SEGMENT_TYPE_OPTIONAL_PARAM } from \"./new-process-route-tree.js\";\nfunction joinPaths(paths) {\n return cleanPath(\n paths.filter((val) => {\n return val !== void 0;\n }).join(\"/\")\n );\n}\nfunction cleanPath(path) {\n return path.replace(/\\/{2,}/g, \"/\");\n}\nfunction trimPathLeft(path) {\n return path === \"/\" ? path : path.replace(/^\\/{1,}/, \"\");\n}\nfunction trimPathRight(path) {\n const len = path.length;\n return len > 1 && path[len - 1] === \"/\" ? path.replace(/\\/{1,}$/, \"\") : path;\n}\nfunction trimPath(path) {\n return trimPathRight(trimPathLeft(path));\n}\nfunction removeTrailingSlash(value, basepath) {\n if (value?.endsWith(\"/\") && value !== \"/\" && value !== `${basepath}/`) {\n return value.slice(0, -1);\n }\n return value;\n}\nfunction exactPathTest(pathName1, pathName2, basepath) {\n return removeTrailingSlash(pathName1, basepath) === removeTrailingSlash(pathName2, basepath);\n}\nfunction resolvePath({\n base,\n to,\n trailingSlash = \"never\",\n cache\n}) {\n const isAbsolute = to.startsWith(\"/\");\n const isBase = !isAbsolute && to === \".\";\n let key;\n if (cache) {\n key = isAbsolute ? to : isBase ? base : base + \"\\0\" + to;\n const cached = cache.get(key);\n if (cached) return cached;\n }\n let baseSegments;\n if (isBase) {\n baseSegments = base.split(\"/\");\n } else if (isAbsolute) {\n baseSegments = to.split(\"/\");\n } else {\n baseSegments = base.split(\"/\");\n while (baseSegments.length > 1 && last(baseSegments) === \"\") {\n baseSegments.pop();\n }\n const toSegments = to.split(\"/\");\n for (let index = 0, length = toSegments.length; index < length; index++) {\n const value = toSegments[index];\n if (value === \"\") {\n if (!index) {\n baseSegments = [value];\n } else if (index === length - 1) {\n baseSegments.push(value);\n } else ;\n } else if (value === \"..\") {\n baseSegments.pop();\n } else if (value === \".\") ;\n else {\n baseSegments.push(value);\n }\n }\n }\n if (baseSegments.length > 1) {\n if (last(baseSegments) === \"\") {\n if (trailingSlash === \"never\") {\n baseSegments.pop();\n }\n } else if (trailingSlash === \"always\") {\n baseSegments.push(\"\");\n }\n }\n let segment;\n let joined = \"\";\n for (let i = 0; i < baseSegments.length; i++) {\n if (i > 0) joined += \"/\";\n const part = baseSegments[i];\n if (!part) continue;\n segment = parseSegment(part, 0, segment);\n const kind = segment[0];\n if (kind === SEGMENT_TYPE_PATHNAME) {\n joined += part;\n continue;\n }\n const end = segment[5];\n const prefix = part.substring(0, segment[1]);\n const suffix = part.substring(segment[4], end);\n const value = part.substring(segment[2], segment[3]);\n if (kind === SEGMENT_TYPE_PARAM) {\n joined += prefix || suffix ? `${prefix}{$${value}}${suffix}` : `$${value}`;\n } else if (kind === SEGMENT_TYPE_WILDCARD) {\n joined += prefix || suffix ? `${prefix}{$}${suffix}` : \"$\";\n } else {\n joined += `${prefix}{-$${value}}${suffix}`;\n }\n }\n joined = cleanPath(joined);\n const result = joined || \"/\";\n if (key && cache) cache.set(key, result);\n return result;\n}\nfunction encodeParam(key, params, decodeCharMap) {\n const value = params[key];\n if (typeof value !== \"string\") return value;\n if (key === \"_splat\") {\n return encodeURI(value);\n } else {\n return encodePathParam(value, decodeCharMap);\n }\n}\nfunction interpolatePath({\n path,\n params,\n decodeCharMap\n}) {\n let isMissingParams = false;\n const usedParams = {};\n if (!path || path === \"/\")\n return { interpolatedPath: \"/\", usedParams, isMissingParams };\n if (!path.includes(\"$\"))\n return { interpolatedPath: path, usedParams, isMissingParams };\n const length = path.length;\n let cursor = 0;\n let segment;\n let joined = \"\";\n while (cursor < length) {\n const start = cursor;\n segment = parseSegment(path, start, segment);\n const end = segment[5];\n cursor = end + 1;\n if (start === end) continue;\n const kind = segment[0];\n if (kind === SEGMENT_TYPE_PATHNAME) {\n joined += \"/\" + path.substring(start, end);\n continue;\n }\n if (kind === SEGMENT_TYPE_WILDCARD) {\n const splat = params._splat;\n usedParams._splat = splat;\n usedParams[\"*\"] = splat;\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n if (!splat) {\n isMissingParams = true;\n if (prefix || suffix) {\n joined += \"/\" + prefix + suffix;\n }\n continue;\n }\n const value = encodeParam(\"_splat\", params, decodeCharMap);\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n if (kind === SEGMENT_TYPE_PARAM) {\n const key = path.substring(segment[2], segment[3]);\n if (!isMissingParams && !(key in params)) {\n isMissingParams = true;\n }\n usedParams[key] = params[key];\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n const value = encodeParam(key, params, decodeCharMap) ?? \"undefined\";\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n if (kind === SEGMENT_TYPE_OPTIONAL_PARAM) {\n const key = path.substring(segment[2], segment[3]);\n const valueRaw = params[key];\n if (valueRaw == null) continue;\n usedParams[key] = valueRaw;\n const prefix = path.substring(start, segment[1]);\n const suffix = path.substring(segment[4], end);\n const value = encodeParam(key, params, decodeCharMap) ?? \"\";\n joined += \"/\" + prefix + value + suffix;\n continue;\n }\n }\n if (path.endsWith(\"/\")) joined += \"/\";\n const interpolatedPath = joined || \"/\";\n return { usedParams, interpolatedPath, isMissingParams };\n}\nfunction encodePathParam(value, decodeCharMap) {\n let encoded = encodeURIComponent(value);\n if (decodeCharMap) {\n for (const [encodedChar, char] of decodeCharMap) {\n encoded = encoded.replaceAll(encodedChar, char);\n }\n }\n return encoded;\n}\nexport {\n cleanPath,\n exactPathTest,\n interpolatePath,\n joinPaths,\n removeTrailingSlash,\n resolvePath,\n trimPath,\n trimPathLeft,\n trimPathRight\n};\n//# sourceMappingURL=path.js.map\n","const preloadWarning = \"Error preloading route! ☝️\";\nexport {\n preloadWarning\n};\n//# sourceMappingURL=link.js.map\n","'use strict';\n\nvar isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nmodule.exports = warning;\n","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","/**\n * @license React\n * use-sync-external-store-shim.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n }\n function useSyncExternalStore$2(subscribe, getSnapshot) {\n didWarnOld18Alpha ||\n void 0 === React.startTransition ||\n ((didWarnOld18Alpha = !0),\n console.error(\n \"You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release.\"\n ));\n var value = getSnapshot();\n if (!didWarnUncachedGetSnapshot) {\n var cachedValue = getSnapshot();\n objectIs(value, cachedValue) ||\n (console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n ),\n (didWarnUncachedGetSnapshot = !0));\n }\n cachedValue = useState({\n inst: { value: value, getSnapshot: getSnapshot }\n });\n var inst = cachedValue[0].inst,\n forceUpdate = cachedValue[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n }\n function checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n }\n function useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = require(\"react\"),\n objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue,\n didWarnOld18Alpha = !1,\n didWarnUncachedGetSnapshot = !1,\n shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\n exports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\"),\n shim = require(\"use-sync-external-store/shim\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = shim.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = require(\"react\"),\n shim = require(\"use-sync-external-store/shim\"),\n objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = shim.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\n exports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n ) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot))\n return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n };\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","import { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector.js\";\nexport * from \"@tanstack/store\";\nfunction useStore(store, selector = (d) => d, options = {}) {\n const equal = options.equal ?? shallow;\n const slice = useSyncExternalStoreWithSelector(\n store.subscribe,\n () => store.state,\n () => store.state,\n selector,\n equal\n );\n return slice;\n}\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n for (const [k, v] of objA) {\n if (!objB.has(k) || !Object.is(v, objB.get(k))) return false;\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n for (const v of objA) {\n if (!objB.has(v)) return false;\n }\n return true;\n }\n if (objA instanceof Date && objB instanceof Date) {\n if (objA.getTime() !== objB.getTime()) return false;\n return true;\n }\n const keysA = getOwnKeys(objA);\n if (keysA.length !== getOwnKeys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nfunction getOwnKeys(obj) {\n return Object.keys(obj).concat(\n Object.getOwnPropertySymbols(obj)\n );\n}\nexport {\n shallow,\n useStore\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nconst routerContext = React.createContext(null);\nfunction getRouterContext() {\n if (typeof document === \"undefined\") {\n return routerContext;\n }\n if (window.__TSR_ROUTER_CONTEXT__) {\n return window.__TSR_ROUTER_CONTEXT__;\n }\n window.__TSR_ROUTER_CONTEXT__ = routerContext;\n return routerContext;\n}\nexport {\n getRouterContext\n};\n//# sourceMappingURL=routerContext.js.map\n","import * as React from \"react\";\nimport warning from \"tiny-warning\";\nimport { getRouterContext } from \"./routerContext.js\";\nfunction useRouter(opts) {\n const value = React.useContext(getRouterContext());\n warning(\n !((opts?.warn ?? true) && !value),\n \"useRouter must be used inside a <RouterProvider> component!\"\n );\n return value;\n}\nexport {\n useRouter\n};\n//# sourceMappingURL=useRouter.js.map\n","import { useStore } from \"@tanstack/react-store\";\nimport { useRef } from \"react\";\nimport { replaceEqualDeep } from \"@tanstack/router-core\";\nimport { useRouter } from \"./useRouter.js\";\nfunction useRouterState(opts) {\n const contextRouter = useRouter({\n warn: opts?.router === void 0\n });\n const router = opts?.router || contextRouter;\n const previousResult = useRef(void 0);\n return useStore(router.__store, (state) => {\n if (opts?.select) {\n if (opts.structuralSharing ?? router.options.defaultStructuralSharing) {\n const newSlice = replaceEqualDeep(\n previousResult.current,\n opts.select(state)\n );\n previousResult.current = newSlice;\n return newSlice;\n }\n return opts.select(state);\n }\n return state;\n });\n}\nexport {\n useRouterState\n};\n//# sourceMappingURL=useRouterState.js.map\n","import * as React from \"react\";\nfunction useStableCallback(fn) {\n const fnRef = React.useRef(fn);\n fnRef.current = fn;\n const ref = React.useRef((...args) => fnRef.current(...args));\n return ref.current;\n}\nconst useLayoutEffect = typeof window !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction usePrevious(value) {\n const ref = React.useRef({\n value,\n prev: null\n });\n const current = ref.current.value;\n if (value !== current) {\n ref.current = {\n value,\n prev: current\n };\n }\n return ref.current.prev;\n}\nfunction useIntersectionObserver(ref, callback, intersectionObserverOptions = {}, options = {}) {\n React.useEffect(() => {\n if (!ref.current || options.disabled || typeof IntersectionObserver !== \"function\") {\n return;\n }\n const observer = new IntersectionObserver(([entry]) => {\n callback(entry);\n }, intersectionObserverOptions);\n observer.observe(ref.current);\n return () => {\n observer.disconnect();\n };\n }, [callback, intersectionObserverOptions, options.disabled, ref]);\n}\nfunction useForwardedRef(ref) {\n const innerRef = React.useRef(null);\n React.useImperativeHandle(ref, () => innerRef.current, []);\n return innerRef;\n}\nexport {\n useForwardedRef,\n useIntersectionObserver,\n useLayoutEffect,\n usePrevious,\n useStableCallback\n};\n//# sourceMappingURL=utils.js.map\n","/**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction formatProdErrorMessage(code) {\n var url = \"https://react.dev/errors/\" + code;\n if (1 < arguments.length) {\n url += \"?args[]=\" + encodeURIComponent(arguments[1]);\n for (var i = 2; i < arguments.length; i++)\n url += \"&args[]=\" + encodeURIComponent(arguments[i]);\n }\n return (\n \"Minified React error #\" +\n code +\n \"; visit \" +\n url +\n \" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"\n );\n}\nfunction noop() {}\nvar Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(formatProdErrorMessage(522));\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\");\nfunction createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\nvar ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\nfunction getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n}\nexports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\nexports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(formatProdErrorMessage(299));\n return createPortal$1(children, container, null, key);\n};\nexports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f();\n }\n};\nexports.preconnect = function (href, options) {\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n};\nexports.prefetchDNS = function (href) {\n \"string\" === typeof href && Internals.d.D(href);\n};\nexports.preinit = function (href, options) {\n if (\"string\" === typeof href && options && \"string\" === typeof options.as) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence ? options.precedence : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n};\nexports.preinitModule = function (href, options) {\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as) {\n var crossOrigin = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n );\n Internals.d.M(href, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n } else null == options && Internals.d.M(href);\n};\nexports.preload = function (href, options) {\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin);\n Internals.d.L(href, as, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet ? options.imageSrcSet : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes ? options.imageSizes : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n};\nexports.preloadModule = function (href, options) {\n if (\"string\" === typeof href)\n if (options) {\n var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin);\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0\n });\n } else Internals.d.m(href);\n};\nexports.requestFormReset = function (form) {\n Internals.d.r(form);\n};\nexports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n};\nexports.useFormState = function (action, initialState, permalink) {\n return ReactSharedInternals.H.useFormState(action, initialState, permalink);\n};\nexports.useFormStatus = function () {\n return ReactSharedInternals.H.useHostTransitionStatus();\n};\nexports.version = \"19.2.3\";\n","/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n try {\n testStringCoercion(key);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n JSCompiler_inline_result &&\n (console.error(\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n key[Symbol.toStringTag]) ||\n key.constructor.name ||\n \"Object\"\n ),\n testStringCoercion(key));\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n }\n function getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n }\n function getValueDescriptorExpectingObjectForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function getValueDescriptorExpectingEnumForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : \"string\" === typeof thing\n ? JSON.stringify(thing)\n : \"number\" === typeof thing\n ? \"`\" + thing + \"`\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = require(\"react\"),\n Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(\n \"Invalid form element. requestFormReset must be passed a form that was rendered by React.\"\n );\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n (\"function\" === typeof Map &&\n null != Map.prototype &&\n \"function\" === typeof Map.prototype.forEach &&\n \"function\" === typeof Set &&\n null != Set.prototype &&\n \"function\" === typeof Set.prototype.clear &&\n \"function\" === typeof Set.prototype.forEach) ||\n console.error(\n \"React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\"\n );\n exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\n exports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(\"Target container is not a DOM element.\");\n return createPortal$1(children, container, null, key);\n };\n exports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn))\n return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f() &&\n console.error(\n \"flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task.\"\n );\n }\n };\n exports.preconnect = function (href, options) {\n \"string\" === typeof href && href\n ? null != options && \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : null != options &&\n \"string\" !== typeof options.crossOrigin &&\n console.error(\n \"ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.\",\n getValueDescriptorExpectingObjectForWarning(options.crossOrigin)\n )\n : console.error(\n \"ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n };\n exports.prefetchDNS = function (href) {\n if (\"string\" !== typeof href || !href)\n console.error(\n \"ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n else if (1 < arguments.length) {\n var options = arguments[1];\n \"object\" === typeof options && options.hasOwnProperty(\"crossOrigin\")\n ? console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n );\n }\n \"string\" === typeof href && Internals.d.D(href);\n };\n exports.preinit = function (href, options) {\n \"string\" === typeof href && href\n ? null == options || \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : \"style\" !== options.as &&\n \"script\" !== options.as &&\n console.error(\n 'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are \"style\" and \"script\".',\n getValueDescriptorExpectingEnumForWarning(options.as)\n )\n : console.error(\n \"ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n if (\n \"string\" === typeof href &&\n options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence\n ? options.precedence\n : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n };\n exports.preinitModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"script\" !== options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingEnumForWarning(options.as) +\n \".\");\n if (encountered)\n console.error(\n \"ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s\",\n encountered\n );\n else\n switch (\n ((encountered =\n options && \"string\" === typeof options.as ? options.as : \"script\"),\n encountered)\n ) {\n case \"script\":\n break;\n default:\n (encountered =\n getValueDescriptorExpectingEnumForWarning(encountered)),\n console.error(\n 'ReactDOM.preinitModule(): Currently the only supported \"as\" type for this function is \"script\" but received \"%s\" instead. This warning was generated for `href` \"%s\". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',\n encountered,\n href\n );\n }\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as)\n (encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.M(href, {\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0,\n nonce:\n \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n } else null == options && Internals.d.M(href);\n };\n exports.preload = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n null == options || \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : (\"string\" === typeof options.as && options.as) ||\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel=\"preload\" as=\"...\" />` tag.%s',\n encountered\n );\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n encountered = options.as;\n var crossOrigin = getCrossOriginStringAs(\n encountered,\n options.crossOrigin\n );\n Internals.d.L(href, encountered, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet\n ? options.imageSrcSet\n : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes\n ? options.imageSizes\n : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n };\n exports.preloadModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"string\" !== typeof options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel=\"modulepreload\" as=\"...\" />` tag.%s',\n encountered\n );\n \"string\" === typeof href &&\n (options\n ? ((encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0\n }))\n : Internals.d.m(href));\n };\n exports.requestFormReset = function (form) {\n Internals.d.r(form);\n };\n exports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n };\n exports.useFormState = function (action, initialState, permalink) {\n return resolveDispatcher().useFormState(action, initialState, permalink);\n };\n exports.useFormStatus = function () {\n return resolveDispatcher().useHostTransitionStatus();\n };\n exports.version = \"19.2.3\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import { jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { preloadWarning, functionalUpdate, exactPathTest, removeTrailingSlash, deepEqual } from \"@tanstack/router-core\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useForwardedRef, useIntersectionObserver } from \"./utils.js\";\nfunction useLinkProps(options, forwardedRef) {\n const router = useRouter();\n const [isTransitioning, setIsTransitioning] = React.useState(false);\n const hasRenderFetched = React.useRef(false);\n const innerRef = useForwardedRef(forwardedRef);\n const {\n // custom props\n activeProps,\n inactiveProps,\n activeOptions,\n to,\n preload: userPreload,\n preloadDelay: userPreloadDelay,\n hashScrollIntoView,\n replace,\n startTransition,\n resetScroll,\n viewTransition,\n // element props\n children,\n target,\n disabled,\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n ignoreBlocker,\n // prevent these from being returned\n params: _params,\n search: _search,\n hash: _hash,\n state: _state,\n mask: _mask,\n reloadDocument: _reloadDocument,\n unsafeRelative: _unsafeRelative,\n from: _from,\n _fromLocation,\n ...propsSafeToSpread\n } = options;\n const currentSearch = useRouterState({\n select: (s) => s.location.search,\n structuralSharing: true\n });\n const from = options.from;\n const _options = React.useMemo(\n () => {\n return { ...options, from };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n router,\n currentSearch,\n from,\n options._fromLocation,\n options.hash,\n options.to,\n options.search,\n options.params,\n options.state,\n options.mask,\n options.unsafeRelative\n ]\n );\n const next = React.useMemo(\n () => router.buildLocation({ ..._options }),\n [router, _options]\n );\n const hrefOption = React.useMemo(() => {\n if (disabled) {\n return void 0;\n }\n let href = next.maskedLocation ? next.maskedLocation.url.href : next.url.href;\n let external = false;\n if (router.origin) {\n if (href.startsWith(router.origin)) {\n href = router.history.createHref(href.replace(router.origin, \"\")) || \"/\";\n } else {\n external = true;\n }\n }\n return { href, external };\n }, [disabled, next.maskedLocation, next.url, router.origin, router.history]);\n const externalLink = React.useMemo(() => {\n if (hrefOption?.external) {\n return hrefOption.href;\n }\n try {\n new URL(to);\n return to;\n } catch {\n }\n return void 0;\n }, [to, hrefOption]);\n const preload = options.reloadDocument || externalLink ? false : userPreload ?? router.options.defaultPreload;\n const preloadDelay = userPreloadDelay ?? router.options.defaultPreloadDelay ?? 0;\n const isActive = useRouterState({\n select: (s) => {\n if (externalLink) return false;\n if (activeOptions?.exact) {\n const testExact = exactPathTest(\n s.location.pathname,\n next.pathname,\n router.basepath\n );\n if (!testExact) {\n return false;\n }\n } else {\n const currentPathSplit = removeTrailingSlash(\n s.location.pathname,\n router.basepath\n );\n const nextPathSplit = removeTrailingSlash(\n next.pathname,\n router.basepath\n );\n const pathIsFuzzyEqual = currentPathSplit.startsWith(nextPathSplit) && (currentPathSplit.length === nextPathSplit.length || currentPathSplit[nextPathSplit.length] === \"/\");\n if (!pathIsFuzzyEqual) {\n return false;\n }\n }\n if (activeOptions?.includeSearch ?? true) {\n const searchTest = deepEqual(s.location.search, next.search, {\n partial: !activeOptions?.exact,\n ignoreUndefined: !activeOptions?.explicitUndefined\n });\n if (!searchTest) {\n return false;\n }\n }\n if (activeOptions?.includeHash) {\n return s.location.hash === next.hash;\n }\n return true;\n }\n });\n const doPreload = React.useCallback(() => {\n router.preloadRoute({ ..._options }).catch((err) => {\n console.warn(err);\n console.warn(preloadWarning);\n });\n }, [router, _options]);\n const preloadViewportIoCallback = React.useCallback(\n (entry) => {\n if (entry?.isIntersecting) {\n doPreload();\n }\n },\n [doPreload]\n );\n useIntersectionObserver(\n innerRef,\n preloadViewportIoCallback,\n intersectionObserverOptions,\n { disabled: !!disabled || !(preload === \"viewport\") }\n );\n React.useEffect(() => {\n if (hasRenderFetched.current) {\n return;\n }\n if (!disabled && preload === \"render\") {\n doPreload();\n hasRenderFetched.current = true;\n }\n }, [disabled, doPreload, preload]);\n const handleClick = (e) => {\n const elementTarget = e.currentTarget.getAttribute(\"target\");\n const effectiveTarget = target !== void 0 ? target : elementTarget;\n if (!disabled && !isCtrlEvent(e) && !e.defaultPrevented && (!effectiveTarget || effectiveTarget === \"_self\") && e.button === 0) {\n e.preventDefault();\n flushSync(() => {\n setIsTransitioning(true);\n });\n const unsub = router.subscribe(\"onResolved\", () => {\n unsub();\n setIsTransitioning(false);\n });\n router.navigate({\n ..._options,\n replace,\n resetScroll,\n hashScrollIntoView,\n startTransition,\n viewTransition,\n ignoreBlocker\n });\n }\n };\n if (externalLink) {\n return {\n ...propsSafeToSpread,\n ref: innerRef,\n href: externalLink,\n ...children && { children },\n ...target && { target },\n ...disabled && { disabled },\n ...style && { style },\n ...className && { className },\n ...onClick && { onClick },\n ...onFocus && { onFocus },\n ...onMouseEnter && { onMouseEnter },\n ...onMouseLeave && { onMouseLeave },\n ...onTouchStart && { onTouchStart }\n };\n }\n const handleFocus = (_) => {\n if (disabled) return;\n if (preload) {\n doPreload();\n }\n };\n const handleTouchStart = handleFocus;\n const handleEnter = (e) => {\n if (disabled || !preload) return;\n if (!preloadDelay) {\n doPreload();\n } else {\n const eventTarget = e.target;\n if (timeoutMap.has(eventTarget)) {\n return;\n }\n const id = setTimeout(() => {\n timeoutMap.delete(eventTarget);\n doPreload();\n }, preloadDelay);\n timeoutMap.set(eventTarget, id);\n }\n };\n const handleLeave = (e) => {\n if (disabled || !preload || !preloadDelay) return;\n const eventTarget = e.target;\n const id = timeoutMap.get(eventTarget);\n if (id) {\n clearTimeout(id);\n timeoutMap.delete(eventTarget);\n }\n };\n const resolvedActiveProps = isActive ? functionalUpdate(activeProps, {}) ?? STATIC_ACTIVE_OBJECT : STATIC_EMPTY_OBJECT;\n const resolvedInactiveProps = isActive ? STATIC_EMPTY_OBJECT : functionalUpdate(inactiveProps, {}) ?? STATIC_EMPTY_OBJECT;\n const resolvedClassName = [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className\n ].filter(Boolean).join(\" \");\n const resolvedStyle = (style || resolvedActiveProps.style || resolvedInactiveProps.style) && {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style\n };\n return {\n ...propsSafeToSpread,\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n href: hrefOption?.href,\n ref: innerRef,\n onClick: composeHandlers([onClick, handleClick]),\n onFocus: composeHandlers([onFocus, handleFocus]),\n onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),\n onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n onTouchStart: composeHandlers([onTouchStart, handleTouchStart]),\n disabled: !!disabled,\n target,\n ...resolvedStyle && { style: resolvedStyle },\n ...resolvedClassName && { className: resolvedClassName },\n ...disabled && STATIC_DISABLED_PROPS,\n ...isActive && STATIC_ACTIVE_PROPS,\n ...isTransitioning && STATIC_TRANSITIONING_PROPS\n };\n}\nconst STATIC_EMPTY_OBJECT = {};\nconst STATIC_ACTIVE_OBJECT = { className: \"active\" };\nconst STATIC_DISABLED_PROPS = { role: \"link\", \"aria-disabled\": true };\nconst STATIC_ACTIVE_PROPS = { \"data-status\": \"active\", \"aria-current\": \"page\" };\nconst STATIC_TRANSITIONING_PROPS = { \"data-transitioning\": \"transitioning\" };\nconst timeoutMap = /* @__PURE__ */ new WeakMap();\nconst intersectionObserverOptions = {\n rootMargin: \"100px\"\n};\nconst composeHandlers = (handlers) => (e) => {\n for (const handler of handlers) {\n if (!handler) continue;\n if (e.defaultPrevented) return;\n handler(e);\n }\n};\nfunction createLink(Comp) {\n return React.forwardRef(function CreatedLink(props, ref) {\n return /* @__PURE__ */ jsx(Link, { ...props, _asChild: Comp, ref });\n });\n}\nconst Link = React.forwardRef(\n (props, ref) => {\n const { _asChild, ...rest } = props;\n const {\n type: _type,\n ref: innerRef,\n ...linkProps\n } = useLinkProps(rest, ref);\n const children = typeof rest.children === \"function\" ? rest.children({\n isActive: linkProps[\"data-status\"] === \"active\"\n }) : rest.children;\n if (_asChild === void 0) {\n delete linkProps.disabled;\n }\n return React.createElement(\n _asChild ? _asChild : \"a\",\n {\n ...linkProps,\n ref: innerRef\n },\n children\n );\n }\n);\nfunction isCtrlEvent(e) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);\n}\nconst linkOptions = (options) => {\n return options;\n};\nexport {\n Link,\n createLink,\n linkOptions,\n useLinkProps\n};\n//# sourceMappingURL=link.js.map\n","import { useRouterState } from \"./useRouterState.js\";\nfunction useLocation(opts) {\n return useRouterState({\n select: (state) => opts?.select ? opts.select(state.location) : state.location\n });\n}\nexport {\n useLocation\n};\n//# sourceMappingURL=useLocation.js.map\n","@use '../../styles/typography';\n\n@mixin breadcrumb-item {\n\t@include typography.body-sm-reg;\n\tcolor: var(--color-background-action);\n\ttext-decoration: none;\n\toutline: none;\n\tpadding: var(--exo-spacing-2x-small) var(--spacing-sm);\n\tgap: var(--exo-spacing-2x-small);\n\tborder-radius: var(--exo-spacing-2x-small);\n\tdisplay: flex;\n\talign-items: center;\n\n\t&:hover {\n\t\tcolor: var(--color-background-selected);\n\t\tbackground: var(--color-background-action-tertiary);\n\t}\n\n\t&:active {\n\t\tcolor: var(--color-background-selected-hover);\n\t\tbackground: var(--color-background-action-secondary-hover);\n\t}\n\n\t&:focus {\n\t\toutline: 2px solid var(--color-background-selected);\n\t\toutline-offset: 0;\n\t}\n\n\t&:disabled {\n\t\tcolor: var(--color-background-disable);\n\t}\n}\n\n.breadcrumb {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.list {\n\tdisplay: flex;\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.breadcrumbItem {\n\tdisplay: flex;\n\talign-items: center;\n\n\t&:not(:last-child)::after {\n\t\tcontent: '/';\n\t\t@include typography.body-sm-reg;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tcolor: var(--color-font-disabled);\n\t\twidth: var(--icon-width-small);\n\t\theight: var(--icon-width-small);\n\t}\n\n\t&:last-child {\n\t\t.link,\n\t\t.trigger {\n\t\t\t@include typography.body-sm-md;\n\t\t}\n\t}\n}\n\n.link {\n\t@include breadcrumb-item;\n}\n\n.active {\n\t@include typography.body-sm-md;\n}\n\n.trigger {\n\t@include breadcrumb-item;\n\tbackground: none;\n\tborder: none;\n\tcursor: pointer;\n}\n\n.icon {\n\tmargin-right: var(--exo-spacing-2x-small);\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.dropdownIcon {\n\tmargin-left: var(--exo-spacing-2x-small);\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.itemLabel {\n\t@include typography.ellipsis;\n\tcolor: var(--color-font-main);\n}\n","@use '../../styles/typography';\n@use '../../styles/shared/dropdown';\n\n.content {\n\t@include dropdown.dropdown-content;\n\tdisplay: flex;\n\tflex-direction: column;\n\tmax-height: var(--available-height, 400px);\n\toverflow-y: auto;\n\twidth: auto;\n\n\t&:focus-visible {\n\t\toutline-offset: 2px;\n\t}\n\n\t&[hidden] {\n\t\tdisplay: none;\n\t}\n}\n\n.header {\n\tposition: sticky;\n\ttop: 0;\n\tz-index: 1;\n\tpadding: var(--spacing-3xs);\n\tborder-bottom: 1px solid var(--color-border-secondary);\n\tbackground-color: var(--color-background);\n}\n\n.item {\n\t@include dropdown.dropdown-item;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--spacing-xs);\n\n\t&.selected {\n\t\t.indicator {\n\t\t\tdisplay: flex;\n\t\t\tmin-width: var(--icon-width-medium);\n\t\t\tmargin-left: auto;\n\t\t}\n\n\t\t&:hover {\n\t\t\t.indicator {\n\t\t\t\tcolor: var(--color-background-selected);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.itemIcon {\n\tflex-shrink: 0;\n}\n\n.label {\n\tflex: 1;\n}\n\n.separator {\n\theight: 1px;\n\tbackground-color: var(--color-border-secondary);\n\tmargin: var(--spacing-4xs) var(--spacing-xs);\n}\n\n.actions {\n\tposition: sticky;\n\tbottom: -1px;\n\tz-index: 1;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n\tgap: var(--spacing-xs);\n\tpadding: var(--spacing-3xs) var(--spacing-xs);\n\tborder-top: 1px solid var(--color-border-secondary);\n\tbackground-color: var(--color-background);\n}\n\n.groupLabel {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: var(--spacing-3xs) var(--spacing-xs);\n\tbackground-color: var(--color-background);\n\toutline-offset: -1px;\n\n\t&Collapsible {\n\t\tjustify-content: space-between;\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t\tcursor: pointer;\n\t\tborder: none;\n\t\ttransition: background-color 0.15s ease;\n\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-background-action-hover-weak);\n\t\t}\n\t}\n}\n\n.groupLabelIcon {\n\tflex-shrink: 0;\n\n\t&Rotated {\n\t\ttransform: rotate(180deg);\n\t\ttransition: transform 0.2s ease-in-out;\n\t}\n}\n\n/** Legacy classes */\n.contentLegacy {\n\t@include dropdown.dropdown-content;\n\tmin-width: 200px;\n\twidth: var(--radix-select-trigger-width);\n}\n\n.viewportLegacy {\n\t@include dropdown.dropdown-viewport;\n}\n\n.itemLegacy {\n\t@include dropdown.dropdown-item;\n\t@include typography.p-special;\n\t@include typography.ellipsis;\n}\n","@use '../../styles/shared/input' as input;\n\n.textInputContainer {\n\t@include input.inputContainer;\n\tgap: var(--spacing-xs);\n}\n\n.input {\n\t@include input.input;\n}\n\n.iconButton {\n\t@include input.iconButton;\n}\n\n.adornment {\n\tdisplay: flex;\n\talign-items: center;\n\n\t&:last-child {\n\t\tcolor: var(--form-control-border-color);\n\t}\n\n\tbutton {\n\t\t@include input.iconButton;\n\t}\n}\n","import { type ChangeEvent, type FC, Fragment } from 'react';\nimport classNames from 'classnames';\nimport styles from './ds-text-input.module.scss';\nimport type { DsTextInputProps } from './ds-text-input.types';\n\nconst DsTextInput: FC<DsTextInputProps> = ({\n\tid,\n\tref,\n\tname,\n\tsize = 'default',\n\ttype = 'text',\n\tonBlur,\n\tonKeyDown,\n\tonChange,\n\tonValueChange,\n\tclassName,\n\tstyle = {},\n\tvalue,\n\tdefaultValue,\n\tmin,\n\tmax,\n\tminLength,\n\tmaxLength,\n\tplaceholder,\n\tdisabled = false,\n\ttabIndex,\n\tslots,\n}) => {\n\tconst InputWrapper = slots?.inputWrapper ?? Fragment;\n\n\tconst containerClass = classNames(\n\t\tstyles.textInputContainer,\n\t\t{\n\t\t\t[styles.small]: size === 'small',\n\t\t\t[styles.default]: size === 'default',\n\t\t},\n\t\tclassName,\n\t);\n\n\tconst handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n\t\tconst newValue = event.target.value;\n\t\tonChange?.(event);\n\t\tonValueChange?.(newValue);\n\t};\n\n\treturn (\n\t\t<div className={containerClass} style={style}>\n\t\t\t{slots?.startAdornment && <div className={styles.adornment}>{slots.startAdornment}</div>}\n\t\t\t<InputWrapper>\n\t\t\t\t<input\n\t\t\t\t\tid={id}\n\t\t\t\t\tref={ref}\n\t\t\t\t\tname={name}\n\t\t\t\t\tclassName={classNames(styles.input)}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tvalue={value}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tmin={min}\n\t\t\t\t\tmax={max}\n\t\t\t\t\tminLength={minLength}\n\t\t\t\t\tmaxLength={maxLength}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tonBlur={onBlur}\n\t\t\t\t\tonKeyDown={onKeyDown}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\ttabIndex={tabIndex}\n\t\t\t\t/>\n\t\t\t</InputWrapper>\n\t\t\t{slots?.endAdornment && <div className={styles.adornment}>{slots.endAdornment}</div>}\n\t\t</div>\n\t);\n};\n\nexport default DsTextInput;\n","import type React from 'react';\nimport { createContext, Fragment, useContext, useState } from 'react';\nimport * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport { Menu } from '@ark-ui/react/menu';\nimport { Portal } from '@ark-ui/react/portal';\nimport classNames from 'classnames';\nimport styles from './ds-dropdown-menu.module.scss';\nimport { DsIcon } from '../ds-icon';\nimport DsTypography from '../ds-typography/ds-typography';\nimport DsTextInput from '../ds-text-input/ds-text-input';\nimport type {\n\tDsDropdownMenuActionsProps,\n\tDsDropdownMenuContentProps,\n\tDsDropdownMenuHeaderProps,\n\tDsDropdownMenuItemGroupContentProps,\n\tDsDropdownMenuItemGroupLabelProps,\n\tDsDropdownMenuItemGroupProps,\n\tDsDropdownMenuItemIndicatorProps,\n\tDsDropdownMenuItemProps,\n\tDsDropdownMenuLegacyProps,\n\tDsDropdownMenuPositioning,\n\tDsDropdownMenuRootProps,\n\tDsDropdownMenuSeparatorProps,\n\tDsDropdownMenuTriggerProps,\n} from './ds-dropdown-menu.types';\n\n/**\n * Context to share state between Group and GroupLabel\n */\ninterface GroupContextValue {\n\tcollapsed: boolean;\n\ttoggle: () => void;\n}\n\nconst GroupContext = createContext<GroupContextValue | null>(null);\n\nconst DEFAULT_POSITIONING: DsDropdownMenuPositioning = {\n\tplacement: 'bottom-start' as const,\n\tgutter: 4,\n};\n\n/**\n * Root component - manages dropdown state\n */\nconst Root: React.FC<DsDropdownMenuRootProps> = ({\n\topen,\n\tonOpenChange,\n\tonSelect,\n\tonHighlightChange,\n\tpositioning: customPositioning,\n\tpreventCloseOnSelect = false,\n\tchildren,\n}) => {\n\tconst positioning = {\n\t\t...DEFAULT_POSITIONING,\n\t\t...customPositioning,\n\t};\n\n\treturn (\n\t\t<Menu.Root\n\t\t\topen={open}\n\t\t\tonOpenChange={(details) => onOpenChange?.(details.open)}\n\t\t\tonSelect={(details) => onSelect?.(details.value)}\n\t\t\tonHighlightChange={(details) => onHighlightChange?.(details.highlightedValue)}\n\t\t\tpositioning={positioning}\n\t\t\tcloseOnSelect={!preventCloseOnSelect}\n\t\t>\n\t\t\t{children}\n\t\t</Menu.Root>\n\t);\n};\n\n/**\n * Trigger component - wraps the trigger element\n */\nconst Trigger: React.FC<DsDropdownMenuTriggerProps> = Menu.Trigger;\n\n/**\n * Content component - wraps the dropdown content\n */\nconst Content: React.FC<DsDropdownMenuContentProps> = ({\n\tdisablePortal = false,\n\tchildren,\n\tclassName,\n\tstyle,\n}) => {\n\tconst Wrapper = disablePortal ? Fragment : Portal;\n\n\treturn (\n\t\t<Wrapper>\n\t\t\t<Menu.Positioner>\n\t\t\t\t<Menu.Content className={classNames(styles.content, className)} style={style}>\n\t\t\t\t\t{children}\n\t\t\t\t</Menu.Content>\n\t\t\t</Menu.Positioner>\n\t\t</Wrapper>\n\t);\n};\n\n/**\n * Item component - renders a menu item\n */\nconst Item: React.FC<DsDropdownMenuItemProps> = ({\n\tdisabled,\n\tselected,\n\tvalue,\n\tasChild,\n\tonClick,\n\tonSelect,\n\tchildren,\n\tclassName,\n\tstyle,\n}) => {\n\treturn (\n\t\t<Menu.Item\n\t\t\tdisabled={disabled}\n\t\t\tclassName={classNames(\n\t\t\t\tstyles.item,\n\t\t\t\t{\n\t\t\t\t\t[styles.selected]: selected,\n\t\t\t\t},\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tstyle={style}\n\t\t\tvalue={value}\n\t\t\tasChild={asChild}\n\t\t\tonClick={onClick}\n\t\t\tonSelect={onSelect}\n\t\t>\n\t\t\t{children}\n\t\t</Menu.Item>\n\t);\n};\n\n/**\n * ItemIndicator component - renders a selection indicator (check icon by default)\n */\nconst ItemIndicator: React.FC<DsDropdownMenuItemIndicatorProps> = ({ children, className, style }) => {\n\treturn (\n\t\t<span className={classNames(styles.indicator, className)} style={style}>\n\t\t\t{children ?? <DsIcon icon=\"check\" />}\n\t\t</span>\n\t);\n};\n\n/**\n * Header component - sticky header container for search, filters, or other controls\n */\nconst Header: React.FC<DsDropdownMenuHeaderProps> = ({ children, className, style }) => {\n\treturn (\n\t\t<div className={classNames(styles.header, className)} style={style}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\n/**\n * Actions component - footer container for action buttons\n */\nconst Actions: React.FC<DsDropdownMenuActionsProps> = ({ children, className, style }) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(styles.actions, className)}\n\t\t\tstyle={style}\n\t\t\trole=\"menu\"\n\t\t\taria-label=\"Menu actions\"\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\n/**\n * ItemGroup component - collapsible group container\n */\nconst ItemGroup: React.FC<DsDropdownMenuItemGroupProps> = ({\n\tchildren,\n\tcollapsed: controlledCollapsed,\n\tonCollapsedChange,\n\tclassName,\n\tstyle,\n}) => {\n\tconst [internalCollapsed, setInternalCollapsed] = useState(false);\n\n\tconst isControlled = controlledCollapsed !== undefined;\n\tconst collapsed = isControlled ? controlledCollapsed : internalCollapsed;\n\n\tconst toggle = () => {\n\t\tconst newCollapsed = !collapsed;\n\t\tif (!isControlled) {\n\t\t\tsetInternalCollapsed(newCollapsed);\n\t\t}\n\t\tonCollapsedChange?.(newCollapsed);\n\t};\n\n\treturn (\n\t\t<GroupContext.Provider value={{ collapsed, toggle }}>\n\t\t\t<Menu.ItemGroup className={classNames(styles.group, className)} style={style}>\n\t\t\t\t{children}\n\t\t\t</Menu.ItemGroup>\n\t\t</GroupContext.Provider>\n\t);\n};\n\n/**\n * ItemGroupLabel component - clickable group header with collapse indicator\n */\nconst ItemGroupLabel: React.FC<DsDropdownMenuItemGroupLabelProps> = ({ children, className, style }) => {\n\tconst context = useContext(GroupContext);\n\n\tif (!context) {\n\t\t// If not inside a Group, just render static label\n\t\treturn (\n\t\t\t<Menu.ItemGroupLabel className={classNames(styles.groupLabel, className)} style={style}>\n\t\t\t\t<DsTypography variant=\"body-sm-md\">{children}</DsTypography>\n\t\t\t</Menu.ItemGroupLabel>\n\t\t);\n\t}\n\n\tconst { collapsed, toggle } = context;\n\n\treturn (\n\t\t<Menu.ItemGroupLabel asChild>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclassName={classNames(styles.groupLabel, styles.groupLabelCollapsible, className)}\n\t\t\t\tstyle={style}\n\t\t\t\tonClick={toggle}\n\t\t\t\tonKeyDown={(e) => e.stopPropagation()}\n\t\t\t>\n\t\t\t\t<DsTypography variant=\"body-sm-md\">{children}</DsTypography>\n\t\t\t\t<DsIcon\n\t\t\t\t\ticon=\"keyboard_arrow_down\"\n\t\t\t\t\tclassName={classNames(styles.groupLabelIcon, {\n\t\t\t\t\t\t[styles.groupLabelIconRotated]: !collapsed,\n\t\t\t\t\t})}\n\t\t\t\t/>\n\t\t\t</button>\n\t\t</Menu.ItemGroupLabel>\n\t);\n};\n\n/**\n * ItemGroupContent component - collapsible content container\n */\nconst ItemGroupContent: React.FC<DsDropdownMenuItemGroupContentProps> = ({ children, className, style }) => {\n\tconst context = useContext(GroupContext);\n\n\tif (context?.collapsed) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className={className} style={style}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\n/**\n * Separator component - renders a visual divider\n */\nconst Separator: React.FC<DsDropdownMenuSeparatorProps> = ({ className, style }) => {\n\treturn <Menu.Separator className={classNames(styles.separator, className)} style={style} />;\n};\n\n/**\n * DEPRECATED: Legacy DsDropdownMenu component with options array\n * Use compound component pattern instead\n * @deprecated\n */\nexport const DsDropdownMenuLegacy: React.FC<DsDropdownMenuLegacyProps> = ({\n\toptions,\n\tchildren,\n\tcontentGap = 0,\n\tclassName,\n\tstyle,\n\talign = 'center',\n\tside = 'bottom',\n\tdisablePortal = false,\n\tdisableSearch = true,\n\tselected,\n\tonSelect,\n}) => {\n\tconst [open, setOpen] = useState(false);\n\tconst [searchTerm, setSearchTerm] = useState('');\n\n\tconst Wrapper = disablePortal ? Fragment : DropdownMenu.Portal;\n\n\tconst filteredOptions = disableSearch\n\t\t? options\n\t\t: options.filter((option) => option.label.toLowerCase().includes(searchTerm.toLowerCase()));\n\n\treturn (\n\t\t<DropdownMenu.Root open={open} onOpenChange={setOpen}>\n\t\t\t<DropdownMenu.Trigger asChild>{children}</DropdownMenu.Trigger>\n\t\t\t<Wrapper>\n\t\t\t\t<DropdownMenu.Content\n\t\t\t\t\tclassName={classNames(styles.contentLegacy, styles.viewportLegacy)}\n\t\t\t\t\tsideOffset={contentGap}\n\t\t\t\t\talign={align}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t{!disableSearch && (\n\t\t\t\t\t\t<DsTextInput\n\t\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\t\tvalue={searchTerm}\n\t\t\t\t\t\t\tonValueChange={setSearchTerm}\n\t\t\t\t\t\t\tslots={{\n\t\t\t\t\t\t\t\tstartAdornment: <DsIcon icon=\"search\" size=\"tiny\" />,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonKeyDown={(e) => e.stopPropagation()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{filteredOptions.map((option, i) => (\n\t\t\t\t\t\t<DropdownMenu.Item\n\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\tdisabled={option.disabled}\n\t\t\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\t\tstyles.itemLegacy,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t[styles.selected]: selected === option.value,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\t\t\t\tif (!option.disabled) {\n\t\t\t\t\t\t\t\t\tif (option.value) {\n\t\t\t\t\t\t\t\t\t\tonSelect?.(option.value);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\toption.onClick?.(e);\n\t\t\t\t\t\t\t\t\tsetOpen(false);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{option.icon && <DsIcon icon={option.icon} className={styles.itemIcon} />}\n\t\t\t\t\t\t\t<span className={styles.label}>{option.label}</span>\n\t\t\t\t\t\t\t{option.value && selected === option.value && (\n\t\t\t\t\t\t\t\t<span className={styles.indicator}>\n\t\t\t\t\t\t\t\t\t<DsIcon icon=\"check\" />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</DropdownMenu.Item>\n\t\t\t\t\t))}\n\t\t\t\t</DropdownMenu.Content>\n\t\t\t</Wrapper>\n\t\t</DropdownMenu.Root>\n\t);\n};\n\n/**\n * Design system DsDropdownMenu component\n *\n * @example\n * <DsDropdownMenu.Root>\n * <DsDropdownMenu.Trigger>\n * <button>Open</button>\n * </DsDropdownMenu.Trigger>\n * <DsDropdownMenu.Content>\n * <DsDropdownMenu.Header>\n * <DsTextInput placeholder=\"Search...\" />\n * </DsDropdownMenu.Header>\n * <DsDropdownMenu.Item value=\"item1\">\n * Item 1\n * <DsDropdownMenu.ItemIndicator />\n * </DsDropdownMenu.Item>\n * <DsDropdownMenu.ItemGroup>\n * <DsDropdownMenu.ItemGroupLabel>Group Name</DsDropdownMenu.ItemGroupLabel>\n * <DsDropdownMenu.ItemGroupContent>\n * <DsDropdownMenu.Item value=\"item2\">Item 2</DsDropdownMenu.Item>\n * </DsDropdownMenu.ItemGroupContent>\n * </DsDropdownMenu.ItemGroup>\n * <DsDropdownMenu.Separator />\n * <DsDropdownMenu.Actions>\n * <DsButton>Cancel</DsButton>\n * <DsButton>Apply</DsButton>\n * </DsDropdownMenu.Actions>\n * </DsDropdownMenu.Content>\n * </DsDropdownMenu.Root>\n */\nexport const DsDropdownMenu = {\n\tRoot,\n\tTrigger,\n\tContent,\n\tItem,\n\tItemIndicator,\n\tHeader,\n\tActions,\n\tItemGroup,\n\tItemGroupLabel,\n\tItemGroupContent,\n\tSeparator,\n};\n","import type { ComponentType } from 'react';\nimport type React from 'react';\n\nexport const textInputSizes = ['small', 'default'] as const;\nexport type TextInputSize = (typeof textInputSizes)[number];\n\nexport interface DsTextInputProps {\n\t/**\n\t * Unique identifier for the input field\n\t */\n\tid?: string;\n\t/**\n\t * The ref to the input field\n\t */\n\tref?: React.Ref<HTMLInputElement>;\n\t/**\n\t * The name of the input field\n\t */\n\tname?: string;\n\t/**\n\t * The size of the input field\n\t * @default default\n\t */\n\tsize?: TextInputSize;\n\t/**\n\t * The type of the input field\n\t * @default text\n\t */\n\ttype?: string;\n\t/**\n\t * Event handler called when the input field loses focus\n\t *\n\t * @param event\n\t */\n\tonBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n\t/**\n\t * Callback when a key is pressed down\n\t */\n\tonKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n\t/**\n\t * Callback when the value changes\n\t */\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n\t/**\n\t * Value change event handler (provides just the value)\n\t */\n\tonValueChange?: (value: string) => void;\n\t/**\n\t * Additional CSS class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Additional styles to apply to the component\n\t */\n\tstyle?: React.CSSProperties;\n\t/**\n\t * The placeholder text\n\t */\n\tplaceholder?: string;\n\t/**\n\t * The current value\n\t */\n\tvalue?: string;\n\t/**\n\t * The minimum value of the input\n\t */\n\tmin?: number | string;\n\t/**\n\t * The maximum value of the input\n\t */\n\tmax?: number | string;\n\t/**\n\t * The minimum number of characters\n\t */\n\tminLength?: number;\n\t/**\n\t * The maximum number of characters\n\t */\n\tmaxLength?: number;\n\t/**\n\t * The initial value of the input when rendered.\n\t * Use when you don't need to control the value of the input.\n\t */\n\tdefaultValue?: string;\n\t/**\n\t * Whether the input is disabled\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * The tabIndex of the input\n\t */\n\ttabIndex?: number;\n\n\tslots?: {\n\t\t/**\n\t\t * Custom component to wrap the input element\n\t\t */\n\t\tinputWrapper?: ComponentType<{ children: React.ReactNode }>;\n\n\t\t/**\n\t\t * Adornment to display at the start of the input\n\t\t */\n\t\tstartAdornment?: React.ReactNode;\n\t\t/**\n\t\t * Adornment to display at the end of the input\n\t\t */\n\t\tendAdornment?: React.ReactNode;\n\t};\n}\n","import type React from 'react';\nimport { useState } from 'react';\nimport { Link, useLocation } from '@tanstack/react-router';\nimport classNames from 'classnames';\nimport styles from './ds-breadcrumb.module.scss';\nimport type { DsBreadcrumbProps } from './ds-breadcrumb.types';\nimport { DsIcon } from '../ds-icon';\nimport { DsDropdownMenu } from '../ds-dropdown-menu';\nimport { DsTextInput } from '../ds-text-input/index';\nimport { DsTypography } from '../ds-typography';\n\n/**\n * Design system Breadcrumb component\n */\nconst DsBreadcrumb: React.FC<DsBreadcrumbProps> = ({ items, onSelect, className }) => {\n\tconst location = useLocation();\n\tconst [search, setSearch] = useState('');\n\n\treturn (\n\t\t<nav className={classNames(styles.breadcrumb, className)} aria-label=\"Breadcrumb\">\n\t\t\t<ol className={styles.list}>\n\t\t\t\t{items.map((item, index) => {\n\t\t\t\t\tconst selectedOption =\n\t\t\t\t\t\titem.type === 'dropdown'\n\t\t\t\t\t\t\t? item.options.find((option) => option.href === location.pathname)\n\t\t\t\t\t\t\t: null;\n\n\t\t\t\t\tconst filteredOptions =\n\t\t\t\t\t\titem.type === 'dropdown'\n\t\t\t\t\t\t\t? item.options.filter((opt) => opt.label.toLowerCase().includes(search.toLowerCase()))\n\t\t\t\t\t\t\t: [];\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={index} className={styles.breadcrumbItem}>\n\t\t\t\t\t\t\t{item.type === 'link' ? (\n\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\tto={item.href}\n\t\t\t\t\t\t\t\t\tclassName={classNames(styles.link)}\n\t\t\t\t\t\t\t\t\taria-current={index === items.length - 1 ? 'page' : undefined}\n\t\t\t\t\t\t\t\t\tonClick={() => onSelect?.(item.href)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{item.icon && <DsIcon icon={item.icon} className={styles.icon} size=\"small\" />}\n\t\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<DsDropdownMenu.Root onSelect={onSelect}>\n\t\t\t\t\t\t\t\t\t<DsDropdownMenu.Trigger\n\t\t\t\t\t\t\t\t\t\tclassName={styles.trigger}\n\t\t\t\t\t\t\t\t\t\taria-current={index === items.length - 1 ? 'page' : undefined}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{item.icon && <DsIcon icon={item.icon} className={styles.icon} size=\"small\" />}\n\t\t\t\t\t\t\t\t\t\t{selectedOption?.label || item.label}\n\t\t\t\t\t\t\t\t\t\t<DsIcon icon=\"arrow_drop_down\" className={styles.dropdownIcon} />\n\t\t\t\t\t\t\t\t\t</DsDropdownMenu.Trigger>\n\t\t\t\t\t\t\t\t\t<DsDropdownMenu.Content>\n\t\t\t\t\t\t\t\t\t\t<DsDropdownMenu.Header>\n\t\t\t\t\t\t\t\t\t\t\t<DsTextInput\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={search}\n\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={setSearch}\n\t\t\t\t\t\t\t\t\t\t\t\tonKeyDown={(e) => e.stopPropagation()}\n\t\t\t\t\t\t\t\t\t\t\t\tslots={{\n\t\t\t\t\t\t\t\t\t\t\t\t\tstartAdornment: <DsIcon icon=\"search\" size=\"tiny\" />,\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</DsDropdownMenu.Header>\n\t\t\t\t\t\t\t\t\t\t{filteredOptions.map((opt) => {\n\t\t\t\t\t\t\t\t\t\t\tconst selected = selectedOption?.href === opt.href;\n\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t<DsTypography\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={opt.href}\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={styles.itemLabel}\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"body-sm-reg\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tasChild\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<DsDropdownMenu.Item value={opt.href} selected={selected}>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{opt.label}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{selected && <DsDropdownMenu.ItemIndicator />}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</DsDropdownMenu.Item>\n\t\t\t\t\t\t\t\t\t\t\t\t</DsTypography>\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t</DsDropdownMenu.Content>\n\t\t\t\t\t\t\t\t</DsDropdownMenu.Root>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</ol>\n\t\t</nav>\n\t);\n};\n\nexport default DsBreadcrumb;\n","@use '../../../../styles/typography';\n\n$color-primary-default: var(--action-cta1);\n$color-primary-hover: var(--action-hover-light);\n$color-primary-active: var(--action-active-light);\n$color-primary-disabled: var(--action-disabled);\n\n$color-secondary-default: var(--action-cta3);\n$color-secondary-hover: var(--neutral-4);\n$color-secondary-disabled: var(--action-disabled);\n\n$color-error-default: var(--system-status-error);\n$color-error-hover: var(--utility-error);\n$color-error-active: var(--utility-error);\n$color-error-disabled: var(--action-disabled);\n\n$color-white: var(--white);\n$color-neutral-6: var(--utility-disabled);\n$color-neutral-4: var(--neutral-4);\n\n@mixin button-filled($background, $hover, $active, $disabled) {\n\tbackground: $background;\n\tcolor: $color-white;\n\n\t&:disabled {\n\t\tcolor: $color-neutral-6;\n\t\tbackground: $disabled;\n\t}\n}\n\n@mixin button-ghost($color, $hover, $active, $disabled) {\n\tborder: 2px solid $color;\n\tcolor: $color;\n\n\t&:disabled {\n\t\tcolor: $disabled;\n\t\tborder-color: $disabled;\n\t}\n}\n\n@mixin button-borderless($color, $hover, $active, $disabled) {\n\tcolor: $color;\n\tborder: none;\n\n\t&.content {\n\t\tgap: 4px;\n\t}\n\n\t&:hover {\n\t\tcolor: $hover;\n\t}\n\n\t&:active {\n\t\tcolor: $active;\n\t}\n\n\t&:disabled {\n\t\tcolor: $disabled;\n\t}\n}\n\n@mixin button-round($background, $hover, $active, $disabled) {\n\t@include button-filled($background, $hover, $active, $disabled);\n\tborder-radius: 32px;\n}\n\n.button {\n\t@include typography.regular;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder-radius: 4px;\n\twhite-space: nowrap;\n\tcursor: pointer;\n\tborder: none;\n\tpadding: 0;\n\tfont: inherit;\n\tbackground: none;\n\n\t&:disabled {\n\t\tcursor: not-allowed;\n\t}\n\n\t&:not(:disabled) {\n\t\tcursor: pointer;\n\t}\n\n\t.content {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tgap: 8px;\n\t}\n\n\t&.small {\n\t\t@include typography.p-base;\n\t\tpadding: 6px 12px;\n\n\t\t.content {\n\t\t\tgap: 6px;\n\t\t}\n\t}\n\n\t&.medium {\n\t\t@include typography.p-base;\n\t\t@include typography.medium;\n\t\tpadding: 12px;\n\n\t\t.content {\n\t\t\tgap: 9px;\n\t\t}\n\t}\n\n\t&.large {\n\t\t@include typography.p-base;\n\t\t@include typography.medium;\n\t\tpadding: 14px 12px;\n\t}\n\n\t&.primary-filled {\n\t\t@include button-filled(\n\t\t\t$color-primary-default,\n\t\t\t$color-primary-hover,\n\t\t\t$color-primary-active,\n\t\t\t$color-primary-disabled\n\t\t);\n\t}\n\n\t&.primary-ghost {\n\t\t@include button-ghost(\n\t\t\t$color-primary-default,\n\t\t\t$color-primary-hover,\n\t\t\t$color-primary-active,\n\t\t\t$color-neutral-4\n\t\t);\n\t}\n\n\t&.primary-borderless {\n\t\t@include button-borderless(\n\t\t\t$color-primary-default,\n\t\t\t$color-primary-hover,\n\t\t\t$color-primary-active,\n\t\t\t$color-primary-disabled\n\t\t);\n\t}\n\n\t&.primary-round {\n\t\t@include button-round(\n\t\t\t$color-primary-default,\n\t\t\t$color-primary-hover,\n\t\t\t$color-primary-active,\n\t\t\t$color-primary-disabled\n\t\t);\n\t}\n\n\t&.primary-dashed {\n\t\t@include button-ghost(\n\t\t\t$color-primary-default,\n\t\t\t$color-primary-hover,\n\t\t\t$color-primary-active,\n\t\t\t$color-neutral-4\n\t\t);\n\t\tborder-style: dashed;\n\t}\n\n\t&.secondary-filled {\n\t\t@include button-filled(\n\t\t\t$color-secondary-default,\n\t\t\t$color-secondary-hover,\n\t\t\t$color-secondary-hover,\n\t\t\t$color-secondary-disabled\n\t\t);\n\t}\n\n\t&.secondary-ghost {\n\t\t@include button-ghost(\n\t\t\t$color-secondary-default,\n\t\t\t$color-secondary-hover,\n\t\t\t$color-secondary-hover,\n\t\t\t$color-secondary-disabled\n\t\t);\n\t}\n\n\t&.secondary-borderless {\n\t\t@include button-borderless(\n\t\t\t$color-secondary-default,\n\t\t\t$color-secondary-hover,\n\t\t\t$color-secondary-hover,\n\t\t\t$color-secondary-disabled\n\t\t);\n\t}\n\n\t&.secondary-round {\n\t\t@include button-round(\n\t\t\t$color-secondary-default,\n\t\t\t$color-secondary-hover,\n\t\t\t$color-secondary-hover,\n\t\t\t$color-secondary-disabled\n\t\t);\n\t}\n\n\t&.secondary-dashed {\n\t\t@include button-ghost(\n\t\t\t$color-secondary-default,\n\t\t\t$color-secondary-hover,\n\t\t\t$color-secondary-hover,\n\t\t\t$color-secondary-disabled\n\t\t);\n\t\tborder-style: dashed;\n\t}\n\n\t&.error-filled {\n\t\t@include button-filled(\n\t\t\t$color-error-default,\n\t\t\t$color-error-hover,\n\t\t\t$color-error-active,\n\t\t\t$color-error-disabled\n\t\t);\n\t}\n\n\t&.error-ghost {\n\t\t@include button-ghost(\n\t\t\t$color-error-default,\n\t\t\t$color-error-hover,\n\t\t\t$color-error-active,\n\t\t\t$color-error-disabled\n\t\t);\n\t}\n\n\t&.error-borderless {\n\t\t@include button-borderless(\n\t\t\t$color-error-default,\n\t\t\t$color-error-hover,\n\t\t\t$color-error-active,\n\t\t\t$color-error-disabled\n\t\t);\n\t}\n\n\t&.error-round {\n\t\t@include button-round(\n\t\t\t$color-error-default,\n\t\t\t$color-error-hover,\n\t\t\t$color-error-active,\n\t\t\t$color-error-disabled\n\t\t);\n\t}\n\n\t&.error-dashed {\n\t\t@include button-ghost(\n\t\t\t$color-error-default,\n\t\t\t$color-error-hover,\n\t\t\t$color-error-active,\n\t\t\t$color-error-disabled\n\t\t);\n\t\tborder-style: dashed;\n\t}\n}\n","import classNames from 'classnames';\nimport type React from 'react';\nimport styles from './ds-button-legacy.module.scss';\nimport type { DsButtonProps } from './ds-button-legacy.types';\n\n/**\n * Design system Button component\n */\nconst DsButton: React.FC<DsButtonProps> = ({\n\tschema = 'primary',\n\tvariant = 'filled',\n\tsize = 'medium',\n\tdisabled = false,\n\tclassName,\n\tcontentClassName,\n\tchildren,\n\t...props\n}) => {\n\tconst buttonClass = classNames(\n\t\tstyles.button,\n\t\tstyles[`${schema}-${variant}`],\n\t\tstyles[size],\n\t\t{ [styles.disabled]: disabled },\n\t\tclassName,\n\t);\n\n\treturn (\n\t\t<button type=\"button\" className={buttonClass} disabled={disabled} {...props}>\n\t\t\t<span className={classNames(styles.content, contentClassName)}>{children}</span>\n\t\t</button>\n\t);\n};\n\nexport default DsButton;\n","@use '../../../../styles/typography';\n\n$button-size-small: 28px;\n$button-size-default: 32px;\n$button-size-large: 40px;\n\n.button {\n\t@include typography.body-sm-md;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twhite-space: nowrap;\n\tcursor: pointer;\n\tbackground: none;\n\toutline: none;\n\tpadding-block: 0;\n\tpadding-inline: 0;\n\talign-self: stretch;\n\tborder: 2px solid transparent;\n\tborder-radius: var(--exo-spacing-2x-small);\n\n\t.content {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tgap: var(--exo-spacing-2x-small);\n\t\tpadding: 0 var(--spacing-sm);\n\t\tborder: 1px solid transparent;\n\t\tborder-radius: var(--exo-spacing-2x-small);\n\t\tflex-grow: 1;\n\t}\n\n\t&.small .content {\n\t\t@include typography.body-xs-md;\n\t\theight: $button-size-small;\n\t}\n\n\t&.medium .content {\n\t\theight: $button-size-default;\n\t}\n\n\t&.large .content {\n\t\t@include typography.body-md-md;\n\t\theight: $button-size-large;\n\t}\n\n\t&.iconButton {\n\t\taspect-ratio: 1 / 1;\n\t\talign-items: stretch;\n\n\t\t.content {\n\t\t\tflex: 1;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t&.large .content {\n\t\t\theight: $button-size-large;\n\t\t\twidth: $button-size-large;\n\t\t}\n\n\t\t&.medium .content {\n\t\t\theight: $button-size-default;\n\t\t\twidth: $button-size-default;\n\t\t}\n\n\t\t&.small .content {\n\t\t\theight: $button-size-small;\n\t\t\twidth: $button-size-small;\n\t\t}\n\t}\n\n\t&.primary-filled {\n\t\tborder: 2px solid transparent;\n\t\tcolor: var(--color-font-on-action);\n\n\t\t.content {\n\t\t\tbackground: var(--color-background-selected);\n\t\t}\n\n\t\t&:hover {\n\t\t\t.content {\n\t\t\t\tbackground: var(--color-background-selected-hover);\n\t\t\t}\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tborder-color: var(--color-background-selected);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background);\n\t\t\t\tborder-radius: calc(var(--exo-spacing-2x-small) / 2);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: not-allowed;\n\n\t\t\t.content {\n\t\t\t\tbackground: var(--color-background-disable);\n\t\t\t\tborder-color: var(--color-background-disable);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.secondary-filled {\n\t\tbackground: transparent;\n\t\tborder: 2px solid transparent;\n\t\tcolor: var(--color-background-action);\n\n\t\t.content {\n\t\t\tbackground: var(--color-background);\n\t\t\tborder-color: var(--color-border);\n\t\t}\n\n\t\t&:hover {\n\t\t\t&:not(:disabled) {\n\t\t\t\t.content {\n\t\t\t\t\tborder-color: var(--color-background-action-hover);\n\t\t\t\t\tbackground: var(--color-background-action-hover-weak);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&:focus-visible {\n\t\t\t\tbackground: var(--color-background);\n\n\t\t\t\t.content {\n\t\t\t\t\tborder-color: var(--color-background-action-secondary);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbackground: var(--color-background);\n\t\t\tborder-color: var(--color-background-action-hover);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background);\n\t\t\t\tbackground: var(--color-background-action-hover-weak);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: not-allowed;\n\t\t\tcolor: var(--color-background-disable);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background-disable);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.tertiary-filled {\n\t\tbackground: transparent;\n\t\tborder: 2px solid transparent;\n\t\tcolor: var(--color-background-action);\n\n\t\t.content {\n\t\t\tbackground: var(--color-background);\n\t\t\tborder-color: transparent;\n\t\t}\n\n\t\t&:hover:not(:disabled) {\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-border);\n\t\t\t\tbackground: var(--color-background-action-hover-weak);\n\t\t\t}\n\t\t}\n\n\t\t&:active {\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbackground: var(--color-background);\n\t\t\tborder-color: var(--color-background-action-hover);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background);\n\t\t\t\tbackground: var(--color-background-action-hover-weak);\n\t\t\t\tborder-radius: calc(var(--exo-spacing-2x-small) / 2);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: not-allowed;\n\t\t\tcolor: var(--color-background-disable);\n\t\t}\n\t}\n\n\t&.secondary-ghost {\n\t\tbackground: transparent;\n\t\tborder: 2px solid transparent;\n\t\tcolor: var(--color-background-selected);\n\n\t\t.content {\n\t\t\tbackground: var(--color-background-action-secondary);\n\t\t\tborder-color: var(--color-background-selected);\n\t\t}\n\n\t\t&:hover {\n\t\t\t&:not(:disabled) {\n\t\t\t\t.content {\n\t\t\t\t\tbackground: var(--color-background-action-secondary-hover);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&:focus-visible {\n\t\t\t\t.content {\n\t\t\t\t\tborder-color: var(--color-background-action-secondary);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbackground: var(--color-background);\n\t\t\tborder-color: var(--color-background-selected);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background);\n\t\t\t\tbackground: var(--color-background-action-secondary-hover);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: not-allowed;\n\t\t\tcolor: var(--color-background-disable);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background-disable);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.tertiary-ghost {\n\t\tbackground: transparent;\n\t\tborder: 2px solid transparent;\n\t\tcolor: var(--color-background-selected);\n\n\t\t.content {\n\t\t\tbackground: var(--color-background);\n\t\t\tborder-color: transparent;\n\t\t}\n\n\t\t&:hover:not(:disabled) {\n\t\t\t.content {\n\t\t\t\tbackground: var(--color-background-action-secondary-hover);\n\t\t\t}\n\t\t}\n\n\t\t&:active {\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbackground: var(--color-background);\n\t\t\tborder-color: var(--color-background-selected);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background);\n\t\t\t\tbackground: var(--color-background-action-secondary-hover);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: not-allowed;\n\t\t\tcolor: var(--color-background-disable);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.primary-danger {\n\t\tborder: 2px solid transparent;\n\t\tcolor: var(--color-font-on-action);\n\n\t\t.content {\n\t\t\tbackground: var(--color-background-danger-strong);\n\t\t}\n\n\t\t&:hover {\n\t\t\t.content {\n\t\t\t\tbackground: var(--color-background-danger-strong-hover);\n\t\t\t}\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tborder-color: var(--color-background-danger-strong);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background);\n\t\t\t\tborder-radius: calc(var(--exo-spacing-2x-small) / 2);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: not-allowed;\n\n\t\t\t.content {\n\t\t\t\tbackground: var(--color-background-disable);\n\t\t\t\tborder-color: var(--color-background-disable);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.secondary-danger {\n\t\tbackground: transparent;\n\t\tborder: 2px solid transparent;\n\t\tcolor: var(--color-background-danger-strong);\n\n\t\t.content {\n\t\t\tbackground: var(--color-background);\n\t\t\tborder-color: var(--color-background-danger-strong);\n\t\t}\n\n\t\t&:hover {\n\t\t\t&:not(:disabled) {\n\t\t\t\tcolor: var(--color-background-danger-strong-hover);\n\n\t\t\t\t.content {\n\t\t\t\t\tborder-color: var(--color-background-danger-strong-hover);\n\t\t\t\t\tbackground: var(--color-background-danger-weak);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&:focus-visible {\n\t\t\t\t.content {\n\t\t\t\t\tborder-color: var(--color-background-action-secondary);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbackground: var(--color-background);\n\t\t\tborder-color: var(--color-background-danger-strong);\n\n\t\t\t.content {\n\t\t\t\tcolor: var(--color-background-danger-strong-hover);\n\t\t\t\tborder-color: var(--color-background);\n\t\t\t\tbackground: var(--color-background-danger-weak);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: not-allowed;\n\t\t\tcolor: var(--color-background-disable);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background-disable);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.tertiary-danger {\n\t\tbackground: transparent;\n\t\tborder: 2px solid transparent;\n\t\tcolor: var(--color-background-danger-strong);\n\n\t\t.content {\n\t\t\tbackground: var(--color-background);\n\t\t\tborder-color: transparent;\n\t\t}\n\n\t\t&:hover:not(:disabled) {\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background-danger-strong-hover);\n\t\t\t\tbackground: var(--color-background-danger-weak);\n\t\t\t}\n\n\t\t\t&:focus-visible {\n\t\t\t\tbackground: var(--color-background);\n\n\t\t\t\t.content {\n\t\t\t\t\tborder-color: var(--color-background);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbackground: var(--color-background);\n\t\t\tborder-color: var(--color-background-danger-strong);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background);\n\t\t\t\tbackground: var(--color-background-danger-weak);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: not-allowed;\n\t\t\tbackground: var(--color-background);\n\t\t\tcolor: var(--color-background-disable);\n\t\t}\n\t}\n\n\t&.primary-dark {\n\t\tborder: 2px solid transparent;\n\t\tcolor: var(--color-font-on-action);\n\n\t\t.content {\n\t\t\tbackground: var(--color-dark-buttons-primary);\n\t\t}\n\n\t\t&:hover:not(:disabled) {\n\t\t\t.content {\n\t\t\t\tbackground: var(--color-dark-buttons-primary-hover);\n\t\t\t}\n\t\t}\n\n\t\t&:active:not(:disabled) {\n\t\t\t.content {\n\t\t\t\tbackground: var(--color-dark-buttons-primary-hover);\n\t\t\t}\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbackground: var(--color-background-brand);\n\t\t\tborder-color: var(--color-dark-buttons-primary);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-font-on-action);\n\t\t\t\tborder-radius: calc(var(--exo-spacing-2x-small) / 2);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: not-allowed;\n\n\t\t\t.content {\n\t\t\t\tbackground: var(--color-background-action-inverse);\n\t\t\t\tcolor: var(--color-background-deselected);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.secondary-dark {\n\t\tbackground: transparent;\n\t\tborder: 2px solid transparent;\n\t\tcolor: var(--color-dark-buttons-primary-hover);\n\n\t\t.content {\n\t\t\tbackground: transparent;\n\t\t\tborder-color: var(--color-dark-buttons-primary-hover);\n\t\t}\n\n\t\t&:hover:not(:disabled) {\n\t\t\t.content {\n\t\t\t\tbackground: var(--color-dark-buttons-secondary-background);\n\t\t\t\tborder-color: var(--color-dark-buttons-secondary-hover);\n\t\t\t\tcolor: var(--color-dark-buttons-secondary-hover);\n\t\t\t}\n\t\t}\n\n\t\t&:active:not(:disabled) {\n\t\t\t.content {\n\t\t\t\tbackground: transparent;\n\t\t\t\tborder-color: var(--color-dark-buttons-secondary-hover);\n\t\t\t\tcolor: var(--color-dark-buttons-secondary-hover);\n\t\t\t}\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbackground: transparent;\n\t\t\tborder-color: var(--color-dark-buttons-secondary-hover);\n\n\t\t\t.content {\n\t\t\t\tborder-color: transparent;\n\t\t\t\tbackground: var(--color-dark-buttons-secondary-background);\n\t\t\t\tcolor: var(--color-dark-buttons-secondary-hover);\n\t\t\t\tborder-radius: calc(var(--exo-spacing-2x-small) / 2);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: not-allowed;\n\t\t\tcolor: var(--color-background-deselected);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background-deselected);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.secondary-light-dark {\n\t\tbackground: transparent;\n\t\tborder: 2px solid transparent;\n\t\tcolor: var(--color-dark-buttons-secondary-light);\n\n\t\t.content {\n\t\t\tbackground: transparent;\n\t\t\tborder-color: var(--color-dark-buttons-secondary-light);\n\t\t}\n\n\t\t&:hover:not(:disabled) {\n\t\t\t.content {\n\t\t\t\tbackground: var(--color-dark-buttons-secondary-light-hover-background);\n\t\t\t\tborder-color: var(--color-border);\n\t\t\t\tcolor: var(--color-dark-buttons-tertiary);\n\t\t\t}\n\t\t}\n\n\t\t&:active:not(:disabled) {\n\t\t\t.content {\n\t\t\t\tbackground: transparent;\n\t\t\t\tborder-color: var(--color-background-secondary);\n\t\t\t\tcolor: var(--color-font-on-action);\n\t\t\t}\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbackground: transparent;\n\t\t\tborder-color: var(--color-dark-buttons-tertiary);\n\t\t\tborder-radius: var(--spacing-2xs);\n\n\t\t\t.content {\n\t\t\t\tbackground: var(--Dark-Buttons-secondary-light-hover-background);\n\t\t\t\tcolor: var(--color-dark-buttons-tertiary);\n\t\t\t\tborder-radius: var(--exo-spacing-2x-small);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: not-allowed;\n\t\t\tcolor: var(--color-background-deselected);\n\n\t\t\t.content {\n\t\t\t\tborder-color: var(--color-background-deselected);\n\t\t\t}\n\t\t}\n\t}\n\n\t&.tertiary-dark {\n\t\tbackground: transparent;\n\t\tborder: 2px solid transparent;\n\t\tcolor: var(--color-dark-buttons-tertiary);\n\n\t\t.content {\n\t\t\tbackground: transparent;\n\t\t\tborder-color: transparent;\n\t\t}\n\n\t\t&:hover:not(:disabled) {\n\t\t\t.content {\n\t\t\t\tbackground: var(--color-dark-buttons-secondary-light-hover-background);\n\t\t\t\tborder-color: var(--color-border);\n\t\t\t\tcolor: var(--color-dark-buttons-tertiary);\n\t\t\t}\n\t\t}\n\n\t\t&:active:not(:disabled) {\n\t\t\t.content {\n\t\t\t\tbackground: transparent;\n\t\t\t\tborder-color: var(--color-background-secondary);\n\t\t\t\tcolor: var(--color-font-on-action);\n\t\t\t}\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\tbackground: transparent;\n\t\t\tborder-color: var(--color-dark-buttons-tertiary);\n\t\t\tborder-radius: var(--spacing-2xs);\n\n\t\t\t.content {\n\t\t\t\tbackground: var(--Dark-Buttons-secondary-light-hover-background);\n\t\t\t\tcolor: var(--color-dark-buttons-tertiary);\n\t\t\t\tborder-radius: var(--exo-spacing-2x-small);\n\t\t\t}\n\t\t}\n\n\t\t&:disabled {\n\t\t\tcursor: not-allowed;\n\t\t\tcolor: var(--color-background-deselected);\n\t\t}\n\t}\n}\n","import classNames from 'classnames';\nimport type React from 'react';\nimport { Children, isValidElement } from 'react';\nimport styles from './ds-button-new.module.scss';\nimport type { DsButtonProps } from './ds-button-new.types';\nimport DsIcon from '../../../ds-icon/ds-icon';\n\nconst isIconOnly = (children: React.ReactNode) => {\n\tif (Children.count(children) !== 1) {\n\t\treturn false;\n\t}\n\n\tconst childArray = Children.toArray(children);\n\tconst onlyChild = childArray[0];\n\n\treturn isValidElement(onlyChild) && onlyChild.type === DsIcon;\n};\n\n/**\n * Design system Button component\n */\nconst DsButton: React.FC<DsButtonProps> = ({\n\tbuttonType,\n\tvariant = 'filled',\n\tsize = 'medium',\n\tdisabled = false,\n\tclassName,\n\tcontentClassName,\n\tchildren,\n\t...props\n}) => {\n\tconst type = buttonType ?? (variant === 'ghost' ? 'secondary' : 'primary');\n\tconst buttonClass = classNames(\n\t\tstyles.button,\n\t\t{ [styles.iconButton]: isIconOnly(children) },\n\t\tstyles[`${type}-${variant}`],\n\t\tstyles[size],\n\t\t{ [styles.disabled]: disabled },\n\t\tclassName,\n\t);\n\n\treturn (\n\t\t<button type=\"button\" className={buttonClass} disabled={disabled} {...props}>\n\t\t\t<span className={classNames(styles.content, contentClassName)}>{children}</span>\n\t\t</button>\n\t);\n};\n\nexport default DsButton;\n","import { DsButtonLegacy } from './versions/ds-button-legacy';\nimport { DsButtonNew } from './versions/ds-button-new';\nimport type { DsButtonUnifiedProps } from './ds-button.types';\n\nconst DsButton = (props: DsButtonUnifiedProps) => {\n\tif (props.design === 'v1.2') {\n\t\treturn <DsButtonNew {...props} />;\n\t}\n\treturn <DsButtonLegacy {...props} />;\n};\n\nexport default DsButton;\n","@use '../../styles/typography';\n\n.container {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tpadding-right: 1px;\n\tborder: 1px solid transparent;\n\tborder-radius: 4px;\n\n\t&:has([data-disabled]) {\n\t\tcursor: not-allowed;\n\t\tpointer-events: none;\n\n\t\t.labelInfo {\n\t\t\tcolor: var(--color-font-disabled);\n\t\t}\n\t}\n\n\t&:has(.checkboxRoot:focus-visible) {\n\t\tborder-color: var(--color-background-selected);\n\t}\n\n\t&:has([data-state='unchecked']:focus-visible) {\n\t\tborder-color: var(--color-background-selected-hover);\n\t}\n}\n\n.checkboxRoot {\n\tall: unset;\n\tposition: relative;\n\tborder-radius: 2px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttransition: all 0.2s ease-in-out;\n\tcursor: pointer;\n\n\t&[data-disabled] {\n\t\tborder-color: var(--color-background-disable);\n\t\tpointer-events: none;\n\n\t\t&[data-state='unchecked'] {\n\t\t\t.checkboxWrapper {\n\t\t\t\tborder-color: var(--color-background-disable);\n\t\t\t}\n\t\t}\n\n\t\t&[data-state='checked'],\n\t\t&[data-state='indeterminate'] {\n\t\t\t.checkboxWrapper {\n\t\t\t\tborder-color: var(--color-background-disable);\n\t\t\t\tbackground-color: var(--color-background-disable);\n\t\t\t}\n\t\t}\n\t}\n\n\t&[data-state='checked'] {\n\t\t.checkboxWrapper {\n\t\t\tborder-color: var(--color-background-selected);\n\t\t\tbackground-color: var(--color-background-selected);\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground: var(--color-background-action-secondary-hover);\n\t\t}\n\t}\n\n\t&[data-state='unchecked'] {\n\t\t.checkboxWrapper {\n\t\t\tborder-color: var(--color-background-deselected);\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground: var(--color-background-action-hover-weak);\n\t\t}\n\t}\n\n\t&[data-state='indeterminate'] {\n\t\t.checkboxWrapper {\n\t\t\tborder-color: var(--color-background-selected);\n\t\t\tbackground-color: var(--color-background-selected);\n\t\t}\n\n\t\t&:hover {\n\t\t\tbackground: var(--color-background-action-secondary-hover);\n\t\t}\n\t}\n\n\t.checkboxWrapper {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\theight: 16px;\n\t\twidth: 16px;\n\t\tmargin: var(--spacing-4xs);\n\t\tborder: 2px solid transparent;\n\t\tborder-radius: 2px;\n\t}\n}\n\n.checkboxIndicator {\n\tflex: 1;\n\tcolor: white;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\tsvg {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n}\n\n.label {\n\t@include typography.body-sm-reg;\n\tcolor: var(--color-font-main);\n\tcursor: pointer;\n}\n\n.labelInfo {\n\t@include typography.body-xs-reg;\n\t@include typography.ellipsis;\n\tposition: absolute;\n\tcolor: var(--color-font-secondary);\n\tcursor: pointer;\n\twidth: 100%;\n}\n","import type React from 'react';\nimport { useId } from 'react';\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox';\nimport classNames from 'classnames';\nimport styles from './ds-checkbox.module.scss';\nimport type { DsCheckboxProps } from './ds-checkbox.types';\nimport { DsIcon } from '../ds-icon';\n\n/**\n * Design system Checkbox component\n */\nconst DsCheckbox: React.FC<DsCheckboxProps> = ({\n\tid,\n\tlabel,\n\tlabelInfo,\n\tclassName,\n\tchecked,\n\tdefaultChecked,\n\tonCheckedChange,\n\t...props\n}) => {\n\tconst generatedId = useId();\n\tconst checkboxId = id || generatedId;\n\n\treturn (\n\t\t<div className={classNames(styles.container, className)}>\n\t\t\t<CheckboxPrimitive.Root\n\t\t\t\tclassName={styles.checkboxRoot}\n\t\t\t\tid={checkboxId}\n\t\t\t\tchecked={checked}\n\t\t\t\tdefaultChecked={defaultChecked}\n\t\t\t\tonCheckedChange={onCheckedChange}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div className={styles.checkboxWrapper}>\n\t\t\t\t\t<CheckboxPrimitive.Indicator className={styles.checkboxIndicator}>\n\t\t\t\t\t\t<DsIcon\n\t\t\t\t\t\t\ticon={checked === 'indeterminate' ? 'check_indeterminate_small' : 'check_small'}\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</CheckboxPrimitive.Indicator>\n\t\t\t\t</div>\n\t\t\t</CheckboxPrimitive.Root>\n\t\t\t{label && (\n\t\t\t\t<label className={styles.label} htmlFor={checkboxId}>\n\t\t\t\t\t{label}\n\t\t\t\t\t{labelInfo && <div className={styles.labelInfo}>{labelInfo}</div>}\n\t\t\t\t</label>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default DsCheckbox;\n","@use '../../styles/typography';\n\n.chip {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: var(--spacing-3xs);\n\tpadding: 1px var(--spacing-3xs) 1px var(--spacing-xs);\n\tbackground: var(--color-background);\n\tborder: 1px solid var(--color-border-contrast);\n\tborder-radius: 100vmax;\n\tcolor: var(--color-font-main);\n\tcursor: default;\n\toverflow: hidden;\n\ttransition:\n\t\tbackground-color 0.2s,\n\t\tborder-color 0.2s,\n\t\tcolor 0.2s;\n\n\t&.clickable {\n\t\tcursor: pointer;\n\n\t\t&:hover {\n\t\t\tbackground: var(--color-background-action-hover-weak);\n\t\t\tborder-color: var(--color-border-action-secondary-hover);\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\toutline: 2px solid var(--color-background-selected);\n\t\t\toutline-offset: 2px;\n\t\t}\n\t}\n\n\t&.small {\n\t\tpadding: 0 var(--spacing-4xs) 0 var(--spacing-3xs);\n\t\tgap: var(--spacing-4xs);\n\t}\n\n\t&[aria-pressed='true'] {\n\t\tbackground: var(--color-background-selected-weak);\n\t\tborder-color: var(--color-border-action-primary);\n\t\tcolor: var(--color-font-action);\n\t}\n}\n\n.label {\n\t@include typography.ellipsis;\n\tpadding: var(--spacing-4xs) var(--spacing-3xs);\n\tflex: 1;\n}\n\n.deleteButton {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder: none;\n\tbackground: transparent;\n\tcolor: var(--color-icon-information-main);\n\tcursor: pointer;\n\ttransition:\n\t\tbackground-color 0.2s,\n\t\tcolor 0.2s;\n\tflex-shrink: 0;\n\n\t&:hover {\n\t\tcolor: var(--color-icon-secondary);\n\t}\n\n\t.chip.small & {\n\t\tpadding: 1px var(--spacing-4xs);\n\t}\n}\n","import type React from 'react';\nimport classNames from 'classnames';\nimport styles from './ds-chip.module.scss';\nimport type { DsChipProps } from './ds-chip.types';\nimport { DsIcon } from '../ds-icon';\nimport { DsTypography } from '../ds-typography';\n\n/**\n * Design system Chip component\n */\nconst DsChip: React.FC<DsChipProps> = ({\n\tref,\n\tlabel,\n\tclassName,\n\tstyle = {},\n\tonClick,\n\tonDelete,\n\tsize = 'medium',\n\tdeleteIcon,\n\tselected = false,\n}) => {\n\tconst chipClass = classNames(\n\t\tstyles.chip,\n\t\t{\n\t\t\t[styles.clickable]: onClick !== undefined,\n\t\t\t[styles.small]: size === 'small',\n\t\t},\n\t\tclassName,\n\t);\n\n\tconst handleDeleteClick = (event: React.MouseEvent<HTMLElement>) => {\n\t\tevent.stopPropagation();\n\t\tonDelete?.(event);\n\t};\n\n\tconst handleKeyDown = (event: React.KeyboardEvent<HTMLElement>) => {\n\t\tif (onDelete && (event.key === 'Backspace' || event.key === 'Delete')) {\n\t\t\tevent.preventDefault();\n\t\t\tonDelete(event);\n\t\t}\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tref={ref as React.Ref<HTMLDivElement>}\n\t\t\tclassName={chipClass}\n\t\t\tstyle={style}\n\t\t\tonClick={onClick}\n\t\t\tonKeyDown={handleKeyDown}\n\t\t\trole={onClick || onDelete ? 'button' : undefined}\n\t\t\ttabIndex={onClick || onDelete ? 0 : undefined}\n\t\t\taria-label={label}\n\t\t\taria-pressed={onClick && selected ? 'true' : undefined}\n\t\t>\n\t\t\t<DsTypography variant={size === 'small' ? 'body-xs-reg' : 'body-sm-reg'} className={styles.label}>\n\t\t\t\t{label}\n\t\t\t</DsTypography>\n\t\t\t{onDelete && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName={styles.deleteButton}\n\t\t\t\t\tonClick={handleDeleteClick}\n\t\t\t\t\taria-label=\"Delete chip\"\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t>\n\t\t\t\t\t<DsIcon icon={deleteIcon || 'cancel'} size=\"tiny\" />\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default DsChip;\n",".container {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--spacing-standard);\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}\n\n.chipsWrapper {\n\tdisplay: flex;\n\tflex: 1;\n\tflex-wrap: wrap;\n\talign-items: center;\n\tgap: var(--spacing-xs);\n\tmax-height: var(--spacing-3xl);\n\toverflow: hidden;\n\n\t.hidden {\n\t\tvisibility: hidden;\n\t\tposition: absolute;\n\t\tpointer-events: none;\n\t}\n}\n\n.label {\n\tcolor: var(--color-font-secondary);\n\twhite-space: nowrap;\n}\n\n.expandChip {\n\tcursor: pointer;\n}\n\n.dialog {\n\tposition: fixed;\n\tbackground: var(--color-background);\n\tborder: 1px solid var(--color-border-secondary);\n\tborder-radius: var(--spacing-3xs);\n\tbox-shadow: 0 5px 15px 0 rgba(0, 0, 0, 0.15);\n\tpadding: var(--spacing-xs);\n\tmax-height: 80vh;\n\toverflow-y: auto;\n\tz-index: 1001;\n\tmin-width: 300px;\n\tmax-width: 500px;\n}\n\n.dialogContent {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 10px;\n}\n\n.itemCheckbox {\n\tdisplay: flex;\n\talign-items: center;\n}\n","import { type RefObject, useLayoutEffect, useState } from 'react';\n\ninterface UseChipRowCalculationProps {\n\tchipsWrapperRef: RefObject<HTMLDivElement | null>;\n\ttotalFilters: number;\n}\n\n/**\n * Custom hook to calculate how many chips can fit in 2 rows\n * Uses a simple approach: render all, measure positions, hide overflow\n */\nexport const useChipRowCalculation = ({ chipsWrapperRef, totalFilters }: UseChipRowCalculationProps) => {\n\tconst [visibleCount, setVisibleCount] = useState(totalFilters);\n\n\tuseLayoutEffect(() => {\n\t\tconst calculateVisibleChips = () => {\n\t\t\tif (!chipsWrapperRef.current) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst wrapper = chipsWrapperRef.current;\n\t\t\tconst children = Array.from(wrapper.children) as HTMLElement[];\n\n\t\t\tif (children.length === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst cs = getComputedStyle(wrapper);\n\t\t\tconst gap = parseFloat(cs.columnGap || cs.gap || '0') || 8;\n\t\t\tlet index;\n\t\t\tlet line = 0;\n\t\t\tlet total = 0;\n\n\t\t\tfor (index = 0; index < children.length; index++) {\n\t\t\t\tconst current = children[index];\n\t\t\t\tconst offset = current.offsetWidth === wrapper.clientWidth ? 0 : gap;\n\t\t\t\tconst next = offset + current.offsetWidth;\n\n\t\t\t\tif (total + next >= wrapper.clientWidth) {\n\t\t\t\t\tline++;\n\t\t\t\t\tif (line >= 2) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\ttotal = next;\n\t\t\t\t} else {\n\t\t\t\t\ttotal += next;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst result = Math.max(1, line < 2 ? index : index - 1);\n\t\t\tsetVisibleCount(result);\n\t\t};\n\n\t\t// Use requestAnimationFrame to ensure DOM is fully laid out\n\t\tconst rafId = requestAnimationFrame(() => {\n\t\t\tcalculateVisibleChips();\n\t\t});\n\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tcalculateVisibleChips();\n\t\t\t});\n\t\t});\n\n\t\tif (chipsWrapperRef.current) {\n\t\t\tresizeObserver.observe(chipsWrapperRef.current);\n\t\t}\n\n\t\treturn () => {\n\t\t\tcancelAnimationFrame(rafId);\n\t\t\tresizeObserver.disconnect();\n\t\t};\n\t}, [chipsWrapperRef, totalFilters]);\n\n\treturn visibleCount;\n};\n","import type React from 'react';\nimport { useRef, useState } from 'react';\nimport * as RadixDialog from '@radix-ui/react-dialog';\nimport { Root as VisuallyHidden } from '@radix-ui/react-visually-hidden';\nimport classNames from 'classnames';\nimport styles from './ds-chip-group.module.scss';\nimport type { DsChipGroupProps } from './ds-chip-group.types';\nimport { useChipRowCalculation } from './hooks/use-chip-row-calculation';\nimport { DsTypography } from '../ds-typography';\nimport DsChip from '../ds-chip/ds-chip';\nimport { DsCheckbox } from '../ds-checkbox';\nimport { DsButton } from '../ds-button';\nimport { DsIcon } from '../ds-icon';\n\n/**\n * Design system chip group component displays a collection of chips with overflow handling\n * Used for displaying filters, selected items, tags, etc.\n */\nconst DsChipGroup: React.FC<DsChipGroupProps> = ({\n\titems,\n\tlabel = 'Filtered by:',\n\tonClearAll,\n\tonItemDelete,\n\tonItemSelect,\n\tclassName,\n\tstyle,\n}) => {\n\tconst [dialogOpen, setDialogOpen] = useState(false);\n\tconst showAllChipsRef = useRef<HTMLDivElement>(null);\n\tconst chipsWrapperRef = useRef<HTMLDivElement>(null);\n\tconst visibleCount = useChipRowCalculation({\n\t\tchipsWrapperRef,\n\t\ttotalFilters: items.length,\n\t});\n\n\tif (items.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst hiddenCount = items.length - visibleCount;\n\tconst showExpandButton = hiddenCount > 0;\n\n\tconst handleOpenDialog = () => {\n\t\tsetDialogOpen(true);\n\t};\n\n\tlet dialogStyle: React.CSSProperties = {};\n\tif (showExpandButton && showAllChipsRef.current) {\n\t\tconst rect = showAllChipsRef.current.getBoundingClientRect();\n\t\tdialogStyle = {\n\t\t\tposition: 'fixed',\n\t\t\ttop: rect.bottom + 4,\n\t\t\tleft: rect.left,\n\t\t};\n\t}\n\n\treturn (\n\t\t<div className={classNames(styles.container, className)} style={style}>\n\t\t\t{label && (\n\t\t\t\t<DsTypography variant=\"body-sm-reg\" className={styles.label}>\n\t\t\t\t\t{label}\n\t\t\t\t</DsTypography>\n\t\t\t)}\n\n\t\t\t<div ref={chipsWrapperRef} className={styles.chipsWrapper}>\n\t\t\t\t{items.map((item, index) => (\n\t\t\t\t\t<DsChip\n\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\tlabel={item.label}\n\t\t\t\t\t\tselected={item.selected}\n\t\t\t\t\t\tonClick={() => onItemSelect?.(item)}\n\t\t\t\t\t\tonDelete={() => onItemDelete?.(item)}\n\t\t\t\t\t\tclassName={classNames({\n\t\t\t\t\t\t\t[styles.hidden]: index >= visibleCount,\n\t\t\t\t\t\t})}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t\t{showExpandButton && (\n\t\t\t\t\t<DsChip\n\t\t\t\t\t\tref={showAllChipsRef}\n\t\t\t\t\t\tlabel={`+${String(hiddenCount)} ${hiddenCount === 1 ? 'item' : 'items'} show all`}\n\t\t\t\t\t\tonClick={handleOpenDialog}\n\t\t\t\t\t\tclassName={styles.expandChip}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{onClearAll && (\n\t\t\t\t<DsButton design=\"v1.2\" buttonType=\"tertiary\" variant=\"ghost\" size=\"small\" onClick={onClearAll}>\n\t\t\t\t\t<DsIcon icon=\"close\" />\n\t\t\t\t\tClear all\n\t\t\t\t</DsButton>\n\t\t\t)}\n\n\t\t\t<RadixDialog.Root open={dialogOpen} onOpenChange={setDialogOpen}>\n\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t<RadixDialog.Title />\n\t\t\t\t</VisuallyHidden>\n\t\t\t\t<RadixDialog.Portal>\n\t\t\t\t\t<RadixDialog.Content style={dialogStyle} className={styles.dialog}>\n\t\t\t\t\t\t<div className={styles.dialogContent}>\n\t\t\t\t\t\t\t{items\n\t\t\t\t\t\t\t\t.filter((item, index) => index >= visibleCount)\n\t\t\t\t\t\t\t\t.map((item) => (\n\t\t\t\t\t\t\t\t\t<div key={item.id} className={styles.itemCheckbox}>\n\t\t\t\t\t\t\t\t\t\t<DsCheckbox\n\t\t\t\t\t\t\t\t\t\t\tid={`chip-${item.id}`}\n\t\t\t\t\t\t\t\t\t\t\tchecked={item.selected}\n\t\t\t\t\t\t\t\t\t\t\tonCheckedChange={() => onItemSelect?.(item)}\n\t\t\t\t\t\t\t\t\t\t\tlabel={item.label}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</RadixDialog.Content>\n\t\t\t\t</RadixDialog.Portal>\n\t\t\t</RadixDialog.Root>\n\t\t</div>\n\t);\n};\n\nexport default DsChipGroup;\n","@use '../../styles/typography';\n@use '../../styles/shared/modal' as shared;\n\n$max-width: 400px;\n$min-height: 188px;\n$max-height: 244px;\n\n.overlay {\n\t@include shared.overlay-base;\n}\n\n.modal {\n\t@include shared.modal-base;\n\tinline-size: $max-width;\n}\n\n.content {\n\t@include shared.content-base;\n\tmin-block-size: $min-height;\n\tmax-block-size: $max-height;\n\tpadding: var(--spacing-md) var(--spacing-lg);\n\tgap: var(--spacing-standard);\n}\n\n.header {\n\t@include shared.header-base;\n\tgap: var(--spacing-xs);\n\tpadding-bottom: var(--spacing-xs);\n}\n\n.footer {\n\t@include shared.footer-base(false);\n\tdisplay: flex;\n\n\t.actions {\n\t\t@include shared.actions-base;\n\t\tflex-grow: 1;\n\t}\n}\n\n.title {\n\t@include shared.title-base;\n\tflex-grow: 1;\n}\n\n.icon {\n\tflex-shrink: 0;\n}\n\n.body {\n\t@include shared.body-base;\n\t@include typography.body-sm-reg;\n\tcolor: var(--color-font-main);\n}\n\n.cancel {\n\tmargin-right: auto;\n}\n","import type { CSSProperties, ReactNode } from 'react';\nimport { Dialog } from '@ark-ui/react/dialog';\nimport { Portal } from '@ark-ui/react/portal';\nimport classNames from 'classnames';\nimport { DsIcon } from '../ds-icon';\nimport type { DsConfirmationProps } from './ds-confirmation.types';\nimport styles from './ds-confirmation.module.scss';\nimport DsTypography from '../ds-typography/ds-typography';\n\n/**\n * Composable confirmation modal dialog.\n */\nexport const DsConfirmation = ({ open, onOpenChange, style, className, children }: DsConfirmationProps) => {\n\tconst handleOpenChange = (details: { open: boolean }) => {\n\t\tonOpenChange(details.open);\n\t};\n\n\treturn (\n\t\t<Dialog.Root\n\t\t\topen={open}\n\t\t\tonOpenChange={handleOpenChange}\n\t\t\tmodal={true}\n\t\t\tcloseOnEscape={true}\n\t\t\tcloseOnInteractOutside={true}\n\t\t>\n\t\t\t<Portal>\n\t\t\t\t<Dialog.Backdrop className={styles.overlay} />\n\t\t\t\t<Dialog.Positioner>\n\t\t\t\t\t<Dialog.Content className={classNames(styles.modal, className)}>\n\t\t\t\t\t\t<div style={style} className={styles.content}>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Dialog.Content>\n\t\t\t\t</Dialog.Positioner>\n\t\t\t</Portal>\n\t\t</Dialog.Root>\n\t);\n};\n\nconst Header = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.header, className)}>\n\t\t{children}\n\t</div>\n);\n\nconst Title = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<Dialog.Title className={classNames(styles.title, className)} style={style} asChild>\n\t\t<DsTypography variant=\"heading4\">{children}</DsTypography>\n\t</Dialog.Title>\n);\n\nconst CloseTrigger = ({ style, className }: { style?: CSSProperties; className?: string }) => (\n\t<Dialog.CloseTrigger style={style} className={className}>\n\t\t<DsIcon icon=\"close\" size=\"small\"></DsIcon>\n\t</Dialog.CloseTrigger>\n);\n\nconst Body = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.body, className)}>\n\t\t{children}\n\t</div>\n);\n\nconst Footer = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.footer, className)}>\n\t\t{children}\n\t</div>\n);\n\nconst Actions = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.actions, className)}>\n\t\t{children}\n\t</div>\n);\n\nDsConfirmation.Header = Header;\nDsConfirmation.Title = Title;\nDsConfirmation.CloseTrigger = CloseTrigger;\nDsConfirmation.Body = Body;\nDsConfirmation.Footer = Footer;\nDsConfirmation.Actions = Actions;\n","@use '../../styles/typography';\n@use '../../styles/mixins/bounding-box';\n\n.overlay {\n\tposition: fixed;\n\tinset: 0;\n\tbackground: rgba(0, 0, 0, 0.32);\n\tz-index: 1199;\n}\n\n.dialog {\n\t@include bounding-box.bounding-box-vars;\n\n\t--_shadow-size: 18px;\n\t--_shadow-y-offset: 6px;\n\n\tbackground: var(--white, #fff);\n\tborder-radius: 8px;\n\tbox-shadow: 0 var(--_shadow-y-offset) var(--_shadow-size) 0 rgba(4, 69, 204, 0.3);\n\tpadding: 12px;\n\tmin-width: 320px;\n\tmin-height: 120px;\n\tz-index: 1200;\n\tposition: fixed;\n\ttop: 50%;\n\tleft: 50%;\n\ttransform: translate(-50%, -50%);\n\tmax-width: 90vw;\n\tmax-height: 90vh;\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.title {\n\t@include typography.p-base;\n\t@include typography.medium;\n\tcolor: var(--neutral-1);\n}\n\n.description {\n\t@include typography.p-base;\n\tcolor: var(--neutral-3);\n\tmargin-bottom: 16px;\n}\n\n.customPlacement {\n\ttransform: none !important;\n\tmax-width: none;\n\tmax-height: none;\n}\n","import type React from 'react';\nimport * as RadixDialog from '@radix-ui/react-dialog';\nimport { Root as VisuallyHidden } from '@radix-ui/react-visually-hidden';\nimport classNames from 'classnames';\nimport styles from './ds-dialog.module.scss';\nimport type { DsDialogProps } from './ds-dialog.types';\n\nconst DsDialog: React.FC<DsDialogProps> = ({\n\topen,\n\tonOpenChange,\n\ttitle,\n\thideTitle,\n\tdescription,\n\thideDescription,\n\tchildren,\n\tclassName,\n\tanchorRef,\n\tcustomPosition,\n\tmodal = true,\n}) => {\n\tlet style: React.CSSProperties = {};\n\tif (customPosition) {\n\t\tstyle = { position: 'fixed', ...customPosition };\n\t} else if (anchorRef?.current) {\n\t\tconst rect = anchorRef.current.getBoundingClientRect();\n\t\tstyle = { position: 'fixed', top: rect.bottom, left: rect.left };\n\t}\n\n\treturn (\n\t\t<RadixDialog.Root open={open} onOpenChange={onOpenChange}>\n\t\t\t<RadixDialog.Portal>\n\t\t\t\t{modal && <RadixDialog.Overlay className={styles.overlay} />}\n\t\t\t\t<RadixDialog.Content\n\t\t\t\t\tclassName={classNames(styles.dialog, className, {\n\t\t\t\t\t\t[styles.customPlacement]: customPosition || anchorRef,\n\t\t\t\t\t})}\n\t\t\t\t\tstyle={customPosition || anchorRef ? style : undefined}\n\t\t\t\t>\n\t\t\t\t\t<RadixDialog.Title asChild>\n\t\t\t\t\t\t{hideTitle ? (\n\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t<RadixDialog.Title className={styles.title}>{title}</RadixDialog.Title>\n\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<RadixDialog.Title className={styles.title}>{title}</RadixDialog.Title>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</RadixDialog.Title>\n\t\t\t\t\t{description && (\n\t\t\t\t\t\t<RadixDialog.Description asChild>\n\t\t\t\t\t\t\t{hideDescription ? (\n\t\t\t\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t\t\t\t<RadixDialog.Description className={styles.description}>\n\t\t\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t\t\t</RadixDialog.Description>\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<RadixDialog.Description className={styles.description}>\n\t\t\t\t\t\t\t\t\t{description}\n\t\t\t\t\t\t\t\t</RadixDialog.Description>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</RadixDialog.Description>\n\t\t\t\t\t)}\n\t\t\t\t\t{children}\n\t\t\t\t</RadixDialog.Content>\n\t\t\t</RadixDialog.Portal>\n\t\t</RadixDialog.Root>\n\t);\n};\n\nexport default DsDialog;\n","@use '../../styles/grid';\n\n.backdrop {\n\tposition: absolute;\n\tinset: 0;\n\tbackground: var(--Background-background-overlay, rgba(0, 26, 71, 0.2));\n\tz-index: 1000;\n\n\t&[data-state='open'] {\n\t\tanimation: 0.3s fade-in-backdrop ease-in-out both;\n\t}\n\n\t&[data-state='closed'] {\n\t\tanimation: 0.2s fade-out-backdrop ease-in-out both;\n\t}\n}\n\n@keyframes fade-in-backdrop {\n\t0% {\n\t\topacity: 0;\n\t}\n\n\t100% {\n\t\topacity: 1;\n\t}\n}\n\n@keyframes fade-out-backdrop {\n\t0% {\n\t\topacity: 1;\n\t}\n\n\t100% {\n\t\topacity: 0;\n\t}\n}\n\n.positioner {\n\tposition: absolute;\n\tinset: 0;\n\toverflow: hidden;\n\tpointer-events: none;\n}\n\n.drawer {\n\tposition: absolute;\n\tdisplay: block;\n\ttop: 0;\n\tbottom: 0;\n\tbackground: var(--color-background);\n\tbox-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.22);\n\tz-index: 1200;\n\tpointer-events: auto;\n\toverflow: hidden;\n\ttransition:\n\t\ttransform 0.2s ease,\n\t\twidth 0.2s ease;\n\n\t&.position-end {\n\t\tright: 0;\n\t\ttransform-origin: 100% 50%;\n\t\ttransform: translateX(100%);\n\n\t\t&[data-state='open'] {\n\t\t\tanimation: 0.5s slide-in-drawer-end ease-out both;\n\t\t}\n\n\t\t&[data-state='closed'] {\n\t\t\tanimation: 0.25s slide-out-drawer-end both;\n\t\t}\n\t}\n\n\t&.position-start {\n\t\tleft: 0;\n\t\ttransform: translateX(-100%);\n\t\ttransform-origin: 0 50%;\n\n\t\t&[data-state='open'] {\n\t\t\tanimation: 0.5s slide-in-drawer-start ease-out both;\n\t\t}\n\n\t\t&[data-state='closed'] {\n\t\t\tanimation: 0.25s slide-out-drawer-start both;\n\t\t}\n\t}\n\n\t@for $i from 1 through grid.$columns {\n\t\t&.cols-#{$i} {\n\t\t\twidth: var(--col-span-#{$i});\n\t\t}\n\t}\n}\n\n@keyframes slide-in-drawer-end {\n\t0% {\n\t\topacity: 0;\n\t\ttransform: translateX(100%);\n\t}\n\n\t50% {\n\t\topacity: 1;\n\t\ttransform: translateX(0);\n\t}\n\n\t100% {\n\t\ttransform: translateX(0);\n\t}\n}\n\n@keyframes slide-out-drawer-end {\n\t0% {\n\t\topacity: 1;\n\t\ttransform: translateX(0);\n\t}\n\n\t40% {\n\t\ttransform: translateX(0);\n\t}\n\n\t100% {\n\t\topacity: 0;\n\t\ttransform: translateX(100%);\n\t}\n}\n\n@keyframes slide-in-drawer-start {\n\t0% {\n\t\topacity: 0;\n\t\ttransform: translateX(-100%);\n\t}\n\n\t50% {\n\t\topacity: 1;\n\t\ttransform: translateX(0);\n\t}\n\n\t100% {\n\t\ttransform: translateX(0);\n\t}\n}\n\n@keyframes slide-out-drawer-start {\n\t0% {\n\t\topacity: 1;\n\t\ttransform: translateX(0);\n\t}\n\n\t40% {\n\t\ttransform: translateX(0);\n\t}\n\n\t100% {\n\t\topacity: 0;\n\t\ttransform: translateX(-100%);\n\t}\n}\n\n.content {\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\toverflow: hidden;\n}\n\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tflex-wrap: wrap;\n\tborder-bottom: 1px solid var(--color-border);\n\tpadding: var(--spacing-sm) var(--spacing-standard);\n\tgap: var(--spacing-3xs);\n}\n\n.title {\n\tmargin: 0;\n\tcolor: var(--color-font-main);\n}\n\n.closeTrigger {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcolor: var(--color-icon-secondary);\n}\n\n.toolbar {\n\tdisplay: flex;\n\talign-items: center;\n\tborder-bottom: 1px solid var(--color-border);\n\tpadding: var(--spacing-sm) var(--spacing-standard);\n\tgap: var(--spacing-3xs);\n}\n\n.body {\n\tflex: 1;\n\toverflow: auto;\n}\n\n.footer {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: var(--spacing-standard);\n\tborder-top: 1px solid var(--color-border);\n}\n\n.actions {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--spacing-xs);\n\tmargin-left: auto;\n}\n","import { type CSSProperties, type ReactNode, Fragment } from 'react';\nimport { Dialog } from '@ark-ui/react/dialog';\nimport { Portal } from '@ark-ui/react/portal';\nimport classNames from 'classnames';\nimport type { DsDrawerProps } from './ds-drawer.types';\nimport styles from './ds-drawer.module.scss';\nimport { DsIcon } from '../ds-icon';\nimport { DsTypography } from '../ds-typography';\n\n/**\n * Composable drawer component.\n * Supports grid-based sizing, flexible positioning, and compound components.\n * Use columns prop to control drawer width (1-12 grid columns).\n */\nconst DsDrawer = ({\n\topen,\n\tonOpenChange,\n\tcolumns = 4,\n\tposition = 'end',\n\tbackdrop = false,\n\tcloseOnEscape = true,\n\tcloseOnInteractOutside = false,\n\tportal = false,\n\tstyle,\n\tclassName,\n\tchildren,\n}: DsDrawerProps) => {\n\tconst handleOpenChange = (details: { open: boolean }) => {\n\t\tonOpenChange(details.open);\n\t};\n\tconst Wrapper = portal ? Portal : Fragment;\n\n\treturn (\n\t\t<Dialog.Root\n\t\t\topen={open}\n\t\t\tonOpenChange={handleOpenChange}\n\t\t\tmodal={backdrop}\n\t\t\tcloseOnEscape={closeOnEscape}\n\t\t\tcloseOnInteractOutside={closeOnInteractOutside}\n\t\t\tpreventScroll={backdrop}\n\t\t>\n\t\t\t<Wrapper>\n\t\t\t\t{backdrop && <Dialog.Backdrop className={styles.backdrop} />}\n\t\t\t\t<Dialog.Positioner className={styles.positioner}>\n\t\t\t\t\t<Dialog.Content\n\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\tclassName={classNames(\n\t\t\t\t\t\t\tstyles.drawer,\n\t\t\t\t\t\t\tstyles[`cols-${String(columns)}`],\n\t\t\t\t\t\t\tstyles[`position-${position}`],\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className={styles.content}>{children}</div>\n\t\t\t\t\t</Dialog.Content>\n\t\t\t\t</Dialog.Positioner>\n\t\t\t</Wrapper>\n\t\t</Dialog.Root>\n\t);\n};\n\nconst Header = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.header, className)}>\n\t\t{children}\n\t</div>\n);\n\nconst Title = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<Dialog.Title className={classNames(styles.title, className)} style={style} asChild>\n\t\t<DsTypography variant=\"heading3\">{children}</DsTypography>\n\t</Dialog.Title>\n);\n\nconst CloseTrigger = ({ style, className }: { style?: CSSProperties; className?: string }) => (\n\t<Dialog.CloseTrigger style={style} className={classNames(styles.closeTrigger, className)}>\n\t\t<DsIcon icon=\"close\" size=\"small\" />\n\t</Dialog.CloseTrigger>\n);\n\nconst Toolbar = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.toolbar, className)}>\n\t\t{children}\n\t</div>\n);\n\nconst Body = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.body, className)}>\n\t\t{children}\n\t</div>\n);\n\nconst Footer = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.footer, className)}>\n\t\t{children}\n\t</div>\n);\n\nconst Actions = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.actions, className)}>\n\t\t{children}\n\t</div>\n);\n\nDsDrawer.Header = Header;\nDsDrawer.Title = Title;\nDsDrawer.CloseTrigger = CloseTrigger;\nDsDrawer.Toolbar = Toolbar;\nDsDrawer.Body = Body;\nDsDrawer.Footer = Footer;\nDsDrawer.Actions = Actions;\n\nexport default DsDrawer;\n",".expandableInput {\n\twidth: max-content;\n\ttransition: 0.3s padding;\n\n\t&:not(.expanded) {\n\t\tgap: 0;\n\t\tpadding-inline: var(--spacing-xs);\n\t}\n\n\t.trigger:focus {\n\t\toutline: none;\n\t}\n\n\t// Increase the clickable area of the start adornment.\n\t.trigger::before {\n\t\tcontent: '';\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\tcursor: pointer;\n\t}\n\n\t&:has(:disabled) .trigger::before {\n\t\tcursor: not-allowed;\n\t}\n\n\t&.expanded .trigger {\n\t\tpointer-events: none;\n\n\t\t&::before {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t.clearTrigger {\n\t\ttransition: 0.3s opacity;\n\t}\n\n\t&:not(.expanded) .clearTrigger {\n\t\tdisplay: none;\n\t}\n\n\t&:not(.dirty) .clearTrigger {\n\t\topacity: 0;\n\t\tpointer-events: none;\n\t}\n\n\t// See: https://css-tricks.com/css-grid-can-do-auto-height-transitions/\n\t.inputExpander {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: 0fr;\n\t\toverflow: hidden;\n\t\ttransition: 0.3s grid-template-columns;\n\n\t\tinput {\n\t\t\tmin-width: 0;\n\t\t\topacity: 0;\n\t\t\ttransition: 0.15s opacity;\n\t\t}\n\t}\n\n\t&.expanded .inputExpander {\n\t\tgrid-template-columns: 1fr;\n\n\t\tinput {\n\t\t\topacity: 1;\n\t\t\ttransition: 0.3s opacity 0.15s;\n\t\t}\n\t}\n}\n","import type { Ref, RefCallback } from 'react';\n\nexport const mergeRefs = <T>(...refs: Array<Ref<T> | undefined>): RefCallback<T> => {\n\treturn (value) => {\n\t\trefs\n\t\t\t.filter((r) => !!r)\n\t\t\t.forEach((ref) => {\n\t\t\t\tif (typeof ref === 'function') {\n\t\t\t\t\tref(value);\n\t\t\t\t} else {\n\t\t\t\t\tref.current = value;\n\t\t\t\t}\n\t\t\t});\n\t};\n};\n","import { type ReactNode, useRef, useState } from 'react';\nimport { DsTextInput } from '../ds-text-input';\nimport { DsIcon } from '../ds-icon';\nimport classNames from 'classnames';\nimport styles from './ds-expandable-text-input.module.scss';\nimport { mergeRefs } from '../ds-table/utils/merge-refs';\nimport type { DsExpandableTextInputProps } from './ds-expandable-text-input.types';\nimport { DsButton } from '../ds-button';\n\nexport function DsExpandableTextInput({\n\tonClear,\n\tonExpandChange,\n\ticon,\n\t...props\n}: DsExpandableTextInputProps) {\n\tconst [expanded, _setExpanded] = useState(false);\n\tconst [dirty, setDirty] = useState(false);\n\tconst ref = useRef<HTMLInputElement>(null);\n\n\tconst setExpanded = (newExpanded: boolean) => {\n\t\t_setExpanded(newExpanded);\n\n\t\tonExpandChange?.(newExpanded);\n\n\t\tif (!newExpanded) {\n\t\t\tsetDirty(false);\n\t\t}\n\t};\n\n\treturn (\n\t\t<DsTextInput\n\t\t\t{...props}\n\t\t\tref={mergeRefs(ref, props.ref)}\n\t\t\ttabIndex={expanded ? 0 : -1}\n\t\t\tclassName={classNames(\n\t\t\t\tprops.className,\n\t\t\t\tstyles.expandableInput,\n\t\t\t\texpanded && styles.expanded,\n\t\t\t\tdirty && styles.dirty,\n\t\t\t)}\n\t\t\tonChange={(e) => {\n\t\t\t\tprops.onChange?.(e);\n\n\t\t\t\tsetDirty(true);\n\t\t\t}}\n\t\t\tonBlur={(e) => {\n\t\t\t\tprops.onBlur?.(e);\n\n\t\t\t\tif (!dirty && !ref.current?.value) {\n\t\t\t\t\tsetExpanded(false);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tslots={{\n\t\t\t\tinputWrapper: InputExpander,\n\t\t\t\tstartAdornment: (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={styles.trigger}\n\t\t\t\t\t\taria-label=\"Open text input\"\n\t\t\t\t\t\taria-hidden={expanded}\n\t\t\t\t\t\ttabIndex={expanded ? -1 : 0}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tif (props.disabled) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsetExpanded(true);\n\n\t\t\t\t\t\t\tref.current?.focus();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DsIcon icon={icon} size=\"small\" />\n\t\t\t\t\t</button>\n\t\t\t\t),\n\n\t\t\t\tendAdornment: (\n\t\t\t\t\t<DsButton\n\t\t\t\t\t\tdesign=\"v1.2\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\tbuttonType=\"tertiary\"\n\t\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\t\tclassName={styles.clearTrigger}\n\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\tsetExpanded(false);\n\n\t\t\t\t\t\t\tif (ref.current) {\n\t\t\t\t\t\t\t\tref.current.blur();\n\n\t\t\t\t\t\t\t\t// Manually clear the input in uncontrolled mode.\n\t\t\t\t\t\t\t\tref.current.value = '';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tonClear?.();\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tClear\n\t\t\t\t\t</DsButton>\n\t\t\t\t),\n\t\t\t}}\n\t\t/>\n\t);\n}\n\nfunction InputExpander({ children }: { children: ReactNode }) {\n\treturn <div className={styles.inputExpander}>{children}</div>;\n}\n","@use '../../styles/typography';\n\n.tooltip {\n\tcolor: var(--color-font-on-action);\n\tbackground-color: var(--color-background-brand);\n\tpadding: var(--spacing-xs) var(--spacing-sm);\n\tborder-radius: var(--exo-spacing-2x-small);\n\t// approx. 6 grid columns\n\tmax-width: 384px;\n\tz-index: 9999;\n\n\t.content {\n\t\t@include typography.line-clamp(3);\n\t}\n}\n\n.arrow {\n\tfill: var(--neutral-1);\n}\n","import { type FC, isValidElement } from 'react';\nimport * as Tooltip from '@radix-ui/react-tooltip';\nimport classNames from 'classnames';\nimport styles from './ds-tooltip.module.scss';\nimport type { DsTooltipProps } from './ds-tooltip.types';\nimport { DsTypography } from '../ds-typography';\n\nconst DsTooltip: FC<DsTooltipProps> = ({ content, children }) => {\n\tif (content === undefined) {\n\t\treturn children;\n\t}\n\treturn (\n\t\t<Tooltip.Provider delayDuration={200}>\n\t\t\t<Tooltip.Root>\n\t\t\t\t<Tooltip.Trigger asChild>{children}</Tooltip.Trigger>\n\t\t\t\t<Tooltip.Portal>\n\t\t\t\t\t<Tooltip.Content className={classNames(styles.tooltip)} side=\"top\" align=\"center\" sideOffset={4}>\n\t\t\t\t\t\t{isValidElement(content) ? (\n\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<DsTypography variant=\"body-xs-reg\" className={styles.content}>\n\t\t\t\t\t\t\t\t{content}\n\t\t\t\t\t\t\t</DsTypography>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Tooltip.Arrow className={styles.arrow} />\n\t\t\t\t\t</Tooltip.Content>\n\t\t\t\t</Tooltip.Portal>\n\t\t\t</Tooltip.Root>\n\t\t</Tooltip.Provider>\n\t);\n};\n\nexport default DsTooltip;\n","import type { FileError } from '../ds-file-upload-api.types';\n\nconst FILE_ERROR_MESSAGES: Record<FileError, string> = {\n\tFILE_TOO_LARGE: 'File size exceeds the maximum limit',\n\tFILE_INVALID_TYPE: 'File type is not allowed',\n\tTOO_MANY_FILES: 'Too many files selected',\n\tFILE_TOO_SMALL: 'File size is too small',\n\tFILE_INVALID: 'File is invalid',\n\tFILE_EXISTS: 'File already exists',\n};\n\n/**\n * Map FileUploadFileError to user-friendly error message\n */\nexport function getErrorMessage(error: FileError): string {\n\treturn FILE_ERROR_MESSAGES[error] || error || 'File validation failed';\n}\n","@use '../../../../styles/typography';\n\n.fileItem {\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t.fileItemContent {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: var(--spacing-2xs);\n\t\twidth: 100%;\n\t\tbackground-color: var(--color-background);\n\t\tpadding: var(--spacing-4xs) var(--exo-spacing-x-small);\n\t\tborder: 1px solid transparent;\n\t\tborder-radius: var(--exo-spacing-2x-small);\n\t\ttransition: all 0.2s ease;\n\n\t\t&:hover {\n\t\t\tborder-color: var(--color-border-secondary);\n\t\t}\n\n\t\t&[data-disabled] {\n\t\t\topacity: 0.5;\n\t\t}\n\n\t\t&.fileItemError {\n\t\t\tbackground-color: var(--color-background-danger-weak);\n\n\t\t\t.progressRange {\n\t\t\t\tbackground: var(--color-background-danger-strong);\n\t\t\t}\n\t\t}\n\n\t\t&.fileItemCompleted {\n\t\t\t.progressRange {\n\t\t\t\tbackground: var(--color-background-success-strong);\n\t\t\t}\n\t\t}\n\n\t\t&.fileItemUploading {\n\t\t\t.progressRange {\n\t\t\t\tbackground: var(--color-background-selected);\n\t\t\t}\n\t\t}\n\n\t\t&.fileItemInterrupted {\n\t\t\t.progressRange {\n\t\t\t\tbackground: var(--color-background-warning-strong);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.filePreview {\n\tcolor: var(--color-background-deselected);\n}\n\n.fileInfo {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--spacing-2xs);\n\tflex: 1;\n\tmin-width: 0;\n}\n\n.fileName {\n\t@include typography.body-sm-reg;\n\t@include typography.ellipsis;\n\tcolor: var(--color-font-main);\n\tflex: 1 0 75%;\n}\n\n.progressContainer {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--spacing-xs);\n\twidth: 100%;\n}\n\n.progressBar {\n\twidth: 100%;\n\theight: 2px;\n}\n\n.progressTrack {\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: var(--color-background-tertiary);\n\tborder-radius: var(--exo-spacing-2x-small);\n\toverflow: hidden;\n}\n\n.progressRange {\n\theight: 100%;\n\tbackground-color: var(--color-background-selected);\n\tborder-radius: 2px;\n\ttransition: width 0.3s ease;\n}\n\n@mixin infoText {\n\t@include typography.body-xs-reg;\n\tdisplay: flex;\n\tgap: var(--spacing-3xs);\n\tpadding: var(--spacing-3xs) var(--spacing-sm);\n}\n\n.progressText {\n\t@include infoText;\n\tcolor: var(--color-font-secondary);\n}\n\n.completedText {\n\t@include infoText;\n\tcolor: var(--color-background-success-strong);\n}\n\n.interruptedText {\n\t@include infoText;\n\tcolor: var(--color-font-warning);\n}\n\n.errorMessage {\n\t@include infoText;\n\tcolor: var(--color-background-danger-strong);\n}\n","import type React from 'react';\nimport classNames from 'classnames';\nimport { Progress } from '@ark-ui/react';\nimport { DsTooltip } from '../../../ds-tooltip';\nimport { DsButton } from '../../../ds-button';\nimport { DsIcon } from '../../../ds-icon';\nimport { getErrorMessage } from '../../utils/get-error-message';\nimport type { FileUploadItemProps } from './file-upload-item.types';\nimport styles from './file-upload-item.module.scss';\n\n/**\n * Individual file upload item component\n * Displays a single file with its upload status, progress, and action buttons\n */\nexport const FileUploadItem: React.FC<FileUploadItemProps> = ({\n\tid,\n\tname,\n\tprogress,\n\thideProgress = false,\n\tstatus,\n\terrors,\n\tonCancel,\n\tonRetry,\n\tonRemove,\n\tonDelete,\n}) => {\n\tconst fileItemClass = classNames(styles.fileItemContent, {\n\t\t[styles.fileItemError]: status === 'error',\n\t\t[styles.fileItemCompleted]: status === 'completed',\n\t\t[styles.fileItemUploading]: status === 'uploading',\n\t\t[styles.fileItemInterrupted]: status === 'interrupted' || status === 'cancelled',\n\t});\n\n\treturn (\n\t\t<div className={styles.fileItem}>\n\t\t\t<div className={fileItemClass}>\n\t\t\t\t<DsIcon className={styles.filePreview} icon=\"upload_file\" size=\"tiny\" />\n\n\t\t\t\t<div className={styles.fileInfo}>\n\t\t\t\t\t<div className={styles.fileName} title={name}>\n\t\t\t\t\t\t{name}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<Progress.Root value={status === 'error' ? 1 : progress} className={styles.progressBar}>\n\t\t\t\t\t\t<Progress.Track className={styles.progressTrack}>\n\t\t\t\t\t\t\t<Progress.Range className={styles.progressRange} />\n\t\t\t\t\t\t</Progress.Track>\n\t\t\t\t\t</Progress.Root>\n\t\t\t\t</div>\n\n\t\t\t\t{(status === 'interrupted' || status === 'cancelled') && onRetry && (\n\t\t\t\t\t<DsTooltip content=\"Retry\">\n\t\t\t\t\t\t<DsButton\n\t\t\t\t\t\t\ttype=\"button\"\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\taria-label={`Retry ${name} upload`}\n\t\t\t\t\t\t\tonClick={() => onRetry(id)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DsIcon icon=\"refresh\" size=\"small\" />\n\t\t\t\t\t\t</DsButton>\n\t\t\t\t\t</DsTooltip>\n\t\t\t\t)}\n\n\t\t\t\t{(status === 'pending' || status === 'error' || status === 'interrupted') && (\n\t\t\t\t\t<DsTooltip content=\"Remove\">\n\t\t\t\t\t\t<DsButton\n\t\t\t\t\t\t\ttype=\"button\"\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\taria-label={`Remove ${name} upload`}\n\t\t\t\t\t\t\tonClick={() => onRemove?.(id)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DsIcon icon=\"do_not_disturb_on\" size=\"small\" />\n\t\t\t\t\t\t</DsButton>\n\t\t\t\t\t</DsTooltip>\n\t\t\t\t)}\n\n\t\t\t\t{status === 'uploading' && onCancel && (\n\t\t\t\t\t<DsTooltip content=\"Cancel\">\n\t\t\t\t\t\t<DsButton\n\t\t\t\t\t\t\ttype=\"button\"\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\taria-label={`Cancel ${name} upload`}\n\t\t\t\t\t\t\tonClick={() => onCancel(id)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DsIcon icon=\"close\" size=\"small\" />\n\t\t\t\t\t\t</DsButton>\n\t\t\t\t\t</DsTooltip>\n\t\t\t\t)}\n\n\t\t\t\t{status === 'completed' && (\n\t\t\t\t\t<DsTooltip content=\"Delete\">\n\t\t\t\t\t\t<DsButton\n\t\t\t\t\t\t\ttype=\"button\"\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\taria-label={`Delete ${name}`}\n\t\t\t\t\t\t\tonClick={() => onDelete?.(id)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DsIcon icon=\"delete\" size=\"small\" />\n\t\t\t\t\t\t</DsButton>\n\t\t\t\t\t</DsTooltip>\n\t\t\t\t)}\n\t\t\t</div>\n\n\t\t\t{status === 'completed' && (\n\t\t\t\t<div className={styles.completedText}>\n\t\t\t\t\t<DsIcon icon=\"check_circle\" size=\"tiny\" filled />\n\t\t\t\t\tUpload complete\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{status === 'interrupted' && (\n\t\t\t\t<div className={styles.interruptedText}>\n\t\t\t\t\t<DsIcon icon=\"info\" size=\"tiny\" filled />\n\t\t\t\t\tUpload interrupted\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{status === 'cancelled' && (\n\t\t\t\t<div className={styles.interruptedText}>\n\t\t\t\t\t<DsIcon icon=\"info\" size=\"tiny\" filled />\n\t\t\t\t\tUpload cancelled\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{status === 'error' &&\n\t\t\t\terrors?.length &&\n\t\t\t\terrors.map((error) => (\n\t\t\t\t\t<div key={error} className={styles.errorMessage}>\n\t\t\t\t\t\t<DsIcon icon=\"cancel\" size=\"tiny\" filled />\n\t\t\t\t\t\t{getErrorMessage(error)}\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\n\t\t\t{!hideProgress && status === 'uploading' && (\n\t\t\t\t<span className={styles.progressText}>Uploading...({Math.round(progress)}%)</span>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import type { AcceptedFileType } from '../types/accept-types';\n\n/**\n * Default allowed file types for the file upload component\n */\nexport const DEFAULT_ALLOWED_FILE_TYPES: AcceptedFileType[] = [\n\t'application/pdf',\n\t'text/csv',\n\t'application/zip',\n\t'application/x-zip-compressed',\n];\n\n/**\n * Default maximum file size in bytes (25MB)\n */\nexport const DEFAULT_MAX_FILE_SIZE = 25_000_000;\n\n/**\n * Default maximum number of files allowed\n */\nexport const DEFAULT_MAX_FILES = 5;\n","/* cspell:disable */\nimport type { FileUploadFileMimeType } from '@ark-ui/react';\n\n/**\n * File extension with leading dot\n * @example '.pdf', '.jpg', '.csv'\n */\nexport type FileExtension = `.${string}`;\n\n/**\n * Accepted file type configuration\n * - Use string shorthand for common MIME types (uses built-in extensions map)\n * - Use object form to override or provide custom extensions\n */\nexport type AcceptedFileType =\n\t| FileUploadFileMimeType\n\t| {\n\t\t\tmimeType: FileUploadFileMimeType;\n\t\t\textensions: [FileExtension, ...FileExtension[]];\n\t };\n\n/**\n * Built-in extensions map for common MIME types\n */\nexport const EXTENSIONS_MAP: Record<FileUploadFileMimeType, FileExtension[]> = {\n\t// Images - specific types\n\t'image/png': ['.png'],\n\t'image/gif': ['.gif'],\n\t'image/jpeg': ['.jpg', '.jpeg'],\n\t'image/svg+xml': ['.svg'],\n\t'image/webp': ['.webp'],\n\t'image/avif': ['.avif'],\n\t'image/heic': ['.heic', '.heif'],\n\t'image/bmp': ['.bmp'],\n\n\t// Applications\n\t'application/pdf': ['.pdf'],\n\t'application/zip': ['.zip'],\n\t'application/json': ['.json'],\n\t'application/xml': ['.xml'],\n\t'application/msword': ['.doc'],\n\t'application/vnd.openxmlformats-officedocument.wordprocessingml.document': ['.docx'],\n\t'application/vnd.ms-excel': ['.xls'],\n\t'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': ['.xlsx'],\n\t'application/vnd.ms-powerpoint': ['.ppt'],\n\t'application/vnd.openxmlformats-officedocument.presentationml.presentation': ['.pptx'],\n\t'application/rtf': ['.rtf'],\n\t'application/x-rar': ['.rar'],\n\t'application/x-7z-compressed': ['.7z'],\n\t'application/x-tar': ['.tar'],\n\t'application/vnd.microsoft.portable-executable': ['.exe', '.dll'],\n\n\t// Text\n\t'text/css': ['.css'],\n\t'text/csv': ['.csv'],\n\t'text/html': ['.html', '.htm'],\n\t'text/markdown': ['.md', '.markdown'],\n\t'text/plain': ['.txt'],\n\n\t// Fonts\n\t'font/ttf': ['.ttf'],\n\t'font/otf': ['.otf'],\n\t'font/woff': ['.woff'],\n\t'font/woff2': ['.woff2'],\n\t'font/eot': ['.eot'],\n\t'font/svg': ['.svg'],\n\n\t// Video\n\t'video/mp4': ['.mp4'],\n\t'video/webm': ['.webm'],\n\t'video/ogg': ['.ogv'],\n\t'video/quicktime': ['.mov'],\n\t'video/x-msvideo': ['.avi'],\n\n\t// Audio\n\t'audio/mpeg': ['.mp3'],\n\t'audio/ogg': ['.ogg', '.oga'],\n\t'audio/wav': ['.wav'],\n\t'audio/webm': ['.weba'],\n\t'audio/aac': ['.aac'],\n\t'audio/flac': ['.flac'],\n\t'audio/x-m4a': ['.m4a'],\n\n\t// Wildcards\n\t'image/*': ['.png', '.jpg', '.jpeg', '.gif', '.webp', '.svg', '.bmp', '.avif', '.heic', '.heif'],\n\t'audio/*': ['.mp3', '.wav', '.ogg', '.oga', '.m4a', '.flac', '.aac', '.weba'],\n\t'video/*': ['.mp4', '.webm', '.ogv', '.mov', '.avi'],\n\t'text/*': ['.txt', '.html', '.htm', '.css', '.csv', '.md', '.markdown'],\n\t'application/*': [\n\t\t'.pdf',\n\t\t'.zip',\n\t\t'.json',\n\t\t'.xml',\n\t\t'.doc',\n\t\t'.docx',\n\t\t'.xls',\n\t\t'.xlsx',\n\t\t'.ppt',\n\t\t'.pptx',\n\t\t'.rtf',\n\t\t'.rar',\n\t\t'.7z',\n\t\t'.tar',\n\t],\n\t'font/*': ['.ttf', '.otf', '.woff', '.woff2', '.eot'],\n} as const;\n","import type { FileUploadFileMimeType } from '@ark-ui/react';\nimport { type AcceptedFileType, type FileExtension, EXTENSIONS_MAP } from '../types/accept-types';\n\n/**\n * Extract file extensions from accept configuration\n * @param accept Array of accepted file types\n * @returns Array of file extensions\n */\nexport function getFileExtensions(accept: AcceptedFileType[]): FileExtension[] {\n\treturn accept.flatMap((item) => {\n\t\tif (typeof item === 'string') {\n\t\t\treturn EXTENSIONS_MAP[item] ?? [];\n\t\t}\n\t\treturn item.extensions;\n\t});\n}\n\n/**\n * Extract MIME types from accept configuration\n * @param accept Array of accepted file types\n * @returns Array of MIME types\n */\nexport function getMimeTypes(accept: AcceptedFileType[]): FileUploadFileMimeType[] {\n\treturn accept.map((item) => (typeof item === 'string' ? item : item.mimeType));\n}\n","/**\n * Format file size to human-readable format using SI units (decimal base)\n */\nexport function formatFileSize(bytes: number): string {\n\tif (bytes === 0) {\n\t\treturn '0 B';\n\t}\n\n\tconst k = 1000; // Decimal base (SI standard)\n\tconst sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];\n\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\tconst size = bytes / Math.pow(k, i);\n\n\treturn `${size.toFixed(2)} ${sizes[i]}`;\n}\n","import type { AcceptedFileType } from '../types/accept-types';\nimport { getFileExtensions } from './accept-utils';\nimport { formatFileSize } from './format-file-size';\n\n/**\n * Generate helper text based on validation props\n */\nexport function generateHelperText(\n\taccept: AcceptedFileType[],\n\tmaxFileSize: number,\n\tmaxFiles: number,\n): string {\n\t// Extract file extensions from accept configuration\n\tconst extensions = getFileExtensions(accept);\n\tconst uniqueExtensions = [...new Set(extensions)];\n\tconst fileTypes = uniqueExtensions.map((ext) => ext.toUpperCase()).join(', ');\n\n\t// Format file size\n\tconst maxSizeText = formatFileSize(maxFileSize);\n\n\t// Build helper text\n\tconst parts: string[] = [];\n\n\tif (fileTypes) {\n\t\tparts.push(`Only ${fileTypes} files`);\n\t}\n\n\tif (maxFileSize < Infinity) {\n\t\tparts.push(`File size ${maxSizeText} max`);\n\t}\n\n\tif (maxFiles === 1) {\n\t\tparts.push('Only 1 file');\n\t} else if (maxFiles > 1) {\n\t\tparts.push(`Up to ${String(maxFiles)} files`);\n\t}\n\n\treturn parts.join('. ') + '.';\n}\n","@use '../../../../styles/typography';\n\n.fileUploadRoot {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n}\n\n.dropzone {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: var(--exo-spacing-small) var(--exo-spacing-standard);\n\tborder: var(--exo-spacing-4x-small) dashed var(--color-border);\n\tborder-radius: var(--exo-spacing-2x-small);\n\tbackground-color: var(--color-background);\n\ttransition: all 0.2s ease;\n\tcursor: pointer;\n\n\t&.dropzoneCompact {\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\n\t\t.dropzoneIcon {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t.dropzoneText {\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\n\t.dropzoneIcon {\n\t\tcolor: var(--color-icon-secondary);\n\t}\n\n\t.dropzoneText {\n\t\tcolor: var(--color-background-deselected);\n\t\ttext-align: center;\n\t\tpadding: var(--spacing-3xs) 0 var(--spacing-sm) 0;\n\t}\n\n\t[data-part='trigger'] {\n\t\talign-self: center;\n\t}\n\n\t&:hover:not([data-disabled]) {\n\t\tborder-color: var(--color-background-selected);\n\t\tbackground-color: var(--color-background-selected-weak);\n\t}\n\n\t&[data-dragging] {\n\t\tborder-color: var(--color-background-selected);\n\t\tbackground-color: var(--color-background-selected-weak);\n\t\tborder-style: solid;\n\t}\n\n\t&[data-disabled] {\n\t\tcursor: not-allowed;\n\n\t\t.dropzoneIcon,\n\t\t.dropzoneText {\n\t\t\tcolor: var(--color-background-disable);\n\t\t}\n\t}\n}\n\n.fileList {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--exo-spacing-x-small);\n\tmargin-top: var(--exo-spacing-x-small);\n\tpadding: var(--spacing-xs);\n\tborder-radius: var(--exo-spacing-2x-small);\n\tbackground: var(--color-background-secondary);\n}\n\n.infoText {\n\tcolor: var(--color-font-secondary);\n\tmargin-top: var(--spacing-2xs);\n}\n\n.errorText {\n\tcolor: var(--color-background-danger-strong);\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--spacing-3xs);\n\tmargin-top: var(--spacing-2xs);\n}\n","import type React from 'react';\nimport classNames from 'classnames';\nimport { FileUpload as ArkUiFileUpload } from '@ark-ui/react';\nimport { DsIcon } from '../../../ds-icon';\nimport { DsTypography } from '../../../ds-typography';\nimport { DsButton } from '../../../ds-button';\nimport { FileUploadItem } from '../file-upload-item';\nimport type { FileUploadProps } from './file-upload.types';\nimport { DEFAULT_ALLOWED_FILE_TYPES, DEFAULT_MAX_FILE_SIZE, DEFAULT_MAX_FILES } from '../../utils/constants';\nimport { generateHelperText } from '../../utils/generate-helper-text';\nimport { getMimeTypes } from '../../utils/accept-utils';\nimport styles from './file-upload.module.scss';\n\n/**\n * Design system base File Upload component\n * Used in conjunction with the useFileUpload hook\n */\nexport const FileUpload: React.FC<FileUploadProps> = ({\n\tstyle = {},\n\tclassName,\n\tfiles,\n\tacceptedFiles,\n\terrorText,\n\tdropzoneText = 'Drag and drop files here or ',\n\ttriggerText = 'Select file...',\n\thideProgress = false,\n\tdisableDrop = false,\n\tonFileAccept,\n\tonFileReject,\n\tonFileRemove,\n\tonFileDelete,\n\tonFileCancel,\n\tonFileRetry,\n\taccept = DEFAULT_ALLOWED_FILE_TYPES,\n\tmaxFiles = DEFAULT_MAX_FILES,\n\tmaxFileSize = DEFAULT_MAX_FILE_SIZE,\n\tcompact = false,\n\tdisabled = false,\n}) => {\n\tconst infoText = generateHelperText(accept, maxFileSize, maxFiles);\n\n\treturn (\n\t\t<ArkUiFileUpload.Root\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(styles.fileUploadRoot, className)}\n\t\t\tmaxFiles={maxFiles}\n\t\t\tmaxFileSize={maxFileSize}\n\t\t\taccept={getMimeTypes(accept)}\n\t\t\tdisabled={disabled}\n\t\t\tallowDrop={!disableDrop}\n\t\t\tacceptedFiles={acceptedFiles}\n\t\t\tonFileAccept={onFileAccept}\n\t\t\tonFileReject={onFileReject}\n\t\t>\n\t\t\t<ArkUiFileUpload.Dropzone\n\t\t\t\tclassName={classNames(styles.dropzone, {\n\t\t\t\t\t[styles.dropzoneCompact]: compact,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<DsIcon icon=\"upload\" className={styles.dropzoneIcon} />\n\t\t\t\t<DsTypography className={styles.dropzoneText} variant=\"body-xs-reg\">\n\t\t\t\t\t{dropzoneText}\n\t\t\t\t</DsTypography>\n\t\t\t\t<ArkUiFileUpload.Trigger asChild>\n\t\t\t\t\t<DsButton design=\"v1.2\" variant=\"ghost\" size=\"small\" disabled={disabled}>\n\t\t\t\t\t\t{triggerText}\n\t\t\t\t\t</DsButton>\n\t\t\t\t</ArkUiFileUpload.Trigger>\n\t\t\t</ArkUiFileUpload.Dropzone>\n\n\t\t\t{infoText && !disabled && !errorText && (\n\t\t\t\t<DsTypography className={styles.infoText} variant=\"body-xs-reg\">\n\t\t\t\t\t{infoText}\n\t\t\t\t</DsTypography>\n\t\t\t)}\n\t\t\t{errorText && (\n\t\t\t\t<DsTypography className={styles.errorText} variant=\"body-xs-reg\">\n\t\t\t\t\t<DsIcon icon=\"error\" size=\"tiny\" />\n\t\t\t\t\t{errorText}\n\t\t\t\t</DsTypography>\n\t\t\t)}\n\n\t\t\t{!!files?.length && (\n\t\t\t\t<div className={styles.fileList}>\n\t\t\t\t\t{files.map((uploadFile) => (\n\t\t\t\t\t\t<FileUploadItem\n\t\t\t\t\t\t\tkey={uploadFile.id}\n\t\t\t\t\t\t\tid={uploadFile.id}\n\t\t\t\t\t\t\tname={uploadFile.name}\n\t\t\t\t\t\t\tprogress={uploadFile.progress}\n\t\t\t\t\t\t\thideProgress={hideProgress}\n\t\t\t\t\t\t\tstatus={uploadFile.status}\n\t\t\t\t\t\t\terrors={uploadFile.errors}\n\t\t\t\t\t\t\tonRemove={onFileRemove}\n\t\t\t\t\t\t\tonDelete={onFileDelete}\n\t\t\t\t\t\t\tonCancel={onFileCancel}\n\t\t\t\t\t\t\tonRetry={onFileRetry}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t<ArkUiFileUpload.HiddenInput />\n\t\t</ArkUiFileUpload.Root>\n\t);\n};\n","import type { FileError, UploadedFile, UploadFileStatus } from '../ds-file-upload-api.types';\n\n/**\n * Creates an UploadedFile object from a File with additional metadata\n */\nexport function createUploadedFile(file: File, status: UploadFileStatus, errors?: FileError[]): UploadedFile {\n\treturn {\n\t\t// eslint-disable-next-line @typescript-eslint/no-misused-spread -- We're fine with losing the prototype here\n\t\t...file,\n\t\tid: `${file.name}-${String(Date.now())}-${String(Math.random())}`,\n\t\tname: file.name,\n\t\tsize: file.size,\n\t\ttype: file.type,\n\t\tprogress: 0,\n\t\tstatus,\n\t\terrors,\n\t} satisfies UploadedFile;\n}\n","/**\n * Check if two files are equal based on name, size, and type\n *\n * @see https://github.com/chakra-ui/zag/blob/698fff1d2/packages/utilities/file-utils/src/is-file-equal.ts\n */\nexport function isFileEqual(file1: File, file2: File): boolean {\n\treturn file1.name === file2.name && file1.size === file2.size && file1.type === file2.type;\n}\n","/**\n * Base class for file upload errors\n */\nexport abstract class FileUploadError extends Error {\n\tabstract readonly isRetryable: boolean;\n\n\tconstructor(message: string) {\n\t\tsuper(message);\n\t\tthis.name = this.constructor.name;\n\t}\n}\n\n/**\n * Retryable file upload error - indicates the upload can be retried\n * Examples: network errors, timeouts, temporary server errors (503), user cancellation\n */\nexport class RetryableFileUploadError extends FileUploadError {\n\treadonly isRetryable = true;\n}\n\n/**\n * Fatal file upload error - indicates the upload should not be retried\n * Examples: file type not allowed, file too large, invalid credentials, malformed response\n */\nexport class FatalFileUploadError extends FileUploadError {\n\treadonly isRetryable = false;\n}\n","import { useState } from 'react';\nimport type {\n\tFileUploadFileAcceptDetails,\n\tFileUploadFileRejectDetails,\n\tFileUploadFileRejection,\n} from '@ark-ui/react';\nimport { createUploadedFile } from '../utils/file-factory';\nimport { isFileEqual } from '../utils/is-file-equal';\nimport type {\n\tFileError,\n\tFileMetadata,\n\tFileUploadAdapter,\n\tFileUploadResult,\n\tUploadedFile,\n\tUploadFileStatus,\n} from '../ds-file-upload-api.types';\nimport { FileUploadError } from '../errors/file-upload-errors';\nimport type { FileUploadProps } from '../components/file-upload';\n\nexport interface UseFileUploadConfig {\n\tadapter: FileUploadAdapter;\n\tautoUpload?: boolean;\n\tmaxConcurrent?: number;\n\tmaxFiles?: number;\n\tmetadata?: FileMetadata;\n\tonFileUploadComplete?: (fileId: string, result: FileUploadResult) => void;\n\tonFileUploadError?: (fileId: string, error: string) => void;\n\tonAllFileUploadsComplete?: () => void;\n}\n\nexport interface UseFileUploadUserCallbacks {\n\tonFilesAdded?: (files: File[]) => void;\n\tonFileRemoved?: (fileId: string) => void;\n\tonFileDeleted?: (fileId: string) => void;\n\tonFileUploadCanceled?: (fileId: string) => void;\n\tonFileUploadRetried?: (fileId: string) => void;\n}\n\nexport interface UseFileUploadReturn {\n\tfiles: UploadedFile[];\n\tacceptedFiles: UploadedFile[];\n\taddFiles: (newFiles: File[]) => UploadedFile[];\n\taddRejectedFiles: (filesWithErrors: { file: File; errors: FileError[] }[]) => void;\n\tremoveFile: (fileId: string) => void;\n\tdeleteFile: (fileId: string) => Promise<void>;\n\tuploadFile: (fileId: string) => Promise<void>;\n\tuploadAll: () => Promise<void>;\n\tcancelUpload: (fileId: string) => Promise<void>;\n\tretryUpload: (fileId: string) => Promise<void>;\n\tclearFiles: () => void;\n\t/**\n\t * Get props for FileUpload component with callback composition\n\t * @param userCallbacks Optional user callbacks to compose with internal logic\n\t * @returns Props ready to spread onto FileUpload component\n\t */\n\tgetProps: (\n\t\tuserCallbacks?: UseFileUploadUserCallbacks,\n\t) => Pick<\n\t\tFileUploadProps,\n\t\t| 'files'\n\t\t| 'acceptedFiles'\n\t\t| 'onFileAccept'\n\t\t| 'onFileReject'\n\t\t| 'onFileRemove'\n\t\t| 'onFileDelete'\n\t\t| 'onFileCancel'\n\t\t| 'onFileRetry'\n\t>;\n}\n\n/**\n * File upload state management hook\n */\nexport function useFileUpload({\n\tadapter,\n\tautoUpload = true,\n\tmaxConcurrent = 3,\n\tmaxFiles,\n\tmetadata,\n\tonFileUploadComplete,\n\tonFileUploadError,\n\tonAllFileUploadsComplete,\n}: UseFileUploadConfig): UseFileUploadReturn {\n\tconst [abortControllers] = useState(() => new Map<string, AbortController>());\n\tconst [files, setFiles] = useState<UploadedFile[]>([]);\n\tconst acceptedFiles = files.filter((file) => file.status !== 'error');\n\n\tif (files.length && !files.some((f) => f.status === 'uploading')) {\n\t\tonAllFileUploadsComplete?.();\n\t}\n\n\tconst getAddedFiles = (newFiles: File[]) =>\n\t\tnewFiles.filter((file) => !acceptedFiles.some((existing) => isFileEqual(existing, file)));\n\n\tconst getDuplicatedFiles = (newFiles: File[]) =>\n\t\tnewFiles.filter((file) => {\n\t\t\tconst uploadedFile = file as UploadedFile;\n\t\t\tif (uploadedFile.id) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tconst found = files.filter((existing) => isFileEqual(existing, file));\n\t\t\tif (found.length) {\n\t\t\t\tconst alreadyAdded = found.some((existing) => existing.errors?.includes('FILE_EXISTS'));\n\t\t\t\treturn !alreadyAdded;\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\n\tconst markDuplicates = (duplicates: File[]) => {\n\t\tconst duplicateFilesWithErrors = duplicates.map((file) => ({\n\t\t\tfile,\n\t\t\terrors: ['FILE_EXISTS'],\n\t\t}));\n\t\tif (duplicateFilesWithErrors.length) {\n\t\t\taddRejectedFiles(duplicateFilesWithErrors);\n\t\t}\n\t};\n\n\tconst markMaxFiles = (files: File[]): File[] => {\n\t\tif (maxFiles === undefined) {\n\t\t\treturn files;\n\t\t}\n\n\t\tconst currentAcceptedCount = acceptedFiles.length;\n\t\tconst availableSlots = maxFiles - currentAcceptedCount;\n\n\t\tlet filesToAdd: File[];\n\t\tlet rejectedFiles: File[];\n\n\t\tif (availableSlots <= 0) {\n\t\t\tfilesToAdd = [];\n\t\t\trejectedFiles = files;\n\t\t} else if (files.length > availableSlots) {\n\t\t\tfilesToAdd = files.slice(0, availableSlots);\n\t\t\trejectedFiles = files.slice(availableSlots);\n\t\t} else {\n\t\t\treturn files;\n\t\t}\n\n\t\tconst rejectedFilesWithErrors = rejectedFiles.map((file) => ({\n\t\t\tfile,\n\t\t\terrors: ['TOO_MANY_FILES'],\n\t\t}));\n\t\taddRejectedFiles(rejectedFilesWithErrors);\n\n\t\treturn filesToAdd;\n\t};\n\n\tconst addNewFiles = (filesToUpload: File[]): UploadedFile[] => {\n\t\tconst uploadedFiles = filesToUpload.map((file) => createUploadedFile(file, 'pending'));\n\t\tsetFiles((prev) => [...prev, ...uploadedFiles]);\n\t\treturn uploadedFiles;\n\t};\n\n\tconst uploadNewFiles = (uploadedFiles: UploadedFile[]) => {\n\t\tif (autoUpload) {\n\t\t\tuploadedFiles.forEach((file) => {\n\t\t\t\tvoid uploadSingleFile(file);\n\t\t\t});\n\t\t}\n\t};\n\n\tconst addFiles = (newFiles: File[]): UploadedFile[] => {\n\t\tconst addedFiles = getAddedFiles(newFiles);\n\t\tconst duplicateFiles = getDuplicatedFiles(newFiles);\n\t\tmarkDuplicates(duplicateFiles);\n\t\tconst filesToAdd = markMaxFiles(addedFiles);\n\t\tconst uploadedFiles = addNewFiles(filesToAdd);\n\t\tuploadNewFiles(uploadedFiles);\n\t\treturn uploadedFiles;\n\t};\n\n\tconst addRejectedFiles = (filesWithErrors: { file: File; errors: FileError[] }[]) => {\n\t\tconst newFileStates = filesWithErrors.map(({ file, errors }) =>\n\t\t\tcreateUploadedFile(file, 'error', errors),\n\t\t);\n\t\tsetFiles((prev) => [...prev, ...newFileStates]);\n\t};\n\n\tconst updateFileProgress = (fileId: string, progress: number) => {\n\t\tsetFiles((prev) => prev.map((file) => (file.id === fileId ? { ...file, progress } : file)));\n\t};\n\n\tconst updateFileStatus = (fileId: string, status: UploadFileStatus, error?: string) => {\n\t\tsetFiles((prev) =>\n\t\t\tprev.map((file) =>\n\t\t\t\tfile.id === fileId\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...file,\n\t\t\t\t\t\t\tstatus,\n\t\t\t\t\t\t\terrors: error ? [...(file.errors || []), error] : file.errors,\n\t\t\t\t\t\t}\n\t\t\t\t\t: file,\n\t\t\t),\n\t\t);\n\t};\n\n\tconst uploadFile = async (fileId: string) => {\n\t\tconst file = acceptedFiles.find((f) => f.id === fileId);\n\t\tif (file) {\n\t\t\tawait uploadSingleFile(file);\n\t\t}\n\t};\n\n\tconst uploadSingleFile = async (file: UploadedFile) => {\n\t\tconst fileId = file.id;\n\t\tconst abortController = new AbortController();\n\t\tabortControllers.set(fileId, abortController);\n\n\t\tupdateFileStatus(file.id, 'uploading');\n\n\t\ttry {\n\t\t\tconst result = await adapter.upload({\n\t\t\t\tfile,\n\t\t\t\tfileId,\n\t\t\t\tmetadata,\n\t\t\t\tsignal: abortController.signal,\n\t\t\t\tonProgress: (progress) => {\n\t\t\t\t\tupdateFileProgress(fileId, progress);\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tupdateFileStatus(fileId, 'completed');\n\t\t\tupdateFileProgress(fileId, 100);\n\t\t\tonFileUploadComplete?.(fileId, result);\n\t\t} catch (error) {\n\t\t\tconst errorMessage = error instanceof Error ? error.message : 'Upload failed';\n\t\t\t// Determine status based on error type\n\t\t\t// Unknown errors are treated as retryable (network errors, etc.)\n\t\t\tlet status: UploadFileStatus = 'interrupted';\n\t\t\tif (error instanceof FileUploadError) {\n\t\t\t\tstatus = error.isRetryable ? 'interrupted' : 'error';\n\t\t\t}\n\t\t\tupdateFileStatus(fileId, status, errorMessage);\n\t\t\tonFileUploadError?.(fileId, errorMessage);\n\t\t} finally {\n\t\t\tabortControllers.delete(fileId);\n\t\t}\n\t};\n\n\tconst uploadAll = async () => {\n\t\tconst pendingFiles = files.filter((f) => f.status === 'pending');\n\n\t\tfor (let i = 0; i < pendingFiles.length; i += maxConcurrent) {\n\t\t\tconst batch = pendingFiles.slice(i, i + maxConcurrent);\n\t\t\tawait Promise.allSettled(batch.map((f) => uploadFile(f.id)));\n\t\t}\n\t};\n\n\tconst cancelUpload = async (fileId: string) => {\n\t\tabortControllers.get(fileId)?.abort();\n\t\tabortControllers.delete(fileId);\n\n\t\tif (adapter.cancel) {\n\t\t\tawait adapter.cancel(fileId);\n\t\t}\n\n\t\tupdateFileStatus(fileId, 'cancelled');\n\t};\n\n\tconst retryUpload = async (fileId: string) => {\n\t\tupdateFileStatus(fileId, 'pending');\n\t\tupdateFileProgress(fileId, 0);\n\t\tawait uploadFile(fileId);\n\t};\n\n\tconst removeFile = (fileId: string) => {\n\t\tabortControllers.get(fileId)?.abort();\n\t\tabortControllers.delete(fileId);\n\n\t\tsetFiles((prev) => prev.filter((file) => file.id !== fileId));\n\t};\n\n\tconst deleteFile = async (fileId: string) => {\n\t\tif (adapter.delete) {\n\t\t\tawait adapter.delete(fileId);\n\t\t}\n\n\t\tremoveFile(fileId);\n\t};\n\n\tconst clearFiles = () => {\n\t\tabortControllers.forEach((controller) => controller.abort());\n\t\tabortControllers.clear();\n\n\t\tsetFiles([]);\n\t};\n\n\tconst getProps = (userCallbacks?: UseFileUploadUserCallbacks) => {\n\t\tconst handleFileAccept = (details: FileUploadFileAcceptDetails) => {\n\t\t\tconst addedFiles = addFiles(details.files);\n\t\t\tuserCallbacks?.onFilesAdded?.(addedFiles);\n\t\t};\n\n\t\tconst handleFileReject = (details: FileUploadFileRejectDetails) => {\n\t\t\taddRejectedFiles(\n\t\t\t\tdetails.files.map((f: FileUploadFileRejection) => ({\n\t\t\t\t\tfile: f.file,\n\t\t\t\t\terrors: f.errors,\n\t\t\t\t})),\n\t\t\t);\n\t\t};\n\n\t\tconst handleFileRemove = (fileId: string) => {\n\t\t\tremoveFile(fileId);\n\t\t\tuserCallbacks?.onFileRemoved?.(fileId);\n\t\t};\n\n\t\tconst handleFileDelete = async (fileId: string) => {\n\t\t\tawait deleteFile(fileId);\n\t\t\tuserCallbacks?.onFileDeleted?.(fileId);\n\t\t};\n\n\t\tconst handleFileUploadCanceled = async (fileId: string) => {\n\t\t\tawait cancelUpload(fileId);\n\t\t\tuserCallbacks?.onFileUploadCanceled?.(fileId);\n\t\t};\n\n\t\tconst handleFileUploadRetried = async (fileId: string) => {\n\t\t\tawait retryUpload(fileId);\n\t\t\tuserCallbacks?.onFileUploadRetried?.(fileId);\n\t\t};\n\n\t\treturn {\n\t\t\tfiles,\n\t\t\tacceptedFiles,\n\t\t\tonFileAccept: handleFileAccept,\n\t\t\tonFileReject: handleFileReject,\n\t\t\tonFileRemove: handleFileRemove,\n\t\t\tonFileDelete: handleFileDelete,\n\t\t\tonFileCancel: handleFileUploadCanceled,\n\t\t\tonFileRetry: handleFileUploadRetried,\n\t\t};\n\t};\n\n\treturn {\n\t\tfiles,\n\t\tacceptedFiles,\n\t\taddFiles,\n\t\taddRejectedFiles,\n\t\tremoveFile,\n\t\tdeleteFile,\n\t\tuploadFile,\n\t\tuploadAll,\n\t\tcancelUpload,\n\t\tretryUpload,\n\t\tclearFiles,\n\t\tgetProps,\n\t};\n}\n","import type React from 'react';\nimport type { DsFileUploadProps } from './ds-file-upload.types';\nimport { FileUpload } from './components/file-upload';\nimport { useFileUpload } from './hooks';\n\n/**\n * Design system File Upload component (with state management)\n */\nconst DsFileUpload: React.FC<DsFileUploadProps> = ({\n\tadapter,\n\tautoUpload = true,\n\tmaxConcurrent = 3,\n\tmetadata,\n\tonFileUploadComplete,\n\tonFileUploadError,\n\tonFilesAdded,\n\tonFileRemoved,\n\tonFileDeleted,\n\tonFileUploadCanceled,\n\tonFileUploadRetried,\n\tonAllFileUploadsComplete,\n\t...props\n}) => {\n\tconst { getProps } = useFileUpload({\n\t\tadapter,\n\t\tautoUpload,\n\t\tmaxConcurrent,\n\t\tmaxFiles: props.maxFiles,\n\t\tmetadata,\n\t\tonFileUploadComplete,\n\t\tonFileUploadError,\n\t\tonAllFileUploadsComplete,\n\t});\n\n\tconst fileUploadProps = getProps({\n\t\tonFilesAdded,\n\t\tonFileRemoved,\n\t\tonFileDeleted,\n\t\tonFileUploadCanceled,\n\t\tonFileUploadRetried,\n\t});\n\n\treturn <FileUpload {...fileUploadProps} {...props} />;\n};\n\nexport default DsFileUpload;\n","@use '../../styles/typography';\n@use '../../styles/shared/dropdown';\n@use '../../styles/shared/input';\n\n.control {\n\t@include input.selectControl;\n}\n\n.trigger {\n\t@include input.selectTrigger;\n}\n\n.content {\n\t@include dropdown.dropdown-content;\n}\n\n.searchInput {\n\t@include input.searchInput;\n}\n\n.viewport {\n\t@include dropdown.dropdown-viewport;\n\tmax-height: 256px;\n\n\t& > .content {\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n\t\tscrollbar-width: thin;\n\t}\n}\n\n.item {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\tcolor: var(--color-font-secondary);\n\tpadding: var(--spacing-xs);\n\tborder-radius: 2px;\n\tcursor: pointer;\n\toutline: none;\n\n\t&[data-highlighted],\n\t&:hover {\n\t\tbackground: var(--color-background-selected-weak);\n\n\t\t.itemIcon {\n\t\t\tcolor: var(--color-background-selected);\n\t\t}\n\t}\n}\n\n.valueText {\n\t@include typography.ellipsis;\n\tgrid-column: 1;\n\tgrid-row: 1;\n\tcolor: var(--color-font-secondary);\n\ttext-align: start;\n}\n\n.multiSelectItemsContainer {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: var(--spacing-3xs);\n\tpadding: var(--spacing-3xs);\n\tborder-bottom: 1px solid var(--color-border-secondary);\n}\n","import { useSelectContext, type UseSelectContext } from '@ark-ui/react/select';\nimport styles from './ds-select.module.scss';\nimport DsButton from '../ds-button/ds-button';\nimport DsChip from '../ds-chip/ds-chip';\nimport type { DsSelectOption, SelectOptionValue } from './ds-select.types';\n\ntype SelectItemsChipsProps = {\n\tshowAll: boolean;\n\tonValueChange?: (value: SelectOptionValue[]) => void;\n\tonShowAll: () => void;\n\tcount: number;\n};\n\nexport function SelectItemsChips({ showAll, onShowAll, onValueChange, count }: SelectItemsChipsProps) {\n\tconst { collection, value: selectedItems } = useSelectContext() as UseSelectContext<DsSelectOption>;\n\n\tif (!selectedItems.length) {\n\t\treturn null;\n\t}\n\n\tconst itemsToShow = showAll ? selectedItems : selectedItems.slice(0, count);\n\n\treturn (\n\t\t<div className={styles.multiSelectItemsContainer}>\n\t\t\t{itemsToShow.map((itemValue) => {\n\t\t\t\tconst item = collection.find(itemValue);\n\n\t\t\t\tif (!item) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst onDelete = () => {\n\t\t\t\t\tconst filteredValue = selectedItems.filter((v) => v !== item.value);\n\n\t\t\t\t\tonValueChange?.(filteredValue);\n\t\t\t\t};\n\n\t\t\t\treturn <DsChip key={itemValue} label={item.label} onDelete={onDelete} />;\n\t\t\t})}\n\n\t\t\t{!showAll && selectedItems.length > count && (\n\t\t\t\t<DsChip label={`+${String(selectedItems.length - count)}`} onClick={onShowAll} size=\"small\" />\n\t\t\t)}\n\n\t\t\t<DsButton\n\t\t\t\tdesign=\"v1.2\"\n\t\t\t\tbuttonType=\"tertiary\"\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tsize=\"small\"\n\t\t\t\tonClick={() => onValueChange?.([])}\n\t\t\t>\n\t\t\t\tClear All\n\t\t\t</DsButton>\n\t\t</div>\n\t);\n}\n","import { useState } from 'react';\nimport { type UseSelectReturn, Select, createListCollection, useSelect } from '@ark-ui/react/select';\nimport { Portal } from '@ark-ui/react/portal';\nimport classNames from 'classnames';\nimport styles from './ds-select.module.scss';\nimport type { DsSelectOption, DsSelectProps } from './ds-select.types';\nimport { DsIcon } from '../ds-icon';\nimport { type DsCheckboxProps, DsCheckbox } from '../ds-checkbox';\nimport { SelectItemsChips } from './select-items-chips';\nimport { DsTypography } from '../ds-typography';\nimport { DsTextInput } from '../ds-text-input';\n\nconst SEARCH_THRESHOLD = 13;\nconst SELECT_ALL_VALUE = '__INTERNAL_SELECT_ALL_VALUE__';\n\nconst SELECT_ALL: DsSelectOption = {\n\tlabel: 'All',\n\tvalue: SELECT_ALL_VALUE,\n};\n\nconst DsSelect = ({\n\tid,\n\toptions: userOptions,\n\tvalue,\n\tstyle,\n\tsize,\n\tclearable,\n\tonClear,\n\tonBlur,\n\tclassName,\n\tplaceholder = 'Click to select a value',\n\tdisabled,\n\t...multiselectProps\n}: DsSelectProps) => {\n\tconst [searchTerm, setSearchTerm] = useState('');\n\tconst [showAllItems, setShowAllItems] = useState(false);\n\n\tconst internalOptions = multiselectProps.multiple ? [SELECT_ALL, ...userOptions] : userOptions;\n\n\tconst collection = createListCollection({\n\t\titems: internalOptions,\n\t\titemToValue: (item) => item.value,\n\t});\n\n\tconst filteredOptions = internalOptions.filter((option) =>\n\t\toption.label.toLowerCase().includes(searchTerm.toLowerCase()),\n\t);\n\n\tconst normalizedValue = Array.isArray(value) ? value : [value].filter((value) => !!value);\n\n\tconst select = useSelect({\n\t\tcollection,\n\t\tdisabled,\n\t\tmultiple: multiselectProps.multiple,\n\t\tvalue: normalizedValue,\n\n\t\t// Override Ark's auto-generated trigger id if an id provided by the user.\n\t\t// See: https://github.com/chakra-ui/zag/blob/f6e079095/packages/machines/select/src/select.dom.ts#L5\n\t\tids: { trigger: id },\n\n\t\tonOpenChange: () => {\n\t\t\tsetSearchTerm('');\n\t\t\tsetShowAllItems(false);\n\t\t},\n\n\t\tonValueChange: (details) => {\n\t\t\t// Single select mode.\n\t\t\tif (!multiselectProps.multiple) {\n\t\t\t\tmultiselectProps.onValueChange?.(details.value[0]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// \"Select All\" clicked in multi select mode.\n\t\t\tconst isSelectAllClicked = details.value.includes(SELECT_ALL_VALUE);\n\n\t\t\tif (isSelectAllClicked) {\n\t\t\t\tconst areAllOptionsSelected = select.selectedItems.length === userOptions.length;\n\n\t\t\t\tconst newValues = areAllOptionsSelected ? [] : userOptions.map((opt) => opt.value);\n\n\t\t\t\tmultiselectProps.onValueChange?.(newValues);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// \"Regular\" multi select mode.\n\t\t\tconst newValueWithoutSelectAll = details.value.filter((val) => val !== SELECT_ALL_VALUE);\n\n\t\t\tmultiselectProps.onValueChange?.(newValueWithoutSelectAll);\n\t\t},\n\t});\n\n\treturn (\n\t\t<Select.RootProvider\n\t\t\tvalue={select}\n\t\t\t// When rendering the Select inside a Modal, it has an `aria-hidden=\"true\"` attribute\n\t\t\t// which causes screen readers to ignore it.\n\t\t\t//\n\t\t\t// See: https://github.com/chakra-ui/ark/issues/3728\n\t\t\tlazyMount\n\t\t>\n\t\t\t<Select.Control\n\t\t\t\tclassName={classNames(styles.control, size === 'small' && styles.small, className)}\n\t\t\t\tstyle={style}\n\t\t\t\tonBlur={onBlur}\n\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\tif (!clearable) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (select.open) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (e.key === 'Backspace' || e.key === 'Delete') {\n\t\t\t\t\t\tif (multiselectProps.multiple) {\n\t\t\t\t\t\t\tmultiselectProps.onValueChange?.([]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmultiselectProps.onValueChange?.('');\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tonClear?.();\n\t\t\t\t\t}\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<Select.Trigger\n\t\t\t\t\tid={id}\n\t\t\t\t\tclassName={styles.trigger}\n\t\t\t\t\t// Ark expects a `Select.Label` component to exist and automatically label the trigger\n\t\t\t\t\t// with it. We're using the `DsFormControl` label handling instead, so we disable the\n\t\t\t\t\t// automatic labelling here.\n\t\t\t\t\taria-labelledby={null as never}\n\t\t\t\t>\n\t\t\t\t\t<DsTypography className={styles.valueText} variant=\"body-sm-reg\" asChild>\n\t\t\t\t\t\t<Select.ValueText placeholder={placeholder} />\n\t\t\t\t\t</DsTypography>\n\n\t\t\t\t\t<Select.Indicator className={styles.triggerIcon}>\n\t\t\t\t\t\t<DsIcon icon=\"keyboard_arrow_down\" size={size === 'small' ? 'small' : 'medium'} />\n\t\t\t\t\t</Select.Indicator>\n\t\t\t\t</Select.Trigger>\n\n\t\t\t\t{clearable && (\n\t\t\t\t\t<Select.ClearTrigger className={styles.clearIcon} onClick={onClear}>\n\t\t\t\t\t\t<DsIcon icon=\"close\" size={size === 'small' ? 'small' : 'medium'} />\n\t\t\t\t\t</Select.ClearTrigger>\n\t\t\t\t)}\n\t\t\t</Select.Control>\n\t\t\t<Portal>\n\t\t\t\t<Select.Positioner className={styles.viewport}>\n\t\t\t\t\t<Select.Content className={styles.content}>\n\t\t\t\t\t\t{userOptions.length > SEARCH_THRESHOLD && (\n\t\t\t\t\t\t\t<div className={styles.searchInput}>\n\t\t\t\t\t\t\t\t<DsTextInput\n\t\t\t\t\t\t\t\t\tplaceholder=\"Search\"\n\t\t\t\t\t\t\t\t\tvalue={searchTerm}\n\t\t\t\t\t\t\t\t\tonChange={(e) => setSearchTerm(e.target.value)}\n\t\t\t\t\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\t\t\t\t\t// Prevent the select from opening/closing when pressing space in the search input.\n\t\t\t\t\t\t\t\t\t\tif (e.key === ' ') {\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tslots={{\n\t\t\t\t\t\t\t\t\t\tstartAdornment: <DsIcon icon=\"search\" size=\"tiny\" />,\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{multiselectProps.multiple && (\n\t\t\t\t\t\t\t<SelectItemsChips\n\t\t\t\t\t\t\t\tonValueChange={multiselectProps.onValueChange}\n\t\t\t\t\t\t\t\tshowAll={showAllItems}\n\t\t\t\t\t\t\t\tonShowAll={() => setShowAllItems(true)}\n\t\t\t\t\t\t\t\t// TODO: Find a way to calculate this based on the size of the select.\n\t\t\t\t\t\t\t\tcount={6}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t{filteredOptions.map((item) => {\n\t\t\t\t\t\t\tconst checked = getItemCheckedState({ item, select, options: internalOptions });\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<DsTypography\n\t\t\t\t\t\t\t\t\tvariant=\"body-sm-reg\"\n\t\t\t\t\t\t\t\t\tasChild\n\t\t\t\t\t\t\t\t\tkey={collection.getItemValue(item)}\n\t\t\t\t\t\t\t\t\tclassName={styles.item}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Select.Item item={item}>\n\t\t\t\t\t\t\t\t\t\t{multiselectProps.multiple && <DsCheckbox checked={checked} />}\n\t\t\t\t\t\t\t\t\t\t{item.icon && <DsIcon className={styles.itemIcon} icon={item.icon} aria-hidden=\"true\" />}\n\t\t\t\t\t\t\t\t\t\t<Select.ItemText>{item.label}</Select.ItemText>\n\t\t\t\t\t\t\t\t\t</Select.Item>\n\t\t\t\t\t\t\t\t</DsTypography>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</Select.Content>\n\t\t\t\t</Select.Positioner>\n\t\t\t</Portal>\n\n\t\t\t{/*\n\t\t\t\tThis element isn't properly hidden by Zag, so we hide it manually.\n\t\t\t \tFor more information, see: https://github.com/chakra-ui/zag/issues/2865\n\t\t\t*/}\n\t\t\t<Select.HiddenSelect style={{ display: 'none' }} />\n\t\t</Select.RootProvider>\n\t);\n};\n\nfunction getItemCheckedState({\n\titem,\n\tselect,\n\toptions,\n}: {\n\titem: DsSelectOption;\n\tselect: UseSelectReturn<DsSelectOption>;\n\toptions: DsSelectOption[];\n}): DsCheckboxProps['checked'] {\n\tconst isRegularItem = item.value !== SELECT_ALL_VALUE;\n\n\tif (isRegularItem) {\n\t\treturn select.getItemState({ item }).selected;\n\t}\n\n\t// Doing -1 since it contains the \"Select All\" option itself.\n\tconst allSelected = select.selectedItems.length === options.length - 1;\n\n\tif (allSelected) {\n\t\treturn true;\n\t}\n\n\tconst someSelected = select.hasSelectedItems;\n\n\treturn someSelected ? 'indeterminate' : false;\n}\n\nexport default DsSelect;\n","@use '../../styles/shared/input' as input;\n\n.textarea {\n\t@include input.textarea;\n}\n","import type React from 'react';\nimport classNames from 'classnames';\nimport styles from './ds-textarea.module.scss';\nimport type { DsTextareaProps } from './ds-textarea.types';\n\nconst DsTextarea: React.FC<DsTextareaProps> = ({\n\tid,\n\tref,\n\tname,\n\tonBlur,\n\tonChange,\n\tonValueChange,\n\tclassName,\n\tstyle = {},\n\tvalue,\n\tdefaultValue,\n\tdisabled = false,\n\trows = 3,\n\tplaceholder,\n\tminLength,\n\tmaxLength,\n}) => {\n\tconst handleChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n\t\tconst newValue = event.target.value;\n\t\tonChange?.(event);\n\t\tonValueChange?.(newValue);\n\t};\n\n\treturn (\n\t\t<textarea\n\t\t\tid={id}\n\t\t\tref={ref}\n\t\t\tname={name}\n\t\t\tclassName={classNames(styles.textarea, className)}\n\t\t\tstyle={style}\n\t\t\tvalue={value}\n\t\t\tdefaultValue={defaultValue}\n\t\t\tplaceholder={placeholder}\n\t\t\tdisabled={disabled}\n\t\t\trows={rows}\n\t\t\tonBlur={onBlur}\n\t\t\tonChange={handleChange}\n\t\t\tminLength={minLength}\n\t\t\tmaxLength={maxLength}\n\t\t/>\n\t);\n};\n\nexport default DsTextarea;\n","@use '../../styles/shared/input';\n\n.textInputContainer {\n\t@include input.inputContainer;\n}\n\n.input {\n\t@include input.input;\n\n\ttext-align: center;\n}\n\n.iconButton {\n\t@include input.iconButton;\n}\n","import type { FC } from 'react';\nimport classNames from 'classnames';\nimport { NumberInput } from '@ark-ui/react';\nimport styles from './ds-number-input.module.scss';\nimport type { DsNumberInputProps } from './ds-number-input.types';\nimport { DsIcon } from '../ds-icon';\n\nconst DsNumberInput: FC<DsNumberInputProps> = ({\n\tid,\n\tref,\n\tname,\n\tsize = 'default',\n\tonBlur,\n\tonChange,\n\tonValueChange,\n\tclassName,\n\tstyle = {},\n\tplaceholder,\n\tdisabled = false,\n\tmin,\n\tmax,\n\tstep,\n\tvalue,\n\tdefaultValue,\n}) => {\n\tconst containerClass = classNames(\n\t\tstyles.textInputContainer,\n\t\t{\n\t\t\t[styles.small]: size === 'small',\n\t\t\t[styles.default]: size === 'default',\n\t\t},\n\t\tclassName,\n\t);\n\n\treturn (\n\t\t<NumberInput.Root\n\t\t\tid={id}\n\t\t\tmin={min}\n\t\t\tmax={max}\n\t\t\tstep={step}\n\t\t\tdisabled={disabled}\n\t\t\tvalue={typeof value !== 'undefined' ? String(value) : undefined}\n\t\t\tdefaultValue={typeof defaultValue !== 'undefined' ? String(defaultValue) : undefined}\n\t\t\tonValueChange={(details) => onValueChange?.(details.valueAsNumber)}\n\t\t>\n\t\t\t<NumberInput.Control asChild>\n\t\t\t\t<div className={containerClass} style={style}>\n\t\t\t\t\t<NumberInput.DecrementTrigger asChild>\n\t\t\t\t\t\t<button type=\"button\" className={classNames(styles.iconButton)} aria-label=\"Decrease value\">\n\t\t\t\t\t\t\t<DsIcon icon=\"remove\" size=\"tiny\" />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</NumberInput.DecrementTrigger>\n\n\t\t\t\t\t<NumberInput.Input\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\tname={name}\n\t\t\t\t\t\tclassName={classNames(styles.input)}\n\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\tonBlur={onBlur}\n\t\t\t\t\t\tonChange={onChange}\n\t\t\t\t\t></NumberInput.Input>\n\n\t\t\t\t\t<NumberInput.IncrementTrigger asChild>\n\t\t\t\t\t\t<button type=\"button\" className={classNames(styles.iconButton)} aria-label=\"Increase value\">\n\t\t\t\t\t\t\t<DsIcon icon=\"add\" size=\"tiny\" />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</NumberInput.IncrementTrigger>\n\t\t\t\t</div>\n\t\t\t</NumberInput.Control>\n\t\t</NumberInput.Root>\n\t);\n};\n\nexport default DsNumberInput;\n","@use '../../styles/typography';\n@use '../../styles/shared/input';\n\n.textInputContainer {\n\t@include input.inputContainer;\n}\n\n.input {\n\t@include input.input;\n}\n","import type { FC } from 'react';\nimport classNames from 'classnames';\nimport { PasswordInput } from '@ark-ui/react';\nimport styles from './ds-password-input.module.scss';\nimport type { DsPasswordInputProps } from './ds-password-input.types';\nimport { DsIcon } from '../ds-icon';\n\nconst DsPasswordInput: FC<DsPasswordInputProps> = ({\n\tid,\n\tref,\n\tname,\n\tsize = 'default',\n\tonBlur,\n\tonChange,\n\tonValueChange,\n\tclassName,\n\tstyle = {},\n\tvalue,\n\tdefaultValue,\n\tplaceholder,\n\tdisabled = false,\n}) => {\n\tconst containerClass = classNames(\n\t\tstyles.textInputContainer,\n\t\t{\n\t\t\t[styles.small]: size === 'small',\n\t\t\t[styles.default]: size === 'default',\n\t\t},\n\t\tclassName,\n\t);\n\n\treturn (\n\t\t<PasswordInput.Root disabled={disabled}>\n\t\t\t<PasswordInput.Control>\n\t\t\t\t<div className={containerClass} style={style}>\n\t\t\t\t\t<PasswordInput.Input asChild>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tclassName={classNames(styles.input)}\n\t\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\t\tonBlur={onBlur}\n\t\t\t\t\t\t\tonChange={(event) => {\n\t\t\t\t\t\t\t\tonChange?.(event);\n\t\t\t\t\t\t\t\tonValueChange?.(event.target.value);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PasswordInput.Input>\n\n\t\t\t\t\t<PasswordInput.VisibilityTrigger className={styles.trigger} aria-label=\"Toggle password visibility\">\n\t\t\t\t\t\t<PasswordInput.Indicator\n\t\t\t\t\t\t\tclassName={styles.indicator}\n\t\t\t\t\t\t\tfallback={<DsIcon icon=\"visibility_off\" size=\"tiny\" />}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DsIcon icon=\"visibility\" size=\"tiny\" />\n\t\t\t\t\t\t</PasswordInput.Indicator>\n\t\t\t\t\t</PasswordInput.VisibilityTrigger>\n\t\t\t\t</div>\n\t\t\t</PasswordInput.Control>\n\t\t</PasswordInput.Root>\n\t);\n};\n\nexport default DsPasswordInput;\n","@use '../../styles/typography';\n\n$form-control-description-max-lines: 2;\n$form-control-description-line-height: 1.4;\n$form-control-description-max-height: calc(\n\t$form-control-description-line-height * $form-control-description-max-lines * 1em\n);\n\n.container {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--spacing-4xs);\n\n\t&.success {\n\t\t.message {\n\t\t\tcolor: var(--color-background-success-strong);\n\t\t}\n\t}\n\n\t&.warning {\n\t\t.message {\n\t\t\tcolor: var(--color-font-warning);\n\t\t}\n\t}\n\n\t&.error {\n\t\t--form-control-border-color: var(--color-background-danger-strong);\n\t\t--form-control-selection-color: var(--color-background-danger-weak);\n\n\t\t.message {\n\t\t\tcolor: var(--color-background-danger-strong);\n\t\t}\n\t}\n}\n\n.labelContainer {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--spacing-4xs);\n}\n\n.label {\n\t@include typography.body-sm-reg;\n\tcolor: var(--color-font-main);\n\n\t&.required::after {\n\t\t@include typography.body-sm-reg;\n\t\tcontent: '*';\n\t\tposition: relative;\n\t\ttop: -1px;\n\t\tright: -1px;\n\t\tcolor: var(--color-icon-danger);\n\t}\n\n\t&.disabled {\n\t\tcolor: var(--color-background-disabled);\n\n\t\t&::after {\n\t\t\tcolor: var(--color-font-disabled);\n\t\t}\n\t}\n}\n\n.endAdornment {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.description {\n\t@include typography.p-s;\n\tcolor: var(--neutral-2);\n\tline-height: $form-control-description-line-height;\n\tmax-height: $form-control-description-max-height;\n\toverflow: hidden;\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: $form-control-description-max-lines;\n\t-webkit-box-orient: vertical;\n\tword-wrap: break-word;\n}\n\n.controlWrapper {\n\tposition: relative;\n\n\t&.input {\n\t\t.control {\n\t\t\tpadding: 7px 16px;\n\t\t\tline-height: 24px;\n\t\t\tfont-style: normal;\n\t\t}\n\n\t\t.icon {\n\t\t\ttop: 50%;\n\t\t\ttransform: translateY(-50%);\n\t\t}\n\t}\n\n\t&.textarea {\n\t\t.control {\n\t\t\tpadding: 12px 16px;\n\t\t\tmin-height: 100px;\n\n\t\t\t&:disabled {\n\t\t\t\tresize: none;\n\t\t\t}\n\t\t}\n\n\t\t.icon {\n\t\t\ttop: 10px;\n\t\t}\n\t}\n\n\t.control.withIcon {\n\t\tpadding-left: 40px;\n\t}\n\n\t.icon {\n\t\tposition: absolute;\n\t\tpointer-events: none;\n\t\tcolor: var(--neutral-3);\n\t}\n\n\t.icon {\n\t\tleft: 12px;\n\t}\n}\n\n.message {\n\t@include typography.body-xs-reg;\n\tcolor: var(--color-font-secondary);\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tpadding-top: 2px;\n}\n","import { type ComponentType, createContext, useContext, useId } from 'react';\nimport type React from 'react';\nimport classNames from 'classnames';\nimport { DsIcon } from '../ds-icon';\nimport { DsSelect } from '../ds-select';\nimport { DsTextInput } from '../ds-text-input';\nimport { DsTextarea } from '../ds-textarea';\nimport { DsNumberInput } from '../ds-number-input';\nimport { DsPasswordInput } from '../ds-password-input';\nimport type { DsFormControlDescriptionProps, DsFormControlProps } from './ds-form-control.types';\nimport styles from './ds-form-control.module.scss';\n\nconst FormControlContext = createContext<{ controlId: string } | null>(null);\n\nconst useFormControlContext = () => {\n\tconst context = useContext(FormControlContext);\n\tif (!context) {\n\t\tthrow new Error('useFormControlContext must be used within DsFormControl');\n\t}\n\treturn context;\n};\n\n/**\n * HOC that automatically injects the controlId from form control context\n * into any component that expects an 'id' prop.\n *\n * @param Component - The component to wrap with form control context\n * @returns A new component that automatically receives the controlId\n */\nconst controlify = <TProps extends { id?: string }>(Component: ComponentType<TProps>) => {\n\treturn function WrappedFormControl(props: TProps) {\n\t\tconst { controlId } = useFormControlContext();\n\t\treturn <Component id={controlId} {...props} />;\n\t};\n};\n\nconst DsFormControlDescription: React.FC<DsFormControlDescriptionProps> = ({ children, className }) => {\n\treturn <div className={classNames(styles.description, className)}>{children}</div>;\n};\n\nconst DsFormControl = ({\n\tid,\n\tstatus,\n\tlabel,\n\trequired = false,\n\tslots,\n\tmessage,\n\tmessageIcon = 'info',\n\tclassName,\n\tstyle,\n\tchildren,\n}: DsFormControlProps) => {\n\tconst generatedId = useId();\n\tconst controlId = id || generatedId;\n\n\treturn (\n\t\t<FormControlContext.Provider value={{ controlId }}>\n\t\t\t<div\n\t\t\t\tclassName={classNames(styles.container, status && message && styles[status], className)}\n\t\t\t\tstyle={style}\n\t\t\t>\n\t\t\t\t<div className={styles.labelContainer}>\n\t\t\t\t\t<label\n\t\t\t\t\t\thtmlFor={controlId}\n\t\t\t\t\t\tclassName={classNames(styles.label, {\n\t\t\t\t\t\t\t[styles.required]: required,\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</label>\n\t\t\t\t\t{slots?.endAdornment && <div className={styles.endAdornment}>{slots.endAdornment}</div>}\n\t\t\t\t</div>\n\n\t\t\t\t{children}\n\n\t\t\t\t{message && (\n\t\t\t\t\t<div className={styles.message}>\n\t\t\t\t\t\t<DsIcon icon={messageIcon} size=\"tiny\" filled />\n\t\t\t\t\t\t<span className={styles.messageText}>{message}</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</FormControlContext.Provider>\n\t);\n};\n\nDsFormControl.TextInput = controlify(DsTextInput);\nDsFormControl.NumberInput = controlify(DsNumberInput);\nDsFormControl.PasswordInput = controlify(DsPasswordInput);\nDsFormControl.Textarea = controlify(DsTextarea);\nDsFormControl.Select = controlify(DsSelect);\nDsFormControl.Description = DsFormControlDescription;\n\nexport default DsFormControl;\n","import type React from 'react';\nimport type { IconType } from '../ds-icon';\n\nexport const controlStatuses = ['info', 'success', 'error', 'warning'] as const;\nexport type ControlStatus = (typeof controlStatuses)[number];\n\nexport interface DsFormControlProps extends React.PropsWithChildren {\n\t/**\n\t * Unique identifier for the control\n\t */\n\tid?: string;\n\t/**\n\t * Visual status\n\t */\n\tstatus?: ControlStatus;\n\t/**\n\t * Label text\n\t */\n\tlabel: string;\n\t/**\n\t * Marks the field as required\n\t */\n\trequired?: boolean;\n\n\tslots?: {\n\t\t/**\n\t\t * Adornment to display at the end of the label\n\t\t */\n\t\tendAdornment?: React.ReactNode;\n\t};\n\t/**\n\t * Message under the control\n\t */\n\tmessage?: string;\n\t/**\n\t * Icon shown next to message\n\t */\n\tmessageIcon?: IconType;\n\t/**\n\t * Additional CSS class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Additional styles to apply to the component\n\t */\n\tstyle?: React.CSSProperties;\n}\n\nexport interface DsFormControlDescriptionProps {\n\t/**\n\t * The description content\n\t */\n\tchildren: React.ReactNode;\n\t/**\n\t * Additional CSS class names\n\t */\n\tclassName?: string;\n}\n","import type React from 'react';\nimport classNames from 'classnames';\nimport type { DsGridItemProps, DsGridProps } from './ds-grid.types';\n\n/**\n * Design system Grid component\n */\nexport const DsGrid: React.FC<DsGridProps> = ({ children, columns, rows, className }) => {\n\tconst gridClass = classNames(\n\t\t'ds-grid',\n\t\t{\n\t\t\t[`ds-grid-cols-${String(columns)}`]: columns,\n\t\t\t[`ds-grid-rows-${String(rows)}`]: rows,\n\t\t},\n\t\tclassName,\n\t);\n\n\treturn <div className={gridClass}>{children}</div>;\n};\n\n/**\n * Design system GridItem component\n */\nexport const DsGridItem: React.FC<DsGridItemProps> = ({\n\tchildren,\n\tcolSpan,\n\tcolStart,\n\trowSpan,\n\trowStart,\n\tclassName,\n}) => {\n\tconst gridItemClass = classNames(\n\t\t{\n\t\t\t[`ds-grid-col-span-${String(colSpan)}`]: colSpan,\n\t\t\t[`ds-grid-col-start-${String(colStart)}`]: colStart,\n\t\t\t[`ds-grid-row-span-${String(rowSpan)}`]: rowSpan,\n\t\t\t[`ds-grid-row-start-${String(rowStart)}`]: rowStart,\n\t\t},\n\t\tclassName,\n\t);\n\n\treturn <div className={gridItemClass}>{children}</div>;\n};\n","@use '../../styles/shared/modal' as shared;\n\n$pad-x: 24px;\n$pad-y: 16px;\n$max-width: 90vw;\n$max-height: 90vh;\n\n.overlay {\n\t@include shared.overlay-base;\n}\n\n.modal {\n\t@include shared.modal-base;\n}\n\n.content {\n\t@include shared.content-base;\n\theight: 100%;\n}\n\n.header,\n.footer,\n.body {\n\tpadding: $pad-y $pad-x;\n}\n\n.header {\n\t@include shared.header-base;\n}\n\n.footer {\n\t@include shared.footer-base;\n\tdisplay: flex;\n}\n\n.title {\n\t@include shared.title-base;\n}\n\n.body {\n\t@include shared.body-base;\n}\n\n.actions {\n\t@include shared.actions-base;\n\tmargin-left: auto;\n}\n\n// width classes derived from DS grid\n.modal {\n\tinline-size: min(var(--col-span-6), $max-width);\n}\n\n.modal.cols-1 {\n\tinline-size: min(var(--col-span-1), $max-width);\n}\n\n.modal.cols-2 {\n\tinline-size: min(var(--col-span-2), $max-width);\n}\n\n.modal.cols-3 {\n\tinline-size: min(var(--col-span-3), $max-width);\n}\n\n.modal.cols-4 {\n\tinline-size: min(var(--col-span-4), $max-width);\n}\n\n.modal.cols-5 {\n\tinline-size: min(var(--col-span-5), $max-width);\n}\n\n.modal.cols-6 {\n\tinline-size: min(var(--col-span-6), $max-width);\n}\n\n.modal.cols-7 {\n\tinline-size: min(var(--col-span-7), $max-width);\n}\n\n.modal.cols-8 {\n\tinline-size: min(var(--col-span-8), $max-width);\n}\n\n.modal.cols-9 {\n\tinline-size: min(var(--col-span-9), $max-width);\n}\n\n.modal.cols-10 {\n\tinline-size: min(var(--col-span-10), $max-width);\n}\n\n.modal.cols-11 {\n\tinline-size: min(var(--col-span-11), $max-width);\n}\n\n.modal.cols-12 {\n\tinline-size: min(var(--col-span-12), $max-width);\n}\n","import type { CSSProperties, ReactNode } from 'react';\nimport { Dialog } from '@ark-ui/react/dialog';\nimport { Portal } from '@ark-ui/react/portal';\nimport classNames from 'classnames';\nimport type { DsModalProps } from './ds-modal.types';\nimport styles from './ds-modal.module.scss';\nimport { DsIcon } from '../ds-icon';\nimport { DsTypography } from '../ds-typography';\n\n/**\n * Composable modal dialog.\n * Supports custom header, footer, and body content with grid-based sizing.\n * Use columns prop to control modal width (1-12 grid columns).\n */\nconst DsModal = ({\n\topen,\n\tonOpenChange,\n\tcolumns = 6,\n\tstyle,\n\tclassName,\n\tmodal = true,\n\tcloseOnEscape,\n\tcloseOnInteractOutside = false,\n\tchildren,\n}: DsModalProps) => {\n\tconst handleOpenChange = (details: { open: boolean }) => {\n\t\tonOpenChange(details.open);\n\t};\n\n\treturn (\n\t\t<Dialog.Root\n\t\t\topen={open}\n\t\t\tonOpenChange={handleOpenChange}\n\t\t\tmodal={modal}\n\t\t\tcloseOnEscape={closeOnEscape}\n\t\t\tcloseOnInteractOutside={closeOnInteractOutside}\n\t\t>\n\t\t\t<Portal>\n\t\t\t\t<Dialog.Backdrop className={styles.overlay} />\n\t\t\t\t<Dialog.Positioner>\n\t\t\t\t\t<Dialog.Content\n\t\t\t\t\t\tstyle={style}\n\t\t\t\t\t\tclassName={classNames(styles.modal, styles[`cols-${String(columns)}`], className)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className={classNames(styles.content)}>{children}</div>\n\t\t\t\t\t</Dialog.Content>\n\t\t\t\t</Dialog.Positioner>\n\t\t\t</Portal>\n\t\t</Dialog.Root>\n\t);\n};\n\nconst Header = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.header, className)}>\n\t\t{children}\n\t</div>\n);\n\nconst Title = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<Dialog.Title className={classNames(styles.title, className)} style={style} asChild>\n\t\t<DsTypography variant=\"heading3\">{children}</DsTypography>\n\t</Dialog.Title>\n);\n\nconst CloseTrigger = ({ style, className }: { style?: CSSProperties; className?: string }) => (\n\t<Dialog.CloseTrigger style={style} className={className}>\n\t\t<DsIcon icon=\"close\" size=\"small\"></DsIcon>\n\t</Dialog.CloseTrigger>\n);\n\nconst Body = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.body, className)}>\n\t\t{children}\n\t</div>\n);\n\nconst Footer = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.footer, className)}>\n\t\t{children}\n\t</div>\n);\n\nconst Actions = ({\n\tstyle,\n\tclassName,\n\tchildren,\n}: {\n\tstyle?: CSSProperties;\n\tclassName?: string;\n\tchildren: ReactNode;\n}) => (\n\t<div style={style} className={classNames(styles.actions, className)}>\n\t\t{children}\n\t</div>\n);\n\nDsModal.Header = Header;\nDsModal.Title = Title;\nDsModal.CloseTrigger = CloseTrigger;\nDsModal.Body = Body;\nDsModal.Footer = Footer;\nDsModal.Actions = Actions;\n\nexport default DsModal;\n",".root {\n\tposition: relative;\n\tbackground: var(--white);\n\tpadding: var(--spacing-6);\n\twidth: 340px;\n\tborder-inline-end: 1px solid transparent;\n\n\t&[data-state='open']:hover,\n\t&[data-state='open']:focus-within {\n\t\tborder-color: var(--color-border);\n\t}\n\n\t&[data-state='closed'] {\n\t\tdisplay: none;\n\t}\n\n\t&.variantFloating {\n\t\tposition: absolute;\n\t\tinset-inline-start: var(--spacing-3);\n\t\ttop: var(--spacing-3);\n\t\tborder: none;\n\t\tborder-radius: var(--spacing-2);\n\t\tfilter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.22));\n\t}\n\n\t&.disablePadding {\n\t\tpadding: 0;\n\t}\n}\n\n.trigger {\n\t--size: 28px;\n\n\tposition: absolute;\n\tcursor: pointer;\n\tuser-select: none;\n\tdisplay: none;\n\theight: var(--size);\n\twidth: var(--size);\n\tpadding: 1px;\n\tborder: 1px solid var(--color-border-secondary);\n\tborder-radius: 100%;\n\tbackground: var(--white);\n\tcolor: var(--color-icon-secondary);\n\ttop: var(--spacing-6);\n\tinset-inline-start: 100%;\n\tmargin-inline-start: calc(var(--size) / -2);\n\n\t&[data-state='closed'],\n\t&.triggerCollapsed {\n\t\trotate: y 180deg;\n\t}\n\n\t.root:hover &,\n\t.root:focus-within & {\n\t\tdisplay: flex;\n\t}\n\n\t&:hover,\n\t&:focus {\n\t\tcolor: var(--color-icon-primary);\n\t\tborder-color: var(--color-border-action-primary);\n\t\toutline: none;\n\t\tbackground: var(--color-background-action-tertiary);\n\n\t\t.root:has(&) {\n\t\t\tborder-color: var(--color-border-action-primary);\n\n\t\t\t// Add an inset single-sided border on hover without affecting the layout.\n\t\t\t&.variantDocked[data-state='open']::before {\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\theight: 100%;\n\t\t\t\twidth: 1px;\n\t\t\t\ttop: 0;\n\t\t\t\tinset-inline-end: 0;\n\t\t\t\tbackground: var(--color-border-action-primary);\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Increase surface size for better clickability.\n\t&::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tinset: calc(-1 * var(--spacing-1));\n\t}\n\n\t.root.variantFloating & {\n\t\ttop: 50%;\n\t\ttransform: translateY(-50%);\n\t}\n}\n","import * as Collapsible from '@radix-ui/react-collapsible';\nimport classnames from 'classnames';\nimport styles from './ds-panel.module.scss';\nimport { DsIcon } from '../ds-icon';\nimport type { DsPanelCollapseButtonProps, DsPanelProps } from './ds-panel.types';\n\nexport function DsPanel({\n\topen,\n\tonOpenChange,\n\tchildren,\n\tclassName,\n\tslotProps,\n\tvariant = 'docked',\n\tdisablePadding = false,\n\t...props\n}: DsPanelProps) {\n\treturn (\n\t\t<Collapsible.Root\n\t\t\topen={open}\n\t\t\tonOpenChange={onOpenChange}\n\t\t\tclassName={classnames(styles.root, className, {\n\t\t\t\t[styles.variantDocked]: variant === 'docked',\n\t\t\t\t[styles.variantFloating]: variant === 'floating',\n\t\t\t\t[styles.disablePadding]: disablePadding,\n\t\t\t})}\n\t\t\t{...props}\n\t\t>\n\t\t\t<DsPanelCollapseButton {...slotProps?.collapseButton} />\n\t\t\t{children}\n\t\t</Collapsible.Root>\n\t);\n}\n\nfunction DsPanelCollapseButton({ collapsed, ...props }: DsPanelCollapseButtonProps) {\n\treturn (\n\t\t<Collapsible.Trigger\n\t\t\tclassName={classnames(styles.trigger, {\n\t\t\t\t[styles.triggerCollapsed]: collapsed,\n\t\t\t})}\n\t\t\taria-label=\"Toggle panel\"\n\t\t\t{...props}\n\t\t>\n\t\t\t<DsIcon icon=\"arrow_circle_left\" variant=\"outlined\" />\n\t\t</Collapsible.Trigger>\n\t);\n}\n","@use '../../styles/typography';\n\n.content {\n\twidth: max-content;\n\t// approx. 2 columns (64 * 2)\n\tmin-width: 128px;\n\t// approx. 6 columns (64 * 6)\n\tmax-width: 384px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 12px;\n\tbox-shadow: 0 1.25px 4px 0 rgba(0, 0, 0, 0.25);\n\tborder-radius: 2px;\n\tbackground: var(--white);\n\tpadding: 12px;\n}\n\n.arrow {\n\tfill: var(--white);\n\tfilter: drop-shadow(0 3px 2px rgba(0, 0, 0, 0.1));\n\twidth: 18px;\n\theight: 10px;\n}\n","import type React from 'react';\nimport * as Popover from '@radix-ui/react-popover';\nimport classNames from 'classnames';\nimport styles from './ds-popover.module.scss';\nimport type { DsPopoverProps } from './ds-popover.types';\n\nconst DsPopover: React.FC<DsPopoverProps> = ({\n\ttrigger,\n\tchildren,\n\tclassName,\n\talign = 'center',\n\tside = 'top',\n}) => {\n\treturn (\n\t\t<Popover.Root>\n\t\t\t<Popover.Trigger asChild>{trigger}</Popover.Trigger>\n\t\t\t<Popover.Portal>\n\t\t\t\t<Popover.Content\n\t\t\t\t\tside={side}\n\t\t\t\t\talign={align}\n\t\t\t\t\tsideOffset={8}\n\t\t\t\t\tcollisionPadding={16}\n\t\t\t\t\tclassName={classNames(styles.content, className)}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t\t<Popover.Arrow className={styles.arrow} />\n\t\t\t\t</Popover.Content>\n\t\t\t</Popover.Portal>\n\t\t</Popover.Root>\n\t);\n};\n\nexport default DsPopover;\n","@use '../../styles/typography';\n\n.radioGroupRoot {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 12px;\n}\n\n.radioItemContainer {\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 4px;\n\tcursor: pointer;\n\tpadding-right: 1px;\n\tborder: 1px solid transparent;\n\tborder-radius: 4px;\n\n\t&:has([data-disabled]) {\n\t\tcursor: not-allowed;\n\n\t\t.labelInfo {\n\t\t\tcolor: var(--color-secondary-500-net-4);\n\t\t}\n\t}\n\n\t&:has([data-state='checked']:focus-visible) {\n\t\tborder-radius: 4px;\n\t\tborder-color: var(--color-primary-700-net-1);\n\t}\n\n\t&:has([data-state='unchecked']:focus-visible) {\n\t\tborder-color: var(--color-primary-800);\n\t}\n\n\t&:has(.labelInfo) {\n\t\tmargin-bottom: 4px;\n\t}\n}\n\n.radioItem {\n\tall: unset;\n\tposition: relative;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder: 2px solid transparent;\n\tborder-radius: 50%;\n\ttransition:\n\t\tbackground-color 0.2s ease-in-out,\n\t\tborder-color 0.2s ease-in-out;\n\n\t.radioItemWrapper {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\theight: 16px;\n\t\twidth: 16px;\n\t\tborder: 2px solid var(--color-secondary-500-net-4);\n\t\tpadding: 2px;\n\t\tborder-radius: 50%;\n\t\tbackground: none;\n\t}\n\n\t&[data-state='checked'],\n\t[data-state='checked'] > & {\n\t\t.radioItemWrapper {\n\t\t\tborder-color: var(--color-primary-700-default);\n\t\t}\n\n\t\t&:hover {\n\t\t\tborder-color: var(--color-primary-100);\n\t\t}\n\t}\n\n\t&[data-state='checked'][data-disabled],\n\t[data-state='checked'][data-disabled] > & {\n\t\t.radioIndicator {\n\t\t\tbackground: var(--color-secondary-300);\n\t\t}\n\t}\n\n\t&[data-state='unchecked'],\n\t[data-state='unchecked'] > & {\n\t\t&:hover {\n\t\t\tborder-color: var(--color-secondary-100);\n\t\t\tbackground-color: var(--color-secondary-100);\n\t\t}\n\t}\n\n\t&[data-disabled],\n\t[data-disabled] > & {\n\t\tpointer-events: none;\n\n\t\t& + label {\n\t\t\tpointer-events: none;\n\t\t}\n\n\t\t.radioItemWrapper {\n\t\t\tborder-color: var(--color-secondary-300);\n\t\t}\n\t}\n}\n\n.radioIndicator {\n\twidth: 8px;\n\theight: 8px;\n\tbackground: var(--color-primary-700-default);\n\tborder-radius: 50%;\n\n\t&[data-part='indicator'] {\n\t\topacity: 0;\n\t\ttransform: scale(0);\n\t\ttransition:\n\t\t\topacity 0.15s ease-in-out,\n\t\t\ttransform 0.15s ease-in-out;\n\n\t\t[data-state='checked'] & {\n\t\t\topacity: 1;\n\t\t\ttransform: scale(1);\n\t\t}\n\t}\n}\n\n.radioLabel {\n\t@include typography.body-sm-reg;\n\tcolor: var(--color-secondary-800);\n\tcursor: pointer;\n}\n\n.labelInfo {\n\t@include typography.body-xs-reg;\n\t@include typography.ellipsis;\n\tposition: absolute;\n\tcolor: var(--color-secondary-600-net-2);\n\tcursor: pointer;\n\twidth: 100%;\n}\n","import type React from 'react';\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport { RadioGroup } from '@ark-ui/react/radio-group';\nimport classNames from 'classnames';\nimport styles from './ds-radio-group.module.scss';\nimport type {\n\tDsRadioGroupItemProps,\n\tDsRadioGroupLegacyProps,\n\tDsRadioGroupRootProps,\n} from './ds-radio-group.types';\n\n/**\n * Root component - provides radio group context\n */\nconst Root: React.FC<DsRadioGroupRootProps> = ({ className, children, onValueChange, ...props }) => (\n\t<RadioGroup.Root\n\t\tclassName={classNames(styles.radioGroupRoot, className)}\n\t\tonValueChange={(details) => onValueChange?.(details.value)}\n\t\t{...props}\n\t>\n\t\t{children}\n\t</RadioGroup.Root>\n);\n\n/**\n * Item component - renders a single radio button with optional label\n */\nconst Item: React.FC<DsRadioGroupItemProps> = ({\n\tvalue,\n\tlabel,\n\tlabelInfo,\n\tclassName,\n\tstyle,\n\tchildren,\n\t...props\n}) => {\n\treturn (\n\t\t<RadioGroup.Item\n\t\t\tvalue={value}\n\t\t\tclassName={classNames(styles.radioItemContainer, className)}\n\t\t\tstyle={style}\n\t\t\t{...props}\n\t\t>\n\t\t\t<RadioGroup.ItemControl className={styles.radioItem}>\n\t\t\t\t<div className={styles.radioItemWrapper}>\n\t\t\t\t\t<div className={styles.radioIndicator} data-part=\"indicator\" />\n\t\t\t\t</div>\n\t\t\t</RadioGroup.ItemControl>\n\t\t\t<RadioGroup.ItemHiddenInput />\n\t\t\t{label ? (\n\t\t\t\t<RadioGroup.ItemText className={styles.radioLabel}>\n\t\t\t\t\t{label}\n\t\t\t\t\t{labelInfo && <div className={styles.labelInfo}>{labelInfo}</div>}\n\t\t\t\t</RadioGroup.ItemText>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t)}\n\t\t</RadioGroup.Item>\n\t);\n};\n\n/**\n * DEPRECATED: Legacy DsRadioGroup component with options array\n * Use compound component pattern instead: DsRadioGroup.Root + DsRadioGroup.Item\n * @deprecated\n */\nexport const DsRadioGroupLegacy: React.FC<DsRadioGroupLegacyProps> = ({\n\toptions,\n\tvalue,\n\tdefaultValue,\n\tonValueChange,\n\tclassName,\n\t...props\n}) => (\n\t<RadioGroupPrimitive.Root\n\t\tclassName={classNames(styles.radioGroupRoot, className)}\n\t\tvalue={value}\n\t\tdefaultValue={defaultValue}\n\t\tonValueChange={onValueChange}\n\t\t{...props}\n\t>\n\t\t{options.map((option) => (\n\t\t\t<div key={option.value} className={styles.radioItemContainer}>\n\t\t\t\t<RadioGroupPrimitive.Item\n\t\t\t\t\tclassName={styles.radioItem}\n\t\t\t\t\tvalue={option.value}\n\t\t\t\t\tdisabled={option.disabled}\n\t\t\t\t\tid={option.value}\n\t\t\t\t>\n\t\t\t\t\t<div className={styles.radioItemWrapper}>\n\t\t\t\t\t\t<RadioGroupPrimitive.Indicator className={styles.radioIndicator} />\n\t\t\t\t\t</div>\n\t\t\t\t</RadioGroupPrimitive.Item>\n\t\t\t\t<label className={styles.radioLabel} htmlFor={option.value}>\n\t\t\t\t\t{option.label}\n\t\t\t\t\t{option.labelInfo && <div className={styles.labelInfo}>{option.labelInfo}</div>}\n\t\t\t\t</label>\n\t\t\t</div>\n\t\t))}\n\t</RadioGroupPrimitive.Root>\n);\n\n/**\n * Design system RadioGroup component\n *\n * @example\n * <DsRadioGroup.Root value={value} onValueChange={setValue}>\n * <DsRadioGroup.Item value=\"option1\" label=\"Option 1\" />\n * <DsRadioGroup.Item value=\"option2\" label=\"Option 2\" />\n * </DsRadioGroup.Root>\n */\nexport const DsRadioGroup = {\n\tRoot,\n\tItem,\n};\n","@use '../../styles/typography';\n\n.container {\n\tdisplay: flex;\n\tgap: 8px;\n\n\t.tab {\n\t\t@include typography.body-sm-reg;\n\t\t@include typography.ellipsis;\n\t\tdisplay: flex;\n\t\theight: 48px;\n\t\tpadding: var(--spacing-xs) var(--spacing-sm);\n\t\talign-items: center;\n\t\tgap: 8px;\n\t\tborder-radius: 4px;\n\t\tborder: 1px solid var(--color-border);\n\t\tbackground: var(--color-background);\n\t\tmin-width: 250px;\n\n\t\t&.active {\n\t\t\t@include typography.body-sm-md;\n\t\t\tborder-color: var(--color-border-action-secondary);\n\n\t\t\t.icon {\n\t\t\t\tcolor: var(--color-background);\n\t\t\t\tbackground: var(--tab-color, var(--color-background-action));\n\t\t\t}\n\n\t\t\t.value {\n\t\t\t\tcolor: var(--color-font-main);\n\t\t\t}\n\t\t}\n\n\t\t&:hover:not(.active):not(:disabled) {\n\t\t\tborder-color: var(--color-border-action-primary-hover);\n\t\t}\n\n\t\t&:focus {\n\t\t\toutline: auto var(--color-border-action-primary-hover);\n\t\t}\n\n\t\t&.disabled {\n\t\t\topacity: 0.5;\n\t\t\tcursor: not-allowed;\n\t\t}\n\n\t\t.icon {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\tcolor: var(--color-background-action);\n\t\t\tbackground: var(--color-background-tertiary);\n\t\t\tborder-radius: 50%;\n\t\t\twidth: var(--icon-width-extra-large);\n\t\t\theight: var(--icon-width-extra-large);\n\t\t}\n\n\t\t.label {\n\t\t\tflex: 1;\n\t\t\twhite-space: nowrap;\n\t\t\ttext-align: start;\n\t\t}\n\n\t\t.content {\n\t\t\tpadding-right: 4px;\n\t\t\tcolor: var(--color-font-secondary);\n\t\t}\n\t}\n}\n","import { type CSSProperties, createContext, useContext } from 'react';\nimport type React from 'react';\nimport classNames from 'classnames';\nimport { DsIcon } from '../ds-icon';\nimport styles from './ds-smart-tabs.module.scss';\nimport type { Color, DsSmartTabProps, DsSmartTabsProps } from './ds-smart-tabs.types';\n\nconst colorMap: Record<Color, string> = {\n\t'dark-blue': 'var(--color-background-info-strong)',\n\t'light-blue': 'var(--color-background-active-moderate)',\n\t'dark-gray': 'var(--color-background-brand)',\n\tgreen: 'var(--color-background-success-strong)',\n\tfuchsia: 'var(--color-data-fuchsia)',\n\tblue: 'var(--color-icon-information-secondary)',\n\tgray: 'var(--color-icon-information-main)',\n\tred: 'var(--color-icon-warning)',\n\tamber: 'var(--color-data-amber)',\n};\n\ninterface SmartTabsContextType {\n\tactiveTab: string;\n\tonTabClick: (value: string) => void;\n}\n\nconst SmartTabsContext = createContext<SmartTabsContextType | null>(null);\n\nconst useSmartTabsContext = () => {\n\tconst context = useContext(SmartTabsContext);\n\tif (!context) {\n\t\tthrow new Error('DsTab must be used within DsSmartTabs');\n\t}\n\treturn context;\n};\n\n/**\n * Individual tab component\n */\nconst DsSmartTab: React.FC<DsSmartTabProps> = ({\n\tlabel,\n\tvalue,\n\ticon,\n\tcontent,\n\tcolor,\n\tdisabled,\n\tclassName,\n\tstyle = {},\n\t...props\n}) => {\n\tconst { activeTab, onTabClick } = useSmartTabsContext();\n\n\tconst tabClass = classNames(\n\t\tstyles.tab,\n\t\t{\n\t\t\t[styles.active]: activeTab === value,\n\t\t\t[styles.disabled]: disabled,\n\t\t},\n\t\tclassName,\n\t);\n\tconst tabStyle = {\n\t\t...style,\n\t\t...(color && ({ '--tab-color': colorMap[color] } as CSSProperties)),\n\t};\n\n\tconst handleClick = () => {\n\t\tif (!disabled) {\n\t\t\tonTabClick(value);\n\t\t}\n\t};\n\n\treturn (\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclassName={tabClass}\n\t\t\tstyle={tabStyle}\n\t\t\tonClick={handleClick}\n\t\t\tdisabled={disabled}\n\t\t\t{...props}\n\t\t>\n\t\t\t<DsIcon className={styles.icon} icon={icon} size=\"small\" />\n\t\t\t<span className={styles.label}>{label}</span>\n\t\t\t<span className={styles.content}>{content}</span>\n\t\t</button>\n\t);\n};\n\n/**\n * Design system SmartTabs component\n */\nconst DsSmartTabs = ({\n\tactiveTab,\n\tonTabClick,\n\tclassName,\n\tstyle = {},\n\tchildren,\n\t...props\n}: DsSmartTabsProps) => {\n\tconst contextValue: SmartTabsContextType = {\n\t\tactiveTab,\n\t\tonTabClick,\n\t};\n\n\treturn (\n\t\t<SmartTabsContext.Provider value={contextValue}>\n\t\t\t<div className={classNames(styles.container, className)} style={style} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</SmartTabsContext.Provider>\n\t);\n};\n\nDsSmartTabs.Tab = DsSmartTab;\n\nexport default DsSmartTabs;\n","import type { ReactNode } from 'react';\nimport type React from 'react';\nimport type { IconType } from '../ds-icon/ds-icon.types';\n\nexport const colors = [\n\t'dark-blue',\n\t'light-blue',\n\t'dark-gray',\n\t'green',\n\t'fuchsia',\n\t'blue',\n\t'gray',\n\t'red',\n\t'amber',\n] as const;\nexport type Color = (typeof colors)[number];\n\nexport interface DsSmartTabProps {\n\t/**\n\t * The label of the tab\n\t */\n\tlabel: string;\n\t/**\n\t * The value of the tab (used for filtering/identification)\n\t */\n\tvalue: string;\n\t/**\n\t * The icon to display in the tab\n\t */\n\ticon: IconType;\n\t/**\n\t * The content to display in the tab (typically a count or text)\n\t */\n\tcontent: number | string;\n\t/**\n\t * Color for the tab (limited to predefined color values)\n\t */\n\tcolor?: Color;\n\t/**\n\t * Whether the tab is disabled\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Additional CSS class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Additional styles to apply to the tab\n\t */\n\tstyle?: React.CSSProperties;\n}\n\nexport interface DsSmartTabsProps {\n\t/**\n\t * Currently active tab value\n\t */\n\tactiveTab: string;\n\t/**\n\t * Callback function when a tab is clicked\n\t */\n\tonTabClick: (value: string) => void;\n\t/**\n\t * Additional CSS class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Additional styles to apply to the component\n\t */\n\tstyle?: React.CSSProperties;\n\t/**\n\t * The tab components as children\n\t */\n\tchildren: ReactNode;\n}\n","@use '../../styles/typography';\n\n.spinnerContainer {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.progressCircle {\n\tbutton &,\n\t[role='button'] & {\n\t\twidth: 1em;\n\t\theight: 1em;\n\t}\n}\n\n.spin {\n\tanimation: spin 2s linear infinite;\n}\n\n.progressArc {\n\ttransition: stroke-dasharray 0.3s ease-in-out;\n\tstroke: var(--color-background-selected);\n\n\tbutton &,\n\t[role='button'] & {\n\t\tstroke: currentColor;\n\t}\n}\n\n@keyframes spin {\n\t0% {\n\t\ttransform: rotate(0deg);\n\t}\n\n\t100% {\n\t\ttransform: rotate(360deg);\n\t}\n}\n","import type React from 'react';\nimport classNames from 'classnames';\nimport styles from './ds-spinner.module.scss';\nimport type { DsSpinnerProps, SpinnerSize } from './ds-spinner.types';\n\nconst sizeMap: Record<SpinnerSize, number> = {\n\tsmall: 50,\n\tmedium: 75,\n\tlarge: 100,\n};\n\nconst widthMap: Record<SpinnerSize, number> = {\n\tsmall: 4,\n\tmedium: 7,\n\tlarge: 9,\n};\n\n/**\n * Design system Spinner component\n */\nconst DsSpinner: React.FC<DsSpinnerProps> = ({ size = 'medium', className, style = {}, ...props }) => {\n\tconst actualSize = sizeMap[size];\n\tconst actualWidth = widthMap[size];\n\tconst radius = (actualSize - actualWidth) / 2;\n\tconst circumference = 2 * Math.PI * radius;\n\tconst strokeDasharray = `${String(0.25 * circumference)} ${String(circumference)}`;\n\n\treturn (\n\t\t<div className={classNames(styles.spinnerContainer, styles[size], className)} style={style} {...props}>\n\t\t\t<svg\n\t\t\t\tclassName={classNames(styles.progressCircle, styles.spin)}\n\t\t\t\twidth={actualSize}\n\t\t\t\theight={actualSize}\n\t\t\t\tviewBox={`0 0 ${String(actualSize)} ${String(actualSize)}`}\n\t\t\t>\n\t\t\t\t<circle\n\t\t\t\t\tclassName={styles.progressArc}\n\t\t\t\t\tcx={actualSize / 2}\n\t\t\t\t\tcy={actualSize / 2}\n\t\t\t\t\tr={radius}\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstrokeWidth={actualWidth}\n\t\t\t\t\tstrokeDasharray={strokeDasharray}\n\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t/>\n\t\t\t</svg>\n\t\t</div>\n\t);\n};\n\nexport default DsSpinner;\n","import type React from 'react';\n\nexport const spinnerSizes = ['small', 'medium', 'large'] as const;\nexport type SpinnerSize = (typeof spinnerSizes)[number];\n\nexport interface DsSpinnerProps {\n\t/**\n\t * The size of the spinner\n\t * @default 'medium'\n\t */\n\tsize?: SpinnerSize;\n\t/**\n\t * Additional CSS class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Additional styles to apply to the component\n\t */\n\tstyle?: React.CSSProperties;\n}\n","@use '../../styles/typography';\n\n@mixin status-filled($color, $background, $label-color: var(--color-font-on-action)) {\n\tcolor: $color;\n\tbackground: $background;\n\n\t.label {\n\t\tcolor: $label-color;\n\t}\n}\n\n@mixin status-ghost($color, $background) {\n\t&.ghost {\n\t\tcolor: $color;\n\t\tbackground: $background;\n\n\t\t.label {\n\t\t\tcolor: var(--color-font-main);\n\t\t}\n\t}\n}\n\n.container {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: var(--spacing-3xs) var(--spacing-standard) var(--spacing-3xs) var(--spacing-xs);\n\twidth: max-content;\n\tcolor: var(--color-icon-inverse);\n\tgap: var(--spacing-3xs);\n\tborder-radius: 100vmax;\n\n\t&.small {\n\t\tpadding: var(--spacing-4xs) var(--spacing-xs) var(--spacing-4xs) var(--spacing-3xs);\n\t\tgap: var(--spacing-4xs);\n\t}\n}\n\n.active {\n\t@include status-filled(var(--color-font-on-action), var(--color-background-success-strong));\n\t@include status-ghost(var(--color-background-success-strong), var(--color-status-bg-success));\n}\n\n.running {\n\t@include status-filled(var(--color-font-on-action), var(--color-background-active-moderate));\n\t@include status-ghost(var(--color-icon-information-secondary), var(--color-status-bg-progress));\n}\n\n.pending {\n\t@include status-filled(var(--color-font-on-action), var(--color-data-fuchsia));\n\t@include status-ghost(var(--color-data-purple), var(--color-data-light-purple));\n}\n\n.draft {\n\t@include status-filled(var(--color-font-on-action), var(--color-icon-information-main));\n\t@include status-ghost(var(--color-icon-secondary), var(--color-status-bg-neutral));\n}\n\n.inactive {\n\t@include status-filled(\n\t\tvar(--color-icon-secondary),\n\t\tvar(--color-background-disable),\n\t\tvar(--color-font-on-disabled)\n\t);\n\t@include status-ghost(var(--color-icon-secondary), var(--color-status-bg-inactive));\n}\n\n.warning {\n\t@include status-filled(var(--color-font-on-action), var(--color-background-warning-strong));\n\t@include status-ghost(var(--color-background-warning-strong), var(--color-status-bg-warning));\n}\n\n.failed {\n\t@include status-filled(var(--color-font-on-action), var(--color-background-danger-strong));\n\t@include status-ghost(var(--color-background-danger-strong-hover), var(--color-status-bg-failed));\n}\n\n.label {\n\ttext-transform: capitalize;\n}\n","import type React from 'react';\nimport classNames from 'classnames';\nimport styles from './ds-status-badge.module.scss';\nimport type { DsStatusBadgeProps } from './ds-status-badge.types';\nimport { DsIcon } from '../ds-icon';\nimport { DsTypography } from '../ds-typography';\n\n/**\n * Design system StatusBadge component\n */\nconst DsStatusBadge: React.FC<DsStatusBadgeProps> = ({\n\ticon,\n\tstatus,\n\tlabel = status,\n\tclassName,\n\tstyle,\n\tghost = false,\n\tsize = 'medium',\n\t'aria-label': ariaLabel = label,\n}) => {\n\treturn (\n\t\t<div\n\t\t\tstyle={style}\n\t\t\tclassName={classNames(\n\t\t\t\tstyles.container,\n\t\t\t\tstyles[status],\n\t\t\t\tghost && styles.ghost,\n\t\t\t\tsize === 'small' && styles.small,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\trole=\"status\"\n\t\t\taria-label={ariaLabel}\n\t\t>\n\t\t\t{icon && <DsIcon icon={icon} size=\"tiny\" filled aria-hidden=\"true\" />}\n\t\t\t<DsTypography className={styles.label} variant={ghost ? 'body-xs-md' : 'body-xs-reg'}>\n\t\t\t\t{label}\n\t\t\t</DsTypography>\n\t\t</div>\n\t);\n};\n\nexport default DsStatusBadge;\n",".step {\n\tpadding: 12px;\n\tdisplay: flex;\n\tgap: 16px;\n\tbackground: none;\n\tborder: none;\n\ttext-align: start;\n\tfont-family: inherit;\n\n\t.root.variantSingle & {\n\t\tpadding-block: 16px;\n\t\tpadding-inline-start: 12px;\n\t\tpadding-inline-end: 20px;\n\t\tborder-radius: 8px;\n\t}\n\n\t.root:not(.variantSingle) &[data-complete] {\n\t\tcursor: pointer;\n\t}\n\n\t&[data-current] {\n\t\tborder-radius: 4px;\n\t\tbackground: var(--color-background-action-secondary-hover);\n\t}\n\n\t.indicatorContainer {\n\t\tpadding: 0 2px;\n\t\tposition: relative;\n\t\tdisplay: flex;\n\n\t\t.indicator {\n\t\t\theight: 36px;\n\t\t\twidth: 36px;\n\t\t\tborder: 2px solid var(--color-border);\n\t\t\tdisplay: grid;\n\t\t\tplace-items: center;\n\t\t\tborder-radius: 100%;\n\n\t\t\t.variantSingle & {\n\t\t\t\theight: 32px;\n\t\t\t\twidth: 32px;\n\t\t\t}\n\t\t}\n\n\t\t&[data-complete] .indicator {\n\t\t\tcolor: var(--color-background-selected);\n\t\t\tborder-color: var(--color-background-selected);\n\t\t}\n\n\t\t&[data-current] .indicator {\n\t\t\tbackground: var(--color-background-selected);\n\t\t\tcolor: var(--white);\n\t\t\tborder: 3px solid var(--white);\n\t\t}\n\n\t\t.separator {\n\t\t\tposition: absolute;\n\t\t\twidth: 2px;\n\t\t\theight: calc(100% - 12px);\n\t\t\ttop: 36px;\n\t\t\tleft: 50%;\n\t\t\tmargin-left: -1px;\n\t\t\tbackground: var(--color-border);\n\n\t\t\t&[data-complete] {\n\t\t\t\tbackground: var(--color-background-selected);\n\t\t\t}\n\t\t}\n\t}\n\n\t&:last-child .indicatorContainer .separator {\n\t\tdisplay: none;\n\t}\n\n\t.stepContent {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tflex-grow: 1;\n\n\t\t&.stepContentSingle {\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t}\n\t}\n\n\t.stepLabel {\n\t\tpadding: 2px 0;\n\t\tfont-size: 16px;\n\t\tline-height: 1.5;\n\t\tfont-weight: 500;\n\t\tcolor: var(--color-font-secondary);\n\n\t\t.root.variantSingle & {\n\t\t\tfont-size: 14px;\n\t\t}\n\t}\n\n\t.stepDescription {\n\t\tmargin: 0;\n\t\tfont-size: 14px;\n\t\tline-height: 1.4;\n\t\tcolor: var(--color-background-deselected);\n\t}\n\n\t&[data-current] {\n\t\t.stepLabel {\n\t\t\tcolor: var(--color-font-action);\n\t\t}\n\n\t\t.stepDescription {\n\t\t\tcolor: var(--color-font-main);\n\t\t}\n\t}\n\n\t&[data-complete] {\n\t\t.stepLabel {\n\t\t\tcolor: var(--color-font-main);\n\t\t}\n\n\t\t.stepDescription {\n\t\t\tcolor: var(--color-font-secondary);\n\t\t}\n\t}\n\n\t.stepContent:not(.stepContentSingle) .stepActions {\n\t\tmargin-top: 12px;\n\t}\n\n\t.stepActions {\n\t\tmargin-inline-start: auto;\n\t\tdisplay: flex;\n\t\tgap: 4px;\n\t}\n}\n","import { useId } from 'react';\nimport * as steps from '@zag-js/steps';\nimport { normalizeProps, useMachine } from '@zag-js/react';\nimport type { DsStepperProps } from '../ds-stepper.types';\n\ntype UseSteps = Pick<DsStepperProps, 'activeStep' | 'onStepChange' | 'count' | 'onComplete'>;\n\nexport function useSteps({ count, activeStep, onStepChange, onComplete }: UseSteps) {\n\tconst service = useMachine(steps.machine, {\n\t\tid: useId(),\n\t\tcount,\n\t\tstep: activeStep,\n\t\tonStepChange,\n\t\tonStepComplete: onComplete,\n\t});\n\n\treturn steps.connect(service, normalizeProps);\n}\n","import { createContext, useContext } from 'react';\nimport type { DsStepperVariant } from '../ds-stepper.types';\nimport type { useSteps } from './use-steps';\n\ntype StepsContext = {\n\tstepsApi: ReturnType<typeof useSteps>;\n\tvariant: DsStepperVariant | undefined;\n};\n\nexport const StepperContext = createContext<StepsContext | null>(null);\n\nexport function useStepper() {\n\tconst context = useContext(StepperContext);\n\n\tif (!context) {\n\t\tthrow new Error('useStepper must be used within a DsStepper');\n\t}\n\n\treturn context;\n}\n","import classnames from 'classnames';\nimport styles from './ds-stepper.module.scss';\nimport { useSteps } from './hooks/use-steps';\nimport { StepperContext } from './hooks/use-stepper';\nimport type { DsStepperProps } from './ds-stepper.types';\n\nexport function DsStepper({\n\tcount,\n\tvariant,\n\tactiveStep,\n\tonStepChange,\n\tonComplete,\n\tchildren,\n}: DsStepperProps) {\n\tconst stepsApi = useSteps({ count, activeStep, onStepChange, onComplete });\n\n\treturn (\n\t\t<StepperContext.Provider\n\t\t\tvalue={{\n\t\t\t\tstepsApi,\n\t\t\t\tvariant,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\t{...stepsApi.getRootProps()}\n\t\t\t\tclassName={classnames(styles.root, {\n\t\t\t\t\t[styles.variantSingle]: variant === 'single',\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</StepperContext.Provider>\n\t);\n}\n","import type { PropsWithChildren } from 'react';\nimport { useStepper } from '../hooks/use-stepper';\nimport classnames from 'classnames';\nimport styles from '../ds-stepper.module.scss';\nimport DsIcon from '../../ds-icon/ds-icon';\n\ntype DsStepProps = PropsWithChildren<{\n\tindex: number;\n\tclassName?: string;\n}>;\n\nexport function DsStep({ index, children, className }: DsStepProps) {\n\tconst context = useStepper();\n\n\tconst { completed, current, last } = context.stepsApi.getItemState({ index });\n\n\tconst isSingleVariant = context.variant === 'single';\n\tconst isLast = last && context.stepsApi.value === index + 1;\n\n\tconst shouldHide = isSingleVariant && !current && !isLast;\n\n\tif (shouldHide) {\n\t\treturn null;\n\t}\n\n\tconst isClickable = completed && !isSingleVariant;\n\n\tconst Wrapper = isClickable ? 'button' : 'div';\n\n\tconst props = isClickable\n\t\t? {\n\t\t\t\tonClick: () => {\n\t\t\t\t\tcontext.stepsApi.setStep(index);\n\t\t\t\t},\n\t\t\t}\n\t\t: {};\n\n\treturn (\n\t\t<Wrapper\n\t\t\t{...context.stepsApi.getItemProps({ index })}\n\t\t\tdata-current={current ? '' : undefined}\n\t\t\tdata-complete={completed ? '' : undefined}\n\t\t\tclassName={classnames(styles.step, className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div {...context.stepsApi.getIndicatorProps({ index })} className={styles.indicatorContainer}>\n\t\t\t\t{completed ? (\n\t\t\t\t\t<DsIcon icon=\"check\" className={styles.indicator} />\n\t\t\t\t) : (\n\t\t\t\t\t<span className={styles.indicator}>{index + 1}</span>\n\t\t\t\t)}\n\n\t\t\t\t<div {...context.stepsApi.getSeparatorProps({ index })} className={styles.separator} />\n\t\t\t</div>\n\n\t\t\t{children}\n\t\t</Wrapper>\n\t);\n}\n","import type { PropsWithChildren } from 'react';\nimport styles from '../ds-stepper.module.scss';\n\nexport function DsStepLabel({ children }: PropsWithChildren) {\n\treturn <span className={styles.stepLabel}>{children}</span>;\n}\n","import type { PropsWithChildren } from 'react';\nimport styles from '../ds-stepper.module.scss';\n\nexport function DsStepDescription({ children }: PropsWithChildren) {\n\treturn <p className={styles.stepDescription}>{children}</p>;\n}\n","import type { ReactNode } from 'react';\nimport { useStepper } from '../hooks/use-stepper';\nimport { DsStepLabel } from './ds-step-label';\nimport { DsStepDescription } from './ds-step-description';\nimport classnames from 'classnames';\nimport styles from '../ds-stepper.module.scss';\n\ntype DsStepContentProps = {\n\tindex: number;\n\tlabel: string;\n\tdescription?: string;\n\tactions?: ReactNode;\n};\n\nexport function DsStepContent({ index, label, description, actions }: DsStepContentProps) {\n\tconst { variant, stepsApi } = useStepper();\n\tconst { current } = stepsApi.getItemState({ index });\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classnames(styles.stepContent, {\n\t\t\t\t[styles.stepContentSingle]: variant === 'single',\n\t\t\t})}\n\t\t>\n\t\t\t<DsStepLabel>{label}</DsStepLabel>\n\n\t\t\t{variant !== 'single' && description && <DsStepDescription>{description}</DsStepDescription>}\n\n\t\t\t{actions && current && <div className={styles.stepActions}>{actions}</div>}\n\t\t</div>\n\t);\n}\n","import type { PropsWithChildren } from 'react';\nimport { useStepper } from '../hooks/use-stepper';\nimport DsButton from '../../ds-button/ds-button';\n\nexport function DsNextStepButton({ children }: PropsWithChildren) {\n\tconst context = useStepper();\n\n\treturn (\n\t\t<DsButton {...context.stepsApi.getNextTriggerProps()} size=\"small\">\n\t\t\t{children}\n\t\t</DsButton>\n\t);\n}\n","@use '../../styles/typography';\n\n.container {\n\t@include typography.p-special;\n\t@include typography.medium;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 4px;\n\tpadding: 4px 8px;\n\tborder-radius: 4px;\n\twidth: max-content;\n\ttext-transform: uppercase;\n}\n\n.dot {\n\twidth: 10px;\n\theight: 10px;\n\tborder-radius: 50%;\n\tborder: 1px solid var(--white);\n}\n\n.label {\n\t@include typography.p-special;\n}\n\n.healthy {\n\tbackground: var(--utility-ok);\n\tcolor: var(--system-status-ok);\n\n\t.dot {\n\t\tbackground: var(--system-status-ok);\n\t}\n}\n\n.neutral {\n\tbackground: var(--utility-info);\n\tcolor: var(--system-status-info);\n\n\t.dot {\n\t\tbackground: var(--system-status-info);\n\t}\n}\n\n.error {\n\tbackground: var(--utility-error);\n\tcolor: var(--system-status-error);\n\n\t.dot {\n\t\tbackground: var(--system-status-error);\n\t}\n}\n\n.in-progress {\n\tbackground: var(--utility-in-progress);\n\tcolor: var(--system-status-in-progress);\n\n\t.dot {\n\t\tbackground: var(--system-status-in-progress);\n\t}\n}\n\n.pending {\n\tbackground: var(--utility-pending);\n\tcolor: var(--system-status-pending);\n\n\t.dot {\n\t\tbackground: var(--system-status-pending);\n\t}\n}\n\n.alert {\n\tbackground: var(--utility-alert);\n\tcolor: var(--system-status-alert);\n\n\t.dot {\n\t\tbackground: var(--system-status-alert);\n\t}\n}\n\n.disabled {\n\tbackground: var(--utility-disabled);\n\tcolor: var(--neutral-2);\n\n\t.dot {\n\t\tbackground: var(--neutral-2);\n\t}\n}\n","import type React from 'react';\nimport classNames from 'classnames';\nimport styles from './ds-system-status.module.scss';\nimport type { DsSystemStatusProps } from './ds-system-status.types';\n\n/**\n * @deprecated This component is deprecated. Use `DsStatusBadge` instead.\n * @see {@link ../ds-status-badge/ds-status-badge} for the replacement component.\n */\nconst defaultLabels: Record<DsSystemStatusProps['status'], string> = {\n\thealthy: 'HEALTHY',\n\tneutral: 'NEUTRAL',\n\terror: 'ERROR',\n\t'in-progress': 'IN PROGRESS',\n\tpending: 'PENDING',\n\talert: 'ALERT',\n\tdisabled: 'DISABLED',\n};\n\n/**\n * @deprecated This component is deprecated. Use `DsStatusBadge` instead.\n * @see {@link ../ds-status-badge/ds-status-badge} for the replacement component.\n */\nconst DsSystemStatus: React.FC<DsSystemStatusProps> = ({ status, label, className }) => {\n\treturn (\n\t\t<div className={classNames(styles.container, styles[status], className)}>\n\t\t\t<span className={styles.dot} />\n\t\t\t<span className={styles.label}>{label || defaultLabels[status]}</span>\n\t\t</div>\n\t);\n};\n\nexport default DsSystemStatus;\n","/**\n * @deprecated This type is deprecated. Use `DsStatusBadge` and its related types instead.\n * @see {@link ../ds-status-badge/ds-status-badge} for the replacement component.\n */\nexport const systemStatuses = [\n\t'healthy',\n\t'neutral',\n\t'error',\n\t'in-progress',\n\t'pending',\n\t'alert',\n\t'disabled',\n] as const;\n\n/**\n * @deprecated This type is deprecated. Use `DsStatus` from `ds-status-badge` instead.\n */\nexport type SystemStatus = (typeof systemStatuses)[number];\n\n/**\n * @deprecated This interface is deprecated. Use `DsStatusBadgeProps` from `ds-status-badge` instead.\n * @see {@link ../ds-status-badge/ds-status-badge.types} for the replacement interface.\n */\nexport interface DsSystemStatusProps {\n\t/**\n\t * The status of the system\n\t */\n\tstatus: SystemStatus;\n\t/**\n\t * The label to be displayed\n\t */\n\tlabel?: string;\n\t/**\n\t * Additional CSS class names\n\t */\n\tclassName?: string;\n}\n",".table {\n\twidth: 100%;\n\tcaption-side: bottom;\n\tfont-size: 0.875rem;\n\tline-height: 1.25rem;\n\tborder-collapse: separate;\n\tborder-spacing: 0;\n}\n\n.tableFooter {\n\tbackground-color: rgba(241, 245, 249, 0.5);\n\tfont-weight: 500;\n}\n\n.tableHead {\n\t&:has([role='checkbox']) {\n\t\tpadding-right: 0;\n\t}\n}\n\n.tableCell {\n\t&:has([role='checkbox']) {\n\t\tpadding-right: 0;\n\t}\n}\n\n.tableCaption {\n\tmargin-top: 1rem;\n\tfont-size: 0.875rem;\n\tline-height: 1.25rem;\n\tcolor: rgb(100, 116, 139);\n}\n","import type { HTMLAttributes, Ref, TdHTMLAttributes, ThHTMLAttributes } from 'react';\nimport classnames from 'classnames';\nimport styles from './core-table.module.scss';\n\ntype TableProps = HTMLAttributes<HTMLTableElement> & { ref?: Ref<HTMLTableElement> };\n\nfunction Table({ className, ref, ...props }: TableProps) {\n\treturn <table ref={ref} className={classnames(styles.table, className)} {...props} />;\n}\n\nTable.displayName = 'Table';\n\ntype TableHeaderProps = HTMLAttributes<HTMLTableSectionElement> & {\n\tref?: Ref<HTMLTableSectionElement>;\n};\n\nfunction TableHeader({ className, ref, ...props }: TableHeaderProps) {\n\treturn <thead ref={ref} className={classnames(styles.tableHeader, className)} {...props} />;\n}\n\nTableHeader.displayName = 'TableHeader';\n\ntype TableBodyProps = HTMLAttributes<HTMLTableSectionElement> & {\n\tref?: Ref<HTMLTableSectionElement>;\n};\n\nfunction TableBody({ className, ref, ...props }: TableBodyProps) {\n\treturn <tbody ref={ref} className={classnames(styles.tableBody, className)} {...props} />;\n}\n\nTableBody.displayName = 'TableBody';\n\ntype TableFooterProps = HTMLAttributes<HTMLTableSectionElement> & {\n\tref?: Ref<HTMLTableSectionElement>;\n};\n\nfunction TableFooter({ className, ref, ...props }: TableFooterProps) {\n\treturn <tfoot ref={ref} className={classnames(styles.tableFooter, className)} {...props} />;\n}\n\nTableFooter.displayName = 'TableFooter';\n\ntype TableRowProps = HTMLAttributes<HTMLTableRowElement> & {\n\tref?: Ref<HTMLTableRowElement>;\n};\n\nfunction TableRow({ className, ref, ...props }: TableRowProps) {\n\treturn <tr ref={ref} className={classnames(styles.tableRow, className)} {...props} />;\n}\n\nTableRow.displayName = 'TableRow';\n\ntype TableHeadProps = ThHTMLAttributes<HTMLTableCellElement> & {\n\tref?: Ref<HTMLTableCellElement>;\n};\n\nfunction TableHead({ className, ref, ...props }: TableHeadProps) {\n\treturn <th ref={ref} className={classnames(styles.tableHead, className)} {...props} />;\n}\n\nTableHead.displayName = 'TableHead';\n\ntype TableCellProps = TdHTMLAttributes<HTMLTableCellElement> & {\n\tref?: Ref<HTMLTableCellElement>;\n};\n\nfunction TableCell({ className, ref, ...props }: TableCellProps) {\n\treturn <td ref={ref} className={classnames(styles.tableCell, className)} {...props} />;\n}\n\nTableCell.displayName = 'TableCell';\n\ntype TableCaptionProps = HTMLAttributes<HTMLTableCaptionElement> & {\n\tref?: Ref<HTMLTableCaptionElement>;\n};\n\nfunction TableCaption({ className, ref, ...props }: TableCaptionProps) {\n\treturn <caption ref={ref} className={classnames(styles.tableCaption, className)} {...props} />;\n}\n\nTableCaption.displayName = 'TableCaption';\n\nexport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow };\n","@use '../../../../styles/typography';\n\n.bulkActionsContainer {\n\tposition: fixed;\n\tbottom: 20px;\n\tleft: 50%;\n\ttransform: translateX(-50%);\n\tbackground-color: var(--white);\n\tborder-radius: 8px;\n\tbox-shadow: 0 4px 12px #0445cc66;\n\tz-index: 1000;\n\tdisplay: flex;\n\talign-items: center;\n\tborder-radius: 8px;\n\toverflow: hidden;\n\tanimation-duration: 0.3s;\n\tanimation-timing-function: ease-out;\n\tanimation-fill-mode: forwards;\n\n\t&.entering {\n\t\tanimation-name: slideUpFadeIn;\n\t}\n\n\t&.exiting {\n\t\tanimation-name: slideDownFadeOut;\n\t}\n}\n\n.bulkActionsContent {\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-right: 6px;\n\tpadding-left: 6px;\n}\n\n.selectedCountContainer {\n\tbackground-color: var(--action-cta1);\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: 6px 22px;\n}\n\n.selectedCountBadge {\n\tcolor: var(--white);\n\tmargin: 0;\n}\n\n.bulkActionsInfo {\n\tcolor: var(--neutral-2);\n\ttext-wrap: nowrap;\n\tpadding-left: 8px;\n\tpadding-right: 56px;\n}\n\n.bulkActionsActions {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\n\t> .actionButton {\n\t\tborder-right: 1px solid var(--neutral-6);\n\t\twidth: 68px;\n\t\theight: 48px;\n\t\tborder-radius: 0;\n\n\t\t> .actionButtonContent {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tgap: 4px;\n\t\t}\n\t}\n\n\t> .actionButton:first-child {\n\t\tborder-left: 1px solid var(--neutral-6);\n\t}\n}\n\n.escapeButtonContent {\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\talign-items: center;\n\tcolor: var(--neutral-2);\n\tgap: 2px !important;\n\twidth: 36px;\n\tpadding-left: 4px;\n\n\t&:hover {\n\t\tcolor: var(--neutral-4);\n\t}\n}\n\n@keyframes slideUpFadeIn {\n\t0% {\n\t\topacity: 0;\n\t\ttransform: translate(-50%, 100%);\n\t}\n\t100% {\n\t\topacity: 1;\n\t\ttransform: translate(-50%, 0);\n\t}\n}\n\n@keyframes slideDownFadeOut {\n\t0% {\n\t\topacity: 1;\n\t\ttransform: translate(-50%, 0);\n\t}\n\t100% {\n\t\topacity: 0;\n\t\ttransform: translate(-50%, 100%);\n\t}\n}\n","import type React from 'react';\nimport { useEffect, useState } from 'react';\nimport classnames from 'classnames';\nimport { DsButton } from '../../../ds-button';\nimport { DsIcon } from '../../../ds-icon';\nimport styles from './ds-table-bulk-actions.module.scss';\nimport type { BulkActionsProps } from './ds-table-bulk-actions.types';\n\nconst DsTableBulkActions: React.FC<BulkActionsProps> = ({ numSelectedRows, actions, onClearSelection }) => {\n\tconst [isRendered, setIsRendered] = useState(false);\n\tconst [animationClass, setAnimationClass] = useState('');\n\n\tuseEffect(() => {\n\t\tif (numSelectedRows > 0) {\n\t\t\tsetIsRendered(true);\n\t\t\tsetAnimationClass(styles.entering);\n\t\t} else if (isRendered) {\n\t\t\tsetAnimationClass(styles.exiting);\n\t\t\tconst timer = setTimeout(() => {\n\t\t\t\tsetIsRendered(false);\n\t\t\t\tsetAnimationClass('');\n\t\t\t}, 300);\n\t\t\treturn () => clearTimeout(timer);\n\t\t}\n\t}, [numSelectedRows, isRendered]);\n\n\tif (!isRendered) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className={classnames(styles.bulkActionsContainer, animationClass)}>\n\t\t\t<div className={styles.selectedCountContainer}>\n\t\t\t\t<h3 className={classnames(styles.selectedCountBadge, styles.bold)}>{numSelectedRows}</h3>\n\t\t\t</div>\n\t\t\t<div className={styles.bulkActionsContent}>\n\t\t\t\t<span className={styles.bulkActionsInfo}>items selected</span>\n\n\t\t\t\t<div className={styles.bulkActionsActions}>\n\t\t\t\t\t{actions.map((action, index) => (\n\t\t\t\t\t\t<DsButton\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tvariant=\"borderless\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tclassName={styles.actionButton}\n\t\t\t\t\t\t\tcontentClassName={styles.actionButtonContent}\n\t\t\t\t\t\t\tonClick={action.onClick}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<DsIcon icon={action.icon} />\n\t\t\t\t\t\t\t<span className={(styles['p-s'], styles.medium)}>{action.label}</span>\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<DsButton\n\t\t\t\t\tvariant=\"borderless\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\tcolor=\"neutral-2\"\n\t\t\t\t\tcontentClassName={styles.escapeButtonContent}\n\t\t\t\t\tonClick={onClearSelection}\n\t\t\t\t>\n\t\t\t\t\t<DsIcon icon=\"close\" />\n\t\t\t\t\t<span className={(styles['p-s'], styles.medium)}>Esc</span>\n\t\t\t\t</DsButton>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default DsTableBulkActions;\n","@use '../../../../styles/typography';\n@use '../../styles/variables' as vars;\n\n.stickyHeader {\n\tposition: sticky;\n\ttop: 0;\n\tz-index: 10;\n\tbackground-color: var(--color-background);\n}\n\n.virtualizedHeader {\n\tdisplay: grid;\n\tgrid-template-columns: subgrid;\n\tgrid-column: 1 / -1;\n}\n\n.headerRow {\n\t.headerCell {\n\t\tborder-bottom: 1px solid var(--neutral-6);\n\n\t\t&.selectColumn {\n\t\t\twidth: vars.$select-column-width;\n\t\t\tpadding: 0;\n\t\t}\n\t}\n\n\t&.headerRowNoBorder {\n\t\t.headerCell {\n\t\t\tborder-bottom: none;\n\t\t}\n\t}\n}\n\n.headerRowVirtualized {\n\tdisplay: grid;\n\tgrid-template-columns: subgrid;\n\tgrid-column: 1 / -1;\n\talign-items: center;\n}\n\n.expandColumn {\n\twidth: vars.$expand-column-width;\n}\n\n.reorderColumn {\n\twidth: vars.$reorder-column-width;\n}\n\n.headerCell {\n\t@include typography.body-sm-md;\n\tcolor: var(--color-font-main);\n\ttext-align: left;\n\tpadding: 0 var(--spacing-standard);\n\theight: var(--ds-table-header-height);\n\n\t&.sortableHeader {\n\t\tcursor: pointer;\n\t\tuser-select: none;\n\t}\n\n\t.pageButtonIconContainer {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 24px;\n\t\theight: 24px;\n\n\t\t&.pageButtonIcon {\n\t\t\tcolor: var(--neutral-4);\n\t\t\ttransition: transform 0.2s ease-in-out;\n\t\t}\n\t}\n}\n\n.headerSortContainer {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: vars.$header-sort-gap;\n\theight: 100%;\n}\n","@use '../../../../styles/utilities' as utils;\n@use '../variables' as vars;\n\n.checkboxContainer {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: fit-content;\n\tmargin: auto;\n\theight: 100%;\n}\n\n.pageButtonIcon {\n\tcolor: vars.$expand-toggle-icon-color;\n\t@extend .rotate;\n}\n","import { createContext, useContext } from 'react';\nimport type { DsDataTableProps, DsTableRowSize } from '../ds-table.types';\n\nexport interface DsTableContextType<TData, TValue> extends Partial<DsDataTableProps<TData, TValue>> {\n\t/**\n\t * The expanded rows\n\t */\n\texpandedRows: Record<string, boolean>;\n\t/**\n\t * Toggle the expanded state of a row\n\t * @param rowId - The id of the row to toggle\n\t */\n\ttoggleRowExpanded: (rowId: string) => void;\n\t/**\n\t * Whether the table is virtualized\n\t * @default false\n\t */\n\tvirtualized?: boolean;\n\t/**\n\t * Row size variant\n\t * @default 'medium'\n\t */\n\trowSize: DsTableRowSize;\n\t/**\n\t * ID of the currently active row\n\t */\n\tactiveRowId?: string | null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const DsTableContext = createContext<DsTableContextType<any, any> | null>(null);\n\nexport const useDsTableContext = <TData, TValue>(): DsTableContextType<TData, TValue> => {\n\tconst context = useContext(DsTableContext);\n\tif (!context) {\n\t\tthrow new Error('useDsTableContext must be used within DsTable');\n\t}\n\treturn context as DsTableContextType<TData, TValue>;\n};\n","import type { CSSProperties } from 'react';\nimport { defaultColumnSizing } from '@tanstack/react-table';\n\n/**\n * Generates the appropriate style object for a table column/cell based on its size and virtualization state\n *\n * @param columnSize - The size of the column\n * @param virtualized - Whether the table is virtualized\n * @param isLastColumn - Whether this is the last column in the row\n * @returns Style object or undefined if no custom styling is needed\n */\nexport const getColumnStyle = (\n\tcolumnSize: number,\n\tvirtualized?: boolean,\n\tisLastColumn: boolean = false,\n): CSSProperties | undefined => {\n\tconst hasCustomSize = columnSize !== defaultColumnSizing.size;\n\tif (!hasCustomSize) {\n\t\treturn undefined;\n\t}\n\n\tif (virtualized) {\n\t\treturn {\n\t\t\tflexBasis: `${String(columnSize)}px`,\n\t\t\tflexGrow: isLastColumn ? 1 : 0,\n\t\t};\n\t}\n\n\treturn { width: columnSize };\n};\n","import { flexRender } from '@tanstack/react-table';\nimport classnames from 'classnames';\nimport { DsCheckbox } from '../../../ds-checkbox';\nimport { DsIcon } from '../../../ds-icon';\nimport { TableHead, TableHeader, TableRow } from '../core-table';\nimport styles from './ds-table-header.module.scss';\nimport stylesShared from '../../styles/shared/ds-table-shared.module.scss';\nimport type { DsTableHeaderProps } from './ds-table-header.types';\nimport { useDsTableContext } from '../../context/ds-table-context';\nimport { getColumnStyle } from '../../utils/column-styling';\n\nconst DsTableHeader = <TData,>({ table }: DsTableHeaderProps<TData>) => {\n\tconst { stickyHeader, bordered, expandable, selectable, reorderable, showSelectAllCheckbox, virtualized } =\n\t\tuseDsTableContext<TData, unknown>();\n\n\treturn (\n\t\t<TableHeader\n\t\t\tclassName={classnames(stickyHeader && styles.stickyHeader, virtualized && styles.virtualizedHeader)}\n\t\t>\n\t\t\t{table.getHeaderGroups().map((headerGroup) => (\n\t\t\t\t<TableRow\n\t\t\t\t\tkey={headerGroup.id}\n\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\tstyles.headerRow,\n\t\t\t\t\t\t!bordered && styles.headerRowNoBorder,\n\t\t\t\t\t\tvirtualized && styles.headerRowVirtualized,\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t{selectable && (\n\t\t\t\t\t\t<TableHead className={classnames(styles.headerCell, styles.selectColumn)}>\n\t\t\t\t\t\t\t{showSelectAllCheckbox && (\n\t\t\t\t\t\t\t\t<DsCheckbox\n\t\t\t\t\t\t\t\t\tclassName={stylesShared.checkboxContainer}\n\t\t\t\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t\t\t\ttable.getIsAllRowsSelected()\n\t\t\t\t\t\t\t\t\t\t\t? true\n\t\t\t\t\t\t\t\t\t\t\t: table.getIsSomeRowsSelected()\n\t\t\t\t\t\t\t\t\t\t\t\t? 'indeterminate'\n\t\t\t\t\t\t\t\t\t\t\t\t: false\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\tconst toggleHandler = table.getToggleAllRowsSelectedHandler();\n\t\t\t\t\t\t\t\t\t\ttoggleHandler(e);\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</TableHead>\n\t\t\t\t\t)}\n\t\t\t\t\t{expandable && <TableHead className={classnames(styles.headerCell, styles.expandColumn)} />}\n\t\t\t\t\t{reorderable && (\n\t\t\t\t\t\t<TableHead className={classnames(styles.headerCell, styles.reorderColumn)}>Order</TableHead>\n\t\t\t\t\t)}\n\t\t\t\t\t{headerGroup.headers.map((header, idx) => {\n\t\t\t\t\t\tconst isLastColumn = idx === headerGroup.headers.length - 1;\n\t\t\t\t\t\tconst headerStyle = getColumnStyle(header.column.getSize(), virtualized, isLastColumn);\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<TableHead\n\t\t\t\t\t\t\t\tkey={header.id}\n\t\t\t\t\t\t\t\tclassName={classnames(styles.headerCell, header.column.getCanSort() && styles.sortableHeader)}\n\t\t\t\t\t\t\t\tonClick={header.column.getToggleSortingHandler()}\n\t\t\t\t\t\t\t\tstyle={headerStyle}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{header.isPlaceholder ? null : (\n\t\t\t\t\t\t\t\t\t<div className={styles.headerSortContainer}>\n\t\t\t\t\t\t\t\t\t\t<div>{flexRender(header.column.columnDef.header, header.getContext())}</div>\n\t\t\t\t\t\t\t\t\t\t{header.column.getCanSort() && (\n\t\t\t\t\t\t\t\t\t\t\t<div className={styles.pageButtonIconContainer}>\n\t\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\t\tasc: (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<DsIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon=\"arrow_drop_up\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classnames(styles.pageButtonIcon, stylesShared.pageButtonIcon)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t\tdesc: (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<DsIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ticon=\"arrow_drop_down\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName={classnames(styles.pageButtonIcon, stylesShared.pageButtonIcon)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t\t}[header.column.getIsSorted() as string] ?? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div className={classnames(styles.pageButtonIcon, stylesShared.pageButtonIcon)} />\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</TableHead>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</TableRow>\n\t\t\t))}\n\t\t</TableHeader>\n\t);\n};\n\nexport default DsTableHeader;\n","@use '../../styles/typography';\n@use '../../styles/utilities' as utils;\n@use './styles/variables' as vars;\n\n.container {\n\tborder-radius: vars.$border-radius;\n\tborder-width: vars.$border-width;\n\tborder-style: solid;\n\tborder-color: var(--neutral-6);\n\tbackground: var(--color-background);\n}\n\n.virtualizedContainer {\n\tposition: relative;\n\theight: vars.$virtualized-height;\n\toverflow: auto;\n}\n\n.dataTableContainer {\n\tmax-height: 100%;\n\toverflow: auto;\n}\n\n.table {\n\twidth: 100%;\n\tcaption-side: bottom;\n\t@include typography.p-base;\n\n\t&.tableNoBorder {\n\t\tborder-collapse: separate;\n\t\tborder-spacing: 0;\n\t\tborder: none;\n\t}\n}\n\n.fullWidth {\n\twidth: 100%;\n}\n\n.emptyState {\n\theight: vars.$empty-state-height;\n\ttext-align: center;\n}\n\n.emptyStateVirtualized {\n\tposition: absolute;\n\tinset: 0;\n\ttop: var(--ds-table-header-height);\n}\n\n.virtualized {\n\tdisplay: grid;\n\tgrid-template-columns: var(--ds-table-columns-template);\n}\n\n.virtualizedBody {\n\tdisplay: grid;\n\tgrid-template-columns: subgrid;\n\tgrid-column: 1 / -1;\n}\n","@use '../../../../styles/typography';\n\n.tableCellEllipsis {\n\tdisplay: -webkit-box;\n\t-webkit-line-clamp: 2;\n\t-webkit-box-orient: vertical;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\tword-break: break-word;\n}\n\n.lastCell {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\theight: 100%;\n\tflex: 1;\n\n\t.cellActions {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 8px;\n\t}\n}\n\n.rowActionIcon {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 36px;\n\theight: 36px;\n\tborder-radius: 50%;\n\tbackground: none;\n\tcursor: pointer;\n\ttransition: background 0.15s;\n\tcolor: var(--color-icon-secondary);\n\n\t&.disabled {\n\t\topacity: 0.5;\n\t\tcursor: not-allowed;\n\t\tpointer-events: none;\n\t}\n\n\t&:hover,\n\t&:focus-within {\n\t\tbackground: var(--color-background-action-hover-weak);\n\t\tcolor: var(--color-font-action);\n\t}\n}\n\n.secondaryActionsTrigger {\n\tmargin-inline-start: var(--spacing-sm);\n}\n","import { type Cell, flexRender } from '@tanstack/react-table';\nimport classnames from 'classnames';\nimport { DsIcon } from '../../../ds-icon';\nimport { DsDropdownMenu } from '../../../ds-dropdown-menu';\nimport styles from './ds-table-cell.module.scss';\nimport type { DsTableCellProps } from './ds-table-cell.types';\n\nconst DsDefaultTableCell = <TData, TValue>({ cell }: { cell: Cell<TData, TValue> }) => {\n\treturn (\n\t\t<div className={styles.tableCellEllipsis}>\n\t\t\t{flexRender(cell.column.columnDef.cell, cell.getContext())}\n\t\t</div>\n\t);\n};\n\nexport const DsTableCell = <TData, TValue>({\n\trow,\n\tcell,\n\tprimaryRowActions = [],\n\tsecondaryRowActions = [],\n}: DsTableCellProps<TData, TValue>) => {\n\tif (primaryRowActions.length || secondaryRowActions.length) {\n\t\tconst hasSecondaryRowActions = secondaryRowActions.some((action) => !action.disabled?.(row.original));\n\t\treturn (\n\t\t\t<div className={styles.lastCell}>\n\t\t\t\t<DsDefaultTableCell cell={cell} />\n\t\t\t\t<div className={styles.cellActions}>\n\t\t\t\t\t{primaryRowActions.map((action, i) => {\n\t\t\t\t\t\tconst isDisabled = action.disabled?.(row.original);\n\t\t\t\t\t\tconst label = typeof action.label === 'function' ? action.label(row.original) : action.label;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tclassName={classnames(styles.rowActionIcon, { [styles.disabled]: isDisabled })}\n\t\t\t\t\t\t\t\ttitle={action.tooltip || label}\n\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\t\t\t\t\tif (isDisabled) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taction.onClick(row.original);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttabIndex={isDisabled ? -1 : 0}\n\t\t\t\t\t\t\t\taria-label={label}\n\t\t\t\t\t\t\t\taria-disabled={isDisabled}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<DsIcon icon={action.icon} size=\"tiny\" />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t\t{hasSecondaryRowActions && (\n\t\t\t\t\t\t<DsDropdownMenu.Root>\n\t\t\t\t\t\t\t<DsDropdownMenu.Trigger\n\t\t\t\t\t\t\t\tclassName={classnames(styles.rowActionIcon, styles.secondaryActionsTrigger)}\n\t\t\t\t\t\t\t\taria-label=\"More actions\"\n\t\t\t\t\t\t\t\tasChild\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\ttitle=\"More actions\"\n\t\t\t\t\t\t\t\t\taria-label=\"More actions\"\n\t\t\t\t\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<DsIcon icon=\"more_vert\" size=\"tiny\" />\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</DsDropdownMenu.Trigger>\n\t\t\t\t\t\t\t<DsDropdownMenu.Content>\n\t\t\t\t\t\t\t\t{secondaryRowActions.map((action, i) => {\n\t\t\t\t\t\t\t\t\tconst label =\n\t\t\t\t\t\t\t\t\t\ttypeof action.label === 'function' ? action.label(row.original) : action.label;\n\t\t\t\t\t\t\t\t\tconst isDisabled = action.disabled?.(row.original);\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<DsDropdownMenu.Item\n\t\t\t\t\t\t\t\t\t\t\tkey={i}\n\t\t\t\t\t\t\t\t\t\t\tvalue={label}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\t\t\t\t\t\t\tonSelect={() => action.onClick(row.original)}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{action.icon && <DsIcon icon={action.icon} />}\n\t\t\t\t\t\t\t\t\t\t\t<span>{label}</span>\n\t\t\t\t\t\t\t\t\t\t</DsDropdownMenu.Item>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</DsDropdownMenu.Content>\n\t\t\t\t\t\t</DsDropdownMenu.Root>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn <DsDefaultTableCell cell={cell} />;\n};\n","@use '../../../../styles/typography';\n@use '../../styles/variables' as vars;\n\n@mixin expanded-row-border($side) {\n\t$border: 1px solid var(--color-border-action-primary);\n\n\t// Prevent double border with adjacent expanded rows.\n\t&:not(.expandedRow + &) > td {\n\t\tborder-#{$side}: $border;\n\t}\n\n\t& > td:first-child {\n\t\tborder-inline-start: $border;\n\t}\n\n\t& > td:last-child {\n\t\tborder-inline-end: $border;\n\t}\n}\n\n.tableRow {\n\t&:not(.virtualizedRow) {\n\t\t&:not(:last-child) {\n\t\t\t.tableCell {\n\t\t\t\tborder-bottom: vars.$border-width solid var(--color-border-secondary);\n\t\t\t}\n\t\t}\n\n\t\t.cellCheckbox.tableCell {\n\t\t\tpadding: 0;\n\t\t\twidth: vars.$select-column-width;\n\t\t}\n\t}\n\n\t&.virtualizedRow {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: subgrid;\n\t\tgrid-column: 1 / -1;\n\t\tgrid-row: 1;\n\t\talign-items: center;\n\n\t\t&:not(:last-child) {\n\t\t\tborder-bottom: vars.$border-width solid var(--color-border-secondary);\n\t\t}\n\n\t\t.tableCell {\n\t\t\t&.cellCheckbox {\n\t\t\t\ttext-align: center;\n\t\t\t\tpadding: 0;\n\t\t\t\twidth: vars.$select-column-width;\n\t\t\t}\n\t\t}\n\t}\n\n\t&:hover {\n\t\tbackground-color: var(--color-background-secondary);\n\t}\n\n\t&[data-state='selected'] {\n\t\tbackground-color: var(--color-background-selected-weak);\n\t}\n\n\t&[data-state='active'] {\n\t\tbackground-color: var(--color-background-selected-weak);\n\t}\n\n\t&.clickableRow {\n\t\tcursor: pointer;\n\t}\n\n\t&.rowNoBorder {\n\t\tborder-bottom: none;\n\t}\n\n\t&.expanded {\n\t\t@include expanded-row-border('top');\n\t}\n\n\t&.sizeSmall {\n\t\theight: var(--ds-table-row-small);\n\t}\n\n\t&.sizeMedium {\n\t\theight: var(--ds-table-row-medium);\n\t}\n\n\t&.sizeLarge {\n\t\theight: var(--ds-table-row-large);\n\t}\n}\n\n.expandedRow {\n\tbackground-color: var(--color-background-secondary);\n\n\t& > td {\n\t\tpadding: var(--spacing-standard);\n\t}\n\n\t@include expanded-row-border('bottom');\n}\n\n.cellButton {\n\twidth: vars.$expand-column-width;\n}\n\n.cellReorder {\n\twidth: vars.$reorder-column-width;\n\ttext-align: center;\n\n\t&.isDragging {\n\t\tbackground: var(--color-background-action);\n\n\t\t.rowDragHandle {\n\t\t\tcolor: var(--color-secondary-white);\n\t\t}\n\t}\n}\n\n.tableCell {\n\t@include typography.body-sm-reg;\n\tvertical-align: middle;\n\tcolor: var(--color-font-main);\n\tpadding: 0 var(--spacing-standard);\n}\n\n.expandToggleButton {\n\tbackground: none;\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n\tcursor: pointer;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\topacity: 1;\n\ttransition-property: opacity, background-color;\n}\n","import React from 'react';\nimport classnames from 'classnames';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { DsIcon } from '../../../ds-icon';\nimport { DsCheckbox } from '../../../ds-checkbox';\nimport { DsButton } from '../../../ds-button';\nimport { TableCell, TableRow } from '../core-table';\nimport { DsTableCell } from '../ds-table-cell';\nimport type { DsTableRowProps } from './ds-table-row.types';\nimport styles from './ds-table-row.module.scss';\nimport stylesShared from '../../styles/shared/ds-table-shared.module.scss';\nimport { useDsTableContext } from '../../context/ds-table-context';\nimport { mergeRefs } from '../../utils/merge-refs';\nimport { getColumnStyle } from '../../utils/column-styling';\n\ninterface DsRowDragHandleProps {\n\tisDragging: boolean;\n\tattributes: ReturnType<typeof useSortable>['attributes'];\n\tlisteners: ReturnType<typeof useSortable>['listeners'];\n}\n\nconst DsRowDragHandle = ({ isDragging, attributes, listeners }: DsRowDragHandleProps) => {\n\treturn (\n\t\t<TableCell\n\t\t\tclassName={classnames(styles.tableCell, styles.cellReorder, {\n\t\t\t\t[styles.isDragging]: isDragging,\n\t\t\t})}\n\t\t>\n\t\t\t<DsIcon\n\t\t\t\tclassName={styles.rowDragHandle}\n\t\t\t\ticon={isDragging ? 'drag_indicator' : 'arrow_downward'}\n\t\t\t\tsize={isDragging ? 'medium' : 'small'}\n\t\t\t\tonClick={(e: React.MouseEvent) => e.stopPropagation()}\n\t\t\t\t{...attributes}\n\t\t\t\t{...listeners}\n\t\t\t></DsIcon>\n\t\t</TableCell>\n\t);\n};\n\nconst DsTableRow = <TData,>({ ref, row, virtualRow }: DsTableRowProps<TData>) => {\n\tconst {\n\t\texpandable,\n\t\texpandedRows,\n\t\tselectable,\n\t\treorderable,\n\t\tonRowClick,\n\t\tonRowDoubleClick,\n\t\trenderExpandedRow,\n\t\tvirtualized,\n\t\tbordered,\n\t\thighlightOnHover,\n\t\trowSize,\n\t\ttoggleRowExpanded,\n\t\tprimaryRowActions,\n\t\tsecondaryRowActions,\n\t\tactiveRowId,\n\t} = useDsTableContext<TData, unknown>();\n\tconst isExpanded = expandedRows[row.id];\n\tconst isExpandable = typeof expandable === 'function' ? expandable(row.original) : expandable;\n\tconst isActive = activeRowId === row.id;\n\n\tconst { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n\t\tid: row.id,\n\t\tdisabled: !reorderable,\n\t});\n\tconst rowStyle: React.CSSProperties =\n\t\tvirtualRow && virtualized\n\t\t\t? {\n\t\t\t\t\ttransform: `translateY(${String(virtualRow.start)}px)`,\n\t\t\t\t}\n\t\t\t: reorderable\n\t\t\t\t? {\n\t\t\t\t\t\t// Convert DND-kit's transform coordinates to CSS transform string\n\t\t\t\t\t\ttransform: CSS.Transform.toString(transform),\n\t\t\t\t\t\ttransition,\n\t\t\t\t\t\t...(isDragging\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\tbackground: 'var(--action-active-light)',\n\t\t\t\t\t\t\t\t\tboxShadow: '0 0 12px 0 rgba(0, 102, 250, 0.60)',\n\t\t\t\t\t\t\t\t\tzIndex: 1,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t}\n\t\t\t\t: {};\n\n\treturn (\n\t\t<React.Fragment key={row.id}>\n\t\t\t<TableRow\n\t\t\t\tref={mergeRefs(reorderable ? setNodeRef : null, ref)}\n\t\t\t\tdata-state={isActive ? 'active' : row.getIsSelected() ? 'selected' : undefined}\n\t\t\t\tclassName={classnames(\n\t\t\t\t\tstyles.tableRow,\n\t\t\t\t\t{\n\t\t\t\t\t\t[styles.sizeSmall]: rowSize === 'small',\n\t\t\t\t\t\t[styles.sizeMedium]: rowSize === 'medium',\n\t\t\t\t\t\t[styles.sizeLarge]: rowSize === 'large',\n\t\t\t\t\t},\n\t\t\t\t\tvirtualized && styles.virtualizedRow,\n\t\t\t\t\tonRowClick && styles.clickableRow,\n\t\t\t\t\thighlightOnHover && styles.highlightHoverRow,\n\t\t\t\t\t!bordered && styles.rowNoBorder,\n\t\t\t\t\tisExpanded && styles.expanded,\n\t\t\t\t)}\n\t\t\t\tstyle={rowStyle}\n\t\t\t\tonClick={() => onRowClick?.(row.original)}\n\t\t\t\tonDoubleClick={() => onRowDoubleClick?.(row.original)}\n\t\t\t>\n\t\t\t\t{selectable && (\n\t\t\t\t\t<TableCell className={classnames(styles.tableCell, styles.cellCheckbox)}>\n\t\t\t\t\t\t<DsCheckbox\n\t\t\t\t\t\t\tclassName={stylesShared.checkboxContainer}\n\t\t\t\t\t\t\tchecked={row.getIsSelected()}\n\t\t\t\t\t\t\tdisabled={!row.getCanSelect()}\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\tconst toggleHandler = row.getToggleSelectedHandler();\n\t\t\t\t\t\t\t\ttoggleHandler(e);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonDoubleClick={(e: React.MouseEvent) => {\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</TableCell>\n\t\t\t\t)}\n\t\t\t\t{expandable && (\n\t\t\t\t\t<TableCell className={classnames(styles.tableCell, styles.cellButton)}>\n\t\t\t\t\t\t{isExpandable && (\n\t\t\t\t\t\t\t<DsButton\n\t\t\t\t\t\t\t\tvariant={virtualized ? 'ghost' : 'borderless'}\n\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\tonClick={(e: React.MouseEvent) => {\n\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\ttoggleRowExpanded(row.id);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonDoubleClick={(e: React.MouseEvent) => {\n\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tclassName={styles.expandToggleButton}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<DsIcon\n\t\t\t\t\t\t\t\t\ticon={virtualized ? (isExpanded ? 'arrow_drop_down' : 'arrow_right') : 'chevron_right'}\n\t\t\t\t\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\t\t\t\t\tstylesShared.pageButtonIcon,\n\t\t\t\t\t\t\t\t\t\t!virtualized && isExpanded && 'rotate-90',\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</DsButton>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</TableCell>\n\t\t\t\t)}\n\t\t\t\t{reorderable && (\n\t\t\t\t\t<DsRowDragHandle isDragging={isDragging} attributes={attributes} listeners={listeners} />\n\t\t\t\t)}\n\t\t\t\t{row.getVisibleCells().map((cell, idx) => {\n\t\t\t\t\tconst isLastColumn = idx === row.getVisibleCells().length - 1;\n\t\t\t\t\tconst cellStyle = getColumnStyle(cell.column.getSize(), virtualized, isLastColumn);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TableCell key={cell.id} className={styles.tableCell} style={cellStyle}>\n\t\t\t\t\t\t\t{isLastColumn ? (\n\t\t\t\t\t\t\t\t<DsTableCell\n\t\t\t\t\t\t\t\t\trow={row}\n\t\t\t\t\t\t\t\t\tcell={cell}\n\t\t\t\t\t\t\t\t\tprimaryRowActions={primaryRowActions}\n\t\t\t\t\t\t\t\t\tsecondaryRowActions={secondaryRowActions}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<DsTableCell row={row} cell={cell} />\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</TableCell>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</TableRow>\n\t\t\t{isExpanded && renderExpandedRow && (\n\t\t\t\t<TableRow\n\t\t\t\t\tstyle={\n\t\t\t\t\t\tvirtualRow && virtualized\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\ttransform: `translateY(${String(virtualRow.start + virtualRow.size)}px)`,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\tclassName={styles.expandedRow}\n\t\t\t\t>\n\t\t\t\t\t<TableCell\n\t\t\t\t\t\tcolSpan={\n\t\t\t\t\t\t\trow.getVisibleCells().length +\n\t\t\t\t\t\t\t(selectable ? 1 : 0) +\n\t\t\t\t\t\t\t(isExpandable ? 1 : 0) +\n\t\t\t\t\t\t\t(reorderable ? 1 : 0)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclassName={styles.tableCell}\n\t\t\t\t\t>\n\t\t\t\t\t\t{renderExpandedRow(row.original)}\n\t\t\t\t\t</TableCell>\n\t\t\t\t</TableRow>\n\t\t\t)}\n\t\t</React.Fragment>\n\t);\n};\n\nexport default DsTableRow;\n","import React from 'react';\nimport {\n\ttype DragEndEvent,\n\ttype UniqueIdentifier,\n\tclosestCenter,\n\tDndContext,\n\tKeyboardSensor,\n\tMouseSensor,\n\tTouchSensor,\n\tuseSensor,\n\tuseSensors,\n} from '@dnd-kit/core';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\n\nexport interface UseDragAndDropResult {\n\tDragWrapper: React.ComponentType<React.PropsWithChildren>;\n\tSortableWrapper: React.ComponentType<React.PropsWithChildren>;\n}\n\nexport interface UseDragAndDropOptions<T> {\n\tisDragEnabled: boolean;\n\tonOrderChange?: (newData: T[]) => void;\n\titems: T[];\n}\n\ntype DragWrapperProps = React.PropsWithChildren<{\n\tonDragEnd: (event: DragEndEvent) => void;\n\tsensors: ReturnType<typeof useSensors>;\n}>;\n\nconst DragWrapper = ({ children, onDragEnd, sensors }: DragWrapperProps) => (\n\t<DndContext\n\t\tcollisionDetection={closestCenter}\n\t\tmodifiers={[restrictToVerticalAxis]}\n\t\tonDragEnd={onDragEnd}\n\t\tsensors={sensors}\n\t>\n\t\t{children}\n\t</DndContext>\n);\n\ntype SortableWrapperProps = React.PropsWithChildren<{\n\titems: UniqueIdentifier[];\n}>;\n\nconst SortableWrapper = ({ children, items }: SortableWrapperProps) => (\n\t<SortableContext items={items} strategy={verticalListSortingStrategy}>\n\t\t{children}\n\t</SortableContext>\n);\n\nexport function useDragAndDrop<T extends { id: string }>({\n\tisDragEnabled,\n\tonOrderChange,\n\titems,\n}: UseDragAndDropOptions<T>): UseDragAndDropResult {\n\tconst dataIds = React.useMemo(() => items.map((row) => row.id), [items]);\n\n\tconst sensors = useSensors(\n\t\tuseSensor(MouseSensor, {}),\n\t\tuseSensor(TouchSensor, {}),\n\t\tuseSensor(KeyboardSensor, {}),\n\t);\n\n\tconst handleDragEnd = React.useCallback(\n\t\t(event: DragEndEvent) => {\n\t\t\tconst { active, over } = event;\n\t\t\tif (active.id !== over?.id) {\n\t\t\t\tconst oldIndex = items.findIndex((row) => row.id === active.id);\n\t\t\t\tconst newIndex = items.findIndex((row) => row.id === over?.id);\n\t\t\t\tif (oldIndex !== -1 && newIndex !== -1) {\n\t\t\t\t\tconst newData = arrayMove(items, oldIndex, newIndex);\n\t\t\t\t\tonOrderChange?.(newData);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[items, onOrderChange],\n\t);\n\n\tconst DragWrapperComponent = React.useMemo(\n\t\t() =>\n\t\t\tisDragEnabled\n\t\t\t\t? ({ children }: React.PropsWithChildren) => (\n\t\t\t\t\t\t<DragWrapper onDragEnd={handleDragEnd} sensors={sensors}>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</DragWrapper>\n\t\t\t\t\t)\n\t\t\t\t: React.Fragment,\n\t\t[isDragEnabled, handleDragEnd, sensors],\n\t);\n\n\tconst SortableWrapperComponent = React.useMemo(\n\t\t() =>\n\t\t\tisDragEnabled\n\t\t\t\t? ({ children }: React.PropsWithChildren) => (\n\t\t\t\t\t\t<SortableWrapper items={dataIds}>{children}</SortableWrapper>\n\t\t\t\t\t)\n\t\t\t\t: React.Fragment,\n\t\t[isDragEnabled, dataIds],\n\t);\n\n\treturn {\n\t\tDragWrapper: DragWrapperComponent,\n\t\tSortableWrapper: SortableWrapperComponent,\n\t};\n}\n","import type { ColumnDef } from '@tanstack/react-table';\n\ntype Args = {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tcolumns: ColumnDef<any, any>[];\n\tselectable?: boolean;\n};\n\n// In virtualized tables, the rows should all be positioned at the top with a `translateY` offset.\n// We're using a Grid for this rather than `position: absolute` to ensure that each cell aligns with\n// other cells in the same column (mimicking the native table behavior).\nexport function createColumnsGridTemplate({ columns, selectable }: Args): string {\n\treturn columns\n\t\t.reduce<string[]>(\n\t\t\t(acc, col) => {\n\t\t\t\tacc.push(col.size ? `${String(col.size)}px` : 'auto');\n\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\tselectable ? ['max-content'] : [],\n\t\t)\n\t\t.join(' ');\n}\n","import * as React from 'react';\nimport { useImperativeHandle } from 'react';\nimport {\n\ttype RowSelectionState,\n\ttype ColumnFiltersState,\n\tgetCoreRowModel,\n\tgetFilteredRowModel,\n\tgetSortedRowModel,\n\ttype SortingState,\n\tuseReactTable,\n\ttype VisibilityState,\n} from '@tanstack/react-table';\nimport { useVirtualizer, type VirtualItem } from '@tanstack/react-virtual';\nimport classnames from 'classnames';\nimport { Table, TableBody, TableCell, TableRow } from './components/core-table';\nimport { DsTableBulkActions } from './components/ds-table-bulk-actions';\nimport { DsTableHeader } from './components/ds-table-header';\nimport styles from './ds-table.module.scss';\nimport type { DsDataTableProps, DsTableRowSize } from './ds-table.types';\nimport { DsTableRow } from './components/ds-table-row';\nimport { useDragAndDrop } from './hooks/use-drag-and-drop';\nimport { type DsTableContextType, DsTableContext } from './context/ds-table-context';\nimport { createColumnsGridTemplate } from './utils/create-columns-grid-template';\n\n// Row size to pixel height mapping (matches CSS variables)\nconst ROW_SIZE_HEIGHT_MAP: Record<DsTableRowSize, number> = {\n\tsmall: 36,\n\tmedium: 48,\n\tlarge: 64,\n};\n\n/**\n * Design system Table component\n */\nconst DsTable = <TData extends { id: string }, TValue>({\n\tref,\n\tcolumns,\n\tdata: tableData,\n\tvirtualized = false,\n\tvirtualizedOptions,\n\tclassName,\n\tonRowClick,\n\temptyState,\n\tstickyHeader = true,\n\tbordered = true,\n\tfullWidth = true,\n\thighlightOnHover = true,\n\trowSize = 'medium',\n\texpandable = false,\n\trenderExpandedRow,\n\tselectable = false,\n\tshowSelectAllCheckbox = true,\n\tonSelectionChange,\n\tonSortingChange,\n\tonScroll,\n\tactions = [],\n\tonRowDoubleClick,\n\tprimaryRowActions = [],\n\tsecondaryRowActions,\n\treorderable = false,\n\tonOrderChange,\n\tcolumnFilters: externalColumnFilters,\n\tonColumnFiltersChange,\n\tcolumnVisibility: externalColumnVisibility,\n\tonColumnVisibilityChange,\n\tactiveRowId,\n}: DsDataTableProps<TData, TValue>) => {\n\tconst [data, setData] = React.useState(tableData);\n\tconst [sorting, setSorting] = React.useState<SortingState>([]);\n\tconst [internalColumnFilters, setInternalColumnFilters] = React.useState<ColumnFiltersState>([]);\n\tconst [internalColumnVisibility, setInternalColumnVisibility] = React.useState<VisibilityState>({});\n\tconst [rowSelection, setRowSelection] = React.useState<RowSelectionState>({});\n\tconst [expandedRows, setExpandedRows] = React.useState<Record<string, boolean>>({});\n\n\tconst { DragWrapper, SortableWrapper } = useDragAndDrop<TData>({\n\t\tisDragEnabled: reorderable && !virtualized,\n\t\tonOrderChange: (newData) => {\n\t\t\tsetData(newData);\n\t\t\tonOrderChange?.(newData);\n\t\t},\n\t\titems: data,\n\t});\n\n\tconst tableContainerRef = React.useRef<HTMLDivElement>(null);\n\n\tconst columnFilters = externalColumnFilters ?? internalColumnFilters;\n\tconst handleColumnFiltersChange = (\n\t\tupdaterOrValue: ColumnFiltersState | ((old: ColumnFiltersState) => ColumnFiltersState),\n\t) => {\n\t\tconst newFilters = typeof updaterOrValue === 'function' ? updaterOrValue(columnFilters) : updaterOrValue;\n\t\tif (onColumnFiltersChange) {\n\t\t\tonColumnFiltersChange(newFilters);\n\t\t} else {\n\t\t\tsetInternalColumnFilters(newFilters);\n\t\t}\n\t};\n\n\tconst columnVisibility = externalColumnVisibility ?? internalColumnVisibility;\n\tconst handleColumnVisibilityChange = (\n\t\tupdaterOrValue: VisibilityState | ((old: VisibilityState) => VisibilityState),\n\t) => {\n\t\tconst newVisibility =\n\t\t\ttypeof updaterOrValue === 'function' ? updaterOrValue(columnVisibility) : updaterOrValue;\n\n\t\tif (onColumnVisibilityChange) {\n\t\t\tonColumnVisibilityChange(newVisibility);\n\t\t} else {\n\t\t\tsetInternalColumnVisibility(newVisibility);\n\t\t}\n\t};\n\n\tconst handleSortingChange = (updaterOrValue: SortingState | ((old: SortingState) => SortingState)) => {\n\t\tconst newSorting = typeof updaterOrValue === 'function' ? updaterOrValue(sorting) : updaterOrValue;\n\t\tsetSorting(newSorting);\n\t\tonSortingChange?.(newSorting);\n\t};\n\n\tconst handleRowSelectionChange = (\n\t\tupdaterOrValue: RowSelectionState | ((old: RowSelectionState) => RowSelectionState),\n\t) => {\n\t\tconst newRowSelection =\n\t\t\ttypeof updaterOrValue === 'function' ? updaterOrValue(rowSelection) : updaterOrValue;\n\t\tsetRowSelection(newRowSelection);\n\t\tonSelectionChange?.(newRowSelection);\n\t};\n\n\tconst table = useReactTable({\n\t\tdata: reorderable ? data : tableData,\n\t\tcolumns,\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tonSortingChange: handleSortingChange,\n\t\tgetSortedRowModel: getSortedRowModel(),\n\t\tonColumnFiltersChange: handleColumnFiltersChange,\n\t\tgetFilteredRowModel: getFilteredRowModel(),\n\t\tonColumnVisibilityChange: handleColumnVisibilityChange,\n\t\tonRowSelectionChange: handleRowSelectionChange,\n\t\tgetRowId: (row) => row.id,\n\t\tstate: {\n\t\t\tsorting,\n\t\t\tcolumnFilters,\n\t\t\tcolumnVisibility,\n\t\t\trowSelection,\n\t\t},\n\t\tenableRowSelection: typeof selectable === 'function' ? (row) => selectable(row.original) : selectable,\n\t});\n\n\tuseImperativeHandle(\n\t\tref,\n\t\t() => ({\n\t\t\tselectRow: (rowId: string) => {\n\t\t\t\ttable.getRow(rowId).toggleSelected(true);\n\t\t\t},\n\t\t\tdeselectRow: (rowId: string) => {\n\t\t\t\ttable.getRow(rowId).toggleSelected(false);\n\t\t\t},\n\t\t\tselectAllRows: () => {\n\t\t\t\ttable.toggleAllRowsSelected(true);\n\t\t\t},\n\t\t\tdeselectAllRows: () => {\n\t\t\t\ttable.toggleAllRowsSelected(false);\n\t\t\t},\n\t\t\tselectRows: (rowIds: string[]) => {\n\t\t\t\tconst selection: Record<string, boolean> = {};\n\t\t\t\trowIds.forEach((id) => (selection[id] = true));\n\t\t\t\ttable.setRowSelection(selection);\n\t\t\t},\n\t\t\tgetSelectedRows: () => {\n\t\t\t\treturn table.getFilteredSelectedRowModel().rows.map((r) => r.original);\n\t\t\t},\n\t\t}),\n\t\t[table],\n\t);\n\n\tconst { rows, rowsById } = table.getRowModel();\n\n\tconst rowVirtualizer = useVirtualizer({\n\t\tcount: rows.length,\n\t\tgetScrollElement: () => tableContainerRef.current,\n\t\t// estimate row height for accurate scrollbar dragging\n\t\testimateSize: () => virtualizedOptions?.estimateSize || ROW_SIZE_HEIGHT_MAP[rowSize],\n\t\toverscan: virtualizedOptions?.overscan || 5,\n\t\tonChange: (instance, sync) => {\n\t\t\tif (sync && onScroll) {\n\t\t\t\tconst scrollOffset = instance.scrollOffset || 0;\n\t\t\t\tconst totalContentHeight = instance.getTotalSize();\n\t\t\t\tconst viewportHeight = instance.scrollElement?.clientHeight;\n\n\t\t\t\tif (viewportHeight) {\n\t\t\t\t\tonScroll({ scrollOffset, totalContentHeight, viewportHeight });\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t});\n\n\tconst toggleRowExpanded = (rowId: string) => {\n\t\tsetExpandedRows((prev) => ({\n\t\t\t...prev,\n\t\t\t[rowId]: !prev[rowId],\n\t\t}));\n\t};\n\n\tconst renderEmptyState = () =>\n\t\tvirtualized ? (\n\t\t\t<div className={styles.emptyStateVirtualized}>{emptyState || 'No results.'}</div>\n\t\t) : (\n\t\t\t<TableRow>\n\t\t\t\t<TableCell\n\t\t\t\t\tcolSpan={columns.length + (expandable ? 1 : 0) + (selectable ? 1 : 0)}\n\t\t\t\t\tclassName={styles.emptyState}\n\t\t\t\t>\n\t\t\t\t\t{emptyState || 'No results.'}\n\t\t\t\t</TableCell>\n\t\t\t</TableRow>\n\t\t);\n\n\tconst selectedRows = Object.entries(rowSelection)\n\t\t.filter(([, selected]) => selected)\n\t\t// This is not necessarily a redundant condition. It depends on `noUncheckedIndexedAccess`.\n\t\t// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\t\t.map(([key]) => rowsById[key]?.original)\n\t\t.filter(Boolean);\n\n\tconst contextValue: DsTableContextType<TData, TValue> = {\n\t\tstickyHeader,\n\t\tbordered,\n\t\tfullWidth,\n\t\thighlightOnHover,\n\t\trowSize,\n\t\texpandable,\n\t\tselectable,\n\t\treorderable,\n\t\tshowSelectAllCheckbox,\n\t\tonRowClick,\n\t\tonRowDoubleClick,\n\t\tprimaryRowActions,\n\t\tsecondaryRowActions,\n\t\trenderExpandedRow,\n\t\tvirtualized,\n\t\texpandedRows,\n\t\ttoggleRowExpanded,\n\t\tactiveRowId,\n\t};\n\n\treturn (\n\t\t<DsTableContext.Provider value={contextValue}>\n\t\t\t<div\n\t\t\t\tref={tableContainerRef}\n\t\t\t\tclassName={classnames(\n\t\t\t\t\tstyles.container,\n\t\t\t\t\t!virtualized && styles.dataTableContainer,\n\t\t\t\t\tvirtualized && styles.virtualizedContainer,\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<DragWrapper>\n\t\t\t\t\t<Table\n\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\tvirtualized\n\t\t\t\t\t\t\t\t? ({\n\t\t\t\t\t\t\t\t\t\t'--ds-table-columns-template': createColumnsGridTemplate({\n\t\t\t\t\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t\t\t\t\t\tselectable: !!selectable,\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t} as React.CSSProperties)\n\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclassName={classnames(\n\t\t\t\t\t\t\tfullWidth && styles.fullWidth,\n\t\t\t\t\t\t\t!bordered && styles.tableNoBorder,\n\t\t\t\t\t\t\tvirtualized && styles.virtualized,\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<DsTableHeader table={table} />\n\t\t\t\t\t\t<TableBody\n\t\t\t\t\t\t\tstyle={{ height: virtualized ? `${String(rowVirtualizer.getTotalSize())}px` : undefined }}\n\t\t\t\t\t\t\tclassName={classnames(virtualized && styles.virtualizedBody)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{virtualized ? (\n\t\t\t\t\t\t\t\trowVirtualizer.getVirtualItems().length ? (\n\t\t\t\t\t\t\t\t\trowVirtualizer.getVirtualItems().map((virtualRow: VirtualItem) => {\n\t\t\t\t\t\t\t\t\t\tconst row = rows[virtualRow.index];\n\t\t\t\t\t\t\t\t\t\treturn <DsTableRow key={row.id} row={row} virtualRow={virtualRow} />;\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\trenderEmptyState()\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<SortableWrapper>\n\t\t\t\t\t\t\t\t\t{rows.length\n\t\t\t\t\t\t\t\t\t\t? rows.map((row) => <DsTableRow key={row.id} row={row} />)\n\t\t\t\t\t\t\t\t\t\t: renderEmptyState()}\n\t\t\t\t\t\t\t\t</SortableWrapper>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</TableBody>\n\t\t\t\t\t</Table>\n\t\t\t\t</DragWrapper>\n\t\t\t</div>\n\t\t\t{selectable && actions.length > 0 && (\n\t\t\t\t<DsTableBulkActions\n\t\t\t\t\tnumSelectedRows={selectedRows.length}\n\t\t\t\t\tactions={actions.map((action) => ({\n\t\t\t\t\t\t...action,\n\t\t\t\t\t\tonClick: () => action.onClick(selectedRows),\n\t\t\t\t\t}))}\n\t\t\t\t\tonClearSelection={table.resetRowSelection}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</DsTableContext.Provider>\n\t);\n};\n\nexport default DsTable;\n","[data-scope='toast'][data-part='root'] {\n\tdisplay: grid;\n\tgrid-template-columns: auto 1fr auto;\n\tgrid-template-rows: auto 1fr auto;\n\tgrid-template-areas:\n\t\t'icon title close'\n\t\t'description description description'\n\t\t'actions actions actions';\n\talign-items: start;\n\tpadding: var(--spacing-standard);\n\tborder-radius: 4px;\n\tcolumn-gap: var(--spacing-xs);\n\trow-gap: var(--spacing-4xs);\n\tcolor: var(--color-font-on-action);\n\tbox-shadow: 0 1.25px 4px 0 rgba(0, 0, 0, 0.25);\n\t// approx. 6 columns (64 * 2)\n\tmin-width: 384px;\n\t// approx. 10 columns (64 * 10)\n\tmax-width: 640px;\n\toverflow-wrap: anywhere;\n\ttranslate: var(--x) var(--y);\n\tz-index: var(--z-index);\n\n\twill-change: translate, opacity, scale;\n\n\t&[data-state='open'] {\n\t\tanimation: slide-in 0.35s ease-in-out both;\n\t\ttransition: 0.35s all;\n\t}\n\n\t&[data-state='closed'] {\n\t\tanimation: fade-out 0.25s ease-out forwards;\n\t}\n\n\t&[data-type='success'] {\n\t\tbackground: var(--color-background-success-strong);\n\t}\n\n\t&[data-type='info'] {\n\t\tbackground: var(--color-background-info-strong);\n\t}\n\n\t&[data-type='warning'] {\n\t\tbackground: var(--color-background-warning-strong);\n\t}\n\n\t&[data-type='error'] {\n\t\tbackground: var(--color-background-danger-strong);\n\t}\n\n\t&:not(:has([data-scope='toast'][data-part='title'])) {\n\t\tgrid-template-columns: auto 1fr auto auto;\n\t\tgrid-template-areas: 'icon description actions close';\n\t\talign-items: center;\n\n\t\t.actions {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n}\n\n[data-scope='toast'][data-part='close-trigger'] {\n\tgrid-area: close;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tborder-radius: var(--spacing-4xs);\n\n\t&:hover {\n\t\tbackground: rgba(0, 0, 0, 0.05);\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid currentColor;\n\t\toutline-offset: 1px;\n\t}\n}\n\n[data-scope='toast'][data-part='title'] {\n\tgrid-area: title;\n}\n\n[data-scope='toast'][data-part='description'] {\n\tgrid-area: description;\n}\n\n.icon {\n\tgrid-area: icon;\n\tcolor: var(--color-icon-inverse);\n}\n\n.actions {\n\tgrid-area: actions;\n\tmargin-top: var(--spacing-sm);\n}\n\n@media (max-width: 640px) {\n\t[data-scope='toast'][data-part='group'] {\n\t\twidth: 100%;\n\t}\n\n\t[data-scope='toast'][data-part='root'] {\n\t\tinset-inline: 0;\n\t\twidth: calc(100% - var(--gap) * 2);\n\t}\n}\n\n@keyframes slide-in {\n\t0% {\n\t\topacity: 0;\n\t\tscale: 0.9;\n\t}\n\n\t60% {\n\t\tscale: 1.05;\n\t}\n\n\t100% {\n\t\topacity: 1;\n\t\tscale: 1;\n\t}\n}\n\n@keyframes fade-out {\n\t0% {\n\t\topacity: 1;\n\t\ttranslate: 0 var(--offset);\n\t}\n\n\t100% {\n\t\topacity: 0;\n\t\ttranslate: 0 var(--offset);\n\t}\n}\n","import type React from 'react';\nimport { type CreateToasterReturn, Toast, Toaster } from '@ark-ui/react';\nimport styles from './ds-toast.module.scss';\nimport type { DsToastProps, ToastVariant } from './ds-toast.types';\nimport { type IconType, DsIcon } from '../ds-icon';\nimport { DsTypography } from '../ds-typography';\n\nconst variantIcons = {\n\tsuccess: 'check_circle',\n\tinfo: 'info',\n\twarning: 'error',\n\terror: 'cancel',\n} satisfies Record<ToastVariant, IconType>;\n\n/**\n * Design system Toast component\n * This component is used within the Toaster render function\n */\nconst DsToast = ({\n\tstyle,\n\tclassName,\n\tvariant = 'info',\n\ttitle,\n\tdescription,\n\tonDismiss,\n\tactions,\n}: DsToastProps) => (\n\t<Toast.Root style={style} className={className}>\n\t\t<DsIcon icon={variantIcons[variant]} size=\"small\" filled className={styles.icon} />\n\t\t{title && (\n\t\t\t<DsTypography variant=\"body-sm-md\" asChild>\n\t\t\t\t<Toast.Title>{title}</Toast.Title>\n\t\t\t</DsTypography>\n\t\t)}\n\t\t{description && (\n\t\t\t<DsTypography variant=\"body-sm-reg\" asChild>\n\t\t\t\t<Toast.Description>{description}</Toast.Description>\n\t\t\t</DsTypography>\n\t\t)}\n\t\t<Toast.CloseTrigger onClick={onDismiss}>\n\t\t\t<DsIcon icon=\"close\" size=\"small\" />\n\t\t</Toast.CloseTrigger>\n\t\t{actions && <div className={styles.actions}>{actions}</div>}\n\t</Toast.Root>\n);\n\n/**\n * Design system Toast Group component that wraps the Toaster\n */\nconst DsToastGroup: React.FC<{ toaster: CreateToasterReturn }> = ({ toaster }) => {\n\treturn <Toaster toaster={toaster}>{(toast: DsToastProps) => <DsToast {...toast} />}</Toaster>;\n};\n\nexport { DsToast, DsToastGroup };\n","import { type FC, type ReactNode, createContext, useContext } from 'react';\nimport { type CreateToasterReturn, createToaster } from '@ark-ui/react';\nimport { DsToastGroup } from './ds-toast';\nimport type { DsToastProps } from './ds-toast.types';\n\nexport interface DsToastProviderProps {\n\t/**\n\t * The maximum number of toasts to display (recommended 3 - 5)\n\t * @default 3\n\t */\n\tmax?: number;\n\t/**\n\t * The children of the toast provider\n\t */\n\tchildren: ReactNode;\n}\n\nexport type DsToastContextType = {\n\t/**\n\t * Create a new toast\n\t */\n\tcreateToast: (toast: DsToastProps) => string;\n\t/**\n\t * Dismiss a toast by id\n\t */\n\tdismissToast: (id: string) => void;\n\t/**\n\t * Dismiss all toasts\n\t */\n\tdismissAllToasts: () => void;\n\t/**\n\t * Get all visible toasts\n\t */\n\tgetToasts: () => DsToastProps[];\n\t/**\n\t * Get the total number of toasts\n\t */\n\tgetToastsCount: () => number;\n};\n\nconst DsToastContext = createContext<DsToastContextType | null>(null);\n\nconst createToastFactory = (toaster: CreateToasterReturn) => (toast: DsToastProps) =>\n\ttoaster.create({\n\t\t...toast,\n\t\ttype: toast.variant,\n\t\tduration: toast.persistent ? Infinity : toast.duration || 6000,\n\t});\n\nexport const DsToastProvider: FC<DsToastProviderProps> = ({ children, max = 3 }) => {\n\tconst toaster = createToaster({\n\t\tplacement: 'top',\n\t\tgap: 24,\n\t\tmax,\n\t});\n\n\tconst contextValue: DsToastContextType = {\n\t\tcreateToast: createToastFactory(toaster),\n\t\tdismissToast: toaster.dismiss,\n\t\tdismissAllToasts: () => toaster.dismiss(),\n\t\tgetToasts: toaster.getVisibleToasts,\n\t\tgetToastsCount: toaster.getCount,\n\t};\n\n\treturn (\n\t\t<DsToastContext.Provider value={contextValue}>\n\t\t\t{children}\n\t\t\t<DsToastGroup toaster={toaster} />\n\t\t</DsToastContext.Provider>\n\t);\n};\n\nexport const useToaster = (): DsToastContextType => {\n\tconst context = useContext(DsToastContext);\n\tif (!context) {\n\t\tthrow new Error('useToast must be used within a ToastProvider');\n\t}\n\treturn context;\n};\n","@use '../../styles/typography';\n\n.tabList {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\toverflow-y: auto;\n\n\tscrollbar-width: none;\n\t-ms-overflow-style: none;\n\n\t&::-webkit-scrollbar {\n\t\twidth: 0;\n\t\tdisplay: none;\n\t}\n}\n\n.tabItem {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 0 var(--spacing-lg);\n\tmin-height: var(--spacing-3xl);\n\theight: var(--spacing-3xl);\n\tflex-shrink: 0;\n\tborder: none;\n\tborder-bottom: 1px solid var(--color-border);\n\tbackground: var(--color-background-secondary);\n\tcursor: pointer;\n\ttext-align: left;\n\tcolor: var(--color-font-secondary);\n\ttransition:\n\t\tbackground-color 0.2s,\n\t\tcolor 0.2s;\n\tgap: var(--spacing-xs);\n\n\t&:hover:not(:disabled):not(.selected):not([data-disabled]) {\n\t\tbackground: var(--color-background-action-tertiary);\n\t\tcolor: var(--color-font-main);\n\t}\n\n\t&.selected,\n\t&[data-state='active'] {\n\t\tbackground: var(--color-background-action-secondary-hover);\n\t\tcolor: var(--color-font-main);\n\t}\n\n\t&:disabled,\n\t&[data-disabled] {\n\t\tcursor: not-allowed;\n\t\tcolor: var(--color-font-secondary);\n\t\topacity: 0.5;\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid var(--color-background-selected);\n\t\toutline-offset: -2px;\n\t\tz-index: 1;\n\t}\n}\n","import classNames from 'classnames';\nimport { Tabs } from '@ark-ui/react/tabs';\nimport type {\n\tDsVerticalTabsContentProps,\n\tDsVerticalTabsListProps,\n\tDsVerticalTabsRootProps,\n\tDsVerticalTabsTabProps,\n} from './ds-vertical-tabs.types';\nimport styles from './ds-vertical-tabs.module.scss';\n\n/**\n * Design system vertical tabs component - compound component for flexible vertical navigation\n *\n * @example\n * ```tsx\n * <DsVerticalTabs value={selected} onValueChange={handleChange}>\n * <DsVerticalTabs.List>\n * <DsVerticalTabs.Tab value=\"status\">\n * <span>Status</span>\n * <span className={styles.badge}>5</span>\n * </DsVerticalTabs.Tab>\n * <DsVerticalTabs.Tab value=\"date\">Date</DsVerticalTabs.Tab>\n * </DsVerticalTabs.List>\n * <DsVerticalTabs.Content value=\"status\">Status filters...</DsVerticalTabs.Content>\n * <DsVerticalTabs.Content value=\"date\">Date filters...</DsVerticalTabs.Content>\n * </DsVerticalTabs>\n * ```\n */\nconst DsVerticalTabs = ({ value, onValueChange, className, style, children }: DsVerticalTabsRootProps) => {\n\tconst handleValueChange = (details: { value: string | null }) => {\n\t\tonValueChange?.(details.value);\n\t};\n\n\treturn (\n\t\t<Tabs.Root\n\t\t\torientation=\"vertical\"\n\t\t\tvalue={value}\n\t\t\tonValueChange={handleValueChange}\n\t\t\tclassName={className}\n\t\t\tstyle={style}\n\t\t>\n\t\t\t{children}\n\t\t</Tabs.Root>\n\t);\n};\n\n/**\n * Container for tab triggers\n */\nconst DsVerticalTabsList = ({ className, children }: DsVerticalTabsListProps) => {\n\treturn <Tabs.List className={classNames(styles.tabList, className)}>{children}</Tabs.List>;\n};\n\n/**\n * Individual tab trigger - fully customizable content\n */\nconst DsVerticalTabsTab = ({ value, disabled, className, children }: DsVerticalTabsTabProps) => {\n\treturn (\n\t\t<Tabs.Trigger value={value} disabled={disabled} className={classNames(styles.tabItem, className)}>\n\t\t\t{children}\n\t\t</Tabs.Trigger>\n\t);\n};\n\n/**\n * Tab content panel - displays when corresponding tab is active\n */\nconst DsVerticalTabsContent = ({ value, className, children }: DsVerticalTabsContentProps) => {\n\treturn (\n\t\t<Tabs.Content value={value} className={className}>\n\t\t\t{children}\n\t\t</Tabs.Content>\n\t);\n};\n\nDsVerticalTabs.List = DsVerticalTabsList;\nDsVerticalTabs.Tab = DsVerticalTabsTab;\nDsVerticalTabs.Content = DsVerticalTabsContent;\n\nexport default DsVerticalTabs;\n"],"x_google_ignoreList":[11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30],"mappings":"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"}