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

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 (268) hide show
  1. package/accordion/accordion-item.js.map +1 -1
  2. package/accordion/accordion.js.map +1 -1
  3. package/alert/alert.js.map +1 -1
  4. package/button/button.js +1 -1
  5. package/button/button.js.map +1 -1
  6. package/button/button.styles.d.ts +1 -0
  7. package/button/button.styles.js +1 -1
  8. package/button/button.styles.js.map +1 -1
  9. package/button/button.styles_19i4dfq.css +21 -0
  10. package/cjs/accordion/accordion-item.js.map +1 -1
  11. package/cjs/accordion/accordion.js.map +1 -1
  12. package/cjs/alert/alert.js.map +1 -1
  13. package/cjs/button/button.js +1 -1
  14. package/cjs/button/button.js.map +1 -1
  15. package/cjs/button/button.styles.js +1 -1
  16. package/cjs/button/button.styles.js.map +1 -1
  17. package/cjs/button/button.styles_19i4dfq.css +21 -0
  18. package/cjs/countdown-timer/countdown-timer.js.map +1 -1
  19. package/cjs/data-table/data-table.js +1 -1
  20. package/cjs/data-table/data-table.js.map +1 -1
  21. package/cjs/data-table/data-table.styles.js +1 -1
  22. package/cjs/data-table/data-table.styles.js.map +1 -1
  23. package/{data-table/data-table.styles_rxganh.css → cjs/data-table/data-table.styles_1tnlmhe.css} +7 -6
  24. package/cjs/date-range-input/date-range-input.js.map +1 -1
  25. package/cjs/e-signature/e-signature-canvas.js.map +1 -1
  26. package/cjs/error-display/error-display-data.js +1 -1
  27. package/cjs/error-display/error-display-data.js.map +1 -1
  28. package/cjs/error-display/inactivity-timer.js.map +1 -1
  29. package/cjs/external/dompurify/dist/purify.es.js +2 -2
  30. package/cjs/external/dompurify/dist/purify.es.js.map +1 -1
  31. package/cjs/file-download/file-list-card/file-list-card.js.map +1 -1
  32. package/cjs/file-upload/custom-sensors.js.map +1 -1
  33. package/cjs/file-upload/file-list/file-list.js.map +1 -1
  34. package/cjs/filter/addons/filter-item-checkbox-helpers.js.map +1 -1
  35. package/cjs/filter/addons/filter-item-checkbox.js.map +1 -1
  36. package/cjs/filter/addons/filter-item-checkbox.styles.js +1 -1
  37. package/cjs/filter/addons/filter-item-checkbox.styles.js.map +1 -1
  38. package/{filter/addons/filter-item-checkbox.styles_7degw7.css → cjs/filter/addons/filter-item-checkbox.styles_6nbpdl.css} +1 -1
  39. package/cjs/filter/filter-item.js.map +1 -1
  40. package/cjs/filter/filter-item.styles.js +1 -1
  41. package/cjs/filter/filter-item.styles.js.map +1 -1
  42. package/cjs/filter/{filter-item.styles_cphjnj.css → filter-item.styles_1yixp8h.css} +1 -1
  43. package/cjs/filter/filter-modal.styles.js +1 -1
  44. package/cjs/filter/filter-modal.styles.js.map +1 -1
  45. package/{filter/filter-modal.styles_qw3xlg.css → cjs/filter/filter-modal.styles_kuth21.css} +1 -1
  46. package/cjs/filter/filter-sidebar.styles.js +1 -1
  47. package/cjs/filter/filter-sidebar.styles.js.map +1 -1
  48. package/cjs/filter/{filter-sidebar.styles_1otwpjl.css → filter-sidebar.styles_rbfq4f.css} +1 -1
  49. package/cjs/filter/filter.js.map +1 -1
  50. package/cjs/form/form-textarea/form-textarea.js +1 -1
  51. package/cjs/form/form-textarea/form-textarea.js.map +1 -1
  52. package/cjs/fullscreen-image-carousel/stateful-image.js.map +1 -1
  53. package/cjs/histogram-slider/histogram-slider.js.map +1 -1
  54. package/cjs/input-range-slider/input-range-slider.js.map +1 -1
  55. package/cjs/input-slider/input-slider.js.map +1 -1
  56. package/cjs/input-textarea/textarea-counter.js.map +1 -1
  57. package/cjs/input-textarea/textarea.js +1 -1
  58. package/cjs/input-textarea/textarea.js.map +1 -1
  59. package/cjs/input-textarea/textarea.styles.js +1 -1
  60. package/cjs/input-textarea/textarea.styles.js.map +1 -1
  61. package/cjs/input-textarea/{textarea.styles_q77m5x.css → textarea.styles_6we7bs.css} +3 -1
  62. package/cjs/modal/index.js.map +1 -1
  63. package/cjs/modal-v2/modal-v2.js +1 -1
  64. package/cjs/modal-v2/modal-v2.js.map +1 -1
  65. package/cjs/modal-v2/slots/card.js +1 -1
  66. package/cjs/modal-v2/slots/card.js.map +1 -1
  67. package/cjs/modal-v2/slots/header.js +2 -0
  68. package/cjs/modal-v2/slots/header.js.map +1 -0
  69. package/cjs/modal-v2/slots/slot-styles.js +1 -1
  70. package/cjs/modal-v2/slots/slot-styles.js.map +1 -1
  71. package/cjs/modal-v2/slots/{slot-styles_13sd376.css → slot-styles_10ut1v7.css} +5 -1
  72. package/cjs/navbar/navbar-items.js +1 -1
  73. package/cjs/navbar/navbar-items.js.map +1 -1
  74. package/cjs/navbar/navbar-items.styles.js +1 -1
  75. package/cjs/navbar/navbar-items.styles.js.map +1 -1
  76. package/cjs/navbar/{navbar-items.styles_1i3ltot.css → navbar-items.styles_1b1zx.css} +9 -8
  77. package/cjs/navbar/navbar-logo-data.js +1 -1
  78. package/cjs/navbar/navbar-logo-data.js.map +1 -1
  79. package/cjs/navbar/navbar.js.map +1 -1
  80. package/cjs/otp-input/otp-input.js.map +1 -1
  81. package/cjs/overlay/overlay.js.map +1 -1
  82. package/cjs/pagination/pagination.js.map +1 -1
  83. package/cjs/phone-number-input/phone-number-input.js.map +1 -1
  84. package/cjs/predictive-text-input/predictive-text-input.js.map +1 -1
  85. package/cjs/shared/dropdown-list/dropdown-list.js.map +1 -1
  86. package/cjs/shared/internal-calendar/calendar-manager.js.map +1 -1
  87. package/cjs/shared/standalone-date-input/standalone-date-input.js.map +1 -1
  88. package/cjs/singpass-button/singpass-button.styles.js +1 -1
  89. package/cjs/singpass-button/singpass-button.styles.js.map +1 -1
  90. package/cjs/singpass-button/{singpass-button.styles_1miyex3.css → singpass-button.styles_1fj2lru.css} +1 -1
  91. package/cjs/smart-app-banner/smart-app-banner.styles.js +1 -1
  92. package/cjs/smart-app-banner/smart-app-banner.styles.js.map +1 -1
  93. package/cjs/smart-app-banner/{smart-app-banner.styles_15u6yv4.css → smart-app-banner.styles_r6yjq9.css} +1 -1
  94. package/cjs/theme/types.js +1 -1
  95. package/cjs/theme/types.js.map +1 -1
  96. package/cjs/time-slot-bar/time-slot-bar.js.map +1 -1
  97. package/cjs/time-slot-bar-week/time-slot-bar-week-days.js.map +1 -1
  98. package/cjs/timetable/timetable.js.map +1 -1
  99. package/cjs/toast/toast.styles.js +1 -1
  100. package/cjs/toast/toast.styles.js.map +1 -1
  101. package/{toast/toast.styles_1e0l60w.css → cjs/toast/toast.styles_57j3lf.css} +1 -1
  102. package/cjs/toggle/toggle-icon.js +1 -1
  103. package/cjs/toggle/toggle-icon.js.map +1 -1
  104. package/cjs/toggle/toggle-icon.styles.js +1 -1
  105. package/cjs/toggle/toggle-icon.styles.js.map +1 -1
  106. package/cjs/toggle/{toggle-icon.styles_ba71y.css → toggle-icon.styles_o6dxr3.css} +3 -2
  107. package/cjs/toggle/toggle.js +1 -1
  108. package/cjs/toggle/toggle.js.map +1 -1
  109. package/cjs/toggle/toggle.styles.js +1 -1
  110. package/cjs/toggle/toggle.styles.js.map +1 -1
  111. package/cjs/toggle/toggle.styles_11tmfsr.css +41 -0
  112. package/cjs/unit-number/unit-number-input.js.map +1 -1
  113. package/cjs/util/is-styled-components.js.map +1 -1
  114. package/cjs/util/string-helper.js +1 -1
  115. package/cjs/util/string-helper.js.map +1 -1
  116. package/cjs/util/use-event-listener.js.map +1 -1
  117. package/cjs/util/use-state-actions.js.map +1 -1
  118. package/countdown-timer/countdown-timer.js.map +1 -1
  119. package/data-table/data-table.d.ts +1 -1
  120. package/data-table/data-table.js +1 -1
  121. package/data-table/data-table.js.map +1 -1
  122. package/data-table/data-table.styles.d.ts +1 -0
  123. package/data-table/data-table.styles.js +1 -1
  124. package/data-table/data-table.styles.js.map +1 -1
  125. package/{cjs/data-table/data-table.styles_rxganh.css → data-table/data-table.styles_1tnlmhe.css} +7 -6
  126. package/data-table/types.d.ts +4 -2
  127. package/date-range-input/date-range-input.js.map +1 -1
  128. package/docs/component-catalog.json +1 -1
  129. package/e-signature/e-signature-canvas.js.map +1 -1
  130. package/error-display/error-display-data.js +1 -1
  131. package/error-display/error-display-data.js.map +1 -1
  132. package/error-display/inactivity-timer.js.map +1 -1
  133. package/external/dompurify/dist/purify.es.js +2 -2
  134. package/external/dompurify/dist/purify.es.js.map +1 -1
  135. package/file-download/file-list-card/file-list-card.js.map +1 -1
  136. package/file-upload/custom-sensors.d.ts +2 -2
  137. package/file-upload/custom-sensors.js.map +1 -1
  138. package/file-upload/file-list/file-list.js.map +1 -1
  139. package/filter/addons/filter-item-checkbox-helpers.js.map +1 -1
  140. package/filter/addons/filter-item-checkbox.js.map +1 -1
  141. package/filter/addons/filter-item-checkbox.styles.js +1 -1
  142. package/filter/addons/filter-item-checkbox.styles.js.map +1 -1
  143. package/{cjs/filter/addons/filter-item-checkbox.styles_7degw7.css → filter/addons/filter-item-checkbox.styles_6nbpdl.css} +1 -1
  144. package/filter/filter-item.js.map +1 -1
  145. package/filter/filter-item.styles.js +1 -1
  146. package/filter/filter-item.styles.js.map +1 -1
  147. package/filter/{filter-item.styles_cphjnj.css → filter-item.styles_1yixp8h.css} +1 -1
  148. package/filter/filter-modal.styles.js +1 -1
  149. package/filter/filter-modal.styles.js.map +1 -1
  150. package/{cjs/filter/filter-modal.styles_qw3xlg.css → filter/filter-modal.styles_kuth21.css} +1 -1
  151. package/filter/filter-sidebar.styles.js +1 -1
  152. package/filter/filter-sidebar.styles.js.map +1 -1
  153. package/filter/{filter-sidebar.styles_1otwpjl.css → filter-sidebar.styles_rbfq4f.css} +1 -1
  154. package/filter/filter.js.map +1 -1
  155. package/form/form-textarea/form-textarea.js +1 -1
  156. package/form/form-textarea/form-textarea.js.map +1 -1
  157. package/fullscreen-image-carousel/stateful-image.js.map +1 -1
  158. package/fullscreen-image-carousel/types.d.ts +2 -2
  159. package/histogram-slider/histogram-slider.js.map +1 -1
  160. package/input-range-slider/input-range-slider.js.map +1 -1
  161. package/input-slider/input-slider.js.map +1 -1
  162. package/input-textarea/textarea-counter.js.map +1 -1
  163. package/input-textarea/textarea.js +1 -1
  164. package/input-textarea/textarea.js.map +1 -1
  165. package/input-textarea/textarea.styles.d.ts +2 -0
  166. package/input-textarea/textarea.styles.js +1 -1
  167. package/input-textarea/textarea.styles.js.map +1 -1
  168. package/input-textarea/{textarea.styles_q77m5x.css → textarea.styles_6we7bs.css} +3 -1
  169. package/input-textarea/types.d.ts +7 -0
  170. package/modal/index.d.ts +4 -0
  171. package/modal/index.js.map +1 -1
  172. package/modal/types.d.ts +2 -0
  173. package/modal-v2/modal-v2.d.ts +6 -0
  174. package/modal-v2/modal-v2.js +1 -1
  175. package/modal-v2/modal-v2.js.map +1 -1
  176. package/modal-v2/slots/card.js +1 -1
  177. package/modal-v2/slots/card.js.map +1 -1
  178. package/modal-v2/slots/header.d.ts +5 -0
  179. package/modal-v2/slots/header.js +2 -0
  180. package/modal-v2/slots/header.js.map +1 -0
  181. package/modal-v2/slots/index.d.ts +1 -0
  182. package/modal-v2/slots/slot-styles.d.ts +4 -0
  183. package/modal-v2/slots/slot-styles.js +1 -1
  184. package/modal-v2/slots/slot-styles.js.map +1 -1
  185. package/modal-v2/slots/{slot-styles_13sd376.css → slot-styles_10ut1v7.css} +5 -1
  186. package/modal-v2/types.d.ts +21 -0
  187. package/navbar/navbar-items.js +1 -1
  188. package/navbar/navbar-items.js.map +1 -1
  189. package/navbar/navbar-items.styles.d.ts +2 -1
  190. package/navbar/navbar-items.styles.js +1 -1
  191. package/navbar/navbar-items.styles.js.map +1 -1
  192. package/navbar/{navbar-items.styles_1i3ltot.css → navbar-items.styles_1b1zx.css} +9 -8
  193. package/navbar/navbar-logo-data.js +1 -1
  194. package/navbar/navbar-logo-data.js.map +1 -1
  195. package/navbar/navbar.js.map +1 -1
  196. package/otp-input/otp-input.js.map +1 -1
  197. package/overlay/overlay.js.map +1 -1
  198. package/package.json +1 -1
  199. package/pagination/pagination.js.map +1 -1
  200. package/phone-number-input/phone-number-input.js.map +1 -1
  201. package/predictive-text-input/predictive-text-input.js.map +1 -1
  202. package/shared/dropdown-list/dropdown-list.js.map +1 -1
  203. package/shared/internal-calendar/calendar-manager.js.map +1 -1
  204. package/shared/standalone-date-input/standalone-date-input.js.map +1 -1
  205. package/singpass-button/singpass-button.styles.js +1 -1
  206. package/singpass-button/singpass-button.styles.js.map +1 -1
  207. package/singpass-button/{singpass-button.styles_1miyex3.css → singpass-button.styles_1fj2lru.css} +1 -1
  208. package/smart-app-banner/smart-app-banner.styles.js +1 -1
  209. package/smart-app-banner/smart-app-banner.styles.js.map +1 -1
  210. package/smart-app-banner/{smart-app-banner.styles_15u6yv4.css → smart-app-banner.styles_r6yjq9.css} +1 -1
  211. package/theme/styles/a11y-playground.css +358 -87
  212. package/theme/styles/bookingsg.css +391 -85
  213. package/theme/styles/careercompass.css +396 -90
  214. package/theme/styles/ccube.css +402 -45
  215. package/theme/styles/imda.css +348 -85
  216. package/theme/styles/lifesg.css +377 -87
  217. package/theme/styles/mylegacy.css +382 -85
  218. package/theme/styles/oneservice.css +349 -86
  219. package/theme/styles/pa.css +172 -104
  220. package/theme/styles/rbs.css +403 -46
  221. package/theme/styles/sgw-digital-lobby.css +352 -87
  222. package/theme/styles/smgs.css +401 -95
  223. package/theme/styles/spf.css +208 -99
  224. package/theme/styles/supportgowhere.css +387 -90
  225. package/theme/styles/tote-board.css +816 -0
  226. package/theme/types.d.ts +1 -1
  227. package/theme/types.js +1 -1
  228. package/theme/types.js.map +1 -1
  229. package/time-slot-bar/time-slot-bar.js.map +1 -1
  230. package/time-slot-bar-week/time-slot-bar-week-days.js.map +1 -1
  231. package/timetable/timetable.js.map +1 -1
  232. package/toast/toast.styles.js +1 -1
  233. package/toast/toast.styles.js.map +1 -1
  234. package/{cjs/toast/toast.styles_1e0l60w.css → toast/toast.styles_57j3lf.css} +1 -1
  235. package/toggle/toggle-icon.d.ts +2 -1
  236. package/toggle/toggle-icon.js +1 -1
  237. package/toggle/toggle-icon.js.map +1 -1
  238. package/toggle/toggle-icon.styles.d.ts +1 -0
  239. package/toggle/toggle-icon.styles.js +1 -1
  240. package/toggle/toggle-icon.styles.js.map +1 -1
  241. package/toggle/{toggle-icon.styles_ba71y.css → toggle-icon.styles_o6dxr3.css} +3 -2
  242. package/toggle/toggle.js +1 -1
  243. package/toggle/toggle.js.map +1 -1
  244. package/toggle/toggle.styles.d.ts +18 -15
  245. package/toggle/toggle.styles.js +1 -1
  246. package/toggle/toggle.styles.js.map +1 -1
  247. package/toggle/toggle.styles_11tmfsr.css +41 -0
  248. package/tools/storybook-argtypes/services/arg-types-row-builder.d.ts +6 -0
  249. package/tools/storybook-argtypes/types.d.ts +13 -1
  250. package/unit-number/unit-number-input.js.map +1 -1
  251. package/util/is-styled-components.js.map +1 -1
  252. package/util/string-helper.d.ts +2 -2
  253. package/util/string-helper.js +1 -1
  254. package/util/string-helper.js.map +1 -1
  255. package/util/use-event-listener.js.map +1 -1
  256. package/util/use-state-actions.js.map +1 -1
  257. package/button/button.styles_1pxy0co.css +0 -20
  258. package/cjs/button/button.styles_1pxy0co.css +0 -20
  259. package/cjs/form/form-textarea/form-textarea.styles.js +0 -2
  260. package/cjs/form/form-textarea/form-textarea.styles.js.map +0 -1
  261. package/cjs/form/form-textarea/form-textarea.styles_1kneyif.css +0 -3
  262. package/cjs/toggle/toggle.styles_1t5qrye.css +0 -38
  263. package/form/form-textarea/form-textarea.styles.d.ts +0 -3
  264. package/form/form-textarea/form-textarea.styles.js +0 -2
  265. package/form/form-textarea/form-textarea.styles.js.map +0 -1
  266. package/form/form-textarea/form-textarea.styles_1kneyif.css +0 -3
  267. package/theme/styles/default.css +0 -158
  268. package/toggle/toggle.styles_1t5qrye.css +0 -38
