@dubai-design-system/components-js 3.12.16 → 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 (263) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/dist/cjs/dda-accordion.cjs.entry.js +4 -4
  3. package/dist/cjs/dda-alert.cjs.entry.js +11 -4
  4. package/dist/cjs/dda-attach-file.cjs.entry.js +19 -4
  5. package/dist/cjs/dda-avatar.cjs.entry.js +12 -6
  6. package/dist/cjs/dda-banner.cjs.entry.js +2 -2
  7. package/dist/cjs/dda-breadcrumb.cjs.entry.js +2 -2
  8. package/dist/cjs/dda-button.cjs.entry.js +3 -3
  9. package/dist/cjs/dda-checkbox.cjs.entry.js +2 -2
  10. package/dist/cjs/dda-chip.cjs.entry.js +4 -4
  11. package/dist/cjs/dda-credit-card.cjs.entry.js +3 -3
  12. package/dist/cjs/dda-creditcard-field.cjs.entry.js +22 -4
  13. package/dist/cjs/dda-dropdown.cjs.entry.js +3 -3
  14. package/dist/cjs/dda-footer.cjs.entry.js +5 -3
  15. package/dist/cjs/dda-header.cjs.entry.js +3 -3
  16. package/dist/cjs/dda-home-banner.cjs.entry.js +172 -13
  17. package/dist/cjs/dda-horizontal-stepper.cjs.entry.js +4 -4
  18. package/dist/cjs/dda-input.cjs.entry.js +21 -4
  19. package/dist/cjs/dda-link-button_2.cjs.entry.js +7 -7
  20. package/dist/cjs/dda-number-field.cjs.entry.js +19 -4
  21. package/dist/cjs/dda-pagination.cjs.entry.js +4 -4
  22. package/dist/cjs/dda-phonefield.cjs.entry.js +22 -4
  23. package/dist/cjs/dda-progressbar.cjs.entry.js +5 -4
  24. package/dist/cjs/dda-range-slider.cjs.entry.js +4 -4
  25. package/dist/cjs/dda-search-input.cjs.entry.js +23 -6
  26. package/dist/cjs/dda-segmented-tabs.cjs.entry.js +30 -5
  27. package/dist/cjs/dda-select.cjs.entry.js +114 -5
  28. package/dist/cjs/dda-sticky-footer.cjs.entry.js +5 -3
  29. package/dist/cjs/dda-tabs.cjs.entry.js +3 -3
  30. package/dist/cjs/dda-textarea.cjs.entry.js +74 -5
  31. package/dist/cjs/dda-toggle.cjs.entry.js +3 -3
  32. package/dist/cjs/dda-tooltip.cjs.entry.js +29 -4
  33. package/dist/cjs/dda-ui-card.cjs.entry.js +2 -2
  34. package/dist/cjs/dda-vertical-stepper.cjs.entry.js +2 -2
  35. package/dist/cjs/dda.cjs.js +3 -4
  36. package/dist/cjs/index-DGHrEPBX.js +1986 -0
  37. package/dist/cjs/loader.cjs.js +3 -4
  38. package/dist/collection/components/dda-accordion/dda-accordion.css +10 -0
  39. package/dist/collection/components/dda-accordion/dda-accordion.js +1 -1
  40. package/dist/collection/components/dda-alert/dda-alert.js +8 -1
  41. package/dist/collection/components/dda-attach-file/dda-attach-file.js +16 -1
  42. package/dist/collection/components/dda-avatar/dda-avatar.css +25 -1
  43. package/dist/collection/components/dda-avatar/dda-avatar.js +8 -2
  44. package/dist/collection/components/dda-chip/dda-chip.css +14 -1
  45. package/dist/collection/components/dda-chip/dda-chip.js +1 -1
  46. package/dist/collection/components/dda-credit-card/dda-credit-card.css +8 -2
  47. package/dist/collection/components/dda-creditcard-field/dda-creditcard-field.js +39 -1
  48. package/dist/collection/components/dda-creditcard-field/dda-creditcard-field.stories.js +9 -0
  49. package/dist/collection/components/dda-footer/dda-footer.js +3 -4
  50. package/dist/collection/components/dda-header/dda-header.css +36 -0
  51. package/dist/collection/components/dda-header/dda-header.js +1 -1
  52. package/dist/collection/components/dda-home-banner/dda-home-banner.js +358 -11
  53. package/dist/collection/components/dda-home-banner/dda-home-banner.stories.js +79 -49
  54. package/dist/collection/components/dda-home-banner/home-banner.css +45 -4
  55. package/dist/collection/components/dda-input/dda-input.js +18 -1
  56. package/dist/collection/components/dda-link-button/dda-link-button.js +2 -2
  57. package/dist/collection/components/dda-number-field/dda-number-field.js +16 -1
  58. package/dist/collection/components/dda-pagination/dda-pagination.css +9 -1
  59. package/dist/collection/components/dda-pagination/dda-pagination.js +1 -1
  60. package/dist/collection/components/dda-phonefield/dda-phonefield.js +39 -1
  61. package/dist/collection/components/dda-phonefield/dda-phonefield.stories.js +11 -1
  62. package/dist/collection/components/dda-progressbar/dda-progressbar.css +4 -0
  63. package/dist/collection/components/dda-progressbar/dda-progressbar.js +22 -1
  64. package/dist/collection/components/dda-progressbar/dda-progressbar.stories.js +6 -0
  65. package/dist/collection/components/dda-radiobutton/dda-radiobutton.css +26 -2
  66. package/dist/collection/components/dda-radiobutton/dda-radiobutton.js +1 -1
  67. package/dist/collection/components/dda-range-slider/dda-range-slider.css +18 -2
  68. package/dist/collection/components/dda-range-slider/dda-range-slider.js +2 -2
  69. package/dist/collection/components/dda-search-input/dda-search-input.js +38 -2
  70. package/dist/collection/components/dda-search-input/dda-search-input.stories.js +9 -0
  71. package/dist/collection/components/dda-select/dda-select.js +113 -2
  72. package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.js +3 -4
  73. package/dist/collection/components/dda-tabs/dda-tabs.js +1 -1
  74. package/dist/collection/components/dda-textarea/dda-textarea.js +71 -2
  75. package/dist/collection/components/dda-toggle/dda-toggle.js +1 -1
  76. package/dist/collection/components/dda-tooltip/dda-tooltip.css +17 -1
  77. package/dist/collection/components/dda-tooltip/dda-tooltip.js +31 -1
  78. package/dist/collection/components/dda-ui-card/dda-ui-card.js +1 -1
  79. package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.js +89 -3
  80. package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.stories.js +21 -1
  81. package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.css +15 -3
  82. package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.js +1 -1
  83. package/dist/collection/components/stepper/dda-vertical-stepper/dda-vertical-stepper.js +1 -1
  84. package/dist/collection/global/dda-button.css +49 -18
  85. package/dist/collection/global/global.css +26 -2
  86. package/dist/collection/global/input.css +69 -8
  87. package/dist/collection/utils/contrast.js +38 -0
  88. package/dist/components/dda-accordion.js +1 -1
  89. package/dist/components/dda-alert.js +1 -1
  90. package/dist/components/dda-attach-file.js +1 -1
  91. package/dist/components/dda-avatar.js +1 -1
  92. package/dist/components/dda-banner.js +1 -1
  93. package/dist/components/dda-breadcrumb.js +1 -1
  94. package/dist/components/dda-button.js +1 -1
  95. package/dist/components/dda-checkbox.js +1 -1
  96. package/dist/components/dda-chip.js +1 -1
  97. package/dist/components/dda-credit-card.js +1 -1
  98. package/dist/components/dda-creditcard-field.js +1 -1
  99. package/dist/components/dda-dropdown.js +1 -1
  100. package/dist/components/dda-footer.js +1 -1
  101. package/dist/components/dda-header.js +1 -1
  102. package/dist/components/dda-home-banner.js +1 -1
  103. package/dist/components/dda-horizontal-stepper.js +1 -1
  104. package/dist/components/dda-input.js +1 -1
  105. package/dist/components/dda-link-button.js +1 -1
  106. package/dist/components/dda-number-field.js +1 -1
  107. package/dist/components/dda-pagination.js +1 -1
  108. package/dist/components/dda-phonefield.js +1 -1
  109. package/dist/components/dda-progressbar.js +1 -1
  110. package/dist/components/dda-radiobutton.js +1 -1
  111. package/dist/components/dda-range-slider.js +1 -1
  112. package/dist/components/dda-search-input.js +1 -1
  113. package/dist/components/dda-segmented-tabs.js +1 -1
  114. package/dist/components/dda-select.js +1 -1
  115. package/dist/components/dda-sticky-footer.js +1 -1
  116. package/dist/components/dda-tabs.js +1 -1
  117. package/dist/components/dda-textarea.js +1 -1
  118. package/dist/components/dda-toggle.js +1 -1
  119. package/dist/components/dda-tooltip.js +1 -1
  120. package/dist/components/dda-ui-card.js +1 -1
  121. package/dist/components/dda-vertical-stepper.js +1 -1
  122. package/dist/components/index.js +1 -1
  123. package/dist/components/p-BaW1ewxd.js +1 -0
  124. package/dist/components/p-C2ufT7tL.js +1 -0
  125. package/dist/components/p-CbUih1OY.js +1 -0
  126. package/dist/components/p-Cgvws3Uk.js +1 -0
  127. package/dist/components/p-HakkUtRK.js +1 -0
  128. package/dist/dda/dda.css +20 -0
  129. package/dist/dda/dda.esm.js +1 -1
  130. package/dist/dda/p-0b56fbcb.entry.js +1 -0
  131. package/dist/dda/p-1df4494d.entry.js +1 -0
  132. package/dist/dda/p-207c4034.entry.js +1 -0
  133. package/dist/dda/p-23c6a709.entry.js +1 -0
  134. package/dist/dda/p-2c0f4e9e.entry.js +1 -0
  135. package/dist/dda/p-2e4e47ec.entry.js +1 -0
  136. package/dist/dda/p-3b9a784a.entry.js +1 -0
  137. package/dist/dda/p-4400194a.entry.js +1 -0
  138. package/dist/dda/p-48f14688.entry.js +1 -0
  139. package/dist/dda/p-4aef15b0.entry.js +1 -0
  140. package/dist/dda/{p-0db613dc.entry.js → p-5d0b1fea.entry.js} +1 -1
  141. package/dist/dda/p-6150d6ca.entry.js +1 -0
  142. package/dist/dda/p-6def14a1.entry.js +1 -0
  143. package/dist/dda/p-7c8b1191.entry.js +1 -0
  144. package/dist/dda/p-7eb8942f.entry.js +1 -0
  145. package/dist/dda/p-82dc3344.entry.js +1 -0
  146. package/dist/dda/p-88c5aa03.entry.js +1 -0
  147. package/dist/dda/{p-872e0f49.entry.js → p-8bbd3b3b.entry.js} +1 -1
  148. package/dist/dda/p-96aaf2c6.entry.js +1 -0
  149. package/dist/dda/p-99e59635.entry.js +1 -0
  150. package/dist/dda/p-CfK_KUZU.js +2 -0
  151. package/dist/dda/p-b6096645.entry.js +1 -0
  152. package/dist/dda/p-b68b2d3a.entry.js +1 -0
  153. package/dist/dda/p-c39fc443.entry.js +1 -0
  154. package/dist/dda/p-cf6c7bc5.entry.js +1 -0
  155. package/dist/dda/p-d096ea61.entry.js +1 -0
  156. package/dist/dda/p-d5274874.entry.js +1 -0
  157. package/dist/dda/p-d606adfc.entry.js +1 -0
  158. package/dist/dda/p-da82dc4c.entry.js +1 -0
  159. package/dist/dda/p-dc72bfd8.entry.js +1 -0
  160. package/dist/dda/p-dec1b61c.entry.js +1 -0
  161. package/dist/dda/p-eb2d0c46.entry.js +1 -0
  162. package/dist/dda/p-f9c681e4.entry.js +1 -0
  163. package/dist/dda/p-fd637136.entry.js +1 -0
  164. package/dist/esm/dda-accordion.entry.js +4 -4
  165. package/dist/esm/dda-alert.entry.js +11 -4
  166. package/dist/esm/dda-attach-file.entry.js +19 -4
  167. package/dist/esm/dda-avatar.entry.js +12 -6
  168. package/dist/esm/dda-banner.entry.js +2 -2
  169. package/dist/esm/dda-breadcrumb.entry.js +2 -2
  170. package/dist/esm/dda-button.entry.js +3 -3
  171. package/dist/esm/dda-checkbox.entry.js +2 -2
  172. package/dist/esm/dda-chip.entry.js +4 -4
  173. package/dist/esm/dda-credit-card.entry.js +3 -3
  174. package/dist/esm/dda-creditcard-field.entry.js +22 -4
  175. package/dist/esm/dda-dropdown.entry.js +3 -3
  176. package/dist/esm/dda-footer.entry.js +5 -3
  177. package/dist/esm/dda-header.entry.js +3 -3
  178. package/dist/esm/dda-home-banner.entry.js +172 -13
  179. package/dist/esm/dda-horizontal-stepper.entry.js +4 -4
  180. package/dist/esm/dda-input.entry.js +21 -4
  181. package/dist/esm/dda-link-button_2.entry.js +7 -7
  182. package/dist/esm/dda-number-field.entry.js +19 -4
  183. package/dist/esm/dda-pagination.entry.js +4 -4
  184. package/dist/esm/dda-phonefield.entry.js +22 -4
  185. package/dist/esm/dda-progressbar.entry.js +5 -4
  186. package/dist/esm/dda-range-slider.entry.js +4 -4
  187. package/dist/esm/dda-search-input.entry.js +23 -6
  188. package/dist/esm/dda-segmented-tabs.entry.js +30 -5
  189. package/dist/esm/dda-select.entry.js +114 -5
  190. package/dist/esm/dda-sticky-footer.entry.js +5 -3
  191. package/dist/esm/dda-tabs.entry.js +3 -3
  192. package/dist/esm/dda-textarea.entry.js +74 -5
  193. package/dist/esm/dda-toggle.entry.js +3 -3
  194. package/dist/esm/dda-tooltip.entry.js +29 -4
  195. package/dist/esm/dda-ui-card.entry.js +2 -2
  196. package/dist/esm/dda-vertical-stepper.entry.js +2 -2
  197. package/dist/esm/dda.js +3 -4
  198. package/dist/esm/index-CfK_KUZU.js +1976 -0
  199. package/dist/esm/loader.js +3 -4
  200. package/dist/types/components/dda-alert/dda-alert.d.ts +1 -0
  201. package/dist/types/components/dda-attach-file/dda-attach-file.d.ts +3 -0
  202. package/dist/types/components/dda-creditcard-field/dda-creditcard-field.d.ts +4 -0
  203. package/dist/types/components/dda-creditcard-field/dda-creditcard-field.stories.d.ts +6 -0
  204. package/dist/types/components/dda-home-banner/dda-home-banner.d.ts +46 -1
  205. package/dist/types/components/dda-home-banner/dda-home-banner.stories.d.ts +27 -3
  206. package/dist/types/components/dda-input/dda-input.d.ts +3 -0
  207. package/dist/types/components/dda-number-field/dda-number-field.d.ts +3 -0
  208. package/dist/types/components/dda-phonefield/dda-phonefield.d.ts +4 -0
  209. package/dist/types/components/dda-phonefield/dda-phonefield.stories.d.ts +6 -0
  210. package/dist/types/components/dda-progressbar/dda-progressbar.d.ts +1 -0
  211. package/dist/types/components/dda-progressbar/dda-progressbar.stories.d.ts +7 -0
  212. package/dist/types/components/dda-search-input/dda-search-input.d.ts +4 -0
  213. package/dist/types/components/dda-search-input/dda-search-input.stories.d.ts +6 -0
  214. package/dist/types/components/dda-select/dda-select.d.ts +13 -0
  215. package/dist/types/components/dda-textarea/dda-textarea.d.ts +6 -0
  216. package/dist/types/components/dda-tooltip/dda-tooltip.d.ts +6 -0
  217. package/dist/types/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.d.ts +12 -0
  218. package/dist/types/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.stories.d.ts +12 -0
  219. package/dist/types/components.d.ts +171 -1
  220. package/dist/types/utils/contrast.d.ts +19 -0
  221. package/package.json +23 -6
  222. package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -5
  223. package/dist/cjs/index-B79qki6G.js +0 -1975
  224. package/dist/components/p-BId7flZ3.js +0 -1
  225. package/dist/components/p-BvP8lGT3.js +0 -1
  226. package/dist/components/p-CAZwi69K.js +0 -1
  227. package/dist/components/p-DlU_OvNg.js +0 -1
  228. package/dist/components/p-DywjKcXy.js +0 -1
  229. package/dist/dda/p-01b5288e.entry.js +0 -1
  230. package/dist/dda/p-05909550.entry.js +0 -1
  231. package/dist/dda/p-290878ba.entry.js +0 -1
  232. package/dist/dda/p-2a027297.entry.js +0 -1
  233. package/dist/dda/p-2be2258d.entry.js +0 -1
  234. package/dist/dda/p-320daf89.entry.js +0 -1
  235. package/dist/dda/p-3b5501d5.entry.js +0 -1
  236. package/dist/dda/p-41d48ef1.entry.js +0 -1
  237. package/dist/dda/p-49efa7b5.entry.js +0 -1
  238. package/dist/dda/p-4d544d34.entry.js +0 -1
  239. package/dist/dda/p-5a8d0718.entry.js +0 -1
  240. package/dist/dda/p-687993df.entry.js +0 -1
  241. package/dist/dda/p-72cf45ff.entry.js +0 -1
  242. package/dist/dda/p-74136148.entry.js +0 -1
  243. package/dist/dda/p-7b9a03b8.entry.js +0 -1
  244. package/dist/dda/p-813378ca.entry.js +0 -1
  245. package/dist/dda/p-81e2a31e.entry.js +0 -1
  246. package/dist/dda/p-9ada3a28.entry.js +0 -1
  247. package/dist/dda/p-9bb057e8.entry.js +0 -1
  248. package/dist/dda/p-9eb37a5b.entry.js +0 -1
  249. package/dist/dda/p-CnOk80gh.js +0 -2
  250. package/dist/dda/p-DQuL1Twl.js +0 -1
  251. package/dist/dda/p-ad2eb016.entry.js +0 -1
  252. package/dist/dda/p-bd34eb45.entry.js +0 -1
  253. package/dist/dda/p-d8b2f59d.entry.js +0 -1
  254. package/dist/dda/p-da8e1d19.entry.js +0 -1
  255. package/dist/dda/p-dd16275a.entry.js +0 -1
  256. package/dist/dda/p-de5a5f95.entry.js +0 -1
  257. package/dist/dda/p-e3c3c3c8.entry.js +0 -1
  258. package/dist/dda/p-ebaf8588.entry.js +0 -1
  259. package/dist/dda/p-efdf9aba.entry.js +0 -1
  260. package/dist/dda/p-f135fada.entry.js +0 -1
  261. package/dist/dda/p-f3a93726.entry.js +0 -1
  262. package/dist/esm/app-globals-DQuL1Twl.js +0 -3
  263. package/dist/esm/index-CnOk80gh.js +0 -1966
