@lifesg/react-design-system 4.0.0-alpha.4 → 4.0.0-alpha.6

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 (954) hide show
  1. package/accordion/accordion-item.styles_1j4eb32.css +2 -2
  2. package/accordion/accordion.d.ts +19 -0
  3. package/accordion/accordion.js.map +1 -1
  4. package/accordion/accordion.styles_bzrfrs.css +2 -2
  5. package/accordion/types.d.ts +42 -2
  6. package/alert/alert.d.ts +8 -0
  7. package/alert/alert.js.map +1 -1
  8. package/alert/alert.styles_patwo2.css +2 -2
  9. package/alert/types.d.ts +26 -2
  10. package/animations/loading-dots/loading-dots.styles_1rgrrmw.css +2 -2
  11. package/animations/loading-dots/lottie-animation.styles_1m15v69.css +1 -1
  12. package/animations/loading-dots-spinner/loading-dots-spinner.styles_1hcqkhs.css +2 -2
  13. package/animations/loading-dots-spinner/lottie-animation.styles_13d1unb.css +1 -1
  14. package/animations/loading-spinner/loading-spinner.styles_n6xoft.css +2 -2
  15. package/animations/loading-spinner/lottie-animation.styles_bnn4qt.css +1 -1
  16. package/avatar/avatar.d.ts +7 -0
  17. package/avatar/avatar.js.map +1 -1
  18. package/avatar/avatar.styles_16efw4.css +2 -2
  19. package/avatar/types.d.ts +11 -0
  20. package/badge/badge.d.ts +7 -0
  21. package/badge/badge.js.map +1 -1
  22. package/badge/badge.styles_1c3c6wj.css +2 -2
  23. package/badge/types.d.ts +20 -0
  24. package/box-container/box-container.d.ts +8 -0
  25. package/box-container/box-container.js.map +1 -1
  26. package/box-container/box-container.styles_5t2j9k.css +2 -2
  27. package/box-container/types.d.ts +24 -0
  28. package/breadcrumb/breadcrumb.d.ts +7 -0
  29. package/breadcrumb/breadcrumb.js.map +1 -1
  30. package/breadcrumb/breadcrumb.styles_1nl4aua.css +2 -2
  31. package/breadcrumb/types.d.ts +31 -0
  32. package/button/button.d.ts +1 -0
  33. package/button/button.js.map +1 -1
  34. package/button/button.styles_1pxy0co.css +2 -2
  35. package/button/types.d.ts +42 -9
  36. package/calendar/calendar.d.ts +3 -0
  37. package/calendar/calendar.js.map +1 -1
  38. package/calendar/calendar.styles_11ho5x8.css +2 -2
  39. package/calendar/types.d.ts +43 -7
  40. package/card/card.d.ts +1 -0
  41. package/card/card.js.map +1 -1
  42. package/card/card.styles_1gh9gs3.css +2 -2
  43. package/card/types.d.ts +1 -0
  44. package/checkbox/checkbox.d.ts +3 -0
  45. package/checkbox/checkbox.js.map +1 -1
  46. package/checkbox/checkbox.styles_gm5bu1.css +2 -2
  47. package/checkbox/types.d.ts +19 -3
  48. package/cjs/accordion/accordion-item.styles_1j4eb32.css +2 -2
  49. package/cjs/accordion/accordion.js.map +1 -1
  50. package/cjs/accordion/accordion.styles_bzrfrs.css +2 -2
  51. package/cjs/alert/alert.js.map +1 -1
  52. package/cjs/alert/alert.styles_patwo2.css +2 -2
  53. package/cjs/animations/loading-dots/loading-dots.styles_1rgrrmw.css +2 -2
  54. package/cjs/animations/loading-dots/lottie-animation.styles_1m15v69.css +1 -1
  55. package/cjs/animations/loading-dots-spinner/loading-dots-spinner.styles_1hcqkhs.css +2 -2
  56. package/cjs/animations/loading-dots-spinner/lottie-animation.styles_13d1unb.css +1 -1
  57. package/cjs/animations/loading-spinner/loading-spinner.styles_n6xoft.css +2 -2
  58. package/cjs/animations/loading-spinner/lottie-animation.styles_bnn4qt.css +1 -1
  59. package/cjs/avatar/avatar.js.map +1 -1
  60. package/cjs/avatar/avatar.styles_16efw4.css +2 -2
  61. package/cjs/badge/badge.js.map +1 -1
  62. package/cjs/badge/badge.styles_1c3c6wj.css +2 -2
  63. package/cjs/box-container/box-container.js.map +1 -1
  64. package/cjs/box-container/box-container.styles_5t2j9k.css +2 -2
  65. package/cjs/breadcrumb/breadcrumb.js.map +1 -1
  66. package/cjs/breadcrumb/breadcrumb.styles_1nl4aua.css +2 -2
  67. package/cjs/button/button.js.map +1 -1
  68. package/cjs/button/button.styles_1pxy0co.css +2 -2
  69. package/cjs/calendar/calendar.js.map +1 -1
  70. package/cjs/calendar/calendar.styles_11ho5x8.css +2 -2
  71. package/cjs/card/card.js.map +1 -1
  72. package/cjs/card/card.styles_1gh9gs3.css +2 -2
  73. package/cjs/checkbox/checkbox.js.map +1 -1
  74. package/cjs/checkbox/checkbox.styles_gm5bu1.css +2 -2
  75. package/cjs/countdown-timer/countdown-timer.js.map +1 -1
  76. package/cjs/countdown-timer/countdown-timer.styles_ipn1b0.css +2 -2
  77. package/cjs/dashed-border/dashed-border.js.map +1 -1
  78. package/cjs/dashed-border/dashed-border.styles_zszoox.css +2 -2
  79. package/cjs/data-table/data-table.js +1 -1
  80. package/cjs/data-table/data-table.js.map +1 -1
  81. package/cjs/data-table/data-table.styles.js +1 -1
  82. package/cjs/data-table/data-table.styles.js.map +1 -1
  83. package/cjs/data-table/data-table.styles_rxganh.css +27 -0
  84. package/cjs/date-input/date-input.js.map +1 -1
  85. package/cjs/date-input/date-input.styles_1r5kcc7.css +1 -1
  86. package/cjs/date-navigator/date-navigator.js.map +1 -1
  87. package/cjs/date-navigator/date-navigator.styles_wokh56.css +2 -2
  88. package/cjs/date-range-input/date-range-input.js.map +1 -1
  89. package/cjs/date-range-input/date-range-input.styles_1s7ojnj.css +2 -2
  90. package/cjs/divider/divider.js.map +1 -1
  91. package/cjs/divider/divider.styles_1xpzh8p.css +2 -2
  92. package/cjs/drawer/drawer.js.map +1 -1
  93. package/cjs/drawer/drawer.styles_94hx3y.css +2 -2
  94. package/cjs/e-signature/e-signature-canvas.js +1 -1
  95. package/cjs/e-signature/e-signature-canvas.js.map +1 -1
  96. package/cjs/e-signature/e-signature.js.map +1 -1
  97. package/cjs/e-signature/e-signature.styles_lukd9f.css +2 -2
  98. package/cjs/error-display/error-display.js.map +1 -1
  99. package/cjs/error-display/error-display.styles_d3tql1.css +2 -2
  100. package/cjs/external/dompurify/dist/purify.es.js +3 -3
  101. package/cjs/external/dompurify/dist/purify.es.js.map +1 -1
  102. package/cjs/external/lodash/_setCacheHas.js.map +1 -1
  103. package/cjs/external/lodash/lodash.js +1 -1
  104. package/cjs/external/lodash/lodash.js.map +1 -1
  105. package/cjs/feedback-rating/feedback-rating-stars-container.styles_dmi8z9.css +2 -2
  106. package/cjs/feedback-rating/feedback-rating.js.map +1 -1
  107. package/cjs/feedback-rating/feedback-rating.styles_1kdklb6.css +2 -2
  108. package/cjs/file-download/file-download.js.map +1 -1
  109. package/cjs/file-download/file-download.styles_iggk8q.css +2 -2
  110. package/cjs/file-download/file-list-card/file-list-card.styles.js +1 -1
  111. package/cjs/file-download/file-list-card/file-list-card.styles.js.map +1 -1
  112. package/{file-download/file-list-card/file-list-card.styles_oom8ii.css → cjs/file-download/file-list-card/file-list-card.styles_18j2gut.css} +3 -3
  113. package/cjs/file-upload/dropzone.styles_1pllsau.css +2 -2
  114. package/cjs/file-upload/file-item-edit.js +1 -1
  115. package/cjs/file-upload/file-item-edit.js.map +1 -1
  116. package/cjs/file-upload/file-item-edit.styles.js +1 -1
  117. package/cjs/file-upload/file-item-edit.styles.js.map +1 -1
  118. package/cjs/file-upload/{file-item-edit.styles_1qbpbxj.css → file-item-edit.styles_19bvztn.css} +6 -5
  119. package/cjs/file-upload/file-list/file-list.js +1 -1
  120. package/cjs/file-upload/file-list/file-list.js.map +1 -1
  121. package/cjs/file-upload/file-list/file-list.styles.js +1 -1
  122. package/cjs/file-upload/file-list/file-list.styles.js.map +1 -1
  123. package/cjs/file-upload/file-list/file-list.styles_1w7so98.css +3 -0
  124. package/cjs/file-upload/file-list-item/file-list-item-thumbnail.styles_1y4si19.css +2 -2
  125. package/cjs/file-upload/file-list-item/file-list-item.js +1 -1
  126. package/cjs/file-upload/file-list-item/file-list-item.js.map +1 -1
  127. package/cjs/file-upload/file-list-item/file-list-item.styles.js +1 -1
  128. package/cjs/file-upload/file-list-item/file-list-item.styles.js.map +1 -1
  129. package/cjs/file-upload/file-list-item/file-list-item.styles_o8000f.css +17 -0
  130. package/cjs/file-upload/file-upload.js +1 -1
  131. package/cjs/file-upload/file-upload.js.map +1 -1
  132. package/cjs/file-upload/file-upload.styles_9ffwcd.css +2 -2
  133. package/cjs/filter/addons/filter-item-checkbox.styles_7degw7.css +2 -2
  134. package/cjs/filter/filter-item-page.styles_17ewfrz.css +1 -1
  135. package/cjs/filter/filter-item.js.map +1 -1
  136. package/cjs/filter/filter-item.styles_cphjnj.css +2 -2
  137. package/cjs/filter/filter-modal.styles_qw3xlg.css +2 -2
  138. package/cjs/filter/filter-sidebar.styles_1otwpjl.css +2 -2
  139. package/cjs/filter/filter.js.map +1 -1
  140. package/cjs/filter/filter.styles_1ykijwm.css +2 -2
  141. package/cjs/footer/footer-download-app.styles_1v1j2us.css +2 -2
  142. package/cjs/footer/footer-resource-addon.styles_1jepb1d.css +2 -2
  143. package/cjs/footer/footer.js +1 -1
  144. package/cjs/footer/footer.js.map +1 -1
  145. package/cjs/footer/footer.styles_1msorhc.css +2 -2
  146. package/cjs/form/form-label-addon.js +1 -1
  147. package/cjs/form/form-label-addon.js.map +1 -1
  148. package/cjs/form/form-label-addon.styles_b00z8p.css +1 -1
  149. package/cjs/form/form-label.styles.js +1 -1
  150. package/cjs/form/form-label.styles.js.map +1 -1
  151. package/cjs/form/{form-label.styles_11r0652.css → form-label.styles_1nbe0bm.css} +2 -2
  152. package/cjs/form/form-textarea.styles_3p9qoy.css +2 -2
  153. package/cjs/form/form-wrapper.styles_199rslu.css +1 -1
  154. package/cjs/form/index.js +1 -1
  155. package/cjs/form/index.js.map +1 -1
  156. package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.js +1 -1
  157. package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.js.map +1 -1
  158. package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.styles_vc6y5c.css +2 -2
  159. package/cjs/fullscreen-image-carousel/stateful-image.styles_1xe8ypm.css +2 -2
  160. package/cjs/histogram-slider/histogram-slider.js.map +1 -1
  161. package/cjs/histogram-slider/histogram-slider.styles_wvd4w.css +2 -2
  162. package/cjs/image-button/image-button.js.map +1 -1
  163. package/cjs/image-button/image-button.styles_6n1qsr.css +2 -2
  164. package/cjs/index.js +1 -1
  165. package/cjs/input/input.js.map +1 -1
  166. package/cjs/input/input.styles_1cblor0.css +2 -2
  167. package/cjs/input-group/input-group-list-addon.styles_17iuqtw.css +2 -2
  168. package/cjs/input-group/input-group.js.map +1 -1
  169. package/cjs/input-group/input-group.styles_bqye6f.css +2 -2
  170. package/cjs/input-multi-select/input-multi-select.js.map +1 -1
  171. package/cjs/input-nested-multi-select/input-nested-multi-select.js.map +1 -1
  172. package/cjs/input-nested-select/input-nested-select.js.map +1 -1
  173. package/cjs/input-range-select/input-range-select.js.map +1 -1
  174. package/cjs/input-range-select/input-range-select.styles_adbrbm.css +2 -2
  175. package/cjs/input-range-slider/input-range-slider.js.map +1 -1
  176. package/cjs/input-range-slider/input-range-slider.styles_aljl2v.css +2 -2
  177. package/cjs/input-select/input-select.js.map +1 -1
  178. package/cjs/input-slider/input-slider.js.map +1 -1
  179. package/cjs/input-textarea/textarea-counter.styles_1n3wsnv.css +1 -1
  180. package/cjs/input-textarea/textarea.js.map +1 -1
  181. package/cjs/input-textarea/textarea.styles_22z4n3.css +2 -2
  182. package/cjs/language-switcher/dropdown-panel.styles_1qsjf8d.css +2 -2
  183. package/cjs/language-switcher/dropdown-variant.styles_1vrdfky.css +2 -2
  184. package/cjs/language-switcher/language-switcher.js.map +1 -1
  185. package/cjs/language-switcher/link-container-variant.styles_1iw6zux.css +2 -2
  186. package/cjs/layout/col-div.styles_16o6mwx.css +1 -1
  187. package/cjs/layout/container.styles_v70ec6.css +2 -2
  188. package/cjs/layout/index.js +1 -1
  189. package/cjs/layout/index.js.map +1 -1
  190. package/cjs/layout/section.styles_hstcaf.css +1 -1
  191. package/cjs/link-list/link-list.js.map +1 -1
  192. package/cjs/link-list/link-list.styles_m57vks.css +2 -2
  193. package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.js.map +1 -1
  194. package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.styles_uhd4xl.css +2 -2
  195. package/cjs/local-nav/local-nav-menu/local-nav-menu.js.map +1 -1
  196. package/cjs/local-nav/local-nav-menu/local-nav-menu.styles_pq19dh.css +2 -2
  197. package/cjs/markup/markup.js.map +1 -1
  198. package/cjs/markup/markup.style_1iu40x9.css +2 -2
  199. package/cjs/masked-input/masked-input.js.map +1 -1
  200. package/cjs/masked-input/masked-input.styles_1cm388a.css +2 -2
  201. package/cjs/masthead/masthead.js.map +1 -1
  202. package/cjs/masthead/masthead.styles_1huzon9.css +2 -2
  203. package/cjs/menu/menu-content.styles_p7ijll.css +2 -2
  204. package/cjs/menu/menu-item.styles_liyed8.css +2 -2
  205. package/cjs/menu/menu-link.styles_hfxoez.css +2 -2
  206. package/cjs/menu/menu-section.styles_g7my4d.css +2 -2
  207. package/cjs/menu/menu.js +1 -1
  208. package/cjs/menu/menu.js.map +1 -1
  209. package/cjs/modal/index.js.map +1 -1
  210. package/cjs/modal/modal-box.js +1 -1
  211. package/cjs/modal/modal-box.js.map +1 -1
  212. package/cjs/modal/modal-box.styles_y52cts.css +2 -2
  213. package/cjs/modal/modal.styles_1lbblx6.css +2 -2
  214. package/cjs/modal-v2/index.js +1 -1
  215. package/cjs/modal-v2/index.js.map +1 -1
  216. package/cjs/modal-v2/modal-v2.js +1 -1
  217. package/cjs/modal-v2/modal-v2.js.map +1 -1
  218. package/cjs/modal-v2/modal-v2.styles_a8gv5i.css +2 -2
  219. package/cjs/modal-v2/slots/card.js +1 -1
  220. package/cjs/modal-v2/slots/card.js.map +1 -1
  221. package/cjs/modal-v2/slots/slot-styles_13sd376.css +2 -2
  222. package/cjs/navbar/brand.styles_zcgddp.css +1 -1
  223. package/cjs/navbar/drawer.js +1 -1
  224. package/cjs/navbar/drawer.js.map +1 -1
  225. package/cjs/navbar/drawer.styles_7hnxp5.css +2 -2
  226. package/cjs/navbar/menu.styles_gdpqc.css +2 -2
  227. package/cjs/navbar/navbar-action-buttons.styles_1vpm0nk.css +2 -2
  228. package/cjs/navbar/navbar-items.styles_1i3ltot.css +2 -2
  229. package/cjs/navbar/navbar.js +1 -1
  230. package/cjs/navbar/navbar.js.map +1 -1
  231. package/cjs/navbar/navbar.styles_koy0c7.css +2 -2
  232. package/cjs/notification-banner/notification-banner-hoc.js.map +1 -1
  233. package/cjs/notification-banner/notification-banner.js.map +1 -1
  234. package/cjs/notification-banner/notification-banner.styles_uxlysy.css +2 -2
  235. package/cjs/otp-input/otp-input.js.map +1 -1
  236. package/cjs/otp-input/otp-input.styles_5sbutl.css +2 -2
  237. package/cjs/otp-verification/contact-input-section.styles_odrjvt.css +2 -2
  238. package/cjs/otp-verification/otp-verification.js.map +1 -1
  239. package/cjs/otp-verification/otp-verification.styles_dg9bm8.css +1 -1
  240. package/cjs/otp-verification/thumbnail/thumbnail.styles_shqylh.css +2 -2
  241. package/cjs/otp-verification/verification-section.styles_x8jj.css +2 -2
  242. package/cjs/overlay/overlay.js +1 -1
  243. package/cjs/overlay/overlay.js.map +1 -1
  244. package/cjs/overlay/overlay.styles_12wym18.css +2 -2
  245. package/cjs/pagination/pagination.js.map +1 -1
  246. package/cjs/pagination/pagination.styles_6bcgva.css +2 -2
  247. package/cjs/phone-number-input/phone-number-input.js.map +1 -1
  248. package/cjs/pill/pill.js.map +1 -1
  249. package/cjs/pill/pill.styles_xwrniu.css +2 -2
  250. package/cjs/popover/popover-inline/popover-inline.js.map +1 -1
  251. package/cjs/popover/popover-inline/popover-inline.styles_bkopnt.css +2 -2
  252. package/cjs/popover/popover-trigger.js.map +1 -1
  253. package/cjs/popover/popover-trigger.styles_8zokig.css +1 -1
  254. package/cjs/popover/popover.js +1 -1
  255. package/cjs/popover/popover.js.map +1 -1
  256. package/cjs/popover/popover.styles_ujnf0h.css +2 -2
  257. package/cjs/predictive-text-input/predictive-text-input.js.map +1 -1
  258. package/cjs/progress-indicator/progress-indicator.js.map +1 -1
  259. package/cjs/progress-indicator/progress-indicator.styles_1c038s4.css +2 -2
  260. package/cjs/radio-button/radio-button.js.map +1 -1
  261. package/cjs/radio-button/radio-button.styles_1c4v6v.css +2 -2
  262. package/cjs/schedule/schedule-day-view/schedule-day-view.styles_8ti149.css +2 -2
  263. package/cjs/schedule/schedule-header/schedule-header.js +1 -1
  264. package/cjs/schedule/schedule-header/schedule-header.js.map +1 -1
  265. package/cjs/schedule/schedule-header/schedule-header.styles_1n2u5vj.css +2 -2
  266. package/cjs/schedule/schedule-week-view/schedule-week-view.styles_x7x50m.css +2 -2
  267. package/cjs/schedule/schedule-week-view/time-cell.styles_1sorjz8.css +2 -2
  268. package/cjs/schedule/schedule.js.map +1 -1
  269. package/cjs/schedule/schedule.styles_fdy5a1.css +2 -2
  270. package/cjs/schedule/shared/with-optional-popover.js +1 -1
  271. package/cjs/schedule/shared/with-optional-popover.js.map +1 -1
  272. package/cjs/schedule/shared/with-optional-popover.styles_7mv3p2.css +1 -1
  273. package/cjs/schedule/time-indicator/time-indicator.styles_1eaxyes.css +2 -2
  274. package/cjs/select-histogram/select-histogram.js.map +1 -1
  275. package/cjs/select-histogram/select-histogram.styles_n260dy.css +2 -2
  276. package/cjs/shared/accessibility/index_13g9vp.css +1 -1
  277. package/cjs/shared/clickable-icon/clickable-icon.styles_1v2imml.css +2 -2
  278. package/cjs/shared/component-loading-spinner/component-loading-spinner.styles_15eq02i.css +2 -2
  279. package/cjs/shared/dropdown-list/dropdown-label.styles_mloii0.css +2 -2
  280. package/cjs/shared/dropdown-list/dropdown-list.styles_konwm.css +2 -2
  281. package/cjs/shared/dropdown-list/dropdown-search.styles_1hc1gkh.css +2 -2
  282. package/cjs/shared/dropdown-list/expandable-element.styles_rkkvqr.css +2 -2
  283. package/cjs/shared/dropdown-list/nested-dropdown-list.styles_wdhxoe.css +2 -2
  284. package/cjs/shared/dropdown-wrapper/dropdown-wrapper.styles_15hwwoj.css +2 -2
  285. package/cjs/shared/fade-wrapper/fade-wrapper.styles_16iug7l.css +2 -2
  286. package/cjs/shared/image-placeholder/image-placeholder.styles_44nwil.css +1 -1
  287. package/cjs/shared/input-wrapper/input-wrapper.styles_je6maw.css +2 -2
  288. package/cjs/shared/internal-calendar/calendar-dropdown.styles_wybjai.css +1 -1
  289. package/cjs/shared/internal-calendar/calendar-manager.js +1 -1
  290. package/cjs/shared/internal-calendar/calendar-manager.js.map +1 -1
  291. package/cjs/shared/internal-calendar/calendar-manager.styles.js +1 -1
  292. package/cjs/shared/internal-calendar/calendar-manager.styles.js.map +1 -1
  293. package/cjs/shared/internal-calendar/{calendar-manager.styles_1iuq5zw.css → calendar-manager.styles_1njwkj2.css} +3 -3
  294. package/cjs/shared/internal-calendar/day-cell/day-cell.styles_1t5oqc1.css +2 -2
  295. package/cjs/shared/internal-calendar/internal-calendar-month.styles_14oh57f.css +2 -2
  296. package/cjs/shared/internal-calendar/internal-calendar-year.styles_therlc.css +2 -2
  297. package/cjs/shared/internal-calendar/internal-calendar.styles_gnc3eq.css +1 -1
  298. package/cjs/shared/internal-calendar/standard/standard-calendar-day-view.styles_1bw26au.css +2 -2
  299. package/cjs/shared/progress-bar/progress-bar.styles_125ri7a.css +1 -1
  300. package/cjs/shared/range-input-inner-container/range-input-inner-container.styles_1v61utg.css +2 -2
  301. package/cjs/shared/standalone-date-input/standalone-date-input.styles_157qo89.css +2 -2
  302. package/cjs/shared/time-slot/time-slot.styles_18s0to7.css +2 -2
  303. package/cjs/shared/timepicker-dropdown/timepicker-dropdown.styles_119l6k6.css +2 -2
  304. package/cjs/sidenav/sidenav-drawer-item.styles_1ljnyx2.css +2 -2
  305. package/cjs/sidenav/sidenav-drawer-subitem.styles_2y58kf.css +1 -1
  306. package/cjs/sidenav/sidenav-group.styles_1x604sw.css +2 -2
  307. package/cjs/sidenav/sidenav-item.styles_lqw3kh.css +2 -2
  308. package/cjs/sidenav/sidenav.js.map +1 -1
  309. package/cjs/sidenav/sidenav.styles_1vxezie.css +2 -2
  310. package/cjs/singpass-button/singpass-button.js.map +1 -1
  311. package/cjs/singpass-button/singpass-button.styles_1miyex3.css +2 -2
  312. package/cjs/smart-app-banner/smart-app-banner.js.map +1 -1
  313. package/cjs/smart-app-banner/smart-app-banner.styles_15u6yv4.css +2 -2
  314. package/cjs/tab/tab-link-chain.styles_49got4.css +2 -2
  315. package/cjs/tab/tab.js.map +1 -1
  316. package/cjs/tab/tab.styles_1najffw.css +1 -1
  317. package/cjs/table/table.js.map +1 -1
  318. package/cjs/table/table.styles.js +1 -1
  319. package/cjs/table/table.styles.js.map +1 -1
  320. package/cjs/table/{table.styles_1af5ipv.css → table.styles_1vjx31g.css} +2 -2
  321. package/cjs/tag/tag.js.map +1 -1
  322. package/cjs/tag/tag.style_d98c53.css +2 -2
  323. package/cjs/text-list/index.js.map +1 -1
  324. package/cjs/text-list/text-list.styles_w3fvyt.css +2 -2
  325. package/cjs/theme/theme-provider/breakpoint.js +1 -1
  326. package/cjs/theme/theme-provider/breakpoint.js.map +1 -1
  327. package/cjs/theme/theme-provider/hooks.js.map +1 -1
  328. package/cjs/theme/theme-provider/index.js.map +1 -1
  329. package/cjs/theme/tokens/border.js.map +1 -1
  330. package/cjs/theme/tokens/breakpoint.js.map +1 -1
  331. package/cjs/theme/tokens/colour.js.map +1 -1
  332. package/cjs/theme/tokens/component.js.map +1 -1
  333. package/cjs/theme/tokens/font.js.map +1 -1
  334. package/cjs/theme/tokens/media-query.js.map +1 -1
  335. package/cjs/theme/tokens/motion.js.map +1 -1
  336. package/cjs/theme/tokens/radius.js.map +1 -1
  337. package/cjs/theme/tokens/shadow.js.map +1 -1
  338. package/cjs/theme/tokens/spacing.js.map +1 -1
  339. package/cjs/theme/types.js +1 -1
  340. package/cjs/theme/types.js.map +1 -1
  341. package/cjs/theme/utils/css-variable.js.map +1 -1
  342. package/cjs/theme/utils/font.js.map +1 -1
  343. package/cjs/theme/utils/use-apply-styles.js +1 -1
  344. package/cjs/theme/utils/use-apply-styles.js.map +1 -1
  345. package/cjs/theme/utils/use-design-token-override.js +2 -0
  346. package/cjs/theme/utils/use-design-token-override.js.map +1 -0
  347. package/cjs/theme/utils/use-design-token.js.map +1 -1
  348. package/cjs/theme/utils/use-media-query.js.map +1 -1
  349. package/cjs/time-range-picker/combobox-picker/combobox-picker.js +1 -1
  350. package/cjs/time-range-picker/combobox-picker/combobox-picker.js.map +1 -1
  351. package/cjs/time-range-picker/combobox-picker/combobox-picker.styles_7i9vso.css +1 -1
  352. package/cjs/time-range-picker/common.styles.js +1 -1
  353. package/cjs/time-range-picker/common.styles.js.map +1 -1
  354. package/cjs/time-range-picker/{common.styles_1qwp4xa.css → common.styles_cnkkax.css} +2 -1
  355. package/cjs/time-range-picker/dial-picker/dial-picker.js +1 -1
  356. package/cjs/time-range-picker/dial-picker/dial-picker.js.map +1 -1
  357. package/cjs/time-range-picker/time-range-picker.js.map +1 -1
  358. package/cjs/time-slot-bar/time-slot-bar.js.map +1 -1
  359. package/cjs/time-slot-bar/time-slot-bar.styles_wigbyd.css +2 -2
  360. package/cjs/time-slot-bar-week/time-slot-bar-week-days.styles_evdvs9.css +2 -2
  361. package/cjs/time-slot-bar-week/time-slot-bar-week.js.map +1 -1
  362. package/cjs/time-slot-bar-week/time-slot-bar-week.styles_11ybf42.css +1 -1
  363. package/cjs/time-slot-week-view/time-slot-week-days.styles_1h21vyw.css +2 -2
  364. package/cjs/time-slot-week-view/time-slot-week-view.js.map +1 -1
  365. package/cjs/time-slot-week-view/time-slot-week-view.styles_gqgsw2.css +1 -1
  366. package/cjs/timeline/timeline.js.map +1 -1
  367. package/cjs/timeline/timeline.styles_1jxzik4.css +2 -2
  368. package/cjs/timepicker/timepicker.js +1 -1
  369. package/cjs/timepicker/timepicker.js.map +1 -1
  370. package/cjs/timepicker/timepicker.styles.js +1 -1
  371. package/cjs/timepicker/timepicker.styles.js.map +1 -1
  372. package/cjs/timepicker/timepicker.styles_lyizvq.css +2 -0
  373. package/cjs/timetable/timetable-header/timetable-header.styles_11gl1h4.css +2 -2
  374. package/cjs/timetable/timetable-row/row-bar.styles_1x0vrsz.css +1 -1
  375. package/cjs/timetable/timetable-row/row-cell.styles_y1dl5j.css +2 -2
  376. package/cjs/timetable/timetable-row/with-optional-popover.js +1 -1
  377. package/cjs/timetable/timetable-row/with-optional-popover.js.map +1 -1
  378. package/cjs/timetable/timetable.js +1 -1
  379. package/cjs/timetable/timetable.js.map +1 -1
  380. package/cjs/timetable/timetable.styles_7rp8kz.css +2 -2
  381. package/cjs/toast/toast.js.map +1 -1
  382. package/cjs/toast/toast.styles_1e0l60w.css +2 -2
  383. package/cjs/toggle/toggle-icon.styles_ba71y.css +2 -2
  384. package/cjs/toggle/toggle.js.map +1 -1
  385. package/cjs/toggle/toggle.styles_1t5qrye.css +2 -2
  386. package/cjs/typography/index.js.map +1 -1
  387. package/cjs/typography/typography-text.styles_1734x2k.css +2 -2
  388. package/cjs/typography/typography.styles.js +1 -1
  389. package/cjs/typography/typography.styles.js.map +1 -1
  390. package/cjs/typography/{typography.styles_1155j4c.css → typography.styles_1wd82dn.css} +2 -2
  391. package/cjs/uneditable-section/index.js.map +1 -1
  392. package/cjs/uneditable-section/section-item.styles_mwx8ht.css +2 -2
  393. package/cjs/uneditable-section/uneditable-section.js +1 -1
  394. package/cjs/uneditable-section/uneditable-section.js.map +1 -1
  395. package/cjs/uneditable-section/uneditable-section.styles_aj9zun.css +2 -2
  396. package/cjs/unit-number/unit-number-input.js.map +1 -1
  397. package/cjs/unit-number/unit-number-input.styles_8yizj.css +2 -2
  398. package/cjs/util/merge-refs.js.map +1 -1
  399. package/cjs/util/use-throttle.js +2 -0
  400. package/cjs/util/use-throttle.js.map +1 -0
  401. package/countdown-timer/countdown-timer.d.ts +6 -0
  402. package/countdown-timer/countdown-timer.js.map +1 -1
  403. package/countdown-timer/countdown-timer.styles_ipn1b0.css +2 -2
  404. package/countdown-timer/types.d.ts +55 -11
  405. package/dashed-border/dashed-border.d.ts +6 -0
  406. package/dashed-border/dashed-border.js.map +1 -1
  407. package/dashed-border/dashed-border.styles_zszoox.css +2 -2
  408. package/dashed-border/types.d.ts +27 -5
  409. package/data-table/data-table.d.ts +8 -0
  410. package/data-table/data-table.js +1 -1
  411. package/data-table/data-table.js.map +1 -1
  412. package/data-table/data-table.styles.d.ts +2 -1
  413. package/data-table/data-table.styles.js +1 -1
  414. package/data-table/data-table.styles.js.map +1 -1
  415. package/data-table/data-table.styles_rxganh.css +27 -0
  416. package/data-table/types.d.ts +58 -12
  417. package/date-input/date-input.d.ts +5 -0
  418. package/date-input/date-input.js.map +1 -1
  419. package/date-input/date-input.styles_1r5kcc7.css +1 -1
  420. package/date-input/types.d.ts +32 -16
  421. package/date-navigator/date-navigator.d.ts +6 -0
  422. package/date-navigator/date-navigator.js.map +1 -1
  423. package/date-navigator/date-navigator.styles_wokh56.css +2 -2
  424. package/date-navigator/types.d.ts +44 -7
  425. package/date-range-input/date-range-input.d.ts +4 -0
  426. package/date-range-input/date-range-input.js.map +1 -1
  427. package/date-range-input/date-range-input.styles_1s7ojnj.css +2 -2
  428. package/date-range-input/types.d.ts +50 -14
  429. package/divider/divider.d.ts +6 -0
  430. package/divider/divider.js.map +1 -1
  431. package/divider/divider.styles_1xpzh8p.css +2 -2
  432. package/divider/types.d.ts +27 -4
  433. package/drawer/drawer.d.ts +7 -0
  434. package/drawer/drawer.js.map +1 -1
  435. package/drawer/drawer.styles_94hx3y.css +2 -2
  436. package/drawer/types.d.ts +16 -4
  437. package/e-signature/e-signature-canvas.js +1 -1
  438. package/e-signature/e-signature-canvas.js.map +1 -1
  439. package/e-signature/e-signature.d.ts +5 -0
  440. package/e-signature/e-signature.js.map +1 -1
  441. package/e-signature/e-signature.styles_lukd9f.css +2 -2
  442. package/e-signature/types.d.ts +23 -1
  443. package/error-display/error-display.d.ts +7 -0
  444. package/error-display/error-display.js.map +1 -1
  445. package/error-display/error-display.styles_d3tql1.css +2 -2
  446. package/error-display/types.d.ts +36 -6
  447. package/external/dompurify/dist/purify.es.js +2 -2
  448. package/external/dompurify/dist/purify.es.js.map +1 -1
  449. package/external/lodash/_setCacheHas.js.map +1 -1
  450. package/external/lodash/lodash.js +1 -1
  451. package/external/lodash/lodash.js.map +1 -1
  452. package/feedback-rating/feedback-rating-stars-container.styles_dmi8z9.css +2 -2
  453. package/feedback-rating/feedback-rating.d.ts +6 -0
  454. package/feedback-rating/feedback-rating.js.map +1 -1
  455. package/feedback-rating/feedback-rating.styles_1kdklb6.css +2 -2
  456. package/feedback-rating/types.d.ts +29 -0
  457. package/file-download/file-download.d.ts +6 -0
  458. package/file-download/file-download.js.map +1 -1
  459. package/file-download/file-download.styles_iggk8q.css +2 -2
  460. package/file-download/file-list-card/file-list-card.styles.js +1 -1
  461. package/file-download/file-list-card/file-list-card.styles.js.map +1 -1
  462. package/{cjs/file-download/file-list-card/file-list-card.styles_oom8ii.css → file-download/file-list-card/file-list-card.styles_18j2gut.css} +3 -3
  463. package/file-download/types.d.ts +44 -11
  464. package/file-upload/dropzone.styles_1pllsau.css +2 -2
  465. package/file-upload/file-item-edit.d.ts +4 -1
  466. package/file-upload/file-item-edit.js +1 -1
  467. package/file-upload/file-item-edit.js.map +1 -1
  468. package/file-upload/file-item-edit.styles.d.ts +1 -0
  469. package/file-upload/file-item-edit.styles.js +1 -1
  470. package/file-upload/file-item-edit.styles.js.map +1 -1
  471. package/file-upload/{file-item-edit.styles_1qbpbxj.css → file-item-edit.styles_19bvztn.css} +6 -5
  472. package/file-upload/file-list/file-list.d.ts +3 -0
  473. package/file-upload/file-list/file-list.js +1 -1
  474. package/file-upload/file-list/file-list.js.map +1 -1
  475. package/file-upload/file-list/file-list.styles.js +1 -1
  476. package/file-upload/file-list/file-list.styles.js.map +1 -1
  477. package/file-upload/file-list/file-list.styles_1w7so98.css +3 -0
  478. package/file-upload/file-list-item/file-list-item-thumbnail.styles_1y4si19.css +2 -2
  479. package/file-upload/file-list-item/file-list-item.d.ts +3 -1
  480. package/file-upload/file-list-item/file-list-item.js +1 -1
  481. package/file-upload/file-list-item/file-list-item.js.map +1 -1
  482. package/file-upload/file-list-item/file-list-item.styles.d.ts +3 -0
  483. package/file-upload/file-list-item/file-list-item.styles.js +1 -1
  484. package/file-upload/file-list-item/file-list-item.styles.js.map +1 -1
  485. package/file-upload/file-list-item/file-list-item.styles_o8000f.css +17 -0
  486. package/file-upload/file-upload.d.ts +2 -1
  487. package/file-upload/file-upload.js +1 -1
  488. package/file-upload/file-upload.js.map +1 -1
  489. package/file-upload/file-upload.styles_9ffwcd.css +2 -2
  490. package/file-upload/types.d.ts +124 -20
  491. package/filter/addons/filter-item-checkbox.styles_7degw7.css +2 -2
  492. package/filter/filter-item-page.styles_17ewfrz.css +1 -1
  493. package/filter/filter-item.js.map +1 -1
  494. package/filter/filter-item.styles_cphjnj.css +2 -2
  495. package/filter/filter-modal.styles_qw3xlg.css +2 -2
  496. package/filter/filter-sidebar.styles_1otwpjl.css +2 -2
  497. package/filter/filter.d.ts +21 -0
  498. package/filter/filter.js.map +1 -1
  499. package/filter/filter.styles_1ykijwm.css +2 -2
  500. package/filter/types.d.ts +157 -21
  501. package/footer/footer-download-app.styles_1v1j2us.css +2 -2
  502. package/footer/footer-resource-addon.styles_1jepb1d.css +2 -2
  503. package/footer/footer.d.ts +8 -1
  504. package/footer/footer.js +1 -1
  505. package/footer/footer.js.map +1 -1
  506. package/footer/footer.styles_1msorhc.css +2 -2
  507. package/footer/types.d.ts +55 -4
  508. package/form/form-label-addon.js +1 -1
  509. package/form/form-label-addon.js.map +1 -1
  510. package/form/form-label-addon.styles_b00z8p.css +1 -1
  511. package/form/form-label.styles.js +1 -1
  512. package/form/form-label.styles.js.map +1 -1
  513. package/form/{form-label.styles_11r0652.css → form-label.styles_1nbe0bm.css} +2 -2
  514. package/form/form-textarea.styles_3p9qoy.css +2 -2
  515. package/form/form-wrapper.styles_199rslu.css +1 -1
  516. package/form/index.d.ts +65 -8
  517. package/form/index.js +1 -1
  518. package/form/index.js.map +1 -1
  519. package/form/types.d.ts +155 -6
  520. package/fullscreen-image-carousel/fullscreen-image-carousel.d.ts +7 -0
  521. package/fullscreen-image-carousel/fullscreen-image-carousel.js +1 -1
  522. package/fullscreen-image-carousel/fullscreen-image-carousel.js.map +1 -1
  523. package/fullscreen-image-carousel/fullscreen-image-carousel.styles_vc6y5c.css +2 -2
  524. package/fullscreen-image-carousel/stateful-image.styles_1xe8ypm.css +2 -2
  525. package/fullscreen-image-carousel/types.d.ts +91 -3
  526. package/histogram-slider/histogram-slider.d.ts +6 -0
  527. package/histogram-slider/histogram-slider.js.map +1 -1
  528. package/histogram-slider/histogram-slider.styles_wvd4w.css +2 -2
  529. package/histogram-slider/types.d.ts +63 -3
  530. package/image-button/image-button.d.ts +6 -0
  531. package/image-button/image-button.js.map +1 -1
  532. package/image-button/image-button.styles_6n1qsr.css +2 -2
  533. package/image-button/types.d.ts +11 -1
  534. package/index.d.ts +0 -1
  535. package/index.js +1 -1
  536. package/input/input.d.ts +6 -0
  537. package/input/input.js.map +1 -1
  538. package/input/input.styles_1cblor0.css +2 -2
  539. package/input/types.d.ts +38 -2
  540. package/input-group/input-group-list-addon.styles_17iuqtw.css +2 -2
  541. package/input-group/input-group.d.ts +7 -0
  542. package/input-group/input-group.js.map +1 -1
  543. package/input-group/input-group.styles_bqye6f.css +2 -2
  544. package/input-group/types.d.ts +84 -8
  545. package/input-multi-select/input-multi-select.d.ts +6 -0
  546. package/input-multi-select/input-multi-select.js.map +1 -1
  547. package/input-multi-select/types.d.ts +46 -5
  548. package/input-nested-multi-select/input-nested-multi-select.d.ts +8 -0
  549. package/input-nested-multi-select/input-nested-multi-select.js.map +1 -1
  550. package/input-nested-multi-select/types.d.ts +35 -5
  551. package/input-nested-select/input-nested-select.d.ts +9 -2
  552. package/input-nested-select/input-nested-select.js.map +1 -1
  553. package/input-nested-select/types.d.ts +77 -8
  554. package/input-range-select/input-range-select.d.ts +6 -0
  555. package/input-range-select/input-range-select.js.map +1 -1
  556. package/input-range-select/input-range-select.styles_adbrbm.css +2 -2
  557. package/input-range-select/types.d.ts +68 -1
  558. package/input-range-slider/input-range-slider.d.ts +7 -0
  559. package/input-range-slider/input-range-slider.js.map +1 -1
  560. package/input-range-slider/input-range-slider.styles_aljl2v.css +2 -2
  561. package/input-range-slider/types.d.ts +91 -6
  562. package/input-select/input-select.d.ts +5 -0
  563. package/input-select/input-select.js.map +1 -1
  564. package/input-select/types.d.ts +70 -14
  565. package/input-slider/input-slider.d.ts +6 -0
  566. package/input-slider/input-slider.js.map +1 -1
  567. package/input-slider/types.d.ts +21 -2
  568. package/input-textarea/textarea-counter.styles_1n3wsnv.css +1 -1
  569. package/input-textarea/textarea.d.ts +3 -0
  570. package/input-textarea/textarea.js.map +1 -1
  571. package/input-textarea/textarea.styles_22z4n3.css +2 -2
  572. package/input-textarea/types.d.ts +24 -1
  573. package/language-switcher/dropdown-panel.styles_1qsjf8d.css +2 -2
  574. package/language-switcher/dropdown-variant.styles_1vrdfky.css +2 -2
  575. package/language-switcher/language-switcher.d.ts +6 -0
  576. package/language-switcher/language-switcher.js.map +1 -1
  577. package/language-switcher/link-container-variant.styles_1iw6zux.css +2 -2
  578. package/language-switcher/types.d.ts +23 -0
  579. package/layout/col-div.styles_16o6mwx.css +1 -1
  580. package/layout/container.styles_v70ec6.css +2 -2
  581. package/layout/index.d.ts +16 -2
  582. package/layout/index.js +1 -1
  583. package/layout/index.js.map +1 -1
  584. package/layout/section.styles_hstcaf.css +1 -1
  585. package/layout/types.d.ts +61 -3
  586. package/link-list/internal-types.d.ts +57 -3
  587. package/link-list/link-list.d.ts +6 -0
  588. package/link-list/link-list.js.map +1 -1
  589. package/link-list/link-list.styles_m57vks.css +2 -2
  590. package/link-list/types.d.ts +3 -0
  591. package/local-nav/local-nav-dropdown/local-nav-dropdown.d.ts +11 -0
  592. package/local-nav/local-nav-dropdown/local-nav-dropdown.js.map +1 -1
  593. package/local-nav/local-nav-dropdown/local-nav-dropdown.styles_uhd4xl.css +2 -2
  594. package/local-nav/local-nav-menu/local-nav-menu.d.ts +6 -0
  595. package/local-nav/local-nav-menu/local-nav-menu.js.map +1 -1
  596. package/local-nav/local-nav-menu/local-nav-menu.styles_pq19dh.css +2 -2
  597. package/local-nav/types.d.ts +51 -0
  598. package/markup/markup.d.ts +6 -0
  599. package/markup/markup.js.map +1 -1
  600. package/markup/markup.style_1iu40x9.css +2 -2
  601. package/markup/types.d.ts +6 -2
  602. package/masked-input/masked-input.d.ts +6 -0
  603. package/masked-input/masked-input.js.map +1 -1
  604. package/masked-input/masked-input.styles_1cm388a.css +2 -2
  605. package/masked-input/types.d.ts +83 -8
  606. package/masthead/masthead.d.ts +6 -0
  607. package/masthead/masthead.js.map +1 -1
  608. package/masthead/masthead.styles_1huzon9.css +2 -2
  609. package/masthead/types.d.ts +9 -0
  610. package/menu/menu-content.styles_p7ijll.css +2 -2
  611. package/menu/menu-item.styles_liyed8.css +2 -2
  612. package/menu/menu-link.styles_hfxoez.css +2 -2
  613. package/menu/menu-section.styles_g7my4d.css +2 -2
  614. package/menu/menu.d.ts +27 -4
  615. package/menu/menu.js +1 -1
  616. package/menu/menu.js.map +1 -1
  617. package/menu/types.d.ts +32 -0
  618. package/modal/index.d.ts +13 -0
  619. package/modal/index.js.map +1 -1
  620. package/modal/modal-box.js +1 -1
  621. package/modal/modal-box.js.map +1 -1
  622. package/modal/modal-box.styles_y52cts.css +2 -2
  623. package/modal/modal.styles_1lbblx6.css +2 -2
  624. package/modal/types.d.ts +54 -7
  625. package/modal-v2/index.d.ts +1 -15
  626. package/modal-v2/index.js +1 -1
  627. package/modal-v2/index.js.map +1 -1
  628. package/modal-v2/modal-v2.d.ts +32 -1
  629. package/modal-v2/modal-v2.js +1 -1
  630. package/modal-v2/modal-v2.js.map +1 -1
  631. package/modal-v2/modal-v2.styles_a8gv5i.css +2 -2
  632. package/modal-v2/slots/card.js +1 -1
  633. package/modal-v2/slots/card.js.map +1 -1
  634. package/modal-v2/slots/slot-styles_13sd376.css +2 -2
  635. package/modal-v2/types.d.ts +75 -8
  636. package/navbar/brand.styles_zcgddp.css +1 -1
  637. package/navbar/drawer.js +1 -1
  638. package/navbar/drawer.js.map +1 -1
  639. package/navbar/drawer.styles_7hnxp5.css +2 -2
  640. package/navbar/menu.styles_gdpqc.css +2 -2
  641. package/navbar/navbar-action-buttons.styles_1vpm0nk.css +2 -2
  642. package/navbar/navbar-items.styles_1i3ltot.css +2 -2
  643. package/navbar/navbar.d.ts +7 -0
  644. package/navbar/navbar.js +1 -1
  645. package/navbar/navbar.js.map +1 -1
  646. package/navbar/navbar.styles_koy0c7.css +2 -2
  647. package/navbar/types.d.ts +200 -13
  648. package/notification-banner/notification-banner-hoc.d.ts +6 -0
  649. package/notification-banner/notification-banner-hoc.js.map +1 -1
  650. package/notification-banner/notification-banner.d.ts +7 -0
  651. package/notification-banner/notification-banner.js.map +1 -1
  652. package/notification-banner/notification-banner.styles_uxlysy.css +2 -2
  653. package/notification-banner/types.d.ts +57 -2
  654. package/otp-input/otp-input.d.ts +7 -0
  655. package/otp-input/otp-input.js.map +1 -1
  656. package/otp-input/otp-input.styles_5sbutl.css +2 -2
  657. package/otp-input/types.d.ts +54 -11
  658. package/otp-verification/contact-input-section.styles_odrjvt.css +2 -2
  659. package/otp-verification/internal-types.d.ts +22 -5
  660. package/otp-verification/otp-verification.d.ts +6 -0
  661. package/otp-verification/otp-verification.js.map +1 -1
  662. package/otp-verification/otp-verification.styles_dg9bm8.css +1 -1
  663. package/otp-verification/thumbnail/thumbnail.styles_shqylh.css +2 -2
  664. package/otp-verification/types.d.ts +125 -6
  665. package/otp-verification/verification-section.styles_x8jj.css +2 -2
  666. package/overlay/overlay.d.ts +7 -0
  667. package/overlay/overlay.js +1 -1
  668. package/overlay/overlay.js.map +1 -1
  669. package/overlay/overlay.styles_12wym18.css +2 -2
  670. package/overlay/types.d.ts +57 -15
  671. package/package.json +1 -7
  672. package/pagination/pagination.d.ts +5 -0
  673. package/pagination/pagination.js.map +1 -1
  674. package/pagination/pagination.styles_6bcgva.css +2 -2
  675. package/pagination/types.d.ts +48 -0
  676. package/phone-number-input/phone-number-input.d.ts +7 -0
  677. package/phone-number-input/phone-number-input.js.map +1 -1
  678. package/phone-number-input/types.d.ts +78 -13
  679. package/pill/pill.d.ts +6 -0
  680. package/pill/pill.js.map +1 -1
  681. package/pill/pill.styles_xwrniu.css +2 -2
  682. package/pill/types.d.ts +19 -0
  683. package/popover/popover-inline/popover-inline.d.ts +5 -0
  684. package/popover/popover-inline/popover-inline.js.map +1 -1
  685. package/popover/popover-inline/popover-inline.styles_bkopnt.css +2 -2
  686. package/popover/popover-trigger.d.ts +6 -0
  687. package/popover/popover-trigger.js.map +1 -1
  688. package/popover/popover-trigger.styles_8zokig.css +1 -1
  689. package/popover/popover.d.ts +6 -0
  690. package/popover/popover.js +1 -1
  691. package/popover/popover.js.map +1 -1
  692. package/popover/popover.styles_ujnf0h.css +2 -2
  693. package/popover/types.d.ts +150 -3
  694. package/predictive-text-input/predictive-text-input.d.ts +6 -0
  695. package/predictive-text-input/predictive-text-input.js.map +1 -1
  696. package/predictive-text-input/types.d.ts +65 -11
  697. package/progress-indicator/progress-indicator.d.ts +7 -0
  698. package/progress-indicator/progress-indicator.js.map +1 -1
  699. package/progress-indicator/progress-indicator.styles_1c038s4.css +2 -2
  700. package/progress-indicator/types.d.ts +18 -0
  701. package/radio-button/radio-button.d.ts +5 -0
  702. package/radio-button/radio-button.js.map +1 -1
  703. package/radio-button/radio-button.styles_1c4v6v.css +2 -2
  704. package/radio-button/types.d.ts +11 -0
  705. package/schedule/internal-types.d.ts +18 -0
  706. package/schedule/schedule-day-view/schedule-day-view.styles_8ti149.css +2 -2
  707. package/schedule/schedule-day-view/types.d.ts +2 -1
  708. package/schedule/schedule-header/schedule-header.js +1 -1
  709. package/schedule/schedule-header/schedule-header.js.map +1 -1
  710. package/schedule/schedule-header/schedule-header.styles_1n2u5vj.css +2 -2
  711. package/schedule/schedule-week-view/schedule-week-view.styles_x7x50m.css +2 -2
  712. package/schedule/schedule-week-view/time-cell.styles_1sorjz8.css +2 -2
  713. package/schedule/schedule-week-view/types.d.ts +2 -1
  714. package/schedule/schedule.d.ts +3 -0
  715. package/schedule/schedule.js.map +1 -1
  716. package/schedule/schedule.styles_fdy5a1.css +2 -2
  717. package/schedule/shared/with-optional-popover.js +1 -1
  718. package/schedule/shared/with-optional-popover.js.map +1 -1
  719. package/schedule/shared/with-optional-popover.styles_7mv3p2.css +1 -1
  720. package/schedule/time-indicator/time-indicator.styles_1eaxyes.css +2 -2
  721. package/schedule/types.d.ts +129 -10
  722. package/select-histogram/select-histogram.d.ts +5 -0
  723. package/select-histogram/select-histogram.js.map +1 -1
  724. package/select-histogram/select-histogram.styles_n260dy.css +2 -2
  725. package/select-histogram/types.d.ts +57 -4
  726. package/shared/accessibility/index_13g9vp.css +1 -1
  727. package/shared/clickable-icon/clickable-icon.styles_1v2imml.css +2 -2
  728. package/shared/component-loading-spinner/component-loading-spinner.styles_15eq02i.css +2 -2
  729. package/shared/dropdown-list/dropdown-label.styles_mloii0.css +2 -2
  730. package/shared/dropdown-list/dropdown-list.styles_konwm.css +2 -2
  731. package/shared/dropdown-list/dropdown-search.styles_1hc1gkh.css +2 -2
  732. package/shared/dropdown-list/expandable-element.styles_rkkvqr.css +2 -2
  733. package/shared/dropdown-list/nested-dropdown-list.styles_wdhxoe.css +2 -2
  734. package/shared/dropdown-list/types.d.ts +52 -19
  735. package/shared/dropdown-wrapper/dropdown-wrapper.styles_15hwwoj.css +2 -2
  736. package/shared/dropdown-wrapper/types.d.ts +6 -0
  737. package/shared/fade-wrapper/fade-wrapper.styles_16iug7l.css +2 -2
  738. package/shared/image-placeholder/image-placeholder.styles_44nwil.css +1 -1
  739. package/shared/input-wrapper/input-wrapper.styles_je6maw.css +2 -2
  740. package/shared/internal-calendar/calendar-dropdown.styles_wybjai.css +1 -1
  741. package/shared/internal-calendar/calendar-manager.js +1 -1
  742. package/shared/internal-calendar/calendar-manager.js.map +1 -1
  743. package/shared/internal-calendar/calendar-manager.styles.js +1 -1
  744. package/shared/internal-calendar/calendar-manager.styles.js.map +1 -1
  745. package/shared/internal-calendar/{calendar-manager.styles_1iuq5zw.css → calendar-manager.styles_1njwkj2.css} +3 -3
  746. package/shared/internal-calendar/day-cell/day-cell.styles_1t5oqc1.css +2 -2
  747. package/shared/internal-calendar/internal-calendar-month.styles_14oh57f.css +2 -2
  748. package/shared/internal-calendar/internal-calendar-year.styles_therlc.css +2 -2
  749. package/shared/internal-calendar/internal-calendar.styles_gnc3eq.css +1 -1
  750. package/shared/internal-calendar/standard/standard-calendar-day-view.styles_1bw26au.css +2 -2
  751. package/shared/progress-bar/progress-bar.styles_125ri7a.css +1 -1
  752. package/shared/range-input-inner-container/range-input-inner-container.styles_1v61utg.css +2 -2
  753. package/shared/standalone-date-input/standalone-date-input.styles_157qo89.css +2 -2
  754. package/shared/time-slot/time-slot.styles_18s0to7.css +2 -2
  755. package/shared/timepicker-dropdown/timepicker-dropdown.styles_119l6k6.css +2 -2
  756. package/sidenav/sidenav-drawer-item.styles_1ljnyx2.css +2 -2
  757. package/sidenav/sidenav-drawer-subitem.styles_2y58kf.css +1 -1
  758. package/sidenav/sidenav-group.styles_1x604sw.css +2 -2
  759. package/sidenav/sidenav-item.styles_lqw3kh.css +2 -2
  760. package/sidenav/sidenav.d.ts +10 -0
  761. package/sidenav/sidenav.js.map +1 -1
  762. package/sidenav/sidenav.styles_1vxezie.css +2 -2
  763. package/sidenav/types.d.ts +70 -21
  764. package/singpass-button/singpass-button.d.ts +6 -0
  765. package/singpass-button/singpass-button.js.map +1 -1
  766. package/singpass-button/singpass-button.styles_1miyex3.css +2 -2
  767. package/singpass-button/types.d.ts +29 -2
  768. package/smart-app-banner/smart-app-banner.d.ts +5 -0
  769. package/smart-app-banner/smart-app-banner.js.map +1 -1
  770. package/smart-app-banner/smart-app-banner.styles_15u6yv4.css +2 -2
  771. package/smart-app-banner/types.d.ts +54 -0
  772. package/tab/tab-link-chain.styles_49got4.css +2 -2
  773. package/tab/tab.d.ts +7 -0
  774. package/tab/tab.js.map +1 -1
  775. package/tab/tab.styles_1najffw.css +1 -1
  776. package/tab/types.d.ts +55 -6
  777. package/table/table.d.ts +21 -0
  778. package/table/table.js.map +1 -1
  779. package/table/table.styles.js +1 -1
  780. package/table/table.styles.js.map +1 -1
  781. package/table/{table.styles_1af5ipv.css → table.styles_1vjx31g.css} +2 -2
  782. package/tag/tag.d.ts +5 -0
  783. package/tag/tag.js.map +1 -1
  784. package/tag/tag.style_d98c53.css +2 -2
  785. package/tag/types.d.ts +24 -0
  786. package/text-list/index.d.ts +17 -0
  787. package/text-list/index.js.map +1 -1
  788. package/text-list/text-list.styles_w3fvyt.css +2 -2
  789. package/text-list/types.d.ts +33 -4
  790. package/theme/styles/a11y-playground.css +3 -0
  791. package/theme/styles/bookingsg.css +7 -4
  792. package/theme/styles/careercompass.css +4 -1
  793. package/theme/styles/ccube.css +3 -0
  794. package/theme/styles/default.css +9 -5
  795. package/theme/styles/imda.css +3 -0
  796. package/theme/styles/lifesg.css +3 -0
  797. package/theme/styles/mylegacy.css +7 -4
  798. package/theme/styles/oneservice.css +52 -0
  799. package/theme/styles/pa.css +3 -0
  800. package/theme/styles/rbs.css +3 -0
  801. package/theme/styles/sgw-digital-lobby.css +5 -2
  802. package/theme/styles/smgs.css +3 -0
  803. package/theme/styles/spf.css +3 -0
  804. package/theme/styles/supportgowhere.css +3 -0
  805. package/theme/theme-provider/breakpoint.d.ts +0 -1
  806. package/theme/theme-provider/breakpoint.js +1 -1
  807. package/theme/theme-provider/breakpoint.js.map +1 -1
  808. package/theme/theme-provider/hooks.d.ts +16 -0
  809. package/theme/theme-provider/hooks.js.map +1 -1
  810. package/theme/theme-provider/index.d.ts +7 -0
  811. package/theme/theme-provider/index.js.map +1 -1
  812. package/theme/theme-provider/types.d.ts +14 -0
  813. package/theme/tokens/border.d.ts +3 -0
  814. package/theme/tokens/border.js.map +1 -1
  815. package/theme/tokens/breakpoint.d.ts +3 -0
  816. package/theme/tokens/breakpoint.js.map +1 -1
  817. package/theme/tokens/colour.d.ts +3 -0
  818. package/theme/tokens/colour.js.map +1 -1
  819. package/theme/tokens/component.d.ts +1 -0
  820. package/theme/tokens/component.js.map +1 -1
  821. package/theme/tokens/font.d.ts +2 -0
  822. package/theme/tokens/font.js.map +1 -1
  823. package/theme/tokens/media-query.d.ts +1 -0
  824. package/theme/tokens/media-query.js.map +1 -1
  825. package/theme/tokens/motion.d.ts +1 -0
  826. package/theme/tokens/motion.js.map +1 -1
  827. package/theme/tokens/radius.d.ts +1 -0
  828. package/theme/tokens/radius.js.map +1 -1
  829. package/theme/tokens/shadow.d.ts +1 -0
  830. package/theme/tokens/shadow.js.map +1 -1
  831. package/theme/tokens/spacing.d.ts +1 -0
  832. package/theme/tokens/spacing.js.map +1 -1
  833. package/theme/types.d.ts +24 -4
  834. package/theme/types.js +1 -1
  835. package/theme/types.js.map +1 -1
  836. package/theme/utils/css-variable.d.ts +10 -2
  837. package/theme/utils/css-variable.js.map +1 -1
  838. package/theme/utils/font.d.ts +2 -1
  839. package/theme/utils/font.js.map +1 -1
  840. package/theme/utils/index.d.ts +1 -0
  841. package/theme/utils/use-apply-styles.d.ts +8 -2
  842. package/theme/utils/use-apply-styles.js +1 -1
  843. package/theme/utils/use-apply-styles.js.map +1 -1
  844. package/theme/utils/use-design-token-override.d.ts +19 -0
  845. package/theme/utils/use-design-token-override.js +2 -0
  846. package/theme/utils/use-design-token-override.js.map +1 -0
  847. package/theme/utils/use-design-token.d.ts +9 -0
  848. package/theme/utils/use-design-token.js.map +1 -1
  849. package/theme/utils/use-media-query.d.ts +41 -3
  850. package/theme/utils/use-media-query.js.map +1 -1
  851. package/time-range-picker/combobox-picker/combobox-picker.js +1 -1
  852. package/time-range-picker/combobox-picker/combobox-picker.js.map +1 -1
  853. package/time-range-picker/combobox-picker/combobox-picker.styles_7i9vso.css +1 -1
  854. package/time-range-picker/common.styles.d.ts +1 -0
  855. package/time-range-picker/common.styles.js +1 -1
  856. package/time-range-picker/common.styles.js.map +1 -1
  857. package/time-range-picker/{common.styles_1qwp4xa.css → common.styles_cnkkax.css} +2 -1
  858. package/time-range-picker/dial-picker/dial-picker.js +1 -1
  859. package/time-range-picker/dial-picker/dial-picker.js.map +1 -1
  860. package/time-range-picker/time-range-picker.d.ts +5 -0
  861. package/time-range-picker/time-range-picker.js.map +1 -1
  862. package/time-range-picker/types.d.ts +85 -25
  863. package/time-slot-bar/internal-types.d.ts +1 -0
  864. package/time-slot-bar/time-slot-bar.d.ts +7 -0
  865. package/time-slot-bar/time-slot-bar.js.map +1 -1
  866. package/time-slot-bar/time-slot-bar.styles_wigbyd.css +2 -2
  867. package/time-slot-bar/types.d.ts +112 -20
  868. package/time-slot-bar-week/time-slot-bar-week-days.styles_evdvs9.css +2 -2
  869. package/time-slot-bar-week/time-slot-bar-week.d.ts +8 -0
  870. package/time-slot-bar-week/time-slot-bar-week.js.map +1 -1
  871. package/time-slot-bar-week/time-slot-bar-week.styles_11ybf42.css +1 -1
  872. package/time-slot-bar-week/types.d.ts +74 -13
  873. package/time-slot-week-view/time-slot-week-days.styles_1h21vyw.css +2 -2
  874. package/time-slot-week-view/time-slot-week-view.d.ts +7 -0
  875. package/time-slot-week-view/time-slot-week-view.js.map +1 -1
  876. package/time-slot-week-view/time-slot-week-view.styles_gqgsw2.css +1 -1
  877. package/time-slot-week-view/types.d.ts +53 -10
  878. package/timeline/timeline.d.ts +6 -0
  879. package/timeline/timeline.js.map +1 -1
  880. package/timeline/timeline.styles_1jxzik4.css +2 -2
  881. package/timeline/types.d.ts +58 -4
  882. package/timepicker/timepicker.d.ts +5 -0
  883. package/timepicker/timepicker.js +1 -1
  884. package/timepicker/timepicker.js.map +1 -1
  885. package/timepicker/timepicker.styles.d.ts +1 -0
  886. package/timepicker/timepicker.styles.js +1 -1
  887. package/timepicker/timepicker.styles.js.map +1 -1
  888. package/timepicker/timepicker.styles_lyizvq.css +2 -0
  889. package/timepicker/types.d.ts +49 -14
  890. package/timetable/timetable-header/timetable-header.styles_11gl1h4.css +2 -2
  891. package/timetable/timetable-row/row-bar.styles_1x0vrsz.css +1 -1
  892. package/timetable/timetable-row/row-cell.styles_y1dl5j.css +2 -2
  893. package/timetable/timetable-row/with-optional-popover.js +1 -1
  894. package/timetable/timetable-row/with-optional-popover.js.map +1 -1
  895. package/timetable/timetable.d.ts +6 -0
  896. package/timetable/timetable.js +1 -1
  897. package/timetable/timetable.js.map +1 -1
  898. package/timetable/timetable.styles_7rp8kz.css +2 -2
  899. package/timetable/types.d.ts +175 -50
  900. package/toast/toast.d.ts +6 -0
  901. package/toast/toast.js.map +1 -1
  902. package/toast/toast.styles_1e0l60w.css +2 -2
  903. package/toast/types.d.ts +42 -8
  904. package/toggle/toggle-icon.styles_ba71y.css +2 -2
  905. package/toggle/toggle.d.ts +6 -0
  906. package/toggle/toggle.js.map +1 -1
  907. package/toggle/toggle.styles_1t5qrye.css +2 -2
  908. package/toggle/types.d.ts +95 -17
  909. package/typography/index.d.ts +29 -0
  910. package/typography/index.js.map +1 -1
  911. package/typography/types.d.ts +51 -8
  912. package/typography/typography-text.styles_1734x2k.css +2 -2
  913. package/typography/typography.styles.js +1 -1
  914. package/typography/typography.styles.js.map +1 -1
  915. package/typography/{typography.styles_1155j4c.css → typography.styles_1wd82dn.css} +2 -2
  916. package/uneditable-section/index.d.ts +16 -1
  917. package/uneditable-section/index.js.map +1 -1
  918. package/uneditable-section/section-item.styles_mwx8ht.css +2 -2
  919. package/uneditable-section/types.d.ts +66 -23
  920. package/uneditable-section/uneditable-section.d.ts +2 -1
  921. package/uneditable-section/uneditable-section.js +1 -1
  922. package/uneditable-section/uneditable-section.js.map +1 -1
  923. package/uneditable-section/uneditable-section.styles_aj9zun.css +2 -2
  924. package/unit-number/types.d.ts +30 -4
  925. package/unit-number/unit-number-input.d.ts +6 -0
  926. package/unit-number/unit-number-input.js.map +1 -1
  927. package/unit-number/unit-number-input.styles_8yizj.css +2 -2
  928. package/util/index.d.ts +1 -0
  929. package/util/merge-refs.d.ts +1 -1
  930. package/util/merge-refs.js.map +1 -1
  931. package/util/use-throttle.d.ts +1 -0
  932. package/util/use-throttle.js +2 -0
  933. package/util/use-throttle.js.map +1 -0
  934. package/cjs/data-table/data-table.styles_1iqq1g7.css +0 -26
  935. package/cjs/example/example.js +0 -2
  936. package/cjs/example/example.js.map +0 -1
  937. package/cjs/example/example_r47nvz.css +0 -1
  938. package/cjs/example/index.js +0 -2
  939. package/cjs/example/index.js.map +0 -1
  940. package/cjs/file-upload/file-list/file-list.styles_1ea12kj.css +0 -3
  941. package/cjs/file-upload/file-list-item/file-list-item.styles_y7my2m.css +0 -14
  942. package/cjs/timepicker/timepicker.styles_1jm33yw.css +0 -1
  943. package/data-table/data-table.styles_1iqq1g7.css +0 -26
  944. package/example/example.d.ts +0 -2
  945. package/example/example.js +0 -2
  946. package/example/example.js.map +0 -1
  947. package/example/example_r47nvz.css +0 -1
  948. package/example/index.d.ts +0 -1
  949. package/example/index.js +0 -2
  950. package/example/index.js.map +0 -1
  951. package/example/types.d.ts +0 -3
  952. package/file-upload/file-list/file-list.styles_1ea12kj.css +0 -3
  953. package/file-upload/file-list-item/file-list-item.styles_y7my2m.css +0 -14
  954. package/timepicker/timepicker.styles_1jm33yw.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"local-nav-menu.js","sources":["../../../../src/local-nav/local-nav-menu/local-nav-menu.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\n\nimport { Typography } from \"../../typography\";\nimport type { LocalNavMenuItemComponentProps } from \"../internal-types\";\nimport type { LocalNavMenuProps } from \"../types\";\nimport * as styles from \"./local-nav-menu.styles\";\n\n/**\n * A sidebar navigation element. The currently visible section will be highlighted.\n *\n * This component should be placed inside a container that aligns it to the side.\n * The container can also have `position: sticky` in order to make it a sticky sidebar.\n */\nconst Component = (\n {\n onNavItemSelect,\n items,\n selectedItemIndex,\n id,\n \"data-testid\": dataTestId,\n className,\n renderItem,\n }: LocalNavMenuProps,\n ref: React.Ref<HTMLUListElement>\n): JSX.Element => {\n // =============================================================================\n // CONST, STATE, REF\n // =============================================================================\n const localNavMenuId = dataTestId || \"local-nav-menu\";\n\n // =============================================================================\n // EVENT HANDLERS\n // ============================================================================\n const handleNavItemKeyDown = (\n e: React.KeyboardEvent<HTMLElement>,\n handleClick: (\n e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>\n ) => void\n ) => {\n const { key } = e;\n\n if (key === \"Enter\" || key === \" \") {\n e.preventDefault();\n handleClick(e);\n }\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n\n const renderLocalNavItem = ({\n handleClick,\n isSelected,\n item,\n renderItem,\n index,\n }: LocalNavMenuItemComponentProps) => {\n const { id, title } = item;\n\n const renderTitle = () => {\n if (renderItem) {\n return renderItem(item, { selected: isSelected });\n }\n return (\n <Typography.BodyBL\n className={styles.textLabel}\n weight={isSelected ? \"semibold\" : \"regular\"}\n >\n {title}\n </Typography.BodyBL>\n );\n };\n\n return (\n <li\n id={id}\n key={index}\n className={clsx(\n styles.navItem,\n isSelected && styles.navItemSelected\n )}\n >\n <div\n className={styles.navItemContent}\n role=\"link\"\n onClick={handleClick}\n onKeyDown={(e) => handleNavItemKeyDown(e, handleClick)}\n tabIndex={0}\n aria-current={isSelected ? true : undefined}\n >\n {renderTitle()}\n </div>\n </li>\n );\n };\n return (\n <ul\n ref={ref}\n id={id}\n className={clsx(styles.nav, className)}\n data-testid={localNavMenuId}\n >\n {items.map((item, i) => {\n const isSelected = i === selectedItemIndex;\n return renderLocalNavItem({\n handleClick: (e) => onNavItemSelect(e, item, i),\n isSelected,\n item,\n renderItem,\n index: i,\n });\n })}\n </ul>\n );\n};\n\nexport const LocalNavMenu = React.forwardRef(Component);\n"],"names":["LocalNavMenu","React","forwardRef","onNavItemSelect","items","selectedItemIndex","id","dataTestId","className","renderItem","ref","localNavMenuId","_jsx","clsx","styles.nav","map","item","i","handleClick","isSelected","index","title","styles.navItem","styles.navItemSelected","children","styles.navItemContent","role","onClick","onKeyDown","e","key","preventDefault","handleNavItemKeyDown","tabIndex","undefined","selected","Typography","BodyBL","styles.textLabel","weight","renderLocalNavItem"],"mappings":"uPAcA,MAwGaA,OAAeC,QAAMC,YAxGhB,EAEVC,kBACAC,QACAC,oBACAC,KACA,cAAeC,EACfC,YACAC,cAEJC,KAKA,MAAMC,EAAiBJ,GAAc,iBAoErC,OACIK,EAAAA,IAAA,KAAA,CACIF,IAAKA,EACLJ,GAAIA,EACJE,UAAWK,EAAAA,QAAKC,EAAAA,IAAYN,GAAU,cACzBG,WAEZP,EAAMW,KAAI,CAACC,EAAMC,IApDC,GACvBC,cACAC,aACAH,OACAP,aACAW,YAEA,MAAMd,GAAEA,EAAEe,MAAEA,GAAUL,EAgBtB,OACIJ,EAAAA,IAAA,KAAA,CACIN,GAAIA,EAEJE,UAAWK,EAAAA,QACPS,UACAH,GAAcI,EAAAA,iBACjBC,SAEDZ,MAAA,MAAA,CACIJ,UAAWiB,EAAAA,eACXC,KAAK,OACLC,QAAST,EACTU,UAAYC,GAtDC,EACzBA,EACAX,KAIA,MAAMY,IAAEA,GAAQD,EAEJ,UAARC,GAA2B,MAARA,IACnBD,EAAEE,iBACFb,EAAYW,GAChB,EA2C8BG,CAAqBH,EAAGX,GAC1Ce,SAAU,EAAC,iBACGd,QAAoBe,EAASV,SA5B/Cf,EACOA,EAAWO,EAAM,CAAEmB,SAAUhB,IAGpCP,EAAAA,IAACwB,EAAAA,WAAWC,OAAM,CACd7B,UAAW8B,EAAAA,UACXC,OAAQpB,EAAa,WAAa,UAASK,SAE1CH,OAQAD,EAgBJ,EAYMoB,CAAmB,CACtBtB,YAAcW,GAAM1B,EAAgB0B,EAAGb,EAAMC,GAC7CE,WAHeF,IAAMZ,EAIrBW,OACAP,aACAW,MAAOH,OAGd"}
