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

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 (1304) hide show
  1. package/accordion/accordion-item.styles.js +1 -1
  2. package/accordion/accordion-item.styles.js.map +1 -1
  3. package/accordion/{accordion-item.styles_kchcad.css → accordion-item.styles_1j4eb32.css} +2 -2
  4. package/accordion/accordion.styles.js +1 -1
  5. package/{cjs/accordion/accordion.styles_ijglff.css → accordion/accordion.styles_bzrfrs.css} +1 -1
  6. package/alert/alert.styles.js +1 -1
  7. package/alert/alert.styles.js.map +1 -1
  8. package/{cjs/alert/alert.styles_1ygel36.css → alert/alert.styles_patwo2.css} +4 -4
  9. package/badge/badge.js +1 -1
  10. package/badge/badge.js.map +1 -1
  11. package/badge/badge.styles.js +1 -1
  12. package/badge/badge.styles_1c3c6wj.css +16 -0
  13. package/badge/types.d.ts +1 -1
  14. package/box-container/box-container.styles.js +1 -1
  15. package/box-container/box-container.styles.js.map +1 -1
  16. package/box-container/{box-container.styles_5y84d5.css → box-container.styles_5t2j9k.css} +2 -2
  17. package/breadcrumb/breadcrumb.js +1 -1
  18. package/breadcrumb/breadcrumb.js.map +1 -1
  19. package/button/button.styles.js +1 -1
  20. package/button/button.styles.js.map +1 -1
  21. package/button/{button.styles_bcpkzm.css → button.styles_1pxy0co.css} +3 -3
  22. package/calendar/calendar.js +1 -1
  23. package/calendar/calendar.js.map +1 -1
  24. package/cjs/accordion/accordion-item.styles.js +1 -1
  25. package/cjs/accordion/accordion-item.styles.js.map +1 -1
  26. package/cjs/accordion/{accordion-item.styles_kchcad.css → accordion-item.styles_1j4eb32.css} +2 -2
  27. package/cjs/accordion/accordion.styles.js +1 -1
  28. package/{accordion/accordion.styles_ijglff.css → cjs/accordion/accordion.styles_bzrfrs.css} +1 -1
  29. package/cjs/alert/alert.styles.js +1 -1
  30. package/cjs/alert/alert.styles.js.map +1 -1
  31. package/{alert/alert.styles_1ygel36.css → cjs/alert/alert.styles_patwo2.css} +4 -4
  32. package/cjs/badge/badge.js +1 -1
  33. package/cjs/badge/badge.js.map +1 -1
  34. package/cjs/badge/badge.styles.js +1 -1
  35. package/cjs/badge/badge.styles_1c3c6wj.css +16 -0
  36. package/cjs/box-container/box-container.styles.js +1 -1
  37. package/cjs/box-container/box-container.styles.js.map +1 -1
  38. package/cjs/box-container/{box-container.styles_5y84d5.css → box-container.styles_5t2j9k.css} +2 -2
  39. package/cjs/breadcrumb/breadcrumb.js +1 -1
  40. package/cjs/breadcrumb/breadcrumb.js.map +1 -1
  41. package/cjs/button/button.styles.js +1 -1
  42. package/cjs/button/button.styles.js.map +1 -1
  43. package/cjs/button/{button.styles_bcpkzm.css → button.styles_1pxy0co.css} +3 -3
  44. package/cjs/calendar/calendar.js +1 -1
  45. package/cjs/calendar/calendar.js.map +1 -1
  46. package/cjs/countdown-timer/countdown-timer.styles.js +1 -1
  47. package/cjs/countdown-timer/{countdown-timer.styles_k50tkw.css → countdown-timer.styles_ipn1b0.css} +1 -1
  48. package/cjs/dashed-border/dashed-border.js +1 -1
  49. package/cjs/dashed-border/dashed-border.js.map +1 -1
  50. package/cjs/data-table/data-table.js +1 -1
  51. package/cjs/data-table/data-table.js.map +1 -1
  52. package/cjs/data-table/data-table.styles.js +1 -1
  53. package/cjs/data-table/{data-table.styles_1nj2uzq.css → data-table.styles_1iqq1g7.css} +1 -1
  54. package/cjs/date-input/date-input.js +1 -1
  55. package/cjs/date-input/date-input.js.map +1 -1
  56. package/cjs/date-navigator/date-navigator.styles.js +1 -1
  57. package/cjs/date-navigator/date-navigator.styles.js.map +1 -1
  58. package/cjs/date-navigator/date-navigator.styles_wokh56.css +4 -0
  59. package/cjs/divider/divider.js.map +1 -1
  60. package/cjs/e-signature/e-signature-canvas.js +1 -1
  61. package/cjs/e-signature/e-signature-canvas.js.map +1 -1
  62. package/cjs/e-signature/e-signature.js +1 -1
  63. package/cjs/e-signature/e-signature.js.map +1 -1
  64. package/cjs/e-signature/e-signature.styles.js +1 -168
  65. package/cjs/e-signature/e-signature.styles.js.map +1 -1
  66. package/cjs/e-signature/e-signature.styles_lukd9f.css +17 -0
  67. package/cjs/error-display/error-display-data.js +1 -1
  68. package/cjs/error-display/error-display-data.js.map +1 -1
  69. package/cjs/external/lodash/get.js +1 -1
  70. package/cjs/external/lodash/get.js.map +1 -1
  71. package/cjs/file-download/file-download.js +1 -1
  72. package/cjs/file-download/file-download.js.map +1 -1
  73. package/cjs/file-download/file-download.styles.js +1 -32
  74. package/cjs/file-download/file-download.styles.js.map +1 -1
  75. package/cjs/file-download/file-download.styles_iggk8q.css +8 -0
  76. package/cjs/file-download/file-list-card/file-list-card.js +1 -1
  77. package/cjs/file-download/file-list-card/file-list-card.js.map +1 -1
  78. package/cjs/file-download/file-list-card/file-list-card.styles.js +1 -177
  79. package/cjs/file-download/file-list-card/file-list-card.styles.js.map +1 -1
  80. package/cjs/file-download/file-list-card/file-list-card.styles_oom8ii.css +16 -0
  81. package/cjs/file-upload/file-list/file-list.js +2 -0
  82. package/cjs/file-upload/file-list/file-list.js.map +1 -0
  83. package/cjs/file-upload/file-list/file-list.styles.js +2 -0
  84. package/cjs/file-upload/file-list/file-list.styles.js.map +1 -0
  85. package/cjs/file-upload/file-list/file-list.styles_1ea12kj.css +3 -0
  86. package/cjs/file-upload/file-list-item/file-list-item-thumbnail.styles.js +1 -1
  87. package/cjs/file-upload/file-list-item/{file-list-item-thumbnail.styles_1vrh1ve.css → file-list-item-thumbnail.styles_1y4si19.css} +1 -1
  88. package/cjs/file-upload/file-upload.js +1 -1
  89. package/cjs/file-upload/file-upload.js.map +1 -1
  90. package/cjs/filter/addons/filter-item-checkbox.styles.js +1 -1
  91. package/cjs/filter/addons/filter-item-checkbox.styles.js.map +1 -1
  92. package/cjs/filter/addons/{filter-item-checkbox.styles_18l87i2.css → filter-item-checkbox.styles_7degw7.css} +1 -1
  93. package/cjs/filter/filter-badge.js +2 -0
  94. package/cjs/filter/filter-badge.js.map +1 -0
  95. package/cjs/filter/filter-item-page.js +1 -1
  96. package/cjs/filter/filter-item-page.js.map +1 -1
  97. package/cjs/filter/filter-item.styles.js +1 -1
  98. package/cjs/filter/filter-item.styles.js.map +1 -1
  99. package/{filter/filter-item.styles_1e3v6qq.css → cjs/filter/filter-item.styles_cphjnj.css} +2 -2
  100. package/cjs/filter/filter-modal.js +1 -1
  101. package/cjs/filter/filter-modal.js.map +1 -1
  102. package/cjs/filter/filter-modal.styles.js +1 -1
  103. package/cjs/filter/filter-modal.styles.js.map +1 -1
  104. package/cjs/filter/filter-modal.styles_qw3xlg.css +10 -0
  105. package/cjs/filter/filter-sidebar.js +1 -1
  106. package/cjs/filter/filter-sidebar.js.map +1 -1
  107. package/cjs/filter/filter-sidebar.styles.js +1 -1
  108. package/cjs/filter/filter-sidebar.styles.js.map +1 -1
  109. package/cjs/filter/filter-sidebar.styles_1otwpjl.css +5 -0
  110. package/cjs/filter/filter.styles.js +1 -1
  111. package/cjs/filter/filter.styles.js.map +1 -1
  112. package/cjs/filter/{filter.styles_2fmaok.css → filter.styles_1ykijwm.css} +1 -1
  113. package/cjs/form/form-label.styles.js +1 -1
  114. package/cjs/form/form-label.styles.js.map +1 -1
  115. package/cjs/form/form-label.styles_11r0652.css +6 -0
  116. package/cjs/form/form-wrapper.js +1 -1
  117. package/cjs/form/form-wrapper.js.map +1 -1
  118. package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.js +1 -1
  119. package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.js.map +1 -1
  120. package/cjs/image-button/image-button.styles.js +1 -1
  121. package/cjs/image-button/{image-button.styles_qtt605.css → image-button.styles_6n1qsr.css} +1 -1
  122. package/cjs/index.js +1 -1
  123. package/cjs/input-group/input-group-list-addon.js +1 -1
  124. package/cjs/input-group/input-group-list-addon.js.map +1 -1
  125. package/cjs/input-group/input-group.styles.js +1 -1
  126. package/{input-group/input-group.styles_fpy81r.css → cjs/input-group/input-group.styles_bqye6f.css} +1 -1
  127. package/cjs/input-multi-select/input-multi-select.js +1 -1
  128. package/cjs/input-multi-select/input-multi-select.js.map +1 -1
  129. package/cjs/input-nested-multi-select/input-nested-multi-select.js +1 -1
  130. package/cjs/input-nested-multi-select/input-nested-multi-select.js.map +1 -1
  131. package/cjs/input-nested-select/input-nested-select.js +1 -1
  132. package/cjs/input-nested-select/input-nested-select.js.map +1 -1
  133. package/cjs/input-range-select/input-range-select.js +1 -1
  134. package/cjs/input-range-select/input-range-select.js.map +1 -1
  135. package/cjs/input-select/input-select.js +1 -1
  136. package/cjs/input-select/input-select.js.map +1 -1
  137. package/cjs/input-textarea/textarea-counter.styles.js +1 -1
  138. package/cjs/input-textarea/textarea-counter.styles.js.map +1 -1
  139. package/cjs/input-textarea/textarea-counter.styles_1n3wsnv.css +1 -0
  140. package/cjs/input-textarea/textarea.styles.js +1 -1
  141. package/cjs/input-textarea/textarea.styles_22z4n3.css +5 -0
  142. package/cjs/language-switcher/dropdown-panel.styles.js +1 -1
  143. package/cjs/language-switcher/dropdown-panel.styles.js.map +1 -1
  144. package/cjs/language-switcher/{dropdown-panel.styles_1z0n7qq.css → dropdown-panel.styles_1qsjf8d.css} +1 -1
  145. package/cjs/language-switcher/dropdown-variant.js +1 -1
  146. package/cjs/language-switcher/dropdown-variant.js.map +1 -1
  147. package/cjs/language-switcher/dropdown-variant.styles.js +1 -1
  148. package/cjs/language-switcher/dropdown-variant.styles_1vrdfky.css +2 -0
  149. package/cjs/language-switcher/link-container-variant.styles.js +1 -1
  150. package/cjs/language-switcher/{link-container-variant.styles_1blx9qm.css → link-container-variant.styles_1iw6zux.css} +1 -1
  151. package/cjs/layout/col-div.js +1 -1
  152. package/cjs/layout/col-div.js.map +1 -1
  153. package/cjs/link-list/link-list.styles.js +1 -1
  154. package/cjs/link-list/link-list.styles.js.map +1 -1
  155. package/{link-list/link-list.styles_1g33nb4.css → cjs/link-list/link-list.styles_m57vks.css} +2 -2
  156. package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.styles.js +1 -1
  157. package/{local-nav/local-nav-dropdown/local-nav-dropdown.styles_ftv36t.css → cjs/local-nav/local-nav-dropdown/local-nav-dropdown.styles_uhd4xl.css} +1 -1
  158. package/cjs/markup/markup.js +1 -1
  159. package/cjs/markup/markup.js.map +1 -1
  160. package/cjs/markup/markup.style.js +1 -1
  161. package/cjs/markup/markup.style.js.map +1 -1
  162. package/cjs/masked-input/masked-input.styles.js +1 -1
  163. package/cjs/masked-input/masked-input.styles.js.map +1 -1
  164. package/{masked-input/masked-input.styles_4i1qsy.css → cjs/masked-input/masked-input.styles_1cm388a.css} +2 -2
  165. package/cjs/masthead/masthead.js +1 -1
  166. package/cjs/masthead/masthead.js.map +1 -1
  167. package/cjs/modal/modal-box.styles.js +1 -1
  168. package/cjs/modal/modal-box.styles.js.map +1 -1
  169. package/cjs/modal/modal-box.styles_y52cts.css +11 -0
  170. package/cjs/modal/modal.js +1 -1
  171. package/cjs/modal/modal.js.map +1 -1
  172. package/cjs/modal/modal.styles.js +1 -1
  173. package/cjs/modal/modal.styles.js.map +1 -1
  174. package/cjs/modal/{modal.styles_1sav73f.css → modal.styles_1lbblx6.css} +1 -1
  175. package/cjs/modal-v2/modal-v2.js +1 -1
  176. package/cjs/modal-v2/modal-v2.js.map +1 -1
  177. package/cjs/modal-v2/modal-v2.styles.js +1 -1
  178. package/cjs/modal-v2/modal-v2.styles.js.map +1 -1
  179. package/cjs/modal-v2/modal-v2.styles_a8gv5i.css +3 -0
  180. package/cjs/modal-v2/slots/card.js +1 -1
  181. package/cjs/modal-v2/slots/card.js.map +1 -1
  182. package/cjs/navbar/navbar-items.styles.js +1 -1
  183. package/cjs/navbar/navbar-items.styles.js.map +1 -1
  184. package/cjs/navbar/{navbar-items.styles_i9cunu.css → navbar-items.styles_1i3ltot.css} +7 -7
  185. package/cjs/navbar/navbar.js +1 -1
  186. package/cjs/navbar/navbar.js.map +1 -1
  187. package/cjs/notification-banner/notification-banner.styles.js +1 -1
  188. package/cjs/notification-banner/notification-banner.styles.js.map +1 -1
  189. package/{notification-banner/notification-banner.styles_130loac.css → cjs/notification-banner/notification-banner.styles_uxlysy.css} +2 -2
  190. package/cjs/otp-verification/contact-input-section.js +1 -1
  191. package/cjs/otp-verification/contact-input-section.js.map +1 -1
  192. package/cjs/otp-verification/contact-input-section.styles.js +2 -0
  193. package/cjs/otp-verification/contact-input-section.styles.js.map +1 -0
  194. package/cjs/otp-verification/contact-input-section.styles_odrjvt.css +14 -0
  195. package/cjs/otp-verification/otp-verification.js +1 -1
  196. package/cjs/otp-verification/otp-verification.js.map +1 -1
  197. package/cjs/otp-verification/otp-verification.styles.js +2 -0
  198. package/cjs/otp-verification/otp-verification.styles.js.map +1 -0
  199. package/cjs/otp-verification/otp-verification.styles_dg9bm8.css +1 -0
  200. package/cjs/otp-verification/thumbnail/email-thumbnail.js +1 -21
  201. package/cjs/otp-verification/thumbnail/email-thumbnail.js.map +1 -1
  202. package/cjs/otp-verification/thumbnail/phone-thumbnail.js +1 -17
  203. package/cjs/otp-verification/thumbnail/phone-thumbnail.js.map +1 -1
  204. package/cjs/otp-verification/thumbnail/thumbnail.styles.js +2 -0
  205. package/cjs/otp-verification/thumbnail/thumbnail.styles.js.map +1 -0
  206. package/cjs/otp-verification/thumbnail/thumbnail.styles_shqylh.css +3 -0
  207. package/cjs/otp-verification/verification-section.js +1 -1
  208. package/cjs/otp-verification/verification-section.js.map +1 -1
  209. package/cjs/otp-verification/verification-section.styles.js +2 -0
  210. package/cjs/otp-verification/verification-section.styles.js.map +1 -0
  211. package/cjs/otp-verification/verification-section.styles_x8jj.css +5 -0
  212. package/cjs/pagination/pagination.styles.js +1 -1
  213. package/cjs/pagination/pagination.styles.js.map +1 -1
  214. package/{pagination/pagination.styles_1u898rb.css → cjs/pagination/pagination.styles_6bcgva.css} +3 -3
  215. package/cjs/pill/pill.styles.js +1 -1
  216. package/{pill/pill.styles_1wiyl8.css → cjs/pill/pill.styles_xwrniu.css} +1 -1
  217. package/cjs/predictive-text-input/predictive-text-input.js +1 -1
  218. package/cjs/predictive-text-input/predictive-text-input.js.map +1 -1
  219. package/cjs/schedule/const.js +1 -1
  220. package/cjs/schedule/const.js.map +1 -1
  221. package/cjs/schedule/schedule-day-view/schedule-day-view.js +1 -1
  222. package/cjs/schedule/schedule-day-view/schedule-day-view.js.map +1 -1
  223. package/cjs/schedule/schedule-day-view/schedule-day-view.styles.js +1 -152
  224. package/cjs/schedule/schedule-day-view/schedule-day-view.styles.js.map +1 -1
  225. package/cjs/schedule/schedule-day-view/schedule-day-view.styles_8ti149.css +30 -0
  226. package/cjs/schedule/schedule-header/schedule-header.js +1 -1
  227. package/cjs/schedule/schedule-header/schedule-header.js.map +1 -1
  228. package/cjs/schedule/schedule-header/schedule-header.styles.js +2 -0
  229. package/cjs/schedule/schedule-header/schedule-header.styles.js.map +1 -0
  230. package/cjs/schedule/schedule-header/schedule-header.styles_1n2u5vj.css +6 -0
  231. package/cjs/schedule/schedule-slot-content/schedule-slot-content.js +2 -0
  232. package/cjs/schedule/schedule-slot-content/schedule-slot-content.js.map +1 -0
  233. package/cjs/schedule/schedule-slot-content/style-helper.js +2 -0
  234. package/cjs/schedule/schedule-slot-content/style-helper.js.map +1 -0
  235. package/cjs/schedule/schedule-week-view/schedule-week-view.js +1 -1
  236. package/cjs/schedule/schedule-week-view/schedule-week-view.js.map +1 -1
  237. package/cjs/schedule/schedule-week-view/schedule-week-view.styles.js +1 -74
  238. package/cjs/schedule/schedule-week-view/schedule-week-view.styles.js.map +1 -1
  239. package/cjs/schedule/schedule-week-view/schedule-week-view.styles_x7x50m.css +10 -0
  240. package/cjs/schedule/schedule-week-view/time-cell.js +1 -1
  241. package/cjs/schedule/schedule-week-view/time-cell.js.map +1 -1
  242. package/cjs/schedule/schedule-week-view/time-cell.styles.js +1 -34
  243. package/cjs/schedule/schedule-week-view/time-cell.styles.js.map +1 -1
  244. package/cjs/schedule/schedule-week-view/time-cell.styles_1sorjz8.css +14 -0
  245. package/cjs/schedule/schedule-week-view/week-view-utils.js +1 -1
  246. package/cjs/schedule/schedule-week-view/week-view-utils.js.map +1 -1
  247. package/cjs/schedule/schedule.js +1 -1
  248. package/cjs/schedule/schedule.js.map +1 -1
  249. package/cjs/schedule/schedule.styles.js +1 -26
  250. package/cjs/schedule/schedule.styles.js.map +1 -1
  251. package/cjs/schedule/schedule.styles_fdy5a1.css +5 -0
  252. package/cjs/schedule/shared/with-optional-popover.js +1 -5
  253. package/cjs/schedule/shared/with-optional-popover.js.map +1 -1
  254. package/cjs/schedule/shared/with-optional-popover.styles.js +2 -0
  255. package/cjs/schedule/shared/with-optional-popover.styles.js.map +1 -0
  256. package/cjs/schedule/shared/with-optional-popover.styles_7mv3p2.css +1 -0
  257. package/cjs/schedule/time-indicator/time-indicator.js +1 -1
  258. package/cjs/schedule/time-indicator/time-indicator.js.map +1 -1
  259. package/cjs/schedule/time-indicator/time-indicator.styles.js +1 -33
  260. package/cjs/schedule/time-indicator/time-indicator.styles.js.map +1 -1
  261. package/cjs/schedule/time-indicator/time-indicator.styles_1eaxyes.css +6 -0
  262. package/cjs/select-histogram/select-histogram.js +1 -1
  263. package/cjs/select-histogram/select-histogram.js.map +1 -1
  264. package/cjs/select-histogram/select-histogram.styles.js +1 -1
  265. package/cjs/select-histogram/select-histogram.styles.js.map +1 -1
  266. package/cjs/select-histogram/{select-histogram.styles_11916eo.css → select-histogram.styles_n260dy.css} +1 -1
  267. package/cjs/shared/dropdown-list/dropdown-label.js +1 -1
  268. package/cjs/shared/dropdown-list/dropdown-label.js.map +1 -1
  269. package/cjs/shared/dropdown-list/dropdown-label.styles.js +1 -1
  270. package/cjs/shared/dropdown-list/dropdown-label.styles.js.map +1 -1
  271. package/{shared/dropdown-list/dropdown-label.styles_1dwmd8f.css → cjs/shared/dropdown-list/dropdown-label.styles_mloii0.css} +4 -4
  272. package/cjs/shared/dropdown-list/dropdown-list.styles.js +1 -1
  273. package/cjs/shared/dropdown-list/dropdown-list.styles.js.map +1 -1
  274. package/{shared/dropdown-list/dropdown-list.styles_1kt4zhf.css → cjs/shared/dropdown-list/dropdown-list.styles_konwm.css} +4 -4
  275. package/cjs/shared/dropdown-list/dropdown-search.styles.js +1 -1
  276. package/cjs/shared/dropdown-list/dropdown-search.styles.js.map +1 -1
  277. package/{shared/dropdown-list/dropdown-search.styles_4r9oma.css → cjs/shared/dropdown-list/dropdown-search.styles_1hc1gkh.css} +2 -2
  278. package/cjs/shared/dropdown-list/expandable-element.js +1 -1
  279. package/cjs/shared/dropdown-list/expandable-element.js.map +1 -1
  280. package/cjs/shared/dropdown-list/expandable-element.styles.js +1 -1
  281. package/cjs/shared/dropdown-list/expandable-element.styles.js.map +1 -1
  282. package/cjs/shared/dropdown-list/expandable-element.styles_rkkvqr.css +5 -0
  283. package/cjs/shared/dropdown-wrapper/dropdown-wrapper.styles.js +1 -1
  284. package/cjs/shared/dropdown-wrapper/dropdown-wrapper.styles.js.map +1 -1
  285. package/cjs/shared/dropdown-wrapper/dropdown-wrapper.styles_15hwwoj.css +3 -0
  286. package/cjs/shared/hooks/useViewport.js +1 -1
  287. package/cjs/shared/hooks/useViewport.js.map +1 -1
  288. package/cjs/shared/input-wrapper/input-wrapper.styles.js +1 -1
  289. package/cjs/shared/input-wrapper/{input-wrapper.styles_19fpzb.css → input-wrapper.styles_je6maw.css} +2 -2
  290. package/cjs/shared/internal-calendar/calendar-manager.styles.js +1 -1
  291. package/cjs/shared/internal-calendar/{calendar-manager.styles_1q13ylk.css → calendar-manager.styles_1iuq5zw.css} +1 -1
  292. package/cjs/shared/internal-calendar/day-cell/day-cell.styles.js +1 -1
  293. package/cjs/shared/internal-calendar/day-cell/day-cell.styles.js.map +1 -1
  294. package/{shared/internal-calendar/day-cell/day-cell.styles_vazxvn.css → cjs/shared/internal-calendar/day-cell/day-cell.styles_1t5oqc1.css} +1 -1
  295. package/cjs/shared/internal-calendar/internal-calendar-month.styles.js +1 -1
  296. package/{shared/internal-calendar/internal-calendar-month.styles_1pk3ynj.css → cjs/shared/internal-calendar/internal-calendar-month.styles_14oh57f.css} +1 -1
  297. package/cjs/shared/internal-calendar/internal-calendar-year.styles.js +1 -1
  298. package/cjs/shared/internal-calendar/internal-calendar-year.styles.js.map +1 -1
  299. package/cjs/shared/internal-calendar/{internal-calendar-year.styles_1azy42u.css → internal-calendar-year.styles_therlc.css} +1 -1
  300. package/cjs/shared/internal-calendar/single/single-cell.js +1 -1
  301. package/cjs/shared/internal-calendar/single/single-cell.js.map +1 -1
  302. package/cjs/shared/internal-calendar/standard/standard-calendar-day-view.styles.js +1 -1
  303. package/{shared/internal-calendar/standard/standard-calendar-day-view.styles_1dbvup3.css → cjs/shared/internal-calendar/standard/standard-calendar-day-view.styles_1bw26au.css} +1 -1
  304. package/cjs/shared/standalone-date-input/standalone-date-input.js +1 -1
  305. package/cjs/shared/standalone-date-input/standalone-date-input.js.map +1 -1
  306. package/cjs/shared/standalone-date-input/standalone-date-input.styles.js +1 -1
  307. package/cjs/shared/standalone-date-input/standalone-date-input.styles.js.map +1 -1
  308. package/cjs/shared/standalone-date-input/standalone-date-input.styles_157qo89.css +15 -0
  309. package/cjs/shared/time-slot/time-slot.js +1 -1
  310. package/cjs/shared/time-slot/time-slot.js.map +1 -1
  311. package/cjs/shared/time-slot/time-slot.styles.js +1 -1
  312. package/cjs/shared/time-slot/time-slot.styles.js.map +1 -1
  313. package/cjs/shared/time-slot/time-slot.styles_18s0to7.css +29 -0
  314. package/cjs/sidenav/sidenav-drawer-item.styles.js +1 -1
  315. package/cjs/sidenav/sidenav-drawer-item.styles.js.map +1 -1
  316. package/cjs/sidenav/{sidenav-drawer-item.styles_yp8cga.css → sidenav-drawer-item.styles_1ljnyx2.css} +1 -1
  317. package/cjs/sidenav/sidenav-drawer-subitem.styles.js +1 -1
  318. package/cjs/sidenav/sidenav-drawer-subitem.styles.js.map +1 -1
  319. package/cjs/sidenav/sidenav-drawer-subitem.styles_2y58kf.css +1 -0
  320. package/cjs/sidenav/sidenav-item.styles.js +1 -1
  321. package/cjs/sidenav/sidenav-item.styles.js.map +1 -1
  322. package/cjs/sidenav/{sidenav-item.styles_1eew8px.css → sidenav-item.styles_lqw3kh.css} +2 -2
  323. package/cjs/smart-app-banner/smart-app-banner.styles.js +1 -1
  324. package/cjs/smart-app-banner/smart-app-banner.styles.js.map +1 -1
  325. package/cjs/smart-app-banner/{smart-app-banner.styles_m5dtgh.css → smart-app-banner.styles_15u6yv4.css} +2 -2
  326. package/cjs/tab/tab-link-chain.styles.js +1 -1
  327. package/cjs/tab/tab-link-chain.styles.js.map +1 -1
  328. package/cjs/tab/{tab-link-chain.styles_1nreqrp.css → tab-link-chain.styles_49got4.css} +2 -2
  329. package/cjs/tag/tag.style.js +1 -1
  330. package/cjs/tag/{tag.style_10tn8i.css → tag.style_d98c53.css} +2 -2
  331. package/cjs/text-list/text-list.styles.js +1 -1
  332. package/cjs/text-list/text-list.styles.js.map +1 -1
  333. package/cjs/text-list/text-list.styles_w3fvyt.css +16 -0
  334. package/cjs/theme/index.js +1 -1
  335. package/cjs/theme/theme-provider/hooks.js +1 -1
  336. package/cjs/theme/theme-provider/hooks.js.map +1 -1
  337. package/cjs/theme/tokens/colour.js +1 -1
  338. package/cjs/theme/tokens/colour.js.map +1 -1
  339. package/cjs/theme/tokens/font.js +1 -1
  340. package/cjs/theme/tokens/font.js.map +1 -1
  341. package/cjs/theme/types.js +1 -1
  342. package/cjs/theme/types.js.map +1 -1
  343. package/cjs/theme/utils/css-variable.js +1 -1
  344. package/cjs/theme/utils/css-variable.js.map +1 -1
  345. package/cjs/theme/utils/font.js +1 -1
  346. package/cjs/theme/utils/font.js.map +1 -1
  347. package/cjs/theme/utils/token-resolver.js +1 -1
  348. package/cjs/theme/utils/token-resolver.js.map +1 -1
  349. package/cjs/theme/utils/use-design-token.js +1 -1
  350. package/cjs/theme/utils/use-design-token.js.map +1 -1
  351. package/cjs/theme/utils/use-media-query.js +1 -1
  352. package/cjs/theme/utils/use-media-query.js.map +1 -1
  353. package/cjs/time-range-picker/combobox-picker/combobox-picker.js +1 -1
  354. package/cjs/time-range-picker/combobox-picker/combobox-picker.js.map +1 -1
  355. package/cjs/time-slot-bar-week/consts.js +2 -0
  356. package/cjs/time-slot-bar-week/consts.js.map +1 -0
  357. package/cjs/time-slot-bar-week/time-slot-bar-week-days.js +1 -1
  358. package/cjs/time-slot-bar-week/time-slot-bar-week-days.js.map +1 -1
  359. package/cjs/time-slot-bar-week/time-slot-bar-week-days.styles.js +2 -0
  360. package/cjs/time-slot-bar-week/time-slot-bar-week-days.styles.js.map +1 -0
  361. package/cjs/time-slot-bar-week/time-slot-bar-week-days.styles_evdvs9.css +17 -0
  362. package/cjs/time-slot-bar-week/time-slot-bar-week.js +1 -1
  363. package/cjs/time-slot-bar-week/time-slot-bar-week.js.map +1 -1
  364. package/cjs/time-slot-bar-week/time-slot-bar-week.styles.js +2 -0
  365. package/cjs/time-slot-bar-week/time-slot-bar-week.styles.js.map +1 -0
  366. package/cjs/time-slot-bar-week/time-slot-bar-week.styles_11ybf42.css +1 -0
  367. package/cjs/time-slot-bar-week/time-slot-cell.js +2 -0
  368. package/cjs/time-slot-bar-week/time-slot-cell.js.map +1 -0
  369. package/cjs/time-slot-week-view/time-slot-week-days.js +1 -1
  370. package/cjs/time-slot-week-view/time-slot-week-days.js.map +1 -1
  371. package/cjs/time-slot-week-view/time-slot-week-days.styles.js +2 -0
  372. package/cjs/time-slot-week-view/time-slot-week-days.styles.js.map +1 -0
  373. package/cjs/time-slot-week-view/time-slot-week-days.styles_1h21vyw.css +9 -0
  374. package/cjs/time-slot-week-view/time-slot-week-view.js +1 -1
  375. package/cjs/time-slot-week-view/time-slot-week-view.js.map +1 -1
  376. package/cjs/time-slot-week-view/time-slot-week-view.styles.js +1 -9
  377. package/cjs/time-slot-week-view/time-slot-week-view.styles.js.map +1 -1
  378. package/cjs/time-slot-week-view/time-slot-week-view.styles_gqgsw2.css +1 -0
  379. package/cjs/timeline/timeline.styles.js +1 -1
  380. package/{timeline/timeline.styles_1wcnzot.css → cjs/timeline/timeline.styles_1jxzik4.css} +1 -1
  381. package/cjs/timepicker/timepicker.js +1 -1
  382. package/cjs/timepicker/timepicker.js.map +1 -1
  383. package/cjs/timepicker/timepicker.styles.js +1 -1
  384. package/cjs/timepicker/timepicker.styles.js.map +1 -1
  385. package/cjs/timepicker/timepicker.styles_1jm33yw.css +1 -0
  386. package/cjs/toast/toast.styles.js +1 -1
  387. package/cjs/toast/toast.styles.js.map +1 -1
  388. package/cjs/toast/{toast.styles_ngrlup.css → toast.styles_1e0l60w.css} +1 -1
  389. package/cjs/toggle/toggle.styles.js +1 -1
  390. package/cjs/toggle/toggle.styles.js.map +1 -1
  391. package/{toggle/toggle.styles_1yzqsu.css → cjs/toggle/toggle.styles_1t5qrye.css} +5 -5
  392. package/cjs/typography/typography.js +1 -1
  393. package/cjs/typography/typography.js.map +1 -1
  394. package/cjs/typography/typography.styles.js +1 -1
  395. package/cjs/typography/typography.styles.js.map +1 -1
  396. package/cjs/typography/typography.styles_1155j4c.css +11 -0
  397. package/cjs/uneditable-section/section-item.styles.js +1 -1
  398. package/cjs/uneditable-section/section-item.styles.js.map +1 -1
  399. package/cjs/uneditable-section/{section-item.styles_1dfjzc4.css → section-item.styles_mwx8ht.css} +2 -2
  400. package/cjs/util/is-styled-components.js +2 -0
  401. package/cjs/util/is-styled-components.js.map +1 -0
  402. package/cjs/util/styling-helper.js +1 -1
  403. package/cjs/util/styling-helper.js.map +1 -1
  404. package/codemod-utils.d.ts +1 -0
  405. package/codemods/codemod-utils.ts +17 -0
  406. package/codemods/index.ts +231 -75
  407. package/codemods/migrate-popover/index.ts +267 -0
  408. package/codemods/run-codemod.js +6 -53
  409. package/codemods/run-codemod.js.map +1 -1
  410. package/codemods/run-codemod.ts +7 -54
  411. package/countdown-timer/countdown-timer.styles.js +1 -1
  412. package/countdown-timer/{countdown-timer.styles_k50tkw.css → countdown-timer.styles_ipn1b0.css} +1 -1
  413. package/dashed-border/dashed-border.js +1 -1
  414. package/dashed-border/dashed-border.js.map +1 -1
  415. package/data-table/data-table.js +1 -1
  416. package/data-table/data-table.js.map +1 -1
  417. package/data-table/data-table.styles.js +1 -1
  418. package/data-table/{data-table.styles_1nj2uzq.css → data-table.styles_1iqq1g7.css} +1 -1
  419. package/date-input/date-input.js +1 -1
  420. package/date-input/date-input.js.map +1 -1
  421. package/date-navigator/date-navigator.styles.js +1 -1
  422. package/date-navigator/date-navigator.styles.js.map +1 -1
  423. package/date-navigator/date-navigator.styles_wokh56.css +4 -0
  424. package/divider/divider.js.map +1 -1
  425. package/e-signature/e-signature-canvas.js +1 -1
  426. package/e-signature/e-signature-canvas.js.map +1 -1
  427. package/e-signature/e-signature.js +1 -1
  428. package/e-signature/e-signature.js.map +1 -1
  429. package/e-signature/e-signature.styles.d.ts +17 -45
  430. package/e-signature/e-signature.styles.js +1 -168
  431. package/e-signature/e-signature.styles.js.map +1 -1
  432. package/e-signature/e-signature.styles_lukd9f.css +17 -0
  433. package/error-display/error-display-data.js +1 -1
  434. package/error-display/error-display-data.js.map +1 -1
  435. package/external/lodash/get.js +1 -1
  436. package/external/lodash/get.js.map +1 -1
  437. package/file-download/file-download.js +1 -1
  438. package/file-download/file-download.js.map +1 -1
  439. package/file-download/file-download.styles.d.ts +8 -11
  440. package/file-download/file-download.styles.js +1 -32
  441. package/file-download/file-download.styles.js.map +1 -1
  442. package/file-download/file-download.styles_iggk8q.css +8 -0
  443. package/file-download/file-list-card/file-list-card.js +1 -1
  444. package/file-download/file-list-card/file-list-card.js.map +1 -1
  445. package/file-download/file-list-card/file-list-card.styles.d.ts +16 -64
  446. package/file-download/file-list-card/file-list-card.styles.js +1 -177
  447. package/file-download/file-list-card/file-list-card.styles.js.map +1 -1
  448. package/file-download/file-list-card/file-list-card.styles_oom8ii.css +16 -0
  449. package/file-upload/{file-list.d.ts → file-list/file-list.d.ts} +1 -1
  450. package/file-upload/file-list/file-list.js +2 -0
  451. package/file-upload/file-list/file-list.js.map +1 -0
  452. package/file-upload/file-list/file-list.styles.js +2 -0
  453. package/file-upload/file-list/file-list.styles.js.map +1 -0
  454. package/file-upload/file-list/file-list.styles_1ea12kj.css +3 -0
  455. package/file-upload/file-list/index.d.ts +1 -0
  456. package/file-upload/file-list-item/file-list-item-thumbnail.styles.js +1 -1
  457. package/file-upload/file-list-item/{file-list-item-thumbnail.styles_1vrh1ve.css → file-list-item-thumbnail.styles_1y4si19.css} +1 -1
  458. package/file-upload/file-upload.js +1 -1
  459. package/file-upload/file-upload.js.map +1 -1
  460. package/filter/addons/filter-item-checkbox.styles.js +1 -1
  461. package/filter/addons/filter-item-checkbox.styles.js.map +1 -1
  462. package/filter/addons/{filter-item-checkbox.styles_18l87i2.css → filter-item-checkbox.styles_7degw7.css} +1 -1
  463. package/filter/filter-badge.d.ts +5 -0
  464. package/filter/filter-badge.js +2 -0
  465. package/filter/filter-badge.js.map +1 -0
  466. package/filter/filter-item-page.d.ts +1 -1
  467. package/filter/filter-item-page.js +1 -1
  468. package/filter/filter-item-page.js.map +1 -1
  469. package/filter/filter-item.styles.js +1 -1
  470. package/filter/filter-item.styles.js.map +1 -1
  471. package/{cjs/filter/filter-item.styles_1e3v6qq.css → filter/filter-item.styles_cphjnj.css} +2 -2
  472. package/filter/filter-modal.d.ts +1 -1
  473. package/filter/filter-modal.js +1 -1
  474. package/filter/filter-modal.js.map +1 -1
  475. package/filter/filter-modal.styles.d.ts +2 -0
  476. package/filter/filter-modal.styles.js +1 -1
  477. package/filter/filter-modal.styles.js.map +1 -1
  478. package/filter/filter-modal.styles_qw3xlg.css +10 -0
  479. package/filter/filter-sidebar.d.ts +1 -1
  480. package/filter/filter-sidebar.js +1 -1
  481. package/filter/filter-sidebar.js.map +1 -1
  482. package/filter/filter-sidebar.styles.d.ts +1 -0
  483. package/filter/filter-sidebar.styles.js +1 -1
  484. package/filter/filter-sidebar.styles.js.map +1 -1
  485. package/filter/filter-sidebar.styles_1otwpjl.css +5 -0
  486. package/filter/filter.d.ts +3 -3
  487. package/filter/filter.styles.js +1 -1
  488. package/filter/filter.styles.js.map +1 -1
  489. package/filter/{filter.styles_2fmaok.css → filter.styles_1ykijwm.css} +1 -1
  490. package/filter/types.d.ts +2 -0
  491. package/form/form-label.styles.js +1 -1
  492. package/form/form-label.styles.js.map +1 -1
  493. package/form/form-label.styles_11r0652.css +6 -0
  494. package/form/form-wrapper.js +1 -1
  495. package/form/form-wrapper.js.map +1 -1
  496. package/fullscreen-image-carousel/fullscreen-image-carousel.js +1 -1
  497. package/fullscreen-image-carousel/fullscreen-image-carousel.js.map +1 -1
  498. package/image-button/image-button.styles.js +1 -1
  499. package/image-button/{image-button.styles_qtt605.css → image-button.styles_6n1qsr.css} +1 -1
  500. package/index.d.ts +0 -1
  501. package/index.js +1 -1
  502. package/input-group/input-group-list-addon.js +1 -1
  503. package/input-group/input-group-list-addon.js.map +1 -1
  504. package/input-group/input-group.styles.js +1 -1
  505. package/{cjs/input-group/input-group.styles_fpy81r.css → input-group/input-group.styles_bqye6f.css} +1 -1
  506. package/input-multi-select/input-multi-select.js +1 -1
  507. package/input-multi-select/input-multi-select.js.map +1 -1
  508. package/input-nested-multi-select/input-nested-multi-select.js +1 -1
  509. package/input-nested-multi-select/input-nested-multi-select.js.map +1 -1
  510. package/input-nested-select/input-nested-select.js +1 -1
  511. package/input-nested-select/input-nested-select.js.map +1 -1
  512. package/input-range-select/input-range-select.js +1 -1
  513. package/input-range-select/input-range-select.js.map +1 -1
  514. package/input-select/input-select.js +1 -1
  515. package/input-select/input-select.js.map +1 -1
  516. package/input-textarea/textarea-counter.styles.js +1 -1
  517. package/input-textarea/textarea-counter.styles.js.map +1 -1
  518. package/input-textarea/textarea-counter.styles_1n3wsnv.css +1 -0
  519. package/input-textarea/textarea.styles.js +1 -1
  520. package/input-textarea/textarea.styles_22z4n3.css +5 -0
  521. package/language-switcher/dropdown-panel.styles.js +1 -1
  522. package/language-switcher/dropdown-panel.styles.js.map +1 -1
  523. package/language-switcher/{dropdown-panel.styles_1z0n7qq.css → dropdown-panel.styles_1qsjf8d.css} +1 -1
  524. package/language-switcher/dropdown-variant.js +1 -1
  525. package/language-switcher/dropdown-variant.js.map +1 -1
  526. package/language-switcher/dropdown-variant.styles.js +1 -1
  527. package/language-switcher/dropdown-variant.styles_1vrdfky.css +2 -0
  528. package/language-switcher/link-container-variant.styles.js +1 -1
  529. package/language-switcher/{link-container-variant.styles_1blx9qm.css → link-container-variant.styles_1iw6zux.css} +1 -1
  530. package/layout/col-div.js +1 -1
  531. package/layout/col-div.js.map +1 -1
  532. package/layout/types.d.ts +8 -11
  533. package/link-list/link-list.styles.js +1 -1
  534. package/link-list/link-list.styles.js.map +1 -1
  535. package/{cjs/link-list/link-list.styles_1g33nb4.css → link-list/link-list.styles_m57vks.css} +2 -2
  536. package/local-nav/local-nav-dropdown/local-nav-dropdown.styles.js +1 -1
  537. package/{cjs/local-nav/local-nav-dropdown/local-nav-dropdown.styles_ftv36t.css → local-nav/local-nav-dropdown/local-nav-dropdown.styles_uhd4xl.css} +1 -1
  538. package/markup/markup.js +1 -1
  539. package/markup/markup.js.map +1 -1
  540. package/markup/markup.style.js +1 -1
  541. package/markup/markup.style.js.map +1 -1
  542. package/markup/types.d.ts +2 -1
  543. package/masked-input/masked-input.styles.js +1 -1
  544. package/masked-input/masked-input.styles.js.map +1 -1
  545. package/{cjs/masked-input/masked-input.styles_4i1qsy.css → masked-input/masked-input.styles_1cm388a.css} +2 -2
  546. package/masthead/masthead.js +1 -1
  547. package/masthead/masthead.js.map +1 -1
  548. package/modal/modal-box.styles.js +1 -1
  549. package/modal/modal-box.styles.js.map +1 -1
  550. package/modal/modal-box.styles_y52cts.css +11 -0
  551. package/modal/modal.js +1 -1
  552. package/modal/modal.js.map +1 -1
  553. package/modal/modal.styles.d.ts +4 -1
  554. package/modal/modal.styles.js +1 -1
  555. package/modal/modal.styles.js.map +1 -1
  556. package/modal/{modal.styles_1sav73f.css → modal.styles_1lbblx6.css} +1 -1
  557. package/modal-v2/modal-v2.js +1 -1
  558. package/modal-v2/modal-v2.js.map +1 -1
  559. package/modal-v2/modal-v2.styles.d.ts +0 -1
  560. package/modal-v2/modal-v2.styles.js +1 -1
  561. package/modal-v2/modal-v2.styles.js.map +1 -1
  562. package/modal-v2/modal-v2.styles_a8gv5i.css +3 -0
  563. package/modal-v2/slots/card.js +1 -1
  564. package/modal-v2/slots/card.js.map +1 -1
  565. package/navbar/navbar-items.styles.js +1 -1
  566. package/navbar/navbar-items.styles.js.map +1 -1
  567. package/navbar/{navbar-items.styles_i9cunu.css → navbar-items.styles_1i3ltot.css} +7 -7
  568. package/navbar/navbar.js +1 -1
  569. package/navbar/navbar.js.map +1 -1
  570. package/notification-banner/notification-banner.styles.js +1 -1
  571. package/notification-banner/notification-banner.styles.js.map +1 -1
  572. package/{cjs/notification-banner/notification-banner.styles_130loac.css → notification-banner/notification-banner.styles_uxlysy.css} +2 -2
  573. package/otp-verification/contact-input-section.js +1 -1
  574. package/otp-verification/contact-input-section.js.map +1 -1
  575. package/otp-verification/contact-input-section.styles.d.ts +14 -0
  576. package/otp-verification/contact-input-section.styles.js +2 -0
  577. package/otp-verification/contact-input-section.styles.js.map +1 -0
  578. package/otp-verification/contact-input-section.styles_odrjvt.css +14 -0
  579. package/otp-verification/otp-verification.js +1 -1
  580. package/otp-verification/otp-verification.js.map +1 -1
  581. package/otp-verification/otp-verification.styles.d.ts +1 -0
  582. package/otp-verification/otp-verification.styles.js +2 -0
  583. package/otp-verification/otp-verification.styles.js.map +1 -0
  584. package/otp-verification/otp-verification.styles_dg9bm8.css +1 -0
  585. package/otp-verification/thumbnail/email-thumbnail.d.ts +1 -3
  586. package/otp-verification/thumbnail/email-thumbnail.js +1 -21
  587. package/otp-verification/thumbnail/email-thumbnail.js.map +1 -1
  588. package/otp-verification/thumbnail/phone-thumbnail.d.ts +1 -3
  589. package/otp-verification/thumbnail/phone-thumbnail.js +1 -17
  590. package/otp-verification/thumbnail/phone-thumbnail.js.map +1 -1
  591. package/otp-verification/thumbnail/thumbnail.styles.d.ts +3 -0
  592. package/otp-verification/thumbnail/thumbnail.styles.js +2 -0
  593. package/otp-verification/thumbnail/thumbnail.styles.js.map +1 -0
  594. package/otp-verification/thumbnail/thumbnail.styles_shqylh.css +3 -0
  595. package/otp-verification/verification-section.js +1 -1
  596. package/otp-verification/verification-section.js.map +1 -1
  597. package/otp-verification/verification-section.styles.d.ts +5 -0
  598. package/otp-verification/verification-section.styles.js +2 -0
  599. package/otp-verification/verification-section.styles.js.map +1 -0
  600. package/otp-verification/verification-section.styles_x8jj.css +5 -0
  601. package/package.json +14 -9
  602. package/pagination/pagination.styles.js +1 -1
  603. package/pagination/pagination.styles.js.map +1 -1
  604. package/{cjs/pagination/pagination.styles_1u898rb.css → pagination/pagination.styles_6bcgva.css} +3 -3
  605. package/pill/pill.styles.js +1 -1
  606. package/{cjs/pill/pill.styles_1wiyl8.css → pill/pill.styles_xwrniu.css} +1 -1
  607. package/predictive-text-input/predictive-text-input.js +1 -1
  608. package/predictive-text-input/predictive-text-input.js.map +1 -1
  609. package/schedule/const.js +1 -1
  610. package/schedule/const.js.map +1 -1
  611. package/schedule/schedule-day-view/schedule-day-view.js +1 -1
  612. package/schedule/schedule-day-view/schedule-day-view.js.map +1 -1
  613. package/schedule/schedule-day-view/schedule-day-view.styles.d.ts +39 -99
  614. package/schedule/schedule-day-view/schedule-day-view.styles.js +1 -152
  615. package/schedule/schedule-day-view/schedule-day-view.styles.js.map +1 -1
  616. package/schedule/schedule-day-view/schedule-day-view.styles_8ti149.css +30 -0
  617. package/schedule/schedule-day-view/types.d.ts +2 -10
  618. package/schedule/schedule-header/schedule-header.js +1 -1
  619. package/schedule/schedule-header/schedule-header.js.map +1 -1
  620. package/schedule/schedule-header/schedule-header.styles.d.ts +7 -0
  621. package/schedule/schedule-header/schedule-header.styles.js +2 -0
  622. package/schedule/schedule-header/schedule-header.styles.js.map +1 -0
  623. package/schedule/schedule-header/schedule-header.styles_1n2u5vj.css +6 -0
  624. package/schedule/schedule-slot-content/index.d.ts +4 -0
  625. package/schedule/schedule-slot-content/schedule-slot-content.d.ts +21 -0
  626. package/schedule/schedule-slot-content/schedule-slot-content.js +2 -0
  627. package/schedule/schedule-slot-content/schedule-slot-content.js.map +1 -0
  628. package/schedule/schedule-slot-content/style-helper.d.ts +8 -0
  629. package/schedule/schedule-slot-content/style-helper.js +2 -0
  630. package/schedule/schedule-slot-content/style-helper.js.map +1 -0
  631. package/schedule/schedule-week-view/schedule-week-view.js +1 -1
  632. package/schedule/schedule-week-view/schedule-week-view.js.map +1 -1
  633. package/schedule/schedule-week-view/schedule-week-view.styles.d.ts +15 -32
  634. package/schedule/schedule-week-view/schedule-week-view.styles.js +1 -74
  635. package/schedule/schedule-week-view/schedule-week-view.styles.js.map +1 -1
  636. package/schedule/schedule-week-view/schedule-week-view.styles_x7x50m.css +10 -0
  637. package/schedule/schedule-week-view/time-cell.js +1 -1
  638. package/schedule/schedule-week-view/time-cell.js.map +1 -1
  639. package/schedule/schedule-week-view/time-cell.styles.d.ts +23 -14
  640. package/schedule/schedule-week-view/time-cell.styles.js +1 -34
  641. package/schedule/schedule-week-view/time-cell.styles.js.map +1 -1
  642. package/schedule/schedule-week-view/time-cell.styles_1sorjz8.css +14 -0
  643. package/schedule/schedule-week-view/types.d.ts +2 -15
  644. package/schedule/schedule-week-view/week-view-utils.js +1 -1
  645. package/schedule/schedule-week-view/week-view-utils.js.map +1 -1
  646. package/schedule/schedule.js +1 -1
  647. package/schedule/schedule.js.map +1 -1
  648. package/schedule/schedule.styles.d.ts +5 -8
  649. package/schedule/schedule.styles.js +1 -26
  650. package/schedule/schedule.styles.js.map +1 -1
  651. package/schedule/schedule.styles_fdy5a1.css +5 -0
  652. package/schedule/shared/with-optional-popover.d.ts +1 -1
  653. package/schedule/shared/with-optional-popover.js +1 -5
  654. package/schedule/shared/with-optional-popover.js.map +1 -1
  655. package/schedule/shared/with-optional-popover.styles.d.ts +1 -0
  656. package/schedule/shared/with-optional-popover.styles.js +2 -0
  657. package/schedule/shared/with-optional-popover.styles.js.map +1 -0
  658. package/schedule/shared/with-optional-popover.styles_7mv3p2.css +1 -0
  659. package/schedule/time-indicator/time-indicator.js +1 -1
  660. package/schedule/time-indicator/time-indicator.js.map +1 -1
  661. package/schedule/time-indicator/time-indicator.styles.d.ts +11 -28
  662. package/schedule/time-indicator/time-indicator.styles.js +1 -33
  663. package/schedule/time-indicator/time-indicator.styles.js.map +1 -1
  664. package/schedule/time-indicator/time-indicator.styles_1eaxyes.css +6 -0
  665. package/schedule/types.d.ts +10 -0
  666. package/select-histogram/select-histogram.js +1 -1
  667. package/select-histogram/select-histogram.js.map +1 -1
  668. package/select-histogram/select-histogram.styles.js +1 -1
  669. package/select-histogram/select-histogram.styles.js.map +1 -1
  670. package/select-histogram/{select-histogram.styles_11916eo.css → select-histogram.styles_n260dy.css} +1 -1
  671. package/shared/dropdown-list/dropdown-label.js +1 -1
  672. package/shared/dropdown-list/dropdown-label.js.map +1 -1
  673. package/shared/dropdown-list/dropdown-label.styles.js +1 -1
  674. package/shared/dropdown-list/dropdown-label.styles.js.map +1 -1
  675. package/{cjs/shared/dropdown-list/dropdown-label.styles_1dwmd8f.css → shared/dropdown-list/dropdown-label.styles_mloii0.css} +4 -4
  676. package/shared/dropdown-list/dropdown-list.styles.js +1 -1
  677. package/shared/dropdown-list/dropdown-list.styles.js.map +1 -1
  678. package/{cjs/shared/dropdown-list/dropdown-list.styles_1kt4zhf.css → shared/dropdown-list/dropdown-list.styles_konwm.css} +4 -4
  679. package/shared/dropdown-list/dropdown-search.styles.js +1 -1
  680. package/shared/dropdown-list/dropdown-search.styles.js.map +1 -1
  681. package/{cjs/shared/dropdown-list/dropdown-search.styles_4r9oma.css → shared/dropdown-list/dropdown-search.styles_1hc1gkh.css} +2 -2
  682. package/shared/dropdown-list/expandable-element.js +1 -1
  683. package/shared/dropdown-list/expandable-element.js.map +1 -1
  684. package/shared/dropdown-list/expandable-element.styles.d.ts +0 -1
  685. package/shared/dropdown-list/expandable-element.styles.js +1 -1
  686. package/shared/dropdown-list/expandable-element.styles.js.map +1 -1
  687. package/shared/dropdown-list/expandable-element.styles_rkkvqr.css +5 -0
  688. package/shared/dropdown-wrapper/dropdown-wrapper.styles.js +1 -1
  689. package/shared/dropdown-wrapper/dropdown-wrapper.styles.js.map +1 -1
  690. package/shared/dropdown-wrapper/dropdown-wrapper.styles_15hwwoj.css +3 -0
  691. package/shared/hooks/useViewport.d.ts +7 -2
  692. package/shared/hooks/useViewport.js +1 -1
  693. package/shared/hooks/useViewport.js.map +1 -1
  694. package/shared/input-wrapper/input-wrapper.styles.js +1 -1
  695. package/shared/input-wrapper/{input-wrapper.styles_19fpzb.css → input-wrapper.styles_je6maw.css} +2 -2
  696. package/shared/internal-calendar/calendar-manager.styles.js +1 -1
  697. package/shared/internal-calendar/{calendar-manager.styles_1q13ylk.css → calendar-manager.styles_1iuq5zw.css} +1 -1
  698. package/shared/internal-calendar/day-cell/day-cell.styles.js +1 -1
  699. package/shared/internal-calendar/day-cell/day-cell.styles.js.map +1 -1
  700. package/{cjs/shared/internal-calendar/day-cell/day-cell.styles_vazxvn.css → shared/internal-calendar/day-cell/day-cell.styles_1t5oqc1.css} +1 -1
  701. package/shared/internal-calendar/internal-calendar-month.styles.js +1 -1
  702. package/{cjs/shared/internal-calendar/internal-calendar-month.styles_1pk3ynj.css → shared/internal-calendar/internal-calendar-month.styles_14oh57f.css} +1 -1
  703. package/shared/internal-calendar/internal-calendar-year.styles.js +1 -1
  704. package/shared/internal-calendar/internal-calendar-year.styles.js.map +1 -1
  705. package/shared/internal-calendar/{internal-calendar-year.styles_1azy42u.css → internal-calendar-year.styles_therlc.css} +1 -1
  706. package/shared/internal-calendar/single/single-cell.js +1 -1
  707. package/shared/internal-calendar/single/single-cell.js.map +1 -1
  708. package/shared/internal-calendar/standard/standard-calendar-day-view.styles.js +1 -1
  709. package/{cjs/shared/internal-calendar/standard/standard-calendar-day-view.styles_1dbvup3.css → shared/internal-calendar/standard/standard-calendar-day-view.styles_1bw26au.css} +1 -1
  710. package/shared/standalone-date-input/standalone-date-input.js +1 -1
  711. package/shared/standalone-date-input/standalone-date-input.js.map +1 -1
  712. package/shared/standalone-date-input/standalone-date-input.styles.d.ts +2 -0
  713. package/shared/standalone-date-input/standalone-date-input.styles.js +1 -1
  714. package/shared/standalone-date-input/standalone-date-input.styles.js.map +1 -1
  715. package/shared/standalone-date-input/standalone-date-input.styles_157qo89.css +15 -0
  716. package/shared/time-slot/time-slot.d.ts +1 -0
  717. package/shared/time-slot/time-slot.js +1 -1
  718. package/shared/time-slot/time-slot.js.map +1 -1
  719. package/shared/time-slot/time-slot.styles.d.ts +2 -0
  720. package/shared/time-slot/time-slot.styles.js +1 -1
  721. package/shared/time-slot/time-slot.styles.js.map +1 -1
  722. package/shared/time-slot/time-slot.styles_18s0to7.css +29 -0
  723. package/sidenav/sidenav-drawer-item.styles.js +1 -1
  724. package/sidenav/sidenav-drawer-item.styles.js.map +1 -1
  725. package/sidenav/{sidenav-drawer-item.styles_yp8cga.css → sidenav-drawer-item.styles_1ljnyx2.css} +1 -1
  726. package/sidenav/sidenav-drawer-subitem.styles.js +1 -1
  727. package/sidenav/sidenav-drawer-subitem.styles.js.map +1 -1
  728. package/sidenav/sidenav-drawer-subitem.styles_2y58kf.css +1 -0
  729. package/sidenav/sidenav-item.styles.js +1 -1
  730. package/sidenav/sidenav-item.styles.js.map +1 -1
  731. package/sidenav/{sidenav-item.styles_1eew8px.css → sidenav-item.styles_lqw3kh.css} +2 -2
  732. package/smart-app-banner/smart-app-banner.styles.js +1 -1
  733. package/smart-app-banner/smart-app-banner.styles.js.map +1 -1
  734. package/smart-app-banner/{smart-app-banner.styles_m5dtgh.css → smart-app-banner.styles_15u6yv4.css} +2 -2
  735. package/tab/tab-link-chain.styles.js +1 -1
  736. package/tab/tab-link-chain.styles.js.map +1 -1
  737. package/tab/{tab-link-chain.styles_1nreqrp.css → tab-link-chain.styles_49got4.css} +2 -2
  738. package/tag/tag.style.js +1 -1
  739. package/tag/{tag.style_10tn8i.css → tag.style_d98c53.css} +2 -2
  740. package/text-list/text-list.styles.js +1 -1
  741. package/text-list/text-list.styles.js.map +1 -1
  742. package/text-list/text-list.styles_w3fvyt.css +16 -0
  743. package/theme/index.d.ts +4 -1
  744. package/theme/index.js +1 -1
  745. package/theme/styles/a11y-playground.css +30 -1
  746. package/theme/styles/bookingsg.css +30 -1
  747. package/theme/styles/careercompass.css +516 -0
  748. package/theme/styles/ccube.css +28 -0
  749. package/theme/styles/default.css +2 -1
  750. package/theme/styles/imda.css +30 -1
  751. package/theme/styles/lifesg.css +28 -0
  752. package/theme/styles/mylegacy.css +30 -1
  753. package/theme/styles/oneservice.css +28 -0
  754. package/theme/styles/pa.css +30 -1
  755. package/theme/styles/rbs.css +28 -0
  756. package/theme/styles/sgw-digital-lobby.css +32 -3
  757. package/theme/styles/smgs.css +516 -0
  758. package/theme/styles/spf.css +143 -114
  759. package/theme/styles/supportgowhere.css +30 -1
  760. package/theme/theme-provider/hooks.d.ts +2 -1
  761. package/theme/theme-provider/hooks.js +1 -1
  762. package/theme/theme-provider/hooks.js.map +1 -1
  763. package/theme/tokens/colour.d.ts +28 -0
  764. package/theme/tokens/colour.js +1 -1
  765. package/theme/tokens/colour.js.map +1 -1
  766. package/theme/tokens/font.d.ts +4 -2
  767. package/theme/tokens/font.js +1 -1
  768. package/theme/tokens/font.js.map +1 -1
  769. package/theme/types.d.ts +1 -1
  770. package/theme/types.js +1 -1
  771. package/theme/types.js.map +1 -1
  772. package/theme/utils/css-variable.d.ts +0 -5
  773. package/theme/utils/css-variable.js +1 -1
  774. package/theme/utils/css-variable.js.map +1 -1
  775. package/theme/utils/font.d.ts +2 -2
  776. package/theme/utils/font.js +1 -1
  777. package/theme/utils/font.js.map +1 -1
  778. package/theme/utils/token-resolver.js +1 -1
  779. package/theme/utils/token-resolver.js.map +1 -1
  780. package/theme/utils/use-design-token.js +1 -1
  781. package/theme/utils/use-design-token.js.map +1 -1
  782. package/theme/utils/use-media-query.d.ts +1 -2
  783. package/theme/utils/use-media-query.js +1 -1
  784. package/theme/utils/use-media-query.js.map +1 -1
  785. package/time-range-picker/combobox-picker/combobox-picker.js +1 -1
  786. package/time-range-picker/combobox-picker/combobox-picker.js.map +1 -1
  787. package/time-slot-bar-week/consts.d.ts +3 -0
  788. package/time-slot-bar-week/consts.js +2 -0
  789. package/time-slot-bar-week/consts.js.map +1 -0
  790. package/time-slot-bar-week/time-slot-bar-week-days.js +1 -1
  791. package/time-slot-bar-week/time-slot-bar-week-days.js.map +1 -1
  792. package/time-slot-bar-week/time-slot-bar-week-days.styles.d.ts +25 -0
  793. package/time-slot-bar-week/time-slot-bar-week-days.styles.js +2 -0
  794. package/time-slot-bar-week/time-slot-bar-week-days.styles.js.map +1 -0
  795. package/time-slot-bar-week/time-slot-bar-week-days.styles_evdvs9.css +17 -0
  796. package/time-slot-bar-week/time-slot-bar-week.js +1 -1
  797. package/time-slot-bar-week/time-slot-bar-week.js.map +1 -1
  798. package/time-slot-bar-week/time-slot-bar-week.styles.d.ts +1 -0
  799. package/time-slot-bar-week/time-slot-bar-week.styles.js +2 -0
  800. package/time-slot-bar-week/time-slot-bar-week.styles.js.map +1 -0
  801. package/time-slot-bar-week/time-slot-bar-week.styles_11ybf42.css +1 -0
  802. package/time-slot-bar-week/time-slot-cell.d.ts +28 -0
  803. package/time-slot-bar-week/time-slot-cell.js +2 -0
  804. package/time-slot-bar-week/time-slot-cell.js.map +1 -0
  805. package/time-slot-week-view/time-slot-week-days.js +1 -1
  806. package/time-slot-week-view/time-slot-week-days.js.map +1 -1
  807. package/time-slot-week-view/time-slot-week-days.styles.d.ts +14 -0
  808. package/time-slot-week-view/time-slot-week-days.styles.js +2 -0
  809. package/time-slot-week-view/time-slot-week-days.styles.js.map +1 -0
  810. package/time-slot-week-view/time-slot-week-days.styles_1h21vyw.css +9 -0
  811. package/time-slot-week-view/time-slot-week-view.js +1 -1
  812. package/time-slot-week-view/time-slot-week-view.js.map +1 -1
  813. package/time-slot-week-view/time-slot-week-view.styles.d.ts +1 -1
  814. package/time-slot-week-view/time-slot-week-view.styles.js +1 -9
  815. package/time-slot-week-view/time-slot-week-view.styles.js.map +1 -1
  816. package/time-slot-week-view/time-slot-week-view.styles_gqgsw2.css +1 -0
  817. package/timeline/timeline.styles.js +1 -1
  818. package/{cjs/timeline/timeline.styles_1wcnzot.css → timeline/timeline.styles_1jxzik4.css} +1 -1
  819. package/timepicker/timepicker.js +1 -1
  820. package/timepicker/timepicker.js.map +1 -1
  821. package/timepicker/timepicker.styles.js +1 -1
  822. package/timepicker/timepicker.styles.js.map +1 -1
  823. package/timepicker/timepicker.styles_1jm33yw.css +1 -0
  824. package/toast/toast.styles.js +1 -1
  825. package/toast/toast.styles.js.map +1 -1
  826. package/toast/{toast.styles_ngrlup.css → toast.styles_1e0l60w.css} +1 -1
  827. package/toggle/toggle.styles.js +1 -1
  828. package/toggle/toggle.styles.js.map +1 -1
  829. package/{cjs/toggle/toggle.styles_1yzqsu.css → toggle/toggle.styles_1t5qrye.css} +5 -5
  830. package/typography/index.js +1 -1
  831. package/typography/typography.js +1 -1
  832. package/typography/typography.js.map +1 -1
  833. package/typography/typography.styles.d.ts +2 -0
  834. package/typography/typography.styles.js +1 -1
  835. package/typography/typography.styles.js.map +1 -1
  836. package/typography/typography.styles_1155j4c.css +11 -0
  837. package/uneditable-section/section-item.styles.js +1 -1
  838. package/uneditable-section/section-item.styles.js.map +1 -1
  839. package/uneditable-section/{section-item.styles_1dfjzc4.css → section-item.styles_mwx8ht.css} +2 -2
  840. package/util/is-styled-components.d.ts +5 -0
  841. package/util/is-styled-components.js +2 -0
  842. package/util/is-styled-components.js.map +1 -0
  843. package/util/styling-helper.js +1 -1
  844. package/util/styling-helper.js.map +1 -1
  845. package/badge/badge.styles_1yrxocm.css +0 -16
  846. package/cjs/badge/badge.styles_1yrxocm.css +0 -16
  847. package/cjs/date-navigator/date-navigator.styles_1cotsgz.css +0 -4
  848. package/cjs/file-upload/file-list.js +0 -2
  849. package/cjs/file-upload/file-list.js.map +0 -1
  850. package/cjs/file-upload/file-list.styles.js +0 -2
  851. package/cjs/file-upload/file-list.styles.js.map +0 -1
  852. package/cjs/file-upload/file-list.styles_16vplxk.css +0 -3
  853. package/cjs/filter/filter-modal.styles_e0ev97.css +0 -8
  854. package/cjs/filter/filter-sidebar.styles_cwvqql.css +0 -4
  855. package/cjs/form/form-label.styles_rk98yd.css +0 -6
  856. package/cjs/input-textarea/textarea-counter.styles_adg5h1.css +0 -1
  857. package/cjs/input-textarea/textarea.styles_g0zgyq.css +0 -5
  858. package/cjs/language-switcher/dropdown-variant.styles_16c4wc1.css +0 -2
  859. package/cjs/markup/markup.utils.js +0 -2
  860. package/cjs/markup/markup.utils.js.map +0 -1
  861. package/cjs/modal/modal-box.styles_1xrlxhd.css +0 -2
  862. package/cjs/modal-v2/modal-v2.styles_1irpyi6.css +0 -3
  863. package/cjs/otp-verification/contact-input-section-styles.js +0 -115
  864. package/cjs/otp-verification/contact-input-section-styles.js.map +0 -1
  865. package/cjs/otp-verification/otp-verification-styles.js +0 -6
  866. package/cjs/otp-verification/otp-verification-styles.js.map +0 -1
  867. package/cjs/otp-verification/verification-section-styles.js +0 -27
  868. package/cjs/otp-verification/verification-section-styles.js.map +0 -1
  869. package/cjs/schedule/schedule-header/schedule-header.style.js +0 -38
  870. package/cjs/schedule/schedule-header/schedule-header.style.js.map +0 -1
  871. package/cjs/schedule/schedule-week-view/slot-content.js +0 -2
  872. package/cjs/schedule/schedule-week-view/slot-content.js.map +0 -1
  873. package/cjs/schedule/schedule-week-view/slot-content.styles.js +0 -40
  874. package/cjs/schedule/schedule-week-view/slot-content.styles.js.map +0 -1
  875. package/cjs/shared/dropdown-list/expandable-element.styles_5o9f9w.css +0 -6
  876. package/cjs/shared/dropdown-wrapper/dropdown-wrapper.styles_v10jbi.css +0 -3
  877. package/cjs/shared/standalone-date-input/standalone-date-input.styles_1m0da43.css +0 -13
  878. package/cjs/shared/styles/index.js +0 -2
  879. package/cjs/shared/styles/index.js.map +0 -1
  880. package/cjs/shared/time-slot/time-slot.styles_1r9na3f.css +0 -17
  881. package/cjs/sidenav/sidenav-drawer-subitem.styles_1ylzfn5.css +0 -1
  882. package/cjs/text-list/text-list.styles_1gohl3f.css +0 -16
  883. package/cjs/time-slot-bar-week/time-slot-bar-week-days.style.js +0 -104
  884. package/cjs/time-slot-bar-week/time-slot-bar-week-days.style.js.map +0 -1
  885. package/cjs/time-slot-bar-week/time-slot-bar-week.style.js +0 -10
  886. package/cjs/time-slot-bar-week/time-slot-bar-week.style.js.map +0 -1
  887. package/cjs/time-slot-week-view/time-slot-week-days.style.js +0 -59
  888. package/cjs/time-slot-week-view/time-slot-week-days.style.js.map +0 -1
  889. package/cjs/timepicker/timepicker.styles_zmkhl8.css +0 -1
  890. package/cjs/typography/typography.styles_1jqils.css +0 -9
  891. package/cjs/v3_theme/border/specs/default-border-set.js +0 -2
  892. package/cjs/v3_theme/border/specs/default-border-set.js.map +0 -1
  893. package/cjs/v3_theme/border/theme-helper.js +0 -2
  894. package/cjs/v3_theme/border/theme-helper.js.map +0 -1
  895. package/cjs/v3_theme/border-util/specs/default-border-util-set.js +0 -2
  896. package/cjs/v3_theme/border-util/specs/default-border-util-set.js.map +0 -1
  897. package/cjs/v3_theme/border-util/theme-helper.js +0 -2
  898. package/cjs/v3_theme/border-util/theme-helper.js.map +0 -1
  899. package/cjs/v3_theme/border-util/utils.js +0 -8
  900. package/cjs/v3_theme/border-util/utils.js.map +0 -1
  901. package/cjs/v3_theme/breakpoint/media-query-helper.js +0 -2
  902. package/cjs/v3_theme/breakpoint/media-query-helper.js.map +0 -1
  903. package/cjs/v3_theme/breakpoint/specs/default-breakpoint-set.js +0 -2
  904. package/cjs/v3_theme/breakpoint/specs/default-breakpoint-set.js.map +0 -1
  905. package/cjs/v3_theme/breakpoint/theme-helper.js +0 -2
  906. package/cjs/v3_theme/breakpoint/theme-helper.js.map +0 -1
  907. package/cjs/v3_theme/colour-primitive/specs/a11yplayground-colour-set.js +0 -2
  908. package/cjs/v3_theme/colour-primitive/specs/a11yplayground-colour-set.js.map +0 -1
  909. package/cjs/v3_theme/colour-primitive/specs/bookingsg-colour-set.js +0 -2
  910. package/cjs/v3_theme/colour-primitive/specs/bookingsg-colour-set.js.map +0 -1
  911. package/cjs/v3_theme/colour-primitive/specs/ccube-colour-set.js +0 -2
  912. package/cjs/v3_theme/colour-primitive/specs/ccube-colour-set.js.map +0 -1
  913. package/cjs/v3_theme/colour-primitive/specs/imda-colour-set.js +0 -2
  914. package/cjs/v3_theme/colour-primitive/specs/imda-colour-set.js.map +0 -1
  915. package/cjs/v3_theme/colour-primitive/specs/lifesg-colour-set.js +0 -2
  916. package/cjs/v3_theme/colour-primitive/specs/lifesg-colour-set.js.map +0 -1
  917. package/cjs/v3_theme/colour-primitive/specs/mylegacy-colour-set.js +0 -2
  918. package/cjs/v3_theme/colour-primitive/specs/mylegacy-colour-set.js.map +0 -1
  919. package/cjs/v3_theme/colour-primitive/specs/oneservice-colour-set.js +0 -2
  920. package/cjs/v3_theme/colour-primitive/specs/oneservice-colour-set.js.map +0 -1
  921. package/cjs/v3_theme/colour-primitive/specs/pa-colour-set.js +0 -2
  922. package/cjs/v3_theme/colour-primitive/specs/pa-colour-set.js.map +0 -1
  923. package/cjs/v3_theme/colour-primitive/specs/rbs-colour-set.js +0 -2
  924. package/cjs/v3_theme/colour-primitive/specs/rbs-colour-set.js.map +0 -1
  925. package/cjs/v3_theme/colour-primitive/specs/smgs-colour-set.js +0 -2
  926. package/cjs/v3_theme/colour-primitive/specs/smgs-colour-set.js.map +0 -1
  927. package/cjs/v3_theme/colour-primitive/specs/spf-colour-set.js +0 -2
  928. package/cjs/v3_theme/colour-primitive/specs/spf-colour-set.js.map +0 -1
  929. package/cjs/v3_theme/colour-primitive/specs/supportgowhere-colour-set.js +0 -2
  930. package/cjs/v3_theme/colour-primitive/specs/supportgowhere-colour-set.js.map +0 -1
  931. package/cjs/v3_theme/colour-primitive/theme-helper.js +0 -2
  932. package/cjs/v3_theme/colour-primitive/theme-helper.js.map +0 -1
  933. package/cjs/v3_theme/colour-semantic/specs/a11yplayground-semantic-tokens.js +0 -2
  934. package/cjs/v3_theme/colour-semantic/specs/a11yplayground-semantic-tokens.js.map +0 -1
  935. package/cjs/v3_theme/colour-semantic/specs/lifesg-semantic-tokens.js +0 -2
  936. package/cjs/v3_theme/colour-semantic/specs/lifesg-semantic-tokens.js.map +0 -1
  937. package/cjs/v3_theme/colour-semantic/specs/pa-semantic-tokens.js +0 -2
  938. package/cjs/v3_theme/colour-semantic/specs/pa-semantic-tokens.js.map +0 -1
  939. package/cjs/v3_theme/colour-semantic/specs/sgwdigitallobby-tokens.js +0 -2
  940. package/cjs/v3_theme/colour-semantic/specs/sgwdigitallobby-tokens.js.map +0 -1
  941. package/cjs/v3_theme/colour-semantic/theme-helper.js +0 -2
  942. package/cjs/v3_theme/colour-semantic/theme-helper.js.map +0 -1
  943. package/cjs/v3_theme/ds-theme-provider.js +0 -2
  944. package/cjs/v3_theme/ds-theme-provider.js.map +0 -1
  945. package/cjs/v3_theme/font/specs/a11yplayground-font-set.js +0 -2
  946. package/cjs/v3_theme/font/specs/a11yplayground-font-set.js.map +0 -1
  947. package/cjs/v3_theme/font/specs/bookingsg-font-set.js +0 -2
  948. package/cjs/v3_theme/font/specs/bookingsg-font-set.js.map +0 -1
  949. package/cjs/v3_theme/font/specs/default-font-set.js +0 -2
  950. package/cjs/v3_theme/font/specs/default-font-set.js.map +0 -1
  951. package/cjs/v3_theme/font/specs/imda-font-set.js +0 -2
  952. package/cjs/v3_theme/font/specs/imda-font-set.js.map +0 -1
  953. package/cjs/v3_theme/font/specs/oneservice-font-set.js +0 -2
  954. package/cjs/v3_theme/font/specs/oneservice-font-set.js.map +0 -1
  955. package/cjs/v3_theme/font/specs/pa-font-set.js +0 -2
  956. package/cjs/v3_theme/font/specs/pa-font-set.js.map +0 -1
  957. package/cjs/v3_theme/font/specs/smgs-font-set.js +0 -2
  958. package/cjs/v3_theme/font/specs/smgs-font-set.js.map +0 -1
  959. package/cjs/v3_theme/font/specs/spf-font-set.js +0 -2
  960. package/cjs/v3_theme/font/specs/spf-font-set.js.map +0 -1
  961. package/cjs/v3_theme/font/specs/supportgowhere-font-set.js +0 -2
  962. package/cjs/v3_theme/font/specs/supportgowhere-font-set.js.map +0 -1
  963. package/cjs/v3_theme/font/theme-helper.js +0 -2
  964. package/cjs/v3_theme/font/theme-helper.js.map +0 -1
  965. package/cjs/v3_theme/font/utils.js +0 -10
  966. package/cjs/v3_theme/font/utils.js.map +0 -1
  967. package/cjs/v3_theme/font-spec/specs/a11yplayground-font-spec-set.js +0 -2
  968. package/cjs/v3_theme/font-spec/specs/a11yplayground-font-spec-set.js.map +0 -1
  969. package/cjs/v3_theme/font-spec/specs/bookingsg-font-spec-set.js +0 -2
  970. package/cjs/v3_theme/font-spec/specs/bookingsg-font-spec-set.js.map +0 -1
  971. package/cjs/v3_theme/font-spec/specs/default-font-spec-set.js +0 -2
  972. package/cjs/v3_theme/font-spec/specs/default-font-spec-set.js.map +0 -1
  973. package/cjs/v3_theme/font-spec/specs/imda-font-spec-set.js +0 -2
  974. package/cjs/v3_theme/font-spec/specs/imda-font-spec-set.js.map +0 -1
  975. package/cjs/v3_theme/font-spec/specs/mylegacy-font-spec-set.js +0 -2
  976. package/cjs/v3_theme/font-spec/specs/mylegacy-font-spec-set.js.map +0 -1
  977. package/cjs/v3_theme/font-spec/specs/oneservice-font-spec-set.js +0 -2
  978. package/cjs/v3_theme/font-spec/specs/oneservice-font-spec-set.js.map +0 -1
  979. package/cjs/v3_theme/font-spec/specs/pa-font-spec-set.js +0 -2
  980. package/cjs/v3_theme/font-spec/specs/pa-font-spec-set.js.map +0 -1
  981. package/cjs/v3_theme/font-spec/specs/sgw-digital-lobby-font-spec-set.js +0 -2
  982. package/cjs/v3_theme/font-spec/specs/sgw-digital-lobby-font-spec-set.js.map +0 -1
  983. package/cjs/v3_theme/font-spec/specs/smgs-font-spec-set.js +0 -2
  984. package/cjs/v3_theme/font-spec/specs/smgs-font-spec-set.js.map +0 -1
  985. package/cjs/v3_theme/font-spec/specs/spf-font-spec-set.js +0 -2
  986. package/cjs/v3_theme/font-spec/specs/spf-font-spec-set.js.map +0 -1
  987. package/cjs/v3_theme/font-spec/specs/supportgowhere-font-spec-set.js +0 -2
  988. package/cjs/v3_theme/font-spec/specs/supportgowhere-font-spec-set.js.map +0 -1
  989. package/cjs/v3_theme/font-spec/theme-helper.js +0 -2
  990. package/cjs/v3_theme/font-spec/theme-helper.js.map +0 -1
  991. package/cjs/v3_theme/helpers.js +0 -2
  992. package/cjs/v3_theme/helpers.js.map +0 -1
  993. package/cjs/v3_theme/index.js +0 -2
  994. package/cjs/v3_theme/index.js.map +0 -1
  995. package/cjs/v3_theme/motion/specs/default-motion-set.js +0 -2
  996. package/cjs/v3_theme/motion/specs/default-motion-set.js.map +0 -1
  997. package/cjs/v3_theme/motion/theme-helper.js +0 -2
  998. package/cjs/v3_theme/motion/theme-helper.js.map +0 -1
  999. package/cjs/v3_theme/radius/specs/default-radius-set.js +0 -2
  1000. package/cjs/v3_theme/radius/specs/default-radius-set.js.map +0 -1
  1001. package/cjs/v3_theme/radius/specs/spf-radius-set.js +0 -2
  1002. package/cjs/v3_theme/radius/specs/spf-radius-set.js.map +0 -1
  1003. package/cjs/v3_theme/radius/theme-helper.js +0 -2
  1004. package/cjs/v3_theme/radius/theme-helper.js.map +0 -1
  1005. package/cjs/v3_theme/shadow/specs/default-shadow-set.js +0 -2
  1006. package/cjs/v3_theme/shadow/specs/default-shadow-set.js.map +0 -1
  1007. package/cjs/v3_theme/shadow/theme-helper.js +0 -2
  1008. package/cjs/v3_theme/shadow/theme-helper.js.map +0 -1
  1009. package/cjs/v3_theme/spacing/specs/default-spacing-set.js +0 -2
  1010. package/cjs/v3_theme/spacing/specs/default-spacing-set.js.map +0 -1
  1011. package/cjs/v3_theme/spacing/theme-helper.js +0 -2
  1012. package/cjs/v3_theme/spacing/theme-helper.js.map +0 -1
  1013. package/cjs/v3_theme/use-theme-mode.js +0 -2
  1014. package/cjs/v3_theme/use-theme-mode.js.map +0 -1
  1015. package/codemods/common.ts +0 -8
  1016. package/codemods/data.ts +0 -16
  1017. package/codemods/deprecate-v2-tokens/data.ts +0 -283
  1018. package/codemods/deprecate-v2-tokens/index.ts +0 -89
  1019. package/codemods/migrate-colour/data.ts +0 -95
  1020. package/codemods/migrate-colour/index.ts +0 -104
  1021. package/codemods/migrate-layout/data.ts +0 -5
  1022. package/codemods/migrate-layout/index.ts +0 -108
  1023. package/codemods/migrate-media-query/data.ts +0 -20
  1024. package/codemods/migrate-media-query/index.ts +0 -113
  1025. package/codemods/migrate-text/data.ts +0 -48
  1026. package/codemods/migrate-text/index.ts +0 -196
  1027. package/codemods/migrate-text-list/data.ts +0 -16
  1028. package/codemods/migrate-text-list/index.ts +0 -111
  1029. package/common.d.ts +0 -8
  1030. package/date-navigator/date-navigator.styles_1cotsgz.css +0 -4
  1031. package/deprecate-v2-tokens/data.d.ts +0 -8
  1032. package/file-upload/file-list.js +0 -2
  1033. package/file-upload/file-list.js.map +0 -1
  1034. package/file-upload/file-list.styles.js +0 -2
  1035. package/file-upload/file-list.styles.js.map +0 -1
  1036. package/file-upload/file-list.styles_16vplxk.css +0 -3
  1037. package/filter/filter-modal.styles_e0ev97.css +0 -8
  1038. package/filter/filter-sidebar.styles_cwvqql.css +0 -4
  1039. package/form/form-label.styles_rk98yd.css +0 -6
  1040. package/input-textarea/textarea-counter.styles_adg5h1.css +0 -1
  1041. package/input-textarea/textarea.styles_g0zgyq.css +0 -5
  1042. package/language-switcher/dropdown-variant.styles_16c4wc1.css +0 -2
  1043. package/markup/markup.utils.d.ts +0 -2
  1044. package/markup/markup.utils.js +0 -2
  1045. package/markup/markup.utils.js.map +0 -1
  1046. package/migrate-colour/data.d.ts +0 -270
  1047. package/migrate-colour/index.d.ts +0 -7
  1048. package/migrate-layout/data.d.ts +0 -5
  1049. package/migrate-layout/index.d.ts +0 -2
  1050. package/migrate-media-query/data.d.ts +0 -20
  1051. package/migrate-media-query/index.d.ts +0 -2
  1052. package/migrate-text/data.d.ts +0 -46
  1053. package/migrate-text/index.d.ts +0 -2
  1054. package/migrate-text-list/data.d.ts +0 -16
  1055. package/migrate-text-list/index.d.ts +0 -2
  1056. package/modal/modal-box.styles_1xrlxhd.css +0 -2
  1057. package/modal-v2/modal-v2.styles_1irpyi6.css +0 -3
  1058. package/otp-verification/contact-input-section-styles.d.ts +0 -14
  1059. package/otp-verification/contact-input-section-styles.js +0 -115
  1060. package/otp-verification/contact-input-section-styles.js.map +0 -1
  1061. package/otp-verification/otp-verification-styles.d.ts +0 -1
  1062. package/otp-verification/otp-verification-styles.js +0 -6
  1063. package/otp-verification/otp-verification-styles.js.map +0 -1
  1064. package/otp-verification/verification-section-styles.d.ts +0 -23
  1065. package/otp-verification/verification-section-styles.js +0 -27
  1066. package/otp-verification/verification-section-styles.js.map +0 -1
  1067. package/schedule/schedule-header/schedule-header.style.d.ts +0 -25
  1068. package/schedule/schedule-header/schedule-header.style.js +0 -38
  1069. package/schedule/schedule-header/schedule-header.style.js.map +0 -1
  1070. package/schedule/schedule-week-view/slot-content.d.ts +0 -8
  1071. package/schedule/schedule-week-view/slot-content.js +0 -2
  1072. package/schedule/schedule-week-view/slot-content.js.map +0 -1
  1073. package/schedule/schedule-week-view/slot-content.styles.d.ts +0 -27
  1074. package/schedule/schedule-week-view/slot-content.styles.js +0 -40
  1075. package/schedule/schedule-week-view/slot-content.styles.js.map +0 -1
  1076. package/schedule/shared/index.d.ts +0 -2
  1077. package/shared/dropdown-list/expandable-element.styles_5o9f9w.css +0 -6
  1078. package/shared/dropdown-wrapper/dropdown-wrapper.styles_v10jbi.css +0 -3
  1079. package/shared/standalone-date-input/standalone-date-input.styles_1m0da43.css +0 -13
  1080. package/shared/styles/index.js +0 -2
  1081. package/shared/styles/index.js.map +0 -1
  1082. package/shared/time-slot/time-slot.styles_1r9na3f.css +0 -17
  1083. package/sidenav/sidenav-drawer-subitem.styles_1ylzfn5.css +0 -1
  1084. package/text-list/text-list.styles_1gohl3f.css +0 -16
  1085. package/time-slot-bar-week/time-slot-bar-week-days.style.d.ts +0 -54
  1086. package/time-slot-bar-week/time-slot-bar-week-days.style.js +0 -104
  1087. package/time-slot-bar-week/time-slot-bar-week-days.style.js.map +0 -1
  1088. package/time-slot-bar-week/time-slot-bar-week.style.d.ts +0 -1
  1089. package/time-slot-bar-week/time-slot-bar-week.style.js +0 -10
  1090. package/time-slot-bar-week/time-slot-bar-week.style.js.map +0 -1
  1091. package/time-slot-week-view/time-slot-week-days.style.d.ts +0 -12
  1092. package/time-slot-week-view/time-slot-week-days.style.js +0 -59
  1093. package/time-slot-week-view/time-slot-week-days.style.js.map +0 -1
  1094. package/timepicker/timepicker.styles_zmkhl8.css +0 -1
  1095. package/typography/typography.styles_1jqils.css +0 -9
  1096. package/v3_theme/border/specs/default-border-set.d.ts +0 -2
  1097. package/v3_theme/border/specs/default-border-set.js +0 -2
  1098. package/v3_theme/border/specs/default-border-set.js.map +0 -1
  1099. package/v3_theme/border/theme-helper.d.ts +0 -10
  1100. package/v3_theme/border/theme-helper.js +0 -2
  1101. package/v3_theme/border/theme-helper.js.map +0 -1
  1102. package/v3_theme/border/types.d.ts +0 -12
  1103. package/v3_theme/border-util/specs/default-border-util-set.d.ts +0 -2
  1104. package/v3_theme/border-util/specs/default-border-util-set.js +0 -2
  1105. package/v3_theme/border-util/specs/default-border-util-set.js.map +0 -1
  1106. package/v3_theme/border-util/theme-helper.d.ts +0 -8
  1107. package/v3_theme/border-util/theme-helper.js +0 -2
  1108. package/v3_theme/border-util/theme-helper.js.map +0 -1
  1109. package/v3_theme/border-util/types.d.ts +0 -19
  1110. package/v3_theme/border-util/utils.d.ts +0 -11
  1111. package/v3_theme/border-util/utils.js +0 -8
  1112. package/v3_theme/border-util/utils.js.map +0 -1
  1113. package/v3_theme/breakpoint/media-query-helper.d.ts +0 -9
  1114. package/v3_theme/breakpoint/media-query-helper.js +0 -2
  1115. package/v3_theme/breakpoint/media-query-helper.js.map +0 -1
  1116. package/v3_theme/breakpoint/specs/default-breakpoint-set.d.ts +0 -2
  1117. package/v3_theme/breakpoint/specs/default-breakpoint-set.js +0 -2
  1118. package/v3_theme/breakpoint/specs/default-breakpoint-set.js.map +0 -1
  1119. package/v3_theme/breakpoint/theme-helper.d.ts +0 -39
  1120. package/v3_theme/breakpoint/theme-helper.js +0 -2
  1121. package/v3_theme/breakpoint/theme-helper.js.map +0 -1
  1122. package/v3_theme/breakpoint/types.d.ts +0 -41
  1123. package/v3_theme/colour-primitive/specs/a11yplayground-colour-set.d.ts +0 -2
  1124. package/v3_theme/colour-primitive/specs/a11yplayground-colour-set.js +0 -2
  1125. package/v3_theme/colour-primitive/specs/a11yplayground-colour-set.js.map +0 -1
  1126. package/v3_theme/colour-primitive/specs/bookingsg-colour-set.d.ts +0 -2
  1127. package/v3_theme/colour-primitive/specs/bookingsg-colour-set.js +0 -2
  1128. package/v3_theme/colour-primitive/specs/bookingsg-colour-set.js.map +0 -1
  1129. package/v3_theme/colour-primitive/specs/ccube-colour-set.d.ts +0 -2
  1130. package/v3_theme/colour-primitive/specs/ccube-colour-set.js +0 -2
  1131. package/v3_theme/colour-primitive/specs/ccube-colour-set.js.map +0 -1
  1132. package/v3_theme/colour-primitive/specs/imda-colour-set.d.ts +0 -2
  1133. package/v3_theme/colour-primitive/specs/imda-colour-set.js +0 -2
  1134. package/v3_theme/colour-primitive/specs/imda-colour-set.js.map +0 -1
  1135. package/v3_theme/colour-primitive/specs/lifesg-colour-set.d.ts +0 -2
  1136. package/v3_theme/colour-primitive/specs/lifesg-colour-set.js +0 -2
  1137. package/v3_theme/colour-primitive/specs/lifesg-colour-set.js.map +0 -1
  1138. package/v3_theme/colour-primitive/specs/mylegacy-colour-set.d.ts +0 -2
  1139. package/v3_theme/colour-primitive/specs/mylegacy-colour-set.js +0 -2
  1140. package/v3_theme/colour-primitive/specs/mylegacy-colour-set.js.map +0 -1
  1141. package/v3_theme/colour-primitive/specs/oneservice-colour-set.d.ts +0 -2
  1142. package/v3_theme/colour-primitive/specs/oneservice-colour-set.js +0 -2
  1143. package/v3_theme/colour-primitive/specs/oneservice-colour-set.js.map +0 -1
  1144. package/v3_theme/colour-primitive/specs/pa-colour-set.d.ts +0 -2
  1145. package/v3_theme/colour-primitive/specs/pa-colour-set.js +0 -2
  1146. package/v3_theme/colour-primitive/specs/pa-colour-set.js.map +0 -1
  1147. package/v3_theme/colour-primitive/specs/rbs-colour-set.d.ts +0 -2
  1148. package/v3_theme/colour-primitive/specs/rbs-colour-set.js +0 -2
  1149. package/v3_theme/colour-primitive/specs/rbs-colour-set.js.map +0 -1
  1150. package/v3_theme/colour-primitive/specs/smgs-colour-set.d.ts +0 -2
  1151. package/v3_theme/colour-primitive/specs/smgs-colour-set.js +0 -2
  1152. package/v3_theme/colour-primitive/specs/smgs-colour-set.js.map +0 -1
  1153. package/v3_theme/colour-primitive/specs/spf-colour-set.d.ts +0 -2
  1154. package/v3_theme/colour-primitive/specs/spf-colour-set.js +0 -2
  1155. package/v3_theme/colour-primitive/specs/spf-colour-set.js.map +0 -1
  1156. package/v3_theme/colour-primitive/specs/supportgowhere-colour-set.d.ts +0 -2
  1157. package/v3_theme/colour-primitive/specs/supportgowhere-colour-set.js +0 -2
  1158. package/v3_theme/colour-primitive/specs/supportgowhere-colour-set.js.map +0 -1
  1159. package/v3_theme/colour-primitive/theme-helper.d.ts +0 -10
  1160. package/v3_theme/colour-primitive/theme-helper.js +0 -2
  1161. package/v3_theme/colour-primitive/theme-helper.js.map +0 -1
  1162. package/v3_theme/colour-primitive/types.d.ts +0 -98
  1163. package/v3_theme/colour-semantic/specs/a11yplayground-semantic-tokens.d.ts +0 -3
  1164. package/v3_theme/colour-semantic/specs/a11yplayground-semantic-tokens.js +0 -2
  1165. package/v3_theme/colour-semantic/specs/a11yplayground-semantic-tokens.js.map +0 -1
  1166. package/v3_theme/colour-semantic/specs/lifesg-semantic-tokens.d.ts +0 -3
  1167. package/v3_theme/colour-semantic/specs/lifesg-semantic-tokens.js +0 -2
  1168. package/v3_theme/colour-semantic/specs/lifesg-semantic-tokens.js.map +0 -1
  1169. package/v3_theme/colour-semantic/specs/pa-semantic-tokens.d.ts +0 -2
  1170. package/v3_theme/colour-semantic/specs/pa-semantic-tokens.js +0 -2
  1171. package/v3_theme/colour-semantic/specs/pa-semantic-tokens.js.map +0 -1
  1172. package/v3_theme/colour-semantic/specs/sgwdigitallobby-tokens.d.ts +0 -3
  1173. package/v3_theme/colour-semantic/specs/sgwdigitallobby-tokens.js +0 -2
  1174. package/v3_theme/colour-semantic/specs/sgwdigitallobby-tokens.js.map +0 -1
  1175. package/v3_theme/colour-semantic/theme-helper.d.ts +0 -10
  1176. package/v3_theme/colour-semantic/theme-helper.js +0 -2
  1177. package/v3_theme/colour-semantic/theme-helper.js.map +0 -1
  1178. package/v3_theme/colour-semantic/types.d.ts +0 -123
  1179. package/v3_theme/components/specs/a11yplayground-component-token-set.d.ts +0 -2
  1180. package/v3_theme/components/specs/default-component-token-set.d.ts +0 -2
  1181. package/v3_theme/components/specs/lifesg-component-token-set.d.ts +0 -2
  1182. package/v3_theme/components/specs/pa-component-token-set.d.ts +0 -2
  1183. package/v3_theme/components/specs/smgs-component-token-set.d.ts +0 -2
  1184. package/v3_theme/components/specs/spf-component-token-set.d.ts +0 -2
  1185. package/v3_theme/components/theme-helper.d.ts +0 -17
  1186. package/v3_theme/components/types.d.ts +0 -44
  1187. package/v3_theme/ds-theme-provider.d.ts +0 -2
  1188. package/v3_theme/ds-theme-provider.js +0 -2
  1189. package/v3_theme/ds-theme-provider.js.map +0 -1
  1190. package/v3_theme/font/specs/a11yplayground-font-set.d.ts +0 -2
  1191. package/v3_theme/font/specs/a11yplayground-font-set.js +0 -2
  1192. package/v3_theme/font/specs/a11yplayground-font-set.js.map +0 -1
  1193. package/v3_theme/font/specs/bookingsg-font-set.d.ts +0 -2
  1194. package/v3_theme/font/specs/bookingsg-font-set.js +0 -2
  1195. package/v3_theme/font/specs/bookingsg-font-set.js.map +0 -1
  1196. package/v3_theme/font/specs/default-font-set.d.ts +0 -2
  1197. package/v3_theme/font/specs/default-font-set.js +0 -2
  1198. package/v3_theme/font/specs/default-font-set.js.map +0 -1
  1199. package/v3_theme/font/specs/imda-font-set.d.ts +0 -2
  1200. package/v3_theme/font/specs/imda-font-set.js +0 -2
  1201. package/v3_theme/font/specs/imda-font-set.js.map +0 -1
  1202. package/v3_theme/font/specs/oneservice-font-set.d.ts +0 -2
  1203. package/v3_theme/font/specs/oneservice-font-set.js +0 -2
  1204. package/v3_theme/font/specs/oneservice-font-set.js.map +0 -1
  1205. package/v3_theme/font/specs/pa-font-set.d.ts +0 -2
  1206. package/v3_theme/font/specs/pa-font-set.js +0 -2
  1207. package/v3_theme/font/specs/pa-font-set.js.map +0 -1
  1208. package/v3_theme/font/specs/smgs-font-set.d.ts +0 -2
  1209. package/v3_theme/font/specs/smgs-font-set.js +0 -2
  1210. package/v3_theme/font/specs/smgs-font-set.js.map +0 -1
  1211. package/v3_theme/font/specs/spf-font-set.d.ts +0 -2
  1212. package/v3_theme/font/specs/spf-font-set.js +0 -2
  1213. package/v3_theme/font/specs/spf-font-set.js.map +0 -1
  1214. package/v3_theme/font/specs/supportgowhere-font-set.d.ts +0 -2
  1215. package/v3_theme/font/specs/supportgowhere-font-set.js +0 -2
  1216. package/v3_theme/font/specs/supportgowhere-font-set.js.map +0 -1
  1217. package/v3_theme/font/theme-helper.d.ts +0 -7
  1218. package/v3_theme/font/theme-helper.js +0 -2
  1219. package/v3_theme/font/theme-helper.js.map +0 -1
  1220. package/v3_theme/font/types.d.ts +0 -54
  1221. package/v3_theme/font/utils.d.ts +0 -4
  1222. package/v3_theme/font/utils.js +0 -10
  1223. package/v3_theme/font/utils.js.map +0 -1
  1224. package/v3_theme/font-spec/specs/a11yplayground-font-spec-set.d.ts +0 -2
  1225. package/v3_theme/font-spec/specs/a11yplayground-font-spec-set.js +0 -2
  1226. package/v3_theme/font-spec/specs/a11yplayground-font-spec-set.js.map +0 -1
  1227. package/v3_theme/font-spec/specs/bookingsg-font-spec-set.d.ts +0 -2
  1228. package/v3_theme/font-spec/specs/bookingsg-font-spec-set.js +0 -2
  1229. package/v3_theme/font-spec/specs/bookingsg-font-spec-set.js.map +0 -1
  1230. package/v3_theme/font-spec/specs/default-font-spec-set.d.ts +0 -2
  1231. package/v3_theme/font-spec/specs/default-font-spec-set.js +0 -2
  1232. package/v3_theme/font-spec/specs/default-font-spec-set.js.map +0 -1
  1233. package/v3_theme/font-spec/specs/imda-font-spec-set.d.ts +0 -2
  1234. package/v3_theme/font-spec/specs/imda-font-spec-set.js +0 -2
  1235. package/v3_theme/font-spec/specs/imda-font-spec-set.js.map +0 -1
  1236. package/v3_theme/font-spec/specs/mylegacy-font-spec-set.d.ts +0 -2
  1237. package/v3_theme/font-spec/specs/mylegacy-font-spec-set.js +0 -2
  1238. package/v3_theme/font-spec/specs/mylegacy-font-spec-set.js.map +0 -1
  1239. package/v3_theme/font-spec/specs/oneservice-font-spec-set.d.ts +0 -2
  1240. package/v3_theme/font-spec/specs/oneservice-font-spec-set.js +0 -2
  1241. package/v3_theme/font-spec/specs/oneservice-font-spec-set.js.map +0 -1
  1242. package/v3_theme/font-spec/specs/pa-font-spec-set.d.ts +0 -2
  1243. package/v3_theme/font-spec/specs/pa-font-spec-set.js +0 -2
  1244. package/v3_theme/font-spec/specs/pa-font-spec-set.js.map +0 -1
  1245. package/v3_theme/font-spec/specs/sgw-digital-lobby-font-spec-set.d.ts +0 -2
  1246. package/v3_theme/font-spec/specs/sgw-digital-lobby-font-spec-set.js +0 -2
  1247. package/v3_theme/font-spec/specs/sgw-digital-lobby-font-spec-set.js.map +0 -1
  1248. package/v3_theme/font-spec/specs/smgs-font-spec-set.d.ts +0 -2
  1249. package/v3_theme/font-spec/specs/smgs-font-spec-set.js +0 -2
  1250. package/v3_theme/font-spec/specs/smgs-font-spec-set.js.map +0 -1
  1251. package/v3_theme/font-spec/specs/spf-font-spec-set.d.ts +0 -2
  1252. package/v3_theme/font-spec/specs/spf-font-spec-set.js +0 -2
  1253. package/v3_theme/font-spec/specs/spf-font-spec-set.js.map +0 -1
  1254. package/v3_theme/font-spec/specs/supportgowhere-font-spec-set.d.ts +0 -2
  1255. package/v3_theme/font-spec/specs/supportgowhere-font-spec-set.js +0 -2
  1256. package/v3_theme/font-spec/specs/supportgowhere-font-spec-set.js.map +0 -1
  1257. package/v3_theme/font-spec/theme-helper.d.ts +0 -6
  1258. package/v3_theme/font-spec/theme-helper.js +0 -2
  1259. package/v3_theme/font-spec/theme-helper.js.map +0 -1
  1260. package/v3_theme/font-spec/types.d.ts +0 -53
  1261. package/v3_theme/helpers.d.ts +0 -7
  1262. package/v3_theme/helpers.js +0 -2
  1263. package/v3_theme/helpers.js.map +0 -1
  1264. package/v3_theme/index.d.ts +0 -696
  1265. package/v3_theme/index.js +0 -2
  1266. package/v3_theme/index.js.map +0 -1
  1267. package/v3_theme/internal-types.d.ts +0 -4
  1268. package/v3_theme/motion/specs/default-motion-set.d.ts +0 -2
  1269. package/v3_theme/motion/specs/default-motion-set.js +0 -2
  1270. package/v3_theme/motion/specs/default-motion-set.js.map +0 -1
  1271. package/v3_theme/motion/theme-helper.d.ts +0 -6
  1272. package/v3_theme/motion/theme-helper.js +0 -2
  1273. package/v3_theme/motion/theme-helper.js.map +0 -1
  1274. package/v3_theme/motion/types.d.ts +0 -17
  1275. package/v3_theme/radius/specs/default-radius-set.d.ts +0 -2
  1276. package/v3_theme/radius/specs/default-radius-set.js +0 -2
  1277. package/v3_theme/radius/specs/default-radius-set.js.map +0 -1
  1278. package/v3_theme/radius/specs/spf-radius-set.d.ts +0 -2
  1279. package/v3_theme/radius/specs/spf-radius-set.js +0 -2
  1280. package/v3_theme/radius/specs/spf-radius-set.js.map +0 -1
  1281. package/v3_theme/radius/theme-helper.d.ts +0 -6
  1282. package/v3_theme/radius/theme-helper.js +0 -2
  1283. package/v3_theme/radius/theme-helper.js.map +0 -1
  1284. package/v3_theme/radius/types.d.ts +0 -13
  1285. package/v3_theme/shadow/specs/default-shadow-set.d.ts +0 -2
  1286. package/v3_theme/shadow/specs/default-shadow-set.js +0 -2
  1287. package/v3_theme/shadow/specs/default-shadow-set.js.map +0 -1
  1288. package/v3_theme/shadow/theme-helper.d.ts +0 -7
  1289. package/v3_theme/shadow/theme-helper.js +0 -2
  1290. package/v3_theme/shadow/theme-helper.js.map +0 -1
  1291. package/v3_theme/shadow/types.d.ts +0 -21
  1292. package/v3_theme/spacing/specs/default-spacing-set.d.ts +0 -2
  1293. package/v3_theme/spacing/specs/default-spacing-set.js +0 -2
  1294. package/v3_theme/spacing/specs/default-spacing-set.js.map +0 -1
  1295. package/v3_theme/spacing/theme-helper.d.ts +0 -6
  1296. package/v3_theme/spacing/theme-helper.js +0 -2
  1297. package/v3_theme/spacing/theme-helper.js.map +0 -1
  1298. package/v3_theme/spacing/types.d.ts +0 -26
  1299. package/v3_theme/types.d.ts +0 -78
  1300. package/v3_theme/use-theme-mode.d.ts +0 -4
  1301. package/v3_theme/use-theme-mode.js +0 -2
  1302. package/v3_theme/use-theme-mode.js.map +0 -1
  1303. /package/file-upload/{file-list.styles.d.ts → file-list/file-list.styles.d.ts} +0 -0
  1304. /package/{deprecate-v2-tokens → migrate-popover}/index.d.ts +0 -0
