@dubai-design-system/components-js 5.1.0 → 5.2.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 (262) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/MIGRATION.md +76 -15
  3. package/dist/cjs/dda-accordion.cjs.entry.js +2 -2
  4. package/dist/cjs/dda-alert.cjs.entry.js +4 -4
  5. package/dist/cjs/dda-attach-file.cjs.entry.js +2 -2
  6. package/dist/cjs/dda-avatar.cjs.entry.js +3 -3
  7. package/dist/cjs/dda-banner.cjs.entry.js +2 -2
  8. package/dist/cjs/dda-breadcrumb.cjs.entry.js +2 -2
  9. package/dist/cjs/dda-button.cjs.entry.js +2 -2
  10. package/dist/cjs/dda-checkbox.cjs.entry.js +2 -2
  11. package/dist/cjs/dda-chip.cjs.entry.js +2 -2
  12. package/dist/cjs/dda-credit-card.cjs.entry.js +2 -2
  13. package/dist/cjs/dda-creditcard-field.cjs.entry.js +3 -3
  14. package/dist/cjs/dda-dropdown.cjs.entry.js +3 -3
  15. package/dist/cjs/dda-footer.cjs.entry.js +2 -2
  16. package/dist/cjs/dda-header.cjs.entry.js +22 -12
  17. package/dist/cjs/dda-home-banner.cjs.entry.js +3 -3
  18. package/dist/cjs/dda-horizontal-stepper.cjs.entry.js +3 -3
  19. package/dist/cjs/dda-input.cjs.entry.js +3 -3
  20. package/dist/cjs/dda-link-button.cjs.entry.js +51 -0
  21. package/dist/cjs/dda-link-button_2.cjs.entry.js +3 -3
  22. package/dist/cjs/dda-number-field.cjs.entry.js +2 -2
  23. package/dist/cjs/dda-pagination.cjs.entry.js +3 -3
  24. package/dist/cjs/dda-phonefield.cjs.entry.js +2 -2
  25. package/dist/cjs/dda-progressbar.cjs.entry.js +2 -2
  26. package/dist/cjs/dda-radiobutton.cjs.entry.js +27 -0
  27. package/dist/cjs/dda-range-slider.cjs.entry.js +1 -1
  28. package/dist/cjs/dda-search-input.cjs.entry.js +2 -2
  29. package/dist/cjs/dda-segmented-tabs.cjs.entry.js +4 -4
  30. package/dist/cjs/dda-select.cjs.entry.js +5 -3
  31. package/dist/cjs/dda-sticky-footer.cjs.entry.js +14 -3
  32. package/dist/cjs/dda-tabs.cjs.entry.js +4 -4
  33. package/dist/cjs/dda-textarea.cjs.entry.js +16239 -1401
  34. package/dist/cjs/dda-toggle.cjs.entry.js +3 -3
  35. package/dist/cjs/dda-tooltip.cjs.entry.js +3 -3
  36. package/dist/cjs/dda-ui-card.cjs.entry.js +3 -3
  37. package/dist/cjs/dda-vertical-stepper.cjs.entry.js +2 -2
  38. package/dist/cjs/dda.cjs.js +30 -3
  39. package/dist/cjs/index-DXyiIgGK.js +4637 -0
  40. package/dist/cjs/{index-Dm7JbFAh.js → index-Na_7EWDR.js} +1 -1
  41. package/dist/cjs/index.cjs.js +10 -0
  42. package/dist/cjs/loader.cjs.js +2 -2
  43. package/dist/collection/components/dda-alert/dda-alert.stories.js +27 -20
  44. package/dist/collection/components/dda-header/dda-header.js +34 -4
  45. package/dist/collection/components/dda-header/dda-header.stories.js +21 -0
  46. package/dist/collection/components/dda-home-banner/home-banner.css +14 -3
  47. package/dist/collection/components/dda-input/dda-input.js +20 -1
  48. package/dist/collection/components/dda-radiobutton/dda-radiobutton.css +165 -27
  49. package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.js +16 -5
  50. package/dist/collection/components/dda-sticky-footer/dda-sticky-footer.stories.js +12 -1
  51. package/dist/collection/components/dda-tabs/dda-tabs.js +1 -1
  52. package/dist/collection/components/dda-textarea/dda-textarea.js +2 -2
  53. package/dist/collection/components/dda-toggle/dda-toggle.js +1 -1
  54. package/dist/collection/components/dda-tooltip/dda-tooltip.js +1 -1
  55. package/dist/collection/components/dda-ui-card/dda-ui-card.js +1 -1
  56. package/dist/collection/components/segmented-groups/dda-segmented-tabs/dda-segmented-tabs.js +1 -1
  57. package/dist/collection/components/stepper/dda-horizontal-stepper/dda-horizontal-stepper.js +1 -1
  58. package/dist/collection/components/stepper/dda-vertical-stepper/dda-vertical-stepper.js +1 -1
  59. package/dist/collection/global/global.css +165 -27
  60. package/dist/components/dda-accordion.js +59 -1
  61. package/dist/components/dda-alert.js +94 -1
  62. package/dist/components/dda-attach-file.js +138 -1
  63. package/dist/components/dda-avatar.js +107 -1
  64. package/dist/components/dda-banner.js +57 -1
  65. package/dist/components/dda-breadcrumb.js +66 -1
  66. package/dist/components/dda-button.js +6 -1
  67. package/dist/components/dda-button2.js +80 -0
  68. package/dist/components/dda-checkbox.js +59 -1
  69. package/dist/components/dda-chip.js +55 -1
  70. package/dist/components/dda-credit-card.js +54 -1
  71. package/dist/components/dda-creditcard-field.js +133 -1
  72. package/dist/components/dda-dropdown.js +113 -1
  73. package/dist/components/dda-footer.js +72 -1
  74. package/dist/components/dda-header.js +367 -1
  75. package/dist/components/dda-home-banner.js +249 -1
  76. package/dist/components/dda-horizontal-stepper.js +69 -1
  77. package/dist/components/dda-input.js +92 -1
  78. package/dist/components/dda-link-button.js +6 -1
  79. package/dist/components/dda-link-button2.js +81 -0
  80. package/dist/components/dda-number-field.js +127 -1
  81. package/dist/components/dda-pagination.js +133 -1
  82. package/dist/components/dda-phonefield.js +316 -1
  83. package/dist/components/dda-progressbar.js +58 -1
  84. package/dist/components/dda-radiobutton.js +6 -1
  85. package/dist/components/dda-radiobutton2.js +54 -0
  86. package/dist/components/dda-range-slider.js +93 -1
  87. package/dist/components/dda-search-input.js +102 -1
  88. package/dist/components/dda-segmented-tabs.js +133 -1
  89. package/dist/components/dda-select.js +219 -1
  90. package/dist/components/dda-sticky-footer.js +132 -1
  91. package/dist/components/dda-tabs.js +91 -1
  92. package/dist/components/dda-textarea.js +31277 -1
  93. package/dist/components/dda-toggle.js +55 -1
  94. package/dist/components/dda-tooltip.js +6 -1
  95. package/dist/components/dda-tooltip2.js +70 -0
  96. package/dist/components/dda-ui-card.js +71 -1
  97. package/dist/components/dda-vertical-stepper.js +72 -1
  98. package/dist/components/index.js +34 -1
  99. package/dist/components/index2.js +4622 -0
  100. package/dist/components/p-C2Cs3ruo.js +1 -0
  101. package/dist/components/p-C520q-ka.js +1 -0
  102. package/dist/components/p-CZO9Eawo.js +1 -0
  103. package/dist/components/p-D7sJgBDk.js +1 -0
  104. package/dist/components/p-_-I_65FG.js +1 -0
  105. package/dist/components/unique-id.js +12 -0
  106. package/dist/dda/dda-accordion.entry.js +31 -0
  107. package/dist/dda/dda-alert.entry.js +57 -0
  108. package/dist/dda/dda-attach-file.entry.js +102 -0
  109. package/dist/dda/dda-avatar.entry.js +70 -0
  110. package/dist/dda/dda-banner.entry.js +30 -0
  111. package/dist/dda/dda-breadcrumb.entry.js +40 -0
  112. package/dist/dda/dda-button.entry.js +47 -0
  113. package/dist/dda/dda-checkbox.entry.js +27 -0
  114. package/dist/dda/dda-chip.entry.js +25 -0
  115. package/dist/dda/dda-credit-card.entry.js +26 -0
  116. package/dist/dda/dda-creditcard-field.entry.js +94 -0
  117. package/dist/dda/dda-dropdown.entry.js +75 -0
  118. package/dist/dda/dda-footer.entry.js +34 -0
  119. package/dist/dda/dda-header.entry.js +282 -0
  120. package/dist/dda/dda-home-banner.entry.js +208 -0
  121. package/dist/dda/dda-horizontal-stepper.entry.js +39 -0
  122. package/dist/dda/dda-input.entry.js +56 -0
  123. package/dist/dda/dda-link-button.entry.js +49 -0
  124. package/dist/dda/dda-number-field.entry.js +86 -0
  125. package/dist/dda/dda-pagination.entry.js +86 -0
  126. package/dist/dda/dda-phonefield.entry.js +271 -0
  127. package/dist/dda/dda-progressbar.entry.js +30 -0
  128. package/dist/dda/dda-radiobutton.entry.js +25 -0
  129. package/dist/dda/dda-range-slider.entry.js +55 -0
  130. package/dist/dda/dda-search-input.entry.js +63 -0
  131. package/dist/dda/dda-segmented-tabs.entry.js +96 -0
  132. package/dist/dda/dda-select.entry.js +183 -0
  133. package/dist/dda/dda-sticky-footer.entry.js +61 -0
  134. package/dist/dda/dda-tabs.entry.js +59 -0
  135. package/dist/dda/dda-textarea.entry.js +31241 -0
  136. package/dist/dda/dda-toggle.entry.js +25 -0
  137. package/dist/dda/dda-tooltip.entry.js +46 -0
  138. package/dist/dda/dda-ui-card.entry.js +41 -0
  139. package/dist/dda/dda-vertical-stepper.entry.js +41 -0
  140. package/dist/dda/dda.css +6385 -46
  141. package/dist/dda/dda.esm.js +47 -1
  142. package/dist/dda/index-CFIwfRqf.js +4622 -0
  143. package/dist/dda/index.esm.js +29 -1
  144. package/dist/dda/p-0574c9df.entry.js +1 -0
  145. package/dist/dda/p-0a86a74c.entry.js +1 -0
  146. package/dist/dda/p-16f94322.entry.js +1 -0
  147. package/dist/dda/p-1acc0fda.entry.js +1 -0
  148. package/dist/dda/p-2630152f.entry.js +1 -0
  149. package/dist/dda/p-271c5f91.entry.js +1 -0
  150. package/dist/dda/{p-e3a65ceb.entry.js → p-32746429.entry.js} +1 -1
  151. package/dist/dda/p-3835f3b7.entry.js +1 -0
  152. package/dist/dda/p-3d57e957.entry.js +1 -0
  153. package/dist/dda/{p-9672af43.entry.js → p-489a3711.entry.js} +1 -1
  154. package/dist/dda/p-58de747b.entry.js +1 -0
  155. package/dist/dda/p-63754a93.entry.js +1 -0
  156. package/dist/dda/p-87d647e7.entry.js +1 -0
  157. package/dist/dda/p-8de4f35e.entry.js +1 -0
  158. package/dist/dda/p-9416d8ec.entry.js +1 -0
  159. package/dist/dda/p-9541e108.entry.js +1 -0
  160. package/dist/dda/p-95b87c55.entry.js +1 -0
  161. package/dist/dda/{p-6daa282f.entry.js → p-95e1a389.entry.js} +1 -1
  162. package/dist/dda/p-96741f45.entry.js +1 -0
  163. package/dist/dda/p-98c59aa8.entry.js +1 -0
  164. package/dist/dda/p-9c86dc30.entry.js +1 -0
  165. package/dist/dda/p-CI_UcUy5.js +2 -0
  166. package/dist/dda/p-b6190656.entry.js +1 -0
  167. package/dist/dda/p-c0da1e14.entry.js +1 -0
  168. package/dist/dda/p-c39d196d.entry.js +1 -0
  169. package/dist/dda/p-c5ebf7df.entry.js +1 -0
  170. package/dist/dda/p-d06c5daf.entry.js +1 -0
  171. package/dist/dda/p-d8fd3f73.entry.js +1 -0
  172. package/dist/dda/p-e660a594.entry.js +1 -0
  173. package/dist/dda/p-e8ca224f.entry.js +1 -0
  174. package/dist/dda/p-ea1720d2.entry.js +1 -0
  175. package/dist/dda/p-ee6d56fc.entry.js +1 -0
  176. package/dist/dda/p-eecfe091.entry.js +1 -0
  177. package/dist/dda/p-eed4a104.entry.js +1 -0
  178. package/dist/dda/unique-id-B-I003EB.js +12 -0
  179. package/dist/esm/dda-accordion.entry.js +2 -2
  180. package/dist/esm/dda-alert.entry.js +4 -4
  181. package/dist/esm/dda-attach-file.entry.js +2 -2
  182. package/dist/esm/dda-avatar.entry.js +3 -3
  183. package/dist/esm/dda-banner.entry.js +2 -2
  184. package/dist/esm/dda-breadcrumb.entry.js +2 -2
  185. package/dist/esm/dda-button.entry.js +2 -2
  186. package/dist/esm/dda-checkbox.entry.js +2 -2
  187. package/dist/esm/dda-chip.entry.js +2 -2
  188. package/dist/esm/dda-credit-card.entry.js +2 -2
  189. package/dist/esm/dda-creditcard-field.entry.js +3 -3
  190. package/dist/esm/dda-dropdown.entry.js +3 -3
  191. package/dist/esm/dda-footer.entry.js +2 -2
  192. package/dist/esm/dda-header.entry.js +22 -12
  193. package/dist/esm/dda-home-banner.entry.js +3 -3
  194. package/dist/esm/dda-horizontal-stepper.entry.js +3 -3
  195. package/dist/esm/dda-input.entry.js +3 -3
  196. package/dist/esm/dda-link-button.entry.js +49 -0
  197. package/dist/esm/dda-link-button_2.entry.js +3 -3
  198. package/dist/esm/dda-number-field.entry.js +2 -2
  199. package/dist/esm/dda-pagination.entry.js +3 -3
  200. package/dist/esm/dda-phonefield.entry.js +2 -2
  201. package/dist/esm/dda-progressbar.entry.js +2 -2
  202. package/dist/esm/dda-radiobutton.entry.js +25 -0
  203. package/dist/esm/dda-range-slider.entry.js +1 -1
  204. package/dist/esm/dda-search-input.entry.js +2 -2
  205. package/dist/esm/dda-segmented-tabs.entry.js +4 -4
  206. package/dist/esm/dda-select.entry.js +5 -3
  207. package/dist/esm/dda-sticky-footer.entry.js +14 -3
  208. package/dist/esm/dda-tabs.entry.js +4 -4
  209. package/dist/esm/dda-textarea.entry.js +16239 -1401
  210. package/dist/esm/dda-toggle.entry.js +3 -3
  211. package/dist/esm/dda-tooltip.entry.js +3 -3
  212. package/dist/esm/dda-ui-card.entry.js +3 -3
  213. package/dist/esm/dda-vertical-stepper.entry.js +2 -2
  214. package/dist/esm/dda.js +31 -4
  215. package/dist/esm/index-CFIwfRqf.js +4622 -0
  216. package/dist/esm/{index-o6021Dsk.js → index-CI_UcUy5.js} +1 -1
  217. package/dist/esm/index.js +10 -0
  218. package/dist/esm/loader.js +3 -3
  219. package/dist/types/components/dda-alert/dda-alert.stories.d.ts +5 -1
  220. package/dist/types/components/dda-header/dda-header.d.ts +6 -2
  221. package/dist/types/components/dda-header/dda-header.stories.d.ts +19 -0
  222. package/dist/types/components/dda-input/dda-input.d.ts +2 -0
  223. package/dist/types/components/dda-sticky-footer/dda-sticky-footer.d.ts +5 -4
  224. package/dist/types/components/dda-sticky-footer/dda-sticky-footer.stories.d.ts +13 -0
  225. package/dist/types/components.d.ts +32 -12
  226. package/package.json +2 -2
  227. package/dist/components/p-B4nkZ15I.js +0 -1
  228. package/dist/components/p-Bk2uycTf.js +0 -1
  229. package/dist/components/p-C96R7OFb.js +0 -1
  230. package/dist/components/p-Ciz-pnTr.js +0 -1
  231. package/dist/components/p-CleacZFl.js +0 -1
  232. package/dist/dda/p-0daa2a14.entry.js +0 -1
  233. package/dist/dda/p-1537b9dd.entry.js +0 -1
  234. package/dist/dda/p-175c52b8.entry.js +0 -1
  235. package/dist/dda/p-2b65a79a.entry.js +0 -1
  236. package/dist/dda/p-2d93b185.entry.js +0 -1
  237. package/dist/dda/p-30d3a014.entry.js +0 -1
  238. package/dist/dda/p-33b890a5.entry.js +0 -1
  239. package/dist/dda/p-64d90f29.entry.js +0 -1
  240. package/dist/dda/p-69bc04c1.entry.js +0 -1
  241. package/dist/dda/p-72f22d1f.entry.js +0 -1
  242. package/dist/dda/p-7549868d.entry.js +0 -1
  243. package/dist/dda/p-7a51a946.entry.js +0 -1
  244. package/dist/dda/p-7b187e1f.entry.js +0 -1
  245. package/dist/dda/p-7b4d895e.entry.js +0 -1
  246. package/dist/dda/p-8f408141.entry.js +0 -1
  247. package/dist/dda/p-91341ca7.entry.js +0 -1
  248. package/dist/dda/p-9552def5.entry.js +0 -1
  249. package/dist/dda/p-98bba4dc.entry.js +0 -1
  250. package/dist/dda/p-a0768b2f.entry.js +0 -1
  251. package/dist/dda/p-a5bd30ad.entry.js +0 -1
  252. package/dist/dda/p-a83f6267.entry.js +0 -1
  253. package/dist/dda/p-b17f79df.entry.js +0 -1
  254. package/dist/dda/p-b79505e1.entry.js +0 -1
  255. package/dist/dda/p-b8b98df2.entry.js +0 -1
  256. package/dist/dda/p-cc2cc09b.entry.js +0 -1
  257. package/dist/dda/p-ceee08fa.entry.js +0 -1
  258. package/dist/dda/p-d000e69d.entry.js +0 -1
  259. package/dist/dda/p-e5b79469.entry.js +0 -1
  260. package/dist/dda/p-f2f3be5f.entry.js +0 -1
  261. package/dist/dda/p-f92e0a32.entry.js +0 -1
  262. package/dist/dda/p-o6021Dsk.js +0 -2
