@semcore/core 16.5.1 → 17.0.0-prerelease.14

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 (427) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/README.md +4 -4
  3. package/lib/LastInteractionType.js +22 -36
  4. package/lib/LastInteractionType.js.map +1 -1
  5. package/lib/LastInteractionType.mjs +19 -33
  6. package/lib/LastInteractionType.mjs.map +1 -1
  7. package/lib/core-types/Component.d.ts +26 -79
  8. package/lib/core-types/Component.js +24 -72
  9. package/lib/core-types/Component.js.map +1 -1
  10. package/lib/core-types/Component.mjs +18 -34
  11. package/lib/core-types/Component.mjs.map +1 -1
  12. package/lib/core-types/symbols.js +9 -9
  13. package/lib/core-types/symbols.js.map +1 -1
  14. package/lib/core-types/symbols.mjs +9 -9
  15. package/lib/core-types/symbols.mjs.map +1 -1
  16. package/lib/coreFactory.d.ts +6 -23
  17. package/lib/coreFactory.js +150 -217
  18. package/lib/coreFactory.js.map +1 -1
  19. package/lib/coreFactory.mjs +139 -194
  20. package/lib/coreFactory.mjs.map +1 -1
  21. package/lib/decorators/propsObserver.d.ts +11 -0
  22. package/lib/decorators/reactive.d.ts +11 -0
  23. package/lib/enhancement/Children.js +51 -59
  24. package/lib/enhancement/Children.js.map +1 -1
  25. package/lib/enhancement/Children.mjs +47 -41
  26. package/lib/enhancement/Children.mjs.map +1 -1
  27. package/lib/enhancement/Root.js +36 -37
  28. package/lib/enhancement/Root.js.map +1 -1
  29. package/lib/enhancement/Root.mjs +28 -18
  30. package/lib/enhancement/Root.mjs.map +1 -1
  31. package/lib/enhancement/dataName.js +7 -8
  32. package/lib/enhancement/dataName.js.map +1 -1
  33. package/lib/enhancement/dataName.mjs +5 -5
  34. package/lib/enhancement/dataName.mjs.map +1 -1
  35. package/lib/enhancement/enhance.js +6 -9
  36. package/lib/enhancement/enhance.js.map +1 -1
  37. package/lib/enhancement/enhance.mjs +5 -7
  38. package/lib/enhancement/enhance.mjs.map +1 -1
  39. package/lib/enhancement/functionDefaultProps.js +6 -6
  40. package/lib/enhancement/functionDefaultProps.js.map +1 -1
  41. package/lib/enhancement/functionDefaultProps.mjs +4 -4
  42. package/lib/enhancement/functionDefaultProps.mjs.map +1 -1
  43. package/lib/enhancement/i18n.js +13 -13
  44. package/lib/enhancement/i18n.js.map +1 -1
  45. package/lib/enhancement/i18n.mjs +10 -9
  46. package/lib/enhancement/i18n.mjs.map +1 -1
  47. package/lib/enhancement/inheritedName.js +7 -8
  48. package/lib/enhancement/inheritedName.js.map +1 -1
  49. package/lib/enhancement/inheritedName.mjs +5 -5
  50. package/lib/enhancement/inheritedName.mjs.map +1 -1
  51. package/lib/enhancement/staticChildren.js +47 -56
  52. package/lib/enhancement/staticChildren.js.map +1 -1
  53. package/lib/enhancement/staticChildren.mjs +43 -48
  54. package/lib/enhancement/staticChildren.mjs.map +1 -1
  55. package/lib/enhancement/style.js +29 -27
  56. package/lib/enhancement/style.js.map +1 -1
  57. package/lib/enhancement/style.mjs +26 -20
  58. package/lib/enhancement/style.mjs.map +1 -1
  59. package/lib/enhancement/uncontrolledProps.js +46 -64
  60. package/lib/enhancement/uncontrolledProps.js.map +1 -1
  61. package/lib/enhancement/uncontrolledProps.mjs +43 -51
  62. package/lib/enhancement/uncontrolledProps.mjs.map +1 -1
  63. package/lib/esm/LastInteractionType.mjs +19 -33
  64. package/lib/esm/core-types/Component.mjs +18 -34
  65. package/lib/esm/core-types/symbols.mjs +9 -9
  66. package/lib/esm/coreFactory.mjs +139 -194
  67. package/lib/esm/enhancement/Children.mjs +47 -41
  68. package/lib/esm/enhancement/Root.mjs +28 -18
  69. package/lib/esm/enhancement/dataName.mjs +5 -5
  70. package/lib/esm/enhancement/enhance.mjs +5 -7
  71. package/lib/esm/enhancement/functionDefaultProps.mjs +4 -4
  72. package/lib/esm/enhancement/i18n.mjs +10 -9
  73. package/lib/esm/enhancement/inheritedName.mjs +5 -5
  74. package/lib/esm/enhancement/staticChildren.mjs +43 -48
  75. package/lib/esm/enhancement/style.mjs +26 -20
  76. package/lib/esm/enhancement/uncontrolledProps.mjs +43 -51
  77. package/lib/esm/register.mjs +12 -20
  78. package/lib/esm/styled/reshadow-core.mjs +98 -111
  79. package/lib/esm/styled/sstyled.mjs +31 -41
  80. package/lib/esm/utils/assignProps.mjs +32 -36
  81. package/lib/esm/utils/enhances/WithI18n.mjs +16 -63
  82. package/lib/esm/utils/enhances/i18nEnhance.mjs +47 -61
  83. package/lib/esm/utils/logger.mjs +13 -21
  84. package/lib/esm/utils/pick.mjs +4 -4
  85. package/lib/esm/utils/ref.mjs +27 -57
  86. package/lib/esm/utils/use/useEnhancedEffect.mjs +1 -1
  87. package/lib/index.d.ts +3 -3
  88. package/lib/index.js +17 -17
  89. package/lib/index.js.map +1 -1
  90. package/lib/index.mjs.map +1 -1
  91. package/lib/register.js +17 -24
  92. package/lib/register.js.map +1 -1
  93. package/lib/register.mjs +12 -20
  94. package/lib/register.mjs.map +1 -1
  95. package/lib/styled/index.d.ts +1 -5
  96. package/lib/styled/index.js +4 -4
  97. package/lib/styled/index.js.map +1 -1
  98. package/lib/styled/index.mjs.map +1 -1
  99. package/lib/styled/reshadow-core.js +102 -104
  100. package/lib/styled/reshadow-core.js.map +1 -1
  101. package/lib/styled/reshadow-core.mjs +98 -111
  102. package/lib/styled/reshadow-core.mjs.map +1 -1
  103. package/lib/styled/sstyled.js +31 -53
  104. package/lib/styled/sstyled.js.map +1 -1
  105. package/lib/styled/sstyled.mjs +31 -41
  106. package/lib/styled/sstyled.mjs.map +1 -1
  107. package/lib/theme/processor.js +150 -222
  108. package/lib/theme/processor.js.map +1 -1
  109. package/lib/theme/processor.mjs +148 -221
  110. package/lib/theme/processor.mjs.map +1 -1
  111. package/lib/theme/themes/dark.js +2 -2
  112. package/lib/theme/themes/dark.js.map +1 -1
  113. package/lib/theme/themes/default.js +2 -2
  114. package/lib/theme/themes/default.js.map +1 -1
  115. package/lib/theme/themes/highlights-dark.js +2 -2
  116. package/lib/theme/themes/highlights-dark.js.map +1 -1
  117. package/lib/theme/themes/highlights-light.js +2 -2
  118. package/lib/theme/themes/highlights-light.js.map +1 -1
  119. package/lib/theme/themes/light.js +2 -2
  120. package/lib/theme/themes/light.js.map +1 -1
  121. package/lib/theme/utils.js +140 -215
  122. package/lib/theme/utils.js.map +1 -1
  123. package/lib/theme/utils.mjs +135 -214
  124. package/lib/theme/utils.mjs.map +1 -1
  125. package/lib/utils/CSSinJS.js +8 -10
  126. package/lib/utils/CSSinJS.js.map +1 -1
  127. package/lib/utils/CSSinJS.mjs +6 -7
  128. package/lib/utils/CSSinJS.mjs.map +1 -1
  129. package/lib/utils/ThemeProvider.js +44 -51
  130. package/lib/utils/ThemeProvider.js.map +1 -1
  131. package/lib/utils/ThemeProvider.mjs +36 -47
  132. package/lib/utils/ThemeProvider.mjs.map +1 -1
  133. package/lib/utils/addonText.js +4 -7
  134. package/lib/utils/addonText.js.map +1 -1
  135. package/lib/utils/addonText.mjs +2 -5
  136. package/lib/utils/addonText.mjs.map +1 -1
  137. package/lib/utils/addonTextChildren.js +15 -21
  138. package/lib/utils/addonTextChildren.js.map +1 -1
  139. package/lib/utils/addonTextChildren.mjs +7 -13
  140. package/lib/utils/addonTextChildren.mjs.map +1 -1
  141. package/lib/utils/ariaProps.js +7 -5
  142. package/lib/utils/ariaProps.js.map +1 -1
  143. package/lib/utils/ariaProps.mjs +7 -5
  144. package/lib/utils/ariaProps.mjs.map +1 -1
  145. package/lib/utils/assignProps.js +33 -37
  146. package/lib/utils/assignProps.js.map +1 -1
  147. package/lib/utils/assignProps.mjs +32 -36
  148. package/lib/utils/assignProps.mjs.map +1 -1
  149. package/lib/utils/canUseDOM.js +1 -1
  150. package/lib/utils/capitalizeFirstLetter.js +1 -1
  151. package/lib/utils/color.js +72 -95
  152. package/lib/utils/color.js.map +1 -1
  153. package/lib/utils/color.mjs +71 -94
  154. package/lib/utils/color.mjs.map +1 -1
  155. package/lib/utils/compose.js +3 -12
  156. package/lib/utils/compose.js.map +1 -1
  157. package/lib/utils/compose.mjs +2 -11
  158. package/lib/utils/compose.mjs.map +1 -1
  159. package/lib/utils/createUUID.js +5 -5
  160. package/lib/utils/createUUID.js.map +1 -1
  161. package/lib/utils/createUUID.mjs +4 -4
  162. package/lib/utils/createUUID.mjs.map +1 -1
  163. package/lib/utils/cssToIntDefault.js +3 -4
  164. package/lib/utils/cssToIntDefault.js.map +1 -1
  165. package/lib/utils/cssToIntDefault.mjs +2 -3
  166. package/lib/utils/cssToIntDefault.mjs.map +1 -1
  167. package/lib/utils/enhances/WithCSS.d.ts +2 -30
  168. package/lib/utils/enhances/WithCSS.js +13 -64
  169. package/lib/utils/enhances/WithCSS.js.map +1 -1
  170. package/lib/utils/enhances/WithCSS.mjs +9 -59
  171. package/lib/utils/enhances/WithCSS.mjs.map +1 -1
  172. package/lib/utils/enhances/WithI18n.d.ts +1 -30
  173. package/lib/utils/enhances/WithI18n.js +20 -76
  174. package/lib/utils/enhances/WithI18n.js.map +1 -1
  175. package/lib/utils/enhances/WithI18n.mjs +16 -63
  176. package/lib/utils/enhances/WithI18n.mjs.map +1 -1
  177. package/lib/utils/enhances/a11yEnhance.js +34 -39
  178. package/lib/utils/enhances/a11yEnhance.js.map +1 -1
  179. package/lib/utils/enhances/a11yEnhance.mjs +32 -36
  180. package/lib/utils/enhances/a11yEnhance.mjs.map +1 -1
  181. package/lib/utils/enhances/animatedSizeEnhance.d.ts +0 -4
  182. package/lib/utils/enhances/animatedSizeEnhance.js +55 -65
  183. package/lib/utils/enhances/animatedSizeEnhance.js.map +1 -1
  184. package/lib/utils/enhances/animatedSizeEnhance.mjs +50 -61
  185. package/lib/utils/enhances/animatedSizeEnhance.mjs.map +1 -1
  186. package/lib/utils/enhances/contextEnhance.js +12 -11
  187. package/lib/utils/enhances/contextEnhance.js.map +1 -1
  188. package/lib/utils/enhances/contextEnhance.mjs +9 -8
  189. package/lib/utils/enhances/contextEnhance.mjs.map +1 -1
  190. package/lib/utils/enhances/i18nEnhance.d.ts +0 -4
  191. package/lib/utils/enhances/i18nEnhance.js +51 -69
  192. package/lib/utils/enhances/i18nEnhance.js.map +1 -1
  193. package/lib/utils/enhances/i18nEnhance.mjs +47 -61
  194. package/lib/utils/enhances/i18nEnhance.mjs.map +1 -1
  195. package/lib/utils/enhances/resolveColorEnhance.js +12 -10
  196. package/lib/utils/enhances/resolveColorEnhance.js.map +1 -1
  197. package/lib/utils/enhances/resolveColorEnhance.mjs +8 -6
  198. package/lib/utils/enhances/resolveColorEnhance.mjs.map +1 -1
  199. package/lib/utils/eventEmitter.d.ts +10 -6
  200. package/lib/utils/eventEmitter.js +33 -32
  201. package/lib/utils/eventEmitter.js.map +1 -1
  202. package/lib/utils/eventEmitter.mjs +30 -31
  203. package/lib/utils/eventEmitter.mjs.map +1 -1
  204. package/lib/utils/findComponent.js +35 -42
  205. package/lib/utils/findComponent.js.map +1 -1
  206. package/lib/utils/findComponent.mjs +26 -33
  207. package/lib/utils/findComponent.mjs.map +1 -1
  208. package/lib/utils/fire.js +7 -13
  209. package/lib/utils/fire.js.map +1 -1
  210. package/lib/utils/fire.mjs +5 -11
  211. package/lib/utils/fire.mjs.map +1 -1
  212. package/lib/utils/focus-lock/focusBorders.js +28 -32
  213. package/lib/utils/focus-lock/focusBorders.js.map +1 -1
  214. package/lib/utils/focus-lock/focusBorders.mjs +26 -32
  215. package/lib/utils/focus-lock/focusBorders.mjs.map +1 -1
  216. package/lib/utils/focus-lock/getFocusableIn.js +4 -6
  217. package/lib/utils/focus-lock/getFocusableIn.js.map +1 -1
  218. package/lib/utils/focus-lock/getFocusableIn.mjs +3 -6
  219. package/lib/utils/focus-lock/getFocusableIn.mjs.map +1 -1
  220. package/lib/utils/focus-lock/isFocusInside.js +5 -6
  221. package/lib/utils/focus-lock/isFocusInside.js.map +1 -1
  222. package/lib/utils/focus-lock/isFocusInside.mjs +4 -6
  223. package/lib/utils/focus-lock/isFocusInside.mjs.map +1 -1
  224. package/lib/utils/focus-lock/isFocusable.js +9 -12
  225. package/lib/utils/focus-lock/isFocusable.js.map +1 -1
  226. package/lib/utils/focus-lock/isFocusable.mjs +8 -11
  227. package/lib/utils/focus-lock/isFocusable.mjs.map +1 -1
  228. package/lib/utils/focus-lock/setFocus.js +21 -27
  229. package/lib/utils/focus-lock/setFocus.js.map +1 -1
  230. package/lib/utils/focus-lock/setFocus.mjs +19 -25
  231. package/lib/utils/focus-lock/setFocus.mjs.map +1 -1
  232. package/lib/utils/getAccessibleName.js +10 -22
  233. package/lib/utils/getAccessibleName.js.map +1 -1
  234. package/lib/utils/getAccessibleName.mjs +10 -21
  235. package/lib/utils/getAccessibleName.mjs.map +1 -1
  236. package/lib/utils/getDisplayName.js +1 -1
  237. package/lib/utils/getDisplayName.mjs +3 -5
  238. package/lib/utils/getEventTarget.js +13 -32
  239. package/lib/utils/getEventTarget.js.map +1 -1
  240. package/lib/utils/getEventTarget.mjs +12 -31
  241. package/lib/utils/getEventTarget.mjs.map +1 -1
  242. package/lib/utils/getOriginChildren.js +4 -4
  243. package/lib/utils/getOriginChildren.js.map +1 -1
  244. package/lib/utils/getRandomInt.js +1 -1
  245. package/lib/utils/getValue.js +4 -6
  246. package/lib/utils/getValue.js.map +1 -1
  247. package/lib/utils/getValue.mjs +3 -5
  248. package/lib/utils/getValue.mjs.map +1 -1
  249. package/lib/utils/hasLabels.js +16 -27
  250. package/lib/utils/hasLabels.js.map +1 -1
  251. package/lib/utils/hasLabels.mjs +14 -24
  252. package/lib/utils/hasLabels.mjs.map +1 -1
  253. package/lib/utils/hasParent.js +3 -2
  254. package/lib/utils/hasParent.js.map +1 -1
  255. package/lib/utils/hasParent.mjs +2 -3
  256. package/lib/utils/hasParent.mjs.map +1 -1
  257. package/lib/utils/ifChildren.js +6 -4
  258. package/lib/utils/ifChildren.js.map +1 -1
  259. package/lib/utils/ifChildren.mjs +4 -2
  260. package/lib/utils/ifChildren.mjs.map +1 -1
  261. package/lib/utils/injectStyle.js +11 -13
  262. package/lib/utils/injectStyle.js.map +1 -1
  263. package/lib/utils/injectStyle.mjs +9 -10
  264. package/lib/utils/injectStyle.mjs.map +1 -1
  265. package/lib/utils/inputProps.js +5 -5
  266. package/lib/utils/inputProps.js.map +1 -1
  267. package/lib/utils/inputProps.mjs +4 -4
  268. package/lib/utils/inputProps.mjs.map +1 -1
  269. package/lib/utils/isInteractiveElement.js +7 -9
  270. package/lib/utils/isInteractiveElement.js.map +1 -1
  271. package/lib/utils/isInteractiveElement.mjs +7 -9
  272. package/lib/utils/isInteractiveElement.mjs.map +1 -1
  273. package/lib/utils/isNode.js +4 -5
  274. package/lib/utils/isNode.js.map +1 -1
  275. package/lib/utils/isNode.mjs +1 -2
  276. package/lib/utils/isNode.mjs.map +1 -1
  277. package/lib/utils/isPromise.js +1 -1
  278. package/lib/utils/isRetina.js +7 -2
  279. package/lib/utils/isRetina.js.map +1 -1
  280. package/lib/utils/isRetina.mjs +6 -1
  281. package/lib/utils/isRetina.mjs.map +1 -1
  282. package/lib/utils/logger.js +18 -25
  283. package/lib/utils/logger.js.map +1 -1
  284. package/lib/utils/logger.mjs +13 -21
  285. package/lib/utils/logger.mjs.map +1 -1
  286. package/lib/utils/numericChecker.js +11 -18
  287. package/lib/utils/numericChecker.js.map +1 -1
  288. package/lib/utils/numericChecker.mjs +10 -17
  289. package/lib/utils/numericChecker.mjs.map +1 -1
  290. package/lib/utils/ownerDocument.js +2 -2
  291. package/lib/utils/ownerDocument.js.map +1 -1
  292. package/lib/utils/ownerDocument.mjs +1 -1
  293. package/lib/utils/ownerDocument.mjs.map +1 -1
  294. package/lib/utils/pick.js +5 -5
  295. package/lib/utils/pick.js.map +1 -1
  296. package/lib/utils/pick.mjs +4 -4
  297. package/lib/utils/pick.mjs.map +1 -1
  298. package/lib/utils/propsForElement.js +10 -12
  299. package/lib/utils/propsForElement.js.map +1 -1
  300. package/lib/utils/propsForElement.mjs +8 -10
  301. package/lib/utils/propsForElement.mjs.map +1 -1
  302. package/lib/utils/rafTrottle.js +9 -14
  303. package/lib/utils/rafTrottle.js.map +1 -1
  304. package/lib/utils/rafTrottle.mjs +7 -12
  305. package/lib/utils/rafTrottle.mjs.map +1 -1
  306. package/lib/utils/reactToText.js +5 -8
  307. package/lib/utils/reactToText.js.map +1 -1
  308. package/lib/utils/reactToText.mjs +3 -6
  309. package/lib/utils/reactToText.mjs.map +1 -1
  310. package/lib/utils/ref.d.ts +1 -3
  311. package/lib/utils/ref.js +29 -61
  312. package/lib/utils/ref.js.map +1 -1
  313. package/lib/utils/ref.mjs +27 -57
  314. package/lib/utils/ref.mjs.map +1 -1
  315. package/lib/utils/setRef.js +2 -2
  316. package/lib/utils/setRef.js.map +1 -1
  317. package/lib/utils/syncScroll.js +24 -24
  318. package/lib/utils/syncScroll.js.map +1 -1
  319. package/lib/utils/syncScroll.mjs +21 -21
  320. package/lib/utils/syncScroll.mjs.map +1 -1
  321. package/lib/utils/uncontroll.js +8 -18
  322. package/lib/utils/uncontroll.js.map +1 -1
  323. package/lib/utils/uncontroll.mjs +8 -17
  324. package/lib/utils/uncontroll.mjs.map +1 -1
  325. package/lib/utils/uniqueID.d.ts +0 -4
  326. package/lib/utils/uniqueID.js +23 -30
  327. package/lib/utils/uniqueID.js.map +1 -1
  328. package/lib/utils/uniqueID.mjs +19 -29
  329. package/lib/utils/uniqueID.mjs.map +1 -1
  330. package/lib/utils/use/useColorResolver.js +20 -21
  331. package/lib/utils/use/useColorResolver.js.map +1 -1
  332. package/lib/utils/use/useColorResolver.mjs +16 -18
  333. package/lib/utils/use/useColorResolver.mjs.map +1 -1
  334. package/lib/utils/use/useEnhancedEffect.d.ts +1 -1
  335. package/lib/utils/use/useEnhancedEffect.js +4 -4
  336. package/lib/utils/use/useEnhancedEffect.js.map +1 -1
  337. package/lib/utils/use/useEnhancedEffect.mjs +1 -1
  338. package/lib/utils/use/useEnhancedEffect.mjs.map +1 -1
  339. package/lib/utils/use/useEventCallback.js +5 -10
  340. package/lib/utils/use/useEventCallback.js.map +1 -1
  341. package/lib/utils/use/useEventCallback.mjs +3 -8
  342. package/lib/utils/use/useEventCallback.mjs.map +1 -1
  343. package/lib/utils/use/useEventListener.js +11 -15
  344. package/lib/utils/use/useEventListener.js.map +1 -1
  345. package/lib/utils/use/useEventListener.mjs +7 -11
  346. package/lib/utils/use/useEventListener.mjs.map +1 -1
  347. package/lib/utils/use/useFocusLock.js +80 -94
  348. package/lib/utils/use/useFocusLock.js.map +1 -1
  349. package/lib/utils/use/useFocusLock.mjs +71 -88
  350. package/lib/utils/use/useFocusLock.mjs.map +1 -1
  351. package/lib/utils/use/usePreventScroll.js +26 -28
  352. package/lib/utils/use/usePreventScroll.js.map +1 -1
  353. package/lib/utils/use/usePreventScroll.mjs +21 -23
  354. package/lib/utils/use/usePreventScroll.mjs.map +1 -1
  355. package/lib/utils/use/useScrollBarWidth.js +8 -14
  356. package/lib/utils/use/useScrollBarWidth.js.map +1 -1
  357. package/lib/utils/use/useScrollBarWidth.mjs +8 -13
  358. package/lib/utils/use/useScrollBarWidth.mjs.map +1 -1
  359. package/lib/utils/useCssVariable.js +32 -37
  360. package/lib/utils/useCssVariable.js.map +1 -1
  361. package/lib/utils/useCssVariable.mjs +27 -34
  362. package/lib/utils/useCssVariable.mjs.map +1 -1
  363. package/lib/utils/zIndexStacking.d.ts +3 -1
  364. package/lib/utils/zIndexStacking.js +28 -24
  365. package/lib/utils/zIndexStacking.js.map +1 -1
  366. package/lib/utils/zIndexStacking.mjs +23 -22
  367. package/lib/utils/zIndexStacking.mjs.map +1 -1
  368. package/package.json +129 -129
  369. package/lib/enhancement/bindHandler.d.ts +0 -5
  370. package/lib/enhancement/bindHandler.js +0 -53
  371. package/lib/enhancement/bindHandler.js.map +0 -1
  372. package/lib/enhancement/bindHandler.mjs +0 -48
  373. package/lib/enhancement/bindHandler.mjs.map +0 -1
  374. package/lib/enhancement/hoistProps.d.ts +0 -10
  375. package/lib/enhancement/hoistProps.js +0 -95
  376. package/lib/enhancement/hoistProps.js.map +0 -1
  377. package/lib/enhancement/hoistProps.mjs +0 -78
  378. package/lib/enhancement/hoistProps.mjs.map +0 -1
  379. package/lib/esm/enhancement/bindHandler.mjs +0 -48
  380. package/lib/esm/enhancement/hoistProps.mjs +0 -78
  381. package/lib/esm/utils/createHoc.mjs +0 -42
  382. package/lib/esm/utils/getDisplayName.mjs +0 -6
  383. package/lib/utils/ScreenReaderOnly.d.ts +0 -8
  384. package/lib/utils/ScreenReaderOnly.js +0 -30
  385. package/lib/utils/ScreenReaderOnly.js.map +0 -1
  386. package/lib/utils/ScreenReaderOnly.mjs +0 -24
  387. package/lib/utils/ScreenReaderOnly.mjs.map +0 -1
  388. package/lib/utils/createHoc.d.ts +0 -3
  389. package/lib/utils/createHoc.js +0 -52
  390. package/lib/utils/createHoc.js.map +0 -1
  391. package/lib/utils/createHoc.mjs +0 -42
  392. package/lib/utils/createHoc.mjs.map +0 -1
  393. package/lib/utils/enhances/WithAutoFocus.d.ts +0 -14
  394. package/lib/utils/enhances/WithAutoFocus.js +0 -72
  395. package/lib/utils/enhances/WithAutoFocus.js.map +0 -1
  396. package/lib/utils/enhances/WithAutoFocus.mjs +0 -66
  397. package/lib/utils/enhances/WithAutoFocus.mjs.map +0 -1
  398. package/lib/utils/enhances/WithKeyboardFocus.d.ts +0 -46
  399. package/lib/utils/enhances/WithKeyboardFocus.js +0 -94
  400. package/lib/utils/enhances/WithKeyboardFocus.js.map +0 -1
  401. package/lib/utils/enhances/WithKeyboardFocus.mjs +0 -88
  402. package/lib/utils/enhances/WithKeyboardFocus.mjs.map +0 -1
  403. package/lib/utils/enhances/WithRef.d.ts +0 -3
  404. package/lib/utils/enhances/WithRef.js +0 -25
  405. package/lib/utils/enhances/WithRef.js.map +0 -1
  406. package/lib/utils/enhances/WithRef.mjs +0 -18
  407. package/lib/utils/enhances/WithRef.mjs.map +0 -1
  408. package/lib/utils/enhances/autoFocusEnhance.d.ts +0 -10
  409. package/lib/utils/enhances/autoFocusEnhance.js +0 -45
  410. package/lib/utils/enhances/autoFocusEnhance.js.map +0 -1
  411. package/lib/utils/enhances/autoFocusEnhance.mjs +0 -38
  412. package/lib/utils/enhances/autoFocusEnhance.mjs.map +0 -1
  413. package/lib/utils/enhances/keyboardFocusEnhance.d.ts +0 -27
  414. package/lib/utils/enhances/keyboardFocusEnhance.js +0 -63
  415. package/lib/utils/enhances/keyboardFocusEnhance.js.map +0 -1
  416. package/lib/utils/enhances/keyboardFocusEnhance.mjs +0 -57
  417. package/lib/utils/enhances/keyboardFocusEnhance.mjs.map +0 -1
  418. package/lib/utils/if.d.ts +0 -11
  419. package/lib/utils/if.js +0 -15
  420. package/lib/utils/if.js.map +0 -1
  421. package/lib/utils/if.mjs +0 -9
  422. package/lib/utils/if.mjs.map +0 -1
  423. package/lib/utils/use/useCss.d.ts +0 -4
  424. package/lib/utils/use/useCss.js +0 -19
  425. package/lib/utils/use/useCss.js.map +0 -1
  426. package/lib/utils/use/useCss.mjs +0 -12
  427. package/lib/utils/use/useCss.mjs.map +0 -1
