@dubai-design-system/components-js 5.0.3 → 5.1.1

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 (316) hide show
  1. package/CHANGELOG.md +233 -1
  2. package/MIGRATION.md +423 -0
  3. package/dist/cjs/dda-accordion.cjs.entry.js +12 -7
  4. package/dist/cjs/dda-alert.cjs.entry.js +20 -3
  5. package/dist/cjs/dda-attach-file.cjs.entry.js +24 -8
  6. package/dist/cjs/dda-avatar.cjs.entry.js +23 -12
  7. package/dist/cjs/dda-banner.cjs.entry.js +14 -5
  8. package/dist/cjs/dda-breadcrumb.cjs.entry.js +22 -10
  9. package/dist/cjs/dda-button.cjs.entry.js +16 -9
  10. package/dist/cjs/dda-checkbox.cjs.entry.js +5 -4
  11. package/dist/cjs/dda-chip.cjs.entry.js +8 -3
  12. package/dist/cjs/dda-credit-card.cjs.entry.js +5 -3
  13. package/dist/cjs/dda-creditcard-field.cjs.entry.js +26 -8
  14. package/dist/cjs/dda-dropdown.cjs.entry.js +31 -5
  15. package/dist/cjs/dda-footer.cjs.entry.js +9 -3
  16. package/dist/cjs/dda-header.cjs.entry.js +88 -8
  17. package/dist/cjs/dda-home-banner.cjs.entry.js +11 -5
  18. package/dist/cjs/dda-horizontal-stepper.cjs.entry.js +22 -5
  19. package/dist/cjs/dda-input.cjs.entry.js +17 -10
  20. package/dist/cjs/dda-link-button_2.cjs.entry.js +21 -13
  21. package/dist/cjs/dda-number-field.cjs.entry.js +20 -8
  22. package/dist/cjs/dda-pagination.cjs.entry.js +21 -11
  23. package/dist/cjs/dda-phonefield.cjs.entry.js +27 -9
  24. package/dist/cjs/dda-progressbar.cjs.entry.js +8 -3
  25. package/dist/cjs/dda-range-slider.cjs.entry.js +15 -3
  26. package/dist/cjs/dda-search-input.cjs.entry.js +27 -12
  27. package/dist/cjs/dda-segmented-tabs.cjs.entry.js +54 -6
  28. package/dist/cjs/dda-select.cjs.entry.js +40 -8
  29. package/dist/cjs/dda-sticky-footer.cjs.entry.js +20 -3
  30. package/dist/cjs/dda-tabs.cjs.entry.js +10 -4
  31. package/dist/cjs/dda-textarea.cjs.entry.js +22 -12
  32. package/dist/cjs/dda-toggle.cjs.entry.js +5 -4
  33. package/dist/cjs/dda-tooltip.cjs.entry.js +6 -4
  34. package/dist/cjs/dda-ui-card.cjs.entry.js +19 -2
  35. package/dist/cjs/dda-vertical-stepper.cjs.entry.js +23 -3
  36. package/dist/cjs/dda.cjs.js +2 -2
  37. package/dist/cjs/index-Bgd2iAET.js +2116 -0
  38. package/dist/cjs/loader.cjs.js +2 -2
  39. package/dist/cjs/unique-id-DahNGdQy.js +14 -0
  40. package/dist/collection/collection-manifest.json +1 -1
  41. package/dist/collection/components/dda-accordion/dda-accordion.js +16 -11
  42. package/dist/collection/components/dda-alert/dda-alert.js +74 -17
  43. package/dist/collection/components/dda-alert/dda-alert.stories.js +2 -8
  44. package/dist/collection/components/dda-attach-file/dda-attach-file.js +35 -19
  45. package/dist/collection/components/dda-attach-file/dda-attach-file.stories.js +0 -9
  46. package/dist/collection/components/dda-avatar/dda-avatar.js +53 -25
  47. package/dist/collection/components/dda-avatar/dda-avatar.stories.js +1 -1
  48. package/dist/collection/components/dda-banner/dda-banner.css +35 -0
  49. package/dist/collection/components/dda-banner/dda-banner.js +34 -5
  50. package/dist/collection/components/dda-breadcrumb/dda-breadcrumb.js +49 -12
  51. package/dist/collection/components/dda-button/dda-button.js +29 -22
  52. package/dist/collection/components/dda-checkbox/dda-checkbox.css +13 -0
  53. package/dist/collection/components/dda-checkbox/dda-checkbox.js +13 -12
  54. package/dist/collection/components/dda-checkbox/dda-checkbox.stories.js +0 -11
  55. package/dist/collection/components/dda-chip/dda-chip.js +34 -9
  56. package/dist/collection/components/dda-chip/dda-chip.stories.js +0 -11
  57. package/dist/collection/components/dda-credit-card/dda-credit-card.js +10 -8
  58. package/dist/collection/components/dda-creditcard-field/dda-creditcard-field.js +58 -23
  59. package/dist/collection/components/dda-creditcard-field/dda-creditcard-field.stories.js +1 -10
  60. package/dist/collection/components/dda-dropdown/dda-dropdown.js +90 -18
  61. package/dist/collection/components/dda-dropdown/dda-dropdown.stories.js +0 -4
  62. package/dist/collection/components/dda-footer/dda-footer.js +57 -10
  63. package/dist/collection/components/dda-footer/dda-footer.stories.js +5 -4
  64. package/dist/collection/components/dda-header/dda-header.css +11 -0
  65. package/dist/collection/components/dda-header/dda-header.js +232 -37
  66. package/dist/collection/components/dda-header/dda-header.stories.js +12 -21
  67. package/dist/collection/components/dda-home-banner/dda-home-banner.js +8 -2
  68. package/dist/collection/components/dda-home-banner/home-banner.css +23 -2
  69. package/dist/collection/components/dda-input/dda-input.js +47 -21
  70. package/dist/collection/components/dda-input/dda-input.stories.js +0 -13
  71. package/dist/collection/components/dda-link-button/dda-link-button.js +30 -23
  72. package/dist/collection/components/dda-number-field/dda-number-field.js +54 -22
  73. package/dist/collection/components/dda-number-field/dda-number-field.stories.js +0 -9
  74. package/dist/collection/components/dda-pagination/dda-pagination.js +95 -28
  75. package/dist/collection/components/dda-pagination/dda-pagination.stories.js +24 -24
  76. package/dist/collection/components/dda-phonefield/dda-phonefield.js +62 -24
  77. package/dist/collection/components/dda-phonefield/dda-phonefield.stories.js +0 -13
  78. package/dist/collection/components/dda-progressbar/dda-progressbar.js +13 -8
  79. package/dist/collection/components/dda-radiobutton/dda-radiobutton.css +156 -25
  80. package/dist/collection/components/dda-radiobutton/dda-radiobutton.js +13 -12
  81. package/dist/collection/components/dda-radiobutton/dda-radiobutton.stories.js +5 -16
  82. package/dist/collection/components/dda-range-slider/dda-range-slider.js +29 -17
  83. package/dist/collection/components/dda-search-input/dda-search-input.js +61 -26
  84. package/dist/collection/components/dda-search-input/dda-search-input.stories.js +0 -9
  85. package/dist/collection/components/dda-select/dda-select.js +78 -20
  86. package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.js +80 -43
  87. package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.stories.js +1 -1
  88. package/dist/collection/components/dda-tabs/dda-tabs.js +21 -15
  89. package/dist/collection/components/dda-tabs/dda-tabs.stories.js +3 -10
  90. package/dist/collection/components/dda-textarea/dda-textarea.js +33 -23
  91. package/dist/collection/components/dda-textarea/dda-textarea.stories.js +0 -9
  92. package/dist/collection/components/dda-toggle/dda-toggle.css +9 -0
  93. package/dist/collection/components/dda-toggle/dda-toggle.js +47 -8
  94. package/dist/collection/components/dda-toggle/dda-toggle.stories.js +10 -22
  95. package/dist/collection/components/dda-tooltip/dda-tooltip.js +9 -7
  96. package/dist/collection/components/dda-ui-card/dda-ui-card.js +55 -13
  97. package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.js +79 -11
  98. package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.css +4 -1
  99. package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.js +24 -6
  100. package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.stories.js +2 -2
  101. package/dist/collection/components/stepper/dda-vertical-stepper/dda-vertical-stepper.js +49 -6
  102. package/dist/collection/components/stepper/dda-vertical-stepper/dda-vertical-stepper.stories.js +2 -2
  103. package/dist/collection/global/global.css +152 -25
  104. package/dist/collection/global/input.css +56 -2
  105. package/dist/collection/storybook/component-api.js +15 -0
  106. package/dist/collection/utils/placeholder-color.js +89 -0
  107. package/dist/collection/utils/unique-id.js +10 -0
  108. package/dist/components/dda-accordion.js +1 -1
  109. package/dist/components/dda-alert.js +1 -1
  110. package/dist/components/dda-attach-file.js +1 -1
  111. package/dist/components/dda-avatar.js +1 -1
  112. package/dist/components/dda-banner.js +1 -1
  113. package/dist/components/dda-breadcrumb.js +1 -1
  114. package/dist/components/dda-button.js +1 -1
  115. package/dist/components/dda-checkbox.js +1 -1
  116. package/dist/components/dda-chip.js +1 -1
  117. package/dist/components/dda-credit-card.js +1 -1
  118. package/dist/components/dda-creditcard-field.js +1 -1
  119. package/dist/components/dda-dropdown.js +1 -1
  120. package/dist/components/dda-footer.js +1 -1
  121. package/dist/components/dda-header.js +1 -1
  122. package/dist/components/dda-home-banner.js +1 -1
  123. package/dist/components/dda-horizontal-stepper.js +1 -1
  124. package/dist/components/dda-input.js +1 -1
  125. package/dist/components/dda-link-button.js +1 -1
  126. package/dist/components/dda-number-field.js +1 -1
  127. package/dist/components/dda-pagination.js +1 -1
  128. package/dist/components/dda-phonefield.js +1 -1
  129. package/dist/components/dda-progressbar.js +1 -1
  130. package/dist/components/dda-radiobutton.js +1 -1
  131. package/dist/components/dda-range-slider.js +1 -1
  132. package/dist/components/dda-search-input.js +1 -1
  133. package/dist/components/dda-segmented-tabs.js +1 -1
  134. package/dist/components/dda-select.js +1 -1
  135. package/dist/components/dda-sticky-footer.js +1 -1
  136. package/dist/components/dda-tabs.js +1 -1
  137. package/dist/components/dda-textarea.js +1 -1
  138. package/dist/components/dda-toggle.js +1 -1
  139. package/dist/components/dda-tooltip.js +1 -1
  140. package/dist/components/dda-ui-card.js +1 -1
  141. package/dist/components/dda-vertical-stepper.js +1 -1
  142. package/dist/components/index.js +1 -1
  143. package/dist/components/p-B-I003EB.js +1 -0
  144. package/dist/components/p-Bc2V1U4_.js +1 -0
  145. package/dist/components/p-Bzqf-PpF.js +1 -0
  146. package/dist/components/p-D-CHT-as.js +1 -0
  147. package/dist/components/p-DJw8qV7U.js +1 -0
  148. package/dist/components/p-DpwQ9sGp.js +1 -0
  149. package/dist/dda/dda.css +2 -2
  150. package/dist/dda/dda.esm.js +1 -1
  151. package/dist/dda/p-03400387.entry.js +1 -0
  152. package/dist/dda/p-04bcda8a.entry.js +1 -0
  153. package/dist/dda/p-18a3d7b1.entry.js +1 -0
  154. package/dist/dda/p-1f7b8486.entry.js +1 -0
  155. package/dist/dda/p-3024288f.entry.js +1 -0
  156. package/dist/dda/p-41b8ed7d.entry.js +1 -0
  157. package/dist/dda/p-56f60336.entry.js +1 -0
  158. package/dist/dda/p-65776d80.entry.js +1 -0
  159. package/dist/dda/p-73611084.entry.js +1 -0
  160. package/dist/dda/p-7ad8cde9.entry.js +1 -0
  161. package/dist/dda/p-8134e59d.entry.js +1 -0
  162. package/dist/dda/p-8494fd9e.entry.js +1 -0
  163. package/dist/dda/p-876d55b2.entry.js +1 -0
  164. package/dist/dda/p-88d884a8.entry.js +1 -0
  165. package/dist/dda/p-8b25ae94.entry.js +1 -0
  166. package/dist/dda/p-8f376986.entry.js +1 -0
  167. package/dist/dda/p-90019b80.entry.js +1 -0
  168. package/dist/dda/p-92fa4777.entry.js +1 -0
  169. package/dist/dda/p-97431faf.entry.js +1 -0
  170. package/dist/dda/p-B-I003EB.js +1 -0
  171. package/dist/dda/p-D6L6zgH9.js +2 -0
  172. package/dist/dda/p-a5456de2.entry.js +1 -0
  173. package/dist/dda/p-aa7b4c13.entry.js +1 -0
  174. package/dist/dda/p-ad40eb27.entry.js +1 -0
  175. package/dist/dda/p-c055f0d2.entry.js +1 -0
  176. package/dist/dda/p-c42c8733.entry.js +1 -0
  177. package/dist/dda/p-c77282be.entry.js +1 -0
  178. package/dist/dda/p-ca64abe6.entry.js +1 -0
  179. package/dist/dda/p-ceca8088.entry.js +1 -0
  180. package/dist/dda/p-d6786b43.entry.js +1 -0
  181. package/dist/dda/p-e2113e42.entry.js +1 -0
  182. package/dist/dda/p-ee862207.entry.js +1 -0
  183. package/dist/dda/p-ef38e28b.entry.js +1 -0
  184. package/dist/dda/p-f43fb910.entry.js +1 -0
  185. package/dist/dda/p-fb4db977.entry.js +1 -0
  186. package/dist/esm/dda-accordion.entry.js +12 -7
  187. package/dist/esm/dda-alert.entry.js +20 -3
  188. package/dist/esm/dda-attach-file.entry.js +24 -8
  189. package/dist/esm/dda-avatar.entry.js +23 -12
  190. package/dist/esm/dda-banner.entry.js +14 -5
  191. package/dist/esm/dda-breadcrumb.entry.js +22 -10
  192. package/dist/esm/dda-button.entry.js +16 -9
  193. package/dist/esm/dda-checkbox.entry.js +5 -4
  194. package/dist/esm/dda-chip.entry.js +8 -3
  195. package/dist/esm/dda-credit-card.entry.js +5 -3
  196. package/dist/esm/dda-creditcard-field.entry.js +26 -8
  197. package/dist/esm/dda-dropdown.entry.js +31 -5
  198. package/dist/esm/dda-footer.entry.js +9 -3
  199. package/dist/esm/dda-header.entry.js +88 -8
  200. package/dist/esm/dda-home-banner.entry.js +11 -5
  201. package/dist/esm/dda-horizontal-stepper.entry.js +22 -5
  202. package/dist/esm/dda-input.entry.js +17 -10
  203. package/dist/esm/dda-link-button_2.entry.js +21 -13
  204. package/dist/esm/dda-number-field.entry.js +20 -8
  205. package/dist/esm/dda-pagination.entry.js +21 -11
  206. package/dist/esm/dda-phonefield.entry.js +27 -9
  207. package/dist/esm/dda-progressbar.entry.js +8 -3
  208. package/dist/esm/dda-range-slider.entry.js +15 -3
  209. package/dist/esm/dda-search-input.entry.js +27 -12
  210. package/dist/esm/dda-segmented-tabs.entry.js +54 -6
  211. package/dist/esm/dda-select.entry.js +40 -8
  212. package/dist/esm/dda-sticky-footer.entry.js +20 -3
  213. package/dist/esm/dda-tabs.entry.js +10 -4
  214. package/dist/esm/dda-textarea.entry.js +22 -12
  215. package/dist/esm/dda-toggle.entry.js +5 -4
  216. package/dist/esm/dda-tooltip.entry.js +6 -4
  217. package/dist/esm/dda-ui-card.entry.js +19 -2
  218. package/dist/esm/dda-vertical-stepper.entry.js +23 -3
  219. package/dist/esm/dda.js +3 -3
  220. package/dist/esm/index-D6L6zgH9.js +2106 -0
  221. package/dist/esm/loader.js +3 -3
  222. package/dist/esm/unique-id-B-I003EB.js +12 -0
  223. package/dist/types/components/dda-accordion/dda-accordion.d.ts +6 -0
  224. package/dist/types/components/dda-alert/dda-alert.d.ts +21 -0
  225. package/dist/types/components/dda-attach-file/dda-attach-file.d.ts +17 -0
  226. package/dist/types/components/dda-attach-file/dda-attach-file.stories.d.ts +0 -4
  227. package/dist/types/components/dda-avatar/dda-avatar.d.ts +20 -0
  228. package/dist/types/components/dda-banner/dda-banner.d.ts +5 -0
  229. package/dist/types/components/dda-breadcrumb/dda-breadcrumb.d.ts +12 -6
  230. package/dist/types/components/dda-button/dda-button.d.ts +15 -4
  231. package/dist/types/components/dda-checkbox/dda-checkbox.d.ts +11 -0
  232. package/dist/types/components/dda-checkbox/dda-checkbox.stories.d.ts +0 -10
  233. package/dist/types/components/dda-chip/dda-chip.d.ts +10 -0
  234. package/dist/types/components/dda-chip/dda-chip.stories.d.ts +0 -6
  235. package/dist/types/components/dda-credit-card/dda-credit-card.d.ts +7 -0
  236. package/dist/types/components/dda-creditcard-field/dda-creditcard-field.d.ts +24 -0
  237. package/dist/types/components/dda-creditcard-field/dda-creditcard-field.stories.d.ts +0 -6
  238. package/dist/types/components/dda-dropdown/dda-dropdown.d.ts +25 -0
  239. package/dist/types/components/dda-dropdown/dda-dropdown.stories.d.ts +0 -4
  240. package/dist/types/components/dda-footer/dda-footer.d.ts +13 -0
  241. package/dist/types/components/dda-header/dda-header.d.ts +62 -0
  242. package/dist/types/components/dda-header/dda-header.stories.d.ts +6 -0
  243. package/dist/types/components/dda-home-banner/dda-home-banner.d.ts +1 -0
  244. package/dist/types/components/dda-input/dda-input.d.ts +18 -0
  245. package/dist/types/components/dda-input/dda-input.stories.d.ts +0 -6
  246. package/dist/types/components/dda-link-button/dda-link-button.d.ts +14 -3
  247. package/dist/types/components/dda-number-field/dda-number-field.d.ts +21 -0
  248. package/dist/types/components/dda-number-field/dda-number-field.stories.d.ts +0 -6
  249. package/dist/types/components/dda-pagination/dda-pagination.d.ts +26 -0
  250. package/dist/types/components/dda-phonefield/dda-phonefield.d.ts +21 -0
  251. package/dist/types/components/dda-phonefield/dda-phonefield.stories.d.ts +0 -6
  252. package/dist/types/components/dda-progressbar/dda-progressbar.d.ts +7 -0
  253. package/dist/types/components/dda-radiobutton/dda-radiobutton.d.ts +11 -0
  254. package/dist/types/components/dda-radiobutton/dda-radiobutton.stories.d.ts +5 -15
  255. package/dist/types/components/dda-range-slider/dda-range-slider.d.ts +16 -0
  256. package/dist/types/components/dda-search-input/dda-search-input.d.ts +21 -0
  257. package/dist/types/components/dda-search-input/dda-search-input.stories.d.ts +0 -6
  258. package/dist/types/components/dda-select/dda-select.d.ts +23 -0
  259. package/dist/types/components/dda-sticky-footer/dda-sticky-footer.d.ts +46 -3
  260. package/dist/types/components/dda-tabs/dda-tabs.d.ts +12 -1
  261. package/dist/types/components/dda-tabs/dda-tabs.stories.d.ts +0 -4
  262. package/dist/types/components/dda-textarea/dda-textarea.d.ts +16 -0
  263. package/dist/types/components/dda-textarea/dda-textarea.stories.d.ts +0 -6
  264. package/dist/types/components/dda-toggle/dda-toggle.d.ts +11 -0
  265. package/dist/types/components/dda-toggle/dda-toggle.stories.d.ts +2 -12
  266. package/dist/types/components/dda-tooltip/dda-tooltip.d.ts +5 -0
  267. package/dist/types/components/dda-ui-card/dda-ui-card.d.ts +13 -1
  268. package/dist/types/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.d.ts +19 -2
  269. package/dist/types/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.d.ts +6 -0
  270. package/dist/types/components/stepper/dda-vertical-stepper/dda-vertical-stepper.d.ts +8 -0
  271. package/dist/types/components.d.ts +2373 -38
  272. package/dist/types/utils/placeholder-color.d.ts +10 -0
  273. package/dist/types/utils/unique-id.d.ts +6 -0
  274. package/package.json +4 -3
  275. package/readme.md +6 -0
  276. package/dist/cjs/index-CDUC0Pdj.js +0 -1986
  277. package/dist/components/p-9UeqjDnY.js +0 -1
  278. package/dist/components/p-CrTEb7xH.js +0 -1
  279. package/dist/components/p-DldlmGnP.js +0 -1
  280. package/dist/components/p-NvTw9Mx1.js +0 -1
  281. package/dist/components/p-i15-_er0.js +0 -1
  282. package/dist/dda/p-016e4090.entry.js +0 -1
  283. package/dist/dda/p-0229b303.entry.js +0 -1
  284. package/dist/dda/p-05a6f90d.entry.js +0 -1
  285. package/dist/dda/p-1c9a6035.entry.js +0 -1
  286. package/dist/dda/p-2c313105.entry.js +0 -1
  287. package/dist/dda/p-2cec7be6.entry.js +0 -1
  288. package/dist/dda/p-2f4ace4c.entry.js +0 -1
  289. package/dist/dda/p-360a0577.entry.js +0 -1
  290. package/dist/dda/p-3e49128d.entry.js +0 -1
  291. package/dist/dda/p-3fa27728.entry.js +0 -1
  292. package/dist/dda/p-43e1c12f.entry.js +0 -1
  293. package/dist/dda/p-4428417d.entry.js +0 -1
  294. package/dist/dda/p-44ce832e.entry.js +0 -1
  295. package/dist/dda/p-560a3f0c.entry.js +0 -1
  296. package/dist/dda/p-5712bbd9.entry.js +0 -1
  297. package/dist/dda/p-626d7e7b.entry.js +0 -1
  298. package/dist/dda/p-68008c64.entry.js +0 -1
  299. package/dist/dda/p-6f3d9f78.entry.js +0 -1
  300. package/dist/dda/p-79db1218.entry.js +0 -1
  301. package/dist/dda/p-84911fab.entry.js +0 -1
  302. package/dist/dda/p-90d9648b.entry.js +0 -1
  303. package/dist/dda/p-91040abe.entry.js +0 -1
  304. package/dist/dda/p-Cq6A4mXg.js +0 -2
  305. package/dist/dda/p-a1421a54.entry.js +0 -1
  306. package/dist/dda/p-a22b1c56.entry.js +0 -1
  307. package/dist/dda/p-aa0e9035.entry.js +0 -1
  308. package/dist/dda/p-b2981646.entry.js +0 -1
  309. package/dist/dda/p-c1f45887.entry.js +0 -1
  310. package/dist/dda/p-c50e1141.entry.js +0 -1
  311. package/dist/dda/p-d8a9cab1.entry.js +0 -1
  312. package/dist/dda/p-dd966009.entry.js +0 -1
  313. package/dist/dda/p-ed099201.entry.js +0 -1
  314. package/dist/dda/p-f4bd2b2e.entry.js +0 -1
  315. package/dist/dda/p-fc30c60e.entry.js +0 -1
  316. package/dist/esm/index-Cq6A4mXg.js +0 -1976
