@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":"form-label-addon.js","sources":["../../../src/form/form-label-addon.tsx"],"sourcesContent":["import { ICircleFillIcon } from \"@lifesg/react-icons/i-circle-fill\";\nimport type { RefObject } from \"react\";\n\nimport { PopoverInline } from \"../popover\";\nimport * as styles from \"./form-label-addon.styles\";\nimport type { FormLabelAddonProps } from \"./types\";\n\n// =============================================================================\n// POPOVER ADDON COMPONENT\n// Note: We need to re-construct as using with the HOC causes some rendering\n// issues\n// =============================================================================\ninterface PopoverAddonProps {\n addon: FormLabelAddonProps;\n rootNode?: RefObject<HTMLElement>;\n}\n\nexport const PopoverAddon = ({\n addon,\n rootNode,\n}: PopoverAddonProps): JSX.Element => {\n // =========================================================================\n // CONST, STATE, REF\n // =========================================================================\n const { content, type, icon, id, zIndex, \"data-testid\": testId } = addon;\n\n // =========================================================================\n // RENDER FUNCTION\n // =========================================================================\n return (\n <div className={styles.addonWrapper}>\n <PopoverInline\n trigger=\"click\"\n id={id}\n data-testid={testId}\n popoverContent={content}\n rootNode={rootNode}\n zIndex={zIndex}\n icon={icon ?? <ICircleFillIcon data-testid={`${type}-icon`} />}\n ariaLabel=\"More info\"\n />\n </div>\n );\n};\n"],"names":["addon","rootNode","content","type","icon","id","zIndex","testId","_jsx","className","styles.addonWrapper","children","PopoverInline","trigger","popoverContent","ICircleFillIcon","ariaLabel"],"mappings":"knCAiB4B,EACxBA,QACAC,eAKA,MAAMC,QAAEA,EAAOC,KAAEA,EAAIC,KAAEA,EAAIC,GAAEA,EAAEC,OAAEA,EAAQ,cAAeC,GAAWP,EAKnE,OACIQ,EAAAA,IAAA,MAAA,CAAKC,UAAWC,EAAAA,aAAmBC,SAC/BH,EAAAA,IAACI,gBAAa,CACVC,QAAQ,QACRR,GAAIA,EAAE,cACOE,EACbO,eAAgBZ,EAChBD,SAAUA,EACVK,OAAQA,EACRF,KAAMA,QAAAA,EAAQI,EAAAA,IAACO,EAAAA,gBAAe,CAAA,cAAc,GAAGZ,WAC/Ca,UAAU,eAEZ"}
1
+ {"version":3,"file":"form-label-addon.js","sources":["../../../src/form/form-label-addon.tsx"],"sourcesContent":["import { ICircleFillIcon } from \"@lifesg/react-icons/i-circle-fill\";\nimport type { RefObject } from \"react\";\n\nimport { PopoverInline } from \"../popover\";\nimport * as styles from \"./form-label-addon.styles\";\nimport type { FormLabelAddonProps } from \"./types\";\n\n// =============================================================================\n// POPOVER ADDON COMPONENT\n// Note: We need to re-construct as using with the HOC causes some rendering\n// issues\n// =============================================================================\ninterface PopoverAddonProps {\n addon: FormLabelAddonProps;\n rootNode?: RefObject<HTMLElement>;\n}\n\nexport const PopoverAddon = ({\n addon,\n rootNode,\n}: PopoverAddonProps): JSX.Element => {\n // =========================================================================\n // CONST, STATE, REF\n // =========================================================================\n const { content, type, icon, id, zIndex, \"data-testid\": testId } = addon;\n\n // =========================================================================\n // RENDER FUNCTION\n // =========================================================================\n return (\n <div className={styles.addonWrapper}>\n <PopoverInline\n trigger=\"click\"\n id={id}\n data-testid={testId}\n popoverContent={content}\n rootNode={rootNode}\n zIndex={zIndex}\n icon={icon ?? <ICircleFillIcon data-testid={`${type}-icon`} />}\n ariaLabel=\"More info\"\n />\n </div>\n );\n};\n"],"names":["addon","rootNode","content","type","icon","id","zIndex","testId","_jsx","className","styles.addonWrapper","children","PopoverInline","trigger","popoverContent","ICircleFillIcon","ariaLabel"],"mappings":"qnCAiB4B,EACxBA,QACAC,eAKA,MAAMC,QAAEA,EAAOC,KAAEA,EAAIC,KAAEA,EAAIC,GAAEA,EAAEC,OAAEA,EAAQ,cAAeC,GAAWP,EAKnE,OACIQ,EAAAA,IAAA,MAAA,CAAKC,UAAWC,EAAAA,aAAmBC,SAC/BH,EAAAA,IAACI,gBAAa,CACVC,QAAQ,QACRR,GAAIA,EAAE,cACOE,EACbO,eAAgBZ,EAChBD,SAAUA,EACVK,OAAQA,EACRF,KAAMA,QAAAA,EAAQI,EAAAA,IAACO,EAAAA,gBAAe,CAAA,cAAc,GAAGZ,WAC/Ca,UAAU,eAEZ"}
@@ -1 +1 @@
1
- .akbk9y1{padding-left:var(--fds-spacing-4);display:inline;}
1
+ @layer fds{.akbk9y1{padding-left:var(--fds-spacing-4);display:inline;}}
@@ -1,2 +1,2 @@
1
- "use strict";require("./form-label.styles_11r0652.css");exports.errorIcon="eyg2zu6",exports.errorMessage="e39ds6s",exports.errorMessageContainer="e4aab9k",exports.label="lf1tnj",exports.labelContainer="l170pjsx",exports.subtitle="s1n6ixex";
1
+ "use strict";require("./form-label.styles_1nbe0bm.css");exports.errorIcon="eyg2zu6",exports.errorMessage="e39ds6s",exports.errorMessageContainer="e4aab9k",exports.label="lf1tnj",exports.labelContainer="l170pjsx",exports.subtitle="s1n6ixex";
2
2
  //# sourceMappingURL=form-label.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form-label.styles.js","sources":["../../../src/form/form-label.styles.ts"],"sourcesContent":["import { css } from \"@linaria/core\";\n\nimport { Colour, Font, Spacing } from \"../theme\";\n\n// =============================================================================\n// STYLING\n// =============================================================================\nexport const labelContainer = css`\n margin-bottom: ${Spacing[\"spacing-8\"]};\n`;\n\nexport const label = css`\n color: ${Colour[\"text-subtle\"]};\n display: inline-block;\n ${Font[\"form-label\"]}\n font-weight: ${Font.Spec[\"weight-semibold\"]};\n`;\n\nexport const errorIcon = css`\n height: 1lh;\n width: 1em;\n flex-shrink: 0;\n color: ${Colour[\"icon-error-strong\"]};\n`;\n\nexport const errorMessageContainer = css`\n ${Font[\"body-sm-semibold\"]}\n display: flex;\n gap: ${Spacing[\"spacing-4\"]};\n margin-top: ${Spacing[\"spacing-8\"]};\n`;\n\nexport const errorMessage = css`\n color: ${Colour[\"text-error\"]};\n ${Font[\"body-sm-semibold\"]}\n margin-bottom: 0;\n outline: none;\n`;\n\nexport const subtitle = css`\n ${Font[\"form-description\"]}\n color: ${Colour[\"text-subtler\"]};\n display: block;\n`;\n"],"names":[],"mappings":"8FAkBsB,+BAcG,wCAPS,wBAdhB,gCAJS,4BAgCN"}
1
+ {"version":3,"file":"form-label.styles.js","sources":["../../../src/form/form-label.styles.ts"],"sourcesContent":["import { css } from \"@linaria/core\";\n\nimport { Colour, Font, Spacing } from \"../theme\";\n\n// =============================================================================\n// STYLING\n// =============================================================================\nexport const labelContainer = css`\n margin-bottom: ${Spacing[\"spacing-8\"]};\n display: flex;\n flex-direction: column;\n gap: ${Spacing[\"spacing-4\"]};\n`;\n\nexport const label = css`\n color: ${Colour[\"text-subtle\"]};\n display: inline-block;\n ${Font[\"form-label\"]}\n font-weight: ${Font.Spec[\"weight-semibold\"]};\n`;\n\nexport const errorIcon = css`\n height: 1lh;\n width: 1em;\n flex-shrink: 0;\n color: ${Colour[\"icon-error-strong\"]};\n`;\n\nexport const errorMessageContainer = css`\n ${Font[\"body-sm-semibold\"]}\n display: flex;\n gap: ${Spacing[\"spacing-4\"]};\n margin-top: ${Spacing[\"spacing-8\"]};\n`;\n\nexport const errorMessage = css`\n color: ${Colour[\"text-error\"]};\n ${Font[\"body-sm-semibold\"]}\n margin-bottom: 0;\n outline: none;\n`;\n\nexport const subtitle = css`\n ${Font[\"form-description\"]}\n color: ${Colour[\"text-subtler\"]};\n display: block;\n`;\n"],"names":[],"mappings":"8FAqBsB,+BAcG,wCAPS,wBAdhB,gCAPS,4BAmCN"}
@@ -1,6 +1,6 @@
1
- .l170pjsx{margin-bottom:var(--fds-spacing-8);}
1
+ @layer fds{.l170pjsx{margin-bottom:var(--fds-spacing-8);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:var(--fds-spacing-4);}
2
2
  .lf1tnj{color:var(--fds-colour-text-subtle);display:inline-block;font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-form-label-size);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-form-label-lh);letter-spacing:var(--fds-font-form-label-ls);font-weight:var(--fds-font-weight-semibold);}
3
3
  .eyg2zu6{height:1lh;width:1em;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;color:var(--fds-colour-icon-error-strong);}
4
4
  .e4aab9k{font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-sm);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-sm);letter-spacing:var(--fds-font-body-ls-sm);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;gap:var(--fds-spacing-4);margin-top:var(--fds-spacing-8);}
5
5
  .e39ds6s{color:var(--fds-colour-text-error);font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-sm);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-sm);letter-spacing:var(--fds-font-body-ls-sm);margin-bottom:0;outline:none;}
