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

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 (1434) hide show
  1. package/_virtual/index.js +1 -1
  2. package/_virtual/index3.js +1 -1
  3. package/alert/alert.js +1 -1
  4. package/alert/alert.js.map +1 -1
  5. package/animations/loading-dots-spinner/loading-dots-spinner.js +1 -1
  6. package/animations/loading-dots-spinner/loading-dots-spinner.js.map +1 -1
  7. package/badge/badge.js +1 -1
  8. package/badge/badge.js.map +1 -1
  9. package/box-container/box-container.js +1 -1
  10. package/box-container/box-container.js.map +1 -1
  11. package/breadcrumb/breadcrumb.js +1 -1
  12. package/breadcrumb/breadcrumb.js.map +1 -1
  13. package/button/button.js +1 -1
  14. package/button/button.js.map +1 -1
  15. package/button/button.styles.d.ts +1 -0
  16. package/button/button.styles.js +1 -1
  17. package/button/button.styles.js.map +1 -1
  18. package/{cjs/button/button.styles_142m6cx.css → button/button.styles_bcpkzm.css} +2 -1
  19. package/cjs/_virtual/index.js +1 -1
  20. package/cjs/_virtual/index3.js +1 -1
  21. package/cjs/alert/alert.js +1 -1
  22. package/cjs/alert/alert.js.map +1 -1
  23. package/cjs/animations/loading-dots-spinner/loading-dots-spinner.js +1 -1
  24. package/cjs/animations/loading-dots-spinner/loading-dots-spinner.js.map +1 -1
  25. package/cjs/badge/badge.js +1 -1
  26. package/cjs/badge/badge.js.map +1 -1
  27. package/cjs/box-container/box-container.js +1 -1
  28. package/cjs/box-container/box-container.js.map +1 -1
  29. package/cjs/breadcrumb/breadcrumb.js +1 -1
  30. package/cjs/breadcrumb/breadcrumb.js.map +1 -1
  31. package/cjs/button/button.js +1 -1
  32. package/cjs/button/button.js.map +1 -1
  33. package/cjs/button/button.styles.js +1 -1
  34. package/cjs/button/button.styles.js.map +1 -1
  35. package/{button/button.styles_142m6cx.css → cjs/button/button.styles_bcpkzm.css} +2 -1
  36. package/cjs/countdown-timer/countdown-timer.js +1 -1
  37. package/cjs/countdown-timer/countdown-timer.js.map +1 -1
  38. package/cjs/countdown-timer/countdown-timer.styles.js +2 -0
  39. package/cjs/countdown-timer/countdown-timer.styles.js.map +1 -0
  40. package/cjs/countdown-timer/countdown-timer.styles_k50tkw.css +8 -0
  41. package/cjs/dashed-border/dashed-border.js +1 -1
  42. package/cjs/dashed-border/dashed-border.js.map +1 -1
  43. package/cjs/data-table/data-table.js +1 -1
  44. package/cjs/data-table/data-table.js.map +1 -1
  45. package/cjs/data-table/data-table.styles.js +1 -152
  46. package/cjs/data-table/data-table.styles.js.map +1 -1
  47. package/cjs/data-table/data-table.styles_1nj2uzq.css +26 -0
  48. package/cjs/date-input/date-input.js +1 -1
  49. package/cjs/date-input/date-input.js.map +1 -1
  50. package/cjs/date-input/date-input.styles.js +2 -0
  51. package/cjs/date-input/date-input.styles.js.map +1 -0
  52. package/cjs/date-input/date-input.styles_1r5kcc7.css +1 -0
  53. package/cjs/date-range-input/date-range-input.js +1 -1
  54. package/cjs/date-range-input/date-range-input.js.map +1 -1
  55. package/cjs/date-range-input/date-range-input.styles.js +2 -0
  56. package/cjs/date-range-input/date-range-input.styles.js.map +1 -0
  57. package/cjs/date-range-input/date-range-input.styles_1s7ojnj.css +4 -0
  58. package/cjs/divider/divider.js +1 -1
  59. package/cjs/divider/divider.js.map +1 -1
  60. package/cjs/e-signature/e-signature.js +1 -1
  61. package/cjs/e-signature/e-signature.js.map +1 -1
  62. package/cjs/e-signature/e-signature.styles.js +18 -18
  63. package/cjs/e-signature/e-signature.styles.js.map +1 -1
  64. package/cjs/error-display/error-display-data.js +1 -1
  65. package/cjs/error-display/error-display-data.js.map +1 -1
  66. package/cjs/error-display/error-display.js +1 -1
  67. package/cjs/error-display/error-display.js.map +1 -1
  68. package/cjs/error-display/helper.js +1 -1
  69. package/cjs/error-display/helper.js.map +1 -1
  70. package/cjs/external/lodash/isNumber.js +2 -0
  71. package/cjs/external/lodash/isNumber.js.map +1 -0
  72. package/cjs/external/lodash.clonedeep/index.js +1 -1
  73. package/cjs/external/lottie-colorify/lib/index.js +1 -1
  74. package/cjs/external/lottie-colorify/lib/index.js.map +1 -1
  75. package/cjs/external/prop-types/external/react-is/index.js +1 -1
  76. package/cjs/external/prop-types/index.js +1 -1
  77. package/cjs/external/prop-types/index.js.map +1 -1
  78. package/cjs/feedback-rating/feedback-rating-stars-container.js +1 -1
  79. package/cjs/feedback-rating/feedback-rating-stars-container.js.map +1 -1
  80. package/cjs/feedback-rating/feedback-rating-stars-container.styles.js +1 -36
  81. package/cjs/feedback-rating/feedback-rating-stars-container.styles.js.map +1 -1
  82. package/cjs/feedback-rating/feedback-rating-stars-container.styles_dmi8z9.css +4 -0
  83. package/cjs/feedback-rating/feedback-rating.js +1 -1
  84. package/cjs/feedback-rating/feedback-rating.js.map +1 -1
  85. package/cjs/feedback-rating/feedback-rating.styles.js +1 -37
  86. package/cjs/feedback-rating/feedback-rating.styles.js.map +1 -1
  87. package/cjs/feedback-rating/feedback-rating.styles_1kdklb6.css +4 -0
  88. package/cjs/file-download/file-list-card/file-list-card.js +1 -1
  89. package/cjs/file-download/file-list-card/file-list-card.js.map +1 -1
  90. package/cjs/file-upload/dropzone.js +1 -1
  91. package/cjs/file-upload/dropzone.js.map +1 -1
  92. package/cjs/file-upload/dropzone.styles.js +1 -34
  93. package/cjs/file-upload/dropzone.styles.js.map +1 -1
  94. package/cjs/file-upload/dropzone.styles_1pllsau.css +6 -0
  95. package/cjs/file-upload/file-item-edit.js +1 -1
  96. package/cjs/file-upload/file-item-edit.js.map +1 -1
  97. package/cjs/file-upload/file-item-edit.styles.js +1 -66
  98. package/cjs/file-upload/file-item-edit.styles.js.map +1 -1
  99. package/cjs/file-upload/file-item-edit.styles_1qbpbxj.css +10 -0
  100. package/cjs/file-upload/file-list-item/file-list-item-thumbnail.js +1 -34
  101. package/cjs/file-upload/file-list-item/file-list-item-thumbnail.js.map +1 -1
  102. package/cjs/file-upload/file-list-item/file-list-item-thumbnail.styles.js +2 -0
  103. package/cjs/file-upload/file-list-item/file-list-item-thumbnail.styles.js.map +1 -0
  104. package/cjs/file-upload/file-list-item/file-list-item-thumbnail.styles_1vrh1ve.css +4 -0
  105. package/cjs/file-upload/file-list-item/file-list-item.js +1 -1
  106. package/cjs/file-upload/file-list-item/file-list-item.js.map +1 -1
  107. package/cjs/file-upload/file-list-item/file-list-item.styles.js +1 -174
  108. package/cjs/file-upload/file-list-item/file-list-item.styles.js.map +1 -1
  109. package/cjs/file-upload/file-list-item/file-list-item.styles_y7my2m.css +14 -0
  110. package/cjs/file-upload/file-list.js +1 -1
  111. package/cjs/file-upload/file-list.js.map +1 -1
  112. package/cjs/file-upload/file-list.styles.js +1 -20
  113. package/cjs/file-upload/file-list.styles.js.map +1 -1
  114. package/cjs/file-upload/file-list.styles_16vplxk.css +3 -0
  115. package/cjs/file-upload/file-upload.js +1 -1
  116. package/cjs/file-upload/file-upload.js.map +1 -1
  117. package/cjs/file-upload/file-upload.styles.js +1 -40
  118. package/cjs/file-upload/file-upload.styles.js.map +1 -1
  119. package/cjs/file-upload/file-upload.styles_9ffwcd.css +8 -0
  120. package/cjs/filter/addons/filter-item-checkbox.js +1 -1
  121. package/cjs/filter/addons/filter-item-checkbox.js.map +1 -1
  122. package/cjs/filter/addons/filter-item-checkbox.styles.js +1 -72
  123. package/cjs/filter/addons/filter-item-checkbox.styles.js.map +1 -1
  124. package/cjs/filter/addons/filter-item-checkbox.styles_18l87i2.css +16 -0
  125. package/cjs/filter/filter-item-page.js +1 -1
  126. package/cjs/filter/filter-item-page.js.map +1 -1
  127. package/cjs/filter/filter-item-page.styles.js +1 -7
  128. package/cjs/filter/filter-item-page.styles.js.map +1 -1
  129. package/cjs/filter/filter-item-page.styles_17ewfrz.css +1 -0
  130. package/cjs/filter/filter-item.js +1 -1
  131. package/cjs/filter/filter-item.js.map +1 -1
  132. package/cjs/filter/filter-item.styles.js +1 -63
  133. package/cjs/filter/filter-item.styles.js.map +1 -1
  134. package/cjs/filter/filter-item.styles_1e3v6qq.css +17 -0
  135. package/cjs/filter/filter-modal.js +1 -1
  136. package/cjs/filter/filter-modal.js.map +1 -1
  137. package/cjs/filter/filter-modal.styles.js +1 -29
  138. package/cjs/filter/filter-modal.styles.js.map +1 -1
  139. package/cjs/filter/filter-modal.styles_e0ev97.css +8 -0
  140. package/cjs/filter/filter-sidebar.js +1 -1
  141. package/cjs/filter/filter-sidebar.js.map +1 -1
  142. package/cjs/filter/filter-sidebar.styles.js +1 -23
  143. package/cjs/filter/filter-sidebar.styles.js.map +1 -1
  144. package/cjs/filter/filter-sidebar.styles_cwvqql.css +4 -0
  145. package/cjs/filter/filter.js +1 -1
  146. package/cjs/filter/filter.js.map +1 -1
  147. package/cjs/filter/filter.styles.js +1 -26
  148. package/cjs/filter/filter.styles.js.map +1 -1
  149. package/cjs/filter/filter.styles_2fmaok.css +5 -0
  150. package/cjs/form/form-label-addon.js +1 -1
  151. package/cjs/form/form-label-addon.js.map +1 -1
  152. package/cjs/form/form-masked-input.js +1 -1
  153. package/cjs/form/form-masked-input.js.map +1 -1
  154. package/cjs/form/form-time-range-picker.js +1 -1
  155. package/cjs/form/form-time-range-picker.js.map +1 -1
  156. package/cjs/form/index.js.map +1 -1
  157. package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.js +1 -1
  158. package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.js.map +1 -1
  159. package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.styles.js +2 -0
  160. package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.styles.js.map +1 -0
  161. package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.styles_vc6y5c.css +75 -0
  162. package/cjs/fullscreen-image-carousel/stateful-image.js +1 -1
  163. package/cjs/fullscreen-image-carousel/stateful-image.js.map +1 -1
  164. package/cjs/fullscreen-image-carousel/stateful-image.styles.js +2 -0
  165. package/cjs/fullscreen-image-carousel/stateful-image.styles.js.map +1 -0
  166. package/cjs/fullscreen-image-carousel/stateful-image.styles_1xe8ypm.css +3 -0
  167. package/cjs/histogram-slider/histogram-slider.js +1 -1
  168. package/cjs/histogram-slider/histogram-slider.js.map +1 -1
  169. package/cjs/index.js +1 -1
  170. package/cjs/input-group/input-group-list-addon.js +1 -1
  171. package/cjs/input-group/input-group-list-addon.js.map +1 -1
  172. package/cjs/input-group/input-group-list-addon.styles.js +1 -1
  173. package/cjs/input-group/input-group-list-addon.styles.js.map +1 -1
  174. package/{input-group/input-group-list-addon.styles_1my6j2v.css → cjs/input-group/input-group-list-addon.styles_17iuqtw.css} +2 -2
  175. package/cjs/input-group/input-group.js +1 -1
  176. package/cjs/input-group/input-group.js.map +1 -1
  177. package/cjs/input-multi-select/input-multi-select.js +1 -1
  178. package/cjs/input-multi-select/input-multi-select.js.map +1 -1
  179. package/cjs/input-nested-multi-select/input-nested-multi-select.js +1 -1
  180. package/cjs/input-nested-multi-select/input-nested-multi-select.js.map +1 -1
  181. package/cjs/input-nested-select/input-nested-select.js +1 -1
  182. package/cjs/input-nested-select/input-nested-select.js.map +1 -1
  183. package/cjs/input-range-select/input-range-select.js +1 -1
  184. package/cjs/input-range-select/input-range-select.js.map +1 -1
  185. package/cjs/input-range-select/input-range-select.styles.js +2 -0
  186. package/cjs/input-range-select/input-range-select.styles.js.map +1 -0
  187. package/cjs/input-range-select/input-range-select.styles_adbrbm.css +2 -0
  188. package/cjs/input-range-slider/input-range-slider.js +1 -1
  189. package/cjs/input-range-slider/input-range-slider.js.map +1 -1
  190. package/cjs/input-range-slider/slider-components.js +1 -1
  191. package/cjs/input-range-slider/slider-components.js.map +1 -1
  192. package/cjs/input-select/input-select.js +1 -1
  193. package/cjs/input-select/input-select.js.map +1 -1
  194. package/cjs/language-switcher/dropdown-panel.js +2 -0
  195. package/cjs/language-switcher/dropdown-panel.js.map +1 -0
  196. package/cjs/language-switcher/dropdown-panel.styles.js +2 -0
  197. package/cjs/language-switcher/dropdown-panel.styles.js.map +1 -0
  198. package/cjs/language-switcher/dropdown-panel.styles_1z0n7qq.css +4 -0
  199. package/cjs/language-switcher/dropdown-variant.js +1 -1
  200. package/cjs/language-switcher/dropdown-variant.js.map +1 -1
  201. package/cjs/language-switcher/dropdown-variant.styles.js +2 -0
  202. package/cjs/language-switcher/dropdown-variant.styles.js.map +1 -0
  203. package/cjs/language-switcher/dropdown-variant.styles_16c4wc1.css +2 -0
  204. package/cjs/language-switcher/link-container-variant.js +1 -1
  205. package/cjs/language-switcher/link-container-variant.js.map +1 -1
  206. package/cjs/language-switcher/link-container-variant.styles.js +2 -0
  207. package/cjs/language-switcher/link-container-variant.styles.js.map +1 -0
  208. package/cjs/language-switcher/link-container-variant.styles_1blx9qm.css +5 -0
  209. package/cjs/layout/col-div.js +1 -1
  210. package/cjs/layout/col-div.js.map +1 -1
  211. package/cjs/link-list/components/common.js +1 -1
  212. package/cjs/link-list/components/common.js.map +1 -1
  213. package/cjs/link-list/components/link-list-eager.js +1 -1
  214. package/cjs/link-list/components/link-list-eager.js.map +1 -1
  215. package/cjs/link-list/components/link-list-lazy.js +1 -1
  216. package/cjs/link-list/components/link-list-lazy.js.map +1 -1
  217. package/cjs/link-list/link-list.js +1 -1
  218. package/cjs/link-list/link-list.js.map +1 -1
  219. package/cjs/link-list/link-list.styles.js +1 -89
  220. package/cjs/link-list/link-list.styles.js.map +1 -1
  221. package/cjs/link-list/link-list.styles_1g33nb4.css +13 -0
  222. package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.js +1 -1
  223. package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.js.map +1 -1
  224. package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.styles.js +1 -100
  225. package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.styles.js.map +1 -1
  226. package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.styles_ftv36t.css +13 -0
  227. package/cjs/local-nav/local-nav-menu/local-nav-menu.js +1 -1
  228. package/cjs/local-nav/local-nav-menu/local-nav-menu.js.map +1 -1
  229. package/cjs/local-nav/local-nav-menu/local-nav-menu.styles.js +1 -39
  230. package/cjs/local-nav/local-nav-menu/local-nav-menu.styles.js.map +1 -1
  231. package/cjs/local-nav/local-nav-menu/local-nav-menu.styles_pq19dh.css +5 -0
  232. package/cjs/markup/markup.js +1 -1
  233. package/cjs/markup/markup.js.map +1 -1
  234. package/cjs/masked-input/masked-input.js +1 -1
  235. package/cjs/masked-input/masked-input.js.map +1 -1
  236. package/cjs/masked-input/masked-input.styles.js +2 -0
  237. package/cjs/masked-input/masked-input.styles.js.map +1 -0
  238. package/cjs/masked-input/masked-input.styles_4i1qsy.css +16 -0
  239. package/cjs/menu/menu-content.js +1 -1
  240. package/cjs/menu/menu-content.js.map +1 -1
  241. package/cjs/menu/menu-content.styles.js +1 -1
  242. package/cjs/menu/menu-content.styles.js.map +1 -1
  243. package/cjs/menu/{menu-content.styles_1b7d6qf.css → menu-content.styles_p7ijll.css} +1 -1
  244. package/cjs/menu/menu.js +1 -1
  245. package/cjs/menu/menu.js.map +1 -1
  246. package/cjs/modal/modal.js +1 -1
  247. package/cjs/modal/modal.js.map +1 -1
  248. package/cjs/modal-v2/modal-v2.js +1 -1
  249. package/cjs/modal-v2/modal-v2.js.map +1 -1
  250. package/cjs/navbar/brand.js +1 -1
  251. package/cjs/navbar/brand.js.map +1 -1
  252. package/cjs/navbar/brand.styles.js +1 -12
  253. package/cjs/navbar/brand.styles.js.map +1 -1
  254. package/cjs/navbar/brand.styles_zcgddp.css +1 -0
  255. package/cjs/navbar/drawer.js +1 -1
  256. package/cjs/navbar/drawer.js.map +1 -1
  257. package/cjs/navbar/drawer.styles.js +1 -65
  258. package/cjs/navbar/drawer.styles.js.map +1 -1
  259. package/cjs/navbar/drawer.styles_7hnxp5.css +8 -0
  260. package/cjs/navbar/menu.js +1 -1
  261. package/cjs/navbar/menu.js.map +1 -1
  262. package/cjs/navbar/menu.styles.js +1 -34
  263. package/cjs/navbar/menu.styles.js.map +1 -1
  264. package/cjs/navbar/menu.styles_gdpqc.css +3 -0
  265. package/cjs/navbar/navbar-action-buttons.js +1 -1
  266. package/cjs/navbar/navbar-action-buttons.js.map +1 -1
  267. package/cjs/navbar/navbar-action-buttons.styles.js +1 -100
  268. package/cjs/navbar/navbar-action-buttons.styles.js.map +1 -1
  269. package/cjs/navbar/navbar-action-buttons.styles_1vpm0nk.css +10 -0
  270. package/cjs/navbar/navbar-items.js +1 -1
  271. package/cjs/navbar/navbar-items.js.map +1 -1
  272. package/cjs/navbar/navbar-items.styles.js +1 -114
  273. package/cjs/navbar/navbar-items.styles.js.map +1 -1
  274. package/cjs/navbar/navbar-items.styles_i9cunu.css +19 -0
  275. package/cjs/navbar/navbar-logo-data.js +1 -1
  276. package/cjs/navbar/navbar-logo-data.js.map +1 -1
  277. package/cjs/navbar/navbar.js +1 -1
  278. package/cjs/navbar/navbar.js.map +1 -1
  279. package/cjs/navbar/navbar.styles.js +1 -79
  280. package/cjs/navbar/navbar.styles.js.map +1 -1
  281. package/cjs/navbar/navbar.styles_koy0c7.css +20 -0
  282. package/cjs/notification-banner/notification-banner.js +1 -1
  283. package/cjs/notification-banner/notification-banner.js.map +1 -1
  284. package/cjs/notification-banner/notification-banner.styles.js +1 -111
  285. package/cjs/notification-banner/notification-banner.styles.js.map +1 -1
  286. package/cjs/notification-banner/notification-banner.styles_130loac.css +12 -0
  287. package/cjs/otp-input/otp-input.js +1 -1
  288. package/cjs/otp-input/otp-input.js.map +1 -1
  289. package/cjs/otp-input/otp-input.styles.js +1 -22
  290. package/cjs/otp-input/otp-input.styles.js.map +1 -1
  291. package/cjs/otp-input/otp-input.styles_5sbutl.css +5 -0
  292. package/cjs/otp-verification/contact-input-section-styles.js +18 -16
  293. package/cjs/otp-verification/contact-input-section-styles.js.map +1 -1
  294. package/cjs/otp-verification/contact-input-section.js +1 -1
  295. package/cjs/otp-verification/contact-input-section.js.map +1 -1
  296. package/cjs/otp-verification/verification-section.js +1 -1
  297. package/cjs/otp-verification/verification-section.js.map +1 -1
  298. package/cjs/overlay/overlay.js +1 -1
  299. package/cjs/overlay/overlay.js.map +1 -1
  300. package/cjs/pagination/pagination.js +1 -1
  301. package/cjs/pagination/pagination.js.map +1 -1
  302. package/cjs/popover/index.js +1 -1
  303. package/{popover-v2 → cjs/popover}/popover-inline/popover-inline.js.map +1 -1
  304. package/cjs/popover/popover-inline/popover-inline.styles.js +2 -0
  305. package/{popover-v2 → cjs/popover}/popover-inline/popover-inline.styles.js.map +1 -1
  306. package/cjs/popover/popover-inline/popover-inline.styles_bkopnt.css +2 -0
  307. package/cjs/popover/popover-trigger.js +2 -0
  308. package/cjs/popover/popover-trigger.js.map +1 -0
  309. package/cjs/popover/popover-trigger.styles.js +2 -0
  310. package/{popover-v2 → cjs/popover}/popover-trigger.styles.js.map +1 -1
  311. package/cjs/popover/popover-trigger.styles_8zokig.css +1 -0
  312. package/cjs/popover/popover.js +1 -1
  313. package/cjs/popover/popover.js.map +1 -1
  314. package/cjs/popover/popover.styles.js +1 -74
  315. package/cjs/popover/popover.styles.js.map +1 -1
  316. package/cjs/popover/popover.styles_ujnf0h.css +4 -0
  317. package/cjs/predictive-text-input/predictive-text-input.js +1 -1
  318. package/cjs/predictive-text-input/predictive-text-input.js.map +1 -1
  319. package/cjs/progress-indicator/progress-indicator.js +1 -1
  320. package/cjs/progress-indicator/progress-indicator.js.map +1 -1
  321. package/cjs/progress-indicator/progress-indicator.styles.js +2 -0
  322. package/cjs/progress-indicator/progress-indicator.styles.js.map +1 -0
  323. package/cjs/progress-indicator/progress-indicator.styles_1c038s4.css +8 -0
  324. package/cjs/schedule/schedule.js +1 -1
  325. package/cjs/schedule/schedule.js.map +1 -1
  326. package/cjs/schedule/shared/with-optional-popover.js +1 -1
  327. package/cjs/schedule/shared/with-optional-popover.js.map +1 -1
  328. package/cjs/select-histogram/select-histogram.js +1 -1
  329. package/cjs/select-histogram/select-histogram.js.map +1 -1
  330. package/cjs/select-histogram/select-histogram.styles.js +1 -37
  331. package/cjs/select-histogram/select-histogram.styles.js.map +1 -1
  332. package/cjs/select-histogram/select-histogram.styles_11916eo.css +5 -0
  333. package/cjs/shared/component-loading-spinner/component-loading-spinner.js +1 -1
  334. package/cjs/shared/component-loading-spinner/component-loading-spinner.js.map +1 -1
  335. package/cjs/shared/dropdown-list/dropdown-label.js +1 -1
  336. package/cjs/shared/dropdown-list/dropdown-label.js.map +1 -1
  337. package/cjs/shared/dropdown-list/dropdown-list.js +1 -1
  338. package/cjs/shared/dropdown-list/dropdown-list.js.map +1 -1
  339. package/cjs/shared/dropdown-list/dropdown-list.styles.js +1 -1
  340. package/cjs/shared/dropdown-list/dropdown-list.styles.js.map +1 -1
  341. package/{shared/dropdown-list/dropdown-list.styles_1qveyb9.css → cjs/shared/dropdown-list/dropdown-list.styles_1kt4zhf.css} +3 -6
  342. package/cjs/shared/dropdown-list/nested-dropdown-list.js +1 -1
  343. package/cjs/shared/dropdown-list/nested-dropdown-list.js.map +1 -1
  344. package/cjs/shared/dropdown-wrapper/element-with-dropdown.js +1 -1
  345. package/cjs/shared/dropdown-wrapper/element-with-dropdown.js.map +1 -1
  346. package/cjs/shared/fade-wrapper/fade-wrapper.js +1 -1
  347. package/cjs/shared/fade-wrapper/fade-wrapper.js.map +1 -1
  348. package/cjs/shared/fade-wrapper/helpers.js +1 -1
  349. package/cjs/shared/fade-wrapper/helpers.js.map +1 -1
  350. package/cjs/shared/input-wrapper/input-wrapper.js +1 -1
  351. package/cjs/shared/input-wrapper/input-wrapper.js.map +1 -1
  352. package/cjs/shared/input-wrapper/input-wrapper.styles.js +1 -1
  353. package/cjs/shared/input-wrapper/input-wrapper.styles.js.map +1 -1
  354. package/cjs/shared/input-wrapper/{input-wrapper.styles_1kc4xhb.css → input-wrapper.styles_19fpzb.css} +3 -0
  355. package/cjs/shared/internal-calendar/calendar-dropdown.js +1 -1
  356. package/cjs/shared/internal-calendar/calendar-dropdown.js.map +1 -1
  357. package/cjs/shared/progress-bar/progress-bar.js +1 -1
  358. package/cjs/shared/progress-bar/progress-bar.js.map +1 -1
  359. package/cjs/shared/standalone-date-input/standalone-date-input.js +1 -1
  360. package/cjs/shared/standalone-date-input/standalone-date-input.js.map +1 -1
  361. package/cjs/shared/standalone-date-input/standalone-date-input.styles.js +1 -1
  362. package/cjs/shared/standalone-date-input/standalone-date-input.styles.js.map +1 -1
  363. package/{shared/standalone-date-input/standalone-date-input.styles_1mqophx.css → cjs/shared/standalone-date-input/standalone-date-input.styles_1m0da43.css} +10 -11
  364. package/cjs/shared/time-slot/time-slot.js +2 -0
  365. package/cjs/shared/time-slot/time-slot.js.map +1 -0
  366. package/cjs/shared/time-slot/time-slot.styles.js +2 -0
  367. package/cjs/shared/time-slot/time-slot.styles.js.map +1 -0
  368. package/cjs/shared/time-slot/time-slot.styles_1r9na3f.css +17 -0
  369. package/cjs/smart-app-banner/smart-app-banner.js +1 -1
  370. package/cjs/smart-app-banner/smart-app-banner.js.map +1 -1
  371. package/cjs/smart-app-banner/smart-app-banner.styles.js +1 -93
  372. package/cjs/smart-app-banner/smart-app-banner.styles.js.map +1 -1
  373. package/cjs/smart-app-banner/smart-app-banner.styles_m5dtgh.css +16 -0
  374. package/cjs/tab/tab-link-chain.js +1 -1
  375. package/cjs/tab/tab-link-chain.js.map +1 -1
  376. package/cjs/text-list/ordered-list.js +1 -1
  377. package/cjs/text-list/ordered-list.js.map +1 -1
  378. package/cjs/text-list/unordered-list.js +1 -1
  379. package/cjs/text-list/unordered-list.js.map +1 -1
  380. package/cjs/theme/index.js +1 -1
  381. package/cjs/theme/theme-provider/breakpoint.js +1 -1
  382. package/cjs/theme/theme-provider/breakpoint.js.map +1 -1
  383. package/cjs/theme/tokens/font.js +1 -1
  384. package/cjs/theme/tokens/font.js.map +1 -1
  385. package/cjs/theme/utils/css-variable.js +1 -1
  386. package/cjs/theme/utils/css-variable.js.map +1 -1
  387. package/cjs/theme/utils/use-media-query.js +2 -0
  388. package/cjs/theme/utils/use-media-query.js.map +1 -0
  389. package/cjs/time-range-picker/combobox-picker/combobox-picker.js +1 -1
  390. package/cjs/time-range-picker/combobox-picker/combobox-picker.js.map +1 -1
  391. package/cjs/time-range-picker/combobox-picker/combobox-picker.styles.js +1 -6
  392. package/cjs/time-range-picker/combobox-picker/combobox-picker.styles.js.map +1 -1
  393. package/cjs/time-range-picker/combobox-picker/combobox-picker.styles_7i9vso.css +1 -0
  394. package/cjs/time-range-picker/common.styles.js +1 -10
  395. package/cjs/time-range-picker/common.styles.js.map +1 -1
  396. package/cjs/time-range-picker/common.styles_1qwp4xa.css +3 -0
  397. package/cjs/time-range-picker/dial-picker/dial-picker.js +1 -1
  398. package/cjs/time-range-picker/dial-picker/dial-picker.js.map +1 -1
  399. package/cjs/time-slot-bar/helper.js +1 -1
  400. package/cjs/time-slot-bar/helper.js.map +1 -1
  401. package/cjs/time-slot-bar/time-slot-bar.js +1 -1
  402. package/cjs/time-slot-bar/time-slot-bar.js.map +1 -1
  403. package/cjs/time-slot-bar/time-slot-bar.styles.js +1 -127
  404. package/cjs/time-slot-bar/time-slot-bar.styles.js.map +1 -1
  405. package/cjs/time-slot-bar/time-slot-bar.styles_wigbyd.css +25 -0
  406. package/cjs/time-slot-bar/time-slot-divider.js +2 -0
  407. package/cjs/time-slot-bar/time-slot-divider.js.map +1 -0
  408. package/cjs/time-slot-bar/time-slot-item.js +2 -0
  409. package/cjs/time-slot-bar/time-slot-item.js.map +1 -0
  410. package/cjs/time-slot-bar-week/time-slot-bar-week-days.js +1 -1
  411. package/cjs/time-slot-bar-week/time-slot-bar-week-days.js.map +1 -1
  412. package/cjs/time-slot-bar-week/time-slot-bar-week-days.style.js +25 -22
  413. package/cjs/time-slot-bar-week/time-slot-bar-week-days.style.js.map +1 -1
  414. package/cjs/time-slot-week-view/time-slot-week-days.js +1 -1
  415. package/cjs/time-slot-week-view/time-slot-week-days.js.map +1 -1
  416. package/cjs/time-slot-week-view/time-slot-week-days.style.js +16 -10
  417. package/cjs/time-slot-week-view/time-slot-week-days.style.js.map +1 -1
  418. package/cjs/timeline/timeline.js +1 -1
  419. package/cjs/timeline/timeline.js.map +1 -1
  420. package/cjs/timeline/timeline.styles.js +2 -0
  421. package/cjs/timeline/timeline.styles.js.map +1 -0
  422. package/cjs/timeline/timeline.styles_1wcnzot.css +9 -0
  423. package/cjs/timetable/const.js +1 -1
  424. package/cjs/timetable/const.js.map +1 -1
  425. package/cjs/timetable/timetable-header/timetable-header.js +1 -1
  426. package/cjs/timetable/timetable-header/timetable-header.js.map +1 -1
  427. package/cjs/timetable/timetable-header/timetable-header.styles.js +2 -0
  428. package/cjs/timetable/timetable-header/timetable-header.styles.js.map +1 -0
  429. package/cjs/timetable/timetable-header/timetable-header.styles_11gl1h4.css +6 -0
  430. package/cjs/timetable/timetable-row/row-bar.js +1 -1
  431. package/cjs/timetable/timetable-row/row-bar.js.map +1 -1
  432. package/cjs/timetable/timetable-row/row-bar.styles.js +2 -0
  433. package/cjs/timetable/timetable-row/row-bar.styles.js.map +1 -0
  434. package/cjs/timetable/timetable-row/row-bar.styles_1x0vrsz.css +1 -0
  435. package/cjs/timetable/timetable-row/row-cell.js +1 -1
  436. package/cjs/timetable/timetable-row/row-cell.js.map +1 -1
  437. package/cjs/timetable/timetable-row/row-cell.styles.js +2 -0
  438. package/cjs/timetable/timetable-row/row-cell.styles.js.map +1 -0
  439. package/cjs/timetable/timetable-row/row-cell.styles_y1dl5j.css +7 -0
  440. package/cjs/timetable/timetable-row/with-optional-popover.js +1 -1
  441. package/cjs/timetable/timetable-row/with-optional-popover.js.map +1 -1
  442. package/cjs/timetable/timetable.js +1 -1
  443. package/cjs/timetable/timetable.js.map +1 -1
  444. package/cjs/timetable/timetable.styles.js +2 -0
  445. package/cjs/timetable/timetable.styles.js.map +1 -0
  446. package/cjs/timetable/timetable.styles_7rp8kz.css +46 -0
  447. package/cjs/toast/toast.js +1 -1
  448. package/cjs/toast/toast.js.map +1 -1
  449. package/cjs/toast/toast.styles.js +1 -98
  450. package/cjs/toast/toast.styles.js.map +1 -1
  451. package/cjs/toast/toast.styles_ngrlup.css +8 -0
  452. package/cjs/toggle/toggle.js +1 -1
  453. package/cjs/toggle/toggle.js.map +1 -1
  454. package/cjs/typography/typography.js +1 -1
  455. package/cjs/typography/typography.js.map +1 -1
  456. package/cjs/uneditable-section/item-section.js +1 -1
  457. package/cjs/uneditable-section/item-section.js.map +1 -1
  458. package/cjs/uneditable-section/section-item.js +1 -1
  459. package/cjs/uneditable-section/section-item.js.map +1 -1
  460. package/cjs/uneditable-section/section-item.styles.js +1 -63
  461. package/cjs/uneditable-section/section-item.styles.js.map +1 -1
  462. package/cjs/uneditable-section/section-item.styles_1dfjzc4.css +9 -0
  463. package/cjs/uneditable-section/uneditable-section.js +1 -1
  464. package/cjs/uneditable-section/uneditable-section.js.map +1 -1
  465. package/cjs/uneditable-section/uneditable-section.styles.js +1 -39
  466. package/cjs/uneditable-section/uneditable-section.styles.js.map +1 -1
  467. package/cjs/uneditable-section/uneditable-section.styles_aj9zun.css +8 -0
  468. package/cjs/unit-number/unit-number-input.js +1 -1
  469. package/cjs/unit-number/unit-number-input.js.map +1 -1
  470. package/cjs/unit-number/unit-number-input.styles.js +2 -0
  471. package/cjs/unit-number/unit-number-input.styles.js.map +1 -0
  472. package/cjs/unit-number/unit-number-input.styles_8yizj.css +7 -0
  473. package/cjs/util/styling-helper.js +1 -1
  474. package/cjs/util/styling-helper.js.map +1 -1
  475. package/countdown-timer/countdown-timer.js +1 -1
  476. package/countdown-timer/countdown-timer.js.map +1 -1
  477. package/countdown-timer/countdown-timer.styles.d.ts +15 -0
  478. package/countdown-timer/countdown-timer.styles.js +2 -0
  479. package/countdown-timer/countdown-timer.styles.js.map +1 -0
  480. package/countdown-timer/countdown-timer.styles_k50tkw.css +8 -0
  481. package/dashed-border/dashed-border.js +1 -1
  482. package/dashed-border/dashed-border.js.map +1 -1
  483. package/data-table/data-table.js +1 -1
  484. package/data-table/data-table.js.map +1 -1
  485. package/data-table/data-table.styles.d.ts +30 -83
  486. package/data-table/data-table.styles.js +1 -152
  487. package/data-table/data-table.styles.js.map +1 -1
  488. package/data-table/data-table.styles_1nj2uzq.css +26 -0
  489. package/date-input/date-input.d.ts +1 -1
  490. package/date-input/date-input.js +1 -1
  491. package/date-input/date-input.js.map +1 -1
  492. package/date-input/date-input.styles.d.ts +1 -0
  493. package/date-input/date-input.styles.js +2 -0
  494. package/date-input/date-input.styles.js.map +1 -0
  495. package/date-input/date-input.styles_1r5kcc7.css +1 -0
  496. package/date-range-input/date-range-input.js +1 -1
  497. package/date-range-input/date-range-input.js.map +1 -1
  498. package/date-range-input/date-range-input.styles.d.ts +5 -0
  499. package/date-range-input/date-range-input.styles.js +2 -0
  500. package/date-range-input/date-range-input.styles.js.map +1 -0
  501. package/date-range-input/date-range-input.styles_1s7ojnj.css +4 -0
  502. package/divider/divider.d.ts +1 -1
  503. package/divider/divider.js +1 -1
  504. package/divider/divider.js.map +1 -1
  505. package/divider/types.d.ts +1 -2
  506. package/e-signature/e-signature.js +1 -1
  507. package/e-signature/e-signature.js.map +1 -1
  508. package/e-signature/e-signature.styles.js +5 -5
  509. package/e-signature/e-signature.styles.js.map +1 -1
  510. package/error-display/error-display-data.d.ts +2 -2
  511. package/error-display/error-display-data.js +1 -1
  512. package/error-display/error-display-data.js.map +1 -1
  513. package/error-display/error-display.js +1 -1
  514. package/error-display/error-display.js.map +1 -1
  515. package/error-display/helper.d.ts +1 -1
  516. package/error-display/helper.js +1 -1
  517. package/error-display/helper.js.map +1 -1
  518. package/external/lodash/isNumber.js +2 -0
  519. package/external/lodash/isNumber.js.map +1 -0
  520. package/external/lodash.clonedeep/index.js +1 -1
  521. package/external/lottie-colorify/lib/index.js +1 -1
  522. package/external/lottie-colorify/lib/index.js.map +1 -1
  523. package/external/prop-types/external/react-is/index.js +1 -1
  524. package/external/prop-types/index.js +1 -1
  525. package/external/prop-types/index.js.map +1 -1
  526. package/feedback-rating/feedback-rating-stars-container.js +1 -1
  527. package/feedback-rating/feedback-rating-stars-container.js.map +1 -1
  528. package/feedback-rating/feedback-rating-stars-container.styles.d.ts +4 -23
  529. package/feedback-rating/feedback-rating-stars-container.styles.js +1 -36
  530. package/feedback-rating/feedback-rating-stars-container.styles.js.map +1 -1
  531. package/feedback-rating/feedback-rating-stars-container.styles_dmi8z9.css +4 -0
  532. package/feedback-rating/feedback-rating.js +1 -1
  533. package/feedback-rating/feedback-rating.js.map +1 -1
  534. package/feedback-rating/feedback-rating.styles.d.ts +4 -4
  535. package/feedback-rating/feedback-rating.styles.js +1 -37
  536. package/feedback-rating/feedback-rating.styles.js.map +1 -1
  537. package/feedback-rating/feedback-rating.styles_1kdklb6.css +4 -0
  538. package/file-download/file-list-card/file-list-card.js +1 -1
  539. package/file-download/file-list-card/file-list-card.js.map +1 -1
  540. package/file-upload/dropzone.js +1 -1
  541. package/file-upload/dropzone.js.map +1 -1
  542. package/file-upload/dropzone.styles.d.ts +6 -34
  543. package/file-upload/dropzone.styles.js +1 -34
  544. package/file-upload/dropzone.styles.js.map +1 -1
  545. package/file-upload/dropzone.styles_1pllsau.css +6 -0
  546. package/file-upload/file-item-edit.js +1 -1
  547. package/file-upload/file-item-edit.js.map +1 -1
  548. package/file-upload/file-item-edit.styles.d.ts +8 -48
  549. package/file-upload/file-item-edit.styles.js +1 -66
  550. package/file-upload/file-item-edit.styles.js.map +1 -1
  551. package/file-upload/file-item-edit.styles_1qbpbxj.css +10 -0
  552. package/file-upload/file-list-item/file-list-item-thumbnail.d.ts +0 -7
  553. package/file-upload/file-list-item/file-list-item-thumbnail.js +1 -34
  554. package/file-upload/file-list-item/file-list-item-thumbnail.js.map +1 -1
  555. package/file-upload/file-list-item/file-list-item-thumbnail.styles.d.ts +4 -0
  556. package/file-upload/file-list-item/file-list-item-thumbnail.styles.js +2 -0
  557. package/file-upload/file-list-item/file-list-item-thumbnail.styles.js.map +1 -0
  558. package/file-upload/file-list-item/file-list-item-thumbnail.styles_1vrh1ve.css +4 -0
  559. package/file-upload/file-list-item/file-list-item.js +1 -1
  560. package/file-upload/file-list-item/file-list-item.js.map +1 -1
  561. package/file-upload/file-list-item/file-list-item.styles.d.ts +14 -170
  562. package/file-upload/file-list-item/file-list-item.styles.js +1 -174
  563. package/file-upload/file-list-item/file-list-item.styles.js.map +1 -1
  564. package/file-upload/file-list-item/file-list-item.styles_y7my2m.css +14 -0
  565. package/file-upload/file-list.js +1 -1
  566. package/file-upload/file-list.js.map +1 -1
  567. package/file-upload/file-list.styles.d.ts +3 -6
  568. package/file-upload/file-list.styles.js +1 -20
  569. package/file-upload/file-list.styles.js.map +1 -1
  570. package/file-upload/file-list.styles_16vplxk.css +3 -0
  571. package/file-upload/file-upload.js +1 -1
  572. package/file-upload/file-upload.js.map +1 -1
  573. package/file-upload/file-upload.styles.d.ts +8 -64
  574. package/file-upload/file-upload.styles.js +1 -40
  575. package/file-upload/file-upload.styles.js.map +1 -1
  576. package/file-upload/file-upload.styles_9ffwcd.css +8 -0
  577. package/filter/addons/filter-item-checkbox.js +1 -1
  578. package/filter/addons/filter-item-checkbox.js.map +1 -1
  579. package/filter/addons/filter-item-checkbox.styles.d.ts +15 -25
  580. package/filter/addons/filter-item-checkbox.styles.js +1 -72
  581. package/filter/addons/filter-item-checkbox.styles.js.map +1 -1
  582. package/filter/addons/filter-item-checkbox.styles_18l87i2.css +16 -0
  583. package/filter/filter-item-page.js +1 -1
  584. package/filter/filter-item-page.js.map +1 -1
  585. package/filter/filter-item-page.styles.d.ts +1 -1
  586. package/filter/filter-item-page.styles.js +1 -7
  587. package/filter/filter-item-page.styles.js.map +1 -1
  588. package/filter/filter-item-page.styles_17ewfrz.css +1 -0
  589. package/filter/filter-item.d.ts +1 -1
  590. package/filter/filter-item.js +1 -1
  591. package/filter/filter-item.js.map +1 -1
  592. package/filter/filter-item.styles.d.ts +22 -38
  593. package/filter/filter-item.styles.js +1 -63
  594. package/filter/filter-item.styles.js.map +1 -1
  595. package/filter/filter-item.styles_1e3v6qq.css +17 -0
  596. package/filter/filter-modal.d.ts +1 -1
  597. package/filter/filter-modal.js +1 -1
  598. package/filter/filter-modal.js.map +1 -1
  599. package/filter/filter-modal.styles.d.ts +12 -14
  600. package/filter/filter-modal.styles.js +1 -29
  601. package/filter/filter-modal.styles.js.map +1 -1
  602. package/filter/filter-modal.styles_e0ev97.css +8 -0
  603. package/filter/filter-sidebar.d.ts +1 -1
  604. package/filter/filter-sidebar.js +1 -1
  605. package/filter/filter-sidebar.js.map +1 -1
  606. package/filter/filter-sidebar.styles.d.ts +4 -4
  607. package/filter/filter-sidebar.styles.js +1 -23
  608. package/filter/filter-sidebar.styles.js.map +1 -1
  609. package/filter/filter-sidebar.styles_cwvqql.css +4 -0
  610. package/filter/filter.d.ts +3 -3
  611. package/filter/filter.js +1 -1
  612. package/filter/filter.js.map +1 -1
  613. package/filter/filter.styles.d.ts +9 -7
  614. package/filter/filter.styles.js +1 -26
  615. package/filter/filter.styles.js.map +1 -1
  616. package/filter/filter.styles_2fmaok.css +5 -0
  617. package/form/form-label-addon.js +1 -1
  618. package/form/form-label-addon.js.map +1 -1
  619. package/form/form-masked-input.js +1 -1
  620. package/form/form-masked-input.js.map +1 -1
  621. package/form/form-time-range-picker.js +1 -1
  622. package/form/form-time-range-picker.js.map +1 -1
  623. package/form/index.d.ts +1 -0
  624. package/form/index.js.map +1 -1
  625. package/fullscreen-image-carousel/fullscreen-image-carousel.js +1 -1
  626. package/fullscreen-image-carousel/fullscreen-image-carousel.js.map +1 -1
  627. package/fullscreen-image-carousel/fullscreen-image-carousel.styles.d.ts +40 -0
  628. package/fullscreen-image-carousel/fullscreen-image-carousel.styles.js +2 -0
  629. package/fullscreen-image-carousel/fullscreen-image-carousel.styles.js.map +1 -0
  630. package/fullscreen-image-carousel/fullscreen-image-carousel.styles_vc6y5c.css +75 -0
  631. package/fullscreen-image-carousel/stateful-image.js +1 -1
  632. package/fullscreen-image-carousel/stateful-image.js.map +1 -1
  633. package/fullscreen-image-carousel/stateful-image.styles.d.ts +8 -0
  634. package/fullscreen-image-carousel/stateful-image.styles.js +2 -0
  635. package/fullscreen-image-carousel/stateful-image.styles.js.map +1 -0
  636. package/fullscreen-image-carousel/stateful-image.styles_1xe8ypm.css +3 -0
  637. package/histogram-slider/histogram-slider.js +1 -1
  638. package/histogram-slider/histogram-slider.js.map +1 -1
  639. package/index.d.ts +0 -11
  640. package/index.js +1 -1
  641. package/input-group/input-group-list-addon.js +1 -1
  642. package/input-group/input-group-list-addon.js.map +1 -1
  643. package/input-group/input-group-list-addon.styles.d.ts +2 -2
  644. package/input-group/input-group-list-addon.styles.js +1 -1
  645. package/input-group/input-group-list-addon.styles.js.map +1 -1
  646. package/{cjs/input-group/input-group-list-addon.styles_1my6j2v.css → input-group/input-group-list-addon.styles_17iuqtw.css} +2 -2
  647. package/input-group/input-group.js +1 -1
  648. package/input-group/input-group.js.map +1 -1
  649. package/input-multi-select/input-multi-select.js +1 -1
  650. package/input-multi-select/input-multi-select.js.map +1 -1
  651. package/input-nested-multi-select/input-nested-multi-select.js +1 -1
  652. package/input-nested-multi-select/input-nested-multi-select.js.map +1 -1
  653. package/input-nested-select/input-nested-select.js +1 -1
  654. package/input-nested-select/input-nested-select.js.map +1 -1
  655. package/input-range-select/input-range-select.js +1 -1
  656. package/input-range-select/input-range-select.js.map +1 -1
  657. package/input-range-select/input-range-select.styles.d.ts +2 -0
  658. package/input-range-select/input-range-select.styles.js +2 -0
  659. package/input-range-select/input-range-select.styles.js.map +1 -0
  660. package/input-range-select/input-range-select.styles_adbrbm.css +2 -0
  661. package/input-range-slider/input-range-slider.js +1 -1
  662. package/input-range-slider/input-range-slider.js.map +1 -1
  663. package/input-range-slider/slider-components.js +1 -1
  664. package/input-range-slider/slider-components.js.map +1 -1
  665. package/input-select/input-select.js +1 -1
  666. package/input-select/input-select.js.map +1 -1
  667. package/input-select/types.d.ts +1 -1
  668. package/language-switcher/dropdown-panel.d.ts +13 -0
  669. package/language-switcher/dropdown-panel.js +2 -0
  670. package/language-switcher/dropdown-panel.js.map +1 -0
  671. package/language-switcher/dropdown-panel.styles.d.ts +8 -0
  672. package/language-switcher/dropdown-panel.styles.js +2 -0
  673. package/language-switcher/dropdown-panel.styles.js.map +1 -0
  674. package/language-switcher/dropdown-panel.styles_1z0n7qq.css +4 -0
  675. package/language-switcher/dropdown-variant.js +1 -1
  676. package/language-switcher/dropdown-variant.js.map +1 -1
  677. package/language-switcher/dropdown-variant.styles.d.ts +2 -0
  678. package/language-switcher/dropdown-variant.styles.js +2 -0
  679. package/language-switcher/dropdown-variant.styles.js.map +1 -0
  680. package/language-switcher/dropdown-variant.styles_16c4wc1.css +2 -0
  681. package/language-switcher/link-container-variant.d.ts +1 -1
  682. package/language-switcher/link-container-variant.js +1 -1
  683. package/language-switcher/link-container-variant.js.map +1 -1
  684. package/language-switcher/link-container-variant.styles.d.ts +5 -0
  685. package/language-switcher/link-container-variant.styles.js +2 -0
  686. package/language-switcher/link-container-variant.styles.js.map +1 -0
  687. package/language-switcher/link-container-variant.styles_1blx9qm.css +5 -0
  688. package/layout/col-div.js +1 -1
  689. package/layout/col-div.js.map +1 -1
  690. package/link-list/components/common.js +1 -1
  691. package/link-list/components/common.js.map +1 -1
  692. package/link-list/components/link-list-eager.js +1 -1
  693. package/link-list/components/link-list-eager.js.map +1 -1
  694. package/link-list/components/link-list-lazy.js +1 -1
  695. package/link-list/components/link-list-lazy.js.map +1 -1
  696. package/link-list/link-list.js +1 -1
  697. package/link-list/link-list.js.map +1 -1
  698. package/link-list/link-list.styles.d.ts +13 -113
  699. package/link-list/link-list.styles.js +1 -89
  700. package/link-list/link-list.styles.js.map +1 -1
  701. package/link-list/link-list.styles_1g33nb4.css +13 -0
  702. package/local-nav/local-nav-dropdown/local-nav-dropdown.js +1 -1
  703. package/local-nav/local-nav-dropdown/local-nav-dropdown.js.map +1 -1
  704. package/local-nav/local-nav-dropdown/local-nav-dropdown.styles.d.ts +22 -41
  705. package/local-nav/local-nav-dropdown/local-nav-dropdown.styles.js +1 -100
  706. package/local-nav/local-nav-dropdown/local-nav-dropdown.styles.js.map +1 -1
  707. package/local-nav/local-nav-dropdown/local-nav-dropdown.styles_ftv36t.css +13 -0
  708. package/local-nav/local-nav-menu/local-nav-menu.js +1 -1
  709. package/local-nav/local-nav-menu/local-nav-menu.js.map +1 -1
  710. package/local-nav/local-nav-menu/local-nav-menu.styles.d.ts +5 -26
  711. package/local-nav/local-nav-menu/local-nav-menu.styles.js +1 -39
  712. package/local-nav/local-nav-menu/local-nav-menu.styles.js.map +1 -1
  713. package/local-nav/local-nav-menu/local-nav-menu.styles_pq19dh.css +5 -0
  714. package/markup/markup.js +1 -1
  715. package/markup/markup.js.map +1 -1
  716. package/masked-input/masked-input.js +1 -1
  717. package/masked-input/masked-input.js.map +1 -1
  718. package/masked-input/masked-input.styles.d.ts +22 -0
  719. package/masked-input/masked-input.styles.js +2 -0
  720. package/masked-input/masked-input.styles.js.map +1 -0
  721. package/masked-input/masked-input.styles_4i1qsy.css +16 -0
  722. package/menu/menu-content.js +1 -1
  723. package/menu/menu-content.js.map +1 -1
  724. package/menu/menu-content.styles.js +1 -1
  725. package/menu/menu-content.styles.js.map +1 -1
  726. package/menu/{menu-content.styles_1b7d6qf.css → menu-content.styles_p7ijll.css} +1 -1
  727. package/menu/menu.js +1 -1
  728. package/menu/menu.js.map +1 -1
  729. package/menu/types.d.ts +2 -2
  730. package/modal/modal.js +1 -1
  731. package/modal/modal.js.map +1 -1
  732. package/modal-v2/modal-v2.js +1 -1
  733. package/modal-v2/modal-v2.js.map +1 -1
  734. package/navbar/brand.js +1 -1
  735. package/navbar/brand.js.map +1 -1
  736. package/navbar/brand.styles.d.ts +1 -6
  737. package/navbar/brand.styles.js +1 -12
  738. package/navbar/brand.styles.js.map +1 -1
  739. package/navbar/brand.styles_zcgddp.css +1 -0
  740. package/navbar/drawer.js +1 -1
  741. package/navbar/drawer.js.map +1 -1
  742. package/navbar/drawer.styles.d.ts +13 -18
  743. package/navbar/drawer.styles.js +1 -65
  744. package/navbar/drawer.styles.js.map +1 -1
  745. package/navbar/drawer.styles_7hnxp5.css +8 -0
  746. package/navbar/menu.js +1 -1
  747. package/navbar/menu.js.map +1 -1
  748. package/navbar/menu.styles.d.ts +3 -3
  749. package/navbar/menu.styles.js +1 -34
  750. package/navbar/menu.styles.js.map +1 -1
  751. package/navbar/menu.styles_gdpqc.css +3 -0
  752. package/navbar/navbar-action-buttons.js +1 -1
  753. package/navbar/navbar-action-buttons.js.map +1 -1
  754. package/navbar/navbar-action-buttons.styles.d.ts +10 -31
  755. package/navbar/navbar-action-buttons.styles.js +1 -100
  756. package/navbar/navbar-action-buttons.styles.js.map +1 -1
  757. package/navbar/navbar-action-buttons.styles_1vpm0nk.css +10 -0
  758. package/navbar/navbar-items.js +1 -1
  759. package/navbar/navbar-items.js.map +1 -1
  760. package/navbar/navbar-items.styles.d.ts +19 -40
  761. package/navbar/navbar-items.styles.js +1 -114
  762. package/navbar/navbar-items.styles.js.map +1 -1
  763. package/navbar/navbar-items.styles_i9cunu.css +19 -0
  764. package/navbar/navbar-logo-data.d.ts +2 -2
  765. package/navbar/navbar-logo-data.js +1 -1
  766. package/navbar/navbar-logo-data.js.map +1 -1
  767. package/navbar/navbar.js +1 -1
  768. package/navbar/navbar.js.map +1 -1
  769. package/navbar/navbar.styles.d.ts +25 -20
  770. package/navbar/navbar.styles.js +1 -79
  771. package/navbar/navbar.styles.js.map +1 -1
  772. package/navbar/navbar.styles_koy0c7.css +20 -0
  773. package/notification-banner/notification-banner.d.ts +2 -2
  774. package/notification-banner/notification-banner.js +1 -1
  775. package/notification-banner/notification-banner.js.map +1 -1
  776. package/notification-banner/notification-banner.styles.d.ts +17 -23
  777. package/notification-banner/notification-banner.styles.js +1 -111
  778. package/notification-banner/notification-banner.styles.js.map +1 -1
  779. package/notification-banner/notification-banner.styles_130loac.css +12 -0
  780. package/otp-input/otp-input.js +1 -1
  781. package/otp-input/otp-input.js.map +1 -1
  782. package/otp-input/otp-input.styles.d.ts +5 -23
  783. package/otp-input/otp-input.styles.js +1 -22
  784. package/otp-input/otp-input.styles.js.map +1 -1
  785. package/otp-input/otp-input.styles_5sbutl.css +5 -0
  786. package/otp-verification/contact-input-section-styles.js +47 -45
  787. package/otp-verification/contact-input-section-styles.js.map +1 -1
  788. package/otp-verification/contact-input-section.d.ts +1 -1
  789. package/otp-verification/contact-input-section.js +1 -1
  790. package/otp-verification/contact-input-section.js.map +1 -1
  791. package/otp-verification/internal-types.d.ts +2 -0
  792. package/otp-verification/verification-section.js +1 -1
  793. package/otp-verification/verification-section.js.map +1 -1
  794. package/overlay/overlay.js +1 -1
  795. package/overlay/overlay.js.map +1 -1
  796. package/package.json +1 -67
  797. package/pagination/pagination.js +1 -1
  798. package/pagination/pagination.js.map +1 -1
  799. package/popover/index.d.ts +2 -1
  800. package/popover/index.js +1 -1
  801. package/popover/popover-inline/popover-inline.js.map +1 -0
  802. package/popover/popover-inline/popover-inline.styles.js +2 -0
  803. package/popover/popover-inline/popover-inline.styles.js.map +1 -0
  804. package/popover/popover-inline/popover-inline.styles_bkopnt.css +2 -0
  805. package/{popover-v2 → popover}/popover-trigger.d.ts +2 -2
  806. package/popover/popover-trigger.js +2 -0
  807. package/popover/popover-trigger.js.map +1 -0
  808. package/popover/popover-trigger.styles.js +2 -0
  809. package/popover/popover-trigger.styles.js.map +1 -0
  810. package/popover/popover-trigger.styles_8zokig.css +1 -0
  811. package/popover/popover.d.ts +1 -4
  812. package/popover/popover.js +1 -1
  813. package/popover/popover.js.map +1 -1
  814. package/popover/popover.styles.d.ts +10 -11
  815. package/popover/popover.styles.js +1 -74
  816. package/popover/popover.styles.js.map +1 -1
  817. package/popover/popover.styles_ujnf0h.css +4 -0
  818. package/popover/types.d.ts +48 -10
  819. package/predictive-text-input/predictive-text-input.js +1 -1
  820. package/predictive-text-input/predictive-text-input.js.map +1 -1
  821. package/predictive-text-input/types.d.ts +1 -1
  822. package/progress-indicator/progress-indicator.d.ts +1 -1
  823. package/progress-indicator/progress-indicator.js +1 -1
  824. package/progress-indicator/progress-indicator.js.map +1 -1
  825. package/progress-indicator/progress-indicator.styles.d.ts +9 -0
  826. package/progress-indicator/progress-indicator.styles.js +2 -0
  827. package/progress-indicator/progress-indicator.styles.js.map +1 -0
  828. package/progress-indicator/progress-indicator.styles_1c038s4.css +8 -0
  829. package/progress-indicator/types.d.ts +0 -6
  830. package/schedule/schedule.js +1 -1
  831. package/schedule/schedule.js.map +1 -1
  832. package/schedule/shared/with-optional-popover.js +2 -2
  833. package/schedule/shared/with-optional-popover.js.map +1 -1
  834. package/schedule/types.d.ts +2 -2
  835. package/select-histogram/select-histogram.js +1 -1
  836. package/select-histogram/select-histogram.js.map +1 -1
  837. package/select-histogram/select-histogram.styles.d.ts +5 -21
  838. package/select-histogram/select-histogram.styles.js +1 -37
  839. package/select-histogram/select-histogram.styles.js.map +1 -1
  840. package/select-histogram/select-histogram.styles_11916eo.css +5 -0
  841. package/shared/component-loading-spinner/component-loading-spinner.js +1 -1
  842. package/shared/component-loading-spinner/component-loading-spinner.js.map +1 -1
  843. package/shared/dropdown-list/dropdown-label.js +1 -1
  844. package/shared/dropdown-list/dropdown-label.js.map +1 -1
  845. package/shared/dropdown-list/dropdown-list.js +1 -1
  846. package/shared/dropdown-list/dropdown-list.js.map +1 -1
  847. package/shared/dropdown-list/dropdown-list.styles.d.ts +1 -1
  848. package/shared/dropdown-list/dropdown-list.styles.js +1 -1
  849. package/shared/dropdown-list/dropdown-list.styles.js.map +1 -1
  850. package/{cjs/shared/dropdown-list/dropdown-list.styles_1qveyb9.css → shared/dropdown-list/dropdown-list.styles_1kt4zhf.css} +3 -6
  851. package/shared/dropdown-list/nested-dropdown-list.js +1 -1
  852. package/shared/dropdown-list/nested-dropdown-list.js.map +1 -1
  853. package/shared/dropdown-wrapper/element-with-dropdown.js +1 -1
  854. package/shared/dropdown-wrapper/element-with-dropdown.js.map +1 -1
  855. package/shared/fade-wrapper/fade-wrapper.js +1 -1
  856. package/shared/fade-wrapper/fade-wrapper.js.map +1 -1
  857. package/shared/fade-wrapper/helpers.js +1 -1
  858. package/shared/fade-wrapper/helpers.js.map +1 -1
  859. package/shared/input-wrapper/input-wrapper.d.ts +5 -0
  860. package/shared/input-wrapper/input-wrapper.js +1 -1
  861. package/shared/input-wrapper/input-wrapper.js.map +1 -1
  862. package/shared/input-wrapper/input-wrapper.styles.d.ts +3 -0
  863. package/shared/input-wrapper/input-wrapper.styles.js +1 -1
  864. package/shared/input-wrapper/input-wrapper.styles.js.map +1 -1
  865. package/shared/input-wrapper/{input-wrapper.styles_1kc4xhb.css → input-wrapper.styles_19fpzb.css} +3 -0
  866. package/shared/internal-calendar/calendar-dropdown.js +1 -1
  867. package/shared/internal-calendar/calendar-dropdown.js.map +1 -1
  868. package/shared/progress-bar/progress-bar.js +1 -1
  869. package/shared/progress-bar/progress-bar.js.map +1 -1
  870. package/shared/standalone-date-input/standalone-date-input.js +1 -1
  871. package/shared/standalone-date-input/standalone-date-input.js.map +1 -1
  872. package/shared/standalone-date-input/standalone-date-input.styles.d.ts +0 -1
  873. package/shared/standalone-date-input/standalone-date-input.styles.js +1 -1
  874. package/shared/standalone-date-input/standalone-date-input.styles.js.map +1 -1
  875. package/{cjs/shared/standalone-date-input/standalone-date-input.styles_1mqophx.css → shared/standalone-date-input/standalone-date-input.styles_1m0da43.css} +10 -11
  876. package/shared/time-slot/index.d.ts +2 -0
  877. package/shared/time-slot/time-slot.d.ts +17 -0
  878. package/shared/time-slot/time-slot.js +2 -0
  879. package/shared/time-slot/time-slot.js.map +1 -0
  880. package/shared/time-slot/time-slot.styles.d.ts +10 -0
  881. package/shared/time-slot/time-slot.styles.js +2 -0
  882. package/shared/time-slot/time-slot.styles.js.map +1 -0
  883. package/shared/time-slot/time-slot.styles_1r9na3f.css +17 -0
  884. package/shared/time-slot/types.d.ts +1 -0
  885. package/smart-app-banner/smart-app-banner.js +1 -1
  886. package/smart-app-banner/smart-app-banner.js.map +1 -1
  887. package/smart-app-banner/smart-app-banner.styles.d.ts +21 -85
  888. package/smart-app-banner/smart-app-banner.styles.js +1 -93
  889. package/smart-app-banner/smart-app-banner.styles.js.map +1 -1
  890. package/smart-app-banner/smart-app-banner.styles_m5dtgh.css +16 -0
  891. package/tab/tab-link-chain.js +1 -1
  892. package/tab/tab-link-chain.js.map +1 -1
  893. package/text-list/ordered-list.js +1 -1
  894. package/text-list/ordered-list.js.map +1 -1
  895. package/text-list/unordered-list.js +1 -1
  896. package/text-list/unordered-list.js.map +1 -1
  897. package/theme/index.js +1 -1
  898. package/theme/styles/pa.css +176 -0
  899. package/theme/theme-provider/breakpoint.js +1 -1
  900. package/theme/theme-provider/breakpoint.js.map +1 -1
  901. package/theme/tokens/font.js +1 -1
  902. package/theme/tokens/font.js.map +1 -1
  903. package/theme/utils/css-variable.d.ts +14 -0
  904. package/theme/utils/css-variable.js +1 -1
  905. package/theme/utils/css-variable.js.map +1 -1
  906. package/theme/utils/index.d.ts +1 -1
  907. package/theme/utils/use-media-query.d.ts +24 -0
  908. package/theme/utils/use-media-query.js +2 -0
  909. package/theme/utils/use-media-query.js.map +1 -0
  910. package/time-range-picker/combobox-picker/combobox-picker.js +1 -1
  911. package/time-range-picker/combobox-picker/combobox-picker.js.map +1 -1
  912. package/time-range-picker/combobox-picker/combobox-picker.styles.d.ts +1 -1
  913. package/time-range-picker/combobox-picker/combobox-picker.styles.js +1 -6
  914. package/time-range-picker/combobox-picker/combobox-picker.styles.js.map +1 -1
  915. package/time-range-picker/combobox-picker/combobox-picker.styles_7i9vso.css +1 -0
  916. package/time-range-picker/common.styles.d.ts +3 -3
  917. package/time-range-picker/common.styles.js +1 -10
  918. package/time-range-picker/common.styles.js.map +1 -1
  919. package/time-range-picker/common.styles_1qwp4xa.css +3 -0
  920. package/time-range-picker/dial-picker/dial-picker.js +1 -1
  921. package/time-range-picker/dial-picker/dial-picker.js.map +1 -1
  922. package/time-slot-bar/helper.d.ts +1 -0
  923. package/time-slot-bar/helper.js +1 -1
  924. package/time-slot-bar/helper.js.map +1 -1
  925. package/time-slot-bar/time-slot-bar.js +1 -1
  926. package/time-slot-bar/time-slot-bar.js.map +1 -1
  927. package/time-slot-bar/time-slot-bar.styles.d.ts +37 -99
  928. package/time-slot-bar/time-slot-bar.styles.js +1 -127
  929. package/time-slot-bar/time-slot-bar.styles.js.map +1 -1
  930. package/time-slot-bar/time-slot-bar.styles_wigbyd.css +25 -0
  931. package/time-slot-bar/time-slot-divider.d.ts +8 -0
  932. package/time-slot-bar/time-slot-divider.js +2 -0
  933. package/time-slot-bar/time-slot-divider.js.map +1 -0
  934. package/time-slot-bar/time-slot-item.d.ts +13 -0
  935. package/time-slot-bar/time-slot-item.js +2 -0
  936. package/time-slot-bar/time-slot-item.js.map +1 -0
  937. package/time-slot-bar/types.d.ts +7 -8
  938. package/time-slot-bar-week/time-slot-bar-week-days.js +1 -1
  939. package/time-slot-bar-week/time-slot-bar-week-days.js.map +1 -1
  940. package/time-slot-bar-week/time-slot-bar-week-days.style.d.ts +2 -13
  941. package/time-slot-bar-week/time-slot-bar-week-days.style.js +20 -17
  942. package/time-slot-bar-week/time-slot-bar-week-days.style.js.map +1 -1
  943. package/time-slot-week-view/time-slot-week-days.js +1 -1
  944. package/time-slot-week-view/time-slot-week-days.js.map +1 -1
  945. package/time-slot-week-view/time-slot-week-days.style.d.ts +1 -11
  946. package/time-slot-week-view/time-slot-week-days.style.js +14 -8
  947. package/time-slot-week-view/time-slot-week-days.style.js.map +1 -1
  948. package/timeline/timeline.js +1 -1
  949. package/timeline/timeline.js.map +1 -1
  950. package/timeline/timeline.styles.d.ts +15 -0
  951. package/timeline/timeline.styles.js +2 -0
  952. package/timeline/timeline.styles.js.map +1 -0
  953. package/timeline/timeline.styles_1wcnzot.css +9 -0
  954. package/timetable/const.js +1 -1
  955. package/timetable/const.js.map +1 -1
  956. package/timetable/timetable-header/timetable-header.js +1 -1
  957. package/timetable/timetable-header/timetable-header.js.map +1 -1
  958. package/timetable/timetable-header/timetable-header.styles.d.ts +6 -0
  959. package/timetable/timetable-header/timetable-header.styles.js +2 -0
  960. package/timetable/timetable-header/timetable-header.styles.js.map +1 -0
  961. package/timetable/timetable-header/timetable-header.styles_11gl1h4.css +6 -0
  962. package/timetable/timetable-row/row-bar.js +1 -1
  963. package/timetable/timetable-row/row-bar.js.map +1 -1
  964. package/timetable/timetable-row/row-bar.styles.d.ts +1 -0
  965. package/timetable/timetable-row/row-bar.styles.js +2 -0
  966. package/timetable/timetable-row/row-bar.styles.js.map +1 -0
  967. package/timetable/timetable-row/row-bar.styles_1x0vrsz.css +1 -0
  968. package/timetable/timetable-row/row-cell.js +1 -1
  969. package/timetable/timetable-row/row-cell.js.map +1 -1
  970. package/timetable/timetable-row/row-cell.styles.d.ts +14 -0
  971. package/timetable/timetable-row/row-cell.styles.js +2 -0
  972. package/timetable/timetable-row/row-cell.styles.js.map +1 -0
  973. package/timetable/timetable-row/row-cell.styles_y1dl5j.css +7 -0
  974. package/timetable/timetable-row/with-optional-popover.js +1 -1
  975. package/timetable/timetable-row/with-optional-popover.js.map +1 -1
  976. package/timetable/timetable.js +1 -1
  977. package/timetable/timetable.js.map +1 -1
  978. package/timetable/timetable.styles.d.ts +41 -0
  979. package/timetable/timetable.styles.js +2 -0
  980. package/timetable/timetable.styles.js.map +1 -0
  981. package/timetable/timetable.styles_7rp8kz.css +46 -0
  982. package/timetable/types.d.ts +6 -7
  983. package/toast/toast.d.ts +1 -1
  984. package/toast/toast.js +1 -1
  985. package/toast/toast.js.map +1 -1
  986. package/toast/toast.styles.d.ts +8 -51
  987. package/toast/toast.styles.js +1 -98
  988. package/toast/toast.styles.js.map +1 -1
  989. package/toast/toast.styles_ngrlup.css +8 -0
  990. package/toggle/toggle.js +1 -1
  991. package/toggle/toggle.js.map +1 -1
  992. package/typography/index.js +1 -1
  993. package/typography/typography.js +1 -1
  994. package/typography/typography.js.map +1 -1
  995. package/uneditable-section/index.d.ts +1 -1
  996. package/uneditable-section/item-section.d.ts +1 -1
  997. package/uneditable-section/item-section.js +1 -1
  998. package/uneditable-section/item-section.js.map +1 -1
  999. package/uneditable-section/section-item.js +1 -1
  1000. package/uneditable-section/section-item.js.map +1 -1
  1001. package/uneditable-section/section-item.styles.d.ts +9 -22
  1002. package/uneditable-section/section-item.styles.js +1 -63
  1003. package/uneditable-section/section-item.styles.js.map +1 -1
  1004. package/uneditable-section/section-item.styles_1dfjzc4.css +9 -0
  1005. package/uneditable-section/uneditable-section.d.ts +1 -1
  1006. package/uneditable-section/uneditable-section.js +1 -1
  1007. package/uneditable-section/uneditable-section.js.map +1 -1
  1008. package/uneditable-section/uneditable-section.styles.d.ts +8 -52
  1009. package/uneditable-section/uneditable-section.styles.js +1 -39
  1010. package/uneditable-section/uneditable-section.styles.js.map +1 -1
  1011. package/uneditable-section/uneditable-section.styles_aj9zun.css +8 -0
  1012. package/unit-number/unit-number-input.js +1 -1
  1013. package/unit-number/unit-number-input.js.map +1 -1
  1014. package/unit-number/unit-number-input.styles.d.ts +7 -0
  1015. package/unit-number/unit-number-input.styles.js +2 -0
  1016. package/unit-number/unit-number-input.styles.js.map +1 -0
  1017. package/unit-number/unit-number-input.styles_8yizj.css +7 -0
  1018. package/util/styling-helper.js +1 -1
  1019. package/util/styling-helper.js.map +1 -1
  1020. package/v3_theme/index.d.ts +39 -13
  1021. package/v3_theme/types.d.ts +2 -2
  1022. package/_virtual/react-responsive.js +0 -2
  1023. package/_virtual/react-responsive.js.map +0 -1
  1024. package/cjs/_virtual/react-responsive.js +0 -2
  1025. package/cjs/_virtual/react-responsive.js.map +0 -1
  1026. package/cjs/countdown-timer/countdown-timer.style.js +0 -58
  1027. package/cjs/countdown-timer/countdown-timer.style.js.map +0 -1
  1028. package/cjs/date-input/date-input.style.js +0 -4
  1029. package/cjs/date-input/date-input.style.js.map +0 -1
  1030. package/cjs/date-range-input/date-range-input.style.js +0 -17
  1031. package/cjs/date-range-input/date-range-input.style.js.map +0 -1
  1032. package/cjs/external/react-responsive/dist/react-responsive.js +0 -65
  1033. package/cjs/external/react-responsive/dist/react-responsive.js.map +0 -1
  1034. package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.style.js +0 -298
  1035. package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.style.js.map +0 -1
  1036. package/cjs/fullscreen-image-carousel/stateful-image.style.js +0 -13
  1037. package/cjs/fullscreen-image-carousel/stateful-image.style.js.map +0 -1
  1038. package/cjs/input-range-select/input-range-select.style.js +0 -36
  1039. package/cjs/input-range-select/input-range-select.style.js.map +0 -1
  1040. package/cjs/language-switcher/dropdown-variant.style.js +0 -62
  1041. package/cjs/language-switcher/dropdown-variant.style.js.map +0 -1
  1042. package/cjs/language-switcher/link-container-variant.style.js +0 -51
  1043. package/cjs/language-switcher/link-container-variant.style.js.map +0 -1
  1044. package/cjs/masked-input/masked-input.style.js +0 -87
  1045. package/cjs/masked-input/masked-input.style.js.map +0 -1
  1046. package/cjs/masonry/index.js +0 -2
  1047. package/cjs/masonry/index.js.map +0 -1
  1048. package/cjs/masonry/masonry.js +0 -2
  1049. package/cjs/masonry/masonry.js.map +0 -1
  1050. package/cjs/masonry/masonry.style.js +0 -42
  1051. package/cjs/masonry/masonry.style.js.map +0 -1
  1052. package/cjs/popover/popover-hoc.js +0 -2
  1053. package/cjs/popover/popover-hoc.js.map +0 -1
  1054. package/cjs/popover-v2/index.js +0 -2
  1055. package/cjs/popover-v2/index.js.map +0 -1
  1056. package/cjs/popover-v2/popover-inline/popover-inline.js.map +0 -1
  1057. package/cjs/popover-v2/popover-inline/popover-inline.styles.js +0 -2
  1058. package/cjs/popover-v2/popover-inline/popover-inline.styles.js.map +0 -1
  1059. package/cjs/popover-v2/popover-inline/popover-inline.styles_ziag9c.css +0 -2
  1060. package/cjs/popover-v2/popover-trigger.js +0 -2
  1061. package/cjs/popover-v2/popover-trigger.js.map +0 -1
  1062. package/cjs/popover-v2/popover-trigger.styles.js +0 -2
  1063. package/cjs/popover-v2/popover-trigger.styles.js.map +0 -1
  1064. package/cjs/popover-v2/popover-trigger.styles_1yq7ffk.css +0 -1
  1065. package/cjs/popover-v2/popover.js +0 -2
  1066. package/cjs/popover-v2/popover.js.map +0 -1
  1067. package/cjs/popover-v2/popover.styles.js +0 -2
  1068. package/cjs/popover-v2/popover.styles.js.map +0 -1
  1069. package/cjs/popover-v2/popover.styles_lslc72.css +0 -4
  1070. package/cjs/progress-indicator/progress-indicator.style.js +0 -39
  1071. package/cjs/progress-indicator/progress-indicator.style.js.map +0 -1
  1072. package/cjs/theme/utils/media-query.js +0 -2
  1073. package/cjs/theme/utils/media-query.js.map +0 -1
  1074. package/cjs/timeline/timeline.style.js +0 -100
  1075. package/cjs/timeline/timeline.style.js.map +0 -1
  1076. package/cjs/timetable/timetable-header/timetable-header.style.js +0 -28
  1077. package/cjs/timetable/timetable-header/timetable-header.style.js.map +0 -1
  1078. package/cjs/timetable/timetable-row/row-bar.style.js +0 -5
  1079. package/cjs/timetable/timetable-row/row-bar.style.js.map +0 -1
  1080. package/cjs/timetable/timetable-row/row-cell.style.js +0 -53
  1081. package/cjs/timetable/timetable-row/row-cell.style.js.map +0 -1
  1082. package/cjs/timetable/timetable.style.js +0 -172
  1083. package/cjs/timetable/timetable.style.js.map +0 -1
  1084. package/cjs/tooltip/index.js +0 -2
  1085. package/cjs/tooltip/index.js.map +0 -1
  1086. package/cjs/tooltip/tooltip-hoc.js +0 -2
  1087. package/cjs/tooltip/tooltip-hoc.js.map +0 -1
  1088. package/cjs/tooltip/tooltip.js +0 -2
  1089. package/cjs/tooltip/tooltip.js.map +0 -1
  1090. package/cjs/tooltip/tooltip.styles.js +0 -192
  1091. package/cjs/tooltip/tooltip.styles.js.map +0 -1
  1092. package/cjs/unit-number/unit-number-input.style.js +0 -27
  1093. package/cjs/unit-number/unit-number-input.style.js.map +0 -1
  1094. package/cjs/v2_color/color.js +0 -2
  1095. package/cjs/v2_color/color.js.map +0 -1
  1096. package/cjs/v2_color/index.js +0 -2
  1097. package/cjs/v2_color/index.js.map +0 -1
  1098. package/cjs/v2_design-token/design-token.js +0 -2
  1099. package/cjs/v2_design-token/design-token.js.map +0 -1
  1100. package/cjs/v2_design-token/index.js +0 -2
  1101. package/cjs/v2_design-token/index.js.map +0 -1
  1102. package/cjs/v2_layout/col-div.js +0 -2
  1103. package/cjs/v2_layout/col-div.js.map +0 -1
  1104. package/cjs/v2_layout/col-div.style.js +0 -17
  1105. package/cjs/v2_layout/col-div.style.js.map +0 -1
  1106. package/cjs/v2_layout/container.js +0 -49
  1107. package/cjs/v2_layout/container.js.map +0 -1
  1108. package/cjs/v2_layout/content.js +0 -2
  1109. package/cjs/v2_layout/content.js.map +0 -1
  1110. package/cjs/v2_layout/index.js +0 -2
  1111. package/cjs/v2_layout/index.js.map +0 -1
  1112. package/cjs/v2_layout/section.js +0 -20
  1113. package/cjs/v2_layout/section.js.map +0 -1
  1114. package/cjs/v2_media/index.js +0 -2
  1115. package/cjs/v2_media/index.js.map +0 -1
  1116. package/cjs/v2_media/media.js +0 -2
  1117. package/cjs/v2_media/media.js.map +0 -1
  1118. package/cjs/v2_spec/color-spec/base-color-set.js +0 -2
  1119. package/cjs/v2_spec/color-spec/base-color-set.js.map +0 -1
  1120. package/cjs/v2_spec/color-spec/bookingsg-color-set.js +0 -2
  1121. package/cjs/v2_spec/color-spec/bookingsg-color-set.js.map +0 -1
  1122. package/cjs/v2_spec/color-spec/ccube-color-set.js +0 -2
  1123. package/cjs/v2_spec/color-spec/ccube-color-set.js.map +0 -1
  1124. package/cjs/v2_spec/color-spec/mylegacy-color-set.js +0 -2
  1125. package/cjs/v2_spec/color-spec/mylegacy-color-set.js.map +0 -1
  1126. package/cjs/v2_spec/color-spec/oneservice-color-set.js +0 -2
  1127. package/cjs/v2_spec/color-spec/oneservice-color-set.js.map +0 -1
  1128. package/cjs/v2_spec/color-spec/rbs-color-set.js +0 -2
  1129. package/cjs/v2_spec/color-spec/rbs-color-set.js.map +0 -1
  1130. package/cjs/v2_spec/design-token-spec/base-design-token-set.js +0 -8
  1131. package/cjs/v2_spec/design-token-spec/base-design-token-set.js.map +0 -1
  1132. package/cjs/v2_spec/design-token-spec/rbs-design-token-set.js +0 -8
  1133. package/cjs/v2_spec/design-token-spec/rbs-design-token-set.js.map +0 -1
  1134. package/cjs/v2_spec/media-spec.js +0 -2
  1135. package/cjs/v2_spec/media-spec.js.map +0 -1
  1136. package/cjs/v2_spec/text-spec/base-plus-jakarta-sans-text-style-set.js +0 -2
  1137. package/cjs/v2_spec/text-spec/base-plus-jakarta-sans-text-style-set.js.map +0 -1
  1138. package/cjs/v2_spec/text-spec/base-text-style-set.js +0 -2
  1139. package/cjs/v2_spec/text-spec/base-text-style-set.js.map +0 -1
  1140. package/cjs/v2_spec/text-spec/font-spec.js +0 -2
  1141. package/cjs/v2_spec/text-spec/font-spec.js.map +0 -1
  1142. package/cjs/v2_spec/text-spec/oneservice-text-style-set.js +0 -2
  1143. package/cjs/v2_spec/text-spec/oneservice-text-style-set.js.map +0 -1
  1144. package/cjs/v2_text/helper.js +0 -31
  1145. package/cjs/v2_text/helper.js.map +0 -1
  1146. package/cjs/v2_text/index.js +0 -2
  1147. package/cjs/v2_text/index.js.map +0 -1
  1148. package/cjs/v2_text/text-style.js +0 -2
  1149. package/cjs/v2_text/text-style.js.map +0 -1
  1150. package/cjs/v2_text/text.js +0 -107
  1151. package/cjs/v2_text/text.js.map +0 -1
  1152. package/cjs/v2_text/types.js +0 -2
  1153. package/cjs/v2_text/types.js.map +0 -1
  1154. package/cjs/v2_text-list/index.js +0 -2
  1155. package/cjs/v2_text-list/index.js.map +0 -1
  1156. package/cjs/v2_text-list/ordered-list.js +0 -2
  1157. package/cjs/v2_text-list/ordered-list.js.map +0 -1
  1158. package/cjs/v2_text-list/text-list.styles.js +0 -62
  1159. package/cjs/v2_text-list/text-list.styles.js.map +0 -1
  1160. package/cjs/v2_text-list/unordered-list.js +0 -2
  1161. package/cjs/v2_text-list/unordered-list.js.map +0 -1
  1162. package/cjs/v2_theme/color-theme-helper.js +0 -2
  1163. package/cjs/v2_theme/color-theme-helper.js.map +0 -1
  1164. package/cjs/v2_theme/design-token-helper.js +0 -2
  1165. package/cjs/v2_theme/design-token-helper.js.map +0 -1
  1166. package/cjs/v2_theme/helper.js +0 -2
  1167. package/cjs/v2_theme/helper.js.map +0 -1
  1168. package/cjs/v2_theme/index.js +0 -2
  1169. package/cjs/v2_theme/index.js.map +0 -1
  1170. package/cjs/v2_theme/text-theme-helper.js +0 -2
  1171. package/cjs/v2_theme/text-theme-helper.js.map +0 -1
  1172. package/cjs/v2_theme/types.js +0 -2
  1173. package/cjs/v2_theme/types.js.map +0 -1
  1174. package/cjs/v2_transition/index.js +0 -2
  1175. package/cjs/v2_transition/index.js.map +0 -1
  1176. package/cjs/v3_theme/components/specs/a11yplayground-component-token-set.js +0 -2
  1177. package/cjs/v3_theme/components/specs/a11yplayground-component-token-set.js.map +0 -1
  1178. package/cjs/v3_theme/components/specs/default-component-token-set.js +0 -2
  1179. package/cjs/v3_theme/components/specs/default-component-token-set.js.map +0 -1
  1180. package/cjs/v3_theme/components/specs/lifesg-component-token-set.js +0 -2
  1181. package/cjs/v3_theme/components/specs/lifesg-component-token-set.js.map +0 -1
  1182. package/cjs/v3_theme/components/specs/pa-component-token-set.js +0 -2
  1183. package/cjs/v3_theme/components/specs/pa-component-token-set.js.map +0 -1
  1184. package/cjs/v3_theme/components/specs/smgs-component-token-set.js +0 -2
  1185. package/cjs/v3_theme/components/specs/smgs-component-token-set.js.map +0 -1
  1186. package/cjs/v3_theme/components/specs/spf-component-token-set.js +0 -2
  1187. package/cjs/v3_theme/components/specs/spf-component-token-set.js.map +0 -1
  1188. package/cjs/v3_theme/components/theme-helper.js +0 -2
  1189. package/cjs/v3_theme/components/theme-helper.js.map +0 -1
  1190. package/countdown-timer/countdown-timer.style.d.ts +0 -42
  1191. package/countdown-timer/countdown-timer.style.js +0 -58
  1192. package/countdown-timer/countdown-timer.style.js.map +0 -1
  1193. package/date-input/date-input.style.d.ts +0 -1
  1194. package/date-input/date-input.style.js +0 -4
  1195. package/date-input/date-input.style.js.map +0 -1
  1196. package/date-range-input/date-range-input.style.d.ts +0 -8
  1197. package/date-range-input/date-range-input.style.js +0 -17
  1198. package/date-range-input/date-range-input.style.js.map +0 -1
  1199. package/external/react-responsive/dist/react-responsive.js +0 -65
  1200. package/external/react-responsive/dist/react-responsive.js.map +0 -1
  1201. package/fullscreen-image-carousel/fullscreen-image-carousel.style.d.ts +0 -116
  1202. package/fullscreen-image-carousel/fullscreen-image-carousel.style.js +0 -298
  1203. package/fullscreen-image-carousel/fullscreen-image-carousel.style.js.map +0 -1
  1204. package/fullscreen-image-carousel/stateful-image.style.d.ts +0 -7
  1205. package/fullscreen-image-carousel/stateful-image.style.js +0 -13
  1206. package/fullscreen-image-carousel/stateful-image.style.js.map +0 -1
  1207. package/input-range-select/input-range-select.style.d.ts +0 -3
  1208. package/input-range-select/input-range-select.style.js +0 -36
  1209. package/input-range-select/input-range-select.style.js.map +0 -1
  1210. package/language-switcher/dropdown-variant.style.d.ts +0 -11
  1211. package/language-switcher/dropdown-variant.style.js +0 -62
  1212. package/language-switcher/dropdown-variant.style.js.map +0 -1
  1213. package/language-switcher/link-container-variant.style.d.ts +0 -8
  1214. package/language-switcher/link-container-variant.style.js +0 -51
  1215. package/language-switcher/link-container-variant.style.js.map +0 -1
  1216. package/masked-input/masked-input.style.d.ts +0 -48
  1217. package/masked-input/masked-input.style.js +0 -87
  1218. package/masked-input/masked-input.style.js.map +0 -1
  1219. package/masonry/index.d.ts +0 -1
  1220. package/masonry/index.js +0 -2
  1221. package/masonry/index.js.map +0 -1
  1222. package/masonry/masonry.d.ts +0 -7
  1223. package/masonry/masonry.js +0 -2
  1224. package/masonry/masonry.js.map +0 -1
  1225. package/masonry/masonry.style.d.ts +0 -6
  1226. package/masonry/masonry.style.js +0 -42
  1227. package/masonry/masonry.style.js.map +0 -1
  1228. package/masonry/types.d.ts +0 -32
  1229. package/popover/popover-hoc.d.ts +0 -4
  1230. package/popover/popover-hoc.js +0 -2
  1231. package/popover/popover-hoc.js.map +0 -1
  1232. package/popover-v2/index.d.ts +0 -4
  1233. package/popover-v2/index.js +0 -2
  1234. package/popover-v2/index.js.map +0 -1
  1235. package/popover-v2/popover-inline/popover-inline.styles.js +0 -2
  1236. package/popover-v2/popover-inline/popover-inline.styles_ziag9c.css +0 -2
  1237. package/popover-v2/popover-trigger.js +0 -2
  1238. package/popover-v2/popover-trigger.js.map +0 -1
  1239. package/popover-v2/popover-trigger.styles.js +0 -2
  1240. package/popover-v2/popover-trigger.styles_1yq7ffk.css +0 -1
  1241. package/popover-v2/popover.d.ts +0 -2
  1242. package/popover-v2/popover.js +0 -2
  1243. package/popover-v2/popover.js.map +0 -1
  1244. package/popover-v2/popover.styles.d.ts +0 -10
  1245. package/popover-v2/popover.styles.js +0 -2
  1246. package/popover-v2/popover.styles.js.map +0 -1
  1247. package/popover-v2/popover.styles_lslc72.css +0 -4
  1248. package/popover-v2/types.d.ts +0 -59
  1249. package/progress-indicator/progress-indicator.style.d.ts +0 -47
  1250. package/progress-indicator/progress-indicator.style.js +0 -39
  1251. package/progress-indicator/progress-indicator.style.js.map +0 -1
  1252. package/theme/utils/media-query.d.ts +0 -6
  1253. package/theme/utils/media-query.js +0 -2
  1254. package/theme/utils/media-query.js.map +0 -1
  1255. package/timeline/timeline.style.d.ts +0 -55
  1256. package/timeline/timeline.style.js +0 -100
  1257. package/timeline/timeline.style.js.map +0 -1
  1258. package/timetable/timetable-header/timetable-header.style.d.ts +0 -31
  1259. package/timetable/timetable-header/timetable-header.style.js +0 -28
  1260. package/timetable/timetable-header/timetable-header.style.js.map +0 -1
  1261. package/timetable/timetable-row/row-bar.style.d.ts +0 -1
  1262. package/timetable/timetable-row/row-bar.style.js +0 -5
  1263. package/timetable/timetable-row/row-bar.style.js.map +0 -1
  1264. package/timetable/timetable-row/row-cell.style.d.ts +0 -60
  1265. package/timetable/timetable-row/row-cell.style.js +0 -53
  1266. package/timetable/timetable-row/row-cell.style.js.map +0 -1
  1267. package/timetable/timetable.style.d.ts +0 -102
  1268. package/timetable/timetable.style.js +0 -172
  1269. package/timetable/timetable.style.js.map +0 -1
  1270. package/tooltip/index.d.ts +0 -3
  1271. package/tooltip/index.js +0 -2
  1272. package/tooltip/index.js.map +0 -1
  1273. package/tooltip/tooltip-hoc.d.ts +0 -3
  1274. package/tooltip/tooltip-hoc.js +0 -2
  1275. package/tooltip/tooltip-hoc.js.map +0 -1
  1276. package/tooltip/tooltip.d.ts +0 -3
  1277. package/tooltip/tooltip.js +0 -2
  1278. package/tooltip/tooltip.js.map +0 -1
  1279. package/tooltip/tooltip.styles.d.ts +0 -10
  1280. package/tooltip/tooltip.styles.js +0 -192
  1281. package/tooltip/tooltip.styles.js.map +0 -1
  1282. package/tooltip/types.d.ts +0 -22
  1283. package/unit-number/unit-number-input.style.d.ts +0 -52
  1284. package/unit-number/unit-number-input.style.js +0 -27
  1285. package/unit-number/unit-number-input.style.js.map +0 -1
  1286. package/v2_color/color.d.ts +0 -5
  1287. package/v2_color/color.js +0 -2
  1288. package/v2_color/color.js.map +0 -1
  1289. package/v2_color/index.d.ts +0 -2
  1290. package/v2_color/index.js +0 -2
  1291. package/v2_color/index.js.map +0 -1
  1292. package/v2_color/types.d.ts +0 -62
  1293. package/v2_design-token/design-token.d.ts +0 -23
  1294. package/v2_design-token/design-token.js +0 -2
  1295. package/v2_design-token/design-token.js.map +0 -1
  1296. package/v2_design-token/index.d.ts +0 -2
  1297. package/v2_design-token/index.js +0 -2
  1298. package/v2_design-token/index.js.map +0 -1
  1299. package/v2_design-token/types.d.ts +0 -28
  1300. package/v2_layout/col-div.d.ts +0 -4
  1301. package/v2_layout/col-div.js +0 -2
  1302. package/v2_layout/col-div.js.map +0 -1
  1303. package/v2_layout/col-div.style.d.ts +0 -9
  1304. package/v2_layout/col-div.style.js +0 -17
  1305. package/v2_layout/col-div.style.js.map +0 -1
  1306. package/v2_layout/container.d.ts +0 -4
  1307. package/v2_layout/container.js +0 -49
  1308. package/v2_layout/container.js.map +0 -1
  1309. package/v2_layout/content.d.ts +0 -4
  1310. package/v2_layout/content.js +0 -2
  1311. package/v2_layout/content.js.map +0 -1
  1312. package/v2_layout/index.d.ts +0 -8
  1313. package/v2_layout/index.js +0 -2
  1314. package/v2_layout/index.js.map +0 -1
  1315. package/v2_layout/section.d.ts +0 -4
  1316. package/v2_layout/section.js +0 -20
  1317. package/v2_layout/section.js.map +0 -1
  1318. package/v2_layout/types.d.ts +0 -66
  1319. package/v2_media/index.d.ts +0 -2
  1320. package/v2_media/index.js +0 -2
  1321. package/v2_media/index.js.map +0 -1
  1322. package/v2_media/media.d.ts +0 -8
  1323. package/v2_media/media.js +0 -2
  1324. package/v2_media/media.js.map +0 -1
  1325. package/v2_media/types.d.ts +0 -20
  1326. package/v2_spec/color-spec/base-color-set.d.ts +0 -2
  1327. package/v2_spec/color-spec/base-color-set.js +0 -2
  1328. package/v2_spec/color-spec/base-color-set.js.map +0 -1
  1329. package/v2_spec/color-spec/bookingsg-color-set.d.ts +0 -2
  1330. package/v2_spec/color-spec/bookingsg-color-set.js +0 -2
  1331. package/v2_spec/color-spec/bookingsg-color-set.js.map +0 -1
  1332. package/v2_spec/color-spec/ccube-color-set.d.ts +0 -2
  1333. package/v2_spec/color-spec/ccube-color-set.js +0 -2
  1334. package/v2_spec/color-spec/ccube-color-set.js.map +0 -1
  1335. package/v2_spec/color-spec/mylegacy-color-set.d.ts +0 -2
  1336. package/v2_spec/color-spec/mylegacy-color-set.js +0 -2
  1337. package/v2_spec/color-spec/mylegacy-color-set.js.map +0 -1
  1338. package/v2_spec/color-spec/oneservice-color-set.d.ts +0 -2
  1339. package/v2_spec/color-spec/oneservice-color-set.js +0 -2
  1340. package/v2_spec/color-spec/oneservice-color-set.js.map +0 -1
  1341. package/v2_spec/color-spec/rbs-color-set.d.ts +0 -2
  1342. package/v2_spec/color-spec/rbs-color-set.js +0 -2
  1343. package/v2_spec/color-spec/rbs-color-set.js.map +0 -1
  1344. package/v2_spec/design-token-spec/base-design-token-set.d.ts +0 -2
  1345. package/v2_spec/design-token-spec/base-design-token-set.js +0 -8
  1346. package/v2_spec/design-token-spec/base-design-token-set.js.map +0 -1
  1347. package/v2_spec/design-token-spec/rbs-design-token-set.d.ts +0 -2
  1348. package/v2_spec/design-token-spec/rbs-design-token-set.js +0 -8
  1349. package/v2_spec/design-token-spec/rbs-design-token-set.js.map +0 -1
  1350. package/v2_spec/media-spec.d.ts +0 -2
  1351. package/v2_spec/media-spec.js +0 -2
  1352. package/v2_spec/media-spec.js.map +0 -1
  1353. package/v2_spec/text-spec/base-plus-jakarta-sans-text-style-set.d.ts +0 -2
  1354. package/v2_spec/text-spec/base-plus-jakarta-sans-text-style-set.js +0 -2
  1355. package/v2_spec/text-spec/base-plus-jakarta-sans-text-style-set.js.map +0 -1
  1356. package/v2_spec/text-spec/base-text-style-set.d.ts +0 -2
  1357. package/v2_spec/text-spec/base-text-style-set.js +0 -2
  1358. package/v2_spec/text-spec/base-text-style-set.js.map +0 -1
  1359. package/v2_spec/text-spec/font-spec.d.ts +0 -15
  1360. package/v2_spec/text-spec/font-spec.js +0 -2
  1361. package/v2_spec/text-spec/font-spec.js.map +0 -1
  1362. package/v2_spec/text-spec/oneservice-text-style-set.d.ts +0 -2
  1363. package/v2_spec/text-spec/oneservice-text-style-set.js +0 -2
  1364. package/v2_spec/text-spec/oneservice-text-style-set.js.map +0 -1
  1365. package/v2_spec/text-spec/types.d.ts +0 -4
  1366. package/v2_text/helper.d.ts +0 -7
  1367. package/v2_text/helper.js +0 -31
  1368. package/v2_text/helper.js.map +0 -1
  1369. package/v2_text/index.d.ts +0 -4
  1370. package/v2_text/index.js +0 -2
  1371. package/v2_text/index.js.map +0 -1
  1372. package/v2_text/text-style.d.ts +0 -5
  1373. package/v2_text/text-style.js +0 -2
  1374. package/v2_text/text-style.js.map +0 -1
  1375. package/v2_text/text.d.ts +0 -22
  1376. package/v2_text/text.js +0 -107
  1377. package/v2_text/text.js.map +0 -1
  1378. package/v2_text/types.d.ts +0 -44
  1379. package/v2_text/types.js +0 -2
  1380. package/v2_text/types.js.map +0 -1
  1381. package/v2_text-list/index.d.ts +0 -6
  1382. package/v2_text-list/index.js +0 -2
  1383. package/v2_text-list/index.js.map +0 -1
  1384. package/v2_text-list/ordered-list.d.ts +0 -3
  1385. package/v2_text-list/ordered-list.js +0 -2
  1386. package/v2_text-list/ordered-list.js.map +0 -1
  1387. package/v2_text-list/text-list.styles.d.ts +0 -13
  1388. package/v2_text-list/text-list.styles.js +0 -62
  1389. package/v2_text-list/text-list.styles.js.map +0 -1
  1390. package/v2_text-list/types.d.ts +0 -26
  1391. package/v2_text-list/unordered-list.d.ts +0 -3
  1392. package/v2_text-list/unordered-list.js +0 -2
  1393. package/v2_text-list/unordered-list.js.map +0 -1
  1394. package/v2_theme/color-theme-helper.d.ts +0 -1
  1395. package/v2_theme/color-theme-helper.js +0 -2
  1396. package/v2_theme/color-theme-helper.js.map +0 -1
  1397. package/v2_theme/design-token-helper.d.ts +0 -2
  1398. package/v2_theme/design-token-helper.js +0 -2
  1399. package/v2_theme/design-token-helper.js.map +0 -1
  1400. package/v2_theme/helper.d.ts +0 -16
  1401. package/v2_theme/helper.js +0 -2
  1402. package/v2_theme/helper.js.map +0 -1
  1403. package/v2_theme/index.d.ts +0 -8
  1404. package/v2_theme/index.js +0 -2
  1405. package/v2_theme/index.js.map +0 -1
  1406. package/v2_theme/text-theme-helper.d.ts +0 -1
  1407. package/v2_theme/text-theme-helper.js +0 -2
  1408. package/v2_theme/text-theme-helper.js.map +0 -1
  1409. package/v2_theme/types.d.ts +0 -48
  1410. package/v2_theme/types.js +0 -2
  1411. package/v2_theme/types.js.map +0 -1
  1412. package/v2_transition/index.d.ts +0 -5
  1413. package/v2_transition/index.js +0 -2
  1414. package/v2_transition/index.js.map +0 -1
  1415. package/v3_theme/components/specs/a11yplayground-component-token-set.js +0 -2
  1416. package/v3_theme/components/specs/a11yplayground-component-token-set.js.map +0 -1
  1417. package/v3_theme/components/specs/default-component-token-set.js +0 -2
  1418. package/v3_theme/components/specs/default-component-token-set.js.map +0 -1
  1419. package/v3_theme/components/specs/lifesg-component-token-set.js +0 -2
  1420. package/v3_theme/components/specs/lifesg-component-token-set.js.map +0 -1
  1421. package/v3_theme/components/specs/pa-component-token-set.js +0 -2
  1422. package/v3_theme/components/specs/pa-component-token-set.js.map +0 -1
  1423. package/v3_theme/components/specs/smgs-component-token-set.js +0 -2
  1424. package/v3_theme/components/specs/smgs-component-token-set.js.map +0 -1
  1425. package/v3_theme/components/specs/spf-component-token-set.js +0 -2
  1426. package/v3_theme/components/specs/spf-component-token-set.js.map +0 -1
  1427. package/v3_theme/components/theme-helper.js +0 -2
  1428. package/v3_theme/components/theme-helper.js.map +0 -1
  1429. /package/cjs/{popover-v2 → popover}/popover-inline/popover-inline.js +0 -0
  1430. /package/{popover-v2 → popover}/popover-inline/index.d.ts +0 -0
  1431. /package/{popover-v2 → popover}/popover-inline/popover-inline.d.ts +0 -0
  1432. /package/{popover-v2 → popover}/popover-inline/popover-inline.js +0 -0
  1433. /package/{popover-v2 → popover}/popover-inline/popover-inline.styles.d.ts +0 -0
  1434. /package/{popover-v2 → popover}/popover-trigger.styles.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-list.js","sources":["../../../src/shared/dropdown-list/dropdown-list.tsx"],"sourcesContent":["import { ExclamationCircleFillIcon } from \"@lifesg/react-icons/exclamation-circle-fill\";\nimport { SquareIcon } from \"@lifesg/react-icons/square\";\nimport { SquareFillIcon } from \"@lifesg/react-icons/square-fill\";\nimport { SquareTickFillIcon } from \"@lifesg/react-icons/square-tick-fill\";\nimport { TickIcon } from \"@lifesg/react-icons/tick\";\nimport clsx from \"clsx\";\nimport find from \"lodash/find\";\nimport isEqual from \"lodash/isEqual\";\nimport type React from \"react\";\nimport {\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport type { VirtuosoHandle } from \"react-virtuoso\";\nimport { Virtuoso } from \"react-virtuoso\";\n\nimport { Markup } from \"../../markup\";\nimport { useApplyStyle } from \"../../theme\";\nimport {\n mergeRefs,\n useCompare,\n useEvent,\n useEventListener,\n useIsMounted,\n} from \"../../util\";\nimport { VisuallyHidden } from \"../accessibility\";\nimport { ComponentLoadingSpinner } from \"../component-loading-spinner\";\nimport { useDropdownRender } from \"../dropdown-wrapper\";\nimport { BasicButton } from \"../input-wrapper\";\nimport { DropdownLabel } from \"./dropdown-label\";\nimport * as styles from \"./dropdown-list.styles\";\nimport { DropdownListStateContext } from \"./dropdown-list-state\";\nimport { DropdownSearch } from \"./dropdown-search\";\nimport type {\n DropdownListApi,\n DropdownListProps,\n ListItemDisplayProps,\n} from \"./types\";\nimport { VirtuosoItem, VirtuosoList } from \"./virtuoso-components\";\n\n/**\n * NOTE: This component is not directly exportable but forms part of a component\n */\nconst DropdownListInner = <T, V>(\n {\n listItems,\n multiSelect,\n maxSelectable,\n selectedItems,\n disableItemFocus,\n itemsLoadState = \"success\",\n itemTruncationType = \"end\",\n itemMaxLines = 2,\n labelDisplayType = \"inline\",\n variant = \"default\",\n listboxId,\n ariaLabel,\n matchElementWidth = false,\n width,\n topScrollItem,\n onSelectItem,\n onSelectAll,\n onDismiss,\n onRetry,\n /* DropdownDisplayProps */\n valueExtractor,\n listExtractor,\n renderListItem,\n renderCustomCallToAction,\n /* DropdownSearchProps */\n enableSearch,\n hideNoResultsDisplay,\n noResultsDescription: _noResultsDescription,\n customLabels,\n searchPlaceholder: _searchPlaceholder,\n searchFunction,\n onSearch,\n }: DropdownListProps<T, V>,\n ref: React.ForwardedRef<DropdownListApi>\n): JSX.Element => {\n // =========================================================================\n // CONST, REF, STATE\n // =========================================================================\n const {\n noResultsLabel = \"No results found.\",\n selectAllButtonLabel = \"Select all\",\n clearAllButtonLabel = \"Clear all\",\n } = customLabels || {};\n const searchPlaceholder =\n customLabels?.searchPlaceholder || _searchPlaceholder || \"Search\";\n const noResultsDescription =\n customLabels?.noResultsDescription || _noResultsDescription;\n const { focusedIndex, setFocusedIndex } = useContext(\n DropdownListStateContext\n );\n const {\n elementWidth,\n setFloatingRef,\n getFloatingProps,\n styles: floatingStyles,\n } = useDropdownRender();\n const [searchValue, setSearchValue] = useState<string>(\"\");\n const [displayListItems, setDisplayListItems] = useState(listItems ?? []);\n const itemsLoadStateChanged = useCompare(itemsLoadState);\n const mounted = useIsMounted();\n\n const nodeRef = useRef<HTMLDivElement | null>(null);\n const listItemRefs = useRef<(HTMLElement | null)[]>([]);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const virtuosoRef = useRef<VirtuosoHandle>(null);\n\n const hasSelectedMax =\n !!maxSelectable &&\n !!selectedItems &&\n selectedItems?.length === maxSelectable;\n\n let containerWidthStyle = {};\n if (width) {\n containerWidthStyle = {\n [styles.tokens.containerWidth]: `${width}px`,\n [styles.tokens.containerMinWidth]: `0px`,\n };\n } else if (matchElementWidth && elementWidth) {\n containerWidthStyle = {\n [styles.tokens.containerWidth]: `${elementWidth}px`,\n [styles.tokens.containerMinWidth]: `${elementWidth}px`,\n };\n }\n\n // =========================================================================\n // HELPER FUNCTIONS\n // =========================================================================\n const getValue = (item: T): V => {\n return valueExtractor ? valueExtractor(item) : (item as unknown as V);\n };\n\n const getItemKey = (item: T, index: number) => {\n const formattedValue = valueExtractor ? valueExtractor(item) : item;\n return `item_${index}__${formattedValue}`;\n };\n\n const getOptionLabel = (item: T): ListItemDisplayProps => {\n const value = listExtractor ? listExtractor(item) : item?.toString();\n\n if (typeof value === \"object\") {\n return { title: value.title, secondaryLabel: value.secondaryLabel };\n }\n\n return { title: value ?? \"\" };\n };\n\n const checkListItemSelected = useCallback(\n (item: T): boolean => {\n return !!find(selectedItems, (arrItem) => {\n return isEqual(arrItem, item);\n });\n },\n [selectedItems]\n );\n\n const filterItemsByCustomSearch = useEvent(() => {\n return searchFunction?.(searchValue);\n });\n\n const filterItemsByLabel = useEvent(() => {\n return listItems?.filter((item) => {\n const { title, secondaryLabel } = getOptionLabel(item);\n const updatedSearchValue = searchValue.trim().toLowerCase();\n return (\n title.toLowerCase().includes(updatedSearchValue) ||\n (secondaryLabel &&\n secondaryLabel.toLowerCase().includes(updatedSearchValue))\n );\n });\n });\n\n const refocus = useCallback(\n (opts?: { index?: number; preferSelected?: boolean }) => {\n if (disableItemFocus) return;\n\n if (searchInputRef.current) {\n setFocusedIndex(-1);\n setTimeout(() => searchInputRef.current?.focus(), 0);\n return;\n }\n\n const items = displayListItems ?? [];\n if (items.length === 0) return;\n\n if (opts?.index !== undefined) {\n const forced = Math.max(\n 0,\n Math.min(opts.index, items.length - 1)\n );\n virtuosoRef.current?.scrollToIndex({\n index: forced,\n align: \"center\",\n });\n setFocusedIndex(forced);\n setTimeout(() => listItemRefs.current[forced]?.focus(), 0);\n\n return;\n }\n\n const selectedIndex = opts?.preferSelected\n ? items.findIndex((item) => checkListItemSelected(item))\n : -1;\n\n const nextIndex =\n selectedIndex !== -1\n ? selectedIndex\n : focusedIndex >= 0 && focusedIndex < items.length\n ? focusedIndex\n : 0;\n\n virtuosoRef.current?.scrollToIndex({\n index: nextIndex,\n align: \"center\",\n });\n setFocusedIndex(nextIndex);\n setTimeout(() => listItemRefs.current[nextIndex]?.focus(), 0);\n },\n [\n checkListItemSelected,\n disableItemFocus,\n displayListItems,\n focusedIndex,\n setFocusedIndex,\n ]\n );\n\n // =========================================================================\n // EVENT HANDLERS\n // =========================================================================\n const handleKeyboardPress = (event: KeyboardEvent) => {\n switch (event.code) {\n case \"ArrowDown\":\n event.preventDefault();\n if (focusedIndex < displayListItems.length - 1) {\n const upcomingIndex = focusedIndex + 1;\n listItemRefs.current[upcomingIndex]?.focus();\n setFocusedIndex(upcomingIndex);\n }\n break;\n case \"ArrowUp\":\n event.preventDefault();\n if (focusedIndex > 0) {\n const upcomingIndex = focusedIndex - 1;\n listItemRefs.current[upcomingIndex]?.focus();\n setFocusedIndex(upcomingIndex);\n } else if (focusedIndex === 0 && searchInputRef.current) {\n searchInputRef.current.focus();\n setFocusedIndex(-1);\n }\n break;\n case \"Space\":\n case \"Enter\":\n if (\n document.activeElement ===\n listItemRefs.current[focusedIndex]\n ) {\n event.preventDefault();\n if (displayListItems[focusedIndex]) {\n handleListItemClick(\n displayListItems[focusedIndex],\n focusedIndex\n );\n }\n }\n break;\n default:\n break;\n }\n };\n\n const handleListItemClick = (item: T, upcomingIndex: number) => {\n if (hasSelectedMax && !checkListItemSelected(item)) return;\n setFocusedIndex(upcomingIndex);\n onSelectItem?.(item, getValue(item));\n };\n\n const handleListItemHover = (index: number) => setFocusedIndex(index);\n\n const handleSearchInputChange = (\n event: React.ChangeEvent<HTMLInputElement>\n ) => {\n const value = event.target.value;\n setSearchValue(value);\n onSearch?.();\n };\n\n const handleOnClear = () => {\n setSearchValue(\"\");\n searchInputRef.current?.focus();\n onSearch?.();\n };\n\n const handleTryAgain = () => onRetry?.();\n\n // =========================================================================\n // EFFECTS\n // =========================================================================\n useEventListener(\"keydown\", handleKeyboardPress);\n useImperativeHandle(ref, () => ({ refocus }), [refocus]);\n\n useEffect(() => {\n if (!topScrollItem) {\n virtuosoRef.current?.scrollTo({ top: 0 });\n return;\n }\n const timer = setTimeout(() => {\n if (!listItems) return;\n\n const index = listItems.indexOf(topScrollItem);\n if (virtuosoRef.current && index !== -1) {\n virtuosoRef.current.scrollToIndex({ index });\n setFocusedIndex(index);\n }\n }, 0);\n\n return () => clearTimeout(timer);\n }, [listItemRefs, listItems, setFocusedIndex, topScrollItem]);\n\n useEffect(() => {\n if (disableItemFocus) return;\n if (!mounted || !itemsLoadStateChanged) return;\n\n if (itemsLoadState === \"success\") {\n if (searchInputRef.current) {\n setFocusedIndex(-1);\n searchInputRef.current.focus();\n }\n }\n }, [\n mounted,\n itemsLoadStateChanged,\n itemsLoadState,\n setFocusedIndex,\n disableItemFocus,\n ]);\n\n useEffect(() => {\n const filterItems = () => {\n if (searchValue === \"\") {\n return listItems;\n } else if (searchFunction) {\n return filterItemsByCustomSearch();\n } else {\n return filterItemsByLabel();\n }\n };\n\n setDisplayListItems(filterItems() ?? []);\n }, [\n filterItemsByCustomSearch,\n filterItemsByLabel,\n listItems,\n searchFunction,\n searchValue,\n ]);\n\n useEffect(() => {\n if (mounted) {\n return;\n }\n\n if (disableItemFocus || !listItems) return;\n\n const index = listItems.findIndex((item) =>\n checkListItemSelected(item)\n );\n\n if (searchInputRef.current) {\n setFocusedIndex(-1);\n setTimeout(() => searchInputRef.current?.focus(), 200);\n } else if (focusedIndex > 0) {\n virtuosoRef.current?.scrollToIndex({\n index: focusedIndex,\n align: \"center\",\n });\n setTimeout(() => listItemRefs.current[focusedIndex]?.focus(), 200);\n } else if (index !== -1) {\n virtuosoRef.current?.scrollToIndex({ index, align: \"center\" });\n setFocusedIndex(index);\n setTimeout(() => listItemRefs.current[index]?.focus(), 200);\n } else {\n virtuosoRef.current?.scrollToIndex({ index: 0 });\n setFocusedIndex(0);\n setTimeout(() => listItemRefs.current[0]?.focus(), 200);\n }\n }, [\n checkListItemSelected,\n disableItemFocus,\n focusedIndex,\n listItems,\n mounted,\n setFocusedIndex,\n ]);\n\n // =========================================================================\n // APPLY STYLES\n // =========================================================================\n\n useApplyStyle(nodeRef, {\n ...containerWidthStyle,\n });\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n const renderListItemIcon = (selected: boolean) => {\n if (multiSelect) {\n if (hasSelectedMax && !selected) {\n return (\n <SquareFillIcon\n aria-hidden\n className={clsx(\n styles.baseCheckboxIndicatorStyle,\n styles.checkboxDisabledIndicator\n )}\n />\n );\n }\n\n return selected ? (\n <SquareTickFillIcon\n aria-hidden\n className={clsx(\n styles.baseCheckboxIndicatorStyle,\n styles.checkboxSelectedIndicator\n )}\n />\n ) : (\n <SquareIcon\n aria-hidden\n className={clsx(\n styles.baseCheckboxIndicatorStyle,\n styles.checkboxUnselectedIndicator\n )}\n />\n );\n }\n\n return selected ? (\n <TickIcon\n aria-hidden\n className={clsx(\n styles.baseIndicatorStyle,\n styles.selectedIndicator\n )}\n />\n ) : (\n <div className={styles.baseIndicatorStyle} />\n );\n };\n\n const renderDropdownLabel = (item: T, selected: boolean) => {\n const { title, secondaryLabel } = getOptionLabel(item);\n\n return (\n <DropdownLabel\n displayType={labelDisplayType}\n label={title}\n maxLines={itemMaxLines}\n selected={selected}\n disabled={!selected && hasSelectedMax}\n sublabel={secondaryLabel}\n truncationType={itemTruncationType}\n variant={variant}\n />\n );\n };\n\n const renderItem = (item: T, index: number) => {\n if (!onRetry || itemsLoadState === \"success\") {\n const selected = checkListItemSelected(item);\n const active = index === focusedIndex;\n const disabled = !selected && hasSelectedMax;\n return (\n <li\n aria-selected={selected}\n aria-multiselectable={multiSelect}\n aria-disabled={disabled}\n aria-posinset={index + 1}\n aria-setsize={displayListItems?.length}\n data-testid=\"list-item\"\n key={getItemKey(item, index)}\n onClick={() => handleListItemClick(item, index)}\n onMouseEnter={() => handleListItemHover(index)}\n ref={(element) => {\n listItemRefs.current[index] = element;\n }}\n role=\"option\"\n tabIndex={active ? 0 : -1}\n className={clsx(\n styles.listItem,\n (disabled && styles.listItemDisabled) ||\n (active &&\n selected &&\n styles.listItemActiveSelected) ||\n (active && styles.listItemActive)\n )}\n >\n {renderListItem ? (\n renderListItem(item, { selected })\n ) : (\n <>\n {renderListItemIcon(selected)}\n {renderDropdownLabel(item, selected)}\n </>\n )}\n </li>\n );\n }\n };\n\n const renderSearchInput = () => {\n if ((enableSearch || searchFunction) && itemsLoadState === \"success\") {\n return (\n <DropdownSearch\n ref={searchInputRef}\n onChange={handleSearchInputChange}\n value={searchValue}\n placeholder={searchPlaceholder}\n data-testid=\"search-input\"\n aria-label=\"Enter text to search\"\n onClear={handleOnClear}\n variant={variant}\n />\n );\n }\n };\n\n const renderSelectAll = () => {\n if (\n selectedItems &&\n multiSelect &&\n displayListItems.length > 0 &&\n !searchValue &&\n itemsLoadState === \"success\"\n ) {\n return (\n <div className={styles.selectAllContainer}>\n <BasicButton\n onClick={onSelectAll}\n type=\"button\"\n className={clsx(\n styles.baseButton,\n styles.selectAllButton\n )}\n >\n {maxSelectable || selectedItems.length !== 0\n ? clearAllButtonLabel\n : selectAllButtonLabel}\n </BasicButton>\n </div>\n );\n }\n };\n\n const renderNoResults = () => {\n if (\n !hideNoResultsDisplay &&\n (searchValue || !enableSearch) &&\n displayListItems.length === 0 &&\n itemsLoadState === \"success\"\n ) {\n return (\n <>\n <div\n data-testid=\"list-no-results\"\n className={styles.resultStateContainer}\n >\n <ExclamationCircleFillIcon\n data-testid=\"no-result-icon\"\n className={styles.labelIcon}\n />\n {noResultsLabel}\n </div>\n {noResultsDescription && (\n <Markup\n data-testid=\"no-result-desc\"\n className={styles.noResultDescContainer}\n >\n {noResultsDescription}\n </Markup>\n )}\n </>\n );\n }\n };\n\n const renderLoading = () => {\n if (onRetry && itemsLoadState === \"loading\") {\n return (\n <div\n data-testid=\"list-loading\"\n className={styles.resultStateContainer}\n >\n <ComponentLoadingSpinner className={styles.spinner} />\n Loading...\n </div>\n );\n }\n };\n\n const renderTryAgain = () => {\n if (onRetry && itemsLoadState === \"fail\") {\n return (\n <div\n data-testid=\"list-fail\"\n className={styles.resultStateContainer}\n >\n <ExclamationCircleFillIcon\n data-testid=\"load-error-icon\"\n className={styles.labelIcon}\n />\n Failed to load.&nbsp;\n <BasicButton\n onClick={handleTryAgain}\n type=\"button\"\n className={clsx(\n styles.baseButton,\n styles.tryAgainButton\n )}\n >\n Try again.\n </BasicButton>\n </div>\n );\n }\n };\n\n const renderVirtualisedList = () => {\n const isTestEnv = process.env.NODE_ENV === \"test\";\n\n return (\n <Virtuoso\n ref={virtuosoRef}\n style={{ height: \"100%\" }}\n data={displayListItems}\n customScrollParent={nodeRef.current ?? undefined}\n itemContent={(index, item) => renderItem(item, index)}\n components={{\n List: VirtuosoList,\n Item: VirtuosoItem,\n }}\n context={{\n listProps: {\n id: listboxId,\n role: \"listbox\",\n \"aria-multiselectable\": multiSelect,\n },\n listItemProps: {\n role: \"none\",\n },\n }}\n // disable virtualisation in tests\n // https://github.com/petyosi/react-virtuoso/issues/26#issuecomment-1040316576\n // explicitly set the `key` prop to avoid React warning\n key={isTestEnv ? displayListItems.length : undefined}\n // omit the `initialItemCount` prop to resolve NaN error\n {...(isTestEnv\n ? {\n initialItemCount: displayListItems.length,\n }\n : {})}\n />\n );\n };\n\n const renderList = () => {\n return (\n <div\n data-testid=\"dropdown-list\"\n role=\"group\"\n aria-label={ariaLabel}\n className={styles.list}\n >\n {renderSearchInput()}\n {renderSelectAll()}\n {renderNoResults()}\n {renderLoading()}\n {renderTryAgain()}\n {renderVirtualisedList()}\n </div>\n );\n };\n\n const renderBottomCta = () => {\n if (!renderCustomCallToAction) {\n return;\n }\n\n return (\n <div data-testid=\"custom-cta\">\n {renderCustomCallToAction(onDismiss as any, displayListItems)}\n </div>\n );\n };\n\n return (\n <div\n data-testid=\"dropdown-container\"\n ref={mergeRefs(nodeRef, setFloatingRef)}\n {...getFloatingProps()}\n className={clsx(\n styles.container,\n variant === \"small\" && styles.containerVariantSmall\n )}\n style={floatingStyles}\n >\n <VisuallyHidden role=\"status\">{ariaLabel}</VisuallyHidden>\n {renderList()}\n {renderBottomCta()}\n </div>\n );\n};\n\nexport const DropdownList = forwardRef(DropdownListInner);\n"],"names":["DropdownList","forwardRef","listItems","multiSelect","maxSelectable","selectedItems","disableItemFocus","itemsLoadState","itemTruncationType","itemMaxLines","labelDisplayType","variant","listboxId","ariaLabel","matchElementWidth","width","topScrollItem","onSelectItem","onSelectAll","onDismiss","onRetry","valueExtractor","listExtractor","renderListItem","renderCustomCallToAction","enableSearch","hideNoResultsDisplay","noResultsDescription","_noResultsDescription","customLabels","searchPlaceholder","_searchPlaceholder","searchFunction","onSearch","ref","noResultsLabel","selectAllButtonLabel","clearAllButtonLabel","focusedIndex","setFocusedIndex","useContext","DropdownListStateContext","elementWidth","setFloatingRef","getFloatingProps","styles","floatingStyles","useDropdownRender","searchValue","setSearchValue","useState","displayListItems","setDisplayListItems","itemsLoadStateChanged","useCompare","mounted","useIsMounted","nodeRef","useRef","listItemRefs","searchInputRef","virtuosoRef","hasSelectedMax","length","containerWidthStyle","styles.tokens","containerWidth","containerMinWidth","getOptionLabel","item","value","toString","title","secondaryLabel","checkListItemSelected","useCallback","find","arrItem","isEqual","filterItemsByCustomSearch","useEvent","filterItemsByLabel","filter","updatedSearchValue","trim","toLowerCase","includes","refocus","opts","current","setTimeout","_a","focus","items","undefined","index","forced","Math","max","min","scrollToIndex","align","selectedIndex","preferSelected","findIndex","nextIndex","_b","handleListItemClick","upcomingIndex","getValue","handleSearchInputChange","event","target","handleOnClear","handleTryAgain","useEventListener","code","preventDefault","document","activeElement","useImperativeHandle","useEffect","scrollTo","top","timer","indexOf","clearTimeout","_c","useApplyStyle","Object","assign","renderListItemIcon","selected","_jsx","SquareFillIcon","className","clsx","styles.baseCheckboxIndicatorStyle","styles.checkboxDisabledIndicator","SquareTickFillIcon","styles.checkboxSelectedIndicator","SquareIcon","styles.checkboxUnselectedIndicator","TickIcon","styles.baseIndicatorStyle","styles.selectedIndicator","renderDropdownLabel","DropdownLabel","displayType","label","maxLines","disabled","sublabel","truncationType","renderItem","active","onClick","onMouseEnter","handleListItemHover","element","role","tabIndex","styles.listItem","styles.listItemDisabled","styles.listItemActiveSelected","styles.listItemActive","children","_jsxs","_Fragment","getItemKey","renderSearchInput","DropdownSearch","onChange","placeholder","onClear","renderSelectAll","styles.selectAllContainer","BasicButton","type","styles.baseButton","styles.selectAllButton","renderNoResults","styles.resultStateContainer","ExclamationCircleFillIcon","styles.labelIcon","Markup","styles.noResultDescContainer","renderLoading","ComponentLoadingSpinner","styles.spinner","renderTryAgain","styles.tryAgainButton","renderVirtualisedList","isTestEnv","process","env","NODE_ENV","Virtuoso","style","height","data","customScrollParent","itemContent","components","List","VirtuosoList","Item","VirtuosoItem","context","listProps","id","listItemProps","initialItemCount","mergeRefs","styles.container","styles.containerVariantSmall","VisuallyHidden","styles.list","renderBottomCta"],"mappings":"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"}
