@easemate/web-kit 0.2.0 → 0.3.0

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 (437) hide show
  1. package/build/decorators.cjs +921 -0
  2. package/build/decorators.cjs.map +1 -0
  3. package/build/decorators.d.cts +123 -0
  4. package/build/decorators.d.ts +123 -0
  5. package/build/decorators.js +889 -0
  6. package/build/decorators.js.map +1 -0
  7. package/build/elements.cjs +27604 -0
  8. package/build/elements.cjs.map +1 -0
  9. package/build/elements.d.cts +373 -0
  10. package/build/elements.d.ts +373 -0
  11. package/build/elements.js +27528 -0
  12. package/build/elements.js.map +1 -0
  13. package/build/{elements/monitor/index.d.ts → index-31iOHBv0.d.cts} +26 -5
  14. package/build/{elements/monitor/index.d.cts → index-31iOHBv0.d.ts} +26 -5
  15. package/build/{elements/panel/index.d.cts → index-NzGpn7ai.d.cts} +6 -3
  16. package/build/{elements/panel/index.d.ts → index-NzGpn7ai.d.ts} +6 -3
  17. package/build/{elements/state/index.d.ts → index-qZoNKsHn.d.cts} +46 -5
  18. package/build/{elements/state/index.d.cts → index-qZoNKsHn.d.ts} +46 -5
  19. package/build/index.cjs +38651 -38
  20. package/build/index.cjs.map +1 -0
  21. package/build/index.d.cts +85 -6
  22. package/build/index.d.ts +85 -6
  23. package/build/index.js +38535 -12
  24. package/build/index.js.map +1 -0
  25. package/build/init-B7gNNyTd.d.ts +235 -0
  26. package/build/init-DwVGVxkx.d.cts +235 -0
  27. package/build/jsx.cjs +31 -0
  28. package/build/jsx.cjs.map +1 -0
  29. package/build/jsx.d.cts +317 -0
  30. package/build/jsx.d.ts +317 -0
  31. package/build/jsx.js +6 -0
  32. package/build/jsx.js.map +1 -0
  33. package/build/outside-click-rZ3Di_WX.d.cts +16 -0
  34. package/build/outside-click-rZ3Di_WX.d.ts +16 -0
  35. package/build/react.cjs +37827 -0
  36. package/build/react.cjs.map +1 -0
  37. package/build/react.d.cts +356 -0
  38. package/build/react.d.ts +356 -0
  39. package/build/react.js +37802 -0
  40. package/build/react.js.map +1 -0
  41. package/build/register.cjs +35832 -36
  42. package/build/register.cjs.map +1 -0
  43. package/build/register.d.cts +4 -33
  44. package/build/register.d.ts +4 -33
  45. package/build/register.js +35831 -35
  46. package/build/register.js.map +1 -0
  47. package/build/register.server.cjs +19 -0
  48. package/build/register.server.cjs.map +1 -0
  49. package/build/register.server.d.cts +2 -0
  50. package/build/register.server.d.ts +2 -0
  51. package/build/register.server.js +1 -0
  52. package/build/register.server.js.map +1 -0
  53. package/build/registry-9GX9KTG1.d.cts +264 -0
  54. package/build/registry-9GX9KTG1.d.ts +264 -0
  55. package/build/template-helpers-CguLXtLD.d.cts +10 -0
  56. package/build/template-helpers-CguLXtLD.d.ts +10 -0
  57. package/build/theme.cjs +746 -0
  58. package/build/theme.cjs.map +1 -0
  59. package/build/{theme/index.d.cts → theme.d.cts} +41 -21
  60. package/build/{theme/index.d.ts → theme.d.ts} +41 -21
  61. package/build/theme.js +692 -0
  62. package/build/theme.js.map +1 -0
  63. package/build/utils.cjs +205 -0
  64. package/build/utils.cjs.map +1 -0
  65. package/build/utils.d.cts +26 -0
  66. package/build/utils.d.ts +26 -0
  67. package/build/utils.js +167 -0
  68. package/build/utils.js.map +1 -0
  69. package/package.json +47 -33
  70. package/build/components/code/index.cjs +0 -152
  71. package/build/components/code/index.d.cts +0 -11
  72. package/build/components/code/index.d.ts +0 -11
  73. package/build/components/code/index.js +0 -148
  74. package/build/components/code/utils/highlight-api.cjs +0 -18
  75. package/build/components/code/utils/highlight-api.d.cts +0 -7
  76. package/build/components/code/utils/highlight-api.d.ts +0 -7
  77. package/build/components/code/utils/highlight-api.js +0 -14
  78. package/build/components/code/utils/syntax-grammars.cjs +0 -62
  79. package/build/components/code/utils/syntax-grammars.d.cts +0 -7
  80. package/build/components/code/utils/syntax-grammars.d.ts +0 -7
  81. package/build/components/code/utils/syntax-grammars.js +0 -59
  82. package/build/components/code/utils/syntax-highlighter-theme.cjs +0 -27
  83. package/build/components/code/utils/syntax-highlighter-theme.d.cts +0 -3
  84. package/build/components/code/utils/syntax-highlighter-theme.d.ts +0 -3
  85. package/build/components/code/utils/syntax-highlighter-theme.js +0 -23
  86. package/build/components/code/utils/syntax-highlighter-types.cjs +0 -2
  87. package/build/components/code/utils/syntax-highlighter-types.d.cts +0 -12
  88. package/build/components/code/utils/syntax-highlighter-types.d.ts +0 -12
  89. package/build/components/code/utils/syntax-highlighter-types.js +0 -1
  90. package/build/components/code/utils/syntax-tokenizer.cjs +0 -63
  91. package/build/components/code/utils/syntax-tokenizer.d.cts +0 -3
  92. package/build/components/code/utils/syntax-tokenizer.d.ts +0 -3
  93. package/build/components/code/utils/syntax-tokenizer.js +0 -58
  94. package/build/components/curve/bezier-conversion.cjs +0 -23
  95. package/build/components/curve/bezier-conversion.d.cts +0 -2
  96. package/build/components/curve/bezier-conversion.d.ts +0 -2
  97. package/build/components/curve/bezier-conversion.js +0 -19
  98. package/build/components/curve/canvas-controls.cjs +0 -300
  99. package/build/components/curve/canvas-controls.d.cts +0 -12
  100. package/build/components/curve/canvas-controls.d.ts +0 -12
  101. package/build/components/curve/canvas-controls.js +0 -296
  102. package/build/components/curve/canvas.cjs +0 -1208
  103. package/build/components/curve/canvas.d.cts +0 -24
  104. package/build/components/curve/canvas.d.ts +0 -24
  105. package/build/components/curve/canvas.js +0 -1204
  106. package/build/components/curve/constants.cjs +0 -203
  107. package/build/components/curve/constants.d.cts +0 -23
  108. package/build/components/curve/constants.d.ts +0 -23
  109. package/build/components/curve/constants.js +0 -200
  110. package/build/components/curve/controls.cjs +0 -942
  111. package/build/components/curve/controls.d.cts +0 -37
  112. package/build/components/curve/controls.d.ts +0 -37
  113. package/build/components/curve/controls.js +0 -938
  114. package/build/components/curve/index.cjs +0 -335
  115. package/build/components/curve/index.d.cts +0 -31
  116. package/build/components/curve/index.d.ts +0 -31
  117. package/build/components/curve/index.js +0 -330
  118. package/build/components/curve/output.cjs +0 -141
  119. package/build/components/curve/output.d.cts +0 -19
  120. package/build/components/curve/output.d.ts +0 -19
  121. package/build/components/curve/output.js +0 -137
  122. package/build/components/curve/styles.cjs +0 -493
  123. package/build/components/curve/styles.d.cts +0 -6
  124. package/build/components/curve/styles.d.ts +0 -6
  125. package/build/components/curve/styles.js +0 -490
  126. package/build/components/curve/svg-renderer.cjs +0 -185
  127. package/build/components/curve/svg-renderer.d.cts +0 -9
  128. package/build/components/curve/svg-renderer.d.ts +0 -9
  129. package/build/components/curve/svg-renderer.js +0 -175
  130. package/build/components/curve/toolbar.cjs +0 -368
  131. package/build/components/curve/toolbar.d.cts +0 -26
  132. package/build/components/curve/toolbar.d.ts +0 -26
  133. package/build/components/curve/toolbar.js +0 -364
  134. package/build/components/curve/types.cjs +0 -10
  135. package/build/components/curve/types.d.cts +0 -33
  136. package/build/components/curve/types.d.ts +0 -33
  137. package/build/components/curve/types.js +0 -7
  138. package/build/components/curve/utils.cjs +0 -541
  139. package/build/components/curve/utils.d.cts +0 -33
  140. package/build/components/curve/utils.d.ts +0 -33
  141. package/build/components/curve/utils.js +0 -521
  142. package/build/components/index.cjs +0 -18
  143. package/build/components/index.d.cts +0 -2
  144. package/build/components/index.d.ts +0 -2
  145. package/build/components/index.js +0 -2
  146. package/build/decorators/Component.cjs +0 -127
  147. package/build/decorators/Component.d.cts +0 -28
  148. package/build/decorators/Component.d.ts +0 -28
  149. package/build/decorators/Component.js +0 -123
  150. package/build/decorators/Listen.cjs +0 -154
  151. package/build/decorators/Listen.d.cts +0 -18
  152. package/build/decorators/Listen.d.ts +0 -18
  153. package/build/decorators/Listen.js +0 -151
  154. package/build/decorators/OutsideClick.cjs +0 -64
  155. package/build/decorators/OutsideClick.d.cts +0 -16
  156. package/build/decorators/OutsideClick.d.ts +0 -16
  157. package/build/decorators/OutsideClick.js +0 -59
  158. package/build/decorators/Prop.cjs +0 -273
  159. package/build/decorators/Prop.d.cts +0 -22
  160. package/build/decorators/Prop.d.ts +0 -22
  161. package/build/decorators/Prop.js +0 -270
  162. package/build/decorators/Query.cjs +0 -79
  163. package/build/decorators/Query.d.cts +0 -27
  164. package/build/decorators/Query.d.ts +0 -27
  165. package/build/decorators/Query.js +0 -76
  166. package/build/decorators/Watch.cjs +0 -52
  167. package/build/decorators/Watch.d.cts +0 -11
  168. package/build/decorators/Watch.d.ts +0 -11
  169. package/build/decorators/Watch.js +0 -49
  170. package/build/decorators/index.cjs +0 -15
  171. package/build/decorators/index.d.cts +0 -6
  172. package/build/decorators/index.d.ts +0 -6
  173. package/build/decorators/index.js +0 -6
  174. package/build/elements/button/index.cjs +0 -214
  175. package/build/elements/button/index.d.cts +0 -11
  176. package/build/elements/button/index.d.ts +0 -11
  177. package/build/elements/button/index.js +0 -210
  178. package/build/elements/checkbox/index.cjs +0 -316
  179. package/build/elements/checkbox/index.d.cts +0 -14
  180. package/build/elements/checkbox/index.d.ts +0 -14
  181. package/build/elements/checkbox/index.js +0 -312
  182. package/build/elements/color/index.cjs +0 -154
  183. package/build/elements/color/index.d.cts +0 -18
  184. package/build/elements/color/index.d.ts +0 -18
  185. package/build/elements/color/index.js +0 -150
  186. package/build/elements/color/picker.cjs +0 -544
  187. package/build/elements/color/picker.d.cts +0 -37
  188. package/build/elements/color/picker.d.ts +0 -37
  189. package/build/elements/color/picker.js +0 -540
  190. package/build/elements/color/utils.cjs +0 -235
  191. package/build/elements/color/utils.d.cts +0 -37
  192. package/build/elements/color/utils.d.ts +0 -37
  193. package/build/elements/color/utils.js +0 -218
  194. package/build/elements/dropdown/index.cjs +0 -875
  195. package/build/elements/dropdown/index.d.cts +0 -30
  196. package/build/elements/dropdown/index.d.ts +0 -30
  197. package/build/elements/dropdown/index.js +0 -871
  198. package/build/elements/field/index.cjs +0 -82
  199. package/build/elements/field/index.d.cts +0 -4
  200. package/build/elements/field/index.d.ts +0 -4
  201. package/build/elements/field/index.js +0 -78
  202. package/build/elements/icons/animation/chevron.cjs +0 -57
  203. package/build/elements/icons/animation/chevron.d.cts +0 -10
  204. package/build/elements/icons/animation/chevron.d.ts +0 -10
  205. package/build/elements/icons/animation/chevron.js +0 -53
  206. package/build/elements/icons/animation/clear.cjs +0 -74
  207. package/build/elements/icons/animation/clear.d.cts +0 -3
  208. package/build/elements/icons/animation/clear.d.ts +0 -3
  209. package/build/elements/icons/animation/clear.js +0 -70
  210. package/build/elements/icons/animation/grid.cjs +0 -77
  211. package/build/elements/icons/animation/grid.d.cts +0 -8
  212. package/build/elements/icons/animation/grid.d.ts +0 -8
  213. package/build/elements/icons/animation/grid.js +0 -73
  214. package/build/elements/icons/animation/loading.cjs +0 -68
  215. package/build/elements/icons/animation/loading.d.cts +0 -3
  216. package/build/elements/icons/animation/loading.d.ts +0 -3
  217. package/build/elements/icons/animation/loading.js +0 -64
  218. package/build/elements/icons/animation/snap.cjs +0 -133
  219. package/build/elements/icons/animation/snap.d.cts +0 -8
  220. package/build/elements/icons/animation/snap.d.ts +0 -8
  221. package/build/elements/icons/animation/snap.js +0 -129
  222. package/build/elements/icons/index.cjs +0 -40
  223. package/build/elements/icons/index.d.cts +0 -24
  224. package/build/elements/icons/index.d.ts +0 -24
  225. package/build/elements/icons/index.js +0 -24
  226. package/build/elements/icons/interface/anchor-add.cjs +0 -35
  227. package/build/elements/icons/interface/anchor-add.d.cts +0 -3
  228. package/build/elements/icons/interface/anchor-add.d.ts +0 -3
  229. package/build/elements/icons/interface/anchor-add.js +0 -31
  230. package/build/elements/icons/interface/anchor-remove.cjs +0 -34
  231. package/build/elements/icons/interface/anchor-remove.d.cts +0 -3
  232. package/build/elements/icons/interface/anchor-remove.d.ts +0 -3
  233. package/build/elements/icons/interface/anchor-remove.js +0 -30
  234. package/build/elements/icons/interface/arrow-up.cjs +0 -30
  235. package/build/elements/icons/interface/arrow-up.d.cts +0 -3
  236. package/build/elements/icons/interface/arrow-up.d.ts +0 -3
  237. package/build/elements/icons/interface/arrow-up.js +0 -26
  238. package/build/elements/icons/interface/arrows-vertical.cjs +0 -30
  239. package/build/elements/icons/interface/arrows-vertical.d.cts +0 -3
  240. package/build/elements/icons/interface/arrows-vertical.d.ts +0 -3
  241. package/build/elements/icons/interface/arrows-vertical.js +0 -26
  242. package/build/elements/icons/interface/bezier-angle.cjs +0 -33
  243. package/build/elements/icons/interface/bezier-angle.d.cts +0 -3
  244. package/build/elements/icons/interface/bezier-angle.d.ts +0 -3
  245. package/build/elements/icons/interface/bezier-angle.js +0 -29
  246. package/build/elements/icons/interface/bezier-distribute.cjs +0 -34
  247. package/build/elements/icons/interface/bezier-distribute.d.cts +0 -3
  248. package/build/elements/icons/interface/bezier-distribute.d.ts +0 -3
  249. package/build/elements/icons/interface/bezier-distribute.js +0 -30
  250. package/build/elements/icons/interface/bezier-length.cjs +0 -31
  251. package/build/elements/icons/interface/bezier-length.d.cts +0 -3
  252. package/build/elements/icons/interface/bezier-length.d.ts +0 -3
  253. package/build/elements/icons/interface/bezier-length.js +0 -27
  254. package/build/elements/icons/interface/bezier-mirror.cjs +0 -31
  255. package/build/elements/icons/interface/bezier-mirror.d.cts +0 -3
  256. package/build/elements/icons/interface/bezier-mirror.d.ts +0 -3
  257. package/build/elements/icons/interface/bezier-mirror.js +0 -27
  258. package/build/elements/icons/interface/bezier.cjs +0 -26
  259. package/build/elements/icons/interface/bezier.d.cts +0 -3
  260. package/build/elements/icons/interface/bezier.d.ts +0 -3
  261. package/build/elements/icons/interface/bezier.js +0 -22
  262. package/build/elements/icons/interface/check.cjs +0 -30
  263. package/build/elements/icons/interface/check.d.cts +0 -3
  264. package/build/elements/icons/interface/check.d.ts +0 -3
  265. package/build/elements/icons/interface/check.js +0 -26
  266. package/build/elements/icons/interface/circle-arrow-left.cjs +0 -30
  267. package/build/elements/icons/interface/circle-arrow-left.d.cts +0 -3
  268. package/build/elements/icons/interface/circle-arrow-left.d.ts +0 -3
  269. package/build/elements/icons/interface/circle-arrow-left.js +0 -26
  270. package/build/elements/icons/interface/circle-arrow-right.cjs +0 -30
  271. package/build/elements/icons/interface/circle-arrow-right.d.cts +0 -3
  272. package/build/elements/icons/interface/circle-arrow-right.d.ts +0 -3
  273. package/build/elements/icons/interface/circle-arrow-right.js +0 -26
  274. package/build/elements/icons/interface/code.cjs +0 -30
  275. package/build/elements/icons/interface/code.d.cts +0 -3
  276. package/build/elements/icons/interface/code.d.ts +0 -3
  277. package/build/elements/icons/interface/code.js +0 -26
  278. package/build/elements/icons/interface/dots.cjs +0 -32
  279. package/build/elements/icons/interface/dots.d.cts +0 -3
  280. package/build/elements/icons/interface/dots.d.ts +0 -3
  281. package/build/elements/icons/interface/dots.js +0 -28
  282. package/build/elements/icons/interface/mention.cjs +0 -30
  283. package/build/elements/icons/interface/mention.d.cts +0 -3
  284. package/build/elements/icons/interface/mention.d.ts +0 -3
  285. package/build/elements/icons/interface/mention.js +0 -26
  286. package/build/elements/icons/interface/minus.cjs +0 -30
  287. package/build/elements/icons/interface/minus.d.cts +0 -3
  288. package/build/elements/icons/interface/minus.d.ts +0 -3
  289. package/build/elements/icons/interface/minus.js +0 -26
  290. package/build/elements/icons/interface/picker.cjs +0 -34
  291. package/build/elements/icons/interface/picker.d.cts +0 -3
  292. package/build/elements/icons/interface/picker.d.ts +0 -3
  293. package/build/elements/icons/interface/picker.js +0 -30
  294. package/build/elements/icons/interface/plus.cjs +0 -30
  295. package/build/elements/icons/interface/plus.d.cts +0 -3
  296. package/build/elements/icons/interface/plus.d.ts +0 -3
  297. package/build/elements/icons/interface/plus.js +0 -26
  298. package/build/elements/icons/interface/settings.cjs +0 -30
  299. package/build/elements/icons/interface/settings.d.cts +0 -3
  300. package/build/elements/icons/interface/settings.d.ts +0 -3
  301. package/build/elements/icons/interface/settings.js +0 -26
  302. package/build/elements/index.cjs +0 -65
  303. package/build/elements/index.d.cts +0 -23
  304. package/build/elements/index.d.ts +0 -23
  305. package/build/elements/index.js +0 -23
  306. package/build/elements/input/index.cjs +0 -273
  307. package/build/elements/input/index.d.cts +0 -17
  308. package/build/elements/input/index.d.ts +0 -17
  309. package/build/elements/input/index.js +0 -269
  310. package/build/elements/logo/index.cjs +0 -732
  311. package/build/elements/logo/index.d.cts +0 -17
  312. package/build/elements/logo/index.d.ts +0 -17
  313. package/build/elements/logo/index.js +0 -728
  314. package/build/elements/monitor/fps.cjs +0 -432
  315. package/build/elements/monitor/fps.d.cts +0 -21
  316. package/build/elements/monitor/fps.d.ts +0 -21
  317. package/build/elements/monitor/fps.js +0 -428
  318. package/build/elements/monitor/index.cjs +0 -670
  319. package/build/elements/monitor/index.js +0 -666
  320. package/build/elements/number/index.cjs +0 -173
  321. package/build/elements/number/index.d.cts +0 -19
  322. package/build/elements/number/index.d.ts +0 -19
  323. package/build/elements/number/index.js +0 -169
  324. package/build/elements/origin/index.cjs +0 -169
  325. package/build/elements/origin/index.d.cts +0 -12
  326. package/build/elements/origin/index.d.ts +0 -12
  327. package/build/elements/origin/index.js +0 -165
  328. package/build/elements/panel/index.cjs +0 -496
  329. package/build/elements/panel/index.js +0 -492
  330. package/build/elements/popover/index.cjs +0 -209
  331. package/build/elements/popover/index.d.cts +0 -19
  332. package/build/elements/popover/index.d.ts +0 -19
  333. package/build/elements/popover/index.js +0 -205
  334. package/build/elements/radio/index.cjs +0 -301
  335. package/build/elements/radio/index.d.cts +0 -13
  336. package/build/elements/radio/index.d.ts +0 -13
  337. package/build/elements/radio/index.js +0 -283
  338. package/build/elements/radio/input.cjs +0 -329
  339. package/build/elements/radio/input.d.cts +0 -15
  340. package/build/elements/radio/input.d.ts +0 -15
  341. package/build/elements/radio/input.js +0 -325
  342. package/build/elements/radio/option.cjs +0 -15
  343. package/build/elements/radio/option.d.cts +0 -3
  344. package/build/elements/radio/option.d.ts +0 -3
  345. package/build/elements/radio/option.js +0 -11
  346. package/build/elements/shared.cjs +0 -66
  347. package/build/elements/shared.d.cts +0 -40
  348. package/build/elements/shared.d.ts +0 -40
  349. package/build/elements/shared.js +0 -59
  350. package/build/elements/slider/index.cjs +0 -232
  351. package/build/elements/slider/index.d.cts +0 -20
  352. package/build/elements/slider/index.d.ts +0 -20
  353. package/build/elements/slider/index.js +0 -228
  354. package/build/elements/state/index.cjs +0 -274
  355. package/build/elements/state/index.js +0 -270
  356. package/build/elements/toggle/index.cjs +0 -151
  357. package/build/elements/toggle/index.d.cts +0 -9
  358. package/build/elements/toggle/index.d.ts +0 -9
  359. package/build/elements/toggle/index.js +0 -147
  360. package/build/elements/tooltip/index.cjs +0 -187
  361. package/build/elements/tooltip/index.d.cts +0 -17
  362. package/build/elements/tooltip/index.d.ts +0 -17
  363. package/build/elements/tooltip/index.js +0 -183
  364. package/build/init.cjs +0 -325
  365. package/build/init.d.cts +0 -157
  366. package/build/init.d.ts +0 -157
  367. package/build/init.js +0 -289
  368. package/build/internal/component-loaders.cjs +0 -208
  369. package/build/internal/component-loaders.d.cts +0 -52
  370. package/build/internal/component-loaders.d.ts +0 -52
  371. package/build/internal/component-loaders.js +0 -169
  372. package/build/internal/fonts.cjs +0 -128
  373. package/build/internal/fonts.d.cts +0 -32
  374. package/build/internal/fonts.d.ts +0 -32
  375. package/build/internal/fonts.js +0 -123
  376. package/build/internal/lazy-load.cjs +0 -89
  377. package/build/internal/lazy-load.d.cts +0 -32
  378. package/build/internal/lazy-load.d.ts +0 -32
  379. package/build/internal/lazy-load.js +0 -86
  380. package/build/internal/style-inject.cjs +0 -236
  381. package/build/internal/style-inject.d.cts +0 -44
  382. package/build/internal/style-inject.d.ts +0 -44
  383. package/build/internal/style-inject.js +0 -226
  384. package/build/react/events.cjs +0 -25
  385. package/build/react/events.d.cts +0 -39
  386. package/build/react/events.d.ts +0 -39
  387. package/build/react/events.js +0 -22
  388. package/build/react/index.cjs +0 -19
  389. package/build/react/index.d.cts +0 -13
  390. package/build/react/index.d.ts +0 -13
  391. package/build/react/index.js +0 -12
  392. package/build/react/provider.cjs +0 -134
  393. package/build/react/provider.d.cts +0 -81
  394. package/build/react/provider.d.ts +0 -81
  395. package/build/react/provider.js +0 -98
  396. package/build/react/types.cjs +0 -8
  397. package/build/react/types.d.cts +0 -55
  398. package/build/react/types.d.ts +0 -55
  399. package/build/react/types.js +0 -7
  400. package/build/react/use-ease-state.cjs +0 -129
  401. package/build/react/use-ease-state.d.cts +0 -95
  402. package/build/react/use-ease-state.d.ts +0 -95
  403. package/build/react/use-ease-state.js +0 -126
  404. package/build/react/use-web-kit.cjs +0 -150
  405. package/build/react/use-web-kit.d.cts +0 -80
  406. package/build/react/use-web-kit.d.ts +0 -80
  407. package/build/react/use-web-kit.js +0 -114
  408. package/build/theme/index.cjs +0 -452
  409. package/build/theme/index.js +0 -423
  410. package/build/theme/presets.cjs +0 -54
  411. package/build/theme/presets.d.cts +0 -19
  412. package/build/theme/presets.d.ts +0 -19
  413. package/build/theme/presets.js +0 -51
  414. package/build/theme/registry.cjs +0 -204
  415. package/build/theme/registry.d.cts +0 -99
  416. package/build/theme/registry.d.ts +0 -99
  417. package/build/theme/registry.js +0 -194
  418. package/build/theme/tokens.cjs +0 -148
  419. package/build/theme/tokens.d.cts +0 -163
  420. package/build/theme/tokens.d.ts +0 -163
  421. package/build/theme/tokens.js +0 -145
  422. package/build/utils/dismiss-controller.cjs +0 -77
  423. package/build/utils/dismiss-controller.d.cts +0 -14
  424. package/build/utils/dismiss-controller.d.ts +0 -14
  425. package/build/utils/dismiss-controller.js +0 -73
  426. package/build/utils/index.cjs +0 -18
  427. package/build/utils/index.d.cts +0 -3
  428. package/build/utils/index.d.ts +0 -3
  429. package/build/utils/index.js +0 -3
  430. package/build/utils/outside-click.cjs +0 -82
  431. package/build/utils/outside-click.d.cts +0 -18
  432. package/build/utils/outside-click.d.ts +0 -18
  433. package/build/utils/outside-click.js +0 -74
  434. package/build/utils/template-helpers.cjs +0 -39
  435. package/build/utils/template-helpers.d.cts +0 -13
  436. package/build/utils/template-helpers.d.ts +0 -13
  437. package/build/utils/template-helpers.js +0 -28