@@ -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":"0wEA0CA,MAAMA,GACFC,KAEEA,GAAsB,WAAdA,EAAKC,KAENC,GAAY,CACrBC,EAaAC,cAbAC,MACIA,GAAKC,uBACLA,GAAsBC,cACtBA,IAAgB,EAAKC,eACrBA,IAAiB,EAAKC,YACtBA,IAAc,EAAKC,cACnBA,IAAgB,EAAKC,SACrBA,GAAQC,QACRA,GAAOC,OACPA,GAAMC,KACNA,IAAIX,EACDY,GAAUC,EAAAb,EAXjB,wIAkBA,MAAOc,GAAcC,IAAmBC,EACpCb,SAAAA,GAA0B,IAEvBc,GAAiBC,IAAqBC,EAE3C,CAAA,IACKC,GAAMC,IAAWF,EAAS,IAC1BG,GAAQC,IAAaJ,KACrBK,GAAMC,IAAWN,IAClBO,GAAeC,EAAuB,MACtCC,GAAgBD,EAAkC,IAClDE,GAAWF,EAA+C,IAC1DG,GAAWH,EAAuB,MAClCI,GAAsBJ,EAAuB,MAC7CK,GAAqBL,EAA0B,MAC/CM,GAAqBN,EAA0B,MAC/CO,GAAwBP,EAAuB,MAC/CQ,GAAOb,IAAUE,GAAOF,GAASE,GAAO,EACxCY,GAAclC,GAAMY,IACpBuB,GAAkBnC,GAAMoC,MACzBzC,IAAQ,IAAAG,EAAC,OAAAJ,GAAaC,OAAyB,QAAdG,EAAAH,EAAK0C,iBAAS,IAAAvC,OAAA,EAAAA,EAAEwC,OAAM,IAEtDC,GAAmBJ,GAAkB,OAAS,QAC9CK,GAAcC,GAChB,IACIzC,GAAMoC,MACDzC,YAAS,OAAa,UAAbA,EAAK+C,gBAAQ,IAAA5C,OAAA,EAAAA,EAAEwC,UAAuB,UAAb3C,EAAKgD,gBAAQ,IAAAC,OAAA,EAAAA,EAAEN,OAAM,KAEhE,CAACtC,KAGL6C,EAAchB,GAAqB,CAC/B,CAACiB,EAAcC,iBAAiBC,UAAWC,EACvCzC,cAAM,EAANA,GAAQ0C,IACR,MAEJ,CAACJ,EAAcC,iBAAiBI,WAAYF,EACxCzC,cAAM,EAANA,GAAQ4C,KACR,MAEJ,CAACN,EAAcC,iBAAiBM,YAAaJ,EACzCzC,cAAM,EAANA,GAAQ8C,MACR,QAIRT,EAAcf,GAAoB,CAC9B,CAACgB,EAAcS,YAAYJ,WAAYF,EACnCzC,cAAM,EAANA,GAAQ4C,KACR,QAIRP,EAAcd,GAAoB,CAC9B,CAACe,EAAcS,YAAYF,YAAaJ,EACpCzC,cAAM,EAANA,GAAQ8C,MACR,QAIRT,EAAcb,GAAuB,CACjC,CAACc,EAAcU,mBAAmBC,aAAcR,EAC5CzC,cAAM,EAANA,GAAQkD,OACR,QAIR,MAAMC,GAAmBC,GACpBC,YACG,MAAMlE,EAAOK,GAAM6D,GACbC,EAAgB3B,GAAkB,OAAS,QAC3C4B,EAASrE,GAAaC,IACR,QAAdG,EAAAH,EAAK0C,iBAAS,IAAAvC,OAAA,EAAAA,EAAEwC,SAAU,IAClB,QAARM,EAAAjD,EAAKqE,WAAG,IAAApB,OAAA,EAAAA,EAAEN,SAAU,GACpB2B,EAAgB,GAAGH,KAAiBD,EAAQ,QAC9C7D,GAAMkE,UAGV,OAAOH,EAAS,GAAGA,MAAWE,IAAkBA,CAAa,GAEjE,CAACjE,GAAOmC,KAGZgC,EACIpE,IACA,KAAA,CACIqE,iBAAkBxD,GAClByD,eAAgBC,GAChBC,aAAcC,GACdC,aAAcC,OAOtBC,EAAiB,WA8DjB,SAAuBC,GACL,eAAVA,EAAEC,IACFH,KACiB,cAAVE,EAAEC,IACTL,KACiB,WAAVI,EAAEC,MACTtE,UAAAA,KAER,GAtE2C,YAE3CuE,GAAU,WACFrE,KACgB,QAAhBX,EAAA8B,GAASmD,eAAO,IAAAjF,GAAAA,EAAEkF,QACtB,GACD,CAACvE,KAEJqE,GAAU,KACe,IAAjB9E,GAAMkE,OAKNtD,GAAeZ,GAAMkE,OAAS,GAC9BrD,GAAgBb,GAAMkE,OAAS,GAL/BrD,GAAgB,EAMpB,GACD,CAACD,GAAcZ,GAAMkE,OAAQrD,KAEhCiE,GAAU,aAC+B,QAArClC,UAAA9C,EAAA4B,GAAcqD,8BAAUnE,WAAa,IAAAgC,GAAAA,EAAEqC,eAAe,CAClDC,SAAU,SACVC,OAAQ,WAEZhE,GAAQ,EAAE,GACX,CAACP,KAKJ,MAsBMwE,GAAcR,IAChBzD,GAAQyD,EAAES,MAAMC,MAAM,EAmB1B,MAWMC,GAAe,EACjBC,MACAC,SACAC,YAMA1E,IAAmB2E,GACfC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAYF,GAAQ,CAAEH,CAACA,GAAM,CAAEC,SAAQC,YACzC,EAGAI,GAAe,KACjB,IAAK5D,IAAexC,GAAawC,IAC7B,OAGJ,MAAM6D,EAAiBhF,GAAgBmB,GAAYsD,KAEnD,GAAIhE,GAAauD,SAAagB,EAAgB,CAC1C,MAAMC,aAAEA,EAAYC,YAAEA,GAAgBzE,GAAauD,SAC7CW,MAAEA,EAAKD,OAAEA,GAAWM,EAGpBG,EACFT,EAASC,EAAQM,EAAeC,EAEpC,OALmBP,EAAQO,GAAeR,EAASO,EAMxCE,EACDD,EAAcP,EACdM,EAAeP,EAGlBS,EACDF,GAAgBP,GAAUC,EAAQO,IAClCA,GAAeP,GAASD,EAASO,GAC3C,GAMExB,GAAgB,aACc,QAAhC5B,EAAgB,QAAhB9C,EAAA6B,GAASoD,eAAO,IAAAjF,OAAA,EAAAA,EAAGc,WAAa,IAAAgC,GAAAA,EAAEuD,iBAClCtF,IACKuF,GAAmB,IAATA,EAAapG,GAAMkE,OAAS,EAAIkC,EAAO,IACjDC,IACGC,EAAe,UACfC,EAAS5C,GAAiB0C,GAAQ,SAAS,GAElD,EAGC3B,GAAgB,aACc,QAAhC9B,EAAgB,QAAhB9C,EAAA6B,GAASoD,eAAO,IAAAjF,OAAA,EAAAA,EAAGc,WAAa,IAAAgC,GAAAA,EAAEuD,iBAClCtF,IACKuF,GAAUA,IAASpG,GAAMkE,OAAS,EAAI,EAAIkC,EAAO,IACjDC,IACGC,EAAe,UACfC,EAAS5C,GAAiB0C,GAAQ,SAAS,GAElD,EAGC/B,GAAaT,YACiB,QAAhCjB,EAAgB,QAAhB9C,EAAA6B,GAASoD,eAAO,IAAAjF,OAAA,EAAAA,EAAGc,WAAa,IAAAgC,GAAAA,EAAEuD,iBAClCtF,GAAgBgD,EAAM,EA0K1B,OACI2C,EAACC,EAAOb,OAAAC,OAAA,CAAA,EACAnF,GAAU,CAAA,cACF,uBAAsB,aACtByB,GAAkB,WAAa,iBAC3C1B,KAAMA,GACNiG,gCAEAC,EAAA,MAAA,CAAKC,UAAWC,EAA2BC,SAAA,CACvCH,EAAA,MAAA,CAAKC,UAAWG,EAA4BD,SAAA,CACxCH,EAAA,MAAA,CAAKC,UAAWI,EAA0BF,SAAA,CACtCN,EAAA,MAAA,CACII,UAAWK,EACXlH,IAAKyB,GACL0F,aAjTEtC,IAClB1D,IAAQ,GAAGG,GAAUuD,EAAEuC,QAAQ,GAAGC,QAAQ,EAiT1BC,YA9SCzC,KAChBxD,IAAUF,GAAO,GACtBK,GAAQqD,EAAEuC,QAAQ,GAAGC,QAAQ,EA6STE,WA1SD,KACd9F,GAAauD,UACdwC,KAAKC,IAAIvF,IAAQT,GAAauD,QAAQ0C,YAAc,IAChDxF,GAAO,EACPyC,KAEAF,MAGRnD,QAAUqG,GACVnG,QAAQmG,GAAU,WA8GdlB,SACII,UAAWe,EACXC,MAAO,CACHC,UAAW,mBACS,KAAfjH,SACEqB,UACV6E,SAEA9G,GAAM8H,KAAI,CAACnI,EAAMkE,KACd,MAAMkE,EAAWlE,IAAUjD,GACrBoH,EACFT,KAAKC,IAAI3D,EAAQjD,KAAiB,GAChB,IAAjBA,IAAsBiD,IAAU7D,GAAMkE,OAAS,GAC/CtD,KAAiBZ,GAAMkE,OAAS,GAAe,IAAVL,EAE1C,OACI2C,SACII,UAAWqB,EAAwB,cAEvB,aAAYnB,SAExBN,EAAA,MAAA,CACII,UAAWsB,EACXnI,IAAKgI,EAAWnG,GAAW,KAC3BuG,SAAUJ,EAAW,GAAI,EAAEjB,SAE1BpH,GAAaC,GACVqI,EACIrI,EAAKyI,gBAEL5B,EAAC6B,GACGzB,UACI0B,IAKZ9B,EAAC+B,EAAgB,CACbxI,IAAMyI,GACD7G,GAASoD,QAAQlB,GAAS2E,EAE/BC,QAAS,CACLC,SAAUxH,IAAQ,GAEtByH,aAAc,EACdC,OAAQxD,GACRyD,WAAYzD,GACZ0D,QAAS1D,GAAU0B,SAEnBN,EAACuC,EAAkB,CAAAjC,SACfN,EAACwC,GAAa,CACVpC,UAAWqC,EACXzD,IAAK7F,EAAK6F,IACVxB,IAAKL,GAAiBE,GACtBqF,YACI1C,EAAC6B,EAAgB,CACbzB,UACI0B,IAIZa,IAAI,aACJC,wBAAsB,EACtB7D,aAAcA,YA7C7B1B,EAmDH,SAkHJ1D,IACEwG,EAAA0C,EAAA,CAAAvC,SAAA,CACIN,EAAC8C,EAAa,CACV1C,UAAW2C,EACPC,EACAC,EACAC,GAEJ3J,IAAK+B,GAAkB,aACX,YAAYS,KAAkB,cAC9B,WACZoH,QAASnF,GAAasC,SAEtBN,EAACoD,EAAe,CAAA,eAAA,MAEpBpD,EAAC8C,EAAa,CACV1C,UAAW2C,EACPC,EACAC,EACAI,GAEJ9J,IAAKgC,GAAkB,aACX,QAAQQ,KAAkB,cAC1B,cACZoH,QAASjF,GAAaoC,SAEtBN,EAACsD,EAAgB,CAAA,eAAA,UAK3B1J,IACEoG,EAAA,MAAA,CAAKI,UAAWmD,EAAc,cAAc,gBACxCvD,EAACwD,EAAWC,QACRrD,UAAWsD,EACXC,OAAO,yBACK,mBAAkBrD,SAChC,GAAGlG,GAAe,KAChBZ,GAAMkE,iBAMpBhE,IAjHVsG,EAAA,MAAA,CACII,UAAWwD,EACXrK,IAAKiC,GAAqB,cACd,qBACA,sBAAqB8E,SAEjCN,EAAA,MAAA,CAAKI,UAAWyD,WACXrK,GAAM8H,KAAI,CAACnI,EAAMkE,WACd,MAAM2B,EAAM9F,GAAaC,GACnBA,EAAK2K,aACY,UAAjB3K,EAAK2K,oBAAY,IAAAxK,EAAAA,EAAIH,EAAK6F,IAChC,OACIgB,SACII,UAAW2D,WAGX/D,EAAA,MAAA,CACII,UAAW4D,EAAoB,cAClB3G,IAAUjD,GAAY,cACvB,iBACZ+I,QAAS,IAAMrF,GAAUT,GACzB9D,IAAMyI,GACD9G,GAAcqD,QAAQlB,GAAS2E,EAAG1B,SAGtCtB,EACGgB,EAACwC,GAAa,CACVpC,UAAW6D,EACXjF,IAAKA,EACLxB,IAAK,aAAaH,EAAQ,IAC1BsF,IAAI,UAGR3C,EAAC6B,EAAgB,CACbzB,UACI0B,OArBXzE,EA0BH,WA2ElB8C,SACIC,UAAW8D,EACX3K,IAAK8B,wBACeW,GAAWsE,SAAA,CAE9BtE,IA9JM,MACnB,MAAME,SAAEA,EAAQC,SAAEA,GAAaT,SAAAA,GAAe,CAAA,EACxCyI,EAAcjI,eAAAA,EAAUJ,OACxBsI,EAAcjI,eAAAA,EAAUL,OAE9B,OACIqE,EAAA,MAAA,CACIC,UAAW2C,EACPsB,IACCD,GAAeE,IACnB,YACS,SAAQ,cACN,OAAM,cACN,gBAAehE,SAAA,CAE1B6D,GACGnE,EAACwD,EAAWe,QACRnE,UAAWoE,EACXb,OAAO,WAAU,cACL,iBAAgBrD,SAE3B6D,IAGRC,GACGpE,EAACwD,EAAWiB,OAAM,CACdrE,UAAWsE,GAAuB,cACtB,0BAEXN,MAGP,EA8HkBO,IACd9K,KAAkBX,GAAawC,KAC7BsE,EAAC8C,EAAa,CACV1C,UAAW4C,EAAiB,aACP,IAATtI,GAAa,UAAY,WACrCyI,QAtUA,iBACpB,GAAa,IAATzI,GAAY,CACZ,MAAMkK,EAAYtF,KACc,QAAhClD,EAAgB,QAAhB9C,EAAA6B,GAASoD,eAAO,IAAAjF,OAAA,EAAAA,EAAGc,WAAa,IAAAgC,GAAAA,EAAEyI,WAAWD,GAC7CjK,GAAQiK,QAAAA,EAAa,EACzB,MACIjK,GAAQ,GACwB,QAAhCmK,EAAgB,QAAhBC,EAAA5J,GAASoD,eAAO,IAAAwG,OAAA,EAAAA,EAAG3K,WAAa,IAAA0K,GAAAA,EAAEnF,gBACtC,EA8T4CW,SAGpBN,EADM,IAATtF,GACIsK,EAEAC,EAFiB,CAAA,eAAA,MAO7BnL,IACGkG,EAAC8C,EAAa,CACV1C,UAAW2C,EACPC,EACAkC,gBAEQ,UACPhM,GAAawC,cACVU,GAAAV,GAAYG,kCAAWC,SAC3B,wBAEQ,aACZqH,QA5WH,KACbzH,IAAe5B,IACfA,GAAS4B,GAAatB,GAC1B,EAyWyCkG,SAErBN,EAACmF,EAAO,CAAA,eAAA,MAIhBnF,EAAC8C,EAAa,CACV1C,UAAW4C,EAAiB,aAExBrH,GACM,iBACA,uBAEVwH,QAASpJ,GAAOuG,SAEhBN,EAACoF,gCAIP,EAILC,GAA0BC,EAGrCjM"}
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,2 +1,2 @@
1
- import"./image-button.styles_qtt605.css";const t="mqb1plh",m="mpjl8bn",o="mroo32y",s="mz6wr40",n="m1hsk0n5";export{t as main,n as mainDisabled,s as mainError,o as mainSelected,m as mainSelectedText};
1
+ import"./image-button.styles_6n1qsr.css";const m="mqb1plh",t="mpjl8bn",o="mroo32y",s="mz6wr40",n="m1hsk0n5";export{m as main,n as mainDisabled,s as mainError,o as mainSelected,t as mainSelectedText};
2
2
  //# sourceMappingURL=image-button.styles.js.map