1
+ {"version":3,"file":"dropdown-list.js","sources":["../../../src/shared/dropdown-list/dropdown-list.tsx"],"sourcesContent":["import { ExclamationCircleFillIcon } from \"@lifesg/react-icons/exclamation-circle-fill\";\nimport { SquareIcon } from \"@lifesg/react-icons/square\";\nimport { SquareFillIcon } from \"@lifesg/react-icons/square-fill\";\nimport { SquareTickFillIcon } from \"@lifesg/react-icons/square-tick-fill\";\nimport { TickIcon } from \"@lifesg/react-icons/tick\";\nimport clsx from \"clsx\";\nimport find from \"lodash/find\";\nimport isEqual from \"lodash/isEqual\";\nimport type React from \"react\";\nimport {\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport type { VirtuosoHandle } from \"react-virtuoso\";\nimport { Virtuoso } from \"react-virtuoso\";\n\nimport { Markup } from \"../../markup\";\nimport { useApplyStyle } from \"../../theme\";\nimport {\n mergeRefs,\n useCompare,\n useEvent,\n useEventListener,\n useIsMounted,\n} from \"../../util\";\nimport { VisuallyHidden } from \"../accessibility\";\nimport { ComponentLoadingSpinner } from \"../component-loading-spinner\";\nimport { useDropdownRender } from \"../dropdown-wrapper\";\nimport { BasicButton } from \"../input-wrapper\";\nimport { DropdownLabel } from \"./dropdown-label\";\nimport type { ContainerWidthType } from \"./dropdown-list.styles\";\nimport * as styles from \"./dropdown-list.styles\";\nimport { DropdownListStateContext } from \"./dropdown-list-state\";\nimport { DropdownSearch } from \"./dropdown-search\";\nimport type {\n DropdownListApi,\n DropdownListProps,\n ListItemDisplayProps,\n} from \"./types\";\nimport { VirtuosoItem, VirtuosoList } from \"./virtuoso-components\";\n\n/**\n * NOTE: This component is not directly exportable but forms part of a component\n */\nconst DropdownListInner = <T, V>(\n {\n listItems,\n multiSelect,\n maxSelectable,\n selectedItems,\n disableItemFocus,\n itemsLoadState = \"success\",\n itemTruncationType = \"end\",\n itemMaxLines = 2,\n labelDisplayType = \"inline\",\n variant = \"default\",\n listboxId,\n ariaLabel,\n matchElementWidth = false,\n width,\n topScrollItem,\n onSelectItem,\n onSelectAll,\n onDismiss,\n onRetry,\n /* DropdownDisplayProps */\n valueExtractor,\n listExtractor,\n renderListItem,\n renderCustomCallToAction,\n /* DropdownSearchProps */\n enableSearch,\n hideNoResultsDisplay,\n noResultsDescription: _noResultsDescription,\n customLabels,\n searchPlaceholder: _searchPlaceholder,\n searchFunction,\n onSearch,\n }: DropdownListProps<T, V>,\n ref: React.ForwardedRef<DropdownListApi>\n): JSX.Element => {\n // =========================================================================\n // CONST, REF, STATE\n // =========================================================================\n const {\n noResultsLabel = \"No results found.\",\n selectAllButtonLabel = \"Select all\",\n clearAllButtonLabel = \"Clear all\",\n } = customLabels || {};\n const searchPlaceholder =\n customLabels?.searchPlaceholder || _searchPlaceholder || \"Search\";\n const noResultsDescription =\n customLabels?.noResultsDescription || _noResultsDescription;\n const { focusedIndex, setFocusedIndex } = useContext(\n DropdownListStateContext\n );\n const {\n elementWidth,\n setFloatingRef,\n getFloatingProps,\n styles: floatingStyles,\n } = useDropdownRender();\n const [searchValue, setSearchValue] = useState<string>(\"\");\n const [displayListItems, setDisplayListItems] = useState(listItems ?? []);\n const itemsLoadStateChanged = useCompare(itemsLoadState);\n const mounted = useIsMounted();\n\n const nodeRef = useRef<HTMLDivElement | null>(null);\n const listItemRefs = useRef<(HTMLElement | null)[]>([]);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const virtuosoRef = useRef<VirtuosoHandle>(null);\n\n const hasSelectedMax =\n !!maxSelectable &&\n !!selectedItems &&\n selectedItems?.length === maxSelectable;\n\n // =========================================================================\n // APPLY STYLES\n // =========================================================================\n let containerWidthType: ContainerWidthType = \"default\";\n let containerWidth: string | undefined = undefined;\n if (width) {\n containerWidth = width;\n containerWidthType = \"custom\";\n } else if (matchElementWidth && elementWidth) {\n containerWidth = `${elementWidth}px`;\n containerWidthType = \"match\";\n }\n\n useApplyStyle(nodeRef, {\n [styles.tokens.containerWidth]: containerWidth,\n });\n\n // =========================================================================\n // HELPER FUNCTIONS\n // =========================================================================\n const getValue = (item: T): V => {\n return valueExtractor ? valueExtractor(item) : (item as unknown as V);\n };\n\n const getItemKey = (item: T, index: number) => {\n const formattedValue = valueExtractor ? valueExtractor(item) : item;\n return `item_${index}__${formattedValue}`;\n };\n\n const getOptionLabel = (item: T): ListItemDisplayProps => {\n const value = listExtractor ? listExtractor(item) : item?.toString();\n\n if (typeof value === \"object\") {\n return { title: value.title, secondaryLabel: value.secondaryLabel };\n }\n\n return { title: value ?? \"\" };\n };\n\n const checkListItemSelected = useCallback(\n (item: T): boolean => {\n return !!find(selectedItems, (arrItem) => {\n return isEqual(arrItem, item);\n });\n },\n [selectedItems]\n );\n\n const filterItemsByCustomSearch = useEvent(() => {\n return searchFunction?.(searchValue);\n });\n\n const filterItemsByLabel = useEvent(() => {\n return listItems?.filter((item) => {\n const { title, secondaryLabel } = getOptionLabel(item);\n const updatedSearchValue = searchValue.trim().toLowerCase();\n return (\n title.toLowerCase().includes(updatedSearchValue) ||\n (secondaryLabel &&\n secondaryLabel.toLowerCase().includes(updatedSearchValue))\n );\n });\n });\n\n const refocus = useCallback(\n (opts?: { index?: number; preferSelected?: boolean }) => {\n if (disableItemFocus) return;\n\n if (searchInputRef.current) {\n setFocusedIndex(-1);\n setTimeout(() => searchInputRef.current?.focus(), 0);\n return;\n }\n\n const items = displayListItems ?? [];\n if (items.length === 0) return;\n\n if (opts?.index !== undefined) {\n const forced = Math.max(\n 0,\n Math.min(opts.index, items.length - 1)\n );\n virtuosoRef.current?.scrollToIndex({\n index: forced,\n align: \"center\",\n });\n setFocusedIndex(forced);\n setTimeout(() => listItemRefs.current[forced]?.focus(), 0);\n\n return;\n }\n\n const selectedIndex = opts?.preferSelected\n ? items.findIndex((item) => checkListItemSelected(item))\n : -1;\n\n const nextIndex =\n selectedIndex !== -1\n ? selectedIndex\n : focusedIndex >= 0 && focusedIndex < items.length\n ? focusedIndex\n : 0;\n\n virtuosoRef.current?.scrollToIndex({\n index: nextIndex,\n align: \"center\",\n });\n setFocusedIndex(nextIndex);\n setTimeout(() => listItemRefs.current[nextIndex]?.focus(), 0);\n },\n [\n checkListItemSelected,\n disableItemFocus,\n displayListItems,\n focusedIndex,\n setFocusedIndex,\n ]\n );\n\n // =========================================================================\n // EVENT HANDLERS\n // =========================================================================\n const handleKeyboardPress = (event: KeyboardEvent) => {\n switch (event.code) {\n case \"ArrowDown\":\n event.preventDefault();\n if (focusedIndex < displayListItems.length - 1) {\n const upcomingIndex = focusedIndex + 1;\n listItemRefs.current[upcomingIndex]?.focus();\n setFocusedIndex(upcomingIndex);\n }\n break;\n case \"ArrowUp\":\n event.preventDefault();\n if (focusedIndex > 0) {\n const upcomingIndex = focusedIndex - 1;\n listItemRefs.current[upcomingIndex]?.focus();\n setFocusedIndex(upcomingIndex);\n } else if (focusedIndex === 0 && searchInputRef.current) {\n searchInputRef.current.focus();\n setFocusedIndex(-1);\n }\n break;\n case \"Space\":\n case \"Enter\":\n if (\n document.activeElement ===\n listItemRefs.current[focusedIndex]\n ) {\n event.preventDefault();\n if (displayListItems[focusedIndex]) {\n handleListItemClick(\n displayListItems[focusedIndex],\n focusedIndex\n );\n }\n }\n break;\n default:\n break;\n }\n };\n\n const handleListItemClick = (item: T, upcomingIndex: number) => {\n if (hasSelectedMax && !checkListItemSelected(item)) return;\n setFocusedIndex(upcomingIndex);\n onSelectItem?.(item, getValue(item));\n };\n\n const handleListItemHover = (index: number) => setFocusedIndex(index);\n\n const handleSearchInputChange = (\n event: React.ChangeEvent<HTMLInputElement>\n ) => {\n const value = event.target.value;\n setSearchValue(value);\n onSearch?.();\n };\n\n const handleOnClear = () => {\n setSearchValue(\"\");\n searchInputRef.current?.focus();\n onSearch?.();\n };\n\n const handleTryAgain = () => onRetry?.();\n\n // =========================================================================\n // EFFECTS\n // =========================================================================\n useEventListener(\"keydown\", handleKeyboardPress);\n useImperativeHandle(ref, () => ({ refocus }), [refocus]);\n\n useEffect(() => {\n if (!topScrollItem) {\n virtuosoRef.current?.scrollTo({ top: 0 });\n return;\n }\n const timer = setTimeout(() => {\n if (!listItems) return;\n\n const index = listItems.indexOf(topScrollItem);\n if (virtuosoRef.current && index !== -1) {\n virtuosoRef.current.scrollToIndex({ index });\n setFocusedIndex(index);\n }\n }, 0);\n\n return () => clearTimeout(timer);\n }, [listItemRefs, listItems, setFocusedIndex, topScrollItem]);\n\n useEffect(() => {\n if (disableItemFocus) return;\n if (!mounted || !itemsLoadStateChanged) return;\n\n if (itemsLoadState === \"success\") {\n if (searchInputRef.current) {\n setFocusedIndex(-1);\n searchInputRef.current.focus();\n }\n }\n }, [\n mounted,\n itemsLoadStateChanged,\n itemsLoadState,\n setFocusedIndex,\n disableItemFocus,\n ]);\n\n useEffect(() => {\n const filterItems = () => {\n if (searchValue === \"\") {\n return listItems;\n } else if (searchFunction) {\n return filterItemsByCustomSearch();\n } else {\n return filterItemsByLabel();\n }\n };\n\n setDisplayListItems(filterItems() ?? []);\n }, [\n filterItemsByCustomSearch,\n filterItemsByLabel,\n listItems,\n searchFunction,\n searchValue,\n ]);\n\n useEffect(() => {\n if (mounted) {\n return;\n }\n\n if (disableItemFocus || !listItems) return;\n\n const index = listItems.findIndex((item) =>\n checkListItemSelected(item)\n );\n\n if (searchInputRef.current) {\n setFocusedIndex(-1);\n setTimeout(() => searchInputRef.current?.focus(), 200);\n } else if (focusedIndex > 0) {\n virtuosoRef.current?.scrollToIndex({\n index: focusedIndex,\n align: \"center\",\n });\n setTimeout(() => listItemRefs.current[focusedIndex]?.focus(), 200);\n } else if (index !== -1) {\n virtuosoRef.current?.scrollToIndex({ index, align: \"center\" });\n setFocusedIndex(index);\n setTimeout(() => listItemRefs.current[index]?.focus(), 200);\n } else {\n virtuosoRef.current?.scrollToIndex({ index: 0 });\n setFocusedIndex(0);\n setTimeout(() => listItemRefs.current[0]?.focus(), 200);\n }\n }, [\n checkListItemSelected,\n disableItemFocus,\n focusedIndex,\n listItems,\n mounted,\n setFocusedIndex,\n ]);\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n const renderListItemIcon = (selected: boolean) => {\n if (multiSelect) {\n if (hasSelectedMax && !selected) {\n return (\n <SquareFillIcon\n aria-hidden\n className={clsx(\n styles.baseCheckboxIndicatorStyle,\n styles.checkboxDisabledIndicator\n )}\n />\n );\n }\n\n return selected ? (\n <SquareTickFillIcon\n aria-hidden\n className={clsx(\n styles.baseCheckboxIndicatorStyle,\n styles.checkboxSelectedIndicator\n )}\n />\n ) : (\n <SquareIcon\n aria-hidden\n className={clsx(\n styles.baseCheckboxIndicatorStyle,\n styles.checkboxUnselectedIndicator\n )}\n />\n );\n }\n\n return selected ? (\n <TickIcon\n aria-hidden\n className={clsx(\n styles.baseIndicatorStyle,\n styles.selectedIndicator\n )}\n />\n ) : (\n <div className={styles.baseIndicatorStyle} />\n );\n };\n\n const renderDropdownLabel = (item: T, selected: boolean) => {\n const { title, secondaryLabel } = getOptionLabel(item);\n\n return (\n <DropdownLabel\n displayType={labelDisplayType}\n label={title}\n maxLines={itemMaxLines}\n selected={selected}\n disabled={!selected && hasSelectedMax}\n sublabel={secondaryLabel}\n truncationType={itemTruncationType}\n variant={variant}\n />\n );\n };\n\n const renderItem = (item: T, index: number) => {\n if (!onRetry || itemsLoadState === \"success\") {\n const selected = checkListItemSelected(item);\n const active = index === focusedIndex;\n const disabled = !selected && hasSelectedMax;\n return (\n <li\n aria-selected={selected}\n aria-multiselectable={multiSelect}\n aria-disabled={disabled}\n aria-posinset={index + 1}\n aria-setsize={displayListItems?.length}\n data-testid=\"list-item\"\n key={getItemKey(item, index)}\n onClick={() => handleListItemClick(item, index)}\n onMouseEnter={() => handleListItemHover(index)}\n ref={(element) => {\n listItemRefs.current[index] = element;\n }}\n role=\"option\"\n tabIndex={active ? 0 : -1}\n className={clsx(\n styles.listItem,\n (disabled && styles.listItemDisabled) ||\n (active &&\n selected &&\n styles.listItemActiveSelected) ||\n (active && styles.listItemActive)\n )}\n >\n {renderListItem ? (\n renderListItem(item, { selected })\n ) : (\n <>\n {renderListItemIcon(selected)}\n {renderDropdownLabel(item, selected)}\n </>\n )}\n </li>\n );\n }\n };\n\n const renderSearchInput = () => {\n if ((enableSearch || searchFunction) && itemsLoadState === \"success\") {\n return (\n <DropdownSearch\n ref={searchInputRef}\n onChange={handleSearchInputChange}\n value={searchValue}\n placeholder={searchPlaceholder}\n data-testid=\"search-input\"\n aria-label=\"Enter text to search\"\n onClear={handleOnClear}\n variant={variant}\n />\n );\n }\n };\n\n const renderSelectAll = () => {\n if (\n selectedItems &&\n multiSelect &&\n displayListItems.length > 0 &&\n !searchValue &&\n itemsLoadState === \"success\"\n ) {\n return (\n <div className={styles.selectAllContainer}>\n <BasicButton\n onClick={onSelectAll}\n type=\"button\"\n className={clsx(\n styles.baseButton,\n styles.selectAllButton\n )}\n >\n {maxSelectable || selectedItems.length !== 0\n ? clearAllButtonLabel\n : selectAllButtonLabel}\n </BasicButton>\n </div>\n );\n }\n };\n\n const renderNoResults = () => {\n if (\n !hideNoResultsDisplay &&\n (searchValue || !enableSearch) &&\n displayListItems.length === 0 &&\n itemsLoadState === \"success\"\n ) {\n return (\n <>\n <div\n data-testid=\"list-no-results\"\n className={styles.resultStateContainer}\n >\n <ExclamationCircleFillIcon\n data-testid=\"no-result-icon\"\n className={styles.labelIcon}\n />\n {noResultsLabel}\n </div>\n {noResultsDescription && (\n <Markup\n data-testid=\"no-result-desc\"\n className={styles.noResultDescContainer}\n >\n {noResultsDescription}\n </Markup>\n )}\n </>\n );\n }\n };\n\n const renderLoading = () => {\n if (onRetry && itemsLoadState === \"loading\") {\n return (\n <div\n data-testid=\"list-loading\"\n className={styles.resultStateContainer}\n >\n <ComponentLoadingSpinner className={styles.spinner} />\n Loading...\n </div>\n );\n }\n };\n\n const renderTryAgain = () => {\n if (onRetry && itemsLoadState === \"fail\") {\n return (\n <div\n data-testid=\"list-fail\"\n className={styles.resultStateContainer}\n >\n <ExclamationCircleFillIcon\n data-testid=\"load-error-icon\"\n className={styles.labelIcon}\n />\n Failed to load.&nbsp;\n <BasicButton\n onClick={handleTryAgain}\n type=\"button\"\n className={clsx(\n styles.baseButton,\n styles.tryAgainButton\n )}\n >\n Try again.\n </BasicButton>\n </div>\n );\n }\n };\n\n const renderVirtualisedList = () => {\n const isTestEnv = process.env.NODE_ENV === \"test\";\n\n return (\n <Virtuoso\n ref={virtuosoRef}\n style={{ height: \"100%\" }}\n data={displayListItems}\n customScrollParent={nodeRef.current ?? undefined}\n itemContent={(index, item) => renderItem(item, index)}\n components={{\n List: VirtuosoList,\n Item: VirtuosoItem,\n }}\n context={{\n listProps: {\n id: listboxId,\n role: \"listbox\",\n \"aria-multiselectable\": multiSelect,\n },\n listItemProps: {\n role: \"none\",\n },\n }}\n // disable virtualisation in tests\n // https://github.com/petyosi/react-virtuoso/issues/26#issuecomment-1040316576\n // explicitly set the `key` prop to avoid React warning\n key={isTestEnv ? displayListItems.length : undefined}\n // omit the `initialItemCount` prop to resolve NaN error\n {...(isTestEnv\n ? {\n initialItemCount: displayListItems.length,\n }\n : {})}\n />\n );\n };\n\n const renderList = () => {\n return (\n <div\n data-testid=\"dropdown-list\"\n role=\"group\"\n aria-label={ariaLabel}\n className={styles.list}\n >\n {renderSearchInput()}\n {renderSelectAll()}\n {renderNoResults()}\n {renderLoading()}\n {renderTryAgain()}\n {renderVirtualisedList()}\n </div>\n );\n };\n\n const renderBottomCta = () => {\n if (!renderCustomCallToAction) {\n return;\n }\n\n return (\n <div data-testid=\"custom-cta\">\n {renderCustomCallToAction(onDismiss as any, displayListItems)}\n </div>\n );\n };\n\n return (\n <div\n data-testid=\"dropdown-container\"\n ref={mergeRefs(nodeRef, setFloatingRef)}\n {...getFloatingProps()}\n data-width-type={containerWidthType}\n className={clsx(\n styles.container,\n variant === \"small\" && styles.containerVariantSmall\n )}\n style={floatingStyles}\n >\n <VisuallyHidden role=\"status\">{ariaLabel}</VisuallyHidden>\n {renderList()}\n {renderBottomCta()}\n </div>\n );\n};\n\nexport const DropdownList = forwardRef(DropdownListInner);\n"],"names":["DropdownList","forwardRef","listItems","multiSelect","maxSelectable","selectedItems","disableItemFocus","itemsLoadState","itemTruncationType","itemMaxLines","labelDisplayType","variant","listboxId","ariaLabel","matchElementWidth","width","topScrollItem","onSelectItem","onSelectAll","onDismiss","onRetry","valueExtractor","listExtractor","renderListItem","renderCustomCallToAction","enableSearch","hideNoResultsDisplay","noResultsDescription","_noResultsDescription","customLabels","searchPlaceholder","_searchPlaceholder","searchFunction","onSearch","ref","noResultsLabel","selectAllButtonLabel","clearAllButtonLabel","focusedIndex","setFocusedIndex","useContext","DropdownListStateContext","elementWidth","setFloatingRef","getFloatingProps","styles","floatingStyles","useDropdownRender","searchValue","setSearchValue","useState","displayListItems","setDisplayListItems","itemsLoadStateChanged","useCompare","mounted","useIsMounted","nodeRef","useRef","listItemRefs","searchInputRef","virtuosoRef","hasSelectedMax","length","containerWidth","containerWidthType","useApplyStyle","styles.tokens","getOptionLabel","item","value","toString","title","secondaryLabel","checkListItemSelected","useCallback","find","arrItem","isEqual","filterItemsByCustomSearch","useEvent","filterItemsByLabel","filter","updatedSearchValue","trim","toLowerCase","includes","refocus","opts","current","setTimeout","_a","focus","items","undefined","index","forced","Math","max","min","scrollToIndex","align","selectedIndex","preferSelected","findIndex","nextIndex","_b","handleListItemClick","upcomingIndex","getValue","handleSearchInputChange","event","target","handleOnClear","handleTryAgain","useEventListener","code","preventDefault","document","activeElement","useImperativeHandle","useEffect","scrollTo","top","timer","indexOf","clearTimeout","_c","renderListItemIcon","selected","_jsx","SquareFillIcon","className","clsx","styles.baseCheckboxIndicatorStyle","styles.checkboxDisabledIndicator","SquareTickFillIcon","styles.checkboxSelectedIndicator","SquareIcon","styles.checkboxUnselectedIndicator","TickIcon","styles.baseIndicatorStyle","styles.selectedIndicator","renderDropdownLabel","DropdownLabel","displayType","label","maxLines","disabled","sublabel","truncationType","renderItem","active","onClick","onMouseEnter","handleListItemHover","element","role","tabIndex","styles.listItem","styles.listItemDisabled","styles.listItemActiveSelected","styles.listItemActive","children","_jsxs","_Fragment","getItemKey","renderSearchInput","DropdownSearch","onChange","placeholder","onClear","renderSelectAll","styles.selectAllContainer","BasicButton","type","styles.baseButton","styles.selectAllButton","renderNoResults","styles.resultStateContainer","ExclamationCircleFillIcon","styles.labelIcon","Markup","styles.noResultDescContainer","renderLoading","ComponentLoadingSpinner","styles.spinner","renderTryAgain","styles.tryAgainButton","renderVirtualisedList","isTestEnv","process","env","NODE_ENV","Virtuoso","Object","assign","style","height","data","customScrollParent","itemContent","components","List","VirtuosoList","Item","VirtuosoItem","context","listProps","id","listItemProps","initialItemCount","mergeRefs","styles.container","styles.containerVariantSmall","VisuallyHidden","styles.list","renderBottomCta"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
+ export type ContainerWidthType = "default" | "custom" | "match";
1
2
  export declare const tokens: {
2
3
  readonly availableWidth: "--fds-internal-dropdownList-container-availableWidth";
3
4
  readonly containerWidth: "--fds-internal-dropdownList-containerWidth";
4
- readonly containerMinWidth: "--fds-internal-dropdownList-containerMinWidth";
5
5
  readonly xSpacing: "--fds-internal-dropdownList-container-xSpacing";
6
6
  };
7
7
  export declare const container: import("@linaria/core").LinariaClassName;
@@ -1,2 +1,2 @@
1
- import"./dropdown-list.styles_1qveyb9.css";const i={containerWidth:"--fds-internal-dropdownList-containerWidth",containerMinWidth:"--fds-internal-dropdownList-containerMinWidth"},n="c1wprmqt",o="cv4jfw8",s="llrkh2h",t="lsgm7b1",r="l1sloxru",d="lp7vqom",l="l1li8r4s",c="b3myji2",e="s1bv8amb",h="bswyxh7",a="c1kods4c",p="c2iuhda",b="cxvb3yc",m="s1gfnl3t",w="b51546q",y="s5v4wu0",v="t14h29ix",x="rlpycri",f="l9eregy",q="smon6ho",W="n1mo99ai";export{w as baseButton,h as baseCheckboxIndicatorStyle,c as baseIndicatorStyle,b as checkboxDisabledIndicator,a as checkboxSelectedIndicator,p as checkboxUnselectedIndicator,n as container,o as containerVariantSmall,f as labelIcon,s as list,t as listItem,r as listItemActive,d as listItemActiveSelected,l as listItemDisabled,W as noResultDescContainer,x as resultStateContainer,y as selectAllButton,m as selectAllContainer,e as selectedIndicator,q as spinner,i as tokens,v as tryAgainButton};
1
+ import"./dropdown-list.styles_1kt4zhf.css";const s={containerWidth:"--fds-internal-dropdownList-containerWidth"},o="c1wprmqt",r="cv4jfw8",t="llrkh2h",i="lsgm7b1",l="l1sloxru",n="lp7vqom",c="l1li8r4s",d="b3myji2",h="s1bv8amb",e="bswyxh7",m="c1kods4c",p="c2iuhda",a="cxvb3yc",b="s1gfnl3t",w="b51546q",y="s5v4wu0",v="t14h29ix",x="rlpycri",f="l9eregy",_="smon6ho",g="n1mo99ai";export{w as baseButton,e as baseCheckboxIndicatorStyle,d as baseIndicatorStyle,a as checkboxDisabledIndicator,m as checkboxSelectedIndicator,p as checkboxUnselectedIndicator,o as container,r as containerVariantSmall,f as labelIcon,t as list,i as listItem,l as listItemActive,n as listItemActiveSelected,c as listItemDisabled,g as noResultDescContainer,x as resultStateContainer,y as selectAllButton,b as selectAllContainer,h as selectedIndicator,_ as spinner,s as tokens,v as tryAgainButton};
2
2
  //# sourceMappingURL=dropdown-list.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown-list.styles.js","sources":["../../../src/shared/dropdown-list/dropdown-list.styles.ts"],"sourcesContent":["import { css } from \"@linaria/core\";\n\nimport {\n Border,\n Breakpoint,\n Colour,\n Font,\n MediaQuery,\n Radius,\n Spacing,\n} from \"../../theme\";\nimport * as elementWithDropdownStyles from \"../dropdown-wrapper/element-with-dropdown.styles\";\n\nexport const tokens = {\n availableWidth: \"--fds-internal-dropdownList-container-availableWidth\",\n\n containerWidth: \"--fds-internal-dropdownList-containerWidth\",\n containerMinWidth: \"--fds-internal-dropdownList-containerMinWidth\",\n\n xSpacing: \"--fds-internal-dropdownList-container-xSpacing\",\n} as const;\n\n// -----------------------------------------------------------------------------\n// MAIN STYLES\n// -----------------------------------------------------------------------------\nexport const container = css`\n ${Font[\"body-baseline-regular\"]}\n border: ${Border[\"width-010\"]} ${Border[\"solid\"]} ${Colour[\"border\"]};\n border-radius: ${Radius[\"sm\"]};\n background: ${Colour[\"bg\"]};\n\n ${tokens.xSpacing}: 0px;\n ${elementWithDropdownStyles.tokens.availableHeight}: initial;\n ${tokens.availableWidth}: calc(\n 100vw - var(${tokens.xSpacing}) * 2\n );\n\n ${MediaQuery.MaxWidth.sm} {\n ${tokens.xSpacing}: ${Breakpoint[\"sm-margin\"]};\n max-height: 15rem;\n }\n\n ${MediaQuery.MaxWidth.xs} {\n ${tokens.xSpacing}: ${Breakpoint[\"xs-margin\"]};\n }\n\n ${MediaQuery.MaxWidth.xxs} {\n ${tokens.xSpacing}: ${Breakpoint[\"xxs-margin\"]};\n }\n\n max-width: var(${tokens.availableWidth});\n min-width: var(\n ${tokens.containerMinWidth},\n min(23rem, var(${tokens.availableWidth}))\n );\n width: var(${tokens.containerWidth});\n max-height: min(\n 27rem,\n var(${elementWithDropdownStyles.tokens.availableHeight}, 9999px)\n );\n overflow: hidden;\n overflow-y: auto;\n\n &::-webkit-scrollbar {\n width: 14px;\n }\n\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n &::-webkit-scrollbar-thumb {\n background: ${Colour[\"bg-inverse-subtlest\"]};\n border: 5px solid transparent;\n border-radius: ${Radius[\"full\"]};\n background-clip: padding-box;\n }\n`;\n\nexport const containerVariantSmall = css`\n ${Font[\"body-md-regular\"]}\n`;\n\nexport const list = css`\n background: transparent;\n padding: ${Spacing[\"spacing-8\"]};\n`;\n\n// -----------------------------------------------------------------------------\n// LIST ITEM STYLES\n// -----------------------------------------------------------------------------\nexport const listItem = css`\n display: flex;\n align-items: flex-start;\n gap: ${Spacing[\"spacing-8\"]};\n padding: ${Spacing[\"spacing-12\"]} ${Spacing[\"spacing-8\"]};\n cursor: pointer;\n border: none;\n border-radius: ${Radius[\"none\"]};\n outline: none;\n`;\n\nexport const listItemActive = css`\n background: ${Colour[\"bg-hover-subtle\"]};\n`;\n\nexport const listItemActiveSelected = css`\n background: ${Colour[\"bg-hover\"]};\n`;\n\nexport const listItemDisabled = css`\n cursor: not-allowed;\n`;\n\nexport const baseIndicatorStyle = css`\n flex-shrink: 0;\n height: 1lh;\n width: 1rem;\n`;\n\nexport const selectedIndicator = css`\n color: ${Colour[\"icon-selected\"]};\n`;\n\nexport const baseCheckboxIndicatorStyle = css`\n flex-shrink: 0;\n height: 1lh;\n width: 1lh;\n`;\n\nexport const checkboxSelectedIndicator = css`\n color: ${Colour[\"icon-selected\"]};\n`;\n\nexport const checkboxUnselectedIndicator = css`\n color: ${Colour[\"icon-primary-subtlest\"]};\n`;\n\nexport const checkboxDisabledIndicator = css`\n color: ${Colour[\"icon-disabled-subtle\"]};\n`;\n\n// -----------------------------------------------------------------------------\n// ELEMENT STYLES\n// -----------------------------------------------------------------------------\nexport const selectAllContainer = css`\n width: 100%;\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const baseButton = css`\n cursor: pointer;\n overflow: hidden;\n color: ${Colour[\"text-primary\"]};\n font-size: inherit;\n`;\n\nexport const selectAllButton = css`\n ${Font[\"body-md-semibold\"]}\n padding: ${Spacing[\"spacing-8\"]};\n`;\n\nexport const tryAgainButton = css`\n ${Font[\"body-baseline-semibold\"]}\n`;\n\nexport const resultStateContainer = css`\n width: 100%;\n display: flex;\n padding: ${Spacing[\"spacing-12\"]} ${Spacing[\"spacing-16\"]};\n align-items: center;\n color: ${Colour[\"text\"]};\n`;\n\nexport const labelIcon = css`\n margin-right: ${Spacing[\"spacing-4\"]};\n color: ${Colour[\"icon-error\"]};\n height: 1em;\n width: 1em;\n`;\n\nexport const spinner = css`\n margin-right: ${Spacing[\"spacing-8\"]};\n color: ${Colour[\"icon\"]};\n`;\n\nexport const noResultDescContainer = css`\n color: ${Colour[\"text-subtle\"]};\n padding: 0 ${Spacing[\"spacing-16\"]};\n padding-bottom: ${Spacing[\"spacing-12\"]};\n`;\n"],"names":["tokens","containerWidth","containerMinWidth","container","containerVariantSmall","list","listItem","listItemActive","listItemActiveSelected","listItemDisabled","baseIndicatorStyle","selectedIndicator","baseCheckboxIndicatorStyle","checkboxSelectedIndicator","checkboxUnselectedIndicator","checkboxDisabledIndicator","selectAllContainer","baseButton","selectAllButton","tryAgainButton","resultStateContainer","labelIcon","spinner","noResultDescContainer"],"mappings":"+EAaO,MAAMA,EAAS,CAGlBC,eAAgB,6CAChBC,kBAAmB,iDAQVC,EAAS,WAsDTC,EAAqB,UAIrBC,EAAI,UAQJC,EAAQ,UAWRC,EAAc,WAIdC,EAAsB,UAItBC,EAAgB,WAIhBC,EAAkB,UAMlBC,EAAiB,WAIjBC,EAA0B,UAM1BC,EAAyB,WAIzBC,EAA2B,UAI3BC,EAAyB,UAOzBC,EAAkB,WAMlBC,EAAU,UAOVC,EAAe,UAKfC,EAAc,WAIdC,EAAoB,UAQpBC,EAAS,UAOTC,EAAO,UAKPC,EAAqB"}
1
+ {"version":3,"file":"dropdown-list.styles.js","sources":["../../../src/shared/dropdown-list/dropdown-list.styles.ts"],"sourcesContent":["import { css } from \"@linaria/core\";\n\nimport {\n Border,\n Breakpoint,\n Colour,\n Font,\n MediaQuery,\n Radius,\n Spacing,\n} from \"../../theme\";\nimport * as elementWithDropdownStyles from \"../dropdown-wrapper/element-with-dropdown.styles\";\n\nexport type ContainerWidthType = \"default\" | \"custom\" | \"match\";\n\nexport const tokens = {\n availableWidth: \"--fds-internal-dropdownList-container-availableWidth\",\n containerWidth: \"--fds-internal-dropdownList-containerWidth\",\n xSpacing: \"--fds-internal-dropdownList-container-xSpacing\",\n} as const;\n\n// -----------------------------------------------------------------------------\n// MAIN STYLES\n// -----------------------------------------------------------------------------\nexport const container = css`\n ${Font[\"body-baseline-regular\"]}\n border: ${Border[\"width-010\"]} ${Border[\"solid\"]} ${Colour[\"border\"]};\n border-radius: ${Radius[\"sm\"]};\n background: ${Colour[\"bg\"]};\n\n ${tokens.xSpacing}: 0px;\n ${tokens.availableWidth}: calc(\n 100vw - var(${tokens.xSpacing}) * 2\n );\n\n ${MediaQuery.MaxWidth.sm} {\n ${tokens.xSpacing}: ${Breakpoint[\"sm-margin\"]};\n max-height: 15rem;\n }\n\n ${MediaQuery.MaxWidth.xs} {\n ${tokens.xSpacing}: ${Breakpoint[\"xs-margin\"]};\n }\n\n ${MediaQuery.MaxWidth.xxs} {\n ${tokens.xSpacing}: ${Breakpoint[\"xxs-margin\"]};\n }\n\n &[data-width-type=\"default\"] {\n min-width: min(23rem, var(${tokens.availableWidth}));\n }\n\n &[data-width-type=\"custom\"] {\n width: var(${tokens.containerWidth});\n }\n\n &[data-width-type=\"match\"] {\n width: var(${tokens.containerWidth});\n min-width: min(23rem, var(${tokens.availableWidth}));\n }\n\n max-height: min(\n 27rem,\n var(${elementWithDropdownStyles.tokens.availableHeight}, 9999px)\n );\n overflow: hidden;\n overflow-y: auto;\n\n &::-webkit-scrollbar {\n width: 14px;\n }\n\n &::-webkit-scrollbar-track {\n background: transparent;\n }\n\n &::-webkit-scrollbar-thumb {\n background: ${Colour[\"bg-inverse-subtlest\"]};\n border: 5px solid transparent;\n border-radius: ${Radius[\"full\"]};\n background-clip: padding-box;\n }\n`;\n\nexport const containerVariantSmall = css`\n ${Font[\"body-md-regular\"]}\n`;\n\nexport const list = css`\n background: transparent;\n padding: ${Spacing[\"spacing-8\"]};\n`;\n\n// -----------------------------------------------------------------------------\n// LIST ITEM STYLES\n// -----------------------------------------------------------------------------\nexport const listItem = css`\n display: flex;\n align-items: flex-start;\n gap: ${Spacing[\"spacing-8\"]};\n padding: ${Spacing[\"spacing-12\"]} ${Spacing[\"spacing-8\"]};\n cursor: pointer;\n border: none;\n border-radius: ${Radius[\"none\"]};\n outline: none;\n`;\n\nexport const listItemActive = css`\n background: ${Colour[\"bg-hover-subtle\"]};\n`;\n\nexport const listItemActiveSelected = css`\n background: ${Colour[\"bg-hover\"]};\n`;\n\nexport const listItemDisabled = css`\n cursor: not-allowed;\n`;\n\nexport const baseIndicatorStyle = css`\n flex-shrink: 0;\n height: 1lh;\n width: 1rem;\n`;\n\nexport const selectedIndicator = css`\n color: ${Colour[\"icon-selected\"]};\n`;\n\nexport const baseCheckboxIndicatorStyle = css`\n flex-shrink: 0;\n height: 1lh;\n width: 1lh;\n`;\n\nexport const checkboxSelectedIndicator = css`\n color: ${Colour[\"icon-selected\"]};\n`;\n\nexport const checkboxUnselectedIndicator = css`\n color: ${Colour[\"icon-primary-subtlest\"]};\n`;\n\nexport const checkboxDisabledIndicator = css`\n color: ${Colour[\"icon-disabled-subtle\"]};\n`;\n\n// -----------------------------------------------------------------------------\n// ELEMENT STYLES\n// -----------------------------------------------------------------------------\nexport const selectAllContainer = css`\n width: 100%;\n display: flex;\n justify-content: flex-end;\n`;\n\nexport const baseButton = css`\n cursor: pointer;\n overflow: hidden;\n color: ${Colour[\"text-primary\"]};\n font-size: inherit;\n`;\n\nexport const selectAllButton = css`\n ${Font[\"body-md-semibold\"]}\n padding: ${Spacing[\"spacing-8\"]};\n`;\n\nexport const tryAgainButton = css`\n ${Font[\"body-baseline-semibold\"]}\n`;\n\nexport const resultStateContainer = css`\n width: 100%;\n display: flex;\n padding: ${Spacing[\"spacing-12\"]} ${Spacing[\"spacing-16\"]};\n align-items: center;\n color: ${Colour[\"text\"]};\n`;\n\nexport const labelIcon = css`\n margin-right: ${Spacing[\"spacing-4\"]};\n color: ${Colour[\"icon-error\"]};\n height: 1em;\n width: 1em;\n`;\n\nexport const spinner = css`\n margin-right: ${Spacing[\"spacing-8\"]};\n color: ${Colour[\"icon\"]};\n`;\n\nexport const noResultDescContainer = css`\n color: ${Colour[\"text-subtle\"]};\n padding: 0 ${Spacing[\"spacing-16\"]};\n padding-bottom: ${Spacing[\"spacing-12\"]};\n`;\n"],"names":["tokens","containerWidth","container","containerVariantSmall","list","listItem","listItemActive","listItemActiveSelected","listItemDisabled","baseIndicatorStyle","selectedIndicator","baseCheckboxIndicatorStyle","checkboxSelectedIndicator","checkboxUnselectedIndicator","checkboxDisabledIndicator","selectAllContainer","baseButton","selectAllButton","tryAgainButton","resultStateContainer","labelIcon","spinner","noResultDescContainer"],"mappings":"+EAeO,MAAMA,EAAS,CAElBC,eAAgB,8CAOPC,EAAS,WA4DTC,EAAqB,UAIrBC,EAAI,UAQJC,EAAQ,UAWRC,EAAc,WAIdC,EAAsB,UAItBC,EAAgB,WAIhBC,EAAkB,UAMlBC,EAAiB,WAIjBC,EAA0B,UAM1BC,EAAyB,WAIzBC,EAA2B,UAI3BC,EAAyB,UAOzBC,EAAkB,WAMlBC,EAAU,UAOVC,EAAe,UAKfC,EAAc,WAIdC,EAAoB,UAQpBC,EAAS,UAOTC,EAAO,UAKPC,EAAqB"}
@@ -1,12 +1,9 @@
1
- .c1wprmqt{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);border:var(--fds-border-width-010) var(--fds-border-style-solid) var(--fds-colour-border);border-radius:var(--fds-radius-sm);background:var(--fds-colour-bg);--fds-internal-dropdownList-container-xSpacing:0px;--fds-internal-dropdownWrapper-availableHeight:initial;--fds-internal-dropdownList-container-availableWidth:calc(
1
+ .c1wprmqt{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);border:var(--fds-border-width-010) var(--fds-border-style-solid) var(--fds-colour-border);border-radius:var(--fds-radius-sm);background:var(--fds-colour-bg);--fds-internal-dropdownList-container-xSpacing:0px;--fds-internal-dropdownList-container-availableWidth:calc(
2
2
  100vw - var(--fds-internal-dropdownList-container-xSpacing) * 2
3
- );max-width:var(--fds-internal-dropdownList-container-availableWidth);min-width:var(
4
- --fds-internal-dropdownList-containerMinWidth,
5
- min(23rem, var(--fds-internal-dropdownList-container-availableWidth))
6
- );width:var(--fds-internal-dropdownList-containerWidth);max-height:min(
3
+ );max-height:min(
7
4
  27rem,
8
5
  var(--fds-internal-dropdownWrapper-availableHeight, 9999px)
9
- );overflow:hidden;overflow-y:auto;}:where(body.fds-breakpoint-sm-max) .c1wprmqt{--fds-internal-dropdownList-container-xSpacing:var(--fds-breakpoint-margin-sm);max-height:15rem;}:where(body.fds-breakpoint-xs-max) .c1wprmqt{--fds-internal-dropdownList-container-xSpacing:var(--fds-breakpoint-margin-xs);}:where(body.fds-breakpoint-xxs-max) .c1wprmqt{--fds-internal-dropdownList-container-xSpacing:var(--fds-breakpoint-margin-xxs);}.c1wprmqt::-webkit-scrollbar{width:14px;}.c1wprmqt::-webkit-scrollbar-track{background:transparent;}.c1wprmqt::-webkit-scrollbar-thumb{background:var(--fds-colour-bg-inverse-subtlest);border:5px solid transparent;border-radius:var(--fds-radius-full);-webkit-background-clip:padding-box;background-clip:padding-box;}
6
+ );overflow:hidden;overflow-y:auto;}:where(body.fds-breakpoint-sm-max) .c1wprmqt{--fds-internal-dropdownList-container-xSpacing:var(--fds-breakpoint-margin-sm);max-height:15rem;}:where(body.fds-breakpoint-xs-max) .c1wprmqt{--fds-internal-dropdownList-container-xSpacing:var(--fds-breakpoint-margin-xs);}:where(body.fds-breakpoint-xxs-max) .c1wprmqt{--fds-internal-dropdownList-container-xSpacing:var(--fds-breakpoint-margin-xxs);}.c1wprmqt[data-width-type="default"]{min-width:min(23rem, var(--fds-internal-dropdownList-container-availableWidth));}.c1wprmqt[data-width-type="custom"]{width:var(--fds-internal-dropdownList-containerWidth);}.c1wprmqt[data-width-type="match"]{width:var(--fds-internal-dropdownList-containerWidth);min-width:min(23rem, var(--fds-internal-dropdownList-container-availableWidth));}.c1wprmqt::-webkit-scrollbar{width:14px;}.c1wprmqt::-webkit-scrollbar-track{background:transparent;}.c1wprmqt::-webkit-scrollbar-thumb{background:var(--fds-colour-bg-inverse-subtlest);border:5px solid transparent;border-radius:var(--fds-radius-full);-webkit-background-clip:padding-box;background-clip:padding-box;}
10
7
  .cv4jfw8{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-regular);line-height:var(--fds-font-body-lh-md);letter-spacing:var(--fds-font-body-ls-md);}