@@ -714,7 +714,8 @@
714
714
  .quick-links-wrap {
715
715
  width: 100%;
716
716
  position: absolute;
717
- bottom: 45px;
717
+ /* dda-sticky-footer sets --dda-sticky-footer-height; the cards sit above the fixed bar. */
718
+ bottom: calc(45px + var(--dda-sticky-footer-height, 0px));
718
719
  z-index: 1;
719
720
  }
720
721
 
@@ -764,6 +765,14 @@
764
765
  margin-bottom: 15px;
765
766
  color: var(--dda-on-surface-variant-40);
766
767
  }
768
+ .quick-links .link-item i {
769
+ display: block;
770
+ width: fit-content;
771
+ font-size: 35px;
772
+ line-height: 1;
773
+ margin-bottom: 15px;
774
+ color: var(--dda-on-surface-variant-40);
775
+ }
767
776
  .quick-links .link-item .title {
768
777
  display: block;
769
778
  font-size: var(--dda-fs-title-sm);
@@ -785,6 +794,8 @@
785
794
  }
786
795
  .quick-links-wrap {
787
796
  position: relative;
797
+ /* In normal flow the cards do not sit over the fixed bar, so keep the original offset. */
798
+ bottom: 45px;
788
799
  }
789
800
  .quick-links-wrap .quick-links {
790
801
  display: grid;
@@ -804,7 +815,10 @@
804
815
  }
