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

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 (684) hide show
  1. package/accordion/accordion.js.map +1 -1
  2. package/alert/alert.js.map +1 -1
  3. package/alert/types.d.ts +2 -0
  4. package/animations/loading-dots/loading-dots.d.ts +5 -2
  5. package/animations/loading-dots/loading-dots.js.map +1 -1
  6. package/animations/loading-dots-spinner/loading-dots-spinner.d.ts +3 -0
  7. package/animations/loading-dots-spinner/loading-dots-spinner.js.map +1 -1
  8. package/animations/loading-dots-spinner/lottie-animation.d.ts +2 -2
  9. package/animations/loading-dots-spinner/lottie-animation.js.map +1 -1
  10. package/animations/loading-spinner/loading-spinner.d.ts +5 -2
  11. package/animations/loading-spinner/loading-spinner.js.map +1 -1
  12. package/animations/themed-loading-spinner/themed-loading-spinner.d.ts +5 -2
  13. package/animations/themed-loading-spinner/themed-loading-spinner.js.map +1 -1
  14. package/animations/types.d.ts +13 -6
  15. package/avatar/avatar.js.map +1 -1
  16. package/badge/badge.js.map +1 -1
  17. package/badge/types.d.ts +13 -2
  18. package/box-container/box-container.js.map +1 -1
  19. package/box-container/types.d.ts +2 -0
  20. package/breadcrumb/breadcrumb.js.map +1 -1
  21. package/breadcrumb/types.d.ts +7 -2
  22. package/button/button.js.map +1 -1
  23. package/button/types.d.ts +5 -0
  24. package/calendar/calendar.js.map +1 -1
  25. package/calendar/types.d.ts +3 -3
  26. package/card/card.js.map +1 -1
  27. package/checkbox/checkbox.js.map +1 -1
  28. package/checkbox/types.d.ts +4 -0
  29. package/cjs/accordion/accordion.js.map +1 -1
  30. package/cjs/alert/alert.js.map +1 -1
  31. package/cjs/animations/loading-dots/loading-dots.js.map +1 -1
  32. package/cjs/animations/loading-dots-spinner/loading-dots-spinner.js.map +1 -1
  33. package/cjs/animations/loading-dots-spinner/lottie-animation.js.map +1 -1
  34. package/cjs/animations/loading-spinner/loading-spinner.js.map +1 -1
  35. package/cjs/animations/themed-loading-spinner/themed-loading-spinner.js.map +1 -1
  36. package/cjs/avatar/avatar.js.map +1 -1
  37. package/cjs/badge/badge.js.map +1 -1
  38. package/cjs/box-container/box-container.js.map +1 -1
  39. package/cjs/breadcrumb/breadcrumb.js.map +1 -1
  40. package/cjs/button/button.js.map +1 -1
  41. package/cjs/calendar/calendar.js.map +1 -1
  42. package/cjs/card/card.js.map +1 -1
  43. package/cjs/checkbox/checkbox.js.map +1 -1
  44. package/cjs/countdown-timer/countdown-timer.js.map +1 -1
  45. package/cjs/dashed-border/dashed-border.js.map +1 -1
  46. package/cjs/data-table/data-table.js.map +1 -1
  47. package/cjs/date-input/date-input.js.map +1 -1
  48. package/cjs/date-navigator/date-navigator.js.map +1 -1
  49. package/cjs/date-range-input/date-range-input.js.map +1 -1
  50. package/cjs/divider/divider.js.map +1 -1
  51. package/cjs/drawer/drawer.js.map +1 -1
  52. package/cjs/e-signature/e-signature.js.map +1 -1
  53. package/cjs/error-display/error-display.js.map +1 -1
  54. package/cjs/feedback-rating/feedback-rating.js.map +1 -1
  55. package/cjs/file-download/file-download.js.map +1 -1
  56. package/cjs/file-upload/file-item-edit.js.map +1 -1
  57. package/cjs/file-upload/file-list/file-list.js.map +1 -1
  58. package/cjs/file-upload/file-list-item/file-list-item.js.map +1 -1
  59. package/cjs/file-upload/file-list-item/file-list-item.styles.js +1 -1
  60. package/cjs/file-upload/file-list-item/file-list-item.styles.js.map +1 -1
  61. package/cjs/file-upload/file-list-item/{file-list-item.styles_o8000f.css → file-list-item.styles_kgtfke.css} +1 -1
  62. package/cjs/file-upload/file-upload.js.map +1 -1
  63. package/cjs/filter/addons/filter-item-checkbox-helpers.js.map +1 -1
  64. package/cjs/filter/addons/filter-item-checkbox.js.map +1 -1
  65. package/cjs/filter/filter-item.js +1 -1
  66. package/cjs/filter/filter-item.js.map +1 -1
  67. package/cjs/filter/filter.js.map +1 -1
  68. package/cjs/footer/footer.js.map +1 -1
  69. package/cjs/form/form-custom-field/form-custom-field.js +2 -0
  70. package/cjs/form/form-custom-field/form-custom-field.js.map +1 -0
  71. package/cjs/form/form-date-input/form-date-input.js +2 -0
  72. package/cjs/form/form-date-input/form-date-input.js.map +1 -0
  73. package/cjs/form/form-date-range-input/form-date-range-input.js +2 -0
  74. package/cjs/form/form-date-range-input/form-date-range-input.js.map +1 -0
  75. package/cjs/form/form-e-signature/form-e-signature.js +2 -0
  76. package/cjs/form/form-e-signature/form-e-signature.js.map +1 -0
  77. package/cjs/form/form-histogram-slider/form-histogram-slider.js +2 -0
  78. package/cjs/form/form-histogram-slider/form-histogram-slider.js.map +1 -0
  79. package/cjs/form/form-input/form-input.js +2 -0
  80. package/cjs/form/form-input/form-input.js.map +1 -0
  81. package/cjs/form/form-input-group/form-input-group.js +2 -0
  82. package/cjs/form/form-input-group/form-input-group.js.map +1 -0
  83. package/cjs/form/form-label/form-label-addon.js +2 -0
  84. package/cjs/form/form-label/form-label-addon.js.map +1 -0
  85. package/cjs/form/form-label/form-label-addon.styles.js +2 -0
  86. package/cjs/form/form-label/form-label-addon.styles.js.map +1 -0
  87. package/cjs/form/form-label/form-label-addon.styles_aztasj.css +1 -0
  88. package/cjs/form/form-label/form-label.js +2 -0
  89. package/cjs/form/form-label/form-label.js.map +1 -0
  90. package/cjs/form/form-label/form-label.styles.js +2 -0
  91. package/cjs/form/form-label/form-label.styles.js.map +1 -0
  92. package/cjs/form/form-label/form-label.styles_180zf7j.css +6 -0
  93. package/cjs/form/form-masked-input/form-masked-input.js +2 -0
  94. package/cjs/form/form-masked-input/form-masked-input.js.map +1 -0
  95. package/cjs/form/form-multi-select/form-multi-select.js +2 -0
  96. package/cjs/form/form-multi-select/form-multi-select.js.map +1 -0
  97. package/cjs/form/form-nested-multi-select/form-nested-multi-select.js +2 -0
  98. package/cjs/form/form-nested-multi-select/form-nested-multi-select.js.map +1 -0
  99. package/cjs/form/form-nested-select/form-nested-select.js +2 -0
  100. package/cjs/form/form-nested-select/form-nested-select.js.map +1 -0
  101. package/cjs/form/form-otp-verification/form-otp-verification.js +2 -0
  102. package/cjs/form/form-otp-verification/form-otp-verification.js.map +1 -0
  103. package/cjs/form/form-phone-number-input/form-phone-number-input.js +2 -0
  104. package/cjs/form/form-phone-number-input/form-phone-number-input.js.map +1 -0
  105. package/cjs/form/form-predictive-text-input/form-predictive-text-input.js +2 -0
  106. package/cjs/form/form-predictive-text-input/form-predictive-text-input.js.map +1 -0
  107. package/cjs/form/form-range-select/form-range-select.js +2 -0
  108. package/cjs/form/form-range-select/form-range-select.js.map +1 -0
  109. package/cjs/form/form-range-slider/form-range-slider.js +2 -0
  110. package/cjs/form/form-range-slider/form-range-slider.js.map +1 -0
  111. package/cjs/form/form-select/form-select.js +2 -0
  112. package/cjs/form/form-select/form-select.js.map +1 -0
  113. package/cjs/form/form-select-histogram/form-select-histogram.js +2 -0
  114. package/cjs/form/form-select-histogram/form-select-histogram.js.map +1 -0
  115. package/cjs/form/form-slider/form-slider.js +2 -0
  116. package/cjs/form/form-slider/form-slider.js.map +1 -0
  117. package/cjs/form/form-textarea/form-textarea.js +2 -0
  118. package/cjs/form/form-textarea/form-textarea.js.map +1 -0
  119. package/cjs/form/form-textarea/form-textarea.styles.js +2 -0
  120. package/cjs/form/form-textarea/form-textarea.styles.js.map +1 -0
  121. package/cjs/form/form-textarea/form-textarea.styles_1kneyif.css +3 -0
  122. package/cjs/form/form-time-range-picker/form-time-range-picker.js +2 -0
  123. package/cjs/form/form-time-range-picker/form-time-range-picker.js.map +1 -0
  124. package/cjs/form/form-timepicker/form-timepicker.js +2 -0
  125. package/cjs/form/form-timepicker/form-timepicker.js.map +1 -0
  126. package/cjs/form/form-unit-number-input/form-unit-number-input.js +2 -0
  127. package/cjs/form/form-unit-number-input/form-unit-number-input.js.map +1 -0
  128. package/cjs/form/form-wrapper.js +1 -1
  129. package/cjs/form/form-wrapper.js.map +1 -1
  130. package/cjs/form/index.js +1 -1
  131. package/cjs/form/index.js.map +1 -1
  132. package/cjs/fullscreen-image-carousel/fullscreen-image-carousel.js.map +1 -1
  133. package/cjs/histogram-slider/histogram-slider.js.map +1 -1
  134. package/cjs/image-button/image-button.js.map +1 -1
  135. package/cjs/input/input.js.map +1 -1
  136. package/cjs/input-group/input-group.js.map +1 -1
  137. package/cjs/input-multi-select/input-multi-select.js.map +1 -1
  138. package/cjs/input-nested-multi-select/input-nested-multi-select.js.map +1 -1
  139. package/cjs/input-nested-select/input-nested-select.js.map +1 -1
  140. package/cjs/input-range-select/input-range-select.js.map +1 -1
  141. package/cjs/input-range-slider/input-range-slider.js.map +1 -1
  142. package/cjs/input-select/input-select.js.map +1 -1
  143. package/cjs/input-slider/input-slider.js.map +1 -1
  144. package/cjs/input-textarea/textarea.js.map +1 -1
  145. package/cjs/input-textarea/textarea.styles.js +1 -1
  146. package/cjs/input-textarea/textarea.styles.js.map +1 -1
  147. package/cjs/input-textarea/{textarea.styles_22z4n3.css → textarea.styles_q77m5x.css} +1 -1
  148. package/cjs/language-switcher/language-switcher.js.map +1 -1
  149. package/cjs/layout/index.js.map +1 -1
  150. package/cjs/link-list/components/common.js.map +1 -1
  151. package/cjs/link-list/components/link-list-eager.js.map +1 -1
  152. package/cjs/link-list/components/link-list-lazy.js.map +1 -1
  153. package/cjs/link-list/link-list.js.map +1 -1
  154. package/cjs/local-nav/local-nav-dropdown/local-nav-dropdown.js.map +1 -1
  155. package/cjs/local-nav/local-nav-menu/local-nav-menu.js.map +1 -1
  156. package/cjs/markup/markup.js.map +1 -1
  157. package/cjs/masked-input/masked-input.js.map +1 -1
  158. package/cjs/masthead/masthead.js.map +1 -1
  159. package/cjs/menu/menu.js.map +1 -1
  160. package/cjs/modal/index.js.map +1 -1
  161. package/cjs/modal-v2/modal-v2.js.map +1 -1
  162. package/cjs/navbar/navbar.js.map +1 -1
  163. package/cjs/notification-banner/notification-banner.js.map +1 -1
  164. package/cjs/otp-input/otp-input.js +1 -1
  165. package/cjs/otp-input/otp-input.js.map +1 -1
  166. package/cjs/otp-verification/contact-input-section.js +1 -1
  167. package/cjs/otp-verification/contact-input-section.js.map +1 -1
  168. package/cjs/otp-verification/otp-verification.js.map +1 -1
  169. package/cjs/otp-verification/verification-section.js +1 -1
  170. package/cjs/otp-verification/verification-section.js.map +1 -1
  171. package/cjs/overlay/overlay.js.map +1 -1
  172. package/cjs/pagination/pagination.js.map +1 -1
  173. package/cjs/phone-number-input/phone-number-input.js.map +1 -1
  174. package/cjs/pill/pill.js.map +1 -1
  175. package/cjs/popover/popover-inline/popover-inline.js.map +1 -1
  176. package/cjs/popover/popover.js.map +1 -1
  177. package/cjs/predictive-text-input/predictive-text-input.js +1 -1
  178. package/cjs/predictive-text-input/predictive-text-input.js.map +1 -1
  179. package/cjs/progress-indicator/progress-indicator.js.map +1 -1
  180. package/cjs/radio-button/radio-button.js.map +1 -1
  181. package/cjs/schedule/schedule.js.map +1 -1
  182. package/cjs/select-histogram/select-histogram.js.map +1 -1
  183. package/cjs/shared/dropdown-list/dropdown-list.js +1 -1
  184. package/cjs/shared/dropdown-list/dropdown-list.js.map +1 -1
  185. package/cjs/shared/dropdown-wrapper/element-with-dropdown.js +1 -1
  186. package/cjs/shared/dropdown-wrapper/element-with-dropdown.js.map +1 -1
  187. package/cjs/sidenav/sidenav.js.map +1 -1
  188. package/cjs/singpass-button/singpass-button.js.map +1 -1
  189. package/cjs/smart-app-banner/smart-app-banner.js.map +1 -1
  190. package/cjs/tab/tab.js.map +1 -1
  191. package/cjs/table/table.js.map +1 -1
  192. package/cjs/tag/tag.js.map +1 -1
  193. package/cjs/text-list/index.js.map +1 -1
  194. package/cjs/theme/theme-provider/hooks.js.map +1 -1
  195. package/cjs/theme/theme-provider/index.js.map +1 -1
  196. package/cjs/theme/tokens/border.js.map +1 -1
  197. package/cjs/theme/tokens/breakpoint.js.map +1 -1
  198. package/cjs/theme/tokens/colour.js.map +1 -1
  199. package/cjs/theme/tokens/component.js.map +1 -1
  200. package/cjs/theme/tokens/font.js.map +1 -1
  201. package/cjs/theme/tokens/media-query.js.map +1 -1
  202. package/cjs/theme/tokens/motion.js.map +1 -1
  203. package/cjs/theme/tokens/radius.js.map +1 -1
  204. package/cjs/theme/tokens/shadow.js.map +1 -1
  205. package/cjs/theme/tokens/spacing.js.map +1 -1
  206. package/cjs/theme/utils/use-apply-styles.js.map +1 -1
  207. package/cjs/theme/utils/use-design-token.js.map +1 -1
  208. package/cjs/theme/utils/use-media-query.js.map +1 -1
  209. package/cjs/time-range-picker/combobox-picker/combobox-picker.js +1 -1
  210. package/cjs/time-range-picker/combobox-picker/combobox-picker.js.map +1 -1
  211. package/cjs/time-range-picker/time-range-picker.js.map +1 -1
  212. package/cjs/time-slot-bar/time-slot-bar.js.map +1 -1
  213. package/cjs/time-slot-bar-week/time-slot-bar-week.js.map +1 -1
  214. package/cjs/time-slot-week-view/time-slot-week-view.js.map +1 -1
  215. package/cjs/timeline/timeline.js.map +1 -1
  216. package/cjs/timepicker/timepicker.js.map +1 -1
  217. package/cjs/timetable/timetable.js.map +1 -1
  218. package/cjs/toast/toast.js.map +1 -1
  219. package/cjs/toggle/toggle.js.map +1 -1
  220. package/cjs/typography/index.js.map +1 -1
  221. package/cjs/uneditable-section/index.js.map +1 -1
  222. package/cjs/uneditable-section/section-item.js +1 -1
  223. package/cjs/uneditable-section/section-item.js.map +1 -1
  224. package/cjs/unit-number/unit-number-input.js.map +1 -1
  225. package/countdown-timer/countdown-timer.js.map +1 -1
  226. package/countdown-timer/types.d.ts +3 -3
  227. package/dashed-border/dashed-border.js.map +1 -1
  228. package/data-table/data-table.js.map +1 -1
  229. package/date-input/date-input.js.map +1 -1
  230. package/date-input/types.d.ts +1 -1
  231. package/date-navigator/date-navigator.js.map +1 -1
  232. package/date-navigator/types.d.ts +1 -1
  233. package/date-range-input/date-range-input.js.map +1 -1
  234. package/date-range-input/types.d.ts +1 -1
  235. package/divider/divider.js.map +1 -1
  236. package/divider/types.d.ts +1 -1
  237. package/docs/component-catalog.json +644 -0
  238. package/drawer/drawer.js.map +1 -1
  239. package/e-signature/e-signature.js.map +1 -1
  240. package/error-display/error-display.js.map +1 -1
  241. package/feedback-rating/feedback-rating.js.map +1 -1
  242. package/file-download/file-download.js.map +1 -1
  243. package/file-download/types.d.ts +6 -1
  244. package/file-upload/file-item-edit.d.ts +1 -1
  245. package/file-upload/file-item-edit.js.map +1 -1
  246. package/file-upload/file-list/file-list.d.ts +1 -1
  247. package/file-upload/file-list/file-list.js.map +1 -1
  248. package/file-upload/file-list-item/file-list-item.d.ts +1 -1
  249. package/file-upload/file-list-item/file-list-item.js.map +1 -1
  250. package/file-upload/file-list-item/file-list-item.styles.js +1 -1
  251. package/file-upload/file-list-item/file-list-item.styles.js.map +1 -1
  252. package/file-upload/file-list-item/{file-list-item.styles_o8000f.css → file-list-item.styles_kgtfke.css} +1 -1
  253. package/file-upload/file-upload.js.map +1 -1
  254. package/file-upload/types.d.ts +6 -2
  255. package/filter/addons/filter-item-checkbox-helpers.d.ts +2 -2
  256. package/filter/addons/filter-item-checkbox-helpers.js.map +1 -1
  257. package/filter/addons/filter-item-checkbox.d.ts +1 -1
  258. package/filter/addons/filter-item-checkbox.js.map +1 -1
  259. package/filter/addons/internal-types.d.ts +12 -0
  260. package/filter/addons/types.d.ts +60 -9
  261. package/filter/filter-item.js +1 -1
  262. package/filter/filter-item.js.map +1 -1
  263. package/filter/filter.d.ts +1 -1
  264. package/filter/filter.js.map +1 -1
  265. package/filter/index.d.ts +1 -0
  266. package/filter/types.d.ts +31 -63
  267. package/footer/footer.js.map +1 -1
  268. package/form/form-custom-field/form-custom-field.js +2 -0
  269. package/form/form-custom-field/form-custom-field.js.map +1 -0
  270. package/form/form-custom-field/index.d.ts +2 -0
  271. package/form/form-custom-field/types.d.ts +7 -0
  272. package/form/form-date-input/form-date-input.js +2 -0
  273. package/form/form-date-input/form-date-input.js.map +1 -0
  274. package/form/form-date-input/index.d.ts +2 -0
  275. package/form/form-date-input/types.d.ts +8 -0
  276. package/form/form-date-range-input/form-date-range-input.js +2 -0
  277. package/form/form-date-range-input/form-date-range-input.js.map +1 -0
  278. package/form/form-date-range-input/index.d.ts +2 -0
  279. package/form/form-date-range-input/types.d.ts +8 -0
  280. package/form/form-e-signature/form-e-signature.js +2 -0
  281. package/form/form-e-signature/form-e-signature.js.map +1 -0
  282. package/form/form-e-signature/index.d.ts +2 -0
  283. package/form/form-e-signature/types.d.ts +8 -0
  284. package/form/form-histogram-slider/form-histogram-slider.js +2 -0
  285. package/form/form-histogram-slider/form-histogram-slider.js.map +1 -0
  286. package/form/form-histogram-slider/index.d.ts +2 -0
  287. package/form/form-histogram-slider/types.d.ts +8 -0
  288. package/form/form-input/form-input.js +2 -0
  289. package/form/form-input/form-input.js.map +1 -0
  290. package/form/form-input/index.d.ts +2 -0
  291. package/form/form-input/types.d.ts +8 -0
  292. package/form/form-input-group/form-input-group.js +2 -0
  293. package/form/form-input-group/form-input-group.js.map +1 -0
  294. package/form/form-input-group/index.d.ts +2 -0
  295. package/form/form-input-group/types.d.ts +10 -0
  296. package/form/form-label/form-label-addon.js +2 -0
  297. package/form/form-label/form-label-addon.js.map +1 -0
  298. package/form/form-label/form-label-addon.styles.js +2 -0
  299. package/form/form-label/form-label-addon.styles.js.map +1 -0
  300. package/form/form-label/form-label-addon.styles_aztasj.css +1 -0
  301. package/form/form-label/form-label.js +2 -0
  302. package/form/form-label/form-label.js.map +1 -0
  303. package/form/form-label/form-label.styles.js +2 -0
  304. package/form/form-label/form-label.styles.js.map +1 -0
  305. package/form/form-label/form-label.styles_180zf7j.css +6 -0
  306. package/form/form-label/index.d.ts +2 -0
  307. package/form/form-label/types.d.ts +39 -0
  308. package/form/form-masked-input/form-masked-input.js +2 -0
  309. package/form/form-masked-input/form-masked-input.js.map +1 -0
  310. package/form/form-masked-input/index.d.ts +2 -0
  311. package/form/form-masked-input/types.d.ts +8 -0
  312. package/form/form-multi-select/form-multi-select.js +2 -0
  313. package/form/form-multi-select/form-multi-select.js.map +1 -0
  314. package/form/form-multi-select/index.d.ts +2 -0
  315. package/form/form-multi-select/types.d.ts +10 -0
  316. package/form/form-nested-multi-select/form-nested-multi-select.js +2 -0
  317. package/form/form-nested-multi-select/form-nested-multi-select.js.map +1 -0
  318. package/form/form-nested-multi-select/index.d.ts +2 -0
  319. package/form/form-nested-multi-select/types.d.ts +11 -0
  320. package/form/form-nested-select/form-nested-select.js +2 -0
  321. package/form/form-nested-select/form-nested-select.js.map +1 -0
  322. package/form/form-nested-select/index.d.ts +2 -0
  323. package/form/form-nested-select/types.d.ts +11 -0
  324. package/form/{form-otp-verification.d.ts → form-otp-verification/form-otp-verification.d.ts} +1 -1
  325. package/form/form-otp-verification/form-otp-verification.js +2 -0
  326. package/form/form-otp-verification/form-otp-verification.js.map +1 -0
  327. package/form/form-otp-verification/index.d.ts +2 -0
  328. package/form/form-otp-verification/types.d.ts +1 -0
  329. package/form/form-phone-number-input/form-phone-number-input.js +2 -0
  330. package/form/form-phone-number-input/form-phone-number-input.js.map +1 -0
  331. package/form/form-phone-number-input/index.d.ts +2 -0
  332. package/form/form-phone-number-input/types.d.ts +8 -0
  333. package/form/form-predictive-text-input/form-predictive-text-input.js +2 -0
  334. package/form/form-predictive-text-input/form-predictive-text-input.js.map +1 -0
  335. package/form/form-predictive-text-input/index.d.ts +2 -0
  336. package/form/form-predictive-text-input/types.d.ts +10 -0
  337. package/form/form-range-select/form-range-select.js +2 -0
  338. package/form/form-range-select/form-range-select.js.map +1 -0
  339. package/form/form-range-select/index.d.ts +2 -0
  340. package/form/form-range-select/types.d.ts +10 -0
  341. package/form/form-range-slider/form-range-slider.js +2 -0
  342. package/form/form-range-slider/form-range-slider.js.map +1 -0
  343. package/form/form-range-slider/index.d.ts +2 -0
  344. package/form/form-range-slider/types.d.ts +8 -0
  345. package/form/form-select/form-select.js +2 -0
  346. package/form/form-select/form-select.js.map +1 -0
  347. package/form/form-select/index.d.ts +2 -0
  348. package/form/form-select/types.d.ts +10 -0
  349. package/form/form-select-histogram/form-select-histogram.js +2 -0
  350. package/form/form-select-histogram/form-select-histogram.js.map +1 -0
  351. package/form/form-select-histogram/index.d.ts +2 -0
  352. package/form/form-select-histogram/types.d.ts +8 -0
  353. package/form/form-slider/form-slider.js +2 -0
  354. package/form/form-slider/form-slider.js.map +1 -0
  355. package/form/form-slider/index.d.ts +2 -0
  356. package/form/form-slider/types.d.ts +8 -0
  357. package/form/form-textarea/form-textarea.js +2 -0
  358. package/form/form-textarea/form-textarea.js.map +1 -0
  359. package/form/form-textarea/form-textarea.styles.js +2 -0
  360. package/form/form-textarea/form-textarea.styles.js.map +1 -0
  361. package/form/form-textarea/form-textarea.styles_1kneyif.css +3 -0
  362. package/form/form-textarea/index.d.ts +2 -0
  363. package/form/form-textarea/types.d.ts +8 -0
  364. package/form/form-time-range-picker/form-time-range-picker.js +2 -0
  365. package/form/form-time-range-picker/form-time-range-picker.js.map +1 -0
  366. package/form/form-time-range-picker/index.d.ts +2 -0
  367. package/form/form-time-range-picker/types.d.ts +8 -0
  368. package/form/form-timepicker/form-timepicker.js +2 -0
  369. package/form/form-timepicker/form-timepicker.js.map +1 -0
  370. package/form/form-timepicker/index.d.ts +2 -0
  371. package/form/form-timepicker/types.d.ts +8 -0
  372. package/form/form-unit-number-input/form-unit-number-input.js +2 -0
  373. package/form/form-unit-number-input/form-unit-number-input.js.map +1 -0
  374. package/form/form-unit-number-input/index.d.ts +2 -0
  375. package/form/form-unit-number-input/types.d.ts +8 -0
  376. package/form/form-wrapper.js +1 -1
  377. package/form/form-wrapper.js.map +1 -1
  378. package/form/index.d.ts +47 -24
  379. package/form/index.js +1 -1
  380. package/form/index.js.map +1 -1
  381. package/form/types.d.ts +1 -208
  382. package/fullscreen-image-carousel/fullscreen-image-carousel.js.map +1 -1
  383. package/histogram-slider/histogram-slider.js.map +1 -1
  384. package/image-button/image-button.js.map +1 -1
  385. package/input/input.js.map +1 -1
  386. package/input-group/input-group.js.map +1 -1
  387. package/input-group/types.d.ts +1 -1
  388. package/input-multi-select/input-multi-select.js.map +1 -1
  389. package/input-multi-select/types.d.ts +1 -1
  390. package/input-nested-multi-select/input-nested-multi-select.js.map +1 -1
  391. package/input-nested-select/input-nested-select.js.map +1 -1
  392. package/input-nested-select/types.d.ts +1 -1
  393. package/input-range-select/input-range-select.js.map +1 -1
  394. package/input-range-select/types.d.ts +1 -1
  395. package/input-range-slider/input-range-slider.js.map +1 -1
  396. package/input-select/input-select.js.map +1 -1
  397. package/input-select/types.d.ts +1 -1
  398. package/input-slider/input-slider.js.map +1 -1
  399. package/input-slider/types.d.ts +1 -1
  400. package/input-textarea/textarea.js.map +1 -1
  401. package/input-textarea/textarea.styles.js +1 -1
  402. package/input-textarea/textarea.styles.js.map +1 -1
  403. package/input-textarea/{textarea.styles_22z4n3.css → textarea.styles_q77m5x.css} +1 -1
  404. package/language-switcher/language-switcher.js.map +1 -1
  405. package/layout/index.js.map +1 -1
  406. package/link-list/components/common.d.ts +1 -1
  407. package/link-list/components/common.js.map +1 -1
  408. package/link-list/components/link-list-eager.d.ts +2 -2
  409. package/link-list/components/link-list-eager.js.map +1 -1
  410. package/link-list/components/link-list-lazy.d.ts +2 -2
  411. package/link-list/components/link-list-lazy.js.map +1 -1
  412. package/link-list/link-list.js.map +1 -1
  413. package/link-list/types.d.ts +89 -3
  414. package/local-nav/local-nav-dropdown/local-nav-dropdown.js.map +1 -1
  415. package/local-nav/local-nav-menu/local-nav-menu.js.map +1 -1
  416. package/markup/markup.js.map +1 -1
  417. package/masked-input/masked-input.js.map +1 -1
  418. package/masthead/masthead.js.map +1 -1
  419. package/menu/menu.js.map +1 -1
  420. package/menu/types.d.ts +17 -1
  421. package/modal/index.js.map +1 -1
  422. package/modal/types.d.ts +3 -1
  423. package/modal-v2/modal-v2.js.map +1 -1
  424. package/modal-v2/types.d.ts +17 -0
  425. package/navbar/navbar.js.map +1 -1
  426. package/navbar/types.d.ts +1 -0
  427. package/notification-banner/notification-banner.js.map +1 -1
  428. package/otp-input/otp-input.js +1 -1
  429. package/otp-input/otp-input.js.map +1 -1
  430. package/otp-input/types.d.ts +14 -9
  431. package/otp-verification/contact-input-section.js +1 -1
  432. package/otp-verification/contact-input-section.js.map +1 -1
  433. package/otp-verification/otp-verification.js.map +1 -1
  434. package/otp-verification/verification-section.js +1 -1
  435. package/otp-verification/verification-section.js.map +1 -1
  436. package/overlay/overlay.js.map +1 -1
  437. package/package.json +1 -1
  438. package/pagination/pagination.js.map +1 -1
  439. package/phone-number-input/phone-number-input.js.map +1 -1
  440. package/pill/pill.js.map +1 -1
  441. package/popover/popover-inline/index.d.ts +1 -0
  442. package/popover/popover-inline/popover-inline.d.ts +1 -1
  443. package/popover/popover-inline/popover-inline.js.map +1 -1
  444. package/popover/popover-inline/types.d.ts +36 -0
  445. package/popover/popover.js.map +1 -1
  446. package/popover/types.d.ts +2 -35
  447. package/predictive-text-input/predictive-text-input.js +1 -1
  448. package/predictive-text-input/predictive-text-input.js.map +1 -1
  449. package/predictive-text-input/types.d.ts +1 -1
  450. package/progress-indicator/progress-indicator.js.map +1 -1
  451. package/radio-button/radio-button.js.map +1 -1
  452. package/radio-button/types.d.ts +3 -0
  453. package/schedule/schedule.js.map +1 -1
  454. package/select-histogram/select-histogram.js.map +1 -1
  455. package/select-histogram/types.d.ts +1 -1
  456. package/shared/dropdown-list/dropdown-list.js +1 -1
  457. package/shared/dropdown-list/dropdown-list.js.map +1 -1
  458. package/shared/dropdown-wrapper/element-with-dropdown.d.ts +5 -4
  459. package/shared/dropdown-wrapper/element-with-dropdown.js +1 -1
  460. package/shared/dropdown-wrapper/element-with-dropdown.js.map +1 -1
  461. package/sidenav/sidenav.js.map +1 -1
  462. package/sidenav/types.d.ts +1 -0
  463. package/singpass-button/singpass-button.js.map +1 -1
  464. package/smart-app-banner/smart-app-banner.js.map +1 -1
  465. package/smart-app-banner/types.d.ts +2 -0
  466. package/tab/tab.js.map +1 -1
  467. package/table/table.d.ts +9 -8
  468. package/table/table.js.map +1 -1
  469. package/table/types.d.ts +35 -0
  470. package/tag/tag.js.map +1 -1
  471. package/text-list/index.js.map +1 -1
  472. package/theme/theme-provider/hooks.js.map +1 -1
  473. package/theme/theme-provider/index.js.map +1 -1
  474. package/theme/tokens/border.d.ts +9 -3
  475. package/theme/tokens/border.js.map +1 -1
  476. package/theme/tokens/breakpoint.js.map +1 -1
  477. package/theme/tokens/colour.d.ts +9 -3
  478. package/theme/tokens/colour.js.map +1 -1
  479. package/theme/tokens/component.d.ts +3 -1
  480. package/theme/tokens/component.js.map +1 -1
  481. package/theme/tokens/font.d.ts +6 -2
  482. package/theme/tokens/font.js.map +1 -1
  483. package/theme/tokens/media-query.d.ts +3 -1
  484. package/theme/tokens/media-query.js.map +1 -1
  485. package/theme/tokens/motion.d.ts +3 -1
  486. package/theme/tokens/motion.js.map +1 -1
  487. package/theme/tokens/radius.d.ts +3 -1
  488. package/theme/tokens/radius.js.map +1 -1
  489. package/theme/tokens/shadow.d.ts +3 -1
  490. package/theme/tokens/shadow.js.map +1 -1
  491. package/theme/tokens/spacing.d.ts +3 -1
  492. package/theme/tokens/spacing.js.map +1 -1
  493. package/theme/utils/use-apply-styles.js.map +1 -1
  494. package/theme/utils/use-design-token.js.map +1 -1
  495. package/theme/utils/use-media-query.js.map +1 -1
  496. package/time-range-picker/combobox-picker/combobox-picker.js +1 -1
  497. package/time-range-picker/combobox-picker/combobox-picker.js.map +1 -1
  498. package/time-range-picker/time-range-picker.js.map +1 -1
  499. package/time-range-picker/types.d.ts +1 -1
  500. package/time-slot-bar/time-slot-bar.js.map +1 -1
  501. package/time-slot-bar/types.d.ts +5 -1
  502. package/time-slot-bar-week/time-slot-bar-week.js.map +1 -1
  503. package/time-slot-bar-week/types.d.ts +6 -0
  504. package/time-slot-week-view/time-slot-week-view.js.map +1 -1
  505. package/time-slot-week-view/types.d.ts +2 -0
  506. package/timeline/timeline.js.map +1 -1
  507. package/timeline/types.d.ts +1 -1
  508. package/timepicker/timepicker.js.map +1 -1
  509. package/timepicker/types.d.ts +2 -2
  510. package/timetable/timetable.js.map +1 -1
  511. package/toast/toast.js.map +1 -1
  512. package/toast/types.d.ts +2 -0
  513. package/toggle/toggle.js.map +1 -1
  514. package/tools/shared/generated-file-formatter.d.ts +6 -0
  515. package/tools/shared/jsdoc-parser.d.ts +36 -0
  516. package/tools/shared/ts-morph-project-factory.d.ts +9 -0
  517. package/tools/shared/typescript-source-provider.d.ts +9 -0
  518. package/tools/storybook-argtypes/adapters/file-system-adapter.d.ts +69 -0
  519. package/tools/storybook-argtypes/arg-types-generator.d.ts +85 -0
  520. package/tools/storybook-argtypes/config/arg-types-config.d.ts +31 -0
  521. package/tools/storybook-argtypes/index.d.ts +11 -0
  522. package/tools/storybook-argtypes/services/arg-types-row-builder.d.ts +43 -0
  523. package/tools/storybook-argtypes/services/file-path-resolver.d.ts +118 -0
  524. package/tools/storybook-argtypes/services/index.d.ts +6 -0
  525. package/tools/storybook-argtypes/services/jsdoc-metadata-extractor.d.ts +33 -0
  526. package/tools/storybook-argtypes/services/story-registry-generator.d.ts +27 -0
  527. package/tools/storybook-argtypes/services/type-dependency-resolver.d.ts +46 -0
  528. package/tools/storybook-argtypes/services/type-formatting-service.d.ts +27 -0
  529. package/tools/storybook-argtypes/types.d.ts +102 -0
  530. package/typography/index.js.map +1 -1
  531. package/uneditable-section/index.js.map +1 -1
  532. package/uneditable-section/section-item.js +1 -1
  533. package/uneditable-section/section-item.js.map +1 -1
  534. package/uneditable-section/types.d.ts +2 -2
  535. package/unit-number/unit-number-input.js.map +1 -1
  536. package/cjs/form/form-custom-field.js +0 -2
  537. package/cjs/form/form-custom-field.js.map +0 -1
  538. package/cjs/form/form-date-input.js +0 -2
  539. package/cjs/form/form-date-input.js.map +0 -1
  540. package/cjs/form/form-date-range-input.js +0 -2
  541. package/cjs/form/form-date-range-input.js.map +0 -1
  542. package/cjs/form/form-e-signature.js +0 -2
  543. package/cjs/form/form-e-signature.js.map +0 -1
  544. package/cjs/form/form-histogram.js +0 -2
  545. package/cjs/form/form-histogram.js.map +0 -1
  546. package/cjs/form/form-input-group.js +0 -2
  547. package/cjs/form/form-input-group.js.map +0 -1
  548. package/cjs/form/form-input.js +0 -2
  549. package/cjs/form/form-input.js.map +0 -1
  550. package/cjs/form/form-label-addon.js +0 -2
  551. package/cjs/form/form-label-addon.js.map +0 -1
  552. package/cjs/form/form-label-addon.styles.js +0 -2
  553. package/cjs/form/form-label-addon.styles.js.map +0 -1
  554. package/cjs/form/form-label-addon.styles_b00z8p.css +0 -1
  555. package/cjs/form/form-label.js +0 -2
  556. package/cjs/form/form-label.js.map +0 -1
  557. package/cjs/form/form-label.styles.js +0 -2
  558. package/cjs/form/form-label.styles.js.map +0 -1
  559. package/cjs/form/form-label.styles_1nbe0bm.css +0 -6
  560. package/cjs/form/form-masked-input.js +0 -2
  561. package/cjs/form/form-masked-input.js.map +0 -1
  562. package/cjs/form/form-multi-select.js +0 -2
  563. package/cjs/form/form-multi-select.js.map +0 -1
  564. package/cjs/form/form-nested-multi-select.js +0 -2
  565. package/cjs/form/form-nested-multi-select.js.map +0 -1
  566. package/cjs/form/form-nested-select.js +0 -2
  567. package/cjs/form/form-nested-select.js.map +0 -1
  568. package/cjs/form/form-otp-verification.js +0 -2
  569. package/cjs/form/form-otp-verification.js.map +0 -1
  570. package/cjs/form/form-phone-number-input.js +0 -2
  571. package/cjs/form/form-phone-number-input.js.map +0 -1
  572. package/cjs/form/form-predictive-text-input.js +0 -2
  573. package/cjs/form/form-predictive-text-input.js.map +0 -1
  574. package/cjs/form/form-range-select.js +0 -2
  575. package/cjs/form/form-range-select.js.map +0 -1
  576. package/cjs/form/form-range-slider.js +0 -2
  577. package/cjs/form/form-range-slider.js.map +0 -1
  578. package/cjs/form/form-select-histogram.js +0 -2
  579. package/cjs/form/form-select-histogram.js.map +0 -1
  580. package/cjs/form/form-select.js +0 -2
  581. package/cjs/form/form-select.js.map +0 -1
  582. package/cjs/form/form-slider.js +0 -2
  583. package/cjs/form/form-slider.js.map +0 -1
  584. package/cjs/form/form-textarea.js +0 -2
  585. package/cjs/form/form-textarea.js.map +0 -1
  586. package/cjs/form/form-textarea.styles.js +0 -2
  587. package/cjs/form/form-textarea.styles.js.map +0 -1
  588. package/cjs/form/form-textarea.styles_3p9qoy.css +0 -3
  589. package/cjs/form/form-time-range-picker.js +0 -2
  590. package/cjs/form/form-time-range-picker.js.map +0 -1
  591. package/cjs/form/form-timepicker.js +0 -2
  592. package/cjs/form/form-timepicker.js.map +0 -1
  593. package/cjs/form/form-unit-number-input.js +0 -2
  594. package/cjs/form/form-unit-number-input.js.map +0 -1
  595. package/form/form-custom-field.js +0 -2
  596. package/form/form-custom-field.js.map +0 -1
  597. package/form/form-date-input.js +0 -2
  598. package/form/form-date-input.js.map +0 -1
  599. package/form/form-date-range-input.js +0 -2
  600. package/form/form-date-range-input.js.map +0 -1
  601. package/form/form-e-signature.js +0 -2
  602. package/form/form-e-signature.js.map +0 -1
  603. package/form/form-histogram.js +0 -2
  604. package/form/form-histogram.js.map +0 -1
  605. package/form/form-input-group.js +0 -2
  606. package/form/form-input-group.js.map +0 -1
  607. package/form/form-input.js +0 -2
  608. package/form/form-input.js.map +0 -1
  609. package/form/form-label-addon.js +0 -2
  610. package/form/form-label-addon.js.map +0 -1
  611. package/form/form-label-addon.styles.js +0 -2
  612. package/form/form-label-addon.styles.js.map +0 -1
  613. package/form/form-label-addon.styles_b00z8p.css +0 -1
  614. package/form/form-label.js +0 -2
  615. package/form/form-label.js.map +0 -1
  616. package/form/form-label.styles.js +0 -2
  617. package/form/form-label.styles.js.map +0 -1
  618. package/form/form-label.styles_1nbe0bm.css +0 -6
  619. package/form/form-masked-input.js +0 -2
  620. package/form/form-masked-input.js.map +0 -1
  621. package/form/form-multi-select.js +0 -2
  622. package/form/form-multi-select.js.map +0 -1
  623. package/form/form-nested-multi-select.js +0 -2
  624. package/form/form-nested-multi-select.js.map +0 -1
  625. package/form/form-nested-select.js +0 -2
  626. package/form/form-nested-select.js.map +0 -1
  627. package/form/form-otp-verification.js +0 -2
  628. package/form/form-otp-verification.js.map +0 -1
  629. package/form/form-phone-number-input.js +0 -2
  630. package/form/form-phone-number-input.js.map +0 -1
  631. package/form/form-predictive-text-input.js +0 -2
  632. package/form/form-predictive-text-input.js.map +0 -1
  633. package/form/form-range-select.js +0 -2
  634. package/form/form-range-select.js.map +0 -1
  635. package/form/form-range-slider.js +0 -2
  636. package/form/form-range-slider.js.map +0 -1
  637. package/form/form-select-histogram.js +0 -2
  638. package/form/form-select-histogram.js.map +0 -1
  639. package/form/form-select.js +0 -2
  640. package/form/form-select.js.map +0 -1
  641. package/form/form-slider.js +0 -2
  642. package/form/form-slider.js.map +0 -1
  643. package/form/form-textarea.js +0 -2
  644. package/form/form-textarea.js.map +0 -1
  645. package/form/form-textarea.styles.js +0 -2
  646. package/form/form-textarea.styles.js.map +0 -1
  647. package/form/form-textarea.styles_3p9qoy.css +0 -3
  648. package/form/form-time-range-picker.js +0 -2
  649. package/form/form-time-range-picker.js.map +0 -1
  650. package/form/form-timepicker.js +0 -2
  651. package/form/form-timepicker.js.map +0 -1
  652. package/form/form-unit-number-input.js +0 -2
  653. package/form/form-unit-number-input.js.map +0 -1
  654. package/link-list/internal-types.d.ts +0 -85
  655. /package/{codemod-utils.d.ts → codemods/codemod-utils.d.ts} +0 -0
  656. /package/{migrate-popover → codemods/migrate-popover}/index.d.ts +0 -0
  657. /package/{run-codemod.d.ts → codemods/run-codemod.d.ts} +0 -0
  658. /package/form/{form-custom-field.d.ts → form-custom-field/form-custom-field.d.ts} +0 -0
  659. /package/form/{form-date-input.d.ts → form-date-input/form-date-input.d.ts} +0 -0
  660. /package/form/{form-date-range-input.d.ts → form-date-range-input/form-date-range-input.d.ts} +0 -0
  661. /package/form/{form-e-signature.d.ts → form-e-signature/form-e-signature.d.ts} +0 -0
  662. /package/form/{form-histogram.d.ts → form-histogram-slider/form-histogram-slider.d.ts} +0 -0
  663. /package/form/{form-input.d.ts → form-input/form-input.d.ts} +0 -0
  664. /package/form/{form-input-group.d.ts → form-input-group/form-input-group.d.ts} +0 -0
  665. /package/form/{form-label-addon.d.ts → form-label/form-label-addon.d.ts} +0 -0
  666. /package/form/{form-label-addon.styles.d.ts → form-label/form-label-addon.styles.d.ts} +0 -0
  667. /package/form/{form-label.d.ts → form-label/form-label.d.ts} +0 -0
  668. /package/form/{form-label.styles.d.ts → form-label/form-label.styles.d.ts} +0 -0
  669. /package/form/{form-masked-input.d.ts → form-masked-input/form-masked-input.d.ts} +0 -0
  670. /package/form/{form-multi-select.d.ts → form-multi-select/form-multi-select.d.ts} +0 -0
  671. /package/form/{form-nested-multi-select.d.ts → form-nested-multi-select/form-nested-multi-select.d.ts} +0 -0
  672. /package/form/{form-nested-select.d.ts → form-nested-select/form-nested-select.d.ts} +0 -0
  673. /package/form/{form-phone-number-input.d.ts → form-phone-number-input/form-phone-number-input.d.ts} +0 -0
  674. /package/form/{form-predictive-text-input.d.ts → form-predictive-text-input/form-predictive-text-input.d.ts} +0 -0
  675. /package/form/{form-range-select.d.ts → form-range-select/form-range-select.d.ts} +0 -0
  676. /package/form/{form-range-slider.d.ts → form-range-slider/form-range-slider.d.ts} +0 -0
  677. /package/form/{form-select.d.ts → form-select/form-select.d.ts} +0 -0
  678. /package/form/{form-select-histogram.d.ts → form-select-histogram/form-select-histogram.d.ts} +0 -0
  679. /package/form/{form-slider.d.ts → form-slider/form-slider.d.ts} +0 -0
  680. /package/form/{form-textarea.d.ts → form-textarea/form-textarea.d.ts} +0 -0
  681. /package/form/{form-textarea.styles.d.ts → form-textarea/form-textarea.styles.d.ts} +0 -0
  682. /package/form/{form-time-range-picker.d.ts → form-time-range-picker/form-time-range-picker.d.ts} +0 -0
  683. /package/form/{form-timepicker.d.ts → form-timepicker/form-timepicker.d.ts} +0 -0
  684. /package/form/{form-unit-number-input.d.ts → form-unit-number-input/form-unit-number-input.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"smart-app-banner.js","sources":["../../../src/smart-app-banner/smart-app-banner.tsx"],"sourcesContent":["import { CrossIcon } from \"@lifesg/react-icons/cross\";\nimport { StarIcon } from \"@lifesg/react-icons/star\";\nimport { StarFillIcon } from \"@lifesg/react-icons/star-fill\";\nimport { StarHalfIcon } from \"@lifesg/react-icons/star-half\";\nimport clsx from \"clsx\";\nimport React, { useContext, useRef } from \"react\";\n\nimport { Button } from \"../button\";\nimport { ClickableIcon } from \"../shared/clickable-icon\";\nimport { useApplyStyle } from \"../theme\";\nimport { ThemeContext } from \"../theme/theme-provider/context\";\nimport { Typography } from \"../typography\";\nimport { mergeRefs } from \"../util\";\nimport * as styles from \"./smart-app-banner.styles\";\nimport type { SmartAppBannerProps } from \"./types\";\n\nconst APP_ICON =\n \"https://assets.life.gov.sg/react-design-system/img/app-icon/app-icon.png\";\n\nconst ID = \"smart-app-banner\";\nconst MAX_STARS = 5;\n\nfunction SmartAppBannerComponent(\n props: SmartAppBannerProps,\n ref: React.Ref<HTMLDivElement>\n): JSX.Element {\n // =============================================================================\n // CONST, STATE, REF\n // =============================================================================\n const {\n className,\n show,\n href,\n content,\n offset = 0,\n icon = APP_ICON,\n animated = false,\n onDismiss,\n onClick,\n } = props;\n\n const {\n title,\n message,\n buttonLabel,\n iconAriaLabel,\n buttonAriaLabel,\n numberOfStars,\n } = content;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const theme = useContext(ThemeContext);\n const isDark = theme?.mode === \"dark\";\n\n useApplyStyle(containerRef, {\n [styles.tokens.container.top]: `${offset}px`,\n });\n\n const ariaLabels = {\n dismiss: \"Close banner\",\n icon: iconAriaLabel ?? \"\",\n cta: buttonAriaLabel ?? buttonLabel,\n };\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleClick = (\n e: React.MouseEvent<HTMLDivElement | HTMLButtonElement>\n ) => {\n e.stopPropagation();\n window.open(href, \"_blank\", \"noreferrer\");\n onClick?.();\n };\n\n // =============================================================================\n // RENDER FUNCTION\n // =============================================================================\n\n const generateStarRating = () => {\n if (isNaN(numberOfStars) || numberOfStars < 0) {\n return;\n }\n\n const stars = [];\n const hasHalfStar = numberOfStars - Math.floor(numberOfStars) >= 0.4;\n\n for (let i = 0; i < Math.floor(numberOfStars); i++) {\n stars.push(\n <StarFillIcon\n key={`star${i}`}\n aria-hidden\n className={styles.starIcon}\n />\n );\n }\n if (hasHalfStar) {\n stars.push(\n <StarHalfIcon\n key={`halfstar`}\n aria-hidden\n className={styles.starIcon}\n />\n );\n }\n if (stars.length < MAX_STARS) {\n const remaining = 5 - stars.length;\n for (let i = 0; i < remaining; i++) {\n stars.push(\n <StarIcon\n key={`emptystar${i}`}\n aria-hidden\n className={styles.starIcon}\n />\n );\n }\n }\n\n /* maximum of 5 stars */\n return (\n <div\n className={styles.ratingContainer}\n role=\"group\"\n aria-label={`A rating of ${numberOfStars} out of ${MAX_STARS} stars`}\n data-testid={`${ID}-star-rating`}\n >\n {stars.slice(0, MAX_STARS)}\n </div>\n );\n };\n\n return (\n <>\n {show && (\n <div\n ref={mergeRefs(containerRef, ref)}\n data-testid={ID}\n className={clsx(\n styles.smartAppBannerContainer,\n isDark\n ? styles.smartAppBannerContainerDark\n : styles.smartAppBannerContainerLight,\n animated && styles.smartAppBannerContainerAnimated,\n className\n )}\n >\n <div\n className={styles.proceedContainer}\n onClick={handleClick}\n id={`${ID}-proceed`}\n data-testid={`${ID}-proceed-container`}\n >\n <img\n className={styles.bannerIcon}\n src={icon}\n alt={ariaLabels.icon}\n />\n <div className={styles.textContainer}>\n <Typography.BodySM className={styles.title}>\n {title}\n </Typography.BodySM>\n <Typography.BodyXS className={styles.description}>\n {message}\n </Typography.BodyXS>\n {generateStarRating()}\n </div>\n <div className={styles.buttonContainer}>\n <Button\n className={styles.button}\n type=\"button\"\n onClick={handleClick}\n aria-label={ariaLabels.cta}\n sizeType=\"small\"\n >\n {buttonLabel}\n </Button>\n </div>\n </div>\n <div\n className={styles.dismissContainer}\n onClick={onDismiss}\n id={`${ID}-dismiss`}\n data-testid={`${ID}-dismiss-container`}\n >\n <ClickableIcon\n className={styles.dismissButton}\n aria-label={ariaLabels.dismiss}\n >\n <CrossIcon className={styles.cross} />\n </ClickableIcon>\n </div>\n </div>\n )}\n </>\n );\n}\n\n/**\n * A fixed top banner that promotes a mobile app and links to its store listing.\n *\n * Use `SmartAppBanner` to invite users to install or open the native app.\n */\nexport const SmartAppBanner = React.forwardRef(SmartAppBannerComponent);\n"],"names":["APP_ICON","ID","SmartAppBanner","React","forwardRef","props","ref","className","show","href","content","offset","icon","animated","onDismiss","onClick","title","message","buttonLabel","iconAriaLabel","buttonAriaLabel","numberOfStars","containerRef","useRef","theme","useContext","ThemeContext","isDark","mode","useApplyStyle","styles.tokens","container","top","ariaLabels","dismiss","cta","handleClick","e","stopPropagation","window","open","_jsx","_Fragment","children","_jsxs","mergeRefs","clsx","styles.smartAppBannerContainer","styles.smartAppBannerContainerDark","styles.smartAppBannerContainerLight","styles.smartAppBannerContainerAnimated","styles.proceedContainer","id","styles.bannerIcon","src","alt","styles.textContainer","Typography","BodySM","styles.title","BodyXS","styles.description","isNaN","stars","hasHalfStar","Math","floor","i","push","StarFillIcon","styles.starIcon","StarHalfIcon","length","remaining","StarIcon","styles.ratingContainer","role","slice","generateStarRating","styles.buttonContainer","Button","styles.button","type","sizeType","styles.dismissContainer","ClickableIcon","styles.dismissButton","CrossIcon","styles.cross"],"mappings":"6jCAgBA,MAAMA,EACF,2EAEEC,EAAK,mBAsLJ,MAAMC,OAAiBC,QAAMC,YAnLpC,SACIC,EACAC,GAKA,MAAMC,UACFA,EAASC,KACTA,EAAIC,KACJA,EAAIC,QACJA,EAAOC,OACPA,EAAS,EAACC,KACVA,EAAOZ,EAAQa,SACfA,GAAW,EAAKC,UAChBA,EAASC,QACTA,GACAV,GAEEW,MACFA,EAAKC,QACLA,EAAOC,YACPA,EAAWC,cACXA,EAAaC,gBACbA,EAAeC,cACfA,GACAX,EAEEY,EAAeC,EAAAA,OAAuB,MACtCC,EAAQC,EAAAA,WAAWC,gBACnBC,EAAyB,UAAhBH,aAAK,EAALA,EAAOI,MAEtBC,EAAAA,cAAcP,EAAc,CACxB,CAACQ,EAAAA,OAAcC,UAAUC,KAAM,GAAGrB,QAGtC,MAAMsB,EAAa,CACfC,QAAS,eACTtB,KAAMO,QAAAA,EAAiB,GACvBgB,IAAKf,QAAAA,EAAmBF,GAKtBkB,EACFC,IAEAA,EAAEC,kBACFC,OAAOC,KAAK/B,EAAM,SAAU,cAC5BM,SAAAA,GAAW,EA2Df,OACI0B,EAAAA,IAAAC,EAAAA,SAAA,CAAAC,SACKnC,GACGoC,EAAAA,YACItC,IAAKuC,EAAAA,UAAUvB,EAAchB,GAAI,cACpBL,EACbM,UAAWuC,EAAAA,QACPC,0BACApB,EACMqB,EAAAA,4BACAC,EAAAA,6BACNpC,GAAYqC,EAAAA,gCACZ3C,GACHoC,SAAA,CAEDC,EAAAA,YACIrC,UAAW4C,EAAAA,iBACXpC,QAASqB,EACTgB,GAAI,GAAGnD,YAAY,cACN,GAAGA,gCAEhBwC,EAAAA,IAAA,MAAA,CACIlC,UAAW8C,EAAAA,WACXC,IAAK1C,EACL2C,IAAKtB,EAAWrB,OAEpBgC,EAAAA,KAAA,MAAA,CAAKrC,UAAWiD,EAAAA,cAAoBb,SAAA,CAChCF,EAAAA,IAACgB,EAAAA,WAAWC,OAAM,CAACnD,UAAWoD,QAAYhB,SACrC3B,IAELyB,EAAAA,IAACgB,EAAAA,WAAWG,OAAM,CAACrD,UAAWsD,EAAAA,YAAkBlB,SAC3C1B,IAnFF,MACvB,GAAI6C,MAAMzC,IAAkBA,EAAgB,EACxC,OAGJ,MAAM0C,EAAQ,GACRC,EAAc3C,EAAgB4C,KAAKC,MAAM7C,IAAkB,GAEjE,IAAK,IAAI8C,EAAI,EAAGA,EAAIF,KAAKC,MAAM7C,GAAgB8C,IAC3CJ,EAAMK,KACF3B,EAAAA,IAAC4B,EAAAA,+BAGG9D,UAAW+D,EAAAA,UAFN,OAAOH,MAexB,GATIH,GACAD,EAAMK,KACF3B,MAAC8B,EAAAA,aAAY,CAAA,eAAA,EAGThE,UAAW+D,EAAAA,UAFN,aAMbP,EAAMS,OApFA,EAoFoB,CAC1B,MAAMC,EAAY,EAAIV,EAAMS,OAC5B,IAAK,IAAIL,EAAI,EAAGA,EAAIM,EAAWN,IAC3BJ,EAAMK,KACF3B,EAAAA,IAACiC,EAAAA,2BAGGnE,UAAW+D,EAAAA,UAFN,YAAYH,KAMjC,CAGA,OACI1B,MAAA,MAAA,CACIlC,UAAWoE,EAAAA,gBACXC,KAAK,QAAO,aACA,eAAevD,mBAAyC,cACvD,GAAGpB,gBAAgB0C,SAE/BoB,EAAMc,MAAM,EAzGX,IA0GA,EAqCWC,MAELrC,EAAAA,IAAA,MAAA,CAAKlC,UAAWwE,EAAAA,gBAAsBpC,SAClCF,EAAAA,IAACuC,EAAAA,OAAM,CACHzE,UAAW0E,EAAAA,OACXC,KAAK,SACLnE,QAASqB,EAAW,aACRH,EAAWE,IACvBgD,SAAS,QAAOxC,SAEfzB,SAIbuB,EAAAA,IAAA,MAAA,CACIlC,UAAW6E,EAAAA,iBACXrE,QAASD,EACTsC,GAAI,GAAGnD,0BACM,GAAGA,sBAAsB0C,SAEtCF,EAAAA,IAAC4C,EAAAA,cAAa,CACV9E,UAAW+E,gBAAoB,aACnBrD,EAAWC,iBAEvBO,EAAAA,IAAC8C,EAAAA,WAAUhF,UAAWiF,EAAAA,gBAOlD"}
