@dubai-design-system/components-js 4.1.0 → 5.0.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 (583) hide show
  1. package/CHANGELOG.md +151 -0
  2. package/dist/cjs/dda-accordion.cjs.entry.js +7 -12
  3. package/dist/cjs/dda-alert.cjs.entry.js +21 -13
  4. package/dist/cjs/dda-attach-file.cjs.entry.js +27 -18
  5. package/dist/cjs/dda-avatar.cjs.entry.js +15 -15
  6. package/dist/cjs/dda-banner.cjs.entry.js +23 -0
  7. package/dist/cjs/dda-breadcrumb.cjs.entry.js +5 -11
  8. package/dist/cjs/dda-button.cjs.entry.js +6 -11
  9. package/dist/cjs/dda-checkbox.cjs.entry.js +5 -11
  10. package/dist/cjs/dda-chip.cjs.entry.js +5 -11
  11. package/dist/cjs/dda-credit-card.cjs.entry.js +5 -11
  12. package/dist/cjs/dda-creditcard-field.cjs.entry.js +23 -11
  13. package/dist/cjs/dda-dropdown.cjs.entry.js +5 -11
  14. package/dist/cjs/dda-footer.cjs.entry.js +5 -8
  15. package/dist/cjs/dda-header.cjs.entry.js +123 -25
  16. package/dist/cjs/dda-home-banner.cjs.entry.js +204 -0
  17. package/dist/cjs/dda-horizontal-stepper.cjs.entry.js +5 -11
  18. package/dist/cjs/dda-input.cjs.entry.js +23 -11
  19. package/dist/cjs/dda-link-button_2.cjs.entry.js +19 -22
  20. package/dist/cjs/dda-number-field.cjs.entry.js +20 -11
  21. package/dist/cjs/dda-pagination.cjs.entry.js +17 -19
  22. package/dist/cjs/dda-phonefield.cjs.entry.js +201 -189
  23. package/dist/cjs/dda-progressbar.cjs.entry.js +6 -11
  24. package/dist/cjs/dda-range-slider.cjs.entry.js +5 -10
  25. package/dist/cjs/dda-search-input.cjs.entry.js +24 -14
  26. package/dist/cjs/dda-segmented-tabs.cjs.entry.js +32 -13
  27. package/dist/cjs/dda-select.cjs.entry.js +115 -12
  28. package/dist/cjs/dda-sticky-footer.cjs.entry.js +21 -8
  29. package/dist/cjs/dda-tabs.cjs.entry.js +36 -19
  30. package/dist/cjs/dda-textarea.cjs.entry.js +6131 -6168
  31. package/dist/cjs/dda-toggle.cjs.entry.js +5 -11
  32. package/dist/cjs/dda-tooltip.cjs.entry.js +46 -0
  33. package/dist/cjs/dda-ui-card.cjs.entry.js +26 -0
  34. package/dist/cjs/dda-vertical-stepper.cjs.entry.js +4 -9
  35. package/dist/cjs/dda.cjs.js +7 -10
  36. package/dist/cjs/index-DGHrEPBX.js +1986 -0
  37. package/dist/cjs/index.cjs.js +12 -16
  38. package/dist/cjs/loader.cjs.js +3 -8
  39. package/dist/collection/assets/countries.js +179 -179
  40. package/dist/collection/assets/digital-logo.svg +82 -82
  41. package/dist/collection/assets/fonts/dubai/DubaiBold.svg +5922 -5922
  42. package/dist/collection/assets/fonts/dubai/DubaiLight.svg +5935 -5935
  43. package/dist/collection/assets/fonts/dubai/DubaiMedium.svg +5926 -5926
  44. package/dist/collection/assets/fonts/dubai/DubaiRegular.svg +5925 -5925
  45. package/dist/collection/assets/img/dda-icon-logo.svg +4 -4
  46. package/dist/collection/assets/img/digital-logo-white.svg +82 -82
  47. package/dist/collection/assets/img/digital-logo.svg +82 -82
  48. package/dist/collection/assets/img/icn/DubaiAI.svg +267 -267
  49. package/dist/collection/assets/img/icn/icn-Excel.svg +9 -9
  50. package/dist/collection/assets/img/icn/icn-Image.svg +6 -6
  51. package/dist/collection/assets/img/icn/icn-OneNote.svg +6 -6
  52. package/dist/collection/assets/img/icn/icn-PDF.svg +7 -7
  53. package/dist/collection/assets/img/icn/icn-PowerPoint.svg +10 -10
  54. package/dist/collection/assets/img/icn/icn-Video.svg +5 -5
  55. package/dist/collection/assets/img/icn/icn-Word.svg +10 -10
  56. package/dist/collection/assets/img/icn/icn-accessibility-dark.svg +3 -3
  57. package/dist/collection/assets/img/icn/icn-apple-dark.svg +3 -3
  58. package/dist/collection/assets/img/icn/icn-apple.svg +3 -3
  59. package/dist/collection/assets/img/icn/icn-chat_bubble_outline.svg +3 -3
  60. package/dist/collection/assets/img/icn/icn-complaints.svg +28 -28
  61. package/dist/collection/assets/img/icn/icn-facebook-dark.svg +4 -4
  62. package/dist/collection/assets/img/icn/icn-facebook.svg +11 -11
  63. package/dist/collection/assets/img/icn/icn-google-dark.svg +13 -13
  64. package/dist/collection/assets/img/icn/icn-google.svg +13 -13
  65. package/dist/collection/assets/img/icn/icn-grid-view.svg +3 -3
  66. package/dist/collection/assets/img/icn/icn-happy.svg +3 -3
  67. package/dist/collection/assets/img/icn/icn-instagram-dark.svg +12 -12
  68. package/dist/collection/assets/img/icn/icn-instagram.svg +30 -30
  69. package/dist/collection/assets/img/icn/icn-search-dark.svg +3 -3
  70. package/dist/collection/assets/img/icn/icn-user-dark.svg +3 -3
  71. package/dist/collection/collection-manifest.json +6 -2
  72. package/dist/collection/components/dda-accordion/dda-accordion.css +82 -72
  73. package/dist/collection/components/dda-accordion/dda-accordion.js +30 -10
  74. package/dist/collection/components/dda-accordion/dda-accordion.stories.js +19 -13
  75. package/dist/collection/components/dda-alert/dda-alert.css +148 -148
  76. package/dist/collection/components/dda-alert/dda-alert.js +118 -16
  77. package/dist/collection/components/dda-alert/dda-alert.stories.js +39 -33
  78. package/dist/collection/components/dda-attach-file/dda-attach-file.js +75 -23
  79. package/dist/collection/components/dda-attach-file/dda-attach-file.stories.js +38 -21
  80. package/dist/collection/components/dda-avatar/dda-avatar.css +306 -280
  81. package/dist/collection/components/dda-avatar/dda-avatar.js +48 -23
  82. package/dist/collection/components/dda-avatar/dda-avatar.stories.js +51 -43
  83. package/dist/collection/components/dda-banner/dda-banner.css +3 -0
  84. package/dist/collection/components/dda-banner/dda-banner.js +90 -0
  85. package/dist/collection/components/dda-breadcrumb/dda-breadcrumb.css +58 -58
  86. package/dist/collection/components/dda-breadcrumb/dda-breadcrumb.js +6 -7
  87. package/dist/collection/components/dda-breadcrumb/dda-breadcrumb.stories.js +16 -17
  88. package/dist/collection/components/dda-button/dda-button.js +39 -19
  89. package/dist/collection/components/dda-button/dda-button.stories.js +26 -17
  90. package/dist/collection/components/dda-checkbox/dda-checkbox.css +119 -119
  91. package/dist/collection/components/dda-checkbox/dda-checkbox.js +22 -23
  92. package/dist/collection/components/dda-checkbox/dda-checkbox.stories.js +18 -19
  93. package/dist/collection/components/dda-chip/dda-chip.css +113 -100
  94. package/dist/collection/components/dda-chip/dda-chip.js +12 -13
  95. package/dist/collection/components/dda-chip/dda-chip.stories.js +17 -18
  96. package/dist/collection/components/dda-credit-card/dda-credit-card.css +109 -103
  97. package/dist/collection/components/dda-credit-card/dda-credit-card.js +14 -15
  98. package/dist/collection/components/dda-credit-card/dda-credit-card.stories.js +14 -15
  99. package/dist/collection/components/dda-creditcard-field/dda-creditcard-field.js +84 -28
  100. package/dist/collection/components/dda-creditcard-field/dda-creditcard-field.stories.js +39 -22
  101. package/dist/collection/components/dda-dropdown/dda-dropdown.js +60 -23
  102. package/dist/collection/components/dda-dropdown/dda-dropdown.stories.js +38 -21
  103. package/dist/collection/components/dda-footer/dda-footer.js +21 -23
  104. package/dist/collection/components/dda-footer/dda-footer.stories.js +29 -30
  105. package/dist/collection/components/dda-header/dda-header.css +36 -0
  106. package/dist/collection/components/dda-header/dda-header.js +418 -26
  107. package/dist/collection/components/dda-header/dda-header.stories.js +151 -60
  108. package/dist/collection/components/dda-home-banner/dda-home-banner.js +397 -0
  109. package/dist/collection/components/dda-home-banner/dda-home-banner.stories.js +94 -0
  110. package/dist/collection/components/dda-home-banner/home-banner.css +195 -0
  111. package/dist/collection/components/dda-input/dda-input.js +63 -27
  112. package/dist/collection/components/dda-input/dda-input.stories.js +33 -21
  113. package/dist/collection/components/dda-link-button/dda-link-button.js +20 -21
  114. package/dist/collection/components/dda-link-button/dda-link-button.stories.js +16 -17
  115. package/dist/collection/components/dda-number-field/dda-number-field.js +99 -28
  116. package/dist/collection/components/dda-number-field/dda-number-field.stories.js +47 -24
  117. package/dist/collection/components/dda-pagination/dda-pagination.css +175 -167
  118. package/dist/collection/components/dda-pagination/dda-pagination.js +241 -14
  119. package/dist/collection/components/dda-pagination/dda-pagination.stories.js +156 -13
  120. package/dist/collection/components/dda-phonefield/dda-phonefield.js +120 -26
  121. package/dist/collection/components/dda-phonefield/dda-phonefield.stories.js +60 -20
  122. package/dist/collection/components/dda-progressbar/dda-progressbar.css +98 -94
  123. package/dist/collection/components/dda-progressbar/dda-progressbar.js +30 -10
  124. package/dist/collection/components/dda-progressbar/dda-progressbar.stories.js +19 -14
  125. package/dist/collection/components/dda-radiobutton/dda-radiobutton.css +3858 -3470
  126. package/dist/collection/components/dda-radiobutton/dda-radiobutton.js +22 -23
  127. package/dist/collection/components/dda-radiobutton/dda-radiobutton.stories.js +18 -19
  128. package/dist/collection/components/dda-range-slider/dda-range-slider.css +152 -136
  129. package/dist/collection/components/dda-range-slider/dda-range-slider.js +60 -23
  130. package/dist/collection/components/dda-range-slider/dda-range-slider.stories.js +34 -19
  131. package/dist/collection/components/dda-search-input/dda-search-input.js +116 -24
  132. package/dist/collection/components/dda-search-input/dda-search-input.stories.js +57 -22
  133. package/dist/collection/components/dda-select/dda-select.js +173 -25
  134. package/dist/collection/components/dda-select/dda-select.stories.js +36 -19
  135. package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.js +161 -83
  136. package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.stories.js +68 -56
  137. package/dist/collection/components/dda-tabs/dda-tabs.css +119 -119
  138. package/dist/collection/components/dda-tabs/dda-tabs.js +119 -21
  139. package/dist/collection/components/dda-tabs/dda-tabs.stories.js +42 -16
  140. package/dist/collection/components/dda-textarea/dda-textarea.js +116 -29
  141. package/dist/collection/components/dda-textarea/dda-textarea.stories.js +27 -19
  142. package/dist/collection/components/dda-toggle/dda-toggle.css +119 -119
  143. package/dist/collection/components/dda-toggle/dda-toggle.js +14 -15
  144. package/dist/collection/components/dda-toggle/dda-toggle.stories.js +17 -18
  145. package/dist/collection/components/dda-tooltip/dda-tooltip.css +146 -130
  146. package/dist/collection/components/dda-tooltip/dda-tooltip.js +39 -10
  147. package/dist/collection/components/dda-tooltip/dda-tooltip.stories.js +16 -17
  148. package/dist/collection/components/dda-ui-card/dda-ui-card.css +3 -0
  149. package/dist/collection/components/dda-ui-card/dda-ui-card.js +209 -0
  150. package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.css +51 -51
  151. package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.js +116 -12
  152. package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.stories.js +39 -13
  153. package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.css +120 -108
  154. package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.js +8 -9
  155. package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.stories.js +19 -20
  156. package/dist/collection/components/stepper/dda-vertical-stepper/dda-vertical-stepper.css +112 -112
  157. package/dist/collection/components/stepper/dda-vertical-stepper/dda-vertical-stepper.js +7 -8
  158. package/dist/collection/components/stepper/dda-vertical-stepper/dda-vertical-stepper.stories.js +19 -20
  159. package/dist/collection/global/dda-button.css +611 -580
  160. package/dist/collection/global/global.css +3734 -3346
  161. package/dist/collection/global/input.css +676 -615
  162. package/dist/collection/index.js +0 -1
  163. package/dist/collection/utils/applyTheme.js +12 -12
  164. package/dist/collection/utils/contrast.js +38 -0
  165. package/dist/collection/utils/utils.js +0 -1
  166. package/dist/components/dda-accordion.js +1 -54
  167. package/dist/components/dda-alert.js +1 -60
  168. package/dist/components/dda-attach-file.js +1 -107
  169. package/dist/components/dda-avatar.js +1 -91
  170. package/dist/components/dda-banner.d.ts +11 -0
  171. package/dist/components/dda-banner.js +1 -0
  172. package/dist/components/dda-breadcrumb.js +1 -55
  173. package/dist/components/dda-button.js +1 -8
  174. package/dist/components/dda-checkbox.js +1 -60
  175. package/dist/components/dda-chip.js +1 -51
  176. package/dist/components/dda-credit-card.js +1 -54
  177. package/dist/components/dda-creditcard-field.js +1 -97
  178. package/dist/components/dda-dropdown.js +1 -86
  179. package/dist/components/dda-footer.js +1 -64
  180. package/dist/components/dda-header.js +1 -155
  181. package/dist/components/dda-home-banner.d.ts +11 -0
  182. package/dist/components/dda-home-banner.js +1 -0
  183. package/dist/components/dda-horizontal-stepper.js +1 -50
  184. package/dist/components/dda-input.js +1 -67
  185. package/dist/components/dda-link-button.js +1 -8
  186. package/dist/components/dda-number-field.js +1 -98
  187. package/dist/components/dda-pagination.js +1 -103
  188. package/dist/components/dda-phonefield.js +1 -277
  189. package/dist/components/dda-progressbar.js +1 -53
  190. package/dist/components/dda-radiobutton.js +1 -8
  191. package/dist/components/dda-range-slider.js +1 -80
  192. package/dist/components/dda-search-input.js +1 -68
  193. package/dist/components/dda-segmented-tabs.js +1 -50
  194. package/dist/components/dda-select.js +1 -76
  195. package/dist/components/dda-sticky-footer.js +1 -89
  196. package/dist/components/dda-tabs.js +1 -61
  197. package/dist/components/dda-textarea.js +1 -16461
  198. package/dist/components/dda-toggle.js +1 -54
  199. package/dist/components/dda-tooltip.js +1 -8
  200. package/dist/components/dda-ui-card.d.ts +11 -0
  201. package/dist/components/dda-ui-card.js +1 -0
  202. package/dist/components/dda-vertical-stepper.js +1 -48
  203. package/dist/components/index.d.ts +2 -0
  204. package/dist/components/index.js +1 -23
  205. package/dist/components/p-BaW1ewxd.js +1 -0
  206. package/dist/components/p-C2ufT7tL.js +1 -0
  207. package/dist/components/p-CbUih1OY.js +1 -0
  208. package/dist/components/p-Cgvws3Uk.js +1 -0
  209. package/dist/components/p-HakkUtRK.js +1 -0
  210. package/dist/dda/dda.css +20 -0
  211. package/dist/dda/dda.esm.js +1 -2
  212. package/dist/dda/index.esm.js +1 -2
  213. package/dist/dda/p-0b56fbcb.entry.js +1 -0
  214. package/dist/dda/p-1df4494d.entry.js +1 -0
  215. package/dist/dda/p-207c4034.entry.js +1 -0
  216. package/dist/dda/p-23c6a709.entry.js +1 -0
  217. package/dist/dda/p-2c0f4e9e.entry.js +1 -0
  218. package/dist/dda/p-2e4e47ec.entry.js +1 -0
  219. package/dist/dda/p-3b9a784a.entry.js +1 -0
  220. package/dist/dda/p-4400194a.entry.js +1 -0
  221. package/dist/dda/p-48f14688.entry.js +1 -0
  222. package/dist/dda/p-4aef15b0.entry.js +1 -0
  223. package/dist/dda/p-5d0b1fea.entry.js +1 -0
  224. package/dist/dda/p-6150d6ca.entry.js +1 -0
  225. package/dist/dda/p-6def14a1.entry.js +1 -0
  226. package/dist/dda/p-7c8b1191.entry.js +1 -0
  227. package/dist/dda/p-7eb8942f.entry.js +1 -0
  228. package/dist/dda/p-82dc3344.entry.js +1 -0
  229. package/dist/dda/p-88c5aa03.entry.js +1 -0
  230. package/dist/dda/p-8bbd3b3b.entry.js +1 -0
  231. package/dist/dda/p-96aaf2c6.entry.js +1 -0
  232. package/dist/dda/p-99e59635.entry.js +1 -0
  233. package/dist/dda/p-CfK_KUZU.js +2 -0
  234. package/dist/dda/p-b6096645.entry.js +1 -0
  235. package/dist/dda/p-b68b2d3a.entry.js +1 -0
  236. package/dist/dda/p-c39fc443.entry.js +1 -0
  237. package/dist/dda/p-cf6c7bc5.entry.js +1 -0
  238. package/dist/dda/p-d096ea61.entry.js +1 -0
  239. package/dist/dda/p-d5274874.entry.js +1 -0
  240. package/dist/dda/p-d606adfc.entry.js +1 -0
  241. package/dist/dda/p-da82dc4c.entry.js +1 -0
  242. package/dist/dda/p-dc72bfd8.entry.js +1 -0
  243. package/dist/dda/p-dec1b61c.entry.js +1 -0
  244. package/dist/dda/p-eb2d0c46.entry.js +1 -0
  245. package/dist/dda/p-f9c681e4.entry.js +1 -0
  246. package/dist/dda/p-fd637136.entry.js +1 -0
  247. package/dist/esm/dda-accordion.entry.js +7 -10
  248. package/dist/esm/dda-alert.entry.js +21 -11
  249. package/dist/esm/dda-attach-file.entry.js +27 -16
  250. package/dist/esm/dda-avatar.entry.js +15 -13
  251. package/dist/esm/dda-banner.entry.js +21 -0
  252. package/dist/esm/dda-breadcrumb.entry.js +5 -9
  253. package/dist/esm/dda-button.entry.js +6 -9
  254. package/dist/esm/dda-checkbox.entry.js +5 -9
  255. package/dist/esm/dda-chip.entry.js +5 -9
  256. package/dist/esm/dda-credit-card.entry.js +5 -9
  257. package/dist/esm/dda-creditcard-field.entry.js +23 -9
  258. package/dist/esm/dda-dropdown.entry.js +5 -9
  259. package/dist/esm/dda-footer.entry.js +6 -7
  260. package/dist/esm/dda-header.entry.js +123 -23
  261. package/dist/esm/dda-home-banner.entry.js +202 -0
  262. package/dist/esm/dda-horizontal-stepper.entry.js +5 -9
  263. package/dist/esm/dda-input.entry.js +23 -9
  264. package/dist/esm/dda-link-button_2.entry.js +19 -20
  265. package/dist/esm/dda-number-field.entry.js +20 -9
  266. package/dist/esm/dda-pagination.entry.js +17 -17
  267. package/dist/esm/dda-phonefield.entry.js +201 -187
  268. package/dist/esm/dda-progressbar.entry.js +6 -9
  269. package/dist/esm/dda-range-slider.entry.js +5 -8
  270. package/dist/esm/dda-search-input.entry.js +24 -12
  271. package/dist/esm/dda-segmented-tabs.entry.js +32 -11
  272. package/dist/esm/dda-select.entry.js +115 -10
  273. package/dist/esm/dda-sticky-footer.entry.js +22 -7
  274. package/dist/esm/dda-tabs.entry.js +36 -17
  275. package/dist/esm/dda-textarea.entry.js +6131 -6166
  276. package/dist/esm/dda-toggle.entry.js +5 -9
  277. package/dist/esm/dda-tooltip.entry.js +44 -0
  278. package/dist/esm/dda-ui-card.entry.js +24 -0
  279. package/dist/esm/dda-vertical-stepper.entry.js +4 -7
  280. package/dist/esm/dda.js +5 -7
  281. package/dist/esm/index-CfK_KUZU.js +1976 -0
  282. package/dist/esm/index.js +12 -14
  283. package/dist/esm/loader.js +3 -6
  284. package/dist/types/components/dda-accordion/dda-accordion.d.ts +1 -0
  285. package/dist/types/components/dda-accordion/dda-accordion.stories.d.ts +4 -0
  286. package/dist/types/components/dda-alert/dda-alert.d.ts +9 -0
  287. package/dist/types/components/dda-alert/dda-alert.stories.d.ts +4 -0
  288. package/dist/types/components/dda-attach-file/dda-attach-file.d.ts +5 -0
  289. package/dist/types/components/dda-attach-file/dda-attach-file.stories.d.ts +8 -0
  290. package/dist/types/components/dda-avatar/dda-avatar.d.ts +1 -0
  291. package/dist/types/components/dda-avatar/dda-avatar.stories.d.ts +6 -0
  292. package/dist/types/components/dda-banner/dda-banner.d.ts +13 -0
  293. package/dist/types/components/dda-button/dda-button.d.ts +1 -0
  294. package/dist/types/components/dda-button/dda-button.stories.d.ts +6 -0
  295. package/dist/types/components/dda-creditcard-field/dda-creditcard-field.d.ts +5 -0
  296. package/dist/types/components/dda-creditcard-field/dda-creditcard-field.stories.d.ts +12 -0
  297. package/dist/types/components/dda-dropdown/dda-dropdown.d.ts +2 -0
  298. package/dist/types/components/dda-dropdown/dda-dropdown.stories.d.ts +12 -0
  299. package/dist/types/components/dda-header/dda-header.d.ts +25 -1
  300. package/dist/types/components/dda-header/dda-header.stories.d.ts +62 -0
  301. package/dist/types/components/dda-home-banner/dda-home-banner.d.ts +56 -0
  302. package/dist/types/components/dda-home-banner/dda-home-banner.stories.d.ts +51 -0
  303. package/dist/types/components/dda-input/dda-input.d.ts +4 -0
  304. package/dist/types/components/dda-input/dda-input.stories.d.ts +6 -0
  305. package/dist/types/components/dda-number-field/dda-number-field.d.ts +6 -0
  306. package/dist/types/components/dda-number-field/dda-number-field.stories.d.ts +18 -0
  307. package/dist/types/components/dda-pagination/dda-pagination.d.ts +12 -0
  308. package/dist/types/components/dda-pagination/dda-pagination.stories.d.ts +72 -0
  309. package/dist/types/components/dda-phonefield/dda-phonefield.d.ts +7 -0
  310. package/dist/types/components/dda-phonefield/dda-phonefield.stories.d.ts +24 -0
  311. package/dist/types/components/dda-progressbar/dda-progressbar.d.ts +1 -0
  312. package/dist/types/components/dda-progressbar/dda-progressbar.stories.d.ts +7 -0
  313. package/dist/types/components/dda-range-slider/dda-range-slider.d.ts +2 -0
  314. package/dist/types/components/dda-range-slider/dda-range-slider.stories.d.ts +12 -0
  315. package/dist/types/components/dda-search-input/dda-search-input.d.ts +7 -0
  316. package/dist/types/components/dda-search-input/dda-search-input.stories.d.ts +24 -0
  317. package/dist/types/components/dda-select/dda-select.d.ts +15 -0
  318. package/dist/types/components/dda-select/dda-select.stories.d.ts +12 -0
  319. package/dist/types/components/dda-sticky-footer/dda-sticky-footer.d.ts +9 -0
  320. package/dist/types/components/dda-sticky-footer/dda-sticky-footer.stories.d.ts +8 -0
  321. package/dist/types/components/dda-tabs/dda-tabs.d.ts +8 -4
  322. package/dist/types/components/dda-tabs/dda-tabs.stories.d.ts +16 -0
  323. package/dist/types/components/dda-textarea/dda-textarea.d.ts +7 -0
  324. package/dist/types/components/dda-textarea/dda-textarea.stories.d.ts +6 -0
  325. package/dist/types/components/dda-tooltip/dda-tooltip.d.ts +6 -0
  326. package/dist/types/components/dda-ui-card/dda-ui-card.d.ts +13 -0
  327. package/dist/types/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.d.ts +13 -0
  328. package/dist/types/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.stories.d.ts +18 -0
  329. package/dist/types/components.d.ts +1559 -70
  330. package/dist/types/stencil-public-runtime.d.ts +193 -12
  331. package/dist/types/utils/contrast.d.ts +19 -0
  332. package/package.json +29 -10
  333. package/readme.md +80 -78
  334. package/LICENSE +0 -21
  335. package/dist/cjs/app-globals-3a1e7e63.js +0 -7
  336. package/dist/cjs/app-globals-3a1e7e63.js.map +0 -1
  337. package/dist/cjs/dda-accordion.cjs.entry.js.map +0 -1
  338. package/dist/cjs/dda-alert.cjs.entry.js.map +0 -1
  339. package/dist/cjs/dda-attach-file.cjs.entry.js.map +0 -1
  340. package/dist/cjs/dda-avatar.cjs.entry.js.map +0 -1
  341. package/dist/cjs/dda-breadcrumb.cjs.entry.js.map +0 -1
  342. package/dist/cjs/dda-button.cjs.entry.js.map +0 -1
  343. package/dist/cjs/dda-checkbox.cjs.entry.js.map +0 -1
  344. package/dist/cjs/dda-chip.cjs.entry.js.map +0 -1
  345. package/dist/cjs/dda-credit-card.cjs.entry.js.map +0 -1
  346. package/dist/cjs/dda-creditcard-field.cjs.entry.js.map +0 -1
  347. package/dist/cjs/dda-dropdown.cjs.entry.js.map +0 -1
  348. package/dist/cjs/dda-footer.cjs.entry.js.map +0 -1
  349. package/dist/cjs/dda-header.cjs.entry.js.map +0 -1
  350. package/dist/cjs/dda-horizontal-stepper.cjs.entry.js.map +0 -1
  351. package/dist/cjs/dda-input.cjs.entry.js.map +0 -1
  352. package/dist/cjs/dda-link-button_2.cjs.entry.js.map +0 -1
  353. package/dist/cjs/dda-number-field.cjs.entry.js.map +0 -1
  354. package/dist/cjs/dda-pagination.cjs.entry.js.map +0 -1
  355. package/dist/cjs/dda-phonefield.cjs.entry.js.map +0 -1
  356. package/dist/cjs/dda-progressbar.cjs.entry.js.map +0 -1
  357. package/dist/cjs/dda-radiobutton.cjs.entry.js +0 -31
  358. package/dist/cjs/dda-radiobutton.cjs.entry.js.map +0 -1
  359. package/dist/cjs/dda-range-slider.cjs.entry.js.map +0 -1
  360. package/dist/cjs/dda-search-input.cjs.entry.js.map +0 -1
  361. package/dist/cjs/dda-segmented-tabs.cjs.entry.js.map +0 -1
  362. package/dist/cjs/dda-select.cjs.entry.js.map +0 -1
  363. package/dist/cjs/dda-sticky-footer.cjs.entry.js.map +0 -1
  364. package/dist/cjs/dda-tabs.cjs.entry.js.map +0 -1
  365. package/dist/cjs/dda-textarea.cjs.entry.js.map +0 -1
  366. package/dist/cjs/dda-toggle.cjs.entry.js.map +0 -1
  367. package/dist/cjs/dda-vertical-stepper.cjs.entry.js.map +0 -1
  368. package/dist/cjs/dda.cjs.js.map +0 -1
  369. package/dist/cjs/index-a2fa4928.js +0 -1619
  370. package/dist/cjs/index-a2fa4928.js.map +0 -1
  371. package/dist/cjs/index.cjs.js.map +0 -1
  372. package/dist/cjs/loader.cjs.js.map +0 -1
  373. package/dist/collection/components/dda-accordion/dda-accordion.js.map +0 -1
  374. package/dist/collection/components/dda-accordion/dda-accordion.stories.js.map +0 -1
  375. package/dist/collection/components/dda-alert/dda-alert.js.map +0 -1
  376. package/dist/collection/components/dda-alert/dda-alert.stories.js.map +0 -1
  377. package/dist/collection/components/dda-attach-file/dda-attach-file.js.map +0 -1
  378. package/dist/collection/components/dda-attach-file/dda-attach-file.stories.js.map +0 -1
  379. package/dist/collection/components/dda-avatar/dda-avatar.js.map +0 -1
  380. package/dist/collection/components/dda-avatar/dda-avatar.stories.js.map +0 -1
  381. package/dist/collection/components/dda-breadcrumb/dda-breadcrumb.js.map +0 -1
  382. package/dist/collection/components/dda-breadcrumb/dda-breadcrumb.stories.js.map +0 -1
  383. package/dist/collection/components/dda-button/dda-button.js.map +0 -1
  384. package/dist/collection/components/dda-button/dda-button.stories.js.map +0 -1
  385. package/dist/collection/components/dda-checkbox/dda-checkbox.js.map +0 -1
  386. package/dist/collection/components/dda-checkbox/dda-checkbox.stories.js.map +0 -1
  387. package/dist/collection/components/dda-chip/dda-chip.js.map +0 -1
  388. package/dist/collection/components/dda-chip/dda-chip.stories.js.map +0 -1
  389. package/dist/collection/components/dda-credit-card/dda-credit-card.js.map +0 -1
  390. package/dist/collection/components/dda-credit-card/dda-credit-card.stories.js.map +0 -1
  391. package/dist/collection/components/dda-creditcard-field/dda-creditcard-field.js.map +0 -1
  392. package/dist/collection/components/dda-creditcard-field/dda-creditcard-field.stories.js.map +0 -1
  393. package/dist/collection/components/dda-dropdown/dda-dropdown.js.map +0 -1
  394. package/dist/collection/components/dda-dropdown/dda-dropdown.stories.js.map +0 -1
  395. package/dist/collection/components/dda-footer/dda-footer.js.map +0 -1
  396. package/dist/collection/components/dda-footer/dda-footer.stories.js.map +0 -1
  397. package/dist/collection/components/dda-header/dda-header.js.map +0 -1
  398. package/dist/collection/components/dda-header/dda-header.stories.js.map +0 -1
  399. package/dist/collection/components/dda-input/dda-input.js.map +0 -1
  400. package/dist/collection/components/dda-input/dda-input.stories.js.map +0 -1
  401. package/dist/collection/components/dda-link-button/dda-link-button.js.map +0 -1
  402. package/dist/collection/components/dda-link-button/dda-link-button.stories.js.map +0 -1
  403. package/dist/collection/components/dda-number-field/dda-number-field.js.map +0 -1
  404. package/dist/collection/components/dda-number-field/dda-number-field.stories.js.map +0 -1
  405. package/dist/collection/components/dda-pagination/dda-pagination.js.map +0 -1
  406. package/dist/collection/components/dda-pagination/dda-pagination.stories.js.map +0 -1
  407. package/dist/collection/components/dda-phonefield/dda-phonefield.js.map +0 -1
  408. package/dist/collection/components/dda-phonefield/dda-phonefield.stories.js.map +0 -1
  409. package/dist/collection/components/dda-progressbar/dda-progressbar.js.map +0 -1
  410. package/dist/collection/components/dda-progressbar/dda-progressbar.stories.js.map +0 -1
  411. package/dist/collection/components/dda-radiobutton/dda-radiobutton.js.map +0 -1
  412. package/dist/collection/components/dda-radiobutton/dda-radiobutton.stories.js.map +0 -1
  413. package/dist/collection/components/dda-range-slider/dda-range-slider.js.map +0 -1
  414. package/dist/collection/components/dda-range-slider/dda-range-slider.stories.js.map +0 -1
  415. package/dist/collection/components/dda-search-input/dda-search-input.js.map +0 -1
  416. package/dist/collection/components/dda-search-input/dda-search-input.stories.js.map +0 -1
  417. package/dist/collection/components/dda-select/dda-select.js.map +0 -1
  418. package/dist/collection/components/dda-select/dda-select.stories.js.map +0 -1
  419. package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.js.map +0 -1
  420. package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.stories.js.map +0 -1
  421. package/dist/collection/components/dda-tabs/dda-tabs.js.map +0 -1
  422. package/dist/collection/components/dda-tabs/dda-tabs.stories.js.map +0 -1
  423. package/dist/collection/components/dda-textarea/dda-textarea.js.map +0 -1
  424. package/dist/collection/components/dda-textarea/dda-textarea.stories.js.map +0 -1
  425. package/dist/collection/components/dda-toggle/dda-toggle.js.map +0 -1
  426. package/dist/collection/components/dda-toggle/dda-toggle.stories.js.map +0 -1
  427. package/dist/collection/components/dda-tooltip/dda-tooltip.js.map +0 -1
  428. package/dist/collection/components/dda-tooltip/dda-tooltip.stories.js.map +0 -1
  429. package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.js.map +0 -1
  430. package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.stories.js.map +0 -1
  431. package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.js.map +0 -1
  432. package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.stories.js.map +0 -1
  433. package/dist/collection/components/stepper/dda-vertical-stepper/dda-vertical-stepper.js.map +0 -1
  434. package/dist/collection/components/stepper/dda-vertical-stepper/dda-vertical-stepper.stories.js.map +0 -1
  435. package/dist/collection/index.js.map +0 -1
  436. package/dist/collection/utils/utils.js.map +0 -1
  437. package/dist/components/dda-accordion.js.map +0 -1
  438. package/dist/components/dda-alert.js.map +0 -1
  439. package/dist/components/dda-attach-file.js.map +0 -1
  440. package/dist/components/dda-avatar.js.map +0 -1
  441. package/dist/components/dda-breadcrumb.js.map +0 -1
  442. package/dist/components/dda-button.js.map +0 -1
  443. package/dist/components/dda-checkbox.js.map +0 -1
  444. package/dist/components/dda-chip.js.map +0 -1
  445. package/dist/components/dda-credit-card.js.map +0 -1
  446. package/dist/components/dda-creditcard-field.js.map +0 -1
  447. package/dist/components/dda-dropdown.js.map +0 -1
  448. package/dist/components/dda-footer.js.map +0 -1
  449. package/dist/components/dda-header.js.map +0 -1
  450. package/dist/components/dda-horizontal-stepper.js.map +0 -1
  451. package/dist/components/dda-input.js.map +0 -1
  452. package/dist/components/dda-link-button.js.map +0 -1
  453. package/dist/components/dda-number-field.js.map +0 -1
  454. package/dist/components/dda-pagination.js.map +0 -1
  455. package/dist/components/dda-phonefield.js.map +0 -1
  456. package/dist/components/dda-progressbar.js.map +0 -1
  457. package/dist/components/dda-radiobutton.js.map +0 -1
  458. package/dist/components/dda-range-slider.js.map +0 -1
  459. package/dist/components/dda-search-input.js.map +0 -1
  460. package/dist/components/dda-segmented-tabs.js.map +0 -1
  461. package/dist/components/dda-select.js.map +0 -1
  462. package/dist/components/dda-sticky-footer.js.map +0 -1
  463. package/dist/components/dda-tabs.js.map +0 -1
  464. package/dist/components/dda-textarea.js.map +0 -1
  465. package/dist/components/dda-toggle.js.map +0 -1
  466. package/dist/components/dda-tooltip.js.map +0 -1
  467. package/dist/components/dda-vertical-stepper.js.map +0 -1
  468. package/dist/components/index.js.map +0 -1
  469. package/dist/components/p-562afefe.js +0 -73
  470. package/dist/components/p-562afefe.js.map +0 -1
  471. package/dist/components/p-6f74eccd.js +0 -1422
  472. package/dist/components/p-6f74eccd.js.map +0 -1
  473. package/dist/components/p-96fcc6bd.js +0 -54
  474. package/dist/components/p-96fcc6bd.js.map +0 -1
  475. package/dist/components/p-ad0417cc.js +0 -44
  476. package/dist/components/p-ad0417cc.js.map +0 -1
  477. package/dist/components/p-f15e5894.js +0 -76
  478. package/dist/components/p-f15e5894.js.map +0 -1
  479. package/dist/dda/dda.esm.js.map +0 -1
  480. package/dist/dda/index.esm.js.map +0 -1
  481. package/dist/dda/p-01b4ec07.entry.js +0 -2
  482. package/dist/dda/p-01b4ec07.entry.js.map +0 -1
  483. package/dist/dda/p-231440d1.entry.js +0 -2
  484. package/dist/dda/p-231440d1.entry.js.map +0 -1
  485. package/dist/dda/p-2e604126.entry.js +0 -2
  486. package/dist/dda/p-2e604126.entry.js.map +0 -1
  487. package/dist/dda/p-31699358.entry.js +0 -2
  488. package/dist/dda/p-31699358.entry.js.map +0 -1
  489. package/dist/dda/p-33561c6d.entry.js +0 -2
  490. package/dist/dda/p-33561c6d.entry.js.map +0 -1
  491. package/dist/dda/p-36561409.entry.js +0 -2
  492. package/dist/dda/p-36561409.entry.js.map +0 -1
  493. package/dist/dda/p-3c099577.entry.js +0 -2
  494. package/dist/dda/p-3c099577.entry.js.map +0 -1
  495. package/dist/dda/p-3cdb54c4.entry.js +0 -2
  496. package/dist/dda/p-3cdb54c4.entry.js.map +0 -1
  497. package/dist/dda/p-3d5608f7.entry.js +0 -2
  498. package/dist/dda/p-3d5608f7.entry.js.map +0 -1
  499. package/dist/dda/p-3fffdb8b.entry.js +0 -2
  500. package/dist/dda/p-3fffdb8b.entry.js.map +0 -1
  501. package/dist/dda/p-466f931b.entry.js +0 -2
  502. package/dist/dda/p-466f931b.entry.js.map +0 -1
  503. package/dist/dda/p-4d0d3545.entry.js +0 -2
  504. package/dist/dda/p-4d0d3545.entry.js.map +0 -1
  505. package/dist/dda/p-511fae4e.entry.js +0 -2
  506. package/dist/dda/p-511fae4e.entry.js.map +0 -1
  507. package/dist/dda/p-540284f3.entry.js +0 -2
  508. package/dist/dda/p-540284f3.entry.js.map +0 -1
  509. package/dist/dda/p-578b6d01.entry.js +0 -2
  510. package/dist/dda/p-578b6d01.entry.js.map +0 -1
  511. package/dist/dda/p-6b401fde.js +0 -3
  512. package/dist/dda/p-6b401fde.js.map +0 -1
  513. package/dist/dda/p-8c970299.entry.js +0 -2
  514. package/dist/dda/p-8c970299.entry.js.map +0 -1
  515. package/dist/dda/p-8ffca988.entry.js +0 -2
  516. package/dist/dda/p-8ffca988.entry.js.map +0 -1
  517. package/dist/dda/p-9c619a7a.entry.js +0 -2
  518. package/dist/dda/p-9c619a7a.entry.js.map +0 -1
  519. package/dist/dda/p-9c693b51.entry.js +0 -2
  520. package/dist/dda/p-9c693b51.entry.js.map +0 -1
  521. package/dist/dda/p-a5b7698d.entry.js +0 -2
  522. package/dist/dda/p-a5b7698d.entry.js.map +0 -1
  523. package/dist/dda/p-a83fa6d1.entry.js +0 -2
  524. package/dist/dda/p-a83fa6d1.entry.js.map +0 -1
  525. package/dist/dda/p-ade2b279.entry.js +0 -2
  526. package/dist/dda/p-ade2b279.entry.js.map +0 -1
  527. package/dist/dda/p-aec2f087.entry.js +0 -2
  528. package/dist/dda/p-aec2f087.entry.js.map +0 -1
  529. package/dist/dda/p-bf69dfab.entry.js +0 -2
  530. package/dist/dda/p-bf69dfab.entry.js.map +0 -1
  531. package/dist/dda/p-ccf23fd7.entry.js +0 -2
  532. package/dist/dda/p-ccf23fd7.entry.js.map +0 -1
  533. package/dist/dda/p-d6a16216.entry.js +0 -2
  534. package/dist/dda/p-d6a16216.entry.js.map +0 -1
  535. package/dist/dda/p-dbba8d56.entry.js +0 -2
  536. package/dist/dda/p-dbba8d56.entry.js.map +0 -1
  537. package/dist/dda/p-e1255160.js +0 -2
  538. package/dist/dda/p-e1255160.js.map +0 -1
  539. package/dist/dda/p-e4d6f6cb.entry.js +0 -2
  540. package/dist/dda/p-e4d6f6cb.entry.js.map +0 -1
  541. package/dist/dda/p-e550c988.entry.js +0 -2
  542. package/dist/dda/p-e550c988.entry.js.map +0 -1
  543. package/dist/dda/p-ed0795e7.entry.js +0 -2
  544. package/dist/dda/p-ed0795e7.entry.js.map +0 -1
  545. package/dist/esm/app-globals-0f993ce5.js +0 -5
  546. package/dist/esm/app-globals-0f993ce5.js.map +0 -1
  547. package/dist/esm/dda-accordion.entry.js.map +0 -1
  548. package/dist/esm/dda-alert.entry.js.map +0 -1
  549. package/dist/esm/dda-attach-file.entry.js.map +0 -1
  550. package/dist/esm/dda-avatar.entry.js.map +0 -1
  551. package/dist/esm/dda-breadcrumb.entry.js.map +0 -1
  552. package/dist/esm/dda-button.entry.js.map +0 -1
  553. package/dist/esm/dda-checkbox.entry.js.map +0 -1
  554. package/dist/esm/dda-chip.entry.js.map +0 -1
  555. package/dist/esm/dda-credit-card.entry.js.map +0 -1
  556. package/dist/esm/dda-creditcard-field.entry.js.map +0 -1
  557. package/dist/esm/dda-dropdown.entry.js.map +0 -1
  558. package/dist/esm/dda-footer.entry.js.map +0 -1
  559. package/dist/esm/dda-header.entry.js.map +0 -1
  560. package/dist/esm/dda-horizontal-stepper.entry.js.map +0 -1
  561. package/dist/esm/dda-input.entry.js.map +0 -1
  562. package/dist/esm/dda-link-button_2.entry.js.map +0 -1
  563. package/dist/esm/dda-number-field.entry.js.map +0 -1
  564. package/dist/esm/dda-pagination.entry.js.map +0 -1
  565. package/dist/esm/dda-phonefield.entry.js.map +0 -1
  566. package/dist/esm/dda-progressbar.entry.js.map +0 -1
  567. package/dist/esm/dda-radiobutton.entry.js +0 -27
  568. package/dist/esm/dda-radiobutton.entry.js.map +0 -1
  569. package/dist/esm/dda-range-slider.entry.js.map +0 -1
  570. package/dist/esm/dda-search-input.entry.js.map +0 -1
  571. package/dist/esm/dda-segmented-tabs.entry.js.map +0 -1
  572. package/dist/esm/dda-select.entry.js.map +0 -1
  573. package/dist/esm/dda-sticky-footer.entry.js.map +0 -1
  574. package/dist/esm/dda-tabs.entry.js.map +0 -1
  575. package/dist/esm/dda-textarea.entry.js.map +0 -1
  576. package/dist/esm/dda-toggle.entry.js.map +0 -1
  577. package/dist/esm/dda-vertical-stepper.entry.js.map +0 -1
  578. package/dist/esm/dda.js.map +0 -1
  579. package/dist/esm/index-be8c716a.js +0 -1590
  580. package/dist/esm/index-be8c716a.js.map +0 -1
  581. package/dist/esm/index.js.map +0 -1
  582. package/dist/esm/loader.js.map +0 -1
  583. package/loader/package.json +0 -11