1
+ {"version":3,"file":"local-nav-menu.js","sources":["../../../../src/local-nav/local-nav-menu/local-nav-menu.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\n\nimport { Typography } from \"../../typography\";\nimport type { LocalNavMenuItemComponentProps } from \"../internal-types\";\nimport type { LocalNavMenuProps } from \"../types\";\nimport * as styles from \"./local-nav-menu.styles\";\n\nconst Component = (\n {\n onNavItemSelect,\n items,\n selectedItemIndex,\n id,\n \"data-testid\": dataTestId,\n className,\n renderItem,\n }: LocalNavMenuProps,\n ref: React.Ref<HTMLUListElement>\n): JSX.Element => {\n // =============================================================================\n // CONST, STATE, REF\n // =============================================================================\n const localNavMenuId = dataTestId || \"local-nav-menu\";\n\n // =============================================================================\n // EVENT HANDLERS\n // ============================================================================\n const handleNavItemKeyDown = (\n e: React.KeyboardEvent<HTMLElement>,\n handleClick: (\n e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>\n ) => void\n ) => {\n const { key } = e;\n\n if (key === \"Enter\" || key === \" \") {\n e.preventDefault();\n handleClick(e);\n }\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n\n const renderLocalNavItem = ({\n handleClick,\n isSelected,\n item,\n renderItem,\n index,\n }: LocalNavMenuItemComponentProps) => {\n const { id, title } = item;\n\n const renderTitle = () => {\n if (renderItem) {\n return renderItem(item, { selected: isSelected });\n }\n return (\n <Typography.BodyBL\n className={styles.textLabel}\n weight={isSelected ? \"semibold\" : \"regular\"}\n >\n {title}\n </Typography.BodyBL>\n );\n };\n\n return (\n <li\n id={id}\n key={index}\n className={clsx(\n styles.navItem,\n isSelected && styles.navItemSelected\n )}\n >\n <div\n className={styles.navItemContent}\n role=\"link\"\n onClick={handleClick}\n onKeyDown={(e) => handleNavItemKeyDown(e, handleClick)}\n tabIndex={0}\n aria-current={isSelected ? true : undefined}\n >\n {renderTitle()}\n </div>\n </li>\n );\n };\n return (\n <ul\n ref={ref}\n id={id}\n className={clsx(styles.nav, className)}\n data-testid={localNavMenuId}\n >\n {items.map((item, i) => {\n const isSelected = i === selectedItemIndex;\n return renderLocalNavItem({\n handleClick: (e) => onNavItemSelect(e, item, i),\n isSelected,\n item,\n renderItem,\n index: i,\n });\n })}\n </ul>\n );\n};\n\n/**\n * A sidebar navigation list that highlights the currently selected section.\n *\n * Use `LocalNavMenu` for desktop in-page navigation where the list is always\n * visible.\n */\nexport const LocalNavMenu = React.forwardRef(Component);\n"],"names":["LocalNavMenu","React","forwardRef","onNavItemSelect","items","selectedItemIndex","id","dataTestId","className","renderItem","ref","localNavMenuId","_jsx","clsx","styles.nav","map","item","i","handleClick","isSelected","index","title","styles.navItem","styles.navItemSelected","children","styles.navItemContent","role","onClick","onKeyDown","e","key","preventDefault","handleNavItemKeyDown","tabIndex","undefined","selected","Typography","BodyBL","styles.textLabel","weight","renderLocalNavItem"],"mappings":"uPAQA,MA8GaA,OAAeC,QAAMC,YA9GhB,EAEVC,kBACAC,QACAC,oBACAC,KACA,cAAeC,EACfC,YACAC,cAEJC,KAKA,MAAMC,EAAiBJ,GAAc,iBAoErC,OACIK,EAAAA,IAAA,KAAA,CACIF,IAAKA,EACLJ,GAAIA,EACJE,UAAWK,EAAAA,QAAKC,EAAAA,IAAYN,GAAU,cACzBG,WAEZP,EAAMW,KAAI,CAACC,EAAMC,IApDC,GACvBC,cACAC,aACAH,OACAP,aACAW,YAEA,MAAMd,GAAEA,EAAEe,MAAEA,GAAUL,EAgBtB,OACIJ,EAAAA,IAAA,KAAA,CACIN,GAAIA,EAEJE,UAAWK,EAAAA,QACPS,UACAH,GAAcI,EAAAA,iBACjBC,SAEDZ,MAAA,MAAA,CACIJ,UAAWiB,EAAAA,eACXC,KAAK,OACLC,QAAST,EACTU,UAAYC,GAtDC,EACzBA,EACAX,KAIA,MAAMY,IAAEA,GAAQD,EAEJ,UAARC,GAA2B,MAARA,IACnBD,EAAEE,iBACFb,EAAYW,GAChB,EA2C8BG,CAAqBH,EAAGX,GAC1Ce,SAAU,EAAC,iBACGd,QAAoBe,EAASV,SA5B/Cf,EACOA,EAAWO,EAAM,CAAEmB,SAAUhB,IAGpCP,EAAAA,IAACwB,EAAAA,WAAWC,OAAM,CACd7B,UAAW8B,EAAAA,UACXC,OAAQpB,EAAa,WAAa,UAASK,SAE1CH,OAQAD,EAgBJ,EAYMoB,CAAmB,CACtBtB,YAAcW,GAAM1B,EAAgB0B,EAAGb,EAAMC,GAC7CE,WAHeF,IAAMZ,EAIrBW,OACAP,aACAW,MAAOH,OAGd"}
@@ -1,5 +1,5 @@
1
- .nflnesd{list-style-type:none;padding:0;margin-top:0;}
1
+ @layer fds{.nflnesd{list-style-type:none;padding:0;margin-top:0;}
2
2
  .tun9y1j{margin:0;}
3
3
  .n1ocymwf{display:block;position:relative;margin:0;padding:0;cursor:pointer;}.n1ocymwf::before{content:"";position:absolute;left:0;width:4px;height:100%;top:0;background-color:var(--fds-colour-bg-primary-subtler);-webkit-transition:all 250ms linear;transition:all 250ms linear;}.n1ocymwf:hover,.n1ocymwf:focus-within{background-color:var(--fds-colour-bg-hover-subtle);}
4
4
  .naf0oif::before{background-color:var(--fds-colour-bg-primary);}
5
- .n8uzvfa{display:block;padding:var(--fds-spacing-16);padding-left:var(--fds-spacing-20);}.n8uzvfa:focus-visible{outline:2px solid var(--fds-colour-focus-ring);outline-offset:2px;border-radius:var(--fds-radius-sm);}
5
+ .n8uzvfa{display:block;padding:var(--fds-spacing-16);padding-left:var(--fds-spacing-20);}.n8uzvfa:focus-visible{outline:2px solid var(--fds-colour-focus-ring);outline-offset:2px;border-radius:var(--fds-radius-sm);}}
@@ -1 +1 @@
1
- {"version":3,"file":"markup.js","sources":["../../../src/markup/markup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport type React from \"react\";\nimport { forwardRef, useMemo, useRef } from \"react\";\n\nimport { useApplyStyle } from \"../theme\";\nimport { generateFontProperties } from \"../theme/utils\";\nimport { mergeRefs } from \"../util\";\nimport * as styles from \"./markup.style\";\nimport type { MarkupProps } from \"./types\";\n\nconst Component = (props: MarkupProps, ref: React.Ref<HTMLDivElement>) => {\n // =========================================================================\n // CONST, STATE, REF\n // =========================================================================\n const { baseTextColor, baseTextSize, inline, className, ...otherProps } =\n props;\n\n const containerRef = useRef<HTMLDivElement | HTMLSpanElement>(null);\n const mergedRef = useMemo(() => mergeRefs(containerRef, ref), [ref]);\n\n const fontDeclarations = useMemo(() => {\n if (!baseTextSize) {\n return undefined;\n }\n\n return generateFontProperties(baseTextSize, \"regular\");\n }, [baseTextSize]);\n\n const appliedStyles = useMemo(\n () => ({\n color: baseTextColor || null,\n ...fontDeclarations,\n }),\n [baseTextColor, fontDeclarations]\n );\n\n useApplyStyle(containerRef, appliedStyles);\n\n const mergedClassName = clsx(\n styles.baseMarkup,\n baseTextSize && styles.sizedMarkup,\n className\n );\n\n const ElementTag = inline ? \"span\" : \"div\";\n\n return (\n <ElementTag\n ref={mergedRef as React.Ref<HTMLDivElement & HTMLSpanElement>}\n className={mergedClassName}\n {...otherProps}\n />\n );\n};\n\nexport const Markup = forwardRef(Component);\n"],"names":["Markup","forwardRef","props","ref","baseTextColor","baseTextSize","inline","className","otherProps","__rest","containerRef","useRef","mergedRef","useMemo","mergeRefs","fontDeclarations","generateFontProperties","appliedStyles","Object","assign","color","useApplyStyle","mergedClassName","clsx","styles.baseMarkup","styles.sizedMarkup","ElementTag","_jsx"],"mappings":"m1BAUA,MA6CaA,EAASC,EAAAA,YA7CJ,CAACC,EAAoBC,KAInC,MAAMC,cAAEA,EAAaC,aAAEA,EAAYC,OAAEA,EAAMC,UAAEA,GACzCL,EADuDM,EAAUC,EAAAA,OACjEP,EADE,CAAA,gBAAA,eAAA,SAAA,cAGAQ,EAAeC,EAAAA,OAAyC,MACxDC,EAAYC,EAAAA,SAAQ,IAAMC,EAAAA,UAAUJ,EAAcP,IAAM,CAACA,IAEzDY,EAAmBF,EAAAA,SAAQ,KAC7B,GAAKR,EAIL,OAAOW,EAAAA,uBAAuBX,EAAc,UAAU,GACvD,CAACA,IAEEY,EAAgBJ,EAAAA,SAClB,IAAMK,OAAAC,OAAA,CACFC,MAAOhB,GAAiB,MACrBW,IAEP,CAACX,EAAeW,IAGpBM,EAAAA,cAAcX,EAAcO,GAE5B,MAAMK,EAAkBC,EAAAA,QACpBC,EAAAA,WACAnB,GAAgBoB,EAAAA,YAChBlB,GAGEmB,EAAapB,EAAS,OAAS,MAErC,OACIqB,MAACD,EAAUR,OAAAC,OAAA,CACPhB,IAAKS,EACLL,UAAWe,GACPd,GACN"}
1
+ {"version":3,"file":"markup.js","sources":["../../../src/markup/markup.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport type React from \"react\";\nimport { forwardRef, useMemo, useRef } from \"react\";\n\nimport { useApplyStyle } from \"../theme\";\nimport { generateFontProperties } from \"../theme/utils\";\nimport { mergeRefs } from \"../util\";\nimport * as styles from \"./markup.style\";\nimport type { MarkupProps } from \"./types\";\n\nconst Component = (props: MarkupProps, ref: React.Ref<HTMLDivElement>) => {\n // =========================================================================\n // CONST, STATE, REF\n // =========================================================================\n const { baseTextColor, baseTextSize, inline, className, ...otherProps } =\n props;\n\n const containerRef = useRef<HTMLDivElement | HTMLSpanElement>(null);\n const mergedRef = useMemo(() => mergeRefs(containerRef, ref), [ref]);\n\n const fontDeclarations = useMemo(() => {\n if (!baseTextSize) {\n return undefined;\n }\n\n return generateFontProperties(baseTextSize, \"regular\");\n }, [baseTextSize]);\n\n const appliedStyles = useMemo(\n () => ({\n color: baseTextColor || null,\n ...fontDeclarations,\n }),\n [baseTextColor, fontDeclarations]\n );\n\n useApplyStyle(containerRef, appliedStyles);\n\n const mergedClassName = clsx(\n styles.baseMarkup,\n baseTextSize && styles.sizedMarkup,\n className\n );\n\n const ElementTag = inline ? \"span\" : \"div\";\n\n return (\n <ElementTag\n ref={mergedRef as React.Ref<HTMLDivElement & HTMLSpanElement>}\n className={mergedClassName}\n {...otherProps}\n />\n );\n};\n\n/**\n * A container for rendering rich HTML markup.\n *\n * Use `Markup` to wrap CMS-generated or sanitised HTML content while applying\n * a consistent base font size and colour.\n */\nexport const Markup = forwardRef(Component);\n"],"names":["Markup","forwardRef","props","ref","baseTextColor","baseTextSize","inline","className","otherProps","__rest","containerRef","useRef","mergedRef","useMemo","mergeRefs","fontDeclarations","generateFontProperties","appliedStyles","Object","assign","color","useApplyStyle","mergedClassName","clsx","styles.baseMarkup","styles.sizedMarkup","ElementTag","_jsx"],"mappings":"m1BAUA,MAmDaA,EAASC,EAAAA,YAnDJ,CAACC,EAAoBC,KAInC,MAAMC,cAAEA,EAAaC,aAAEA,EAAYC,OAAEA,EAAMC,UAAEA,GACzCL,EADuDM,EAAUC,EAAAA,OACjEP,EADE,CAAA,gBAAA,eAAA,SAAA,cAGAQ,EAAeC,EAAAA,OAAyC,MACxDC,EAAYC,EAAAA,SAAQ,IAAMC,EAAAA,UAAUJ,EAAcP,IAAM,CAACA,IAEzDY,EAAmBF,EAAAA,SAAQ,KAC7B,GAAKR,EAIL,OAAOW,EAAAA,uBAAuBX,EAAc,UAAU,GACvD,CAACA,IAEEY,EAAgBJ,EAAAA,SAClB,IAAMK,OAAAC,OAAA,CACFC,MAAOhB,GAAiB,MACrBW,IAEP,CAACX,EAAeW,IAGpBM,EAAAA,cAAcX,EAAcO,GAE5B,MAAMK,EAAkBC,EAAAA,QACpBC,EAAAA,WACAnB,GAAgBoB,EAAAA,YAChBlB,GAGEmB,EAAapB,EAAS,OAAS,MAErC,OACIqB,MAACD,EAAUR,OAAAC,OAAA,CACPhB,IAAKS,EACLL,UAAWe,GACPd,GACN"}
@@ -1,2 +1,2 @@
1
- .b2c8sfe strong{font-weight:var(--fds-font-weight-semibold);}.b2c8sfe p{margin:0;}.b2c8sfe a{font-weight:var(--fds-font-weight-semibold);color:var(--fds-colour-hyperlink);-webkit-text-decoration:underline;text-decoration:underline;}.b2c8sfe a svg{color:var(--fds-colour-icon-primary);height:1lh;width:1em;margin-left:0.4rem;vertical-align:middle;}.b2c8sfe a:hover,.b2c8sfe a:active,.b2c8sfe a:visited,.b2c8sfe a:focus{color:var(--fds-colour-hyperlink-hover);}.b2c8sfe a:hover svg,.b2c8sfe a:active svg,.b2c8sfe a:visited svg,.b2c8sfe a:focus svg{color:var(--fds-colour-icon-hover);}.b2c8sfe ul,.b2c8sfe ol{margin:0;padding:0;margin-left:2.5rem;}.b2c8sfe ol{list-style:decimal;}.b2c8sfe ul{list-style:disc;}
2
- .stfuo83{font-family:var(--fds-internal-markup-root-fontFamily, inherit);font-variant:var(--fds-internal-markup-root-fontVariant, inherit);font-size:var(--fds-internal-markup-root-fontSize, inherit);font-weight:var(--fds-internal-markup-root-fontWeight, inherit);line-height:var(--fds-internal-markup-root-lineHeight, inherit);letter-spacing:var(--fds-internal-markup-root-letterSpacing, inherit);}
1
+ @layer fds{.b2c8sfe strong{font-weight:var(--fds-font-weight-semibold);}.b2c8sfe p{margin:0;}.b2c8sfe a{font-weight:var(--fds-font-weight-semibold);color:var(--fds-colour-hyperlink);-webkit-text-decoration:underline;text-decoration:underline;}.b2c8sfe a svg{color:var(--fds-colour-icon-primary);height:1lh;width:1em;margin-left:0.4rem;vertical-align:middle;}.b2c8sfe a:hover,.b2c8sfe a:active,.b2c8sfe a:visited,.b2c8sfe a:focus{color:var(--fds-colour-hyperlink-hover);}.b2c8sfe a:hover svg,.b2c8sfe a:active svg,.b2c8sfe a:visited svg,.b2c8sfe a:focus svg{color:var(--fds-colour-icon-hover);}.b2c8sfe ul,.b2c8sfe ol{margin:0;padding:0;margin-left:2.5rem;}.b2c8sfe ol{list-style:decimal;}.b2c8sfe ul{list-style:disc;}
2
+ .stfuo83{font-family:var(--fds-internal-markup-root-fontFamily, inherit);font-variant:var(--fds-internal-markup-root-fontVariant, inherit);font-size:var(--fds-internal-markup-root-fontSize, inherit);font-weight:var(--fds-internal-markup-root-fontWeight, inherit);line-height:var(--fds-internal-markup-root-lineHeight, inherit);letter-spacing:var(--fds-internal-markup-root-letterSpacing, inherit);}}
@@ -1 +1 @@
1
- {"version":3,"file":"masked-input.js","sources":["../../../src/masked-input/masked-input.tsx"],"sourcesContent":["import { ExclamationTriangleIcon } from \"@lifesg/react-icons/exclamation-triangle\";\nimport { EyeIcon } from \"@lifesg/react-icons/eye\";\nimport { EyeSlashIcon } from \"@lifesg/react-icons/eye-slash\";\nimport clsx from \"clsx\";\nimport { isEmpty } from \"lodash\";\nimport React, { useEffect, useImperativeHandle, useRef, useState } from \"react\";\n\nimport { InputGroup } from \"../input-group\";\nimport { concatIds, VisuallyHidden } from \"../shared/accessibility\";\nimport { ComponentLoadingSpinner } from \"../shared/component-loading-spinner\";\nimport { BasicButton } from \"../shared/input-wrapper\";\nimport { useApplyStyle } from \"../theme\";\nimport { Typography } from \"../typography\";\nimport { StringHelper, useId } from \"../util\";\nimport * as styles from \"./masked-input.styles\";\nimport type { MaskedInputProps } from \"./types\";\n\nconst Component = (\n {\n value,\n readOnly,\n \"data-testid\": dataTestId,\n maskRange,\n unmaskRange,\n maskRegex,\n maskTransformer,\n iconMask = <EyeSlashIcon />,\n iconUnmask = <EyeIcon />,\n iconActiveColor: maskIconActiveColor,\n iconInactiveColor: maskIconInactiveColor,\n maskChar = \"•\",\n error,\n disableMask,\n transformInput,\n loadState,\n onMask,\n onUnmask,\n onChange,\n onFocus,\n onBlur,\n onTryAgain,\n className,\n ...otherProps\n }: MaskedInputProps,\n ref: React.Ref<HTMLInputElement>\n) => {\n // =============================================================================\n // CONST, STATE, REFS\n // =============================================================================\n const isEmptyReadOnlyState = readOnly && isEmpty(value);\n const [isMasked, setIsMasked] = useState<boolean>(!disableMask);\n const [updatedValue, setUpdatedValue] = useState<string>(value || \"\");\n const internalId = useId();\n const valueId = `${otherProps.id ?? internalId}-value`;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const tryAgainRef = useRef<HTMLButtonElement>(null);\n const readOnlyButtonRef = useRef<HTMLButtonElement>(null);\n const iconContainerRef = useRef<HTMLDivElement>(null);\n const isMaskedRef = useRef<boolean>(!disableMask);\n const ariaLabelledBy = otherProps[\"aria-labelledby\"];\n\n useImperativeHandle(ref, () => inputRef.current as HTMLInputElement, []);\n\n useApplyStyle(iconContainerRef, {\n [styles.tokens.iconContainer.inactiveColor]: maskIconInactiveColor,\n [styles.tokens.iconContainer.activeColor]: maskIconActiveColor,\n });\n\n // =============================================================================\n // EFFECTS\n // =============================================================================\n useEffect(() => {\n setUpdatedValue(value || \"\");\n }, [value]);\n\n useEffect(() => {\n if (!readOnly) return;\n\n if (loadState === \"fail\") {\n tryAgainRef.current?.focus();\n }\n\n if (loadState === \"success\") {\n readOnlyButtonRef.current?.focus();\n }\n }, [readOnly, loadState]);\n\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n toggleMasking(false);\n onFocus?.(event);\n };\n\n const handleBlur = (event?: React.FocusEvent<HTMLInputElement>) => {\n toggleMasking(true);\n onBlur?.(event!);\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n let value = event.target.value;\n\n switch (transformInput) {\n case \"uppercase\":\n value = value.toUpperCase();\n break;\n case \"lowercase\":\n value = value.toLowerCase();\n break;\n default:\n break;\n }\n\n setUpdatedValue(value);\n event.target.value = value;\n onChange?.(event);\n };\n\n const handleTryAgain = () => {\n if (readOnly) {\n onTryAgain?.();\n }\n };\n\n const handleIconMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n };\n\n const handleToggleMask = () => {\n const nextMasked = !isMasked;\n\n toggleMasking(nextMasked);\n\n if (!nextMasked) {\n inputRef.current?.focus();\n return;\n }\n };\n\n // =============================================================================\n // HELPER FUNCTIONS\n // =============================================================================\n const toggleMasking = (mask: boolean) => {\n if (isMaskedRef.current === mask) return;\n\n isMaskedRef.current = mask;\n setIsMasked(mask);\n\n if (mask) {\n onMask?.();\n } else {\n onUnmask?.();\n }\n };\n\n const getValue = () => {\n if (isEmptyReadOnlyState) {\n return \"-\";\n }\n\n return isMasked && !disableMask\n ? StringHelper.maskValue(updatedValue, {\n maskChar,\n maskRange,\n unmaskRange,\n maskRegex,\n maskTransformer,\n })\n : updatedValue;\n };\n\n const shouldDisableMasking = () =>\n !updatedValue?.toString().length || disableMask;\n\n const getValueDescription = () => {\n if (isEmptyReadOnlyState) {\n return \"-\";\n }\n\n if (isMasked && !disableMask) {\n const desc = StringHelper.getMaskedDescription(\n updatedValue,\n \"masked\",\n maskRange\n );\n\n return desc || \"Masked value\";\n }\n\n return updatedValue;\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n const renderIcon = () => {\n if (isEmptyReadOnlyState) {\n return <></>;\n }\n\n const isDisabled = shouldDisableMasking();\n\n return (\n <div\n ref={iconContainerRef}\n className={clsx(\n styles.iconContainer,\n isDisabled && styles.iconContainerDisabled\n )}\n data-testid={`icon-${isMasked ? \"masked\" : \"unmasked\"}`}\n onMouseDown={!isDisabled ? handleIconMouseDown : undefined}\n onClick={!isDisabled ? handleToggleMask : undefined}\n aria-hidden=\"true\"\n >\n {isMasked ? iconUnmask : iconMask}\n </div>\n );\n };\n\n const renderReadOnlyButton = () => {\n const isButtonDisabled = shouldDisableMasking() || isEmptyReadOnlyState;\n\n return (\n <>\n <VisuallyHidden id={valueId}>\n {getValueDescription()}\n </VisuallyHidden>\n <button\n ref={readOnlyButtonRef}\n className={styles.readOnlyClickable}\n data-testid=\"masked-input-readonly-button\"\n onClick={!isButtonDisabled ? handleToggleMask : undefined}\n type=\"button\"\n aria-labelledby={concatIds(valueId, ariaLabelledBy)}\n aria-disabled={isButtonDisabled}\n >\n <span className={styles.readOnlyValueText}>\n {getValue()}\n </span>\n {!isButtonDisabled && (\n <span className={styles.readOnlyIconContainer}>\n {isMasked ? (\n <EyeIcon data-testid=\"masked-icon\" />\n ) : (\n <EyeSlashIcon data-testid=\"unmasked-icon\" />\n )}\n </span>\n )}\n </button>\n </>\n );\n };\n\n const renderElement = () => {\n if (readOnly) {\n switch (loadState) {\n case \"fail\":\n return (\n <BasicButton\n ref={tryAgainRef}\n className={styles.clickableErrorWrapper}\n onClick={handleTryAgain}\n data-testid=\"try-again-button\"\n type=\"button\"\n >\n <span className={styles.errorTextContainer}>\n <ExclamationTriangleIcon\n className={styles.errorIcon}\n />\n <span className={styles.errorLabel}>Error</span>\n </span>\n <span className={styles.tryAgainLabel}>\n Try again?\n </span>\n </BasicButton>\n );\n case \"loading\":\n return (\n <div className={styles.loadingWrapper}>\n <ComponentLoadingSpinner\n className={styles.spinner}\n />\n <Typography.BodyBL className={styles.loadingLabel}>\n Retrieving...\n </Typography.BodyBL>\n </div>\n );\n case \"success\":\n default:\n return renderReadOnlyButton();\n }\n }\n\n return (\n <InputGroup\n ref={inputRef}\n className={clsx(styles.inputGroupWrapper, className)}\n data-testid={`${dataTestId || \"masked-input\"}${\n isMasked ? \"-masked\" : \"-unmasked\"\n }`}\n addon={{\n type: \"custom\",\n attributes: {\n children: renderIcon(),\n },\n position: \"right\",\n }}\n onFocus={!readOnly ? handleFocus : undefined}\n onBlur={!readOnly ? handleBlur : undefined}\n onClick={readOnly ? handleToggleMask : undefined}\n onChange={handleChange}\n value={getValue()}\n readOnly={readOnly}\n error={error}\n {...otherProps}\n />\n );\n };\n\n return <div aria-busy={loadState === \"loading\"}>{renderElement()}</div>;\n};\n\nexport const MaskedInput = React.forwardRef(Component);\n"],"names":["MaskedInput","React","forwardRef","_a","ref","value","readOnly","dataTestId","maskRange","unmaskRange","maskRegex","maskTransformer","iconMask","_jsx","EyeSlashIcon","iconUnmask","EyeIcon","iconActiveColor","maskIconActiveColor","iconInactiveColor","maskIconInactiveColor","maskChar","error","disableMask","transformInput","loadState","onMask","onUnmask","onChange","onFocus","onBlur","onTryAgain","className","otherProps","__rest","isEmptyReadOnlyState","isEmpty","isMasked","setIsMasked","useState","updatedValue","setUpdatedValue","internalId","useId","valueId","_b","id","inputRef","useRef","tryAgainRef","readOnlyButtonRef","iconContainerRef","isMaskedRef","ariaLabelledBy","useImperativeHandle","current","useApplyStyle","styles.tokens","iconContainer","inactiveColor","activeColor","useEffect","focus","handleFocus","event","toggleMasking","handleBlur","handleChange","target","toUpperCase","toLowerCase","handleTryAgain","handleIconMouseDown","preventDefault","handleToggleMask","nextMasked","mask","getValue","StringHelper","maskValue","shouldDisableMasking","toString","length","getValueDescription","getMaskedDescription","renderIcon","isDisabled","clsx","styles.iconContainer","styles.iconContainerDisabled","onMouseDown","undefined","onClick","children","_jsxs","BasicButton","styles.clickableErrorWrapper","type","styles.errorTextContainer","ExclamationTriangleIcon","styles.errorIcon","styles.errorLabel","styles.tryAgainLabel","styles.loadingWrapper","ComponentLoadingSpinner","styles.spinner","Typography","BodyBL","styles.loadingLabel","isButtonDisabled","VisuallyHidden","styles.readOnlyClickable","concatIds","styles.readOnlyValueText","styles.readOnlyIconContainer","renderReadOnlyButton","InputGroup","Object","assign","styles.inputGroupWrapper","addon","attributes","position","renderElement"],"mappings":"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"}
1
+ {"version":3,"file":"masked-input.js","sources":["../../../src/masked-input/masked-input.tsx"],"sourcesContent":["import { ExclamationTriangleIcon } from \"@lifesg/react-icons/exclamation-triangle\";\nimport { EyeIcon } from \"@lifesg/react-icons/eye\";\nimport { EyeSlashIcon } from \"@lifesg/react-icons/eye-slash\";\nimport clsx from \"clsx\";\nimport { isEmpty } from \"lodash\";\nimport React, { useEffect, useImperativeHandle, useRef, useState } from \"react\";\n\nimport { InputGroup } from \"../input-group\";\nimport { concatIds, VisuallyHidden } from \"../shared/accessibility\";\nimport { ComponentLoadingSpinner } from \"../shared/component-loading-spinner\";\nimport { BasicButton } from \"../shared/input-wrapper\";\nimport { useApplyStyle } from \"../theme\";\nimport { Typography } from \"../typography\";\nimport { StringHelper, useId } from \"../util\";\nimport * as styles from \"./masked-input.styles\";\nimport type { MaskedInputProps } from \"./types\";\n\nconst Component = (\n {\n value,\n readOnly,\n \"data-testid\": dataTestId,\n maskRange,\n unmaskRange,\n maskRegex,\n maskTransformer,\n iconMask = <EyeSlashIcon />,\n iconUnmask = <EyeIcon />,\n iconActiveColor: maskIconActiveColor,\n iconInactiveColor: maskIconInactiveColor,\n maskChar = \"•\",\n error,\n disableMask,\n transformInput,\n loadState,\n onMask,\n onUnmask,\n onChange,\n onFocus,\n onBlur,\n onTryAgain,\n className,\n ...otherProps\n }: MaskedInputProps,\n ref: React.Ref<HTMLInputElement>\n) => {\n // =============================================================================\n // CONST, STATE, REFS\n // =============================================================================\n const isEmptyReadOnlyState = readOnly && isEmpty(value);\n const [isMasked, setIsMasked] = useState<boolean>(!disableMask);\n const [updatedValue, setUpdatedValue] = useState<string>(value || \"\");\n const internalId = useId();\n const valueId = `${otherProps.id ?? internalId}-value`;\n\n const inputRef = useRef<HTMLInputElement>(null);\n const tryAgainRef = useRef<HTMLButtonElement>(null);\n const readOnlyButtonRef = useRef<HTMLButtonElement>(null);\n const iconContainerRef = useRef<HTMLDivElement>(null);\n const isMaskedRef = useRef<boolean>(!disableMask);\n const ariaLabelledBy = otherProps[\"aria-labelledby\"];\n\n useImperativeHandle(ref, () => inputRef.current as HTMLInputElement, []);\n\n useApplyStyle(iconContainerRef, {\n [styles.tokens.iconContainer.inactiveColor]: maskIconInactiveColor,\n [styles.tokens.iconContainer.activeColor]: maskIconActiveColor,\n });\n\n // =============================================================================\n // EFFECTS\n // =============================================================================\n useEffect(() => {\n setUpdatedValue(value || \"\");\n }, [value]);\n\n useEffect(() => {\n if (!readOnly) return;\n\n if (loadState === \"fail\") {\n tryAgainRef.current?.focus();\n }\n\n if (loadState === \"success\") {\n readOnlyButtonRef.current?.focus();\n }\n }, [readOnly, loadState]);\n\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n toggleMasking(false);\n onFocus?.(event);\n };\n\n const handleBlur = (event?: React.FocusEvent<HTMLInputElement>) => {\n toggleMasking(true);\n onBlur?.(event!);\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n let value = event.target.value;\n\n switch (transformInput) {\n case \"uppercase\":\n value = value.toUpperCase();\n break;\n case \"lowercase\":\n value = value.toLowerCase();\n break;\n default:\n break;\n }\n\n setUpdatedValue(value);\n event.target.value = value;\n onChange?.(event);\n };\n\n const handleTryAgain = () => {\n if (readOnly) {\n onTryAgain?.();\n }\n };\n\n const handleIconMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n event.preventDefault();\n };\n\n const handleToggleMask = () => {\n const nextMasked = !isMasked;\n\n toggleMasking(nextMasked);\n\n if (!nextMasked) {\n inputRef.current?.focus();\n return;\n }\n };\n\n // =============================================================================\n // HELPER FUNCTIONS\n // =============================================================================\n const toggleMasking = (mask: boolean) => {\n if (isMaskedRef.current === mask) return;\n\n isMaskedRef.current = mask;\n setIsMasked(mask);\n\n if (mask) {\n onMask?.();\n } else {\n onUnmask?.();\n }\n };\n\n const getValue = () => {\n if (isEmptyReadOnlyState) {\n return \"-\";\n }\n\n return isMasked && !disableMask\n ? StringHelper.maskValue(updatedValue, {\n maskChar,\n maskRange,\n unmaskRange,\n maskRegex,\n maskTransformer,\n })\n : updatedValue;\n };\n\n const shouldDisableMasking = () =>\n !updatedValue?.toString().length || disableMask;\n\n const getValueDescription = () => {\n if (isEmptyReadOnlyState) {\n return \"-\";\n }\n\n if (isMasked && !disableMask) {\n const desc = StringHelper.getMaskedDescription(\n updatedValue,\n \"masked\",\n maskRange\n );\n\n return desc || \"Masked value\";\n }\n\n return updatedValue;\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n const renderIcon = () => {\n if (isEmptyReadOnlyState) {\n return <></>;\n }\n\n const isDisabled = shouldDisableMasking();\n\n return (\n <div\n ref={iconContainerRef}\n className={clsx(\n styles.iconContainer,\n isDisabled && styles.iconContainerDisabled\n )}\n data-testid={`icon-${isMasked ? \"masked\" : \"unmasked\"}`}\n onMouseDown={!isDisabled ? handleIconMouseDown : undefined}\n onClick={!isDisabled ? handleToggleMask : undefined}\n aria-hidden=\"true\"\n >\n {isMasked ? iconUnmask : iconMask}\n </div>\n );\n };\n\n const renderReadOnlyButton = () => {\n const isButtonDisabled = shouldDisableMasking() || isEmptyReadOnlyState;\n\n return (\n <>\n <VisuallyHidden id={valueId}>\n {getValueDescription()}\n </VisuallyHidden>\n <button\n ref={readOnlyButtonRef}\n className={styles.readOnlyClickable}\n data-testid=\"masked-input-readonly-button\"\n onClick={!isButtonDisabled ? handleToggleMask : undefined}\n type=\"button\"\n aria-labelledby={concatIds(valueId, ariaLabelledBy)}\n aria-disabled={isButtonDisabled}\n >\n <span className={styles.readOnlyValueText}>\n {getValue()}\n </span>\n {!isButtonDisabled && (\n <span className={styles.readOnlyIconContainer}>\n {isMasked ? (\n <EyeIcon data-testid=\"masked-icon\" />\n ) : (\n <EyeSlashIcon data-testid=\"unmasked-icon\" />\n )}\n </span>\n )}\n </button>\n </>\n );\n };\n\n const renderElement = () => {\n if (readOnly) {\n switch (loadState) {\n case \"fail\":\n return (\n <BasicButton\n ref={tryAgainRef}\n className={styles.clickableErrorWrapper}\n onClick={handleTryAgain}\n data-testid=\"try-again-button\"\n type=\"button\"\n >\n <span className={styles.errorTextContainer}>\n <ExclamationTriangleIcon\n className={styles.errorIcon}\n />\n <span className={styles.errorLabel}>Error</span>\n </span>\n <span className={styles.tryAgainLabel}>\n Try again?\n </span>\n </BasicButton>\n );\n case \"loading\":\n return (\n <div className={styles.loadingWrapper}>\n <ComponentLoadingSpinner\n className={styles.spinner}\n />\n <Typography.BodyBL className={styles.loadingLabel}>\n Retrieving...\n </Typography.BodyBL>\n </div>\n );\n case \"success\":\n default:\n return renderReadOnlyButton();\n }\n }\n\n return (\n <InputGroup\n ref={inputRef}\n className={clsx(styles.inputGroupWrapper, className)}\n data-testid={`${dataTestId || \"masked-input\"}${\n isMasked ? \"-masked\" : \"-unmasked\"\n }`}\n addon={{\n type: \"custom\",\n attributes: {\n children: renderIcon(),\n },\n position: \"right\",\n }}\n onFocus={!readOnly ? handleFocus : undefined}\n onBlur={!readOnly ? handleBlur : undefined}\n onClick={readOnly ? handleToggleMask : undefined}\n onChange={handleChange}\n value={getValue()}\n readOnly={readOnly}\n error={error}\n {...otherProps}\n />\n );\n };\n\n return <div aria-busy={loadState === \"loading\"}>{renderElement()}</div>;\n};\n\n/**\n * A text input that masks sensitive values and allows toggling visibility.\n *\n * Use `MaskedInput` when collecting or displaying sensitive data such as\n * identity numbers or passwords.\n */\nexport const MaskedInput = React.forwardRef(Component);\n"],"names":["MaskedInput","React","forwardRef","_a","ref","value","readOnly","dataTestId","maskRange","unmaskRange","maskRegex","maskTransformer","iconMask","_jsx","EyeSlashIcon","iconUnmask","EyeIcon","iconActiveColor","maskIconActiveColor","iconInactiveColor","maskIconInactiveColor","maskChar","error","disableMask","transformInput","loadState","onMask","onUnmask","onChange","onFocus","onBlur","onTryAgain","className","otherProps","__rest","isEmptyReadOnlyState","isEmpty","isMasked","setIsMasked","useState","updatedValue","setUpdatedValue","internalId","useId","valueId","_b","id","inputRef","useRef","tryAgainRef","readOnlyButtonRef","iconContainerRef","isMaskedRef","ariaLabelledBy","useImperativeHandle","current","useApplyStyle","styles.tokens","iconContainer","inactiveColor","activeColor","useEffect","focus","handleFocus","event","toggleMasking","handleBlur","handleChange","target","toUpperCase","toLowerCase","handleTryAgain","handleIconMouseDown","preventDefault","handleToggleMask","nextMasked","mask","getValue","StringHelper","maskValue","shouldDisableMasking","toString","length","getValueDescription","getMaskedDescription","renderIcon","isDisabled","clsx","styles.iconContainer","styles.iconContainerDisabled","onMouseDown","undefined","onClick","children","_jsxs","BasicButton","styles.clickableErrorWrapper","type","styles.errorTextContainer","ExclamationTriangleIcon","styles.errorIcon","styles.errorLabel","styles.tryAgainLabel","styles.loadingWrapper","ComponentLoadingSpinner","styles.spinner","Typography","BodyBL","styles.loadingLabel","isButtonDisabled","VisuallyHidden","styles.readOnlyClickable","concatIds","styles.readOnlyValueText","styles.readOnlyIconContainer","renderReadOnlyButton","InputGroup","Object","assign","styles.inputGroupWrapper","addon","attributes","position","renderElement"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- .ilvnzaw{padding:0 0 0 var(--fds-spacing-16);}.ilvnzaw input{cursor:initial;}
1
+ @layer fds{.ilvnzaw{padding:0 0 0 var(--fds-spacing-16);}.ilvnzaw input{cursor:initial;}
2
2
  .i1hq8qtl{padding:0;}
3
3
  .itdqc7u input{cursor:pointer;}
4
4
  .ij8rwek{--fds-internal-maskedInput-iconContainer-inactiveColor:initial;--fds-internal-maskedInput-iconContainer-activeColor:initial;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;cursor:pointer;color:var(--fds-internal-maskedInput-iconContainer-activeColor, var(--fds-colour-icon-primary));padding:var(--fds-spacing-12) var(--fds-spacing-16);}.ij8rwek svg{height:1em;width:1em;}
@@ -13,4 +13,4 @@
13
13
  .c1jw7yzb{width:100%;height:3rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:space-between;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:none;background:transparent;cursor:pointer;font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-baseline);font-weight:var(--fds-font-weight-regular);line-height:var(--fds-font-body-lh-baseline);letter-spacing:var(--fds-font-body-ls-baseline);}.c1jw7yzb:hover .t12y77bq,.c1jw7yzb:active .t12y77bq,.c1jw7yzb:focus .t12y77bq{color:var(--fds-colour-text-hover);}
14
14
  .r1svptpi{font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-baseline);font-weight:var(--fds-font-weight-regular);line-height:var(--fds-font-body-lh-baseline);letter-spacing:var(--fds-font-body-ls-baseline);color:var(--fds-colour-text);border:none;background:transparent;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;text-align:left;width:100%;-webkit-box-pack:justify;-ms-flex-pack:space-between;-webkit-justify-content:space-between;justify-content:space-between;min-height:3rem;}
15
15
  .r1dgmaf{overflow-wrap:anywhere;}
16
- .r1mk0cgh{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;color:var(--fds-colour-icon-primary);padding:0 1rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}.r1mk0cgh svg{width:var(--fds-font-body-size-baseline);height:var(--fds-font-body-size-baseline);}
16
+ .r1mk0cgh{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;color:var(--fds-colour-icon-primary);padding:0 1rem;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}.r1mk0cgh svg{width:var(--fds-font-body-size-baseline);height:var(--fds-font-body-size-baseline);}}
@@ -1 +1 @@
1
- {"version":3,"file":"masthead.js","sources":["../../../src/masthead/masthead.tsx"],"sourcesContent":["import \"@govtechsg/sgds-web-component/themes/day.css\";\nimport \"@govtechsg/sgds-web-component/themes/night.css\";\n\nimport clsx from \"clsx\";\nimport { memo, useEffect } from \"react\";\n\nimport { useTheme } from \"../theme\";\n\nimport * as styles from \"./masthead.styles\";\nimport type { MastheadProps } from \"./types\";\n\nconst MastheadComponent = ({ stretch = false }: MastheadProps): JSX.Element => {\n const { mode } = useTheme();\n const isDarkMode = mode === \"dark\";\n\n // =============================================================================\n // EFFECTS\n // =============================================================================\n useEffect(() => {\n if (!doAssetsExist()) {\n addAssets();\n }\n }, []);\n\n useEffect(() => {\n // SGDS dark mode only takes effect when this class is set on the :root element\n if (isDarkMode) {\n document.documentElement.classList.add(SGDS_THEME_NIGHT_CLASSNAME);\n } else {\n document.documentElement.classList.remove(\n SGDS_THEME_NIGHT_CLASSNAME\n );\n }\n }, [isDarkMode]);\n\n // =============================================================================\n // HELPER FUNCTIONS\n // =============================================================================\n const doAssetsExist = () => {\n return document.getElementById(SCRIPT_ID);\n };\n\n const addAssets = () => {\n if (!document.getElementById(SCRIPT_ID)) {\n const script = document.createElement(\"script\");\n script.id = SCRIPT_ID;\n script.type = \"module\";\n script.src = SCRIPT_SRC;\n\n document.head.appendChild(script);\n }\n };\n\n const createContent = () => {\n /**\n * Note: Had to use this method because we had to create a\n * custom type to handle Web Components (refer to this guide\n * https://blog.devgenius.io/how-to-use-web-components-in-react-54c951399bfd)\n * But we are having troubles exporting the custom type definition\n * via rollup\n */\n return { __html: \"<sgds-masthead></sgds-masthead>\" };\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n\n return (\n <div\n className={clsx(styles.wrapper, stretch && styles.wrapperStretch)}\n dangerouslySetInnerHTML={createContent()}\n />\n );\n};\n\nexport const Masthead = memo(MastheadComponent);\n\n// =============================================================================\n// CONSTANTS\n// =============================================================================\nconst SCRIPT_ID = \"lifesg-ds-masthead-script\";\nconst SCRIPT_SRC =\n \"https://cdn.jsdelivr.net/npm/@govtechsg/sgds-web-component@3/components/Masthead/index.umd.js\";\nconst SGDS_THEME_NIGHT_CLASSNAME = \"sgds-night-theme\";\n"],"names":["Masthead","memo","stretch","mode","useTheme","isDarkMode","useEffect","doAssetsExist","addAssets","document","documentElement","classList","add","SGDS_THEME_NIGHT_CLASSNAME","remove","getElementById","SCRIPT_ID","script","createElement","id","type","src","SCRIPT_SRC","head","appendChild","_jsx","className","clsx","styles.wrapper","styles.wrapperStretch","dangerouslySetInnerHTML","__html"],"mappings":"4wBAWA,MAiEaA,EAAWC,EAAAA,MAjEE,EAAGC,WAAU,MACnC,MAAMC,KAAEA,GAASC,aACXC,EAAsB,SAATF,EAKnBG,EAAAA,WAAU,KACDC,KACDC,GACJ,GACD,IAEHF,EAAAA,WAAU,KAEFD,EACAI,SAASC,gBAAgBC,UAAUC,IAAIC,GAEvCJ,SAASC,gBAAgBC,UAAUG,OAC/BD,EAER,GACD,CAACR,IAKJ,MAAME,EAAgB,IACXE,SAASM,eAAeC,GAG7BR,EAAY,KACd,IAAKC,SAASM,eAAeC,GAAY,CACrC,MAAMC,EAASR,SAASS,cAAc,UACtCD,EAAOE,GAAKH,EACZC,EAAOG,KAAO,SACdH,EAAOI,IAAMC,EAEbb,SAASc,KAAKC,YAAYP,EAC9B,GAkBJ,OACIQ,aACIC,UAAWC,EAAAA,QAAKC,EAAAA,QAAgB1B,GAAW2B,kBAC3CC,wBAVG,CAAEC,OAAQ,oCAWf,IASJf,EAAY,4BACZM,EACF,gGACET,EAA6B"}
1
+ {"version":3,"file":"masthead.js","sources":["../../../src/masthead/masthead.tsx"],"sourcesContent":["import \"@govtechsg/sgds-web-component/themes/day.css\";\nimport \"@govtechsg/sgds-web-component/themes/night.css\";\n\nimport clsx from \"clsx\";\nimport { memo, useEffect } from \"react\";\n\nimport { useTheme } from \"../theme\";\nimport * as styles from \"./masthead.styles\";\nimport type { MastheadProps } from \"./types\";\n\nconst MastheadComponent = ({ stretch = false }: MastheadProps): JSX.Element => {\n const { mode } = useTheme();\n const isDarkMode = mode === \"dark\";\n\n // =============================================================================\n // EFFECTS\n // =============================================================================\n useEffect(() => {\n if (!doAssetsExist()) {\n addAssets();\n }\n }, []);\n\n useEffect(() => {\n // SGDS dark mode only takes effect when this class is set on the :root element\n if (isDarkMode) {\n document.documentElement.classList.add(SGDS_THEME_NIGHT_CLASSNAME);\n } else {\n document.documentElement.classList.remove(\n SGDS_THEME_NIGHT_CLASSNAME\n );\n }\n }, [isDarkMode]);\n\n // =============================================================================\n // HELPER FUNCTIONS\n // =============================================================================\n const doAssetsExist = () => {\n return document.getElementById(SCRIPT_ID);\n };\n\n const addAssets = () => {\n if (!document.getElementById(SCRIPT_ID)) {\n const script = document.createElement(\"script\");\n script.id = SCRIPT_ID;\n script.type = \"module\";\n script.src = SCRIPT_SRC;\n\n document.head.appendChild(script);\n }\n };\n\n const createContent = () => {\n /**\n * Note: Had to use this method because we had to create a\n * custom type to handle Web Components (refer to this guide\n * https://blog.devgenius.io/how-to-use-web-components-in-react-54c951399bfd)\n * But we are having troubles exporting the custom type definition\n * via rollup\n */\n return { __html: \"<sgds-masthead></sgds-masthead>\" };\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n\n return (\n <div\n className={clsx(styles.wrapper, stretch && styles.wrapperStretch)}\n dangerouslySetInnerHTML={createContent()}\n />\n );\n};\n\n/**\n * Displays the Singapore Government Design System (SGDS) masthead banner.\n *\n * Use `Masthead` at the top of government digital services to meet the SGDS\n * masthead requirement.\n */\nexport const Masthead = memo(MastheadComponent);\n\n// =============================================================================\n// CONSTANTS\n// =============================================================================\nconst SCRIPT_ID = \"lifesg-ds-masthead-script\";\nconst SCRIPT_SRC =\n \"https://cdn.jsdelivr.net/npm/@govtechsg/sgds-web-component@3/components/Masthead/index.umd.js\";\nconst SGDS_THEME_NIGHT_CLASSNAME = \"sgds-night-theme\";\n"],"names":["Masthead","memo","stretch","mode","useTheme","isDarkMode","useEffect","doAssetsExist","addAssets","document","documentElement","classList","add","SGDS_THEME_NIGHT_CLASSNAME","remove","getElementById","SCRIPT_ID","script","createElement","id","type","src","SCRIPT_SRC","head","appendChild","_jsx","className","clsx","styles.wrapper","styles.wrapperStretch","dangerouslySetInnerHTML","__html"],"mappings":"4wBAUA,MAuEaA,EAAWC,EAAAA,MAvEE,EAAGC,WAAU,MACnC,MAAMC,KAAEA,GAASC,aACXC,EAAsB,SAATF,EAKnBG,EAAAA,WAAU,KACDC,KACDC,GACJ,GACD,IAEHF,EAAAA,WAAU,KAEFD,EACAI,SAASC,gBAAgBC,UAAUC,IAAIC,GAEvCJ,SAASC,gBAAgBC,UAAUG,OAC/BD,EAER,GACD,CAACR,IAKJ,MAAME,EAAgB,IACXE,SAASM,eAAeC,GAG7BR,EAAY,KACd,IAAKC,SAASM,eAAeC,GAAY,CACrC,MAAMC,EAASR,SAASS,cAAc,UACtCD,EAAOE,GAAKH,EACZC,EAAOG,KAAO,SACdH,EAAOI,IAAMC,EAEbb,SAASc,KAAKC,YAAYP,EAC9B,GAkBJ,OACIQ,aACIC,UAAWC,EAAAA,QAAKC,EAAAA,QAAgB1B,GAAW2B,kBAC3CC,wBAVG,CAAEC,OAAQ,oCAWf,IAeJf,EAAY,4BACZM,EACF,gGACET,EAA6B"}
@@ -1,2 +1,2 @@
1
- .wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-xxl);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-xxl);--sgds-mainnav-max-width:1440px;}:where(body.fds-breakpoint-xl-max) .wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-xl);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-xl);}:where(body.fds-breakpoint-lg-max) .wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-lg);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-lg);}:where(body.fds-breakpoint-md-max) .wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-md);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-md);}:where(body.fds-breakpoint-sm-max) .wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-sm);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-sm);}:where(body.fds-breakpoint-xs-max) .wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-xs);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-xs);}:where(body.fds-breakpoint-xxs-max) .wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-xxs);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-xxs);}
2
- .wq9iwwi{--sgds-mainnav-max-width:calc(infinity * 1px);}
1
+ @layer fds{.wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-xxl);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-xxl);--sgds-mainnav-max-width:1440px;}:where(body.fds-breakpoint-xl-max) .wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-xl);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-xl);}:where(body.fds-breakpoint-lg-max) .wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-lg);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-lg);}:where(body.fds-breakpoint-md-max) .wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-md);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-md);}:where(body.fds-breakpoint-sm-max) .wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-sm);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-sm);}:where(body.fds-breakpoint-xs-max) .wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-xs);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-xs);}:where(body.fds-breakpoint-xxs-max) .wafydue{--sgds-mainnav-padding-x:var(--fds-breakpoint-margin-xxs);--sgds-mainnav-mobile-padding-x:var(--fds-breakpoint-margin-xxs);}
2
+ .wq9iwwi{--sgds-mainnav-max-width:calc(infinity * 1px);}}
@@ -1,2 +1,2 @@
1
- .pmssexq{border-radius:var(--fds-radius-md);border:var(--fds-border-width-010) var(--fds-border-style-solid) var(--fds-colour-border);background:var(--fds-colour-bg);box-shadow:var(--fds-shadow-md-subtle);--fds-internal-menu-panel-maxHeight:initial;--fds-internal-menu-panel-overflow:initial;--fds-internal-menu-panel-xSpacing:0px;--fds-internal-menu-panel-availableWidth:calc(100vw - var(--fds-internal-menu-panel-xSpacing
2
- ) * 2);min-width:min(15rem, var(--fds-internal-menu-panel-availableWidth));max-width:min(24rem, var(--fds-internal-menu-panel-availableWidth));max-height:var(--fds-internal-menu-panel-maxHeight);overflow-y:var(--fds-internal-menu-panel-overflow);}:where(body.fds-breakpoint-sm-max) .pmssexq{--fds-internal-menu-panel-xSpacing:var(--fds-breakpoint-margin-sm);}:where(body.fds-breakpoint-xs-max) .pmssexq{--fds-internal-menu-panel-xSpacing:var(--fds-breakpoint-margin-xs);}:where(body.fds-breakpoint-xxs-max) .pmssexq{--fds-internal-menu-panel-xSpacing:var(--fds-breakpoint-margin-xxs);}.pmssexq:focus{outline:none;}.pmssexq::-webkit-scrollbar{width:14px;}.pmssexq::-webkit-scrollbar-track{background:transparent;}.pmssexq::-webkit-scrollbar-thumb{background:var(--fds-colour-bg-inverse-subtlest);border:5px solid transparent;border-radius:var(--fds-radius-full);-webkit-background-clip:padding-box;background-clip:padding-box;}
1
+ @layer fds{.pmssexq{border-radius:var(--fds-radius-md);border:var(--fds-border-width-010) var(--fds-border-style-solid) var(--fds-colour-border);background:var(--fds-colour-bg);box-shadow:var(--fds-shadow-md-subtle);--fds-internal-menu-panel-maxHeight:initial;--fds-internal-menu-panel-overflow:initial;--fds-internal-menu-panel-xSpacing:0px;--fds-internal-menu-panel-availableWidth:calc(100vw - var(--fds-internal-menu-panel-xSpacing
2
+ ) * 2);min-width:min(15rem, var(--fds-internal-menu-panel-availableWidth));max-width:min(24rem, var(--fds-internal-menu-panel-availableWidth));max-height:var(--fds-internal-menu-panel-maxHeight);overflow-y:var(--fds-internal-menu-panel-overflow);}:where(body.fds-breakpoint-sm-max) .pmssexq{--fds-internal-menu-panel-xSpacing:var(--fds-breakpoint-margin-sm);}:where(body.fds-breakpoint-xs-max) .pmssexq{--fds-internal-menu-panel-xSpacing:var(--fds-breakpoint-margin-xs);}:where(body.fds-breakpoint-xxs-max) .pmssexq{--fds-internal-menu-panel-xSpacing:var(--fds-breakpoint-margin-xxs);}.pmssexq:focus{outline:none;}.pmssexq::-webkit-scrollbar{width:14px;}.pmssexq::-webkit-scrollbar-track{background:transparent;}.pmssexq::-webkit-scrollbar-thumb{background:var(--fds-colour-bg-inverse-subtlest);border:5px solid transparent;border-radius:var(--fds-radius-full);-webkit-background-clip:padding-box;background-clip:padding-box;}}
@@ -1,3 +1,3 @@
1
- .m1ddqpur{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:var(--fds-spacing-8) var(--fds-spacing-16);}
1
+ @layer fds{.m1ddqpur{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:var(--fds-spacing-8) var(--fds-spacing-16);}
2
2
  .tor9xcz{color:var(--fds-colour-text);}
3
- .s12tso9{color:var(--fds-colour-text-subtler);}
3
+ .s12tso9{color:var(--fds-colour-text-subtler);}}
@@ -1,2 +1,2 @@
1
- .mmmrhdq{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
2
- .l5rk4za{color:var(--fds-colour-text);margin:0 var(--fds-spacing-8);border:var(--fds-border-style-solid) transparent;border-width:var(--fds-spacing-8) var(--fds-spacing-8);border-radius:var(--fds-radius-md);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;}.l5rk4za:hover,.l5rk4za:active,.l5rk4za:focus{background-color:var(--fds-colour-bg-hover);color:var(--fds-colour-text);}.l5rk4za:focus-visible{outline:2px solid var(--fds-colour-focus-ring);outline-offset:0;}
1
+ @layer fds{.mmmrhdq{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}
2
+ .l5rk4za{color:var(--fds-colour-text);margin:0 var(--fds-spacing-8);border:var(--fds-border-style-solid) transparent;border-width:var(--fds-spacing-8) var(--fds-spacing-8);border-radius:var(--fds-radius-md);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap;}.l5rk4za:hover,.l5rk4za:active,.l5rk4za:focus{background-color:var(--fds-colour-bg-hover);color:var(--fds-colour-text);}.l5rk4za:focus-visible{outline:2px solid var(--fds-colour-focus-ring);outline-offset:0;}}
@@ -1,3 +1,3 @@
1
- .s1fmxqsy{padding:var(--fds-spacing-8) 0;margin:0;list-style:none;}
1
+ @layer fds{.s1fmxqsy{padding:var(--fds-spacing-8) 0;margin:0;list-style:none;}
2
2
  .s1o971t2{border-top:var(--fds-border-width-010) var(--fds-border-style-solid) var(--fds-colour-border);}
3
- .llhca5j{margin:0 var(--fds-spacing-16) var(--fds-spacing-8);color:var(--fds-colour-text-subtler);}
3
+ .llhca5j{margin:0 var(--fds-spacing-16) var(--fds-spacing-8);color:var(--fds-colour-text-subtler);}}
package/cjs/menu/menu.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../_virtual/_tslib.js"),r=require("react/jsx-runtime"),t=require("react");require("clsx"),require("../theme/theme-provider/context.js"),require("../typography/typography.js"),require("../card/card.styles_1gh9gs3.css"),require("../markup/markup.js"),require("../modal-v2/index.js"),require("../theme/theme-provider/index.js"),require("../theme/tokens/border.js"),require("../theme/tokens/colour.js"),require("../theme/tokens/font.js"),require("../theme/tokens/media-query.js"),require("../util/calendar-helper.js"),require("../external/dayjs/dayjs.min.js"),require("../util/simple-id-generator.js"),require("../util/string-helper.js"),require("@react-aria/live-announcer"),require("../theme/utils/use-media-query.js"),require("../popover/popover.styles_ujnf0h.css");var i=require("../popover/popover-trigger.js");require("../popover/popover-inline/popover-inline.styles_bkopnt.css");var n=require("./menu-content.js"),s=require("./menu-item.js"),o=require("./menu-link.js"),u=require("./menu-section.js");const a=n=>{var{children:s,position:o="bottom-start",menuContent:u,"data-testid":a="menu"}=n,p=e.__rest(n,["children","position","menuContent","data-testid"]);return r.jsx(i.PopoverTrigger,Object.assign({position:o,popoverContent:e=>t.cloneElement(u,{overflow:e.overflow,maxHeight:e.maxHeight}),"data-testid":a},p,{children:s}))},p=Object.assign(a,{Content:n.MenuContent,Section:u.MenuSection,Item:s.MenuItem,Link:o.MenuLink});exports.Menu=p,exports.MenuTrigger=a;
1
+ "use strict";var e=require("../_virtual/_tslib.js"),r=require("react/jsx-runtime"),t=require("react");require("clsx"),require("../theme/theme-provider/context.js"),require("../typography/typography.js"),require("../card/card.styles_1gh9gs3.css"),require("../markup/markup.js"),require("../modal-v2/modal-v2.js"),require("../theme/theme-provider/index.js"),require("../theme/tokens/border.js"),require("../theme/tokens/colour.js"),require("../theme/tokens/font.js"),require("../theme/tokens/media-query.js"),require("../util/calendar-helper.js"),require("../external/dayjs/dayjs.min.js"),require("../util/simple-id-generator.js"),require("../util/string-helper.js"),require("@react-aria/live-announcer"),require("../theme/utils/use-media-query.js"),require("../popover/popover.styles_ujnf0h.css");var i=require("../popover/popover-trigger.js");require("../popover/popover-inline/popover-inline.styles_bkopnt.css");var n=require("./menu-content.js"),s=require("./menu-item.js"),o=require("./menu-link.js"),u=require("./menu-section.js");const a=n=>{var{children:s,position:o="bottom-start",menuContent:u,"data-testid":a="menu"}=n,p=e.__rest(n,["children","position","menuContent","data-testid"]);return r.jsx(i.PopoverTrigger,Object.assign({position:o,popoverContent:e=>t.cloneElement(u,{overflow:e.overflow,maxHeight:e.maxHeight}),"data-testid":a},p,{children:s}))},p=Object.assign(a,{Content:n.MenuContent,Item:s.MenuItem,Link:o.MenuLink,Section:u.MenuSection});exports.Menu=p,exports.MenuTrigger=a;
2
2
  //# sourceMappingURL=menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sources":["../../../src/menu/menu.tsx"],"sourcesContent":["import { cloneElement } from \"react\";\n\nimport type { PopoverRenderProps } from \"../popover\";\nimport { PopoverTrigger } from \"../popover\";\nimport { MenuContent } from \"./menu-content\";\nimport { MenuItem } from \"./menu-item\";\nimport { MenuLink } from \"./menu-link\";\nimport { MenuSection } from \"./menu-section\";\nimport type { MenuContentProps, MenuProps } from \"./types\";\n\nexport const MenuTrigger = ({\n children,\n position = \"bottom-start\",\n menuContent,\n \"data-testid\": testId = \"menu\",\n ...otherProps\n}: MenuProps): JSX.Element => {\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n return (\n <PopoverTrigger\n position={position}\n popoverContent={(renderProps: PopoverRenderProps) =>\n cloneElement<MenuContentProps>(menuContent, {\n overflow: renderProps.overflow,\n maxHeight: renderProps.maxHeight,\n })\n }\n data-testid={testId}\n {...otherProps}\n >\n {children}\n </PopoverTrigger>\n );\n};\n\nexport const Menu = Object.assign(MenuTrigger, {\n Content: MenuContent,\n Section: MenuSection,\n Item: MenuItem,\n Link: MenuLink,\n});\n"],"names":["MenuTrigger","_a","children","position","menuContent","testId","otherProps","__rest","_jsx","PopoverTrigger","popoverContent","renderProps","cloneElement","overflow","maxHeight","Menu","Object","assign","Content","MenuContent","Section","MenuSection","Item","MenuItem","Link","MenuLink"],"mappings":"kjCAUO,MAAMA,EAAeC,IAAA,IAAAC,SACxBA,EAAQC,SACRA,EAAW,eAAcC,YACzBA,EACA,cAAeC,EAAS,QAAMJ,EAC3BK,EAAUC,EAAAA,OAAAN,EALW,qDAUxB,OACIO,MAACC,EAAAA,8BACGN,SAAUA,EACVO,eAAiBC,GACbC,EAAAA,aAA+BR,EAAa,CACxCS,SAAUF,EAAYE,SACtBC,UAAWH,EAAYG,YACzB,cAEOT,GACTC,YAEHJ,IACY,EAIZa,EAAOC,OAAOC,OAAOjB,EAAa,CAC3CkB,QAASC,EAAAA,YACTC,QAASC,EAAAA,YACTC,KAAMC,EAAAA,SACNC,KAAMC,EAAAA"}
1
+ {"version":3,"file":"menu.js","sources":["../../../src/menu/menu.tsx"],"sourcesContent":["import { cloneElement } from \"react\";\n\nimport type { PopoverRenderProps } from \"../popover\";\nimport { PopoverTrigger } from \"../popover\";\nimport { MenuContent } from \"./menu-content\";\nimport { MenuItem } from \"./menu-item\";\nimport { MenuLink } from \"./menu-link\";\nimport { MenuSection } from \"./menu-section\";\nimport type { MenuContentProps, MenuProps } from \"./types\";\n\n/**\n * Trigger wrapper that anchors a `Menu.Content` panel to its child element.\n *\n * Prefer the `Menu` composite export when building a full menu — it bundles\n * `Menu.Content`, `Menu.Section`, `Menu.Item`, and `Menu.Link` as named\n * sub-components alongside the trigger.\n */\nexport const MenuTrigger = ({\n children,\n position = \"bottom-start\",\n menuContent,\n \"data-testid\": testId = \"menu\",\n ...otherProps\n}: MenuProps): JSX.Element => {\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n return (\n <PopoverTrigger\n position={position}\n popoverContent={(renderProps: PopoverRenderProps) =>\n cloneElement<MenuContentProps>(menuContent, {\n overflow: renderProps.overflow,\n maxHeight: renderProps.maxHeight,\n })\n }\n data-testid={testId}\n {...otherProps}\n >\n {children}\n </PopoverTrigger>\n );\n};\n\n/**\n * A popover-anchored menu composed of sections and interactive items.\n *\n * Use `Menu` when a trigger element should open a floating panel of actions or\n * navigation links.\n *\n * Sub-components:\n * - `Menu.Content` — the floating panel that contains menu sections.\n * - `Menu.Item` — a non-anchor interactive list item with a primary label and optional sub-label.\n * - `Menu.Link` — an anchor (`<a>`) list item styled as a menu entry.\n * - `Menu.Section` — a grouping container for `Menu.Item` and `Menu.Link` entries.\n */\nexport const Menu = Object.assign(MenuTrigger, {\n /** Renders the floating panel that contains menu sections. */\n Content: MenuContent,\n /** Renders a non-anchor interactive list item with a primary label and optional sub-label. */\n Item: MenuItem,\n /** Renders an anchor (`<a>`) list item styled as a menu entry. */\n Link: MenuLink,\n /** Groups related menu entries. */\n Section: MenuSection,\n});\n"],"names":["MenuTrigger","_a","children","position","menuContent","testId","otherProps","__rest","_jsx","PopoverTrigger","popoverContent","renderProps","cloneElement","overflow","maxHeight","Menu","Object","assign","Content","MenuContent","Item","MenuItem","Link","MenuLink","Section","MenuSection"],"mappings":"qjCAiBO,MAAMA,EAAeC,IAAA,IAAAC,SACxBA,EAAQC,SACRA,EAAW,eAAcC,YACzBA,EACA,cAAeC,EAAS,QAAMJ,EAC3BK,EAAUC,EAAAA,OAAAN,EALW,qDAUxB,OACIO,MAACC,EAAAA,8BACGN,SAAUA,EACVO,eAAiBC,GACbC,EAAAA,aAA+BR,EAAa,CACxCS,SAAUF,EAAYE,SACtBC,UAAWH,EAAYG,YACzB,cAEOT,GACTC,YAEHJ,IACY,EAgBZa,EAAOC,OAAOC,OAAOjB,EAAa,CAE3CkB,QAASC,EAAAA,YAETC,KAAMC,EAAAA,SAENC,KAAMC,EAAAA,SAENC,QAASC,EAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/modal/index.ts"],"sourcesContent":["import { Modal as Base } from \"./modal\";\nimport { ModalBox as Box } from \"./modal-box\";\n\nexport const Modal = Object.assign(Base, {\n Box,\n});\n\nexport * from \"./types\";\n"],"names":["Modal","Object","assign","Base","Box"],"mappings":"2EAGaA,EAAQC,OAAOC,OAAOC,QAAM,KACrCC,EAAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/modal/index.ts"],"sourcesContent":["import { Modal as Base } from \"./modal\";\nimport { ModalBox as Box } from \"./modal-box\";\n\n/**\n * A full-screen overlay modal with a slide animation.\n *\n * Use `Modal` to present content that requires the user's immediate attention\n * or a focused interaction. Use `ModalV2` for built-in scroll handling and improved accessibility.\n *\n * Sub-components:\n * - `Modal.Box` — a styled content box with an optional close button.\n */\nexport const Modal = Object.assign(Base, {\n /**\n * A styled content container for use inside `Modal`. Renders an optional\n * close button and stops click events from propagating to the overlay.\n */\n Box,\n});\n\nexport * from \"./types\";\n"],"names":["Modal","Object","assign","Base","Box"],"mappings":"2EAYaA,EAAQC,OAAOC,OAAOC,QAAM,KAKrCC,EAAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../_virtual/_tslib.js"),s=require("react/jsx-runtime"),o=require("@lifesg/react-icons/cross"),r=require("clsx"),t=require("react"),i=require("../shared/clickable-icon/clickable-icon.js"),l=require("./modal-box.styles.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=a(r);const n=t.forwardRef((function(r,t){var{id:a="modal-box",children:n,onClose:u,showCloseButton:d=!0,className:f}=r,b=e.__rest(r,["id","children","onClose","showCloseButton","className"]);return s.jsxs("div",Object.assign({ref:t,"data-testid":a},b,{onClick:e=>{e.stopPropagation()},className:c.default(l.box,f),children:[d&&s.jsx(i.ClickableIcon,{onClick:u,"data-testid":"close-button",focusHighlight:!1,focusOutline:"browser",className:l.closeButton,children:s.jsx(o.CrossIcon,{})}),n]}))}));n.displayName="Modal.Box",exports.ModalBox=n;
1
+ "use strict";var e=require("../_virtual/_tslib.js"),r=require("react/jsx-runtime"),s=require("@lifesg/react-icons/cross"),i=require("clsx"),t=require("react"),l=require("../shared/clickable-icon/clickable-icon.js");require("../util/calendar-helper.js"),require("../external/dayjs/dayjs.min.js");var a=require("../util/merge-refs.js");require("../util/simple-id-generator.js"),require("../util/string-helper.js"),require("@react-aria/live-announcer");var o=require("./modal-box.styles.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=n(i);const u=t.forwardRef((function(i,t){var{id:n="modal-box",children:u,onClose:d,showCloseButton:f=!0,className:j,elementRef:m}=i,q=e.__rest(i,["id","children","onClose","showCloseButton","className","elementRef"]);return r.jsxs("div",Object.assign({ref:a.mergeRefs(t,m),"data-testid":n},q,{onClick:e=>{e.stopPropagation()},className:c.default(o.box,j),children:[f&&r.jsx(l.ClickableIcon,{onClick:d,"data-testid":"close-button",focusHighlight:!1,focusOutline:"browser",className:o.closeButton,children:r.jsx(s.CrossIcon,{})}),u]}))}));u.displayName="Modal.Box",exports.ModalBox=u;
2
2
  //# sourceMappingURL=modal-box.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal-box.js","sources":["../../../src/modal/modal-box.tsx"],"sourcesContent":["import { CrossIcon } from \"@lifesg/react-icons/cross\";\nimport clsx from \"clsx\";\nimport type React from \"react\";\nimport type { NamedExoticComponent } from \"react\";\nimport { forwardRef } from \"react\";\n\nimport { ClickableIcon } from \"../shared/clickable-icon\";\nimport * as styles from \"./modal-box.styles\";\nimport type { ModalBoxProps } from \"./types\";\n\nfunction ModalBoxInner(\n {\n id = \"modal-box\",\n children,\n onClose,\n showCloseButton = true,\n className,\n ...otherProps\n }: ModalBoxProps,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleOnClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n const renderCloseButton = () => {\n return (\n <ClickableIcon\n onClick={onClose}\n data-testid=\"close-button\"\n focusHighlight={false}\n focusOutline=\"browser\"\n className={styles.closeButton}\n >\n <CrossIcon />\n </ClickableIcon>\n );\n };\n\n return (\n <div\n ref={ref}\n data-testid={id}\n {...otherProps}\n onClick={handleOnClick}\n className={clsx(styles.box, className)}\n >\n {showCloseButton && renderCloseButton()}\n {children}\n </div>\n );\n}\n\nexport const ModalBox = forwardRef<HTMLDivElement, ModalBoxProps>(\n ModalBoxInner\n);\n\n(ModalBox as NamedExoticComponent).displayName = \"Modal.Box\";\n"],"names":["ModalBox","forwardRef","_a","ref","id","children","onClose","showCloseButton","className","otherProps","__rest","_jsxs","Object","assign","onClick","event","stopPropagation","clsx","styles.box","_jsx","ClickableIcon","focusHighlight","focusOutline","styles.closeButton","CrossIcon","displayName"],"mappings":"mVA2DaA,EAAWC,EAAAA,YAjDxB,SACIC,EAQAC,GARA,IAAAC,GACIA,EAAK,YAAWC,SAChBA,EAAQC,QACRA,EAAOC,gBACPA,GAAkB,EAAIC,UACtBA,GAASN,EACNO,EAAUC,EAAAA,OAAAR,EANjB,2DAkCA,OACIS,OAAA,MAAAC,OAAAC,OAAA,CACIV,IAAKA,EAAG,cACKC,GACTK,EAAU,CACdK,QA1BeC,IACnBA,EAAMC,iBAAiB,EA0BnBR,UAAWS,EAAAA,QAAKC,EAAAA,IAAYV,GAAUH,SAAA,CAErCE,GApBDY,EAAAA,IAACC,EAAAA,cAAa,CACVN,QAASR,EAAO,cACJ,eACZe,gBAAgB,EAChBC,aAAa,UACbd,UAAWe,cAAkBlB,SAE7Bc,EAAAA,IAACK,EAAAA,UAAS,CAAA,KAcbnB,KAGb,IAMCL,EAAkCyB,YAAc"}
1
+ {"version":3,"file":"modal-box.js","sources":["../../../src/modal/modal-box.tsx"],"sourcesContent":["import { CrossIcon } from \"@lifesg/react-icons/cross\";\nimport clsx from \"clsx\";\nimport type React from \"react\";\nimport type { NamedExoticComponent } from \"react\";\nimport { forwardRef } from \"react\";\n\nimport { ClickableIcon } from \"../shared/clickable-icon\";\nimport { mergeRefs } from \"../util\";\nimport * as styles from \"./modal-box.styles\";\nimport type { ModalBoxProps } from \"./types\";\n\nfunction ModalBoxInner(\n {\n id = \"modal-box\",\n children,\n onClose,\n showCloseButton = true,\n className,\n elementRef,\n ...otherProps\n }: ModalBoxProps,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleOnClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n const renderCloseButton = () => {\n return (\n <ClickableIcon\n onClick={onClose}\n data-testid=\"close-button\"\n focusHighlight={false}\n focusOutline=\"browser\"\n className={styles.closeButton}\n >\n <CrossIcon />\n </ClickableIcon>\n );\n };\n\n return (\n <div\n ref={mergeRefs(ref, elementRef)}\n data-testid={id}\n {...otherProps}\n onClick={handleOnClick}\n className={clsx(styles.box, className)}\n >\n {showCloseButton && renderCloseButton()}\n {children}\n </div>\n );\n}\n\nexport const ModalBox = forwardRef<HTMLDivElement, ModalBoxProps>(\n ModalBoxInner\n);\n\n(ModalBox as NamedExoticComponent).displayName = \"Modal.Box\";\n"],"names":["ModalBox","forwardRef","_a","ref","id","children","onClose","showCloseButton","className","elementRef","otherProps","__rest","_jsxs","Object","assign","mergeRefs","onClick","event","stopPropagation","clsx","styles.box","_jsx","ClickableIcon","focusHighlight","focusOutline","styles.closeButton","CrossIcon","displayName"],"mappings":"kkBA6DaA,EAAWC,EAAAA,YAlDxB,SACIC,EASAC,OATAC,GACIA,EAAK,YAAWC,SAChBA,EAAQC,QACRA,EAAOC,gBACPA,GAAkB,EAAIC,UACtBA,EAASC,WACTA,GAAUP,EACPQ,EAAUC,EAAAA,OAAAT,EAPjB,wEAmCA,OACIU,EAAAA,KAAA,MAAAC,OAAAC,OAAA,CACIX,IAAKY,YAAUZ,EAAKM,iBACPL,GACTM,EAAU,CACdM,QA1BeC,IACnBA,EAAMC,iBAAiB,EA0BnBV,UAAWW,UAAKC,EAAAA,IAAYZ,GAAUH,SAAA,CAErCE,GApBDc,EAAAA,IAACC,EAAAA,cAAa,CACVN,QAASV,EAAO,cACJ,eACZiB,gBAAgB,EAChBC,aAAa,UACbhB,UAAWiB,cAAkBpB,SAE7BgB,EAAAA,IAACK,EAAAA,UAAS,CAAA,KAcbrB,KAGb,IAMCL,EAAkC2B,YAAc"}
@@ -1,4 +1,4 @@
1
- .b14nv3ev{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:40rem;max-height:70%;background:var(--fds-colour-bg);box-shadow:var(--fds-shadow-lg-strong);border-radius:var(--fds-radius-lg);overflow:hidden;}:where(body.fds-breakpoint-md-max) .b14nv3ev{width:90%;max-height:70%;}
1
+ @layer fds{.b14nv3ev{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:40rem;max-height:70%;background:var(--fds-colour-bg);box-shadow:var(--fds-shadow-lg-strong);border-radius:var(--fds-radius-lg);overflow:hidden;}:where(body.fds-breakpoint-md-max) .b14nv3ev{width:90%;max-height:70%;}
2
2
  .ccgs01o{position:absolute;top:var(
3
3
  --fds-internal-modal-closeButton-topInset,
4
4
  var(--fds-spacing-16)
@@ -8,4 +8,4 @@
8
8
  );padding:0;color:var(--fds-colour-icon);}.ccgs01o svg{height:2rem;width:2rem;}:where(body.fds-breakpoint-sm-max) .ccgs01o{right:var(
9
9
  --fds-internal-modal-closeButton-rightInset,
10
10
  var(--fds-spacing-20)
11
- );}
11
+ );}}
@@ -1,4 +1,4 @@
1
- .czahu6t{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;width:100%;overflow:hidden;--fds-internal-modal-container-verticalHeight:initial;--fds-internal-modal-closeButton-topInset:initial;--fds-internal-modal-closeButton-rightInset:initial;}:where(body.fds-breakpoint-sm-max) .czahu6t{height:calc(var(--fds-internal-modal-container-verticalHeight, 1vh) * 100);}
1
+ @layer fds{.czahu6t{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:100%;width:100%;overflow:hidden;--fds-internal-modal-container-verticalHeight:initial;--fds-internal-modal-closeButton-topInset:initial;--fds-internal-modal-closeButton-rightInset:initial;}:where(body.fds-breakpoint-sm-max) .czahu6t{height:calc(var(--fds-internal-modal-container-verticalHeight, 1vh) * 100);}
2
2
  .c16tlthj{top:-3%;}
3
3
  .c19r0uwy{bottom:-3%;}
4
4
  .c11f2a4r{left:-3%;}
@@ -8,4 +8,4 @@
8
8
  .c1jimj00{top:0;}
9
9
  .c16qcfjk{bottom:0;}
10
10
  .cgnow3g{left:0;}
11
- .c14dyqe6{right:0;}
11
+ .c14dyqe6{right:0;}}
@@ -1,2 +1,2 @@
1
- "use strict";var o=require("./modal-v2.js"),t=require("./slots/card.js"),e=require("./slots/close-button.js"),s=require("./slots/content.js"),r=require("./slots/footer.js");const n=Object.assign(o.ModalV2,{Card:t.Card,CloseButton:e.CloseButton,Content:s.Content,Footer:r.Footer});exports.ModalV2=n;
1
+ "use strict";var r=require("./modal-v2.js");exports.ModalV2=r.ModalV2;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/modal-v2/index.ts"],"sourcesContent":["import { ModalV2 as Base } from \"./modal-v2\";\nimport { Card, CloseButton, Content, Footer } from \"./slots\";\n\nexport const ModalV2 = Object.assign(Base, {\n Card,\n CloseButton,\n Content,\n Footer,\n});\n\nexport * from \"./types\";\n"],"names":["ModalV2","Object","assign","Base","Card","CloseButton","Content","Footer"],"mappings":"mLAGaA,EAAUC,OAAOC,OAAOC,UAAM,MACvCC,EAAAA,iBACAC,EAAAA,oBACAC,EAAAA,eACAC,EAAAA"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../_virtual/_tslib.js"),r=require("react/jsx-runtime"),a=require("@floating-ui/react"),i=require("clsx"),t=require("react"),l=require("../overlay/overlay.js"),s=require("../shared/hooks/useViewport.js");require("../theme/theme-provider/index.js"),require("../theme/theme-provider/context.js"),require("../theme/tokens/border.js"),require("../theme/tokens/colour.js"),require("../theme/tokens/font.js"),require("../theme/tokens/media-query.js");var n=require("../theme/utils/use-apply-styles.js");require("../theme/utils/use-media-query.js"),require("../util/calendar-helper.js"),require("../external/dayjs/dayjs.min.js"),require("../util/simple-id-generator.js"),require("../util/string-helper.js"),require("@react-aria/live-announcer");var o=require("../util/use-event.js"),d=require("./modal-context.js"),u=require("./modal-v2.styles.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=c(i),v=c(t);exports.ModalV2=i=>{var{id:c,show:b,onClose:h,animationFrom:j="bottom",children:y,enableOverlayClick:q=!0,rootComponentId:x,zIndex:p,onOverlayClick:f,dismissKeyboardOnShow:g=!0,"data-testid":C="modal","aria-label":k,"aria-labelledby":O,"aria-describedby":F,disableInitialFocus:I=!1,className:w}=i,N=e.__rest(i,["id","show","onClose","animationFrom","children","enableOverlayClick","rootComponentId","zIndex","onOverlayClick","dismissKeyboardOnShow","data-testid","aria-label","aria-labelledby","aria-describedby","disableInitialFocus","className"]);const S=o.useEvent((()=>{var e,r;g&&(null===(r=null===(e=document.activeElement)||void 0===e?void 0:e.blur)||void 0===r||r.call(e))})),{verticalHeight:M}=s.useViewport({enabled:b,onBeforeStart:S}),_=t.useRef(null),z=t.useRef(null),E=y&&v.default.cloneElement(y,{ref:_});n.useApplyStyle(z,{[u.tokens.container.verticalHeight]:null==M?null:`${M}px`});const{refs:P,context:R}=a.useFloating({open:b,onOpenChange:e=>{e||null==h||h()}}),{isMounted:V,status:H}=a.useTransitionStatus(R,{duration:300}),K=a.useDismiss(R,{outsidePress:!1,enabled:!!h}),{getFloatingProps:$}=a.useInteractions([K]);return r.jsx(l.Overlay,{"data-testid":`${C}-overlay`,show:b,enableOverlayClick:q,onOverlayClick:f,id:c,rootId:x,containerRef:_,zIndex:p,children:r.jsx("div",Object.assign({ref:z,"data-testid":C,"data-status":H,"data-animation-from":j},N,{className:m.default(u.container,w),children:r.jsx(d.ModalContext.Provider,{value:{onClose:h},children:V&&r.jsx(a.FloatingFocusManager,{context:R,initialFocus:I?-1:P.floating,children:r.jsx("div",{className:u.scrollContainer,children:r.jsx("div",Object.assign({ref:P.setFloating},$(),{role:"dialog","aria-label":k,"aria-labelledby":O,"aria-describedby":F,className:u.modalContainer,children:E}))})})})}))})};
1
+ "use strict";var e=require("../_virtual/_tslib.js"),r=require("react/jsx-runtime"),t=require("@floating-ui/react"),a=require("clsx"),i=require("react"),s=require("../overlay/overlay.js"),l=require("../shared/hooks/useViewport.js");require("../theme/theme-provider/index.js"),require("../theme/theme-provider/context.js"),require("../theme/tokens/border.js"),require("../theme/tokens/colour.js"),require("../theme/tokens/font.js"),require("../theme/tokens/media-query.js");var o=require("../theme/utils/use-apply-styles.js");require("../theme/utils/use-media-query.js"),require("../util/calendar-helper.js"),require("../external/dayjs/dayjs.min.js"),require("../util/simple-id-generator.js"),require("../util/string-helper.js"),require("@react-aria/live-announcer");var n=require("../util/use-event.js"),u=require("./modal-context.js"),d=require("./modal-v2.styles.js"),c=require("./slots/card.js"),m=require("./slots/close-button.js"),j=require("./slots/content.js"),v=require("./slots/footer.js");function b(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=b(a),q=b(i);const y=Object.assign((a=>{var{id:c,show:m,onClose:j,animationFrom:v="bottom",children:b,enableOverlayClick:y=!0,rootComponentId:C,zIndex:x,onOverlayClick:f,dismissKeyboardOnShow:p=!0,"data-testid":g="modal","aria-label":O,"aria-labelledby":k,"aria-describedby":F,disableInitialFocus:I=!1,className:w}=a,N=e.__rest(a,["id","show","onClose","animationFrom","children","enableOverlayClick","rootComponentId","zIndex","onOverlayClick","dismissKeyboardOnShow","data-testid","aria-label","aria-labelledby","aria-describedby","disableInitialFocus","className"]);const S=n.useEvent((()=>{var e,r;p&&(null===(r=null===(e=document.activeElement)||void 0===e?void 0:e.blur)||void 0===r||r.call(e))})),{verticalHeight:M}=l.useViewport({enabled:m,onBeforeStart:S}),_=i.useRef(null),z=i.useRef(null),B=b&&q.default.cloneElement(b,{ref:_});o.useApplyStyle(z,{[d.tokens.container.verticalHeight]:null==M?null:`${M}px`});const{refs:E,context:P}=t.useFloating({open:m,onOpenChange:e=>{e||null==j||j()}}),{isMounted:R,status:V}=t.useTransitionStatus(P,{duration:300}),H=t.useDismiss(P,{outsidePress:!1,enabled:!!j}),{getFloatingProps:K}=t.useInteractions([H]);return r.jsx(s.Overlay,{"data-testid":`${g}-overlay`,show:m,enableOverlayClick:y,onOverlayClick:f,id:c,rootId:C,containerRef:_,zIndex:x,children:r.jsx("div",Object.assign({ref:z,"data-testid":g,"data-status":V,"data-animation-from":v},N,{className:h.default(d.container,w),children:r.jsx(u.ModalContext.Provider,{value:{onClose:j},children:R&&r.jsx(t.FloatingFocusManager,{context:P,initialFocus:I?-1:E.floating,children:r.jsx("div",{className:d.scrollContainer,children:r.jsx("div",Object.assign({ref:E.setFloating},K(),{role:"dialog","aria-label":O,"aria-labelledby":k,"aria-describedby":F,className:d.modalContainer,children:B}))})})})}))})}),{Card:c.Card,CloseButton:m.CloseButton,Content:j.Content,Footer:v.Footer});exports.ModalV2=y;
2
2
  //# sourceMappingURL=modal-v2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal-v2.js","sources":["../../../src/modal-v2/modal-v2.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n useDismiss,\n useFloating,\n useInteractions,\n useTransitionStatus,\n} from \"@floating-ui/react\";\nimport clsx from \"clsx\";\nimport React, { useRef } from \"react\";\n\nimport { Overlay } from \"../overlay/overlay\";\nimport { useViewport } from \"../shared/hooks\";\nimport { useApplyStyle } from \"../theme\";\nimport { useEvent } from \"../util\";\nimport { ModalContext } from \"./modal-context\";\nimport * as styles from \"./modal-v2.styles\";\nimport type { ModalV2Props } from \"./types\";\n\nexport const ModalV2 = ({\n id,\n show,\n onClose,\n animationFrom = \"bottom\",\n children,\n enableOverlayClick = true,\n rootComponentId,\n zIndex,\n onOverlayClick,\n dismissKeyboardOnShow = true,\n \"data-testid\": testId = \"modal\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n disableInitialFocus = false,\n className,\n ...otherProps\n}: ModalV2Props): JSX.Element => {\n // =========================================================================\n // CONST, STATE, REF\n // =========================================================================\n const dismissKeyboard = useEvent(() => {\n if (dismissKeyboardOnShow) {\n (document.activeElement as HTMLElement)?.blur?.();\n }\n });\n const { verticalHeight } = useViewport({\n enabled: show,\n onBeforeStart: dismissKeyboard,\n });\n const childRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const childWithRef =\n children && React.cloneElement(children, { ref: childRef });\n\n useApplyStyle(containerRef, {\n [styles.tokens.container.verticalHeight]:\n verticalHeight == null ? null : `${verticalHeight}px`,\n });\n\n // =========================================================================\n // FLOATING UI CONFIG\n // =========================================================================\n const { refs, context } = useFloating({\n open: show,\n onOpenChange: (isOpen) => {\n if (!isOpen) {\n onClose?.();\n }\n },\n });\n const { isMounted, status } = useTransitionStatus(context, {\n duration: 300,\n });\n const dismiss = useDismiss(context, {\n /* handled by overlayclick */\n outsidePress: false,\n enabled: !!onClose,\n });\n const { getFloatingProps } = useInteractions([dismiss]);\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n return (\n <Overlay\n data-testid={`${testId}-overlay`}\n show={show}\n enableOverlayClick={enableOverlayClick}\n onOverlayClick={onOverlayClick}\n id={id}\n rootId={rootComponentId}\n containerRef={childRef}\n zIndex={zIndex}\n >\n <div\n ref={containerRef}\n data-testid={testId}\n data-status={status}\n data-animation-from={animationFrom}\n {...otherProps}\n className={clsx(styles.container, className)}\n >\n <ModalContext.Provider value={{ onClose }}>\n {isMounted && (\n <FloatingFocusManager\n context={context}\n initialFocus={\n disableInitialFocus ? -1 : refs.floating\n }\n >\n <div className={styles.scrollContainer}>\n <div\n ref={refs.setFloating}\n {...getFloatingProps()}\n role=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n className={styles.modalContainer}\n >\n {childWithRef}\n </div>\n </div>\n </FloatingFocusManager>\n )}\n </ModalContext.Provider>\n </div>\n </Overlay>\n );\n};\n"],"names":["_a","id","show","onClose","animationFrom","children","enableOverlayClick","rootComponentId","zIndex","onOverlayClick","dismissKeyboardOnShow","testId","ariaLabel","ariaLabelledBy","ariaDescribedBy","disableInitialFocus","className","otherProps","__rest","dismissKeyboard","useEvent","_b","document","activeElement","blur","verticalHeight","useViewport","enabled","onBeforeStart","childRef","useRef","containerRef","childWithRef","React","cloneElement","ref","useApplyStyle","styles.tokens","container","refs","context","useFloating","open","onOpenChange","isOpen","isMounted","status","useTransitionStatus","duration","dismiss","useDismiss","outsidePress","getFloatingProps","useInteractions","_jsx","Overlay","rootId","Object","assign","clsx","styles.container","ModalContext","Provider","value","FloatingFocusManager","initialFocus","floating","styles.scrollContainer","setFloating","role","styles.modalContainer"],"mappings":"+8BAkBwBA,QAAAC,GACpBA,EAAEC,KACFA,EAAIC,QACJA,EAAOC,cACPA,EAAgB,SAAQC,SACxBA,EAAQC,mBACRA,GAAqB,EAAIC,gBACzBA,EAAeC,OACfA,EAAMC,eACNA,EAAcC,sBACdA,GAAwB,EACxB,cAAeC,EAAS,QACxB,aAAcC,EACd,kBAAmBC,EACnB,mBAAoBC,EAAeC,oBACnCA,GAAsB,EAAKC,UAC3BA,GAAShB,EACNiB,EAAUC,EAAAA,OAAAlB,EAjBO,CAAA,KAAA,OAAA,UAAA,gBAAA,WAAA,qBAAA,kBAAA,SAAA,iBAAA,wBAAA,cAAA,aAAA,kBAAA,mBAAA,sBAAA,cAsBpB,MAAMmB,EAAkBC,EAAAA,UAAS,aACzBV,YACAW,EAAuC,UAAtCC,SAASC,qBAA6B,IAAAvB,OAAA,EAAAA,EAAEwB,6BAC7C,KAEEC,eAAEA,GAAmBC,cAAY,CACnCC,QAASzB,EACT0B,cAAeT,IAEbU,EAAWC,EAAAA,OAAuB,MAClCC,EAAeD,EAAAA,OAAuB,MACtCE,EACF3B,GAAY4B,UAAMC,aAAa7B,EAAU,CAAE8B,IAAKN,IAEpDO,EAAAA,cAAcL,EAAc,CACxB,CAACM,EAAAA,OAAcC,UAAUb,gBACH,MAAlBA,EAAyB,KAAO,GAAGA,QAM3C,MAAMc,KAAEA,EAAIC,QAAEA,GAAYC,cAAY,CAClCC,KAAMxC,EACNyC,aAAeC,IACNA,GACDzC,SAAAA,GACJ,KAGF0C,UAAEA,EAASC,OAAEA,GAAWC,EAAAA,oBAAoBP,EAAS,CACvDQ,SAAU,MAERC,EAAUC,EAAAA,WAAWV,EAAS,CAEhCW,cAAc,EACdxB,UAAWxB,KAETiD,iBAAEA,GAAqBC,kBAAgB,CAACJ,IAK9C,OACIK,MAACC,EAAAA,QAAO,CAAA,cACS,GAAG5C,YAChBT,KAAMA,EACNI,mBAAoBA,EACpBG,eAAgBA,EAChBR,GAAIA,EACJuD,OAAQjD,EACRwB,aAAcF,EACdrB,OAAQA,EAAMH,SAEdiD,EAAAA,IAAA,MAAAG,OAAAC,OAAA,CACIvB,IAAKJ,EAAY,cACJpB,EAAM,cACNmC,EAAM,sBACE1C,GACjBa,GACJD,UAAW2C,UAAKC,EAAAA,UAAkB5C,GAAUX,SAE5CiD,MAACO,EAAAA,aAAaC,SAAQ,CAACC,MAAO,CAAE5D,WAASE,SACpCwC,GACGS,EAAAA,IAACU,uBAAoB,CACjBxB,QAASA,EACTyB,aACIlD,GAAsB,EAAKwB,EAAK2B,SAAQ7D,SAG5CiD,EAAAA,IAAA,MAAA,CAAKtC,UAAWmD,EAAAA,gBAAsB9D,SAClCiD,MAAA,MAAAG,OAAAC,OAAA,CACIvB,IAAKI,EAAK6B,aACNhB,IAAkB,CACtBiB,KAAK,SAAQ,aACDzD,EAAS,kBACJC,EAAc,mBACbC,EAClBE,UAAWsD,EAAAA,wBAEVtC,eAOnB"}
1
+ {"version":3,"file":"modal-v2.js","sources":["../../../src/modal-v2/modal-v2.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n useDismiss,\n useFloating,\n useInteractions,\n useTransitionStatus,\n} from \"@floating-ui/react\";\nimport clsx from \"clsx\";\nimport React, { useRef } from \"react\";\n\nimport { Overlay } from \"../overlay/overlay\";\nimport { useViewport } from \"../shared/hooks\";\nimport { useApplyStyle } from \"../theme\";\nimport { useEvent } from \"../util\";\nimport { ModalContext } from \"./modal-context\";\nimport * as styles from \"./modal-v2.styles\";\nimport { Card, CloseButton, Content, Footer } from \"./slots\";\nimport type { ModalV2Props } from \"./types\";\n\nconst Base = ({\n id,\n show,\n onClose,\n animationFrom = \"bottom\",\n children,\n enableOverlayClick = true,\n rootComponentId,\n zIndex,\n onOverlayClick,\n dismissKeyboardOnShow = true,\n \"data-testid\": testId = \"modal\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n disableInitialFocus = false,\n className,\n ...otherProps\n}: ModalV2Props): JSX.Element => {\n // =========================================================================\n // CONST, STATE, REF\n // =========================================================================\n const dismissKeyboard = useEvent(() => {\n if (dismissKeyboardOnShow) {\n (document.activeElement as HTMLElement)?.blur?.();\n }\n });\n const { verticalHeight } = useViewport({\n enabled: show,\n onBeforeStart: dismissKeyboard,\n });\n const childRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const childWithRef =\n children && React.cloneElement(children, { ref: childRef });\n\n useApplyStyle(containerRef, {\n [styles.tokens.container.verticalHeight]:\n verticalHeight == null ? null : `${verticalHeight}px`,\n });\n\n // =========================================================================\n // FLOATING UI CONFIG\n // =========================================================================\n const { refs, context } = useFloating({\n open: show,\n onOpenChange: (isOpen) => {\n if (!isOpen) {\n onClose?.();\n }\n },\n });\n const { isMounted, status } = useTransitionStatus(context, {\n duration: 300,\n });\n const dismiss = useDismiss(context, {\n /* handled by overlayclick */\n outsidePress: false,\n enabled: !!onClose,\n });\n const { getFloatingProps } = useInteractions([dismiss]);\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n return (\n <Overlay\n data-testid={`${testId}-overlay`}\n show={show}\n enableOverlayClick={enableOverlayClick}\n onOverlayClick={onOverlayClick}\n id={id}\n rootId={rootComponentId}\n containerRef={childRef}\n zIndex={zIndex}\n >\n <div\n ref={containerRef}\n data-testid={testId}\n data-status={status}\n data-animation-from={animationFrom}\n {...otherProps}\n className={clsx(styles.container, className)}\n >\n <ModalContext.Provider value={{ onClose }}>\n {isMounted && (\n <FloatingFocusManager\n context={context}\n initialFocus={\n disableInitialFocus ? -1 : refs.floating\n }\n >\n <div className={styles.scrollContainer}>\n <div\n ref={refs.setFloating}\n {...getFloatingProps()}\n role=\"dialog\"\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n className={styles.modalContainer}\n >\n {childWithRef}\n </div>\n </div>\n </FloatingFocusManager>\n )}\n </ModalContext.Provider>\n </div>\n </Overlay>\n );\n};\n\n/**\n * A composable modal dialog with slot-based content layout.\n *\n * Use `ModalV2` when you need a controlled overlay dialog with structured\n * content slots.\n *\n * Sub-components:\n * - `ModalV2.Card` — wraps modal content and arranges `Content`, `Footer`, and `CloseButton` slots in the correct layout.\n * - `ModalV2.CloseButton` — renders an accessible close button that invokes the modal's `onClose` callback.\n * - `ModalV2.Content` — container for the body content of the modal card.\n * - `ModalV2.Footer` — footer area for primary and secondary action buttons.\n */\nexport const ModalV2 = Object.assign(Base, {\n /** Wraps modal content and arranges `Content`, `Footer`, and `CloseButton` slots in the correct layout. */\n Card,\n /** Renders an accessible close button that invokes the modal's `onClose` callback. */\n CloseButton,\n /** Container for the body content of the modal card. */\n Content,\n /** Footer area for primary and secondary action buttons. */\n Footer,\n});\n"],"names":["ModalV2","Object","assign","_a","id","show","onClose","animationFrom","children","enableOverlayClick","rootComponentId","zIndex","onOverlayClick","dismissKeyboardOnShow","testId","ariaLabel","ariaLabelledBy","ariaDescribedBy","disableInitialFocus","className","otherProps","__rest","dismissKeyboard","useEvent","_b","document","activeElement","blur","verticalHeight","useViewport","enabled","onBeforeStart","childRef","useRef","containerRef","childWithRef","React","cloneElement","ref","useApplyStyle","styles.tokens","container","refs","context","useFloating","open","onOpenChange","isOpen","isMounted","status","useTransitionStatus","duration","dismiss","useDismiss","outsidePress","getFloatingProps","useInteractions","_jsx","Overlay","rootId","clsx","styles.container","ModalContext","Provider","value","FloatingFocusManager","initialFocus","floating","styles.scrollContainer","setFloating","role","styles.modalContainer","Card","CloseButton","Content","Footer"],"mappings":"gkCAmBA,MA6HaA,EAAUC,OAAOC,QA7HhBC,QAAAC,GACVA,EAAEC,KACFA,EAAIC,QACJA,EAAOC,cACPA,EAAgB,SAAQC,SACxBA,EAAQC,mBACRA,GAAqB,EAAIC,gBACzBA,EAAeC,OACfA,EAAMC,eACNA,EAAcC,sBACdA,GAAwB,EACxB,cAAeC,EAAS,QACxB,aAAcC,EACd,kBAAmBC,EACnB,mBAAoBC,EAAeC,oBACnCA,GAAsB,EAAKC,UAC3BA,GAAShB,EACNiB,EAAUC,EAAAA,OAAAlB,EAjBH,CAAA,KAAA,OAAA,UAAA,gBAAA,WAAA,qBAAA,kBAAA,SAAA,iBAAA,wBAAA,cAAA,aAAA,kBAAA,mBAAA,sBAAA,cAsBV,MAAMmB,EAAkBC,EAAAA,UAAS,aACzBV,YACAW,EAAuC,UAAtCC,SAASC,qBAA6B,IAAAvB,OAAA,EAAAA,EAAEwB,6BAC7C,KAEEC,eAAEA,GAAmBC,cAAY,CACnCC,QAASzB,EACT0B,cAAeT,IAEbU,EAAWC,EAAAA,OAAuB,MAClCC,EAAeD,EAAAA,OAAuB,MACtCE,EACF3B,GAAY4B,UAAMC,aAAa7B,EAAU,CAAE8B,IAAKN,IAEpDO,EAAAA,cAAcL,EAAc,CACxB,CAACM,EAAAA,OAAcC,UAAUb,gBACH,MAAlBA,EAAyB,KAAO,GAAGA,QAM3C,MAAMc,KAAEA,EAAIC,QAAEA,GAAYC,cAAY,CAClCC,KAAMxC,EACNyC,aAAeC,IACNA,GACDzC,SAAAA,GACJ,KAGF0C,UAAEA,EAASC,OAAEA,GAAWC,EAAAA,oBAAoBP,EAAS,CACvDQ,SAAU,MAERC,EAAUC,EAAAA,WAAWV,EAAS,CAEhCW,cAAc,EACdxB,UAAWxB,KAETiD,iBAAEA,GAAqBC,kBAAgB,CAACJ,IAK9C,OACIK,MAACC,EAAAA,QAAO,CAAA,cACS,GAAG5C,YAChBT,KAAMA,EACNI,mBAAoBA,EACpBG,eAAgBA,EAChBR,GAAIA,EACJuD,OAAQjD,EACRwB,aAAcF,EACdrB,OAAQA,EAAMH,SAEdiD,EAAAA,IAAA,MAAAxD,OAAAC,OAAA,CACIoC,IAAKJ,EAAY,cACJpB,EAAM,cACNmC,EAAM,sBACE1C,GACjBa,GACJD,UAAWyC,UAAKC,EAAAA,UAAkB1C,GAAUX,SAE5CiD,MAACK,EAAAA,aAAaC,SAAQ,CAACC,MAAO,CAAE1D,WAASE,SACpCwC,GACGS,EAAAA,IAACQ,uBAAoB,CACjBtB,QAASA,EACTuB,aACIhD,GAAsB,EAAKwB,EAAKyB,SAAQ3D,SAG5CiD,EAAAA,IAAA,MAAA,CAAKtC,UAAWiD,EAAAA,gBAAsB5D,SAClCiD,MAAA,MAAAxD,OAAAC,OAAA,CACIoC,IAAKI,EAAK2B,aACNd,IAAkB,CACtBe,KAAK,SAAQ,aACDvD,EAAS,kBACJC,EAAc,mBACbC,EAClBE,UAAWoD,EAAAA,wBAEVpC,eAOnB,GAgByB,MAEvCqC,EAAAA,iBAEAC,EAAAA,oBAEAC,EAAAA,eAEAC,EAAAA"}
@@ -1,3 +1,3 @@
1
- .c1jrmyjd{position:relative;width:100%;height:100%;overflow:auto;--fds-internal-modalV2-container-verticalHeight:initial;}:where(body.fds-breakpoint-sm-max) .c1jrmyjd{height:calc(var(--fds-internal-modalV2-container-verticalHeight, 1vh) * 100);}@supports (height: 100dvh){.c1jrmyjd{height:100dvh;}}.c1jrmyjd[data-status="initial"]{opacity:0;}.c1jrmyjd[data-status="open"]{opacity:1;-webkit-transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-entrance);transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-entrance);transition-delay:var(--fds-motion-duration-150);}.c1jrmyjd[data-status="close"]{opacity:0;-webkit-transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-exit);transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-exit);}.c1jrmyjd[data-animation-from="top"]:is([data-status="initial"], [data-status="close"]){top:-3%;}.c1jrmyjd[data-animation-from="top"][data-status="open"]{top:0;}.c1jrmyjd[data-animation-from="bottom"]:is([data-status="initial"], [data-status="close"]){bottom:-3%;}.c1jrmyjd[data-animation-from="bottom"][data-status="open"]{bottom:0;}.c1jrmyjd[data-animation-from="left"]:is([data-status="initial"], [data-status="close"]){left:-3%;}.c1jrmyjd[data-animation-from="left"][data-status="open"]{left:0;}.c1jrmyjd[data-animation-from="right"]:is([data-status="initial"], [data-status="close"]){right:-3%;}.c1jrmyjd[data-animation-from="right"][data-status="open"]{right:0;}
1
+ @layer fds{.c1jrmyjd{position:relative;width:100%;height:100%;overflow:auto;--fds-internal-modalV2-container-verticalHeight:initial;}:where(body.fds-breakpoint-sm-max) .c1jrmyjd{height:calc(var(--fds-internal-modalV2-container-verticalHeight, 1vh) * 100);}@supports (height: 100dvh){.c1jrmyjd{height:100dvh;}}.c1jrmyjd[data-status="initial"]{opacity:0;}.c1jrmyjd[data-status="open"]{opacity:1;-webkit-transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-entrance);transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-entrance);transition-delay:var(--fds-motion-duration-150);}.c1jrmyjd[data-status="close"]{opacity:0;-webkit-transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-exit);transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-exit);}.c1jrmyjd[data-animation-from="top"]:is([data-status="initial"], [data-status="close"]){top:-3%;}.c1jrmyjd[data-animation-from="top"][data-status="open"]{top:0;}.c1jrmyjd[data-animation-from="bottom"]:is([data-status="initial"], [data-status="close"]){bottom:-3%;}.c1jrmyjd[data-animation-from="bottom"][data-status="open"]{bottom:0;}.c1jrmyjd[data-animation-from="left"]:is([data-status="initial"], [data-status="close"]){left:-3%;}.c1jrmyjd[data-animation-from="left"][data-status="open"]{left:0;}.c1jrmyjd[data-animation-from="right"]:is([data-status="initial"], [data-status="close"]){right:-3%;}.c1jrmyjd[data-animation-from="right"][data-status="open"]{right:0;}
2
2
  .s1xsiaxz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:100%;pointer-events:none;}