@@ -254,6 +254,10 @@ export namespace Components {
254
254
  }
255
255
  interface DdaCreditcardField {
256
256
  "aria_label"?: string;
257
+ /**
258
+ * @default 'cc-number'
259
+ */
260
+ "autocomplete": string;
257
261
  "card_icon": string;
258
262
  "component_mode"?: string;
259
263
  /**
@@ -351,6 +355,51 @@ export namespace Components {
351
355
  "toggle_accessibility_button_name": string;
352
356
  }
353
357
  interface DdaHomeBanner {
358
+ /**
359
+ * Accessible name for the carousel region.
360
+ * @default 'Highlights'
361
+ */
362
+ "aria_label": string;
363
+ /**
364
+ * Advance through the slides automatically.
365
+ * @default false
366
+ */
367
+ "autoplay": boolean;
368
+ /**
369
+ * Milliseconds each slide is shown for when `autoplay` is on. Clamped to a 1000ms floor.
370
+ * @default 5000
371
+ */
372
+ "interval": number;
373
+ /**
374
+ * Accessible name for the next-slide button.
375
+ * @default 'Next slide'
376
+ */
377
+ "next_button_label": string;
378
+ /**
379
+ * Accessible name for the pause button shown while autoplay is running.
380
+ * @default 'Pause slideshow'
381
+ */
382
+ "pause_button_label": string;
383
+ /**
384
+ * Accessible name for the play button shown while autoplay is paused.
385
+ * @default 'Play slideshow'
386
+ */
387
+ "play_button_label": string;
388
+ /**
389
+ * Accessible name for the previous-slide button.
390
+ * @default 'Previous slide'
391
+ */
392
+ "previous_button_label": string;
393
+ /**
394
+ * Prefix for each slide dot's accessible name, e.g. "Go to slide 2".
395
+ * @default 'Go to slide'
396
+ */
397
+ "slide_button_label": string;
398
+ /**
399
+ * Template for the screen-reader slide announcement. `{current}` and `{total}` are substituted.
400
+ * @default 'Slide {current} of {total}'
401
+ */
402
+ "slide_status_label": string;
354
403
  }