@@ -1,4 +1,4 @@
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);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);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
+ .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);}
package/index.d.ts CHANGED
@@ -80,4 +80,3 @@ export * from "./toggle";
80
80
  export * from "./typography";
81
81
  export * from "./uneditable-section";
82
82
  export * from "./unit-number";
83
- export * from "./v3_theme";
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{Accordion}from"./accordion/accordion.js";export{Alert}from"./alert/alert.js";export{LoadingDots}from"./animations/loading-dots/loading-dots.js";export{LoadingDotsSpinner}from"./animations/loading-dots-spinner/loading-dots-spinner.js";export{LoadingSpinner}from"./animations/loading-spinner/loading-spinner.js";export{ThemedLoadingSpinner}from"./animations/themed-loading-spinner/themed-loading-spinner.js";export{Avatar}from"./avatar/avatar.js";export{Badge}from"./badge/badge.js";export{BoxContainer}from"./box-container/box-container.js";export{Breadcrumb}from"./breadcrumb/breadcrumb.js";export{Button}from"./button/button.js";export{Calendar}from"./calendar/calendar.js";export{Card}from"./card/card.js";export{Checkbox}from"./checkbox/checkbox.js";export{CountdownTimer}from"./countdown-timer/countdown-timer.js";export{DashedBorder}from"./dashed-border/dashed-border.js";export{DataTable}from"./data-table/data-table.js";export{DateInput}from"./date-input/date-input.js";export{DateNavigator}from"./date-navigator/date-navigator.js";export{DateRangeInput}from"./date-range-input/date-range-input.js";export{Divider}from"./divider/divider.js";export{Drawer}from"./drawer/drawer.js";export{ESignature}from"./e-signature/e-signature.js";export{ErrorDisplay}from"./error-display/error-display.js";export{ErrorDisplayHelper}from"./error-display/helper.js";export{Example}from"./example/example.js";export{FeedbackRating}from"./feedback-rating/feedback-rating.js";export{FileDownload}from"./file-download/file-download.js";export{FileUpload}from"./file-upload/file-upload.js";export{Filter}from"./filter/filter.js";export{Footer}from"./footer/footer.js";export{Form}from"./form/index.js";export{Component,FullscreenImageCarousel}from"./fullscreen-image-carousel/fullscreen-image-carousel.js";export{HistogramSlider}from"./histogram-slider/histogram-slider.js";export{ImageButton}from"./image-button/image-button.js";export{Input}from"./input/input.js";export{InputGroup}from"./input-group/input-group.js";export{InputMultiSelect}from"./input-multi-select/input-multi-select.js";export{InputNestedMultiSelect}from"./input-nested-multi-select/input-nested-multi-select.js";export{InputNestedSelect}from"./input-nested-select/input-nested-select.js";export{InputRangeSelect}from"./input-range-select/input-range-select.js";export{InputRangeSlider}from"./input-range-slider/input-range-slider.js";export{InputSelect}from"./input-select/input-select.js";export{InputSlider}from"./input-slider/input-slider.js";export{Textarea}from"./input-textarea/textarea.js";export{LanguageSwitcher}from"./language-switcher/language-switcher.js";export{Layout}from"./layout/index.js";export{LinkList}from"./link-list/link-list.js";export{Markup}from"./markup/markup.js";export{MaskedInput}from"./masked-input/masked-input.js";export{Masthead}from"./masthead/masthead.js";export{Menu,MenuTrigger}from"./menu/menu.js";export{Modal}from"./modal/index.js";export{ModalV2}from"./modal-v2/index.js";export{Navbar}from"./navbar/navbar.js";export{NBComponent,NotificationBanner}from"./notification-banner/notification-banner.js";export{withNotificationBanner}from"./notification-banner/notification-banner-hoc.js";export{OtpInput}from"./otp-input/otp-input.js";export{Overlay}from"./overlay/overlay.js";export{Pagination}from"./pagination/pagination.js";export{PhoneNumberInput}from"./phone-number-input/phone-number-input.js";export{Pill}from"./pill/pill.js";export{Popover}from"./popover/popover.js";export{PopoverInline}from"./popover/popover-inline/popover-inline.js";export{PopoverTrigger}from"./popover/popover-trigger.js";export{PredictiveTextInput}from"./predictive-text-input/predictive-text-input.js";export{ProgressIndicator}from"./progress-indicator/progress-indicator.js";export{RadioButton}from"./radio-button/radio-button.js";export{SelectHistogram}from"./select-histogram/select-histogram.js";export{Sidenav}from"./sidenav/sidenav.js";export{SingpassButton}from"./singpass-button/singpass-button.js";export{SmartAppBanner}from"./smart-app-banner/smart-app-banner.js";export{Tab}from"./tab/tab.js";export{Table}from"./table/table.js";export{Tag}from"./tag/tag.js";export{TextList}from"./text-list/index.js";export{ThemeProvider}from"./theme/theme-provider/index.js";export{useInheritedThemeScope,useTheme}from"./theme/theme-provider/hooks.js";export{Border,BorderStyle,BorderThickness}from"./theme/tokens/border.js";export{Breakpoint}from"./theme/tokens/breakpoint.js";export{Colour,PrimitiveColours,SemanticColours}from"./theme/tokens/colour.js";export{ComponentToken}from"./theme/tokens/component.js";export{Font,FontSpec}from"./theme/tokens/font.js";export{MediaQuery}from"./theme/tokens/media-query.js";export{Motion}from"./theme/tokens/motion.js";export{Radius}from"./theme/tokens/radius.js";export{Shadow}from"./theme/tokens/shadow.js";export{Spacing}from"./theme/tokens/spacing.js";export{THEME_TYPES}from"./theme/types.js";export{extractFdsCssVariableName,formatUnitValue,getInheritedInlineCssVariables,normalizeCssLengthValue,parseCSSVariableValue,parsePxOrRemValue}from"./theme/utils/css-variable.js";export{generateFont,generateFontProperties}from"./theme/utils/font.js";export{getEffectiveTokenOrCustom,getResolvedValue,getTokenOrDefault,isTokenFromSet,isTokenWithPrefix,toCssValue}from"./theme/utils/token-resolver.js";export{useApplyStyle}from"./theme/utils/use-apply-styles.js";export{useDesignToken,useResolvedTokenValue}from"./theme/utils/use-design-token.js";export{DEFAULT_MOBILE_MAX_WIDTH_BREAKPOINT,useMaxWidthMediaQuery,useMediaQuery,useMinWidthMediaQuery,useResolvedBreakpointToken}from"./theme/utils/use-media-query.js";export{TimeRangePicker}from"./time-range-picker/time-range-picker.js";export{TimeSlotBar}from"./time-slot-bar/time-slot-bar.js";export{TimeSlotBarWeek}from"./time-slot-bar-week/time-slot-bar-week.js";export{TimeSlotWeekView}from"./time-slot-week-view/time-slot-week-view.js";export{Timeline}from"./timeline/timeline.js";export{Timepicker}from"./timepicker/timepicker.js";export{TimeTable}from"./timetable/timetable.js";export{Toast}from"./toast/toast.js";export{Toggle}from"./toggle/toggle.js";export{Typography}from"./typography/index.js";export{UneditableSection}from"./uneditable-section/index.js";export{UnitNumberInput}from"./unit-number/unit-number-input.js";export{V3_A11yPlaygroundTheme,V3_BookingSGTheme,V3_Border,V3_Breakpoint,V3_CCubeTheme,V3_Colour,V3_Font,V3_IMDATheme,V3_LifeSGTheme,V3_MediaQuery,V3_Motion,V3_MyLegacyTheme,V3_OneServiceTheme,V3_PATheme,V3_RBSTheme,V3_Radius,V3_SGWDigitalLobbyTheme,V3_SGWDigitalLobbyThemeBase,V3_SMGSTheme,V3_SPFTheme,V3_Shadow,V3_Spacing,V3_SupportGoWhereTheme,V3_SupportGoWhereThemeBase}from"./v3_theme/index.js";export{V3_DSThemeProvider}from"./v3_theme/ds-theme-provider.js";export{createThemeWithColourMode,getSystemColourMode,useDSTheme}from"./v3_theme/use-theme-mode.js";
1
+ export{Accordion}from"./accordion/accordion.js";export{Alert}from"./alert/alert.js";export{LoadingDots}from"./animations/loading-dots/loading-dots.js";export{LoadingDotsSpinner}from"./animations/loading-dots-spinner/loading-dots-spinner.js";export{LoadingSpinner}from"./animations/loading-spinner/loading-spinner.js";export{ThemedLoadingSpinner}from"./animations/themed-loading-spinner/themed-loading-spinner.js";export{Avatar}from"./avatar/avatar.js";export{Badge}from"./badge/badge.js";export{BoxContainer}from"./box-container/box-container.js";export{Breadcrumb}from"./breadcrumb/breadcrumb.js";export{Button}from"./button/button.js";export{Calendar}from"./calendar/calendar.js";export{Card}from"./card/card.js";export{Checkbox}from"./checkbox/checkbox.js";export{CountdownTimer}from"./countdown-timer/countdown-timer.js";export{DashedBorder}from"./dashed-border/dashed-border.js";export{DataTable}from"./data-table/data-table.js";export{DateInput}from"./date-input/date-input.js";export{DateNavigator}from"./date-navigator/date-navigator.js";export{DateRangeInput}from"./date-range-input/date-range-input.js";export{Divider}from"./divider/divider.js";export{Drawer}from"./drawer/drawer.js";export{ESignature}from"./e-signature/e-signature.js";export{ErrorDisplay}from"./error-display/error-display.js";export{ErrorDisplayHelper}from"./error-display/helper.js";export{Example}from"./example/example.js";export{FeedbackRating}from"./feedback-rating/feedback-rating.js";export{FileDownload}from"./file-download/file-download.js";export{FileUpload}from"./file-upload/file-upload.js";export{Filter}from"./filter/filter.js";export{Footer}from"./footer/footer.js";export{Form}from"./form/index.js";export{Component,FullscreenImageCarousel}from"./fullscreen-image-carousel/fullscreen-image-carousel.js";export{HistogramSlider}from"./histogram-slider/histogram-slider.js";export{ImageButton}from"./image-button/image-button.js";export{Input}from"./input/input.js";export{InputGroup}from"./input-group/input-group.js";export{InputMultiSelect}from"./input-multi-select/input-multi-select.js";export{InputNestedMultiSelect}from"./input-nested-multi-select/input-nested-multi-select.js";export{InputNestedSelect}from"./input-nested-select/input-nested-select.js";export{InputRangeSelect}from"./input-range-select/input-range-select.js";export{InputRangeSlider}from"./input-range-slider/input-range-slider.js";export{InputSelect}from"./input-select/input-select.js";export{InputSlider}from"./input-slider/input-slider.js";export{Textarea}from"./input-textarea/textarea.js";export{LanguageSwitcher}from"./language-switcher/language-switcher.js";export{Layout}from"./layout/index.js";export{LinkList}from"./link-list/link-list.js";export{Markup}from"./markup/markup.js";export{MaskedInput}from"./masked-input/masked-input.js";export{Masthead}from"./masthead/masthead.js";export{Menu,MenuTrigger}from"./menu/menu.js";export{Modal}from"./modal/index.js";export{ModalV2}from"./modal-v2/index.js";export{Navbar}from"./navbar/navbar.js";export{NBComponent,NotificationBanner}from"./notification-banner/notification-banner.js";export{withNotificationBanner}from"./notification-banner/notification-banner-hoc.js";export{OtpInput}from"./otp-input/otp-input.js";export{Overlay}from"./overlay/overlay.js";export{Pagination}from"./pagination/pagination.js";export{PhoneNumberInput}from"./phone-number-input/phone-number-input.js";export{Pill}from"./pill/pill.js";export{Popover}from"./popover/popover.js";export{PopoverInline}from"./popover/popover-inline/popover-inline.js";export{PopoverTrigger}from"./popover/popover-trigger.js";export{PredictiveTextInput}from"./predictive-text-input/predictive-text-input.js";export{ProgressIndicator}from"./progress-indicator/progress-indicator.js";export{RadioButton}from"./radio-button/radio-button.js";export{SelectHistogram}from"./select-histogram/select-histogram.js";export{Sidenav}from"./sidenav/sidenav.js";export{SingpassButton}from"./singpass-button/singpass-button.js";export{SmartAppBanner}from"./smart-app-banner/smart-app-banner.js";export{Tab}from"./tab/tab.js";export{Table}from"./table/table.js";export{Tag}from"./tag/tag.js";export{TextList}from"./text-list/index.js";export{ThemeProvider}from"./theme/theme-provider/index.js";export{useInheritedThemeScope,useTheme}from"./theme/theme-provider/hooks.js";export{Border,BorderStyle,BorderThickness}from"./theme/tokens/border.js";export{Breakpoint}from"./theme/tokens/breakpoint.js";export{Colour,PrimitiveColours,SemanticColours}from"./theme/tokens/colour.js";export{ComponentToken}from"./theme/tokens/component.js";export{Font,FontSpec}from"./theme/tokens/font.js";export{MediaQuery}from"./theme/tokens/media-query.js";export{Motion}from"./theme/tokens/motion.js";export{Radius}from"./theme/tokens/radius.js";export{Shadow}from"./theme/tokens/shadow.js";export{Spacing}from"./theme/tokens/spacing.js";export{THEME_TYPES}from"./theme/types.js";export{formatUnitValue,parsePxOrRemValue}from"./theme/utils/css-variable.js";export{useApplyStyle}from"./theme/utils/use-apply-styles.js";export{useDesignToken}from"./theme/utils/use-design-token.js";export{useMaxWidthMediaQuery,useMediaQuery,useMinWidthMediaQuery,useResolvedBreakpointToken}from"./theme/utils/use-media-query.js";export{TimeRangePicker}from"./time-range-picker/time-range-picker.js";export{TimeSlotBar}from"./time-slot-bar/time-slot-bar.js";export{TimeSlotBarWeek}from"./time-slot-bar-week/time-slot-bar-week.js";export{TimeSlotWeekView}from"./time-slot-week-view/time-slot-week-view.js";export{Timeline}from"./timeline/timeline.js";export{Timepicker}from"./timepicker/timepicker.js";export{TimeTable}from"./timetable/timetable.js";export{Toast}from"./toast/toast.js";export{Toggle}from"./toggle/toggle.js";export{Typography}from"./typography/index.js";export{UneditableSection}from"./uneditable-section/index.js";export{UnitNumberInput}from"./unit-number/unit-number-input.js";
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- import{__rest as e}from"../_virtual/_tslib.js";import{jsx as r,jsxs as o}from"react/jsx-runtime";import t from"clsx";import i,{useState as a,useRef as s,useEffect as l}from"react";import{Input as d}from"../input/input.js";import{VisuallyHidden as n,concatIds as p}from"../shared/accessibility/index.js";import"../theme/theme-provider/index.js";import"../theme/theme-provider/context.js";import"../theme/tokens/border.js";import"../theme/tokens/colour.js";import"../theme/tokens/font.js";import"../theme/tokens/media-query.js";import"../util/calendar-helper.js";import"../external/dayjs/dayjs.min.js";import{useId as c}from"../util/simple-id-generator.js";import"../util/string-helper.js";import"@react-aria/live-announcer";import"../theme/utils/use-media-query.js";import"../shared/dropdown-list/dropdown-label.styles_1dwmd8f.css";import{DropdownList as m}from"../shared/dropdown-list/dropdown-list.js";import{DropdownListState as h}from"../shared/dropdown-list/dropdown-list-state.js";import{ExpandableElement as u}from"../shared/dropdown-list/expandable-element.js";import"@lifesg/react-icons/caret-right";import"@lifesg/react-icons/exclamation-circle-fill";import"@lifesg/react-icons/minus-square-fill";import"@lifesg/react-icons/square";import"@lifesg/react-icons/square-tick-fill";import"@lifesg/react-icons/tick";import"react-virtuoso";import"../markup/markup.js";import"../shared/component-loading-spinner/component-loading-spinner.styles_15eq02i.css";import{ElementWithDropdown as b}from"../shared/dropdown-wrapper/element-with-dropdown.js";import{InputBox as f}from"../shared/input-wrapper/input-wrapper.js";import"../shared/dropdown-list/dropdown-list.styles_1kt4zhf.css";import"../shared/dropdown-list/dropdown-search.js";import"../shared/dropdown-list/nested-dropdown-list.styles_wdhxoe.css";import"immer";import"../external/lodash/_getTag.js";import"../external/lodash/isArguments.js";import"../external/lodash/_baseGetTag.js";import"../external/lodash/isBuffer.js";import"../external/lodash/isTypedArray.js";import"../external/lodash/_Stack.js";import"../external/lodash/_SetCache.js";import"../external/lodash/_equalByTag.js";import"../shared/dropdown-list/virtuoso-components.js";import{ValueLabel as x,LabelContainer as y,PlaceholderLabel as j}from"../shared/dropdown-wrapper/dropdown-wrapper.js";import{fieldSelector as w,divider as g,dividerReadOnly as v,fieldInput as _,fieldInputNoBorder as T,fieldInputReadOnly as I,fieldWrapper as S,selectorReadOnly as k,expandableElementNoBorder as N}from"./input-group-list-addon.styles.js";const O=(i,O)=>{var{addon:A,error:R,onChange:C,readOnly:B,disabled:q,className:D,onBlur:E,noBorder:P,"data-testid":H,"aria-labelledby":G,"aria-describedby":M,"aria-invalid":$,"aria-label":F}=i,L=e(i,["addon","error","onChange","readOnly","disabled","className","onBlur","noBorder","data-testid","aria-labelledby","aria-describedby","aria-invalid","aria-label"]);const{valueExtractor:Z,listExtractor:z,enableSearch:V,hideNoResultsDisplay:W,noResultsDescription:J,searchPlaceholder:K,searchFunction:Q,onSearch:U,placeholder:X="Select",displayValueExtractor:Y,"data-selector-testid":ee,options:re,selectedOption:oe,onSelectOption:te,optionsLoadState:ie,optionTruncationType:ae,onRetry:se,onHideOptions:le,onShowOptions:de,dropdownZIndex:ne,dropdownRootNode:pe,"aria-label":ce}=A.attributes,{position:me="left"}=A,[he,ue]=a(oe),[be,fe]=a(!1),[xe,ye]=a(!1),je=c(),we=`${je}-listbox`,ge=`${je}-instruction`,ve=`${je}-combobox-label`,_e=`${je}-textbox-label`,Te=s(null),Ie=s(null);l((()=>{ue(oe)}),[oe]);const Se=()=>{if(he)return Y?Y(he):Z?Z(he):he.toString()},ke=e=>{e?null==de||de():null==le||le()},Ne=(e,r)=>{var o;null===(o=Ie.current)||void 0===o||o.focus(),ue(e),fe(!1),ke(!1),null==te||te(e,r)},Oe=()=>{be&&(fe(!1),ke(!1))},Ae=()=>{fe(!0),ke(!0),ye(!0)},Re=e=>{fe(!1),ke(!1),"click"!==e&&(ye(!1),null==E||E())},Ce=()=>{var e;null===(e=Ie.current)||void 0===e||e.focus(),fe(!1),ke(!1)},Be=()=>o("div",{children:[r(u,{ref:Ie,disabled:q,expanded:be,listboxId:we,popupRole:"listbox",readOnly:B,"aria-labelledby":p(G,ve),"aria-describedby":p(M,ge),"aria-invalid":$,"data-position":me,className:t(P&&N),children:r(y,{disabled:q,children:he?r(x,{children:Se()}):r(j,{children:X})})}),r(n,{id:ge,children:"Press space to open options"})]}),qe=()=>r(m,{listboxId:we,listItems:re,onSelectItem:Ne,onDismiss:Oe,valueExtractor:Z,listExtractor:z,enableSearch:V,hideNoResultsDisplay:W,noResultsDescription:J,searchPlaceholder:K,searchFunction:Q,onSearch:U,selectedItems:he?[he]:[],itemsLoadState:ie,itemTruncationType:ae,onRetry:se,matchElementWidth:!0});return r(h,{children:o(f,{focused:xe,disabled:q,readOnly:B,error:R,ref:Te,noBorder:P,"data-testid":H,tabIndex:-1,onFocus:()=>{xe||be||ye(!0)},onBlur:e=>{xe&&!be&&Te.current&&!Te.current.contains(e.relatedTarget)&&(ye(!1),null==E||E())},"data-position":me,className:t(S,D),children:[r(n,{"aria-hidden":!0,id:ve,children:ce}),r("div",{"data-testid":ee,className:w,children:B?he?r("div",{"data-testid":"selector-label",tabIndex:0,role:"combobox","aria-haspopup":"listbox","aria-readonly":!0,"aria-expanded":!1,"aria-labelledby":G,"aria-describedby":M,"aria-invalid":$,className:k,children:r(x,{children:Se()})}):null:r(b,{enabled:!B&&!q,isOpen:be,renderElement:Be,renderDropdown:qe,onOpen:Ae,onClose:Re,onDismiss:Ce,clickToToggle:!0,offset:8,alignment:"right"===me?"right":"left",fitAvailableHeight:!0,customZIndex:ne,rootNode:pe,positionRef:Te})}),r("div",{"data-position":me,className:t(g,B&&v)}),r(n,{"aria-hidden":!0,id:_e,children:F}),r("div",{"data-position":me,className:t(_,P&&T,B&&I),children:r(d,Object.assign({ref:O},L,{readOnly:B,disabled:q,error:R,onChange:e=>{C&&C(e)},"data-testid":"input",styleType:"no-border","aria-labelledby":p(G,_e),"aria-describedby":M,"aria-invalid":$}))})]})})},A=i.forwardRef(O);export{O as Component,A as InputGroupListAddon};
1
+ import{__rest as e}from"../_virtual/_tslib.js";import{jsx as r,jsxs as o}from"react/jsx-runtime";import i from"clsx";import t,{useState as a,useRef as s,useEffect as l}from"react";import{Input as d}from"../input/input.js";import{VisuallyHidden as n,concatIds as p}from"../shared/accessibility/index.js";import"../theme/theme-provider/index.js";import"../theme/theme-provider/context.js";import"../theme/tokens/border.js";import"../theme/tokens/colour.js";import"../theme/tokens/font.js";import"../theme/tokens/media-query.js";import"../util/calendar-helper.js";import"../external/dayjs/dayjs.min.js";import{useId as c}from"../util/simple-id-generator.js";import"../util/string-helper.js";import"@react-aria/live-announcer";import"../theme/utils/use-media-query.js";import"../shared/dropdown-list/dropdown-label.styles_mloii0.css";import{DropdownList as m}from"../shared/dropdown-list/dropdown-list.js";import{DropdownListState as h}from"../shared/dropdown-list/dropdown-list-state.js";import{ExpandableElement as u}from"../shared/dropdown-list/expandable-element.js";import"@lifesg/react-icons/caret-right";import"@lifesg/react-icons/exclamation-circle-fill";import"@lifesg/react-icons/minus-square-fill";import"@lifesg/react-icons/square";import"@lifesg/react-icons/square-tick-fill";import"@lifesg/react-icons/tick";import"react-virtuoso";import"../markup/markup.js";import"../shared/component-loading-spinner/component-loading-spinner.styles_15eq02i.css";import{ElementWithDropdown as b}from"../shared/dropdown-wrapper/element-with-dropdown.js";import{InputBox as f}from"../shared/input-wrapper/input-wrapper.js";import"../shared/dropdown-list/dropdown-list.styles_konwm.css";import"../shared/dropdown-list/dropdown-search.js";import"../shared/dropdown-list/nested-dropdown-list.styles_wdhxoe.css";import"immer";import"../external/lodash/_getTag.js";import"../external/lodash/isArguments.js";import"../external/lodash/_baseGetTag.js";import"../external/lodash/isBuffer.js";import"../external/lodash/isTypedArray.js";import"../external/lodash/_Stack.js";import"../external/lodash/_SetCache.js";import"../external/lodash/_equalByTag.js";import"../shared/dropdown-list/virtuoso-components.js";import{ValueLabel as x,LabelContainer as y,PlaceholderLabel as j}from"../shared/dropdown-wrapper/dropdown-wrapper.js";import{fieldSelector as w,divider as g,dividerReadOnly as v,fieldInput as _,fieldInputNoBorder as T,fieldInputReadOnly as I,fieldWrapper as S,selectorReadOnly as k,expandableElementNoBorder as N}from"./input-group-list-addon.styles.js";const O=(t,O)=>{var{addon:A,error:R,onChange:C,readOnly:B,disabled:q,className:D,onBlur:E,noBorder:P,"data-testid":H,"aria-labelledby":G,"aria-describedby":M,"aria-invalid":$,"aria-label":F}=t,L=e(t,["addon","error","onChange","readOnly","disabled","className","onBlur","noBorder","data-testid","aria-labelledby","aria-describedby","aria-invalid","aria-label"]);const{valueExtractor:Z,listExtractor:V,enableSearch:W,hideNoResultsDisplay:z,noResultsDescription:J,searchPlaceholder:K,searchFunction:Q,onSearch:U,placeholder:X="Select",displayValueExtractor:Y,"data-selector-testid":ee,options:re,selectedOption:oe,onSelectOption:ie,optionsLoadState:te,optionTruncationType:ae,onRetry:se,onHideOptions:le,onShowOptions:de,dropdownZIndex:ne,dropdownRootNode:pe,"aria-label":ce}=A.attributes,{position:me="left"}=A,[he,ue]=a(oe),[be,fe]=a(!1),[xe,ye]=a(!1),je=c(),we=`${je}-listbox`,ge=`${je}-instruction`,ve=`${je}-combobox-label`,_e=`${je}-textbox-label`,Te=s(null),Ie=s(null);l((()=>{ue(oe)}),[oe]);const Se=()=>{if(he)return Y?Y(he):Z?Z(he):he.toString()},ke=e=>{e?null==de||de():null==le||le()},Ne=(e,r)=>{var o;null===(o=Ie.current)||void 0===o||o.focus(),ue(e),fe(!1),ke(!1),null==ie||ie(e,r)},Oe=()=>{be&&(fe(!1),ke(!1))},Ae=()=>{fe(!0),ke(!0),ye(!0)},Re=e=>{fe(!1),ke(!1),"click"!==e&&(ye(!1),null==E||E())},Ce=()=>{var e;null===(e=Ie.current)||void 0===e||e.focus(),fe(!1),ke(!1)},Be=()=>o("div",{children:[r(u,{ref:Ie,disabled:q,expanded:be,listboxId:we,popupRole:"listbox",readOnly:B,"aria-labelledby":p(G,ve),"aria-describedby":p(M,ge),"aria-invalid":$,"data-position":me,className:i(P&&N),children:r(y,{disabled:q,children:he?r(x,{children:Se()}):r(j,{children:X})})}),r(n,{id:ge,children:"Press space to open options"})]}),qe=()=>r(m,{listboxId:we,listItems:re,onSelectItem:Ne,onDismiss:Oe,valueExtractor:Z,listExtractor:V,enableSearch:W,hideNoResultsDisplay:z,noResultsDescription:J,searchPlaceholder:K,searchFunction:Q,onSearch:U,selectedItems:he?[he]:[],itemsLoadState:te,itemTruncationType:ae,onRetry:se,matchElementWidth:!0});return r(h,{children:o(f,{focused:xe,disabled:q,readOnly:B,error:R,ref:Te,noBorder:P,"data-testid":H,tabIndex:-1,onFocus:()=>{xe||be||ye(!0)},onBlur:e=>{xe&&!be&&Te.current&&!Te.current.contains(e.relatedTarget)&&(ye(!1),null==E||E())},"data-position":me,className:i(S,D),children:[r(n,{"aria-hidden":!0,id:ve,children:ce}),r("div",{"data-testid":ee,className:w,children:B?he?r("div",{"data-testid":"selector-label",tabIndex:0,role:"combobox","aria-haspopup":"listbox","aria-readonly":!0,"aria-expanded":!1,"aria-labelledby":G,"aria-describedby":M,"aria-invalid":$,className:k,children:r(x,{children:Se()})}):null:r(b,{enabled:!B&&!q,isOpen:be,renderElement:Be,renderDropdown:qe,onOpen:Ae,onClose:Re,onDismiss:Ce,clickToToggle:!0,offset:8,alignment:"right"===me?"right":"left",fitAvailableHeight:!0,customZIndex:ne,rootNode:pe,positionRef:Te})}),r("div",{"data-position":me,className:i(g,B&&v)}),r(n,{"aria-hidden":!0,id:_e,children:F}),r("div",{"data-position":me,className:i(_,P&&T,B&&I),children:r(d,Object.assign({ref:O},L,{readOnly:B,disabled:q,error:R,onChange:e=>{C&&C(e)},"data-testid":"input",styleType:"no-border","aria-labelledby":p(G,_e),"aria-describedby":M,"aria-invalid":$}))})]})})},A=t.forwardRef(O);export{O as Component,A as InputGroupListAddon};
2
2
  //# sourceMappingURL=input-group-list-addon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-group-list-addon.js","sources":["../../src/input-group/input-group-list-addon.tsx"],"sourcesContent":["import type { OpenChangeReason } from \"@floating-ui/react\";\nimport clsx from \"clsx\";\nimport React, { useEffect, useRef, useState } from \"react\";\n\nimport { Input } from \"../input\";\nimport { concatIds, VisuallyHidden } from \"../shared/accessibility\";\nimport {\n DropdownList,\n DropdownListState,\n ExpandableElement,\n} from \"../shared/dropdown-list\";\nimport { ElementWithDropdown } from \"../shared/dropdown-wrapper\";\nimport {\n LabelContainer,\n PlaceholderLabel,\n ValueLabel,\n} from \"../shared/dropdown-wrapper/dropdown-wrapper\";\nimport { InputBox } from \"../shared/input-wrapper\";\nimport { useId } from \"../util\";\nimport * as styles from \"./input-group-list-addon.styles\";\nimport type { InputGroupProps, ListAddon } from \"./types\";\n\nexport const Component = <T, V>(\n {\n addon,\n error,\n onChange,\n readOnly,\n disabled,\n className,\n onBlur,\n noBorder,\n \"data-testid\": testId,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-invalid\": ariaInvalid,\n \"aria-label\": textboxAriaLabel,\n ...otherProps\n }: InputGroupProps<T, V>,\n ref: React.Ref<HTMLInputElement>\n) => {\n const {\n /* display props */\n valueExtractor,\n listExtractor,\n /* search props */\n enableSearch,\n hideNoResultsDisplay,\n noResultsDescription,\n searchPlaceholder,\n searchFunction,\n onSearch,\n /* list addon props */\n placeholder = \"Select\",\n displayValueExtractor,\n \"data-selector-testid\": selectorTestId,\n options,\n selectedOption,\n onSelectOption,\n optionsLoadState,\n optionTruncationType,\n onRetry,\n onHideOptions,\n onShowOptions,\n dropdownZIndex,\n dropdownRootNode,\n \"aria-label\": comboboxAriaLabel,\n } = addon!.attributes as ListAddon<T, V>;\n\n const { position = \"left\" } = addon!;\n\n // =============================================================================\n // CONST, STATE, REF\n // =============================================================================\n const [selected, setSelected] = useState<T | undefined>(selectedOption);\n const [showOptions, setShowOptions] = useState<boolean>(false);\n const [focused, setFocused] = useState<boolean>(false);\n const internalId = useId();\n const listboxId = `${internalId}-listbox`;\n const instructionId = `${internalId}-instruction`;\n const comboboxLabelId = `${internalId}-combobox-label`;\n const textboxLabelId = `${internalId}-textbox-label`;\n\n const nodeRef = useRef<HTMLDivElement>(null);\n const selectorRef = useRef<HTMLButtonElement>(null);\n\n // =============================================================================\n // EFFECTS\n // =============================================================================\n useEffect(() => {\n setSelected(selectedOption);\n }, [selectedOption]);\n\n // =============================================================================\n // HELPER FUNCTIONS\n // =============================================================================\n const getDisplayValue = () => {\n if (!selected) return;\n\n if (displayValueExtractor) {\n return displayValueExtractor(selected);\n }\n\n if (valueExtractor) {\n return valueExtractor(selected);\n }\n\n return selected.toString();\n };\n\n const triggerOptionDisplayCallback = (show: boolean) => {\n if (show) {\n onShowOptions?.();\n } else {\n onHideOptions?.();\n }\n };\n\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleListItemClick = (item: T, extractedValue: V) => {\n selectorRef.current?.focus();\n setSelected(item);\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n\n onSelectOption?.(item, extractedValue);\n };\n\n const handleListDismiss = () => {\n if (showOptions) {\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) onChange(event);\n };\n\n const handleNodeFocus = () => {\n if (!focused && !showOptions) {\n setFocused(true);\n }\n };\n\n const handleNodeBlur = (e: React.FocusEvent) => {\n if (\n focused &&\n !showOptions &&\n nodeRef.current &&\n !nodeRef.current.contains(e.relatedTarget as Node)\n ) {\n setFocused(false);\n onBlur?.();\n }\n };\n\n const handleOpen = () => {\n setShowOptions(true);\n triggerOptionDisplayCallback(true);\n setFocused(true);\n };\n\n const handleClose = (reason: OpenChangeReason | undefined) => {\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n\n // click to toggle should not blur the input\n if (reason !== \"click\") {\n setFocused(false);\n onBlur?.();\n }\n };\n\n const handleDismiss = () => {\n selectorRef.current?.focus();\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n const renderLabel = () => {\n if (selected) {\n return <ValueLabel>{getDisplayValue()}</ValueLabel>;\n }\n\n return <PlaceholderLabel>{placeholder}</PlaceholderLabel>;\n };\n\n const renderSelectorContent = () => (\n <LabelContainer disabled={disabled}>{renderLabel()}</LabelContainer>\n );\n\n const renderElement = () => {\n return (\n <div>\n <ExpandableElement\n ref={selectorRef}\n disabled={disabled}\n expanded={showOptions}\n listboxId={listboxId}\n popupRole=\"listbox\"\n readOnly={readOnly}\n aria-labelledby={concatIds(ariaLabelledBy, comboboxLabelId)}\n aria-describedby={concatIds(ariaDescribedBy, instructionId)}\n aria-invalid={ariaInvalid}\n data-position={position}\n className={clsx(\n noBorder && styles.expandableElementNoBorder\n )}\n >\n {renderSelectorContent()}\n </ExpandableElement>\n <VisuallyHidden id={instructionId}>\n Press space to open options\n </VisuallyHidden>\n </div>\n );\n };\n\n const renderDropdown = () => {\n return (\n <DropdownList\n listboxId={listboxId}\n listItems={options}\n onSelectItem={handleListItemClick}\n onDismiss={handleListDismiss}\n valueExtractor={valueExtractor}\n listExtractor={listExtractor}\n enableSearch={enableSearch}\n hideNoResultsDisplay={hideNoResultsDisplay}\n noResultsDescription={noResultsDescription}\n searchPlaceholder={searchPlaceholder}\n searchFunction={searchFunction}\n onSearch={onSearch}\n selectedItems={selected ? [selected] : []}\n itemsLoadState={optionsLoadState}\n itemTruncationType={optionTruncationType}\n onRetry={onRetry}\n matchElementWidth\n />\n );\n };\n\n const renderSelector = () => {\n if (readOnly) {\n return selected ? (\n <div\n data-testid=\"selector-label\"\n tabIndex={0}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-readonly\n aria-expanded={false}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n className={styles.selectorReadOnly}\n >\n <ValueLabel>{getDisplayValue()}</ValueLabel>\n </div>\n ) : null;\n } else {\n return (\n <ElementWithDropdown\n enabled={!readOnly && !disabled}\n isOpen={showOptions}\n renderElement={renderElement}\n renderDropdown={renderDropdown}\n onOpen={handleOpen}\n onClose={handleClose}\n onDismiss={handleDismiss}\n clickToToggle\n offset={8}\n alignment={position === \"right\" ? \"right\" : \"left\"}\n fitAvailableHeight\n customZIndex={dropdownZIndex}\n rootNode={dropdownRootNode}\n positionRef={nodeRef}\n />\n );\n }\n };\n\n return (\n <DropdownListState>\n <InputBox\n focused={focused}\n disabled={disabled}\n readOnly={readOnly}\n error={error}\n ref={nodeRef}\n noBorder={noBorder}\n data-testid={testId}\n tabIndex={-1}\n onFocus={handleNodeFocus}\n onBlur={handleNodeBlur}\n data-position={position}\n className={clsx(styles.fieldWrapper, className)}\n >\n <VisuallyHidden aria-hidden id={comboboxLabelId}>\n {comboboxAriaLabel}\n </VisuallyHidden>\n <div\n data-testid={selectorTestId}\n className={styles.fieldSelector}\n >\n {renderSelector()}\n </div>\n <div\n data-position={position}\n className={clsx(\n styles.divider,\n readOnly && styles.dividerReadOnly\n )}\n />\n <VisuallyHidden aria-hidden id={textboxLabelId}>\n {textboxAriaLabel}\n </VisuallyHidden>\n <div\n data-position={position}\n className={clsx(\n styles.fieldInput,\n noBorder && styles.fieldInputNoBorder,\n readOnly && styles.fieldInputReadOnly\n )}\n >\n <Input\n ref={ref}\n {...otherProps}\n readOnly={readOnly}\n disabled={disabled}\n error={error}\n onChange={handleInputChange}\n data-testid=\"input\"\n styleType=\"no-border\"\n aria-labelledby={concatIds(\n ariaLabelledBy,\n textboxLabelId\n )}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n />\n </div>\n </InputBox>\n </DropdownListState>\n );\n};\n\nexport const InputGroupListAddon = React.forwardRef(Component);\n"],"names":["Component","_a","ref","addon","error","onChange","readOnly","disabled","className","onBlur","noBorder","testId","ariaLabelledBy","ariaDescribedBy","ariaInvalid","textboxAriaLabel","otherProps","__rest","valueExtractor","listExtractor","enableSearch","hideNoResultsDisplay","noResultsDescription","searchPlaceholder","searchFunction","onSearch","placeholder","displayValueExtractor","selectorTestId","options","selectedOption","onSelectOption","optionsLoadState","optionTruncationType","onRetry","onHideOptions","onShowOptions","dropdownZIndex","dropdownRootNode","comboboxAriaLabel","attributes","position","selected","setSelected","useState","showOptions","setShowOptions","focused","setFocused","internalId","useId","listboxId","instructionId","comboboxLabelId","textboxLabelId","nodeRef","useRef","selectorRef","useEffect","getDisplayValue","toString","triggerOptionDisplayCallback","show","handleListItemClick","item","extractedValue","current","focus","handleListDismiss","handleOpen","handleClose","reason","handleDismiss","renderElement","_jsxs","children","_jsx","ExpandableElement","expanded","popupRole","concatIds","clsx","styles.expandableElementNoBorder","LabelContainer","ValueLabel","PlaceholderLabel","VisuallyHidden","id","renderDropdown","DropdownList","listItems","onSelectItem","onDismiss","selectedItems","itemsLoadState","itemTruncationType","matchElementWidth","DropdownListState","InputBox","tabIndex","onFocus","e","contains","relatedTarget","styles.fieldWrapper","styles.fieldSelector","role","styles.selectorReadOnly","ElementWithDropdown","enabled","isOpen","onOpen","onClose","clickToToggle","offset","alignment","fitAvailableHeight","customZIndex","rootNode","positionRef","styles.divider","styles.dividerReadOnly","styles.fieldInput","styles.fieldInputNoBorder","styles.fieldInputReadOnly","Input","Object","assign","event","styleType","InputGroupListAddon","React","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"input-group-list-addon.js","sources":["../../src/input-group/input-group-list-addon.tsx"],"sourcesContent":["import type { OpenChangeReason } from \"@floating-ui/react\";\nimport clsx from \"clsx\";\nimport React, { useEffect, useRef, useState } from \"react\";\n\nimport { Input } from \"../input\";\nimport { concatIds, VisuallyHidden } from \"../shared/accessibility\";\nimport {\n DropdownList,\n DropdownListState,\n ExpandableElement,\n} from \"../shared/dropdown-list\";\nimport { ElementWithDropdown } from \"../shared/dropdown-wrapper\";\nimport {\n LabelContainer,\n PlaceholderLabel,\n ValueLabel,\n} from \"../shared/dropdown-wrapper/dropdown-wrapper\";\nimport { InputBox } from \"../shared/input-wrapper\";\nimport { useId } from \"../util\";\nimport * as styles from \"./input-group-list-addon.styles\";\nimport type { InputGroupProps, ListAddon } from \"./types\";\n\nexport const Component = <T, V>(\n {\n addon,\n error,\n onChange,\n readOnly,\n disabled,\n className,\n onBlur,\n noBorder,\n \"data-testid\": testId,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-invalid\": ariaInvalid,\n \"aria-label\": textboxAriaLabel,\n ...otherProps\n }: InputGroupProps<T, V>,\n ref: React.Ref<HTMLInputElement>\n) => {\n const {\n /* display props */\n valueExtractor,\n listExtractor,\n /* search props */\n enableSearch,\n hideNoResultsDisplay,\n noResultsDescription,\n searchPlaceholder,\n searchFunction,\n onSearch,\n /* list addon props */\n placeholder = \"Select\",\n displayValueExtractor,\n \"data-selector-testid\": selectorTestId,\n options,\n selectedOption,\n onSelectOption,\n optionsLoadState,\n optionTruncationType,\n onRetry,\n onHideOptions,\n onShowOptions,\n dropdownZIndex,\n dropdownRootNode,\n \"aria-label\": comboboxAriaLabel,\n } = addon!.attributes as ListAddon<T, V>;\n\n const { position = \"left\" } = addon!;\n\n // =============================================================================\n // CONST, STATE, REF\n // =============================================================================\n const [selected, setSelected] = useState<T | undefined>(selectedOption);\n const [showOptions, setShowOptions] = useState<boolean>(false);\n const [focused, setFocused] = useState<boolean>(false);\n const internalId = useId();\n const listboxId = `${internalId}-listbox`;\n const instructionId = `${internalId}-instruction`;\n const comboboxLabelId = `${internalId}-combobox-label`;\n const textboxLabelId = `${internalId}-textbox-label`;\n\n const nodeRef = useRef<HTMLDivElement>(null);\n const selectorRef = useRef<HTMLButtonElement>(null);\n\n // =============================================================================\n // EFFECTS\n // =============================================================================\n useEffect(() => {\n setSelected(selectedOption);\n }, [selectedOption]);\n\n // =============================================================================\n // HELPER FUNCTIONS\n // =============================================================================\n const getDisplayValue = () => {\n if (!selected) return;\n\n if (displayValueExtractor) {\n return displayValueExtractor(selected);\n }\n\n if (valueExtractor) {\n return valueExtractor(selected);\n }\n\n return selected.toString();\n };\n\n const triggerOptionDisplayCallback = (show: boolean) => {\n if (show) {\n onShowOptions?.();\n } else {\n onHideOptions?.();\n }\n };\n\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleListItemClick = (item: T, extractedValue: V) => {\n selectorRef.current?.focus();\n setSelected(item);\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n\n onSelectOption?.(item, extractedValue);\n };\n\n const handleListDismiss = () => {\n if (showOptions) {\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n }\n };\n\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) onChange(event);\n };\n\n const handleNodeFocus = () => {\n if (!focused && !showOptions) {\n setFocused(true);\n }\n };\n\n const handleNodeBlur = (e: React.FocusEvent) => {\n if (\n focused &&\n !showOptions &&\n nodeRef.current &&\n !nodeRef.current.contains(e.relatedTarget as Node)\n ) {\n setFocused(false);\n onBlur?.();\n }\n };\n\n const handleOpen = () => {\n setShowOptions(true);\n triggerOptionDisplayCallback(true);\n setFocused(true);\n };\n\n const handleClose = (reason: OpenChangeReason | undefined) => {\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n\n // click to toggle should not blur the input\n if (reason !== \"click\") {\n setFocused(false);\n onBlur?.();\n }\n };\n\n const handleDismiss = () => {\n selectorRef.current?.focus();\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n const renderLabel = () => {\n if (selected) {\n return <ValueLabel>{getDisplayValue()}</ValueLabel>;\n }\n\n return <PlaceholderLabel>{placeholder}</PlaceholderLabel>;\n };\n\n const renderSelectorContent = () => (\n <LabelContainer disabled={disabled}>{renderLabel()}</LabelContainer>\n );\n\n const renderElement = () => {\n return (\n <div>\n <ExpandableElement\n ref={selectorRef}\n disabled={disabled}\n expanded={showOptions}\n listboxId={listboxId}\n popupRole=\"listbox\"\n readOnly={readOnly}\n aria-labelledby={concatIds(ariaLabelledBy, comboboxLabelId)}\n aria-describedby={concatIds(ariaDescribedBy, instructionId)}\n aria-invalid={ariaInvalid}\n data-position={position}\n className={clsx(\n noBorder && styles.expandableElementNoBorder\n )}\n >\n {renderSelectorContent()}\n </ExpandableElement>\n <VisuallyHidden id={instructionId}>\n Press space to open options\n </VisuallyHidden>\n </div>\n );\n };\n\n const renderDropdown = () => {\n return (\n <DropdownList\n listboxId={listboxId}\n listItems={options}\n onSelectItem={handleListItemClick}\n onDismiss={handleListDismiss}\n valueExtractor={valueExtractor}\n listExtractor={listExtractor}\n enableSearch={enableSearch}\n hideNoResultsDisplay={hideNoResultsDisplay}\n noResultsDescription={noResultsDescription}\n searchPlaceholder={searchPlaceholder}\n searchFunction={searchFunction}\n onSearch={onSearch}\n selectedItems={selected ? [selected] : []}\n itemsLoadState={optionsLoadState}\n itemTruncationType={optionTruncationType}\n onRetry={onRetry}\n matchElementWidth\n />\n );\n };\n\n const renderSelector = () => {\n if (readOnly) {\n return selected ? (\n <div\n data-testid=\"selector-label\"\n tabIndex={0}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-readonly\n aria-expanded={false}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n className={styles.selectorReadOnly}\n >\n <ValueLabel>{getDisplayValue()}</ValueLabel>\n </div>\n ) : null;\n } else {\n return (\n <ElementWithDropdown\n enabled={!readOnly && !disabled}\n isOpen={showOptions}\n renderElement={renderElement}\n renderDropdown={renderDropdown}\n onOpen={handleOpen}\n onClose={handleClose}\n onDismiss={handleDismiss}\n clickToToggle\n offset={8}\n alignment={position === \"right\" ? \"right\" : \"left\"}\n fitAvailableHeight\n customZIndex={dropdownZIndex}\n rootNode={dropdownRootNode}\n positionRef={nodeRef}\n />\n );\n }\n };\n\n return (\n <DropdownListState>\n <InputBox\n focused={focused}\n disabled={disabled}\n readOnly={readOnly}\n error={error}\n ref={nodeRef}\n noBorder={noBorder}\n data-testid={testId}\n tabIndex={-1}\n onFocus={handleNodeFocus}\n onBlur={handleNodeBlur}\n data-position={position}\n className={clsx(styles.fieldWrapper, className)}\n >\n <VisuallyHidden aria-hidden id={comboboxLabelId}>\n {comboboxAriaLabel}\n </VisuallyHidden>\n <div\n data-testid={selectorTestId}\n className={styles.fieldSelector}\n >\n {renderSelector()}\n </div>\n <div\n data-position={position}\n className={clsx(\n styles.divider,\n readOnly && styles.dividerReadOnly\n )}\n />\n <VisuallyHidden aria-hidden id={textboxLabelId}>\n {textboxAriaLabel}\n </VisuallyHidden>\n <div\n data-position={position}\n className={clsx(\n styles.fieldInput,\n noBorder && styles.fieldInputNoBorder,\n readOnly && styles.fieldInputReadOnly\n )}\n >\n <Input\n ref={ref}\n {...otherProps}\n readOnly={readOnly}\n disabled={disabled}\n error={error}\n onChange={handleInputChange}\n data-testid=\"input\"\n styleType=\"no-border\"\n aria-labelledby={concatIds(\n ariaLabelledBy,\n textboxLabelId\n )}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n />\n </div>\n </InputBox>\n </DropdownListState>\n );\n};\n\nexport const InputGroupListAddon = React.forwardRef(Component);\n"],"names":["Component","_a","ref","addon","error","onChange","readOnly","disabled","className","onBlur","noBorder","testId","ariaLabelledBy","ariaDescribedBy","ariaInvalid","textboxAriaLabel","otherProps","__rest","valueExtractor","listExtractor","enableSearch","hideNoResultsDisplay","noResultsDescription","searchPlaceholder","searchFunction","onSearch","placeholder","displayValueExtractor","selectorTestId","options","selectedOption","onSelectOption","optionsLoadState","optionTruncationType","onRetry","onHideOptions","onShowOptions","dropdownZIndex","dropdownRootNode","comboboxAriaLabel","attributes","position","selected","setSelected","useState","showOptions","setShowOptions","focused","setFocused","internalId","useId","listboxId","instructionId","comboboxLabelId","textboxLabelId","nodeRef","useRef","selectorRef","useEffect","getDisplayValue","toString","triggerOptionDisplayCallback","show","handleListItemClick","item","extractedValue","current","focus","handleListDismiss","handleOpen","handleClose","reason","handleDismiss","renderElement","_jsxs","children","_jsx","ExpandableElement","expanded","popupRole","concatIds","clsx","styles.expandableElementNoBorder","LabelContainer","ValueLabel","PlaceholderLabel","VisuallyHidden","id","renderDropdown","DropdownList","listItems","onSelectItem","onDismiss","selectedItems","itemsLoadState","itemTruncationType","matchElementWidth","DropdownListState","InputBox","tabIndex","onFocus","e","contains","relatedTarget","styles.fieldWrapper","styles.fieldSelector","role","styles.selectorReadOnly","ElementWithDropdown","enabled","isOpen","onOpen","onClose","clickToToggle","offset","alignment","fitAvailableHeight","customZIndex","rootNode","positionRef","styles.divider","styles.dividerReadOnly","styles.fieldInput","styles.fieldInputNoBorder","styles.fieldInputReadOnly","Input","Object","assign","event","styleType","InputGroupListAddon","React","forwardRef"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import"./input-group.styles_fpy81r.css";const p="afvd13",s="nx53mj4",t="l1s6ick6";export{p as addonWrapper,t as labelAddonContainer,s as noAddonWrapper};