11
8
  .llrkh2h{background:transparent;padding:var(--fds-spacing-8);}
12
9
  .lsgm7b1{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;gap:var(--fds-spacing-8);padding:var(--fds-spacing-12) var(--fds-spacing-8);cursor:pointer;border:none;border-radius:var(--fds-radius-none);outline:none;}
@@ -1,2 +1,2 @@
1
- import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{CaretRightIcon as s}from"@lifesg/react-icons/caret-right";import{ExclamationCircleFillIcon as i}from"@lifesg/react-icons/exclamation-circle-fill";import{MinusSquareFillIcon as n}from"@lifesg/react-icons/minus-square-fill";import{SquareIcon as o}from"@lifesg/react-icons/square";import{SquareTickFillIcon as l}from"@lifesg/react-icons/square-tick-fill";import{TickIcon as a}from"@lifesg/react-icons/tick";import c from"clsx";import{useState as d,useRef as m,useMemo as u,useEffect as p}from"react";import{Virtuoso as h}from"react-virtuoso";import{Markup as f}from"../../markup/markup.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{useApplyStyle as v}from"../../theme/utils/use-apply-styles.js";import"../../util/calendar-helper.js";import"../../external/dayjs/dayjs.min.js";import{mergeRefs as g}from"../../util/merge-refs.js";import"../../util/simple-id-generator.js";import"../../util/string-helper.js";import"@react-aria/live-announcer";import{useEvent as b}from"../../util/use-event.js";import{useEventListener as j}from"../../util/use-event-listener.js";import{useIsMounted as x}from"../../util/use-mount.js";import{ComponentLoadingSpinner as N}from"../component-loading-spinner/component-loading-spinner.js";import{useDropdownRender as y}from"../dropdown-wrapper/element-with-dropdown.js";import{BasicButton as k}from"../input-wrapper/input-wrapper.js";import{DropdownLabel as w}from"./dropdown-label.js";import{container as S,containerVariantSmall as I,list as P,selectAllContainer as C,baseButton as L,selectAllButton as D,resultStateContainer as T,labelIcon as A,noResultDescContainer as E,spinner as O,tryAgainButton as R,baseCheckboxIndicatorStyle as W,checkboxUnselectedIndicator as z,checkboxSelectedIndicator as q,baseIndicatorStyle as M,selectedIndicator as $,tokens as F}from"./dropdown-list.styles.js";import{DropdownSearch as B}from"./dropdown-search.js";import{indent as K,tokens as U,unexpandableIndicator as V,expandButton as _,expandButtonExpanded as G,listItem as H,listItemActive as J,listItemToggleable as Q,listItemContainer as X,listItemContainerHidden as Y,checkboxMixedIndicator as Z,selectionIndicator as ee,selectionIndicatorNested as te}from"./nested-dropdown-list.styles.js";import{flattenList as re,expandSelectedSubtrees as se,expandFirstSubtree as ie,updateSelectedState as ne,expandMatchedSubtrees as oe,findItemFromEnd as le,findItemFromStart as ae,toggleSubtree as ce}from"./nested-dropdown-list-helpers.js";import{VirtuosoItem as de,VirtuosoList as me}from"./virtuoso-components.js";const ue=({listItems:ue,multiSelect:pe=!1,selectedKeyPaths:he,itemsLoadState:fe="success",itemTruncationType:ve="end",itemMaxLines:ge=2,variant:be="default",listboxId:je,matchElementWidth:xe=!1,width:Ne,mode:ye="default",selectableCategory:ke,onSelectItem:we,onSelectAll:Se,onRetry:Ie,enableSearch:Pe,hideNoResultsDisplay:Ce,noResultsDescription:Le,customLabels:De,searchPlaceholder:Te,onSearch:Ae})=>{const{noResultsLabel:Ee="No results found.",selectAllButtonLabel:Oe="Select all",clearAllButtonLabel:Re="Clear all"}=De||{},We=(null==De?void 0:De.searchPlaceholder)||Te||"Search",ze=(null==De?void 0:De.noResultsDescription)||Le,qe=pe||ke,{elementWidth:Me,setFloatingRef:$e,getFloatingProps:Fe,styles:Be}=y(),[Ke,Ue]=d(""),Ve=Ke.toLowerCase().trim(),[_e,Ge]=d(!1),He=m(null),Je=m([]),Qe=m(null),Xe=x(),[Ye,Ze]=d([]),[et,tt]=d([]),rt=_e?et:Ye,st=u((()=>{let e=0;for(const t of Ye)t.level>e&&(e=t.level);return e}),[Ye]),[it,nt]=d(0),[ot,lt]=d([]),[at,ct]=d(0);let dt={};Ne?dt={[F.containerWidth]:`${Ne}px`,[F.containerMinWidth]:"0px"}:xe&&Me&&(dt={[F.containerWidth]:`${Me}px`,[F.containerMinWidth]:`${Me}px`});const mt=e=>{const t=e.target.value;Ue(t),""===t?Ge(!1):t.trim().length>=3&&Ge(!0),null==Ae||Ae()},ut=()=>{var e;Ue(""),Ge(!1),null===(e=Qe.current)||void 0===e||e.focus(),null==Ae||Ae()},pt=()=>{null==Ie||Ie()},ht=()=>{if(0===he.size){const e=[],t=[];Ye.forEach((r=>{r.hasSubItems||(e.push(r.keyPath),t.push(r))})),null==Se||Se(e,t)}else null==Se||Se([],[])},ft=b(((e,t)=>re(e,he,pe,Ve,t))),vt=b((e=>he.size?se(ft(e,!1)):ie(ft(e,!1)))),gt=b((e=>{const t=e=>{const r=[];for(const s of e){if(-1!==s.label.toLowerCase().indexOf(Ve))r.push(s);else if(s.subItems){const e=t(s.subItems);if(e.length>0){r.push(Object.assign(Object.assign({},s),{subItems:e}));continue}}}return r};return t(e)})),bt=b((()=>{Ze((e=>ne(e,he,pe))),_e&&tt((e=>ne(e,he,pe)))})),jt=(e,t,r)=>{const s=ce(rt,e,t);nt(e),ct(r),_e?tt(s):Ze(s)};j("keydown",(e=>{var t,r;switch(e.code){case"ArrowDown":{e.preventDefault();const r=ae(rt,(e=>e.visible),it+1);r&&(ct((e=>e+1)),nt(r.index),null===(t=Je.current[r.index])||void 0===t||t.focus());break}case"ArrowUp":{e.preventDefault();const t=le(rt,(e=>e.visible),it-1);t?(ct((e=>e-1)),nt(t.index),null===(r=Je.current[t.index])||void 0===r||r.focus()):0===at&&Qe.current&&(Qe.current.focus(),ct(-1),nt(-1));break}case"ArrowRight":e.preventDefault(),jt(it,!0,at);break;case"ArrowLeft":e.preventDefault(),jt(it,!1,at);break;case"Space":if(document.activeElement===Je.current[it]){e.preventDefault();const t=rt[it];if(t.hasSubItems&&!qe)return;null==we||we(t)}}})),p((()=>{let e=[];"default"===ye?e=vt(ue):"expand"===ye?e=ft(ue,!0):"collapse"===ye&&(e=ft(ue,!1)),Ze(e)}),[ft,vt,ue,ye]),p((()=>{lt(rt.filter((e=>e.visible)))}),[_e,rt]),p((()=>{bt()}),[pe,he,bt]),p((()=>{if(_e&&Ke.trim().length>=3){const e=gt(ue),t=oe(ft(e,!1));tt(t)}}),[gt,ft,ue,_e,Ke]),p((()=>{Xe||(Qe.current?(nt(-1),ct(-1),setTimeout((()=>{var e;return null===(e=Qe.current)||void 0===e?void 0:e.focus()}),200)):Je.current[it]?setTimeout((()=>{var e;return null===(e=Je.current[it])||void 0===e?void 0:e.focus()}),200):(nt(0),ct(0),setTimeout((()=>{var e;return null===(e=Je.current[0])||void 0===e?void 0:e.focus()}),200)))}),[it,at,Xe]),v(He,Object.assign({},dt));const xt=()=>{if(Pe&&"success"===fe)return e(B,{ref:Qe,onChange:mt,value:Ke,placeholder:We,"data-testid":"search-input","aria-label":"Enter text to search",onClear:ut,variant:be})},Nt=()=>{if(pe&&!_e&&Ye.length>0&&"success"===fe)return e("div",{className:C,children:e(k,{onClick:ht,type:"button",className:c(L,D),children:0===he.size?Oe:Re})})},yt=()=>{if(!Ce&&_e&&0===et.length&&"success"===fe)return t(r,{children:[t("div",{"data-testid":"list-no-results",className:T,children:[e(i,{"data-testid":"no-result-icon",className:A}),Ee]}),ze&&e(f,{"data-testid":"no-result-desc",className:E,children:ze})]})},kt=()=>{if(Ie&&"loading"===fe)return t("div",{"data-testid":"list-loading",className:T,children:[e(N,{className:O}),"Loading..."]})},wt=()=>{if(Ie&&"fail"===fe)return t("div",{"data-testid":"list-fail",className:T,children:[e(i,{"data-testid":"load-error-icon",className:A}),"Failed to load. ",e(k,{onClick:pt,type:"button",className:c(L,R),children:"Try again."})]})},St=t=>{if(pe)switch(t.checked){case"mixed":return e(n,{"aria-hidden":!0,className:Z});case!0:return e(l,{"aria-hidden":!0,className:c(W,q)});default:return e(o,{"aria-hidden":!0,className:c(W,z)})}if(!t.hasSubItems)return e("div",{className:c(ee,(t.hasNestedSiblings||0===t.level)&&te),children:t.checked&&e(a,{"aria-hidden":!0,className:c(M,$)})})},It=(r,i)=>{const{level:n,visible:o,expanded:l,keyPath:a,checked:d,hasSubItems:m,indexInParent:u,parentSetSize:p}=r,h=r.index,f=at===i,v=m&&!qe;return t("li",{role:"none",className:c(X,!o&&Y),children:[st>0&&e("div",{className:K,ref:e=>{e&&e.style.setProperty(U.level,String(n))}}),st>0&&!m&&pe&&e("div",{className:V}),t("div",{"aria-checked":d,"aria-selected":!!d,"aria-expanded":m?l:void 0,"aria-level":n+1,"aria-posinset":u+1,"aria-setsize":p,"data-testid":"list-item",onClick:e=>{e.stopPropagation(),v?jt(h,!l,i):((e,t)=>{ct(t),nt(e),null==we||we(rt[e])})(h,i)},onMouseEnter:()=>((e,t)=>{nt(t.index),ct(e)})(i,r),ref:e=>Je.current[r.index]=e,role:"treeitem",tabIndex:f?0:-1,className:c(H,f&&J,v&&Q),children:[m&&e("div",{"data-testid":"toggle-category-button",onClick:e=>{e.stopPropagation(),jt(h,!l,i)},className:c(_,l&&G),"aria-hidden":!0,children:e(s,{})}),St(r),e(w,{bold:m,searchTerm:_e?Ve:void 0,label:r.item.label,selected:!!d,truncationType:ve,maxLines:ge})]})]},`[${a.join("---")}]`)},Pt=()=>{var t;const r="test"===process.env.NODE_ENV;return e(h,Object.assign({style:{height:"100%"},customScrollParent:null!==(t=He.current)&&void 0!==t?t:void 0,data:ot,itemContent:(e,t)=>It(t,e),components:{List:me,Item:de},context:{listProps:{id:je,role:"tree","aria-multiselectable":pe},listItemProps:{role:"none"}}},r?{initialItemCount:ot.length}:{}),r?ot.length:void 0)};return e("div",Object.assign({"data-testid":"dropdown-container",ref:g(He,$e)},Fe(),{className:c(S,"small"===be&&I),style:Be,children:t("div",{"data-testid":"nested-dropdown-list",className:P,children:[xt(),Nt(),yt(),kt(),wt(),Pt()]})}))};export{ue as NestedDropdownList};
1
+ import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{CaretRightIcon as s}from"@lifesg/react-icons/caret-right";import{ExclamationCircleFillIcon as i}from"@lifesg/react-icons/exclamation-circle-fill";import{MinusSquareFillIcon as o}from"@lifesg/react-icons/minus-square-fill";import{SquareIcon as l}from"@lifesg/react-icons/square";import{SquareTickFillIcon as n}from"@lifesg/react-icons/square-tick-fill";import{TickIcon as a}from"@lifesg/react-icons/tick";import c from"clsx";import{useState as d,useRef as m,useMemo as u,useEffect as p}from"react";import{Virtuoso as h}from"react-virtuoso";import{Markup as f}from"../../markup/markup.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{useApplyStyle as v}from"../../theme/utils/use-apply-styles.js";import"../../theme/utils/use-media-query.js";import"../../util/calendar-helper.js";import"../../external/dayjs/dayjs.min.js";import{mergeRefs as g}from"../../util/merge-refs.js";import"../../util/simple-id-generator.js";import"../../util/string-helper.js";import"@react-aria/live-announcer";import{useEvent as b}from"../../util/use-event.js";import{useEventListener as j}from"../../util/use-event-listener.js";import{useIsMounted as x}from"../../util/use-mount.js";import{ComponentLoadingSpinner as y}from"../component-loading-spinner/component-loading-spinner.js";import{useDropdownRender as N}from"../dropdown-wrapper/element-with-dropdown.js";import{BasicButton as w}from"../input-wrapper/input-wrapper.js";import{DropdownLabel as k}from"./dropdown-label.js";import{tokens as S,container as I,containerVariantSmall as P,list as C,selectAllContainer as L,baseButton as D,selectAllButton as T,resultStateContainer as A,labelIcon as E,noResultDescContainer as R,spinner as O,tryAgainButton as q,baseCheckboxIndicatorStyle as z,checkboxUnselectedIndicator as F,checkboxSelectedIndicator as W,baseIndicatorStyle as B,selectedIndicator as M}from"./dropdown-list.styles.js";import{DropdownSearch as $}from"./dropdown-search.js";import{indent as K,tokens as U,unexpandableIndicator as V,expandButton as _,expandButtonExpanded as G,listItem as H,listItemActive as J,listItemToggleable as Q,listItemContainer as X,listItemContainerHidden as Y,checkboxMixedIndicator as Z,selectionIndicator as ee,selectionIndicatorNested as te}from"./nested-dropdown-list.styles.js";import{flattenList as re,expandSelectedSubtrees as se,expandFirstSubtree as ie,updateSelectedState as oe,expandMatchedSubtrees as le,findItemFromEnd as ne,findItemFromStart as ae,toggleSubtree as ce}from"./nested-dropdown-list-helpers.js";import{VirtuosoItem as de,VirtuosoList as me}from"./virtuoso-components.js";const ue=({listItems:ue,multiSelect:pe=!1,selectedKeyPaths:he,itemsLoadState:fe="success",itemTruncationType:ve="end",itemMaxLines:ge=2,variant:be="default",listboxId:je,matchElementWidth:xe=!1,width:ye,mode:Ne="default",selectableCategory:we,onSelectItem:ke,onSelectAll:Se,onRetry:Ie,enableSearch:Pe,hideNoResultsDisplay:Ce,noResultsDescription:Le,customLabels:De,searchPlaceholder:Te,onSearch:Ae})=>{const{noResultsLabel:Ee="No results found.",selectAllButtonLabel:Re="Select all",clearAllButtonLabel:Oe="Clear all"}=De||{},qe=(null==De?void 0:De.searchPlaceholder)||Te||"Search",ze=(null==De?void 0:De.noResultsDescription)||Le,Fe=pe||we,{elementWidth:We,setFloatingRef:Be,getFloatingProps:Me,styles:$e}=N(),[Ke,Ue]=d(""),Ve=Ke.toLowerCase().trim(),[_e,Ge]=d(!1),He=m(null),Je=m([]),Qe=m(null),Xe=x(),[Ye,Ze]=d([]),[et,tt]=d([]),rt=_e?et:Ye,st=u((()=>{let e=0;for(const t of Ye)t.level>e&&(e=t.level);return e}),[Ye]),[it,ot]=d(0),[lt,nt]=d([]),[at,ct]=d(0);let dt,mt="default";ye?(dt=ye,mt="custom"):xe&&We&&(dt=`${We}px`,mt="match"),v(He,{[S.containerWidth]:dt});const ut=e=>{const t=e.target.value;Ue(t),""===t?Ge(!1):t.trim().length>=3&&Ge(!0),null==Ae||Ae()},pt=()=>{var e;Ue(""),Ge(!1),null===(e=Qe.current)||void 0===e||e.focus(),null==Ae||Ae()},ht=()=>{null==Ie||Ie()},ft=()=>{if(0===he.size){const e=[],t=[];Ye.forEach((r=>{r.hasSubItems||(e.push(r.keyPath),t.push(r))})),null==Se||Se(e,t)}else null==Se||Se([],[])},vt=b(((e,t)=>re(e,he,pe,Ve,t))),gt=b((e=>he.size?se(vt(e,!1)):ie(vt(e,!1)))),bt=b((e=>{const t=e=>{const r=[];for(const s of e){if(-1!==s.label.toLowerCase().indexOf(Ve))r.push(s);else if(s.subItems){const e=t(s.subItems);if(e.length>0){r.push(Object.assign(Object.assign({},s),{subItems:e}));continue}}}return r};return t(e)})),jt=b((()=>{Ze((e=>oe(e,he,pe))),_e&&tt((e=>oe(e,he,pe)))})),xt=(e,t,r)=>{const s=ce(rt,e,t);ot(e),ct(r),_e?tt(s):Ze(s)};j("keydown",(e=>{var t,r;switch(e.code){case"ArrowDown":{e.preventDefault();const r=ae(rt,(e=>e.visible),it+1);r&&(ct((e=>e+1)),ot(r.index),null===(t=Je.current[r.index])||void 0===t||t.focus());break}case"ArrowUp":{e.preventDefault();const t=ne(rt,(e=>e.visible),it-1);t?(ct((e=>e-1)),ot(t.index),null===(r=Je.current[t.index])||void 0===r||r.focus()):0===at&&Qe.current&&(Qe.current.focus(),ct(-1),ot(-1));break}case"ArrowRight":e.preventDefault(),xt(it,!0,at);break;case"ArrowLeft":e.preventDefault(),xt(it,!1,at);break;case"Space":if(document.activeElement===Je.current[it]){e.preventDefault();const t=rt[it];if(t.hasSubItems&&!Fe)return;null==ke||ke(t)}}})),p((()=>{let e=[];"default"===Ne?e=gt(ue):"expand"===Ne?e=vt(ue,!0):"collapse"===Ne&&(e=vt(ue,!1)),Ze(e)}),[vt,gt,ue,Ne]),p((()=>{nt(rt.filter((e=>e.visible)))}),[_e,rt]),p((()=>{jt()}),[pe,he,jt]),p((()=>{if(_e&&Ke.trim().length>=3){const e=bt(ue),t=le(vt(e,!1));tt(t)}}),[bt,vt,ue,_e,Ke]),p((()=>{Xe||(Qe.current?(ot(-1),ct(-1),setTimeout((()=>{var e;return null===(e=Qe.current)||void 0===e?void 0:e.focus()}),200)):Je.current[it]?setTimeout((()=>{var e;return null===(e=Je.current[it])||void 0===e?void 0:e.focus()}),200):(ot(0),ct(0),setTimeout((()=>{var e;return null===(e=Je.current[0])||void 0===e?void 0:e.focus()}),200)))}),[it,at,Xe]);const yt=()=>{if(Pe&&"success"===fe)return e($,{ref:Qe,onChange:ut,value:Ke,placeholder:qe,"data-testid":"search-input","aria-label":"Enter text to search",onClear:pt,variant:be})},Nt=()=>{if(pe&&!_e&&Ye.length>0&&"success"===fe)return e("div",{className:L,children:e(w,{onClick:ft,type:"button",className:c(D,T),children:0===he.size?Re:Oe})})},wt=()=>{if(!Ce&&_e&&0===et.length&&"success"===fe)return t(r,{children:[t("div",{"data-testid":"list-no-results",className:A,children:[e(i,{"data-testid":"no-result-icon",className:E}),Ee]}),ze&&e(f,{"data-testid":"no-result-desc",className:R,children:ze})]})},kt=()=>{if(Ie&&"loading"===fe)return t("div",{"data-testid":"list-loading",className:A,children:[e(y,{className:O}),"Loading..."]})},St=()=>{if(Ie&&"fail"===fe)return t("div",{"data-testid":"list-fail",className:A,children:[e(i,{"data-testid":"load-error-icon",className:E}),"Failed to load. ",e(w,{onClick:ht,type:"button",className:c(D,q),children:"Try again."})]})},It=t=>{if(pe)switch(t.checked){case"mixed":return e(o,{"aria-hidden":!0,className:Z});case!0:return e(n,{"aria-hidden":!0,className:c(z,W)});default:return e(l,{"aria-hidden":!0,className:c(z,F)})}if(!t.hasSubItems)return e("div",{className:c(ee,(t.hasNestedSiblings||0===t.level)&&te),children:t.checked&&e(a,{"aria-hidden":!0,className:c(B,M)})})},Pt=(r,i)=>{const{level:o,visible:l,expanded:n,keyPath:a,checked:d,hasSubItems:m,indexInParent:u,parentSetSize:p}=r,h=r.index,f=at===i,v=m&&!Fe;return t("li",{role:"none",className:c(X,!l&&Y),children:[st>0&&e("div",{className:K,ref:e=>{e&&e.style.setProperty(U.level,String(o))}}),st>0&&!m&&pe&&e("div",{className:V}),t("div",{"aria-checked":d,"aria-selected":!!d,"aria-expanded":m?n:void 0,"aria-level":o+1,"aria-posinset":u+1,"aria-setsize":p,"data-testid":"list-item",onClick:e=>{e.stopPropagation(),v?xt(h,!n,i):((e,t)=>{ct(t),ot(e),null==ke||ke(rt[e])})(h,i)},onMouseEnter:()=>((e,t)=>{ot(t.index),ct(e)})(i,r),ref:e=>Je.current[r.index]=e,role:"treeitem",tabIndex:f?0:-1,className:c(H,f&&J,v&&Q),children:[m&&e("div",{"data-testid":"toggle-category-button",onClick:e=>{e.stopPropagation(),xt(h,!n,i)},className:c(_,n&&G),"aria-hidden":!0,children:e(s,{})}),It(r),e(k,{bold:m,searchTerm:_e?Ve:void 0,label:r.item.label,selected:!!d,truncationType:ve,maxLines:ge})]})]},`[${a.join("---")}]`)},Ct=()=>{var t;const r="test"===process.env.NODE_ENV;return e(h,Object.assign({style:{height:"100%"},customScrollParent:null!==(t=He.current)&&void 0!==t?t:void 0,data:lt,itemContent:(e,t)=>Pt(t,e),components:{List:me,Item:de},context:{listProps:{id:je,role:"tree","aria-multiselectable":pe},listItemProps:{role:"none"}}},r?{initialItemCount:lt.length}:{}),r?lt.length:void 0)};return e("div",Object.assign({"data-testid":"dropdown-container",ref:g(He,Be)},Me(),{"data-width-type":mt,className:c(I,"small"===be&&P),style:$e,children:t("div",{"data-testid":"nested-dropdown-list",className:C,children:[yt(),Nt(),wt(),kt(),St(),Ct()]})}))};export{ue as NestedDropdownList};
2
2
  //# sourceMappingURL=nested-dropdown-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nested-dropdown-list.js","sources":["../../../src/shared/dropdown-list/nested-dropdown-list.tsx"],"sourcesContent":["import { CaretRightIcon } from \"@lifesg/react-icons/caret-right\";\nimport { ExclamationCircleFillIcon } from \"@lifesg/react-icons/exclamation-circle-fill\";\nimport { MinusSquareFillIcon } from \"@lifesg/react-icons/minus-square-fill\";\nimport { SquareIcon } from \"@lifesg/react-icons/square\";\nimport { SquareTickFillIcon } from \"@lifesg/react-icons/square-tick-fill\";\nimport { TickIcon } from \"@lifesg/react-icons/tick\";\nimport clsx from \"clsx\";\nimport type React from \"react\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { Virtuoso } from \"react-virtuoso\";\n\nimport { Markup } from \"../../markup\";\nimport { useApplyStyle } from \"../../theme\";\nimport {\n mergeRefs,\n useEvent,\n useEventListener,\n useIsMounted,\n} from \"../../util\";\nimport { ComponentLoadingSpinner } from \"../component-loading-spinner\";\nimport { useDropdownRender } from \"../dropdown-wrapper\";\nimport { BasicButton } from \"../input-wrapper\";\nimport { DropdownLabel } from \"./dropdown-label\";\nimport * as styles from \"./dropdown-list.styles\";\nimport { DropdownSearch } from \"./dropdown-search\";\nimport * as nestedStyles from \"./nested-dropdown-list.styles\";\nimport {\n expandFirstSubtree,\n expandMatchedSubtrees,\n expandSelectedSubtrees,\n findItemFromEnd,\n findItemFromStart,\n flattenList,\n toggleSubtree,\n updateSelectedState,\n} from \"./nested-dropdown-list-helpers\";\nimport type {\n NestedDropdownListItemProps,\n NestedDropdownListLocalItem,\n NestedDropdownListProps,\n} from \"./types\";\nimport { VirtuosoItem, VirtuosoList } from \"./virtuoso-components\";\n\nexport const NestedDropdownList = <T,>({\n listItems,\n multiSelect = false,\n selectedKeyPaths,\n itemsLoadState = \"success\",\n itemTruncationType = \"end\",\n itemMaxLines = 2,\n variant = \"default\",\n listboxId,\n matchElementWidth = false,\n width,\n mode = \"default\",\n selectableCategory: _selectableCategory,\n onSelectItem,\n onSelectAll,\n onRetry,\n /* DropdownSearchProps */\n enableSearch,\n hideNoResultsDisplay,\n noResultsDescription: _noResultsDescription,\n customLabels,\n searchPlaceholder: _searchPlaceholder,\n onSearch,\n}: NestedDropdownListProps<T>) => {\n // =========================================================================\n // CONST, STATE, REF\n // =========================================================================\n const {\n noResultsLabel = \"No results found.\",\n selectAllButtonLabel = \"Select all\",\n clearAllButtonLabel = \"Clear all\",\n } = customLabels || {};\n const searchPlaceholder =\n customLabels?.searchPlaceholder || _searchPlaceholder || \"Search\";\n const noResultsDescription =\n customLabels?.noResultsDescription || _noResultsDescription;\n const selectableCategory = multiSelect || _selectableCategory;\n\n const {\n elementWidth,\n setFloatingRef,\n getFloatingProps,\n styles: floatingStyles,\n } = useDropdownRender();\n const [searchValue, setSearchValue] = useState<string>(\"\");\n const searchTerm = searchValue.toLowerCase().trim();\n const [searchActive, setSearchActive] = useState<boolean>(false);\n const nodeRef = useRef<HTMLDivElement>(null);\n const listItemRefs = useRef<(HTMLElement | null)[]>([]);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const mounted = useIsMounted();\n\n // maintaining a separate list for search and non-search as we need to\n // preserve the original expanded state\n const [unfilteredListItems, setUnfilteredListItems] = useState<\n NestedDropdownListLocalItem<T>[]\n >([]);\n const [filteredListItems, setFilteredListItems] = useState<\n NestedDropdownListLocalItem<T>[]\n >([]);\n\n const activeList = searchActive ? filteredListItems : unfilteredListItems;\n\n const maxLevel = useMemo(() => {\n let currentMaxLevel = 0;\n for (const item of unfilteredListItems) {\n if (item.level > currentMaxLevel) {\n currentMaxLevel = item.level;\n }\n }\n return currentMaxLevel;\n }, [unfilteredListItems]);\n\n // TODO: persist in context?\n const [focusedIndex, setFocusedIndex] = useState(0);\n\n /**\n * NOTE: Keeping track of the visible items to pass to Virtuoso for virtualisation to work.\n * This is required due to the nature of show/hide sub-items, to omit them from the DOM entirely.\n */\n const [visibleItems, setVisibleItems] = useState<\n NestedDropdownListLocalItem<T>[]\n >([]);\n\n // NOTE: Maintaining a separate index for UI to keep track on which item (in terms of Virtuoso's indexing) is currently focused on keyboard press events.\n const [virtuosoIndex, setVirtuosoIndex] = useState(0);\n\n let containerWidthStyle = {};\n if (width) {\n containerWidthStyle = {\n [styles.tokens.containerWidth]: `${width}px`,\n [styles.tokens.containerMinWidth]: `0px`,\n };\n } else if (matchElementWidth && elementWidth) {\n containerWidthStyle = {\n [styles.tokens.containerWidth]: `${elementWidth}px`,\n [styles.tokens.containerMinWidth]: `${elementWidth}px`,\n };\n }\n\n // =========================================================================\n // EVENT HANDLERS\n // =========================================================================\n const handleKeyboardPress = (event: KeyboardEvent) => {\n /**\n * NOTE: When navigating up/down the list using keyboard, need to use virtuoso index, when expanding/collapsing, need actual index as we need to toggle the visible state of the sub-items\n */\n switch (event.code) {\n case \"ArrowDown\": {\n event.preventDefault();\n const upcomingItem = findItemFromStart(\n activeList,\n (item) => item.visible,\n focusedIndex + 1\n );\n if (upcomingItem) {\n setVirtuosoIndex((vIndex) => vIndex + 1);\n setFocusedIndex(upcomingItem.index);\n listItemRefs.current[upcomingItem.index]?.focus();\n }\n break;\n }\n case \"ArrowUp\": {\n event.preventDefault();\n const upcomingItem = findItemFromEnd(\n activeList,\n (item) => item.visible,\n focusedIndex - 1\n );\n if (upcomingItem) {\n setVirtuosoIndex((vIndex) => vIndex - 1);\n setFocusedIndex(upcomingItem.index);\n listItemRefs.current[upcomingItem.index]?.focus();\n } else if (virtuosoIndex === 0 && searchInputRef.current) {\n searchInputRef.current.focus();\n setVirtuosoIndex(-1);\n setFocusedIndex(-1);\n }\n break;\n }\n case \"ArrowRight\": {\n event.preventDefault();\n toggleCategory(focusedIndex, true, virtuosoIndex);\n break;\n }\n case \"ArrowLeft\": {\n event.preventDefault();\n toggleCategory(focusedIndex, false, virtuosoIndex);\n break;\n }\n case \"Space\": {\n if (\n document.activeElement ===\n listItemRefs.current[focusedIndex]\n ) {\n event.preventDefault();\n const target = activeList[focusedIndex];\n if (target.hasSubItems && !selectableCategory) {\n return;\n }\n onSelectItem?.(target);\n }\n break;\n }\n }\n };\n\n const handleSearchInputChange = (\n event: React.ChangeEvent<HTMLInputElement>\n ) => {\n const value = event.target.value;\n setSearchValue(value);\n\n if (value === \"\") {\n setSearchActive(false);\n } else if (value.trim().length >= 3) {\n setSearchActive(true);\n }\n\n onSearch?.();\n };\n\n const handleOnClear = () => {\n setSearchValue(\"\");\n setSearchActive(false);\n searchInputRef.current?.focus();\n\n onSearch?.();\n };\n\n const handleTryAgain = () => {\n onRetry?.();\n };\n\n const handleListItemClick = (itemIndex: number, vIndex: number) => {\n setVirtuosoIndex(vIndex);\n setFocusedIndex(itemIndex);\n onSelectItem?.(activeList[itemIndex]);\n };\n\n const handleListItemHover = (\n virtuosoIndex: number,\n listItem: NestedDropdownListLocalItem<T>\n ) => {\n setFocusedIndex(listItem.index);\n setVirtuosoIndex(virtuosoIndex);\n };\n\n const handleOnSelectAll = () => {\n if (selectedKeyPaths.size === 0) {\n const keyPaths: string[][] = [];\n const items: NestedDropdownListLocalItem<T>[] = [];\n unfilteredListItems.forEach((item) => {\n if (item.hasSubItems) {\n return;\n }\n keyPaths.push(item.keyPath);\n items.push(item);\n });\n\n onSelectAll?.(keyPaths, items);\n } else {\n onSelectAll?.([], []);\n }\n };\n\n // =========================================================================\n // HELPER FUNCTIONS\n // =========================================================================\n const flatten = useEvent(\n (\n nestedList: NestedDropdownListItemProps<T>[],\n initialExpanded: boolean\n ): NestedDropdownListLocalItem<T>[] => {\n return flattenList(\n nestedList,\n selectedKeyPaths,\n multiSelect,\n searchTerm,\n initialExpanded\n );\n }\n );\n\n const flattenDefaultMode = useEvent(\n (nestedList: NestedDropdownListItemProps<T>[]) => {\n if (selectedKeyPaths.size) {\n return expandSelectedSubtrees(flatten(nestedList, false));\n } else {\n return expandFirstSubtree(flatten(nestedList, false));\n }\n }\n );\n\n const filter = useEvent((nestedList: NestedDropdownListItemProps<T>[]) => {\n const filterMatchedItems = (list: NestedDropdownListItemProps<T>[]) => {\n const matchedItems: NestedDropdownListItemProps<T>[] = [];\n for (const item of list) {\n const match =\n item.label.toLowerCase().indexOf(searchTerm) !== -1;\n\n if (match) {\n matchedItems.push(item);\n continue;\n }\n\n if (item.subItems) {\n const matchedSubItems = filterMatchedItems(item.subItems);\n if (matchedSubItems.length > 0) {\n matchedItems.push({\n ...item,\n subItems: matchedSubItems,\n });\n continue;\n }\n }\n }\n return matchedItems;\n };\n return filterMatchedItems(nestedList);\n });\n\n const updateSelectedItemsInList = useEvent(() => {\n setUnfilteredListItems((unfilteredListItems) =>\n updateSelectedState(\n unfilteredListItems,\n selectedKeyPaths,\n multiSelect\n )\n );\n\n if (searchActive) {\n setFilteredListItems((filteredListItems) =>\n updateSelectedState(\n filteredListItems,\n selectedKeyPaths,\n multiSelect\n )\n );\n }\n });\n\n const toggleCategory = (\n index: number,\n nextExpanded: boolean,\n virtuosoIndex: number\n ) => {\n const list = toggleSubtree(activeList, index, nextExpanded);\n setFocusedIndex(index);\n setVirtuosoIndex(virtuosoIndex);\n if (searchActive) {\n setFilteredListItems(list);\n } else {\n setUnfilteredListItems(list);\n }\n };\n\n // =========================================================================\n // EFFECTS\n // =========================================================================\n useEventListener(\"keydown\", handleKeyboardPress);\n\n useEffect(() => {\n let list: NestedDropdownListLocalItem<T>[] = [];\n if (mode === \"default\") {\n list = flattenDefaultMode(listItems);\n } else if (mode === \"expand\") {\n list = flatten(listItems, true);\n } else if (mode === \"collapse\") {\n list = flatten(listItems, false);\n }\n setUnfilteredListItems(list);\n }, [flatten, flattenDefaultMode, listItems, mode]);\n\n useEffect(() => {\n // Filter out non-visible items before passing to Virtuoso\n setVisibleItems(activeList.filter((item) => item.visible));\n }, [searchActive, activeList]);\n\n useEffect(() => {\n updateSelectedItemsInList();\n }, [multiSelect, selectedKeyPaths, updateSelectedItemsInList]);\n\n useEffect(() => {\n if (searchActive && searchValue.trim().length >= 3) {\n const filteredListItems = filter(listItems);\n const list = expandMatchedSubtrees(\n flatten(filteredListItems, false)\n );\n\n setFilteredListItems(list);\n }\n }, [filter, flatten, listItems, searchActive, searchValue]);\n\n useEffect(() => {\n if (mounted) {\n // only run on mount\n return;\n }\n\n // Focus search input if there is one\n if (searchInputRef.current) {\n setFocusedIndex(-1);\n setVirtuosoIndex(-1);\n setTimeout(() => searchInputRef.current?.focus(), 200); // wait for animation\n } else if (listItemRefs.current[focusedIndex]) {\n // Else focus on the specified element\n setTimeout(() => listItemRefs.current[focusedIndex]?.focus(), 200);\n } else {\n // Else focus on the first list item\n setFocusedIndex(0);\n setVirtuosoIndex(0);\n setTimeout(() => listItemRefs.current[0]?.focus(), 200);\n }\n }, [focusedIndex, virtuosoIndex, mounted]);\n\n // =========================================================================\n // APPLY STYLE\n // =========================================================================\n\n useApplyStyle(nodeRef, {\n ...containerWidthStyle,\n });\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n const renderSearchInput = () => {\n if (enableSearch && itemsLoadState === \"success\") {\n return (\n <DropdownSearch\n ref={searchInputRef}\n onChange={handleSearchInputChange}\n value={searchValue}\n placeholder={searchPlaceholder}\n data-testid=\"search-input\"\n aria-label=\"Enter text to search\"\n onClear={handleOnClear}\n variant={variant}\n />\n );\n }\n };\n\n const renderSelectAll = () => {\n if (\n multiSelect &&\n !searchActive &&\n unfilteredListItems.length > 0 &&\n itemsLoadState === \"success\"\n ) {\n return (\n <div className={styles.selectAllContainer}>\n <BasicButton\n onClick={handleOnSelectAll}\n type=\"button\"\n className={clsx(\n styles.baseButton,\n styles.selectAllButton\n )}\n >\n {selectedKeyPaths.size === 0\n ? selectAllButtonLabel\n : clearAllButtonLabel}\n </BasicButton>\n </div>\n );\n }\n };\n\n const renderNoResults = () => {\n if (\n !hideNoResultsDisplay &&\n searchActive &&\n filteredListItems.length === 0 &&\n itemsLoadState === \"success\"\n ) {\n return (\n <>\n <div\n data-testid=\"list-no-results\"\n className={styles.resultStateContainer}\n >\n <ExclamationCircleFillIcon\n data-testid=\"no-result-icon\"\n className={styles.labelIcon}\n />\n {noResultsLabel}\n </div>\n {noResultsDescription && (\n <Markup\n data-testid=\"no-result-desc\"\n className={styles.noResultDescContainer}\n >\n {noResultsDescription}\n </Markup>\n )}\n </>\n );\n }\n };\n\n const renderLoading = () => {\n if (onRetry && itemsLoadState === \"loading\") {\n return (\n <div\n data-testid=\"list-loading\"\n className={styles.resultStateContainer}\n >\n <ComponentLoadingSpinner className={styles.spinner} />\n Loading...\n </div>\n );\n }\n };\n\n const renderTryAgain = () => {\n if (onRetry && itemsLoadState === \"fail\") {\n return (\n <div\n data-testid=\"list-fail\"\n className={styles.resultStateContainer}\n >\n <ExclamationCircleFillIcon\n data-testid=\"load-error-icon\"\n className={styles.labelIcon}\n />\n Failed to load.&nbsp;\n <BasicButton\n onClick={handleTryAgain}\n type=\"button\"\n className={clsx(\n styles.baseButton,\n styles.tryAgainButton\n )}\n >\n Try again.\n </BasicButton>\n </div>\n );\n }\n };\n const renderSelectionIcon = (listItem: NestedDropdownListLocalItem<T>) => {\n if (multiSelect) {\n switch (listItem.checked) {\n case \"mixed\":\n return (\n <MinusSquareFillIcon\n aria-hidden\n className={nestedStyles.checkboxMixedIndicator}\n />\n );\n case true:\n return (\n <SquareTickFillIcon\n aria-hidden\n className={clsx(\n styles.baseCheckboxIndicatorStyle,\n styles.checkboxSelectedIndicator\n )}\n />\n );\n default:\n return (\n <SquareIcon\n aria-hidden\n className={clsx(\n styles.baseCheckboxIndicatorStyle,\n styles.checkboxUnselectedIndicator\n )}\n />\n );\n }\n }\n\n if (listItem.hasSubItems) {\n // no icon needed\n return;\n }\n\n return (\n <div\n className={clsx(\n nestedStyles.selectionIndicator,\n (listItem.hasNestedSiblings || listItem.level === 0) &&\n nestedStyles.selectionIndicatorNested\n )}\n >\n {listItem.checked && (\n <TickIcon\n aria-hidden\n className={clsx(\n styles.baseIndicatorStyle,\n styles.selectedIndicator\n )}\n />\n )}\n </div>\n );\n };\n\n const renderItem = (\n listItem: NestedDropdownListLocalItem<T>,\n vIndex: number\n ) => {\n const {\n level,\n visible,\n expanded,\n keyPath,\n checked,\n hasSubItems,\n indexInParent,\n parentSetSize,\n } = listItem;\n const itemIndex = listItem.index;\n const active = virtuosoIndex === vIndex;\n const toggleable = hasSubItems && !selectableCategory;\n\n return (\n <li\n key={`[${keyPath.join(\"---\")}]`}\n role=\"none\"\n className={clsx(\n nestedStyles.listItemContainer,\n !visible && nestedStyles.listItemContainerHidden\n )}\n >\n {maxLevel > 0 && (\n <div\n className={nestedStyles.indent}\n ref={(node) => {\n if (node) {\n node.style.setProperty(\n nestedStyles.tokens.level,\n String(level)\n );\n }\n }}\n />\n )}\n {maxLevel > 0 && !hasSubItems && multiSelect && (\n <div className={nestedStyles.unexpandableIndicator} />\n )}\n <div\n aria-checked={checked} // not working with safari voiceover\n aria-selected={!!checked} // required for safari voiceover\n aria-expanded={hasSubItems ? expanded : undefined}\n aria-level={level + 1}\n aria-posinset={indexInParent + 1}\n aria-setsize={parentSetSize}\n data-testid=\"list-item\"\n onClick={(e) => {\n e.stopPropagation();\n if (toggleable) {\n toggleCategory(itemIndex, !expanded, vIndex);\n } else {\n handleListItemClick(itemIndex, vIndex);\n }\n }}\n onMouseEnter={() => handleListItemHover(vIndex, listItem)}\n ref={(node) =>\n (listItemRefs.current[listItem.index] = node)\n }\n role=\"treeitem\"\n tabIndex={active ? 0 : -1}\n className={clsx(\n nestedStyles.listItem,\n active && nestedStyles.listItemActive,\n toggleable && nestedStyles.listItemToggleable\n )}\n >\n {hasSubItems && (\n // not an actual button, only required for visual display\n <div\n data-testid=\"toggle-category-button\"\n onClick={(e) => {\n e.stopPropagation();\n toggleCategory(itemIndex, !expanded, vIndex);\n }}\n className={clsx(\n nestedStyles.expandButton,\n expanded && nestedStyles.expandButtonExpanded\n )}\n aria-hidden\n >\n <CaretRightIcon />\n </div>\n )}\n {renderSelectionIcon(listItem)}\n <DropdownLabel\n bold={hasSubItems}\n searchTerm={searchActive ? searchTerm : undefined}\n label={listItem.item.label}\n selected={!!checked}\n truncationType={itemTruncationType}\n maxLines={itemMaxLines}\n />\n </div>\n </li>\n );\n };\n\n const renderVirtualisedList = () => {\n const isTestEnv = process.env.NODE_ENV === \"test\";\n\n return (\n <Virtuoso\n style={{ height: \"100%\" }}\n customScrollParent={nodeRef.current ?? undefined}\n data={visibleItems}\n itemContent={(vIndex, item) => renderItem(item, vIndex)}\n components={{\n List: VirtuosoList,\n Item: VirtuosoItem,\n }}\n context={{\n listProps: {\n id: listboxId,\n role: \"tree\",\n \"aria-multiselectable\": multiSelect,\n },\n listItemProps: {\n role: \"none\",\n },\n }}\n // disable virtualisation in tests\n // https://github.com/petyosi/react-virtuoso/issues/26#issuecomment-1040316576\n // explicitly set the `key` prop to avoid React warning\n key={isTestEnv ? visibleItems.length : undefined}\n // omit the `initialItemCount` prop to resolve NaN error\n {...(isTestEnv\n ? {\n initialItemCount: visibleItems.length,\n }\n : {})}\n />\n );\n };\n\n const renderList = () => {\n return (\n <div data-testid=\"nested-dropdown-list\" className={styles.list}>\n {renderSearchInput()}\n {renderSelectAll()}\n {renderNoResults()}\n {renderLoading()}\n {renderTryAgain()}\n {renderVirtualisedList()}\n </div>\n );\n };\n\n return (\n <div\n data-testid=\"dropdown-container\"\n ref={mergeRefs(nodeRef, setFloatingRef)}\n {...getFloatingProps()}\n className={clsx(\n styles.container,\n variant === \"small\" && styles.containerVariantSmall\n )}\n style={floatingStyles}\n >\n {renderList()}\n </div>\n );\n};\n"],"names":["NestedDropdownList","listItems","multiSelect","selectedKeyPaths","itemsLoadState","itemTruncationType","itemMaxLines","variant","listboxId","matchElementWidth","width","mode","selectableCategory","_selectableCategory","onSelectItem","onSelectAll","onRetry","enableSearch","hideNoResultsDisplay","noResultsDescription","_noResultsDescription","customLabels","searchPlaceholder","_searchPlaceholder","onSearch","noResultsLabel","selectAllButtonLabel","clearAllButtonLabel","elementWidth","setFloatingRef","getFloatingProps","styles","floatingStyles","useDropdownRender","searchValue","setSearchValue","useState","searchTerm","toLowerCase","trim","searchActive","setSearchActive","nodeRef","useRef","listItemRefs","searchInputRef","mounted","useIsMounted","unfilteredListItems","setUnfilteredListItems","filteredListItems","setFilteredListItems","activeList","maxLevel","useMemo","currentMaxLevel","item","level","focusedIndex","setFocusedIndex","visibleItems","setVisibleItems","virtuosoIndex","setVirtuosoIndex","containerWidthStyle","styles.tokens","containerWidth","containerMinWidth","handleSearchInputChange","event","value","target","length","handleOnClear","_a","current","focus","handleTryAgain","handleOnSelectAll","size","keyPaths","items","forEach","hasSubItems","push","keyPath","flatten","useEvent","nestedList","initialExpanded","flattenList","flattenDefaultMode","expandSelectedSubtrees","expandFirstSubtree","filter","filterMatchedItems","list","matchedItems","label","indexOf","subItems","matchedSubItems","Object","assign","updateSelectedItemsInList","updateSelectedState","toggleCategory","index","nextExpanded","toggleSubtree","useEventListener","code","preventDefault","upcomingItem","findItemFromStart","visible","vIndex","findItemFromEnd","_b","document","activeElement","useEffect","expandMatchedSubtrees","setTimeout","useApplyStyle","renderSearchInput","_jsx","DropdownSearch","ref","onChange","placeholder","onClear","renderSelectAll","className","styles.selectAllContainer","children","BasicButton","onClick","type","clsx","styles.baseButton","styles.selectAllButton","renderNoResults","_jsxs","styles.resultStateContainer","ExclamationCircleFillIcon","styles.labelIcon","Markup","styles.noResultDescContainer","renderLoading","ComponentLoadingSpinner","styles.spinner","renderTryAgain","styles.tryAgainButton","renderSelectionIcon","listItem","checked","MinusSquareFillIcon","nestedStyles.checkboxMixedIndicator","SquareTickFillIcon","styles.baseCheckboxIndicatorStyle","styles.checkboxSelectedIndicator","SquareIcon","styles.checkboxUnselectedIndicator","nestedStyles.selectionIndicator","hasNestedSiblings","nestedStyles.selectionIndicatorNested","TickIcon","styles.baseIndicatorStyle","styles.selectedIndicator","renderItem","expanded","indexInParent","parentSetSize","itemIndex","active","toggleable","role","nestedStyles.listItemContainer","nestedStyles.listItemContainerHidden","nestedStyles.indent","node","style","setProperty","nestedStyles.tokens","String","nestedStyles.unexpandableIndicator","undefined","e","stopPropagation","handleListItemClick","onMouseEnter","handleListItemHover","tabIndex","nestedStyles.listItem","nestedStyles.listItemActive","nestedStyles.listItemToggleable","nestedStyles.expandButton","nestedStyles.expandButtonExpanded","CaretRightIcon","DropdownLabel","bold","selected","truncationType","maxLines","join","renderVirtualisedList","isTestEnv","process","env","NODE_ENV","Virtuoso","height","customScrollParent","data","itemContent","components","List","VirtuosoList","Item","VirtuosoItem","context","listProps","id","listItemProps","initialItemCount","mergeRefs","styles.container","styles.containerVariantSmall","styles.list"],"mappings":"ovFA2CaA,GAAqB,EAC9BC,aACAC,gBAAc,EACdC,oBACAC,kBAAiB,UACjBC,sBAAqB,MACrBC,gBAAe,EACfC,WAAU,UACVC,aACAC,sBAAoB,EACpBC,SACAC,QAAO,UACPC,mBAAoBC,GACpBC,gBACAC,eACAC,WAEAC,gBACAC,wBACAC,qBAAsBC,GACtBC,gBACAC,kBAAmBC,GACnBC,gBAKA,MAAMC,eACFA,GAAiB,oBAAmBC,qBACpCA,GAAuB,aAAYC,oBACnCA,GAAsB,aACtBN,IAAgB,CAAA,EACdC,IACFD,cAAY,EAAZA,GAAcC,oBAAqBC,IAAsB,SACvDJ,IACFE,cAAY,EAAZA,GAAcF,uBAAwBC,GACpCR,GAAqBV,IAAeW,IAEpCe,aACFA,GAAYC,eACZA,GAAcC,iBACdA,GACAC,OAAQC,IACRC,KACGC,GAAaC,IAAkBC,EAAiB,IACjDC,GAAaH,GAAYI,cAAcC,QACtCC,GAAcC,IAAmBL,GAAkB,GACpDM,GAAUC,EAAuB,MACjCC,GAAeD,EAA+B,IAC9CE,GAAiBF,EAAyB,MAC1CG,GAAUC,KAITC,GAAqBC,IAA0Bb,EAEpD,KACKc,GAAmBC,IAAwBf,EAEhD,IAEIgB,GAAaZ,GAAeU,GAAoBF,GAEhDK,GAAWC,GAAQ,KACrB,IAAIC,EAAkB,EACtB,IAAK,MAAMC,KAAQR,GACXQ,EAAKC,MAAQF,IACbA,EAAkBC,EAAKC,OAG/B,OAAOF,CAAe,GACvB,CAACP,MAGGU,GAAcC,IAAmBvB,EAAS,IAM1CwB,GAAcC,IAAmBzB,EAEtC,KAGK0B,GAAeC,IAAoB3B,EAAS,GAEnD,IAAI4B,GAAsB,CAAA,EACtBtD,GACAsD,GAAsB,CAClB,CAACC,EAAcC,gBAAiB,GAAGxD,OACnC,CAACuD,EAAcE,mBAAoB,OAEhC1D,IAAqBmB,KAC5BoC,GAAsB,CAClB,CAACC,EAAcC,gBAAiB,GAAGtC,OACnC,CAACqC,EAAcE,mBAAoB,GAAGvC,SAO9C,MAgEMwC,GACFC,IAEA,MAAMC,EAAQD,EAAME,OAAOD,MAC3BnC,GAAemC,GAED,KAAVA,EACA7B,IAAgB,GACT6B,EAAM/B,OAAOiC,QAAU,GAC9B/B,IAAgB,GAGpBjB,UAAAA,IAAY,EAGViD,GAAgB,WAClBtC,GAAe,IACfM,IAAgB,GACM,QAAtBiC,EAAA7B,GAAe8B,eAAO,IAAAD,GAAAA,EAAEE,QAExBpD,UAAAA,IAAY,EAGVqD,GAAiB,KACnB7D,UAAAA,IAAW,EAiBT8D,GAAoB,KACtB,GAA8B,IAA1B3E,GAAiB4E,KAAY,CAC7B,MAAMC,EAAuB,GACvBC,EAA0C,GAChDjC,GAAoBkC,SAAS1B,IACrBA,EAAK2B,cAGTH,EAASI,KAAK5B,EAAK6B,SACnBJ,EAAMG,KAAK5B,GAAK,IAGpBzC,UAAAA,GAAciE,EAAUC,EAC5B,MACIlE,UAAAA,GAAc,GAAI,GACtB,EAMEuE,GAAUC,GACZ,CACIC,EACAC,IAEOC,GACHF,EACArF,GACAD,GACAmC,GACAoD,KAKNE,GAAqBJ,GACtBC,GACOrF,GAAiB4E,KACVa,GAAuBN,GAAQE,GAAY,IAE3CK,GAAmBP,GAAQE,GAAY,MAKpDM,GAASP,GAAUC,IACrB,MAAMO,EAAsBC,IACxB,MAAMC,EAAiD,GACvD,IAAK,MAAMzC,KAAQwC,EAAM,CAIrB,IAFqD,IAAjDxC,EAAK0C,MAAM5D,cAAc6D,QAAQ9D,IAGjC4D,EAAab,KAAK5B,QAItB,GAAIA,EAAK4C,SAAU,CACf,MAAMC,EAAkBN,EAAmBvC,EAAK4C,UAChD,GAAIC,EAAgB7B,OAAS,EAAG,CAC5ByB,EAAab,KAAIkB,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EACV/C,IACH4C,SAAUC,KAEd,QACJ,CACJ,CACJ,CACA,OAAOJ,CAAY,EAEvB,OAAOF,EAAmBP,EAAW,IAGnCgB,GAA4BjB,GAAS,KACvCtC,IAAwBD,GACpByD,GACIzD,EACA7C,GACAD,MAIJsC,IACAW,IAAsBD,GAClBuD,GACIvD,EACA/C,GACAD,KAGZ,IAGEwG,GAAiB,CACnBC,EACAC,EACA9C,KAEA,MAAMkC,EAAOa,GAAczD,GAAYuD,EAAOC,GAC9CjD,GAAgBgD,GAChB5C,GAAiBD,GACbtB,GACAW,GAAqB6C,GAErB/C,GAAuB+C,EAC3B,EAMJc,EAAiB,WAzNYzC,YAIzB,OAAQA,EAAM0C,MACV,IAAK,YAAa,CACd1C,EAAM2C,iBACN,MAAMC,EAAeC,GACjB9D,IACCI,GAASA,EAAK2D,SACfzD,GAAe,GAEfuD,IACAlD,IAAkBqD,GAAWA,EAAS,IACtCzD,GAAgBsD,EAAaN,OACW,QAAxCjC,EAAA9B,GAAa+B,QAAQsC,EAAaN,cAAM,IAAAjC,GAAAA,EAAEE,SAE9C,KACJ,CACA,IAAK,UAAW,CACZP,EAAM2C,iBACN,MAAMC,EAAeI,GACjBjE,IACCI,GAASA,EAAK2D,SACfzD,GAAe,GAEfuD,GACAlD,IAAkBqD,GAAWA,EAAS,IACtCzD,GAAgBsD,EAAaN,OACW,QAAxCW,EAAA1E,GAAa+B,QAAQsC,EAAaN,cAAM,IAAAW,GAAAA,EAAE1C,SACjB,IAAlBd,IAAuBjB,GAAe8B,UAC7C9B,GAAe8B,QAAQC,QACvBb,IAAiB,GACjBJ,IAAgB,IAEpB,KACJ,CACA,IAAK,aACDU,EAAM2C,iBACNN,GAAehD,IAAc,EAAMI,IACnC,MAEJ,IAAK,YACDO,EAAM2C,iBACNN,GAAehD,IAAc,EAAOI,IACpC,MAEJ,IAAK,QACD,GACIyD,SAASC,gBACT5E,GAAa+B,QAAQjB,IACvB,CACEW,EAAM2C,iBACN,MAAMzC,EAASnB,GAAWM,IAC1B,GAAIa,EAAOY,cAAgBvE,GACvB,OAEJE,UAAAA,GAAeyD,EACnB,MAiKZkD,GAAU,KACN,IAAIzB,EAAyC,GAChC,YAATrF,GACAqF,EAAOL,GAAmB1F,IACV,WAATU,GACPqF,EAAOV,GAAQrF,IAAW,GACV,aAATU,KACPqF,EAAOV,GAAQrF,IAAW,IAE9BgD,GAAuB+C,EAAK,GAC7B,CAACV,GAASK,GAAoB1F,GAAWU,KAE5C8G,GAAU,KAEN5D,GAAgBT,GAAW0C,QAAQtC,GAASA,EAAK2D,UAAS,GAC3D,CAAC3E,GAAcY,KAElBqE,GAAU,KACNjB,IAA2B,GAC5B,CAACtG,GAAaC,GAAkBqG,KAEnCiB,GAAU,KACN,GAAIjF,IAAgBN,GAAYK,OAAOiC,QAAU,EAAG,CAChD,MAAMtB,EAAoB4C,GAAO7F,IAC3B+F,EAAO0B,GACTpC,GAAQpC,GAAmB,IAG/BC,GAAqB6C,EACzB,IACD,CAACF,GAAQR,GAASrF,GAAWuC,GAAcN,KAE9CuF,GAAU,KACF3E,KAMAD,GAAe8B,SACfhB,IAAgB,GAChBI,IAAiB,GACjB4D,YAAW,WAAM,eAAAjD,EAAA7B,GAAe8B,8BAASC,OAAO,GAAE,MAC3ChC,GAAa+B,QAAQjB,IAE5BiE,YAAW,KAAK,IAAAjD,EAAC,OAAkC,QAAlCA,EAAA9B,GAAa+B,QAAQjB,WAAa,IAAAgB,OAAA,EAAAA,EAAEE,OAAO,GAAE,MAG9DjB,GAAgB,GAChBI,GAAiB,GACjB4D,YAAW,KAAK,IAAAjD,EAAC,OAAuB,QAAvBA,EAAA9B,GAAa+B,QAAQ,UAAE,IAAAD,OAAA,EAAAA,EAAEE,OAAO,GAAE,MACvD,GACD,CAAClB,GAAcI,GAAehB,KAMjC8E,EAAclF,GAAO4D,OAAAC,OAAA,CAAA,EACdvC,KAMP,MAAM6D,GAAoB,KACtB,GAAI5G,IAAmC,YAAnBb,GAChB,OACI0H,EAACC,EAAc,CACXC,IAAKnF,GACLoF,SAAU7D,GACVE,MAAOpC,GACPgG,YAAa5G,GAAiB,cAClB,eAAc,aACf,uBACX6G,QAAS1D,GACTlE,QAASA,IAGrB,EAGE6H,GAAkB,KACpB,GACIlI,KACCsC,IACDQ,GAAoBwB,OAAS,GACV,YAAnBpE,GAEA,OACI0H,EAAA,MAAA,CAAKO,UAAWC,EAAyBC,SACrCT,EAACU,GACGC,QAAS3D,GACT4D,KAAK,SACLL,UAAWM,EACPC,EACAC,GACHN,SAE0B,IAA1BpI,GAAiB4E,KACZrD,GACAC,MAItB,EAGEmH,GAAkB,KACpB,IACK5H,IACDsB,IAC6B,IAA7BU,GAAkBsB,QACC,YAAnBpE,GAEA,OACI2I,eACIA,EAAA,MAAA,CAAA,cACgB,kBACZV,UAAWW,YAEXlB,EAACmB,iBACe,iBACZZ,UAAWa,IAEdzH,MAEJN,IACG2G,EAACqB,iBACe,iBACZd,UAAWe,EAA4Bb,SAEtCpH,OAKrB,EAGEkI,GAAgB,KAClB,GAAIrI,IAA8B,YAAnBZ,GACX,OACI2I,uBACgB,eACZV,UAAWW,EAA2BT,SAAA,CAEtCT,EAACwB,EAAuB,CAACjB,UAAWkB,IAAkB,eAIlE,EAGEC,GAAiB,KACnB,GAAIxI,IAA8B,SAAnBZ,GACX,OACI2I,uBACgB,YACZV,UAAWW,EAA2BT,SAAA,CAEtCT,EAACmB,EAAyB,CAAA,cACV,kBACZZ,UAAWa,IACb,mBAEFpB,EAACU,GACGC,QAAS5D,GACT6D,KAAK,SACLL,UAAWM,EACPC,EACAa,GACHlB,SAAA,iBAMjB,EAEEmB,GAAuBC,IACzB,GAAIzJ,GACA,OAAQyJ,EAASC,SACb,IAAK,QACD,OACI9B,EAAC+B,EAAmB,CAAA,eAAA,EAEhBxB,UAAWyB,IAGvB,KAAK,EACD,OACIhC,EAACiC,oBAEG1B,UAAWM,EACPqB,EACAC,KAIhB,QACI,OACInC,EAACoC,oBAEG7B,UAAWM,EACPqB,EACAG,KAOxB,IAAIR,EAASxE,YAKb,OACI2C,SACIO,UAAWM,EACPyB,IACCT,EAASU,mBAAwC,IAAnBV,EAASlG,QACpC6G,IACP/B,SAEAoB,EAASC,SACN9B,EAACyC,EAAQ,CAAA,eAAA,EAELlC,UAAWM,EACP6B,EACAC,MAIV,EAIRC,GAAa,CACff,EACAvC,KAEA,MAAM3D,MACFA,EAAK0D,QACLA,EAAOwD,SACPA,EAAQtF,QACRA,EAAOuE,QACPA,EAAOzE,YACPA,EAAWyF,cACXA,EAAaC,cACbA,GACAlB,EACEmB,EAAYnB,EAAShD,MACrBoE,EAASjH,KAAkBsD,EAC3B4D,EAAa7F,IAAgBvE,GAEnC,OACImI,EAAA,KAAA,CAEIkC,KAAK,OACL5C,UAAWM,EACPuC,GACC/D,GAAWgE,aAGf9H,GAAW,GACRyE,SACIO,UAAW+C,EACXpD,IAAMqD,IACEA,GACAA,EAAKC,MAAMC,YACPC,EAAoB/H,MACpBgI,OAAOhI,GAEf,IAIXJ,GAAW,IAAM8B,GAAejF,IAC7B4H,SAAKO,UAAWqD,IAEpB3C,EAAA,MAAA,CAAA,eACkBa,EAAO,kBACJA,kBACFzE,EAAcwF,OAAWgB,EAAS,aACrClI,EAAQ,EAAC,gBACNmH,EAAgB,EAAC,eAClBC,EAAa,cACf,YACZpC,QAAUmD,IACNA,EAAEC,kBACEb,EACAtE,GAAeoE,GAAYH,EAAUvD,GArajC,EAAC0D,EAAmB1D,KAC5CrD,GAAiBqD,GACjBzD,GAAgBmH,GAChBhK,UAAAA,GAAesC,GAAW0H,GAAW,EAoajBgB,CAAoBhB,EAAW1D,EACnC,EAEJ2E,aAAc,IApaF,EACxBjI,EACA6F,KAEAhG,GAAgBgG,EAAShD,OACzB5C,GAAiBD,EAAc,EA+ZCkI,CAAoB5E,EAAQuC,GAChD3B,IAAMqD,GACDzI,GAAa+B,QAAQgF,EAAShD,OAAS0E,EAE5CJ,KAAK,WACLgB,SAAUlB,EAAS,GAAI,EACvB1C,UAAWM,EACPuD,EACAnB,GAAUoB,EACVnB,GAAcoB,GACjB7D,SAAA,CAEApD,GAEG2C,EAAA,MAAA,CAAA,cACgB,yBACZW,QAAUmD,IACNA,EAAEC,kBACFnF,GAAeoE,GAAYH,EAAUvD,EAAO,EAEhDiB,UAAWM,EACP0D,EACA1B,GAAY2B,GACf,eAAA,EAAA/D,SAGDT,EAACyE,EAAc,CAAA,KAGtB7C,GAAoBC,GACrB7B,EAAC0E,EAAa,CACVC,KAAMtH,EACN9C,WAAYG,GAAeH,QAAasJ,EACxCzF,MAAOyD,EAASnG,KAAK0C,MACrBwG,WAAY9C,EACZ+C,eAAgBtM,GAChBuM,SAAUtM,UA3Eb,IAAI+E,EAAQwH,KAAK,UA8ErB,EAIPC,GAAwB,WAC1B,MAAMC,EAAqC,SAAzBC,QAAQC,IAAIC,SAE9B,OACIpF,EAACqF,iBACG7B,MAAO,CAAE8B,OAAQ,QACjBC,2BAAoB3I,EAAAhC,GAAQiC,4BAAWgH,EACvC2B,KAAM1J,GACN2J,YAAa,CAACnG,EAAQ5D,IAASkH,GAAWlH,EAAM4D,GAChDoG,WAAY,CACRC,KAAMC,GACNC,KAAMC,IAEVC,QAAS,CACLC,UAAW,CACPC,GAAIvN,GACJyK,KAAM,OACN,uBAAwB/K,IAE5B8N,cAAe,CACX/C,KAAM,UAQT8B,EACC,CACIkB,iBAAkBrK,GAAaY,QAEnC,CAAA,GANDuI,EAAYnJ,GAAaY,YAASmH,EAOzC,EAiBV,OACI7D,EAAA,MAAAxB,OAAAC,OAAA,CAAA,cACgB,qBACZyB,IAAKkG,EAAUxL,GAASb,KACpBC,KAAkB,CACtBuG,UAAWM,EACPwF,EACY,UAAZ5N,IAAuB6N,GAE3B9C,MAAOtJ,GAAcuG,SApBrBQ,EAAA,MAAA,CAAA,cAAiB,uBAAuBV,UAAWgG,EAAW9F,SAAA,CACzDV,KACAO,KACAU,KACAO,KACAG,KACAsD,UAiBH"}