355
404
  interface DdaHorizontalStepper {
356
405
  "component_mode"?: string;
@@ -487,6 +536,10 @@ export namespace Components {
487
536
  }
488
537
  interface DdaPhonefield {
489
538
  "aria_label": string;
539
+ /**
540
+ * @default 'tel'
541
+ */
542
+ "autocomplete": string;
490
543
  "button_aria_label": string;
491
544
  "button_id"?: string;
492
545
  "component_mode"?: string;
@@ -510,6 +563,10 @@ export namespace Components {
510
563
  "validation_type"?: string;
511
564
  }
512
565
  interface DdaProgressbar {
566
+ /**
567
+ * @default 'Progress'
568
+ */
569
+ "aria_label": string;
513
570
  "component_mode"?: string;
514
571
  "custom_class": string;
515
572
  /**
@@ -596,6 +653,7 @@ export namespace Components {
596
653
  */
597
654
  "has_error": boolean;
598
655
  "helper_text": string;
656
+ "input_id"?: string;
599
657
  "input_status"?: string;
600
658
  "label": string;
601
659
  /**
@@ -614,11 +672,20 @@ export namespace Components {
614
672
  "size": string;
615
673
  }
616
674
  interface DdaSegmentedTabs {
675
+ /**
676
+ * Accessible name for the group (applied as aria-label on the group container).
677
+ */
678
+ "aria_label": string;
617
679
  "button_name": string;
618
680
  "component_mode"?: string;
619
681
  "custom_class": string;
620
682
  "items": string;
621
683
  "radius_type": string;
684
+ /**
685
+ * Index of the segment selected by default. Clamped to a valid item index.
686
+ * @default 0
687
+ */
688
+ "selected_index": number;
622
689
  }
623
690
  interface DdaSelect {
624
691
  "aria_label"?: string;
@@ -824,6 +891,10 @@ export interface DdaHeaderCustomEvent<T> extends CustomEvent<T> {
824
891
  detail: T;
825
892
  target: HTMLDdaHeaderElement;
826
893
  }
894
+ export interface DdaSegmentedTabsCustomEvent<T> extends CustomEvent<T> {
895
+ detail: T;
896
+ target: HTMLDdaSegmentedTabsElement;
897
+ }
827
898
  export interface DdaTabsCustomEvent<T> extends CustomEvent<T> {
828
899
  detail: T;
829
900
  target: HTMLDdaTabsElement;
@@ -1013,7 +1084,18 @@ declare global {
1013
1084
  prototype: HTMLDdaSearchInputElement;
1014
1085
  new (): HTMLDdaSearchInputElement;
1015
1086
  };
1087
+ interface HTMLDdaSegmentedTabsElementEventMap {
1088
+ "segmentChange": number;
1089
+ }
1016
1090
  interface HTMLDdaSegmentedTabsElement extends Components.DdaSegmentedTabs, HTMLStencilElement {
1091
+ addEventListener<K extends keyof HTMLDdaSegmentedTabsElementEventMap>(type: K, listener: (this: HTMLDdaSegmentedTabsElement, ev: DdaSegmentedTabsCustomEvent<HTMLDdaSegmentedTabsElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
1092
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1093
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1094
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1095
+ removeEventListener<K extends keyof HTMLDdaSegmentedTabsElementEventMap>(type: K, listener: (this: HTMLDdaSegmentedTabsElement, ev: DdaSegmentedTabsCustomEvent<HTMLDdaSegmentedTabsElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
1096
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1097
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1098
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
1017
1099
  }
1018
1100
  var HTMLDdaSegmentedTabsElement: {
1019
1101
  prototype: HTMLDdaSegmentedTabsElement;
@@ -1377,6 +1459,10 @@ declare namespace LocalJSX {
1377
1459
  }
1378
1460
  interface DdaCreditcardField {
1379
1461
  "aria_label"?: string;
1462
+ /**
1463
+ * @default 'cc-number'
1464
+ */
1465
+ "autocomplete"?: string;
1380
1466
  "card_icon"?: string;
1381
1467
  "component_mode"?: string;
1382
1468
  /**
@@ -1482,6 +1568,51 @@ declare namespace LocalJSX {
1482
1568
  "toggle_accessibility_button_name"?: string;
1483
1569
  }
1484
1570
  interface DdaHomeBanner {
1571
+ /**
1572
+ * Accessible name for the carousel region.
1573
+ * @default 'Highlights'
1574
+ */
1575
+ "aria_label"?: string;
1576
+ /**
1577
+ * Advance through the slides automatically.
1578
+ * @default false
1579
+ */
1580
+ "autoplay"?: boolean;
1581
+ /**
1582
+ * Milliseconds each slide is shown for when `autoplay` is on. Clamped to a 1000ms floor.
1583
+ * @default 5000
1584
+ */
1585
+ "interval"?: number;
1586
+ /**
1587
+ * Accessible name for the next-slide button.
1588
+ * @default 'Next slide'
1589
+ */
1590
+ "next_button_label"?: string;
1591
+ /**
1592
+ * Accessible name for the pause button shown while autoplay is running.
1593
+ * @default 'Pause slideshow'
1594
+ */
1595
+ "pause_button_label"?: string;
1596
+ /**
1597
+ * Accessible name for the play button shown while autoplay is paused.
1598
+ * @default 'Play slideshow'
1599
+ */
1600
+ "play_button_label"?: string;
1601
+ /**
1602
+ * Accessible name for the previous-slide button.
1603
+ * @default 'Previous slide'
1604
+ */
1605
+ "previous_button_label"?: string;
1606
+ /**
1607
+ * Prefix for each slide dot's accessible name, e.g. "Go to slide 2".
1608
+ * @default 'Go to slide'
1609
+ */
1610
+ "slide_button_label"?: string;
1611
+ /**
1612
+ * Template for the screen-reader slide announcement. `{current}` and `{total}` are substituted.
1613
+ * @default 'Slide {current} of {total}'
1614
+ */
1615
+ "slide_status_label"?: string;
1485
1616
  }
1486
1617
  interface DdaHorizontalStepper {
1487
1618
  "component_mode"?: string;
@@ -1618,6 +1749,10 @@ declare namespace LocalJSX {
1618
1749
  }
1619
1750
  interface DdaPhonefield {
1620
1751
  "aria_label"?: string;
1752
+ /**
1753
+ * @default 'tel'
1754
+ */
1755
+ "autocomplete"?: string;
1621
1756
  "button_aria_label"?: string;
1622
1757
  "button_id"?: string;
1623
1758
  "component_mode"?: string;
@@ -1641,6 +1776,10 @@ declare namespace LocalJSX {
1641
1776
  "validation_type"?: string;
1642
1777
  }
1643
1778
  interface DdaProgressbar {
1779
+ /**
1780
+ * @default 'Progress'
1781
+ */
1782
+ "aria_label"?: string;
1644
1783
  "component_mode"?: string;
1645
1784
  "custom_class"?: string;
1646
1785
  /**
@@ -1727,6 +1866,7 @@ declare namespace LocalJSX {
1727
1866
  */
1728
1867
  "has_error"?: boolean;
1729
1868
  "helper_text"?: string;
1869
+ "input_id"?: string;
1730
1870
  "input_status"?: string;
1731
1871
  "label"?: string;
1732
1872
  /**
@@ -1745,11 +1885,24 @@ declare namespace LocalJSX {
1745
1885
  "size"?: string;
1746
1886
  }
1747
1887
  interface DdaSegmentedTabs {
1888
+ /**
1889
+ * Accessible name for the group (applied as aria-label on the group container).
1890
+ */
1891
+ "aria_label"?: string;
1748
1892
  "button_name"?: string;
1749
1893
  "component_mode"?: string;
1750
1894
  "custom_class"?: string;
1751
1895
  "items"?: string;
1896
+ /**
1897
+ * Emits the newly-selected index whenever the selection changes.
1898
+ */
1899
+ "onSegmentChange"?: (event: DdaSegmentedTabsCustomEvent<number>) => void;
1752
1900
  "radius_type"?: string;
1901
+ /**
1902
+ * Index of the segment selected by default. Clamped to a valid item index.
1903
+ * @default 0
1904
+ */
1905
+ "selected_index"?: number;
1753
1906
  }
1754
1907
  interface DdaSelect {
1755
1908
  "aria_label"?: string;
@@ -2080,6 +2233,7 @@ declare namespace LocalJSX {
2080
2233
  "input_id": string;
2081
2234
  "aria_label": string;
2082
2235
  "input_name": string;
2236
+ "autocomplete": string;
2083
2237
  }
2084
2238
  interface DdaDropdownAttributes {
2085
2239
  "label": string;
@@ -2134,6 +2288,17 @@ declare namespace LocalJSX {
2134
2288
  "close_sidebar_button_name": string;
2135
2289
  "toggle_accessibility_button_name": string;
2136
2290
  }
2291
+ interface DdaHomeBannerAttributes {
2292
+ "autoplay": boolean;
2293
+ "interval": number;
2294
+ "aria_label": string;
2295
+ "previous_button_label": string;
2296
+ "next_button_label": string;
2297
+ "pause_button_label": string;
2298
+ "play_button_label": string;
2299
+ "slide_button_label": string;
2300
+ "slide_status_label": string;
2301
+ }
2137
2302
  interface DdaHorizontalStepperAttributes {
2138
2303
  "steps": string;
2139
2304
  "current_step": number;
@@ -2227,6 +2392,7 @@ declare namespace LocalJSX {
2227
2392
  "toggle_button_name": string;
2228
2393
  "country_select_button_name": string;
2229
2394
  "phone_input_name": string;
2395
+ "autocomplete": string;
2230
2396
  }
2231
2397
  interface DdaProgressbarAttributes {
2232
2398
  "progress": number;
@@ -2235,6 +2401,7 @@ declare namespace LocalJSX {
2235
2401
  "show_percentage_text": boolean;
2236
2402
  "custom_class": string;
2237
2403
  "component_mode": string;
2404
+ "aria_label": string;
2238
2405
  }
2239
2406
  interface DdaRadiobuttonAttributes {
2240
2407
  "title_text": string;
@@ -2278,6 +2445,7 @@ declare namespace LocalJSX {
2278
2445
  "custom_class": string;
2279
2446
  "component_mode": string;
2280
2447
  "button_id": string;
2448
+ "input_id": string;
2281
2449
  "aria_label": string;
2282
2450
  "button_aria_label": string;
2283
2451
  "search_input_name": string;
@@ -2290,6 +2458,8 @@ declare namespace LocalJSX {
2290
2458
  "custom_class": string;
2291
2459
  "component_mode": string;
2292
2460
  "button_name": string;
2461
+ "aria_label": string;
2462
+ "selected_index": number;
2293
2463
  }
2294
2464
  interface DdaSelectAttributes {
2295
2465
  "label": string;
@@ -2427,7 +2597,7 @@ declare namespace LocalJSX {
2427
2597
  "dda-dropdown": Omit<DdaDropdown, keyof DdaDropdownAttributes> & { [K in keyof DdaDropdown & keyof DdaDropdownAttributes]?: DdaDropdown[K] } & { [K in keyof DdaDropdown & keyof DdaDropdownAttributes as `attr:${K}`]?: DdaDropdownAttributes[K] } & { [K in keyof DdaDropdown & keyof DdaDropdownAttributes as `prop:${K}`]?: DdaDropdown[K] };
2428
2598
  "dda-footer": Omit<DdaFooter, keyof DdaFooterAttributes> & { [K in keyof DdaFooter & keyof DdaFooterAttributes]?: DdaFooter[K] } & { [K in keyof DdaFooter & keyof DdaFooterAttributes as `attr:${K}`]?: DdaFooterAttributes[K] } & { [K in keyof DdaFooter & keyof DdaFooterAttributes as `prop:${K}`]?: DdaFooter[K] };
2429
2599
  "dda-header": Omit<DdaHeader, keyof DdaHeaderAttributes> & { [K in keyof DdaHeader & keyof DdaHeaderAttributes]?: DdaHeader[K] } & { [K in keyof DdaHeader & keyof DdaHeaderAttributes as `attr:${K}`]?: DdaHeaderAttributes[K] } & { [K in keyof DdaHeader & keyof DdaHeaderAttributes as `prop:${K}`]?: DdaHeader[K] };
2430
- "dda-home-banner": DdaHomeBanner;
2600
+ "dda-home-banner": Omit<DdaHomeBanner, keyof DdaHomeBannerAttributes> & { [K in keyof DdaHomeBanner & keyof DdaHomeBannerAttributes]?: DdaHomeBanner[K] } & { [K in keyof DdaHomeBanner & keyof DdaHomeBannerAttributes as `attr:${K}`]?: DdaHomeBannerAttributes[K] } & { [K in keyof DdaHomeBanner & keyof DdaHomeBannerAttributes as `prop:${K}`]?: DdaHomeBanner[K] };
2431
2601
  "dda-horizontal-stepper": Omit<DdaHorizontalStepper, keyof DdaHorizontalStepperAttributes> & { [K in keyof DdaHorizontalStepper & keyof DdaHorizontalStepperAttributes]?: DdaHorizontalStepper[K] } & { [K in keyof DdaHorizontalStepper & keyof DdaHorizontalStepperAttributes as `attr:${K}`]?: DdaHorizontalStepperAttributes[K] } & { [K in keyof DdaHorizontalStepper & keyof DdaHorizontalStepperAttributes as `prop:${K}`]?: DdaHorizontalStepper[K] };
2432
2602
  "dda-input": Omit<DdaInput, keyof DdaInputAttributes> & { [K in keyof DdaInput & keyof DdaInputAttributes]?: DdaInput[K] } & { [K in keyof DdaInput & keyof DdaInputAttributes as `attr:${K}`]?: DdaInputAttributes[K] } & { [K in keyof DdaInput & keyof DdaInputAttributes as `prop:${K}`]?: DdaInput[K] };
2433
2603
  "dda-link-button": Omit<DdaLinkButton, keyof DdaLinkButtonAttributes> & { [K in keyof DdaLinkButton & keyof DdaLinkButtonAttributes]?: DdaLinkButton[K] } & { [K in keyof DdaLinkButton & keyof DdaLinkButtonAttributes as `attr:${K}`]?: DdaLinkButtonAttributes[K] } & { [K in keyof DdaLinkButton & keyof DdaLinkButtonAttributes as `prop:${K}`]?: DdaLinkButton[K] };
@@ -0,0 +1,19 @@
1
+ interface Rgb {
2
+ r: number;
3
+ g: number;
4
+ b: number;
5
+ }
6
+ /**
7
+ * Parses a CSS color string as returned by `getComputedStyle()`
8
+ * (`rgb(r, g, b)` or `rgba(r, g, b, a)`) into its channel values.
9
+ */
10
+ export declare function parseRgb(color: string): Rgb;
11
+ /** WCAG relative luminance, 0 (black) to 1 (white). */
12
+ export declare function relativeLuminance({ r, g, b }: Rgb): number;
13
+ /**
14
+ * WCAG contrast ratio between two colors, each either a `getComputedStyle()`
15
+ * color string or a pre-parsed { r, g, b }. Order doesn't matter — the
16
+ * lighter color is always treated as the numerator, per spec.
17
+ */
18
+ export declare function contrastRatio(a: string | Rgb, b: string | Rgb): number;
19
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dubai-design-system/components-js",
3
- "version": "3.12.16",
3
+ "version": "5.0.0",
4
4
  "private": false,
5
5
  "description": "JavaScript package for the Digital Dubai Design System, offering reusable, customizable components for seamless integration into web applications",
6
6
  "main": "dist/index.cjs.js",
@@ -44,7 +44,15 @@
44
44
  "generate": "stencil generate",
45
45
  "storybook": "storybook dev -p 6006",
46
46
  "build-storybook": "storybook build",
47
- "release": "standard-version"
47
+ "release": "standard-version",
48
+ "lint": "eslint src",
49
+ "lint:report": "eslint src -f json -o ../../docs/a11y/eslint-report.json",
50
+ "format:check": "prettier --check \"src/**/*.{ts,tsx,css}\"",
51
+ "format": "prettier --write \"src/**/*.{ts,tsx,css}\"",
52
+ "check:api": "node scripts/check-api-consistency.mjs",
53
+ "check:api:test": "node --test scripts/check-api-consistency.test.mjs",
54
+ "test:a11y": "test-storybook --url http://127.0.0.1:6006",
55
+ "test:a11y:ci": "concurrently -k -s first -n SB,TEST \"http-server storybook-static --port 6006 --silent\" \"wait-on tcp:127.0.0.1:6006 && npm run test:a11y\""
48
56
  },
49
57
  "dependencies": {
50
58
  "chromatic": "^11.11.0",
@@ -54,8 +62,9 @@
54
62
  "react-markdown": "^9.0.1"
55
63
  },
56
64
  "devDependencies": {
65
+ "@eslint/js": "^9.39.5",
57
66
  "@stencil/angular-output-target": "^0.10.2",
58
- "@stencil/core": "^4.7.0",
67
+ "@stencil/core": "4.43.5",
59
68
  "@stencil/react-output-target": "^0.8.2",
60
69
  "@stencil/vue-output-target": "^0.8.8",
61
70
  "@storybook/addon-a11y": "^8.2.7",
@@ -66,23 +75,31 @@
66
75
  "@storybook/addons": "^7.6.17",
67
76
  "@storybook/blocks": "^8.1.11",
68
77
  "@storybook/test": "^8.2.7",
78
+ "@storybook/test-runner": "^0.19.1",
69
79
  "@storybook/web-components": "^8.1.11",
70
80
  "@storybook/web-components-webpack5": "^8.1.11",
71
81
  "@types/jest": "^29.5.6",
72
82
  "@types/node": "^16.18.11",
73
83
  "@whitespace/storybook-addon-html": "^6.1.1",
84
+ "axe-playwright": "^2.2.2",
85
+ "concurrently": "^8.2.2",
86
+ "eslint": "^9.39.5",
87
+ "eslint-plugin-jsx-a11y": "^6.10.2",
88
+ "http-server": "^14.1.1",
74
89
  "jest": "^29.7.0",
75
90
  "jest-cli": "^29.7.0",
76
91
  "lit": "^3.1.4",
77
- "prettier": "^3.3.3",
92
+ "prettier": "^3.9.6",
78
93
  "puppeteer": "^21.9.0",
79
94
  "react-syntax-highlighter": "^15.5.0",
80
95
  "standard-version": "^9.5.0",
81
- "storybook": "^8.1.11"
96
+ "storybook": "^8.1.11",
97
+ "typescript-eslint": "^8.67.0",
98
+ "wait-on": "^7.2.0"
82
99
  },
83
100
  "publishConfig": {
84
101
  "access": "public"
85
102
  },
86
103
  "license": "UNLICENSED",
87
- "gitHead": "9342a9c577cf09a8ed3cf779d528feb16b9e1304"
104
+ "gitHead": "c37cc307e4f1c8f618fd09aed47c782f644c0908"
88
105
  }
@@ -1,5 +0,0 @@
1
- 'use strict';
2
-
3
- const globalScripts = () => {};
4
-
5
- exports.globalScripts = globalScripts;