1
+ import"./input-group.styles_bqye6f.css";const p="afvd13",s="nx53mj4",t="l1s6ick6";export{p as addonWrapper,t as labelAddonContainer,s as noAddonWrapper};
2
2
  //# sourceMappingURL=input-group.styles.js.map
@@ -1,3 +1,3 @@
1
1
  .afvd13{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;width:100%;padding:0 var(--fds-spacing-16);}.afvd13[data-read-only="true"]{padding:0;}.afvd13[data-no-border="true"]{padding:0;}.afvd13[data-position="right"]{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;}
2
2
  .nx53mj4{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:relative;width:100%;padding:0 var(--fds-spacing-16);}.nx53mj4[data-read-only="true"]{padding:0;}.nx53mj4[data-no-border="true"]{padding:0;}
3
- .l1s6ick6{position:relative;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;margin-right:var(--fds-spacing-12);font-family:var(--fds-font-family);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-baseline);font-weight:var(--fds-font-weight-regular);line-height:var(--fds-font-body-lh-baseline);letter-spacing:var(--fds-font-body-ls-baseline);color:var(--fds-colour-text);}.l1s6ick6 svg{height:1em;width:1em;}.l1s6ick6[data-disabled="true"]{color:var(--fds-colour-text-subtler);}.l1s6ick6[data-read-only="true"]{margin-right:var(--fds-spacing-4);}.l1s6ick6[data-position="right"]{margin-right:0;margin-left:var(--fds-spacing-12);}.l1s6ick6[data-position="right"][data-read-only="true"]{margin-right:0;margin-left:var(--fds-spacing-4);}
3
+ .l1s6ick6{position:relative;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;margin-right:var(--fds-spacing-12);font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-baseline);font-weight:var(--fds-font-weight-regular);line-height:var(--fds-font-body-lh-baseline);letter-spacing:var(--fds-font-body-ls-baseline);color:var(--fds-colour-text);}.l1s6ick6 svg{height:1em;width:1em;}.l1s6ick6[data-disabled="true"]{color:var(--fds-colour-text-subtler);}.l1s6ick6[data-read-only="true"]{margin-right:var(--fds-spacing-4);}.l1s6ick6[data-position="right"]{margin-right:0;margin-left:var(--fds-spacing-12);}.l1s6ick6[data-position="right"][data-read-only="true"]{margin-right:0;margin-left:var(--fds-spacing-4);}
@@ -1,2 +1,2 @@
1
- import{jsx as e}from"react/jsx-runtime";import t from"../external/lodash/findIndex.js";import{useState as r,useRef as o,useEffect as s}from"react";import"clsx";import"../theme/theme-provider/index.js";import"../theme/theme-provider/context.js";import"../theme/tokens/border.js";import"../theme/tokens/colour.js";import"../theme/tokens/font.js";import"../theme/tokens/media-query.js";import"../util/calendar-helper.js";import"../external/dayjs/dayjs.min.js";import{useId as i}from"../util/simple-id-generator.js";import"../util/string-helper.js";import"@react-aria/live-announcer";import"../theme/utils/use-media-query.js";import"../shared/dropdown-list/dropdown-label.styles_1dwmd8f.css";import{DropdownList as l}from"../shared/dropdown-list/dropdown-list.js";import{DropdownListState as a}from"../shared/dropdown-list/dropdown-list-state.js";import{ExpandableElement as n}from"../shared/dropdown-list/expandable-element.js";import"@lifesg/react-icons/caret-right";import"@lifesg/react-icons/exclamation-circle-fill";import"@lifesg/react-icons/minus-square-fill";import"@lifesg/react-icons/square";import"@lifesg/react-icons/square-tick-fill";import"@lifesg/react-icons/tick";import"react-virtuoso";import"../markup/markup.js";import"../_virtual/_tslib.js";import"../shared/component-loading-spinner/component-loading-spinner.styles_15eq02i.css";import{ElementWithDropdown as d}from"../shared/dropdown-wrapper/element-with-dropdown.js";import{InputBox as p}from"../shared/input-wrapper/input-wrapper.js";import"../shared/dropdown-list/dropdown-list.styles_1kt4zhf.css";import"../shared/dropdown-list/dropdown-search.js";import"../shared/dropdown-list/nested-dropdown-list.styles_wdhxoe.css";import"immer";import"../external/lodash/_getTag.js";import"../external/lodash/isArguments.js";import"../external/lodash/_baseGetTag.js";import"../external/lodash/isBuffer.js";import"../external/lodash/isTypedArray.js";import"../external/lodash/_Stack.js";import"../external/lodash/_SetCache.js";import"../external/lodash/_equalByTag.js";import"../shared/dropdown-list/virtuoso-components.js";import{LabelContainer as m,PlaceholderLabel as c,ValueLabel as h}from"../shared/dropdown-wrapper/dropdown-wrapper.js";const u=({selectedOptions:u,placeholder:f="Select",options:j,disabled:w,error:x,className:b,"data-testid":g,id:y,"aria-labelledby":_,"aria-describedby":T,"aria-invalid":v,enableSearch:S=!1,searchFunction:A,searchPlaceholder:I,valueExtractor:k,listExtractor:C,onSelectOptions:O,onShowOptions:L,onHideOptions:R,onRetry:q,optionsLoadState:D="success",optionTruncationType:E="end",renderListItem:H,hideNoResultsDisplay:N,noResultsDescription:P,customLabels:G,renderCustomCallToAction:B,onBlur:M,variant:F="default",readOnly:W,alignment:Z,dropdownZIndex:z,maxSelectable:$,dropdownRootNode:J,dropdownWidth:K})=>{const{allSelectedLabel:Q,multiSelectedLabel:U}=G||{},[V,X]=r(u||[]),[Y,ee]=r(!1),[te,re]=r(!1),oe=i(),se=o(null),ie=o(null);s((()=>{X(u||[])}),[u]);const le=()=>{V&&V.length>0||$?(X([]),ce([])):(X(j),ce(j))},ae=(e,r)=>{const o=[...V],s=t(V,(e=>(k?k(e):e)===r));s>-1?o.splice(s,1):o.push(e),X(o),ce(o)},ne=()=>{Y&&(ee(!1),me(!1))},de=()=>{te||Y||re(!0)},pe=e=>{te&&!Y&&se.current&&!se.current.contains(e.relatedTarget)&&(re(!1),null==M||M())},me=e=>{!e&&R&&R(),e&&L&&L()},ce=e=>{O&&O(e)};return e(a,{children:e(d,{enabled:!W&&!w,isOpen:Y,renderElement:()=>e(p,{className:b,"data-testid":g,id:y,ref:se,tabIndex:-1,onFocus:de,onBlur:pe,focused:te,disabled:w,readOnly:W,error:x,children:e(n,{ref:ie,disabled:w,expanded:Y,listboxId:oe,popupRole:"listbox",readOnly:W,variant:F,"aria-labelledby":_,"aria-describedby":T,"aria-invalid":v,children:e(m,{disabled:w,children:V&&0!==V.length?e(h,{variant:F,truncateType:E,children:j&&V.length===j.length?Q||"All selected":U||`${V.length} selected`}):e(c,{variant:F,truncateType:E,children:f})})})}),renderDropdown:()=>e(l,{listboxId:oe,listItems:j,onSelectItem:ae,onDismiss:ne,valueExtractor:k,listExtractor:C,enableSearch:S,searchFunction:A,searchPlaceholder:I,multiSelect:!0,maxSelectable:$,selectedItems:V,onSelectAll:le,onRetry:q,itemsLoadState:D,itemTruncationType:E,renderListItem:H,hideNoResultsDisplay:N,noResultsDescription:P,customLabels:G,renderCustomCallToAction:B,variant:F,width:K,matchElementWidth:!0}),onOpen:()=>{ee(!0),me(!0),re(!0)},onClose:e=>{ee(!1),me(!1),"click"!==e&&(re(!1),null==M||M())},onDismiss:()=>{var e;null===(e=ie.current)||void 0===e||e.focus(),ee(!1),me(!1)},clickToToggle:!0,offset:8,alignment:Z,fitAvailableHeight:!0,customZIndex:z,rootNode:J})})};export{u as InputMultiSelect};
1
+ import{jsx as e}from"react/jsx-runtime";import t from"../external/lodash/findIndex.js";import{useState as r,useRef as o,useEffect as s}from"react";import"clsx";import"../theme/theme-provider/index.js";import"../theme/theme-provider/context.js";import"../theme/tokens/border.js";import"../theme/tokens/colour.js";import"../theme/tokens/font.js";import"../theme/tokens/media-query.js";import"../util/calendar-helper.js";import"../external/dayjs/dayjs.min.js";import{useId as i}from"../util/simple-id-generator.js";import"../util/string-helper.js";import"@react-aria/live-announcer";import"../theme/utils/use-media-query.js";import"../shared/dropdown-list/dropdown-label.styles_mloii0.css";import{DropdownList as l}from"../shared/dropdown-list/dropdown-list.js";import{DropdownListState as a}from"../shared/dropdown-list/dropdown-list-state.js";import{ExpandableElement as n}from"../shared/dropdown-list/expandable-element.js";import"@lifesg/react-icons/caret-right";import"@lifesg/react-icons/exclamation-circle-fill";import"@lifesg/react-icons/minus-square-fill";import"@lifesg/react-icons/square";import"@lifesg/react-icons/square-tick-fill";import"@lifesg/react-icons/tick";import"react-virtuoso";import"../markup/markup.js";import"../_virtual/_tslib.js";import"../shared/component-loading-spinner/component-loading-spinner.styles_15eq02i.css";import{ElementWithDropdown as d}from"../shared/dropdown-wrapper/element-with-dropdown.js";import{InputBox as p}from"../shared/input-wrapper/input-wrapper.js";import"../shared/dropdown-list/dropdown-list.styles_konwm.css";import"../shared/dropdown-list/dropdown-search.js";import"../shared/dropdown-list/nested-dropdown-list.styles_wdhxoe.css";import"immer";import"../external/lodash/_getTag.js";import"../external/lodash/isArguments.js";import"../external/lodash/_baseGetTag.js";import"../external/lodash/isBuffer.js";import"../external/lodash/isTypedArray.js";import"../external/lodash/_Stack.js";import"../external/lodash/_SetCache.js";import"../external/lodash/_equalByTag.js";import"../shared/dropdown-list/virtuoso-components.js";import{LabelContainer as m,PlaceholderLabel as c,ValueLabel as h}from"../shared/dropdown-wrapper/dropdown-wrapper.js";const u=({selectedOptions:u,placeholder:j="Select",options:w,disabled:x,error:b,className:f,"data-testid":g,id:y,"aria-labelledby":_,"aria-describedby":T,"aria-invalid":v,enableSearch:S=!1,searchFunction:A,searchPlaceholder:I,valueExtractor:k,listExtractor:C,onSelectOptions:O,onShowOptions:L,onHideOptions:R,onRetry:q,optionsLoadState:D="success",optionTruncationType:E="end",renderListItem:H,hideNoResultsDisplay:N,noResultsDescription:P,customLabels:G,renderCustomCallToAction:B,onBlur:M,variant:F="default",readOnly:W,alignment:Z,dropdownZIndex:$,maxSelectable:z,dropdownRootNode:J,dropdownWidth:K})=>{const{allSelectedLabel:Q,multiSelectedLabel:U}=G||{},[V,X]=r(u||[]),[Y,ee]=r(!1),[te,re]=r(!1),oe=i(),se=o(null),ie=o(null);s((()=>{X(u||[])}),[u]);const le=()=>{V&&V.length>0||z?(X([]),ce([])):(X(w),ce(w))},ae=(e,r)=>{const o=[...V],s=t(V,(e=>(k?k(e):e)===r));s>-1?o.splice(s,1):o.push(e),X(o),ce(o)},ne=()=>{Y&&(ee(!1),me(!1))},de=()=>{te||Y||re(!0)},pe=e=>{te&&!Y&&se.current&&!se.current.contains(e.relatedTarget)&&(re(!1),null==M||M())},me=e=>{!e&&R&&R(),e&&L&&L()},ce=e=>{O&&O(e)};return e(a,{children:e(d,{enabled:!W&&!x,isOpen:Y,renderElement:()=>e(p,{className:f,"data-testid":g,id:y,ref:se,tabIndex:-1,onFocus:de,onBlur:pe,focused:te,disabled:x,readOnly:W,error:b,children:e(n,{ref:ie,disabled:x,expanded:Y,listboxId:oe,popupRole:"listbox",readOnly:W,variant:F,"aria-labelledby":_,"aria-describedby":T,"aria-invalid":v,children:e(m,{disabled:x,children:V&&0!==V.length?e(h,{variant:F,truncateType:E,children:w&&V.length===w.length?Q||"All selected":U||`${V.length} selected`}):e(c,{variant:F,truncateType:E,children:j})})})}),renderDropdown:()=>e(l,{listboxId:oe,listItems:w,onSelectItem:ae,onDismiss:ne,valueExtractor:k,listExtractor:C,enableSearch:S,searchFunction:A,searchPlaceholder:I,multiSelect:!0,maxSelectable:z,selectedItems:V,onSelectAll:le,onRetry:q,itemsLoadState:D,itemTruncationType:E,renderListItem:H,hideNoResultsDisplay:N,noResultsDescription:P,customLabels:G,renderCustomCallToAction:B,variant:F,width:K,matchElementWidth:!0}),onOpen:()=>{ee(!0),me(!0),re(!0)},onClose:e=>{ee(!1),me(!1),"click"!==e&&(re(!1),null==M||M())},onDismiss:()=>{var e;null===(e=ie.current)||void 0===e||e.focus(),ee(!1),me(!1)},clickToToggle:!0,offset:8,alignment:Z,fitAvailableHeight:!0,customZIndex:$,rootNode:J})})};export{u as InputMultiSelect};
2
2
  //# sourceMappingURL=input-multi-select.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-multi-select.js","sources":["../../src/input-multi-select/input-multi-select.tsx"],"sourcesContent":["import type { OpenChangeReason } from \"@floating-ui/react\";\nimport findIndex from \"lodash/findIndex\";\nimport type React from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport {\n DropdownList,\n DropdownListState,\n ExpandableElement,\n} from \"../shared/dropdown-list\";\nimport { ElementWithDropdown } from \"../shared/dropdown-wrapper\";\nimport {\n LabelContainer,\n PlaceholderLabel,\n ValueLabel,\n} from \"../shared/dropdown-wrapper/dropdown-wrapper\";\nimport { InputBox } from \"../shared/input-wrapper/input-wrapper\";\nimport { useId } from \"../util\";\nimport type { InputMultiSelectProps } from \"./types\";\n\nexport const InputMultiSelect = <T, V>({\n selectedOptions,\n placeholder = \"Select\",\n options,\n disabled,\n error,\n className,\n \"data-testid\": testId,\n id,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-invalid\": ariaInvalid,\n enableSearch = false,\n searchFunction,\n searchPlaceholder,\n valueExtractor,\n listExtractor,\n onSelectOptions,\n onShowOptions,\n onHideOptions,\n onRetry,\n optionsLoadState = \"success\",\n optionTruncationType = \"end\",\n renderListItem,\n hideNoResultsDisplay,\n noResultsDescription,\n customLabels,\n renderCustomCallToAction,\n onBlur,\n variant = \"default\",\n readOnly,\n alignment,\n dropdownZIndex,\n maxSelectable,\n dropdownRootNode,\n dropdownWidth,\n}: InputMultiSelectProps<T, V>): JSX.Element => {\n // =============================================================================\n // CONST, STATE\n // =============================================================================\n const { allSelectedLabel, multiSelectedLabel } = customLabels || {};\n const [selected, setSelected] = useState<T[]>(selectedOptions || []);\n const [showOptions, setShowOptions] = useState<boolean>(false);\n const [focused, setFocused] = useState<boolean>(false);\n const internalId = useId();\n\n const nodeRef = useRef<HTMLDivElement>(null);\n const selectorRef = useRef<HTMLButtonElement>(null);\n\n // =============================================================================\n // EFFECTS\n // =============================================================================\n useEffect(() => {\n setSelected(selectedOptions || []);\n }, [selectedOptions]);\n\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleSelectAllClick = () => {\n if ((selected && selected.length > 0) || maxSelectable) {\n setSelected([]);\n performOnSelectOptions([]);\n } else {\n setSelected(options);\n performOnSelectOptions(options);\n }\n };\n\n const handleListItemClick = (item: T, extractedValue: T | V) => {\n const selectedCopy = [...selected];\n\n // Check if it is a selection or deselection\n const itemIndex = findIndex(selected, (item) => {\n const valueToCompare = valueExtractor ? valueExtractor(item) : item;\n return valueToCompare === extractedValue;\n });\n\n if (itemIndex > -1) {\n // Item exists in selected. This indicates a deselection\n selectedCopy.splice(itemIndex, 1);\n } else {\n // Item does not exist in selected. This indicates a selection\n selectedCopy.push(item);\n }\n\n setSelected(selectedCopy);\n performOnSelectOptions(selectedCopy);\n };\n\n const handleListDismiss = () => {\n if (showOptions) {\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n }\n };\n\n const handleNodeFocus = () => {\n if (!focused && !showOptions) {\n setFocused(true);\n }\n };\n\n const handleNodeBlur = (e: React.FocusEvent) => {\n if (\n focused &&\n !showOptions &&\n nodeRef.current &&\n !nodeRef.current.contains(e.relatedTarget as Node)\n ) {\n setFocused(false);\n onBlur?.();\n }\n };\n\n const handleOpen = () => {\n setShowOptions(true);\n triggerOptionDisplayCallback(true);\n setFocused(true);\n };\n\n const handleClose = (reason: OpenChangeReason | undefined) => {\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n\n // click to toggle should not blur the input\n if (reason !== \"click\") {\n setFocused(false);\n onBlur?.();\n }\n };\n\n const handleDismiss = () => {\n selectorRef.current?.focus();\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n };\n\n // =============================================================================\n // HELPER FUNCTION\n // =============================================================================\n const getDisplayValue = () => {\n if (options && selected.length === options.length) {\n return allSelectedLabel || \"All selected\";\n }\n\n return multiSelectedLabel || `${selected.length} selected`;\n };\n\n const triggerOptionDisplayCallback = (show: boolean) => {\n if (!show && onHideOptions) {\n onHideOptions();\n }\n\n if (show && onShowOptions) {\n onShowOptions();\n }\n };\n\n const performOnSelectOptions = (options: T[]) => {\n if (onSelectOptions) {\n onSelectOptions(options);\n }\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n const renderLabel = () => {\n if (!selected || selected.length === 0) {\n return (\n <PlaceholderLabel\n variant={variant}\n truncateType={optionTruncationType}\n >\n {placeholder}\n </PlaceholderLabel>\n );\n } else {\n return (\n <ValueLabel\n variant={variant}\n truncateType={optionTruncationType}\n >\n {getDisplayValue()}\n </ValueLabel>\n );\n }\n };\n\n const renderSelectorContent = () => (\n <LabelContainer disabled={disabled}>{renderLabel()}</LabelContainer>\n );\n\n const renderElement = () => {\n return (\n <InputBox\n className={className}\n data-testid={testId}\n id={id}\n ref={nodeRef}\n tabIndex={-1}\n onFocus={handleNodeFocus}\n onBlur={handleNodeBlur}\n focused={focused}\n disabled={disabled}\n readOnly={readOnly}\n error={error}\n >\n <ExpandableElement\n ref={selectorRef}\n disabled={disabled}\n expanded={showOptions}\n listboxId={internalId}\n popupRole=\"listbox\"\n readOnly={readOnly}\n variant={variant}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n >\n {renderSelectorContent()}\n </ExpandableElement>\n </InputBox>\n );\n };\n\n const renderDropdown = () => {\n return (\n <DropdownList\n listboxId={internalId}\n listItems={options}\n onSelectItem={handleListItemClick}\n onDismiss={handleListDismiss}\n valueExtractor={valueExtractor}\n listExtractor={listExtractor}\n enableSearch={enableSearch}\n searchFunction={searchFunction}\n searchPlaceholder={searchPlaceholder}\n multiSelect\n maxSelectable={maxSelectable}\n selectedItems={selected}\n onSelectAll={handleSelectAllClick}\n onRetry={onRetry}\n itemsLoadState={optionsLoadState}\n itemTruncationType={optionTruncationType}\n renderListItem={renderListItem}\n hideNoResultsDisplay={hideNoResultsDisplay}\n noResultsDescription={noResultsDescription}\n customLabels={customLabels}\n renderCustomCallToAction={renderCustomCallToAction}\n variant={variant}\n width={dropdownWidth}\n matchElementWidth\n />\n );\n };\n\n return (\n <DropdownListState>\n <ElementWithDropdown\n enabled={!readOnly && !disabled}\n isOpen={showOptions}\n renderElement={renderElement}\n renderDropdown={renderDropdown}\n onOpen={handleOpen}\n onClose={handleClose}\n onDismiss={handleDismiss}\n clickToToggle\n offset={8}\n alignment={alignment}\n fitAvailableHeight\n customZIndex={dropdownZIndex}\n rootNode={dropdownRootNode}\n />\n </DropdownListState>\n );\n};\n"],"names":["InputMultiSelect","selectedOptions","placeholder","options","disabled","error","className","testId","id","ariaLabelledBy","ariaDescribedBy","ariaInvalid","enableSearch","searchFunction","searchPlaceholder","valueExtractor","listExtractor","onSelectOptions","onShowOptions","onHideOptions","onRetry","optionsLoadState","optionTruncationType","renderListItem","hideNoResultsDisplay","noResultsDescription","customLabels","renderCustomCallToAction","onBlur","variant","readOnly","alignment","dropdownZIndex","maxSelectable","dropdownRootNode","dropdownWidth","allSelectedLabel","multiSelectedLabel","selected","setSelected","useState","showOptions","setShowOptions","focused","setFocused","internalId","useId","nodeRef","useRef","selectorRef","useEffect","handleSelectAllClick","length","performOnSelectOptions","handleListItemClick","item","extractedValue","selectedCopy","itemIndex","findIndex","splice","push","handleListDismiss","triggerOptionDisplayCallback","handleNodeFocus","handleNodeBlur","e","current","contains","relatedTarget","show","_jsx","DropdownListState","children","ElementWithDropdown","enabled","isOpen","renderElement","InputBox","ref","tabIndex","onFocus","ExpandableElement","expanded","listboxId","popupRole","LabelContainer","ValueLabel","truncateType","PlaceholderLabel","renderDropdown","DropdownList","listItems","onSelectItem","onDismiss","multiSelect","selectedItems","onSelectAll","itemsLoadState","itemTruncationType","width","matchElementWidth","onOpen","onClose","reason","_a","focus","clickToToggle","offset","fitAvailableHeight","customZIndex","rootNode"],"mappings":"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"}