@@ -1,2 +1,2 @@
1
- class t{static transformWithSpaces(t,e){const n="(.{"+e+"})";return t.replace(/[^\dA-Z]/gi,"").replace(new RegExp(n,"g"),"$1 ").trim()}static padValue(t,e){if("0"===t)return e?t:t.padStart(2,"0");if(""===t)return t;return parseInt(t).toString().padStart(2,"0")}static shouldTruncateToTwoLines(t,e){const n=Math.floor(e/9);return t.length>=2*n||1===t.split(" ").length&&t.length>n}static truncateOneLine(t,e,n,r,s=8){let a=0;e>n&&(a=Math.floor((e-n)/s));const i=r+a;if(i<t.length){const e=Math.floor(i/2);return t.substring(0,e)+" ... "+t.substring(t.length-e,t.length)}return t}static truncateTwoLines(t,e,n,r=1.2){const s=Math.floor(2*e/(.6*n))*(2/r);if(t.length<=s)return t;const a=Math.floor(.6*s),i=Math.floor(.2*s);return`${t.substring(0,a)}...${t.substring(t.length-i)}`}static getTextWidth(e,n){if("undefined"==typeof document)return 0;const r=(t.getTextWidth.canvas||(t.getTextWidth.canvas=document.createElement("canvas"))).getContext("2d");r.font=n;return r.measureText(e).width}static maskValue(e,n){if(!e)return e;const{maskRange:r,unmaskRange:s,maskChar:a="•",maskRegex:i,maskTransformer:u}=n;if(u)return u(e);if(i)return e.replace(i,a);if(r){const{startIndex:n,endIndex:s}=t.determineStartAndEndIndex(r[0],r[1]);return e.substring(0,n)+a.repeat(e.substring(n,s+1).length)+e.substring(s+1)}if(s){const{startIndex:n,endIndex:r}=t.determineStartAndEndIndex(s[0],s[1]);return a.repeat(e.substring(0,n).length)+e.substring(n,r+1)+a.repeat(e.substring(r+1).length)}return e}static determineStartAndEndIndex(t,e){return t<e?{startIndex:t,endIndex:e}:{startIndex:e,endIndex:t}}static formatOrdinal(e){const n=t.ordinalPluralRules.select(e);return`${e}${t.suffixes.get(n)}`}static getMaskedDescription(t,e,n){if(!t||"masked"!==e||!n)return"";const[r,s]=n,a=r>0,i=s<t.length-1,u=a?t.substring(0,r):"",o=i?t.substring(s+1):"";return a&&i?`Starting with ${u} and ending with ${o}`:a?`Starting with ${u}`:i?`Ending with ${o}`:""}static joinNonEmptyStrings(t,e=", "){return t.filter(Boolean).join(e)}}t.ordinalPluralRules=new Intl.PluralRules("en",{type:"ordinal"}),t.suffixes=new Map([["one","st"],["two","nd"],["few","rd"],["other","th"]]);export{t as StringHelper};
1
+ class t{static transformWithSpaces(t,e){const n="(.{"+e+"})";return t.replace(/[^\dA-Z]/gi,"").replace(new RegExp(n,"g"),"$1 ").trim()}static padValue(t,e){if("0"===t)return e?t:t.padStart(2,"0");if(""===t)return t;return parseInt(t).toString().padStart(2,"0")}static shouldTruncateToTwoLines(t,e){const n=Math.floor(e/9);return t.length>=2*n||1===t.split(" ").length&&t.length>n}static truncateOneLine(t,e,n,r,s=8){let a=0;e>n&&(a=Math.floor((e-n)/s));const i=r+a;if(i<t.length){const e=Math.floor(i/2);return t.substring(0,e)+" ... "+t.substring(t.length-e,t.length)}return t}static truncateTwoLines(t,e,n,r=1.2){const s=Math.floor(2*e/(.6*n))*(2/r);if(t.length<=s)return t;const a=Math.floor(.6*s),i=Math.floor(.2*s);return`${t.substring(0,a)}...${t.substring(t.length-i)}`}static getTextWidth(t,e){if("undefined"==typeof document)return 0;const n=(this.getTextWidth.canvas||(this.getTextWidth.canvas=document.createElement("canvas"))).getContext("2d");n.font=e;return n.measureText(t).width}static maskValue(t,e){if(!t)return t;const{maskRange:n,unmaskRange:r,maskChar:s="•",maskRegex:a,maskTransformer:i}=e;if(i)return i(t);if(a)return t.replace(a,s);if(n){const{startIndex:e,endIndex:r}=this.determineStartAndEndIndex(n[0],n[1]);return t.substring(0,e)+s.repeat(t.substring(e,r+1).length)+t.substring(r+1)}if(r){const{startIndex:e,endIndex:n}=this.determineStartAndEndIndex(r[0],r[1]);return s.repeat(t.substring(0,e).length)+t.substring(e,n+1)+s.repeat(t.substring(n+1).length)}return t}static determineStartAndEndIndex(t,e){return t<e?{startIndex:t,endIndex:e}:{startIndex:e,endIndex:t}}static formatOrdinal(t){const e=this.ordinalPluralRules.select(t);return`${t}${this.suffixes.get(e)}`}static getMaskedDescription(t,e,n){if(!t||"masked"!==e||!n)return"";const[r,s]=n,a=r>0,i=s<t.length-1,u=a?t.substring(0,r):"",o=i?t.substring(s+1):"";return a&&i?`Starting with ${u} and ending with ${o}`:a?`Starting with ${u}`:i?`Ending with ${o}`:""}static joinNonEmptyStrings(t,e=", "){return t.filter(Boolean).join(e)}}t.ordinalPluralRules=new Intl.PluralRules("en",{type:"ordinal"}),t.suffixes=new Map([["one","st"],["two","nd"],["few","rd"],["other","th"]]);export{t as StringHelper};
2
2
  //# sourceMappingURL=string-helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"string-helper.js","sources":["../../src/util/string-helper.ts"],"sourcesContent":["// =============================================================================\n// TYPINGS\n// =============================================================================\ninterface MaskValueOptions {\n maskRange?: number[] | undefined;\n unmaskRange?: number[] | undefined;\n maskRegex?: RegExp | undefined;\n maskTransformer?: ((value: string) => string) | undefined;\n maskChar?: string | undefined;\n}\n\n// =============================================================================\n// EXPORTS\n// =============================================================================\nexport class StringHelper {\n public static transformWithSpaces(\n value: string | any,\n groupLength: number\n ): string {\n const regex = \"(.{\" + groupLength + \"})\";\n return value\n .replace(/[^\\dA-Z]/gi, \"\")\n .replace(new RegExp(regex, \"g\"), \"$1 \")\n .trim();\n }\n\n /**\n * Pads single digit values with a zero and trims leading zero for\n * values of length more than 2\n * @param value the string value\n * @param retainSingleZero setting true will allow single zero value\n */\n public static padValue(value: string, retainSingleZero?: boolean): string {\n if (value === \"0\") {\n return retainSingleZero ? value : value.padStart(2, \"0\");\n }\n\n if (value === \"\") {\n return value;\n }\n\n const trimmedValue = parseInt(value);\n return trimmedValue.toString().padStart(2, \"0\");\n }\n\n /**\n * Checks if the text is required to be truncated and broken into two lines based\n * on the available width of container. **Note: This is relevant to font size 18px or 1.125rem only **\n * @param text input text\n * @param widthOfElement element width in px\n */\n public static shouldTruncateToTwoLines(\n text: string,\n widthOfElement: number\n ): boolean {\n // This is arbitrary and based on tests to derive that every 9px increment ~= 1 char length.\n // But this applies to font size 18px or 1.125rem only\n const estimatedCharOnLine = Math.floor(widthOfElement / 9);\n return (\n text.length >= estimatedCharOnLine * 2 ||\n (text.split(\" \").length === 1 && text.length > estimatedCharOnLine)\n );\n }\n\n /**\n * Performs a truncation by adding ellipsis in the middle of the text.\n * @param text input text\n * @param widthOfElement the dynamic width of the container in px\n * @param minDivSize the minimum container size (using size on mobileS viewport as baseline)\n * @param baselineCharLength the baseline amount of characters to be displayed before truncation kicks. This\n * will be increased if there is more space available (derived from `widthOfElement`)\n * @param incrementFactor the size (in px).\n */\n public static truncateOneLine(\n text: string,\n widthOfElement: number,\n minDivSize: number,\n baselineCharLength: number,\n incrementFactor = 8 // Arbitrary based on tests and applies to font size of 18px or 1.125rem\n ): string {\n let additionalCharAllowed = 0;\n if (widthOfElement > minDivSize) {\n additionalCharAllowed = Math.floor(\n (widthOfElement - minDivSize) / incrementFactor\n );\n }\n const allowedCharLength = baselineCharLength + additionalCharAllowed;\n if (allowedCharLength < text.length) {\n const thresholdIndex = Math.floor(allowedCharLength / 2); // We will cut it halfway to derive x num of characters\n return (\n text.substring(0, thresholdIndex) + // Use the first x\n \" ... \" +\n text.substring(text.length - thresholdIndex, text.length) // Use the last x\n );\n }\n\n return text;\n }\n\n /**\n * Performs a truncation by adding ellipsis in the middle of the text.\n * @param text input text\n * @param widthOfElement the dynamic width of the container in px\n * @param fontSize the fontsize of the text\n * @param lineHeight the line height of the text\n */\n public static truncateTwoLines(\n text: string,\n widthOfElement: number,\n fontSize: number,\n lineHeight = 1.2\n ): string {\n // Estimate characters per line based on width and font size\n const charsPerLine = Math.floor(\n (widthOfElement * 2) / (fontSize * 0.6) // 0.6 is an approximation for average char width\n );\n\n // Calculate total characters allowed in two lines\n const totalCharsAllowed = charsPerLine * (2 / lineHeight);\n\n if (text.length <= totalCharsAllowed) {\n return text; // No truncation needed\n }\n\n // Calculate the number of characters to keep\n const keepFromStart = Math.floor(totalCharsAllowed * 0.6); // Keep 60% from start\n const keepFromEnd = Math.floor(totalCharsAllowed * 0.2); // Keep 20% from end\n\n // Truncate the text\n const start = text.substring(0, keepFromStart);\n const end = text.substring(text.length - keepFromEnd);\n\n return `${start}...${end}`;\n }\n\n /**\n * Returns the width of the text in the specified font\n * https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript/21015393#21015393\n */\n public static getTextWidth(text: string, font: string): number {\n if (typeof document === \"undefined\") {\n return 0;\n }\n\n // create a reusable canvas object for better performance\n const canvas =\n (StringHelper.getTextWidth as any).canvas ||\n ((StringHelper.getTextWidth as any).canvas =\n document.createElement(\"canvas\"));\n const context = canvas.getContext(\"2d\");\n context.font = font;\n\n const metrics = context.measureText(text);\n return metrics.width;\n }\n\n public static maskValue(value: string, options: MaskValueOptions): string {\n if (!value) {\n return value;\n }\n\n const {\n maskRange,\n unmaskRange,\n maskChar = \"•\",\n maskRegex,\n maskTransformer,\n } = options;\n\n if (maskTransformer) {\n return maskTransformer(value);\n } else if (maskRegex) {\n return value.replace(maskRegex, maskChar);\n } else if (maskRange) {\n const { startIndex, endIndex } =\n StringHelper.determineStartAndEndIndex(\n maskRange[0],\n maskRange[1]\n );\n return (\n value.substring(0, startIndex) +\n maskChar.repeat(\n value.substring(startIndex, endIndex + 1).length\n ) +\n value.substring(endIndex + 1)\n );\n } else if (unmaskRange) {\n const { startIndex, endIndex } =\n StringHelper.determineStartAndEndIndex(\n unmaskRange[0],\n unmaskRange[1]\n );\n return (\n maskChar.repeat(value.substring(0, startIndex).length) +\n value.substring(startIndex, endIndex + 1) +\n maskChar.repeat(value.substring(endIndex + 1).length)\n );\n }\n\n return value;\n }\n\n private static determineStartAndEndIndex(index0: number, index1: number) {\n return index0 < index1\n ? { startIndex: index0, endIndex: index1 }\n : { startIndex: index1, endIndex: index0 };\n }\n\n private static ordinalPluralRules = new Intl.PluralRules(\"en\", {\n type: \"ordinal\",\n });\n\n private static suffixes = new Map([\n [\"one\", \"st\"],\n [\"two\", \"nd\"],\n [\"few\", \"rd\"],\n [\"other\", \"th\"],\n ]);\n\n public static formatOrdinal(n: number) {\n const rule = StringHelper.ordinalPluralRules.select(n);\n const suffix = StringHelper.suffixes.get(rule);\n return `${n}${suffix}`;\n }\n\n public static getMaskedDescription(\n value: string,\n displayMaskState: \"masked\" | \"unmasked\",\n maskRange?: number[]\n ): string {\n if (!value || displayMaskState !== \"masked\" || !maskRange) return \"\";\n\n const [startIndex, endIndex] = maskRange;\n const hasStart = startIndex > 0;\n const hasEnd = endIndex < value.length - 1;\n\n const start = hasStart ? value.substring(0, startIndex) : \"\";\n const end = hasEnd ? value.substring(endIndex + 1) : \"\";\n\n if (hasStart && hasEnd)\n return `Starting with ${start} and ending with ${end}`;\n if (hasStart) return `Starting with ${start}`;\n if (hasEnd) return `Ending with ${end}`;\n\n return \"\";\n }\n\n public static joinNonEmptyStrings(\n strings: (string | undefined | null)[],\n delimiter = \", \"\n ): string {\n return strings.filter(Boolean).join(delimiter);\n }\n}\n"],"names":["StringHelper","transformWithSpaces","value","groupLength","regex","replace","RegExp","trim","padValue","retainSingleZero","padStart","parseInt","toString","shouldTruncateToTwoLines","text","widthOfElement","estimatedCharOnLine","Math","floor","length","split","truncateOneLine","minDivSize","baselineCharLength","incrementFactor","additionalCharAllowed","allowedCharLength","thresholdIndex","substring","truncateTwoLines","fontSize","lineHeight","totalCharsAllowed","keepFromStart","keepFromEnd","getTextWidth","font","document","context","canvas","createElement","getContext","measureText","width","maskValue","options","maskRange","unmaskRange","maskChar","maskRegex","maskTransformer","startIndex","endIndex","determineStartAndEndIndex","repeat","index0","index1","formatOrdinal","n","rule","ordinalPluralRules","select","suffixes","get","getMaskedDescription","displayMaskState","hasStart","hasEnd","start","end","joinNonEmptyStrings","strings","delimiter","filter","Boolean","join","Intl","PluralRules","type","Map"],"mappings":"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"}