805
816
  } */
806
817
 
807
- @media only screen and (orientation: landscape) and (max-width: 1600px) {
818
+ /* Short landscape screens (a phone or small tablet on its side) cannot fit the display-size
819
+ slide title in the full-height banner. This was keyed on max-width: 1600px, which also caught
820
+ ordinary laptop screens and shrank the title there to 1.2rem. */
821
+ @media only screen and (orientation: landscape) and (max-height: 600px) {
808
822
  .slide-content h2 {
809
823
  font-size: 1.2rem;
810
824
  }
@@ -812,6 +826,8 @@
812
826
  font-size: 1rem;
813
827
  margin-bottom: 5px;
814
828
  }
829
+ }
830
+ @media only screen and (orientation: landscape) and (max-width: 1600px) {
815
831
  .quick-links .link-item {
816
832
  padding: 13px;
817
833
  height: 128px;
@@ -820,6 +836,10 @@
820
836
  height: 20px;
821
837
  margin-bottom: 5px;
822
838
  }
839
+ .quick-links .link-item i {
840
+ font-size: 20px;
841
+ margin-bottom: 5px;
842
+ }
823
843
  .quick-links .link-item .title {
824
844
  font-size: 15px;
825
845
  }
@@ -831,7 +851,7 @@
831
851
  .dda-head-logo .govt-logo img {
832
852
  height: 39px;
833
853
  }
834
- .transparent .dda-header::before {
854
+ .transparent dda-header:not(.dda-scrolled) .dda-header::before {
835
855
  height: 100%;
836
856
  }
837
857
  }
@@ -2054,6 +2074,20 @@
2054
2074
  transition: transform 300ms ease-in-out;
2055
2075
  }
