@drivenets/design-system 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +1 -1
  3. package/dist/components/ds-alert-banner/ds-alert-banner.d.cts +5 -5
  4. package/dist/components/ds-alert-banner/ds-alert-banner.d.cts.map +1 -1
  5. package/dist/components/ds-alert-banner/ds-alert-banner.d.ts +5 -5
  6. package/dist/components/ds-alert-banner/ds-alert-banner.d.ts.map +1 -1
  7. package/dist/components/ds-alert-banner/ds-alert-banner.types.d.cts.map +1 -1
  8. package/dist/components/ds-autocomplete/ds-autocomplete.cjs +218 -0
  9. package/dist/components/ds-autocomplete/ds-autocomplete.d.cts +22 -0
  10. package/dist/components/ds-autocomplete/ds-autocomplete.d.cts.map +1 -0
  11. package/dist/components/ds-autocomplete/ds-autocomplete.d.ts +22 -0
  12. package/dist/components/ds-autocomplete/ds-autocomplete.d.ts.map +1 -0
  13. package/dist/components/ds-autocomplete/ds-autocomplete.js +217 -0
  14. package/dist/components/ds-autocomplete/ds-autocomplete.js.map +1 -0
  15. package/dist/components/ds-autocomplete/ds-autocomplete.module.cjs +27 -0
  16. package/dist/components/ds-autocomplete/ds-autocomplete.module.js +27 -0
  17. package/dist/components/ds-autocomplete/ds-autocomplete.module.js.map +1 -0
  18. package/dist/components/ds-autocomplete/ds-autocomplete.types.d.cts +79 -0
  19. package/dist/components/ds-autocomplete/ds-autocomplete.types.d.cts.map +1 -0
  20. package/dist/components/ds-autocomplete/ds-autocomplete.types.d.ts +80 -0
  21. package/dist/components/ds-autocomplete/ds-autocomplete.types.d.ts.map +1 -0
  22. package/dist/components/ds-autocomplete/index.cjs +1 -0
  23. package/dist/components/ds-autocomplete/index.d.ts +2 -0
  24. package/dist/components/ds-autocomplete/index.js +1 -0
  25. package/dist/components/ds-avatar/ds-avatar.cjs +4 -4
  26. package/dist/components/ds-avatar/ds-avatar.module.js.map +1 -1
  27. package/dist/components/ds-avatar-group/ds-avatar-group.module.js.map +1 -1
  28. package/dist/components/ds-breadcrumb/ds-breadcrumb.cjs +3 -3
  29. package/dist/components/ds-button/ds-button.d.cts +2 -2
  30. package/dist/components/ds-button/ds-button.d.ts +2 -2
  31. package/dist/components/ds-button/ds-button.d.ts.map +1 -1
  32. package/dist/components/ds-card/ds-card.cjs +263 -0
  33. package/dist/components/ds-card/ds-card.d.cts +41 -0
  34. package/dist/components/ds-card/ds-card.d.cts.map +1 -0
  35. package/dist/components/ds-card/ds-card.d.ts +41 -0
  36. package/dist/components/ds-card/ds-card.d.ts.map +1 -0
  37. package/dist/components/ds-card/ds-card.js +262 -0
  38. package/dist/components/ds-card/ds-card.js.map +1 -0
  39. package/dist/components/ds-card/ds-card.module.cjs +11 -0
  40. package/dist/components/ds-card/ds-card.module.js +11 -0
  41. package/dist/components/ds-card/ds-card.module.js.map +1 -0
  42. package/dist/components/ds-card/ds-card.types.cjs +10 -0
  43. package/dist/components/ds-card/ds-card.types.d.cts +65 -0
  44. package/dist/components/ds-card/ds-card.types.d.cts.map +1 -0
  45. package/dist/components/ds-card/ds-card.types.d.ts +65 -0
  46. package/dist/components/ds-card/ds-card.types.d.ts.map +1 -0
  47. package/dist/components/ds-card/ds-card.types.js +10 -0
  48. package/dist/components/ds-card/ds-card.types.js.map +1 -0
  49. package/dist/components/ds-card/index.cjs +2 -0
  50. package/dist/components/ds-card/index.d.ts +2 -0
  51. package/dist/components/ds-card/index.js +2 -0
  52. package/dist/components/ds-checkbox/ds-checkbox.cjs +4 -4
  53. package/dist/components/ds-chip-group/ds-chip-group.cjs +5 -5
  54. package/dist/components/ds-confirmation/ds-confirmation.cjs +20 -221
  55. package/dist/components/ds-confirmation/ds-confirmation.d.cts +22 -27
  56. package/dist/components/ds-confirmation/ds-confirmation.d.cts.map +1 -1
  57. package/dist/components/ds-confirmation/ds-confirmation.d.ts +22 -27
  58. package/dist/components/ds-confirmation/ds-confirmation.d.ts.map +1 -1
  59. package/dist/components/ds-confirmation/ds-confirmation.js +21 -221
  60. package/dist/components/ds-confirmation/ds-confirmation.js.map +1 -1
  61. package/dist/components/ds-confirmation/ds-confirmation.types.d.cts +2 -1
  62. package/dist/components/ds-confirmation/ds-confirmation.types.d.cts.map +1 -1
  63. package/dist/components/ds-confirmation/ds-confirmation.types.d.ts +2 -1
  64. package/dist/components/ds-confirmation/ds-confirmation.types.d.ts.map +1 -1
  65. package/dist/components/ds-date-input/ds-date-input.cjs +37 -37
  66. package/dist/components/ds-date-input/ds-date-input.d.cts +2 -2
  67. package/dist/components/ds-date-input/ds-date-input.d.ts +2 -2
  68. package/dist/components/ds-date-input/ds-date-input.utils.cjs +4 -4
  69. package/dist/components/ds-dialog/ds-dialog.cjs +11 -11
  70. package/dist/components/ds-drawer/ds-drawer.cjs +9 -9
  71. package/dist/components/ds-drawer/ds-drawer.d.cts +9 -9
  72. package/dist/components/ds-drawer/ds-drawer.d.cts.map +1 -1
  73. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.cjs +19 -19
  74. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.js +1 -1
  75. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.cjs +20 -20
  76. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.js +20 -20
  77. package/dist/components/ds-dropdown-menu/ds-dropdown-menu.module.js.map +1 -1
  78. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.cts +2 -2
  79. package/dist/components/ds-expandable-text-input/ds-expandable-text-input.d.ts +2 -2
  80. package/dist/components/ds-file-upload/components/file-upload/file-upload.cjs +5 -5
  81. package/dist/components/ds-file-upload/components/file-upload-item/file-upload-item.cjs +4 -4
  82. package/dist/components/ds-form-control/ds-form-control.d.cts +8 -8
  83. package/dist/components/ds-form-control/ds-form-control.d.ts +8 -8
  84. package/dist/components/ds-icon/custom-icons/index.cjs +113 -0
  85. package/dist/components/ds-icon/custom-icons/index.d.cts +62 -0
  86. package/dist/components/ds-icon/custom-icons/index.d.cts.map +1 -0
  87. package/dist/components/ds-icon/custom-icons/index.d.ts +62 -0
  88. package/dist/components/ds-icon/custom-icons/index.d.ts.map +1 -0
  89. package/dist/components/ds-icon/custom-icons/index.js +113 -0
  90. package/dist/components/ds-icon/custom-icons/index.js.map +1 -0
  91. package/dist/components/ds-icon/custom-icons/special-alarm-settings.cjs +73 -0
  92. package/dist/components/ds-icon/custom-icons/special-alarm-settings.js +73 -0
  93. package/dist/components/ds-icon/custom-icons/special-alarm-settings.js.map +1 -0
  94. package/dist/components/ds-icon/custom-icons/special-autoboot-profiles.cjs +49 -0
  95. package/dist/components/ds-icon/custom-icons/special-autoboot-profiles.js +49 -0
  96. package/dist/components/ds-icon/custom-icons/special-autoboot-profiles.js.map +1 -0
  97. package/dist/components/ds-icon/custom-icons/special-automation.cjs +49 -0
  98. package/dist/components/ds-icon/custom-icons/special-automation.js +49 -0
  99. package/dist/components/ds-icon/custom-icons/special-automation.js.map +1 -0
  100. package/dist/components/ds-icon/custom-icons/special-book.cjs +71 -0
  101. package/dist/components/ds-icon/custom-icons/special-book.js +71 -0
  102. package/dist/components/ds-icon/custom-icons/special-book.js.map +1 -0
  103. package/dist/components/ds-icon/custom-icons/special-cached-active.cjs +50 -0
  104. package/dist/components/ds-icon/custom-icons/special-cached-active.js +50 -0
  105. package/dist/components/ds-icon/custom-icons/special-cached-active.js.map +1 -0
  106. package/dist/components/ds-icon/custom-icons/special-cluster-ne.cjs +101 -0
  107. package/dist/components/ds-icon/custom-icons/special-cluster-ne.js +101 -0
  108. package/dist/components/ds-icon/custom-icons/special-cluster-ne.js.map +1 -0
  109. package/dist/components/ds-icon/custom-icons/special-compare.cjs +38 -0
  110. package/dist/components/ds-icon/custom-icons/special-compare.js +38 -0
  111. package/dist/components/ds-icon/custom-icons/special-compare.js.map +1 -0
  112. package/dist/components/ds-icon/custom-icons/special-config-template.cjs +58 -0
  113. package/dist/components/ds-icon/custom-icons/special-config-template.js +58 -0
  114. package/dist/components/ds-icon/custom-icons/special-config-template.js.map +1 -0
  115. package/dist/components/ds-icon/custom-icons/special-conflicted-nes.cjs +40 -0
  116. package/dist/components/ds-icon/custom-icons/special-conflicted-nes.js +40 -0
  117. package/dist/components/ds-icon/custom-icons/special-conflicted-nes.js.map +1 -0
  118. package/dist/components/ds-icon/custom-icons/special-device.cjs +38 -0
  119. package/dist/components/ds-icon/custom-icons/special-device.js +38 -0
  120. package/dist/components/ds-icon/custom-icons/special-device.js.map +1 -0
  121. package/dist/components/ds-icon/custom-icons/special-discovered-ne.cjs +39 -0
  122. package/dist/components/ds-icon/custom-icons/special-discovered-ne.js +39 -0
  123. package/dist/components/ds-icon/custom-icons/special-discovered-ne.js.map +1 -0
  124. package/dist/components/ds-icon/custom-icons/special-fiber-circuit.cjs +47 -0
  125. package/dist/components/ds-icon/custom-icons/special-fiber-circuit.js +47 -0
  126. package/dist/components/ds-icon/custom-icons/special-fiber-circuit.js.map +1 -0
  127. package/dist/components/ds-icon/custom-icons/special-filter-list-active.cjs +50 -0
  128. package/dist/components/ds-icon/custom-icons/special-filter-list-active.js +50 -0
  129. package/dist/components/ds-icon/custom-icons/special-filter-list-active.js.map +1 -0
  130. package/dist/components/ds-icon/custom-icons/special-general-details.cjs +47 -0
  131. package/dist/components/ds-icon/custom-icons/special-general-details.js +47 -0
  132. package/dist/components/ds-icon/custom-icons/special-general-details.js.map +1 -0
  133. package/dist/components/ds-icon/custom-icons/special-gnmi.cjs +77 -0
  134. package/dist/components/ds-icon/custom-icons/special-gnmi.js +77 -0
  135. package/dist/components/ds-icon/custom-icons/special-gnmi.js.map +1 -0
  136. package/dist/components/ds-icon/custom-icons/special-grouped-devices.cjs +58 -0
  137. package/dist/components/ds-icon/custom-icons/special-grouped-devices.js +58 -0
  138. package/dist/components/ds-icon/custom-icons/special-grouped-devices.js.map +1 -0
  139. package/dist/components/ds-icon/custom-icons/special-hardware.cjs +47 -0
  140. package/dist/components/ds-icon/custom-icons/special-hardware.js +47 -0
  141. package/dist/components/ds-icon/custom-icons/special-hardware.js.map +1 -0
  142. package/dist/components/ds-icon/custom-icons/special-home.cjs +38 -0
  143. package/dist/components/ds-icon/custom-icons/special-home.js +38 -0
  144. package/dist/components/ds-icon/custom-icons/special-home.js.map +1 -0
  145. package/dist/components/ds-icon/custom-icons/special-lego.cjs +80 -0
  146. package/dist/components/ds-icon/custom-icons/special-lego.js +80 -0
  147. package/dist/components/ds-icon/custom-icons/special-lego.js.map +1 -0
  148. package/dist/components/ds-icon/custom-icons/special-map-view.cjs +162 -0
  149. package/dist/components/ds-icon/custom-icons/special-map-view.js +162 -0
  150. package/dist/components/ds-icon/custom-icons/special-map-view.js.map +1 -0
  151. package/dist/components/ds-icon/custom-icons/special-market.cjs +35 -0
  152. package/dist/components/ds-icon/custom-icons/special-market.js +35 -0
  153. package/dist/components/ds-icon/custom-icons/special-market.js.map +1 -0
  154. package/dist/components/ds-icon/custom-icons/special-modules.cjs +70 -0
  155. package/dist/components/ds-icon/custom-icons/special-modules.js +70 -0
  156. package/dist/components/ds-icon/custom-icons/special-modules.js.map +1 -0
  157. package/dist/components/ds-icon/custom-icons/special-ne-health.cjs +47 -0
  158. package/dist/components/ds-icon/custom-icons/special-ne-health.js +47 -0
  159. package/dist/components/ds-icon/custom-icons/special-ne-health.js.map +1 -0
  160. package/dist/components/ds-icon/custom-icons/special-ne-nav-360-dashboard.cjs +96 -0
  161. package/dist/components/ds-icon/custom-icons/special-ne-nav-360-dashboard.js +96 -0
  162. package/dist/components/ds-icon/custom-icons/special-ne-nav-360-dashboard.js.map +1 -0
  163. package/dist/components/ds-icon/custom-icons/special-ne-nav-components.cjs +35 -0
  164. package/dist/components/ds-icon/custom-icons/special-ne-nav-components.js +35 -0
  165. package/dist/components/ds-icon/custom-icons/special-ne-nav-components.js.map +1 -0
  166. package/dist/components/ds-icon/custom-icons/special-ne-nav-install-log.cjs +49 -0
  167. package/dist/components/ds-icon/custom-icons/special-ne-nav-install-log.js +49 -0
  168. package/dist/components/ds-icon/custom-icons/special-ne-nav-install-log.js.map +1 -0
  169. package/dist/components/ds-icon/custom-icons/special-ne-nav-logging.cjs +49 -0
  170. package/dist/components/ds-icon/custom-icons/special-ne-nav-logging.js +49 -0
  171. package/dist/components/ds-icon/custom-icons/special-ne-nav-logging.js.map +1 -0
  172. package/dist/components/ds-icon/custom-icons/special-ne-nav-message-support.cjs +81 -0
  173. package/dist/components/ds-icon/custom-icons/special-ne-nav-message-support.js +81 -0
  174. package/dist/components/ds-icon/custom-icons/special-ne-nav-message-support.js.map +1 -0
  175. package/dist/components/ds-icon/custom-icons/special-ne-nav-settings.cjs +49 -0
  176. package/dist/components/ds-icon/custom-icons/special-ne-nav-settings.js +49 -0
  177. package/dist/components/ds-icon/custom-icons/special-ne-nav-settings.js.map +1 -0
  178. package/dist/components/ds-icon/custom-icons/special-ne-nav-stacks.cjs +35 -0
  179. package/dist/components/ds-icon/custom-icons/special-ne-nav-stacks.js +35 -0
  180. package/dist/components/ds-icon/custom-icons/special-ne-nav-stacks.js.map +1 -0
  181. package/dist/components/ds-icon/custom-icons/special-ne-nav-terminal.cjs +39 -0
  182. package/dist/components/ds-icon/custom-icons/special-ne-nav-terminal.js +39 -0
  183. package/dist/components/ds-icon/custom-icons/special-ne-nav-terminal.js.map +1 -0
  184. package/dist/components/ds-icon/custom-icons/special-ne-nav-topology.cjs +35 -0
  185. package/dist/components/ds-icon/custom-icons/special-ne-nav-topology.js +35 -0
  186. package/dist/components/ds-icon/custom-icons/special-ne-nav-topology.js.map +1 -0
  187. package/dist/components/ds-icon/custom-icons/special-netgen-s.cjs +60 -0
  188. package/dist/components/ds-icon/custom-icons/special-netgen-s.js +60 -0
  189. package/dist/components/ds-icon/custom-icons/special-netgen-s.js.map +1 -0
  190. package/dist/components/ds-icon/custom-icons/special-netgen.cjs +60 -0
  191. package/dist/components/ds-icon/custom-icons/special-netgen.js +60 -0
  192. package/dist/components/ds-icon/custom-icons/special-netgen.js.map +1 -0
  193. package/dist/components/ds-icon/custom-icons/special-old-base-os.cjs +93 -0
  194. package/dist/components/ds-icon/custom-icons/special-old-base-os.js +93 -0
  195. package/dist/components/ds-icon/custom-icons/special-old-base-os.js.map +1 -0
  196. package/dist/components/ds-icon/custom-icons/special-packages.cjs +39 -0
  197. package/dist/components/ds-icon/custom-icons/special-packages.js +39 -0
  198. package/dist/components/ds-icon/custom-icons/special-packages.js.map +1 -0
  199. package/dist/components/ds-icon/custom-icons/special-resources.cjs +70 -0
  200. package/dist/components/ds-icon/custom-icons/special-resources.js +70 -0
  201. package/dist/components/ds-icon/custom-icons/special-resources.js.map +1 -0
  202. package/dist/components/ds-icon/custom-icons/special-scheme.cjs +64 -0
  203. package/dist/components/ds-icon/custom-icons/special-scheme.js +64 -0
  204. package/dist/components/ds-icon/custom-icons/special-scheme.js.map +1 -0
  205. package/dist/components/ds-icon/custom-icons/special-site-generic.cjs +59 -0
  206. package/dist/components/ds-icon/custom-icons/special-site-generic.js +59 -0
  207. package/dist/components/ds-icon/custom-icons/special-site-generic.js.map +1 -0
  208. package/dist/components/ds-icon/custom-icons/special-site-t1.cjs +35 -0
  209. package/dist/components/ds-icon/custom-icons/special-site-t1.js +35 -0
  210. package/dist/components/ds-icon/custom-icons/special-site-t1.js.map +1 -0
  211. package/dist/components/ds-icon/custom-icons/special-site-t2.cjs +35 -0
  212. package/dist/components/ds-icon/custom-icons/special-site-t2.js +35 -0
  213. package/dist/components/ds-icon/custom-icons/special-site-t2.js.map +1 -0
  214. package/dist/components/ds-icon/custom-icons/special-site-t3.cjs +35 -0
  215. package/dist/components/ds-icon/custom-icons/special-site-t3.js +35 -0
  216. package/dist/components/ds-icon/custom-icons/special-site-t3.js.map +1 -0
  217. package/dist/components/ds-icon/custom-icons/special-site-t4.cjs +35 -0
  218. package/dist/components/ds-icon/custom-icons/special-site-t4.js +35 -0
  219. package/dist/components/ds-icon/custom-icons/special-site-t4.js.map +1 -0
  220. package/dist/components/ds-icon/custom-icons/special-site-unknown.cjs +63 -0
  221. package/dist/components/ds-icon/custom-icons/special-site-unknown.js +63 -0
  222. package/dist/components/ds-icon/custom-icons/special-site-unknown.js.map +1 -0
  223. package/dist/components/ds-icon/custom-icons/special-software.cjs +38 -0
  224. package/dist/components/ds-icon/custom-icons/special-software.js +38 -0
  225. package/dist/components/ds-icon/custom-icons/special-software.js.map +1 -0
  226. package/dist/components/ds-icon/custom-icons/special-stacks.cjs +39 -0
  227. package/dist/components/ds-icon/custom-icons/special-stacks.js +39 -0
  228. package/dist/components/ds-icon/custom-icons/special-stacks.js.map +1 -0
  229. package/dist/components/ds-icon/custom-icons/special-standalone.cjs +35 -0
  230. package/dist/components/ds-icon/custom-icons/special-standalone.js +35 -0
  231. package/dist/components/ds-icon/custom-icons/special-standalone.js.map +1 -0
  232. package/dist/components/ds-icon/custom-icons/special-upgrading.cjs +35 -0
  233. package/dist/components/ds-icon/custom-icons/special-upgrading.js +35 -0
  234. package/dist/components/ds-icon/custom-icons/special-upgrading.js.map +1 -0
  235. package/dist/components/ds-icon/custom-icons/special-version-control.cjs +40 -0
  236. package/dist/components/ds-icon/custom-icons/special-version-control.js +40 -0
  237. package/dist/components/ds-icon/custom-icons/special-version-control.js.map +1 -0
  238. package/dist/components/ds-icon/custom-icons/special-webhook.cjs +38 -0
  239. package/dist/components/ds-icon/custom-icons/special-webhook.js +38 -0
  240. package/dist/components/ds-icon/custom-icons/special-webhook.js.map +1 -0
  241. package/dist/components/ds-icon/custom-icons/special-yang-version-control.cjs +38 -0
  242. package/dist/components/ds-icon/custom-icons/special-yang-version-control.js +38 -0
  243. package/dist/components/ds-icon/custom-icons/special-yang-version-control.js.map +1 -0
  244. package/dist/components/ds-icon/ds-icon.cjs +14 -5
  245. package/dist/components/ds-icon/ds-icon.d.cts +11 -4
  246. package/dist/components/ds-icon/ds-icon.d.cts.map +1 -1
  247. package/dist/components/ds-icon/ds-icon.d.ts +11 -4
  248. package/dist/components/ds-icon/ds-icon.d.ts.map +1 -1
  249. package/dist/components/ds-icon/ds-icon.js +14 -5
  250. package/dist/components/ds-icon/ds-icon.js.map +1 -1
  251. package/dist/components/ds-icon/ds-icon.module.cjs +7 -7
  252. package/dist/components/ds-icon/ds-icon.module.js +7 -7
  253. package/dist/components/ds-icon/ds-icon.module.js.map +1 -1
  254. package/dist/components/ds-icon/ds-icon.types.d.cts +8 -6
  255. package/dist/components/ds-icon/ds-icon.types.d.cts.map +1 -1
  256. package/dist/components/ds-icon/ds-icon.types.d.ts +8 -6
  257. package/dist/components/ds-icon/ds-icon.types.d.ts.map +1 -1
  258. package/dist/components/ds-icon/ds-icon.types.js.map +1 -1
  259. package/dist/components/ds-icon/index.cjs +1 -0
  260. package/dist/components/ds-icon/index.d.ts +2 -1
  261. package/dist/components/ds-icon/index.js +1 -0
  262. package/dist/components/ds-loader/ds-loader.d.cts +2 -2
  263. package/dist/components/ds-loader/ds-loader.d.ts +2 -2
  264. package/dist/components/ds-modal/ds-modal.cjs +51 -52
  265. package/dist/components/ds-modal/ds-modal.d.cts +11 -10
  266. package/dist/components/ds-modal/ds-modal.d.cts.map +1 -1
  267. package/dist/components/ds-modal/ds-modal.d.ts +3 -2
  268. package/dist/components/ds-modal/ds-modal.d.ts.map +1 -1
  269. package/dist/components/ds-modal/ds-modal.js +47 -48
  270. package/dist/components/ds-modal/ds-modal.js.map +1 -1
  271. package/dist/components/ds-modal/ds-modal.module.cjs +24 -24
  272. package/dist/components/ds-modal/ds-modal.module.js +24 -24
  273. package/dist/components/ds-modal/ds-modal.module.js.map +1 -1
  274. package/dist/components/ds-modal/ds-modal.types.d.cts +10 -5
  275. package/dist/components/ds-modal/ds-modal.types.d.cts.map +1 -1
  276. package/dist/components/ds-modal/ds-modal.types.d.ts +10 -5
  277. package/dist/components/ds-modal/ds-modal.types.d.ts.map +1 -1
  278. package/dist/components/ds-number-input/ds-number-input.cjs +6 -6
  279. package/dist/components/ds-panel/ds-panel.cjs +4 -4
  280. package/dist/components/ds-panel/ds-panel.d.cts +2 -2
  281. package/dist/components/ds-panel/ds-panel.d.cts.map +1 -1
  282. package/dist/components/ds-panel/ds-panel.d.ts +2 -2
  283. package/dist/components/ds-password-input/ds-password-input.cjs +6 -6
  284. package/dist/components/ds-popover/ds-popover.cjs +6 -6
  285. package/dist/components/ds-radio-group/ds-radio-group.cjs +11 -11
  286. package/dist/components/ds-radio-group/ds-radio-group.types.cjs +1 -1
  287. package/dist/components/ds-segment-group/ds-segment-group.cjs +7 -7
  288. package/dist/components/ds-segment-group/ds-segment-group.types.cjs +1 -1
  289. package/dist/components/ds-select/ds-select.cjs +16 -16
  290. package/dist/components/ds-select/ds-select.d.cts +2 -2
  291. package/dist/components/ds-select/ds-select.d.ts +2 -2
  292. package/dist/components/ds-select/select-items-chips.cjs +2 -2
  293. package/dist/components/ds-skeleton/ds-skeleton-circle.d.cts +2 -2
  294. package/dist/components/ds-skeleton/ds-skeleton-circle.d.ts +2 -2
  295. package/dist/components/ds-skeleton/ds-skeleton-rect.d.cts +2 -2
  296. package/dist/components/ds-skeleton/ds-skeleton-rect.d.ts +2 -2
  297. package/dist/components/ds-skeleton/ds-skeleton-rect.d.ts.map +1 -1
  298. package/dist/components/ds-skeleton/ds-skeleton-text.d.cts +2 -2
  299. package/dist/components/ds-skeleton/ds-skeleton-text.d.ts +2 -2
  300. package/dist/components/ds-skeleton/ds-skeleton.d.cts +4 -4
  301. package/dist/components/ds-skeleton/ds-skeleton.d.ts +4 -4
  302. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.cts +2 -2
  303. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts +2 -2
  304. package/dist/components/ds-smart-tabs/ds-smart-tabs.d.ts.map +1 -1
  305. package/dist/components/ds-stepper/components/ds-step-content.d.cts +2 -2
  306. package/dist/components/ds-stepper/components/ds-step-content.d.ts +2 -2
  307. package/dist/components/ds-stepper/components/ds-step-next-button.d.cts +2 -2
  308. package/dist/components/ds-stepper/components/ds-step-next-button.d.ts +2 -2
  309. package/dist/components/ds-stepper/components/ds-step.d.cts +2 -2
  310. package/dist/components/ds-stepper/components/ds-step.d.ts +2 -2
  311. package/dist/components/ds-stepper/ds-stepper.d.cts +2 -2
  312. package/dist/components/ds-stepper/ds-stepper.d.ts +2 -2
  313. package/dist/components/ds-stepper/hooks/use-steps.cjs +5 -5
  314. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.cjs +3 -2
  315. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.js +1 -0
  316. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.js.map +1 -1
  317. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.cts +4 -0
  318. package/dist/components/ds-table/components/ds-table-cell/ds-table-cell.types.d.ts +4 -0
  319. package/dist/components/ds-table/components/ds-table-header/ds-table-header.cjs +2 -2
  320. package/dist/components/ds-table/components/ds-table-row/ds-table-row.cjs +4 -4
  321. package/dist/components/ds-table/ds-table.cjs +7 -7
  322. package/dist/components/ds-table/ds-table.d.cts +2 -2
  323. package/dist/components/ds-table/ds-table.d.ts +2 -2
  324. package/dist/components/ds-table/filters/hooks/index.d.ts +1 -1
  325. package/dist/components/ds-table/filters/hooks/use-table-filters.cjs +180 -185
  326. package/dist/components/ds-table/filters/hooks/use-table-filters.d.cts +58 -25
  327. package/dist/components/ds-table/filters/hooks/use-table-filters.d.cts.map +1 -1
  328. package/dist/components/ds-table/filters/hooks/use-table-filters.d.ts +58 -25
  329. package/dist/components/ds-table/filters/hooks/use-table-filters.d.ts.map +1 -1
  330. package/dist/components/ds-table/filters/hooks/use-table-filters.js +180 -185
  331. package/dist/components/ds-table/filters/hooks/use-table-filters.js.map +1 -1
  332. package/dist/components/ds-table/filters/index.d.ts +1 -1
  333. package/dist/components/ds-table/hooks/use-drag-and-drop.cjs +10 -10
  334. package/dist/components/ds-table/index.d.ts +1 -1
  335. package/dist/components/ds-table/utils/column-styling.cjs +2 -2
  336. package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.cjs +2 -2
  337. package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.module.cjs +2 -2
  338. package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.module.js +2 -2
  339. package/dist/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.module.js.map +1 -1
  340. package/dist/components/ds-tabs/components/ds-tabs-list/ds-tabs-list.cjs +3 -3
  341. package/dist/components/ds-tabs/components/ds-tabs-tab/ds-tabs-tab.cjs +2 -2
  342. package/dist/components/ds-tabs/ds-tabs.cjs +2 -2
  343. package/dist/components/ds-tabs/ds-tabs.d.cts +5 -5
  344. package/dist/components/ds-tabs/ds-tabs.d.ts +5 -5
  345. package/dist/components/ds-tag/ds-tag.d.ts +2 -2
  346. package/dist/components/ds-tag-filter/ds-tag-filter.d.cts +2 -2
  347. package/dist/components/ds-tag-filter/ds-tag-filter.d.ts +2 -2
  348. package/dist/components/ds-toast/ds-toast-context.cjs +2 -2
  349. package/dist/components/ds-toast/ds-toast.cjs +6 -6
  350. package/dist/components/ds-toggle/ds-toggle.cjs +6 -6
  351. package/dist/components/ds-toggle/ds-toggle.d.cts +2 -2
  352. package/dist/components/ds-toggle/ds-toggle.d.ts +2 -2
  353. package/dist/components/ds-tooltip/ds-tooltip.cjs +7 -7
  354. package/dist/components/ds-typography/ds-typography.cjs +2 -2
  355. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.cjs +5 -5
  356. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.cts +5 -5
  357. package/dist/components/ds-vertical-tabs/ds-vertical-tabs.d.ts +5 -5
  358. package/dist/index.cjs +48 -37
  359. package/dist/index.d.cts +8 -3
  360. package/dist/index.d.ts +10 -3
  361. package/dist/index.js +8 -2
  362. package/dist/index.min.css +1 -1
  363. package/package.json +43 -40
  364. package/src/components/ds-autocomplete/ds-autocomplete.module.scss +257 -0
  365. package/src/components/ds-autocomplete/ds-autocomplete.tsx +130 -0
  366. package/src/components/ds-autocomplete/ds-autocomplete.types.tsx +76 -0
  367. package/src/components/ds-autocomplete/index.ts +2 -0
  368. package/src/components/ds-avatar/ds-avatar.module.scss +1 -1
  369. package/src/components/ds-avatar-group/ds-avatar-group.module.scss +1 -1
  370. package/src/components/ds-card/ds-card.module.scss +119 -0
  371. package/src/components/ds-card/ds-card.tsx +87 -0
  372. package/src/components/ds-card/ds-card.types.ts +72 -0
  373. package/src/components/ds-card/index.ts +9 -0
  374. package/src/components/ds-confirmation/ds-confirmation.tsx +11 -115
  375. package/src/components/ds-confirmation/ds-confirmation.types.tsx +2 -1
  376. package/src/components/ds-dropdown-menu/ds-dropdown-menu.module.scss +0 -1
  377. package/src/components/ds-icon/custom-icons/index.ts +137 -0
  378. package/src/components/ds-icon/custom-icons/special-alarm-settings.tsx +30 -0
  379. package/src/components/ds-icon/custom-icons/special-autoboot-profiles.tsx +20 -0
  380. package/src/components/ds-icon/custom-icons/special-automation.tsx +20 -0
  381. package/src/components/ds-icon/custom-icons/special-book.tsx +25 -0
  382. package/src/components/ds-icon/custom-icons/special-cached-active.tsx +15 -0
  383. package/src/components/ds-icon/custom-icons/special-cluster-ne.tsx +38 -0
  384. package/src/components/ds-icon/custom-icons/special-compare.tsx +14 -0
  385. package/src/components/ds-icon/custom-icons/special-config-template.tsx +22 -0
  386. package/src/components/ds-icon/custom-icons/special-conflicted-nes.tsx +16 -0
  387. package/src/components/ds-icon/custom-icons/special-device.tsx +14 -0
  388. package/src/components/ds-icon/custom-icons/special-discovered-ne.tsx +22 -0
  389. package/src/components/ds-icon/custom-icons/special-fiber-circuit.tsx +18 -0
  390. package/src/components/ds-icon/custom-icons/special-filter-list-active.tsx +15 -0
  391. package/src/components/ds-icon/custom-icons/special-general-details.tsx +18 -0
  392. package/src/components/ds-icon/custom-icons/special-gnmi.tsx +34 -0
  393. package/src/components/ds-icon/custom-icons/special-grouped-devices.tsx +22 -0
  394. package/src/components/ds-icon/custom-icons/special-hardware.tsx +18 -0
  395. package/src/components/ds-icon/custom-icons/special-home.tsx +14 -0
  396. package/src/components/ds-icon/custom-icons/special-lego.tsx +26 -0
  397. package/src/components/ds-icon/custom-icons/special-map-view.tsx +81 -0
  398. package/src/components/ds-icon/custom-icons/special-market.tsx +18 -0
  399. package/src/components/ds-icon/custom-icons/special-modules.tsx +25 -0
  400. package/src/components/ds-icon/custom-icons/special-ne-health.tsx +18 -0
  401. package/src/components/ds-icon/custom-icons/special-ne-nav-360-dashboard.tsx +34 -0
  402. package/src/components/ds-icon/custom-icons/special-ne-nav-components.tsx +18 -0
  403. package/src/components/ds-icon/custom-icons/special-ne-nav-install-log.tsx +27 -0
  404. package/src/components/ds-icon/custom-icons/special-ne-nav-logging.tsx +20 -0
  405. package/src/components/ds-icon/custom-icons/special-ne-nav-message-support.tsx +31 -0
  406. package/src/components/ds-icon/custom-icons/special-ne-nav-settings.tsx +27 -0
  407. package/src/components/ds-icon/custom-icons/special-ne-nav-stacks.tsx +18 -0
  408. package/src/components/ds-icon/custom-icons/special-ne-nav-terminal.tsx +22 -0
  409. package/src/components/ds-icon/custom-icons/special-ne-nav-topology.tsx +18 -0
  410. package/src/components/ds-icon/custom-icons/special-netgen-s.tsx +24 -0
  411. package/src/components/ds-icon/custom-icons/special-netgen.tsx +24 -0
  412. package/src/components/ds-icon/custom-icons/special-old-base-os.tsx +36 -0
  413. package/src/components/ds-icon/custom-icons/special-packages.tsx +22 -0
  414. package/src/components/ds-icon/custom-icons/special-resources.tsx +25 -0
  415. package/src/components/ds-icon/custom-icons/special-scheme.tsx +28 -0
  416. package/src/components/ds-icon/custom-icons/special-site-generic.tsx +22 -0
  417. package/src/components/ds-icon/custom-icons/special-site-t1.tsx +18 -0
  418. package/src/components/ds-icon/custom-icons/special-site-t2.tsx +18 -0
  419. package/src/components/ds-icon/custom-icons/special-site-t3.tsx +18 -0
  420. package/src/components/ds-icon/custom-icons/special-site-t4.tsx +18 -0
  421. package/src/components/ds-icon/custom-icons/special-site-unknown.tsx +26 -0
  422. package/src/components/ds-icon/custom-icons/special-software.tsx +14 -0
  423. package/src/components/ds-icon/custom-icons/special-stacks.tsx +22 -0
  424. package/src/components/ds-icon/custom-icons/special-standalone.tsx +18 -0
  425. package/src/components/ds-icon/custom-icons/special-upgrading.tsx +18 -0
  426. package/src/components/ds-icon/custom-icons/special-version-control.tsx +16 -0
  427. package/src/components/ds-icon/custom-icons/special-webhook.tsx +14 -0
  428. package/src/components/ds-icon/custom-icons/special-yang-version-control.tsx +14 -0
  429. package/src/components/ds-icon/ds-icon.module.scss +10 -0
  430. package/src/components/ds-icon/ds-icon.tsx +14 -5
  431. package/src/components/ds-icon/ds-icon.types.ts +8 -5
  432. package/src/components/ds-icon/index.ts +1 -0
  433. package/src/components/ds-modal/ds-modal.module.scss +123 -60
  434. package/src/components/ds-modal/ds-modal.tsx +5 -2
  435. package/src/components/ds-modal/ds-modal.types.tsx +14 -5
  436. package/src/components/ds-table/components/ds-table-cell/ds-table-cell.tsx +1 -0
  437. package/src/components/ds-table/components/ds-table-cell/ds-table-cell.types.ts +5 -0
  438. package/src/components/ds-table/filters/hooks/index.ts +1 -1
  439. package/src/components/ds-table/filters/hooks/use-table-filters.ts +117 -116
  440. package/src/components/ds-tabs/components/ds-tabs-content/ds-tabs-content.module.scss +4 -0
  441. package/src/index.ts +2 -0
  442. package/src/styles/shared/_modal.scss +0 -123
  443. package/dist/components/ds-confirmation/ds-confirmation.module.cjs +0 -21
  444. package/dist/components/ds-confirmation/ds-confirmation.module.js +0 -21
  445. package/dist/components/ds-confirmation/ds-confirmation.module.js.map +0 -1
  446. package/src/components/ds-confirmation/ds-confirmation.module.scss +0 -58
  447. package/src/components/ds-table/utils/story-data-generator.ts +0 -91
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drivenets/design-system",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.cts",
@@ -36,24 +36,24 @@
36
36
  "directory": "/packages/design-system"