@@ -1,325 +1,250 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.tokensToJson = exports.tokensToJs = exports.tokensToCss = exports.processTokens = void 0;
8
- var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
9
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
8
  var _colorjs = _interopRequireDefault(require("colorjs.io"));
14
- var Color = _colorjs["default"];
15
- var processTokens = exports.processTokens = function processTokens(base, tokens, featureHighlight, prefix) {
16
- var values = {};
17
- var basicTokens = new Set();
18
- var highlightTokens = new Set();
19
- var modifications = {};
20
- var types = {};
21
- var descriptions = {};
22
- var mixins = [];
23
- var _traverse = function traverse(node) {
24
- var pathParts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
25
- var setToAdd = arguments.length > 2 ? arguments[2] : undefined;
26
- for (var key in node) {
9
+ const Color = _colorjs.default;
10
+ const processTokens = (base, tokens, featureHighlight, prefix) => {
11
+ const values = {};
12
+ const basicTokens = new Set();
13
+ const highlightTokens = new Set();
14
+ const modifications = {};
15
+ const types = {};
16
+ const descriptions = {};
17
+ const mixins = [];
18
+ const traverse = (node, pathParts = [], setToAdd) => {
19
+ for (const key in node) {
27
20
  if (key === 'type') continue;
28
21
  if (key === 'value') continue;
29
22
  if (key === 'description') continue;
30
23
  if (key === '$extensions') continue;
31
- _traverse(node[key], [].concat((0, _toConsumableArray2["default"])(pathParts), [key]), setToAdd);
24
+ traverse(node[key], [...pathParts, key], setToAdd);
32
25
  }
33
26
  if ('type' in node && typeof node.type === 'string') {
34
- var path = pathParts.join('-');
27
+ const path = pathParts.join('-');
35
28
  types[path] = node.type;
36
- if ((0, _typeof2["default"])(node.value) === 'object') {
29
+ if (typeof node.value === 'object') {
37
30
  mixins.push(path);
38
31
  return;
39
32
  }
40
33
  if (values[path]) {
41
- throw new Error("Duplicated design token \"".concat(path, "\""));
34
+ throw new Error(`Duplicated design token "${path}"`);
42
35
  }
43
36
  values[path] = node.value;
44
- setToAdd === null || setToAdd === void 0 || setToAdd.add(path);
37
+ setToAdd?.add(path);
45
38
  if (typeof node.description === 'string') descriptions[path] = node.description;
46
39
  if (node.$extensions) {
47
- for (var extension in node.$extensions) {
40
+ for (const extension in node.$extensions) {
48
41
  if (extension === 'studio.tokens') {
49
- var _modifications$path;
50
- (_modifications$path = modifications[path]) !== null && _modifications$path !== void 0 ? _modifications$path : modifications[path] = [];
42
+ modifications[path] ??= [];
51
43
  modifications[path].push(node.$extensions['studio.tokens'].modify);
52
44
  } else {
53
- throw new Error("Unsupported extension \"".concat(extension, "\" for design token \"").concat(path, "\""));
45
+ throw new Error(`Unsupported extension "${extension}" for design token "${path}"`);
54
46
  }
55
47
  }
56
48
  }
57
49
  }
58
50
  };
59
- _traverse(base, [], basicTokens);
60
- _traverse(tokens);
61
- _traverse(featureHighlight, [], highlightTokens);
62
- var _resolveColor = function resolveColor(color) {
51
+ traverse(base, [], basicTokens);
52
+ traverse(tokens);
53
+ traverse(featureHighlight, [], highlightTokens);
54
+ const resolveColor = color => {
63
55
  if (color.includes('linear-gradient')) {
64
56
  if (color.includes('rgba')) {
65
57
  return replaceColors(color);
66
58
  } else {
67
- return color.replace(/\{[a-z0-9.]+\}/g, _resolveColor);
59
+ return color.replace(/\{[a-z0-9.]+\}/g, resolveColor);
68
60
  }
69
61
  }
70
62
  if (color.startsWith('rgba(') && color.endsWith(')')) {
71
- var lastComa = color.lastIndexOf(',');
72
- var alpha = Number.parseFloat(color.substring(lastComa + 1, color.length - 1));
63
+ const lastComa = color.lastIndexOf(',');
64
+ const alpha = Number.parseFloat(color.substring(lastComa + 1, color.length - 1));
73
65
  if (Number.isNaN(alpha)) {
74
- throw new Error("Unable to parse rgba of ".concat(color));
66
+ throw new Error(`Unable to parse rgba of ${color}`);
75
67
  }
76
- var resolvedColor = color.substring('rgba('.length, lastComa);
77
- if (resolvedColor.startsWith('{')) resolvedColor = _resolveColor(resolvedColor);
78
- if (resolvedColor.startsWith('$')) resolvedColor = _resolveColor(resolvedColor);
68
+ let resolvedColor = color.substring('rgba('.length, lastComa);
69
+ if (resolvedColor.startsWith('{')) resolvedColor = resolveColor(resolvedColor);
70
+ if (resolvedColor.startsWith('$')) resolvedColor = resolveColor(resolvedColor);
79
71
  if (resolvedColor.startsWith('#')) {
80
72
  if (resolvedColor.length === 1 + 3) {
81
- resolvedColor = [resolvedColor[1], resolvedColor[2], resolvedColor[3]].map(function (hex) {
82
- return Number.parseInt(hex, 16);
83
- }).join(', ');
73
+ resolvedColor = [resolvedColor[1], resolvedColor[2], resolvedColor[3]].map(hex => Number.parseInt(hex, 16)).join(', ');
84
74
  } else if (resolvedColor.length === 1 + 6) {
85
- resolvedColor = [resolvedColor.substring(1, 3), resolvedColor.substring(3, 5), resolvedColor.substring(5, 7)].map(function (hex) {
86
- return Number.parseInt(hex, 16);
87
- }).join(', ');
75
+ resolvedColor = [resolvedColor.substring(1, 3), resolvedColor.substring(3, 5), resolvedColor.substring(5, 7)].map(hex => Number.parseInt(hex, 16)).join(', ');
88
76
  } else {
89
- throw new Error("Unable to convert hex ".concat(_resolveColor, " to rgb list of colors (processing ").concat(color, ")"));
77
+ throw new Error(`Unable to convert hex ${resolveColor} to rgb list of colors (processing ${color})`);
90
78
  }
91
79
  }
92
80
  if (!resolvedColor || resolvedColor.split(',').length !== 3) {
93
- throw new Error("Unable to produce rgba of ".concat(color, " (input format is not supported yet)"));
81
+ throw new Error(`Unable to produce rgba of ${color} (input format is not supported yet)`);
94
82
  }
95
- return "rgba(".concat(resolvedColor, ", ").concat(alpha, ")");
83
+ return `rgba(${resolvedColor}, ${alpha})`;
96
84
  }
97
85
  if (color.split(', ').length === 2) {
98
- var baseColor = _resolveColor(color.split(', ')[0]);
99
- var _map = (baseColor.length === 4 ? [baseColor[1], baseColor[2], baseColor[3]] : [baseColor.substring(1, 3), baseColor.substring(3, 5), baseColor.substring(5, 7)]).map(function (chunk) {
100
- return Number.parseInt(chunk, 16);
101
- }),
102
- _map2 = (0, _slicedToArray2["default"])(_map, 3),
103
- r = _map2[0],
104
- g = _map2[1],
105
- b = _map2[2];
106
- var a = Number.parseFloat(color.split(', ')[1]);
107
- return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(a, ")");
86
+ const baseColor = resolveColor(color.split(', ')[0]);
87
+ const [r, g, b] = (baseColor.length === 4 ? [baseColor[1], baseColor[2], baseColor[3]] : [baseColor.substring(1, 3), baseColor.substring(3, 5), baseColor.substring(5, 7)]).map(chunk => Number.parseInt(chunk, 16));
88
+ const a = Number.parseFloat(color.split(', ')[1]);
89
+ return `rgba(${r}, ${g}, ${b}, ${a})`;
108
90
  }
109
91
  if (color.startsWith('{') && color.split('.').length > 0 && color.endsWith('}')) {
110
- var _getByPath$value, _getByPath;
111
- var path = color.substring(1, color.length - 1);
112
- var _resolvedColor = (_getByPath$value = (_getByPath = getByPath(base, path)) === null || _getByPath === void 0 ? void 0 : _getByPath.value) !== null && _getByPath$value !== void 0 ? _getByPath$value : values[path.split('.').join('-')];
113
- if (!_resolvedColor) {
114
- throw new Error("Color ".concat(color, " was not found in base palette"));
92
+ const path = color.substring(1, color.length - 1);
93
+ const resolvedColor = getByPath(base, path)?.value ?? values[path.split('.').join('-')];
94
+ if (!resolvedColor) {
95
+ throw new Error(`Color ${color} was not found in base palette`);
115
96
  }
116
- return _resolvedColor;
97
+ return resolvedColor;
117
98
  }
118
99
  if (color.startsWith('$') && color.split('.').length > 0) {
119
- var _getByPath$value2, _getByPath2;
120
- var _path = color.substring(1);
121
- var _resolvedColor2 = (_getByPath$value2 = (_getByPath2 = getByPath(base, _path)) === null || _getByPath2 === void 0 ? void 0 : _getByPath2.value) !== null && _getByPath$value2 !== void 0 ? _getByPath$value2 : values[_path.split('.').join('-')];
122
- if (!_resolvedColor2) {
123
- throw new Error("Color ".concat(color, " was not found"));
100
+ const path = color.substring(1);
101
+ const resolvedColor = getByPath(base, path)?.value ?? values[path.split('.').join('-')];
102
+ if (!resolvedColor) {
103
+ throw new Error(`Color ${color} was not found`);
124
104
  }
125
- return _resolvedColor2;
105
+ return resolvedColor;
126
106
  }
127
107
  if (color.startsWith('#')) {
128
108
  return color;
129
109
  }
130
- throw new Error("Unable to process color ".concat(color));
110
+ throw new Error(`Unable to process color ${color}`);
131
111
  };
132
- var _resolveToken = function resolveToken(token) {
112
+ const resolveToken = token => {
133
113
  if (token.includes('*')) {
134
- var _token$split = token.split('*'),
135
- _token$split2 = (0, _slicedToArray2["default"])(_token$split, 2),
136
- value = _token$split2[0],
137
- factor = _token$split2[1];
138
- var resolvedValue = _resolveToken(value);
114
+ const [value, factor] = token.split('*');
115
+ const resolvedValue = resolveToken(value);
139
116
  if (!resolvedValue.endsWith('px')) {
140
- throw new Error("Unsupported expression ".concat(token));
117
+ throw new Error(`Unsupported expression ${token}`);
141
118
  }
142
- return "".concat(Number.parseFloat(resolvedValue) * Number.parseFloat(factor), "px");
119
+ return `${Number.parseFloat(resolvedValue) * Number.parseFloat(factor)}px`;
143
120
  } else if (token.includes('{') && token.includes('}')) {
144
- var reference = token.substring(token.indexOf('{') + 1, token.indexOf('}')).replace(/\./g, '-');
145
- var resolvedToken = token.substring(0, token.indexOf('{')) + values[reference] + token.substring(token.indexOf('}') + 1);
121
+ const reference = token.substring(token.indexOf('{') + 1, token.indexOf('}')).replace(/\./g, '-');
122
+ const resolvedToken = token.substring(0, token.indexOf('{')) + values[reference] + token.substring(token.indexOf('}') + 1);
146
123
  if (!resolvedToken || resolvedToken.includes('{')) {
147
- throw new Error("On moment of resolving ".concat(token, ", ").concat(resolvedToken, " was not resolved yet"));
124
+ throw new Error(`On moment of resolving ${token}, ${resolvedToken} was not resolved yet`);
148
125
  }
149
126
  return resolvedToken;
150
127
  } else {
151
128
  return token;
152
129
  }
153
130
  };
154
- var replaceColors = function replaceColors(str) {
155
- var result = '';
156
- for (var i = 0; i < str.length; i++) {
131
+ const replaceColors = str => {
132
+ let result = '';
133
+ for (let i = 0; i < str.length; i++) {
157
134
  if (str.substring(i, i + 'rgba('.length) === 'rgba(') {
158
- var start = i;
135
+ const start = i;
159
136
  while (str[i] !== undefined && str[i] !== ')') i++;
160
- result += _resolveColor(str.substring(start, i + 1));
137
+ result += resolveColor(str.substring(start, i + 1));
161
138
  } else {
162
139
  result += str[i];
163
140
  }
164
141
  }
165
142
  return result;
166
143
  };
167
- var rawValues = (0, _objectSpread2["default"])({}, values);
168
- for (var token in values) {
169
- var _modifications$token;
144
+ const rawValues = {
145
+ ...values
146
+ };
147
+ for (const token in values) {
170
148
  if (types[token] === 'color') {
171
- values[token] = _resolveColor(values[token]);
149
+ values[token] = resolveColor(values[token]);
172
150
  } else if (types[token] === 'boxShadow') {
173
- values[token] = _resolveToken(values[token].split('; ').map(replaceColors).join(', '));
151
+ values[token] = resolveToken(values[token].split('; ').map(replaceColors).join(', '));
174
152
  } else if (types[token] === 'sizing' || types[token] === 'spacing' || types[token] === 'borderRadius' || types[token] === 'other') {
175
- values[token] = _resolveToken(values[token]);
153
+ values[token] = resolveToken(values[token]);
176
154
  }
177
- var _iterator = (0, _createForOfIteratorHelper2["default"])((_modifications$token = modifications[token]) !== null && _modifications$token !== void 0 ? _modifications$token : []),
178
- _step;
179
- try {
180
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
181
- var _values$token$match;
182
- var modification = _step.value;
183
- // refer to https://docs.tokens.studio/tokens/color-modifiers and https://github.com/tokens-studio/figma-plugin/tree/main/src/utils/color if extension is needed
155
+ for (const modification of modifications[token] ?? []) {
156
+ // refer to https://docs.tokens.studio/tokens/color-modifiers and https://github.com/tokens-studio/figma-plugin/tree/main/src/utils/color if extension is needed
184
157
 
185
- rawValues[token] = "".concat(rawValues[token], " / ").concat(modification.type, "(").concat(modification.value, ") / ").concat(modification.space);
158
+ rawValues[token] = `${rawValues[token]} / ${modification.type}(${modification.value}) / ${modification.space}`;
186
159
 
187
- // array + regex to process gradients with several colors
188
- var colorRegex = /(#[0-9a-f]{6}|rgba\([0-9., ]+\))/gi;
189
- var colors = (_values$token$match = values[token].match(colorRegex)) !== null && _values$token$match !== void 0 ? _values$token$match : [];
190
- var _iterator2 = (0, _createForOfIteratorHelper2["default"])(colors),
191
- _step2;
192
- try {
193
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
194
- var originalColor = _step2.value;
195
- var color = new Color(originalColor);
196
- if (modification.space === 'hsl') {
197
- if (modification.type === 'lighten') {
198
- var lightness = color.hsl.l;
199
- var difference = 100 - lightness;
200
- color.set('hsl.l', Math.min(100, lightness + difference * modification.value));
201
- } else {
202
- throw new Error("Unsupported color modification ".concat(modification.type, " of token ").concat(token));
203
- }
204
- } else {
205
- throw new Error("Unsupported color space ".concat(modification.space, " of token ").concat(token));
206
- }
207
- color = color.to('sRGB');
208
- var modifiedColor = '';
209
- if (color.alpha !== 1) {
210
- var r = Math.round(color.r * 255);
211
- var g = Math.round(color.g * 255);
212
- var b = Math.round(color.b * 255);
213
- var a = color.alpha;
214
- modifiedColor = "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(a, ")");
215
- } else {
216
- modifiedColor = color.toString({
217
- format: 'hex'
218
- });
219
- }
220
- values[token] = values[token].replace(originalColor, modifiedColor);
160
+ // array + regex to process gradients with several colors
161
+ const colorRegex = /(#[0-9a-f]{6}|rgba\([0-9., ]+\))/gi;
162
+ const colors = values[token].match(colorRegex) ?? [];
163
+ for (const originalColor of colors) {
164
+ let color = new Color(originalColor);
165
+ if (modification.space === 'hsl') {
166
+ if (modification.type === 'lighten') {
167
+ const lightness = color.hsl.l;
168
+ const difference = 100 - lightness;
169
+ color.set('hsl.l', Math.min(100, lightness + difference * modification.value));
170
+ } else {
171
+ throw new Error(`Unsupported color modification ${modification.type} of token ${token}`);
221
172
  }
222
- } catch (err) {
223
- _iterator2.e(err);
224
- } finally {
225
- _iterator2.f();
173
+ } else {
174
+ throw new Error(`Unsupported color space ${modification.space} of token ${token}`);
175
+ }
176
+ color = color.to('sRGB');
177
+ let modifiedColor = '';
178
+ if (color.alpha !== 1) {
179
+ const r = Math.round(color.r * 255);
180
+ const g = Math.round(color.g * 255);
181
+ const b = Math.round(color.b * 255);
182
+ const a = color.alpha;
183
+ modifiedColor = `rgba(${r}, ${g}, ${b}, ${a})`;
184
+ } else {
185
+ modifiedColor = color.toString({
186
+ format: 'hex'
187
+ });
226
188
  }
189
+ values[token] = values[token].replace(originalColor, modifiedColor);
227
190
  }
228
- } catch (err) {
229
- _iterator.e(err);
230
- } finally {
231
- _iterator.f();
232
191
  }
233
192
  }
234
- var processedTokens = [];
235
- var highlightsTokens = [];
236
- for (var _token in values) {
237
- var isBase = basicTokens.has(_token);
238
- (highlightTokens.has(_token) ? highlightsTokens : processedTokens).push({
239
- name: isBase ? "--".concat(_token) : "--".concat(prefix, "-").concat(_token),
240
- description: descriptions[_token],
241
- value: values[_token]
193
+ const processedTokens = [];
194
+ const highlightsTokens = [];
195
+ for (const token in values) {
196
+ const isBase = basicTokens.has(token);
197
+ (highlightTokens.has(token) ? highlightsTokens : processedTokens).push({
198
+ name: isBase ? `--${token}` : `--${prefix}-${token}`,
199
+ description: descriptions[token],
200
+ value: values[token]
242
201
  });
243
202
  }
244
203
  return {
245
- processedTokens: processedTokens,
246
- highlightsTokens: highlightsTokens,
247
- values: values,
248
- types: types,
249
- rawValues: rawValues,
250
- descriptions: descriptions,
251
- basicTokens: basicTokens
204
+ processedTokens,
205
+ highlightsTokens,
206
+ values,
207
+ types,
208
+ rawValues,
209
+ descriptions,
210
+ basicTokens
252
211
  };
253
212
  };
254
- var tokensToCss = exports.tokensToCss = function tokensToCss(tokens) {
255
- var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ':root';
256
- var cssLines = [];
257
- cssLines.push("".concat(selector, " {"));
258
- var _iterator3 = (0, _createForOfIteratorHelper2["default"])(tokens),
259
- _step3;
260
- try {
261
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
262
- var token = _step3.value;
263
- if (token.description) cssLines.push(" /* ".concat(token.description, " */"));
264
- cssLines.push(" ".concat(token.name, ": ").concat(token.value, ";"));
265
- }
266
- } catch (err) {
267
- _iterator3.e(err);
268
- } finally {
269
- _iterator3.f();
213
+ exports.processTokens = processTokens;
214
+ const tokensToCss = (tokens, selector = ':root') => {
215
+ const cssLines = [];
216
+ cssLines.push(`${selector} {`);
217
+ for (const token of tokens) {
218
+ if (token.description) cssLines.push(` /* ${token.description} */`);
219
+ cssLines.push(` ${token.name}: ${token.value};`);
270
220
  }
271
221
  cssLines.push('}');
272
222
  return cssLines.join('\n');
273
223
  };
274
- var tokensToJson = exports.tokensToJson = function tokensToJson(tokens) {
275
- var themeFile = {};
276
- var _iterator4 = (0, _createForOfIteratorHelper2["default"])(tokens),
277
- _step4;
278
- try {
279
- for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
280
- var token = _step4.value;
281
- themeFile[token.name] = token.value;
282
- }
283
- } catch (err) {
284
- _iterator4.e(err);
285
- } finally {
286
- _iterator4.f();
224
+ exports.tokensToCss = tokensToCss;
225
+ const tokensToJson = tokens => {
226
+ const themeFile = {};
227
+ for (const token of tokens) {
228
+ themeFile[token.name] = token.value;
287
229
  }
288
230
  return JSON.stringify(themeFile, null, 2) + '\n';
289
231
  };
290
- var tokensToJs = exports.tokensToJs = function tokensToJs(tokens) {
291
- var jsLines = [];
232
+ exports.tokensToJson = tokensToJson;
233
+ const tokensToJs = tokens => {
234
+ const jsLines = [];
292
235
  jsLines.push('export default {');
293
- var _iterator5 = (0, _createForOfIteratorHelper2["default"])(tokens),
294
- _step5;
295
- try {
296
- for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
297
- var token = _step5.value;
298
- jsLines.push(" '".concat(token.name, "': '").concat(token.value, "',"));
299
- }
300
- } catch (err) {
301
- _iterator5.e(err);
302
- } finally {
303
- _iterator5.f();
236
+ for (const token of tokens) {
237
+ jsLines.push(` '${token.name}': '${token.value}',`);
304
238
  }
305
239
  jsLines.push('};\n');
306
240
  return jsLines.join('\n');
307
241
  };
308
- var getByPath = function getByPath(obj, path) {
309
- var parts = path.split('.');
310
- var result = obj;
311
- var _iterator6 = (0, _createForOfIteratorHelper2["default"])(parts),
312
- _step6;
313
- try {
314
- for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
315
- var _result;
316
- var part = _step6.value;
317
- result = (_result = result) === null || _result === void 0 ? void 0 : _result[part];
318
- }
319
- } catch (err) {
320
- _iterator6.e(err);
321
- } finally {
322
- _iterator6.f();
242
+ exports.tokensToJs = tokensToJs;
243
+ const getByPath = (obj, path) => {
244
+ const parts = path.split('.');
245
+ let result = obj;
246
+ for (const part of parts) {
247
+ result = result?.[part];
323
248
  }
324
249
  return result;
325
250
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","names":["_colorjs","_interopRequireDefault","require","Color","ColorJS","processTokens","exports","base","tokens","featureHighlight","prefix","values","basicTokens","Set","highlightTokens","modifications","types","descriptions","mixins","traverse","node","pathParts","arguments","length","undefined","setToAdd","key","concat","_toConsumableArray2","type","path","join","_typeof2","value","push","Error","add","description","$extensions","extension","_modifications$path","modify","resolveColor","color","includes","replaceColors","replace","startsWith","endsWith","lastComa","lastIndexOf","alpha","Number","parseFloat","substring","isNaN","resolvedColor","map","hex","parseInt","split","baseColor","_map","chunk","_map2","_slicedToArray2","r","g","b","a","_getByPath$value","_getByPath","getByPath","_getByPath$value2","_getByPath2","resolveToken","token","_token$split","_token$split2","factor","resolvedValue","reference","indexOf","resolvedToken","str","result","i","start","rawValues","_objectSpread2","_modifications$token","_iterator","_createForOfIteratorHelper2","_step","s","n","done","_values$token$match","modification","space","colorRegex","colors","match","_iterator2","_step2","originalColor","lightness","hsl","l","difference","set","Math","min","to","modifiedColor","round","toString","format","err","e","f","processedTokens","highlightsTokens","isBase","has","name","tokensToCss","selector","cssLines","_iterator3","_step3","tokensToJson","themeFile","_iterator4","_step4","JSON","stringify","tokensToJs","jsLines","_iterator5","_step5","obj","parts","_iterator6","_step6","_result","part"],"sources":["../../src/theme/utils.ts"],"sourcesContent":["import ColorJS from 'colorjs.io';\nconst Color = ColorJS as any;\n\ntype ExtensionsInput = {\n 'studio.tokens': {\n modify: {\n type: string;\n value: number;\n space: string;\n };\n };\n};\n\ntype TokensInput = {\n [nestedKey: string]:\n | TokensInput\n | {\n value: string;\n type: string;\n description: string;\n $extensions?: ExtensionsInput;\n };\n};\n\nexport const processTokens = (base: TokensInput, tokens: TokensInput, featureHighlight: TokensInput, prefix: string) => {\n const values: { [tokenName: string]: string } = {};\n const basicTokens = new Set<string>();\n const highlightTokens = new Set<string>();\n const modifications: {\n [tokenName: string]: {\n type: 'lighten' | 'darken' | 'alpha';\n value: number;\n space: 'lch' | 'srgb' | 'p3' | 'hsl';\n }[];\n } = {};\n const types: { [tokenName: string]: string } = {};\n const descriptions: { [tokenName: string]: string } = {};\n const mixins: string[] = [];\n type ColorPattern =\n | `{${string}.${string}}`\n | `{${string}.${string}}, ${number}`\n | `#${string}`\n | `{${string}.${string}}, ${number}`;\n type DesignTokenNode =\n | {\n type: string;\n value:\n | string\n | { [subTokens: string]: `{${string}}` }\n | ColorPattern\n | `{${string}}`\n | `{${string}*${number}}`\n | `${ColorPattern}; ${ColorPattern}`;\n\n description?: string;\n $extensions?: ExtensionsInput;\n }\n | DesignTokenTree;\n type DesignTokenTree = { [childrenNodeName: string]: DesignTokenNode };\n const traverse = (node: DesignTokenNode, pathParts: string[] = [], setToAdd?: Set<string>) => {\n for (const key in node) {\n if (key === 'type') continue;\n if (key === 'value') continue;\n if (key === 'description') continue;\n if (key === '$extensions') continue;\n traverse((node as any)[key], [...pathParts, key], setToAdd);\n }\n if ('type' in node && typeof node.type === 'string') {\n const path = pathParts.join('-');\n types[path] = node.type;\n if (typeof node.value === 'object') {\n mixins.push(path);\n return;\n }\n if (values[path]) {\n throw new Error(`Duplicated design token \"${path}\"`);\n }\n values[path] = node.value;\n setToAdd?.add(path);\n\n if (typeof node.description === 'string') descriptions[path] = node.description;\n if (node.$extensions) {\n for (const extension in node.$extensions) {\n if (extension === 'studio.tokens') {\n modifications[path] ??= [];\n modifications[path].push((node.$extensions as any)['studio.tokens'].modify);\n } else {\n throw new Error(`Unsupported extension \"${extension}\" for design token \"${path}\"`);\n }\n }\n }\n }\n };\n\n traverse(base, [], basicTokens);\n traverse(tokens);\n traverse(featureHighlight, [], highlightTokens);\n\n const resolveColor = (color: string): string => {\n if (color.includes('linear-gradient')) {\n if (color.includes('rgba')) {\n return replaceColors(color);\n } else {\n return color.replace(/\\{[a-z0-9.]+\\}/g, resolveColor);\n }\n }\n if (color.startsWith('rgba(') && color.endsWith(')')) {\n const lastComa = color.lastIndexOf(',');\n const alpha = Number.parseFloat(color.substring(lastComa + 1, color.length - 1));\n if (Number.isNaN(alpha)) {\n throw new Error(`Unable to parse rgba of ${color}`);\n }\n let resolvedColor = color.substring('rgba('.length, lastComa);\n if (resolvedColor.startsWith('{')) resolvedColor = resolveColor(resolvedColor);\n if (resolvedColor.startsWith('$')) resolvedColor = resolveColor(resolvedColor);\n if (resolvedColor.startsWith('#')) {\n if (resolvedColor.length === 1 + 3) {\n resolvedColor = [resolvedColor[1], resolvedColor[2], resolvedColor[3]]\n .map((hex) => Number.parseInt(hex, 16))\n .join(', ');\n } else if (resolvedColor.length === 1 + 6) {\n resolvedColor = [\n resolvedColor.substring(1, 3),\n resolvedColor.substring(3, 5),\n resolvedColor.substring(5, 7),\n ]\n .map((hex) => Number.parseInt(hex, 16))\n .join(', ');\n } else {\n throw new Error(\n `Unable to convert hex ${resolveColor} to rgb list of colors (processing ${color})`,\n );\n }\n }\n\n if (!resolvedColor || resolvedColor.split(',').length !== 3) {\n throw new Error(`Unable to produce rgba of ${color} (input format is not supported yet)`);\n }\n\n return `rgba(${resolvedColor}, ${alpha})`;\n }\n if (color.split(', ').length === 2) {\n const baseColor = resolveColor(color.split(', ')[0]);\n const [r, g, b] = (\n baseColor.length === 4\n ? [baseColor[1], baseColor[2], baseColor[3]]\n : [baseColor.substring(1, 3), baseColor.substring(3, 5), baseColor.substring(5, 7)]\n ).map((chunk) => Number.parseInt(chunk, 16));\n const a = Number.parseFloat(color.split(', ')[1]);\n\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n }\n if (color.startsWith('{') && color.split('.').length > 0 && color.endsWith('}')) {\n const path = color.substring(1, color.length - 1);\n const resolvedColor =\n getByPath(base as any, path)?.value ?? values[path.split('.').join('-')];\n if (!resolvedColor) {\n throw new Error(`Color ${color} was not found in base palette`);\n }\n return resolvedColor;\n }\n if (color.startsWith('$') && color.split('.').length > 0) {\n const path = color.substring(1);\n const resolvedColor =\n getByPath(base as any, path)?.value ?? values[path.split('.').join('-')];\n if (!resolvedColor) {\n throw new Error(`Color ${color} was not found`);\n }\n return resolvedColor;\n }\n if (color.startsWith('#')) {\n return color;\n }\n throw new Error(`Unable to process color ${color}`);\n };\n const resolveToken = (token: string): string => {\n if (token.includes('*')) {\n const [value, factor] = token.split('*');\n const resolvedValue = resolveToken(value);\n if (!resolvedValue.endsWith('px')) {\n throw new Error(`Unsupported expression ${token}`);\n }\n return `${Number.parseFloat(resolvedValue) * Number.parseFloat(factor)}px`;\n } else if (token.includes('{') && token.includes('}')) {\n const reference = token\n .substring(token.indexOf('{') + 1, token.indexOf('}'))\n .replace(/\\./g, '-');\n const resolvedToken =\n token.substring(0, token.indexOf('{')) +\n values[reference] +\n token.substring(token.indexOf('}') + 1);\n if (!resolvedToken || resolvedToken.includes('{')) {\n throw new Error(`On moment of resolving ${token}, ${resolvedToken} was not resolved yet`);\n }\n return resolvedToken;\n } else {\n return token;\n }\n };\n const replaceColors = (str: string) => {\n let result = '';\n for (let i = 0; i < str.length; i++) {\n if (str.substring(i, i + 'rgba('.length) === 'rgba(') {\n const start = i;\n while (str[i] !== undefined && str[i] !== ')') i++;\n result += resolveColor(str.substring(start, i + 1));\n } else {\n result += str[i];\n }\n }\n\n return result;\n };\n\n const rawValues = { ...values };\n\n for (const token in values) {\n if (types[token] === 'color') {\n values[token] = resolveColor(values[token]);\n } else if (types[token] === 'boxShadow') {\n values[token] = resolveToken(values[token].split('; ').map(replaceColors).join(', '));\n } else if (\n types[token] === 'sizing' ||\n types[token] === 'spacing' ||\n types[token] === 'borderRadius' ||\n types[token] === 'other'\n ) {\n values[token] = resolveToken(values[token]);\n }\n for (const modification of modifications[token] ?? []) {\n // refer to https://docs.tokens.studio/tokens/color-modifiers and https://github.com/tokens-studio/figma-plugin/tree/main/src/utils/color if extension is needed\n\n rawValues[token] = `${rawValues[token]} / ${modification.type}(${modification.value}) / ${modification.space}`;\n\n // array + regex to process gradients with several colors\n const colorRegex = /(#[0-9a-f]{6}|rgba\\([0-9., ]+\\))/gi;\n const colors = values[token].match(colorRegex) ?? [];\n\n for (const originalColor of colors) {\n let color = new Color(originalColor);\n\n if (modification.space === 'hsl') {\n if (modification.type === 'lighten') {\n const lightness = color.hsl.l;\n const difference = 100 - lightness;\n color.set('hsl.l', Math.min(100, lightness + difference * modification.value));\n } else {\n throw new Error(`Unsupported color modification ${modification.type} of token ${token}`);\n }\n } else {\n throw new Error(`Unsupported color space ${modification.space} of token ${token}`);\n }\n\n color = color.to('sRGB');\n let modifiedColor = '';\n\n if (color.alpha !== 1) {\n const r = Math.round(color.r * 255);\n const g = Math.round(color.g * 255);\n const b = Math.round(color.b * 255);\n const a = color.alpha;\n modifiedColor = `rgba(${r}, ${g}, ${b}, ${a})`;\n } else {\n modifiedColor = color.toString({ format: 'hex' });\n }\n\n values[token] = values[token].replace(originalColor, modifiedColor);\n }\n }\n }\n\n const processedTokens: { name: string; value: string; description: string }[] = [];\n const highlightsTokens: { name: string; value: string; description: string }[] = [];\n\n for (const token in values) {\n const isBase = basicTokens.has(token);\n (highlightTokens.has(token) ? highlightsTokens : processedTokens).push({\n name: isBase ? `--${token}` : `--${prefix}-${token}`,\n description: descriptions[token],\n value: values[token],\n });\n }\n\n return { processedTokens, highlightsTokens, values, types, rawValues, descriptions, basicTokens };\n};\n\nexport const tokensToCss = (\n tokens: { name: string; value: string; description: string }[],\n selector = ':root',\n) => {\n const cssLines: string[] = [];\n cssLines.push(`${selector} {`);\n for (const token of tokens) {\n if (token.description) cssLines.push(` /* ${token.description} */`);\n cssLines.push(` ${token.name}: ${token.value};`);\n }\n cssLines.push('}');\n return cssLines.join('\\n');\n};\nexport const tokensToJson = (tokens: { name: string; value: string; description: string }[]) => {\n const themeFile: Record<string, string> = {};\n for (const token of tokens) {\n themeFile[token.name] = token.value;\n }\n return JSON.stringify(themeFile, null, 2) + '\\n';\n};\nexport const tokensToJs = (tokens: { name: string; value: string; description: string }[]) => {\n const jsLines: string[] = [];\n jsLines.push('export default {');\n for (const token of tokens) {\n jsLines.push(` '${token.name}': '${token.value}',`);\n }\n jsLines.push('};\\n');\n return jsLines.join('\\n');\n};\n\nconst getByPath = (obj: any, path: string) => {\n const parts = path.split('.');\n let result = obj;\n for (const part of parts) {\n result = result?.[part];\n }\n return result;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"utils.js","names":["_colorjs","_interopRequireDefault","require","Color","ColorJS","processTokens","base","tokens","featureHighlight","prefix","values","basicTokens","Set","highlightTokens","modifications","types","descriptions","mixins","traverse","node","pathParts","setToAdd","key","type","path","join","value","push","Error","add","description","$extensions","extension","modify","resolveColor","color","includes","replaceColors","replace","startsWith","endsWith","lastComa","lastIndexOf","alpha","Number","parseFloat","substring","length","isNaN","resolvedColor","map","hex","parseInt","split","baseColor","r","g","b","chunk","a","getByPath","resolveToken","token","factor","resolvedValue","reference","indexOf","resolvedToken","str","result","i","start","undefined","rawValues","modification","space","colorRegex","colors","match","originalColor","lightness","hsl","l","difference","set","Math","min","to","modifiedColor","round","toString","format","processedTokens","highlightsTokens","isBase","has","name","exports","tokensToCss","selector","cssLines","tokensToJson","themeFile","JSON","stringify","tokensToJs","jsLines","obj","parts","part"],"sources":["../../src/theme/utils.ts"],"sourcesContent":["import ColorJS from 'colorjs.io';\nconst Color = ColorJS as any;\n\ntype ExtensionsInput = {\n 'studio.tokens': {\n modify: {\n type: string;\n value: number;\n space: string;\n };\n };\n};\n\ntype TokensInput = {\n [nestedKey: string]:\n | TokensInput\n | {\n value: string;\n type: string;\n description: string;\n $extensions?: ExtensionsInput;\n };\n};\n\nexport const processTokens = (base: TokensInput, tokens: TokensInput, featureHighlight: TokensInput, prefix: string) => {\n const values: { [tokenName: string]: string } = {};\n const basicTokens = new Set<string>();\n const highlightTokens = new Set<string>();\n const modifications: {\n [tokenName: string]: {\n type: 'lighten' | 'darken' | 'alpha';\n value: number;\n space: 'lch' | 'srgb' | 'p3' | 'hsl';\n }[];\n } = {};\n const types: { [tokenName: string]: string } = {};\n const descriptions: { [tokenName: string]: string } = {};\n const mixins: string[] = [];\n type ColorPattern =\n | `{${string}.${string}}`\n | `{${string}.${string}}, ${number}`\n | `#${string}`\n | `{${string}.${string}}, ${number}`;\n type DesignTokenNode =\n | {\n type: string;\n value:\n | string\n | { [subTokens: string]: `{${string}}` }\n | ColorPattern\n | `{${string}}`\n | `{${string}*${number}}`\n | `${ColorPattern}; ${ColorPattern}`;\n\n description?: string;\n $extensions?: ExtensionsInput;\n }\n | DesignTokenTree;\n type DesignTokenTree = { [childrenNodeName: string]: DesignTokenNode };\n const traverse = (node: DesignTokenNode, pathParts: string[] = [], setToAdd?: Set<string>) => {\n for (const key in node) {\n if (key === 'type') continue;\n if (key === 'value') continue;\n if (key === 'description') continue;\n if (key === '$extensions') continue;\n traverse((node as any)[key], [...pathParts, key], setToAdd);\n }\n if ('type' in node && typeof node.type === 'string') {\n const path = pathParts.join('-');\n types[path] = node.type;\n if (typeof node.value === 'object') {\n mixins.push(path);\n return;\n }\n if (values[path]) {\n throw new Error(`Duplicated design token \"${path}\"`);\n }\n values[path] = node.value;\n setToAdd?.add(path);\n\n if (typeof node.description === 'string') descriptions[path] = node.description;\n if (node.$extensions) {\n for (const extension in node.$extensions) {\n if (extension === 'studio.tokens') {\n modifications[path] ??= [];\n modifications[path].push((node.$extensions as any)['studio.tokens'].modify);\n } else {\n throw new Error(`Unsupported extension \"${extension}\" for design token \"${path}\"`);\n }\n }\n }\n }\n };\n\n traverse(base, [], basicTokens);\n traverse(tokens);\n traverse(featureHighlight, [], highlightTokens);\n\n const resolveColor = (color: string): string => {\n if (color.includes('linear-gradient')) {\n if (color.includes('rgba')) {\n return replaceColors(color);\n } else {\n return color.replace(/\\{[a-z0-9.]+\\}/g, resolveColor);\n }\n }\n if (color.startsWith('rgba(') && color.endsWith(')')) {\n const lastComa = color.lastIndexOf(',');\n const alpha = Number.parseFloat(color.substring(lastComa + 1, color.length - 1));\n if (Number.isNaN(alpha)) {\n throw new Error(`Unable to parse rgba of ${color}`);\n }\n let resolvedColor = color.substring('rgba('.length, lastComa);\n if (resolvedColor.startsWith('{')) resolvedColor = resolveColor(resolvedColor);\n if (resolvedColor.startsWith('$')) resolvedColor = resolveColor(resolvedColor);\n if (resolvedColor.startsWith('#')) {\n if (resolvedColor.length === 1 + 3) {\n resolvedColor = [resolvedColor[1], resolvedColor[2], resolvedColor[3]]\n .map((hex) => Number.parseInt(hex, 16))\n .join(', ');\n } else if (resolvedColor.length === 1 + 6) {\n resolvedColor = [\n resolvedColor.substring(1, 3),\n resolvedColor.substring(3, 5),\n resolvedColor.substring(5, 7),\n ]\n .map((hex) => Number.parseInt(hex, 16))\n .join(', ');\n } else {\n throw new Error(\n `Unable to convert hex ${resolveColor} to rgb list of colors (processing ${color})`,\n );\n }\n }\n\n if (!resolvedColor || resolvedColor.split(',').length !== 3) {\n throw new Error(`Unable to produce rgba of ${color} (input format is not supported yet)`);\n }\n\n return `rgba(${resolvedColor}, ${alpha})`;\n }\n if (color.split(', ').length === 2) {\n const baseColor = resolveColor(color.split(', ')[0]);\n const [r, g, b] = (\n baseColor.length === 4\n ? [baseColor[1], baseColor[2], baseColor[3]]\n : [baseColor.substring(1, 3), baseColor.substring(3, 5), baseColor.substring(5, 7)]\n ).map((chunk) => Number.parseInt(chunk, 16));\n const a = Number.parseFloat(color.split(', ')[1]);\n\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n }\n if (color.startsWith('{') && color.split('.').length > 0 && color.endsWith('}')) {\n const path = color.substring(1, color.length - 1);\n const resolvedColor =\n getByPath(base as any, path)?.value ?? values[path.split('.').join('-')];\n if (!resolvedColor) {\n throw new Error(`Color ${color} was not found in base palette`);\n }\n return resolvedColor;\n }\n if (color.startsWith('$') && color.split('.').length > 0) {\n const path = color.substring(1);\n const resolvedColor =\n getByPath(base as any, path)?.value ?? values[path.split('.').join('-')];\n if (!resolvedColor) {\n throw new Error(`Color ${color} was not found`);\n }\n return resolvedColor;\n }\n if (color.startsWith('#')) {\n return color;\n }\n throw new Error(`Unable to process color ${color}`);\n };\n const resolveToken = (token: string): string => {\n if (token.includes('*')) {\n const [value, factor] = token.split('*');\n const resolvedValue = resolveToken(value);\n if (!resolvedValue.endsWith('px')) {\n throw new Error(`Unsupported expression ${token}`);\n }\n return `${Number.parseFloat(resolvedValue) * Number.parseFloat(factor)}px`;\n } else if (token.includes('{') && token.includes('}')) {\n const reference = token\n .substring(token.indexOf('{') + 1, token.indexOf('}'))\n .replace(/\\./g, '-');\n const resolvedToken =\n token.substring(0, token.indexOf('{')) +\n values[reference] +\n token.substring(token.indexOf('}') + 1);\n if (!resolvedToken || resolvedToken.includes('{')) {\n throw new Error(`On moment of resolving ${token}, ${resolvedToken} was not resolved yet`);\n }\n return resolvedToken;\n } else {\n return token;\n }\n };\n const replaceColors = (str: string) => {\n let result = '';\n for (let i = 0; i < str.length; i++) {\n if (str.substring(i, i + 'rgba('.length) === 'rgba(') {\n const start = i;\n while (str[i] !== undefined && str[i] !== ')') i++;\n result += resolveColor(str.substring(start, i + 1));\n } else {\n result += str[i];\n }\n }\n\n return result;\n };\n\n const rawValues = { ...values };\n\n for (const token in values) {\n if (types[token] === 'color') {\n values[token] = resolveColor(values[token]);\n } else if (types[token] === 'boxShadow') {\n values[token] = resolveToken(values[token].split('; ').map(replaceColors).join(', '));\n } else if (\n types[token] === 'sizing' ||\n types[token] === 'spacing' ||\n types[token] === 'borderRadius' ||\n types[token] === 'other'\n ) {\n values[token] = resolveToken(values[token]);\n }\n for (const modification of modifications[token] ?? []) {\n // refer to https://docs.tokens.studio/tokens/color-modifiers and https://github.com/tokens-studio/figma-plugin/tree/main/src/utils/color if extension is needed\n\n rawValues[token] = `${rawValues[token]} / ${modification.type}(${modification.value}) / ${modification.space}`;\n\n // array + regex to process gradients with several colors\n const colorRegex = /(#[0-9a-f]{6}|rgba\\([0-9., ]+\\))/gi;\n const colors = values[token].match(colorRegex) ?? [];\n\n for (const originalColor of colors) {\n let color = new Color(originalColor);\n\n if (modification.space === 'hsl') {\n if (modification.type === 'lighten') {\n const lightness = color.hsl.l;\n const difference = 100 - lightness;\n color.set('hsl.l', Math.min(100, lightness + difference * modification.value));\n } else {\n throw new Error(`Unsupported color modification ${modification.type} of token ${token}`);\n }\n } else {\n throw new Error(`Unsupported color space ${modification.space} of token ${token}`);\n }\n\n color = color.to('sRGB');\n let modifiedColor = '';\n\n if (color.alpha !== 1) {\n const r = Math.round(color.r * 255);\n const g = Math.round(color.g * 255);\n const b = Math.round(color.b * 255);\n const a = color.alpha;\n modifiedColor = `rgba(${r}, ${g}, ${b}, ${a})`;\n } else {\n modifiedColor = color.toString({ format: 'hex' });\n }\n\n values[token] = values[token].replace(originalColor, modifiedColor);\n }\n }\n }\n\n const processedTokens: { name: string; value: string; description: string }[] = [];\n const highlightsTokens: { name: string; value: string; description: string }[] = [];\n\n for (const token in values) {\n const isBase = basicTokens.has(token);\n (highlightTokens.has(token) ? highlightsTokens : processedTokens).push({\n name: isBase ? `--${token}` : `--${prefix}-${token}`,\n description: descriptions[token],\n value: values[token],\n });\n }\n\n return { processedTokens, highlightsTokens, values, types, rawValues, descriptions, basicTokens };\n};\n\nexport const tokensToCss = (\n tokens: { name: string; value: string; description: string }[],\n selector = ':root',\n) => {\n const cssLines: string[] = [];\n cssLines.push(`${selector} {`);\n for (const token of tokens) {\n if (token.description) cssLines.push(` /* ${token.description} */`);\n cssLines.push(` ${token.name}: ${token.value};`);\n }\n cssLines.push('}');\n return cssLines.join('\\n');\n};\nexport const tokensToJson = (tokens: { name: string; value: string; description: string }[]) => {\n const themeFile: Record<string, string> = {};\n for (const token of tokens) {\n themeFile[token.name] = token.value;\n }\n return JSON.stringify(themeFile, null, 2) + '\\n';\n};\nexport const tokensToJs = (tokens: { name: string; value: string; description: string }[]) => {\n const jsLines: string[] = [];\n jsLines.push('export default {');\n for (const token of tokens) {\n jsLines.push(` '${token.name}': '${token.value}',`);\n }\n jsLines.push('};\\n');\n return jsLines.join('\\n');\n};\n\nconst getByPath = (obj: any, path: string) => {\n const parts = path.split('.');\n let result = obj;\n for (const part of parts) {\n result = result?.[part];\n }\n return result;\n};\n"],"mappings":"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","ignoreList":[]}