2056
2076
 
2077
+ /* WCAG 2.4.11: the fixed bar covers the bottom of the viewport. dda-sticky-footer publishes
2078
+ its height as --dda-sticky-footer-height (and removes it when it is removed), so:
2079
+ - scroll-padding-bottom keeps focused and scrolled-to elements above the bar, the same way
2080
+ scroll-padding-top in dda-header.css keeps them below the fixed header;
2081
+ - body padding-bottom lets the end of the page scroll clear of the bar.
2082
+ Without the component the variable is not set and both are 0. */
2083
+ :root {
2084
+ scroll-padding-bottom: var(--dda-sticky-footer-height, 0px);
2085
+ }
2086
+
2087
+ body {
2088
+ padding-bottom: var(--dda-sticky-footer-height, 0px);
2089
+ }
2090
+
2057
2091
  /* dda-sticky-footer toggles this class off its own scroll-direction state
2058
2092
  (see dda-sticky-footer.tsx handleScroll) to hide the bar while scrolling
2059
2093
  down and bring it back while scrolling up. Same transition idiom as
@@ -2145,11 +2179,23 @@
2145
2179
  box-shadow: none;
2146
2180
  }
2147
2181
 
2148
- .foot-menu,
2149
- .foot-icon-btn a span {
2182
+ .foot-menu {
2150
2183
  display: none;
2151
2184
  }
2152
2185
 
2186
+ /* Hide the icon text visually only: it is the link's name when the image is decorative. */
2187
+ .foot-icon-btn a span {
2188
+ position: absolute;
2189
+ width: 1px;
2190
+ height: 1px;
2191
+ margin: -1px;
2192
+ padding: 0;
2193
+ overflow: hidden;
2194
+ clip: rect(0, 0, 0, 0);
2195
+ white-space: nowrap;
2196
+ border: 0;
2197
+ }
2198
+
2153
2199
  .dda-footer-item ul li {
2154
2200
  padding: 0 8px;
2155
2201
  border: 0px !important;
@@ -2479,15 +2525,17 @@
2479
2525
  position: relative;
2480
2526
  }