1
+ {"version":3,"file":"string-helper.js","sources":["../../src/util/string-helper.ts"],"sourcesContent":["// =============================================================================\n// TYPINGS\n// =============================================================================\ninterface MaskValueOptions {\n maskRange?: number[] | undefined;\n unmaskRange?: number[] | undefined;\n maskRegex?: RegExp | undefined;\n maskTransformer?: ((value: string) => string) | undefined;\n maskChar?: string | undefined;\n}\n\n// =============================================================================\n// EXPORTS\n// =============================================================================\nexport class StringHelper {\n public static transformWithSpaces(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: string | any,\n groupLength: number\n ): string {\n const regex = \"(.{\" + groupLength + \"})\";\n return value\n .replace(/[^\\dA-Z]/gi, \"\")\n .replace(new RegExp(regex, \"g\"), \"$1 \")\n .trim();\n }\n\n /**\n * Pads single digit values with a zero and trims leading zero for\n * values of length more than 2\n * @param value the string value\n * @param retainSingleZero setting true will allow single zero value\n */\n public static padValue(value: string, retainSingleZero?: boolean): string {\n if (value === \"0\") {\n return retainSingleZero ? value : value.padStart(2, \"0\");\n }\n\n if (value === \"\") {\n return value;\n }\n\n const trimmedValue = parseInt(value);\n return trimmedValue.toString().padStart(2, \"0\");\n }\n\n /**\n * Checks if the text is required to be truncated and broken into two lines based\n * on the available width of container. **Note: This is relevant to font size 18px or 1.125rem only **\n * @param text input text\n * @param widthOfElement element width in px\n */\n public static shouldTruncateToTwoLines(\n text: string,\n widthOfElement: number\n ): boolean {\n // This is arbitrary and based on tests to derive that every 9px increment ~= 1 char length.\n // But this applies to font size 18px or 1.125rem only\n const estimatedCharOnLine = Math.floor(widthOfElement / 9);\n return (\n text.length >= estimatedCharOnLine * 2 ||\n (text.split(\" \").length === 1 && text.length > estimatedCharOnLine)\n );\n }\n\n /**\n * Performs a truncation by adding ellipsis in the middle of the text.\n * @param text input text\n * @param widthOfElement the dynamic width of the container in px\n * @param minDivSize the minimum container size (using size on mobileS viewport as baseline)\n * @param baselineCharLength the baseline amount of characters to be displayed before truncation kicks. This\n * will be increased if there is more space available (derived from `widthOfElement`)\n * @param incrementFactor the size (in px).\n */\n public static truncateOneLine(\n text: string,\n widthOfElement: number,\n minDivSize: number,\n baselineCharLength: number,\n incrementFactor = 8 // Arbitrary based on tests and applies to font size of 18px or 1.125rem\n ): string {\n let additionalCharAllowed = 0;\n if (widthOfElement > minDivSize) {\n additionalCharAllowed = Math.floor(\n (widthOfElement - minDivSize) / incrementFactor\n );\n }\n const allowedCharLength = baselineCharLength + additionalCharAllowed;\n if (allowedCharLength < text.length) {\n const thresholdIndex = Math.floor(allowedCharLength / 2); // We will cut it halfway to derive x num of characters\n return (\n text.substring(0, thresholdIndex) + // Use the first x\n \" ... \" +\n text.substring(text.length - thresholdIndex, text.length) // Use the last x\n );\n }\n\n return text;\n }\n\n /**\n * Performs a truncation by adding ellipsis in the middle of the text.\n * @param text input text\n * @param widthOfElement the dynamic width of the container in px\n * @param fontSize the fontsize of the text\n * @param lineHeight the line height of the text\n */\n public static truncateTwoLines(\n text: string,\n widthOfElement: number,\n fontSize: number,\n lineHeight = 1.2\n ): string {\n // Estimate characters per line based on width and font size\n const charsPerLine = Math.floor(\n (widthOfElement * 2) / (fontSize * 0.6) // 0.6 is an approximation for average char width\n );\n\n // Calculate total characters allowed in two lines\n const totalCharsAllowed = charsPerLine * (2 / lineHeight);\n\n if (text.length <= totalCharsAllowed) {\n return text; // No truncation needed\n }\n\n // Calculate the number of characters to keep\n const keepFromStart = Math.floor(totalCharsAllowed * 0.6); // Keep 60% from start\n const keepFromEnd = Math.floor(totalCharsAllowed * 0.2); // Keep 20% from end\n\n // Truncate the text\n const start = text.substring(0, keepFromStart);\n const end = text.substring(text.length - keepFromEnd);\n\n return `${start}...${end}`;\n }\n\n /**\n * Returns the width of the text in the specified font\n * https://stackoverflow.com/questions/118241/calculate-text-width-with-javascript/21015393#21015393\n */\n public static getTextWidth(text: string, font: string): number {\n if (typeof document === \"undefined\") {\n return 0;\n }\n\n // create a reusable canvas object for better performance\n const canvas =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (this.getTextWidth as any).canvas ||\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ((this.getTextWidth as any).canvas =\n document.createElement(\"canvas\"));\n const context = canvas.getContext(\"2d\");\n context.font = font;\n\n const metrics = context.measureText(text);\n return metrics.width;\n }\n\n public static maskValue(value: string, options: MaskValueOptions): string {\n if (!value) {\n return value;\n }\n\n const {\n maskRange,\n unmaskRange,\n maskChar = \"•\",\n maskRegex,\n maskTransformer,\n } = options;\n\n if (maskTransformer) {\n return maskTransformer(value);\n } else if (maskRegex) {\n return value.replace(maskRegex, maskChar);\n } else if (maskRange) {\n const { startIndex, endIndex } = this.determineStartAndEndIndex(\n maskRange[0],\n maskRange[1]\n );\n return (\n value.substring(0, startIndex) +\n maskChar.repeat(\n value.substring(startIndex, endIndex + 1).length\n ) +\n value.substring(endIndex + 1)\n );\n } else if (unmaskRange) {\n const { startIndex, endIndex } = this.determineStartAndEndIndex(\n unmaskRange[0],\n unmaskRange[1]\n );\n return (\n maskChar.repeat(value.substring(0, startIndex).length) +\n value.substring(startIndex, endIndex + 1) +\n maskChar.repeat(value.substring(endIndex + 1).length)\n );\n }\n\n return value;\n }\n\n private static determineStartAndEndIndex(index0: number, index1: number) {\n return index0 < index1\n ? { startIndex: index0, endIndex: index1 }\n : { startIndex: index1, endIndex: index0 };\n }\n\n private static readonly ordinalPluralRules = new Intl.PluralRules(\"en\", {\n type: \"ordinal\",\n });\n\n private static readonly suffixes = new Map([\n [\"one\", \"st\"],\n [\"two\", \"nd\"],\n [\"few\", \"rd\"],\n [\"other\", \"th\"],\n ]);\n\n public static formatOrdinal(n: number) {\n const rule = this.ordinalPluralRules.select(n);\n const suffix = this.suffixes.get(rule);\n return `${n}${suffix}`;\n }\n\n public static getMaskedDescription(\n value: string,\n displayMaskState: \"masked\" | \"unmasked\",\n maskRange?: number[]\n ): string {\n if (!value || displayMaskState !== \"masked\" || !maskRange) return \"\";\n\n const [startIndex, endIndex] = maskRange;\n const hasStart = startIndex > 0;\n const hasEnd = endIndex < value.length - 1;\n\n const start = hasStart ? value.substring(0, startIndex) : \"\";\n const end = hasEnd ? value.substring(endIndex + 1) : \"\";\n\n if (hasStart && hasEnd)\n return `Starting with ${start} and ending with ${end}`;\n if (hasStart) return `Starting with ${start}`;\n if (hasEnd) return `Ending with ${end}`;\n\n return \"\";\n }\n\n public static joinNonEmptyStrings(\n strings: (string | undefined | null)[],\n delimiter = \", \"\n ): string {\n return strings.filter(Boolean).join(delimiter);\n }\n}\n"],"names":["StringHelper","transformWithSpaces","value","groupLength","regex","replace","RegExp","trim","padValue","retainSingleZero","padStart","parseInt","toString","shouldTruncateToTwoLines","text","widthOfElement","estimatedCharOnLine","Math","floor","length","split","truncateOneLine","minDivSize","baselineCharLength","incrementFactor","additionalCharAllowed","allowedCharLength","thresholdIndex","substring","truncateTwoLines","fontSize","lineHeight","totalCharsAllowed","keepFromStart","keepFromEnd","getTextWidth","font","document","context","this","canvas","createElement","getContext","measureText","width","maskValue","options","maskRange","unmaskRange","maskChar","maskRegex","maskTransformer","startIndex","endIndex","determineStartAndEndIndex","repeat","index0","index1","formatOrdinal","n","rule","ordinalPluralRules","select","suffixes","get","getMaskedDescription","displayMaskState","hasStart","hasEnd","start","end","joinNonEmptyStrings","strings","delimiter","filter","Boolean","join","Intl","PluralRules","type","Map"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-event-listener.js","sources":["../../src/util/use-event-listener.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\ntype Target = \"window\" | \"document\" | HTMLElement | null;\ntype Element = Window | Document | HTMLElement | null;\ntype EventHandler<K extends keyof WindowEventMap> = (\n event: WindowEventMap[K]\n) => void;\n\nexport const useEventListener = <K extends keyof WindowEventMap>(\n eventName: K,\n handler: EventHandler<K>,\n target: Target = \"window\",\n options?: AddEventListenerOptions | boolean\n) => {\n // Create a ref that stores handler\n const savedHandler = useRef<EventHandler<K>>();\n // Update ref.current value if handler changes.\n // This allows our effect below to always get latest handler ...\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(\n () => {\n let element: Element;\n switch (target) {\n case \"window\":\n element = window;\n break;\n case \"document\":\n element = document;\n break;\n default:\n element = target;\n }\n\n // Make sure element supports addEventListener\n if (!element || !element.addEventListener) return;\n\n // Create event listener that calls handler function stored in ref\n const eventListener = ((event: WindowEventMap[K]) =>\n savedHandler.current?.(event)) as EventListener;\n // Add event listener\n element.addEventListener(eventName, eventListener, options);\n // Remove event listener on cleanup\n return () => {\n element?.removeEventListener(eventName, eventListener, options);\n };\n },\n [eventName, target] // Re-run if eventName or element changes\n );\n};\n"],"names":["useEventListener","eventName","handler","target","options","savedHandler","useRef","useEffect","current","element","window","document","addEventListener","eventListener","event","_a","call","removeEventListener"],"mappings":"8CAQO,MAAMA,EAAmB,CAC5BC,EACAC,EACAC,EAAiB,SACjBC,KAGA,MAAMC,EAAeC,IAGrBC,GAAU,KACNF,EAAaG,QAAUN,CAAO,GAC/B,CAACA,IAEJK,GACI,KACI,IAAIE,EACJ,OAAQN,GACJ,IAAK,SACDM,EAAUC,OACV,MACJ,IAAK,WACDD,EAAUE,SACV,MACJ,QACIF,EAAUN,EAIlB,IAAKM,IAAYA,EAAQG,iBAAkB,OAG3C,MAAMC,EAAkBC,IAA4B,IAAAC,EAChD,OAAoB,UAApBV,EAAaG,eAAO,IAAAO,OAAA,EAAAA,EAAAC,KAAAX,EAAGS,EAAM,EAIjC,OAFAL,EAAQG,iBAAiBX,EAAWY,EAAeT,GAE5C,KACHK,SAAAA,EAASQ,oBAAoBhB,EAAWY,EAAeT,EAAQ,CAClE,GAEL,CAACH,EAAWE,GACf"}
1
+ {"version":3,"file":"use-event-listener.js","sources":["../../src/util/use-event-listener.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\n\ntype Target = \"window\" | \"document\" | HTMLElement | null;\ntype Element = Window | Document | HTMLElement | null;\ntype EventHandler<K extends keyof WindowEventMap> = (\n event: WindowEventMap[K]\n) => void;\n\nexport const useEventListener = <K extends keyof WindowEventMap>(\n eventName: K,\n handler: EventHandler<K>,\n target: Target = \"window\",\n options?: AddEventListenerOptions | boolean\n) => {\n // Create a ref that stores handler\n const savedHandler = useRef<EventHandler<K>>();\n // Update ref.current value if handler changes.\n // This allows our effect below to always get latest handler ...\n useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n useEffect(\n () => {\n let element: Element;\n switch (target) {\n case \"window\":\n element = window;\n break;\n case \"document\":\n element = document;\n break;\n default:\n element = target;\n }\n\n // Make sure element supports addEventListener\n if (!element || !element.addEventListener) return;\n\n // Create event listener that calls handler function stored in ref\n const eventListener = ((event: WindowEventMap[K]) =>\n savedHandler.current?.(event)) as EventListener;\n // Add event listener\n element.addEventListener(eventName, eventListener, options);\n // Remove event listener on cleanup\n return () => {\n element?.removeEventListener(eventName, eventListener, options);\n };\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [eventName, target] // Re-run if eventName or element changes\n );\n};\n"],"names":["useEventListener","eventName","handler","target","options","savedHandler","useRef","useEffect","current","element","window","document","addEventListener","eventListener","event","_a","call","removeEventListener"],"mappings":"8CAQO,MAAMA,EAAmB,CAC5BC,EACAC,EACAC,EAAiB,SACjBC,KAGA,MAAMC,EAAeC,IAGrBC,GAAU,KACNF,EAAaG,QAAUN,CAAO,GAC/B,CAACA,IAEJK,GACI,KACI,IAAIE,EACJ,OAAQN,GACJ,IAAK,SACDM,EAAUC,OACV,MACJ,IAAK,WACDD,EAAUE,SACV,MACJ,QACIF,EAAUN,EAIlB,IAAKM,IAAYA,EAAQG,iBAAkB,OAG3C,MAAMC,EAAkBC,IAA4B,IAAAC,EAChD,OAAoB,UAApBV,EAAaG,eAAO,IAAAO,OAAA,EAAAA,EAAAC,KAAAX,EAAGS,EAAM,EAIjC,OAFAL,EAAQG,iBAAiBX,EAAWY,EAAeT,GAE5C,KACHK,SAAAA,EAASQ,oBAAoBhB,EAAWY,EAAeT,EAAQ,CAClE,GAGL,CAACH,EAAWE,GACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-state-actions.js","sources":["../../src/util/use-state-actions.ts"],"sourcesContent":["import { useReducer } from \"react\";\n\nimport type { RequiredKeys } from \"./utility-types\";\n\ntype ReducerObj<State> = {\n [action: string]: (state: State, payload: any) => State;\n};\n\ntype Actions<State, Reducers extends ReducerObj<State>> = {\n [T in keyof Reducers]: Reducers[T] extends (state: State) => State\n ? () => void\n : Reducers[T] extends (\n state: State,\n payload: Parameters<Reducers[T]>[1]\n ) => State\n ? (\n ...args: RequiredKeys<Parameters<Reducers[T]>[1]> extends never\n ? [payload?: Parameters<Reducers[T]>[1]]\n : [payload: Parameters<Reducers[T]>[1]]\n ) => void\n : never;\n};\n\ninterface StateActions<State, Reducers> {\n /** reducer initial state */\n initialState: State;\n /** specify functions that return the new state. must be immutable */\n reducers: Reducers;\n /** identify the reducer for debugging */\n name?: string;\n /** enable debugging */\n debug?: boolean;\n}\n\n/**\n * An interface around `React.useReducer` to limit boilerplate. Each action\n * is a function that takes in state and payload, then returns the updated state\n * immutably. Inspired by redux toolkit's createSlice api.\n *\n * Example:\n * ```\n * const initialState = { count: 0 };\n * const reducers = {\n * increment: (state) => ({ ...state, count: state.count + 1 }),\n * multiplyBy: (state, multiplier: number) => ({\n * ...state,\n * count: state.count * multiplier,\n * }),\n * };\n * const [state, actions] = useStateActions({ initialState, reducers });\n * actions.increment();\n * actions.multiplyBy(2);\n * ```\n *\n */\nexport const useStateActions = <State, Reducers extends ReducerObj<State>>({\n initialState,\n reducers,\n name,\n debug,\n}: StateActions<State, Reducers>): [State, Actions<State, Reducers>] => {\n const reducer = (state: State, action: { type: string; payload: any }) => {\n if (reducers[action.type]) {\n return reducers[action.type](state, action.payload);\n }\n return state;\n };\n const [state, dispatch] = useReducer(reducer, initialState);\n const actions = Object.fromEntries(\n Object.keys(reducers).map((actionType) => {\n return [\n actionType,\n (payload: unknown) => {\n if (debug) {\n logAction(name, actionType, payload);\n }\n dispatch({\n type: actionType,\n payload,\n });\n },\n ];\n })\n );\n return [state, actions] as [State, Actions<State, Reducers>];\n};\n\nconst logAction = (\n name: string | undefined,\n type: string,\n payload: unknown\n) => {\n const args = [];\n if (name) args.push(`[${name}]`);\n args.push(type, payload);\n\n console.log(...args);\n};\n"],"names":["useStateActions","initialState","reducers","name","debug","state","dispatch","useReducer","action","type","payload","Object","fromEntries","keys","map","actionType","logAction","args","push","console","log"],"mappings":"mCAuDO,MAAMA,EAAkB,EAC3BC,eACAC,WACAC,OACAC,YAEA,MAMOC,EAAOC,GAAYC,GANV,CAACF,EAAcG,IACvBN,EAASM,EAAOC,MACTP,EAASM,EAAOC,MAAMJ,EAAOG,EAAOE,SAExCL,GAEmCJ,GAiB9C,MAAO,CAACI,EAhBQM,OAAOC,YACnBD,OAAOE,KAAKX,GAAUY,KAAKC,GAChB,CACHA,EACCL,IACON,GACAY,EAAUb,EAAMY,EAAYL,GAEhCJ,EAAS,CACLG,KAAMM,EACNL,WACF,MAK0C,EAG1DM,EAAY,CACdb,EACAM,EACAC,KAEA,MAAMO,EAAO,GACHA,EAAKC,KAAK,IAAIf,MACxBc,EAAKC,KAAKT,EAAMC,GAEhBS,QAAQC,OAAOH,EAAK"}
1
+ {"version":3,"file":"use-state-actions.js","sources":["../../src/util/use-state-actions.ts"],"sourcesContent":["import { useReducer } from \"react\";\n\nimport type { RequiredKeys } from \"./utility-types\";\n\ntype ReducerObj<State> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [action: string]: (state: State, payload: any) => State;\n};\n\ntype Actions<State, Reducers extends ReducerObj<State>> = {\n [T in keyof Reducers]: Reducers[T] extends (state: State) => State\n ? () => void\n : Reducers[T] extends (\n state: State,\n payload: Parameters<Reducers[T]>[1]\n ) => State\n ? (\n ...args: RequiredKeys<Parameters<Reducers[T]>[1]> extends never\n ? [payload?: Parameters<Reducers[T]>[1]]\n : [payload: Parameters<Reducers[T]>[1]]\n ) => void\n : never;\n};\n\ninterface StateActions<State, Reducers> {\n /** reducer initial state */\n initialState: State;\n /** specify functions that return the new state. must be immutable */\n reducers: Reducers;\n /** identify the reducer for debugging */\n name?: string;\n /** enable debugging */\n debug?: boolean;\n}\n\n/**\n * An interface around `React.useReducer` to limit boilerplate. Each action\n * is a function that takes in state and payload, then returns the updated state\n * immutably. Inspired by redux toolkit's createSlice api.\n *\n * Example:\n * ```\n * const initialState = { count: 0 };\n * const reducers = {\n * increment: (state) => ({ ...state, count: state.count + 1 }),\n * multiplyBy: (state, multiplier: number) => ({\n * ...state,\n * count: state.count * multiplier,\n * }),\n * };\n * const [state, actions] = useStateActions({ initialState, reducers });\n * actions.increment();\n * actions.multiplyBy(2);\n * ```\n *\n */\nexport const useStateActions = <State, Reducers extends ReducerObj<State>>({\n initialState,\n reducers,\n name,\n debug,\n}: StateActions<State, Reducers>): [State, Actions<State, Reducers>] => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const reducer = (state: State, action: { type: string; payload: any }) => {\n if (reducers[action.type]) {\n return reducers[action.type](state, action.payload);\n }\n return state;\n };\n const [state, dispatch] = useReducer(reducer, initialState);\n const actions = Object.fromEntries(\n Object.keys(reducers).map((actionType) => {\n return [\n actionType,\n (payload: unknown) => {\n if (debug) {\n logAction(name, actionType, payload);\n }\n dispatch({\n type: actionType,\n payload,\n });\n },\n ];\n })\n );\n return [state, actions] as [State, Actions<State, Reducers>];\n};\n\nconst logAction = (\n name: string | undefined,\n type: string,\n payload: unknown\n) => {\n const args = [];\n if (name) args.push(`[${name}]`);\n args.push(type, payload);\n\n console.log(...args);\n};\n"],"names":["useStateActions","initialState","reducers","name","debug","state","dispatch","useReducer","action","type","payload","Object","fromEntries","keys","map","actionType","logAction","args","push","console","log"],"mappings":"mCAwDO,MAAMA,EAAkB,EAC3BC,eACAC,WACAC,OACAC,YAGA,MAMOC,EAAOC,GAAYC,GANV,CAACF,EAAcG,IACvBN,EAASM,EAAOC,MACTP,EAASM,EAAOC,MAAMJ,EAAOG,EAAOE,SAExCL,GAEmCJ,GAiB9C,MAAO,CAACI,EAhBQM,OAAOC,YACnBD,OAAOE,KAAKX,GAAUY,KAAKC,GAChB,CACHA,EACCL,IACON,GACAY,EAAUb,EAAMY,EAAYL,GAEhCJ,EAAS,CACLG,KAAMM,EACNL,WACF,MAK0C,EAG1DM,EAAY,CACdb,EACAM,EACAC,KAEA,MAAMO,EAAO,GACHA,EAAKC,KAAK,IAAIf,MACxBc,EAAKC,KAAKT,EAAMC,GAEhBS,QAAQC,OAAOH,EAAK"}
@@ -1,20 +0,0 @@
1
- @layer fds{.mf6do54{border:var(--fds-border-width-010) var(--fds-border-style-solid) transparent;-webkit-transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-default);transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-default);cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:var(--fds-spacing-8) var(--fds-spacing-16);gap:0.5rem;border-radius:var(--fds-radius-sm);}.mf6do54 svg,.mf6do54 img{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:1em;width:1em;}
2
- .moaxzdy{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;}
3
- .m1en642a{min-width:4rem;}
4
- .m1jxbf2q{background-color:var(--fds-colour-bg-primary);color:var(--fds-colour-text-inverse);}@media (pointer: fine){.m1jxbf2q:hover,.m1jxbf2q:active{background-color:var(--fds-colour-bg-primary-hover);}}
5
- .mharb8i{background-color:var(--fds-colour-bg-error-strong);color:var(--fds-colour-text-inverse);}@media (pointer: fine){.mharb8i:hover,.mharb8i:active{background-color:var(--fds-colour-bg-error-strong-hover);}}
6
- .mbs4ndg{background-color:var(--fds-colour-bg);border-color:var(--fds-colour-border-primary);color:var(--fds-colour-text-primary);}@media (pointer: fine){.mbs4ndg:hover,.mbs4ndg:active{background-color:var(--fds-colour-bg-hover-neutral);}}
7
- .m1taerhv{background-color:var(--fds-colour-bg);border-color:var(--fds-colour-border-error-strong);color:var(--fds-colour-text-error);}@media (pointer: fine){.m1taerhv:hover,.m1taerhv:active{background-color:var(--fds-colour-bg-hover-neutral);}}
8
- .m8hnmz5{background-color:var(--fds-colour-bg);border-color:var(--fds-colour-border);color:var(--fds-colour-text-primary);}@media (pointer: fine){.m8hnmz5:hover,.m8hnmz5:active{background-color:var(--fds-colour-bg-hover-neutral);}}
9
- .m53fwwa{background-color:var(--fds-colour-bg);border-color:var(--fds-colour-border);color:var(--fds-colour-text-error);}@media (pointer: fine){.m53fwwa:hover,.m53fwwa:active{background-color:var(--fds-colour-bg-hover-neutral);}}
10
- .m1557ko0{background-color:transparent;color:var(--fds-colour-text-primary);}@media (pointer: fine){.m1557ko0:hover,.m1557ko0:active{background-color:var(--fds-colour-bg-hover-neutral);}}
11
- .m70z5yw{background-color:transparent;color:var(--fds-colour-text-error);}@media (pointer: fine){.m70z5yw:hover,.m70z5yw:active{background-color:var(--fds-colour-bg-hover-neutral);}}
12
- .mc532iy{background-color:var(--fds-colour-bg-disabled);cursor:not-allowed;color:var(--fds-colour-text-disabled);}.mc532iy:hover{box-shadow:none;}
13
- .m1knftbn{height:3rem;font-family:var(--fds-font-family-heading);font-variant:var(--fds-font-variant);font-size:var(--fds-font-heading-size-xs);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-heading-lh-xs);letter-spacing:var(--fds-font-heading-ls-xs);}:where(body.fds-breakpoint-xxs-max) .m1knftbn{height:auto;}
14
- .m18n5exw{height:3rem;width:3rem;}
15
- .m3n7mqo{height:2.5rem;font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-md);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-md);letter-spacing:var(--fds-font-body-ls-md);}:where(body.fds-breakpoint-xxs-max) .m3n7mqo{height:auto;}
16
- .m1ytkx3r{height:2.5rem;width:2.5rem;}
17
- .m1c1mlhm{height:4rem;font-family:var(--fds-font-family-heading);font-variant:var(--fds-font-variant);font-size:var(--fds-font-heading-size-md);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-heading-lh-md);letter-spacing:var(--fds-font-heading-ls-md);}:where(body.fds-breakpoint-xxs-max) .m1c1mlhm{height:auto;}
18
- .me78sau{height:4rem;width:4rem;}
19
- .s17i3scc{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}
20
- .s1joklnz{margin-right:0.5rem;}}
@@ -1,20 +0,0 @@
1
- @layer fds{.mf6do54{border:var(--fds-border-width-010) var(--fds-border-style-solid) transparent;-webkit-transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-default);transition:all var(--fds-motion-duration-250) var(--fds-motion-timing-ease-default);cursor:pointer;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;padding:var(--fds-spacing-8) var(--fds-spacing-16);gap:0.5rem;border-radius:var(--fds-radius-sm);}.mf6do54 svg,.mf6do54 img{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:1em;width:1em;}
2
- .moaxzdy{-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;}
3
- .m1en642a{min-width:4rem;}
4
- .m1jxbf2q{background-color:var(--fds-colour-bg-primary);color:var(--fds-colour-text-inverse);}@media (pointer: fine){.m1jxbf2q:hover,.m1jxbf2q:active{background-color:var(--fds-colour-bg-primary-hover);}}
5
- .mharb8i{background-color:var(--fds-colour-bg-error-strong);color:var(--fds-colour-text-inverse);}@media (pointer: fine){.mharb8i:hover,.mharb8i:active{background-color:var(--fds-colour-bg-error-strong-hover);}}
6
- .mbs4ndg{background-color:var(--fds-colour-bg);border-color:var(--fds-colour-border-primary);color:var(--fds-colour-text-primary);}@media (pointer: fine){.mbs4ndg:hover,.mbs4ndg:active{background-color:var(--fds-colour-bg-hover-neutral);}}
7
- .m1taerhv{background-color:var(--fds-colour-bg);border-color:var(--fds-colour-border-error-strong);color:var(--fds-colour-text-error);}@media (pointer: fine){.m1taerhv:hover,.m1taerhv:active{background-color:var(--fds-colour-bg-hover-neutral);}}
8
- .m8hnmz5{background-color:var(--fds-colour-bg);border-color:var(--fds-colour-border);color:var(--fds-colour-text-primary);}@media (pointer: fine){.m8hnmz5:hover,.m8hnmz5:active{background-color:var(--fds-colour-bg-hover-neutral);}}
9
- .m53fwwa{background-color:var(--fds-colour-bg);border-color:var(--fds-colour-border);color:var(--fds-colour-text-error);}@media (pointer: fine){.m53fwwa:hover,.m53fwwa:active{background-color:var(--fds-colour-bg-hover-neutral);}}
10
- .m1557ko0{background-color:transparent;color:var(--fds-colour-text-primary);}@media (pointer: fine){.m1557ko0:hover,.m1557ko0:active{background-color:var(--fds-colour-bg-hover-neutral);}}
11
- .m70z5yw{background-color:transparent;color:var(--fds-colour-text-error);}@media (pointer: fine){.m70z5yw:hover,.m70z5yw:active{background-color:var(--fds-colour-bg-hover-neutral);}}
12
- .mc532iy{background-color:var(--fds-colour-bg-disabled);cursor:not-allowed;color:var(--fds-colour-text-disabled);}.mc532iy:hover{box-shadow:none;}
13
- .m1knftbn{height:3rem;font-family:var(--fds-font-family-heading);font-variant:var(--fds-font-variant);font-size:var(--fds-font-heading-size-xs);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-heading-lh-xs);letter-spacing:var(--fds-font-heading-ls-xs);}:where(body.fds-breakpoint-xxs-max) .m1knftbn{height:auto;}
14
- .m18n5exw{height:3rem;width:3rem;}
15
- .m3n7mqo{height:2.5rem;font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-md);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-md);letter-spacing:var(--fds-font-body-ls-md);}:where(body.fds-breakpoint-xxs-max) .m3n7mqo{height:auto;}
16
- .m1ytkx3r{height:2.5rem;width:2.5rem;}
17
- .m1c1mlhm{height:4rem;font-family:var(--fds-font-family-heading);font-variant:var(--fds-font-variant);font-size:var(--fds-font-heading-size-md);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-heading-lh-md);letter-spacing:var(--fds-font-heading-ls-md);}:where(body.fds-breakpoint-xxs-max) .m1c1mlhm{height:auto;}
18
- .me78sau{height:4rem;width:4rem;}
19
- .s17i3scc{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}
20
- .s1joklnz{margin-right:0.5rem;}}
@@ -1,2 +0,0 @@
1
- "use strict";require("./form-textarea.styles_1kneyif.css");exports.errorMessageContainer="e171r5qb",exports.errorMessageLabel="ellm5gf",exports.labelContainer="l1j0sg6e";
2
- //# sourceMappingURL=form-textarea.styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form-textarea.styles.js","sources":["../../../../src/form/form-textarea/form-textarea.styles.ts"],"sourcesContent":["import { css } from \"@linaria/core\";\n\nimport { Spacing } from \"../../theme\";\n\nexport const labelContainer = css`\n display: flex;\n justify-content: flex-end;\n margin-top: ${Spacing[\"spacing-8\"]};\n`;\n\nexport const errorMessageContainer = css`\n display: flex;\n flex: 1;\n margin-right: ${Spacing[\"spacing-12\"]};\n gap: ${Spacing[\"spacing-4\"]};\n`;\n\nexport const errorMessageLabel = css`\n margin-top: 0;\n`;\n"],"names":[],"mappings":"2HAUkC,qCAOJ,iCAbH"}
@@ -1,3 +0,0 @@
1
- @layer fds{.l1j0sg6e{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;margin-top:var(--fds-spacing-8);}
2
- .e171r5qb{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;margin-right:var(--fds-spacing-12);gap:var(--fds-spacing-4);}
3
- .ellm5gf{margin-top:0;}}
@@ -1,38 +0,0 @@
1
- @layer fds{.h1fyul7s{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:space-between;-webkit-justify-content:space-between;justify-content:space-between;}
2
- .tybgacj{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow-wrap:anywhere;width:100%;overflow:hidden;color:var(--fds-colour-text);}
3
- .tvkjim3{color:var(--fds-colour-text-selected);}
4
- .t1aku79x{color:var(--fds-colour-text-selected-disabled);}
5
- .c11szvws{position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;min-width:10.375rem;border-radius:var(--fds-radius-sm);border-width:1px;border-style:solid;overflow:hidden;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;background:var(--fds-colour-bg);}.c11szvws:focus-within{outline:2px solid var(--fds-colour-focus-ring);outline-offset:0;}
6
- .n12ofp2c{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}
7
- .u1l0nsei{min-width:unset;}
8
- .c17z2k4k{border-color:var(--fds-colour-border-error);}
9
- .tfiow01{border:none;background:var(--fds-colour-bg-selected-disabled);}
10
- .td5xote{border:none;}
11
- .t15nuck4{border:none;background:var(--fds-colour-bg-selected);}
12
- .tnwn55u{border:none;}
13
- .t1graj5g{border-color:var(--fds-colour-border-error);}
14
- .t1qqpl3b{border-color:var(--fds-colour-border-selected-disabled);background:var(--fds-colour-bg-selected-disabled);}
15
- .t1l2ct9g{border-color:var(--fds-colour-border-disabled);background:var(--fds-colour-bg-disabled);}
16
- .t1tat3es{border-color:var(--fds-colour-border-selected);background:var(--fds-colour-bg-selected);}
17
- @media (pointer: fine){.t1nsq3eo:has(.h1fyul7s:hover){background:var(--fds-colour-bg-selected-hover);}.t1nsq3eo:has(.h1fyul7s:hover) .tybgacj{color:var(--fds-colour-text-selected-hover);}.t1nsq3eo:has(.h1fyul7s:hover) .wxufi5f{color:var(--fds-colour-icon-selected-hover);}}
18
- .t1cyflot{border-color:var(--fds-colour-border);}
19
- @media (pointer: fine){.txm5wyu:has(.h1fyul7s:hover){background:var(--fds-colour-bg-hover-subtle);}}
20
- .i14lgw6r{position:absolute;height:100%;width:100%;cursor:pointer;top:0;left:0;opacity:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:transparent;border:none;}
21
- .tovnc4j{cursor:not-allowed;}
22
- .iangfw6{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}
23
- .l1oixyvr{overflow:hidden;display:-webkit-box;text-overflow:ellipsis;-webkit-box-orient:vertical;overflow-wrap:break-word;--fds-internal-toggle-label-desktopLineClamp:initial;--fds-internal-toggle-label-tabletLineClamp:initial;--fds-internal-toggle-label-mobileLineClamp:initial;-webkit-line-clamp:var(--fds-internal-toggle-label-desktopLineClamp, none);}:where(body.fds-breakpoint-lg-max) .l1oixyvr{-webkit-line-clamp:var(--fds-internal-toggle-label-tabletLineClamp, none);}:where(body.fds-breakpoint-sm-max) .l1oixyvr{-webkit-line-clamp:var(--fds-internal-toggle-label-mobileLineClamp, none);}
24
- .t1elmp69{font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-baseline);font-weight:var(--fds-font-weight-regular);line-height:var(--fds-font-body-lh-baseline);letter-spacing:var(--fds-font-body-ls-baseline);}
25
- .tv1hw4w{font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-baseline);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-baseline);letter-spacing:var(--fds-font-body-ls-baseline);}
26
- .s17sf3sp{font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-md);font-weight:var(--fds-font-weight-regular);line-height:var(--fds-font-body-lh-md);letter-spacing:var(--fds-font-body-ls-md);margin-top:0.5rem;z-index:1;pointer-events:none;}.s17sf3sp strong,.s17sf3sp b{font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-md);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-md);letter-spacing:var(--fds-font-body-ls-md);}
27
- .i1l466bv{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;width:100%;position:relative;padding:0.6875rem 1rem;}
28
- .ih3od2r{padding:0.6875rem 0rem 0.6875rem 1rem;}
29
- .r1izng22{color:var(--fds-colour-text-error);white-space:nowrap;font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-md);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-md);letter-spacing:var(--fds-font-body-ls-md);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;padding:0.6875rem 1rem 0.6875rem 0.5rem;border:none;background:none;cursor:pointer;}
30
- .d194isif{color:var(--fds-colour-text-disabled);cursor:not-allowed;}
31
- .ehwglic{color:var(--fds-colour-text-primary);font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-baseline);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-baseline);letter-spacing:var(--fds-font-body-ls-baseline);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;border:none;background-color:var(--fds-colour-bg);cursor:pointer;padding:0 1rem 0.6875rem 1rem;width:100%;}.ehwglic svg{width:1em;height:1em;margin-left:0.5rem;}
32
- .ejwzsce{padding-top:0.6875rem;}
33
- .e1q8ywpe{width:100%;color:var(--fds-colour-text-error);border:none;background:var(--fds-colour-bg);cursor:pointer;padding:0.6875rem 1rem 0.5rem 1rem;}
34
- .c1mf9nso{padding:0 1rem;padding-top:0.6875rem;padding-bottom:0.5rem;background-color:var(--fds-colour-bg);color:var(--fds-colour-text);}
35
- .c9t56r4{padding-bottom:0.6875rem;}
36
- .c1y0x62l{color:var(--fds-colour-text-disabled);}
37
- .c1gmwtb7{color:var(--fds-colour-text-error);}
38
- .aeqryui{width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}}
@@ -1,3 +0,0 @@
1
- export declare const labelContainer: import("@linaria/core").LinariaClassName;
2
- export declare const errorMessageContainer: import("@linaria/core").LinariaClassName;
3
- export declare const errorMessageLabel: import("@linaria/core").LinariaClassName;
@@ -1,2 +0,0 @@
1
- import"./form-textarea.styles_1kneyif.css";const e="l1j0sg6e",r="e171r5qb",t="ellm5gf";export{r as errorMessageContainer,t as errorMessageLabel,e as labelContainer};
2
- //# sourceMappingURL=form-textarea.styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form-textarea.styles.js","sources":["../../../src/form/form-textarea/form-textarea.styles.ts"],"sourcesContent":["import { css } from \"@linaria/core\";\n\nimport { Spacing } from \"../../theme\";\n\nexport const labelContainer = css`\n display: flex;\n justify-content: flex-end;\n margin-top: ${Spacing[\"spacing-8\"]};\n`;\n\nexport const errorMessageContainer = css`\n display: flex;\n flex: 1;\n margin-right: ${Spacing[\"spacing-12\"]};\n gap: ${Spacing[\"spacing-4\"]};\n`;\n\nexport const errorMessageLabel = css`\n margin-top: 0;\n`;\n"],"names":["labelContainer","errorMessageContainer","errorMessageLabel"],"mappings":"6EAIO,MAAMA,EAAc,WAMdC,EAAqB,WAOrBC,EAAiB"}
@@ -1,3 +0,0 @@
1
- @layer fds{.l1j0sg6e{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;margin-top:var(--fds-spacing-8);}
2
- .e171r5qb{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex:1;-ms-flex:1;flex:1;margin-right:var(--fds-spacing-12);gap:var(--fds-spacing-4);}
3
- .ellm5gf{margin-top:0;}}
@@ -1,158 +0,0 @@
1
-
2
- @layer fds {
3
- :root {
4
- /*
5
- ========================================================================
6
- BORDER
7
- ========================================================================
8
- */
9
- --fds-border-width-005: 0.5px;
10
- --fds-border-width-010: 1px;
11
- --fds-border-width-020: 2px;
12
- --fds-border-width-040: 4px;
13
- --fds-border-style-solid: solid;
14
-
15
- /*
16
- ========================================================================
17
- BREAKPOINT
18
- ========================================================================
19
- */
20
- --fds-breakpoint-xxs-min: 0;
21
- --fds-breakpoint-xxs-max: 320px;
22
- --fds-breakpoint-xs-min: 321px;
23
- --fds-breakpoint-xs-max: 375px;
24
- --fds-breakpoint-sm-min: 376px;
25
- --fds-breakpoint-sm-max: 480px;
26
- --fds-breakpoint-md-min: 481px;
27
- --fds-breakpoint-md-max: 768px;
28
- --fds-breakpoint-lg-min: 769px;
29
- --fds-breakpoint-lg-max: 1200px;
30
- --fds-breakpoint-xl-min: 1201px;
31
- --fds-breakpoint-xl-max: 1440px;
32
- --fds-breakpoint-xxl-min: 1441px;
33
- --fds-breakpoint-column-xxs: 8;
34
- --fds-breakpoint-column-xs: 8;
35
- --fds-breakpoint-column-sm: 8;
36
- --fds-breakpoint-column-md: 8;
37
- --fds-breakpoint-column-lg: 12;
38
- --fds-breakpoint-column-xl: 12;
39
- --fds-breakpoint-column-xxl: 12;
40
- --fds-breakpoint-gutter-xxs: 16px;
41
- --fds-breakpoint-gutter-xs: 16px;
42
- --fds-breakpoint-gutter-sm: 16px;
43
- --fds-breakpoint-gutter-md: 16px;
44
- --fds-breakpoint-gutter-lg: 32px;
45
- --fds-breakpoint-gutter-xl: 32px;
46
- --fds-breakpoint-gutter-xxl: 32px;
47
- --fds-breakpoint-margin-xxs: 24px;
48
- --fds-breakpoint-margin-xs: 24px;
49
- --fds-breakpoint-margin-sm: 24px;
50
- --fds-breakpoint-margin-md: 24px;
51
- --fds-breakpoint-margin-lg: 48px;
52
- --fds-breakpoint-margin-xl: 48px;
53
- --fds-breakpoint-margin-xxl: 48px;
54
-
55
- /*
56
- ========================================================================
57
- FONT
58
- ========================================================================
59
- */
60
- --fds-font-variant: normal;
61
- --fds-font-heading-size-xxl: 3rem;
62
- --fds-font-heading-size-xl: 2.5rem;
63
- --fds-font-heading-size-lg: 2rem;
64
- --fds-font-heading-size-md: 1.625rem;
65
- --fds-font-heading-size-sm: 1.375rem;
66
- --fds-font-heading-size-xs: 1.125rem;
67
- --fds-font-heading-lh-xxl: 3.5rem;
68
- --fds-font-heading-lh-xl: 3rem;
69
- --fds-font-heading-lh-lg: 2.5rem;
70
- --fds-font-heading-lh-md: 2.25rem;
71
- --fds-font-heading-lh-sm: 1.75rem;
72
- --fds-font-heading-lh-xs: 1.625rem;
73
- --fds-font-heading-ls-xxl: -0.035rem;
74
- --fds-font-heading-ls-xl: -0.02rem;
75
- --fds-font-heading-ls-lg: -0.02rem;
76
- --fds-font-heading-ls-md: 0rem;
77
- --fds-font-heading-ls-sm: 0rem;
78
- --fds-font-heading-ls-xs: 0rem;
79
- --fds-font-weight-light: 300;
80
- --fds-font-weight-regular: 400;
81
- --fds-font-weight-semibold: 600;
82
- --fds-font-weight-bold: 700;
83
- --fds-font-family-heading: "Open Sans";
84
- --fds-font-family-body: "Open Sans";
85
- --fds-font-body-size-baseline: 1.125rem;
86
- --fds-font-body-size-md: 1rem;
87
- --fds-font-body-size-sm: 0.875rem;
88
- --fds-font-body-size-xs: 0.75rem;
89
- --fds-font-body-lh-baseline: 1.625rem;
90
- --fds-font-body-lh-md: 1.5rem;
91
- --fds-font-body-lh-sm: 1.25rem;
92
- --fds-font-body-lh-xs: 1.25rem;
93
- --fds-font-body-ls-baseline: 0rem;
94
- --fds-font-body-ls-md: 0.009rem;
95
- --fds-font-body-ls-sm: 0.008rem;
96
- --fds-font-body-ls-xs: 0.008rem;
97
- --fds-font-form-label-size: 1rem;
98
- --fds-font-form-description-size: 0.875rem;
99
- --fds-font-form-label-lh: 1.375rem;
100
- --fds-font-form-description-lh: 1.25rem;
101
- --fds-font-form-label-ls: 0rem;
102
- --fds-font-form-description-ls: 0rem;
103
-
104
- /*
105
- ========================================================================
106
- SPACING
107
- ========================================================================
108
- */
109
- --fds-spacing-0: 0;
110
- --fds-spacing-4: 4px;
111
- --fds-spacing-8: 8px;
112
- --fds-spacing-12: 12px;
113
- --fds-spacing-16: 16px;
114
- --fds-spacing-20: 20px;
115
- --fds-spacing-24: 24px;
116
- --fds-spacing-32: 32px;
117
- --fds-spacing-40: 40px;
118
- --fds-spacing-48: 48px;
119
- --fds-spacing-64: 64px;
120
- --fds-spacing-72: 72px;
121
- --fds-layout-xs: 8px;
122
- --fds-layout-sm: 16px;
123
- --fds-layout-md: 24px;
124
- --fds-layout-lg: 32px;
125
- --fds-layout-xl: 48px;
126
- --fds-layout-xxl: 64px;
127
- --fds-layout-xxxl: 128px;
128
-
129
- /*
130
- ========================================================================
131
- MOTION
132
- ========================================================================
133
- */
134
- --fds-motion-duration-150: 150ms;
135
- --fds-motion-duration-250: 250ms;
136
- --fds-motion-duration-350: 350ms;
137
- --fds-motion-duration-500: 500ms;
138
- --fds-motion-duration-800: 800ms;
139
- --fds-motion-duration-1000: 1000ms;
140
- --fds-motion-timing-ease-default: cubic-bezier(0.45, 0.05, 0.55, 0.95);
141
- --fds-motion-timing-ease-standard: cubic-bezier(0.86, 0, 0.07, 1);
142
- --fds-motion-timing-ease-entrance: cubic-bezier(0.18, 0.13, 0, 1);
143
- --fds-motion-timing-ease-exit: cubic-bezier(1, 0, 0.8, 0.85);
144
-
145
- /*
146
- ========================================================================
147
- RADIUS
148
- ========================================================================
149
- */
150
- --fds-radius-none: 0;
151
- --fds-radius-xs: 2px;
152
- --fds-radius-sm: 4px;
153
- --fds-radius-md: 8px;
154
- --fds-radius-lg: 12px;
155
- --fds-radius-full: 9999px;
156
- }
157
-
158
- }
@@ -1,38 +0,0 @@
1
- @layer fds{.h1fyul7s{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:space-between;-webkit-justify-content:space-between;justify-content:space-between;}
2
- .tybgacj{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;overflow-wrap:anywhere;width:100%;overflow:hidden;color:var(--fds-colour-text);}
3
- .tvkjim3{color:var(--fds-colour-text-selected);}
4
- .t1aku79x{color:var(--fds-colour-text-selected-disabled);}
5
- .c11szvws{position:relative;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;min-width:10.375rem;border-radius:var(--fds-radius-sm);border-width:1px;border-style:solid;overflow:hidden;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;background:var(--fds-colour-bg);}.c11szvws:focus-within{outline:2px solid var(--fds-colour-focus-ring);outline-offset:0;}
6
- .n12ofp2c{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}
7
- .u1l0nsei{min-width:unset;}
8
- .c17z2k4k{border-color:var(--fds-colour-border-error);}
9
- .tfiow01{border:none;background:var(--fds-colour-bg-selected-disabled);}
10
- .td5xote{border:none;}
11
- .t15nuck4{border:none;background:var(--fds-colour-bg-selected);}
12
- .tnwn55u{border:none;}
13
- .t1graj5g{border-color:var(--fds-colour-border-error);}
14
- .t1qqpl3b{border-color:var(--fds-colour-border-selected-disabled);background:var(--fds-colour-bg-selected-disabled);}
15
- .t1l2ct9g{border-color:var(--fds-colour-border-disabled);background:var(--fds-colour-bg-disabled);}
16
- .t1tat3es{border-color:var(--fds-colour-border-selected);background:var(--fds-colour-bg-selected);}
17
- @media (pointer: fine){.t1nsq3eo:has(.h1fyul7s:hover){background:var(--fds-colour-bg-selected-hover);}.t1nsq3eo:has(.h1fyul7s:hover) .tybgacj{color:var(--fds-colour-text-selected-hover);}.t1nsq3eo:has(.h1fyul7s:hover) .wxufi5f{color:var(--fds-colour-icon-selected-hover);}}
18
- .t1cyflot{border-color:var(--fds-colour-border);}
19
- @media (pointer: fine){.txm5wyu:has(.h1fyul7s:hover){background:var(--fds-colour-bg-hover-subtle);}}
20
- .i14lgw6r{position:absolute;height:100%;width:100%;cursor:pointer;top:0;left:0;opacity:0;-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none;background:transparent;border:none;}
21
- .tovnc4j{cursor:not-allowed;}
22
- .iangfw6{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}
23
- .l1oixyvr{overflow:hidden;display:-webkit-box;text-overflow:ellipsis;-webkit-box-orient:vertical;overflow-wrap:break-word;--fds-internal-toggle-label-desktopLineClamp:initial;--fds-internal-toggle-label-tabletLineClamp:initial;--fds-internal-toggle-label-mobileLineClamp:initial;-webkit-line-clamp:var(--fds-internal-toggle-label-desktopLineClamp, none);}:where(body.fds-breakpoint-lg-max) .l1oixyvr{-webkit-line-clamp:var(--fds-internal-toggle-label-tabletLineClamp, none);}:where(body.fds-breakpoint-sm-max) .l1oixyvr{-webkit-line-clamp:var(--fds-internal-toggle-label-mobileLineClamp, none);}
24
- .t1elmp69{font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-baseline);font-weight:var(--fds-font-weight-regular);line-height:var(--fds-font-body-lh-baseline);letter-spacing:var(--fds-font-body-ls-baseline);}
25
- .tv1hw4w{font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-baseline);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-baseline);letter-spacing:var(--fds-font-body-ls-baseline);}
26
- .s17sf3sp{font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-md);font-weight:var(--fds-font-weight-regular);line-height:var(--fds-font-body-lh-md);letter-spacing:var(--fds-font-body-ls-md);margin-top:0.5rem;z-index:1;pointer-events:none;}.s17sf3sp strong,.s17sf3sp b{font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-md);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-md);letter-spacing:var(--fds-font-body-ls-md);}
27
- .i1l466bv{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:100%;width:100%;position:relative;padding:0.6875rem 1rem;}
28
- .ih3od2r{padding:0.6875rem 0rem 0.6875rem 1rem;}
29
- .r1izng22{color:var(--fds-colour-text-error);white-space:nowrap;font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-md);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-md);letter-spacing:var(--fds-font-body-ls-md);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;padding:0.6875rem 1rem 0.6875rem 0.5rem;border:none;background:none;cursor:pointer;}
30
- .d194isif{color:var(--fds-colour-text-disabled);cursor:not-allowed;}
31
- .ehwglic{color:var(--fds-colour-text-primary);font-family:var(--fds-font-family-body);font-variant:var(--fds-font-variant);font-size:var(--fds-font-body-size-baseline);font-weight:var(--fds-font-weight-semibold);line-height:var(--fds-font-body-lh-baseline);letter-spacing:var(--fds-font-body-ls-baseline);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;border:none;background-color:var(--fds-colour-bg);cursor:pointer;padding:0 1rem 0.6875rem 1rem;width:100%;}.ehwglic svg{width:1em;height:1em;margin-left:0.5rem;}
32
- .ejwzsce{padding-top:0.6875rem;}
33
- .e1q8ywpe{width:100%;color:var(--fds-colour-text-error);border:none;background:var(--fds-colour-bg);cursor:pointer;padding:0.6875rem 1rem 0.5rem 1rem;}
34
- .c1mf9nso{padding:0 1rem;padding-top:0.6875rem;padding-bottom:0.5rem;background-color:var(--fds-colour-bg);color:var(--fds-colour-text);}
35
- .c9t56r4{padding-bottom:0.6875rem;}
36
- .c1y0x62l{color:var(--fds-colour-text-disabled);}
37
- .c1gmwtb7{color:var(--fds-colour-text-error);}
38
- .aeqryui{width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}}