@@ -5,6 +5,85 @@ export class Ddaselect {
5
5
  this.is_open = false;
6
6
  //@Prop() validationtype?: string;
7
7
  this.custom_class = '';
8
+ // F-014: focus target requested by a keyboard interaction (ArrowDown/Up
9
+ // from the trigger) that fires before the listbox exists in the DOM.
10
+ // Consumed by componentDidRender, then cleared.
11
+ this.pendingFocusIndex = null;
12
+ this.onTriggerKeyDown = (event) => {
13
+ if (this.disabled) {
14
+ return;
15
+ }
16
+ if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {
17
+ event.preventDefault();
18
+ const wasOpen = this.is_open;
19
+ this.is_open = true;
20
+ const target = this.initialOptionIndex();
21
+ if (wasOpen) {
22
+ this.focusOption(target);
23
+ }
24
+ else {
25
+ this.pendingFocusIndex = target;
26
+ }
27
+ }
28
+ else if (event.key === 'Escape' && this.is_open) {
29
+ event.preventDefault();
30
+ this.is_open = false;
31
+ }
32
+ };
33
+ this.onOptionKeyDown = (event, option) => {
34
+ const currentIndex = this.currentFocusedOptionIndex();
35
+ switch (event.key) {
36
+ case 'ArrowDown':
37
+ event.preventDefault();
38
+ this.focusOption(currentIndex + 1);
39
+ break;
40
+ case 'ArrowUp':
41
+ event.preventDefault();
42
+ this.focusOption(currentIndex - 1);
43
+ break;
44
+ case 'Home':
45
+ event.preventDefault();
46
+ this.focusOption(0);
47
+ break;
48
+ case 'End':
49
+ event.preventDefault();
50
+ this.focusOption(this.parsedOptions.length - 1);
51
+ break;
52
+ case 'Enter':
53
+ case ' ':
54
+ event.preventDefault();
55
+ this.selectOption(option);
56
+ break;
57
+ case 'Escape':
58
+ event.preventDefault();
59
+ this.closeAndReturnFocus();
60
+ break;
61
+ case 'Tab':
62
+ // Let focus leave naturally; don't trap it, but the popup should
63
+ // not stay open once it does.
64
+ this.is_open = false;
65
+ break;
66
+ default:
67
+ break;
68
+ }
69
+ };
70
+ }
71
+ get listboxId() {
72
+ return `${this.button_id}-listbox`;
73
+ }
74
+ // F-016: same button_id-derived uniqueness pattern as listboxId above.
75
+ get helperId() {
76
+ return this.button_id ? `${this.button_id}-helper` : undefined;
77
+ }
78
+ get errorId() {
79
+ return this.button_id ? `${this.button_id}-error` : undefined;
80
+ }
81
+ get describedBy() {
82
+ const ids = [
83
+ this.helper_text ? this.helperId : undefined,
84
+ this.error_message ? this.errorId : undefined,
85
+ ].filter(Boolean);
86
+ return ids.length ? ids.join(' ') : undefined;
8
87
  }