2481
2527
 
2482
- .transparent .dda-header {
2528
+ .transparent dda-header:not(.dda-scrolled) .dda-header {
2483
2529
  background: transparent;
2484
2530
  box-shadow: none;
2485
2531
  }
2486
2532
 
2487
- .transparent .dda-header::before {
2533
+ .transparent dda-header:not(.dda-scrolled) .dda-header::before {
2488
2534
  content: "";
2489
2535
  width: 100%;
2490
2536
  height: 250px;
2537
+ /* Decoration only: it reaches below the header and must not catch taps on the page. */
2538
+ pointer-events: none;
2491
2539
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.4) 63.02%, rgba(0, 0, 0, 0) 100%);
2492
2540
  position: absolute;
2493
2541
  top: 0;
@@ -2513,13 +2561,13 @@
2513
2561
  .entt-logo img {
2514
2562
  height: 44px;
2515
2563
  }
2516
- .transparent .logo-colored{
2564
+ .transparent dda-header:not(.dda-scrolled) .logo-colored{
2517
2565
  display: none;
2518
2566
  }
2519
2567
  .logo-white{
2520
2568
  display: none;
2521
2569
  }
2522
- .transparent .logo-white{
2570
+ .transparent dda-header:not(.dda-scrolled) .logo-white{
2523
2571
  display: block;
2524
2572
  }
2525
2573
  .dda-header.white .dda-head-logo .logo-white,
@@ -2639,9 +2687,9 @@
2639
2687
  background-color: var(--dda-color-primary-40);
2640
2688
  }
2641
2689
 
2642
- .transparent .hamburger-menu-btn::before,
2643
- .transparent .hamburger-menu-btn::after,
2644
- .transparent .hamburger-line {
2690
+ .transparent dda-header:not(.dda-scrolled) .hamburger-menu-btn::before,
2691
+ .transparent dda-header:not(.dda-scrolled) .hamburger-menu-btn::after,
2692
+ .transparent dda-header:not(.dda-scrolled) .hamburger-line {
2645
2693
  background-color: var(--dda-neutral-100) !important;
2646
2694
  }
2647
2695
 
@@ -2705,7 +2753,7 @@
2705
2753
  color: var(--dda-color-primary-40);
2706
2754
  }
2707
2755
 
2708
- .transparent .dda-mega-menu>li>a {
2756
+ .transparent dda-header:not(.dda-scrolled) .dda-mega-menu>li>a {
2709
2757
  color: var(--dda-neutral-100);
2710
2758
  }
2711
2759
 
@@ -2722,7 +2770,7 @@
2722
2770
  transition: all 0.25s ease-in-out;
2723
2771
  }
2724
2772
 
2725
- .transparent .dda-mega-menu>li>a::after {
2773
+ .transparent dda-header:not(.dda-scrolled) .dda-mega-menu>li>a::after {
2726
2774
  background-color: var(--dda-neutral-100);
2727
2775
  }
2728
2776
 
@@ -2836,8 +2884,8 @@
2836
2884
  gap: 10px;
2837
2885
  }
2838
2886
 
2839
- .transparent .dda-toolbar-menu ul li .tool-btn,
2840
- .transparent .dda-toolbar-menu-sidemenu ul li .tool-btn {
2887
+ .transparent dda-header:not(.dda-scrolled) .dda-toolbar-menu ul li .tool-btn,
2888
+ .transparent dda-header:not(.dda-scrolled) .dda-toolbar-menu-sidemenu ul li .tool-btn {
2841
2889
  background-color: var(--dda-neutral-17);
2842
2890
  color: var(--dda-neutral-100);
2843
2891
  }
@@ -2858,10 +2906,10 @@
2858
2906
  color: var(--dda-on-surface-variant-30);
2859
2907
  }
2860
2908
 
2861
- .transparent .dda-toolbar-menu ul li .tool-btn i,
2862
- .transparent .dda-toolbar-menu ul li .tool-btn svg,
2863
- .transparent .dda-toolbar-menu-sidemenu ul li .tool-btn i,
2864
- .transparent .dda-toolbar-menu-sidemenu ul li .tool-btn svg {
2909
+ .transparent dda-header:not(.dda-scrolled) .dda-toolbar-menu ul li .tool-btn i,
2910
+ .transparent dda-header:not(.dda-scrolled) .dda-toolbar-menu ul li .tool-btn svg,
2911
+ .transparent dda-header:not(.dda-scrolled) .dda-toolbar-menu-sidemenu ul li .tool-btn i,
2912
+ .transparent dda-header:not(.dda-scrolled) .dda-toolbar-menu-sidemenu ul li .tool-btn svg {
2865
2913
  color: var(--dda-neutral-100);
2866
2914
  }
2867
2915
  .dda-search{
@@ -2907,10 +2955,10 @@
2907
2955
  .dda-search input[type="text"]::placeholder{
2908
2956
  color: var(--dda-on-surface-0);
2909
2957
  }
2910
- .transparent .dda-search input[type="text"]::-ms-input-placeholder {
2958
+ .transparent dda-header:not(.dda-scrolled) .dda-search input[type="text"]::-ms-input-placeholder {
2911
2959
  color: var(--dda-neutral-100);
2912
2960
  }
2913
- .transparent .dda-search input[type="text"]::placeholder{
2961
+ .transparent dda-header:not(.dda-scrolled) .dda-search input[type="text"]::placeholder{
2914
2962
  color: var(--dda-neutral-100);
2915
2963
  }
2916
2964
 
@@ -2933,6 +2981,8 @@
2933
2981
  gap: 15px;
2934
2982
  padding: 32px;
2935
2983
  overflow-y: auto;
2984
+ /* Reaching the end of the menu must not start scrolling the locked page. */
2985
+ overscroll-behavior: contain;
2936
2986
  height: 100%;
2937
2987
  }
2938
2988
 
@@ -3202,8 +3252,8 @@ ul.main_side_menu .main_sub_menu .main_sub_menu .main_sub_menu {
3202
3252
  fill: var(--dda-on-surface-variant-30);
3203
3253
  }
3204
3254
 
3205
- .transparent .dda-mobile-search button i,
3206
- .transparent .dda-mobile-search button svg {
3255
+ .transparent dda-header:not(.dda-scrolled) .dda-mobile-search button i,
3256
+ .transparent dda-header:not(.dda-scrolled) .dda-mobile-search button svg {
3207
3257
  color: var(--dda-neutral-100);
3208
3258
  }
3209
3259
 
@@ -3214,7 +3264,7 @@ ul.main_side_menu .main_sub_menu .main_sub_menu .main_sub_menu {
3214
3264
 
3215
3265
 
3216
3266
  @media screen and (max-width: 767px) {
3217
- .transparent .dda-header::before {
3267
+ .transparent dda-header:not(.dda-scrolled) .dda-header::before {
3218
3268
  height: 130px;
3219
3269
  }
3220
3270
  .dda-header{
@@ -3442,6 +3492,76 @@ ul.main_side_menu .main_sub_menu .main_sub_menu .main_sub_menu {
3442
3492
 
3443
3493
 
3444
3494
 
3495
+ /* Mobile search: the search button opens this panel under the header. */
3496
+ .dda-mobile-search-panel {
3497
+ position: absolute;
3498
+ top: 100%;
3499
+ inset-inline: 0;
3500
+ padding: 12px 16px;
3501
+ background: var(--dda-surface-100);
3502
+ box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.12);
3503
+ z-index: 8;
3504
+ }
3505
+
3506
+ .dda-mobile-search-panel[hidden] {
3507
+ display: none;
3508
+ }
3509
+
3510
+ .dda-mobile-search-form {
3511
+ position: relative;
3512
+ display: flex;
3513
+ align-items: center;
3514
+ gap: 8px;
3515
+ border: 1px solid var(--dda-surface-90);
3516
+ border-radius: 100px;
3517
+ padding-inline-start: 12px;
3518
+ }
3519
+
3520
+ .dda-mobile-search-form:focus-within {
3521
+ box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgba(0, 0, 0, 0.65);
3522
+ }
3523
+
3524
+ .dda-mobile-search-form > i {
3525
+ font-size: 24px;
3526
+ color: var(--dda-on-surface-variant-30);
3527
+ }
3528
+
3529
+ .dda-mobile-search-form input {
3530
+ flex: 1;
3531
+ min-width: 0;
3532
+ height: 44px;
3533
+ border: 0;
3534
+ background: transparent;
3535
+ color: var(--dda-on-surface-0);
3536
+ font-size: var(--dda-fs-body-lg);
3537
+ outline: 0;
3538
+ }
3539
+
3540
+ .dda-mobile-search-close {
3541
+ width: 44px;
3542
+ height: 44px;
3543
+ flex-shrink: 0;
3544
+ display: inline-flex;
3545
+ align-items: center;
3546
+ justify-content: center;
3547
+ border: 0;
3548
+ border-radius: 100px;
3549
+ background: transparent;
3550
+ color: var(--dda-on-surface-variant-30);
3551
+ }
3552
+
3553
+ .dda-mobile-search-close:focus-visible {
3554
+ outline: none;
3555
+ box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px rgba(0, 0, 0, 0.65);
3556
+ }
3557
+
3558
+ /* The panel only exists where the mobile search button is shown. */
3559
+ @media screen and (min-width: 768px) {
3560
+ .dda-mobile-search-panel {
3561
+ display: none;
3562
+ }
3563
+ }
3564
+
3445
3565
 
3446
3566
  :root{
3447
3567
  --font-family-main: 'Dubai', sans-serif;
@@ -3504,6 +3624,13 @@ a:hover {
3504
3624
  text-decoration: none !important;
3505
3625
  }
3506
3626
 
3627
+ /* WCAG 1.4.1: links in running text keep an underline so color is not the only cue.
3628
+ Classed links (buttons, cards) and list links (menus) stay undecorated. */
3629
+ :where(p, td, dd, blockquote, figcaption) a:not([class]),
3630
+ :where(p, td, dd, blockquote, figcaption) a:not([class]):hover {
3631
+ text-decoration: underline !important;
3632
+ }
3633
+
3507
3634
  button {
3508
3635
  cursor: pointer;
3509
3636
  }
@@ -3722,6 +3849,10 @@ ul {
3722
3849
  }
3723
3850
  .dda-radio-container .radio-circle{
3724
3851
  display: inline-block;
3852
+ /* The md size; without it the circle is 0x0 when no size is set. The size rules below override it. */
3853
+ width: 21px;
3854
+ height: 21px;
3855
+ flex-shrink: 0;
3725
3856
  margin-top: 2px;
3726
3857
  background: var(--dda-neutral-100);
3727
3858
  border-radius: 50px;
@@ -1,6 +1,7 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  export class DdaRadiobutton {
3
3
  constructor() {
4
+ /** Extra class suffix. The value is added as `dda-radio-<value>` on the container. */
4
5
  this.custom_class = '';
5
6
  }
6
7
  render() {
@@ -12,7 +13,7 @@ export class DdaRadiobutton {
12
13
  this.radio_status ? `dda-radio-${this.radio_status}` : '',
13
14
  this.component_mode,
14
15
  ].filter(Boolean).join(' ');
15
- return (h(Host, { key: 'a8c20b31595f50e03be9c176ada7abe31072a92e' }, h("div", { key: '8fa4b0fc9b43d3c3e7856b48a6d48a5a27ee3d08', class: radiobuttonClass }, h("input", { key: 'c82a834dfdfce765ca8f0bc79965b33c8609cf59', "aria-label": this.aria_label, type: "radio", id: this.input_id, name: this.group_name, checked: this.checked }), h("label", { key: 'dcdda4589a603a09992e1b43cfc1c2c33b3a9f31', htmlFor: this.input_id }, h("span", { key: 'f954a5e51ee26ae675d7c10af9b7a8c137f0ea76', class: "radio-circle" }), h("p", { key: 'af562e56bbc53e7e92358afef1c0fb42be24c717' }, h("span", { key: 'c66e2473d0b3a38b460bfc6d84a8d3cecda2c756', class: "radio-title" }, this.title_text), this.supporting && h("span", { key: '9b75dd46d93f4e17ce114200851b8bc019e7b27c', class: "radio-supporting" }, this.supporting))))));
16
+ return (h(Host, { key: '3ded227310410ca3089d2fb5e7bbf703c7265a77' }, h("div", { key: 'e3811560e5a82a24cba3b238c787350887a36236', class: radiobuttonClass }, h("input", { key: 'a36c5facb630f742dd56d71837995a17629731b7', "aria-label": this.aria_label, type: "radio", id: this.input_id, name: this.group_name, checked: this.checked }), h("label", { key: '60c40663b7259d7582043639a3b9a25b484898a1', htmlFor: this.input_id }, h("span", { key: '652a643169f96d317df1901cff19368466f8ad43', class: "radio-circle" }), h("p", { key: 'e6bdad31f55802fc2da9b78c603063382a18826c' }, h("span", { key: '0cca8461aa8c5a00dbde62fd42b1fc17715798d5', class: "radio-title" }, this.title_text), this.supporting && h("span", { key: '56bc7d2c636a1a106bed8120238138963933f6a0', class: "radio-supporting" }, this.supporting))))));
16
17
  }
17
18
  static get is() { return "dda-radiobutton"; }
18
19
  static get originalStyleUrls() {
@@ -39,7 +40,7 @@ export class DdaRadiobutton {
39
40
  "optional": false,
40
41
  "docs": {
41
42
  "tags": [],
42
- "text": ""
43
+ "text": "Label shown next to the radio button."
43
44
  },
44
45
  "getter": false,
45
46
  "setter": false,
@@ -58,7 +59,7 @@ export class DdaRadiobutton {
58
59
  "optional": true,
59
60
  "docs": {
60
61
  "tags": [],
61
- "text": ""
62
+ "text": "Secondary text shown under the title."
62
63
  },
63
64
  "getter": false,
64
65
  "setter": false,
@@ -77,7 +78,7 @@ export class DdaRadiobutton {
77
78
  "optional": true,
78
79
  "docs": {
79
80
  "tags": [],
80
- "text": ""
81
+ "text": "`name` of the inner radio input. Give all radio buttons in one group the same value."
81
82
  },
82
83
  "getter": false,
83
84
  "setter": false,
@@ -96,7 +97,7 @@ export class DdaRadiobutton {
96
97
  "optional": true,
97
98
  "docs": {
98
99
  "tags": [],
99
- "text": ""
100
+ "text": "`id` of the inner radio input. The label points to it, so set a unique value to make the label clickable."
100
101
  },
101
102
  "getter": false,
102
103
  "setter": false,
@@ -115,7 +116,7 @@ export class DdaRadiobutton {
115
116
  "optional": false,
116
117
  "docs": {
117
118
  "tags": [],
118
- "text": ""
119
+ "text": "Checked state of the inner input. Read the current state from the input or its `change` event."
119
120
  },
120
121
  "getter": false,
121
122
  "setter": false,
@@ -134,7 +135,7 @@ export class DdaRadiobutton {
134
135
  "optional": true,
135
136
  "docs": {
136
137
  "tags": [],
137
- "text": ""
138
+ "text": "Status: `disabled` shows the disabled style and blocks pointer clicks."
138
139
  },
139
140
  "getter": false,
140
141
  "setter": false,
@@ -153,7 +154,7 @@ export class DdaRadiobutton {
153
154
  "optional": true,
154
155
  "docs": {
155
156
  "tags": [],
156
- "text": ""
157
+ "text": "Size: `sm`, `md` or `lg`."
157
158
  },
158
159
  "getter": false,
159
160
  "setter": false,
@@ -172,7 +173,7 @@ export class DdaRadiobutton {
172
173
  "optional": true,
173
174
  "docs": {
174
175
  "tags": [],
175
- "text": ""
176
+ "text": "Style variant: `outlined` or `faded`. Leave empty (or `normal`) for the default style."
176
177
  },
177
178
  "getter": false,
178
179
  "setter": false,
@@ -191,7 +192,7 @@ export class DdaRadiobutton {
191
192
  "optional": true,
192
193
  "docs": {
193
194
  "tags": [],
194
- "text": ""
195
+ "text": "Extra class suffix. The value is added as `dda-radio-<value>` on the container."
195
196
  },
196
197
  "getter": false,
197
198
  "setter": false,
@@ -211,7 +212,7 @@ export class DdaRadiobutton {
211
212
  "optional": true,
212
213
  "docs": {
213
214
  "tags": [],
214
- "text": ""
215
+ "text": "Theme override class for the radio button, e.g. `light-mode`."
215
216
  },
216
217
  "getter": false,
217
218
  "setter": false,
@@ -230,7 +231,7 @@ export class DdaRadiobutton {
230
231
  "optional": true,
231
232
  "docs": {
232
233
  "tags": [],
233
- "text": ""
234
+ "text": "Accessible name of the inner radio input."
234
235
  },
235
236
  "getter": false,
236
237
  "setter": false,
@@ -19,7 +19,6 @@ To use the \`dda-radiobutton\` component, pass the following props:
19
19
  custom_class=""
20
20
  component_mode=""
21
21
  aria_label="radio-button"
22
- onclick="console.log('clicked')"
23
22
  ></dda-radiobutton>
24
23
  \`\`\`
25
24
  `,
@@ -39,10 +38,6 @@ To use the \`dda-radiobutton\` component, pass the following props:
39
38
  control: 'text',
40
39
  description: 'default',
41
40
  },
42
- labelfor: {
43
- control: 'text',
44
- description: 'default',
45
- },
46
41
  input_id: {
47
42
  control: 'text',
48
43
  description: 'default',
@@ -70,16 +65,12 @@ To use the \`dda-radiobutton\` component, pass the following props:
70
65
  aria_label: {
71
66
  control: { type: 'text' },
72
67
  description: 'Aria label for the radio button',
73
- radio_status: {
74
- control: { type: 'select' },
75
- options: ['normal', 'disabled'],
76
- },
77
- onclick: {
78
- control: { type: 'text' },
79
- description: 'event handler for radio button',
80
- }
81
68
  },
82
- }
69
+ radio_status: {
70
+ control: { type: 'select' },
71
+ options: ['normal', 'disabled'],
72
+ },
73
+ },
83
74
  };
84
75
  const Template = (args) => {
85
76
  const attributes = Object.entries(args)
@@ -100,7 +91,6 @@ DefaultRadio.args = {
100
91
  custom_class: '',
101
92
  component_mode: '',
102
93
  aria_label: 'radio-button',
103
- onclick: '',
104
94
  };
105
95
  export const CheckedRadio = Template.bind({});
106
96
  CheckedRadio.args = {
@@ -114,5 +104,4 @@ CheckedRadio.args = {
114
104
  custom_class: '',
115
105
  component_mode: '',
116
106
  aria_label: 'radio-button',
117
- onclick: '',
118
107
  };