1
+ {"version":3,"file":"smart-app-banner.js","sources":["../../../src/smart-app-banner/smart-app-banner.tsx"],"sourcesContent":["import { CrossIcon } from \"@lifesg/react-icons/cross\";\nimport { StarIcon } from \"@lifesg/react-icons/star\";\nimport { StarFillIcon } from \"@lifesg/react-icons/star-fill\";\nimport { StarHalfIcon } from \"@lifesg/react-icons/star-half\";\nimport clsx from \"clsx\";\nimport React, { useContext, useRef } from \"react\";\n\nimport { Button } from \"../button\";\nimport { ClickableIcon } from \"../shared/clickable-icon\";\nimport { useApplyStyle } from \"../theme\";\nimport { ThemeContext } from \"../theme/theme-provider/context\";\nimport { Typography } from \"../typography\";\nimport { mergeRefs } from \"../util\";\nimport * as styles from \"./smart-app-banner.styles\";\nimport type { SmartAppBannerProps } from \"./types\";\n\nconst APP_ICON =\n \"https://assets.life.gov.sg/react-design-system/img/app-icon/app-icon.png\";\n\nconst ID = \"smart-app-banner\";\nconst MAX_STARS = 5;\n\nfunction SmartAppBannerComponent(\n props: SmartAppBannerProps,\n ref: React.Ref<HTMLDivElement>\n): JSX.Element {\n // =============================================================================\n // CONST, STATE, REF\n // =============================================================================\n const {\n className,\n show,\n href,\n content,\n offset = 0,\n icon = APP_ICON,\n animated = false,\n onDismiss,\n onClick,\n } = props;\n\n const {\n title,\n message,\n buttonLabel,\n iconAriaLabel,\n buttonAriaLabel,\n numberOfStars,\n } = content;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const theme = useContext(ThemeContext);\n const isDark = theme?.mode === \"dark\";\n\n useApplyStyle(containerRef, {\n [styles.tokens.container.top]: `${offset}px`,\n });\n\n const ariaLabels = {\n dismiss: \"Close banner\",\n icon: iconAriaLabel ?? \"\",\n cta: buttonAriaLabel ?? buttonLabel,\n };\n // =============================================================================\n // EVENT HANDLERS\n // =============================================================================\n const handleClick = (\n e: React.MouseEvent<HTMLDivElement | HTMLButtonElement>\n ) => {\n e.stopPropagation();\n window.open(href, \"_blank\", \"noreferrer\");\n onClick?.();\n };\n\n // =============================================================================\n // RENDER FUNCTION\n // =============================================================================\n\n const generateStarRating = () => {\n if (isNaN(numberOfStars) || numberOfStars < 0) {\n return;\n }\n\n const stars = [];\n const hasHalfStar = numberOfStars - Math.floor(numberOfStars) >= 0.4;\n\n for (let i = 0; i < Math.floor(numberOfStars); i++) {\n stars.push(\n <StarFillIcon\n key={`star${i}`}\n aria-hidden\n className={styles.starIcon}\n />\n );\n }\n if (hasHalfStar) {\n stars.push(\n <StarHalfIcon\n key={`halfstar`}\n aria-hidden\n className={styles.starIcon}\n />\n );\n }\n if (stars.length < MAX_STARS) {\n const remaining = 5 - stars.length;\n for (let i = 0; i < remaining; i++) {\n stars.push(\n <StarIcon\n key={`emptystar${i}`}\n aria-hidden\n className={styles.starIcon}\n />\n );\n }\n }\n\n /* maximum of 5 stars */\n return (\n <div\n className={styles.ratingContainer}\n role=\"group\"\n aria-label={`A rating of ${numberOfStars} out of ${MAX_STARS} stars`}\n data-testid={`${ID}-star-rating`}\n >\n {stars.slice(0, MAX_STARS)}\n </div>\n );\n };\n\n return (\n <>\n {show && (\n <div\n ref={mergeRefs(containerRef, ref)}\n data-testid={ID}\n className={clsx(\n styles.smartAppBannerContainer,\n isDark\n ? styles.smartAppBannerContainerDark\n : styles.smartAppBannerContainerLight,\n animated && styles.smartAppBannerContainerAnimated,\n className\n )}\n >\n <div\n className={styles.proceedContainer}\n onClick={handleClick}\n id={`${ID}-proceed`}\n data-testid={`${ID}-proceed-container`}\n >\n <img\n className={styles.bannerIcon}\n src={icon}\n alt={ariaLabels.icon}\n />\n <div className={styles.textContainer}>\n <Typography.BodySM className={styles.title}>\n {title}\n </Typography.BodySM>\n <Typography.BodyXS className={styles.description}>\n {message}\n </Typography.BodyXS>\n {generateStarRating()}\n </div>\n <div className={styles.buttonContainer}>\n <Button\n className={styles.button}\n type=\"button\"\n onClick={handleClick}\n aria-label={ariaLabels.cta}\n sizeType=\"small\"\n >\n {buttonLabel}\n </Button>\n </div>\n </div>\n <div\n className={styles.dismissContainer}\n onClick={onDismiss}\n id={`${ID}-dismiss`}\n data-testid={`${ID}-dismiss-container`}\n >\n <ClickableIcon\n className={styles.dismissButton}\n aria-label={ariaLabels.dismiss}\n >\n <CrossIcon className={styles.cross} />\n </ClickableIcon>\n </div>\n </div>\n )}\n </>\n );\n}\n\n// @catalog\n/**\n * A fixed top banner that promotes a mobile app and links to its store listing.\n *\n * Use `SmartAppBanner` to invite users to install or open the native app.\n */\nexport const SmartAppBanner = React.forwardRef(SmartAppBannerComponent);\n"],"names":["APP_ICON","ID","SmartAppBanner","React","forwardRef","props","ref","className","show","href","content","offset","icon","animated","onDismiss","onClick","title","message","buttonLabel","iconAriaLabel","buttonAriaLabel","numberOfStars","containerRef","useRef","theme","useContext","ThemeContext","isDark","mode","useApplyStyle","styles.tokens","container","top","ariaLabels","dismiss","cta","handleClick","e","stopPropagation","window","open","_jsx","_Fragment","children","_jsxs","mergeRefs","clsx","styles.smartAppBannerContainer","styles.smartAppBannerContainerDark","styles.smartAppBannerContainerLight","styles.smartAppBannerContainerAnimated","styles.proceedContainer","id","styles.bannerIcon","src","alt","styles.textContainer","Typography","BodySM","styles.title","BodyXS","styles.description","isNaN","stars","hasHalfStar","Math","floor","i","push","StarFillIcon","styles.starIcon","StarHalfIcon","length","remaining","StarIcon","styles.ratingContainer","role","slice","generateStarRating","styles.buttonContainer","Button","styles.button","type","sizeType","styles.dismissContainer","ClickableIcon","styles.dismissButton","CrossIcon","styles.cross"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","sources":["../../../src/tab/tab.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport type { ReactElement } from \"react\";\nimport { Children, cloneElement, useEffect, useMemo, useState } from \"react\";\n\nimport * as styles from \"./tab.styles\";\nimport type { TabLinkProps } from \"./tab-context\";\nimport { TabContext } from \"./tab-context\";\nimport { TabItem } from \"./tab-item\";\nimport { TabLinkChain } from \"./tab-link-chain\";\nimport type { TabItemProps, TabProps } from \"./types\";\n\n// =============================================================================\n// COMPONENT\n// =============================================================================\nconst TabBase = ({\n children,\n currentActive: currentActiveIndex,\n initialActive = 0,\n onTabClick,\n \"data-testid\": testId,\n className,\n fullWidthIndicatorLine,\n fadeColor,\n ...otherProps\n}: TabProps) => {\n // =========================================================================\n // CONST, STATE, REFS\n // =========================================================================\n const [currentActive, setCurrentActive] = useState<number>(\n currentActiveIndex || initialActive\n );\n\n const tabLinks = useMemo(() => {\n const validChildren = Children.toArray(children).filter(\n Boolean\n ) as ReactElement<TabItemProps>[];\n\n return validChildren.map((child) => {\n return {\n title: child.props.title,\n width: child.props.width,\n titleAddon: child.props.titleAddon,\n };\n }) as TabLinkProps[];\n }, [children]);\n\n const tabContextValue = useMemo(\n () => ({\n tabLinks,\n currentActiveIndex: currentActive,\n setCurrentActiveIndex: setCurrentActive,\n }),\n [currentActive, tabLinks]\n );\n\n // =========================================================================\n // Effects\n // =========================================================================\n useEffect(() => {\n if (typeof currentActiveIndex === \"number\") {\n setCurrentActive(currentActiveIndex);\n }\n }, [currentActiveIndex]);\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n const renderChildren = () => {\n const validChildren = Children.toArray(children).filter(Boolean);\n\n return validChildren.map((child, index) => {\n const element = child as ReactElement<TabItemProps>;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return cloneElement(child as ReactElement<any>, {\n key: element.key ?? element.props.title,\n index,\n });\n });\n };\n\n return (\n <div\n data-testid={testId}\n className={clsx(styles.wrapper, className)}\n {...otherProps}\n >\n <TabContext.Provider value={tabContextValue}>\n <TabLinkChain\n controlledMode={typeof currentActiveIndex === \"number\"}\n onTabClick={onTabClick}\n data-testid={`${testId}-tabs`}\n fullWidthIndicatorLine={fullWidthIndicatorLine}\n fadeColor={fadeColor}\n />\n {renderChildren()}\n </TabContext.Provider>\n </div>\n );\n};\n\nTabBase.displayName = \"Tab\";\n\n// =============================================================================\n// EXPORTS\n// =============================================================================\n/**\n * A tabbed-panel layout that switches visible content by selecting a tab link.\n *\n * Use `Tab` to organise content into labelled panels where only one panel is\n * visible at a time. Compose with `Tab.Item` to define each panel.\n */\nexport const Tab = Object.assign(TabBase, {\n /** Renders an individual content panel within a `Tab`. */\n Item: TabItem,\n});\n"],"names":["TabBase","_a","children","currentActive","currentActiveIndex","initialActive","onTabClick","testId","className","fullWidthIndicatorLine","fadeColor","otherProps","__rest","setCurrentActive","useState","tabLinks","useMemo","Children","toArray","filter","Boolean","map","child","title","props","width","titleAddon","tabContextValue","setCurrentActiveIndex","useEffect","_jsx","Object","assign","clsx","styles.wrapper","_jsxs","TabContext","Provider","value","TabLinkChain","controlledMode","index","element","cloneElement","key","displayName","Tab","Item","TabItem"],"mappings":"kUAcA,MAAMA,EAAWC,QAAAC,SACbA,EACAC,cAAeC,EAAkBC,cACjCA,EAAgB,EAACC,WACjBA,EACA,cAAeC,EAAMC,UACrBA,EAASC,uBACTA,EAAsBC,UACtBA,GAAST,EACNU,EAAUC,EAAAA,OAAAX,EATA,CAAA,WAAA,gBAAA,gBAAA,aAAA,cAAA,YAAA,yBAAA,cAcb,MAAOE,EAAeU,GAAoBC,EAAAA,SACtCV,GAAsBC,GAGpBU,EAAWC,EAAAA,SAAQ,IACCC,EAAAA,SAASC,QAAQhB,GAAUiB,OAC7CC,SAGiBC,KAAKC,IACf,CACHC,MAAOD,EAAME,MAAMD,MACnBE,MAAOH,EAAME,MAAMC,MACnBC,WAAYJ,EAAME,MAAME,gBAGjC,CAACxB,IAEEyB,EAAkBX,EAAAA,SACpB,KAAA,CACID,WACAX,mBAAoBD,EACpByB,sBAAuBf,KAE3B,CAACV,EAAeY,IAMpBc,EAAAA,WAAU,KAC4B,iBAAvBzB,GACPS,EAAiBT,EACrB,GACD,CAACA,IAmBJ,OACI0B,EAAAA,IAAA,MAAAC,OAAAC,OAAA,CAAA,cACiBzB,EACbC,UAAWyB,EAAAA,QAAKC,EAAAA,QAAgB1B,IAC5BG,EAAU,CAAAT,SAEdiC,EAAAA,KAACC,EAAAA,WAAWC,SAAQ,CAACC,MAAOX,EAAezB,SAAA,CACvC4B,EAAAA,IAACS,EAAAA,aAAY,CACTC,eAA8C,iBAAvBpC,EACvBE,WAAYA,EAAU,cACT,GAAGC,SAChBE,uBAAwBA,EACxBC,UAAWA,IAzBDO,EAAAA,SAASC,QAAQhB,GAAUiB,OAAOC,SAEnCC,KAAI,CAACC,EAAOmB,WAC7B,MAAMC,EAAUpB,EAGhB,OAAOqB,EAAAA,aAAarB,EAA4B,CAC5CsB,YAAK3C,EAAAyC,EAAQE,mBAAOF,EAAQlB,MAAMD,MAClCkB,SACF,SAoBA,EAIdzC,EAAQ6C,YAAc,YAWTC,EAAMf,OAAOC,OAAOhC,EAAS,CAEtC+C,KAAMC,EAAAA"}
1
+ {"version":3,"file":"tab.js","sources":["../../../src/tab/tab.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport type { ReactElement } from \"react\";\nimport { Children, cloneElement, useEffect, useMemo, useState } from \"react\";\n\nimport * as styles from \"./tab.styles\";\nimport type { TabLinkProps } from \"./tab-context\";\nimport { TabContext } from \"./tab-context\";\nimport { TabItem } from \"./tab-item\";\nimport { TabLinkChain } from \"./tab-link-chain\";\nimport type { TabItemProps, TabProps } from \"./types\";\n\n// =============================================================================\n// COMPONENT\n// =============================================================================\nconst TabBase = ({\n children,\n currentActive: currentActiveIndex,\n initialActive = 0,\n onTabClick,\n \"data-testid\": testId,\n className,\n fullWidthIndicatorLine,\n fadeColor,\n ...otherProps\n}: TabProps) => {\n // =========================================================================\n // CONST, STATE, REFS\n // =========================================================================\n const [currentActive, setCurrentActive] = useState<number>(\n currentActiveIndex || initialActive\n );\n\n const tabLinks = useMemo(() => {\n const validChildren = Children.toArray(children).filter(\n Boolean\n ) as ReactElement<TabItemProps>[];\n\n return validChildren.map((child) => {\n return {\n title: child.props.title,\n width: child.props.width,\n titleAddon: child.props.titleAddon,\n };\n }) as TabLinkProps[];\n }, [children]);\n\n const tabContextValue = useMemo(\n () => ({\n tabLinks,\n currentActiveIndex: currentActive,\n setCurrentActiveIndex: setCurrentActive,\n }),\n [currentActive, tabLinks]\n );\n\n // =========================================================================\n // Effects\n // =========================================================================\n useEffect(() => {\n if (typeof currentActiveIndex === \"number\") {\n setCurrentActive(currentActiveIndex);\n }\n }, [currentActiveIndex]);\n\n // =========================================================================\n // RENDER FUNCTIONS\n // =========================================================================\n const renderChildren = () => {\n const validChildren = Children.toArray(children).filter(Boolean);\n\n return validChildren.map((child, index) => {\n const element = child as ReactElement<TabItemProps>;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return cloneElement(child as ReactElement<any>, {\n key: element.key ?? element.props.title,\n index,\n });\n });\n };\n\n return (\n <div\n data-testid={testId}\n className={clsx(styles.wrapper, className)}\n {...otherProps}\n >\n <TabContext.Provider value={tabContextValue}>\n <TabLinkChain\n controlledMode={typeof currentActiveIndex === \"number\"}\n onTabClick={onTabClick}\n data-testid={`${testId}-tabs`}\n fullWidthIndicatorLine={fullWidthIndicatorLine}\n fadeColor={fadeColor}\n />\n {renderChildren()}\n </TabContext.Provider>\n </div>\n );\n};\n\nTabBase.displayName = \"Tab\";\n\n// =============================================================================\n// EXPORTS\n// =============================================================================\n// @catalog\n/**\n * A tabbed-panel layout that switches visible content by selecting a tab link.\n *\n * Use `Tab` to organise content into labelled panels where only one panel is\n * visible at a time. Compose with `Tab.Item` to define each panel.\n */\nexport const Tab = Object.assign(TabBase, {\n /** Renders an individual content panel within a `Tab`. */\n Item: TabItem,\n});\n"],"names":["TabBase","_a","children","currentActive","currentActiveIndex","initialActive","onTabClick","testId","className","fullWidthIndicatorLine","fadeColor","otherProps","__rest","setCurrentActive","useState","tabLinks","useMemo","Children","toArray","filter","Boolean","map","child","title","props","width","titleAddon","tabContextValue","setCurrentActiveIndex","useEffect","_jsx","Object","assign","clsx","styles.wrapper","_jsxs","TabContext","Provider","value","TabLinkChain","controlledMode","index","element","cloneElement","key","displayName","Tab","Item","TabItem"],"mappings":"kUAcA,MAAMA,EAAWC,QAAAC,SACbA,EACAC,cAAeC,EAAkBC,cACjCA,EAAgB,EAACC,WACjBA,EACA,cAAeC,EAAMC,UACrBA,EAASC,uBACTA,EAAsBC,UACtBA,GAAST,EACNU,EAAUC,EAAAA,OAAAX,EATA,CAAA,WAAA,gBAAA,gBAAA,aAAA,cAAA,YAAA,yBAAA,cAcb,MAAOE,EAAeU,GAAoBC,EAAAA,SACtCV,GAAsBC,GAGpBU,EAAWC,EAAAA,SAAQ,IACCC,EAAAA,SAASC,QAAQhB,GAAUiB,OAC7CC,SAGiBC,KAAKC,IACf,CACHC,MAAOD,EAAME,MAAMD,MACnBE,MAAOH,EAAME,MAAMC,MACnBC,WAAYJ,EAAME,MAAME,gBAGjC,CAACxB,IAEEyB,EAAkBX,EAAAA,SACpB,KAAA,CACID,WACAX,mBAAoBD,EACpByB,sBAAuBf,KAE3B,CAACV,EAAeY,IAMpBc,EAAAA,WAAU,KAC4B,iBAAvBzB,GACPS,EAAiBT,EACrB,GACD,CAACA,IAmBJ,OACI0B,EAAAA,IAAA,MAAAC,OAAAC,OAAA,CAAA,cACiBzB,EACbC,UAAWyB,EAAAA,QAAKC,EAAAA,QAAgB1B,IAC5BG,EAAU,CAAAT,SAEdiC,EAAAA,KAACC,EAAAA,WAAWC,SAAQ,CAACC,MAAOX,EAAezB,SAAA,CACvC4B,EAAAA,IAACS,EAAAA,aAAY,CACTC,eAA8C,iBAAvBpC,EACvBE,WAAYA,EAAU,cACT,GAAGC,SAChBE,uBAAwBA,EACxBC,UAAWA,IAzBDO,EAAAA,SAASC,QAAQhB,GAAUiB,OAAOC,SAEnCC,KAAI,CAACC,EAAOmB,WAC7B,MAAMC,EAAUpB,EAGhB,OAAOqB,EAAAA,aAAarB,EAA4B,CAC5CsB,YAAK3C,EAAAyC,EAAQE,mBAAOF,EAAQlB,MAAMD,MAClCkB,SACF,SAoBA,EAIdzC,EAAQ6C,YAAc,YAYTC,EAAMf,OAAOC,OAAOhC,EAAS,CAEtC+C,KAAMC,EAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sources":["../../../src/table/table.tsx"],"sourcesContent":["import clsx from \"clsx\";\n\nimport * as styles from \"./table.styles\";\n\nconst Head = ({\n children,\n ...props\n}: React.HTMLAttributes<HTMLTableSectionElement>) => (\n <thead {...props}>{children}</thead>\n);\nHead.displayName = \"Table.Head\";\n\nconst Body = ({\n children,\n className,\n ...props\n}: React.HTMLAttributes<HTMLTableSectionElement>) => (\n <tbody className={clsx(styles.tableBody, className)} {...props}>\n {children}\n </tbody>\n);\nBody.displayName = \"Table.Body\";\n\nconst Row = ({\n children,\n className,\n ...props\n}: React.HTMLAttributes<HTMLTableRowElement>) => (\n <tr className={clsx(styles.bodyRow, className)} {...props}>\n {children}\n </tr>\n);\nRow.displayName = \"Table.Row\";\n\nconst Cell = ({\n children,\n className,\n ...props\n}: React.TdHTMLAttributes<HTMLTableCellElement>) => (\n <td className={clsx(styles.bodyCell, className)} {...props}>\n {children}\n </td>\n);\nCell.displayName = \"Table.Cell\";\n\nconst Header = ({\n children,\n className,\n ...props\n}: React.ThHTMLAttributes<HTMLTableCellElement>) => (\n <th className={clsx(styles.headerCell, className)} {...props}>\n {children}\n </th>\n);\nHeader.displayName = \"Table.HeaderCell\";\n\nconst Container = ({\n children,\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={clsx(styles.tableWrapper, className)}\n data-testid=\"table-wrapper\"\n {...props}\n >\n {children}\n </div>\n);\nContainer.displayName = \"Table.Container\";\n\nconst TableEl = ({\n children,\n className,\n ...props\n}: React.TableHTMLAttributes<HTMLTableElement>) => (\n <table className={clsx(styles.tableComponent, className)} {...props}>\n {children}\n </table>\n);\nTableEl.displayName = \"Table.Table\";\n\n/**\n * A styled HTML table with a scrollable container wrapper.\n *\n * Use `Table` when displaying structured tabular data. The default export\n * wraps content in `Table.Container` and `Table.Table` automatically. For\n * full layout control, compose the sub-components directly:\n * - `Table.Container` — scrollable wrapper div\n * - `Table.Table` — the bare `<table>` element\n * - `Table.Head` — the `<thead>` section\n * - `Table.Body` — the `<tbody>` section\n * - `Table.Row` — a `<tr>` row within the body\n * - `Table.Cell` — a `<td>` data cell\n * - `Table.HeaderCell` — a `<th>` column header cell\n */\nexport const Table = Object.assign(\n ({ children, ...props }: React.TableHTMLAttributes<HTMLTableElement>) => (\n <Container>\n <TableEl {...props}>{children}</TableEl>\n </Container>\n ),\n {\n /** Scrollable wrapper div that contains a `Table.Table`. */\n Container,\n /** The bare `<table>` element. Use directly when you need to place the table inside a custom container. */\n Table: TableEl,\n /** Renders the `<thead>` section of the table. */\n Head,\n /** Renders the `<tbody>` section of the table. */\n Body,\n /** Renders a `<tr>` row within a `Table.Body`. */\n Row,\n /** Renders a `<td>` data cell within a `Table.Row`. */\n Cell,\n /** Renders a `<th>` header cell within a `Table.Head` row. */\n HeaderCell: Header,\n }\n);\n"],"names":["Head","_a","children","props","__rest","_jsx","Object","assign","displayName","Body","className","clsx","styles.tableBody","Row","styles.bodyRow","Cell","styles.bodyCell","Header","styles.headerCell","Container","styles.tableWrapper","TableEl","styles.tableComponent","Table","HeaderCell"],"mappings":"uNAIA,MAAMA,EAAQC,IAAA,IAAAC,SACVA,GAAQD,EACLE,EAAKC,EAAAA,OAAAH,EAFE,cAGuC,OACjDI,EAAAA,IAAA,QAAAC,OAAAC,OAAA,GAAWJ,YAAQD,IAAiB,EAExCF,EAAKQ,YAAc,aAEnB,MAAMC,EAAQR,QAAAC,SACVA,EAAQQ,UACRA,GAAST,EACNE,EAAKC,EAAAA,OAAAH,EAHE,0BAIuC,OACjDI,EAAAA,IAAA,QAAAC,OAAAC,OAAA,CAAOG,UAAWC,EAAAA,QAAKC,EAAAA,UAAkBF,IAAgBP,YACpDD,IACG,EAEZO,EAAKD,YAAc,aAEnB,MAAMK,EAAOZ,QAAAC,SACTA,EAAQQ,UACRA,GAAST,EACNE,EAAKC,EAAAA,OAAAH,EAHC,0BAIoC,OAC7CI,EAAAA,IAAA,KAAAC,OAAAC,OAAA,CAAIG,UAAWC,EAAAA,QAAKG,EAAAA,QAAgBJ,IAAgBP,YAC/CD,IACA,EAETW,EAAIL,YAAc,YAElB,MAAMO,EAAQd,QAAAC,SACVA,EAAQQ,UACRA,GAAST,EACNE,EAAKC,EAAAA,OAAAH,EAHE,0BAIsC,OAChDI,EAAAA,IAAA,KAAAC,OAAAC,OAAA,CAAIG,UAAWC,EAAAA,QAAKK,EAAAA,SAAiBN,IAAgBP,YAChDD,IACA,EAETa,EAAKP,YAAc,aAEnB,MAAMS,EAAUhB,QAAAC,SACZA,EAAQQ,UACRA,GAAST,EACNE,EAAKC,EAAAA,OAAAH,EAHI,0BAIoC,OAChDI,EAAAA,IAAA,KAAAC,OAAAC,OAAA,CAAIG,UAAWC,EAAAA,QAAKO,EAAAA,WAAmBR,IAAgBP,YAClDD,IACA,EAETe,EAAOT,YAAc,mBAErB,MAAMW,EAAalB,QAAAC,SACfA,EAAQQ,UACRA,GAAST,EACNE,EAAKC,EAAAA,OAAAH,EAHO,0BAIyB,OACxCI,EAAAA,yBACIK,UAAWC,EAAAA,QAAKS,EAAAA,aAAqBV,GAAU,cACnC,iBACRP,YAEHD,IACC,EAEViB,EAAUX,YAAc,kBAExB,MAAMa,EAAWpB,QAAAC,SACbA,EAAQQ,UACRA,GAAST,EACNE,EAAKC,EAAAA,OAAAH,EAHK,0BAIkC,OAC/CI,EAAAA,IAAA,QAAAC,OAAAC,OAAA,CAAOG,UAAWC,EAAAA,QAAKW,EAAAA,eAAuBZ,IAAgBP,YACzDD,IACG,EAEZmB,EAAQb,YAAc,cAgBf,MAAMe,EAAQjB,OAAOC,QACvBN,IAAA,IAAAC,SAAEA,GAAQD,EAAKE,EAAKC,EAAAA,OAAAH,EAApB,cAAwE,OACrEI,EAAAA,IAACc,EAAS,CAAAjB,SACNG,EAAAA,IAACgB,EAAOf,OAAAC,OAAA,CAAA,EAAKJ,EAAK,CAAAD,SAAGA,MACb,GAEhB,CAEIiB,YAEAI,MAAOF,EAEPrB,OAEAS,OAEAI,MAEAE,OAEAS,WAAYP"}
1
+ {"version":3,"file":"table.js","sources":["../../../src/table/table.tsx"],"sourcesContent":["import clsx from \"clsx\";\n\nimport * as styles from \"./table.styles\";\nimport type {\n TableBodyProps,\n TableCellProps,\n TableContainerProps,\n TableHeaderProps,\n TableHeadProps,\n TableRowProps,\n TableTableProps,\n} from \"./types\";\n\nconst Head = ({ children, ...props }: TableHeadProps) => (\n <thead {...props}>{children}</thead>\n);\nHead.displayName = \"Table.Head\";\n\nconst Body = ({ children, className, ...props }: TableBodyProps) => (\n <tbody className={clsx(styles.tableBody, className)} {...props}>\n {children}\n </tbody>\n);\nBody.displayName = \"Table.Body\";\n\nconst Row = ({ children, className, ...props }: TableRowProps) => (\n <tr className={clsx(styles.bodyRow, className)} {...props}>\n {children}\n </tr>\n);\nRow.displayName = \"Table.Row\";\n\nconst Cell = ({ children, className, ...props }: TableCellProps) => (\n <td className={clsx(styles.bodyCell, className)} {...props}>\n {children}\n </td>\n);\nCell.displayName = \"Table.Cell\";\n\nconst Header = ({ children, className, ...props }: TableHeaderProps) => (\n <th className={clsx(styles.headerCell, className)} {...props}>\n {children}\n </th>\n);\nHeader.displayName = \"Table.HeaderCell\";\n\nconst Container = ({ children, className, ...props }: TableContainerProps) => (\n <div\n className={clsx(styles.tableWrapper, className)}\n data-testid=\"table-wrapper\"\n {...props}\n >\n {children}\n </div>\n);\nContainer.displayName = \"Table.Container\";\n\nconst TableEl = ({ children, className, ...props }: TableTableProps) => (\n <table className={clsx(styles.tableComponent, className)} {...props}>\n {children}\n </table>\n);\nTableEl.displayName = \"Table.Table\";\n\n// @catalog\n/**\n * A styled HTML table with a scrollable container wrapper.\n *\n * Use `Table` when displaying structured tabular data. The default export\n * wraps content in `Table.Container` and `Table.Table` automatically. For\n * full layout control, compose the sub-components directly:\n * - `Table.Container` — scrollable wrapper div\n * - `Table.Table` — the bare `<table>` element\n * - `Table.Head` — the `<thead>` section\n * - `Table.Body` — the `<tbody>` section\n * - `Table.Row` — a `<tr>` row within the body\n * - `Table.Cell` — a `<td>` data cell\n * - `Table.HeaderCell` — a `<th>` column header cell\n */\nexport const Table = Object.assign(\n ({ children, ...props }: TableTableProps) => (\n <Container>\n <TableEl {...props}>{children}</TableEl>\n </Container>\n ),\n {\n /** Scrollable wrapper div that contains a `Table.Table`. */\n Container,\n /** The bare `<table>` element. Use directly when you need to place the table inside a custom container. */\n Table: TableEl,\n /** Renders the `<thead>` section of the table. */\n Head,\n /** Renders the `<tbody>` section of the table. */\n Body,\n /** Renders a `<tr>` row within a `Table.Body`. */\n Row,\n /** Renders a `<td>` data cell within a `Table.Row`. */\n Cell,\n /** Renders a `<th>` header cell within a `Table.Head` row. */\n HeaderCell: Header,\n }\n);\n"],"names":["Head","_a","children","props","__rest","_jsx","Object","assign","displayName","Body","className","clsx","styles.tableBody","Row","styles.bodyRow","Cell","styles.bodyCell","Header","styles.headerCell","Container","styles.tableWrapper","TableEl","styles.tableComponent","Table","HeaderCell"],"mappings":"uNAaA,MAAMA,EAAQC,IAAA,IAAAC,SAAEA,GAAQD,EAAKE,EAAKC,EAAAA,OAAAH,EAApB,cAA2C,OACrDI,EAAAA,IAAA,QAAAC,OAAAC,OAAA,GAAWJ,YAAQD,IAAiB,EAExCF,EAAKQ,YAAc,aAEnB,MAAMC,EAAQR,QAAAC,SAAEA,EAAQQ,UAAEA,GAAST,EAAKE,EAAKC,EAAAA,OAAAH,EAA/B,0BAAsD,OAChEI,EAAAA,IAAA,QAAAC,OAAAC,OAAA,CAAOG,UAAWC,EAAAA,QAAKC,EAAAA,UAAkBF,IAAgBP,YACpDD,IACG,EAEZO,EAAKD,YAAc,aAEnB,MAAMK,EAAOZ,QAAAC,SAAEA,EAAQQ,UAAEA,GAAST,EAAKE,EAAKC,EAAAA,OAAAH,EAA/B,0BAAqD,OAC9DI,EAAAA,IAAA,KAAAC,OAAAC,OAAA,CAAIG,UAAWC,EAAAA,QAAKG,EAAAA,QAAgBJ,IAAgBP,YAC/CD,IACA,EAETW,EAAIL,YAAc,YAElB,MAAMO,EAAQd,QAAAC,SAAEA,EAAQQ,UAAEA,GAAST,EAAKE,EAAKC,EAAAA,OAAAH,EAA/B,0BAAsD,OAChEI,EAAAA,IAAA,KAAAC,OAAAC,OAAA,CAAIG,UAAWC,EAAAA,QAAKK,EAAAA,SAAiBN,IAAgBP,YAChDD,IACA,EAETa,EAAKP,YAAc,aAEnB,MAAMS,EAAUhB,QAAAC,SAAEA,EAAQQ,UAAEA,GAAST,EAAKE,EAAKC,EAAAA,OAAAH,EAA/B,0BAAwD,OACpEI,EAAAA,IAAA,KAAAC,OAAAC,OAAA,CAAIG,UAAWC,EAAAA,QAAKO,EAAAA,WAAmBR,IAAgBP,YAClDD,IACA,EAETe,EAAOT,YAAc,mBAErB,MAAMW,EAAalB,QAAAC,SAAEA,EAAQQ,UAAEA,GAAST,EAAKE,EAAKC,EAAAA,OAAAH,EAA/B,0BAA2D,OAC1EI,EAAAA,yBACIK,UAAWC,EAAAA,QAAKS,EAAAA,aAAqBV,GAAU,cACnC,iBACRP,YAEHD,IACC,EAEViB,EAAUX,YAAc,kBAExB,MAAMa,EAAWpB,QAAAC,SAAEA,EAAQQ,UAAEA,GAAST,EAAKE,EAAKC,EAAAA,OAAAH,EAA/B,0BAAuD,OACpEI,EAAAA,IAAA,QAAAC,OAAAC,OAAA,CAAOG,UAAWC,EAAAA,QAAKW,EAAAA,eAAuBZ,IAAgBP,YACzDD,IACG,EAEZmB,EAAQb,YAAc,cAiBf,MAAMe,EAAQjB,OAAOC,QACvBN,IAAA,IAAAC,SAAEA,GAAQD,EAAKE,EAAKC,EAAAA,OAAAH,EAApB,cAA4C,OACzCI,EAAAA,IAACc,EAAS,CAAAjB,SACNG,EAAAA,IAACgB,EAAOf,OAAAC,OAAA,CAAA,EAAKJ,EAAK,CAAAD,SAAGA,MACb,GAEhB,CAEIiB,YAEAI,MAAOF,EAEPrB,OAEAS,OAEAI,MAEAE,OAEAS,WAAYP"}
@@ -1 +1 @@
1
- {"version":3,"file":"tag.js","sources":["../../../src/tag/tag.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\n\nimport * as styles from \"./tag.style\";\nimport type { TagColorType, TagProps, TagType } from \"./types\";\n\nconst colorClassMap: Record<TagType, Record<TagColorType, string>> = {\n solid: {\n grey: styles.wrapperSolidGrey,\n green: styles.wrapperSolidGreen,\n yellow: styles.wrapperSolidYellow,\n red: styles.wrapperSolidRed,\n blue: styles.wrapperSolidBlue,\n primary: styles.wrapperSolidPrimary,\n black: styles.wrapperSolidBlack,\n },\n outline: {\n grey: styles.wrapperOutlineGrey,\n green: styles.wrapperOutlineGreen,\n yellow: styles.wrapperOutlineYellow,\n red: styles.wrapperOutlineRed,\n blue: styles.wrapperOutlineBlue,\n primary: styles.wrapperOutlinePrimary,\n black: styles.wrapperOutlineBlack,\n },\n};\n\n/**\n * A compact label used to categorise or highlight content.\n *\n * Use `Tag` to display metadata such as status, category, or keyword.\n */\nexport const Tag = ({\n type,\n colorType = \"black\",\n children,\n interactive = false,\n icon,\n iconPosition = \"left\",\n ...otherProps\n}: TagProps): JSX.Element => {\n const Element = interactive ? \"button\" : \"div\";\n\n return (\n <Element\n className={clsx(\n styles.wrapper,\n colorClassMap[type]?.[colorType],\n interactive && styles.wrapperInteractive\n )}\n {...otherProps}\n >\n {iconPosition === \"left\" &&\n icon &&\n React.cloneElement(icon, { \"aria-hidden\": true })}\n <div className={styles.label} role=\"presentation\">\n {children}\n </div>\n {iconPosition === \"right\" &&\n icon &&\n React.cloneElement(icon, { \"aria-hidden\": true })}\n </Element>\n );\n};\n"],"names":["colorClassMap","solid","grey","styles.wrapperSolidGrey","green","styles.wrapperSolidGreen","yellow","styles.wrapperSolidYellow","red","styles.wrapperSolidRed","blue","styles.wrapperSolidBlue","primary","styles.wrapperSolidPrimary","black","styles.wrapperSolidBlack","outline","styles.wrapperOutlineGrey","styles.wrapperOutlineGreen","styles.wrapperOutlineYellow","styles.wrapperOutlineRed","styles.wrapperOutlineBlue","styles.wrapperOutlinePrimary","styles.wrapperOutlineBlack","_a","type","colorType","children","interactive","icon","iconPosition","otherProps","__rest","Element","_jsxs","Object","assign","className","clsx","styles.wrapper","_b","styles.wrapperInteractive","React","cloneElement","_jsx","styles.label","role"],"mappings":"8OAMA,MAAMA,EAA+D,CACjEC,MAAO,CACHC,KAAMC,EAAAA,iBACNC,MAAOC,EAAAA,kBACPC,OAAQC,EAAAA,mBACRC,IAAKC,EAAAA,gBACLC,KAAMC,EAAAA,iBACNC,QAASC,EAAAA,oBACTC,MAAOC,EAAAA,mBAEXC,QAAS,CACLd,KAAMe,EAAAA,mBACNb,MAAOc,EAAAA,oBACPZ,OAAQa,EAAAA,qBACRX,IAAKY,EAAAA,kBACLV,KAAMW,EAAAA,mBACNT,QAASU,EAAAA,sBACTR,MAAOS,EAAAA,kCASKC,WAAAC,KAChBA,EAAIC,UACJA,EAAY,QAAOC,SACnBA,EAAQC,YACRA,GAAc,EAAKC,KACnBA,EAAIC,aACJA,EAAe,UACZC,EAAUC,EAAAA,OAAAR,EAPG,CAAA,OAAA,YAAA,WAAA,cAAA,OAAA,iBAShB,MAAMS,EAAUL,EAAc,SAAW,MAEzC,OACIM,OAACD,EAAOE,OAAAC,OAAA,CACJC,UAAWC,EAAAA,QACPC,EAAAA,QACmB,QAAnBC,EAAAxC,EAAcyB,UAAK,IAAAe,OAAA,EAAAA,EAAGd,GACtBE,GAAea,uBAEfV,EAAU,CAAAJ,SAAA,CAEI,SAAjBG,GACGD,GACAa,EAAAA,QAAMC,aAAad,EAAM,CAAE,eAAe,IAC9Ce,EAAAA,IAAA,MAAA,CAAKP,UAAWQ,EAAAA,MAAcC,KAAK,eAAcnB,SAC5CA,IAEa,UAAjBG,GACGD,GACAa,EAAAA,QAAMC,aAAad,EAAM,CAAE,eAAe,OACxC"}
1
+ {"version":3,"file":"tag.js","sources":["../../../src/tag/tag.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport React from \"react\";\n\nimport * as styles from \"./tag.style\";\nimport type { TagColorType, TagProps, TagType } from \"./types\";\n\nconst colorClassMap: Record<TagType, Record<TagColorType, string>> = {\n solid: {\n grey: styles.wrapperSolidGrey,\n green: styles.wrapperSolidGreen,\n yellow: styles.wrapperSolidYellow,\n red: styles.wrapperSolidRed,\n blue: styles.wrapperSolidBlue,\n primary: styles.wrapperSolidPrimary,\n black: styles.wrapperSolidBlack,\n },\n outline: {\n grey: styles.wrapperOutlineGrey,\n green: styles.wrapperOutlineGreen,\n yellow: styles.wrapperOutlineYellow,\n red: styles.wrapperOutlineRed,\n blue: styles.wrapperOutlineBlue,\n primary: styles.wrapperOutlinePrimary,\n black: styles.wrapperOutlineBlack,\n },\n};\n\n// @catalog\n/**\n * A compact label used to categorise or highlight content.\n *\n * Use `Tag` to display metadata such as status, category, or keyword.\n */\nexport const Tag = ({\n type,\n colorType = \"black\",\n children,\n interactive = false,\n icon,\n iconPosition = \"left\",\n ...otherProps\n}: TagProps): JSX.Element => {\n const Element = interactive ? \"button\" : \"div\";\n\n return (\n <Element\n className={clsx(\n styles.wrapper,\n colorClassMap[type]?.[colorType],\n interactive && styles.wrapperInteractive\n )}\n {...otherProps}\n >\n {iconPosition === \"left\" &&\n icon &&\n React.cloneElement(icon, { \"aria-hidden\": true })}\n <div className={styles.label} role=\"presentation\">\n {children}\n </div>\n {iconPosition === \"right\" &&\n icon &&\n React.cloneElement(icon, { \"aria-hidden\": true })}\n </Element>\n );\n};\n"],"names":["colorClassMap","solid","grey","styles.wrapperSolidGrey","green","styles.wrapperSolidGreen","yellow","styles.wrapperSolidYellow","red","styles.wrapperSolidRed","blue","styles.wrapperSolidBlue","primary","styles.wrapperSolidPrimary","black","styles.wrapperSolidBlack","outline","styles.wrapperOutlineGrey","styles.wrapperOutlineGreen","styles.wrapperOutlineYellow","styles.wrapperOutlineRed","styles.wrapperOutlineBlue","styles.wrapperOutlinePrimary","styles.wrapperOutlineBlack","_a","type","colorType","children","interactive","icon","iconPosition","otherProps","__rest","Element","_jsxs","Object","assign","className","clsx","styles.wrapper","_b","styles.wrapperInteractive","React","cloneElement","_jsx","styles.label","role"],"mappings":"8OAMA,MAAMA,EAA+D,CACjEC,MAAO,CACHC,KAAMC,EAAAA,iBACNC,MAAOC,EAAAA,kBACPC,OAAQC,EAAAA,mBACRC,IAAKC,EAAAA,gBACLC,KAAMC,EAAAA,iBACNC,QAASC,EAAAA,oBACTC,MAAOC,EAAAA,mBAEXC,QAAS,CACLd,KAAMe,EAAAA,mBACNb,MAAOc,EAAAA,oBACPZ,OAAQa,EAAAA,qBACRX,IAAKY,EAAAA,kBACLV,KAAMW,EAAAA,mBACNT,QAASU,EAAAA,sBACTR,MAAOS,EAAAA,kCAUKC,WAAAC,KAChBA,EAAIC,UACJA,EAAY,QAAOC,SACnBA,EAAQC,YACRA,GAAc,EAAKC,KACnBA,EAAIC,aACJA,EAAe,UACZC,EAAUC,EAAAA,OAAAR,EAPG,CAAA,OAAA,YAAA,WAAA,cAAA,OAAA,iBAShB,MAAMS,EAAUL,EAAc,SAAW,MAEzC,OACIM,OAACD,EAAOE,OAAAC,OAAA,CACJC,UAAWC,EAAAA,QACPC,EAAAA,QACmB,QAAnBC,EAAAxC,EAAcyB,UAAK,IAAAe,OAAA,EAAAA,EAAGd,GACtBE,GAAea,uBAEfV,EAAU,CAAAJ,SAAA,CAEI,SAAjBG,GACGD,GACAa,EAAAA,QAAMC,aAAad,EAAM,CAAE,eAAe,IAC9Ce,EAAAA,IAAA,MAAA,CAAKP,UAAWQ,EAAAA,MAAcC,KAAK,eAAcnB,SAC5CA,IAEa,UAAjBG,GACGD,GACAa,EAAAA,QAAMC,aAAad,EAAM,CAAE,eAAe,OACxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/text-list/index.ts"],"sourcesContent":["import { OrderedList } from \"./ordered-list\";\nimport { UnorderedList } from \"./unordered-list\";\n\n/**\n * Renders styled ordered and unordered lists for body copy and structured content.\n *\n * Use `TextList` to present sequential or non-sequential items with consistent\n * typography and spacing.\n *\n * Sub-components:\n * - `TextList.Ol` — a numbered list with configurable counter style and direction.\n * - `TextList.Ul` — a bulleted list supporting predefined marker types or a custom icon.\n */\nexport const TextList = {\n /**\n * Renders a bulleted list. Supports predefined marker types or\n * a custom decorative icon.\n */\n Ul: UnorderedList,\n /**\n * Renders a numbered list with configurable counter display.\n */\n Ol: OrderedList,\n};\n\nexport * from \"./types\";\n"],"names":["TextList","Ul","UnorderedList","Ol","OrderedList"],"mappings":"gDAaO,MAAMA,EAAW,CAKpBC,kCAAIC,cAIJC,GAAIC,EAAAA"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/text-list/index.ts"],"sourcesContent":["import { OrderedList } from \"./ordered-list\";\nimport { UnorderedList } from \"./unordered-list\";\n\n// @catalog\n/**\n * Renders styled ordered and unordered lists for body copy and structured content.\n *\n * Use `TextList` to present sequential or non-sequential items with consistent\n * typography and spacing.\n *\n * Sub-components:\n * - `TextList.Ol` — a numbered list with configurable counter style and direction.\n * - `TextList.Ul` — a bulleted list supporting predefined marker types or a custom icon.\n */\nexport const TextList = {\n /**\n * Renders a bulleted list. Supports predefined marker types or\n * a custom decorative icon.\n */\n Ul: UnorderedList,\n /**\n * Renders a numbered list with configurable counter display.\n */\n Ol: OrderedList,\n};\n\nexport * from \"./types\";\n"],"names":["TextList","Ul","UnorderedList","Ol","OrderedList"],"mappings":"gDAcO,MAAMA,EAAW,CAKpBC,kCAAIC,cAIJC,GAAIC,EAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../../src/theme/theme-provider/hooks.tsx"],"sourcesContent":["import type { CSSProperties } from \"react\";\nimport { useContext, useMemo } from \"react\";\n\nimport { getInheritedInlineCssVariables } from \"../utils/css-variable\";\nimport { ThemeContext } from \"./context\";\nimport type { ThemeContextValue } from \"./types\";\n\ntype InheritedThemeScope = {\n themeProps: {\n \"data-fds-theme\"?: string;\n \"data-fds-theme-mode\"?: string;\n };\n themeStyle: CSSProperties;\n};\n\n/**\n * Returns the theme context from the nearest `ThemeProvider`.\n *\n * @returns The active `ThemeContextValue`. When called outside a provider,\n * returns defaults: `theme: \"lifesg\"`, `mode: \"light\"`, `themeElement: null`.\n */\nexport const useTheme = (): ThemeContextValue => {\n const context = useContext(ThemeContext);\n\n if (!context) {\n return {\n theme: \"lifesg\",\n mode: \"light\",\n themeElement: null,\n };\n }\n\n return context;\n};\n\n/**\n * Builds `data-fds-theme*` attributes and inline CSS variables for re-stamping\n * the current theme onto a detached DOM element (e.g. a portal or floating\n * overlay).\n *\n * @param enabled When `false`, returns empty objects — useful to conditionally\n * skip the attribute injection.\n * @returns `themeProps` (spread onto the root element) and `themeStyle` (inline\n * CSS variables to apply).\n */\nexport const useInheritedThemeScope = (\n enabled: boolean\n): InheritedThemeScope => {\n const themeContext = useContext(ThemeContext);\n\n return useMemo(() => {\n if (!enabled) {\n return {\n themeProps: {},\n themeStyle: {},\n };\n }\n\n return {\n themeProps: {\n \"data-fds-theme\": themeContext?.theme,\n \"data-fds-theme-mode\": themeContext?.mode,\n },\n themeStyle: getInheritedInlineCssVariables(\n themeContext?.themeElement ?? null\n ),\n };\n }, [\n enabled,\n themeContext?.mode,\n themeContext?.theme,\n themeContext?.themeElement,\n ]);\n};\n"],"names":["enabled","themeContext","useContext","ThemeContext","useMemo","themeProps","theme","mode","themeStyle","getInheritedInlineCssVariables","_a","themeElement","context"],"mappings":"mIA8CIA,IAEA,MAAMC,EAAeC,EAAAA,WAAWC,gBAEhC,OAAOC,EAAAA,SAAQ,WACX,OAAKJ,EAOE,CACHK,WAAY,CACR,iBAAkBJ,aAAY,EAAZA,EAAcK,MAChC,sBAAuBL,aAAY,EAAZA,EAAcM,MAEzCC,WAAYC,EAAAA,+BACkB,QAA1BC,EAAAT,aAAY,EAAZA,EAAcU,oBAAY,IAAAD,EAAAA,EAAI,OAZ3B,CACHL,WAAY,CAAA,EACZG,WAAY,CAAA,EAYnB,GACF,CACCR,EACAC,aAAY,EAAZA,EAAcM,KACdN,aAAY,EAAZA,EAAcK,MACdL,aAAY,EAAZA,EAAcU,cAChB,mBAnDkB,KACpB,MAAMC,EAAUV,EAAAA,WAAWC,gBAE3B,OAAKS,GACM,CACHN,MAAO,SACPC,KAAM,QACNI,aAAc,KAIR"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../../src/theme/theme-provider/hooks.tsx"],"sourcesContent":["import type { CSSProperties } from \"react\";\nimport { useContext, useMemo } from \"react\";\n\nimport { getInheritedInlineCssVariables } from \"../utils/css-variable\";\nimport { ThemeContext } from \"./context\";\nimport type { ThemeContextValue } from \"./types\";\n\ntype InheritedThemeScope = {\n themeProps: {\n \"data-fds-theme\"?: string;\n \"data-fds-theme-mode\"?: string;\n };\n themeStyle: CSSProperties;\n};\n\n// @catalog\n/**\n * Returns the theme context from the nearest `ThemeProvider`.\n *\n * @returns The active `ThemeContextValue`. When called outside a provider,\n * returns defaults: `theme: \"lifesg\"`, `mode: \"light\"`, `themeElement: null`.\n */\nexport const useTheme = (): ThemeContextValue => {\n const context = useContext(ThemeContext);\n\n if (!context) {\n return {\n theme: \"lifesg\",\n mode: \"light\",\n themeElement: null,\n };\n }\n\n return context;\n};\n\n// @catalog\n/**\n * Builds `data-fds-theme*` attributes and inline CSS variables for re-stamping\n * the current theme onto a detached DOM element (e.g. a portal or floating\n * overlay).\n *\n * @param enabled When `false`, returns empty objects — useful to conditionally\n * skip the attribute injection.\n * @returns `themeProps` (spread onto the root element) and `themeStyle` (inline\n * CSS variables to apply).\n */\nexport const useInheritedThemeScope = (\n enabled: boolean\n): InheritedThemeScope => {\n const themeContext = useContext(ThemeContext);\n\n return useMemo(() => {\n if (!enabled) {\n return {\n themeProps: {},\n themeStyle: {},\n };\n }\n\n return {\n themeProps: {\n \"data-fds-theme\": themeContext?.theme,\n \"data-fds-theme-mode\": themeContext?.mode,\n },\n themeStyle: getInheritedInlineCssVariables(\n themeContext?.themeElement ?? null\n ),\n };\n }, [\n enabled,\n themeContext?.mode,\n themeContext?.theme,\n themeContext?.themeElement,\n ]);\n};\n"],"names":["enabled","themeContext","useContext","ThemeContext","useMemo","themeProps","theme","mode","themeStyle","getInheritedInlineCssVariables","_a","themeElement","context"],"mappings":"mIAgDIA,IAEA,MAAMC,EAAeC,EAAAA,WAAWC,gBAEhC,OAAOC,EAAAA,SAAQ,WACX,OAAKJ,EAOE,CACHK,WAAY,CACR,iBAAkBJ,aAAY,EAAZA,EAAcK,MAChC,sBAAuBL,aAAY,EAAZA,EAAcM,MAEzCC,WAAYC,EAAAA,+BACkB,QAA1BC,EAAAT,aAAY,EAAZA,EAAcU,oBAAY,IAAAD,EAAAA,EAAI,OAZ3B,CACHL,WAAY,CAAA,EACZG,WAAY,CAAA,EAYnB,GACF,CACCR,EACAC,aAAY,EAAZA,EAAcM,KACdN,aAAY,EAAZA,EAAcK,MACdL,aAAY,EAAZA,EAAcU,cAChB,mBApDkB,KACpB,MAAMC,EAAUV,EAAAA,WAAWC,gBAE3B,OAAKS,GACM,CACHN,MAAO,SACPC,KAAM,QACNI,aAAc,KAIR"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/theme/theme-provider/index.tsx"],"sourcesContent":["import type { Ref } from \"react\";\nimport { forwardRef, useEffect, useMemo, useState } from \"react\";\n\nimport { mergeRefs, useIsomorphicLayoutEffect } from \"../../util\";\nimport type { ResolvedThemeMode } from \"../types\";\nimport { setupBreakpointListener } from \"./breakpoint\";\nimport { ThemeContext } from \"./context\";\nimport { listenToSystemColourMode } from \"./system-colour-mode\";\nimport type { ThemeProviderProps } from \"./types\";\n\nconst InnerThemeProvider = (\n {\n children,\n theme = \"lifesg\",\n mode = \"auto\",\n className,\n style,\n }: ThemeProviderProps,\n ref: Ref<HTMLDivElement>\n) => {\n const isModeControlled = mode !== \"auto\";\n\n const [computedMode, setComputedMode] = useState<ResolvedThemeMode>(\n isModeControlled ? mode : \"light\"\n );\n const [themeElement, setThemeElement] = useState<HTMLDivElement | null>(\n null\n );\n\n // Re-subscribe when the source node or token set changes:\n // - `themeElement`: scoped breakpoint tokens may live on this element\n // - `theme` / `themeMode`: breakpoint token values can differ across theme/mode\n useIsomorphicLayoutEffect(() => {\n const sourceElement = themeElement ?? document.documentElement;\n const cleanup = setupBreakpointListener(sourceElement);\n return cleanup;\n }, [themeElement, theme, computedMode]);\n\n useEffect(() => {\n if (isModeControlled) {\n setComputedMode(mode);\n return;\n }\n\n return listenToSystemColourMode(setComputedMode);\n }, [isModeControlled, mode]);\n\n const contextValue = useMemo(\n () => ({\n theme,\n mode: computedMode,\n themeElement,\n }),\n [theme, computedMode, themeElement]\n );\n\n return (\n <ThemeContext.Provider value={contextValue}>\n <div\n ref={mergeRefs(ref, setThemeElement)}\n data-fds-theme={theme}\n data-fds-theme-mode={computedMode}\n className={className}\n style={style}\n >\n {children}\n </div>\n </ThemeContext.Provider>\n );\n};\n\n/**\n * Establishes a themed scope for its subtree.\n *\n * Wrap a section of the tree in `ThemeProvider` to activate a design-token set\n * and colour mode. Components below it read tokens via CSS variables or the\n * `useTheme` hook. Providers can be nested to override a subtree's theme.\n */\nexport const ThemeProvider = forwardRef<HTMLDivElement, ThemeProviderProps>(\n InnerThemeProvider\n);\n"],"names":["ThemeProvider","forwardRef","children","theme","mode","className","style","ref","isModeControlled","computedMode","setComputedMode","useState","themeElement","setThemeElement","useIsomorphicLayoutEffect","sourceElement","document","documentElement","setupBreakpointListener","useEffect","listenToSystemColourMode","contextValue","useMemo","_jsx","ThemeContext","Provider","value","mergeRefs"],"mappings":"qdAUA,MAoEaA,EAAgBC,EAAAA,YApEF,EAEnBC,WACAC,QAAQ,SACRC,OAAO,OACPC,YACAC,SAEJC,KAEA,MAAMC,EAA4B,SAATJ,GAElBK,EAAcC,GAAmBC,EAAAA,SACpCH,EAAmBJ,EAAO,UAEvBQ,EAAcC,GAAmBF,EAAAA,SACpC,MAMJG,EAAAA,2BAA0B,KACtB,MAAMC,EAAgBH,QAAAA,EAAgBI,SAASC,gBAE/C,OADgBC,EAAAA,wBAAwBH,EAC1B,GACf,CAACH,EAAcT,EAAOM,IAEzBU,EAAAA,WAAU,KACN,IAAIX,EAKJ,OAAOY,EAAAA,yBAAyBV,GAJ5BA,EAAgBN,EAI4B,GACjD,CAACI,EAAkBJ,IAEtB,MAAMiB,EAAeC,EAAAA,SACjB,KAAA,CACInB,QACAC,KAAMK,EACNG,kBAEJ,CAACT,EAAOM,EAAcG,IAG1B,OACIW,MAACC,EAAAA,aAAaC,UAASC,MAAOL,EAAYnB,SACtCqB,EAAAA,WACIhB,IAAKoB,EAAAA,UAAUpB,EAAKM,GAAgB,iBACpBV,EAAK,sBACAM,EACrBJ,UAAWA,EACXC,MAAOA,EAAKJ,SAEXA,KAEe"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/theme/theme-provider/index.tsx"],"sourcesContent":["import type { Ref } from \"react\";\nimport { forwardRef, useEffect, useMemo, useState } from \"react\";\n\nimport { mergeRefs, useIsomorphicLayoutEffect } from \"../../util\";\nimport type { ResolvedThemeMode } from \"../types\";\nimport { setupBreakpointListener } from \"./breakpoint\";\nimport { ThemeContext } from \"./context\";\nimport { listenToSystemColourMode } from \"./system-colour-mode\";\nimport type { ThemeProviderProps } from \"./types\";\n\nconst InnerThemeProvider = (\n {\n children,\n theme = \"lifesg\",\n mode = \"auto\",\n className,\n style,\n }: ThemeProviderProps,\n ref: Ref<HTMLDivElement>\n) => {\n const isModeControlled = mode !== \"auto\";\n\n const [computedMode, setComputedMode] = useState<ResolvedThemeMode>(\n isModeControlled ? mode : \"light\"\n );\n const [themeElement, setThemeElement] = useState<HTMLDivElement | null>(\n null\n );\n\n // Re-subscribe when the source node or token set changes:\n // - `themeElement`: scoped breakpoint tokens may live on this element\n // - `theme` / `themeMode`: breakpoint token values can differ across theme/mode\n useIsomorphicLayoutEffect(() => {\n const sourceElement = themeElement ?? document.documentElement;\n const cleanup = setupBreakpointListener(sourceElement);\n return cleanup;\n }, [themeElement, theme, computedMode]);\n\n useEffect(() => {\n if (isModeControlled) {\n setComputedMode(mode);\n return;\n }\n\n return listenToSystemColourMode(setComputedMode);\n }, [isModeControlled, mode]);\n\n const contextValue = useMemo(\n () => ({\n theme,\n mode: computedMode,\n themeElement,\n }),\n [theme, computedMode, themeElement]\n );\n\n return (\n <ThemeContext.Provider value={contextValue}>\n <div\n ref={mergeRefs(ref, setThemeElement)}\n data-fds-theme={theme}\n data-fds-theme-mode={computedMode}\n className={className}\n style={style}\n >\n {children}\n </div>\n </ThemeContext.Provider>\n );\n};\n\n// @catalog\n/**\n * Establishes a themed scope for its subtree.\n *\n * Wrap a section of the tree in `ThemeProvider` to activate a design-token set\n * and colour mode. Components below it read tokens via CSS variables or the\n * `useTheme` hook. Providers can be nested to override a subtree's theme.\n */\nexport const ThemeProvider = forwardRef<HTMLDivElement, ThemeProviderProps>(\n InnerThemeProvider\n);\n"],"names":["ThemeProvider","forwardRef","children","theme","mode","className","style","ref","isModeControlled","computedMode","setComputedMode","useState","themeElement","setThemeElement","useIsomorphicLayoutEffect","sourceElement","document","documentElement","setupBreakpointListener","useEffect","listenToSystemColourMode","contextValue","useMemo","_jsx","ThemeContext","Provider","value","mergeRefs"],"mappings":"qdAUA,MAqEaA,EAAgBC,EAAAA,YArEF,EAEnBC,WACAC,QAAQ,SACRC,OAAO,OACPC,YACAC,SAEJC,KAEA,MAAMC,EAA4B,SAATJ,GAElBK,EAAcC,GAAmBC,EAAAA,SACpCH,EAAmBJ,EAAO,UAEvBQ,EAAcC,GAAmBF,EAAAA,SACpC,MAMJG,EAAAA,2BAA0B,KACtB,MAAMC,EAAgBH,QAAAA,EAAgBI,SAASC,gBAE/C,OADgBC,EAAAA,wBAAwBH,EAC1B,GACf,CAACH,EAAcT,EAAOM,IAEzBU,EAAAA,WAAU,KACN,IAAIX,EAKJ,OAAOY,EAAAA,yBAAyBV,GAJ5BA,EAAgBN,EAI4B,GACjD,CAACI,EAAkBJ,IAEtB,MAAMiB,EAAeC,EAAAA,SACjB,KAAA,CACInB,QACAC,KAAMK,EACNG,kBAEJ,CAACT,EAAOM,EAAcG,IAG1B,OACIW,MAACC,EAAAA,aAAaC,UAASC,MAAOL,EAAYnB,SACtCqB,EAAAA,WACIhB,IAAKoB,EAAAA,UAAUpB,EAAKM,GAAgB,iBACpBV,EAAK,sBACAM,EACrBJ,UAAWA,EACXC,MAAOA,EAAKJ,SAEXA,KAEe"}
@@ -1 +1 @@
1
- {"version":3,"file":"border.js","sources":["../../../../src/theme/tokens/border.ts"],"sourcesContent":["/** Border width tokens. */\nexport const BorderThickness = {\n \"width-005\": \"var(--fds-border-width-005)\",\n \"width-010\": \"var(--fds-border-width-010)\",\n \"width-020\": \"var(--fds-border-width-020)\",\n \"width-040\": \"var(--fds-border-width-040)\",\n} as const;\n\n/** Border style tokens. */\nexport const BorderStyle = {\n solid: \"var(--fds-border-style-solid)\",\n} as const;\n\n/** Border tokens consisting of border width and border style. */\nexport const Border = {\n ...BorderThickness,\n ...BorderStyle,\n} as const;\n"],"names":["BorderThickness","BorderStyle","solid","Border","Object"],"mappings":"aACO,MAAMA,EAAkB,CAC3B,YAAa,8BACb,YAAa,8BACb,YAAa,8BACb,YAAa,+BAIJC,EAAc,CACvBC,MAAO,iCAIEC,EAASC,+BACfJ,GACAC"}
1
+ {"version":3,"file":"border.js","sources":["../../../../src/theme/tokens/border.ts"],"sourcesContent":["/**\n * Border width tokens.\n */\nexport const BorderThickness = {\n \"width-005\": \"var(--fds-border-width-005)\",\n \"width-010\": \"var(--fds-border-width-010)\",\n \"width-020\": \"var(--fds-border-width-020)\",\n \"width-040\": \"var(--fds-border-width-040)\",\n} as const;\n\n/**\n * Border style tokens.\n */\nexport const BorderStyle = {\n solid: \"var(--fds-border-style-solid)\",\n} as const;\n\n// @catalog\n/**\n * Border tokens consisting of border width and border style.\n */\nexport const Border = {\n ...BorderThickness,\n ...BorderStyle,\n} as const;\n"],"names":["BorderThickness","BorderStyle","solid","Border","Object"],"mappings":"aAGO,MAAMA,EAAkB,CAC3B,YAAa,8BACb,YAAa,8BACb,YAAa,8BACb,YAAa,+BAMJC,EAAc,CACvBC,MAAO,iCAOEC,EAASC,+BACfJ,GACAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"breakpoint.js","sources":["../../../../src/theme/tokens/breakpoint.ts"],"sourcesContent":["/**\n * Responsive breakpoint tokens for each named breakpoint.\n */\nexport const Breakpoint = {\n \"xxs-min\": \"var(--fds-breakpoint-xxs-min)\",\n \"xxs-max\": \"var(--fds-breakpoint-xxs-max)\",\n \"xs-min\": \"var(--fds-breakpoint-xs-min)\",\n \"xs-max\": \"var(--fds-breakpoint-xs-max)\",\n \"sm-min\": \"var(--fds-breakpoint-sm-min)\",\n \"sm-max\": \"var(--fds-breakpoint-sm-max)\",\n \"md-min\": \"var(--fds-breakpoint-md-min)\",\n \"md-max\": \"var(--fds-breakpoint-md-max)\",\n \"lg-min\": \"var(--fds-breakpoint-lg-min)\",\n \"lg-max\": \"var(--fds-breakpoint-lg-max)\",\n \"xl-min\": \"var(--fds-breakpoint-xl-min)\",\n \"xl-max\": \"var(--fds-breakpoint-xl-max)\",\n \"xxl-min\": \"var(--fds-breakpoint-xxl-min)\",\n\n \"xxs-column\": \"var(--fds-breakpoint-column-xxs)\",\n \"xs-column\": \"var(--fds-breakpoint-column-xs)\",\n \"sm-column\": \"var(--fds-breakpoint-column-sm)\",\n \"md-column\": \"var(--fds-breakpoint-column-md)\",\n \"lg-column\": \"var(--fds-breakpoint-column-lg)\",\n \"xl-column\": \"var(--fds-breakpoint-column-xl)\",\n \"xxl-column\": \"var(--fds-breakpoint-column-xxl)\",\n\n \"xxs-gutter\": \"var(--fds-breakpoint-gutter-xxs)\",\n \"xs-gutter\": \"var(--fds-breakpoint-gutter-xs)\",\n \"sm-gutter\": \"var(--fds-breakpoint-gutter-sm)\",\n \"md-gutter\": \"var(--fds-breakpoint-gutter-md)\",\n \"lg-gutter\": \"var(--fds-breakpoint-gutter-lg)\",\n \"xl-gutter\": \"var(--fds-breakpoint-gutter-xl)\",\n \"xxl-gutter\": \"var(--fds-breakpoint-gutter-xxl)\",\n\n \"xxs-margin\": \"var(--fds-breakpoint-margin-xxs)\",\n \"xs-margin\": \"var(--fds-breakpoint-margin-xs)\",\n \"sm-margin\": \"var(--fds-breakpoint-margin-sm)\",\n \"md-margin\": \"var(--fds-breakpoint-margin-md)\",\n \"lg-margin\": \"var(--fds-breakpoint-margin-lg)\",\n \"xl-margin\": \"var(--fds-breakpoint-margin-xl)\",\n \"xxl-margin\": \"var(--fds-breakpoint-margin-xxl)\",\n} as const;\n"],"names":[],"mappings":"gCAG0B,CACtB,UAAW,gCACX,UAAW,gCACX,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,UAAW,gCAEX,aAAc,mCACd,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,aAAc,mCAEd,aAAc,mCACd,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,aAAc,mCAEd,aAAc,mCACd,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,aAAc"}
1
+ {"version":3,"file":"breakpoint.js","sources":["../../../../src/theme/tokens/breakpoint.ts"],"sourcesContent":["// @catalog\n/**\n * Responsive breakpoint tokens for each named breakpoint.\n */\nexport const Breakpoint = {\n \"xxs-min\": \"var(--fds-breakpoint-xxs-min)\",\n \"xxs-max\": \"var(--fds-breakpoint-xxs-max)\",\n \"xs-min\": \"var(--fds-breakpoint-xs-min)\",\n \"xs-max\": \"var(--fds-breakpoint-xs-max)\",\n \"sm-min\": \"var(--fds-breakpoint-sm-min)\",\n \"sm-max\": \"var(--fds-breakpoint-sm-max)\",\n \"md-min\": \"var(--fds-breakpoint-md-min)\",\n \"md-max\": \"var(--fds-breakpoint-md-max)\",\n \"lg-min\": \"var(--fds-breakpoint-lg-min)\",\n \"lg-max\": \"var(--fds-breakpoint-lg-max)\",\n \"xl-min\": \"var(--fds-breakpoint-xl-min)\",\n \"xl-max\": \"var(--fds-breakpoint-xl-max)\",\n \"xxl-min\": \"var(--fds-breakpoint-xxl-min)\",\n\n \"xxs-column\": \"var(--fds-breakpoint-column-xxs)\",\n \"xs-column\": \"var(--fds-breakpoint-column-xs)\",\n \"sm-column\": \"var(--fds-breakpoint-column-sm)\",\n \"md-column\": \"var(--fds-breakpoint-column-md)\",\n \"lg-column\": \"var(--fds-breakpoint-column-lg)\",\n \"xl-column\": \"var(--fds-breakpoint-column-xl)\",\n \"xxl-column\": \"var(--fds-breakpoint-column-xxl)\",\n\n \"xxs-gutter\": \"var(--fds-breakpoint-gutter-xxs)\",\n \"xs-gutter\": \"var(--fds-breakpoint-gutter-xs)\",\n \"sm-gutter\": \"var(--fds-breakpoint-gutter-sm)\",\n \"md-gutter\": \"var(--fds-breakpoint-gutter-md)\",\n \"lg-gutter\": \"var(--fds-breakpoint-gutter-lg)\",\n \"xl-gutter\": \"var(--fds-breakpoint-gutter-xl)\",\n \"xxl-gutter\": \"var(--fds-breakpoint-gutter-xxl)\",\n\n \"xxs-margin\": \"var(--fds-breakpoint-margin-xxs)\",\n \"xs-margin\": \"var(--fds-breakpoint-margin-xs)\",\n \"sm-margin\": \"var(--fds-breakpoint-margin-sm)\",\n \"md-margin\": \"var(--fds-breakpoint-margin-md)\",\n \"lg-margin\": \"var(--fds-breakpoint-margin-lg)\",\n \"xl-margin\": \"var(--fds-breakpoint-margin-xl)\",\n \"xxl-margin\": \"var(--fds-breakpoint-margin-xxl)\",\n} as const;\n"],"names":[],"mappings":"gCAI0B,CACtB,UAAW,gCACX,UAAW,gCACX,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,SAAU,+BACV,UAAW,gCAEX,aAAc,mCACd,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,aAAc,mCAEd,aAAc,mCACd,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,aAAc,mCAEd,aAAc,mCACd,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,YAAa,kCACb,aAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"colour.js","sources":["../../../../src/theme/tokens/colour.ts"],"sourcesContent":["/** Base colour palette */\nexport const PrimitiveColours = {\n \"brand-10\": \"var(--fds-colour-brand-10)\",\n \"brand-20\": \"var(--fds-colour-brand-20)\",\n \"brand-30\": \"var(--fds-colour-brand-30)\",\n \"brand-40\": \"var(--fds-colour-brand-40)\",\n \"brand-50\": \"var(--fds-colour-brand-50)\",\n \"brand-60\": \"var(--fds-colour-brand-60)\",\n \"brand-70\": \"var(--fds-colour-brand-70)\",\n \"brand-80\": \"var(--fds-colour-brand-80)\",\n \"brand-90\": \"var(--fds-colour-brand-90)\",\n \"brand-95\": \"var(--fds-colour-brand-95)\",\n \"brand-100\": \"var(--fds-colour-brand-100)\",\n\n \"primary-10\": \"var(--fds-colour-primary-10)\",\n \"primary-20\": \"var(--fds-colour-primary-20)\",\n \"primary-30\": \"var(--fds-colour-primary-30)\",\n \"primary-40\": \"var(--fds-colour-primary-40)\",\n \"primary-50\": \"var(--fds-colour-primary-50)\",\n \"primary-60\": \"var(--fds-colour-primary-60)\",\n \"primary-70\": \"var(--fds-colour-primary-70)\",\n \"primary-80\": \"var(--fds-colour-primary-80)\",\n \"primary-90\": \"var(--fds-colour-primary-90)\",\n \"primary-95\": \"var(--fds-colour-primary-95)\",\n \"primary-100\": \"var(--fds-colour-primary-100)\",\n\n \"secondary-10\": \"var(--fds-colour-secondary-10)\",\n \"secondary-20\": \"var(--fds-colour-secondary-20)\",\n \"secondary-30\": \"var(--fds-colour-secondary-30)\",\n \"secondary-40\": \"var(--fds-colour-secondary-40)\",\n \"secondary-50\": \"var(--fds-colour-secondary-50)\",\n \"secondary-60\": \"var(--fds-colour-secondary-60)\",\n \"secondary-70\": \"var(--fds-colour-secondary-70)\",\n \"secondary-80\": \"var(--fds-colour-secondary-80)\",\n \"secondary-90\": \"var(--fds-colour-secondary-90)\",\n \"secondary-95\": \"var(--fds-colour-secondary-95)\",\n \"secondary-100\": \"var(--fds-colour-secondary-100)\",\n\n \"neutral-10\": \"var(--fds-colour-neutral-10)\",\n \"neutral-20\": \"var(--fds-colour-neutral-20)\",\n \"neutral-30\": \"var(--fds-colour-neutral-30)\",\n \"neutral-40\": \"var(--fds-colour-neutral-40)\",\n \"neutral-50\": \"var(--fds-colour-neutral-50)\",\n \"neutral-60\": \"var(--fds-colour-neutral-60)\",\n \"neutral-70\": \"var(--fds-colour-neutral-70)\",\n \"neutral-80\": \"var(--fds-colour-neutral-80)\",\n \"neutral-90\": \"var(--fds-colour-neutral-90)\",\n \"neutral-95\": \"var(--fds-colour-neutral-95)\",\n \"neutral-100\": \"var(--fds-colour-neutral-100)\",\n\n \"success-10\": \"var(--fds-colour-success-10)\",\n \"success-20\": \"var(--fds-colour-success-20)\",\n \"success-30\": \"var(--fds-colour-success-30)\",\n \"success-40\": \"var(--fds-colour-success-40)\",\n \"success-50\": \"var(--fds-colour-success-50)\",\n \"success-60\": \"var(--fds-colour-success-60)\",\n \"success-70\": \"var(--fds-colour-success-70)\",\n \"success-80\": \"var(--fds-colour-success-80)\",\n \"success-90\": \"var(--fds-colour-success-90)\",\n \"success-95\": \"var(--fds-colour-success-95)\",\n \"success-100\": \"var(--fds-colour-success-100)\",\n\n \"warning-10\": \"var(--fds-colour-warning-10)\",\n \"warning-20\": \"var(--fds-colour-warning-20)\",\n \"warning-30\": \"var(--fds-colour-warning-30)\",\n \"warning-40\": \"var(--fds-colour-warning-40)\",\n \"warning-50\": \"var(--fds-colour-warning-50)\",\n \"warning-60\": \"var(--fds-colour-warning-60)\",\n \"warning-70\": \"var(--fds-colour-warning-70)\",\n \"warning-80\": \"var(--fds-colour-warning-80)\",\n \"warning-90\": \"var(--fds-colour-warning-90)\",\n \"warning-95\": \"var(--fds-colour-warning-95)\",\n \"warning-100\": \"var(--fds-colour-warning-100)\",\n\n \"error-10\": \"var(--fds-colour-error-10)\",\n \"error-20\": \"var(--fds-colour-error-20)\",\n \"error-30\": \"var(--fds-colour-error-30)\",\n \"error-40\": \"var(--fds-colour-error-40)\",\n \"error-50\": \"var(--fds-colour-error-50)\",\n \"error-60\": \"var(--fds-colour-error-60)\",\n \"error-70\": \"var(--fds-colour-error-70)\",\n \"error-80\": \"var(--fds-colour-error-80)\",\n \"error-90\": \"var(--fds-colour-error-90)\",\n \"error-95\": \"var(--fds-colour-error-95)\",\n \"error-100\": \"var(--fds-colour-error-100)\",\n\n \"info-10\": \"var(--fds-colour-info-10)\",\n \"info-20\": \"var(--fds-colour-info-20)\",\n \"info-30\": \"var(--fds-colour-info-30)\",\n \"info-40\": \"var(--fds-colour-info-40)\",\n \"info-50\": \"var(--fds-colour-info-50)\",\n \"info-60\": \"var(--fds-colour-info-60)\",\n \"info-70\": \"var(--fds-colour-info-70)\",\n \"info-80\": \"var(--fds-colour-info-80)\",\n \"info-90\": \"var(--fds-colour-info-90)\",\n \"info-95\": \"var(--fds-colour-info-95)\",\n \"info-100\": \"var(--fds-colour-info-100)\",\n\n white: \"var(--fds-colour-white)\",\n black: \"var(--fds-colour-black)\",\n \"primary-inverse\": \"var(--fds-colour-primary-inverse)\",\n} as const;\n\n/** Purpose-driven colour tokens. */\nexport const SemanticColours = {\n text: \"var(--fds-colour-text)\",\n \"text-subtle\": \"var(--fds-colour-text-subtle)\",\n \"text-subtler\": \"var(--fds-colour-text-subtler)\",\n \"text-subtlest\": \"var(--fds-colour-text-subtlest)\",\n \"text-primary\": \"var(--fds-colour-text-primary)\",\n \"text-primary-strong\": \"var(--fds-colour-text-primary-strong)\",\n \"text-primary-strongest\": \"var(--fds-colour-text-primary-strongest)\",\n \"text-brand\": \"var(--fds-colour-text-brand)\",\n \"text-secondary\": \"var(--fds-colour-text-secondary)\",\n \"text-secondary-subtle\": \"var(--fds-colour-text-secondary-subtle)\",\n \"text-hover\": \"var(--fds-colour-text-hover)\",\n \"text-selected\": \"var(--fds-colour-text-selected)\",\n \"text-selected-hover\": \"var(--fds-colour-text-selected-hover)\",\n \"text-disabled\": \"var(--fds-colour-text-disabled)\",\n \"text-disabled-subtle\": \"var(--fds-colour-text-disabled-subtle)\",\n \"text-disabled-subtlest\": \"var(--fds-colour-text-disabled-subtlest)\",\n \"text-selected-disabled\": \"var(--fds-colour-text-selected-disabled)\",\n \"text-success\": \"var(--fds-colour-text-success)\",\n \"text-warning\": \"var(--fds-colour-text-warning)\",\n \"text-error\": \"var(--fds-colour-text-error)\",\n \"text-info\": \"var(--fds-colour-text-info)\",\n \"text-inverse\": \"var(--fds-colour-text-inverse)\",\n\n icon: \"var(--fds-colour-icon)\",\n \"icon-subtle\": \"var(--fds-colour-icon-subtle)\",\n \"icon-strongest\": \"var(--fds-colour-icon-strongest)\",\n \"icon-primary\": \"var(--fds-colour-icon-primary)\",\n \"icon-primary-subtle\": \"var(--fds-colour-icon-primary-subtle)\",\n \"icon-primary-subtlest\": \"var(--fds-colour-icon-primary-subtlest)\",\n \"icon-brand\": \"var(--fds-colour-icon-brand)\",\n \"icon-secondary\": \"var(--fds-colour-icon-secondary)\",\n \"icon-secondary-subtle\": \"var(--fds-colour-icon-secondary-subtle)\",\n \"icon-hover\": \"var(--fds-colour-icon-hover)\",\n \"icon-selected\": \"var(--fds-colour-icon-selected)\",\n \"icon-selected-hover\": \"var(--fds-colour-icon-selected-hover)\",\n \"icon-disabled\": \"var(--fds-colour-icon-disabled)\",\n \"icon-disabled-subtle\": \"var(--fds-colour-icon-disabled-subtle)\",\n \"icon-selected-disabled\": \"var(--fds-colour-icon-selected-disabled)\",\n \"icon-success\": \"var(--fds-colour-icon-success)\",\n \"icon-warning\": \"var(--fds-colour-icon-warning)\",\n \"icon-error\": \"var(--fds-colour-icon-error)\",\n \"icon-error-strong\": \"var(--fds-colour-icon-error-strong)\",\n \"icon-info\": \"var(--fds-colour-icon-info)\",\n \"icon-inverse\": \"var(--fds-colour-icon-inverse)\",\n \"icon-primary-inverse\": \"var(--fds-colour-icon-primary-inverse)\",\n\n border: \"var(--fds-colour-border)\",\n \"border-strong\": \"var(--fds-colour-border-strong)\",\n \"border-stronger\": \"var(--fds-colour-border-stronger)\",\n \"border-primary\": \"var(--fds-colour-border-primary)\",\n \"border-primary-strong\": \"var(--fds-colour-border-primary-strong)\",\n \"border-primary-subtle\": \"var(--fds-colour-border-primary-subtle)\",\n \"border-hover\": \"var(--fds-colour-border-hover)\",\n \"border-hover-strong\": \"var(--fds-colour-border-hover-strong)\",\n \"border-selected\": \"var(--fds-colour-border-selected)\",\n \"border-selected-subtle\": \"var(--fds-colour-border-selected-subtle)\",\n \"border-selected-subtlest\": \"var(--fds-colour-border-selected-subtlest)\",\n \"border-selected-hover\": \"var(--fds-colour-border-selected-hover)\",\n \"border-focus\": \"var(--fds-colour-border-focus)\",\n \"border-focus-strong\": \"var(--fds-colour-border-focus-strong)\",\n \"border-disabled\": \"var(--fds-colour-border-disabled)\",\n \"border-selected-disabled\": \"var(--fds-colour-border-selected-disabled)\",\n \"border-success\": \"var(--fds-colour-border-success)\",\n \"border-warning\": \"var(--fds-colour-border-warning)\",\n \"border-error\": \"var(--fds-colour-border-error)\",\n \"border-error-focus\": \"var(--fds-colour-border-error-focus)\",\n \"border-error-focus-strong\": \"var(--fds-colour-border-error-focus-strong)\",\n \"border-error-strong\": \"var(--fds-colour-border-error-strong)\",\n \"border-info\": \"var(--fds-colour-border-info)\",\n\n bg: \"var(--fds-colour-bg)\",\n \"bg-strong\": \"var(--fds-colour-bg-strong)\",\n \"bg-stronger\": \"var(--fds-colour-bg-stronger)\",\n \"bg-strongest\": \"var(--fds-colour-bg-strongest)\",\n \"bg-hover\": \"var(--fds-colour-bg-hover)\",\n \"bg-hover-strong\": \"var(--fds-colour-bg-hover-strong)\",\n \"bg-hover-subtle\": \"var(--fds-colour-bg-hover-subtle)\",\n \"bg-hover-neutral\": \"var(--fds-colour-bg-hover-neutral)\",\n \"bg-hover-neutral-strong\": \"var(--fds-colour-bg-hover-neutral-strong)\",\n \"bg-selected\": \"var(--fds-colour-bg-selected)\",\n \"bg-selected-hover\": \"var(--fds-colour-bg-selected-hover)\",\n \"bg-selected-strong\": \"var(--fds-colour-bg-selected-strong)\",\n \"bg-selected-stronger\": \"var(--fds-colour-bg-selected-stronger)\",\n \"bg-selected-strongest\": \"var(--fds-colour-bg-selected-strongest)\",\n \"bg-selected-strongest-hover\":\n \"var(--fds-colour-bg-selected-strongest-hover)\",\n \"bg-disabled\": \"var(--fds-colour-bg-disabled)\",\n \"bg-selected-disabled\": \"var(--fds-colour-bg-selected-disabled)\",\n \"bg-selected-stronger-disabled\":\n \"var(--fds-colour-bg-selected-stronger-disabled)\",\n \"bg-success\": \"var(--fds-colour-bg-success)\",\n \"bg-success-hover\": \"var(--fds-colour-bg-success-hover)\",\n \"bg-success-strong\": \"var(--fds-colour-bg-success-strong)\",\n \"bg-success-strong-hover\": \"var(--fds-colour-bg-success-strong-hover)\",\n \"bg-warning\": \"var(--fds-colour-bg-warning)\",\n \"bg-warning-hover\": \"var(--fds-colour-bg-warning-hover)\",\n \"bg-warning-strong\": \"var(--fds-colour-bg-warning-strong)\",\n \"bg-warning-strong-hover\": \"var(--fds-colour-bg-warning-strong-hover)\",\n \"bg-info\": \"var(--fds-colour-bg-info)\",\n \"bg-info-hover\": \"var(--fds-colour-bg-info-hover)\",\n \"bg-info-strong\": \"var(--fds-colour-bg-info-strong)\",\n \"bg-info-strong-hover\": \"var(--fds-colour-bg-info-strong-hover)\",\n \"bg-error\": \"var(--fds-colour-bg-error)\",\n \"bg-error-hover\": \"var(--fds-colour-bg-error-hover)\",\n \"bg-error-strong\": \"var(--fds-colour-bg-error-strong)\",\n \"bg-error-strong-hover\": \"var(--fds-colour-bg-error-strong-hover)\",\n \"bg-inverse\": \"var(--fds-colour-bg-inverse)\",\n \"bg-inverse-subtle\": \"var(--fds-colour-bg-inverse-subtle)\",\n \"bg-inverse-subtler\": \"var(--fds-colour-bg-inverse-subtler)\",\n \"bg-inverse-subtlest\": \"var(--fds-colour-bg-inverse-subtlest)\",\n \"bg-inverse-hover\": \"var(--fds-colour-bg-inverse-hover)\",\n \"bg-primary\": \"var(--fds-colour-bg-primary)\",\n \"bg-primary-strong\": \"var(--fds-colour-bg-primary-strong)\",\n \"bg-primary-subtle\": \"var(--fds-colour-bg-primary-subtle)\",\n \"bg-primary-subtler\": \"var(--fds-colour-bg-primary-subtler)\",\n \"bg-primary-subtlest\": \"var(--fds-colour-bg-primary-subtlest)\",\n \"bg-secondary\": \"var(--fds-colour-bg-secondary)\",\n \"bg-secondary-subtle\": \"var(--fds-colour-bg-secondary-subtle)\",\n \"bg-secondary-subtler\": \"var(--fds-colour-bg-secondary-subtler)\",\n \"bg-secondary-subtlest\": \"var(--fds-colour-bg-secondary-subtlest)\",\n \"bg-available\": \"var(--fds-colour-bg-available)\",\n \"bg-primary-hover\": \"var(--fds-colour-bg-primary-hover)\",\n \"bg-primary-strong-hover\": \"var(--fds-colour-bg-primary-strong-hover)\",\n \"bg-primary-subtlest-hover\": \"var(--fds-colour-bg-primary-subtlest-hover)\",\n \"bg-primary-subtlest-selected\":\n \"var(--fds-colour-bg-primary-subtlest-selected)\",\n\n \"overlay-strong\": \"var(--fds-colour-overlay-strong)\",\n \"overlay-subtle\": \"var(--fds-colour-overlay-subtle)\",\n\n hyperlink: \"var(--fds-colour-hyperlink)\",\n \"hyperlink-hover\": \"var(--fds-colour-hyperlink-hover)\",\n \"hyperlink-visited\": \"var(--fds-colour-hyperlink-visited)\",\n \"hyperlink-inverse\": \"var(--fds-colour-hyperlink-inverse)\",\n\n \"focus-ring\": \"var(--fds-colour-focus-ring)\",\n \"focus-ring-inverse\": \"var(--fds-colour-focus-ring-inverse)\",\n} as const;\n\n/** Combined colour token set. */\nexport const Colour = {\n Primitive: PrimitiveColours,\n ...SemanticColours,\n} as const;\n"],"names":["PrimitiveColours","white","black","SemanticColours","text","icon","border","bg","hyperlink","Colour","Object","assign","Primitive"],"mappings":"aACO,MAAMA,EAAmB,CAC5B,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,YAAa,8BAEb,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,cAAe,gCAEf,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,gBAAiB,kCAEjB,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,cAAe,gCAEf,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,cAAe,gCAEf,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,aAAc,+BACd,cAAe,gCAEf,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,WAAY,6BACZ,YAAa,8BAEb,UAAW,4BACX,UAAW,4BACX,UAAW,4BACX,UAAW,4BACX,UAAW,4BACX,UAAW,4BACX,UAAW,4BACX,UAAW,4BACX,UAAW,4BACX,UAAW,4BACX,WAAY,6BAEZC,MAAO,0BACPC,MAAO,0BACP,kBAAmB,qCAIVC,EAAkB,CAC3BC,KAAM,yBACN,cAAe,gCACf,eAAgB,iCAChB,gBAAiB,kCACjB,eAAgB,iCAChB,sBAAuB,wCACvB,yBAA0B,2CAC1B,aAAc,+BACd,iBAAkB,mCAClB,wBAAyB,0CACzB,aAAc,+BACd,gBAAiB,kCACjB,sBAAuB,wCACvB,gBAAiB,kCACjB,uBAAwB,yCACxB,yBAA0B,2CAC1B,yBAA0B,2CAC1B,eAAgB,iCAChB,eAAgB,iCAChB,aAAc,+BACd,YAAa,8BACb,eAAgB,iCAEhBC,KAAM,yBACN,cAAe,gCACf,iBAAkB,mCAClB,eAAgB,iCAChB,sBAAuB,wCACvB,wBAAyB,0CACzB,aAAc,+BACd,iBAAkB,mCAClB,wBAAyB,0CACzB,aAAc,+BACd,gBAAiB,kCACjB,sBAAuB,wCACvB,gBAAiB,kCACjB,uBAAwB,yCACxB,yBAA0B,2CAC1B,eAAgB,iCAChB,eAAgB,iCAChB,aAAc,+BACd,oBAAqB,sCACrB,YAAa,8BACb,eAAgB,iCAChB,uBAAwB,yCAExBC,OAAQ,2BACR,gBAAiB,kCACjB,kBAAmB,oCACnB,iBAAkB,mCAClB,wBAAyB,0CACzB,wBAAyB,0CACzB,eAAgB,iCAChB,sBAAuB,wCACvB,kBAAmB,oCACnB,yBAA0B,2CAC1B,2BAA4B,6CAC5B,wBAAyB,0CACzB,eAAgB,iCAChB,sBAAuB,wCACvB,kBAAmB,oCACnB,2BAA4B,6CAC5B,iBAAkB,mCAClB,iBAAkB,mCAClB,eAAgB,iCAChB,qBAAsB,uCACtB,4BAA6B,8CAC7B,sBAAuB,wCACvB,cAAe,gCAEfC,GAAI,uBACJ,YAAa,8BACb,cAAe,gCACf,eAAgB,iCAChB,WAAY,6BACZ,kBAAmB,oCACnB,kBAAmB,oCACnB,mBAAoB,qCACpB,0BAA2B,4CAC3B,cAAe,gCACf,oBAAqB,sCACrB,qBAAsB,uCACtB,uBAAwB,yCACxB,wBAAyB,0CACzB,8BACI,gDACJ,cAAe,gCACf,uBAAwB,yCACxB,gCACI,kDACJ,aAAc,+BACd,mBAAoB,qCACpB,oBAAqB,sCACrB,0BAA2B,4CAC3B,aAAc,+BACd,mBAAoB,qCACpB,oBAAqB,sCACrB,0BAA2B,4CAC3B,UAAW,4BACX,gBAAiB,kCACjB,iBAAkB,mCAClB,uBAAwB,yCACxB,WAAY,6BACZ,iBAAkB,mCAClB,kBAAmB,oCACnB,wBAAyB,0CACzB,aAAc,+BACd,oBAAqB,sCACrB,qBAAsB,uCACtB,sBAAuB,wCACvB,mBAAoB,qCACpB,aAAc,+BACd,oBAAqB,sCACrB,oBAAqB,sCACrB,qBAAsB,uCACtB,sBAAuB,wCACvB,eAAgB,iCAChB,sBAAuB,wCACvB,uBAAwB,yCACxB,wBAAyB,0CACzB,eAAgB,iCAChB,mBAAoB,qCACpB,0BAA2B,4CAC3B,4BAA6B,8CAC7B,+BACI,iDAEJ,iBAAkB,mCAClB,iBAAkB,mCAElBC,UAAW,8BACX,kBAAmB,oCACnB,oBAAqB,sCACrB,oBAAqB,sCAErB,aAAc,+BACd,qBAAsB,wCAIbC,EAASC,OAAAC,OAAA,CAClBC,UAAWZ,GACRG"}
1
+ {"version":3,"file":"colour.js","sources":["../../../../src/theme/tokens/colour.ts"],"sourcesContent":["/**\n * Base colour palette.\n */\nexport const PrimitiveColours = {\n \"brand-10\": \"var(--fds-colour-brand-10)\",\n \"brand-20\": \"var(--fds-colour-brand-20)\",\n \"brand-30\": \"var(--fds-colour-brand-30)\",\n \"brand-40\": \"var(--fds-colour-brand-40)\",\n \"brand-50\": \"var(--fds-colour-brand-50)\",\n \"brand-60\": \"var(--fds-colour-brand-60)\",\n \"brand-70\": \"var(--fds-colour-brand-70)\",\n \"brand-80\": \"var(--fds-colour-brand-80)\",\n \"brand-90\": \"var(--fds-colour-brand-90)\",\n \"brand-95\": \"var(--fds-colour-brand-95)\",\n \"brand-100\": \"var(--fds-colour-brand-100)\",\n\n \"primary-10\": \"var(--fds-colour-primary-10)\",\n \"primary-20\": \"var(--fds-colour-primary-20)\",\n \"primary-30\": \"var(--fds-colour-primary-30)\",\n \"primary-40\": \"var(--fds-colour-primary-40)\",\n \"primary-50\": \"var(--fds-colour-primary-50)\",\n \"primary-60\": \"var(--fds-colour-primary-60)\",\n \"primary-70\": \"var(--fds-colour-primary-70)\",\n \"primary-80\": \"var(--fds-colour-primary-80)\",\n \"primary-90\": \"var(--fds-colour-primary-90)\",\n \"primary-95\": \"var(--fds-colour-primary-95)\",\n \"primary-100\": \"var(--fds-colour-primary-100)\",\n\n \"secondary-10\": \"var(--fds-colour-secondary-10)\",\n \"secondary-20\": \"var(--fds-colour-secondary-20)\",\n \"secondary-30\": \"var(--fds-colour-secondary-30)\",\n \"secondary-40\": \"var(--fds-colour-secondary-40)\",\n \"secondary-50\": \"var(--fds-colour-secondary-50)\",\n \"secondary-60\": \"var(--fds-colour-secondary-60)\",\n \"secondary-70\": \"var(--fds-colour-secondary-70)\",\n \"secondary-80\": \"var(--fds-colour-secondary-80)\",\n \"secondary-90\": \"var(--fds-colour-secondary-90)\",\n \"secondary-95\": \"var(--fds-colour-secondary-95)\",\n \"secondary-100\": \"var(--fds-colour-secondary-100)\",\n\n \"neutral-10\": \"var(--fds-colour-neutral-10)\",\n \"neutral-20\": \"var(--fds-colour-neutral-20)\",\n \"neutral-30\": \"var(--fds-colour-neutral-30)\",\n \"neutral-40\": \"var(--fds-colour-neutral-40)\",\n \"neutral-50\": \"var(--fds-colour-neutral-50)\",\n \"neutral-60\": \"var(--fds-colour-neutral-60)\",\n \"neutral-70\": \"var(--fds-colour-neutral-70)\",\n \"neutral-80\": \"var(--fds-colour-neutral-80)\",\n \"neutral-90\": \"var(--fds-colour-neutral-90)\",\n \"neutral-95\": \"var(--fds-colour-neutral-95)\",\n \"neutral-100\": \"var(--fds-colour-neutral-100)\",\n\n \"success-10\": \"var(--fds-colour-success-10)\",\n \"success-20\": \"var(--fds-colour-success-20)\",\n \"success-30\": \"var(--fds-colour-success-30)\",\n \"success-40\": \"var(--fds-colour-success-40)\",\n \"success-50\": \"var(--fds-colour-success-50)\",\n \"success-60\": \"var(--fds-colour-success-60)\",\n \"success-70\": \"var(--fds-colour-success-70)\",\n \"success-80\": \"var(--fds-colour-success-80)\",\n \"success-90\": \"var(--fds-colour-success-90)\",\n \"success-95\": \"var(--fds-colour-success-95)\",\n \"success-100\": \"var(--fds-colour-success-100)\",\n\n \"warning-10\": \"var(--fds-colour-warning-10)\",\n \"warning-20\": \"var(--fds-colour-warning-20)\",\n \"warning-30\": \"var(--fds-colour-warning-30)\",\n \"warning-40\": \"var(--fds-colour-warning-40)\",\n \"warning-50\": \"var(--fds-colour-warning-50)\",\n \"warning-60\": \"var(--fds-colour-warning-60)\",\n \"warning-70\": \"var(--fds-colour-warning-70)\",\n \"warning-80\": \"var(--fds-colour-warning-80)\",\n \"warning-90\": \"var(--fds-colour-warning-90)\",\n \"warning-95\": \"var(--fds-colour-warning-95)\",\n \"warning-100\": \"var(--fds-colour-warning-100)\",\n\n \"error-10\": \"var(--fds-colour-error-10)\",\n \"error-20\": \"var(--fds-colour-error-20)\",\n \"error-30\": \"var(--fds-colour-error-30)\",\n \"error-40\": \"var(--fds-colour-error-40)\",\n \"error-50\": \"var(--fds-colour-error-50)\",\n \"error-60\": \"var(--fds-colour-error-60)\",\n \"error-70\": \"var(--fds-colour-error-70)\",\n \"error-80\": \"var(--fds-colour-error-80)\",\n \"error-90\": \"var(--fds-colour-error-90)\",\n \"error-95\": \"var(--fds-colour-error-95)\",\n \"error-100\": \"var(--fds-colour-error-100)\",\n\n \"info-10\": \"var(--fds-colour-info-10)\",\n \"info-20\": \"var(--fds-colour-info-20)\",\n \"info-30\": \"var(--fds-colour-info-30)\",\n \"info-40\": \"var(--fds-colour-info-40)\",\n \"info-50\": \"var(--fds-colour-info-50)\",\n \"info-60\": \"var(--fds-colour-info-60)\",\n \"info-70\": \"var(--fds-colour-info-70)\",\n \"info-80\": \"var(--fds-colour-info-80)\",\n \"info-90\": \"var(--fds-colour-info-90)\",\n \"info-95\": \"var(--fds-colour-info-95)\",\n \"info-100\": \"var(--fds-colour-info-100)\",\n\n white: \"var(--fds-colour-white)\",\n black: \"var(--fds-colour-black)\",\n \"primary-inverse\": \"var(--fds-colour-primary-inverse)\",\n} as const;\n\n/**\n * Purpose-driven colour tokens.\n */\nexport const SemanticColours = {\n text: \"var(--fds-colour-text)\",\n \"text-subtle\": \"var(--fds-colour-text-subtle)\",\n \"text-subtler\": \"var(--fds-colour-text-subtler)\",\n \"text-subtlest\": \"var(--fds-colour-text-subtlest)\",\n \"text-primary\": \"var(--fds-colour-text-primary)\",\n \"text-primary-strong\": \"var(--fds-colour-text-primary-strong)\",\n \"text-primary-strongest\": \"var(--fds-colour-text-primary-strongest)\",\n \"text-brand\": \"var(--fds-colour-text-brand)\",\n \"text-secondary\": \"var(--fds-colour-text-secondary)\",\n \"text-secondary-subtle\": \"var(--fds-colour-text-secondary-subtle)\",\n \"text-hover\": \"var(--fds-colour-text-hover)\",\n \"text-selected\": \"var(--fds-colour-text-selected)\",\n \"text-selected-hover\": \"var(--fds-colour-text-selected-hover)\",\n \"text-disabled\": \"var(--fds-colour-text-disabled)\",\n \"text-disabled-subtle\": \"var(--fds-colour-text-disabled-subtle)\",\n \"text-disabled-subtlest\": \"var(--fds-colour-text-disabled-subtlest)\",\n \"text-selected-disabled\": \"var(--fds-colour-text-selected-disabled)\",\n \"text-success\": \"var(--fds-colour-text-success)\",\n \"text-warning\": \"var(--fds-colour-text-warning)\",\n \"text-error\": \"var(--fds-colour-text-error)\",\n \"text-info\": \"var(--fds-colour-text-info)\",\n \"text-inverse\": \"var(--fds-colour-text-inverse)\",\n\n icon: \"var(--fds-colour-icon)\",\n \"icon-subtle\": \"var(--fds-colour-icon-subtle)\",\n \"icon-strongest\": \"var(--fds-colour-icon-strongest)\",\n \"icon-primary\": \"var(--fds-colour-icon-primary)\",\n \"icon-primary-subtle\": \"var(--fds-colour-icon-primary-subtle)\",\n \"icon-primary-subtlest\": \"var(--fds-colour-icon-primary-subtlest)\",\n \"icon-brand\": \"var(--fds-colour-icon-brand)\",\n \"icon-secondary\": \"var(--fds-colour-icon-secondary)\",\n \"icon-secondary-subtle\": \"var(--fds-colour-icon-secondary-subtle)\",\n \"icon-hover\": \"var(--fds-colour-icon-hover)\",\n \"icon-selected\": \"var(--fds-colour-icon-selected)\",\n \"icon-selected-hover\": \"var(--fds-colour-icon-selected-hover)\",\n \"icon-disabled\": \"var(--fds-colour-icon-disabled)\",\n \"icon-disabled-subtle\": \"var(--fds-colour-icon-disabled-subtle)\",\n \"icon-selected-disabled\": \"var(--fds-colour-icon-selected-disabled)\",\n \"icon-success\": \"var(--fds-colour-icon-success)\",\n \"icon-warning\": \"var(--fds-colour-icon-warning)\",\n \"icon-error\": \"var(--fds-colour-icon-error)\",\n \"icon-error-strong\": \"var(--fds-colour-icon-error-strong)\",\n \"icon-info\": \"var(--fds-colour-icon-info)\",\n \"icon-inverse\": \"var(--fds-colour-icon-inverse)\",\n \"icon-primary-inverse\": \"var(--fds-colour-icon-primary-inverse)\",\n\n border: \"var(--fds-colour-border)\",\n \"border-strong\": \"var(--fds-colour-border-strong)\",\n \"border-stronger\": \"var(--fds-colour-border-stronger)\",\n \"border-primary\": \"var(--fds-colour-border-primary)\",\n \"border-primary-strong\": \"var(--fds-colour-border-primary-strong)\",\n \"border-primary-subtle\": \"var(--fds-colour-border-primary-subtle)\",\n \"border-hover\": \"var(--fds-colour-border-hover)\",\n \"border-hover-strong\": \"var(--fds-colour-border-hover-strong)\",\n \"border-selected\": \"var(--fds-colour-border-selected)\",\n \"border-selected-subtle\": \"var(--fds-colour-border-selected-subtle)\",\n \"border-selected-subtlest\": \"var(--fds-colour-border-selected-subtlest)\",\n \"border-selected-hover\": \"var(--fds-colour-border-selected-hover)\",\n \"border-focus\": \"var(--fds-colour-border-focus)\",\n \"border-focus-strong\": \"var(--fds-colour-border-focus-strong)\",\n \"border-disabled\": \"var(--fds-colour-border-disabled)\",\n \"border-selected-disabled\": \"var(--fds-colour-border-selected-disabled)\",\n \"border-success\": \"var(--fds-colour-border-success)\",\n \"border-warning\": \"var(--fds-colour-border-warning)\",\n \"border-error\": \"var(--fds-colour-border-error)\",\n \"border-error-focus\": \"var(--fds-colour-border-error-focus)\",\n \"border-error-focus-strong\": \"var(--fds-colour-border-error-focus-strong)\",\n \"border-error-strong\": \"var(--fds-colour-border-error-strong)\",\n \"border-info\": \"var(--fds-colour-border-info)\",\n\n bg: \"var(--fds-colour-bg)\",\n \"bg-strong\": \"var(--fds-colour-bg-strong)\",\n \"bg-stronger\": \"var(--fds-colour-bg-stronger)\",\n \"bg-strongest\": \"var(--fds-colour-bg-strongest)\",\n \"bg-hover\": \"var(--fds-colour-bg-hover)\",\n \"bg-hover-strong\": \"var(--fds-colour-bg-hover-strong)\",\n \"bg-hover-subtle\": \"var(--fds-colour-bg-hover-subtle)\",\n \"bg-hover-neutral\": \"var(--fds-colour-bg-hover-neutral)\",\n \"bg-hover-neutral-strong\": \"var(--fds-colour-bg-hover-neutral-strong)\",\n \"bg-selected\": \"var(--fds-colour-bg-selected)\",\n \"bg-selected-hover\": \"var(--fds-colour-bg-selected-hover)\",\n \"bg-selected-strong\": \"var(--fds-colour-bg-selected-strong)\",\n \"bg-selected-stronger\": \"var(--fds-colour-bg-selected-stronger)\",\n \"bg-selected-strongest\": \"var(--fds-colour-bg-selected-strongest)\",\n \"bg-selected-strongest-hover\":\n \"var(--fds-colour-bg-selected-strongest-hover)\",\n \"bg-disabled\": \"var(--fds-colour-bg-disabled)\",\n \"bg-selected-disabled\": \"var(--fds-colour-bg-selected-disabled)\",\n \"bg-selected-stronger-disabled\":\n \"var(--fds-colour-bg-selected-stronger-disabled)\",\n \"bg-success\": \"var(--fds-colour-bg-success)\",\n \"bg-success-hover\": \"var(--fds-colour-bg-success-hover)\",\n \"bg-success-strong\": \"var(--fds-colour-bg-success-strong)\",\n \"bg-success-strong-hover\": \"var(--fds-colour-bg-success-strong-hover)\",\n \"bg-warning\": \"var(--fds-colour-bg-warning)\",\n \"bg-warning-hover\": \"var(--fds-colour-bg-warning-hover)\",\n \"bg-warning-strong\": \"var(--fds-colour-bg-warning-strong)\",\n \"bg-warning-strong-hover\": \"var(--fds-colour-bg-warning-strong-hover)\",\n \"bg-info\": \"var(--fds-colour-bg-info)\",\n \"bg-info-hover\": \"var(--fds-colour-bg-info-hover)\",\n \"bg-info-strong\": \"var(--fds-colour-bg-info-strong)\",\n \"bg-info-strong-hover\": \"var(--fds-colour-bg-info-strong-hover)\",\n \"bg-error\": \"var(--fds-colour-bg-error)\",\n \"bg-error-hover\": \"var(--fds-colour-bg-error-hover)\",\n \"bg-error-strong\": \"var(--fds-colour-bg-error-strong)\",\n \"bg-error-strong-hover\": \"var(--fds-colour-bg-error-strong-hover)\",\n \"bg-inverse\": \"var(--fds-colour-bg-inverse)\",\n \"bg-inverse-subtle\": \"var(--fds-colour-bg-inverse-subtle)\",\n \"bg-inverse-subtler\": \"var(--fds-colour-bg-inverse-subtler)\",\n \"bg-inverse-subtlest\": \"var(--fds-colour-bg-inverse-subtlest)\",\n \"bg-inverse-hover\": \"var(--fds-colour-bg-inverse-hover)\",\n \"bg-primary\": \"var(--fds-colour-bg-primary)\",\n \"bg-primary-strong\": \"var(--fds-colour-bg-primary-strong)\",\n \"bg-primary-subtle\": \"var(--fds-colour-bg-primary-subtle)\",\n \"bg-primary-subtler\": \"var(--fds-colour-bg-primary-subtler)\",\n \"bg-primary-subtlest\": \"var(--fds-colour-bg-primary-subtlest)\",\n \"bg-secondary\": \"var(--fds-colour-bg-secondary)\",\n \"bg-secondary-subtle\": \"var(--fds-colour-bg-secondary-subtle)\",\n \"bg-secondary-subtler\": \"var(--fds-colour-bg-secondary-subtler)\",\n \"bg-secondary-subtlest\": \"var(--fds-colour-bg-secondary-subtlest)\",\n \"bg-available\": \"var(--fds-colour-bg-available)\",\n \"bg-primary-hover\": \"var(--fds-colour-bg-primary-hover)\",\n \"bg-primary-strong-hover\": \"var(--fds-colour-bg-primary-strong-hover)\",\n \"bg-primary-subtlest-hover\": \"var(--fds-colour-bg-primary-subtlest-hover)\",\n \"bg-primary-subtlest-selected\":\n \"var(--fds-colour-bg-primary-subtlest-selected)\",\n\n \"overlay-strong\": \"var(--fds-colour-overlay-strong)\",\n \"overlay-subtle\": \"var(--fds-colour-overlay-subtle)\",\n\n hyperlink: \"var(--fds-colour-hyperlink)\",\n \"hyperlink-hover\": \"var(--fds-colour-hyperlink-hover)\",\n \"hyperlink-visited\": \"var(--fds-colour-hyperlink-visited)\",\n \"hyperlink-inverse\": \"var(--fds-colour-hyperlink-inverse)\",\n\n \"focus-ring\": \"var(--fds-colour-focus-ring)\",\n \"focus-ring-inverse\": \"var(--fds-colour-focus-ring-inverse)\",\n} as const;\n\n// @catalog\n/**\n * Combined colour token set.\n */\nexport const Colour = {\n Primitive: PrimitiveColours,\n ...SemanticColours,\n} as const;\n"],"names":["PrimitiveColours","white","black","SemanticColours","text","icon","border","bg","hyperlink","Colour","Object","assign","Primitive"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../../src/theme/tokens/component.ts"],"sourcesContent":["const Button = {\n radius: \"var(--fds-button-radius)\",\n \"default-colour-bg\": \"var(--fds-button-default-colour-bg)\",\n \"default-colour-bg-hover\": \"var(--fds-button-default-colour-bg-hover)\",\n \"default-colour-text\": \"var(--fds-button-default-colour-text)\",\n \"secondary-colour-border\": \"var(--fds-button-secondary-colour-border)\",\n \"secondary-colour-text\": \"var(--fds-button-secondary-colour-text)\",\n \"light-colour-text\": \"var(--fds-button-light-colour-text)\",\n \"link-colour-text\": \"var(--fds-button-link-colour-text)\",\n} as const;\n\nconst Animation = {\n \"loading-dots-spinner-colour\":\n \"var(--fds-animation-loading-dots-spinner-colour)\",\n} as const;\n\nconst Navbar = {\n \"full-height\": \"var(--fds-navbar-full-height)\",\n \"full-logo-height\": \"var(--fds-navbar-full-logo-height)\",\n \"compressed-height\": \"var(--fds-navbar-compressed-height)\",\n \"compressed-logo-height\": \"var(--fds-navbar-compressed-logo-height)\",\n \"mobile-height\": \"var(--fds-navbar-mobile-height)\",\n \"mobile-logo-height\": \"var(--fds-navbar-mobile-logo-height)\",\n \"colour-bg\": \"var(--fds-navbar-colour-bg)\",\n \"colour-icon\": \"var(--fds-navbar-colour-icon)\",\n \"link-colour-text\": \"var(--fds-navbar-link-colour-text)\",\n \"link-colour-text-hover\": \"var(--fds-navbar-link-colour-text-hover)\",\n \"link-colour-text-selected-hover\":\n \"var(--fds-navbar-link-colour-text-selected-hover)\",\n} as const;\n\nconst Footer = {\n \"colour-bg\": \"var(--fds-footer-colour-bg)\",\n \"colour-text\": \"var(--fds-footer-colour-text)\",\n \"link-colour-text\": \"var(--fds-footer-link-colour-text)\",\n \"link-colour-text-hover\": \"var(--fds-footer-link-colour-text-hover)\",\n \"disclaimer-link-colour-text\":\n \"var(--fds-footer-disclaimer-link-colour-text)\",\n \"disclaimer-link-colour-text-hover\":\n \"var(--fds-footer-disclaimer-link-colour-text-hover)\",\n} as const;\n\n/** Component-scoped design tokens grouped by component. */\nexport const ComponentToken = {\n Animation,\n Button,\n Footer,\n Navbar,\n} as const;\n"],"names":["ComponentToken","Animation","Button","radius","Footer","Navbar"],"mappings":"aAAA,MA2CaA,EAAiB,CAC1BC,UAjCc,CACd,8BACI,oDAgCJC,OA7CW,CACXC,OAAQ,2BACR,oBAAqB,sCACrB,0BAA2B,4CAC3B,sBAAuB,wCACvB,0BAA2B,4CAC3B,wBAAyB,0CACzB,oBAAqB,sCACrB,mBAAoB,sCAsCpBC,OAfW,CACX,YAAa,8BACb,cAAe,gCACf,mBAAoB,qCACpB,yBAA0B,2CAC1B,8BACI,gDACJ,oCACI,uDAQJC,OA/BW,CACX,cAAe,gCACf,mBAAoB,qCACpB,oBAAqB,sCACrB,yBAA0B,2CAC1B,gBAAiB,kCACjB,qBAAsB,uCACtB,YAAa,8BACb,cAAe,gCACf,mBAAoB,qCACpB,yBAA0B,2CAC1B,kCACI"}
1
+ {"version":3,"file":"component.js","sources":["../../../../src/theme/tokens/component.ts"],"sourcesContent":["const Button = {\n radius: \"var(--fds-button-radius)\",\n \"default-colour-bg\": \"var(--fds-button-default-colour-bg)\",\n \"default-colour-bg-hover\": \"var(--fds-button-default-colour-bg-hover)\",\n \"default-colour-text\": \"var(--fds-button-default-colour-text)\",\n \"secondary-colour-border\": \"var(--fds-button-secondary-colour-border)\",\n \"secondary-colour-text\": \"var(--fds-button-secondary-colour-text)\",\n \"light-colour-text\": \"var(--fds-button-light-colour-text)\",\n \"link-colour-text\": \"var(--fds-button-link-colour-text)\",\n} as const;\n\nconst Animation = {\n \"loading-dots-spinner-colour\":\n \"var(--fds-animation-loading-dots-spinner-colour)\",\n} as const;\n\nconst Navbar = {\n \"full-height\": \"var(--fds-navbar-full-height)\",\n \"full-logo-height\": \"var(--fds-navbar-full-logo-height)\",\n \"compressed-height\": \"var(--fds-navbar-compressed-height)\",\n \"compressed-logo-height\": \"var(--fds-navbar-compressed-logo-height)\",\n \"mobile-height\": \"var(--fds-navbar-mobile-height)\",\n \"mobile-logo-height\": \"var(--fds-navbar-mobile-logo-height)\",\n \"colour-bg\": \"var(--fds-navbar-colour-bg)\",\n \"colour-icon\": \"var(--fds-navbar-colour-icon)\",\n \"link-colour-text\": \"var(--fds-navbar-link-colour-text)\",\n \"link-colour-text-hover\": \"var(--fds-navbar-link-colour-text-hover)\",\n \"link-colour-text-selected-hover\":\n \"var(--fds-navbar-link-colour-text-selected-hover)\",\n} as const;\n\nconst Footer = {\n \"colour-bg\": \"var(--fds-footer-colour-bg)\",\n \"colour-text\": \"var(--fds-footer-colour-text)\",\n \"link-colour-text\": \"var(--fds-footer-link-colour-text)\",\n \"link-colour-text-hover\": \"var(--fds-footer-link-colour-text-hover)\",\n \"disclaimer-link-colour-text\":\n \"var(--fds-footer-disclaimer-link-colour-text)\",\n \"disclaimer-link-colour-text-hover\":\n \"var(--fds-footer-disclaimer-link-colour-text-hover)\",\n} as const;\n\n// @catalog\n/**\n * Component-scoped design tokens grouped by component.\n */\nexport const ComponentToken = {\n Animation,\n Button,\n Footer,\n Navbar,\n} as const;\n"],"names":["ComponentToken","Animation","Button","radius","Footer","Navbar"],"mappings":"aAAA,MA8CaA,EAAiB,CAC1BC,UApCc,CACd,8BACI,oDAmCJC,OAhDW,CACXC,OAAQ,2BACR,oBAAqB,sCACrB,0BAA2B,4CAC3B,sBAAuB,wCACvB,0BAA2B,4CAC3B,wBAAyB,0CACzB,oBAAqB,sCACrB,mBAAoB,sCAyCpBC,OAlBW,CACX,YAAa,8BACb,cAAe,gCACf,mBAAoB,qCACpB,yBAA0B,2CAC1B,8BACI,gDACJ,oCACI,uDAWJC,OAlCW,CACX,cAAe,gCACf,mBAAoB,qCACpB,oBAAqB,sCACrB,yBAA0B,2CAC1B,gBAAiB,kCACjB,qBAAsB,uCACtB,YAAa,8BACb,cAAe,gCACf,mBAAoB,qCACpB,yBAA0B,2CAC1B,kCACI"}
@@ -1 +1 @@
1
- {"version":3,"file":"font.js","sources":["../../../../src/theme/tokens/font.ts"],"sourcesContent":["import { generateFont } from \"../utils/font\";\n\n/** Raw font CSS variable tokens. */\nexport const FontSpec = {\n \"font-family-heading\": \"var(--fds-font-family-heading)\",\n \"font-family-body\": \"var(--fds-font-family-body)\",\n \"font-variant\": \"var(--fds-font-variant)\",\n\n \"weight-light\": \"var(--fds-font-weight-light)\",\n \"weight-regular\": \"var(--fds-font-weight-regular)\",\n \"weight-semibold\": \"var(--fds-font-weight-semibold)\",\n \"weight-bold\": \"var(--fds-font-weight-bold)\",\n\n \"heading-size-xxl\": \"var(--fds-font-heading-size-xxl)\",\n \"heading-size-xl\": \"var(--fds-font-heading-size-xl)\",\n \"heading-size-lg\": \"var(--fds-font-heading-size-lg)\",\n \"heading-size-md\": \"var(--fds-font-heading-size-md)\",\n \"heading-size-sm\": \"var(--fds-font-heading-size-sm)\",\n \"heading-size-xs\": \"var(--fds-font-heading-size-xs)\",\n\n \"heading-lh-xxl\": \"var(--fds-font-heading-lh-xxl)\",\n \"heading-lh-xl\": \"var(--fds-font-heading-lh-xl)\",\n \"heading-lh-lg\": \"var(--fds-font-heading-lh-lg)\",\n \"heading-lh-md\": \"var(--fds-font-heading-lh-md)\",\n \"heading-lh-sm\": \"var(--fds-font-heading-lh-sm)\",\n \"heading-lh-xs\": \"var(--fds-font-heading-lh-xs)\",\n\n \"heading-ls-xxl\": \"var(--fds-font-heading-ls-xxl)\",\n \"heading-ls-xl\": \"var(--fds-font-heading-ls-xl)\",\n \"heading-ls-lg\": \"var(--fds-font-heading-ls-lg)\",\n \"heading-ls-md\": \"var(--fds-font-heading-ls-md)\",\n \"heading-ls-sm\": \"var(--fds-font-heading-ls-sm)\",\n \"heading-ls-xs\": \"var(--fds-font-heading-ls-xs)\",\n\n \"body-size-baseline\": \"var(--fds-font-body-size-baseline)\",\n \"body-size-md\": \"var(--fds-font-body-size-md)\",\n \"body-size-sm\": \"var(--fds-font-body-size-sm)\",\n \"body-size-xs\": \"var(--fds-font-body-size-xs)\",\n\n \"body-lh-baseline\": \"var(--fds-font-body-lh-baseline)\",\n \"body-lh-md\": \"var(--fds-font-body-lh-md)\",\n \"body-lh-sm\": \"var(--fds-font-body-lh-sm)\",\n \"body-lh-xs\": \"var(--fds-font-body-lh-xs)\",\n\n \"body-ls-baseline\": \"var(--fds-font-body-ls-baseline)\",\n \"body-ls-md\": \"var(--fds-font-body-ls-md)\",\n \"body-ls-sm\": \"var(--fds-font-body-ls-sm)\",\n \"body-ls-xs\": \"var(--fds-font-body-ls-xs)\",\n\n \"form-label-size\": \"var(--fds-font-form-label-size)\",\n \"form-label-lh\": \"var(--fds-font-form-label-lh)\",\n \"form-label-ls\": \"var(--fds-font-form-label-ls)\",\n\n \"form-description-size\": \"var(--fds-font-form-description-size)\",\n \"form-description-lh\": \"var(--fds-font-form-description-lh)\",\n \"form-description-ls\": \"var(--fds-font-form-description-ls)\",\n} as const;\n\n/** Pre-composed font declaration strings for all size & weight combinations. */\nexport const Font = {\n \"heading-xxl-light\": generateFont(\"heading-xxl\", \"light\"),\n \"heading-xxl-regular\": generateFont(\"heading-xxl\", \"regular\"),\n \"heading-xxl-semibold\": generateFont(\"heading-xxl\", \"semibold\"),\n \"heading-xxl-bold\": generateFont(\"heading-xxl\", \"bold\"),\n\n \"heading-xl-light\": generateFont(\"heading-xl\", \"light\"),\n \"heading-xl-regular\": generateFont(\"heading-xl\", \"regular\"),\n \"heading-xl-semibold\": generateFont(\"heading-xl\", \"semibold\"),\n \"heading-xl-bold\": generateFont(\"heading-xl\", \"bold\"),\n\n \"heading-lg-light\": generateFont(\"heading-lg\", \"light\"),\n \"heading-lg-regular\": generateFont(\"heading-lg\", \"regular\"),\n \"heading-lg-semibold\": generateFont(\"heading-lg\", \"semibold\"),\n \"heading-lg-bold\": generateFont(\"heading-lg\", \"bold\"),\n\n \"heading-md-light\": generateFont(\"heading-md\", \"light\"),\n \"heading-md-regular\": generateFont(\"heading-md\", \"regular\"),\n \"heading-md-semibold\": generateFont(\"heading-md\", \"semibold\"),\n \"heading-md-bold\": generateFont(\"heading-md\", \"bold\"),\n\n \"heading-sm-light\": generateFont(\"heading-sm\", \"light\"),\n \"heading-sm-regular\": generateFont(\"heading-sm\", \"regular\"),\n \"heading-sm-semibold\": generateFont(\"heading-sm\", \"semibold\"),\n \"heading-sm-bold\": generateFont(\"heading-sm\", \"bold\"),\n\n \"heading-xs-light\": generateFont(\"heading-xs\", \"light\"),\n \"heading-xs-regular\": generateFont(\"heading-xs\", \"regular\"),\n \"heading-xs-semibold\": generateFont(\"heading-xs\", \"semibold\"),\n \"heading-xs-bold\": generateFont(\"heading-xs\", \"bold\"),\n\n \"body-baseline-light\": generateFont(\"body-baseline\", \"light\"),\n \"body-baseline-regular\": generateFont(\"body-baseline\", \"regular\"),\n \"body-baseline-semibold\": generateFont(\"body-baseline\", \"semibold\"),\n \"body-baseline-bold\": generateFont(\"body-baseline\", \"bold\"),\n\n \"body-md-light\": generateFont(\"body-md\", \"light\"),\n \"body-md-regular\": generateFont(\"body-md\", \"regular\"),\n \"body-md-semibold\": generateFont(\"body-md\", \"semibold\"),\n \"body-md-bold\": generateFont(\"body-md\", \"bold\"),\n\n \"body-sm-light\": generateFont(\"body-sm\", \"light\"),\n \"body-sm-regular\": generateFont(\"body-sm\", \"regular\"),\n \"body-sm-semibold\": generateFont(\"body-sm\", \"semibold\"),\n \"body-sm-bold\": generateFont(\"body-sm\", \"bold\"),\n\n \"body-xs-light\": generateFont(\"body-xs\", \"light\"),\n \"body-xs-regular\": generateFont(\"body-xs\", \"regular\"),\n \"body-xs-semibold\": generateFont(\"body-xs\", \"semibold\"),\n \"body-xs-bold\": generateFont(\"body-xs\", \"bold\"),\n\n \"form-label\": generateFont(\"form-label\", \"semibold\"),\n \"form-description\": generateFont(\"form-description\", \"regular\"),\n\n Spec: FontSpec,\n} as const;\n"],"names":["FontSpec","Font","generateFont","Spec"],"mappings":"+CAGO,MAAMA,EAAW,CACpB,sBAAuB,iCACvB,mBAAoB,8BACpB,eAAgB,0BAEhB,eAAgB,+BAChB,iBAAkB,iCAClB,kBAAmB,kCACnB,cAAe,8BAEf,mBAAoB,mCACpB,kBAAmB,kCACnB,kBAAmB,kCACnB,kBAAmB,kCACnB,kBAAmB,kCACnB,kBAAmB,kCAEnB,iBAAkB,iCAClB,gBAAiB,gCACjB,gBAAiB,gCACjB,gBAAiB,gCACjB,gBAAiB,gCACjB,gBAAiB,gCAEjB,iBAAkB,iCAClB,gBAAiB,gCACjB,gBAAiB,gCACjB,gBAAiB,gCACjB,gBAAiB,gCACjB,gBAAiB,gCAEjB,qBAAsB,qCACtB,eAAgB,+BAChB,eAAgB,+BAChB,eAAgB,+BAEhB,mBAAoB,mCACpB,aAAc,6BACd,aAAc,6BACd,aAAc,6BAEd,mBAAoB,mCACpB,aAAc,6BACd,aAAc,6BACd,aAAc,6BAEd,kBAAmB,kCACnB,gBAAiB,gCACjB,gBAAiB,gCAEjB,wBAAyB,wCACzB,sBAAuB,sCACvB,sBAAuB,uCAIdC,EAAO,CAChB,oBAAqBC,EAAAA,aAAa,cAAe,SACjD,sBAAuBA,EAAAA,aAAa,cAAe,WACnD,uBAAwBA,EAAAA,aAAa,cAAe,YACpD,mBAAoBA,EAAAA,aAAa,cAAe,QAEhD,mBAAoBA,EAAAA,aAAa,aAAc,SAC/C,qBAAsBA,EAAAA,aAAa,aAAc,WACjD,sBAAuBA,EAAAA,aAAa,aAAc,YAClD,kBAAmBA,EAAAA,aAAa,aAAc,QAE9C,mBAAoBA,EAAAA,aAAa,aAAc,SAC/C,qBAAsBA,EAAAA,aAAa,aAAc,WACjD,sBAAuBA,EAAAA,aAAa,aAAc,YAClD,kBAAmBA,EAAAA,aAAa,aAAc,QAE9C,mBAAoBA,EAAAA,aAAa,aAAc,SAC/C,qBAAsBA,EAAAA,aAAa,aAAc,WACjD,sBAAuBA,EAAAA,aAAa,aAAc,YAClD,kBAAmBA,EAAAA,aAAa,aAAc,QAE9C,mBAAoBA,EAAAA,aAAa,aAAc,SAC/C,qBAAsBA,EAAAA,aAAa,aAAc,WACjD,sBAAuBA,EAAAA,aAAa,aAAc,YAClD,kBAAmBA,EAAAA,aAAa,aAAc,QAE9C,mBAAoBA,EAAAA,aAAa,aAAc,SAC/C,qBAAsBA,EAAAA,aAAa,aAAc,WACjD,sBAAuBA,EAAAA,aAAa,aAAc,YAClD,kBAAmBA,EAAAA,aAAa,aAAc,QAE9C,sBAAuBA,EAAAA,aAAa,gBAAiB,SACrD,wBAAyBA,EAAAA,aAAa,gBAAiB,WACvD,yBAA0BA,EAAAA,aAAa,gBAAiB,YACxD,qBAAsBA,EAAAA,aAAa,gBAAiB,QAEpD,gBAAiBA,EAAAA,aAAa,UAAW,SACzC,kBAAmBA,EAAAA,aAAa,UAAW,WAC3C,mBAAoBA,EAAAA,aAAa,UAAW,YAC5C,eAAgBA,EAAAA,aAAa,UAAW,QAExC,gBAAiBA,EAAAA,aAAa,UAAW,SACzC,kBAAmBA,EAAAA,aAAa,UAAW,WAC3C,mBAAoBA,EAAAA,aAAa,UAAW,YAC5C,eAAgBA,EAAAA,aAAa,UAAW,QAExC,gBAAiBA,EAAAA,aAAa,UAAW,SACzC,kBAAmBA,EAAAA,aAAa,UAAW,WAC3C,mBAAoBA,EAAAA,aAAa,UAAW,YAC5C,eAAgBA,EAAAA,aAAa,UAAW,QAExC,aAAcA,EAAAA,aAAa,aAAc,YACzC,mBAAoBA,EAAAA,aAAa,mBAAoB,WAErDC,KAAMH"}
1
+ {"version":3,"file":"font.js","sources":["../../../../src/theme/tokens/font.ts"],"sourcesContent":["import { generateFont } from \"../utils/font\";\n\n/**\n * Raw font CSS variable tokens.\n */\nexport const FontSpec = {\n \"font-family-heading\": \"var(--fds-font-family-heading)\",\n \"font-family-body\": \"var(--fds-font-family-body)\",\n \"font-variant\": \"var(--fds-font-variant)\",\n\n \"weight-light\": \"var(--fds-font-weight-light)\",\n \"weight-regular\": \"var(--fds-font-weight-regular)\",\n \"weight-semibold\": \"var(--fds-font-weight-semibold)\",\n \"weight-bold\": \"var(--fds-font-weight-bold)\",\n\n \"heading-size-xxl\": \"var(--fds-font-heading-size-xxl)\",\n \"heading-size-xl\": \"var(--fds-font-heading-size-xl)\",\n \"heading-size-lg\": \"var(--fds-font-heading-size-lg)\",\n \"heading-size-md\": \"var(--fds-font-heading-size-md)\",\n \"heading-size-sm\": \"var(--fds-font-heading-size-sm)\",\n \"heading-size-xs\": \"var(--fds-font-heading-size-xs)\",\n\n \"heading-lh-xxl\": \"var(--fds-font-heading-lh-xxl)\",\n \"heading-lh-xl\": \"var(--fds-font-heading-lh-xl)\",\n \"heading-lh-lg\": \"var(--fds-font-heading-lh-lg)\",\n \"heading-lh-md\": \"var(--fds-font-heading-lh-md)\",\n \"heading-lh-sm\": \"var(--fds-font-heading-lh-sm)\",\n \"heading-lh-xs\": \"var(--fds-font-heading-lh-xs)\",\n\n \"heading-ls-xxl\": \"var(--fds-font-heading-ls-xxl)\",\n \"heading-ls-xl\": \"var(--fds-font-heading-ls-xl)\",\n \"heading-ls-lg\": \"var(--fds-font-heading-ls-lg)\",\n \"heading-ls-md\": \"var(--fds-font-heading-ls-md)\",\n \"heading-ls-sm\": \"var(--fds-font-heading-ls-sm)\",\n \"heading-ls-xs\": \"var(--fds-font-heading-ls-xs)\",\n\n \"body-size-baseline\": \"var(--fds-font-body-size-baseline)\",\n \"body-size-md\": \"var(--fds-font-body-size-md)\",\n \"body-size-sm\": \"var(--fds-font-body-size-sm)\",\n \"body-size-xs\": \"var(--fds-font-body-size-xs)\",\n\n \"body-lh-baseline\": \"var(--fds-font-body-lh-baseline)\",\n \"body-lh-md\": \"var(--fds-font-body-lh-md)\",\n \"body-lh-sm\": \"var(--fds-font-body-lh-sm)\",\n \"body-lh-xs\": \"var(--fds-font-body-lh-xs)\",\n\n \"body-ls-baseline\": \"var(--fds-font-body-ls-baseline)\",\n \"body-ls-md\": \"var(--fds-font-body-ls-md)\",\n \"body-ls-sm\": \"var(--fds-font-body-ls-sm)\",\n \"body-ls-xs\": \"var(--fds-font-body-ls-xs)\",\n\n \"form-label-size\": \"var(--fds-font-form-label-size)\",\n \"form-label-lh\": \"var(--fds-font-form-label-lh)\",\n \"form-label-ls\": \"var(--fds-font-form-label-ls)\",\n\n \"form-description-size\": \"var(--fds-font-form-description-size)\",\n \"form-description-lh\": \"var(--fds-font-form-description-lh)\",\n \"form-description-ls\": \"var(--fds-font-form-description-ls)\",\n} as const;\n\n// @catalog\n/**\n * Pre-composed font declaration strings for all size & weight combinations.\n */\nexport const Font = {\n \"heading-xxl-light\": generateFont(\"heading-xxl\", \"light\"),\n \"heading-xxl-regular\": generateFont(\"heading-xxl\", \"regular\"),\n \"heading-xxl-semibold\": generateFont(\"heading-xxl\", \"semibold\"),\n \"heading-xxl-bold\": generateFont(\"heading-xxl\", \"bold\"),\n\n \"heading-xl-light\": generateFont(\"heading-xl\", \"light\"),\n \"heading-xl-regular\": generateFont(\"heading-xl\", \"regular\"),\n \"heading-xl-semibold\": generateFont(\"heading-xl\", \"semibold\"),\n \"heading-xl-bold\": generateFont(\"heading-xl\", \"bold\"),\n\n \"heading-lg-light\": generateFont(\"heading-lg\", \"light\"),\n \"heading-lg-regular\": generateFont(\"heading-lg\", \"regular\"),\n \"heading-lg-semibold\": generateFont(\"heading-lg\", \"semibold\"),\n \"heading-lg-bold\": generateFont(\"heading-lg\", \"bold\"),\n\n \"heading-md-light\": generateFont(\"heading-md\", \"light\"),\n \"heading-md-regular\": generateFont(\"heading-md\", \"regular\"),\n \"heading-md-semibold\": generateFont(\"heading-md\", \"semibold\"),\n \"heading-md-bold\": generateFont(\"heading-md\", \"bold\"),\n\n \"heading-sm-light\": generateFont(\"heading-sm\", \"light\"),\n \"heading-sm-regular\": generateFont(\"heading-sm\", \"regular\"),\n \"heading-sm-semibold\": generateFont(\"heading-sm\", \"semibold\"),\n \"heading-sm-bold\": generateFont(\"heading-sm\", \"bold\"),\n\n \"heading-xs-light\": generateFont(\"heading-xs\", \"light\"),\n \"heading-xs-regular\": generateFont(\"heading-xs\", \"regular\"),\n \"heading-xs-semibold\": generateFont(\"heading-xs\", \"semibold\"),\n \"heading-xs-bold\": generateFont(\"heading-xs\", \"bold\"),\n\n \"body-baseline-light\": generateFont(\"body-baseline\", \"light\"),\n \"body-baseline-regular\": generateFont(\"body-baseline\", \"regular\"),\n \"body-baseline-semibold\": generateFont(\"body-baseline\", \"semibold\"),\n \"body-baseline-bold\": generateFont(\"body-baseline\", \"bold\"),\n\n \"body-md-light\": generateFont(\"body-md\", \"light\"),\n \"body-md-regular\": generateFont(\"body-md\", \"regular\"),\n \"body-md-semibold\": generateFont(\"body-md\", \"semibold\"),\n \"body-md-bold\": generateFont(\"body-md\", \"bold\"),\n\n \"body-sm-light\": generateFont(\"body-sm\", \"light\"),\n \"body-sm-regular\": generateFont(\"body-sm\", \"regular\"),\n \"body-sm-semibold\": generateFont(\"body-sm\", \"semibold\"),\n \"body-sm-bold\": generateFont(\"body-sm\", \"bold\"),\n\n \"body-xs-light\": generateFont(\"body-xs\", \"light\"),\n \"body-xs-regular\": generateFont(\"body-xs\", \"regular\"),\n \"body-xs-semibold\": generateFont(\"body-xs\", \"semibold\"),\n \"body-xs-bold\": generateFont(\"body-xs\", \"bold\"),\n\n \"form-label\": generateFont(\"form-label\", \"semibold\"),\n \"form-description\": generateFont(\"form-description\", \"regular\"),\n\n Spec: FontSpec,\n} as const;\n"],"names":["FontSpec","Font","generateFont","Spec"],"mappings":"+CAKO,MAAMA,EAAW,CACpB,sBAAuB,iCACvB,mBAAoB,8BACpB,eAAgB,0BAEhB,eAAgB,+BAChB,iBAAkB,iCAClB,kBAAmB,kCACnB,cAAe,8BAEf,mBAAoB,mCACpB,kBAAmB,kCACnB,kBAAmB,kCACnB,kBAAmB,kCACnB,kBAAmB,kCACnB,kBAAmB,kCAEnB,iBAAkB,iCAClB,gBAAiB,gCACjB,gBAAiB,gCACjB,gBAAiB,gCACjB,gBAAiB,gCACjB,gBAAiB,gCAEjB,iBAAkB,iCAClB,gBAAiB,gCACjB,gBAAiB,gCACjB,gBAAiB,gCACjB,gBAAiB,gCACjB,gBAAiB,gCAEjB,qBAAsB,qCACtB,eAAgB,+BAChB,eAAgB,+BAChB,eAAgB,+BAEhB,mBAAoB,mCACpB,aAAc,6BACd,aAAc,6BACd,aAAc,6BAEd,mBAAoB,mCACpB,aAAc,6BACd,aAAc,6BACd,aAAc,6BAEd,kBAAmB,kCACnB,gBAAiB,gCACjB,gBAAiB,gCAEjB,wBAAyB,wCACzB,sBAAuB,sCACvB,sBAAuB,uCAOdC,EAAO,CAChB,oBAAqBC,EAAAA,aAAa,cAAe,SACjD,sBAAuBA,EAAAA,aAAa,cAAe,WACnD,uBAAwBA,EAAAA,aAAa,cAAe,YACpD,mBAAoBA,EAAAA,aAAa,cAAe,QAEhD,mBAAoBA,EAAAA,aAAa,aAAc,SAC/C,qBAAsBA,EAAAA,aAAa,aAAc,WACjD,sBAAuBA,EAAAA,aAAa,aAAc,YAClD,kBAAmBA,EAAAA,aAAa,aAAc,QAE9C,mBAAoBA,EAAAA,aAAa,aAAc,SAC/C,qBAAsBA,EAAAA,aAAa,aAAc,WACjD,sBAAuBA,EAAAA,aAAa,aAAc,YAClD,kBAAmBA,EAAAA,aAAa,aAAc,QAE9C,mBAAoBA,EAAAA,aAAa,aAAc,SAC/C,qBAAsBA,EAAAA,aAAa,aAAc,WACjD,sBAAuBA,EAAAA,aAAa,aAAc,YAClD,kBAAmBA,EAAAA,aAAa,aAAc,QAE9C,mBAAoBA,EAAAA,aAAa,aAAc,SAC/C,qBAAsBA,EAAAA,aAAa,aAAc,WACjD,sBAAuBA,EAAAA,aAAa,aAAc,YAClD,kBAAmBA,EAAAA,aAAa,aAAc,QAE9C,mBAAoBA,EAAAA,aAAa,aAAc,SAC/C,qBAAsBA,EAAAA,aAAa,aAAc,WACjD,sBAAuBA,EAAAA,aAAa,aAAc,YAClD,kBAAmBA,EAAAA,aAAa,aAAc,QAE9C,sBAAuBA,EAAAA,aAAa,gBAAiB,SACrD,wBAAyBA,EAAAA,aAAa,gBAAiB,WACvD,yBAA0BA,EAAAA,aAAa,gBAAiB,YACxD,qBAAsBA,EAAAA,aAAa,gBAAiB,QAEpD,gBAAiBA,EAAAA,aAAa,UAAW,SACzC,kBAAmBA,EAAAA,aAAa,UAAW,WAC3C,mBAAoBA,EAAAA,aAAa,UAAW,YAC5C,eAAgBA,EAAAA,aAAa,UAAW,QAExC,gBAAiBA,EAAAA,aAAa,UAAW,SACzC,kBAAmBA,EAAAA,aAAa,UAAW,WAC3C,mBAAoBA,EAAAA,aAAa,UAAW,YAC5C,eAAgBA,EAAAA,aAAa,UAAW,QAExC,gBAAiBA,EAAAA,aAAa,UAAW,SACzC,kBAAmBA,EAAAA,aAAa,UAAW,WAC3C,mBAAoBA,EAAAA,aAAa,UAAW,YAC5C,eAAgBA,EAAAA,aAAa,UAAW,QAExC,aAAcA,EAAAA,aAAa,aAAc,YACzC,mBAAoBA,EAAAA,aAAa,mBAAoB,WAErDC,KAAMH"}
@@ -1 +1 @@
1
- {"version":3,"file":"media-query.js","sources":["../../../../src/theme/tokens/media-query.ts"],"sourcesContent":["const MAX_WIDTH_BREAKPOINTS = [\"xxs\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"] as const;\nconst MIN_WIDTH_BREAKPOINTS = [...MAX_WIDTH_BREAKPOINTS, \"xxl\"] as const;\n\ntype WidthConstraint = \"min\" | \"max\";\ntype PseudoMediaQuerySpec<T extends readonly string[]> = Record<\n T[number],\n string\n>;\n\nconst getPseudoMediaQuery = (breakpoint: string, type: WidthConstraint) =>\n `:where(body.fds-breakpoint-${breakpoint}-${type}) &`;\n\nconst getPseudoMediaQuerySpec = <T extends readonly string[]>(\n breakpoints: T,\n type: WidthConstraint\n): PseudoMediaQuerySpec<T> => {\n const spec = {} as Record<T[number], string>;\n\n breakpoints.forEach((breakpoint) => {\n spec[breakpoint as T[number]] = getPseudoMediaQuery(breakpoint, type);\n });\n\n return spec;\n};\n\n/** CSS class-based pseudo media-query selectors keyed by breakpoint name. */\nexport const MediaQuery = {\n MaxWidth: getPseudoMediaQuerySpec(MAX_WIDTH_BREAKPOINTS, \"max\"),\n MinWidth: getPseudoMediaQuerySpec(MIN_WIDTH_BREAKPOINTS, \"min\"),\n} as const;\n"],"names":["MAX_WIDTH_BREAKPOINTS","MIN_WIDTH_BREAKPOINTS","getPseudoMediaQuerySpec","breakpoints","type","spec","forEach","breakpoint","getPseudoMediaQuery","MediaQuery","MaxWidth","MinWidth"],"mappings":"aAAA,MAAMA,EAAwB,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MACxDC,EAAwB,IAAID,EAAuB,OAWnDE,EAA0B,CAC5BC,EACAC,KAEA,MAAMC,EAAO,CAAA,EAMb,OAJAF,EAAYG,SAASC,IACjBF,EAAKE,GAVe,EAACA,EAAoBH,IAC7C,8BAA8BG,KAAcH,OASRI,CAAoBD,EAAYH,EAAK,IAGlEC,CAAI,EAIFI,EAAa,CACtBC,SAAUR,EAAwBF,EAAuB,OACzDW,SAAUT,EAAwBD,EAAuB"}
1
+ {"version":3,"file":"media-query.js","sources":["../../../../src/theme/tokens/media-query.ts"],"sourcesContent":["const MAX_WIDTH_BREAKPOINTS = [\"xxs\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"] as const;\nconst MIN_WIDTH_BREAKPOINTS = [...MAX_WIDTH_BREAKPOINTS, \"xxl\"] as const;\n\ntype WidthConstraint = \"min\" | \"max\";\ntype PseudoMediaQuerySpec<T extends readonly string[]> = Record<\n T[number],\n string\n>;\n\nconst getPseudoMediaQuery = (breakpoint: string, type: WidthConstraint) =>\n `:where(body.fds-breakpoint-${breakpoint}-${type}) &`;\n\nconst getPseudoMediaQuerySpec = <T extends readonly string[]>(\n breakpoints: T,\n type: WidthConstraint\n): PseudoMediaQuerySpec<T> => {\n const spec = {} as Record<T[number], string>;\n\n breakpoints.forEach((breakpoint) => {\n spec[breakpoint as T[number]] = getPseudoMediaQuery(breakpoint, type);\n });\n\n return spec;\n};\n\n// @catalog\n/**\n * CSS class-based pseudo media-query selectors keyed by breakpoint name.\n */\nexport const MediaQuery = {\n MaxWidth: getPseudoMediaQuerySpec(MAX_WIDTH_BREAKPOINTS, \"max\"),\n MinWidth: getPseudoMediaQuerySpec(MIN_WIDTH_BREAKPOINTS, \"min\"),\n} as const;\n"],"names":["MAX_WIDTH_BREAKPOINTS","MIN_WIDTH_BREAKPOINTS","getPseudoMediaQuerySpec","breakpoints","type","spec","forEach","breakpoint","getPseudoMediaQuery","MediaQuery","MaxWidth","MinWidth"],"mappings":"aAAA,MAAMA,EAAwB,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MACxDC,EAAwB,IAAID,EAAuB,OAWnDE,EAA0B,CAC5BC,EACAC,KAEA,MAAMC,EAAO,CAAA,EAMb,OAJAF,EAAYG,SAASC,IACjBF,EAAKE,GAVe,EAACA,EAAoBH,IAC7C,8BAA8BG,KAAcH,OASRI,CAAoBD,EAAYH,EAAK,IAGlEC,CAAI,EAOFI,EAAa,CACtBC,SAAUR,EAAwBF,EAAuB,OACzDW,SAAUT,EAAwBD,EAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"motion.js","sources":["../../../../src/theme/tokens/motion.ts"],"sourcesContent":["/** Animation tokens consisting of durations and easing functions. */\nexport const Motion = {\n \"duration-150\": \"var(--fds-motion-duration-150)\",\n \"duration-250\": \"var(--fds-motion-duration-250)\",\n \"duration-350\": \"var(--fds-motion-duration-350)\",\n \"duration-500\": \"var(--fds-motion-duration-500)\",\n \"duration-800\": \"var(--fds-motion-duration-800)\",\n \"duration-1000\": \"var(--fds-motion-duration-1000)\",\n\n \"ease-default\": \"var(--fds-motion-timing-ease-default)\",\n \"ease-standard\": \"var(--fds-motion-timing-ease-standard)\",\n \"ease-entrance\": \"var(--fds-motion-timing-ease-entrance)\",\n \"ease-exit\": \"var(--fds-motion-timing-ease-exit)\",\n} as const;\n"],"names":[],"mappings":"4BACsB,CAClB,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,gBAAiB,kCAEjB,eAAgB,wCAChB,gBAAiB,yCACjB,gBAAiB,yCACjB,YAAa"}
1
+ {"version":3,"file":"motion.js","sources":["../../../../src/theme/tokens/motion.ts"],"sourcesContent":["// @catalog\n/**\n * Animation tokens consisting of durations and easing functions.\n */\nexport const Motion = {\n \"duration-150\": \"var(--fds-motion-duration-150)\",\n \"duration-250\": \"var(--fds-motion-duration-250)\",\n \"duration-350\": \"var(--fds-motion-duration-350)\",\n \"duration-500\": \"var(--fds-motion-duration-500)\",\n \"duration-800\": \"var(--fds-motion-duration-800)\",\n \"duration-1000\": \"var(--fds-motion-duration-1000)\",\n\n \"ease-default\": \"var(--fds-motion-timing-ease-default)\",\n \"ease-standard\": \"var(--fds-motion-timing-ease-standard)\",\n \"ease-entrance\": \"var(--fds-motion-timing-ease-entrance)\",\n \"ease-exit\": \"var(--fds-motion-timing-ease-exit)\",\n} as const;\n"],"names":[],"mappings":"4BAIsB,CAClB,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,eAAgB,iCAChB,gBAAiB,kCAEjB,eAAgB,wCAChB,gBAAiB,yCACjB,gBAAiB,yCACjB,YAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"radius.js","sources":["../../../../src/theme/tokens/radius.ts"],"sourcesContent":["/** Border radius tokens. */\nexport const Radius = {\n none: \"var(--fds-radius-none)\",\n xs: \"var(--fds-radius-xs)\",\n sm: \"var(--fds-radius-sm)\",\n md: \"var(--fds-radius-md)\",\n lg: \"var(--fds-radius-lg)\",\n full: \"var(--fds-radius-full)\",\n} as const;\n"],"names":["none","xs","sm","md","lg","full"],"mappings":"4BACsB,CAClBA,KAAM,yBACNC,GAAI,uBACJC,GAAI,uBACJC,GAAI,uBACJC,GAAI,uBACJC,KAAM"}
1
+ {"version":3,"file":"radius.js","sources":["../../../../src/theme/tokens/radius.ts"],"sourcesContent":["// @catalog\n/**\n * Border radius tokens.\n */\nexport const Radius = {\n none: \"var(--fds-radius-none)\",\n xs: \"var(--fds-radius-xs)\",\n sm: \"var(--fds-radius-sm)\",\n md: \"var(--fds-radius-md)\",\n lg: \"var(--fds-radius-lg)\",\n full: \"var(--fds-radius-full)\",\n} as const;\n"],"names":["none","xs","sm","md","lg","full"],"mappings":"4BAIsB,CAClBA,KAAM,yBACNC,GAAI,uBACJC,GAAI,uBACJC,GAAI,uBACJC,GAAI,uBACJC,KAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"shadow.js","sources":["../../../../src/theme/tokens/shadow.ts"],"sourcesContent":["/** Box-shadow tokens. */\nexport const Shadow = {\n \"xs-subtle\": \"var(--fds-shadow-xs-subtle)\",\n \"xs-strong\": \"var(--fds-shadow-xs-strong)\",\n \"xs-focus-strong\": \"var(--fds-shadow-xs-focus-strong)\",\n \"xs-error-strong\": \"var(--fds-shadow-xs-error-strong)\",\n \"sm-subtle\": \"var(--fds-shadow-sm-subtle)\",\n \"sm-strong\": \"var(--fds-shadow-sm-strong)\",\n \"md-subtle\": \"var(--fds-shadow-md-subtle)\",\n \"md-strong\": \"var(--fds-shadow-md-strong)\",\n \"lg-subtle\": \"var(--fds-shadow-lg-subtle)\",\n \"lg-strong\": \"var(--fds-shadow-lg-strong)\",\n} as const;\n"],"names":[],"mappings":"4BACsB,CAClB,YAAa,8BACb,YAAa,8BACb,kBAAmB,oCACnB,kBAAmB,oCACnB,YAAa,8BACb,YAAa,8BACb,YAAa,8BACb,YAAa,8BACb,YAAa,8BACb,YAAa"}
1
+ {"version":3,"file":"shadow.js","sources":["../../../../src/theme/tokens/shadow.ts"],"sourcesContent":["// @catalog\n/**\n * Box-shadow tokens.\n */\nexport const Shadow = {\n \"xs-subtle\": \"var(--fds-shadow-xs-subtle)\",\n \"xs-strong\": \"var(--fds-shadow-xs-strong)\",\n \"xs-focus-strong\": \"var(--fds-shadow-xs-focus-strong)\",\n \"xs-error-strong\": \"var(--fds-shadow-xs-error-strong)\",\n \"sm-subtle\": \"var(--fds-shadow-sm-subtle)\",\n \"sm-strong\": \"var(--fds-shadow-sm-strong)\",\n \"md-subtle\": \"var(--fds-shadow-md-subtle)\",\n \"md-strong\": \"var(--fds-shadow-md-strong)\",\n \"lg-subtle\": \"var(--fds-shadow-lg-subtle)\",\n \"lg-strong\": \"var(--fds-shadow-lg-strong)\",\n} as const;\n"],"names":[],"mappings":"4BAIsB,CAClB,YAAa,8BACb,YAAa,8BACb,kBAAmB,oCACnB,kBAAmB,oCACnB,YAAa,8BACb,YAAa,8BACb,YAAa,8BACb,YAAa,8BACb,YAAa,8BACb,YAAa"}
@@ -1 +1 @@
1
- {"version":3,"file":"spacing.js","sources":["../../../../src/theme/tokens/spacing.ts"],"sourcesContent":["/** Spacing tokens consisting of component spacing and layout spacing. */\nexport const Spacing = {\n \"spacing-0\": \"var(--fds-spacing-0)\",\n \"spacing-4\": \"var(--fds-spacing-4)\",\n \"spacing-8\": \"var(--fds-spacing-8)\",\n \"spacing-12\": \"var(--fds-spacing-12)\",\n \"spacing-16\": \"var(--fds-spacing-16)\",\n \"spacing-20\": \"var(--fds-spacing-20)\",\n \"spacing-24\": \"var(--fds-spacing-24)\",\n \"spacing-32\": \"var(--fds-spacing-32)\",\n \"spacing-40\": \"var(--fds-spacing-40)\",\n \"spacing-48\": \"var(--fds-spacing-48)\",\n \"spacing-64\": \"var(--fds-spacing-64)\",\n \"spacing-72\": \"var(--fds-spacing-72)\",\n\n \"layout-xs\": \"var(--fds-layout-xs)\",\n \"layout-sm\": \"var(--fds-layout-sm)\",\n \"layout-md\": \"var(--fds-layout-md)\",\n \"layout-lg\": \"var(--fds-layout-lg)\",\n \"layout-xl\": \"var(--fds-layout-xl)\",\n \"layout-xxl\": \"var(--fds-layout-xxl)\",\n \"layout-xxxl\": \"var(--fds-layout-xxxl)\",\n} as const;\n"],"names":[],"mappings":"6BACuB,CACnB,YAAa,uBACb,YAAa,uBACb,YAAa,uBACb,aAAc,wBACd,aAAc,wBACd,aAAc,wBACd,aAAc,wBACd,aAAc,wBACd,aAAc,wBACd,aAAc,wBACd,aAAc,wBACd,aAAc,wBAEd,YAAa,uBACb,YAAa,uBACb,YAAa,uBACb,YAAa,uBACb,YAAa,uBACb,aAAc,wBACd,cAAe"}
1
+ {"version":3,"file":"spacing.js","sources":["../../../../src/theme/tokens/spacing.ts"],"sourcesContent":["// @catalog\n/**\n * Spacing tokens consisting of component spacing and layout spacing.\n */\nexport const Spacing = {\n \"spacing-0\": \"var(--fds-spacing-0)\",\n \"spacing-4\": \"var(--fds-spacing-4)\",\n \"spacing-8\": \"var(--fds-spacing-8)\",\n \"spacing-12\": \"var(--fds-spacing-12)\",\n \"spacing-16\": \"var(--fds-spacing-16)\",\n \"spacing-20\": \"var(--fds-spacing-20)\",\n \"spacing-24\": \"var(--fds-spacing-24)\",\n \"spacing-32\": \"var(--fds-spacing-32)\",\n \"spacing-40\": \"var(--fds-spacing-40)\",\n \"spacing-48\": \"var(--fds-spacing-48)\",\n \"spacing-64\": \"var(--fds-spacing-64)\",\n \"spacing-72\": \"var(--fds-spacing-72)\",\n\n \"layout-xs\": \"var(--fds-layout-xs)\",\n \"layout-sm\": \"var(--fds-layout-sm)\",\n \"layout-md\": \"var(--fds-layout-md)\",\n \"layout-lg\": \"var(--fds-layout-lg)\",\n \"layout-xl\": \"var(--fds-layout-xl)\",\n \"layout-xxl\": \"var(--fds-layout-xxl)\",\n \"layout-xxxl\": \"var(--fds-layout-xxxl)\",\n} as const;\n"],"names":[],"mappings":"6BAIuB,CACnB,YAAa,uBACb,YAAa,uBACb,YAAa,uBACb,aAAc,wBACd,aAAc,wBACd,aAAc,wBACd,aAAc,wBACd,aAAc,wBACd,aAAc,wBACd,aAAc,wBACd,aAAc,wBACd,aAAc,wBAEd,YAAa,uBACb,YAAa,uBACb,YAAa,uBACb,YAAa,uBACb,YAAa,uBACb,aAAc,wBACd,cAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-apply-styles.js","sources":["../../../../src/theme/utils/use-apply-styles.ts"],"sourcesContent":["import type { CSSProperties, RefObject } from \"react\";\n\nimport { useIsomorphicLayoutEffect } from \"../../util\";\nimport type { CSSVariableString } from \"../types\";\n\ntype StyleValue = string | number | null | undefined;\n\ntype ExtractCleanCSSVariableName<T extends string> =\n T extends `var(${infer Name})` ? Name : never;\ntype CSSVariableKey = ExtractCleanCSSVariableName<CSSVariableString>;\n\n/**\n * Style map accepted by `useApplyStyle`. Supports camelCase CSS properties,\n * theme CSS variable keys, and arbitrary `--custom-property` names.\n */\nexport type ApplyStyleMap =\n | ({\n [K in keyof CSSStyleDeclaration]?: StyleValue;\n } & {\n [K in CSSVariableKey]?: StyleValue;\n } & {\n [K in `--${string}`]?: StyleValue;\n })\n | CSSProperties;\n\n/**\n * List of properties that expect units but can be provided as\n * numbers through React style prop\n */\nconst numericCssStyleProperties: Set<keyof CSSStyleDeclaration> = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"margin\",\n \"marginTop\",\n \"marginLeft\",\n \"marginRight\",\n \"marginBottom\",\n \"padding\",\n \"paddingTop\",\n \"paddingLeft\",\n \"paddingRight\",\n \"paddingBottom\",\n]);\n\n/**\n * Normalises standard CSS property names from camelCase to kebab-case\n * - `backgroundColor` → `background-color`\n * - `WebkitLineClamp` → `-webkit-line-clamp`\n * - `--custom-variable` → `--custom-variable`\n *\n * Ref\n * https://github.com/facebook/react/blob/ad5dfc82b7107728da1430dd142f75b97b684dac/packages/react-dom-bindings/src/shared/hyphenateStyleName.js#L26\n */\nfunction normaliseCssProperty(key: string): string {\n if (key.startsWith(\"--\")) return key;\n\n const kebabCased = key.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n\n if (/^(o|moz|ms|webkit)-/.test(kebabCased)) {\n return `-${kebabCased}`;\n }\n\n return kebabCased;\n}\n\nfunction normaliseCssValue(key: string, value: string | number): string {\n if (\n typeof value === \"number\" &&\n numericCssStyleProperties.has(key as keyof CSSStyleDeclaration)\n ) {\n return `${value}px`;\n }\n\n return String(value);\n}\n\n/**\n * Hook to apply styles to a HTML DOM element. Use when you need to apply inline\n * styles but cannot use the inline React `style` prop due to strict CSP rules.\n *\n * @param ref The HTML element to receive the styles\n * @param styles The styles to apply, in the same format as the React `style`\n * prop, or CSS variables. Values will be normalised to strings and numeric\n * values will have \"px\" appended for properties that typically require units.\n */\nexport function useApplyStyle<TElement extends HTMLElement>(\n ref: RefObject<TElement | null>,\n styles: ApplyStyleMap | undefined\n) {\n useIsomorphicLayoutEffect(() => {\n const element = ref?.current;\n if (!element || !styles) return;\n\n Object.entries(styles).forEach(([key, value]: [string, StyleValue]) => {\n const normalisedKey = normaliseCssProperty(key);\n\n if (value == null) {\n element.style.removeProperty(normalisedKey);\n return;\n }\n\n const normalisedValue = normaliseCssValue(key, value);\n element.style.setProperty(normalisedKey, normalisedValue);\n });\n }, [ref, styles]);\n}\n"],"names":["numericCssStyleProperties","Set","ref","styles","useIsomorphicLayoutEffect","element","current","Object","entries","forEach","key","value","normalisedKey","startsWith","kebabCased","replace","toLowerCase","test","normaliseCssProperty","style","removeProperty","normalisedValue","has","String","normaliseCssValue","setProperty"],"mappings":"0SA6BA,MAAMA,EAA4D,IAAIC,IAAI,CACtE,QACA,SACA,MACA,OACA,QACA,SACA,SACA,YACA,aACA,cACA,eACA,UACA,aACA,cACA,eACA,wCA4CE,SACFC,EACAC,GAEAC,EAAAA,2BAA0B,KACtB,MAAMC,EAAUH,aAAG,EAAHA,EAAKI,QAChBD,GAAYF,GAEjBI,OAAOC,QAAQL,GAAQM,SAAQ,EAAEC,EAAKC,MAClC,MAAMC,EAzClB,SAA8BF,GAC1B,GAAIA,EAAIG,WAAW,MAAO,OAAOH,EAEjC,MAAMI,EAAaJ,EAAIK,QAAQ,WAAY,OAAOC,cAElD,MAAI,sBAAsBC,KAAKH,GACpB,IAAIA,IAGRA,CACX,CA+BkCI,CAAqBR,GAE3C,GAAa,MAATC,EAEA,YADAN,EAAQc,MAAMC,eAAeR,GAIjC,MAAMS,EApClB,SAA2BX,EAAaC,GACpC,MACqB,iBAAVA,GACPX,EAA0BsB,IAAIZ,GAEvB,GAAGC,MAGPY,OAAOZ,EAClB,CA2BoCa,CAAkBd,EAAKC,GAC/CN,EAAQc,MAAMM,YAAYb,EAAeS,EAAgB,GAC3D,GACH,CAACnB,EAAKC,GACb"}
1
+ {"version":3,"file":"use-apply-styles.js","sources":["../../../../src/theme/utils/use-apply-styles.ts"],"sourcesContent":["import type { CSSProperties, RefObject } from \"react\";\n\nimport { useIsomorphicLayoutEffect } from \"../../util\";\nimport type { CSSVariableString } from \"../types\";\n\ntype StyleValue = string | number | null | undefined;\n\ntype ExtractCleanCSSVariableName<T extends string> =\n T extends `var(${infer Name})` ? Name : never;\ntype CSSVariableKey = ExtractCleanCSSVariableName<CSSVariableString>;\n\n/**\n * Style map accepted by `useApplyStyle`. Supports camelCase CSS properties,\n * theme CSS variable keys, and arbitrary `--custom-property` names.\n */\nexport type ApplyStyleMap =\n | ({\n [K in keyof CSSStyleDeclaration]?: StyleValue;\n } & {\n [K in CSSVariableKey]?: StyleValue;\n } & {\n [K in `--${string}`]?: StyleValue;\n })\n | CSSProperties;\n\n/**\n * List of properties that expect units but can be provided as\n * numbers through React style prop\n */\nconst numericCssStyleProperties: Set<keyof CSSStyleDeclaration> = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"margin\",\n \"marginTop\",\n \"marginLeft\",\n \"marginRight\",\n \"marginBottom\",\n \"padding\",\n \"paddingTop\",\n \"paddingLeft\",\n \"paddingRight\",\n \"paddingBottom\",\n]);\n\n/**\n * Normalises standard CSS property names from camelCase to kebab-case\n * - `backgroundColor` → `background-color`\n * - `WebkitLineClamp` → `-webkit-line-clamp`\n * - `--custom-variable` → `--custom-variable`\n *\n * Ref\n * https://github.com/facebook/react/blob/ad5dfc82b7107728da1430dd142f75b97b684dac/packages/react-dom-bindings/src/shared/hyphenateStyleName.js#L26\n */\nfunction normaliseCssProperty(key: string): string {\n if (key.startsWith(\"--\")) return key;\n\n const kebabCased = key.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n\n if (/^(o|moz|ms|webkit)-/.test(kebabCased)) {\n return `-${kebabCased}`;\n }\n\n return kebabCased;\n}\n\nfunction normaliseCssValue(key: string, value: string | number): string {\n if (\n typeof value === \"number\" &&\n numericCssStyleProperties.has(key as keyof CSSStyleDeclaration)\n ) {\n return `${value}px`;\n }\n\n return String(value);\n}\n\n// @catalog\n/**\n * Hook to apply styles to a HTML DOM element. Use when you need to apply inline\n * styles but cannot use the inline React `style` prop due to strict CSP rules.\n *\n * @param ref The HTML element to receive the styles\n * @param styles The styles to apply, in the same format as the React `style`\n * prop, or CSS variables. Values will be normalised to strings and numeric\n * values will have \"px\" appended for properties that typically require units.\n */\nexport function useApplyStyle<TElement extends HTMLElement>(\n ref: RefObject<TElement | null>,\n styles: ApplyStyleMap | undefined\n) {\n useIsomorphicLayoutEffect(() => {\n const element = ref?.current;\n if (!element || !styles) return;\n\n Object.entries(styles).forEach(([key, value]: [string, StyleValue]) => {\n const normalisedKey = normaliseCssProperty(key);\n\n if (value == null) {\n element.style.removeProperty(normalisedKey);\n return;\n }\n\n const normalisedValue = normaliseCssValue(key, value);\n element.style.setProperty(normalisedKey, normalisedValue);\n });\n }, [ref, styles]);\n}\n"],"names":["numericCssStyleProperties","Set","ref","styles","useIsomorphicLayoutEffect","element","current","Object","entries","forEach","key","value","normalisedKey","startsWith","kebabCased","replace","toLowerCase","test","normaliseCssProperty","style","removeProperty","normalisedValue","has","String","normaliseCssValue","setProperty"],"mappings":"0SA6BA,MAAMA,EAA4D,IAAIC,IAAI,CACtE,QACA,SACA,MACA,OACA,QACA,SACA,SACA,YACA,aACA,cACA,eACA,UACA,aACA,cACA,eACA,wCA6CE,SACFC,EACAC,GAEAC,EAAAA,2BAA0B,KACtB,MAAMC,EAAUH,aAAG,EAAHA,EAAKI,QAChBD,GAAYF,GAEjBI,OAAOC,QAAQL,GAAQM,SAAQ,EAAEC,EAAKC,MAClC,MAAMC,EA1ClB,SAA8BF,GAC1B,GAAIA,EAAIG,WAAW,MAAO,OAAOH,EAEjC,MAAMI,EAAaJ,EAAIK,QAAQ,WAAY,OAAOC,cAElD,MAAI,sBAAsBC,KAAKH,GACpB,IAAIA,IAGRA,CACX,CAgCkCI,CAAqBR,GAE3C,GAAa,MAATC,EAEA,YADAN,EAAQc,MAAMC,eAAeR,GAIjC,MAAMS,EArClB,SAA2BX,EAAaC,GACpC,MACqB,iBAAVA,GACPX,EAA0BsB,IAAIZ,GAEvB,GAAGC,MAGPY,OAAOZ,EAClB,CA4BoCa,CAAkBd,EAAKC,GAC/CN,EAAQc,MAAMM,YAAYb,EAAeS,EAAgB,GAC3D,GACH,CAACnB,EAAKC,GACb"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-design-token.js","sources":["../../../../src/theme/utils/use-design-token.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nimport { useTheme } from \"../theme-provider/hooks\";\nimport type { CSSVariableString } from \"../types\";\nimport { parseCSSVariableValue } from \"./css-variable\";\n\nconst isEmptyValue = (value: unknown) => {\n return value == null || value === \"\";\n};\n\n/**\n * Resolves a design-token CSS variable to its computed string value within the\n * nearest `ThemeProvider` scope.\n *\n * @param tokenName A `CSSVariableString` token (e.g. `Colour[\"text\"]`), or\n * `undefined` to skip resolution.\n * @returns The computed CSS value, or `undefined` when the provider has not yet\n * mounted or `tokenName` is `undefined`.\n */\nexport const useDesignToken = (\n tokenName: CSSVariableString | undefined\n): string | undefined => {\n const { theme, mode, themeElement } = useTheme();\n const [value, setValue] = useState<string | undefined>(undefined);\n\n useEffect(() => {\n if (!themeElement) return;\n\n setValue(parseCSSVariableValue(tokenName, themeElement));\n }, [theme, mode, themeElement, tokenName]);\n\n return value;\n};\n\nexport interface UseResolvedTokenValueOptions<\n TToken extends CSSVariableString,\n TCustom\n> {\n /** Value used when `value` is empty. */\n fallback: TToken | TCustom;\n /** Type guard to identify token values. */\n isToken: (value: unknown) => value is TToken;\n /** Normalizer for non-token values. */\n normalizeCustom: (value: TCustom) => string;\n /** Candidate token or custom value. */\n value: TToken | TCustom | null | undefined;\n}\n\n/**\n * Resolves token-aware values with consistent fallback behavior.\n * - Empty values (`null`, `undefined`, `\"\"`) use `fallback`.\n * - Token values are resolved through `useDesignToken`.\n * - Non-token values are returned via `normalizeCustom`.\n * @param options Resolution options for token/custom values.\n * @returns Resolved token value or normalized custom/fallback value.\n */\nexport const useResolvedTokenValue = <\n TToken extends CSSVariableString,\n TCustom\n>(\n options: UseResolvedTokenValueOptions<TToken, TCustom>\n) => {\n const { value, fallback, isToken: checkToken, normalizeCustom } = options;\n const isToken = checkToken(value);\n const tokenName = isToken ? value : undefined;\n const resolvedToken = useDesignToken(tokenName);\n const isFallbackToken = checkToken(fallback);\n const fallbackTokenName = isFallbackToken ? fallback : undefined;\n const resolvedFallback = useDesignToken(fallbackTokenName);\n\n if (isToken && !isEmptyValue(resolvedToken)) {\n return resolvedToken;\n }\n\n if (!isToken && !isEmptyValue(value)) {\n return normalizeCustom(value);\n }\n\n if (isFallbackToken && !isEmptyValue(resolvedFallback)) {\n return resolvedFallback;\n }\n\n return normalizeCustom(fallback as TCustom);\n};\n"],"names":["isEmptyValue","value","useDesignToken","tokenName","theme","mode","themeElement","useTheme","setValue","useState","undefined","useEffect","parseCSSVariableValue","options","fallback","isToken","checkToken","normalizeCustom","resolvedToken","isFallbackToken","resolvedFallback"],"mappings":"2GAMA,MAAMA,EAAgBC,GACF,MAATA,GAA2B,KAAVA,EAYfC,EACTC,IAEA,MAAMC,MAAEA,EAAKC,KAAEA,EAAIC,aAAEA,GAAiBC,EAAAA,YAC/BN,EAAOO,GAAYC,EAAAA,cAA6BC,GAQvD,OANAC,EAAAA,WAAU,KACDL,GAELE,EAASI,EAAAA,sBAAsBT,EAAWG,GAAc,GACzD,CAACF,EAAOC,EAAMC,EAAcH,IAExBF,CAAK,yDA6BZY,IAEA,MAAMZ,MAAEA,EAAKa,SAAEA,EAAUC,QAASC,EAAUC,gBAAEA,GAAoBJ,EAC5DE,EAAUC,EAAWf,GAErBiB,EAAgBhB,EADJa,EAAUd,OAAQS,GAE9BS,EAAkBH,EAAWF,GAE7BM,EAAmBlB,EADCiB,EAAkBL,OAAWJ,GAGvD,OAAIK,IAAYf,EAAakB,GAClBA,EAGNH,GAAYf,EAAaC,GAI1BkB,IAAoBnB,EAAaoB,GAC1BA,EAGJH,EAAgBH,GAPZG,EAAgBhB,EAOgB"}
1
+ {"version":3,"file":"use-design-token.js","sources":["../../../../src/theme/utils/use-design-token.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nimport { useTheme } from \"../theme-provider/hooks\";\nimport type { CSSVariableString } from \"../types\";\nimport { parseCSSVariableValue } from \"./css-variable\";\n\nconst isEmptyValue = (value: unknown) => {\n return value == null || value === \"\";\n};\n\n// @catalog\n/**\n * Resolves a design-token CSS variable to its computed string value within the\n * nearest `ThemeProvider` scope.\n *\n * @param tokenName A `CSSVariableString` token (e.g. `Colour[\"text\"]`), or\n * `undefined` to skip resolution.\n * @returns The computed CSS value, or `undefined` when the provider has not yet\n * mounted or `tokenName` is `undefined`.\n */\nexport const useDesignToken = (\n tokenName: CSSVariableString | undefined\n): string | undefined => {\n const { theme, mode, themeElement } = useTheme();\n const [value, setValue] = useState<string | undefined>(undefined);\n\n useEffect(() => {\n if (!themeElement) return;\n\n setValue(parseCSSVariableValue(tokenName, themeElement));\n }, [theme, mode, themeElement, tokenName]);\n\n return value;\n};\n\nexport interface UseResolvedTokenValueOptions<\n TToken extends CSSVariableString,\n TCustom\n> {\n /** Value used when `value` is empty. */\n fallback: TToken | TCustom;\n /** Type guard to identify token values. */\n isToken: (value: unknown) => value is TToken;\n /** Normalizer for non-token values. */\n normalizeCustom: (value: TCustom) => string;\n /** Candidate token or custom value. */\n value: TToken | TCustom | null | undefined;\n}\n\n/**\n * Resolves token-aware values with consistent fallback behavior.\n * - Empty values (`null`, `undefined`, `\"\"`) use `fallback`.\n * - Token values are resolved through `useDesignToken`.\n * - Non-token values are returned via `normalizeCustom`.\n * @param options Resolution options for token/custom values.\n * @returns Resolved token value or normalized custom/fallback value.\n */\nexport const useResolvedTokenValue = <\n TToken extends CSSVariableString,\n TCustom\n>(\n options: UseResolvedTokenValueOptions<TToken, TCustom>\n) => {\n const { value, fallback, isToken: checkToken, normalizeCustom } = options;\n const isToken = checkToken(value);\n const tokenName = isToken ? value : undefined;\n const resolvedToken = useDesignToken(tokenName);\n const isFallbackToken = checkToken(fallback);\n const fallbackTokenName = isFallbackToken ? fallback : undefined;\n const resolvedFallback = useDesignToken(fallbackTokenName);\n\n if (isToken && !isEmptyValue(resolvedToken)) {\n return resolvedToken;\n }\n\n if (!isToken && !isEmptyValue(value)) {\n return normalizeCustom(value);\n }\n\n if (isFallbackToken && !isEmptyValue(resolvedFallback)) {\n return resolvedFallback;\n }\n\n return normalizeCustom(fallback as TCustom);\n};\n"],"names":["isEmptyValue","value","useDesignToken","tokenName","theme","mode","themeElement","useTheme","setValue","useState","undefined","useEffect","parseCSSVariableValue","options","fallback","isToken","checkToken","normalizeCustom","resolvedToken","isFallbackToken","resolvedFallback"],"mappings":"2GAMA,MAAMA,EAAgBC,GACF,MAATA,GAA2B,KAAVA,EAafC,EACTC,IAEA,MAAMC,MAAEA,EAAKC,KAAEA,EAAIC,aAAEA,GAAiBC,EAAAA,YAC/BN,EAAOO,GAAYC,EAAAA,cAA6BC,GAQvD,OANAC,EAAAA,WAAU,KACDL,GAELE,EAASI,EAAAA,sBAAsBT,EAAWG,GAAc,GACzD,CAACF,EAAOC,EAAMC,EAAcH,IAExBF,CAAK,yDA6BZY,IAEA,MAAMZ,MAAEA,EAAKa,SAAEA,EAAUC,QAASC,EAAUC,gBAAEA,GAAoBJ,EAC5DE,EAAUC,EAAWf,GAErBiB,EAAgBhB,EADJa,EAAUd,OAAQS,GAE9BS,EAAkBH,EAAWF,GAE7BM,EAAmBlB,EADCiB,EAAkBL,OAAWJ,GAGvD,OAAIK,IAAYf,EAAakB,GAClBA,EAGNH,GAAYf,EAAaC,GAI1BkB,IAAoBnB,EAAaoB,GAC1BA,EAGJH,EAAgBH,GAPZG,EAAgBhB,EAOgB"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-media-query.js","sources":["../../../../src/theme/utils/use-media-query.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nimport { Breakpoint } from \"../tokens/breakpoint\";\nimport { isTokenFromSet } from \"./token-resolver\";\nimport { useResolvedTokenValue } from \"./use-design-token\";\n\n/** Named width breakpoint identifier used for responsive width comparisons. */\ntype BreakpointName = \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\";\ntype MaxWidthBreakpointName = Exclude<BreakpointName, \"xxl\">;\ntype MinWidthBreakpointTokenKey = `${BreakpointName}-min`;\ntype MaxWidthBreakpointTokenKey = `${MaxWidthBreakpointName}-max`;\ntype WidthBreakpointTokenKey =\n | MinWidthBreakpointTokenKey\n | MaxWidthBreakpointTokenKey;\ntype WidthBreakpointCSSVariableString =\n (typeof Breakpoint)[WidthBreakpointTokenKey];\n\ntype MediaQueryFeature =\n | \"aspect-ratio\"\n | \"color-index\"\n | \"color\"\n | \"device-aspect-ratio\"\n | \"device-height\"\n | \"device-width\"\n | \"grid\"\n | \"height\"\n | \"max-height\"\n | \"min-height\"\n | \"hover\"\n | \"monochrome\"\n | \"orientation\"\n | \"pointer\"\n | \"prefers-color-scheme\"\n | \"resolution\"\n | \"scan\"\n | \"width\";\n\ntype MediaQueryClauseValue = string | number | boolean;\n\n/** A single media-query feature condition. */\nexport interface MediaQueryClause {\n feature: MediaQueryFeature;\n /**\n * Value for the media-query feature.\n *\n * - A string or number emits `(feature: value)`.\n * - `true` emits a bare feature clause (e.g. `(hover)`).\n * - `false` or `undefined` omits the clause entirely.\n */\n value: MediaQueryClauseValue | undefined;\n}\n\n/** Options for `useMediaQuery`. */\nexport interface MediaQueryOptions {\n /** Lower-bound breakpoint token. Viewport must be >= this width. */\n minWidth?: WidthBreakpointCSSVariableString;\n /** Upper-bound breakpoint token. Viewport must be <= this width. */\n maxWidth?: WidthBreakpointCSSVariableString;\n /** Extra feature conditions (e.g. `hover`, `orientation`) combined with `and`. */\n clauses?: MediaQueryClause[];\n}\n\n/**\n * Default LifeSG breakpoint values for width-based tokens.\n * Extracted from src/theme/styles/default.css.\n */\nconst WIDTH_BREAKPOINT_DEFAULTS: Record<\n WidthBreakpointCSSVariableString,\n string\n> = {\n [Breakpoint[\"xxs-min\"]]: \"0\",\n [Breakpoint[\"xs-min\"]]: \"321px\",\n [Breakpoint[\"sm-min\"]]: \"376px\",\n [Breakpoint[\"md-min\"]]: \"481px\",\n [Breakpoint[\"lg-min\"]]: \"769px\",\n [Breakpoint[\"xl-min\"]]: \"1201px\",\n [Breakpoint[\"xxl-min\"]]: \"1441px\",\n [Breakpoint[\"xxs-max\"]]: \"320px\",\n [Breakpoint[\"xs-max\"]]: \"375px\",\n [Breakpoint[\"sm-max\"]]: \"480px\",\n [Breakpoint[\"md-max\"]]: \"768px\",\n [Breakpoint[\"lg-max\"]]: \"1200px\",\n [Breakpoint[\"xl-max\"]]: \"1440px\",\n};\n\nconst WIDTH_BREAKPOINT_TOKEN_SET = new Set<WidthBreakpointCSSVariableString>([\n Breakpoint[\"xxs-min\"],\n Breakpoint[\"xs-min\"],\n Breakpoint[\"sm-min\"],\n Breakpoint[\"md-min\"],\n Breakpoint[\"lg-min\"],\n Breakpoint[\"xl-min\"],\n Breakpoint[\"xxl-min\"],\n Breakpoint[\"xxs-max\"],\n Breakpoint[\"xs-max\"],\n Breakpoint[\"sm-max\"],\n Breakpoint[\"md-max\"],\n Breakpoint[\"lg-max\"],\n Breakpoint[\"xl-max\"],\n]);\n\nconst isBreakpointToken = (\n value: unknown\n): value is WidthBreakpointCSSVariableString => {\n return isTokenFromSet<WidthBreakpointCSSVariableString>(\n value,\n WIDTH_BREAKPOINT_TOKEN_SET\n );\n};\n\nconst getMinWidthBreakpointToken = (breakpoint: BreakpointName) => {\n return Breakpoint[`${breakpoint}-min`];\n};\n\nconst getMaxWidthBreakpointToken = (breakpoint: MaxWidthBreakpointName) => {\n return Breakpoint[`${breakpoint}-max`];\n};\n\n/**\n * Returns `true` when the viewport width is at or above the named breakpoint.\n *\n * @param breakpoint Named breakpoint to compare against.\n */\nexport const useMinWidthMediaQuery = (breakpoint: BreakpointName) =>\n useMediaQuery({\n minWidth: getMinWidthBreakpointToken(breakpoint),\n });\n\n/**\n * Returns `true` when the viewport width is at or below the named breakpoint.\n *\n * @param breakpoint Named breakpoint to compare against.\n */\nexport const useMaxWidthMediaQuery = (breakpoint: MaxWidthBreakpointName) =>\n useMediaQuery({\n maxWidth: getMaxWidthBreakpointToken(breakpoint),\n });\n\nconst getMediaQueryClause = (\n feature: \"min-width\" | \"max-width\",\n value: string | undefined\n) => {\n if (!value) {\n return undefined;\n }\n\n return `(${feature}: ${value})`;\n};\n\nconst getCustomMediaQueryClause = (\n clause: MediaQueryClause | null | undefined\n) => {\n if (clause?.value === undefined) {\n return undefined;\n }\n\n if (clause.value === true) {\n return `(${clause.feature})`;\n }\n\n if (clause.value === false) {\n return undefined;\n }\n\n const value = `${clause.value}`.trim();\n\n if (!value) {\n return undefined;\n }\n\n return `(${clause.feature}: ${value})`;\n};\n\nconst getDefaultMatch = (hasMinWidth: boolean, hasMaxWidth: boolean) => {\n if (hasMaxWidth) {\n return false;\n }\n\n if (hasMinWidth) {\n return true;\n }\n\n return false;\n};\n\nconst getCurrentMatch = (queryString: string, defaultMatch: boolean) => {\n if (!queryString) {\n return defaultMatch;\n }\n\n if (!globalThis.window?.matchMedia) {\n return defaultMatch;\n }\n\n return globalThis.window.matchMedia(queryString).matches;\n};\n\n/**\n * Resolves a width breakpoint CSS variable token to its computed pixel string.\n *\n * @returns The resolved pixel value, falling back to default LifeSG breakpoint\n * values when the theme element is not yet mounted, or `\"\"` for unrecognised\n * tokens.\n */\nexport const useResolvedBreakpointToken = (\n breakpointToken: WidthBreakpointCSSVariableString | undefined\n): string => {\n const effectiveFallback =\n isBreakpointToken(breakpointToken) &&\n WIDTH_BREAKPOINT_DEFAULTS[breakpointToken]\n ? WIDTH_BREAKPOINT_DEFAULTS[breakpointToken]\n : \"\";\n\n return useResolvedTokenValue<WidthBreakpointCSSVariableString, string>({\n value: breakpointToken,\n fallback: effectiveFallback,\n isToken: isBreakpointToken,\n normalizeCustom: (value) => value,\n });\n};\n\nconst useMatchMediaQuery = (\n queryString: string,\n defaultMatch: boolean\n): boolean => {\n const [matches, setMatches] = useState(() =>\n getCurrentMatch(queryString, defaultMatch)\n );\n\n useEffect(() => {\n if (!queryString || !globalThis.window?.matchMedia) {\n setMatches(defaultMatch);\n return;\n }\n\n const mediaQueryList = globalThis.window.matchMedia(queryString);\n const handleChange = (event: MediaQueryListEvent) => {\n setMatches(event.matches);\n };\n\n setMatches(mediaQueryList.matches);\n mediaQueryList.addEventListener(\"change\", handleChange);\n\n return () => {\n mediaQueryList.removeEventListener(\"change\", handleChange);\n };\n }, [defaultMatch, queryString]);\n\n return matches;\n};\n\n/**\n * Reactive boolean hook that evaluates a media query built from width\n * breakpoint tokens and optional custom feature clauses.\n *\n * @returns `true` when the query matches. When `window.matchMedia` is\n * unavailable (SSR), defaults to `true` for min-width-only queries and\n * `false` for max-width-only.\n */\nexport const useMediaQuery = (options: MediaQueryOptions): boolean => {\n const { minWidth, maxWidth, clauses = [] } = options;\n const normalizedMinWidth = useResolvedBreakpointToken(minWidth);\n const normalizedMaxWidth = useResolvedBreakpointToken(maxWidth);\n const widthClauses = [\n getMediaQueryClause(\"min-width\", normalizedMinWidth),\n getMediaQueryClause(\"max-width\", normalizedMaxWidth),\n ].filter((value): value is string => !!value);\n const customClauses = clauses\n .map(getCustomMediaQueryClause)\n .filter((value): value is string => !!value);\n const queryString = [...widthClauses, ...customClauses].join(\" and \");\n const hasMinWidth = !!normalizedMinWidth;\n const hasMaxWidth = !!normalizedMaxWidth;\n const defaultMatch = getDefaultMatch(hasMinWidth, hasMaxWidth);\n\n return useMatchMediaQuery(queryString, defaultMatch);\n};\n"],"names":["WIDTH_BREAKPOINT_DEFAULTS","Breakpoint","WIDTH_BREAKPOINT_TOKEN_SET","Set","isBreakpointToken","value","isTokenFromSet","getMinWidthBreakpointToken","breakpoint","getMaxWidthBreakpointToken","getMediaQueryClause","feature","getCustomMediaQueryClause","clause","undefined","trim","useResolvedBreakpointToken","breakpointToken","effectiveFallback","useResolvedTokenValue","fallback","isToken","normalizeCustom","useMatchMediaQuery","queryString","defaultMatch","matches","setMatches","useState","_a","globalThis","window","matchMedia","getCurrentMatch","useEffect","mediaQueryList","handleChange","event","addEventListener","removeEventListener","useMediaQuery","options","minWidth","maxWidth","clauses","normalizedMinWidth","normalizedMaxWidth","filter","map","join","hasMinWidth","hasMaxWidth","getDefaultMatch"],"mappings":"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"}
1
+ {"version":3,"file":"use-media-query.js","sources":["../../../../src/theme/utils/use-media-query.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\nimport { Breakpoint } from \"../tokens/breakpoint\";\nimport { isTokenFromSet } from \"./token-resolver\";\nimport { useResolvedTokenValue } from \"./use-design-token\";\n\n/** Named width breakpoint identifier used for responsive width comparisons. */\ntype BreakpointName = \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\";\ntype MaxWidthBreakpointName = Exclude<BreakpointName, \"xxl\">;\ntype MinWidthBreakpointTokenKey = `${BreakpointName}-min`;\ntype MaxWidthBreakpointTokenKey = `${MaxWidthBreakpointName}-max`;\ntype WidthBreakpointTokenKey =\n | MinWidthBreakpointTokenKey\n | MaxWidthBreakpointTokenKey;\ntype WidthBreakpointCSSVariableString =\n (typeof Breakpoint)[WidthBreakpointTokenKey];\n\ntype MediaQueryFeature =\n | \"aspect-ratio\"\n | \"color-index\"\n | \"color\"\n | \"device-aspect-ratio\"\n | \"device-height\"\n | \"device-width\"\n | \"grid\"\n | \"height\"\n | \"max-height\"\n | \"min-height\"\n | \"hover\"\n | \"monochrome\"\n | \"orientation\"\n | \"pointer\"\n | \"prefers-color-scheme\"\n | \"resolution\"\n | \"scan\"\n | \"width\";\n\ntype MediaQueryClauseValue = string | number | boolean;\n\n/** A single media-query feature condition. */\nexport interface MediaQueryClause {\n feature: MediaQueryFeature;\n /**\n * Value for the media-query feature.\n *\n * - A string or number emits `(feature: value)`.\n * - `true` emits a bare feature clause (e.g. `(hover)`).\n * - `false` or `undefined` omits the clause entirely.\n */\n value: MediaQueryClauseValue | undefined;\n}\n\n/** Options for `useMediaQuery`. */\nexport interface MediaQueryOptions {\n /** Lower-bound breakpoint token. Viewport must be >= this width. */\n minWidth?: WidthBreakpointCSSVariableString;\n /** Upper-bound breakpoint token. Viewport must be <= this width. */\n maxWidth?: WidthBreakpointCSSVariableString;\n /** Extra feature conditions (e.g. `hover`, `orientation`) combined with `and`. */\n clauses?: MediaQueryClause[];\n}\n\n/**\n * Default LifeSG breakpoint values for width-based tokens.\n * Extracted from src/theme/styles/default.css.\n */\nconst WIDTH_BREAKPOINT_DEFAULTS: Record<\n WidthBreakpointCSSVariableString,\n string\n> = {\n [Breakpoint[\"xxs-min\"]]: \"0\",\n [Breakpoint[\"xs-min\"]]: \"321px\",\n [Breakpoint[\"sm-min\"]]: \"376px\",\n [Breakpoint[\"md-min\"]]: \"481px\",\n [Breakpoint[\"lg-min\"]]: \"769px\",\n [Breakpoint[\"xl-min\"]]: \"1201px\",\n [Breakpoint[\"xxl-min\"]]: \"1441px\",\n [Breakpoint[\"xxs-max\"]]: \"320px\",\n [Breakpoint[\"xs-max\"]]: \"375px\",\n [Breakpoint[\"sm-max\"]]: \"480px\",\n [Breakpoint[\"md-max\"]]: \"768px\",\n [Breakpoint[\"lg-max\"]]: \"1200px\",\n [Breakpoint[\"xl-max\"]]: \"1440px\",\n};\n\nconst WIDTH_BREAKPOINT_TOKEN_SET = new Set<WidthBreakpointCSSVariableString>([\n Breakpoint[\"xxs-min\"],\n Breakpoint[\"xs-min\"],\n Breakpoint[\"sm-min\"],\n Breakpoint[\"md-min\"],\n Breakpoint[\"lg-min\"],\n Breakpoint[\"xl-min\"],\n Breakpoint[\"xxl-min\"],\n Breakpoint[\"xxs-max\"],\n Breakpoint[\"xs-max\"],\n Breakpoint[\"sm-max\"],\n Breakpoint[\"md-max\"],\n Breakpoint[\"lg-max\"],\n Breakpoint[\"xl-max\"],\n]);\n\nconst isBreakpointToken = (\n value: unknown\n): value is WidthBreakpointCSSVariableString => {\n return isTokenFromSet<WidthBreakpointCSSVariableString>(\n value,\n WIDTH_BREAKPOINT_TOKEN_SET\n );\n};\n\nconst getMinWidthBreakpointToken = (breakpoint: BreakpointName) => {\n return Breakpoint[`${breakpoint}-min`];\n};\n\nconst getMaxWidthBreakpointToken = (breakpoint: MaxWidthBreakpointName) => {\n return Breakpoint[`${breakpoint}-max`];\n};\n\n// @catalog\n/**\n * Returns `true` when the viewport width is at or above the named breakpoint.\n *\n * @param breakpoint Named breakpoint to compare against.\n */\nexport const useMinWidthMediaQuery = (breakpoint: BreakpointName) =>\n useMediaQuery({\n minWidth: getMinWidthBreakpointToken(breakpoint),\n });\n\n// @catalog\n/**\n * Returns `true` when the viewport width is at or below the named breakpoint.\n *\n * @param breakpoint Named breakpoint to compare against.\n */\nexport const useMaxWidthMediaQuery = (breakpoint: MaxWidthBreakpointName) =>\n useMediaQuery({\n maxWidth: getMaxWidthBreakpointToken(breakpoint),\n });\n\nconst getMediaQueryClause = (\n feature: \"min-width\" | \"max-width\",\n value: string | undefined\n) => {\n if (!value) {\n return undefined;\n }\n\n return `(${feature}: ${value})`;\n};\n\nconst getCustomMediaQueryClause = (\n clause: MediaQueryClause | null | undefined\n) => {\n if (clause?.value === undefined) {\n return undefined;\n }\n\n if (clause.value === true) {\n return `(${clause.feature})`;\n }\n\n if (clause.value === false) {\n return undefined;\n }\n\n const value = `${clause.value}`.trim();\n\n if (!value) {\n return undefined;\n }\n\n return `(${clause.feature}: ${value})`;\n};\n\nconst getDefaultMatch = (hasMinWidth: boolean, hasMaxWidth: boolean) => {\n if (hasMaxWidth) {\n return false;\n }\n\n if (hasMinWidth) {\n return true;\n }\n\n return false;\n};\n\nconst getCurrentMatch = (queryString: string, defaultMatch: boolean) => {\n if (!queryString) {\n return defaultMatch;\n }\n\n if (!globalThis.window?.matchMedia) {\n return defaultMatch;\n }\n\n return globalThis.window.matchMedia(queryString).matches;\n};\n\n// @catalog\n/**\n * Resolves a width breakpoint CSS variable token to its computed pixel string.\n *\n * @returns The resolved pixel value, falling back to default LifeSG breakpoint\n * values when the theme element is not yet mounted, or `\"\"` for unrecognised\n * tokens.\n */\nexport const useResolvedBreakpointToken = (\n breakpointToken: WidthBreakpointCSSVariableString | undefined\n): string => {\n const effectiveFallback =\n isBreakpointToken(breakpointToken) &&\n WIDTH_BREAKPOINT_DEFAULTS[breakpointToken]\n ? WIDTH_BREAKPOINT_DEFAULTS[breakpointToken]\n : \"\";\n\n return useResolvedTokenValue<WidthBreakpointCSSVariableString, string>({\n value: breakpointToken,\n fallback: effectiveFallback,\n isToken: isBreakpointToken,\n normalizeCustom: (value) => value,\n });\n};\n\nconst useMatchMediaQuery = (\n queryString: string,\n defaultMatch: boolean\n): boolean => {\n const [matches, setMatches] = useState(() =>\n getCurrentMatch(queryString, defaultMatch)\n );\n\n useEffect(() => {\n if (!queryString || !globalThis.window?.matchMedia) {\n setMatches(defaultMatch);\n return;\n }\n\n const mediaQueryList = globalThis.window.matchMedia(queryString);\n const handleChange = (event: MediaQueryListEvent) => {\n setMatches(event.matches);\n };\n\n setMatches(mediaQueryList.matches);\n mediaQueryList.addEventListener(\"change\", handleChange);\n\n return () => {\n mediaQueryList.removeEventListener(\"change\", handleChange);\n };\n }, [defaultMatch, queryString]);\n\n return matches;\n};\n\n// @catalog\n/**\n * Reactive boolean hook that evaluates a media query built from width\n * breakpoint tokens and optional custom feature clauses.\n *\n * @returns `true` when the query matches. When `window.matchMedia` is\n * unavailable (SSR), defaults to `true` for min-width-only queries and\n * `false` for max-width-only.\n */\nexport const useMediaQuery = (options: MediaQueryOptions): boolean => {\n const { minWidth, maxWidth, clauses = [] } = options;\n const normalizedMinWidth = useResolvedBreakpointToken(minWidth);\n const normalizedMaxWidth = useResolvedBreakpointToken(maxWidth);\n const widthClauses = [\n getMediaQueryClause(\"min-width\", normalizedMinWidth),\n getMediaQueryClause(\"max-width\", normalizedMaxWidth),\n ].filter((value): value is string => !!value);\n const customClauses = clauses\n .map(getCustomMediaQueryClause)\n .filter((value): value is string => !!value);\n const queryString = [...widthClauses, ...customClauses].join(\" and \");\n const hasMinWidth = !!normalizedMinWidth;\n const hasMaxWidth = !!normalizedMaxWidth;\n const defaultMatch = getDefaultMatch(hasMinWidth, hasMaxWidth);\n\n return useMatchMediaQuery(queryString, defaultMatch);\n};\n"],"names":["WIDTH_BREAKPOINT_DEFAULTS","Breakpoint","WIDTH_BREAKPOINT_TOKEN_SET","Set","isBreakpointToken","value","isTokenFromSet","getMinWidthBreakpointToken","breakpoint","getMaxWidthBreakpointToken","getMediaQueryClause","feature","getCustomMediaQueryClause","clause","undefined","trim","useResolvedBreakpointToken","breakpointToken","effectiveFallback","useResolvedTokenValue","fallback","isToken","normalizeCustom","useMatchMediaQuery","queryString","defaultMatch","matches","setMatches","useState","_a","globalThis","window","matchMedia","getCurrentMatch","useEffect","mediaQueryList","handleChange","event","addEventListener","removeEventListener","useMediaQuery","options","minWidth","maxWidth","clauses","normalizedMinWidth","normalizedMaxWidth","filter","map","join","hasMinWidth","hasMaxWidth","getDefaultMatch"],"mappings":"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"}