37
37
  },
38
38
  "dependencies": {
39
- "@ark-ui/react": "^5.18.0",
39
+ "@ark-ui/react": "^5.31.0",
40
40
  "@dnd-kit/core": "^6.3.1",
41
41
  "@dnd-kit/modifiers": "^9.0.0",
42
42
  "@dnd-kit/sortable": "^10.0.0",
43
43
  "@dnd-kit/utilities": "^3.2.2",
44
- "@radix-ui/react-checkbox": "^1.1.5",
45
- "@radix-ui/react-collapsible": "^1.1.11",
46
- "@radix-ui/react-dialog": "^1.1.13",
47
- "@radix-ui/react-dropdown-menu": "^2.1.14",
48
- "@radix-ui/react-popover": "^1.1.11",
49
- "@radix-ui/react-radio-group": "^1.2.4",
50
- "@radix-ui/react-slot": "^1.2.3",
51
- "@radix-ui/react-tooltip": "^1.2.4",
52
- "@radix-ui/react-visually-hidden": "^1.2.2",
44
+ "@radix-ui/react-checkbox": "^1.3.3",
45
+ "@radix-ui/react-collapsible": "^1.1.12",
46
+ "@radix-ui/react-dialog": "^1.1.15",
47
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
48
+ "@radix-ui/react-popover": "^1.1.15",
49
+ "@radix-ui/react-radio-group": "^1.3.8",
50
+ "@radix-ui/react-slot": "^1.2.4",
51
+ "@radix-ui/react-tooltip": "^1.2.8",
52
+ "@radix-ui/react-visually-hidden": "^1.2.4",
53
53
  "@tanstack/react-table": "^8.21.3",
54
- "@tanstack/react-virtual": "^3.13.6",
55
- "@zag-js/react": "^1.17.4",
56
- "@zag-js/steps": "^1.17.4",
54
+ "@tanstack/react-virtual": "^3.13.18",
55
+ "@zag-js/react": "^1.33.1",
56
+ "@zag-js/steps": "^1.33.1",
57
57
  "classnames": "^2.5.1"
58
58
  },