@@ -711,24 +711,97 @@
711
711
  padding: 50px 20px 70px 20px;
712
712
  }
713
713
 
714
+ /* Small screens: the cards sit on the banner this far above the sticky footer bar, at this height.
715
+ dda-home-banner's .slider-nav reads the same two values to stay 16px above the cards. */
716
+ :root {
717
+ --dda-quick-links-gap-sm: 12px;
718
+ --dda-quick-links-card-height-sm: 112px;
719
+ }
720
+
714
721
  .quick-links-wrap {
715
722
  width: 100%;
716
723
  position: absolute;
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));
724
+ /* dda-sticky-footer sets --dda-sticky-footer-height; the cards sit above the fixed bar.
725
+ The row's bottom padding (below) is part of the 69px. The banner's .slider-nav sits 205px
726
+ above this offset (274px in home-banner.css); change both together. */
727
+ bottom: calc(69px - var(--dda-quick-links-pad-bottom) + var(--dda-sticky-footer-height, 0px));
719
728
  z-index: 1;
720
729
  }
721
730
 
731
+ /* The width of the fade on each edge that has more cards to scroll to. */
732
+ @property --dda-quick-links-fade-start {
733
+ syntax: '<length>';
734
+ inherits: false;
735
+ initial-value: 0px;
736
+ }
737
+ @property --dda-quick-links-fade-end {
738
+ syntax: '<length>';
739
+ inherits: false;
740
+ initial-value: 0px;
741
+ }
742
+
743
+ /* One row of cards. When the cards do not fit, the row scrolls sideways. A card cut at the edge,
744
+ a fade on each edge with more cards, and a thin scrollbar show that the row scrolls. */
745
+ .quick-links-wrap,
746
+ .quick-links {
747
+ /* Room inside the row for the hover lift (12px above) and the pointer (9px below);
748
+ a scrolling box clips anything outside it. */
749
+ --dda-quick-links-pad-top: 12px;
750
+ --dda-quick-links-pad-bottom: 12px;
751
+ --dda-quick-links-fade: 32px;
752
+ }
722
753
  .quick-links {
723
754
  width: 90vw;
724
755
  margin: 0 auto;
725
756
  display: flex;
726
757
  gap: 8px;
727
- padding: 0 20px;
758
+ padding: var(--dda-quick-links-pad-top) 20px var(--dda-quick-links-pad-bottom);
759
+ overflow-x: auto;
760
+ overflow-y: hidden;
761
+ overscroll-behavior-x: contain;
762
+ scroll-snap-type: x mandatory;
763
+ /* A card that snaps or takes focus stops clear of the fade. */
764
+ scroll-padding-inline: calc(var(--dda-quick-links-fade) + 4px);
765
+ scrollbar-width: thin;
766
+ scrollbar-color: rgba(255, 255, 255, 0.7) transparent;
767
+ }
768
+
769
+ /* Fades show only where the row can scroll, and follow the scroll position. Browsers without
770
+ scroll-driven animations show no fade; the cut card and the scrollbar still show. */
771
+ @supports (animation-timeline: scroll()) {
772
+ .quick-links {
773
+ -webkit-mask-image: linear-gradient(to right, transparent, #000 var(--dda-quick-links-fade-start), #000 calc(100% - var(--dda-quick-links-fade-end)), transparent);
774
+ mask-image: linear-gradient(to right, transparent, #000 var(--dda-quick-links-fade-start), #000 calc(100% - var(--dda-quick-links-fade-end)), transparent);
775
+ animation: dda-quick-links-fade linear both;
776
+ animation-timeline: scroll(self inline);
777
+ }
778
+ /* In RTL the row starts on the right. */
779
+ [dir='rtl'] .quick-links {
780
+ -webkit-mask-image: linear-gradient(to left, transparent, #000 var(--dda-quick-links-fade-start), #000 calc(100% - var(--dda-quick-links-fade-end)), transparent);
781
+ mask-image: linear-gradient(to left, transparent, #000 var(--dda-quick-links-fade-start), #000 calc(100% - var(--dda-quick-links-fade-end)), transparent);
782
+ }
783
+ }
784
+ @keyframes dda-quick-links-fade {
785
+ 0% {
786
+ --dda-quick-links-fade-start: 0px;
787
+ --dda-quick-links-fade-end: var(--dda-quick-links-fade);
788
+ }
789
+ 10%,
790
+ 90% {
791
+ --dda-quick-links-fade-start: var(--dda-quick-links-fade);
792
+ --dda-quick-links-fade-end: var(--dda-quick-links-fade);
793
+ }
794
+ 100% {
795
+ --dda-quick-links-fade-start: var(--dda-quick-links-fade);
796
+ --dda-quick-links-fade-end: 0px;
797
+ }
728
798
  }
729
799
 
730
800
  .quick-links .link-item {
731
- width: 100%;
801
+ /* Cards share the row when they fit and are never narrower than 220px. */
802
+ flex: 1 0 220px;
803
+ min-width: 0;
804
+ scroll-snap-align: start;
732
805
  height: 170px;
733
806
  display: block;
734
807
  background: var(--dda-surface-100);
@@ -797,11 +870,16 @@
797
870
  /* In normal flow the cards do not sit over the fixed bar, so keep the original offset. */
798
871
  bottom: 45px;
799
872
  }
873
+ /* Below the banner, on the page background: the row spans the screen, and each card is
874
+ narrower than the row so the next card shows at the edge. */
800
875
  .quick-links-wrap .quick-links {
801
- display: grid;
802
- padding: 20px 20px;
876
+ width: 100%;
877
+ box-sizing: border-box;
878
+ padding: 20px 20px var(--dda-quick-links-pad-bottom);
879
+ scrollbar-color: var(--dda-on-surface-variant-40) transparent;
803
880
  }
804
881
  .quick-links .link-item {
882
+ flex: 0 0 min(75%, 300px);
805
883
  height: auto;
806
884
  margin: 0px;
807
885
  border: solid 1px #ddd;
@@ -851,7 +929,7 @@
851
929
  .dda-head-logo .govt-logo img {
852
930
  height: 39px;
853
931
  }
854
- .transparent .dda-header::before {
932
+ .transparent dda-header:not(.dda-scrolled) .dda-header::before {
855
933
  height: 100%;
856
934
  }
857
935
  }
@@ -874,6 +952,44 @@
874
952
  max-width: 90vw !important;
875
953
  }
876
954
 
955
+ /* 992px and below, on screens taller than 600px: the cards sit on the banner, above the sticky
956
+ footer bar, as on desktop. They are compact so they cover less of the slide, and the slide
957
+ controls move above them (home-banner.css). On short landscape screens the banner cannot hold
958
+ the text, the controls and the cards, so the cards stay under it (the rules above). */
959
+ @media screen and (max-width: 992px) and (min-height: 601px) {
960
+ .quick-links-wrap {
961
+ position: absolute;
962
+ /* The row's bottom padding is part of the gap above the bar. */
963
+ bottom: calc(var(--dda-quick-links-gap-sm) - var(--dda-quick-links-pad-bottom) + var(--dda-sticky-footer-height, 0px));
964
+ }
965
+ .quick-links-wrap .quick-links {
966
+ padding-top: var(--dda-quick-links-pad-top);
967
+ scrollbar-color: rgba(255, 255, 255, 0.7) transparent;
968
+ }
969
+ .quick-links .link-item {
970
+ height: var(--dda-quick-links-card-height-sm);
971
+ padding: 16px;
972
+ border: 0;
973
+ }
974
+ .quick-links .link-item i {
975
+ font-size: 24px;
976
+ margin-bottom: 8px;
977
+ }
978
+ .quick-links .link-item svg {
979
+ height: 24px;
980
+ margin-bottom: 8px;
981
+ }
982
+ .quick-links .link-item .title {
983
+ font-size: var(--dda-fs-body-lg);
984
+ }
985
+ .quick-links .link-item .subtitle {
986
+ font-size: var(--dda-fs-body-sm);
987
+ white-space: nowrap;
988
+ overflow: hidden;
989
+ text-overflow: ellipsis;
990
+ }
991
+ }
992
+
877
993
  .dda-card {
878
994
  position: relative;
879
995
  display: -ms-flexbox;
@@ -2074,6 +2190,20 @@
2074
2190
  transition: transform 300ms ease-in-out;
2075
2191
  }
2076
2192
 
2193
+ /* WCAG 2.4.11: the fixed bar covers the bottom of the viewport. dda-sticky-footer publishes
2194
+ its height as --dda-sticky-footer-height (and removes it when it is removed), so:
2195
+ - scroll-padding-bottom keeps focused and scrolled-to elements above the bar, the same way
2196
+ scroll-padding-top in dda-header.css keeps them below the fixed header;
2197
+ - body padding-bottom lets the end of the page scroll clear of the bar.
2198
+ Without the component the variable is not set and both are 0. */
2199
+ :root {
2200
+ scroll-padding-bottom: var(--dda-sticky-footer-height, 0px);
2201
+ }
2202
+
2203
+ body {
2204
+ padding-bottom: var(--dda-sticky-footer-height, 0px);
2205
+ }
2206
+
2077
2207
  /* dda-sticky-footer toggles this class off its own scroll-direction state
2078
2208
  (see dda-sticky-footer.tsx handleScroll) to hide the bar while scrolling
2079
2209
  down and bring it back while scrolling up. Same transition idiom as
@@ -2122,6 +2252,10 @@
2122
2252
  .foot-icon-btn a img {
2123
2253
  height: 32px;
2124
2254
  }
2255
+
2256
+ .foot-icon-btn a i {
2257
+ font-size: 32px;
2258
+ }
2125
2259
  .dda-footer-item ul li.foot-menu{
2126
2260
  padding: 0 5px;
2127
2261
  }
@@ -2198,6 +2332,10 @@
2198
2332
  .foot-icon-btn a img {
2199
2333
  height: 24px;
2200
2334
  }
2335
+
2336
+ .foot-icon-btn a i {
2337
+ font-size: 24px;
2338
+ }
2201
2339
  }
2202
2340
 
2203
2341
  @media (max-width: 1200px) {}
@@ -2511,12 +2649,12 @@
2511
2649
  position: relative;
2512
2650
  }
2513
2651
 
2514
- .transparent .dda-header {
2652
+ .transparent dda-header:not(.dda-scrolled) .dda-header {
2515
2653
  background: transparent;
2516
2654
  box-shadow: none;
2517
2655
  }
2518
2656
 
2519
- .transparent .dda-header::before {
2657
+ .transparent dda-header:not(.dda-scrolled) .dda-header::before {
2520
2658
  content: "";
2521
2659
  width: 100%;
2522
2660
  height: 250px;
@@ -2547,13 +2685,13 @@
2547
2685
  .entt-logo img {
2548
2686
  height: 44px;
2549
2687
  }
2550
- .transparent .logo-colored{
2688
+ .transparent dda-header:not(.dda-scrolled) .logo-colored{
2551
2689
  display: none;
2552
2690
  }
2553
2691
  .logo-white{
2554
2692
  display: none;
2555
2693
  }
2556
- .transparent .logo-white{
2694
+ .transparent dda-header:not(.dda-scrolled) .logo-white{
2557
2695
  display: block;
2558
2696
  }
2559
2697
  .dda-header.white .dda-head-logo .logo-white,
@@ -2673,9 +2811,9 @@
2673
2811
  background-color: var(--dda-color-primary-40);
2674
2812
  }
2675
2813
 
2676
- .transparent .hamburger-menu-btn::before,
2677
- .transparent .hamburger-menu-btn::after,
2678
- .transparent .hamburger-line {
2814
+ .transparent dda-header:not(.dda-scrolled) .hamburger-menu-btn::before,
2815
+ .transparent dda-header:not(.dda-scrolled) .hamburger-menu-btn::after,
2816
+ .transparent dda-header:not(.dda-scrolled) .hamburger-line {
2679
2817
  background-color: var(--dda-neutral-100) !important;
2680
2818
  }
2681
2819
 
@@ -2739,7 +2877,7 @@
2739
2877
  color: var(--dda-color-primary-40);
2740
2878
  }
2741
2879
 
2742
- .transparent .dda-mega-menu>li>a {
2880
+ .transparent dda-header:not(.dda-scrolled) .dda-mega-menu>li>a {
2743
2881
  color: var(--dda-neutral-100);
2744
2882
  }
2745
2883
 
@@ -2756,7 +2894,7 @@
2756
2894
  transition: all 0.25s ease-in-out;
2757
2895
  }
2758
2896
 
2759
- .transparent .dda-mega-menu>li>a::after {
2897
+ .transparent dda-header:not(.dda-scrolled) .dda-mega-menu>li>a::after {
2760
2898
  background-color: var(--dda-neutral-100);
2761
2899
  }
2762
2900
 
@@ -2870,8 +3008,8 @@
2870
3008
  gap: 10px;
2871
3009
  }
2872
3010
 
2873
- .transparent .dda-toolbar-menu ul li .tool-btn,
2874
- .transparent .dda-toolbar-menu-sidemenu ul li .tool-btn {
3011
+ .transparent dda-header:not(.dda-scrolled) .dda-toolbar-menu ul li .tool-btn,
3012
+ .transparent dda-header:not(.dda-scrolled) .dda-toolbar-menu-sidemenu ul li .tool-btn {
2875
3013
  background-color: var(--dda-neutral-17);
2876
3014
  color: var(--dda-neutral-100);
2877
3015
  }
@@ -2892,10 +3030,10 @@
2892
3030
  color: var(--dda-on-surface-variant-30);
2893
3031
  }
2894
3032
 
2895
- .transparent .dda-toolbar-menu ul li .tool-btn i,
2896
- .transparent .dda-toolbar-menu ul li .tool-btn svg,
2897
- .transparent .dda-toolbar-menu-sidemenu ul li .tool-btn i,
2898
- .transparent .dda-toolbar-menu-sidemenu ul li .tool-btn svg {
3033
+ .transparent dda-header:not(.dda-scrolled) .dda-toolbar-menu ul li .tool-btn i,
3034
+ .transparent dda-header:not(.dda-scrolled) .dda-toolbar-menu ul li .tool-btn svg,
3035
+ .transparent dda-header:not(.dda-scrolled) .dda-toolbar-menu-sidemenu ul li .tool-btn i,
3036
+ .transparent dda-header:not(.dda-scrolled) .dda-toolbar-menu-sidemenu ul li .tool-btn svg {
2899
3037
  color: var(--dda-neutral-100);
2900
3038
  }
2901
3039
  .dda-search{
@@ -2941,10 +3079,10 @@
2941
3079
  .dda-search input[type="text"]::placeholder{
2942
3080
  color: var(--dda-on-surface-0);
2943
3081
  }
2944
- .transparent .dda-search input[type="text"]::-ms-input-placeholder {
3082
+ .transparent dda-header:not(.dda-scrolled) .dda-search input[type="text"]::-ms-input-placeholder {
2945
3083
  color: var(--dda-neutral-100);
2946
3084
  }
2947
- .transparent .dda-search input[type="text"]::placeholder{
3085
+ .transparent dda-header:not(.dda-scrolled) .dda-search input[type="text"]::placeholder{
2948
3086
  color: var(--dda-neutral-100);
2949
3087
  }
2950
3088
 
@@ -3238,8 +3376,8 @@ ul.main_side_menu .main_sub_menu .main_sub_menu .main_sub_menu {
3238
3376
  fill: var(--dda-on-surface-variant-30);
3239
3377
  }
3240
3378
 
3241
- .transparent .dda-mobile-search button i,
3242
- .transparent .dda-mobile-search button svg {
3379
+ .transparent dda-header:not(.dda-scrolled) .dda-mobile-search button i,
3380
+ .transparent dda-header:not(.dda-scrolled) .dda-mobile-search button svg {
3243
3381
  color: var(--dda-neutral-100);
3244
3382
  }
3245
3383
 
@@ -3250,7 +3388,7 @@ ul.main_side_menu .main_sub_menu .main_sub_menu .main_sub_menu {
3250
3388
 
3251
3389
 
3252
3390
  @media screen and (max-width: 767px) {
3253
- .transparent .dda-header::before {
3391
+ .transparent dda-header:not(.dda-scrolled) .dda-header::before {
3254
3392
  height: 130px;
3255
3393
  }
3256
3394
  .dda-header{
@@ -27,6 +27,17 @@ export class DdaStickyFooter {
27
27
  this.resizeObserver = null;
28
28
  document.documentElement.style.removeProperty('--dda-sticky-footer-height');
29
29
  }
30
+ // An image wins when both are set, so pages that set both keep their current look.
31
+ // A Material icon is decorative; the visually hidden text names the link.
32
+ renderLinkGraphic(src, icon, text) {
33
+ if (src || !icon) {
34
+ return h("img", { src: src, alt: text });
35
+ }
36
+ return [
37
+ h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, icon),
38
+ h("span", { class: "visually-hidden" }, text),
39
+ ];
40
+ }
30
41
  handleScroll() {
31
42
  const currentScrollY = window.scrollY;
32
43
  this.isHidden = currentScrollY > this.lastScrollY;
@@ -35,7 +46,7 @@ export class DdaStickyFooter {
35
46
  render() {
36
47
  return (
37
48
  // An <aside>, not a <footer>: the page footer (dda-footer) is the only contentinfo landmark.
38
- h("aside", { key: '8b7555a98880560dfd74702064d3b6f51e5fda62', class: { 'dda-footer': true, 'hidden': this.isHidden }, "aria-label": this.aria_label, "aria-hidden": this.isHidden ? 'true' : 'false', inert: this.isHidden }, h("div", { key: 'f095ce4be877b0eb1b3c80036751914170810d59', class: "footer-content" }, h("div", { key: 'a88f1a42de024b505e2de483009c3a181467a4a5', class: "dda-footer-item dda-footer-left" }, h("ul", { key: '7628fe339c13cc43b072e91bb9645efb218687c5' }, h("li", { key: '47e95fdff5f9a0a4fc37b50450086669627fd838', class: "foot-icon-btn" }, h("dda-tooltip", { key: '32060fc43b2d7523ed1adc523b2bc068ae12be54', title_text: this.happinessIconTooltip, description: "", position: "top" }, h("a", { key: 'fcd864c4fcb58dd5f3cf3ca93130bb2efdac6467', href: this.happinessIconHref }, h("img", { key: 'e291e4e8240b6d9c7714d0ddcd843f605ee2c38f', src: this.happinessIconSrc, alt: this.happinessIconAlt })))), h("li", { key: 'f95c812837027095cbde1d1abfdfe8ea12aa17cb', class: "foot-icon-btn" }, h("dda-tooltip", { key: '0f3fbc004c2eb30764b35525fa4ca3796590c27b', title_text: this.accessibilityIconTooltip, description: "", position: "top" }, h("a", { key: '5d1f11e1023b843ead46ccd5c0ce2d906a26bdc7', href: this.accessibilityIconHref }, h("img", { key: 'c17880d53cf0da80b2f88f3a40656e368931aa2f', src: this.accessibilityIconSrc, alt: this.accessibilityIconAlt })))), h("li", { key: '67b5d0f991e370a9027d653b5dcf2848419b4411', class: "foot-icon-btn" }, h("dda-tooltip", { key: '1e446a1ca6b52620a2a88b3ab3c4255652ac7ea4', title_text: this.servicesIconTooltip, description: "", position: "top" }, h("a", { key: '273197b8cdc6b67c589c3ca99881f314e9c7b160', href: this.servicesIconHref }, h("img", { key: '084e3447170d9f8d68f29d15483c744453e99f17', src: this.servicesIconSrc, alt: this.servicesIconText ? '' : this.servicesIconAlt }), this.servicesIconText && h("span", { key: 'c59c80ada5e3782c3a69d4a9dfe0ce80edfeebec' }, this.servicesIconText)))))), this.hideMiddleSection == false && (h("div", { key: 'e78274d2cbe470419fe0492652a5c99251cd3d35', class: "dda-footer-item dda-footer-middle" }, h("ul", { key: 'ec7f028fb6b68bf88946947ae0e80662ad4ec747', class: "foot-logo" }, h("li", { key: 'bc5dfda4aed09e2a24803a7ef7d68970b7aba4ea' }, h("dda-tooltip", { key: '8d0a3eaa935b67be17d30a0580c104493f635d96', title_text: this.firstLogoTooltip, description: "", position: "top" }, h("a", { key: 'a7ab2f09ccc3a7d4bb7b9fb9c417b046434fce45', href: this.firstLogoHref }, h("img", { key: '44de6f24ff6af36cfbc669c40bb5d14c22af41c9', src: this.firstLogoSrc, alt: this.firstLogoAlt })))), h("li", { key: '6b74fa28466a3177b67aa526c51e278ab10697b3' }, h("dda-tooltip", { key: 'b98f3a21a83e2b2ca6dd7f9924c5f64d1720b835', title_text: this.secondLogoTooltip, description: "", position: "top" }, h("a", { key: 'd5e01a799a20b66928ef2e523fff5ee39b61010c', href: this.secondLogoHref }, h("img", { key: 'abcfb1d9b8938365b162a48397854ffffb93b89c', src: this.secondLogoSrc, alt: this.secondLogoAlt })))), h("li", { key: '71ba867ee5095e2fb5cdae4bfafa2d19d33c0ece' }, h("dda-tooltip", { key: '9a83c73b7052de260214bf0fe21bb9f95725abe7', title_text: this.thirdLogoTooltip, description: "", position: "top" }, h("a", { key: '585dd0222686a53b5e393ac1f1c6d5c5818dc01c', href: this.thirdLogoHref }, h("img", { key: 'fb59f4b9ee8eb253f320a0b97f09716efaa346d8', src: this.thirdLogoSrc, alt: this.thirdLogoAlt }))))))), h("div", { key: '1eeaa381345f99ae4d2f9a76f9bd84e111d52ce0', class: "dda-footer-item dda-footer-right" }, h("ul", { key: '36446af149436ca1267f23c5f2ed6f22bf3c5e8b' }, h("li", { key: 'aa6e06a5a19663667ab9feb634c0ad548475e8e8', class: "foot-icon-btn" }, h("dda-tooltip", { key: 'f4d38372cf67c8ccd2d4353df0c19bcc8d9e823b', title_text: this.locationButtonText, description: "", position: "top" }, h("a", { key: '135a5585f0070950489d7ae8d70059f6ba622f07', href: this.locationButtonHref }, h("img", { key: '1b8d779b04d8ee01b52106422d1b41c25439ce50', src: this.locationLogoSrc, alt: this.locationButtonText })))), h("li", { key: '88b6ee69c27d6bea4be5fb6de76c4256959f596a', class: "foot-icon-btn" }, h("dda-tooltip", { key: '65625b7817b9ca848c18245c8c048906a1b6f001', title_text: this.newsButtonText, description: "", position: "top" }, h("a", { key: '6495efa83387315879c0c01976fde5945500b646', href: this.newsButtonHref }, h("img", { key: '4e6a3479521faf650564e34cf8ead331804c1cc1', src: this.newsButtonSrc, alt: this.newsButtonText })))), h("li", { key: '6cf00a0f8652ed203dd3bd8cbd9e11def0c6da19', class: "foot-icon-btn" }, h("dda-tooltip", { key: 'c003416a3509d4aefb9ff556794c99a47b7a3129', title_text: this.aiIconTooltip, description: "", position: "top" }, h("a", { key: 'cf708091045b7b0c3d219809476b8f733e79f3c3', href: this.aiIconHref }, h("img", { key: 'bdbec68b408cd6231020ff55690046e76d608e6e', src: this.aiIconSrc, alt: this.aiIconAlt })))), h("li", { key: '20faca8ed93e48c131d71cae5d5cf0a4c5e4d6ad', class: "foot-icon-btn" }, h("dda-tooltip", { key: 'f9bcbb3b6fdec9feaa18843c9ed447d11ac3ceaa', title_text: this.chatIconTooltip, description: "", position: "top" }, h("a", { key: '16449ed75e0d423c1f7cb00b727bef1664a0af03', href: this.chatIconHref }, h("img", { key: 'f90cab5d2d3f4f716565588a5423ffbdb9528330', src: this.chatIconSrc, alt: this.chatIconAlt })))))))));
49
+ h("aside", { key: '00ce26f6e8b730f0e420aab0a2a1720fcd94b733', class: { 'dda-footer': true, 'hidden': this.isHidden }, "aria-label": this.aria_label, "aria-hidden": this.isHidden ? 'true' : 'false', inert: this.isHidden }, h("div", { key: '07119c454ae696291d76afa97b4b59f2df423a01', class: "footer-content" }, h("div", { key: '35924650b1eb37ac3c47118f316be49e9429da73', class: "dda-footer-item dda-footer-left" }, h("ul", { key: '6b3fd478402ff939eac034bfe8c2f0acc3a8be5b' }, h("li", { key: '4e7729bb6458b31af7af0eb2552964dba639091b', class: "foot-icon-btn" }, h("dda-tooltip", { key: 'cf4829d16ea19b13b6d658ef257f0fb525d8db30', title_text: this.happinessIconTooltip, description: "", position: "top" }, h("a", { key: '1fe23758b0c494d38667c716d13cd4e445705e65', href: this.happinessIconHref }, h("img", { key: '0cee47565071942c2a522c49e315c63f9019091a', src: this.happinessIconSrc, alt: this.happinessIconAlt })))), h("li", { key: '473cd525bb10eb696790b1f1da97910c0f238b52', class: "foot-icon-btn" }, h("dda-tooltip", { key: 'e4af8610afa278390f1b353c53a11d76f8960cd2', title_text: this.accessibilityIconTooltip, description: "", position: "top" }, h("a", { key: 'df65a784e936c03a3d7a97e0a1f42d7c702bf8c4', href: this.accessibilityIconHref }, h("img", { key: '2420fef29b01607c95337ba17fbc571f32380dc3', src: this.accessibilityIconSrc, alt: this.accessibilityIconAlt })))), h("li", { key: '875bf4dcc2fa35a4c43274e585368516a1f0c419', class: "foot-icon-btn" }, h("dda-tooltip", { key: '960e9e83b45ec1ca97ed5e3cf2bf0e4c64404f6c', title_text: this.servicesIconTooltip, description: "", position: "top" }, h("a", { key: '8989d62bdeb6ad5275ac8b83eb8d3365c49c7c8d', href: this.servicesIconHref }, h("img", { key: '64f1bfddc75b364889fcccfaa920f6554de854ac', src: this.servicesIconSrc, alt: this.servicesIconText ? '' : this.servicesIconAlt }), this.servicesIconText && h("span", { key: 'fcbb3557e2611a607ecc9d689a7185826e8a1536' }, this.servicesIconText)))))), this.hideMiddleSection == false && (h("div", { key: 'e2943640b40aba3efa7994da339c001c208e255e', class: "dda-footer-item dda-footer-middle" }, h("ul", { key: 'df1cf3eeb987812cf6256db4d43b7a4806aa743d', class: "foot-logo" }, h("li", { key: 'fa5a60952a04194b6097d0d65b6528360497ebe0' }, h("dda-tooltip", { key: '2e2c3565b9cd52682d5e93d8f50eba6fed02206b', title_text: this.firstLogoTooltip, description: "", position: "top" }, h("a", { key: 'e8bbd7842372bf1d9ea2c3a226e7097ad0e3afe7', href: this.firstLogoHref }, h("img", { key: 'c80985d96e2cb296b7a1c3a8eb72da5d5aaaeb16', src: this.firstLogoSrc, alt: this.firstLogoAlt })))), h("li", { key: 'f7042bd13a2da6f3a2f7725adebd3a8dfc7cb02c' }, h("dda-tooltip", { key: '7f500304b12bff7ad406eeb55181d902ef778e04', title_text: this.secondLogoTooltip, description: "", position: "top" }, h("a", { key: '7c4139a8a3cef3a8992d774103ed6d9843227a04', href: this.secondLogoHref }, h("img", { key: 'fed6b5271a0361d09389b7eea46aaa282a92bd6d', src: this.secondLogoSrc, alt: this.secondLogoAlt })))), h("li", { key: 'd94e97c4317e8720f36bea823388182f2abf8e79' }, h("dda-tooltip", { key: '37772845af7fb85d10f4b973fb89d4bc9a310d55', title_text: this.thirdLogoTooltip, description: "", position: "top" }, h("a", { key: 'd49a6c608cd0280909824142bf4f3c65ca53888a', href: this.thirdLogoHref }, h("img", { key: '334a184a61e0962bdfdc2ebbcb0955a50fcf496f', src: this.thirdLogoSrc, alt: this.thirdLogoAlt }))))))), h("div", { key: 'cf17c11f5b494003dddffc9b4d7a6ba13c1757c6', class: "dda-footer-item dda-footer-right" }, h("ul", { key: '96a7fdcab29367a7b26fa03bbac36b03c61d168f' }, h("li", { key: 'e3167fa25515c3127710b621053b31d12cd76359', class: "foot-icon-btn" }, h("dda-tooltip", { key: '87c90369dbc48510aaaedb8486dd445876f1e093', title_text: this.locationButtonText, description: "", position: "top" }, h("a", { key: '0252c18219bd05b4c892277a71cd00db23b84a31', href: this.locationButtonHref }, this.renderLinkGraphic(this.locationLogoSrc, this.locationButtonIcon, this.locationButtonText)))), h("li", { key: 'bff9d7b611382015d640fdd1e04a3a7e81111c3a', class: "foot-icon-btn" }, h("dda-tooltip", { key: '5643009f571ff58459fb29745531f0dc3c6a58fb', title_text: this.newsButtonText, description: "", position: "top" }, h("a", { key: '17c34d76970d9ac60c0072f37afbcad0bf72c875', href: this.newsButtonHref }, this.renderLinkGraphic(this.newsButtonSrc, this.newsButtonIcon, this.newsButtonText)))), h("li", { key: '861299a89994f344afa277f6b0857ab37ae2b187', class: "foot-icon-btn" }, h("dda-tooltip", { key: '0432ac8517824db42254f3620f9b1f6a602b8d12', title_text: this.aiIconTooltip, description: "", position: "top" }, h("a", { key: 'ccb2edccc8070848fb0fe6609f21c2e2a10dbaba', href: this.aiIconHref }, h("img", { key: '76cb10b57d1a7fe9874c48ed2a3ba70694b548f1', src: this.aiIconSrc, alt: this.aiIconAlt })))), h("li", { key: '44095b5fc6402f101b2b89e4737d0c0ff96da9c3', class: "foot-icon-btn" }, h("dda-tooltip", { key: 'd6e55bc78f2bcdb364e854c15c8e019190fa1da1', title_text: this.chatIconTooltip, description: "", position: "top" }, h("a", { key: '4e683ae48ffa83c4232a48bb08ee99948e606303', href: this.chatIconHref }, h("img", { key: '4d3b25afbdd7ff43ba5b17d3a6624552294986db', src: this.chatIconSrc, alt: this.chatIconAlt })))))))));
39
50
  }
40
51
  static get is() { return "dda-sticky-footer"; }
41
52
  static get originalStyleUrls() {
@@ -556,7 +567,7 @@ export class DdaStickyFooter {
556
567
  "optional": false,
557
568
  "docs": {
558
569
  "tags": [],
559
- "text": "Image URL of the location icon."
570
+ "text": "Image URL of the location icon. Takes precedence over `locationButtonIcon`."
560
571
  },
561
572
  "getter": false,
562
573
  "setter": false,
@@ -594,7 +605,7 @@ export class DdaStickyFooter {
594
605
  "optional": false,
595
606
  "docs": {
596
607
  "tags": [],
597
- "text": "Not used: the current markup does not render it."
608
+ "text": "Material Symbols icon name of the location link, shown when `locationLogoSrc` is not set."
598
609
  },
599
610
  "getter": false,
600
611
  "setter": false,
@@ -632,7 +643,7 @@ export class DdaStickyFooter {
632
643
  "optional": false,
633
644
  "docs": {
634
645
  "tags": [],
635
- "text": "Image URL of the news icon."
646
+ "text": "Image URL of the news icon. Takes precedence over `newsButtonIcon`."
636
647
  },
637
648
  "getter": false,
638
649
  "setter": false,
@@ -670,7 +681,7 @@ export class DdaStickyFooter {
670
681
  "optional": false,
671
682
  "docs": {
672
683
  "tags": [],
673
- "text": "Not used: the current markup does not render it."
684
+ "text": "Material Symbols icon name of the news link, shown when `newsButtonSrc` is not set."
674
685
  },
675
686
  "getter": false,
676
687
  "setter": false,
@@ -13,6 +13,14 @@ export default {
13
13
  hideMiddleSection: {
14
14
  control: { type: 'boolean' },
15
15
  description: 'Hides the middle section of the footer',
16
+ },
17
+ locationButtonIcon: {
18
+ control: { type: 'text' },
19
+ description: 'Material Symbols icon of the location link, shown when the location image is empty',
20
+ },
21
+ newsButtonIcon: {
22
+ control: { type: 'text' },
23
+ description: 'Material Symbols icon of the news link, shown when the news image is empty',
16
24
  }
17
25
  },
18
26
  component: 'dda-sticky-footer',
@@ -114,7 +122,7 @@ Default.args = {
114
122
  newsButtonHref: '#',
115
123
  newsButtonText: 'News',
116
124
  newsButtonSrc: news_pin,
117
- newsButtonIcon: 'news_on',
125
+ newsButtonIcon: 'newspaper',
118
126
  aiIconHref: '#',
119
127
  aiIconSrc: digital_ai,
120
128
  aiIconAlt: 'Digital AI',
@@ -125,3 +133,6 @@ Default.args = {
125
133
  chatIconTooltip: 'Online Chat',
126
134
  hideMiddleSection: false,
127
135
  };
136
+ // The location and news links show a Material Symbols icon when their image is not set.
137
+ export const MaterialIcons = Template.bind({});
138
+ MaterialIcons.args = Object.assign(Object.assign({}, Default.args), { locationButtonSrc: '', locationButtonIcon: 'location_on', newsButtonSrc: '', newsButtonIcon: 'newspaper' });
@@ -44,7 +44,7 @@ export class DdaTabs {
44
44
  }
45
45
  }
46
46
  render() {
47
- return (h(Host, { key: '08043e9d39b5ad9a620384b4f917245ddff9924e' }, h("div", { key: '2ed3614f6f932a43c4601201c2bf02483e161a0e', role: "group", "aria-label": this.aria_label, class: `dda-tabs-container ${this.hover_style} ${this.custom_class} ${this.component_mode}` }, this.parsedTabs.map((title, index) => (h("button", { id: this.button_id, name: this.button_name, type: "button", "aria-pressed": this.active_tab === index ? 'true' : 'false', class: `dda-tab-item ${this.active_tab === index ? 'active' : ''}`, onClick: () => this.setActiveTab(index) }, this.type === 'text-icon' && h("i", { class: `material-icons`, "aria-hidden": "true" }, this.parsedIcons[index] || ""), h("span", null, title)))))));
47
+ return (h(Host, { key: '6cd2019b8b9c2b7fdb565241cc46bb5bcff01c09' }, h("div", { key: '2e12543d2c20521f1731c883280b266289813054', role: "group", "aria-label": this.aria_label, class: `dda-tabs-container ${this.hover_style} ${this.custom_class} ${this.component_mode}` }, this.parsedTabs.map((title, index) => (h("button", { id: this.button_id, name: this.button_name, type: "button", "aria-pressed": this.active_tab === index ? 'true' : 'false', class: `dda-tab-item ${this.active_tab === index ? 'active' : ''}`, onClick: () => this.setActiveTab(index) }, this.type === 'text-icon' && h("i", { class: `material-icons`, "aria-hidden": "true" }, this.parsedIcons[index] || ""), h("span", null, title)))))));
48
48
  }
49
49
  static get is() { return "dda-tabs"; }
50
50
  static get originalStyleUrls() {
@@ -119,7 +119,7 @@ export class DdaTextarea {
119
119
  this.custom_class, this.component_mode, this.textarea_name,
120
120
  ].filter(Boolean).join(' ');
121
121
  const id = this.inputId;
122
- return (h(Host, { key: '36d3524d56afd5ec4839df413c7c4a9f73c02349' }, h("div", { key: 'b549320f31064d89f9c3cb93100e00209ffec631', class: textareaClass }, this.label && h("label", { key: '507594fc98f36d10d2b0cc7e728d2789d19acffd', id: this.labelId, htmlFor: this.enable_rich_editor ? undefined : id, class: "dda-input-label" }, this.label), this.enable_rich_editor ? (
122
+ return (h(Host, { key: 'fbd0f779e531d6274898e847e23c888869d374b4' }, h("div", { key: '98e2a14d0d1bbbfd5e548513e57bfd629e9aba6d', class: textareaClass }, this.label && h("label", { key: '9036385745c7aac2d306ddbbabc347846d9fed0a', id: this.labelId, htmlFor: this.enable_rich_editor ? undefined : id, class: "dda-input-label" }, this.label), this.enable_rich_editor ? (
123
123
  // F-015: previously a bare `<div id="editor">` — the visible
124
124
  // label's `for` cannot target a non-labelable <div>, and even
125
125
  // aria-labelledby here would be wrong: Quill turns this
@@ -127,7 +127,7 @@ export class DdaTextarea {
127
127
  // as a child `.ql-editor`, which is what AT and Tab actually
128
128
  // land on. The ARIA lives on quill.root (.ql-editor), applied
129
129
  // imperatively in syncRichEditorA11y() after mount.
130
- h("div", { id: id, class: "dda-richeditor-field" })) : (h("textarea", { id: id, name: this.textarea_name, "aria-label": this.aria_label, placeholder: this.placeholder, value: this.value, onInput: (event) => this.handleInput(event), class: "dda-input-field dda-input-textarea", maxLength: this.max_characters, "aria-describedby": this.describedBy, "aria-invalid": this.error_message ? 'true' : undefined })), this.helper_text && (h("div", { key: '4931a7959dcc63311c7bf39d9f48345705153b2b', id: this.helperId, class: "dda-helper-text" }, h("span", { key: '0611a1223915e8c25963ea0d2084b8d12ea4e505', class: "dda-flex dda-align-center dda-gap-2" }, h("i", { key: 'c52d7a98fa16609999310aa9603185ea4249d642', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "info"), " ", this.helper_text), h("span", { key: 'c68c8d582a5d2a8f365fb31c3dd63f92280624ea', class: "dda-letter-count" }, this.characterCount, " / ", this.max_characters))), this.error_message && (h("div", { key: '2a1476454a2b11836afbdcd46d78b49a0704f701', id: this.errorId, class: "dda-error-message" }, h("span", { key: '0009df8437058f165415719e25705b23b90f2610', class: "dda-flex dda-align-center dda-gap-2" }, h("i", { key: '283e095c1acbc957dbdc8ed3ed28cd717b05616d', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "info"), " ", this.error_message), h("span", { key: '2fc7cfb38f4ed9d3676acfa6c5f48fc772aff8cd', class: "dda-letter-count" }, this.characterCount, " / ", this.max_characters))))));
130
+ h("div", { id: id, class: "dda-richeditor-field" })) : (h("textarea", { id: id, name: this.textarea_name, "aria-label": this.aria_label, placeholder: this.placeholder, value: this.value, onInput: (event) => this.handleInput(event), class: "dda-input-field dda-input-textarea", maxLength: this.max_characters, "aria-describedby": this.describedBy, "aria-invalid": this.error_message ? 'true' : undefined })), this.helper_text && (h("div", { key: '9eff76cb597be11db41f24acec2ba795bbaba07b', id: this.helperId, class: "dda-helper-text" }, h("span", { key: '968496c3e66d1587cd2893ea63b64dccf21731fc', class: "dda-flex dda-align-center dda-gap-2" }, h("i", { key: '6736864e6729e787f8de71fe12fec6a1a0bcb416', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "info"), " ", this.helper_text), h("span", { key: '44abdcccf9cd7bef214584a46476994d67a5dbe1', class: "dda-letter-count" }, this.characterCount, " / ", this.max_characters))), this.error_message && (h("div", { key: '76fa5f80421859c4539869c507d6af32a2466e23', id: this.errorId, class: "dda-error-message" }, h("span", { key: '89294947ebb7e2b06e9488a7b86f3fa86baac809', class: "dda-flex dda-align-center dda-gap-2" }, h("i", { key: '09a8960b8b08e84222ab35e79e45b4db662201d4', class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, "info"), " ", this.error_message), h("span", { key: '7e08b00e8620f1892c1c5481f8c9e50a9f342e5d', class: "dda-letter-count" }, this.characterCount, " / ", this.max_characters))))));
131
131
  }
132
132
  static get is() { return "dda-textarea"; }
133
133
  static get originalStyleUrls() {
@@ -11,7 +11,7 @@ export class DdaToggle {
11
11
  this.custom_class ? `${this.custom_class}` : '',
12
12
  this.component_mode,
13
13
  ].filter(Boolean).join(' ');
14
- return (h(Host, { key: 'dea39431c86169e24d54733a62c769eeaa2b689a' }, h("label", { key: '3cacd3f24b5f943148c08d49507367f447360130', class: toggleClass, htmlFor: this.input_id }, h("input", { key: '05ddb8d7855baa638d27a2e75e958b0925cb6133', "aria-label": this.aria_label, type: "checkbox", id: this.input_id, name: this.group_name, checked: this.checked }), h("span", { key: '94a53389d2bc3e2a0865f4eabe144957088f3c9e', class: "toggle" }), (this.title_text || this.supporting) && (h("p", { key: 'f2c763dfde5598c8c38aa6ded502246915d6697c' }, this.title_text && h("span", { key: '1226a811dccc581837743c79b698ee553eb561b8', class: "toggle-title" }, this.title_text), this.supporting && h("span", { key: '53b895d6524528f56a1b8c0e85fcd1292a2295a4', class: "toggle-supporting" }, this.supporting))))));
14
+ return (h(Host, { key: 'e25bac987e66556b003d3b670af9b576d3731c65' }, h("label", { key: '2262c2a410e4758bb34eb2666e416e8286302769', class: toggleClass, htmlFor: this.input_id }, h("input", { key: 'ca009a89a6405dcd9f30dac79791c9a124ef8c69', "aria-label": this.aria_label, type: "checkbox", id: this.input_id, name: this.group_name, checked: this.checked }), h("span", { key: '1401b3e6730beff1ac6fbe4e3854755b21abdc5d', class: "toggle" }), (this.title_text || this.supporting) && (h("p", { key: '88a13db082dc429d130f732f7ebe3ecc867f2686' }, this.title_text && h("span", { key: 'ec018b2656d9e2ff697a0d6e88b7901940830216', class: "toggle-title" }, this.title_text), this.supporting && h("span", { key: '64372b8ae3369b1d844d7681bcefbad9a876f069', class: "toggle-supporting" }, this.supporting))))));
15
15
  }
16
16
  static get is() { return "dda-toggle"; }
17
17
  static get originalStyleUrls() {
@@ -31,7 +31,7 @@ export class DdaTooltip {
31
31
  this.el.removeEventListener('mouseleave', this.resetDismissed);
32
32
  }
33
33
  render() {
34
- return (h(Host, { key: '2ed16ceb8feae5e30c32f8f6233b4af58bcaf7a9' }, h("div", { key: '5dae51f2ac993d030be0c2287552f6979eb14ca5', class: `dda-tooltip-container ${this.custom_class} ${this.component_mode} ${this.dismissed ? 'dismissed' : ''}` }, h("slot", { key: '18c1f46d365c677fe0ca88bf4582e7899b08df0d' }), h("div", { key: 'df7107e2d43c930942faea1c5e574cbe6fea9608', class: `dda-tooltip-box ${this.position}` }, h("strong", { key: 'abf766e5920575854a064b25b4f63536c9fd6cdf' }, this.title_text), h("p", { key: '7fb2ba0d0f7ce6ceff058b5c56df509acab10e24' }, this.description)))));
34
+ return (h(Host, { key: '1a5eab371fff341d3398db57a3c5a283ad0edf50' }, h("div", { key: '0c72ac7e72eda7bc713b1e7b4ab58d93fef09b80', class: `dda-tooltip-container ${this.custom_class} ${this.component_mode} ${this.dismissed ? 'dismissed' : ''}` }, h("slot", { key: '91aa439ca4f29eb57af61620b1b99008d8799bea' }), h("div", { key: '7c2c180466082d69591138adbd6f80ef015f1265', class: `dda-tooltip-box ${this.position}` }, h("strong", { key: '784c70b9847e921e5b4f3f3533478966e5e33cd9' }, this.title_text), h("p", { key: '3932ff682897bade6d9298c4f0d7547e65f6408a' }, this.description)))));
35
35
  }
36
36
  static get is() { return "dda-tooltip"; }
37
37
  static get originalStyleUrls() {
@@ -28,7 +28,7 @@ export class DdaUiCard {
28
28
  }
29
29
  render() {
30
30
  const HeadingTag = this.headingTag;
31
- return (h(Host, { key: 'f2a0d78609b1432f94a712b2d69690ed10c422b3' }, h("div", { key: 'bc36fddf6be566d97d23530740e5de9f32bb192e', class: 'dda-card' }, h("div", { key: '55b2f3a35669305d0dcf5c3fe9bdd3dd70a444a1', class: 'dda-card-body' }, this.type !== 'custom' && (h("div", { key: 'e6298ad703d39c3ed69ab64070db7d2580529d33' }, !!this.icon && (h("span", { key: '2f1b9f7570d5ab46f857cebb594a1d71cf83a341', class: 'dda-card-icon' }, h("i", { key: 'efda1c1873e48cae86bbd9feb5a90c7529f3db49', class: 'material-icons', "aria-hidden": "true" }, this.icon))), !!this.image && (h("span", { key: '802a4ca867e351b24af54b4da78ec12c2d18b890', class: 'dda-card-icon' }, h("img", { key: 'ff6975cf36520a9c3ddbecc16252bcc0769a1597', src: this.image, alt: this.maintitle }))), !!this.maintitle && h(HeadingTag, { key: 'd769a32b303d689217aa77973804347fb3488b02', class: 'dda-card-title' }, this.maintitle), !!this.subtitle && h("p", { key: '0bdaa58c5ea5db75c20c7b0031dad48ce7d1ed96', class: 'dda-card-text-muted' }, this.subtitle), !!this.link && (h("a", { key: '87d11b05cef8ab0b01de355d22b1ef9297a80302', href: this.link, class: 'dda-card-link', onClick: (event) => this.linkClick.emit(event) }, this.linktext, ' ', this.linkicon && (h("span", { key: '8cb9e3c6e51769fca7fa47d22d61a98164209002' }, h("i", { key: 'ba556e79ad6176ee2b79097a78ad826d9c02ecee', class: 'material-icons', "aria-hidden": "true" }, this.linkicon))))))), h("slot", { key: '11921fac820a992ed35e0dab39bcd36a39b2244f' })))));
31
+ return (h(Host, { key: '4657e8ea3f7a5782eff6d4d004afc15030a9d89d' }, h("div", { key: '929b59ee6a676e9ee95441907bea8d98a7f62bcb', class: 'dda-card' }, h("div", { key: 'c7a7a115aef102e726f3232bcc7c75cfac9b676c', class: 'dda-card-body' }, this.type !== 'custom' && (h("div", { key: '50e93eb07a7bf279af39d8af5536292b41fef9f8' }, !!this.icon && (h("span", { key: 'f449d9a299d8cb5a534277babe0e413c43b091af', class: 'dda-card-icon' }, h("i", { key: '5d51449ce164db38f3d6540e9fae2dbade609b10', class: 'material-icons', "aria-hidden": "true" }, this.icon))), !!this.image && (h("span", { key: '55d39ea5df2decaf84062e4149a8a690c34801f4', class: 'dda-card-icon' }, h("img", { key: '9cf6e418dbfd5a69f3b745abf57cd9e5ad3fcd54', src: this.image, alt: this.maintitle }))), !!this.maintitle && h(HeadingTag, { key: 'ba558f13bba45d63e1940fdf5bc3e8501ee3d2f0', class: 'dda-card-title' }, this.maintitle), !!this.subtitle && h("p", { key: 'a03f8484f9de87dd5de5df7d86ef16348f35544e', class: 'dda-card-text-muted' }, this.subtitle), !!this.link && (h("a", { key: 'f64d0dc6f8940ef81a789a056fdb280bedf2b95e', href: this.link, class: 'dda-card-link', onClick: (event) => this.linkClick.emit(event) }, this.linktext, ' ', this.linkicon && (h("span", { key: '743465002d7738b4d8aa0145689c14e814f99ffe' }, h("i", { key: '6812c7e5e69512ea16a2a6a61f47990c4f80900c', class: 'material-icons', "aria-hidden": "true" }, this.linkicon))))))), h("slot", { key: '684fe104483ca674eb0ce801a484ca7307a39f48' })))));
32
32
  }
33
33
  static get is() { return "dda-ui-card"; }
34
34
  static get originalStyleUrls() {
@@ -69,7 +69,7 @@ export class DdaSegmentedTabs {
69
69
  this.segmentChange.emit(index);
70
70
  }
71
71
  render() {
72
- return (h("div", { key: '023156550fa2d88603176644fc99b4cb3950c275', role: "group", "aria-label": this.aria_label, class: `dda-segmented-group ${this.custom_class} ${this.radius_type} ${this.component_mode}` }, this.parsedItems.map((item, index) => {
72
+ return (h("div", { key: '40c6831dac81e967a3c5d03294811bbc7a320a8a', role: "group", "aria-label": this.aria_label, class: `dda-segmented-group ${this.custom_class} ${this.radius_type} ${this.component_mode}` }, this.parsedItems.map((item, index) => {
73
73
  const isSelected = index === this.active_index;
74
74
  const className = `dda-segmented-item${isSelected ? ' active' : ''}`;
75
75
  return item.startsWith('fo') ? (h("button", { name: this.button_name, type: "button", class: className, "aria-pressed": isSelected ? 'true' : 'false', "aria-label": this.iconLabel(item, index), onClick: () => this.selectSegment(index) }, h("i", { class: "material-icons material-symbols-outlined", "aria-hidden": "true" }, item))) : (h("button", { name: this.button_name, type: "button", class: className, "aria-pressed": isSelected ? 'true' : 'false', onClick: () => this.selectSegment(index) }, item));
@@ -20,7 +20,7 @@ export class DdaHorizontalStepper {
20
20
  }
21
21
  }
22
22
  render() {
23
- return (h(Host, { key: 'a5f2c88bb692cb7b5dafa69664f2e8f864ef7891' }, h("div", { key: '17a44cd43fa1d20bb34509c5d5e1722c47937a12', class: `${this.custom_class} ${this.component_mode} h-stepper-container` }, this.parsedSteps.map((step, index) => (h("div", { class: `h-step ${index === this.current_step ? 'active' : ''} ${index < this.current_step ? 'completed' : ''}` }, h("div", { class: "h-step-indicator" }, h("div", { class: "circle" })), h("div", { class: "h-step-content" }, h("div", { class: "h-step-title" }, step.title), h("div", { class: "h-step-subtitle" }, step.subtitle), h("div", { class: "h-step-description" }, step.description))))))));
23
+ return (h(Host, { key: '75261062c08c270dba9d852edb661a10ff4bb487' }, h("div", { key: 'f7eb40831a7b276848a4ef7bcaddafe05404aca8', class: `${this.custom_class} ${this.component_mode} h-stepper-container` }, this.parsedSteps.map((step, index) => (h("div", { class: `h-step ${index === this.current_step ? 'active' : ''} ${index < this.current_step ? 'completed' : ''}` }, h("div", { class: "h-step-indicator" }, h("div", { class: "circle" })), h("div", { class: "h-step-content" }, h("div", { class: "h-step-title" }, step.title), h("div", { class: "h-step-subtitle" }, step.subtitle), h("div", { class: "h-step-description" }, step.description))))))));
24
24
  }
25
25
  static get is() { return "dda-horizontal-stepper"; }
26
26
  static get originalStyleUrls() {
@@ -24,7 +24,7 @@ export class DdaVerticalStepper {
24
24
  render() {
25
25
  var _a;
26
26
  const current = (_a = this.current_step) !== null && _a !== void 0 ? _a : this.current_Step;
27
- return (h(Host, { key: '35d930b7e0eef90b1f0c6e8dce9fa49065b4fb6e' }, h("div", { key: '690ea598a073d296066e661d31a769802a5bcbdf', class: `${this.custom_class} ${this.component_mode} v-stepper-container` }, this.parsedSteps.map((step, index) => (h("div", { class: `v-step ${index <= current ? 'active' : ''}` }, h("div", { class: "v-step-indicator" }, h("div", { class: "icon" }, h("i", { class: `material-icons` }, step.icon))), h("div", { class: "v-step-content" }, h("div", { class: "v-step-title" }, step.title), h("div", { class: "v-step-subtitle" }, step.subtitle), h("div", { class: "v-step-description" }, step.description)), h("div", { class: "v-step-arrow" }, h("i", { class: "material-icons material-symbols-outlined" }, "chevron_right"))))))));
27
+ return (h(Host, { key: '65de2bf7a859c1deb216c9042031cde73378e622' }, h("div", { key: '38cd1783a7f3b5ba036aebace4fd3ce86b34a978', class: `${this.custom_class} ${this.component_mode} v-stepper-container` }, this.parsedSteps.map((step, index) => (h("div", { class: `v-step ${index <= current ? 'active' : ''}` }, h("div", { class: "v-step-indicator" }, h("div", { class: "icon" }, h("i", { class: `material-icons` }, step.icon))), h("div", { class: "v-step-content" }, h("div", { class: "v-step-title" }, step.title), h("div", { class: "v-step-subtitle" }, step.subtitle), h("div", { class: "v-step-description" }, step.description)), h("div", { class: "v-step-arrow" }, h("i", { class: "material-icons material-symbols-outlined" }, "chevron_right"))))))));
28
28
  }
29
29
  static get is() { return "dda-vertical-stepper"; }
30
30
  static get originalStyleUrls() {