1
+ {"version":3,"file":"nested-dropdown-list.js","sources":["../../../src/shared/dropdown-list/nested-dropdown-list.tsx"],"sourcesContent":["import { CaretRightIcon } from \"@lifesg/react-icons/caret-right\";\nimport { ExclamationCircleFillIcon } from \"@lifesg/react-icons/exclamation-circle-fill\";\nimport { MinusSquareFillIcon } from \"@lifesg/react-icons/minus-square-fill\";\nimport { SquareIcon } from \"@lifesg/react-icons/square\";\nimport { SquareTickFillIcon } from \"@lifesg/react-icons/square-tick-fill\";\nimport { TickIcon } from \"@lifesg/react-icons/tick\";\nimport clsx from \"clsx\";\nimport type React from \"react\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport { Virtuoso } from \"react-virtuoso\";\n\nimport { Markup } from \"../../markup\";\nimport { useApplyStyle } from \"../../theme\";\nimport {\n mergeRefs,\n useEvent,\n useEventListener,\n useIsMounted,\n} from \"../../util\";\nimport { ComponentLoadingSpinner } from \"../component-loading-spinner\";\nimport { useDropdownRender } from \"../dropdown-wrapper\";\nimport { BasicButton } from \"../input-wrapper\";\nimport { DropdownLabel } from \"./dropdown-label\";\nimport type { ContainerWidthType } from \"./dropdown-list.styles\";\nimport * as styles from \"./dropdown-list.styles\";\nimport { DropdownSearch } from \"./dropdown-search\";\nimport * as nestedStyles from \"./nested-dropdown-list.styles\";\nimport {\n expandFirstSubtree,\n expandMatchedSubtrees,\n expandSelectedSubtrees,\n findItemFromEnd,\n findItemFromStart,\n flattenList,\n toggleSubtree,\n updateSelectedState,\n} from \"./nested-dropdown-list-helpers\";\nimport type {\n NestedDropdownListItemProps,\n NestedDropdownListLocalItem,\n NestedDropdownListProps,\n} from \"./types\";\nimport { VirtuosoItem, VirtuosoList } from \"./virtuoso-components\";\n\nexport const NestedDropdownList = <T,>({\n listItems,\n multiSelect = false,\n selectedKeyPaths,\n itemsLoadState = \"success\",\n itemTruncationType = \"end\",\n itemMaxLines = 2,\n variant = \"default\",\n listboxId,\n matchElementWidth = false,\n width,\n mode = \"default\",\n selectableCategory: _selectableCategory,\n onSelectItem,\n onSelectAll,\n onRetry,\n /* DropdownSearchProps */\n enableSearch,\n hideNoResultsDisplay,\n noResultsDescription: _noResultsDescription,\n customLabels,\n searchPlaceholder: _searchPlaceholder,\n onSearch,\n}: NestedDropdownListProps<T>) => {\n // =========================================================================\n // CONST, STATE, REF\n // =========================================================================\n const {\n noResultsLabel = \"No results found.\",\n selectAllButtonLabel = \"Select all\",\n clearAllButtonLabel = \"Clear all\",\n } = customLabels || {};\n const searchPlaceholder =\n customLabels?.searchPlaceholder || _searchPlaceholder || \"Search\";\n const noResultsDescription =\n customLabels?.noResultsDescription || _noResultsDescription;\n const selectableCategory = multiSelect || _selectableCategory;\n\n const {\n elementWidth,\n setFloatingRef,\n getFloatingProps,\n styles: floatingStyles,\n } = useDropdownRender();\n const [searchValue, setSearchValue] = useState<string>(\"\");\n const searchTerm = searchValue.toLowerCase().trim();\n const [searchActive, setSearchActive] = useState<boolean>(false);\n const nodeRef = useRef<HTMLDivElement>(null);\n const listItemRefs = useRef<(HTMLElement | null)[]>([]);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const mounted = useIsMounted();\n\n // maintaining a separate list for search and non-search as we need to\n // preserve the original expanded state\n const [unfilteredListItems, setUnfilteredListItems] = useState<\n NestedDropdownListLocalItem<T>[]\n >([]);\n const [filteredListItems, setFilteredListItems] = useState<\n NestedDropdownListLocalItem<T>[]\n >([]);\n\n const activeList = searchActive ? filteredListItems : unfilteredListItems;\n\n const maxLevel = useMemo(() => {\n let currentMaxLevel = 0;\n for (const item of unfilteredListItems) {\n if (item.level > currentMaxLevel) {\n currentMaxLevel = item.level;\n }\n }\n return currentMaxLevel;\n }, [unfilteredListItems]);\n\n // TODO: persist in context?\n const [focusedIndex, setFocusedIndex] = useState(0);\n\n /**\n * NOTE: Keeping track of the visible items to pass to Virtuoso for virtualisation to work.\n * This is required due to the nature of show/hide sub-items, to omit them from the DOM entirely.\n */\n const [visibleItems, setVisibleItems] = useState<\n NestedDropdownListLocalItem<T>[]\n >([]);\n\n // NOTE: Maintaining a separate index for UI to keep track on which item (in terms of Virtuoso's indexing) is currently focused on keyboard press events.\n const [virtuosoIndex, setVirtuosoIndex] = useState(0);\n\n // =========================================================================\n // APPLY STYLES\n // =========================================================================\n let containerWidthType: ContainerWidthType = \"default\";\n let containerWidth: string | undefined = undefined;\n if (width) {\n containerWidth = width;\n containerWidthType = \"custom\";\n } else if (matchElementWidth && elementWidth) {\n containerWidth = `${elementWidth}px`;\n containerWidthType = \"match\";\n }\n\n useApplyStyle(nodeRef, {\n [styles.tokens.containerWidth]: containerWidth,\n });\n\n // =========================================================================\n // EVENT HANDLERS\n // =========================================================================\n const handleKeyboardPress = (event: KeyboardEvent) => {\n /**\n * NOTE: When navigating up/down the list using keyboard, need to use virtuoso index, when expanding/collapsing, need actual index as we need to toggle the visible state of the sub-items\n */\n switch (event.code) {\n case \"ArrowDown\": {\n event.preventDefault();\n const upcomingItem = findItemFromStart(\n activeList,\n (item) => item.visible,\n focusedIndex + 1\n );\n if (upcomingItem) {\n setVirtuosoIndex((vIndex) => vIndex + 1);\n setFocusedIndex(upcomingItem.index);\n listItemRefs.current[upcomingItem.index]?.focus();\n }\n break;\n }\n case \"ArrowUp\": {\n event.preventDefault();\n const upcomingItem = findItemFromEnd(\n activeList,\n (item) => item.visible,\n focusedIndex - 1\n );\n if (upcomingItem) {\n setVirtuosoIndex((vIndex) => vIndex - 1);\n setFocusedIndex(upcomingItem.index);\n listItemRefs.current[upcomingItem.index]?.focus();\n } else if (virtuosoIndex === 0 && searchInputRef.current) {\n searchInputRef.current.focus();\n setVirtuosoIndex(-1);\n setFocusedIndex(-1);\n }\n break;\n }\n case \"ArrowRight\": {\n event.preventDefault();\n toggleCategory(focusedIndex, true, virtuosoIndex);\n break;\n }\n case \"ArrowLeft\": {\n event.preventDefault();\n toggleCategory(focusedIndex, false, virtuosoIndex);\n break;\n }\n case \"Space\": {\n if (\n document.activeElement ===\n listItemRefs.current[focusedIndex]\n ) {\n event.preventDefault();\n const target = activeList[focusedIndex];\n if (target.hasSubItems && !selectableCategory) {\n return;\n }\n onSelectItem?.(target);\n }\n break;\n }\n }\n };\n\n const handleSearchInputChange = (\n event: React.ChangeEvent<HTMLInputElement>\n ) => {\n const value = event.target.value;\n setSearchValue(value);\n\n if (value === \"\") {\n setSearchActive(false);\n } else if (value.trim().length >= 3) {\n setSearchActive(true);\n }\n\n onSearch?.();\n };\n\n const handleOnClear = () => {\n setSearchValue(\"\");\n setSearchActive(false);\n searchInputRef.current?.focus();\n\n onSearch?.();\n };\n\n const handleTryAgain = () => {\n onRetry?.();\n };\n\n const handleListItemClick = (itemIndex: number, vIndex: number) => {\n setVirtuosoIndex(vIndex);\n setFocusedIndex(itemIndex);\n onSelectItem?.(activeList[itemIndex]);\n };\n\n const handleListItemHover = (\n virtuosoIndex: number,\n listItem: NestedDropdownListLocalItem<T>\n ) => {\n setFocusedIndex(listItem.index);\n setVirtuosoIndex(virtuosoIndex);\n };\n\n const handleOnSelectAll = () => {\n if (selectedKeyPaths.size === 0) {\n const keyPaths: string[][] = [];\n const items: NestedDropdownListLocalItem<T>[] = [];\n unfilteredListItems.forEach((item) => {\n if (item.hasSubItems) {\n return;\n }\n keyPaths.push(item.keyPath);\n items.push(item);\n });\n\n onSelectAll?.(keyPaths, items);\n } else {\n onSelectAll?.([], []);\n }\n };\n\n // =========================================================================\n // HELPER FUNCTIONS\n // =========================================================================\n const flatten = useEvent(\n (\n nestedList: NestedDropdownListItemProps<T>[],\n initialExpanded: boolean\n ): NestedDropdownListLocalItem<T>[] => {\n return flattenList(\n nestedList,\n selectedKeyPaths,\n multiSelect,\n searchTerm,\n initialExpanded\n );\n }\n );\n\n const flattenDefaultMode = useEvent(\n (nestedList: NestedDropdownListItemProps<T>[]) => {\n if (selectedKeyPaths.size) {\n return expandSelectedSubtrees(flatten(nestedList, false));\n } else {\n return expandFirstSubtree(flatten(nestedList, false));\n }\n }\n );\n\n const filter = useEvent((nestedList: NestedDropdownListItemProps<T>[]) => {\n const filterMatchedItems = (list: NestedDropdownListItemProps<T>[]) => {\n const matchedItems: NestedDropdownListItemProps<T>[] = [];\n for (const item of list) {\n const match =\n item.label.toLowerCase().indexOf(searchTerm) !== -1;\n\n if (match) {\n matchedItems.push(item);\n continue;\n }\n\n if (item.subItems) {\n const matchedSubItems = filterMatchedItems(item.subItems);\n if (matchedSubItems.length > 0) {\n matchedItems.push({\n ...item,\n subItems: matchedSubItems,\n });\n continue;\n }\n }\n }\n return matchedItems;\n };\n return filterMatchedItems(nestedList);\n });\n\n const updateSelectedItemsInList = useEvent(() => {\n setUnfilteredListItems((unfilteredListItems) =>\n updateSelectedState(\n unfilteredListItems,\n selectedKeyPaths,\n multiSelect\n )\n );\n\n if (searchActive) {\n setFilteredListItems((filteredListItems) =>\n updateSelectedState(\n filteredListItems,\n selectedKeyPaths,\n multiSelect\n )\n );\n }\n });\n\n const toggleCategory = (\n index: number,\n nextExpanded: boolean,\n virtuosoIndex: number\n ) => {\n const list = toggleSubtree(activeList, index, nextExpanded);\n setFocusedIndex(index);\n setVirtuosoIndex(virtuosoIndex);\n if (searchActive) {\n setFilteredListItems(list);\n } else {\n setUnfilteredListItems(list);\n }\n };\n\n // =========================================================================\n // EFFECTS\n // =========================================================================\n useEventListener(\"keydown\", handleKeyboardPress);\n\n useEffect(() => {\n let list: NestedDropdownListLocalItem<T>[] = [];\n if (mode === \"default\") {\n list = flattenDefaultMode(listItems);\n } else if (mode === \"expand\") {\n list = flatten(listItems, true);\n } else if (mode === \"collapse\") {\n list = flatten(listItems, false);\n }\n setUnfilteredListItems(list);\n }, [flatten, flattenDefaultMode, listItems, mode]);\n\n useEffect(() => {\n // Filter out non-visible items before passing to Virtuoso\n setVisibleItems(activeList.filter((item) => item.visible));\n }, [searchActive, activeList]);\n\n useEffect(() => {\n updateSelectedItemsInList();\n }, [multiSelect, selectedKeyPaths, updateSelectedItemsInList]);\n\n useEffect(() => {\n if (searchActive && searchValue.trim().length >= 3) {\n const filteredListItems = filter(listItems);\n const list = expandMatchedSubtrees(\n flatten(filteredListItems, false)\n );\n\n setFilteredListItems(list);\n }\n }, [filter, flatten, listItems, searchActive, searchValue]);\n\n useEffect(() => {\n if (mounted) {\n // only run on mount\n return;\n }\n\n // Focus search input if there is one\n if (searchInputRef.current) {\n setFocusedIndex(-1);\n setVirtuosoIndex(-1);\n setTimeout(() => searchInputRef.current?.focus(), 200); // wait for animation\n } else if (listItemRefs.current[focusedIndex]) {\n // Else focus on the specified element\n setTimeout(() => listItemRefs.current[focusedIndex]?.focus(), 200);\n } else {\n // Else focus on the first list item\n setFocusedIndex(0);\n setVirtuosoIndex(0);\n setTimeout(() => listItemRefs.current[0]?.focus(), 200);\n }\n }, [focusedIndex, virtuosoIndex, mounted]);\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n const renderSearchInput = () => {\n if (enableSearch && itemsLoadState === \"success\") {\n return (\n <DropdownSearch\n ref={searchInputRef}\n onChange={handleSearchInputChange}\n value={searchValue}\n placeholder={searchPlaceholder}\n data-testid=\"search-input\"\n aria-label=\"Enter text to search\"\n onClear={handleOnClear}\n variant={variant}\n />\n );\n }\n };\n\n const renderSelectAll = () => {\n if (\n multiSelect &&\n !searchActive &&\n unfilteredListItems.length > 0 &&\n itemsLoadState === \"success\"\n ) {\n return (\n <div className={styles.selectAllContainer}>\n <BasicButton\n onClick={handleOnSelectAll}\n type=\"button\"\n className={clsx(\n styles.baseButton,\n styles.selectAllButton\n )}\n >\n {selectedKeyPaths.size === 0\n ? selectAllButtonLabel\n : clearAllButtonLabel}\n </BasicButton>\n </div>\n );\n }\n };\n\n const renderNoResults = () => {\n if (\n !hideNoResultsDisplay &&\n searchActive &&\n filteredListItems.length === 0 &&\n itemsLoadState === \"success\"\n ) {\n return (\n <>\n <div\n data-testid=\"list-no-results\"\n className={styles.resultStateContainer}\n >\n <ExclamationCircleFillIcon\n data-testid=\"no-result-icon\"\n className={styles.labelIcon}\n />\n {noResultsLabel}\n </div>\n {noResultsDescription && (\n <Markup\n data-testid=\"no-result-desc\"\n className={styles.noResultDescContainer}\n >\n {noResultsDescription}\n </Markup>\n )}\n </>\n );\n }\n };\n\n const renderLoading = () => {\n if (onRetry && itemsLoadState === \"loading\") {\n return (\n <div\n data-testid=\"list-loading\"\n className={styles.resultStateContainer}\n >\n <ComponentLoadingSpinner className={styles.spinner} />\n Loading...\n </div>\n );\n }\n };\n\n const renderTryAgain = () => {\n if (onRetry && itemsLoadState === \"fail\") {\n return (\n <div\n data-testid=\"list-fail\"\n className={styles.resultStateContainer}\n >\n <ExclamationCircleFillIcon\n data-testid=\"load-error-icon\"\n className={styles.labelIcon}\n />\n Failed to load.&nbsp;\n <BasicButton\n onClick={handleTryAgain}\n type=\"button\"\n className={clsx(\n styles.baseButton,\n styles.tryAgainButton\n )}\n >\n Try again.\n </BasicButton>\n </div>\n );\n }\n };\n const renderSelectionIcon = (listItem: NestedDropdownListLocalItem<T>) => {\n if (multiSelect) {\n switch (listItem.checked) {\n case \"mixed\":\n return (\n <MinusSquareFillIcon\n aria-hidden\n className={nestedStyles.checkboxMixedIndicator}\n />\n );\n case true:\n return (\n <SquareTickFillIcon\n aria-hidden\n className={clsx(\n styles.baseCheckboxIndicatorStyle,\n styles.checkboxSelectedIndicator\n )}\n />\n );\n default:\n return (\n <SquareIcon\n aria-hidden\n className={clsx(\n styles.baseCheckboxIndicatorStyle,\n styles.checkboxUnselectedIndicator\n )}\n />\n );\n }\n }\n\n if (listItem.hasSubItems) {\n // no icon needed\n return;\n }\n\n return (\n <div\n className={clsx(\n nestedStyles.selectionIndicator,\n (listItem.hasNestedSiblings || listItem.level === 0) &&\n nestedStyles.selectionIndicatorNested\n )}\n >\n {listItem.checked && (\n <TickIcon\n aria-hidden\n className={clsx(\n styles.baseIndicatorStyle,\n styles.selectedIndicator\n )}\n />\n )}\n </div>\n );\n };\n\n const renderItem = (\n listItem: NestedDropdownListLocalItem<T>,\n vIndex: number\n ) => {\n const {\n level,\n visible,\n expanded,\n keyPath,\n checked,\n hasSubItems,\n indexInParent,\n parentSetSize,\n } = listItem;\n const itemIndex = listItem.index;\n const active = virtuosoIndex === vIndex;\n const toggleable = hasSubItems && !selectableCategory;\n\n return (\n <li\n key={`[${keyPath.join(\"---\")}]`}\n role=\"none\"\n className={clsx(\n nestedStyles.listItemContainer,\n !visible && nestedStyles.listItemContainerHidden\n )}\n >\n {maxLevel > 0 && (\n <div\n className={nestedStyles.indent}\n ref={(node) => {\n if (node) {\n node.style.setProperty(\n nestedStyles.tokens.level,\n String(level)\n );\n }\n }}\n />\n )}\n {maxLevel > 0 && !hasSubItems && multiSelect && (\n <div className={nestedStyles.unexpandableIndicator} />\n )}\n <div\n aria-checked={checked} // not working with safari voiceover\n aria-selected={!!checked} // required for safari voiceover\n aria-expanded={hasSubItems ? expanded : undefined}\n aria-level={level + 1}\n aria-posinset={indexInParent + 1}\n aria-setsize={parentSetSize}\n data-testid=\"list-item\"\n onClick={(e) => {\n e.stopPropagation();\n if (toggleable) {\n toggleCategory(itemIndex, !expanded, vIndex);\n } else {\n handleListItemClick(itemIndex, vIndex);\n }\n }}\n onMouseEnter={() => handleListItemHover(vIndex, listItem)}\n ref={(node) =>\n (listItemRefs.current[listItem.index] = node)\n }\n role=\"treeitem\"\n tabIndex={active ? 0 : -1}\n className={clsx(\n nestedStyles.listItem,\n active && nestedStyles.listItemActive,\n toggleable && nestedStyles.listItemToggleable\n )}\n >\n {hasSubItems && (\n // not an actual button, only required for visual display\n <div\n data-testid=\"toggle-category-button\"\n onClick={(e) => {\n e.stopPropagation();\n toggleCategory(itemIndex, !expanded, vIndex);\n }}\n className={clsx(\n nestedStyles.expandButton,\n expanded && nestedStyles.expandButtonExpanded\n )}\n aria-hidden\n >\n <CaretRightIcon />\n </div>\n )}\n {renderSelectionIcon(listItem)}\n <DropdownLabel\n bold={hasSubItems}\n searchTerm={searchActive ? searchTerm : undefined}\n label={listItem.item.label}\n selected={!!checked}\n truncationType={itemTruncationType}\n maxLines={itemMaxLines}\n />\n </div>\n </li>\n );\n };\n\n const renderVirtualisedList = () => {\n const isTestEnv = process.env.NODE_ENV === \"test\";\n\n return (\n <Virtuoso\n style={{ height: \"100%\" }}\n customScrollParent={nodeRef.current ?? undefined}\n data={visibleItems}\n itemContent={(vIndex, item) => renderItem(item, vIndex)}\n components={{\n List: VirtuosoList,\n Item: VirtuosoItem,\n }}\n context={{\n listProps: {\n id: listboxId,\n role: \"tree\",\n \"aria-multiselectable\": multiSelect,\n },\n listItemProps: {\n role: \"none\",\n },\n }}\n // disable virtualisation in tests\n // https://github.com/petyosi/react-virtuoso/issues/26#issuecomment-1040316576\n // explicitly set the `key` prop to avoid React warning\n key={isTestEnv ? visibleItems.length : undefined}\n // omit the `initialItemCount` prop to resolve NaN error\n {...(isTestEnv\n ? {\n initialItemCount: visibleItems.length,\n }\n : {})}\n />\n );\n };\n\n const renderList = () => {\n return (\n <div data-testid=\"nested-dropdown-list\" className={styles.list}>\n {renderSearchInput()}\n {renderSelectAll()}\n {renderNoResults()}\n {renderLoading()}\n {renderTryAgain()}\n {renderVirtualisedList()}\n </div>\n );\n };\n\n return (\n <div\n data-testid=\"dropdown-container\"\n ref={mergeRefs(nodeRef, setFloatingRef)}\n {...getFloatingProps()}\n data-width-type={containerWidthType}\n className={clsx(\n styles.container,\n variant === \"small\" && styles.containerVariantSmall\n )}\n style={floatingStyles}\n >\n {renderList()}\n </div>\n );\n};\n"],"names":["NestedDropdownList","listItems","multiSelect","selectedKeyPaths","itemsLoadState","itemTruncationType","itemMaxLines","variant","listboxId","matchElementWidth","width","mode","selectableCategory","_selectableCategory","onSelectItem","onSelectAll","onRetry","enableSearch","hideNoResultsDisplay","noResultsDescription","_noResultsDescription","customLabels","searchPlaceholder","_searchPlaceholder","onSearch","noResultsLabel","selectAllButtonLabel","clearAllButtonLabel","elementWidth","setFloatingRef","getFloatingProps","styles","floatingStyles","useDropdownRender","searchValue","setSearchValue","useState","searchTerm","toLowerCase","trim","searchActive","setSearchActive","nodeRef","useRef","listItemRefs","searchInputRef","mounted","useIsMounted","unfilteredListItems","setUnfilteredListItems","filteredListItems","setFilteredListItems","activeList","maxLevel","useMemo","currentMaxLevel","item","level","focusedIndex","setFocusedIndex","visibleItems","setVisibleItems","virtuosoIndex","setVirtuosoIndex","containerWidth","containerWidthType","useApplyStyle","styles.tokens","handleSearchInputChange","event","value","target","length","handleOnClear","_a","current","focus","handleTryAgain","handleOnSelectAll","size","keyPaths","items","forEach","hasSubItems","push","keyPath","flatten","useEvent","nestedList","initialExpanded","flattenList","flattenDefaultMode","expandSelectedSubtrees","expandFirstSubtree","filter","filterMatchedItems","list","matchedItems","label","indexOf","subItems","matchedSubItems","Object","assign","updateSelectedItemsInList","updateSelectedState","toggleCategory","index","nextExpanded","toggleSubtree","useEventListener","code","preventDefault","upcomingItem","findItemFromStart","visible","vIndex","findItemFromEnd","_b","document","activeElement","useEffect","expandMatchedSubtrees","setTimeout","renderSearchInput","_jsx","DropdownSearch","ref","onChange","placeholder","onClear","renderSelectAll","className","styles.selectAllContainer","children","BasicButton","onClick","type","clsx","styles.baseButton","styles.selectAllButton","renderNoResults","_jsxs","styles.resultStateContainer","ExclamationCircleFillIcon","styles.labelIcon","Markup","styles.noResultDescContainer","renderLoading","ComponentLoadingSpinner","styles.spinner","renderTryAgain","styles.tryAgainButton","renderSelectionIcon","listItem","checked","MinusSquareFillIcon","nestedStyles.checkboxMixedIndicator","SquareTickFillIcon","styles.baseCheckboxIndicatorStyle","styles.checkboxSelectedIndicator","SquareIcon","styles.checkboxUnselectedIndicator","nestedStyles.selectionIndicator","hasNestedSiblings","nestedStyles.selectionIndicatorNested","TickIcon","styles.baseIndicatorStyle","styles.selectedIndicator","renderItem","expanded","indexInParent","parentSetSize","itemIndex","active","toggleable","role","nestedStyles.listItemContainer","nestedStyles.listItemContainerHidden","nestedStyles.indent","node","style","setProperty","nestedStyles.tokens","String","nestedStyles.unexpandableIndicator","undefined","e","stopPropagation","handleListItemClick","onMouseEnter","handleListItemHover","tabIndex","nestedStyles.listItem","nestedStyles.listItemActive","nestedStyles.listItemToggleable","nestedStyles.expandButton","nestedStyles.expandButtonExpanded","CaretRightIcon","DropdownLabel","bold","selected","truncationType","maxLines","join","renderVirtualisedList","isTestEnv","process","env","NODE_ENV","Virtuoso","height","customScrollParent","data","itemContent","components","List","VirtuosoList","Item","VirtuosoItem","context","listProps","id","listItemProps","initialItemCount","mergeRefs","styles.container","styles.containerVariantSmall","styles.list"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{jsxs as e,Fragment as t,jsx as i}from"react/jsx-runtime";import{useFloating as o,autoUpdate as n,offset as r,flip as l,shift as s,limitShift as a,size as m,useTransitionStyles as d,useClick as p,useDismiss as h,useInteractions as c,FloatingPortal as g,FloatingFocusManager as f}from"@floating-ui/react";import{createContext as u,useContext as j,useRef as y}from"react";import{useResizeDetector as b}from"../../external/react-resize-detector/build/index.esm.js";import{useFloatingChild as x}from"../../overlay/use-floating-context.js";import"../../theme/theme-provider/index.js";import{useInheritedThemeScope as v}from"../../theme/theme-provider/hooks.js";import"../../theme/tokens/border.js";import{Breakpoint as w}from"../../theme/tokens/breakpoint.js";import"../../theme/tokens/colour.js";import"../../theme/tokens/font.js";import"../../theme/tokens/media-query.js";import{useSafeMaxWidthMediaQuery as k}from"../../theme/utils/media-query.js";import"../../util/calendar-helper.js";import"../../external/dayjs/dayjs.min.js";import"../../util/simple-id-generator.js";import"../../util/string-helper.js";import"@react-aria/live-announcer";import{useDesignToken as F}from"../../theme/utils/use-design-token.js";import{tokens as O}from"./element-with-dropdown.styles.js";const P=e=>"right"===e?"bottom-end":"bottom-start",H=u({elementWidth:0,styles:{},setFloatingRef:()=>{},getFloatingProps:()=>({})}),R=()=>j(H),W=({enabled:u,isOpen:j,onOpen:R,onClose:W,onDismiss:M,renderElement:q,renderDropdown:z,customZIndex:C,clickToToggle:D=!1,offset:E=0,alignment:I="left",fitAvailableHeight:S,rootNode:T,positionRef:A})=>{var N;const Z=F(w["sm-max"]),$=k(Z),B=y(null),{width:G=0}=b({targetRef:null!=A?A:B,handleHeight:!1}),J={name:"center",fn:({x:e,rects:t})=>({x:(0===e||e+t.floating.width===window.innerWidth)&&$?(window.innerWidth-t.floating.width)/2:e})},{refs:K,floatingStyles:L,context:Q}=o({open:j,onOpenChange:(e,t,i)=>{"escape-key"===i?null==M||M():e&&!j?null==R||R():!e&&j&&(null==W||W(i))},whileElementsMounted:n,placement:P(I),middleware:[r(E),l(),s({limiter:a()}),m({apply({availableHeight:e,elements:t}){!S||e>=t.floating.scrollHeight?t.floating.style.setProperty(O.availableHeight,""):t.floating.style.setProperty(O.availableHeight,`${Math.max(0,e)}px`)}}),J]}),U=x(),{isMounted:V,styles:X}=d(Q,{initial:{opacity:0},open:{opacity:1},duration:300}),{themeProps:Y,themeStyle:_}=v(V),ee=p(Q,{enabled:u,toggle:D,keyboardHandlers:D}),te=h(Q,{enabled:u}),{getReferenceProps:ie,getFloatingProps:oe}=c([ee,te]),ne={elementWidth:G,styles:Object.assign(Object.assign(Object.assign({},X),L),{zIndex:null!==(N=null!=C?C:U)&&void 0!==N?N:50}),setFloatingRef:K.setFloating,getFloatingProps:oe};return e(t,{children:[i("div",Object.assign({ref:e=>{B.current=e,K.setReference(e)}},ie(),{children:q()})),V&&i(g,{root:T,children:i(f,{context:Q,modal:!1,initialFocus:-1,returnFocus:!1,children:i(H.Provider,{value:ne,children:i("div",Object.assign({},Y,{style:_,children:z(ne)}))})})})]})};export{H as DropdownRenderContext,W as ElementWithDropdown,R as useDropdownRender};
1
+ import{jsxs as e,Fragment as t,jsx as i}from"react/jsx-runtime";import{useFloating as o,autoUpdate as n,offset as r,flip as l,shift as s,limitShift as a,size as m,useTransitionStyles as d,useClick as p,useDismiss as c,useInteractions as g,FloatingPortal as h,FloatingFocusManager as f}from"@floating-ui/react";import{createContext as u,useContext as j,useRef as y}from"react";import{useResizeDetector as b}from"../../external/react-resize-detector/build/index.esm.js";import{useFloatingChild as x}from"../../overlay/use-floating-context.js";import"../../theme/theme-provider/index.js";import{useInheritedThemeScope as v}from"../../theme/theme-provider/hooks.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"../../util/simple-id-generator.js";import"../../util/string-helper.js";import"@react-aria/live-announcer";import{useMaxWidthMediaQuery as w}from"../../theme/utils/use-media-query.js";import{tokens as k}from"./element-with-dropdown.styles.js";const F=e=>"right"===e?"bottom-end":"bottom-start",O=u({elementWidth:0,styles:{},setFloatingRef:()=>{},getFloatingProps:()=>({})}),P=()=>j(O),H=({enabled:u,isOpen:j,onOpen:P,onClose:H,onDismiss:R,renderElement:W,renderDropdown:M,customZIndex:q,clickToToggle:z=!1,offset:C=0,alignment:D="left",fitAvailableHeight:E,rootNode:I,positionRef:S})=>{var T;const A=w("sm"),N=y(null),{width:Z=0}=b({targetRef:null!=S?S:N,handleHeight:!1}),$={name:"center",fn:({x:e,rects:t})=>({x:(0===e||e+t.floating.width===window.innerWidth)&&A?(window.innerWidth-t.floating.width)/2:e})},{refs:B,floatingStyles:G,context:J}=o({open:j,onOpenChange:(e,t,i)=>{"escape-key"===i?null==R||R():e&&!j?null==P||P():!e&&j&&(null==H||H(i))},whileElementsMounted:n,placement:F(D),middleware:[r(C),l(),s({limiter:a()}),m({apply({availableHeight:e,elements:t}){!E||e>=t.floating.scrollHeight?t.floating.style.setProperty(k.availableHeight,""):t.floating.style.setProperty(k.availableHeight,`${Math.max(0,e)}px`)}}),$]}),K=x(),{isMounted:L,styles:Q}=d(J,{initial:{opacity:0},open:{opacity:1},duration:300}),{themeProps:U,themeStyle:V}=v(L),X=p(J,{enabled:u,toggle:z,keyboardHandlers:z}),Y=c(J,{enabled:u}),{getReferenceProps:_,getFloatingProps:ee}=g([X,Y]),te={elementWidth:Z,styles:Object.assign(Object.assign(Object.assign({},Q),G),{zIndex:null!==(T=null!=q?q:K)&&void 0!==T?T:50}),setFloatingRef:B.setFloating,getFloatingProps:ee};return e(t,{children:[i("div",Object.assign({ref:e=>{N.current=e,B.setReference(e)}},_(),{children:W()})),L&&i(h,{root:I,children:i(f,{context:J,modal:!1,initialFocus:-1,returnFocus:!1,children:i(O.Provider,{value:te,children:i("div",Object.assign({},U,{style:V,children:M(te)}))})})})]})};export{O as DropdownRenderContext,H as ElementWithDropdown,P as useDropdownRender};
2
2
  //# sourceMappingURL=element-with-dropdown.js.map