6
- .s1n6ixex{font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-form-description-size);font-weight:var(--fds-font-weight-regular);line-height:var(--fds-font-form-description-lh);letter-spacing:var(--fds-font-form-description-ls);color:var(--fds-colour-text-subtler);display:block;}
6
+ .s1n6ixex{font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-form-description-size);font-weight:var(--fds-font-weight-regular);line-height:var(--fds-font-form-description-lh);letter-spacing:var(--fds-font-form-description-ls);color:var(--fds-colour-text-subtler);display:block;}}
@@ -1,3 +1,3 @@
1
- .l1g6v039{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;margin-top:var(--fds-spacing-8);}
1
+ @layer fds{.l1g6v039{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;margin-top:var(--fds-spacing-8);}
2
2
  .exxic43{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;margin-right:var(--fds-spacing-12);gap:var(--fds-spacing-4);}
3
- .ebp2a0d{margin-top:0;}
3
+ .ebp2a0d{margin-top:0;}}
@@ -1 +1 @@
1
- .c10mmo3e{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.c10mmo3e:not(:last-child){margin-bottom:var(--fds-spacing-32);}
1
+ @layer fds{.c10mmo3e{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.c10mmo3e:not(:last-child){margin-bottom:var(--fds-spacing-32);}}
package/cjs/form/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./form-custom-field.js"),r=require("./form-date-input.js"),t=require("./form-date-range-input.js"),i=require("./form-e-signature.js"),m=require("./form-histogram.js"),u=require("./form-input.js"),o=require("./form-input-group.js"),s=require("./form-label.js"),n=require("./form-masked-input.js"),a=require("./form-multi-select.js"),l=require("./form-nested-multi-select.js"),p=require("./form-nested-select.js"),c=require("./form-otp-verification.js"),f=require("./form-phone-number-input.js"),F=require("./form-predictive-text-input.js"),d=require("./form-range-select.js"),j=require("./form-range-slider.js"),q=require("./form-select.js"),g=require("./form-select-histogram.js"),S=require("./form-slider.js"),I=require("./form-textarea.js"),b=require("./form-time-range-picker.js"),k=require("./form-timepicker.js"),N=require("./form-unit-number-input.js");const R={DateInput:r.FormDateInput,DateRangeInput:t.FormDateRangeInput,ESignature:i.FormESignature,HistogramSlider:m.FormHistogramSlider,Input:u.FormInput,InputGroup:o.FormInputGroup,MaskedInput:n.FormMaskedInput,Label:s.FormLabel,MultiSelect:a.FormMultiSelect,NestedSelect:p.FormNestedSelect,NestedMultiSelect:l.FormNestedMultiSelect,Select:q.FormSelect,SelectHistogram:g.FormSelectHistogram,Slider:S.FormSlider,RangeSlider:j.FormRangeSlider,RangeSelect:d.FormRangeSelect,Textarea:I.FormTextarea,Timepicker:k.FormTimepicker,TimeRangePicker:b.FormTimeRangePicker,CustomField:e.FormCustomField,UnitNumberInput:N.FormUnitNumberInput,PhoneNumberInput:f.FormPhoneNumberInput,PredictiveTextInput:F.FormPredictiveTextInput,OtpVerification:c.FormOtpVerification};exports.Form=R;
1
+ "use strict";var e=require("./form-custom-field.js"),r=require("./form-date-input.js"),t=require("./form-date-range-input.js"),i=require("./form-e-signature.js"),m=require("./form-histogram.js"),u=require("./form-input.js"),o=require("./form-input-group.js"),s=require("./form-label.js"),n=require("./form-masked-input.js"),a=require("./form-multi-select.js"),l=require("./form-nested-multi-select.js"),p=require("./form-nested-select.js"),c=require("./form-otp-verification.js"),f=require("./form-phone-number-input.js"),F=require("./form-predictive-text-input.js"),d=require("./form-range-select.js"),j=require("./form-range-slider.js"),q=require("./form-select.js"),g=require("./form-select-histogram.js"),S=require("./form-slider.js"),I=require("./form-textarea.js"),b=require("./form-time-range-picker.js"),k=require("./form-timepicker.js"),N=require("./form-unit-number-input.js");const R={CustomField:e.FormCustomField,DateInput:r.FormDateInput,DateRangeInput:t.FormDateRangeInput,ESignature:i.FormESignature,HistogramSlider:m.FormHistogramSlider,Input:u.FormInput,InputGroup:o.FormInputGroup,Label:s.FormLabel,MaskedInput:n.FormMaskedInput,MultiSelect:a.FormMultiSelect,NestedMultiSelect:l.FormNestedMultiSelect,NestedSelect:p.FormNestedSelect,OtpVerification:c.FormOtpVerification,PhoneNumberInput:f.FormPhoneNumberInput,PredictiveTextInput:F.FormPredictiveTextInput,RangeSelect:d.FormRangeSelect,RangeSlider:j.FormRangeSlider,Select:q.FormSelect,SelectHistogram:g.FormSelectHistogram,Slider:S.FormSlider,Textarea:I.FormTextarea,Timepicker:k.FormTimepicker,TimeRangePicker:b.FormTimeRangePicker,UnitNumberInput:N.FormUnitNumberInput};exports.Form=R;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/form/index.ts"],"sourcesContent":["import { FormCustomField } from \"./form-custom-field\";\nimport { FormDateInput } from \"./form-date-input\";\nimport { FormDateRangeInput } from \"./form-date-range-input\";\nimport { FormESignature } from \"./form-e-signature\";\nimport { FormHistogramSlider } from \"./form-histogram\";\nimport { FormInput } from \"./form-input\";\nimport { FormInputGroup } from \"./form-input-group\";\nimport { FormLabel } from \"./form-label\";\nimport { FormMaskedInput } from \"./form-masked-input\";\nimport { FormMultiSelect } from \"./form-multi-select\";\nimport { FormNestedMultiSelect } from \"./form-nested-multi-select\";\nimport { FormNestedSelect } from \"./form-nested-select\";\nimport { FormOtpVerification } from \"./form-otp-verification\";\nimport { FormPhoneNumberInput } from \"./form-phone-number-input\";\nimport { FormPredictiveTextInput } from \"./form-predictive-text-input\";\nimport { FormRangeSelect } from \"./form-range-select\";\nimport { FormRangeSlider } from \"./form-range-slider\";\nimport { FormSelect } from \"./form-select\";\nimport { FormSelectHistogram } from \"./form-select-histogram\";\nimport { FormSlider } from \"./form-slider\";\nimport { FormTextarea } from \"./form-textarea\";\nimport { FormTimeRangePicker } from \"./form-time-range-picker\";\nimport { FormTimepicker } from \"./form-timepicker\";\nimport { FormUnitNumberInput } from \"./form-unit-number-input\";\n\nexport * from \"./types\";\n\nexport const Form = {\n DateInput: FormDateInput,\n DateRangeInput: FormDateRangeInput,\n ESignature: FormESignature,\n HistogramSlider: FormHistogramSlider,\n Input: FormInput,\n InputGroup: FormInputGroup,\n MaskedInput: FormMaskedInput,\n Label: FormLabel,\n MultiSelect: FormMultiSelect,\n NestedSelect: FormNestedSelect,\n NestedMultiSelect: FormNestedMultiSelect,\n Select: FormSelect,\n SelectHistogram: FormSelectHistogram,\n Slider: FormSlider,\n RangeSlider: FormRangeSlider,\n RangeSelect: FormRangeSelect,\n Textarea: FormTextarea,\n Timepicker: FormTimepicker,\n TimeRangePicker: FormTimeRangePicker,\n CustomField: FormCustomField,\n UnitNumberInput: FormUnitNumberInput,\n PhoneNumberInput: FormPhoneNumberInput,\n PredictiveTextInput: FormPredictiveTextInput,\n OtpVerification: FormOtpVerification,\n};\n"],"names":["Form","DateInput","FormDateInput","DateRangeInput","FormDateRangeInput","ESignature","FormESignature","HistogramSlider","FormHistogramSlider","Input","FormInput","InputGroup","FormInputGroup","MaskedInput","FormMaskedInput","Label","FormLabel","MultiSelect","FormMultiSelect","NestedSelect","FormNestedSelect","NestedMultiSelect","FormNestedMultiSelect","Select","FormSelect","SelectHistogram","FormSelectHistogram","Slider","FormSlider","RangeSlider","FormRangeSlider","RangeSelect","FormRangeSelect","Textarea","FormTextarea","Timepicker","FormTimepicker","TimeRangePicker","FormTimeRangePicker","CustomField","FormCustomField","UnitNumberInput","FormUnitNumberInput","PhoneNumberInput","FormPhoneNumberInput","PredictiveTextInput","FormPredictiveTextInput","OtpVerification","FormOtpVerification"],"mappings":"u3BA2BO,MAAMA,EAAO,CAChBC,UAAWC,EAAAA,cACXC,eAAgBC,EAAAA,mBAChBC,WAAYC,EAAAA,eACZC,gBAAiBC,EAAAA,oBACjBC,MAAOC,EAAAA,UACPC,WAAYC,EAAAA,eACZC,YAAaC,EAAAA,gBACbC,MAAOC,EAAAA,UACPC,YAAaC,EAAAA,gBACbC,aAAcC,EAAAA,iBACdC,kBAAmBC,EAAAA,sBACnBC,OAAQC,EAAAA,WACRC,gBAAiBC,EAAAA,oBACjBC,OAAQC,EAAAA,WACRC,YAAaC,EAAAA,gBACbC,YAAaC,EAAAA,gBACbC,SAAUC,EAAAA,aACVC,WAAYC,EAAAA,eACZC,gBAAiBC,EAAAA,oBACjBC,YAAaC,EAAAA,gBACbC,gBAAiBC,EAAAA,oBACjBC,iBAAkBC,EAAAA,qBAClBC,oBAAqBC,EAAAA,wBACrBC,gBAAiBC,EAAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/form/index.ts"],"sourcesContent":["import { FormCustomField } from \"./form-custom-field\";\nimport { FormDateInput } from \"./form-date-input\";\nimport { FormDateRangeInput } from \"./form-date-range-input\";\nimport { FormESignature } from \"./form-e-signature\";\nimport { FormHistogramSlider } from \"./form-histogram\";\nimport { FormInput } from \"./form-input\";\nimport { FormInputGroup } from \"./form-input-group\";\nimport { FormLabel } from \"./form-label\";\nimport { FormMaskedInput } from \"./form-masked-input\";\nimport { FormMultiSelect } from \"./form-multi-select\";\nimport { FormNestedMultiSelect } from \"./form-nested-multi-select\";\nimport { FormNestedSelect } from \"./form-nested-select\";\nimport { FormOtpVerification } from \"./form-otp-verification\";\nimport { FormPhoneNumberInput } from \"./form-phone-number-input\";\nimport { FormPredictiveTextInput } from \"./form-predictive-text-input\";\nimport { FormRangeSelect } from \"./form-range-select\";\nimport { FormRangeSlider } from \"./form-range-slider\";\nimport { FormSelect } from \"./form-select\";\nimport { FormSelectHistogram } from \"./form-select-histogram\";\nimport { FormSlider } from \"./form-slider\";\nimport { FormTextarea } from \"./form-textarea\";\nimport { FormTimeRangePicker } from \"./form-time-range-picker\";\nimport { FormTimepicker } from \"./form-timepicker\";\nimport { FormUnitNumberInput } from \"./form-unit-number-input\";\n\nexport * from \"./types\";\n\n/**\n * A collection of form field components that each combine a label, input\n * control, and inline error message with consistent ARIA wiring.\n *\n * Use `Form.*` sub-components to build accessible forms. Use `Form.CustomField` to wrap any\n * bespoke input element in the same layout.\n *\n * Sub-components:\n * - `Form.CustomField` — layout shell for wrapping custom input elements.\n * - `Form.DateInput` — single date picker.\n * - `Form.DateRangeInput` — date range picker.\n * - `Form.ESignature` — e-signature capture field.\n * - `Form.HistogramSlider` — range slider with histogram overlay.\n * - `Form.Input` — single-line text input field.\n * - `Form.InputGroup` — grouped inputs with shared label and error state.\n * - `Form.Label` — standalone label for use outside a `Form.*` field.\n * - `Form.MaskedInput` — text input with a character-level input mask.\n * - `Form.MultiSelect` — multi-value dropdown select.\n * - `Form.NestedMultiSelect` — hierarchical multi-value select.\n * - `Form.NestedSelect` — hierarchical single-value select.\n * - `Form.OtpVerification` — OTP send-and-verify flow.\n * - `Form.PhoneNumberInput` — phone number input with country code selection.\n * - `Form.PredictiveTextInput` — text input with predictive suggestions.\n * - `Form.RangeSelect` — dual-value range dropdown select.\n * - `Form.RangeSlider` — dual-handle range slider.\n * - `Form.Select` — single-value dropdown select.\n * - `Form.SelectHistogram` — select control with histogram.\n * - `Form.Slider` — single-value range slider.\n * - `Form.Textarea` — multi-line text area.\n * - `Form.Timepicker` — time picker.\n * - `Form.TimeRangePicker` — time range picker.\n * - `Form.UnitNumberInput` — structured unit number input.\n */\nexport const Form = {\n /** Layout shell that wraps any custom input element with label, subtitle, and error message. */\n CustomField: FormCustomField,\n\n /** Single date picker with form layout. */\n DateInput: FormDateInput,\n\n /** Date range picker with form layout. */\n DateRangeInput: FormDateRangeInput,\n\n /** E-signature capture field with form layout. */\n ESignature: FormESignature,\n\n /** Range slider with histogram overlay and form layout. */\n HistogramSlider: FormHistogramSlider,\n\n /** Single-line text input field with form layout. */\n Input: FormInput,\n\n /** Grouped inputs with shared label, error state, and form layout. */\n InputGroup: FormInputGroup,\n\n /** Standalone label element for use outside a `Form.*` field with optional subtitle and addon icon. */\n Label: FormLabel,\n\n /** Text input with a character-level input mask and form layout. */\n MaskedInput: FormMaskedInput,\n\n /** Multi-value dropdown select with form layout. */\n MultiSelect: FormMultiSelect,\n\n /** Hierarchical multi-value select with form layout. */\n NestedMultiSelect: FormNestedMultiSelect,\n\n /** Hierarchical single-value select with form layout. */\n NestedSelect: FormNestedSelect,\n\n /** OTP send-and-verify flow with form layout. */\n OtpVerification: FormOtpVerification,\n\n /** Phone number input with country code selection and form layout. */\n PhoneNumberInput: FormPhoneNumberInput,\n\n /** Text input with predictive suggestions and form layout. */\n PredictiveTextInput: FormPredictiveTextInput,\n\n /** Dual-value range dropdown select with form layout. */\n RangeSelect: FormRangeSelect,\n\n /** Dual-handle range slider with form layout. */\n RangeSlider: FormRangeSlider,\n\n /** Single-value dropdown select with form layout. */\n Select: FormSelect,\n\n /** Select control with histogram and form layout. */\n SelectHistogram: FormSelectHistogram,\n\n /** Single-value range slider with form layout. */\n Slider: FormSlider,\n\n /** Multi-line text area with form layout. */\n Textarea: FormTextarea,\n\n /** Time picker with form layout. */\n Timepicker: FormTimepicker,\n\n /** Time range picker with form layout. */\n TimeRangePicker: FormTimeRangePicker,\n\n /** Structured unit number input with form layout. */\n UnitNumberInput: FormUnitNumberInput,\n};\n"],"names":["Form","CustomField","FormCustomField","DateInput","FormDateInput","DateRangeInput","FormDateRangeInput","ESignature","FormESignature","HistogramSlider","FormHistogramSlider","Input","FormInput","InputGroup","FormInputGroup","Label","FormLabel","MaskedInput","FormMaskedInput","MultiSelect","FormMultiSelect","NestedMultiSelect","FormNestedMultiSelect","NestedSelect","FormNestedSelect","OtpVerification","FormOtpVerification","PhoneNumberInput","FormPhoneNumberInput","PredictiveTextInput","FormPredictiveTextInput","RangeSelect","FormRangeSelect","RangeSlider","FormRangeSlider","Select","FormSelect","SelectHistogram","FormSelectHistogram","Slider","FormSlider","Textarea","FormTextarea","Timepicker","FormTimepicker","TimeRangePicker","FormTimeRangePicker","UnitNumberInput","FormUnitNumberInput"],"mappings":"u3BA4DO,MAAMA,EAAO,CAEhBC,YAAaC,EAAAA,gBAGbC,UAAWC,EAAAA,cAGXC,eAAgBC,EAAAA,mBAGhBC,WAAYC,EAAAA,eAGZC,gBAAiBC,EAAAA,oBAGjBC,MAAOC,EAAAA,UAGPC,WAAYC,EAAAA,eAGZC,MAAOC,EAAAA,UAGPC,YAAaC,EAAAA,gBAGbC,YAAaC,EAAAA,gBAGbC,kBAAmBC,EAAAA,sBAGnBC,aAAcC,EAAAA,iBAGdC,gBAAiBC,EAAAA,oBAGjBC,iBAAkBC,EAAAA,qBAGlBC,oBAAqBC,EAAAA,wBAGrBC,YAAaC,EAAAA,gBAGbC,YAAaC,EAAAA,gBAGbC,OAAQC,EAAAA,WAGRC,gBAAiBC,EAAAA,oBAGjBC,OAAQC,EAAAA,WAGRC,SAAUC,EAAAA,aAGVC,WAAYC,EAAAA,eAGZC,gBAAiBC,EAAAA,oBAGjBC,gBAAiBC,EAAAA"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../_virtual/_tslib.js"),i=require("react/jsx-runtime"),t=require("@lifesg/react-icons"),l=require("@lifesg/react-icons/bin"),r=require("@react-aria/live-announcer"),a=require("clsx"),n=require("react"),s=require("react-zoom-pan-pinch"),o=require("../modal-v2/index.js"),u=require("../shared/clickable-icon/clickable-icon.js"),c=require("../shared/hooks/use-state-callback.js"),d=require("../shared/image-placeholder/image-placeholder.js");require("../theme/theme-provider/index.js");var m=require("../theme/utils/css-variable.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 h=require("../theme/utils/use-apply-styles.js");require("../theme/utils/use-media-query.js");var v=require("../typography/index.js");require("../util/calendar-helper.js"),require("../external/dayjs/dayjs.min.js"),require("../util/simple-id-generator.js"),require("../util/string-helper.js");var f=require("../util/use-event-listener.js"),g=require("./fullscreen-image-carousel.styles.js"),p=require("./stateful-image.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var x=j(a);const b=e=>!!e&&"custom"===e.type,I=(a,j)=>{var I,{items:y,initialActiveItemIndex:C,hideThumbnail:N=!1,hideNavigation:k=!1,hideCounter:q=!1,hideMagnifier:w=!1,onDelete:S,onClose:B,insets:T,show:R}=a,A=e.__rest(a,["items","initialActiveItemIndex","hideThumbnail","hideNavigation","hideCounter","hideMagnifier","onDelete","onClose","insets","show"]);const[$,M]=c.useStateCallback(null!=C?C:0),[L,P]=n.useState({}),[V,W]=n.useState(1),[E,D]=n.useState(),[U,z]=n.useState(),F=n.useRef(null),G=n.useRef([]),X=n.useRef([]),Z=n.useRef(null),_=n.useRef(null),O=n.useRef(null),H=n.useRef(null),J=n.useRef(null),K=E&&U?E-U:0,Q=y[$],Y=y.some((e=>{var i;return b(e)&&!!(null===(i=e.itemLabel)||void 0===i?void 0:i.trim())})),ee=Y?"item":"image",ie=n.useMemo((()=>y.some((e=>{var i,t;return(null===(i=e.fileName)||void 0===i?void 0:i.trim())||(null===(t=e.fileSize)||void 0===t?void 0:t.trim())}))),[y]);h.useApplyStyle(_,{[g.tokens.topActionButtons.insetTop]:m.formatUnitValue(null==T?void 0:T.top,"px"),[g.tokens.topActionButtons.insetLeft]:m.formatUnitValue(null==T?void 0:T.left,"px"),[g.tokens.topActionButtons.insetRight]:m.formatUnitValue(null==T?void 0:T.right,"px")}),h.useApplyStyle(O,{[g.tokens.arrowButton.insetLeft]:m.formatUnitValue(null==T?void 0:T.left,"px")}),h.useApplyStyle(H,{[g.tokens.arrowButton.insetRight]:m.formatUnitValue(null==T?void 0:T.right,"px")}),h.useApplyStyle(J,{[g.tokens.thumbnailContainer.insetBottom]:m.formatUnitValue(null==T?void 0:T.bottom,"px")});const te=n.useCallback((e=>{var i,t;const l=y[e],r=Y?"Item":"Image",a=b(l)?(null===(i=l.itemLabel)||void 0===i?void 0:i.trim())||"":(null===(t=l.alt)||void 0===t?void 0:t.trim())||"",n=`${r} ${e+1} of ${y.length}.`;return a?`${a}. ${n}`:n}),[y,Y]);n.useImperativeHandle(j,(()=>({currentItemIndex:$,setCurrentItem:oe,goToPrevItem:ne,goToNextItem:se}))),f.useEventListener("keydown",(function(e){"ArrowRight"===e.key?se():"ArrowLeft"===e.key?ne():"Escape"===e.key&&(null==B||B())}),"document"),n.useEffect((()=>{var e;R&&(null===(e=Z.current)||void 0===e||e.focus())}),[R]),n.useEffect((()=>{0!==y.length?$>y.length-1&&M(y.length-1):M(0)}),[$,y.length,M]),n.useEffect((()=>{var e,i;null===(i=null===(e=G.current)||void 0===e?void 0:e[$])||void 0===i||i.scrollIntoView({behavior:"smooth",inline:"center"}),W(1)}),[$]);const le=e=>{W(e.state.scale)};const re=({src:e,height:i,width:t})=>{P((l=>Object.assign(Object.assign({},l),{[e]:{height:i,width:t}})))},ae=()=>{if(!Q||b(Q))return;const e=L[Q.src];if(F.current&&e){const{clientHeight:i,clientWidth:t}=F.current,{width:l,height:r}=e,a=r/l<i/t;return l<t&&r<i?a?t/l:i/r:a?i/(r/(l/t)):t/(l/(r/i))}},ne=()=>{var e,i;null===(i=null===(e=X.current)||void 0===e?void 0:e[$])||void 0===i||i.resetTransform(),M((e=>0===e?y.length-1:e-1),(e=>{r.clearAnnouncer("polite"),r.announce(te(e),"polite")}))},se=()=>{var e,i;null===(i=null===(e=X.current)||void 0===e?void 0:e[$])||void 0===i||i.resetTransform(),M((e=>e===y.length-1?0:e+1),(e=>{r.clearAnnouncer("polite"),r.announce(te(e),"polite")}))},oe=e=>{var i,t;null===(t=null===(i=X.current)||void 0===i?void 0:i[$])||void 0===t||t.resetTransform(),M(e)};return i.jsx(o.ModalV2,Object.assign({},A,{"data-testid":"image-carousel-modal","aria-label":Y?"Carousel":"Image carousel",show:R,disableInitialFocus:!0,children:i.jsxs("div",{className:g.carouselModalContent,children:[i.jsxs("div",{className:g.imageGalleryContainer,children:[i.jsxs("div",{className:g.imageGalleryWrapper,children:[i.jsx("div",{className:g.imageGallerySwipe,ref:F,onTouchStart:e=>{V<=1&&D(e.touches[0].clientX)},onTouchMove:e=>{!E||V>1||z(e.touches[0].clientX)},onTouchEnd:()=>{F.current&&(Math.abs(K)>F.current.offsetWidth/3&&(K>0?se():ne()),D(void 0),z(void 0))},children:i.jsx("div",{className:g.imageGallerySlides,style:{transform:`translateX(calc(${100*-$}% - ${K}px))`},children:y.map(((e,t)=>{const l=t===$,r=Math.abs(t-$)<=1||0===$&&t===y.length-1||$===y.length-1&&0===t;return i.jsx("div",{className:g.imageGallerySlide,"data-testid":"slide-item",children:i.jsx("div",{className:g.focusableImageRegion,ref:l?Z:null,tabIndex:l?0:-1,children:b(e)?r?e.renderContent():i.jsx(d.ImagePlaceholder,{className:g.slidePlaceholderImage}):i.jsx(s.TransformWrapper,{ref:e=>X.current[t]=e,panning:{disabled:V<=1},initialScale:1,onZoom:le,onZoomStop:le,onWheel:le,children:i.jsx(s.TransformComponent,{children:i.jsx(p.StatefulImage,{className:g.slideImage,src:e.src,alt:te(t),placeholder:i.jsx(d.ImagePlaceholder,{className:g.slidePlaceholderImage}),fit:"scale-down",retrieveImageDimension:!0,setDimension:re})})})})},t)}))})}),!k&&i.jsxs(i.Fragment,{children:[i.jsx(u.ClickableIcon,{className:x.default(g.iconButton,g.arrowButton,g.arrowButtonLeft),ref:O,"aria-label":`Previous ${ee}`,"data-testid":"prev-btn",onClick:ne,children:i.jsx(t.ChevronLeftIcon,{"aria-hidden":!0})}),i.jsx(u.ClickableIcon,{className:x.default(g.iconButton,g.arrowButton,g.arrowButtonRight),ref:H,"aria-label":`Next ${ee}`,"data-testid":"forward-btn",onClick:se,children:i.jsx(t.ChevronRightIcon,{"aria-hidden":!0})})]}),!q&&i.jsx("div",{className:g.boxChip,"aria-hidden":"true",children:i.jsx(v.Typography.BodyXS,{className:g.chip,weight:"semibold","data-testid":"carousel-counter",children:`${$+1}/${y.length}`})})]}),!N&&i.jsx("div",{className:g.thumbnailContainer,ref:J,"aria-hidden":"true","data-testid":"thumbnail-container",children:i.jsx("div",{className:g.thumbnailWrapper,children:y.map(((e,t)=>{var l;const r=b(e)?e.thumbnailSrc:null!==(l=e.thumbnailSrc)&&void 0!==l?l:e.src;return i.jsx("div",{className:g.thumbnailItemContainer,children:i.jsx("div",{className:g.thumbnailItem,"data-active":t===$,"data-testid":"thumbnail-item",onClick:()=>oe(t),ref:e=>G.current[t]=e,children:r?i.jsx(p.StatefulImage,{className:g.thumbnailImage,src:r,alt:`Thumbnail ${t+1}`,fit:"cover"}):i.jsx(d.ImagePlaceholder,{className:g.slidePlaceholderImage})})},t)}))})})]}),i.jsxs("div",{className:g.topActionButtons,ref:_,"data-has-file-info":ie,children:[ie&&(()=>{const{fileName:e,fileSize:t}=null!=Q?Q:{},l=null==e?void 0:e.trim(),r=null==t?void 0:t.trim();return i.jsxs("div",{className:x.default(g.fileInfoTextWrapper,!r&&g.fileInfoTextWrapperCentered),"aria-live":"polite","aria-atomic":"true","data-testid":"file-info-bar",children:[l&&i.jsx(v.Typography.BodyBL,{className:g.fileInfoFileName,weight:"semibold","data-testid":"file-info-name",children:l}),r&&i.jsx(v.Typography.BodyMD,{className:g.fileInfoFileSize,"data-testid":"file-info-size",children:r})]})})(),!w&&!b(Q)&&i.jsx(u.ClickableIcon,{className:g.iconButton,"aria-label":1===V?"Zoom in":"Zoom out",onClick:()=>{var e,i,t,l;if(1===V){const t=ae();null===(i=null===(e=X.current)||void 0===e?void 0:e[$])||void 0===i||i.centerView(t),W(null!=t?t:1)}else W(1),null===(l=null===(t=X.current)||void 0===t?void 0:t[$])||void 0===l||l.resetTransform()},children:1===V?i.jsx(t.MagnifierPlusIcon,{"aria-hidden":!0}):i.jsx(t.MagnifierMinusIcon,{"aria-hidden":!0})}),S&&i.jsx(u.ClickableIcon,{className:x.default(g.iconButton,g.iconButtonError),"aria-label":`Delete ${b(Q)&&(null===(I=Q.itemLabel)||void 0===I?void 0:I.trim())||"image"}`,"data-testid":"delete-btn",onClick:()=>{Q&&S&&S(Q,$)},children:i.jsx(l.BinIcon,{"aria-hidden":!0})}),i.jsx(u.ClickableIcon,{className:g.iconButton,"aria-label":Y?"Close carousel":"Close image carousel",onClick:B,children:i.jsx(t.CrossIcon,{"aria-hidden":!0})})]})]})}))},y=n.forwardRef(I);exports.Component=I,exports.FullscreenImageCarousel=y;
1
+ "use strict";var e=require("../_virtual/_tslib.js"),i=require("react/jsx-runtime"),t=require("@lifesg/react-icons"),l=require("@lifesg/react-icons/bin"),a=require("@react-aria/live-announcer"),r=require("clsx"),n=require("react"),s=require("react-zoom-pan-pinch"),o=require("../modal-v2/modal-v2.js"),u=require("../shared/clickable-icon/clickable-icon.js"),c=require("../shared/hooks/use-state-callback.js"),d=require("../shared/image-placeholder/image-placeholder.js");require("../theme/theme-provider/index.js");var m=require("../theme/utils/css-variable.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 h=require("../theme/utils/use-apply-styles.js");require("../theme/utils/use-media-query.js");var v=require("../typography/index.js");require("../util/calendar-helper.js"),require("../external/dayjs/dayjs.min.js"),require("../util/simple-id-generator.js"),require("../util/string-helper.js");var f=require("../util/use-event-listener.js"),g=require("./fullscreen-image-carousel.styles.js"),p=require("./stateful-image.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var x=j(r);const b=e=>!!e&&"custom"===e.type,I=(r,j)=>{var I,{items:y,initialActiveItemIndex:C,hideThumbnail:N=!1,hideNavigation:k=!1,hideCounter:q=!1,hideMagnifier:w=!1,onDelete:S,onClose:B,insets:T,show:R}=r,A=e.__rest(r,["items","initialActiveItemIndex","hideThumbnail","hideNavigation","hideCounter","hideMagnifier","onDelete","onClose","insets","show"]);const[$,M]=c.useStateCallback(null!=C?C:0),[L,P]=n.useState({}),[V,W]=n.useState(1),[E,D]=n.useState(),[U,z]=n.useState(),F=n.useRef(null),G=n.useRef([]),X=n.useRef([]),Z=n.useRef(null),_=n.useRef(null),O=n.useRef(null),H=n.useRef(null),J=n.useRef(null),K=E&&U?E-U:0,Q=y[$],Y=y.some((e=>{var i;return b(e)&&!!(null===(i=e.itemLabel)||void 0===i?void 0:i.trim())})),ee=Y?"item":"image",ie=n.useMemo((()=>y.some((e=>{var i,t;return(null===(i=e.fileName)||void 0===i?void 0:i.trim())||(null===(t=e.fileSize)||void 0===t?void 0:t.trim())}))),[y]);h.useApplyStyle(_,{[g.tokens.topActionButtons.insetTop]:m.formatUnitValue(null==T?void 0:T.top,"px"),[g.tokens.topActionButtons.insetLeft]:m.formatUnitValue(null==T?void 0:T.left,"px"),[g.tokens.topActionButtons.insetRight]:m.formatUnitValue(null==T?void 0:T.right,"px")}),h.useApplyStyle(O,{[g.tokens.arrowButton.insetLeft]:m.formatUnitValue(null==T?void 0:T.left,"px")}),h.useApplyStyle(H,{[g.tokens.arrowButton.insetRight]:m.formatUnitValue(null==T?void 0:T.right,"px")}),h.useApplyStyle(J,{[g.tokens.thumbnailContainer.insetBottom]:m.formatUnitValue(null==T?void 0:T.bottom,"px")});const te=n.useCallback((e=>{var i,t;const l=y[e],a=Y?"Item":"Image",r=b(l)?(null===(i=l.itemLabel)||void 0===i?void 0:i.trim())||"":(null===(t=l.alt)||void 0===t?void 0:t.trim())||"",n=`${a} ${e+1} of ${y.length}.`;return r?`${r}. ${n}`:n}),[y,Y]);n.useImperativeHandle(j,(()=>({currentItemIndex:$,setCurrentItem:oe,goToPrevItem:ne,goToNextItem:se}))),f.useEventListener("keydown",(function(e){"ArrowRight"===e.key?se():"ArrowLeft"===e.key?ne():"Escape"===e.key&&(null==B||B())}),"document"),n.useEffect((()=>{var e;R&&(null===(e=Z.current)||void 0===e||e.focus())}),[R]),n.useEffect((()=>{0!==y.length?$>y.length-1&&M(y.length-1):M(0)}),[$,y.length,M]),n.useEffect((()=>{var e,i;null===(i=null===(e=G.current)||void 0===e?void 0:e[$])||void 0===i||i.scrollIntoView({behavior:"smooth",inline:"center"}),W(1)}),[$]);const le=e=>{W(e.state.scale)};const ae=({src:e,height:i,width:t})=>{P((l=>Object.assign(Object.assign({},l),{[e]:{height:i,width:t}})))},re=()=>{if(!Q||b(Q))return;const e=L[Q.src];if(F.current&&e){const{clientHeight:i,clientWidth:t}=F.current,{width:l,height:a}=e,r=a/l<i/t;return l<t&&a<i?r?t/l:i/a:r?i/(a/(l/t)):t/(l/(a/i))}},ne=()=>{var e,i;null===(i=null===(e=X.current)||void 0===e?void 0:e[$])||void 0===i||i.resetTransform(),M((e=>0===e?y.length-1:e-1),(e=>{a.clearAnnouncer("polite"),a.announce(te(e),"polite")}))},se=()=>{var e,i;null===(i=null===(e=X.current)||void 0===e?void 0:e[$])||void 0===i||i.resetTransform(),M((e=>e===y.length-1?0:e+1),(e=>{a.clearAnnouncer("polite"),a.announce(te(e),"polite")}))},oe=e=>{var i,t;null===(t=null===(i=X.current)||void 0===i?void 0:i[$])||void 0===t||t.resetTransform(),M(e)};return i.jsx(o.ModalV2,Object.assign({},A,{"data-testid":"image-carousel-modal","aria-label":Y?"Carousel":"Image carousel",show:R,disableInitialFocus:!0,children:i.jsxs("div",{className:g.carouselModalContent,children:[i.jsxs("div",{className:g.imageGalleryContainer,children:[i.jsxs("div",{className:g.imageGalleryWrapper,children:[i.jsx("div",{className:g.imageGallerySwipe,ref:F,onTouchStart:e=>{V<=1&&D(e.touches[0].clientX)},onTouchMove:e=>{!E||V>1||z(e.touches[0].clientX)},onTouchEnd:()=>{F.current&&(Math.abs(K)>F.current.offsetWidth/3&&(K>0?se():ne()),D(void 0),z(void 0))},children:i.jsx("div",{className:g.imageGallerySlides,style:{transform:`translateX(calc(${100*-$}% - ${K}px))`},children:y.map(((e,t)=>{const l=t===$,a=Math.abs(t-$)<=1||0===$&&t===y.length-1||$===y.length-1&&0===t;return i.jsx("div",{className:g.imageGallerySlide,"data-testid":"slide-item",children:i.jsx("div",{className:g.focusableImageRegion,ref:l?Z:null,tabIndex:l?0:-1,children:b(e)?a?e.renderContent():i.jsx(d.ImagePlaceholder,{className:g.slidePlaceholderImage}):i.jsx(s.TransformWrapper,{ref:e=>X.current[t]=e,panning:{disabled:V<=1},initialScale:1,onZoom:le,onZoomStop:le,onWheel:le,children:i.jsx(s.TransformComponent,{children:i.jsx(p.StatefulImage,{className:g.slideImage,src:e.src,alt:te(t),placeholder:i.jsx(d.ImagePlaceholder,{className:g.slidePlaceholderImage}),fit:"scale-down",retrieveImageDimension:!0,setDimension:ae})})})})},t)}))})}),!k&&i.jsxs(i.Fragment,{children:[i.jsx(u.ClickableIcon,{className:x.default(g.iconButton,g.arrowButton,g.arrowButtonLeft),ref:O,"aria-label":`Previous ${ee}`,"data-testid":"prev-btn",onClick:ne,children:i.jsx(t.ChevronLeftIcon,{"aria-hidden":!0})}),i.jsx(u.ClickableIcon,{className:x.default(g.iconButton,g.arrowButton,g.arrowButtonRight),ref:H,"aria-label":`Next ${ee}`,"data-testid":"forward-btn",onClick:se,children:i.jsx(t.ChevronRightIcon,{"aria-hidden":!0})})]}),!q&&i.jsx("div",{className:g.boxChip,"aria-hidden":"true",children:i.jsx(v.Typography.BodyXS,{className:g.chip,weight:"semibold","data-testid":"carousel-counter",children:`${$+1}/${y.length}`})})]}),!N&&i.jsx("div",{className:g.thumbnailContainer,ref:J,"aria-hidden":"true","data-testid":"thumbnail-container",children:i.jsx("div",{className:g.thumbnailWrapper,children:y.map(((e,t)=>{var l;const a=b(e)?e.thumbnailSrc:null!==(l=e.thumbnailSrc)&&void 0!==l?l:e.src;return i.jsx("div",{className:g.thumbnailItemContainer,children:i.jsx("div",{className:g.thumbnailItem,"data-active":t===$,"data-testid":"thumbnail-item",onClick:()=>oe(t),ref:e=>G.current[t]=e,children:a?i.jsx(p.StatefulImage,{className:g.thumbnailImage,src:a,alt:`Thumbnail ${t+1}`,fit:"cover"}):i.jsx(d.ImagePlaceholder,{className:g.slidePlaceholderImage})})},t)}))})})]}),i.jsxs("div",{className:g.topActionButtons,ref:_,"data-has-file-info":ie,children:[ie&&(()=>{const{fileName:e,fileSize:t}=null!=Q?Q:{},l=null==e?void 0:e.trim(),a=null==t?void 0:t.trim();return i.jsxs("div",{className:x.default(g.fileInfoTextWrapper,!a&&g.fileInfoTextWrapperCentered),"aria-live":"polite","aria-atomic":"true","data-testid":"file-info-bar",children:[l&&i.jsx(v.Typography.BodyBL,{className:g.fileInfoFileName,weight:"semibold","data-testid":"file-info-name",children:l}),a&&i.jsx(v.Typography.BodyMD,{className:g.fileInfoFileSize,"data-testid":"file-info-size",children:a})]})})(),!w&&!b(Q)&&i.jsx(u.ClickableIcon,{className:g.iconButton,"aria-label":1===V?"Zoom in":"Zoom out",onClick:()=>{var e,i,t,l;if(1===V){const t=re();null===(i=null===(e=X.current)||void 0===e?void 0:e[$])||void 0===i||i.centerView(t),W(null!=t?t:1)}else W(1),null===(l=null===(t=X.current)||void 0===t?void 0:t[$])||void 0===l||l.resetTransform()},children:1===V?i.jsx(t.MagnifierPlusIcon,{"aria-hidden":!0}):i.jsx(t.MagnifierMinusIcon,{"aria-hidden":!0})}),S&&i.jsx(u.ClickableIcon,{className:x.default(g.iconButton,g.iconButtonError),"aria-label":`Delete ${b(Q)&&(null===(I=Q.itemLabel)||void 0===I?void 0:I.trim())||"image"}`,"data-testid":"delete-btn",onClick:()=>{Q&&S&&S(Q,$)},children:i.jsx(l.BinIcon,{"aria-hidden":!0})}),i.jsx(u.ClickableIcon,{className:g.iconButton,"aria-label":Y?"Close carousel":"Close image carousel",onClick:B,children:i.jsx(t.CrossIcon,{"aria-hidden":!0})})]})]})}))},y=n.forwardRef(I);exports.Component=I,exports.FullscreenImageCarousel=y;
2
2
  //# sourceMappingURL=fullscreen-image-carousel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fullscreen-image-carousel.js","sources":["../../../src/fullscreen-image-carousel/fullscreen-image-carousel.tsx"],"sourcesContent":["import {\n ChevronLeftIcon,\n ChevronRightIcon,\n CrossIcon,\n MagnifierMinusIcon,\n MagnifierPlusIcon,\n} from \"@lifesg/react-icons\";\nimport { BinIcon } from \"@lifesg/react-icons/bin\";\nimport { announce, clearAnnouncer } from \"@react-aria/live-announcer\";\nimport clsx from \"clsx\";\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type {\n ReactZoomPanPinchContentRef,\n ReactZoomPanPinchRef,\n} from \"react-zoom-pan-pinch\";\nimport { TransformComponent, TransformWrapper } from \"react-zoom-pan-pinch\";\n\nimport { ModalV2 } from \"../modal-v2\";\nimport { ClickableIcon } from \"../shared/clickable-icon\";\nimport { useStateCallback } from \"../shared/hooks\";\nimport { ImagePlaceholder } from \"../shared/image-placeholder\";\nimport { formatUnitValue, useApplyStyle } from \"../theme\";\nimport { Typography } from \"../typography\";\nimport { useEventListener } from \"../util\";\nimport * as styles from \"./fullscreen-image-carousel.styles\";\nimport { StatefulImage } from \"./stateful-image\";\nimport type {\n FullscreenImageCarouselCustomItemProps,\n FullscreenImageCarouselItemProps,\n FullscreenImageCarouselProps,\n FullscreenImageCarouselRef,\n ImageDimension,\n} from \"./types\";\n\nconst isCustomItem = (\n item: FullscreenImageCarouselItemProps | undefined\n): item is FullscreenImageCarouselCustomItemProps =>\n !!item && item.type === \"custom\";\n\nexport const Component = (\n {\n items,\n initialActiveItemIndex,\n hideThumbnail = false,\n hideNavigation = false,\n hideCounter = false,\n hideMagnifier = false,\n onDelete,\n onClose,\n insets,\n show,\n ...otherProps\n }: FullscreenImageCarouselProps,\n ref: React.Ref<FullscreenImageCarouselRef>\n) => {\n // =============================================================================\n // CONST, STATE, REF\n // =============================================================================\n const [currentSlide, setCurrentSlide] = useStateCallback(\n initialActiveItemIndex ?? 0\n );\n const [imagesDimension, setImageDimension] = useState<\n Record<string, ImageDimension>\n >({});\n const [zoom, setZoom] = useState(1);\n const [startX, setStartX] = useState<number | undefined>();\n const [endX, setEndX] = useState<number | undefined>();\n const containerRef = useRef<HTMLDivElement>(null);\n const thumbnailRefs = useRef<(HTMLDivElement | null)[]>([]);\n const zoomRefs = useRef<(ReactZoomPanPinchContentRef | null)[]>([]);\n const imageRef = useRef<HTMLDivElement>(null);\n const topActionButtonsRef = useRef<HTMLDivElement>(null);\n const prevArrowButtonRef = useRef<HTMLButtonElement>(null);\n const nextArrowButtonRef = useRef<HTMLButtonElement>(null);\n const thumbnailContainerRef = useRef<HTMLDivElement>(null);\n const diff = startX && endX ? startX - endX : 0;\n const currentItem = items[currentSlide];\n const hasAnyItemLabel = items.some(\n (item) => isCustomItem(item) && !!item.itemLabel?.trim()\n );\n const carouselItemNoun = hasAnyItemLabel ? \"item\" : \"image\";\n const hasFileInfo = useMemo(\n () =>\n items.some(\n (item) => item.fileName?.trim() || item.fileSize?.trim()\n ),\n [items]\n );\n\n useApplyStyle(topActionButtonsRef, {\n [styles.tokens.topActionButtons.insetTop]: formatUnitValue(\n insets?.top,\n \"px\"\n ),\n [styles.tokens.topActionButtons.insetLeft]: formatUnitValue(\n insets?.left,\n \"px\"\n ),\n [styles.tokens.topActionButtons.insetRight]: formatUnitValue(\n insets?.right,\n \"px\"\n ),\n });\n\n useApplyStyle(prevArrowButtonRef, {\n [styles.tokens.arrowButton.insetLeft]: formatUnitValue(\n insets?.left,\n \"px\"\n ),\n });\n\n useApplyStyle(nextArrowButtonRef, {\n [styles.tokens.arrowButton.insetRight]: formatUnitValue(\n insets?.right,\n \"px\"\n ),\n });\n\n useApplyStyle(thumbnailContainerRef, {\n [styles.tokens.thumbnailContainer.insetBottom]: formatUnitValue(\n insets?.bottom,\n \"px\"\n ),\n });\n\n const getItemAriaLabel = useCallback(\n (index: number) => {\n const item = items[index];\n const itemTypeLabel = hasAnyItemLabel ? \"Item\" : \"Image\";\n const prefix = isCustomItem(item)\n ? item.itemLabel?.trim() || \"\"\n : item.alt?.trim() || \"\";\n const positionLabel = `${itemTypeLabel} ${index + 1} of ${\n items.length\n }.`;\n\n return prefix ? `${prefix}. ${positionLabel}` : positionLabel;\n },\n [items, hasAnyItemLabel]\n );\n\n useImperativeHandle<FullscreenImageCarouselRef, FullscreenImageCarouselRef>(\n ref,\n () => ({\n currentItemIndex: currentSlide,\n setCurrentItem: goToSlide,\n goToPrevItem: goToPrevSlide,\n goToNextItem: goToNextSlide,\n })\n );\n\n // =============================================================================\n // EFFECTS\n // =============================================================================\n useEventListener(\"keydown\", handleKeyDown, \"document\");\n\n useEffect(() => {\n if (show) {\n imageRef.current?.focus();\n }\n }, [show]);\n\n useEffect(() => {\n if (items.length === 0) {\n setCurrentSlide(0);\n return;\n }\n\n if (currentSlide > items.length - 1) {\n setCurrentSlide(items.length - 1);\n }\n }, [currentSlide, items.length, setCurrentSlide]);\n\n useEffect(() => {\n thumbnailRefs.current?.[currentSlide]?.scrollIntoView({\n behavior: \"smooth\",\n inline: \"center\",\n });\n setZoom(1);\n }, [currentSlide]);\n\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleTouchStart = (e: React.TouchEvent) => {\n if (zoom <= 1) setStartX(e.touches[0].clientX);\n };\n\n const handleTouchMove = (e: React.TouchEvent) => {\n if (!startX || zoom > 1) return;\n setEndX(e.touches[0].clientX);\n };\n\n const handleTouchEnd = () => {\n if (!containerRef.current) return;\n if (Math.abs(diff) > containerRef.current.offsetWidth / 3) {\n if (diff > 0) {\n goToNextSlide();\n } else {\n goToPrevSlide();\n }\n }\n setStartX(undefined);\n setEndX(undefined);\n };\n\n const handleZoom = (e: ReactZoomPanPinchRef) => {\n setZoom(e.state.scale);\n };\n\n const handleDelete = () => {\n if (currentItem && onDelete) {\n onDelete(currentItem, currentSlide);\n }\n };\n\n function handleKeyDown(e: KeyboardEvent) {\n if (e.key === \"ArrowRight\") {\n goToNextSlide();\n } else if (e.key === \"ArrowLeft\") {\n goToPrevSlide();\n } else if (e.key === \"Escape\") {\n onClose?.();\n }\n }\n\n const handleMagnifier = () => {\n if (zoom === 1) {\n const zoomRatio = getZoomRatio();\n zoomRefs.current?.[currentSlide]?.centerView(zoomRatio);\n setZoom(zoomRatio ?? 1);\n } else {\n setZoom(1);\n zoomRefs.current?.[currentSlide]?.resetTransform();\n }\n };\n\n const setDimension = ({\n src,\n height,\n width,\n }: {\n src: string;\n height: number;\n width: number;\n }) => {\n setImageDimension((oldState) => {\n return { ...oldState, [src]: { height, width } };\n });\n };\n\n const getZoomRatio = () => {\n if (!currentItem || isCustomItem(currentItem)) {\n return;\n }\n\n const imageDimension = imagesDimension[currentItem.src];\n\n if (containerRef.current && !!imageDimension) {\n const { clientHeight, clientWidth } = containerRef.current;\n const { width, height } = imageDimension;\n const isSmallImg = width < clientWidth && height < clientHeight;\n\n const isImgLandscapeRelativeToDevice =\n height / width < clientHeight / clientWidth;\n\n if (isSmallImg) {\n return isImgLandscapeRelativeToDevice\n ? clientWidth / width\n : clientHeight / height;\n }\n\n return isImgLandscapeRelativeToDevice\n ? clientHeight / (height / (width / clientWidth))\n : clientWidth / (width / (height / clientHeight));\n }\n };\n\n // =============================================================================\n // HELPER FUNCTIONS\n // =============================================================================\n const goToPrevSlide = () => {\n zoomRefs.current?.[currentSlide]?.resetTransform();\n setCurrentSlide(\n (prev) => (prev === 0 ? items.length - 1 : prev - 1),\n (slide) => {\n clearAnnouncer(\"polite\");\n announce(getItemAriaLabel(slide), \"polite\");\n }\n );\n };\n\n const goToNextSlide = () => {\n zoomRefs.current?.[currentSlide]?.resetTransform();\n setCurrentSlide(\n (prev) => (prev === items.length - 1 ? 0 : prev + 1),\n (slide) => {\n clearAnnouncer(\"polite\");\n announce(getItemAriaLabel(slide), \"polite\");\n }\n );\n };\n\n const goToSlide = (index: number) => {\n zoomRefs.current?.[currentSlide]?.resetTransform();\n setCurrentSlide(index);\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n const renderSlides = () => {\n return (\n <div\n className={styles.imageGallerySlides}\n style={{\n transform: `translateX(calc(${\n -currentSlide * 100\n }% - ${diff}px))`,\n }}\n >\n {items.map((item, index) => {\n const isActive = index === currentSlide;\n const isActiveOrAdjacent =\n Math.abs(index - currentSlide) <= 1 ||\n (currentSlide === 0 && index === items.length - 1) ||\n (currentSlide === items.length - 1 && index === 0);\n\n return (\n <div\n className={styles.imageGallerySlide}\n key={index}\n data-testid=\"slide-item\"\n >\n <div\n className={styles.focusableImageRegion}\n ref={isActive ? imageRef : null}\n tabIndex={isActive ? 0 : -1}\n >\n {isCustomItem(item) ? (\n isActiveOrAdjacent ? (\n item.renderContent()\n ) : (\n <ImagePlaceholder\n className={\n styles.slidePlaceholderImage\n }\n />\n )\n ) : (\n <TransformWrapper\n ref={(el) =>\n (zoomRefs.current[index] = el)\n }\n panning={{\n disabled: zoom <= 1,\n }}\n initialScale={1}\n onZoom={handleZoom}\n onZoomStop={handleZoom}\n onWheel={handleZoom}\n >\n <TransformComponent>\n <StatefulImage\n className={styles.slideImage}\n src={item.src}\n alt={getItemAriaLabel(index)}\n placeholder={\n <ImagePlaceholder\n className={\n styles.slidePlaceholderImage\n }\n />\n }\n fit=\"scale-down\"\n retrieveImageDimension\n setDimension={setDimension}\n />\n </TransformComponent>\n </TransformWrapper>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n };\n\n const renderFileInfo = () => {\n const { fileName, fileSize } = currentItem ?? {};\n const trimmedName = fileName?.trim();\n const trimmedSize = fileSize?.trim();\n\n return (\n <div\n className={clsx(\n styles.fileInfoTextWrapper,\n !trimmedSize && styles.fileInfoTextWrapperCentered\n )}\n aria-live=\"polite\"\n aria-atomic=\"true\"\n data-testid=\"file-info-bar\"\n >\n {trimmedName && (\n <Typography.BodyBL\n className={styles.fileInfoFileName}\n weight=\"semibold\"\n data-testid=\"file-info-name\"\n >\n {trimmedName}\n </Typography.BodyBL>\n )}\n {trimmedSize && (\n <Typography.BodyMD\n className={styles.fileInfoFileSize}\n data-testid=\"file-info-size\"\n >\n {trimmedSize}\n </Typography.BodyMD>\n )}\n </div>\n );\n };\n\n const renderThumbnails = () => {\n return (\n <div\n className={styles.thumbnailContainer}\n ref={thumbnailContainerRef}\n aria-hidden=\"true\"\n data-testid=\"thumbnail-container\"\n >\n <div className={styles.thumbnailWrapper}>\n {items.map((item, index) => {\n const src = isCustomItem(item)\n ? item.thumbnailSrc\n : item.thumbnailSrc ?? item.src;\n return (\n <div\n className={styles.thumbnailItemContainer}\n key={index}\n >\n <div\n className={styles.thumbnailItem}\n data-active={index === currentSlide}\n data-testid=\"thumbnail-item\"\n onClick={() => goToSlide(index)}\n ref={(el) =>\n (thumbnailRefs.current[index] = el)\n }\n >\n {src ? (\n <StatefulImage\n className={styles.thumbnailImage}\n src={src}\n alt={`Thumbnail ${index + 1}`}\n fit=\"cover\"\n />\n ) : (\n <ImagePlaceholder\n className={\n styles.slidePlaceholderImage\n }\n />\n )}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n };\n\n return (\n <ModalV2\n {...otherProps}\n data-testid=\"image-carousel-modal\"\n aria-label={hasAnyItemLabel ? \"Carousel\" : \"Image carousel\"}\n show={show}\n disableInitialFocus\n >\n <div className={styles.carouselModalContent}>\n <div className={styles.imageGalleryContainer}>\n <div className={styles.imageGalleryWrapper}>\n <div\n className={styles.imageGallerySwipe}\n ref={containerRef}\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n >\n {renderSlides()}\n </div>\n\n {!hideNavigation && (\n <>\n <ClickableIcon\n className={clsx(\n styles.iconButton,\n styles.arrowButton,\n styles.arrowButtonLeft\n )}\n ref={prevArrowButtonRef}\n aria-label={`Previous ${carouselItemNoun}`}\n data-testid=\"prev-btn\"\n onClick={goToPrevSlide}\n >\n <ChevronLeftIcon aria-hidden />\n </ClickableIcon>\n <ClickableIcon\n className={clsx(\n styles.iconButton,\n styles.arrowButton,\n styles.arrowButtonRight\n )}\n ref={nextArrowButtonRef}\n aria-label={`Next ${carouselItemNoun}`}\n data-testid=\"forward-btn\"\n onClick={goToNextSlide}\n >\n <ChevronRightIcon aria-hidden />\n </ClickableIcon>\n </>\n )}\n\n {!hideCounter && (\n <div className={styles.boxChip} aria-hidden=\"true\">\n <Typography.BodyXS\n className={styles.chip}\n weight=\"semibold\"\n data-testid=\"carousel-counter\"\n >{`${currentSlide + 1}/${\n items.length\n }`}</Typography.BodyXS>\n </div>\n )}\n </div>\n\n {!hideThumbnail && renderThumbnails()}\n </div>\n <div\n className={styles.topActionButtons}\n ref={topActionButtonsRef}\n data-has-file-info={hasFileInfo}\n >\n {hasFileInfo && renderFileInfo()}\n {!hideMagnifier && !isCustomItem(currentItem) && (\n <ClickableIcon\n className={styles.iconButton}\n aria-label={zoom === 1 ? \"Zoom in\" : \"Zoom out\"}\n onClick={handleMagnifier}\n >\n {zoom === 1 ? (\n <MagnifierPlusIcon aria-hidden />\n ) : (\n <MagnifierMinusIcon aria-hidden />\n )}\n </ClickableIcon>\n )}\n\n {onDelete && (\n <ClickableIcon\n className={clsx(\n styles.iconButton,\n styles.iconButtonError\n )}\n aria-label={`Delete ${\n (isCustomItem(currentItem) &&\n currentItem.itemLabel?.trim()) ||\n \"image\"\n }`}\n data-testid=\"delete-btn\"\n onClick={handleDelete}\n >\n <BinIcon aria-hidden />\n </ClickableIcon>\n )}\n\n <ClickableIcon\n className={styles.iconButton}\n aria-label={\n hasAnyItemLabel\n ? \"Close carousel\"\n : \"Close image carousel\"\n }\n onClick={onClose}\n >\n <CrossIcon aria-hidden />\n </ClickableIcon>\n </div>\n </div>\n </ModalV2>\n );\n};\n\nexport const FullscreenImageCarousel = forwardRef<\n FullscreenImageCarouselRef,\n FullscreenImageCarouselProps\n>(Component);\n"],"names":["isCustomItem","item","type","Component","_a","ref","items","initialActiveItemIndex","hideThumbnail","hideNavigation","hideCounter","hideMagnifier","onDelete","onClose","insets","show","otherProps","__rest","currentSlide","setCurrentSlide","useStateCallback","imagesDimension","setImageDimension","useState","zoom","setZoom","startX","setStartX","endX","setEndX","containerRef","useRef","thumbnailRefs","zoomRefs","imageRef","topActionButtonsRef","prevArrowButtonRef","nextArrowButtonRef","thumbnailContainerRef","diff","currentItem","hasAnyItemLabel","some","itemLabel","trim","carouselItemNoun","hasFileInfo","useMemo","fileName","fileSize","_b","useApplyStyle","styles.tokens","topActionButtons","insetTop","formatUnitValue","top","insetLeft","left","insetRight","right","arrowButton","thumbnailContainer","insetBottom","bottom","getItemAriaLabel","useCallback","index","itemTypeLabel","prefix","alt","positionLabel","length","useImperativeHandle","currentItemIndex","setCurrentItem","goToSlide","goToPrevItem","goToPrevSlide","goToNextItem","goToNextSlide","useEventListener","e","key","useEffect","current","focus","scrollIntoView","behavior","inline","handleZoom","state","scale","setDimension","src","height","width","oldState","Object","assign","getZoomRatio","imageDimension","clientHeight","clientWidth","isImgLandscapeRelativeToDevice","resetTransform","prev","slide","clearAnnouncer","announce","_jsx","ModalV2","disableInitialFocus","_jsxs","className","styles.carouselModalContent","children","styles.imageGalleryContainer","styles.imageGalleryWrapper","styles.imageGallerySwipe","onTouchStart","touches","clientX","onTouchMove","onTouchEnd","Math","abs","offsetWidth","undefined","styles.imageGallerySlides","style","transform","map","isActive","isActiveOrAdjacent","styles.imageGallerySlide","styles.focusableImageRegion","tabIndex","renderContent","ImagePlaceholder","styles.slidePlaceholderImage","TransformWrapper","el","panning","disabled","initialScale","onZoom","onZoomStop","onWheel","TransformComponent","StatefulImage","styles.slideImage","placeholder","fit","retrieveImageDimension","_Fragment","ClickableIcon","clsx","styles.iconButton","styles.arrowButton","styles.arrowButtonLeft","onClick","ChevronLeftIcon","styles.arrowButtonRight","ChevronRightIcon","styles.boxChip","Typography","BodyXS","styles.chip","weight","styles.thumbnailContainer","styles.thumbnailWrapper","thumbnailSrc","styles.thumbnailItemContainer","styles.thumbnailItem","styles.thumbnailImage","styles.topActionButtons","trimmedName","trimmedSize","styles.fileInfoTextWrapper","styles.fileInfoTextWrapperCentered","BodyBL","styles.fileInfoFileName","BodyMD","styles.fileInfoFileSize","renderFileInfo","zoomRatio","centerView","_d","_c","MagnifierPlusIcon","MagnifierMinusIcon","styles.iconButtonError","BinIcon","CrossIcon","FullscreenImageCarousel","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"fullscreen-image-carousel.js","sources":["../../../src/fullscreen-image-carousel/fullscreen-image-carousel.tsx"],"sourcesContent":["import {\n ChevronLeftIcon,\n ChevronRightIcon,\n CrossIcon,\n MagnifierMinusIcon,\n MagnifierPlusIcon,\n} from \"@lifesg/react-icons\";\nimport { BinIcon } from \"@lifesg/react-icons/bin\";\nimport { announce, clearAnnouncer } from \"@react-aria/live-announcer\";\nimport clsx from \"clsx\";\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type {\n ReactZoomPanPinchContentRef,\n ReactZoomPanPinchRef,\n} from \"react-zoom-pan-pinch\";\nimport { TransformComponent, TransformWrapper } from \"react-zoom-pan-pinch\";\n\nimport { ModalV2 } from \"../modal-v2\";\nimport { ClickableIcon } from \"../shared/clickable-icon\";\nimport { useStateCallback } from \"../shared/hooks\";\nimport { ImagePlaceholder } from \"../shared/image-placeholder\";\nimport { formatUnitValue, useApplyStyle } from \"../theme\";\nimport { Typography } from \"../typography\";\nimport { useEventListener } from \"../util\";\nimport * as styles from \"./fullscreen-image-carousel.styles\";\nimport { StatefulImage } from \"./stateful-image\";\nimport type {\n FullscreenImageCarouselCustomItemProps,\n FullscreenImageCarouselItemProps,\n FullscreenImageCarouselProps,\n FullscreenImageCarouselRef,\n ImageDimension,\n} from \"./types\";\n\nconst isCustomItem = (\n item: FullscreenImageCarouselItemProps | undefined\n): item is FullscreenImageCarouselCustomItemProps =>\n !!item && item.type === \"custom\";\n\nexport const Component = (\n {\n items,\n initialActiveItemIndex,\n hideThumbnail = false,\n hideNavigation = false,\n hideCounter = false,\n hideMagnifier = false,\n onDelete,\n onClose,\n insets,\n show,\n ...otherProps\n }: FullscreenImageCarouselProps,\n ref: React.Ref<FullscreenImageCarouselRef>\n) => {\n // =============================================================================\n // CONST, STATE, REF\n // =============================================================================\n const [currentSlide, setCurrentSlide] = useStateCallback(\n initialActiveItemIndex ?? 0\n );\n const [imagesDimension, setImageDimension] = useState<\n Record<string, ImageDimension>\n >({});\n const [zoom, setZoom] = useState(1);\n const [startX, setStartX] = useState<number | undefined>();\n const [endX, setEndX] = useState<number | undefined>();\n const containerRef = useRef<HTMLDivElement>(null);\n const thumbnailRefs = useRef<(HTMLDivElement | null)[]>([]);\n const zoomRefs = useRef<(ReactZoomPanPinchContentRef | null)[]>([]);\n const imageRef = useRef<HTMLDivElement>(null);\n const topActionButtonsRef = useRef<HTMLDivElement>(null);\n const prevArrowButtonRef = useRef<HTMLButtonElement>(null);\n const nextArrowButtonRef = useRef<HTMLButtonElement>(null);\n const thumbnailContainerRef = useRef<HTMLDivElement>(null);\n const diff = startX && endX ? startX - endX : 0;\n const currentItem = items[currentSlide];\n const hasAnyItemLabel = items.some(\n (item) => isCustomItem(item) && !!item.itemLabel?.trim()\n );\n const carouselItemNoun = hasAnyItemLabel ? \"item\" : \"image\";\n const hasFileInfo = useMemo(\n () =>\n items.some(\n (item) => item.fileName?.trim() || item.fileSize?.trim()\n ),\n [items]\n );\n\n useApplyStyle(topActionButtonsRef, {\n [styles.tokens.topActionButtons.insetTop]: formatUnitValue(\n insets?.top,\n \"px\"\n ),\n [styles.tokens.topActionButtons.insetLeft]: formatUnitValue(\n insets?.left,\n \"px\"\n ),\n [styles.tokens.topActionButtons.insetRight]: formatUnitValue(\n insets?.right,\n \"px\"\n ),\n });\n\n useApplyStyle(prevArrowButtonRef, {\n [styles.tokens.arrowButton.insetLeft]: formatUnitValue(\n insets?.left,\n \"px\"\n ),\n });\n\n useApplyStyle(nextArrowButtonRef, {\n [styles.tokens.arrowButton.insetRight]: formatUnitValue(\n insets?.right,\n \"px\"\n ),\n });\n\n useApplyStyle(thumbnailContainerRef, {\n [styles.tokens.thumbnailContainer.insetBottom]: formatUnitValue(\n insets?.bottom,\n \"px\"\n ),\n });\n\n const getItemAriaLabel = useCallback(\n (index: number) => {\n const item = items[index];\n const itemTypeLabel = hasAnyItemLabel ? \"Item\" : \"Image\";\n const prefix = isCustomItem(item)\n ? item.itemLabel?.trim() || \"\"\n : item.alt?.trim() || \"\";\n const positionLabel = `${itemTypeLabel} ${index + 1} of ${\n items.length\n }.`;\n\n return prefix ? `${prefix}. ${positionLabel}` : positionLabel;\n },\n [items, hasAnyItemLabel]\n );\n\n useImperativeHandle<FullscreenImageCarouselRef, FullscreenImageCarouselRef>(\n ref,\n () => ({\n currentItemIndex: currentSlide,\n setCurrentItem: goToSlide,\n goToPrevItem: goToPrevSlide,\n goToNextItem: goToNextSlide,\n })\n );\n\n // =============================================================================\n // EFFECTS\n // =============================================================================\n useEventListener(\"keydown\", handleKeyDown, \"document\");\n\n useEffect(() => {\n if (show) {\n imageRef.current?.focus();\n }\n }, [show]);\n\n useEffect(() => {\n if (items.length === 0) {\n setCurrentSlide(0);\n return;\n }\n\n if (currentSlide > items.length - 1) {\n setCurrentSlide(items.length - 1);\n }\n }, [currentSlide, items.length, setCurrentSlide]);\n\n useEffect(() => {\n thumbnailRefs.current?.[currentSlide]?.scrollIntoView({\n behavior: \"smooth\",\n inline: \"center\",\n });\n setZoom(1);\n }, [currentSlide]);\n\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleTouchStart = (e: React.TouchEvent) => {\n if (zoom <= 1) setStartX(e.touches[0].clientX);\n };\n\n const handleTouchMove = (e: React.TouchEvent) => {\n if (!startX || zoom > 1) return;\n setEndX(e.touches[0].clientX);\n };\n\n const handleTouchEnd = () => {\n if (!containerRef.current) return;\n if (Math.abs(diff) > containerRef.current.offsetWidth / 3) {\n if (diff > 0) {\n goToNextSlide();\n } else {\n goToPrevSlide();\n }\n }\n setStartX(undefined);\n setEndX(undefined);\n };\n\n const handleZoom = (e: ReactZoomPanPinchRef) => {\n setZoom(e.state.scale);\n };\n\n const handleDelete = () => {\n if (currentItem && onDelete) {\n onDelete(currentItem, currentSlide);\n }\n };\n\n function handleKeyDown(e: KeyboardEvent) {\n if (e.key === \"ArrowRight\") {\n goToNextSlide();\n } else if (e.key === \"ArrowLeft\") {\n goToPrevSlide();\n } else if (e.key === \"Escape\") {\n onClose?.();\n }\n }\n\n const handleMagnifier = () => {\n if (zoom === 1) {\n const zoomRatio = getZoomRatio();\n zoomRefs.current?.[currentSlide]?.centerView(zoomRatio);\n setZoom(zoomRatio ?? 1);\n } else {\n setZoom(1);\n zoomRefs.current?.[currentSlide]?.resetTransform();\n }\n };\n\n const setDimension = ({\n src,\n height,\n width,\n }: {\n src: string;\n height: number;\n width: number;\n }) => {\n setImageDimension((oldState) => {\n return { ...oldState, [src]: { height, width } };\n });\n };\n\n const getZoomRatio = () => {\n if (!currentItem || isCustomItem(currentItem)) {\n return;\n }\n\n const imageDimension = imagesDimension[currentItem.src];\n\n if (containerRef.current && !!imageDimension) {\n const { clientHeight, clientWidth } = containerRef.current;\n const { width, height } = imageDimension;\n const isSmallImg = width < clientWidth && height < clientHeight;\n\n const isImgLandscapeRelativeToDevice =\n height / width < clientHeight / clientWidth;\n\n if (isSmallImg) {\n return isImgLandscapeRelativeToDevice\n ? clientWidth / width\n : clientHeight / height;\n }\n\n return isImgLandscapeRelativeToDevice\n ? clientHeight / (height / (width / clientWidth))\n : clientWidth / (width / (height / clientHeight));\n }\n };\n\n // =============================================================================\n // HELPER FUNCTIONS\n // =============================================================================\n const goToPrevSlide = () => {\n zoomRefs.current?.[currentSlide]?.resetTransform();\n setCurrentSlide(\n (prev) => (prev === 0 ? items.length - 1 : prev - 1),\n (slide) => {\n clearAnnouncer(\"polite\");\n announce(getItemAriaLabel(slide), \"polite\");\n }\n );\n };\n\n const goToNextSlide = () => {\n zoomRefs.current?.[currentSlide]?.resetTransform();\n setCurrentSlide(\n (prev) => (prev === items.length - 1 ? 0 : prev + 1),\n (slide) => {\n clearAnnouncer(\"polite\");\n announce(getItemAriaLabel(slide), \"polite\");\n }\n );\n };\n\n const goToSlide = (index: number) => {\n zoomRefs.current?.[currentSlide]?.resetTransform();\n setCurrentSlide(index);\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n const renderSlides = () => {\n return (\n <div\n className={styles.imageGallerySlides}\n style={{\n transform: `translateX(calc(${\n -currentSlide * 100\n }% - ${diff}px))`,\n }}\n >\n {items.map((item, index) => {\n const isActive = index === currentSlide;\n const isActiveOrAdjacent =\n Math.abs(index - currentSlide) <= 1 ||\n (currentSlide === 0 && index === items.length - 1) ||\n (currentSlide === items.length - 1 && index === 0);\n\n return (\n <div\n className={styles.imageGallerySlide}\n key={index}\n data-testid=\"slide-item\"\n >\n <div\n className={styles.focusableImageRegion}\n ref={isActive ? imageRef : null}\n tabIndex={isActive ? 0 : -1}\n >\n {isCustomItem(item) ? (\n isActiveOrAdjacent ? (\n item.renderContent()\n ) : (\n <ImagePlaceholder\n className={\n styles.slidePlaceholderImage\n }\n />\n )\n ) : (\n <TransformWrapper\n ref={(el) =>\n (zoomRefs.current[index] = el)\n }\n panning={{\n disabled: zoom <= 1,\n }}\n initialScale={1}\n onZoom={handleZoom}\n onZoomStop={handleZoom}\n onWheel={handleZoom}\n >\n <TransformComponent>\n <StatefulImage\n className={styles.slideImage}\n src={item.src}\n alt={getItemAriaLabel(index)}\n placeholder={\n <ImagePlaceholder\n className={\n styles.slidePlaceholderImage\n }\n />\n }\n fit=\"scale-down\"\n retrieveImageDimension\n setDimension={setDimension}\n />\n </TransformComponent>\n </TransformWrapper>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n };\n\n const renderFileInfo = () => {\n const { fileName, fileSize } = currentItem ?? {};\n const trimmedName = fileName?.trim();\n const trimmedSize = fileSize?.trim();\n\n return (\n <div\n className={clsx(\n styles.fileInfoTextWrapper,\n !trimmedSize && styles.fileInfoTextWrapperCentered\n )}\n aria-live=\"polite\"\n aria-atomic=\"true\"\n data-testid=\"file-info-bar\"\n >\n {trimmedName && (\n <Typography.BodyBL\n className={styles.fileInfoFileName}\n weight=\"semibold\"\n data-testid=\"file-info-name\"\n >\n {trimmedName}\n </Typography.BodyBL>\n )}\n {trimmedSize && (\n <Typography.BodyMD\n className={styles.fileInfoFileSize}\n data-testid=\"file-info-size\"\n >\n {trimmedSize}\n </Typography.BodyMD>\n )}\n </div>\n );\n };\n\n const renderThumbnails = () => {\n return (\n <div\n className={styles.thumbnailContainer}\n ref={thumbnailContainerRef}\n aria-hidden=\"true\"\n data-testid=\"thumbnail-container\"\n >\n <div className={styles.thumbnailWrapper}>\n {items.map((item, index) => {\n const src = isCustomItem(item)\n ? item.thumbnailSrc\n : item.thumbnailSrc ?? item.src;\n return (\n <div\n className={styles.thumbnailItemContainer}\n key={index}\n >\n <div\n className={styles.thumbnailItem}\n data-active={index === currentSlide}\n data-testid=\"thumbnail-item\"\n onClick={() => goToSlide(index)}\n ref={(el) =>\n (thumbnailRefs.current[index] = el)\n }\n >\n {src ? (\n <StatefulImage\n className={styles.thumbnailImage}\n src={src}\n alt={`Thumbnail ${index + 1}`}\n fit=\"cover\"\n />\n ) : (\n <ImagePlaceholder\n className={\n styles.slidePlaceholderImage\n }\n />\n )}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n };\n\n return (\n <ModalV2\n {...otherProps}\n data-testid=\"image-carousel-modal\"\n aria-label={hasAnyItemLabel ? \"Carousel\" : \"Image carousel\"}\n show={show}\n disableInitialFocus\n >\n <div className={styles.carouselModalContent}>\n <div className={styles.imageGalleryContainer}>\n <div className={styles.imageGalleryWrapper}>\n <div\n className={styles.imageGallerySwipe}\n ref={containerRef}\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n >\n {renderSlides()}\n </div>\n\n {!hideNavigation && (\n <>\n <ClickableIcon\n className={clsx(\n styles.iconButton,\n styles.arrowButton,\n styles.arrowButtonLeft\n )}\n ref={prevArrowButtonRef}\n aria-label={`Previous ${carouselItemNoun}`}\n data-testid=\"prev-btn\"\n onClick={goToPrevSlide}\n >\n <ChevronLeftIcon aria-hidden />\n </ClickableIcon>\n <ClickableIcon\n className={clsx(\n styles.iconButton,\n styles.arrowButton,\n styles.arrowButtonRight\n )}\n ref={nextArrowButtonRef}\n aria-label={`Next ${carouselItemNoun}`}\n data-testid=\"forward-btn\"\n onClick={goToNextSlide}\n >\n <ChevronRightIcon aria-hidden />\n </ClickableIcon>\n </>\n )}\n\n {!hideCounter && (\n <div className={styles.boxChip} aria-hidden=\"true\">\n <Typography.BodyXS\n className={styles.chip}\n weight=\"semibold\"\n data-testid=\"carousel-counter\"\n >{`${currentSlide + 1}/${\n items.length\n }`}</Typography.BodyXS>\n </div>\n )}\n </div>\n\n {!hideThumbnail && renderThumbnails()}\n </div>\n <div\n className={styles.topActionButtons}\n ref={topActionButtonsRef}\n data-has-file-info={hasFileInfo}\n >\n {hasFileInfo && renderFileInfo()}\n {!hideMagnifier && !isCustomItem(currentItem) && (\n <ClickableIcon\n className={styles.iconButton}\n aria-label={zoom === 1 ? \"Zoom in\" : \"Zoom out\"}\n onClick={handleMagnifier}\n >\n {zoom === 1 ? (\n <MagnifierPlusIcon aria-hidden />\n ) : (\n <MagnifierMinusIcon aria-hidden />\n )}\n </ClickableIcon>\n )}\n\n {onDelete && (\n <ClickableIcon\n className={clsx(\n styles.iconButton,\n styles.iconButtonError\n )}\n aria-label={`Delete ${\n (isCustomItem(currentItem) &&\n currentItem.itemLabel?.trim()) ||\n \"image\"\n }`}\n data-testid=\"delete-btn\"\n onClick={handleDelete}\n >\n <BinIcon aria-hidden />\n </ClickableIcon>\n )}\n\n <ClickableIcon\n className={styles.iconButton}\n aria-label={\n hasAnyItemLabel\n ? \"Close carousel\"\n : \"Close image carousel\"\n }\n onClick={onClose}\n >\n <CrossIcon aria-hidden />\n </ClickableIcon>\n </div>\n </div>\n </ModalV2>\n );\n};\n\n/**\n * A fullscreen modal carousel for browsing images and custom media items.\n *\n * Use to present a collection of images or custom content in an overlay with\n * navigation controls, zoom support, and an optional thumbnail strip.\n * The top info bar is rendered only when at least one item provides some file metadata.\n */\nexport const FullscreenImageCarousel = forwardRef<\n FullscreenImageCarouselRef,\n FullscreenImageCarouselProps\n>(Component);\n"],"names":["isCustomItem","item","type","Component","_a","ref","items","initialActiveItemIndex","hideThumbnail","hideNavigation","hideCounter","hideMagnifier","onDelete","onClose","insets","show","otherProps","__rest","currentSlide","setCurrentSlide","useStateCallback","imagesDimension","setImageDimension","useState","zoom","setZoom","startX","setStartX","endX","setEndX","containerRef","useRef","thumbnailRefs","zoomRefs","imageRef","topActionButtonsRef","prevArrowButtonRef","nextArrowButtonRef","thumbnailContainerRef","diff","currentItem","hasAnyItemLabel","some","itemLabel","trim","carouselItemNoun","hasFileInfo","useMemo","fileName","fileSize","_b","useApplyStyle","styles.tokens","topActionButtons","insetTop","formatUnitValue","top","insetLeft","left","insetRight","right","arrowButton","thumbnailContainer","insetBottom","bottom","getItemAriaLabel","useCallback","index","itemTypeLabel","prefix","alt","positionLabel","length","useImperativeHandle","currentItemIndex","setCurrentItem","goToSlide","goToPrevItem","goToPrevSlide","goToNextItem","goToNextSlide","useEventListener","e","key","useEffect","current","focus","scrollIntoView","behavior","inline","handleZoom","state","scale","setDimension","src","height","width","oldState","Object","assign","getZoomRatio","imageDimension","clientHeight","clientWidth","isImgLandscapeRelativeToDevice","resetTransform","prev","slide","clearAnnouncer","announce","_jsx","ModalV2","disableInitialFocus","_jsxs","className","styles.carouselModalContent","children","styles.imageGalleryContainer","styles.imageGalleryWrapper","styles.imageGallerySwipe","onTouchStart","touches","clientX","onTouchMove","onTouchEnd","Math","abs","offsetWidth","undefined","styles.imageGallerySlides","style","transform","map","isActive","isActiveOrAdjacent","styles.imageGallerySlide","styles.focusableImageRegion","tabIndex","renderContent","ImagePlaceholder","styles.slidePlaceholderImage","TransformWrapper","el","panning","disabled","initialScale","onZoom","onZoomStop","onWheel","TransformComponent","StatefulImage","styles.slideImage","placeholder","fit","retrieveImageDimension","_Fragment","ClickableIcon","clsx","styles.iconButton","styles.arrowButton","styles.arrowButtonLeft","onClick","ChevronLeftIcon","styles.arrowButtonRight","ChevronRightIcon","styles.boxChip","Typography","BodyXS","styles.chip","weight","styles.thumbnailContainer","styles.thumbnailWrapper","thumbnailSrc","styles.thumbnailItemContainer","styles.thumbnailItem","styles.thumbnailImage","styles.topActionButtons","trimmedName","trimmedSize","styles.fileInfoTextWrapper","styles.fileInfoTextWrapperCentered","BodyBL","styles.fileInfoFileName","BodyMD","styles.fileInfoFileSize","renderFileInfo","zoomRatio","centerView","_d","_c","MagnifierPlusIcon","MagnifierMinusIcon","styles.iconButtonError","BinIcon","CrossIcon","FullscreenImageCarousel","forwardRef"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- .t1d7v1ct{--fds-internal-fullscreenImageCarousel-topActionButtons-insetTop:initial;--fds-internal-fullscreenImageCarousel-topActionButtons-insetLeft:initial;--fds-internal-fullscreenImageCarousel-topActionButtons-insetRight:initial;-webkit-order:-1;-ms-flex-order:-1;order:-1;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:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;gap:var(--fds-spacing-16);}.t1d7v1ct[data-has-file-info="true"]{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;background-color:var(--fds-colour-bg-inverse);padding-top:calc(
1
+ @layer fds{.t1d7v1ct{--fds-internal-fullscreenImageCarousel-topActionButtons-insetTop:initial;--fds-internal-fullscreenImageCarousel-topActionButtons-insetLeft:initial;--fds-internal-fullscreenImageCarousel-topActionButtons-insetRight:initial;-webkit-order:-1;-ms-flex-order:-1;order:-1;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:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;gap:var(--fds-spacing-16);}.t1d7v1ct[data-has-file-info="true"]{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;background-color:var(--fds-colour-bg-inverse);padding-top:calc(
2
2
  var(--fds-spacing-24) +
3
3
  var(--fds-internal-fullscreenImageCarousel-topActionButtons-insetTop, 0px)
4
4
  );padding-bottom:var(--fds-spacing-24);padding-left:calc(
@@ -72,4 +72,4 @@
72
72
  );}
73
73
  .f1ysk79e{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}
74
74
  .f1cpwiz6{color:var(--fds-colour-text-inverse);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
75
- .f17g5ble{color:var(--fds-colour-text-inverse);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}
75
+ .f17g5ble{color:var(--fds-colour-text-inverse);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}}
@@ -1,3 +1,3 @@
1
- .i1h1mxc8{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;}
1
+ @layer fds{.i1h1mxc8{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;}
2
2
  .i1k1jgcv{--fds-internal-fullscreenImageCarousel-statefulImage-imageBox-fit:initial;height:100%;width:100%;object-fit:var(--fds-internal-fullscreenImageCarousel-statefulImage-imageBox-fit, contain);}
3
- .d1w2ubkx{width:100%;height:100%;}
3
+ .d1w2ubkx{width:100%;height:100%;}}
@@ -1 +1 @@
1
- {"version":3,"file":"histogram-slider.js","sources":["../../../src/histogram-slider/histogram-slider.tsx"],"sourcesContent":["import { announce, clearAnnouncer } from \"@react-aria/live-announcer\";\nimport clsx from \"clsx\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { InputRangeSlider } from \"../input-range-slider\";\nimport { concatIds } from \"../shared/accessibility\";\nimport { useApplyStyle } from \"../theme\";\nimport { Typography } from \"../typography\";\nimport { useId } from \"../util\";\nimport * as styles from \"./histogram-slider.styles\";\nimport type { HistogramBinProps, HistogramSliderProps } from \"./types\";\n\nconst ANNOUNCEMENT_DEBOUNCE_MS = 500;\n\nexport const HistogramSlider = ({\n bins = [],\n interval,\n disabled,\n readOnly,\n value,\n showRangeLabels,\n rangeLabelPrefix,\n rangeLabelSuffix,\n ariaLabels,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n onChange,\n onChangeEnd,\n renderEmptyView,\n renderRangeLabel,\n className,\n ...otherProps\n}: HistogramSliderProps) => {\n // =========================================================================\n // CONST, STATE, REF\n // =========================================================================\n const counts = bins.map((item) => item.count);\n const maxCount = Math.max(...counts);\n\n const values = bins.map((item) => item.minValue);\n const maxValue = Math.max(...values);\n const minValue = Math.min(...values);\n\n const [selection, setSelection] = useState<[number, number]>(\n initSelection()\n );\n const internalId = useId();\n const announcementTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(\n null\n );\n const rangeLabelId = `${internalId}-range-label`;\n const sliderDescribedBy = concatIds(\n ariaDescribedBy,\n showRangeLabels ? rangeLabelId : undefined\n );\n\n const items = useMemo(() => {\n const sorted = [...bins].sort((a, b) => a.minValue - b.minValue);\n const numCols = (maxValue - minValue) / interval + 1;\n\n const items: typeof sorted = [];\n for (let i = 0; i < numCols; i++) {\n const bin = sorted.find(\n (b) => b.minValue === minValue + interval * i\n );\n if (bin) {\n items.push(bin);\n } else {\n items.push({ count: 0, minValue: minValue + interval * i });\n }\n }\n return items;\n }, [bins, interval]);\n\n // =========================================================================\n // EFFECTS\n // =========================================================================\n useEffect(() => {\n if (value !== selection) {\n setSelection(initSelection());\n }\n }, [value]);\n\n useEffect(() => {\n return () => {\n clearPendingAnnouncement();\n };\n }, []);\n\n // =========================================================================\n // EVENT HANDLERS\n // =========================================================================\n const handleChange = (values: number[]) => {\n const [val1, val2] = values;\n const newSelection: [number, number] = [val1, val2];\n setSelection(newSelection);\n scheduleRangePercentageAnnouncement(newSelection);\n onChange?.(newSelection);\n };\n\n const handleChangeEnd = (values: number[]) => {\n const [val1, val2] = values;\n const newSelection: [number, number] = [val1, val2];\n setSelection(newSelection);\n scheduleRangePercentageAnnouncement(newSelection);\n onChangeEnd?.(newSelection);\n };\n\n // =========================================================================\n // HELPER FUNCTIONS\n // =========================================================================\n function initSelection(): [number, number] {\n return value ?? [minValue, minValue + interval];\n }\n\n function clearPendingAnnouncement() {\n if (announcementTimeoutRef.current) {\n clearTimeout(announcementTimeoutRef.current);\n announcementTimeoutRef.current = null;\n }\n }\n\n function getRangePercentageDescription(currentSelection: [number, number]) {\n const totalCount = items.reduce((sum, item) => sum + item.count, 0);\n\n if (totalCount === 0) {\n return \"0% of results available in the range you specified.\";\n }\n\n const selectedCount = items.reduce((sum, item) => {\n const isSelected =\n item.minValue >= currentSelection[0] &&\n item.minValue < currentSelection[1];\n\n return isSelected ? sum + item.count : sum;\n }, 0);\n\n const percentage = Math.round((selectedCount / totalCount) * 100);\n\n return `${percentage}% of results available in the range you specified.`;\n }\n\n function scheduleRangePercentageAnnouncement(\n currentSelection: [number, number]\n ) {\n if (disabled || readOnly) {\n return;\n }\n\n const announcement = getRangePercentageDescription(currentSelection);\n\n clearPendingAnnouncement();\n\n announcementTimeoutRef.current = setTimeout(() => {\n clearAnnouncer(\"polite\");\n announce(announcement, \"polite\");\n }, ANNOUNCEMENT_DEBOUNCE_MS);\n }\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n const renderRangeItem = (value: number) => {\n if (renderRangeLabel) {\n return renderRangeLabel(value);\n }\n return (\n <Typography.BodyBL>\n {rangeLabelPrefix}\n {value}\n {rangeLabelSuffix}\n </Typography.BodyBL>\n );\n };\n\n const renderHistogramSlider = () => {\n const selectionDescription = getRangePercentageDescription(selection);\n\n return (\n <>\n <div className={styles.histogram}>\n {items.map((item, i) => (\n <HistogramBar\n key={i}\n item={item}\n maxCount={maxCount}\n isSelected={\n item.minValue >= selection[0] &&\n item.minValue < selection[1]\n }\n isDisabled={disabled || readOnly}\n />\n ))}\n </div>\n <InputRangeSlider\n min={minValue}\n max={maxValue + interval}\n step={interval}\n minRange={interval}\n numOfThumbs={2}\n value={selection}\n disabled={disabled}\n readOnly={readOnly}\n ariaLabels={ariaLabels}\n ariaDescriptions={[\n selectionDescription,\n selectionDescription,\n ]}\n aria-describedby={sliderDescribedBy}\n aria-labelledby={ariaLabelledBy}\n onChange={handleChange}\n onChangeEnd={handleChangeEnd}\n className={styles.slider}\n />\n </>\n );\n };\n\n return (\n <div role=\"group\" {...otherProps} className={className}>\n {showRangeLabels && (\n <div id={rangeLabelId} className={styles.label}>\n {renderRangeItem(selection[0])}\n <div className={styles.separator}>-</div>\n {renderRangeItem(selection[1])}\n </div>\n )}\n {items.every((item) => item.count === 0) && renderEmptyView\n ? renderEmptyView()\n : renderHistogramSlider()}\n </div>\n );\n};\n\n// =============================================================================\n// SUB COMPONENT\n// =============================================================================\ninterface HistogramBarProps {\n item: HistogramBinProps;\n maxCount: number;\n isSelected: boolean;\n isDisabled: boolean | undefined;\n}\n\nconst HistogramBar = ({\n item,\n maxCount,\n isSelected,\n isDisabled,\n}: HistogramBarProps) => {\n const ratio = item.count / maxCount;\n const barRef = useRef<HTMLDivElement>(null);\n\n useApplyStyle(barRef, {\n height: ratio ? `calc(calc(100% - 0.25rem) * ${ratio} + 0.25rem)` : \"0\",\n });\n\n return (\n <div\n data-testid=\"histogram-bar\"\n className={clsx(\n styles.bar,\n isDisabled && isSelected && styles.barSelectedDisabled,\n isDisabled && styles.barDisabled,\n isSelected && styles.barSelected\n )}\n ref={barRef}\n />\n );\n};\n"],"names":["HistogramBar","item","maxCount","isSelected","isDisabled","ratio","count","barRef","useRef","useApplyStyle","height","_jsx","className","clsx","styles.bar","styles.barSelectedDisabled","styles.barDisabled","styles.barSelected","ref","_a","bins","interval","disabled","readOnly","value","showRangeLabels","rangeLabelPrefix","rangeLabelSuffix","ariaLabels","ariaLabelledBy","ariaDescribedBy","onChange","onChangeEnd","renderEmptyView","renderRangeLabel","otherProps","__rest","counts","map","Math","max","values","minValue","maxValue","min","selection","setSelection","useState","initSelection","internalId","useId","announcementTimeoutRef","rangeLabelId","sliderDescribedBy","concatIds","undefined","items","useMemo","sorted","sort","a","b","numCols","i","bin","find","push","useEffect","clearPendingAnnouncement","handleChange","val1","val2","newSelection","scheduleRangePercentageAnnouncement","handleChangeEnd","current","clearTimeout","getRangePercentageDescription","currentSelection","totalCount","reduce","sum","selectedCount","round","announcement","setTimeout","clearAnnouncer","announce","renderRangeItem","_jsxs","Typography","BodyBL","children","Object","assign","role","id","styles.label","styles.separator","every","selectionDescription","_Fragment","styles.histogram","InputRangeSlider","step","minRange","numOfThumbs","ariaDescriptions","styles.slider","renderHistogramSlider"],"mappings":"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"}
1
+ {"version":3,"file":"histogram-slider.js","sources":["../../../src/histogram-slider/histogram-slider.tsx"],"sourcesContent":["import { announce, clearAnnouncer } from \"@react-aria/live-announcer\";\nimport clsx from \"clsx\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { InputRangeSlider } from \"../input-range-slider\";\nimport { concatIds } from \"../shared/accessibility\";\nimport { useApplyStyle } from \"../theme\";\nimport { Typography } from \"../typography\";\nimport { useId } from \"../util\";\nimport * as styles from \"./histogram-slider.styles\";\nimport type { HistogramBinProps, HistogramSliderProps } from \"./types\";\n\nconst ANNOUNCEMENT_DEBOUNCE_MS = 500;\n\n/**\n * A histogram with an overlaid two-thumb range slider for numeric filtering.\n *\n * Use `HistogramSlider` to let users narrow a dataset by selecting a numeric\n * range while seeing how values are distributed across bins.\n */\nexport const HistogramSlider = ({\n bins = [],\n interval,\n disabled,\n readOnly,\n value,\n showRangeLabels,\n rangeLabelPrefix,\n rangeLabelSuffix,\n ariaLabels,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n onChange,\n onChangeEnd,\n renderEmptyView,\n renderRangeLabel,\n className,\n ...otherProps\n}: HistogramSliderProps) => {\n // =========================================================================\n // CONST, STATE, REF\n // =========================================================================\n const counts = bins.map((item) => item.count);\n const maxCount = Math.max(...counts);\n\n const values = bins.map((item) => item.minValue);\n const maxValue = Math.max(...values);\n const minValue = Math.min(...values);\n\n const [selection, setSelection] = useState<[number, number]>(\n initSelection()\n );\n const internalId = useId();\n const announcementTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(\n null\n );\n const rangeLabelId = `${internalId}-range-label`;\n const sliderDescribedBy = concatIds(\n ariaDescribedBy,\n showRangeLabels ? rangeLabelId : undefined\n );\n\n const items = useMemo(() => {\n const sorted = [...bins].sort((a, b) => a.minValue - b.minValue);\n const numCols = (maxValue - minValue) / interval + 1;\n\n const items: typeof sorted = [];\n for (let i = 0; i < numCols; i++) {\n const bin = sorted.find(\n (b) => b.minValue === minValue + interval * i\n );\n if (bin) {\n items.push(bin);\n } else {\n items.push({ count: 0, minValue: minValue + interval * i });\n }\n }\n return items;\n }, [bins, interval]);\n\n // =========================================================================\n // EFFECTS\n // =========================================================================\n useEffect(() => {\n if (value !== selection) {\n setSelection(initSelection());\n }\n }, [value]);\n\n useEffect(() => {\n return () => {\n clearPendingAnnouncement();\n };\n }, []);\n\n // =========================================================================\n // EVENT HANDLERS\n // =========================================================================\n const handleChange = (values: number[]) => {\n const [val1, val2] = values;\n const newSelection: [number, number] = [val1, val2];\n setSelection(newSelection);\n scheduleRangePercentageAnnouncement(newSelection);\n onChange?.(newSelection);\n };\n\n const handleChangeEnd = (values: number[]) => {\n const [val1, val2] = values;\n const newSelection: [number, number] = [val1, val2];\n setSelection(newSelection);\n scheduleRangePercentageAnnouncement(newSelection);\n onChangeEnd?.(newSelection);\n };\n\n // =========================================================================\n // HELPER FUNCTIONS\n // =========================================================================\n function initSelection(): [number, number] {\n return value ?? [minValue, minValue + interval];\n }\n\n function clearPendingAnnouncement() {\n if (announcementTimeoutRef.current) {\n clearTimeout(announcementTimeoutRef.current);\n announcementTimeoutRef.current = null;\n }\n }\n\n function getRangePercentageDescription(currentSelection: [number, number]) {\n const totalCount = items.reduce((sum, item) => sum + item.count, 0);\n\n if (totalCount === 0) {\n return \"0% of results available in the range you specified.\";\n }\n\n const selectedCount = items.reduce((sum, item) => {\n const isSelected =\n item.minValue >= currentSelection[0] &&\n item.minValue < currentSelection[1];\n\n return isSelected ? sum + item.count : sum;\n }, 0);\n\n const percentage = Math.round((selectedCount / totalCount) * 100);\n\n return `${percentage}% of results available in the range you specified.`;\n }\n\n function scheduleRangePercentageAnnouncement(\n currentSelection: [number, number]\n ) {\n if (disabled || readOnly) {\n return;\n }\n\n const announcement = getRangePercentageDescription(currentSelection);\n\n clearPendingAnnouncement();\n\n announcementTimeoutRef.current = setTimeout(() => {\n clearAnnouncer(\"polite\");\n announce(announcement, \"polite\");\n }, ANNOUNCEMENT_DEBOUNCE_MS);\n }\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n const renderRangeItem = (value: number) => {\n if (renderRangeLabel) {\n return renderRangeLabel(value);\n }\n return (\n <Typography.BodyBL>\n {rangeLabelPrefix}\n {value}\n {rangeLabelSuffix}\n </Typography.BodyBL>\n );\n };\n\n const renderHistogramSlider = () => {\n const selectionDescription = getRangePercentageDescription(selection);\n\n return (\n <>\n <div className={styles.histogram}>\n {items.map((item, i) => (\n <HistogramBar\n key={i}\n item={item}\n maxCount={maxCount}\n isSelected={\n item.minValue >= selection[0] &&\n item.minValue < selection[1]\n }\n isDisabled={disabled || readOnly}\n />\n ))}\n </div>\n <InputRangeSlider\n min={minValue}\n max={maxValue + interval}\n step={interval}\n minRange={interval}\n numOfThumbs={2}\n value={selection}\n disabled={disabled}\n readOnly={readOnly}\n ariaLabels={ariaLabels}\n ariaDescriptions={[\n selectionDescription,\n selectionDescription,\n ]}\n aria-describedby={sliderDescribedBy}\n aria-labelledby={ariaLabelledBy}\n onChange={handleChange}\n onChangeEnd={handleChangeEnd}\n className={styles.slider}\n />\n </>\n );\n };\n\n return (\n <div role=\"group\" {...otherProps} className={className}>\n {showRangeLabels && (\n <div id={rangeLabelId} className={styles.label}>\n {renderRangeItem(selection[0])}\n <div className={styles.separator}>-</div>\n {renderRangeItem(selection[1])}\n </div>\n )}\n {items.every((item) => item.count === 0) && renderEmptyView\n ? renderEmptyView()\n : renderHistogramSlider()}\n </div>\n );\n};\n\n// =============================================================================\n// SUB COMPONENT\n// =============================================================================\ninterface HistogramBarProps {\n item: HistogramBinProps;\n maxCount: number;\n isSelected: boolean;\n isDisabled: boolean | undefined;\n}\n\nconst HistogramBar = ({\n item,\n maxCount,\n isSelected,\n isDisabled,\n}: HistogramBarProps) => {\n const ratio = item.count / maxCount;\n const barRef = useRef<HTMLDivElement>(null);\n\n useApplyStyle(barRef, {\n height: ratio ? `calc(calc(100% - 0.25rem) * ${ratio} + 0.25rem)` : \"0\",\n });\n\n return (\n <div\n data-testid=\"histogram-bar\"\n className={clsx(\n styles.bar,\n isDisabled && isSelected && styles.barSelectedDisabled,\n isDisabled && styles.barDisabled,\n isSelected && styles.barSelected\n )}\n ref={barRef}\n />\n );\n};\n"],"names":["HistogramBar","item","maxCount","isSelected","isDisabled","ratio","count","barRef","useRef","useApplyStyle","height","_jsx","className","clsx","styles.bar","styles.barSelectedDisabled","styles.barDisabled","styles.barSelected","ref","_a","bins","interval","disabled","readOnly","value","showRangeLabels","rangeLabelPrefix","rangeLabelSuffix","ariaLabels","ariaLabelledBy","ariaDescribedBy","onChange","onChangeEnd","renderEmptyView","renderRangeLabel","otherProps","__rest","counts","map","Math","max","values","minValue","maxValue","min","selection","setSelection","useState","initSelection","internalId","useId","announcementTimeoutRef","rangeLabelId","sliderDescribedBy","concatIds","undefined","items","useMemo","sorted","sort","a","b","numCols","i","bin","find","push","useEffect","clearPendingAnnouncement","handleChange","val1","val2","newSelection","scheduleRangePercentageAnnouncement","handleChangeEnd","current","clearTimeout","getRangePercentageDescription","currentSelection","totalCount","reduce","sum","selectedCount","round","announcement","setTimeout","clearAnnouncer","announce","renderRangeItem","_jsxs","Typography","BodyBL","children","Object","assign","role","id","styles.label","styles.separator","every","selectionDescription","_Fragment","styles.histogram","InputRangeSlider","step","minRange","numOfThumbs","ariaDescriptions","styles.slider","renderHistogramSlider"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- .l1qwb62w{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:var(--fds-spacing-16);-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;}
1
+ @layer fds{.l1qwb62w{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:var(--fds-spacing-16);-webkit-align-items:baseline;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;}
2
2
  .s1f028jb{margin:0 0.5rem;}
3
3
  .hu29dsu{width:100%;height:4rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;padding:0 0.4375rem;}
4
4
  .b1koddre{-webkit-flex:1;-ms-flex:1;flex:1;border-radius:var(--fds-radius-sm) var(--fds-radius-sm) 0 0;border:0.5px solid transparent;-webkit-background-clip:content-box;background-clip:content-box;background-color:var(--fds-colour-bg-strongest);}
5
5
  .b1im7sez{background-color:var(--fds-colour-bg-disabled);}
6
6
  .b8ooyxk{background-color:var(--fds-colour-bg-selected-stronger);}
7
7
  .b9tfims{background-color:var(--fds-colour-bg-selected-stronger-disabled);}
8
- .s1q1626e{margin-top:-0.3125rem;}
8
+ .s1q1626e{margin-top:-0.3125rem;}}
@@ -1 +1 @@
1
- {"version":3,"file":"image-button.js","sources":["../../../src/image-button/image-button.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\n\nimport type { ButtonRef } from \"../button/types\";\nimport { ImageWithFallback } from \"../shared/image-with-fallback/image-with-fallback\";\nimport * as styles from \"./image-button.styles\";\nimport type { ImageButtonProps } from \"./types\";\n\nconst Component = (\n {\n children,\n className,\n imgSrc,\n selected,\n error,\n type = \"button\",\n disabled = false,\n focusableWhenDisabled = false,\n onClick,\n ...otherProps\n }: ImageButtonProps,\n ref: ButtonRef\n) => {\n const isNativeDisabled = !!disabled && !focusableWhenDisabled;\n\n return (\n <button\n ref={ref}\n type={type}\n aria-disabled={disabled}\n disabled={isNativeDisabled}\n onClick={disabled ? undefined : onClick}\n className={clsx(\n styles.main,\n selected && styles.mainSelectedText,\n selected && styles.mainSelected,\n error && styles.mainError,\n disabled && styles.mainDisabled,\n className\n )}\n {...otherProps}\n >\n <ImageWithFallback src={imgSrc} />\n {children}\n </button>\n );\n};\n\nexport const ImageButton = React.forwardRef(Component);\n"],"names":["ImageButton","React","forwardRef","_a","ref","children","className","imgSrc","selected","error","type","disabled","focusableWhenDisabled","onClick","otherProps","__rest","isNativeDisabled","_jsxs","Object","assign","undefined","clsx","styles.main","styles.mainSelectedText","styles.mainSelected","styles.mainError","styles.mainDisabled","_jsx","ImageWithFallback","src"],"mappings":"mTAQA,MAwCaA,OAAcC,QAAMC,YAxCf,CACdC,EAYAC,KAZA,IAAAC,SACIA,EAAQC,UACRA,EAASC,OACTA,EAAMC,SACNA,EAAQC,MACRA,EAAKC,KACLA,EAAO,SAAQC,SACfA,GAAW,EAAKC,sBAChBA,GAAwB,EAAKC,QAC7BA,GAAOV,EACJW,EAAUC,EAAAA,OAAAZ,EAVjB,CAAA,WAAA,YAAA,SAAA,WAAA,QAAA,OAAA,WAAA,wBAAA,YAcA,MAAMa,IAAqBL,IAAaC,EAExC,OACIK,EAAAA,KAAA,SAAAC,OAAAC,OAAA,CACIf,IAAKA,EACLM,KAAMA,EAAI,gBACKC,EACfA,SAAUK,EACVH,QAASF,OAAWS,EAAYP,EAChCP,UAAWe,EAAAA,QACPC,EAAAA,KACAd,GAAYe,mBACZf,GAAYgB,EAAAA,aACZf,GAASgB,EAAAA,UACTd,GAAYe,EAAAA,aACZpB,IAEAQ,EAAU,CAAAT,SAAA,CAEdsB,MAACC,EAAAA,kBAAiB,CAACC,IAAKtB,IACvBF,KACI"}
1
+ {"version":3,"file":"image-button.js","sources":["../../../src/image-button/image-button.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\n\nimport type { ButtonRef } from \"../button/types\";\nimport { ImageWithFallback } from \"../shared/image-with-fallback/image-with-fallback\";\nimport * as styles from \"./image-button.styles\";\nimport type { ImageButtonProps } from \"./types\";\n\nconst Component = (\n {\n children,\n className,\n imgSrc,\n selected,\n error,\n type = \"button\",\n disabled = false,\n focusableWhenDisabled = false,\n onClick,\n ...otherProps\n }: ImageButtonProps,\n ref: ButtonRef\n) => {\n const isNativeDisabled = !!disabled && !focusableWhenDisabled;\n\n return (\n <button\n ref={ref}\n type={type}\n aria-disabled={disabled}\n disabled={isNativeDisabled}\n onClick={disabled ? undefined : onClick}\n className={clsx(\n styles.main,\n selected && styles.mainSelectedText,\n selected && styles.mainSelected,\n error && styles.mainError,\n disabled && styles.mainDisabled,\n className\n )}\n {...otherProps}\n >\n <ImageWithFallback src={imgSrc} />\n {children}\n </button>\n );\n};\n\n/**\n * A button that displays an image alongside optional label content.\n *\n * Use `ImageButton` for selectable image-based choices such as theme pickers or avatar\n * selectors, where each option is represented visually.\n */\nexport const ImageButton = React.forwardRef(Component);\n"],"names":["ImageButton","React","forwardRef","_a","ref","children","className","imgSrc","selected","error","type","disabled","focusableWhenDisabled","onClick","otherProps","__rest","isNativeDisabled","_jsxs","Object","assign","undefined","clsx","styles.main","styles.mainSelectedText","styles.mainSelected","styles.mainError","styles.mainDisabled","_jsx","ImageWithFallback","src"],"mappings":"mTAQA,MA8CaA,OAAcC,QAAMC,YA9Cf,CACdC,EAYAC,KAZA,IAAAC,SACIA,EAAQC,UACRA,EAASC,OACTA,EAAMC,SACNA,EAAQC,MACRA,EAAKC,KACLA,EAAO,SAAQC,SACfA,GAAW,EAAKC,sBAChBA,GAAwB,EAAKC,QAC7BA,GAAOV,EACJW,EAAUC,EAAAA,OAAAZ,EAVjB,CAAA,WAAA,YAAA,SAAA,WAAA,QAAA,OAAA,WAAA,wBAAA,YAcA,MAAMa,IAAqBL,IAAaC,EAExC,OACIK,EAAAA,KAAA,SAAAC,OAAAC,OAAA,CACIf,IAAKA,EACLM,KAAMA,EAAI,gBACKC,EACfA,SAAUK,EACVH,QAASF,OAAWS,EAAYP,EAChCP,UAAWe,EAAAA,QACPC,EAAAA,KACAd,GAAYe,mBACZf,GAAYgB,EAAAA,aACZf,GAASgB,EAAAA,UACTd,GAAYe,EAAAA,aACZpB,IAEAQ,EAAU,CAAAT,SAAA,CAEdsB,MAACC,EAAAA,kBAAiB,CAACC,IAAKtB,IACvBF,KACI"}
@@ -1,5 +1,5 @@
1
- .mqb1plh{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:0.5rem;-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;padding:1.5rem 1rem;background-color:var(--fds-colour-bg);border:var(--fds-border-width-010) var(--fds-border-style-solid) transparent;border-radius:var(--fds-radius-md);cursor:pointer;max-width:13rem;-webkit-transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-default);transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-default);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-semibold);line-height:var(--fds-font-body-lh-baseline);letter-spacing:var(--fds-font-body-ls-baseline);color:var(--fds-colour-text);overflow-wrap:anywhere;}.mqb1plh img{min-width:3.5rem;width:3.5rem;height:3.5rem;object-fit:contain;}.mqb1plh:hover{border-color:var(--fds-colour-border-hover-strong);}:where(body.fds-breakpoint-sm-max) .mqb1plh{padding:0.5rem 0.25rem;gap:0.25rem;font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-md);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-md);letter-spacing:var(--fds-font-body-ls-md);}
1
+ @layer fds{.mqb1plh{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;gap:0.5rem;-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;padding:1.5rem 1rem;background-color:var(--fds-colour-bg);border:var(--fds-border-width-010) var(--fds-border-style-solid) transparent;border-radius:var(--fds-radius-md);cursor:pointer;max-width:13rem;-webkit-transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-default);transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-default);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-semibold);line-height:var(--fds-font-body-lh-baseline);letter-spacing:var(--fds-font-body-ls-baseline);color:var(--fds-colour-text);overflow-wrap:anywhere;}.mqb1plh img{min-width:3.5rem;width:3.5rem;height:3.5rem;object-fit:contain;}.mqb1plh:hover{border-color:var(--fds-colour-border-hover-strong);}:where(body.fds-breakpoint-sm-max) .mqb1plh{padding:0.5rem 0.25rem;gap:0.25rem;font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-md);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-md);letter-spacing:var(--fds-font-body-ls-md);}
2
2
  .mpjl8bn{color:var(--fds-colour-text-primary);}