1
+ {"version":3,"file":"input-multi-select.js","sources":["../../src/input-multi-select/input-multi-select.tsx"],"sourcesContent":["import type { OpenChangeReason } from \"@floating-ui/react\";\nimport findIndex from \"lodash/findIndex\";\nimport type React from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport {\n DropdownList,\n DropdownListState,\n ExpandableElement,\n} from \"../shared/dropdown-list\";\nimport { ElementWithDropdown } from \"../shared/dropdown-wrapper\";\nimport {\n LabelContainer,\n PlaceholderLabel,\n ValueLabel,\n} from \"../shared/dropdown-wrapper/dropdown-wrapper\";\nimport { InputBox } from \"../shared/input-wrapper/input-wrapper\";\nimport { useId } from \"../util\";\nimport type { InputMultiSelectProps } from \"./types\";\n\nexport const InputMultiSelect = <T, V>({\n selectedOptions,\n placeholder = \"Select\",\n options,\n disabled,\n error,\n className,\n \"data-testid\": testId,\n id,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n \"aria-invalid\": ariaInvalid,\n enableSearch = false,\n searchFunction,\n searchPlaceholder,\n valueExtractor,\n listExtractor,\n onSelectOptions,\n onShowOptions,\n onHideOptions,\n onRetry,\n optionsLoadState = \"success\",\n optionTruncationType = \"end\",\n renderListItem,\n hideNoResultsDisplay,\n noResultsDescription,\n customLabels,\n renderCustomCallToAction,\n onBlur,\n variant = \"default\",\n readOnly,\n alignment,\n dropdownZIndex,\n maxSelectable,\n dropdownRootNode,\n dropdownWidth,\n}: InputMultiSelectProps<T, V>): JSX.Element => {\n // =============================================================================\n // CONST, STATE\n // =============================================================================\n const { allSelectedLabel, multiSelectedLabel } = customLabels || {};\n const [selected, setSelected] = useState<T[]>(selectedOptions || []);\n const [showOptions, setShowOptions] = useState<boolean>(false);\n const [focused, setFocused] = useState<boolean>(false);\n const internalId = useId();\n\n const nodeRef = useRef<HTMLDivElement>(null);\n const selectorRef = useRef<HTMLButtonElement>(null);\n\n // =============================================================================\n // EFFECTS\n // =============================================================================\n useEffect(() => {\n setSelected(selectedOptions || []);\n }, [selectedOptions]);\n\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleSelectAllClick = () => {\n if ((selected && selected.length > 0) || maxSelectable) {\n setSelected([]);\n performOnSelectOptions([]);\n } else {\n setSelected(options);\n performOnSelectOptions(options);\n }\n };\n\n const handleListItemClick = (item: T, extractedValue: T | V) => {\n const selectedCopy = [...selected];\n\n // Check if it is a selection or deselection\n const itemIndex = findIndex(selected, (item) => {\n const valueToCompare = valueExtractor ? valueExtractor(item) : item;\n return valueToCompare === extractedValue;\n });\n\n if (itemIndex > -1) {\n // Item exists in selected. This indicates a deselection\n selectedCopy.splice(itemIndex, 1);\n } else {\n // Item does not exist in selected. This indicates a selection\n selectedCopy.push(item);\n }\n\n setSelected(selectedCopy);\n performOnSelectOptions(selectedCopy);\n };\n\n const handleListDismiss = () => {\n if (showOptions) {\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n }\n };\n\n const handleNodeFocus = () => {\n if (!focused && !showOptions) {\n setFocused(true);\n }\n };\n\n const handleNodeBlur = (e: React.FocusEvent) => {\n if (\n focused &&\n !showOptions &&\n nodeRef.current &&\n !nodeRef.current.contains(e.relatedTarget as Node)\n ) {\n setFocused(false);\n onBlur?.();\n }\n };\n\n const handleOpen = () => {\n setShowOptions(true);\n triggerOptionDisplayCallback(true);\n setFocused(true);\n };\n\n const handleClose = (reason: OpenChangeReason | undefined) => {\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n\n // click to toggle should not blur the input\n if (reason !== \"click\") {\n setFocused(false);\n onBlur?.();\n }\n };\n\n const handleDismiss = () => {\n selectorRef.current?.focus();\n setShowOptions(false);\n triggerOptionDisplayCallback(false);\n };\n\n // =============================================================================\n // HELPER FUNCTION\n // =============================================================================\n const getDisplayValue = () => {\n if (options && selected.length === options.length) {\n return allSelectedLabel || \"All selected\";\n }\n\n return multiSelectedLabel || `${selected.length} selected`;\n };\n\n const triggerOptionDisplayCallback = (show: boolean) => {\n if (!show && onHideOptions) {\n onHideOptions();\n }\n\n if (show && onShowOptions) {\n onShowOptions();\n }\n };\n\n const performOnSelectOptions = (options: T[]) => {\n if (onSelectOptions) {\n onSelectOptions(options);\n }\n };\n\n // =============================================================================\n // RENDER FUNCTIONS\n // =============================================================================\n const renderLabel = () => {\n if (!selected || selected.length === 0) {\n return (\n <PlaceholderLabel\n variant={variant}\n truncateType={optionTruncationType}\n >\n {placeholder}\n </PlaceholderLabel>\n );\n } else {\n return (\n <ValueLabel\n variant={variant}\n truncateType={optionTruncationType}\n >\n {getDisplayValue()}\n </ValueLabel>\n );\n }\n };\n\n const renderSelectorContent = () => (\n <LabelContainer disabled={disabled}>{renderLabel()}</LabelContainer>\n );\n\n const renderElement = () => {\n return (\n <InputBox\n className={className}\n data-testid={testId}\n id={id}\n ref={nodeRef}\n tabIndex={-1}\n onFocus={handleNodeFocus}\n onBlur={handleNodeBlur}\n focused={focused}\n disabled={disabled}\n readOnly={readOnly}\n error={error}\n >\n <ExpandableElement\n ref={selectorRef}\n disabled={disabled}\n expanded={showOptions}\n listboxId={internalId}\n popupRole=\"listbox\"\n readOnly={readOnly}\n variant={variant}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n aria-invalid={ariaInvalid}\n >\n {renderSelectorContent()}\n </ExpandableElement>\n </InputBox>\n );\n };\n\n const renderDropdown = () => {\n return (\n <DropdownList\n listboxId={internalId}\n listItems={options}\n onSelectItem={handleListItemClick}\n onDismiss={handleListDismiss}\n valueExtractor={valueExtractor}\n listExtractor={listExtractor}\n enableSearch={enableSearch}\n searchFunction={searchFunction}\n searchPlaceholder={searchPlaceholder}\n multiSelect\n maxSelectable={maxSelectable}\n selectedItems={selected}\n onSelectAll={handleSelectAllClick}\n onRetry={onRetry}\n itemsLoadState={optionsLoadState}\n itemTruncationType={optionTruncationType}\n renderListItem={renderListItem}\n hideNoResultsDisplay={hideNoResultsDisplay}\n noResultsDescription={noResultsDescription}\n customLabels={customLabels}\n renderCustomCallToAction={renderCustomCallToAction}\n variant={variant}\n width={dropdownWidth}\n matchElementWidth\n />\n );\n };\n\n return (\n <DropdownListState>\n <ElementWithDropdown\n enabled={!readOnly && !disabled}\n isOpen={showOptions}\n renderElement={renderElement}\n renderDropdown={renderDropdown}\n onOpen={handleOpen}\n onClose={handleClose}\n onDismiss={handleDismiss}\n clickToToggle\n offset={8}\n alignment={alignment}\n fitAvailableHeight\n customZIndex={dropdownZIndex}\n rootNode={dropdownRootNode}\n />\n </DropdownListState>\n );\n};\n"],"names":["InputMultiSelect","selectedOptions","placeholder","options","disabled","error","className","testId","id","ariaLabelledBy","ariaDescribedBy","ariaInvalid","enableSearch","searchFunction","searchPlaceholder","valueExtractor","listExtractor","onSelectOptions","onShowOptions","onHideOptions","onRetry","optionsLoadState","optionTruncationType","renderListItem","hideNoResultsDisplay","noResultsDescription","customLabels","renderCustomCallToAction","onBlur","variant","readOnly","alignment","dropdownZIndex","maxSelectable","dropdownRootNode","dropdownWidth","allSelectedLabel","multiSelectedLabel","selected","setSelected","useState","showOptions","setShowOptions","focused","setFocused","internalId","useId","nodeRef","useRef","selectorRef","useEffect","handleSelectAllClick","length","performOnSelectOptions","handleListItemClick","item","extractedValue","selectedCopy","itemIndex","findIndex","splice","push","handleListDismiss","triggerOptionDisplayCallback","handleNodeFocus","handleNodeBlur","e","current","contains","relatedTarget","show","_jsx","DropdownListState","children","ElementWithDropdown","enabled","isOpen","renderElement","InputBox","ref","tabIndex","onFocus","ExpandableElement","expanded","listboxId","popupRole","LabelContainer","ValueLabel","truncateType","PlaceholderLabel","renderDropdown","DropdownList","listItems","onSelectItem","onDismiss","multiSelect","selectedItems","onSelectAll","itemsLoadState","itemTruncationType","width","matchElementWidth","onOpen","onClose","reason","_a","focus","clickToToggle","offset","fitAvailableHeight","customZIndex","rootNode"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{jsx as e}from"react/jsx-runtime";import t from"../external/lodash/isEmpty.js";import r from"../external/lodash/isEqual.js";import{useState as o,useRef as n,useEffect as i}from"react";import"clsx";import"../theme/theme-provider/index.js";import"../theme/theme-provider/context.js";import"../theme/tokens/border.js";import"../theme/tokens/colour.js";import"../theme/tokens/font.js";import"../theme/tokens/media-query.js";import"../util/calendar-helper.js";import"../external/dayjs/dayjs.min.js";import{useId as l}from"../util/simple-id-generator.js";import{StringHelper as a}from"../util/string-helper.js";import"@react-aria/live-announcer";import"../theme/utils/use-media-query.js";import"../shared/dropdown-list/dropdown-label.styles_1dwmd8f.css";import"../shared/dropdown-list/dropdown-list.js";import"../shared/dropdown-list/dropdown-list-state.js";import{ExpandableElement as s}from"../shared/dropdown-list/expandable-element.js";import{NestedDropdownList as d}from"../shared/dropdown-list/nested-dropdown-list.js";import{buildKeyPathToSet as p}from"../shared/dropdown-list/nested-dropdown-list-helpers.js";import{ElementWithDropdown as m}from"../shared/dropdown-wrapper/element-with-dropdown.js";import{LabelContainer as c,PlaceholderLabel as h,ValueLabel as u}from"../shared/dropdown-wrapper/dropdown-wrapper.js";import{InputBox as y}from"../shared/input-wrapper/input-wrapper.js";import{getSelectedItems as b,getSelectedSubItems as f}from"./helpers.js";const w=({placeholder:w="Select",options:j,disabled:k,error:v,className:P,"data-testid":S,id:x,"aria-labelledby":g,"aria-describedby":T,"aria-invalid":I,selectedKeyPaths:O,mode:R,valueToStringFunction:D,enableSearch:L,searchPlaceholder:N,hideNoResultsDisplay:E,noResultsDescription:A,customLabels:_,readOnly:q,onSearch:B,onSelectOptions:C,onShowOptions:H,onHideOptions:F,onRetry:K,onBlur:W,optionsLoadState:Z="success",optionTruncationType:G="end",variant:M="default",alignment:$,dropdownZIndex:z,dropdownWidth:J,dropdownRootNode:Q})=>{const{multiSelectedLabel:U}=_||{},V=j,[X,Y]=o(O?p(O):new Set),[ee,te]=o([]),[re,oe]=o(!1),[ne,ie]=o(!1),le=l(),ae=n(null),se=n(null),de=n(null);i((()=>{const e=O||[],t=b(V,e);Y(p(e)),te(t)}),[O,V]);const pe=(e,t)=>{const r=t.map((e=>({keyPath:e.keyPath,label:e.item.label,value:e.item.value})));Y(p(e)),te(r),fe(e,r)},me=e=>{const t=we(e),r=t.map((e=>e.keyPath));te(t),Y(p(r)),fe(r,t)},ce=()=>{ne||re||ie(!0)},he=e=>{ne&&!re&&ae.current&&!ae.current.contains(e.relatedTarget)&&(ie(!1),null==W||W())},ue=()=>{if(ee.length>1)return U||`${ee.length} selected`;const{label:e,value:t}=ee[0];return D?D(t):e},ye=e=>{if("middle"===G){let t=0;return de&&de.current&&(t=de.current.getBoundingClientRect().width),a.truncateOneLine(e,t,120,6)}return e},be=e=>{!e&&F&&F(),e&&H&&H()},fe=(e,t)=>{if(C){const r=t.map((e=>e.value));C(e,r)}},we=e=>{if(!0===e.checked)return ee.filter((t=>{const o=t.keyPath.slice(0,e.keyPath.length);return!r(e.keyPath,o)}));{const t=[...ee];return(e.hasSubItems?f(V,e.keyPath):[{value:e.item.value,label:e.item.label,keyPath:e.keyPath}]).forEach((e=>{ee.find((t=>r(t.keyPath,e.keyPath)))||t.push(e)})),t}};return e(m,{enabled:!q&&!k,isOpen:re,renderElement:()=>e(y,{className:P,"data-testid":S,id:x,ref:ae,tabIndex:-1,onFocus:ce,onBlur:he,focused:ne,disabled:k,readOnly:q,error:v,children:e(s,{ref:se,disabled:k,expanded:re,listboxId:le,popupRole:"tree",readOnly:q,variant:M,"aria-labelledby":g,"aria-describedby":T,"aria-invalid":I,children:e(c,{ref:de,disabled:k,children:t(ee)?e(h,{truncateType:G,children:w}):e(u,{truncateType:G,children:ye(ue())})})})}),renderDropdown:()=>e(d,{listboxId:le,listItems:V,multiSelect:!0,selectedKeyPaths:X,itemsLoadState:Z,itemTruncationType:G,enableSearch:L,searchPlaceholder:N,hideNoResultsDisplay:E,noResultsDescription:A,customLabels:_,onSelectItem:me,onSelectAll:pe,onRetry:K,onSearch:B,variant:M,mode:R,width:J,matchElementWidth:!0}),onOpen:()=>{oe(!0),be(!0),ie(!0)},onClose:e=>{oe(!1),be(!1),"click"!==e&&(ie(!1),null==W||W())},onDismiss:()=>{var e;null===(e=se.current)||void 0===e||e.focus(),oe(!1),be(!1)},clickToToggle:!0,offset:8,alignment:$,fitAvailableHeight:!0,customZIndex:z,rootNode:Q})};export{w as InputNestedMultiSelect};
1
+ import{jsx as e}from"react/jsx-runtime";import t from"../external/lodash/isEmpty.js";import r from"../external/lodash/isEqual.js";import{useState as o,useRef as n,useEffect as i}from"react";import"clsx";import"../theme/theme-provider/index.js";import"../theme/theme-provider/context.js";import"../theme/tokens/border.js";import"../theme/tokens/colour.js";import"../theme/tokens/font.js";import"../theme/tokens/media-query.js";import"../util/calendar-helper.js";import"../external/dayjs/dayjs.min.js";import{useId as l}from"../util/simple-id-generator.js";import{StringHelper as a}from"../util/string-helper.js";import"@react-aria/live-announcer";import"../theme/utils/use-media-query.js";import"../shared/dropdown-list/dropdown-label.styles_mloii0.css";import"../shared/dropdown-list/dropdown-list.js";import"../shared/dropdown-list/dropdown-list-state.js";import{ExpandableElement as s}from"../shared/dropdown-list/expandable-element.js";import{NestedDropdownList as d}from"../shared/dropdown-list/nested-dropdown-list.js";import{buildKeyPathToSet as p}from"../shared/dropdown-list/nested-dropdown-list-helpers.js";import{ElementWithDropdown as m}from"../shared/dropdown-wrapper/element-with-dropdown.js";import{LabelContainer as c,PlaceholderLabel as h,ValueLabel as u}from"../shared/dropdown-wrapper/dropdown-wrapper.js";import{InputBox as y}from"../shared/input-wrapper/input-wrapper.js";import{getSelectedItems as b,getSelectedSubItems as f}from"./helpers.js";const w=({placeholder:w="Select",options:j,disabled:k,error:v,className:P,"data-testid":S,id:x,"aria-labelledby":g,"aria-describedby":T,"aria-invalid":I,selectedKeyPaths:O,mode:R,valueToStringFunction:D,enableSearch:L,searchPlaceholder:N,hideNoResultsDisplay:E,noResultsDescription:A,customLabels:_,readOnly:q,onSearch:B,onSelectOptions:C,onShowOptions:H,onHideOptions:F,onRetry:K,onBlur:W,optionsLoadState:Z="success",optionTruncationType:G="end",variant:M="default",alignment:$,dropdownZIndex:z,dropdownWidth:J,dropdownRootNode:Q})=>{const{multiSelectedLabel:U}=_||{},V=j,[X,Y]=o(O?p(O):new Set),[ee,te]=o([]),[re,oe]=o(!1),[ne,ie]=o(!1),le=l(),ae=n(null),se=n(null),de=n(null);i((()=>{const e=O||[],t=b(V,e);Y(p(e)),te(t)}),[O,V]);const pe=(e,t)=>{const r=t.map((e=>({keyPath:e.keyPath,label:e.item.label,value:e.item.value})));Y(p(e)),te(r),fe(e,r)},me=e=>{const t=we(e),r=t.map((e=>e.keyPath));te(t),Y(p(r)),fe(r,t)},ce=()=>{ne||re||ie(!0)},he=e=>{ne&&!re&&ae.current&&!ae.current.contains(e.relatedTarget)&&(ie(!1),null==W||W())},ue=()=>{if(ee.length>1)return U||`${ee.length} selected`;const{label:e,value:t}=ee[0];return D?D(t):e},ye=e=>{if("middle"===G){let t=0;return de&&de.current&&(t=de.current.getBoundingClientRect().width),a.truncateOneLine(e,t,120,6)}return e},be=e=>{!e&&F&&F(),e&&H&&H()},fe=(e,t)=>{if(C){const r=t.map((e=>e.value));C(e,r)}},we=e=>{if(!0===e.checked)return ee.filter((t=>{const o=t.keyPath.slice(0,e.keyPath.length);return!r(e.keyPath,o)}));{const t=[...ee];return(e.hasSubItems?f(V,e.keyPath):[{value:e.item.value,label:e.item.label,keyPath:e.keyPath}]).forEach((e=>{ee.find((t=>r(t.keyPath,e.keyPath)))||t.push(e)})),t}};return e(m,{enabled:!q&&!k,isOpen:re,renderElement:()=>e(y,{className:P,"data-testid":S,id:x,ref:ae,tabIndex:-1,onFocus:ce,onBlur:he,focused:ne,disabled:k,readOnly:q,error:v,children:e(s,{ref:se,disabled:k,expanded:re,listboxId:le,popupRole:"tree",readOnly:q,variant:M,"aria-labelledby":g,"aria-describedby":T,"aria-invalid":I,children:e(c,{ref:de,disabled:k,children:t(ee)?e(h,{truncateType:G,children:w}):e(u,{truncateType:G,children:ye(ue())})})})}),renderDropdown:()=>e(d,{listboxId:le,listItems:V,multiSelect:!0,selectedKeyPaths:X,itemsLoadState:Z,itemTruncationType:G,enableSearch:L,searchPlaceholder:N,hideNoResultsDisplay:E,noResultsDescription:A,customLabels:_,onSelectItem:me,onSelectAll:pe,onRetry:K,onSearch:B,variant:M,mode:R,width:J,matchElementWidth:!0}),onOpen:()=>{oe(!0),be(!0),ie(!0)},onClose:e=>{oe(!1),be(!1),"click"!==e&&(ie(!1),null==W||W())},onDismiss:()=>{var e;null===(e=se.current)||void 0===e||e.focus(),oe(!1),be(!1)},clickToToggle:!0,offset:8,alignment:$,fitAvailableHeight:!0,customZIndex:z,rootNode:Q})};export{w as InputNestedMultiSelect};
2
2
  //# sourceMappingURL=input-nested-multi-select.js.map