9
88
  get parsedOptions() {
10
89
  try {
@@ -14,19 +93,50 @@ export class Ddaselect {
14
93
  return [];
15
94
  }
16
95
  }
96
+ focusOption(index) {
97
+ const options = Array.from(this.el.querySelectorAll('.dda-input-dropdown-item[role="option"]'));
98
+ if (options.length === 0) {
99
+ return;
100
+ }
101
+ const clamped = Math.max(0, Math.min(index, options.length - 1));
102
+ options[clamped].focus();
103
+ }
104
+ currentFocusedOptionIndex() {
105
+ const options = Array.from(this.el.querySelectorAll('.dda-input-dropdown-item[role="option"]'));
106
+ return options.indexOf(document.activeElement);
107
+ }
108
+ initialOptionIndex() {
109
+ const options = this.parsedOptions;
110
+ const selectedIndex = options.indexOf(this.selected);
111
+ return selectedIndex >= 0 ? selectedIndex : 0;
112
+ }
17
113
  toggleSelect() {
18
114
  if (!this.disabled) {
19
115
  this.is_open = !this.is_open;
20
116
  }
21
117
  }
118
+ closeAndReturnFocus() {
119
+ this.is_open = false;
120
+ const trigger = this.el.querySelector('.dda-select-header');
121
+ if (trigger) {
122
+ trigger.focus();
123
+ }
124
+ }
22
125
  selectOption(option) {
23
126
  if (!this.disabled) {
24
127
  this.selected = option;
25
- this.is_open = false;
128
+ this.closeAndReturnFocus();
129
+ }
130
+ }
131
+ componentDidRender() {
132
+ if (this.is_open && this.pendingFocusIndex !== null) {
133
+ const target = this.pendingFocusIndex;
134
+ this.pendingFocusIndex = null;
135
+ this.focusOption(target);
26
136
  }
27
137
  }
28
138
  render() {
29
- return (h(Host, { key: 'c0a73f03445c95930b550ba2b3bb3ac859b617b6' }, h("div", { key: 'b8f6cc200987460f6662d8b40cab6e9327d73133', class: `dda-input-container ${this.custom_class} ${this.component_mode} ${this.disabled ? 'dda-input-disabled' : ''} ${this.is_open ? 'show' : 'hide'} dda-input-size-${this.size} dda-validation-${this.error} ` }, this.label && h("label", { key: '14b9d76fbb1c4a25787dbedfb5113dc3f7c67a69', htmlFor: this.button_id, class: "dda-input-label" }, this.label), h("div", { key: '217a732c3886c2763909a90431400662081fd894', class: "dda-dropdown-container" }, h("button", { key: '2d6c0df4e40a966b0141593f8c3099dae82723d1', "aria-label": this.aria_label, id: this.button_id, type: "button", class: "dda-input-field dda-select-header", onClick: () => { this.toggleSelect(); } }, this.selected || 'Select an option', h("i", { key: 'd4448e19431eae21628fc35fe91b484559378415', class: `material-icons` }, this.is_open ? 'keyboard_arrow_up' : 'keyboard_arrow_down')), this.is_open && (h("div", { key: 'd939822a702482b52fa35fceccc69d7f313ed93b', class: "dda-input-dropdown-list dda-select-list" }, this.parsedOptions.length > 0 ? (this.parsedOptions.map(option => (h("button", { type: "button", class: `dda-input-dropdown-item ${this.selected === option ? 'selected' : ''}`, onClick: () => this.selectOption(option) }, option)))) : (h("div", { class: "dda-input-dropdown-item" }, "No options available"))))), this.helper_text && h("span", { key: 'e7821efe3d2300d153fd29dc5406beab0b151d22', class: "dda-helper-text" }, this.helper_text), this.error_message && h("span", { key: 'ca7dfd193bc6504938e792a28bc715c3de974763', class: "dda-error-message" }, this.error_message))));
139
+ return (h(Host, { key: '24112cb3263994d6e4b7c87a5a1ec75d010c6ee0' }, h("div", { key: '9d49fc8c1905079e83a8949ca8c1f46fa3255401', class: `dda-input-container ${this.custom_class} ${this.component_mode} ${this.disabled ? 'dda-input-disabled' : ''} ${this.is_open ? 'show' : 'hide'} dda-input-size-${this.size} dda-validation-${this.error} ` }, this.label && h("label", { key: '96d14ea8c1174032261945b9bef49f23e6ff55b6', htmlFor: this.button_id, class: "dda-input-label" }, this.label), h("div", { key: '0896838d28313f76b1938c225bdf5df1fdbc7849', class: "dda-dropdown-container" }, h("button", { key: 'a224ad80778a6e315735e806a0afbb4fc7c57e93', name: this.toggle_button_name, "aria-label": this.aria_label, id: this.button_id, type: "button", class: "dda-input-field dda-select-header", "aria-haspopup": "listbox", "aria-expanded": this.is_open ? 'true' : 'false', "aria-controls": this.is_open ? this.listboxId : undefined, "aria-describedby": this.describedBy, "aria-invalid": this.error_message ? 'true' : undefined, onClick: () => { this.toggleSelect(); }, onKeyDown: this.onTriggerKeyDown }, this.selected || 'Select an option', h("i", { key: '7ed3bdb440c0a892795af32b1b2f9105633d5af7', class: `material-icons` }, this.is_open ? 'keyboard_arrow_up' : 'keyboard_arrow_down')), this.is_open && (h("div", { key: '266c9fc8de36433de06bf289a854c22ab499f0ca', id: this.listboxId, role: "listbox", "aria-label": this.aria_label || this.label, class: "dda-input-dropdown-list dda-select-list" }, this.parsedOptions.length > 0 ? (this.parsedOptions.map((option, index) => (h("button", { name: this.option_select_button_name, type: "button", role: "option", "aria-selected": this.selected === option ? 'true' : 'false', tabIndex: index === this.initialOptionIndex() ? 0 : -1, class: `dda-input-dropdown-item ${this.selected === option ? 'selected' : ''}`, onClick: () => this.selectOption(option), onKeyDown: (event) => this.onOptionKeyDown(event, option) }, option)))) : (h("div", { class: "dda-input-dropdown-item" }, "No options available"))))), this.helper_text && h("span", { key: '62028ea0d45943d0728f71ec58122ab58a554ec7', id: this.helperId, class: "dda-helper-text" }, this.helper_text), this.error_message && h("span", { key: '30f11a0804b15424e0ca7a8769477f5f4547b191', id: this.errorId, class: "dda-error-message" }, this.error_message))));
30
140
  }
31
141
  static get is() { return "dda-select"; }
32
142
  static get originalStyleUrls() {
@@ -57,8 +167,8 @@ export class Ddaselect {
57
167
  },
58
168
  "getter": false,
59
169
  "setter": false,
60
- "attribute": "label",
61
- "reflect": false
170
+ "reflect": false,
171
+ "attribute": "label"
62
172
  },
63
173
  "options": {
64
174
  "type": "string",
@@ -76,8 +186,8 @@ export class Ddaselect {
76
186
  },
77
187
  "getter": false,
78
188
  "setter": false,
79
- "attribute": "options",
80
- "reflect": false
189
+ "reflect": false,
190
+ "attribute": "options"
81
191
  },
82
192
  "selected": {
83
193
  "type": "string",
@@ -95,8 +205,8 @@ export class Ddaselect {
95
205
  },
96
206
  "getter": false,
97
207
  "setter": false,
98
- "attribute": "selected",
99
- "reflect": false
208
+ "reflect": false,
209
+ "attribute": "selected"
100
210
  },
101
211
  "disabled": {
102
212
  "type": "boolean",
@@ -114,8 +224,8 @@ export class Ddaselect {
114
224
  },
115
225
  "getter": false,
116
226
  "setter": false,
117
- "attribute": "disabled",
118
227
  "reflect": false,
228
+ "attribute": "disabled",
119
229
  "defaultValue": "false"
120
230
  },
121
231
  "error": {
@@ -134,8 +244,8 @@ export class Ddaselect {
134
244
  },
135
245
  "getter": false,
136
246
  "setter": false,
137
- "attribute": "error",
138
- "reflect": false
247
+ "reflect": false,
248
+ "attribute": "error"
139
249
  },
140
250
  "error_message": {
141
251
  "type": "string",
@@ -153,8 +263,8 @@ export class Ddaselect {
153
263
  },
154
264
  "getter": false,
155
265
  "setter": false,
156
- "attribute": "error_message",
157
- "reflect": false
266
+ "reflect": false,
267
+ "attribute": "error_message"
158
268
  },
159
269
  "helper_text": {
160
270
  "type": "string",
@@ -172,8 +282,8 @@ export class Ddaselect {
172
282
  },
173
283
  "getter": false,
174
284
  "setter": false,
175
- "attribute": "helper_text",
176
- "reflect": false
285
+ "reflect": false,
286
+ "attribute": "helper_text"
177
287
  },
178
288
  "size": {
179
289
  "type": "string",
@@ -191,8 +301,8 @@ export class Ddaselect {
191
301
  },
192
302
  "getter": false,
193
303
  "setter": false,
194
- "attribute": "size",
195
- "reflect": false
304
+ "reflect": false,
305
+ "attribute": "size"
196
306
  },
197
307
  "custom_class": {
198
308
  "type": "string",
@@ -210,8 +320,8 @@ export class Ddaselect {
210
320
  },
211
321
  "getter": false,
212
322
  "setter": false,
213
- "attribute": "custom_class",
214
323
  "reflect": false,
324
+ "attribute": "custom_class",
215
325
  "defaultValue": "''"
216
326
  },
217
327
  "component_mode": {
@@ -230,8 +340,8 @@ export class Ddaselect {
230
340
  },
231
341
  "getter": false,
232
342
  "setter": false,
233
- "attribute": "component_mode",
234
- "reflect": false
343
+ "reflect": false,
344
+ "attribute": "component_mode"
235
345
  },
236
346
  "aria_label": {
237
347
  "type": "string",
@@ -249,8 +359,8 @@ export class Ddaselect {
249
359
  },
250
360
  "getter": false,
251
361
  "setter": false,
252
- "attribute": "aria_label",
253
- "reflect": false
362
+ "reflect": false,
363
+ "attribute": "aria_label"
254
364
  },
255
365
  "button_id": {
256
366
  "type": "string",
@@ -268,8 +378,46 @@ export class Ddaselect {
268
378
  },
269
379
  "getter": false,
270
380
  "setter": false,
271
- "attribute": "button_id",
272
- "reflect": false
381
+ "reflect": false,
382
+ "attribute": "button_id"
383
+ },
384
+ "toggle_button_name": {
385
+ "type": "string",
386
+ "mutable": false,
387
+ "complexType": {
388
+ "original": "string",
389
+ "resolved": "string",
390
+ "references": {}
391
+ },
392
+ "required": false,
393
+ "optional": false,
394
+ "docs": {
395
+ "tags": [],
396
+ "text": ""
397
+ },
398
+ "getter": false,
399
+ "setter": false,
400
+ "reflect": false,
401
+ "attribute": "toggle_button_name"
402
+ },
403
+ "option_select_button_name": {
404
+ "type": "string",
405
+ "mutable": false,
406
+ "complexType": {
407
+ "original": "string",
408
+ "resolved": "string",
409
+ "references": {}
410
+ },
411
+ "required": false,
412
+ "optional": false,
413
+ "docs": {
414
+ "tags": [],
415
+ "text": ""
416
+ },
417
+ "getter": false,
418
+ "setter": false,
419
+ "reflect": false,
420
+ "attribute": "option_select_button_name"
273
421
  }
274
422
  };
