@semcore/core 17.0.0-prerelease.19 → 17.0.0-prerelease.20-prerelease.20

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