3
3
  .mroo32y{background:var(--fds-colour-bg-selected);border-color:var(--fds-colour-border-selected);}.mroo32y:hover{background:var(--fds-colour-bg-selected-hover);border-color:var(--fds-colour-border-selected-hover);}
4
4
  .mz6wr40{background:var(--fds-colour-bg);border-color:var(--fds-colour-border-error);}.mz6wr40:hover{background:var(--fds-colour-bg);border-color:var(--fds-colour-border-error);}
5
- .m1hsk0n5{color:var(--fds-colour-text-disabled);cursor:not-allowed;}.m1hsk0n5 img{-webkit-filter:grayscale(100%);filter:grayscale(100%);}.m1hsk0n5:hover{border-color:transparent;}
5
+ .m1hsk0n5{color:var(--fds-colour-text-disabled);cursor:not-allowed;}.m1hsk0n5 img{-webkit-filter:grayscale(100%);filter:grayscale(100%);}.m1hsk0n5:hover{border-color:transparent;}}
package/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./accordion/accordion.js"),r=require("./alert/alert.js"),t=require("./animations/loading-dots/loading-dots.js"),i=require("./animations/loading-dots-spinner/loading-dots-spinner.js"),o=require("./animations/loading-spinner/loading-spinner.js"),s=require("./animations/themed-loading-spinner/themed-loading-spinner.js"),n=require("./avatar/avatar.js"),a=require("./badge/badge.js"),p=require("./box-container/box-container.js"),u=require("./breadcrumb/breadcrumb.js"),l=require("./button/button.js"),d=require("./calendar/calendar.js"),x=require("./card/card.js"),m=require("./checkbox/checkbox.js"),g=require("./countdown-timer/countdown-timer.js"),c=require("./dashed-border/dashed-border.js"),q=require("./data-table/data-table.js"),j=require("./date-input/date-input.js"),b=require("./date-navigator/date-navigator.js"),h=require("./date-range-input/date-range-input.js"),T=require("./divider/divider.js"),k=require("./drawer/drawer.js"),S=require("./e-signature/e-signature.js"),v=require("./error-display/error-display.js"),I=require("./error-display/helper.js"),y=require("./example/example.js"),B=require("./feedback-rating/feedback-rating.js"),M=require("./file-download/file-download.js"),w=require("./file-upload/file-upload.js"),D=require("./filter/filter.js"),P=require("./footer/footer.js"),f=require("./form/index.js"),C=require("./fullscreen-image-carousel/fullscreen-image-carousel.js"),F=require("./histogram-slider/histogram-slider.js"),L=require("./image-button/image-button.js"),N=require("./input/input.js"),R=require("./input-group/input-group.js"),E=require("./input-multi-select/input-multi-select.js"),A=require("./input-nested-multi-select/input-nested-multi-select.js"),H=require("./input-nested-select/input-nested-select.js"),Q=require("./input-range-select/input-range-select.js"),U=require("./input-range-slider/input-range-slider.js"),V=require("./input-select/input-select.js"),W=require("./input-slider/input-slider.js"),O=require("./input-textarea/textarea.js"),G=require("./language-switcher/language-switcher.js"),Y=require("./layout/index.js"),_=require("./link-list/link-list.js"),z=require("./markup/markup.js"),J=require("./masked-input/masked-input.js"),K=require("./masthead/masthead.js"),X=require("./menu/menu.js"),Z=require("./modal/index.js"),$=require("./modal-v2/index.js"),ee=require("./navbar/navbar.js"),re=require("./notification-banner/notification-banner.js"),te=require("./notification-banner/notification-banner-hoc.js"),ie=require("./otp-input/otp-input.js"),oe=require("./overlay/overlay.js"),se=require("./pagination/pagination.js"),ne=require("./phone-number-input/phone-number-input.js"),ae=require("./pill/pill.js"),pe=require("./popover/popover.js"),ue=require("./popover/popover-inline/popover-inline.js"),le=require("./popover/popover-trigger.js"),de=require("./predictive-text-input/predictive-text-input.js"),xe=require("./progress-indicator/progress-indicator.js"),me=require("./radio-button/radio-button.js"),ge=require("./select-histogram/select-histogram.js"),ce=require("./sidenav/sidenav.js"),qe=require("./singpass-button/singpass-button.js"),je=require("./smart-app-banner/smart-app-banner.js"),be=require("./tab/tab.js"),he=require("./table/table.js"),Te=require("./tag/tag.js"),ke=require("./text-list/index.js"),Se=require("./theme/theme-provider/index.js"),ve=require("./theme/theme-provider/hooks.js"),Ie=require("./theme/tokens/border.js"),ye=require("./theme/tokens/breakpoint.js"),Be=require("./theme/tokens/colour.js"),Me=require("./theme/tokens/component.js"),we=require("./theme/tokens/font.js"),De=require("./theme/tokens/media-query.js"),Pe=require("./theme/tokens/motion.js"),fe=require("./theme/tokens/radius.js"),Ce=require("./theme/tokens/shadow.js"),Fe=require("./theme/tokens/spacing.js"),Le=require("./theme/types.js"),Ne=require("./theme/utils/css-variable.js"),Re=require("./theme/utils/use-apply-styles.js"),Ee=require("./theme/utils/use-design-token.js"),Ae=require("./theme/utils/use-media-query.js"),He=require("./time-range-picker/time-range-picker.js"),Qe=require("./time-slot-bar/time-slot-bar.js"),Ue=require("./time-slot-bar-week/time-slot-bar-week.js"),Ve=require("./time-slot-week-view/time-slot-week-view.js"),We=require("./timeline/timeline.js"),Oe=require("./timepicker/timepicker.js"),Ge=require("./timetable/timetable.js"),Ye=require("./toast/toast.js"),_e=require("./toggle/toggle.js"),ze=require("./typography/index.js"),Je=require("./uneditable-section/index.js"),Ke=require("./unit-number/unit-number-input.js");exports.Accordion=e.Accordion,exports.Alert=r.Alert,exports.LoadingDots=t.LoadingDots,exports.LoadingDotsSpinner=i.LoadingDotsSpinner,exports.LoadingSpinner=o.LoadingSpinner,exports.ThemedLoadingSpinner=s.ThemedLoadingSpinner,exports.Avatar=n.Avatar,exports.Badge=a.Badge,exports.BoxContainer=p.BoxContainer,exports.Breadcrumb=u.Breadcrumb,exports.Button=l.Button,exports.Calendar=d.Calendar,exports.Card=x.Card,exports.Checkbox=m.Checkbox,exports.CountdownTimer=g.CountdownTimer,exports.DashedBorder=c.DashedBorder,exports.DataTable=q.DataTable,exports.DateInput=j.DateInput,exports.DateNavigator=b.DateNavigator,exports.DateRangeInput=h.DateRangeInput,exports.Divider=T.Divider,exports.Drawer=k.Drawer,exports.ESignature=S.ESignature,exports.ErrorDisplay=v.ErrorDisplay,exports.ErrorDisplayHelper=I.ErrorDisplayHelper,exports.Example=y.Example,exports.FeedbackRating=B.FeedbackRating,exports.FileDownload=M.FileDownload,exports.FileUpload=w.FileUpload,exports.Filter=D.Filter,exports.Footer=P.Footer,exports.Form=f.Form,exports.Component=C.Component,exports.FullscreenImageCarousel=C.FullscreenImageCarousel,exports.HistogramSlider=F.HistogramSlider,exports.ImageButton=L.ImageButton,exports.Input=N.Input,exports.InputGroup=R.InputGroup,exports.InputMultiSelect=E.InputMultiSelect,exports.InputNestedMultiSelect=A.InputNestedMultiSelect,exports.InputNestedSelect=H.InputNestedSelect,exports.InputRangeSelect=Q.InputRangeSelect,exports.InputRangeSlider=U.InputRangeSlider,exports.InputSelect=V.InputSelect,exports.InputSlider=W.InputSlider,exports.Textarea=O.Textarea,exports.LanguageSwitcher=G.LanguageSwitcher,exports.Layout=Y.Layout,exports.LinkList=_.LinkList,exports.Markup=z.Markup,exports.MaskedInput=J.MaskedInput,exports.Masthead=K.Masthead,exports.Menu=X.Menu,exports.MenuTrigger=X.MenuTrigger,exports.Modal=Z.Modal,exports.ModalV2=$.ModalV2,exports.Navbar=ee.Navbar,exports.NBComponent=re.NBComponent,exports.NotificationBanner=re.NotificationBanner,exports.withNotificationBanner=te.withNotificationBanner,exports.OtpInput=ie.OtpInput,exports.Overlay=oe.Overlay,exports.Pagination=se.Pagination,exports.PhoneNumberInput=ne.PhoneNumberInput,exports.Pill=ae.Pill,exports.Popover=pe.Popover,exports.PopoverInline=ue.PopoverInline,exports.PopoverTrigger=le.PopoverTrigger,exports.PredictiveTextInput=de.PredictiveTextInput,exports.ProgressIndicator=xe.ProgressIndicator,exports.RadioButton=me.RadioButton,exports.SelectHistogram=ge.SelectHistogram,exports.Sidenav=ce.Sidenav,exports.SingpassButton=qe.SingpassButton,exports.SmartAppBanner=je.SmartAppBanner,exports.Tab=be.Tab,exports.Table=he.Table,exports.Tag=Te.Tag,exports.TextList=ke.TextList,exports.ThemeProvider=Se.ThemeProvider,exports.useInheritedThemeScope=ve.useInheritedThemeScope,exports.useTheme=ve.useTheme,exports.Border=Ie.Border,exports.BorderStyle=Ie.BorderStyle,exports.BorderThickness=Ie.BorderThickness,exports.Breakpoint=ye.Breakpoint,exports.Colour=Be.Colour,exports.PrimitiveColours=Be.PrimitiveColours,exports.SemanticColours=Be.SemanticColours,exports.ComponentToken=Me.ComponentToken,exports.Font=we.Font,exports.FontSpec=we.FontSpec,exports.MediaQuery=De.MediaQuery,exports.Motion=Pe.Motion,exports.Radius=fe.Radius,exports.Shadow=Ce.Shadow,exports.Spacing=Fe.Spacing,exports.THEME_TYPES=Le.THEME_TYPES,exports.formatUnitValue=Ne.formatUnitValue,exports.parsePxOrRemValue=Ne.parsePxOrRemValue,exports.useApplyStyle=Re.useApplyStyle,exports.useDesignToken=Ee.useDesignToken,exports.useMaxWidthMediaQuery=Ae.useMaxWidthMediaQuery,exports.useMediaQuery=Ae.useMediaQuery,exports.useMinWidthMediaQuery=Ae.useMinWidthMediaQuery,exports.useResolvedBreakpointToken=Ae.useResolvedBreakpointToken,exports.TimeRangePicker=He.TimeRangePicker,exports.TimeSlotBar=Qe.TimeSlotBar,exports.TimeSlotBarWeek=Ue.TimeSlotBarWeek,exports.TimeSlotWeekView=Ve.TimeSlotWeekView,exports.Timeline=We.Timeline,exports.Timepicker=Oe.Timepicker,exports.TimeTable=Ge.TimeTable,exports.Toast=Ye.Toast,exports.Toggle=_e.Toggle,exports.Typography=ze.Typography,exports.UneditableSection=Je.UneditableSection,exports.UnitNumberInput=Ke.UnitNumberInput;
1
+ "use strict";var e=require("./accordion/accordion.js"),r=require("./alert/alert.js"),t=require("./animations/loading-dots/loading-dots.js"),i=require("./animations/loading-dots-spinner/loading-dots-spinner.js"),o=require("./animations/loading-spinner/loading-spinner.js"),s=require("./animations/themed-loading-spinner/themed-loading-spinner.js"),n=require("./avatar/avatar.js"),a=require("./badge/badge.js"),p=require("./box-container/box-container.js"),u=require("./breadcrumb/breadcrumb.js"),l=require("./button/button.js"),d=require("./calendar/calendar.js"),x=require("./card/card.js"),m=require("./checkbox/checkbox.js"),g=require("./countdown-timer/countdown-timer.js"),c=require("./dashed-border/dashed-border.js"),q=require("./data-table/data-table.js"),j=require("./date-input/date-input.js"),b=require("./date-navigator/date-navigator.js"),h=require("./date-range-input/date-range-input.js"),T=require("./divider/divider.js"),k=require("./drawer/drawer.js"),S=require("./e-signature/e-signature.js"),v=require("./error-display/error-display.js"),I=require("./error-display/helper.js"),y=require("./feedback-rating/feedback-rating.js"),B=require("./file-download/file-download.js"),M=require("./file-upload/file-upload.js"),w=require("./filter/filter.js"),D=require("./footer/footer.js"),P=require("./form/index.js"),f=require("./fullscreen-image-carousel/fullscreen-image-carousel.js"),C=require("./histogram-slider/histogram-slider.js"),F=require("./image-button/image-button.js"),L=require("./input/input.js"),N=require("./input-group/input-group.js"),R=require("./input-multi-select/input-multi-select.js"),E=require("./input-nested-multi-select/input-nested-multi-select.js"),A=require("./input-nested-select/input-nested-select.js"),H=require("./input-range-select/input-range-select.js"),Q=require("./input-range-slider/input-range-slider.js"),U=require("./input-select/input-select.js"),V=require("./input-slider/input-slider.js"),W=require("./input-textarea/textarea.js"),O=require("./language-switcher/language-switcher.js"),G=require("./layout/index.js"),Y=require("./link-list/link-list.js"),_=require("./markup/markup.js"),z=require("./masked-input/masked-input.js"),J=require("./masthead/masthead.js"),K=require("./menu/menu.js"),X=require("./modal/index.js"),Z=require("./modal-v2/modal-v2.js"),$=require("./navbar/navbar.js"),ee=require("./notification-banner/notification-banner.js"),re=require("./notification-banner/notification-banner-hoc.js"),te=require("./otp-input/otp-input.js"),ie=require("./overlay/overlay.js"),oe=require("./pagination/pagination.js"),se=require("./phone-number-input/phone-number-input.js"),ne=require("./pill/pill.js"),ae=require("./popover/popover.js"),pe=require("./popover/popover-inline/popover-inline.js"),ue=require("./popover/popover-trigger.js"),le=require("./predictive-text-input/predictive-text-input.js"),de=require("./progress-indicator/progress-indicator.js"),xe=require("./radio-button/radio-button.js"),me=require("./select-histogram/select-histogram.js"),ge=require("./sidenav/sidenav.js"),ce=require("./singpass-button/singpass-button.js"),qe=require("./smart-app-banner/smart-app-banner.js"),je=require("./tab/tab.js"),be=require("./table/table.js"),he=require("./tag/tag.js"),Te=require("./text-list/index.js"),ke=require("./theme/theme-provider/index.js"),Se=require("./theme/theme-provider/hooks.js"),ve=require("./theme/tokens/border.js"),Ie=require("./theme/tokens/breakpoint.js"),ye=require("./theme/tokens/colour.js"),Be=require("./theme/tokens/component.js"),Me=require("./theme/tokens/font.js"),we=require("./theme/tokens/media-query.js"),De=require("./theme/tokens/motion.js"),Pe=require("./theme/tokens/radius.js"),fe=require("./theme/tokens/shadow.js"),Ce=require("./theme/tokens/spacing.js"),Fe=require("./theme/types.js"),Le=require("./theme/utils/css-variable.js"),Ne=require("./theme/utils/use-apply-styles.js"),Re=require("./theme/utils/use-design-token.js"),Ee=require("./theme/utils/use-media-query.js"),Ae=require("./time-range-picker/time-range-picker.js"),He=require("./time-slot-bar/time-slot-bar.js"),Qe=require("./time-slot-bar-week/time-slot-bar-week.js"),Ue=require("./time-slot-week-view/time-slot-week-view.js"),Ve=require("./timeline/timeline.js"),We=require("./timepicker/timepicker.js"),Oe=require("./timetable/timetable.js"),Ge=require("./toast/toast.js"),Ye=require("./toggle/toggle.js"),_e=require("./typography/index.js"),ze=require("./uneditable-section/index.js"),Je=require("./unit-number/unit-number-input.js");exports.Accordion=e.Accordion,exports.Alert=r.Alert,exports.LoadingDots=t.LoadingDots,exports.LoadingDotsSpinner=i.LoadingDotsSpinner,exports.LoadingSpinner=o.LoadingSpinner,exports.ThemedLoadingSpinner=s.ThemedLoadingSpinner,exports.Avatar=n.Avatar,exports.Badge=a.Badge,exports.BoxContainer=p.BoxContainer,exports.Breadcrumb=u.Breadcrumb,exports.Button=l.Button,exports.Calendar=d.Calendar,exports.Card=x.Card,exports.Checkbox=m.Checkbox,exports.CountdownTimer=g.CountdownTimer,exports.DashedBorder=c.DashedBorder,exports.DataTable=q.DataTable,exports.DateInput=j.DateInput,exports.DateNavigator=b.DateNavigator,exports.DateRangeInput=h.DateRangeInput,exports.Divider=T.Divider,exports.Drawer=k.Drawer,exports.ESignature=S.ESignature,exports.ErrorDisplay=v.ErrorDisplay,exports.ErrorDisplayHelper=I.ErrorDisplayHelper,exports.FeedbackRating=y.FeedbackRating,exports.FileDownload=B.FileDownload,exports.FileUpload=M.FileUpload,exports.Filter=w.Filter,exports.Footer=D.Footer,exports.Form=P.Form,exports.Component=f.Component,exports.FullscreenImageCarousel=f.FullscreenImageCarousel,exports.HistogramSlider=C.HistogramSlider,exports.ImageButton=F.ImageButton,exports.Input=L.Input,exports.InputGroup=N.InputGroup,exports.InputMultiSelect=R.InputMultiSelect,exports.InputNestedMultiSelect=E.InputNestedMultiSelect,exports.InputNestedSelect=A.InputNestedSelect,exports.InputRangeSelect=H.InputRangeSelect,exports.InputRangeSlider=Q.InputRangeSlider,exports.InputSelect=U.InputSelect,exports.InputSlider=V.InputSlider,exports.Textarea=W.Textarea,exports.LanguageSwitcher=O.LanguageSwitcher,exports.Layout=G.Layout,exports.LinkList=Y.LinkList,exports.Markup=_.Markup,exports.MaskedInput=z.MaskedInput,exports.Masthead=J.Masthead,exports.Menu=K.Menu,exports.MenuTrigger=K.MenuTrigger,exports.Modal=X.Modal,exports.ModalV2=Z.ModalV2,exports.Navbar=$.Navbar,exports.NBComponent=ee.NBComponent,exports.NotificationBanner=ee.NotificationBanner,exports.withNotificationBanner=re.withNotificationBanner,exports.OtpInput=te.OtpInput,exports.Overlay=ie.Overlay,exports.Pagination=oe.Pagination,exports.PhoneNumberInput=se.PhoneNumberInput,exports.Pill=ne.Pill,exports.Popover=ae.Popover,exports.PopoverInline=pe.PopoverInline,exports.PopoverTrigger=ue.PopoverTrigger,exports.PredictiveTextInput=le.PredictiveTextInput,exports.ProgressIndicator=de.ProgressIndicator,exports.RadioButton=xe.RadioButton,exports.SelectHistogram=me.SelectHistogram,exports.Sidenav=ge.Sidenav,exports.SingpassButton=ce.SingpassButton,exports.SmartAppBanner=qe.SmartAppBanner,exports.Tab=je.Tab,exports.Table=be.Table,exports.Tag=he.Tag,exports.TextList=Te.TextList,exports.ThemeProvider=ke.ThemeProvider,exports.useInheritedThemeScope=Se.useInheritedThemeScope,exports.useTheme=Se.useTheme,exports.Border=ve.Border,exports.BorderStyle=ve.BorderStyle,exports.BorderThickness=ve.BorderThickness,exports.Breakpoint=Ie.Breakpoint,exports.Colour=ye.Colour,exports.PrimitiveColours=ye.PrimitiveColours,exports.SemanticColours=ye.SemanticColours,exports.ComponentToken=Be.ComponentToken,exports.Font=Me.Font,exports.FontSpec=Me.FontSpec,exports.MediaQuery=we.MediaQuery,exports.Motion=De.Motion,exports.Radius=Pe.Radius,exports.Shadow=fe.Shadow,exports.Spacing=Ce.Spacing,exports.THEME_TYPES=Fe.THEME_TYPES,exports.formatUnitValue=Le.formatUnitValue,exports.parsePxOrRemValue=Le.parsePxOrRemValue,exports.useApplyStyle=Ne.useApplyStyle,exports.useDesignToken=Re.useDesignToken,exports.useMaxWidthMediaQuery=Ee.useMaxWidthMediaQuery,exports.useMediaQuery=Ee.useMediaQuery,exports.useMinWidthMediaQuery=Ee.useMinWidthMediaQuery,exports.useResolvedBreakpointToken=Ee.useResolvedBreakpointToken,exports.TimeRangePicker=Ae.TimeRangePicker,exports.TimeSlotBar=He.TimeSlotBar,exports.TimeSlotBarWeek=Qe.TimeSlotBarWeek,exports.TimeSlotWeekView=Ue.TimeSlotWeekView,exports.Timeline=Ve.Timeline,exports.Timepicker=We.Timepicker,exports.TimeTable=Oe.TimeTable,exports.Toast=Ge.Toast,exports.Toggle=Ye.Toggle,exports.Typography=_e.Typography,exports.UneditableSection=ze.UneditableSection,exports.UnitNumberInput=Je.UnitNumberInput;
2
2
  //# sourceMappingURL=index.js.map