275
423
  }
@@ -278,5 +426,5 @@ export class Ddaselect {
278
426
  "is_open": {}
279
427
  };
280
428
  }
429
+ static get elementRef() { return "el"; }
281
430
  }
282
- //# sourceMappingURL=dda-select.js.map
@@ -53,28 +53,38 @@ export default {
53
53
  control: { type: 'text' },
54
54
  description: 'Aria label for the select element',
55
55
  },
56
+ toggle_button_name: {
57
+ control: { type: 'text' },
58
+ description: 'Name for the toggle button',
59
+ },
60
+ option_select_button_name: {
61
+ control: { type: 'text' },
62
+ description: 'Name for the option select button',
63
+ },
56
64
  },
57
65
  parameters: {
58
66
  docs: {
59
67
  description: {
60
- component: `
61
- To use the \`dda-select\` component, pass the following props:
62
-
63
- \`\`\`html
64
- <dda-select
65
- label="Select an option"
66
- selected="Option 1"
67
- disabled="false"
68
- helper_text="Helper or footer text"
69
- error_message=""
70
- size="default"
71
- custom_class=""
72
- component_mode=""
73
- button_id="button"
74
- aria_label="select"
75
- options='["Option 1","Option 2","Option 3"]'
76
- ></dda-select>
77
- \`\`\`
68
+ component: `
69
+ To use the \`dda-select\` component, pass the following props:
70
+
71
+ \`\`\`html
72
+ <dda-select
73
+ label="Select an option"
74
+ selected="Option 1"
75
+ disabled="false"
76
+ helper_text="Helper or footer text"
77
+ error_message=""
78
+ size="default"
79
+ custom_class=""
80
+ component_mode=""
81
+ button_id="button"
82
+ aria_label="select"
83
+ options='["Option 1","Option 2","Option 3"]'
84
+ toggle_button_name="toggle_button_name"
85
+ option_select_button_name="option_select_button_name"
86
+ ></dda-select>
87
+ \`\`\`
78
88
  `,
79
89
  },
80
90
  },
@@ -101,6 +111,8 @@ Default.args = {
101
111
  component_mode: '',
102
112
  button_id: 'button',
103
113
  aria_label: 'select',
114
+ toggle_button_name: "toggle_button_name",
115
+ option_select_button_name: "option_select_button_name",
104
116
  };
105
117
  export const Small = Template.bind({});
106
118
  Small.args = {
@@ -115,6 +127,8 @@ Small.args = {
115
127
  component_mode: '',
116
128
  button_id: 'button',
117
129
  aria_label: 'select',
130
+ toggle_button_name: "toggle_button_name",
131
+ option_select_button_name: "option_select_button_name",
118
132
  };
119
133
  export const WithError = Template.bind({});
120
134
  WithError.args = {
@@ -129,6 +143,8 @@ WithError.args = {
129
143
  component_mode: '',
130
144
  button_id: 'button',
131
145
  aria_label: 'select',
146
+ toggle_button_name: "toggle_button_name",
147
+ option_select_button_name: "option_select_button_name",
132
148
  };
133
149
  export const Disabled = Template.bind({});
134
150
  Disabled.args = {
@@ -142,5 +158,6 @@ Disabled.args = {
142
158
  component_mode: '',
143
159
  button_id: 'button',
144
160
  aria_label: 'select',
161
+ toggle_button_name: "toggle_button_name",
162
+ option_select_button_name: "option_select_button_name",
145
163
  };
146
- //# sourceMappingURL=dda-select.stories.js.map