59
59
  "peerDependencies": {
@@ -63,47 +63,48 @@
63
63
  },
64
64
  "devDependencies": {
65
65
  "@arethetypeswrong/cli": "^0.18.2",
66
- "@chromatic-com/storybook": "^4.1.3",
67
- "@faker-js/faker": "^9.7.0",
68
- "@hookform/resolvers": "^5.0.1",
66
+ "@faker-js/faker": "^9.9.0",
67
+ "@hookform/resolvers": "^5.2.2",
69
68
  "@rollup/plugin-babel": "^6.1.0",
70
- "@storybook/addon-a11y": "^10.1.9",
71
- "@storybook/addon-docs": "^10.1.9",
72
- "@storybook/addon-vitest": "^10.1.9",
73
- "@storybook/builder-vite": "^10.1.9",
74
- "@storybook/react-vite": "^10.1.9",
75
- "@tanstack/react-query": "^5.90.12",
76
- "@tanstack/react-router": "^1.141.2",
69
+ "@storybook/addon-a11y": "^10.2.7",
70
+ "@storybook/addon-docs": "^10.2.7",
71
+ "@storybook/addon-vitest": "^10.2.7",
72
+ "@storybook/builder-vite": "^10.2.7",
73
+ "@storybook/react-vite": "^10.2.7",
74
+ "@tanstack/react-query": "^5.90.20",
75
+ "@tanstack/react-router": "^1.158.4",
77
76
  "@types/eslint-plugin-jsx-a11y": "^6.10.1",
78
- "@types/react": "^19.2.7",
77
+ "@types/react": "^19.2.13",
79
78
  "@types/react-dom": "^19.2.3",
80
- "@vitest/browser": "^4.0.16",
81
- "@vitest/browser-playwright": "^4.0.15",
79
+ "@vitest/browser": "^4.0.18",
80
+ "@vitest/browser-playwright": "^4.0.18",
81
+ "@vitest/coverage-v8": "^4.0.18",
82
82
  "babel-plugin-react-compiler": "^1.0.0",
83
83
  "eslint": "^9.39.2",
84
84
  "eslint-plugin-jsx-a11y": "^6.10.2",
85
85
  "eslint-plugin-react": "^7.37.5",
86
86
  "eslint-plugin-react-hooks": "^7.0.1",
87
- "eslint-plugin-storybook": "^10.1.9",
87
+ "eslint-plugin-storybook": "^10.2.7",
88
88
  "jsdom": "^25.0.1",
89
- "playwright": "^1.57.0",
89
+ "mockdate": "^3.0.5",
90
+ "playwright": "^1.58.2",
90
91
  "postcss": "^8.5.6",
91
92
  "postcss-modules": "^6.0.1",
92
- "publint": "^0.3.16",
93
- "react": "^19.2.3",
94
- "react-dom": "^19.2.3",
95
- "react-hook-form": "^7.55.0",
93
+ "publint": "^0.3.17",
94
+ "react": "^19.2.4",
95
+ "react-dom": "^19.2.4",
96
+ "react-hook-form": "^7.71.1",
96
97
  "rollup-plugin-sass": "^1.15.3",
97
- "sass-embedded": "^1.97.0",
98
- "storybook": "^10.1.9",
99
- "tsdown": "^0.18.0",
98
+ "sass-embedded": "^1.97.3",
99
+ "storybook": "^10.2.7",
100
+ "tsdown": "^0.18.4",
100
101
  "typed-scss-modules": "^8.1.1",
101
102
  "typescript": "^5.9.3",
102
103
  "typescript-plugin-css-modules": "^5.2.0",
103
- "vite": "^7.3.0",
104
- "vitest": "^4.0.16",
105
- "zod": "^3.24.2",
106
- "@drivenets/vite-plugin-design-system": "0.0.4"
104
+ "vite": "^7.3.1",
105
+ "vitest": "^4.0.18",
106
+ "zod": "^3.25.76",
107
+ "@drivenets/vite-plugin-design-system": "0.0.5"
107
108
  },