3
- .mn5ir3{pointer-events:auto;width:100%;outline:none;}
3
+ .mn5ir3{pointer-events:auto;width:100%;outline:none;}}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),r=require("clsx"),a=require("react"),s=require("../../util/is-styled-components.js"),i=require("./close-button.js"),d=require("./content.js"),l=require("./footer.js"),o=require("./slot-styles.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=n(r),c=n(a);const f=c.default.forwardRef((function(r,a){var{id:n,"data-testid":f="modal-card",children:j,className:p}=r,m=e.__rest(r,["id","data-testid","children","className"]);const q=e=>c.default.Children.toArray(j).find((t=>((e,t)=>s.default(e.type)?e.type.target===t:e.type===t)(t,e))),y=q(i.CloseButton),C=q(d.Content),h=q(l.Footer),v=!!y;return t.jsxs("div",Object.assign({ref:a,id:n,"data-testid":f},m,{onClick:e=>{e.stopPropagation()},className:u.default(o.modalCard,p),children:[t.jsxs("div",{"data-has-close-button":v?"true":"false",className:u.default(o.slotSpacer),children:[C,h]}),v&&y]}))}));f.displayName="ModalV2.Card",exports.Card=f;
1
+ "use strict";var e=require("../../_virtual/_tslib.js"),r=require("react/jsx-runtime"),t=require("clsx"),a=require("react");require("../../util/calendar-helper.js"),require("../../external/dayjs/dayjs.min.js");var s=require("../../util/merge-refs.js");require("../../util/simple-id-generator.js"),require("../../util/string-helper.js"),require("@react-aria/live-announcer");var i=require("../../util/is-styled-components.js"),l=require("./close-button.js"),d=require("./content.js"),u=require("./footer.js"),n=require("./slot-styles.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=o(t),f=o(a);const j=f.default.forwardRef((function(t,a){var{id:o,"data-testid":j="modal-card",children:m,className:q,elementRef:p}=t,y=e.__rest(t,["id","data-testid","children","className","elementRef"]);const v=e=>f.default.Children.toArray(m).find((r=>((e,r)=>i.default(e.type)?e.type.target===r:e.type===r)(r,e))),h=v(l.CloseButton),g=v(d.Content),C=v(u.Footer),x=!!h;return r.jsxs("div",Object.assign({ref:s.mergeRefs(a,p),id:o,"data-testid":j},y,{onClick:e=>{e.stopPropagation()},className:c.default(n.modalCard,q),children:[r.jsxs("div",{"data-has-close-button":x?"true":"false",className:c.default(n.slotSpacer),children:[g,C]}),x&&h]}))}));j.displayName="ModalV2.Card",exports.Card=j;
2
2
  //# sourceMappingURL=card.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","sources":["../../../../src/modal-v2/slots/card.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport type { NamedExoticComponent } from \"react\";\nimport React from \"react\";\n\nimport isStyledComponent from \"../../util/is-styled-components\";\nimport type { ModalCardProps } from \"../types\";\nimport { CloseButton } from \"./close-button\";\nimport { Content } from \"./content\";\nimport { Footer } from \"./footer\";\nimport * as styles from \"./slot-styles\";\n\nfunction CardInner(\n {\n id,\n \"data-testid\": testId = \"modal-card\",\n children,\n className,\n ...otherProps\n }: ModalCardProps,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleOnClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n };\n\n // =========================================================================\n // HELPERS\n // =========================================================================\n const isComponentType = (child: React.ReactPortal, type: any) =>\n isStyledComponent(child.type)\n ? (child.type as unknown as { target: any }).target === type\n : child.type === type;\n\n const findComponentOfType = (type: any) => {\n return React.Children.toArray(children).find((child) =>\n isComponentType(child as React.ReactPortal, type)\n );\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n const CloseButtonSlot = findComponentOfType(CloseButton);\n const ContentSlot = findComponentOfType(Content);\n const FooterSlot = findComponentOfType(Footer);\n\n const hasCloseButton = !!CloseButtonSlot;\n\n return (\n <div\n ref={ref}\n id={id}\n data-testid={testId}\n {...otherProps}\n onClick={handleOnClick}\n className={clsx(styles.modalCard, className)}\n >\n <div\n data-has-close-button={hasCloseButton ? \"true\" : \"false\"}\n className={clsx(styles.slotSpacer)}\n >\n {ContentSlot}\n {FooterSlot}\n </div>\n {hasCloseButton && CloseButtonSlot}\n </div>\n );\n}\n\nexport const Card = React.forwardRef<HTMLDivElement, ModalCardProps>(CardInner);\n\n(Card as NamedExoticComponent).displayName = \"ModalV2.Card\";\n"],"names":["Card","React","forwardRef","_a","ref","id","testId","children","className","otherProps","__rest","findComponentOfType","type","Children","toArray","find","child","isStyledComponent","target","isComponentType","CloseButtonSlot","CloseButton","ContentSlot","Content","FooterSlot","Footer","hasCloseButton","_jsxs","Object","assign","onClick","event","stopPropagation","clsx","styles.modalCard","styles.slotSpacer","displayName"],"mappings":"qXAwEO,MAAMA,EAAOC,EAAAA,QAAMC,YA7D1B,SACIC,EAOAC,GAPA,IAAAC,GACIA,EACA,cAAeC,EAAS,aAAYC,SACpCA,EAAQC,UACRA,GAASL,EACNM,EAAUC,EAAAA,OAAAP,EALjB,6CAYA,MAYMQ,EAAuBC,GAClBX,UAAMY,SAASC,QAAQP,GAAUQ,MAAMC,GAN1B,EAACA,EAA0BJ,IAC/CK,EAAAA,QAAkBD,EAAMJ,MACjBI,EAAMJ,KAAoCM,SAAWN,EACtDI,EAAMJ,OAASA,EAIjBO,CAAgBH,EAA4BJ,KAO9CQ,EAAkBT,EAAoBU,eACtCC,EAAcX,EAAoBY,WAClCC,EAAab,EAAoBc,UAEjCC,IAAmBN,EAEzB,OACIO,EAAAA,KAAA,MAAAC,OAAAC,OAAA,CACIzB,IAAKA,EACLC,GAAIA,EAAE,cACOC,GACTG,EAAU,CACdqB,QAjCeC,IACnBA,EAAMC,iBAAiB,EAiCnBxB,UAAWyB,EAAAA,QAAKC,EAAAA,UAAkB1B,GAAUD,SAAA,CAE5CoB,EAAAA,KAAA,MAAA,CAAA,wBAC2BD,EAAiB,OAAS,QACjDlB,UAAWyB,EAAAA,QAAKE,EAAAA,YAAkB5B,SAAA,CAEjCe,EACAE,KAEJE,GAAkBN,KAG/B,IAICpB,EAA8BoC,YAAc"}
1
+ {"version":3,"file":"card.js","sources":["../../../../src/modal-v2/slots/card.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport type { NamedExoticComponent } from \"react\";\nimport React from \"react\";\n\nimport { mergeRefs } from \"../../util\";\nimport isStyledComponent from \"../../util/is-styled-components\";\nimport type { ModalCardProps } from \"../types\";\nimport { CloseButton } from \"./close-button\";\nimport { Content } from \"./content\";\nimport { Footer } from \"./footer\";\nimport * as styles from \"./slot-styles\";\n\nfunction CardInner(\n {\n id,\n \"data-testid\": testId = \"modal-card\",\n children,\n className,\n elementRef,\n ...otherProps\n }: ModalCardProps,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleOnClick = (event: React.MouseEvent) => {\n event.stopPropagation();\n };\n\n // =========================================================================\n // HELPERS\n // =========================================================================\n const isComponentType = (child: React.ReactPortal, type: any) =>\n isStyledComponent(child.type)\n ? (child.type as unknown as { target: any }).target === type\n : child.type === type;\n\n const findComponentOfType = (type: any) => {\n return React.Children.toArray(children).find((child) =>\n isComponentType(child as React.ReactPortal, type)\n );\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n const CloseButtonSlot = findComponentOfType(CloseButton);\n const ContentSlot = findComponentOfType(Content);\n const FooterSlot = findComponentOfType(Footer);\n\n const hasCloseButton = !!CloseButtonSlot;\n\n return (\n <div\n ref={mergeRefs(ref, elementRef)}\n id={id}\n data-testid={testId}\n {...otherProps}\n onClick={handleOnClick}\n className={clsx(styles.modalCard, className)}\n >\n <div\n data-has-close-button={hasCloseButton ? \"true\" : \"false\"}\n className={clsx(styles.slotSpacer)}\n >\n {ContentSlot}\n {FooterSlot}\n </div>\n {hasCloseButton && CloseButtonSlot}\n </div>\n );\n}\n\nexport const Card = React.forwardRef<HTMLDivElement, ModalCardProps>(CardInner);\n\n(Card as NamedExoticComponent).displayName = \"ModalV2.Card\";\n"],"names":["Card","React","forwardRef","_a","ref","id","testId","children","className","elementRef","otherProps","__rest","findComponentOfType","type","Children","toArray","find","child","isStyledComponent","target","isComponentType","CloseButtonSlot","CloseButton","ContentSlot","Content","FooterSlot","Footer","hasCloseButton","_jsxs","Object","assign","mergeRefs","onClick","event","stopPropagation","clsx","styles.modalCard","styles.slotSpacer","displayName"],"mappings":"mnBA0EO,MAAMA,EAAOC,EAAAA,QAAMC,YA9D1B,SACIC,EAQAC,GARA,IAAAC,GACIA,EACA,cAAeC,EAAS,aAAYC,SACpCA,EAAQC,UACRA,EAASC,WACTA,GAAUN,EACPO,EAAUC,EAAAA,OAAAR,EANjB,0DAaA,MAYMS,EAAuBC,GAClBZ,UAAMa,SAASC,QAAQR,GAAUS,MAAMC,GAN1B,EAACA,EAA0BJ,IAC/CK,EAAAA,QAAkBD,EAAMJ,MACjBI,EAAMJ,KAAoCM,SAAWN,EACtDI,EAAMJ,OAASA,EAIjBO,CAAgBH,EAA4BJ,KAO9CQ,EAAkBT,EAAoBU,eACtCC,EAAcX,EAAoBY,WAClCC,EAAab,EAAoBc,UAEjCC,IAAmBN,EAEzB,OACIO,EAAAA,KAAA,MAAAC,OAAAC,OAAA,CACI1B,IAAK2B,EAAAA,UAAU3B,EAAKK,GACpBJ,GAAIA,EAAE,cACOC,GACTI,EAAU,CACdsB,QAjCeC,IACnBA,EAAMC,iBAAiB,EAiCnB1B,UAAW2B,EAAAA,QAAKC,EAAAA,UAAkB5B,GAAUD,SAAA,CAE5CqB,EAAAA,KAAA,MAAA,CAAA,wBAC2BD,EAAiB,OAAS,QACjDnB,UAAW2B,EAAAA,QAAKE,EAAAA,YAAkB9B,SAAA,CAEjCgB,EACAE,KAEJE,GAAkBN,KAG/B,IAICrB,EAA8BsC,YAAc"}
@@ -1,4 +1,4 @@
1
- .metykyj{width:40rem;margin:var(--fds-spacing-64) auto;background:var(--fds-colour-bg);box-shadow:var(--fds-shadow-xs-strong);border-radius:var(--fds-radius-lg);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;max-width:calc(100% - var(--fds-breakpoint-margin-xxl) * 2);}:where(body.fds-breakpoint-xl-max) .metykyj{max-width:calc(100% - var(--fds-breakpoint-margin-xl) * 2);}:where(body.fds-breakpoint-lg-max) .metykyj{max-width:calc(100% - var(--fds-breakpoint-margin-lg) * 2);}:where(body.fds-breakpoint-md-max) .metykyj{max-width:calc(100% - var(--fds-breakpoint-margin-md) * 2);}:where(body.fds-breakpoint-sm-max) .metykyj{max-width:calc(100% - var(--fds-breakpoint-margin-sm) * 2);}:where(body.fds-breakpoint-xs-max) .metykyj{max-width:calc(100% - var(--fds-breakpoint-margin-xs) * 2);}:where(body.fds-breakpoint-xxs-max) .metykyj{max-width:calc(100% - var(--fds-breakpoint-margin-xxs) * 2);}
1
+ @layer fds{.metykyj{width:40rem;margin:var(--fds-spacing-64) auto;background:var(--fds-colour-bg);box-shadow:var(--fds-shadow-xs-strong);border-radius:var(--fds-radius-lg);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;max-width:calc(100% - var(--fds-breakpoint-margin-xxl) * 2);}:where(body.fds-breakpoint-xl-max) .metykyj{max-width:calc(100% - var(--fds-breakpoint-margin-xl) * 2);}:where(body.fds-breakpoint-lg-max) .metykyj{max-width:calc(100% - var(--fds-breakpoint-margin-lg) * 2);}:where(body.fds-breakpoint-md-max) .metykyj{max-width:calc(100% - var(--fds-breakpoint-margin-md) * 2);}:where(body.fds-breakpoint-sm-max) .metykyj{max-width:calc(100% - var(--fds-breakpoint-margin-sm) * 2);}:where(body.fds-breakpoint-xs-max) .metykyj{max-width:calc(100% - var(--fds-breakpoint-margin-xs) * 2);}:where(body.fds-breakpoint-xxs-max) .metykyj{max-width:calc(100% - var(--fds-breakpoint-margin-xxs) * 2);}
2
2
  .c1247joo{margin-right:var(--fds-spacing-16);margin-left:auto;margin-top:var(--fds-spacing-16);margin-bottom:var(--fds-spacing-16);}
3
3
  .st53q25{padding:0;color:var(--fds-colour-icon);}.st53q25 svg{height:2rem;width:2rem;}
4
4
  .c1ls09wh{margin-right:var(--fds-spacing-64);margin-left:var(--fds-spacing-64);}:where(body.fds-breakpoint-sm-max) .c1ls09wh{margin-right:var(--fds-spacing-20);margin-left:var(--fds-spacing-20);}
@@ -23,4 +23,4 @@
23
23
  );}.s1vsayl1[data-has-close-button="false"]{--fds-internal-modalV2-slotSpacer-firstChildMarginTop:var(
24
24
  --fds-internal-modalV2-slotSpacer-firstChildMarginTopNoCloseButton,
25
25
  var(--fds-spacing-64)
26
- );}
26
+ );}}
@@ -1 +1 @@
1
- .cw4lf53{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;height:100%;}.cw4lf53 img{width:auto;height:100%;-webkit-transition:var(--fds-motion-duration-150) var(--fds-motion-timing-ease-default);transition:var(--fds-motion-duration-150) var(--fds-motion-timing-ease-default);object-fit:contain;}
1
+ @layer fds{.cw4lf53{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;height:100%;}.cw4lf53 img{width:auto;height:100%;-webkit-transition:var(--fds-motion-duration-150) var(--fds-motion-timing-ease-default);transition:var(--fds-motion-duration-150) var(--fds-motion-timing-ease-default);object-fit:contain;}}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("@lifesg/react-icons/cross"),a=require("clsx"),s=require("react"),n=require("../shared/clickable-icon/clickable-icon.js");require("../theme/theme-provider/index.js"),require("../theme/theme-provider/context.js"),require("../theme/tokens/border.js"),require("../theme/tokens/colour.js"),require("../theme/tokens/font.js"),require("../theme/tokens/media-query.js");var t=require("../theme/utils/use-apply-styles.js");require("../theme/utils/use-media-query.js");var i=require("./brand.js"),o=require("./drawer.styles.js"),d=require("./navbar.styles.js");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=c(a);const u=c(s).default.forwardRef(((a,c)=>{const{show:u,resources:m={},children:v,hideNavBranding:p,onClose:h,onBrandClick:f,drawerLabel:j="Mobile navigation menu",mobileMenuRef:w}=a,[y,x]=s.useState(0),b=s.useRef(null);t.useApplyStyle(b,{[o.tokens.container.viewHeight]:y?`${y}px`:null});const{primary:q,secondary:k}=m,C=()=>{if(window){const e=.01*window.innerHeight;x(e)}};s.useEffect((()=>(C(),window.addEventListener("resize",C),()=>{window.removeEventListener("resize",C)})),[]),s.useLayoutEffect((()=>{if(u){const e=setTimeout((()=>{b.current&&b.current.focus({preventScroll:!0})}),550);return()=>clearTimeout(e)}}),[u]);return e.jsx("div",{className:o.wrapper,ref:c,"data-testid":"drawer",children:e.jsx("nav",{ref:b,className:l.default(o.container,u?o.containerShown:o.containerHidden),onKeyDown:e=>{u&&"Escape"===e.key&&(e.preventDefault(),null==h||h(),setTimeout((()=>{var e;null===(e=null==w?void 0:w.current)||void 0===e||e.focus()}),300))},tabIndex:u?0:-1,"aria-label":j,children:e.jsxs("div",{className:o.content,children:[e.jsxs("div",{className:o.topBar,children:[e.jsx("div",{className:l.default(d.navBrandContainer,d.navBrandContainerCompressed,d.navBrandContainerResponsive),"data-id":"drawer-brand-container",children:!p&&e.jsxs(e.Fragment,{children:[q&&e.jsx(i.Brand,{resources:q,compress:!0,onClick:f,"data-id":"drawer-brand-primary","data-testid":"drawer__brand",type:"primary"}),k&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:l.default(d.navSeparator,d.navSeparatorCompressed,d.navSeparatorResponsive)}),e.jsx(i.Brand,{resources:k,compress:!0,onClick:f,"data-id":"drawer-brand-secondary","data-testid":"drawer__brand-secondary",type:"secondary"})]})]})}),e.jsx(n.ClickableIcon,{className:o.closeButton,onClick:h,focusHighlight:!1,"aria-label":"Close nav menu",children:e.jsx(r.CrossIcon,{className:o.closeIcon})})]}),v]})})})}));exports.Drawer=u;
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("@floating-ui/react"),a=require("@lifesg/react-icons/cross"),n=require("clsx"),s=require("react"),i=require("../shared/clickable-icon/clickable-icon.js");require("../theme/theme-provider/index.js"),require("../theme/theme-provider/context.js"),require("../theme/tokens/border.js"),require("../theme/tokens/colour.js"),require("../theme/tokens/font.js"),require("../theme/tokens/media-query.js");var t=require("../theme/utils/use-apply-styles.js");require("../theme/utils/use-media-query.js"),require("../util/calendar-helper.js"),require("../external/dayjs/dayjs.min.js");var o=require("../util/merge-refs.js");require("../util/simple-id-generator.js"),require("../util/string-helper.js"),require("@react-aria/live-announcer");var l=require("./brand.js"),d=require("./drawer.styles.js"),c=require("./navbar.styles.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=u(n);const v=u(s).default.forwardRef(((n,u)=>{const{show:v,resources:j={},children:p,hideNavBranding:h,onClose:f,onBrandClick:q,drawerLabel:w="Mobile navigation menu",mobileMenuRef:x}=n,[y,b]=s.useState(0),g=s.useRef(null);t.useApplyStyle(g,{[d.tokens.container.viewHeight]:y?`${y}px`:null});const{primary:C,secondary:k}=j,{context:B,refs:N}=r.useFloating({open:v,onOpenChange:e=>{!e&&f&&f()}}),F=()=>{if(window){const e=.01*window.innerHeight;b(e)}};s.useEffect((()=>(F(),window.addEventListener("resize",F),()=>{window.removeEventListener("resize",F)})),[]),s.useLayoutEffect((()=>{if(v){const e=setTimeout((()=>{g.current&&g.current.focus({preventScroll:!0})}),550);return()=>clearTimeout(e)}}),[v]);return e.jsx(r.FloatingFocusManager,{context:B,initialFocus:-1,returnFocus:!0,disabled:!v,children:e.jsx("div",{className:d.wrapper,ref:o.mergeRefs(u,N.setFloating),"data-testid":"drawer",children:e.jsx("nav",{ref:g,className:m.default(d.container,v?d.containerShown:d.containerHidden),onKeyDown:e=>{v&&"Escape"===e.key&&(e.preventDefault(),null==f||f(),setTimeout((()=>{var e;null===(e=null==x?void 0:x.current)||void 0===e||e.focus()}),300))},tabIndex:-1,"aria-label":w,children:e.jsxs("div",{className:d.content,children:[e.jsxs("div",{className:d.topBar,children:[e.jsx("div",{className:m.default(c.navBrandContainer,c.navBrandContainerCompressed,c.navBrandContainerResponsive),"data-id":"drawer-brand-container",children:!h&&e.jsxs(e.Fragment,{children:[C&&e.jsx(l.Brand,{resources:C,compress:!0,onClick:q,"data-id":"drawer-brand-primary","data-testid":"drawer__brand",type:"primary"}),k&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:m.default(c.navSeparator,c.navSeparatorCompressed,c.navSeparatorResponsive)}),e.jsx(l.Brand,{resources:k,compress:!0,onClick:q,"data-id":"drawer-brand-secondary","data-testid":"drawer__brand-secondary",type:"secondary"})]})]})}),e.jsx(i.ClickableIcon,{className:d.closeButton,onClick:f,focusHighlight:!1,"aria-label":"Close nav menu",children:e.jsx(a.CrossIcon,{className:d.closeIcon})})]}),p]})})})})}));exports.Drawer=v;
2
2
  //# sourceMappingURL=drawer.js.map