@@ -1,80 +0,0 @@
1
- /**
2
- * React hook for initializing @easemate/web-kit
3
- *
4
- * This module provides hooks for React integration.
5
- * React is a peer dependency - users must install it separately.
6
- *
7
- * @module
8
- */
9
- import type { InitWebKitOptions, WebKitController } from '../init';
10
- /**
11
- * Options for useWebKit hook
12
- */
13
- export interface UseWebKitOptions extends InitWebKitOptions {
14
- /**
15
- * Skip initialization (useful for conditional rendering)
16
- * @default false
17
- */
18
- skip?: boolean;
19
- }
20
- /**
21
- * Return type for useWebKit hook
22
- */
23
- export interface UseWebKitReturn {
24
- /** Whether the web kit is ready */
25
- ready: boolean;
26
- /** Theme controller (if theme was configured) */
27
- theme?: WebKitController['theme'];
28
- /** Dispose function for cleanup */
29
- dispose: () => void;
30
- }
31
- /**
32
- * React hook for initializing @easemate/web-kit.
33
- *
34
- * This hook handles initialization and cleanup of the web kit,
35
- * ensuring components are registered before rendering.
36
- *
37
- * **Important for Next.js App Router:**
38
- * - Use this hook in a client component (`'use client'`)
39
- * - Place it at the top of your component tree (e.g., in a layout)
40
- * - The hook is SSR-safe and will only initialize on the client
41
- *
42
- * **Note:** This hook requires React to be installed. Import React hooks
43
- * directly in your component and pass them to this function, or use the
44
- * imperative `initWebKit()` function directly.
45
- *
46
- * @example
47
- * ```tsx
48
- * // app/providers.tsx
49
- * 'use client';
50
- *
51
- * import { useEffect, useState, useRef } from '../react';
52
- * import { initWebKit } from '@easemate/web-kit';
53
- *
54
- * export function Providers({ children }: { children: React.ReactNode }) {
55
- * const [ready, setReady] = useState(false);
56
- * const controllerRef = useRef<WebKitController | null>(null);
57
- *
58
- * useEffect(() => {
59
- * const controller = initWebKit({
60
- * theme: 'default',
61
- * styles: 'main',
62
- * fonts: 'default'
63
- * });
64
- * controllerRef.current = controller;
65
- * controller.ready.then(() => setReady(true));
66
- *
67
- * return () => controller.dispose();
68
- * }, []);
69
- *
70
- * return <>{children}</>;
71
- * }
72
- * ```
73
- */
74
- export declare function useWebKit(options: UseWebKitOptions, hooks: {
75
- useState: <T>(initial: T) => [T, (value: T) => void];
76
- useEffect: (effect: () => (() => void) | undefined, deps?: unknown[]) => void;
77
- useRef: <T>(initial: T) => {
78
- current: T;
79
- };
80
- }): UseWebKitReturn;
@@ -1,114 +0,0 @@
1
- /**
2
- * React hook for initializing @easemate/web-kit
3
- *
4
- * This module provides hooks for React integration.
5
- * React is a peer dependency - users must install it separately.
6
- *
7
- * @module
8
- */
9
- // Singleton to track if web-kit has been initialized globally
10
- let globalController = null;
11
- let initCount = 0;
12
- /**
13
- * React hook for initializing @easemate/web-kit.
14
- *
15
- * This hook handles initialization and cleanup of the web kit,
16
- * ensuring components are registered before rendering.
17
- *
18
- * **Important for Next.js App Router:**
19
- * - Use this hook in a client component (`'use client'`)
20
- * - Place it at the top of your component tree (e.g., in a layout)
21
- * - The hook is SSR-safe and will only initialize on the client
22
- *
23
- * **Note:** This hook requires React to be installed. Import React hooks
24
- * directly in your component and pass them to this function, or use the
25
- * imperative `initWebKit()` function directly.
26
- *
27
- * @example
28
- * ```tsx
29
- * // app/providers.tsx
30
- * 'use client';
31
- *
32
- * import { useEffect, useState, useRef } from '../react';
33
- * import { initWebKit } from '@easemate/web-kit';
34
- *
35
- * export function Providers({ children }: { children: React.ReactNode }) {
36
- * const [ready, setReady] = useState(false);
37
- * const controllerRef = useRef<WebKitController | null>(null);
38
- *
39
- * useEffect(() => {
40
- * const controller = initWebKit({
41
- * theme: 'default',
42
- * styles: 'main',
43
- * fonts: 'default'
44
- * });
45
- * controllerRef.current = controller;
46
- * controller.ready.then(() => setReady(true));
47
- *
48
- * return () => controller.dispose();
49
- * }, []);
50
- *
51
- * return <>{children}</>;
52
- * }
53
- * ```
54
- */
55
- export function useWebKit(options, hooks) {
56
- const isSSR = typeof window === 'undefined';
57
- const { useState, useEffect, useRef } = hooks;
58
- const { skip = false, ...initOptions } = options;
59
- const [ready, setReady] = useState(false);
60
- const controllerRef = useRef(null);
61
- const optionsRef = useRef(initOptions);
62
- useEffect(() => {
63
- // Skip on SSR or if explicitly skipped
64
- if (isSSR || skip) {
65
- return;
66
- }
67
- let isMounted = true;
68
- const initialize = async () => {
69
- // If already initialized globally, reuse the controller
70
- if (globalController) {
71
- initCount++;
72
- controllerRef.current = globalController;
73
- await globalController.ready;
74
- if (isMounted) {
75
- setReady(true);
76
- }
77
- return;
78
- }
79
- // Dynamic import to ensure this only runs on client
80
- const { initWebKit } = await import('../init');
81
- const controller = initWebKit(optionsRef.current);
82
- globalController = controller;
83
- initCount++;
84
- controllerRef.current = controller;
85
- await controller.ready;
86
- if (isMounted) {
87
- setReady(true);
88
- }
89
- };
90
- initialize();
91
- return () => {
92
- isMounted = false;
93
- initCount--;
94
- // Only dispose if this was the last user of the global controller
95
- if (initCount <= 0 && globalController) {
96
- globalController.dispose();
97
- globalController = null;
98
- initCount = 0;
99
- }
100
- };
101
- }, [skip]);
102
- return {
103
- ready,
104
- theme: controllerRef.current?.theme,
105
- dispose: () => {
106
- controllerRef.current?.dispose();
107
- if (controllerRef.current === globalController) {
108
- globalController = null;
109
- initCount = 0;
110
- }
111
- controllerRef.current = null;
112
- }
113
- };
114
- }
@@ -1,452 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.followSystemTheme = exports.getSystemThemeMode = exports.applyTheme = exports.getThemeName = exports.setThemeName = exports.createDarkTheme = exports.mergeTheme = exports.EASE_THEME_ATTRIBUTE = exports.setThemeValue = exports.getThemeValue = exports.removeTheme = exports.defineTheme = exports.createTheme = void 0;
18
- const tokens_1 = require("./tokens.cjs");
19
- __exportStar(require("./presets.cjs"), exports);
20
- __exportStar(require("./registry.cjs"), exports);
21
- __exportStar(require("./tokens.cjs"), exports);
22
- /**
23
- * CSS variable prefix
24
- */
25
- const CSS_PREFIX = '--color';
26
- const RADII_PREFIX = '--radii';
27
- const SPACING_PREFIX = '--spacing';
28
- const TYPOGRAPHY_PREFIX = '--font';
29
- /**
30
- * Convert a nested object path to CSS variable name
31
- * e.g., ['gray', '100'] -> '--color-gray-100'
32
- */
33
- const toVarName = (prefix, ...parts) => `${prefix}-${parts.join('-')}`;
34
- /**
35
- * Generate CSS variables from a color scale
36
- */
37
- const generateColorScaleVars = (name, scale) => {
38
- const vars = {};
39
- for (const [level, value] of Object.entries(scale)) {
40
- if (value !== undefined) {
41
- vars[toVarName(CSS_PREFIX, name, level)] = value;
42
- }
43
- }
44
- return vars;
45
- };
46
- /**
47
- * Add alpha to an OKLab/OKLCH color string.
48
- * Falls back to `color-mix()` for non-oklab/oklch formats.
49
- */
50
- const withAlpha = (color, alpha) => {
51
- const trimmed = color.trim();
52
- const match = /^(oklab|oklch)\((.+)\)$/.exec(trimmed);
53
- if (match) {
54
- const fn = match[1];
55
- const innerRaw = match[2];
56
- if (fn && innerRaw) {
57
- const inner = innerRaw.trim();
58
- // If the color already has an alpha, keep it as-is.
59
- if (inner.includes('/')) {
60
- return `${fn}(${inner})`;
61
- }
62
- return `${fn}(${inner} / ${alpha})`;
63
- }
64
- }
65
- // Fallback: approximate alpha using color-mix
66
- const pct = Math.round(alpha * 1000) / 10;
67
- return `color-mix(in oklab, ${trimmed} ${pct}%, transparent)`;
68
- };
69
- /**
70
- * Generate CSS variables from a color palette
71
- */
72
- const generateColorVars = (colors) => {
73
- const vars = {};
74
- if (colors.gray) {
75
- Object.assign(vars, generateColorScaleVars('gray', colors.gray));
76
- }
77
- if (colors.blue) {
78
- Object.assign(vars, generateColorScaleVars('blue', colors.blue));
79
- }
80
- // Derived convenience tokens used by some components
81
- const blue = colors.blue;
82
- if (blue?.['200']) {
83
- vars[toVarName(CSS_PREFIX, 'blue', '100-50')] = withAlpha(blue['200'], 0.5);
84
- }
85
- if (blue?.['300']) {
86
- vars[toVarName(CSS_PREFIX, 'blue', '300-40')] = withAlpha(blue['300'], 0.4);
87
- }
88
- if (colors.green) {
89
- Object.assign(vars, generateColorScaleVars('green', colors.green));
90
- }
91
- if (colors.red) {
92
- Object.assign(vars, generateColorScaleVars('red', colors.red));
93
- }
94
- if (colors.orange) {
95
- Object.assign(vars, generateColorScaleVars('orange', colors.orange));
96
- }
97
- if (colors.yellow) {
98
- Object.assign(vars, generateColorScaleVars('yellow', colors.yellow));
99
- }
100
- if (colors.white) {
101
- vars[toVarName(CSS_PREFIX, 'white')] = colors.white;
102
- }
103
- if (colors.black) {
104
- vars[toVarName(CSS_PREFIX, 'black')] = colors.black;
105
- }
106
- if (colors.whiteAlpha) {
107
- for (const [level, value] of Object.entries(colors.whiteAlpha)) {
108
- if (value !== undefined) {
109
- vars[toVarName(CSS_PREFIX, 'white', level)] = value;
110
- }
111
- }
112
- }
113
- // Ensure `--color-white-0` exists (used by slider thumb gradients)
114
- if (!vars[toVarName(CSS_PREFIX, 'white', 0)] && colors.white) {
115
- vars[toVarName(CSS_PREFIX, 'white', 0)] = withAlpha(colors.white, 0);
116
- }
117
- if (colors.blackAlpha) {
118
- for (const [level, value] of Object.entries(colors.blackAlpha)) {
119
- if (value !== undefined) {
120
- vars[toVarName(CSS_PREFIX, 'black', level)] = value;
121
- }
122
- }
123
- }
124
- if (colors.foreground) {
125
- vars[toVarName(CSS_PREFIX, 'foreground')] = colors.foreground;
126
- }
127
- return vars;
128
- };
129
- /**
130
- * Resolve the theme target element.
131
- * This keeps the theme API SSR-safe (no-ops when `document` is not available).
132
- */
133
- const resolveThemeTarget = (element) => {
134
- if (element) {
135
- return element;
136
- }
137
- if (typeof document === 'undefined') {
138
- return null;
139
- }
140
- return document.documentElement;
141
- };
142
- /**
143
- * Generate CSS variables from radii config
144
- */
145
- const generateRadiiVars = (radii) => {
146
- const vars = {};
147
- for (const [name, value] of Object.entries(radii)) {
148
- if (value !== undefined) {
149
- vars[toVarName(RADII_PREFIX, name)] = value;
150
- }
151
- }
152
- return vars;
153
- };
154
- /**
155
- * Generate CSS variables from spacing config
156
- */
157
- const generateSpacingVars = (spacing) => {
158
- const vars = {};
159
- for (const [name, value] of Object.entries(spacing)) {
160
- if (value !== undefined) {
161
- vars[toVarName(SPACING_PREFIX, name)] = value;
162
- }
163
- }
164
- return vars;
165
- };
166
- /**
167
- * Generate CSS variables from typography config
168
- */
169
- const generateTypographyVars = (typography) => {
170
- const vars = {};
171
- if (typography.fontFamily) {
172
- vars[toVarName(TYPOGRAPHY_PREFIX, 'family')] = typography.fontFamily;
173
- }
174
- if (typography.fontMono) {
175
- vars[toVarName(TYPOGRAPHY_PREFIX, 'mono')] = typography.fontMono;
176
- }
177
- if (typography.fontSize) {
178
- vars[toVarName(TYPOGRAPHY_PREFIX, 'size')] = typography.fontSize;
179
- }
180
- if (typography.lineHeight) {
181
- vars[toVarName(TYPOGRAPHY_PREFIX, 'line-height')] = typography.lineHeight;
182
- }
183
- return vars;
184
- };
185
- const normalizeCustomVarName = (name) => {
186
- const trimmed = name.trim();
187
- if (!trimmed) {
188
- return null;
189
- }
190
- return trimmed.startsWith('--') ? trimmed : `--${trimmed}`;
191
- };
192
- const generateCustomVars = (vars) => {
193
- const out = {};
194
- for (const [key, value] of Object.entries(vars)) {
195
- if (value === null || value === undefined) {
196
- continue;
197
- }
198
- const name = normalizeCustomVarName(key);
199
- if (!name) {
200
- continue;
201
- }
202
- out[name] = String(value);
203
- }
204
- return out;
205
- };
206
- /**
207
- * Generate all CSS variables from a theme config
208
- */
209
- const generateThemeVars = (config) => {
210
- const vars = {};
211
- if (config.colors) {
212
- Object.assign(vars, generateColorVars(config.colors));
213
- }
214
- if (config.radii) {
215
- Object.assign(vars, generateRadiiVars(config.radii));
216
- }
217
- if (config.spacing) {
218
- Object.assign(vars, generateSpacingVars(config.spacing));
219
- }
220
- if (config.typography) {
221
- Object.assign(vars, generateTypographyVars(config.typography));
222
- }
223
- if (config.vars) {
224
- Object.assign(vars, generateCustomVars(config.vars));
225
- }
226
- return vars;
227
- };
228
- /**
229
- * Create a CSS string from theme configuration
230
- *
231
- * @param config - Theme configuration object
232
- * @param selector - CSS selector to apply variables to (default: ':root')
233
- * @returns CSS string with variables
234
- *
235
- * @example
236
- * ```typescript
237
- * const css = createTheme({
238
- * colors: {
239
- * blue: { 500: '#3b82f6' }
240
- * }
241
- * });
242
- * // Returns: ':root { --color-blue-500: #3b82f6; }'
243
- * ```
244
- */
245
- const createTheme = (config, selector = ':root') => {
246
- const vars = generateThemeVars(config);
247
- const declarations = Object.entries(vars)
248
- .map(([name, value]) => ` ${name}: ${value};`)
249
- .join('\n');
250
- return `${selector} {\n${declarations}\n}`;
251
- };
252
- exports.createTheme = createTheme;
253
- /**
254
- * Apply theme configuration to an element (default: document root)
255
- *
256
- * @param config - Theme configuration object
257
- * @param element - Target element (default: document.documentElement)
258
- *
259
- * @example
260
- * ```typescript
261
- * // Apply to document root
262
- * defineTheme({
263
- * colors: {
264
- * blue: { 500: '#3b82f6' }
265
- * }
266
- * });
267
- *
268
- * // Apply to specific element
269
- * defineTheme({ colors: { gray: { 900: '#111' } } }, myElement);
270
- * ```
271
- */
272
- const defineTheme = (config, element) => {
273
- const target = resolveThemeTarget(element);
274
- if (!target) {
275
- return;
276
- }
277
- const vars = generateThemeVars(config);
278
- for (const [name, value] of Object.entries(vars)) {
279
- target.style.setProperty(name, value);
280
- }
281
- };
282
- exports.defineTheme = defineTheme;
283
- /**
284
- * Remove theme configuration from an element
285
- *
286
- * @param config - Theme configuration object (to know which variables to remove)
287
- * @param element - Target element (default: document.documentElement)
288
- */
289
- const removeTheme = (config, element) => {
290
- const target = resolveThemeTarget(element);
291
- if (!target) {
292
- return;
293
- }
294
- const vars = generateThemeVars(config);
295
- for (const name of Object.keys(vars)) {
296
- target.style.removeProperty(name);
297
- }
298
- };
299
- exports.removeTheme = removeTheme;
300
- /**
301
- * Get the current value of a CSS theme variable
302
- *
303
- * @param token - Variable name (with or without '--' prefix)
304
- * @param element - Element to read from (default: document.documentElement)
305
- * @returns The computed value or empty string if not found
306
- *
307
- * @example
308
- * ```typescript
309
- * const blue500 = getThemeValue('color-blue-500');
310
- * const radius = getThemeValue('--radii-md');
311
- * ```
312
- */
313
- const getThemeValue = (token, element) => {
314
- const target = resolveThemeTarget(element);
315
- if (!target || typeof getComputedStyle === 'undefined') {
316
- return '';
317
- }
318
- const varName = token.startsWith('--') ? token : `--${token}`;
319
- return getComputedStyle(target).getPropertyValue(varName).trim();
320
- };
321
- exports.getThemeValue = getThemeValue;
322
- /**
323
- * Set a single theme variable
324
- *
325
- * @param token - Variable name (with or without '--' prefix)
326
- * @param value - Value to set
327
- * @param element - Target element (default: document.documentElement)
328
- *
329
- * @example
330
- * ```typescript
331
- * setThemeValue('color-blue-500', '#3b82f6');
332
- * ```
333
- */
334
- const setThemeValue = (token, value, element) => {
335
- const target = resolveThemeTarget(element);
336
- if (!target) {
337
- return;
338
- }
339
- const varName = token.startsWith('--') ? token : `--${token}`;
340
- target.style.setProperty(varName, value);
341
- };
342
- exports.setThemeValue = setThemeValue;
343
- /** Attribute used for CSS-based theme switching */
344
- exports.EASE_THEME_ATTRIBUTE = 'data-ease-theme';
345
- /**
346
- * Merge a theme with the library defaults (dark baseline).
347
- * Use this when you want to start from the built-in design tokens and override a few values.
348
- */
349
- const mergeTheme = (overrides = {}) => {
350
- return {
351
- colors: {
352
- ...tokens_1.defaultColors,
353
- ...overrides.colors,
354
- gray: { ...tokens_1.defaultColors.gray, ...overrides.colors?.gray },
355
- blue: { ...tokens_1.defaultColors.blue, ...overrides.colors?.blue },
356
- green: { ...tokens_1.defaultColors.green, ...overrides.colors?.green },
357
- red: { ...tokens_1.defaultColors.red, ...overrides.colors?.red },
358
- orange: { ...tokens_1.defaultColors.orange, ...overrides.colors?.orange },
359
- yellow: { ...tokens_1.defaultColors.yellow, ...overrides.colors?.yellow },
360
- whiteAlpha: { ...tokens_1.defaultColors.whiteAlpha, ...overrides.colors?.whiteAlpha },
361
- blackAlpha: { ...tokens_1.defaultColors.blackAlpha, ...overrides.colors?.blackAlpha }
362
- },
363
- radii: { ...tokens_1.defaultRadii, ...overrides.radii },
364
- spacing: { ...tokens_1.defaultSpacing, ...overrides.spacing },
365
- typography: { ...tokens_1.defaultTypography, ...overrides.typography },
366
- vars: overrides.vars ? { ...overrides.vars } : undefined
367
- };
368
- };
369
- exports.mergeTheme = mergeTheme;
370
- /**
371
- * Alias for `mergeTheme()`.
372
- * This package ships a dark baseline theme; light/custom themes should be provided by the consumer.
373
- */
374
- const createDarkTheme = (overrides = {}) => (0, exports.mergeTheme)(overrides);
375
- exports.createDarkTheme = createDarkTheme;
376
- /**
377
- * Set the active theme name on an element via `[data-ease-theme="<name>"]`.
378
- * Useful for CSS-scoped themes.
379
- */
380
- const setThemeName = (name, options = {}) => {
381
- const target = resolveThemeTarget(options.element);
382
- if (!target) {
383
- return;
384
- }
385
- const attribute = options.attribute ?? exports.EASE_THEME_ATTRIBUTE;
386
- target.setAttribute(attribute, name);
387
- if (options.colorScheme && options.setColorScheme !== false) {
388
- target.style.colorScheme = options.colorScheme;
389
- }
390
- };
391
- exports.setThemeName = setThemeName;
392
- const getThemeName = (element, attribute = exports.EASE_THEME_ATTRIBUTE) => {
393
- const target = resolveThemeTarget(element);
394
- if (!target) {
395
- return null;
396
- }
397
- return target.getAttribute(attribute);
398
- };
399
- exports.getThemeName = getThemeName;
400
- /**
401
- * Apply a theme config (and optional theme name + color-scheme) to an element.
402
- * This is SSR-safe: it becomes a no-op when `document` is not available.
403
- */
404
- const applyTheme = (theme, options = {}) => {
405
- const target = resolveThemeTarget(options.element);
406
- const attribute = options.attribute ?? exports.EASE_THEME_ATTRIBUTE;
407
- const config = options.mergeWithDefaults ? (0, exports.mergeTheme)(theme) : theme;
408
- (0, exports.defineTheme)(config, target);
409
- if (!target) {
410
- return config;
411
- }
412
- if (options.name && options.setAttribute !== false) {
413
- target.setAttribute(attribute, options.name);
414
- }
415
- if (options.colorScheme && options.setColorScheme !== false) {
416
- target.style.colorScheme = options.colorScheme;
417
- }
418
- return config;
419
- };
420
- exports.applyTheme = applyTheme;
421
- const getSystemThemeMode = () => {
422
- if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {
423
- return 'dark';
424
- }
425
- return window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark';
426
- };
427
- exports.getSystemThemeMode = getSystemThemeMode;
428
- /**
429
- * Follow `prefers-color-scheme` and apply the provided themes.
430
- *
431
- * This package does NOT ship a light theme preset; you supply both themes.
432
- * Returns a cleanup function to remove the media query listener.
433
- */
434
- const followSystemTheme = (themes, options = {}) => {
435
- if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {
436
- return () => { };
437
- }
438
- const media = window.matchMedia('(prefers-color-scheme: light)');
439
- const apply = () => {
440
- const mode = media.matches ? 'light' : 'dark';
441
- const theme = mode === 'light' ? themes.light : themes.dark;
442
- (0, exports.applyTheme)(theme, {
443
- ...options,
444
- name: mode === 'light' ? (options.lightName ?? 'light') : (options.darkName ?? 'dark'),
445
- colorScheme: mode
446
- });
447
- };
448
- apply();
449
- media.addEventListener('change', apply);
450
- return () => media.removeEventListener('change', apply);
451
- };
452
- exports.followSystemTheme = followSystemTheme;