108
109
  "scripts": {
109
110
  "lint": "pnpm generate-scss-dts; eslint --max-warnings=0 .",
@@ -111,7 +112,9 @@
111
112
  "generate-scss-dts": "typed-scss-modules ./src -o ./.scss-dts --nameFormat all --exportType default > /dev/null 2>&1",
112
113
  "storybook": "storybook dev -p 6006",
113
114
  "test": "vitest",
115
+ "test:coverage": "vitest --coverage",
114
116
  "build": "tsdown",
117
+ "build:watch": "pnpm build --watch",
115
118
  "build:storybook": "storybook build",
116
119
  "build:lint": "publint && attw --pack"
117
120
  }
@@ -0,0 +1,257 @@
1
+ @use '../../styles/shared/dropdown';
2
+ @use '../../styles/shared/input';
3
+
4
+ $autocomplete-input-height: 36px;
5
+ $autocomplete-max-visible-items: 4;
6
+ $autocomplete-item-height: 38px;
7
+ $autocomplete-dropdown-max-height: calc($autocomplete-max-visible-items * $autocomplete-item-height);
8
+ $autocomplete-trigger-size: 24px;
9
+ $autocomplete-trigger-border-radius: 4px;
10
+ $autocomplete-highlight-border-radius: 2px;
11
+ $autocomplete-animation-duration: 0.2s;
12
+ $autocomplete-animation-translate: -8px;
13
+ $autocomplete-outline-width: 2px;
14
+ $autocomplete-outline-offset: 2px;
15
+ $autocomplete-rotation-open: 180deg;
16
+ $autocomplete-opacity-hidden: 0;
17
+ $autocomplete-opacity-visible: 1;
18
+
19
+ .root {
20
+ position: relative;
21
+ width: 100%;
22
+ display: inline-flex;
23
+ flex-direction: column;
24
+ }
25
+
26
+ .control {
27
+ @include input.base-input-container;
28
+ @include input.input-container-states;
29
+ display: flex;
30
+ align-items: center;
31
+ gap: var(--spacing-3xs);
32
+ height: $autocomplete-input-height;
33
+ min-height: $autocomplete-input-height;
34
+ max-height: $autocomplete-input-height;
35
+
36
+ &[data-focus] {
37
+ border-color: var(--form-control-border-color, var(--color-border-action-primary)) !important;
38
+ }
39
+
40
+ &[data-invalid] {
41
+ border-color: var(--color-background-danger-strong);
42
+ }
43
+ }
44
+
45
+ .input {
46
+ @include input.base-input;
47
+ flex: 1;
48
+ min-width: 0;
49
+ outline: none;
50
+
51
+ &::placeholder {
52
+ color: var(--color-font-placeholder);
53
+ }
54
+ }
55
+
56
+ .startAdornment {
57
+ display: flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ color: var(--color-background-action);
61
+ flex-shrink: 0;
62
+ }
63
+
64
+ .iconContainer {
65
+ display: flex;
66
+ align-items: center;
67
+ gap: var(--spacing-3xs);
68
+ flex-shrink: 0;
69
+ }
70
+
71
+ .clearButton {
72
+ @include input.icon-button;
73
+ cursor: pointer;
74
+ opacity: $autocomplete-opacity-hidden;
75
+ visibility: hidden;
76
+ transition: opacity $autocomplete-animation-duration ease;
77
+
78
+ &:hover {
79
+ color: var(--color-background-action-hover);
80
+ }
81
+ }
82
+
83
+ .control:hover .clearButton,
84
+ .control[data-focus] .clearButton {
85
+ opacity: $autocomplete-opacity-visible;
86
+ visibility: visible;
87
+ }
88
+
89
+ .trigger {
90
+ display: flex;
91
+ align-items: center;
92
+ justify-content: center;
93
+ color: var(--color-background-deselected);
94
+ transition:
95
+ transform $autocomplete-animation-duration ease-in-out,
96
+ background-color $autocomplete-animation-duration ease,
97
+ color $autocomplete-animation-duration ease;
98
+ cursor: pointer;
99
+ background: transparent;
100
+ border: none;
101
+ padding: 0;
102
+ border-radius: $autocomplete-trigger-border-radius;
103
+ width: $autocomplete-trigger-size;
104
+ height: $autocomplete-trigger-size;
105
+
106
+ &:hover {
107
+ color: var(--color-background-deselected-hover);
108
+ background: var(--color-background-action-hover-weak);
109
+ }
110
+
111
+ &[data-state='open'] {
112
+ transform: rotate($autocomplete-rotation-open);
113
+ color: var(--color-background-deselected-hover);
114
+ background: var(--color-background-action-hover-weak);
115
+ }
116
+
117
+ &:focus-visible {
118
+ outline: $autocomplete-outline-width solid var(--color-focus);
119
+ outline-offset: $autocomplete-outline-offset;
120
+ }
121
+ }
122
+
123
+ .control[data-focus] .trigger {
124
+ color: var(--color-background-deselected-hover);
125
+ background: var(--color-background-action-hover-weak);
126
+ }
127
+
128
+ .positioner {
129
+ z-index: var(--z-index-dropdown, 9999);
130
+ width: var(--reference-width);
131
+ }
132
+
133
+ .content {
134
+ @include dropdown.dropdown-content;
135
+ overflow: hidden;
136
+ animation: expand $autocomplete-animation-duration ease;
137
+ width: 100%;
138
+ min-width: var(--reference-width);
139
+ max-height: $autocomplete-dropdown-max-height;
140
+
141
+ &[data-state='open'] {
142
+ animation: expand $autocomplete-animation-duration ease;
143
+ }
144
+
145
+ &[data-state='closed'] {
146
+ animation: collapse $autocomplete-animation-duration ease;
147
+ }
148
+ }
149
+
150
+ .itemGroup {
151
+ overflow-y: auto;
152
+ overflow-x: hidden;
153
+ max-height: $autocomplete-dropdown-max-height;
154
+ scrollbar-width: thin;
155
+ }
156
+
157
+ .item {
158
+ @include dropdown.dropdown-item;
159
+ display: flex;
160
+ align-items: center;
161
+ gap: var(--spacing-xs);
162
+ height: $autocomplete-item-height;
163
+ min-height: $autocomplete-item-height;
164
+
165
+ &[data-highlighted] {
166
+ background: var(--color-background-secondary-selected-weak);
167
+ }
168
+ }
169
+
170
+ .itemIcon {
171
+ color: var(--color-background-deselected);
172
+ flex-shrink: 0;
173
+ display: flex;
174
+ align-items: center;
175
+ }
176
+
177
+ .itemText {
178
+ flex: 1;
179
+ overflow: hidden;
180
+ text-overflow: ellipsis;
181
+ white-space: nowrap;
182
+
183
+ mark {
184
+ background-color: var(--color-data-yellow);
185
+ color: var(--color-font-main);
186
+ font-weight: var(--font-weight-medium);
187
+ padding: 0;
188
+ border-radius: $autocomplete-highlight-border-radius;
189
+ }
190
+ }
191
+
192
+ .noMatches {
193
+ padding: var(--spacing-xs);
194
+ color: var(--color-font-disabled);
195
+ text-align: center;
196
+ font-size: var(--font-size-sm);
197
+ }
198
+
199
+ .disabled {
200
+ .control {
201
+ color: var(--color-background-deselected);
202
+ background: var(--color-background-secondary);
203
+ border-color: var(--color-border-disabled);
204
+ cursor: not-allowed;
205
+
206
+ .input {
207
+ color: var(--color-font-disabled);
208
+ cursor: not-allowed;
209
+ }
210
+
211
+ .trigger {
212
+ color: var(--color-background-disable);
213
+ cursor: not-allowed;
214
+ background: transparent;
215
+
216
+ &:hover {
217
+ background: transparent;
218
+ color: var(--color-background-disable);
219
+ }
220
+ }
221
+ }
222
+ }
223
+
224
+ .invalid {
225
+ .control {
226
+ border-color: var(--color-background-danger-strong);
227
+
228
+ &:hover,
229
+ &[data-focus] {
230
+ border-color: var(--color-background-danger-strong) !important;
231
+ }
232
+ }
233
+ }
234
+
235
+ @keyframes expand {
236
+ 0% {
237
+ opacity: $autocomplete-opacity-hidden;
238
+ transform: translateY($autocomplete-animation-translate);
239
+ }
240
+
241
+ 100% {
242
+ opacity: $autocomplete-opacity-visible;
243
+ transform: translateY(0);
244
+ }
245
+ }
246
+
247
+ @keyframes collapse {
248
+ 0% {
249
+ opacity: $autocomplete-opacity-visible;
250
+ transform: translateY(0);
251
+ }
252
+
253
+ 100% {
254
+ opacity: $autocomplete-opacity-hidden;
255
+ transform: translateY($autocomplete-animation-translate);
256
+ }
257
+ }
@@ -0,0 +1,130 @@
1
+ import { Combobox, useListCollection } from '@ark-ui/react/combobox';
2
+ import { useFilter } from '@ark-ui/react/locale';
3
+ import { Highlight } from '@ark-ui/react/highlight';
4
+ import { Portal } from '@ark-ui/react/portal';
5
+ import classNames from 'classnames';
6
+ import styles from './ds-autocomplete.module.scss';
7
+ import type { DsAutocompleteProps } from './ds-autocomplete.types';
8
+ import { DsIcon } from '../ds-icon';
9
+
10
+ export const DsAutocomplete = ({
11
+ id,
12
+ options,
13
+ style,
14
+ className,
15
+ placeholder = 'Start typing to search...',
16
+ disabled = false,
17
+ invalid = false,
18
+ onValueChange,
19
+ onInputValueChange,
20
+ noMatchesMessage = 'No matches found',
21
+ highlightMatch = true,
22
+ showTrigger = true,
23
+ startAdornment,
24
+ }: DsAutocompleteProps) => {
25
+ const filterUtils = useFilter({ sensitivity: 'base' });
26
+
27
+ const { collection, filter } = useListCollection({
28
+ initialItems: options.map((opt) => opt.label),
29
+ filter: (item, query) => filterUtils.contains(item, query),
30
+ });
31
+
32
+ const handleInputValueChange = (details: Combobox.InputValueChangeDetails) => {
33
+ filter(details.inputValue);
34
+ onInputValueChange?.(details.inputValue);
35
+ };
36
+
37
+ const handleValueChange = (details: Combobox.ValueChangeDetails) => {
38
+ const selectedLabel = details.value[0];
39
+ if (!selectedLabel) {
40
+ return;
41
+ }
42
+
43
+ const selectedOption = options.find((opt) => opt.label === selectedLabel);
44
+
45
+ if (selectedOption) {
46
+ onValueChange?.(selectedOption.value);
47
+ }
48
+ };
49
+
50
+ const rootClass = classNames(
51
+ styles.root,
52
+ {
53
+ [styles.disabled]: disabled,
54
+ [styles.invalid]: invalid,
55
+ },
56
+ className,
57
+ );
58
+
59
+ return (
60
+ <Combobox.Root
61
+ id={id}
62
+ collection={collection}
63
+ className={rootClass}
64
+ style={style}
65
+ disabled={disabled}
66
+ invalid={invalid}
67
+ onInputValueChange={handleInputValueChange}
68
+ onValueChange={handleValueChange}
69
+ closeOnSelect
70
+ >
71
+ <Combobox.Control className={styles.control}>
72
+ {startAdornment && <span className={styles.startAdornment}>{startAdornment}</span>}
73
+
74
+ <Combobox.Input className={styles.input} placeholder={placeholder} />
75
+
76
+ <Combobox.Context>
77
+ {(context) => (
78
+ <div className={styles.iconContainer}>
79
+ {context.inputValue && !disabled && (
80
+ <Combobox.ClearTrigger className={styles.clearButton} aria-label="Clear">
81
+ <DsIcon icon="close" size="medium" />
82
+ </Combobox.ClearTrigger>
83
+ )}
84
+
85
+ {showTrigger && (
86
+ <Combobox.Trigger className={styles.trigger} aria-label="Toggle dropdown">
87
+ <DsIcon icon="keyboard_arrow_down" size="medium" />
88
+ </Combobox.Trigger>
89
+ )}
90
+ </div>
91
+ )}
92
+ </Combobox.Context>
93
+ </Combobox.Control>
94
+
95
+ <Portal>
96
+ <Combobox.Positioner className={styles.positioner}>
97
+ <Combobox.Content className={styles.content}>
98
+ {collection.items.length === 0 ? (
99
+ <div className={styles.noMatches}>{noMatchesMessage}</div>
100
+ ) : (
101
+ <Combobox.ItemGroup className={styles.itemGroup}>
102
+ <Combobox.Context>
103
+ {(context) =>
104
+ collection.items.map((item) => {
105
+ const option = options.find((opt) => opt.label === item);
106
+ return (
107
+ <Combobox.Item key={item} item={item} className={styles.item}>
108
+ {option?.icon && (
109
+ <DsIcon className={styles.itemIcon} icon={option.icon} aria-hidden="true" />
110
+ )}
111
+ <Combobox.ItemText className={styles.itemText}>
112
+ {highlightMatch ? (
113
+ <Highlight query={context.inputValue} text={item} ignoreCase />
114
+ ) : (
115
+ item
116
+ )}
117
+ </Combobox.ItemText>
118
+ </Combobox.Item>
119
+ );
120
+ })
121
+ }
122
+ </Combobox.Context>
123
+ </Combobox.ItemGroup>
124
+ )}
125
+ </Combobox.Content>
126
+ </Combobox.Positioner>
127
+ </Portal>
128
+ </Combobox.Root>
129
+ );
130
+ };
@@ -0,0 +1,76 @@
1
+ import type React from 'react';
2
+ import type { IconName } from '../ds-icon';
3
+
4
+ export interface DsAutocompleteOption {
5
+ /**
6
+ * Label to display in the autocomplete dropdown
7
+ */
8
+ label: string;
9
+ /**
10
+ * Value to return when the option is selected
11
+ */
12
+ value: string;
13
+ /**
14
+ * Optional icon to display next to the label
15
+ */
16
+ icon?: IconName;
17
+ }
18
+
19
+ export interface DsAutocompleteProps {
20
+ /**
21
+ * Unique identifier for the autocomplete component
22
+ */
23
+ id?: string;
24
+ /**
25
+ * Options to display in the dropdown
26
+ */
27
+ options: DsAutocompleteOption[];
28
+ /**
29
+ * Additional styles to apply to the component
30
+ */
31
+ style?: React.CSSProperties;
32
+ /**
33
+ * Additional CSS class names
34
+ */
35
+ className?: string;
36
+ /**
37
+ * Placeholder text to display when input is empty
38
+ */
39
+ placeholder?: string;
40
+ /**
41
+ * Whether the autocomplete is disabled
42
+ */
43
+ disabled?: boolean;
44
+ /**
45
+ * Whether the autocomplete is in an invalid state
46
+ */
47
+ invalid?: boolean;
48
+ /**
49
+ * Event handler called when the value changes (when an option is selected or custom value is entered)
50
+ */
51
+ onValueChange?: (value: string) => void;
52
+ /**
53
+ * Event handler called when the input value changes (on every keystroke)
54
+ */
55
+ onInputValueChange?: (value: string) => void;
56
+ /**
57
+ * Message to display when no options match the input
58
+ * @default 'No matches found'
59
+ */
60
+ noMatchesMessage?: string;
61
+ /**
62
+ * Whether to highlight the matching text in the dropdown options
63
+ * @default true
64
+ */
65
+ highlightMatch?: boolean;
66
+ /**
67
+ * Whether to show the dropdown trigger (arrow) button.
68
+ * If false, the dropdown will only open on typing.
69
+ * @default true
70
+ */
71
+ showTrigger?: boolean;
72
+ /**
73
+ * Content to display at the start of the input (e.g., a search icon).
74
+ */
75
+ startAdornment?: React.ReactNode;
76
+ }
@@ -0,0 +1,2 @@
1
+ export { DsAutocomplete } from './ds-autocomplete';
2
+ export * from './ds-autocomplete.types';
@@ -1,4 +1,4 @@
1
- @import './mixins';
1
+ @use './mixins' as *;
2
2
 
3
3
  .avatar {
4
4
  display: inline-flex;
@@ -1,4 +1,4 @@
1
- @import '../ds-avatar/mixins';
1
+ @use '../ds-avatar/mixins' as *;
2
2
 
3
3
  .avatarGroup {
4
4
  display: flex;