@sprawlify/primitives 0.0.1

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 (378) hide show
  1. package/dist/anatomy.cjs +3 -0
  2. package/dist/anatomy.d.cts +2 -0
  3. package/dist/anatomy.d.mts +2 -0
  4. package/dist/anatomy.mjs +3 -0
  5. package/dist/aria-hidden-DqYx0f_y.mjs +177 -0
  6. package/dist/aria-hidden-DtLU6hSU.cjs +182 -0
  7. package/dist/aria-hidden.cjs +4 -0
  8. package/dist/aria-hidden.d.cts +16 -0
  9. package/dist/aria-hidden.d.mts +16 -0
  10. package/dist/aria-hidden.mjs +4 -0
  11. package/dist/auto-resize-D3qHtFy1.mjs +114 -0
  12. package/dist/auto-resize-xzlPFDyD.cjs +125 -0
  13. package/dist/auto-resize.cjs +5 -0
  14. package/dist/auto-resize.d.cts +17 -0
  15. package/dist/auto-resize.d.mts +17 -0
  16. package/dist/auto-resize.mjs +4 -0
  17. package/dist/chunk-CbDLau6x.cjs +34 -0
  18. package/dist/collection-8XqaNHs_.mjs +1279 -0
  19. package/dist/collection-DIoIDISa.cjs +1326 -0
  20. package/dist/collection.cjs +11 -0
  21. package/dist/collection.d.cts +5 -0
  22. package/dist/collection.d.mts +5 -0
  23. package/dist/collection.mjs +4 -0
  24. package/dist/color-BkAP1Tkd.d.mts +60 -0
  25. package/dist/color-VKewNv2e.d.cts +60 -0
  26. package/dist/color-utils-Cc5GVXZh.mjs +657 -0
  27. package/dist/color-utils-LER_6Zwu.cjs +680 -0
  28. package/dist/color-utils.cjs +7 -0
  29. package/dist/color-utils.d.cts +19 -0
  30. package/dist/color-utils.d.mts +19 -0
  31. package/dist/color-utils.mjs +4 -0
  32. package/dist/core-30pJjyC2.d.mts +49 -0
  33. package/dist/core-CQFbMdTl.cjs +176 -0
  34. package/dist/core-CefBjbst.d.cts +49 -0
  35. package/dist/core-DCFNMTZF.mjs +129 -0
  36. package/dist/core.cjs +12 -0
  37. package/dist/core.d.cts +3 -0
  38. package/dist/core.d.mts +3 -0
  39. package/dist/core.mjs +5 -0
  40. package/dist/create-anatomy-B3XYc-qG.d.mts +70 -0
  41. package/dist/create-anatomy-BGQ8pv8J.d.cts +70 -0
  42. package/dist/create-anatomy-BbDZbHpC.mjs +39 -0
  43. package/dist/create-anatomy-CDsIFUXg.cjs +45 -0
  44. package/dist/create-props-BnF_vl-E.mjs +5 -0
  45. package/dist/create-props-YKy7JIKj.cjs +11 -0
  46. package/dist/data-url-C3ITPVRX.d.cts +10 -0
  47. package/dist/data-url-DLwZ9M77.d.mts +10 -0
  48. package/dist/date-utils-D2xPHa_I.cjs +738 -0
  49. package/dist/date-utils-wEa1hhpc.mjs +474 -0
  50. package/dist/date-utils.cjs +46 -0
  51. package/dist/date-utils.d.cts +101 -0
  52. package/dist/date-utils.d.mts +2 -0
  53. package/dist/date-utils.mjs +3 -0
  54. package/dist/defineProperty-BoUOT9Ie.cjs +49 -0
  55. package/dist/defineProperty-DrXfyjd4.mjs +43 -0
  56. package/dist/dismissable-CTfKZ4OG.cjs +282 -0
  57. package/dist/dismissable-DDrx0xnH.mjs +271 -0
  58. package/dist/dismissable-layer-C7pZU2wi.d.cts +39 -0
  59. package/dist/dismissable-layer-t_b0fk-p.d.mts +39 -0
  60. package/dist/dismissable.cjs +7 -0
  61. package/dist/dismissable.d.cts +3 -0
  62. package/dist/dismissable.d.mts +3 -0
  63. package/dist/dismissable.mjs +6 -0
  64. package/dist/dom-query-CWZdWUGp.cjs +2141 -0
  65. package/dist/dom-query-DFCRhyj1.mjs +1374 -0
  66. package/dist/dom-query.cjs +130 -0
  67. package/dist/dom-query.d.cts +307 -0
  68. package/dist/dom-query.d.mts +307 -0
  69. package/dist/dom-query.mjs +3 -0
  70. package/dist/file-utils.cjs +220 -0
  71. package/dist/file-utils.d.cts +51 -0
  72. package/dist/file-utils.d.mts +51 -0
  73. package/dist/file-utils.mjs +210 -0
  74. package/dist/focus-trap-D-bypQEJ.mjs +485 -0
  75. package/dist/focus-trap-D4i52S9A.cjs +496 -0
  76. package/dist/focus-trap.cjs +5 -0
  77. package/dist/focus-trap.d.cts +88 -0
  78. package/dist/focus-trap.d.mts +88 -0
  79. package/dist/focus-trap.mjs +4 -0
  80. package/dist/focus-visible-DYTWdWpa.cjs +210 -0
  81. package/dist/focus-visible-irppYatv.mjs +175 -0
  82. package/dist/focus-visible.cjs +9 -0
  83. package/dist/focus-visible.d.cts +31 -0
  84. package/dist/focus-visible.d.mts +31 -0
  85. package/dist/focus-visible.mjs +4 -0
  86. package/dist/functions-BOkTDEFM.d.cts +15 -0
  87. package/dist/functions-IZtWcC8Q.d.mts +15 -0
  88. package/dist/highlight-word.cjs +100 -0
  89. package/dist/highlight-word.d.cts +24 -0
  90. package/dist/highlight-word.d.mts +24 -0
  91. package/dist/highlight-word.mjs +99 -0
  92. package/dist/hotkeys.cjs +758 -0
  93. package/dist/hotkeys.d.cts +130 -0
  94. package/dist/hotkeys.d.mts +130 -0
  95. package/dist/hotkeys.mjs +754 -0
  96. package/dist/i18n-utils.cjs +450 -0
  97. package/dist/i18n-utils.d.cts +61 -0
  98. package/dist/i18n-utils.d.mts +61 -0
  99. package/dist/i18n-utils.mjs +440 -0
  100. package/dist/index-BkzYij2j.d.mts +25 -0
  101. package/dist/index-Bqw3r34-.d.cts +1383 -0
  102. package/dist/index-C0MKXQmE.d.mts +1383 -0
  103. package/dist/index-C9-feK5c.d.cts +25 -0
  104. package/dist/index-CD5FN7kY.d.mts +114 -0
  105. package/dist/index-CJji6wHl.d.cts +15 -0
  106. package/dist/index-CNi5FkPe.d.mts +15 -0
  107. package/dist/index-D96rs8B0.d.mts +115 -0
  108. package/dist/index.cjs +0 -0
  109. package/dist/index.d.cts +1 -0
  110. package/dist/index.d.mts +1 -0
  111. package/dist/index.mjs +1 -0
  112. package/dist/interact-outside-BplxR9cR.mjs +200 -0
  113. package/dist/interact-outside-C8-oFBpB.cjs +205 -0
  114. package/dist/interact-outside.cjs +5 -0
  115. package/dist/interact-outside.d.cts +2 -0
  116. package/dist/interact-outside.d.mts +2 -0
  117. package/dist/interact-outside.mjs +5 -0
  118. package/dist/json-tree-utils.cjs +1512 -0
  119. package/dist/json-tree-utils.d.cts +117 -0
  120. package/dist/json-tree-utils.d.mts +117 -0
  121. package/dist/json-tree-utils.mjs +1463 -0
  122. package/dist/list-collection-BIMJGQjn.d.cts +61 -0
  123. package/dist/list-collection-Db3eixRU.d.mts +61 -0
  124. package/dist/live-region-CcZPGo89.cjs +52 -0
  125. package/dist/live-region-CnPh21WH.mjs +46 -0
  126. package/dist/live-region.cjs +3 -0
  127. package/dist/live-region.d.cts +2 -0
  128. package/dist/live-region.d.mts +2 -0
  129. package/dist/live-region.mjs +3 -0
  130. package/dist/machines/accordion/index.cjs +328 -0
  131. package/dist/machines/accordion/index.d.cts +83 -0
  132. package/dist/machines/accordion/index.d.mts +83 -0
  133. package/dist/machines/accordion/index.mjs +322 -0
  134. package/dist/machines/async-list/index.cjs +311 -0
  135. package/dist/machines/async-list/index.d.cts +89 -0
  136. package/dist/machines/async-list/index.d.mts +89 -0
  137. package/dist/machines/async-list/index.mjs +310 -0
  138. package/dist/machines/avatar/index.cjs +169 -0
  139. package/dist/machines/avatar/index.d.cts +63 -0
  140. package/dist/machines/avatar/index.d.mts +63 -0
  141. package/dist/machines/avatar/index.mjs +165 -0
  142. package/dist/machines/bottom-sheet/index.cjs +676 -0
  143. package/dist/machines/bottom-sheet/index.d.cts +239 -0
  144. package/dist/machines/bottom-sheet/index.d.mts +239 -0
  145. package/dist/machines/bottom-sheet/index.mjs +672 -0
  146. package/dist/machines/carousel/index.cjs +859 -0
  147. package/dist/machines/carousel/index.d.cts +146 -0
  148. package/dist/machines/carousel/index.d.mts +146 -0
  149. package/dist/machines/carousel/index.mjs +851 -0
  150. package/dist/machines/checkbox/index.cjs +316 -0
  151. package/dist/machines/checkbox/index.d.cts +81 -0
  152. package/dist/machines/checkbox/index.d.mts +81 -0
  153. package/dist/machines/checkbox/index.mjs +312 -0
  154. package/dist/machines/clipboard/index.cjs +225 -0
  155. package/dist/machines/clipboard/index.d.cts +68 -0
  156. package/dist/machines/clipboard/index.d.mts +68 -0
  157. package/dist/machines/clipboard/index.mjs +219 -0
  158. package/dist/machines/collapsible/index.cjs +362 -0
  159. package/dist/machines/collapsible/index.d.cts +82 -0
  160. package/dist/machines/collapsible/index.d.mts +82 -0
  161. package/dist/machines/collapsible/index.mjs +358 -0
  162. package/dist/machines/color-picker/index.cjs +1529 -0
  163. package/dist/machines/color-picker/index.d.cts +205 -0
  164. package/dist/machines/color-picker/index.d.mts +205 -0
  165. package/dist/machines/color-picker/index.mjs +1514 -0
  166. package/dist/machines/combobox/index.cjs +1593 -0
  167. package/dist/machines/combobox/index.d.cts +214 -0
  168. package/dist/machines/combobox/index.d.mts +214 -0
  169. package/dist/machines/combobox/index.mjs +1582 -0
  170. package/dist/machines/date-picker/index.cjs +2177 -0
  171. package/dist/machines/date-picker/index.d.cts +350 -0
  172. package/dist/machines/date-picker/index.d.mts +350 -0
  173. package/dist/machines/date-picker/index.mjs +2161 -0
  174. package/dist/machines/dialog/index.cjs +325 -0
  175. package/dist/machines/dialog/index.d.cts +80 -0
  176. package/dist/machines/dialog/index.d.mts +80 -0
  177. package/dist/machines/dialog/index.mjs +321 -0
  178. package/dist/machines/editable/index.cjs +551 -0
  179. package/dist/machines/editable/index.d.cts +114 -0
  180. package/dist/machines/editable/index.d.mts +114 -0
  181. package/dist/machines/editable/index.mjs +547 -0
  182. package/dist/machines/floating-panel/index.cjs +995 -0
  183. package/dist/machines/floating-panel/index.d.cts +147 -0
  184. package/dist/machines/floating-panel/index.d.mts +147 -0
  185. package/dist/machines/floating-panel/index.mjs +988 -0
  186. package/dist/machines/hover-card/index.cjs +383 -0
  187. package/dist/machines/hover-card/index.d.cts +69 -0
  188. package/dist/machines/hover-card/index.d.mts +69 -0
  189. package/dist/machines/hover-card/index.mjs +379 -0
  190. package/dist/machines/image-cropper/index.cjs +1995 -0
  191. package/dist/machines/image-cropper/index.d.cts +182 -0
  192. package/dist/machines/image-cropper/index.d.mts +182 -0
  193. package/dist/machines/image-cropper/index.mjs +1990 -0
  194. package/dist/machines/listbox/index.cjs +794 -0
  195. package/dist/machines/listbox/index.d.cts +168 -0
  196. package/dist/machines/listbox/index.d.mts +168 -0
  197. package/dist/machines/listbox/index.mjs +782 -0
  198. package/dist/machines/marquee/index.cjs +395 -0
  199. package/dist/machines/marquee/index.d.cts +102 -0
  200. package/dist/machines/marquee/index.d.mts +102 -0
  201. package/dist/machines/marquee/index.mjs +391 -0
  202. package/dist/machines/menu/index.cjs +1298 -0
  203. package/dist/machines/menu/index.d.cts +175 -0
  204. package/dist/machines/menu/index.d.mts +175 -0
  205. package/dist/machines/menu/index.mjs +1286 -0
  206. package/dist/machines/navigation-menu/index.cjs +861 -0
  207. package/dist/machines/navigation-menu/index.d.cts +127 -0
  208. package/dist/machines/navigation-menu/index.d.mts +127 -0
  209. package/dist/machines/navigation-menu/index.mjs +857 -0
  210. package/dist/machines/number-input/index.cjs +996 -0
  211. package/dist/machines/number-input/index.d.cts +134 -0
  212. package/dist/machines/number-input/index.d.mts +134 -0
  213. package/dist/machines/number-input/index.mjs +991 -0
  214. package/dist/machines/pagination/index.cjs +419 -0
  215. package/dist/machines/pagination/index.d.cts +139 -0
  216. package/dist/machines/pagination/index.d.mts +139 -0
  217. package/dist/machines/pagination/index.mjs +411 -0
  218. package/dist/machines/password-input/index.cjs +228 -0
  219. package/dist/machines/password-input/index.d.cts +71 -0
  220. package/dist/machines/password-input/index.d.mts +71 -0
  221. package/dist/machines/password-input/index.mjs +224 -0
  222. package/dist/machines/pin-input/index.cjs +523 -0
  223. package/dist/machines/pin-input/index.d.cts +105 -0
  224. package/dist/machines/pin-input/index.d.mts +105 -0
  225. package/dist/machines/pin-input/index.mjs +519 -0
  226. package/dist/machines/popover/index.cjs +430 -0
  227. package/dist/machines/popover/index.d.cts +88 -0
  228. package/dist/machines/popover/index.d.mts +88 -0
  229. package/dist/machines/popover/index.mjs +426 -0
  230. package/dist/machines/presence/index.cjs +192 -0
  231. package/dist/machines/presence/index.d.cts +44 -0
  232. package/dist/machines/presence/index.d.mts +44 -0
  233. package/dist/machines/presence/index.mjs +190 -0
  234. package/dist/machines/progress/index.cjs +288 -0
  235. package/dist/machines/progress/index.d.cts +96 -0
  236. package/dist/machines/progress/index.d.mts +96 -0
  237. package/dist/machines/progress/index.mjs +284 -0
  238. package/dist/machines/qr-code/index.cjs +172 -0
  239. package/dist/machines/qr-code/index.d.cts +70 -0
  240. package/dist/machines/qr-code/index.d.mts +70 -0
  241. package/dist/machines/qr-code/index.mjs +167 -0
  242. package/dist/machines/radio-group/index.cjs +436 -0
  243. package/dist/machines/radio-group/index.d.cts +106 -0
  244. package/dist/machines/radio-group/index.d.mts +106 -0
  245. package/dist/machines/radio-group/index.mjs +430 -0
  246. package/dist/machines/rating-group/index.cjs +405 -0
  247. package/dist/machines/rating-group/index.d.cts +101 -0
  248. package/dist/machines/rating-group/index.d.mts +101 -0
  249. package/dist/machines/rating-group/index.mjs +399 -0
  250. package/dist/machines/scroll-area/index.cjs +857 -0
  251. package/dist/machines/scroll-area/index.d.cts +159 -0
  252. package/dist/machines/scroll-area/index.d.mts +159 -0
  253. package/dist/machines/scroll-area/index.mjs +853 -0
  254. package/dist/machines/select/index.cjs +1165 -0
  255. package/dist/machines/select/index.d.cts +183 -0
  256. package/dist/machines/select/index.d.mts +183 -0
  257. package/dist/machines/select/index.mjs +1154 -0
  258. package/dist/machines/signature-pad/index.cjs +334 -0
  259. package/dist/machines/signature-pad/index.d.cts +108 -0
  260. package/dist/machines/signature-pad/index.d.mts +108 -0
  261. package/dist/machines/signature-pad/index.mjs +328 -0
  262. package/dist/machines/slider/index.cjs +957 -0
  263. package/dist/machines/slider/index.d.cts +149 -0
  264. package/dist/machines/slider/index.d.mts +149 -0
  265. package/dist/machines/slider/index.mjs +949 -0
  266. package/dist/machines/splitter/index.cjs +1112 -0
  267. package/dist/machines/splitter/index.d.cts +155 -0
  268. package/dist/machines/splitter/index.d.mts +155 -0
  269. package/dist/machines/splitter/index.mjs +1103 -0
  270. package/dist/machines/steps/index.cjs +289 -0
  271. package/dist/machines/steps/index.d.cts +97 -0
  272. package/dist/machines/steps/index.d.mts +97 -0
  273. package/dist/machines/steps/index.mjs +285 -0
  274. package/dist/machines/switch/index.cjs +305 -0
  275. package/dist/machines/switch/index.d.cts +80 -0
  276. package/dist/machines/switch/index.d.mts +80 -0
  277. package/dist/machines/switch/index.mjs +301 -0
  278. package/dist/machines/tabs/index.cjs +508 -0
  279. package/dist/machines/tabs/index.d.cts +111 -0
  280. package/dist/machines/tabs/index.d.mts +111 -0
  281. package/dist/machines/tabs/index.mjs +500 -0
  282. package/dist/machines/tags-input/index.cjs +1127 -0
  283. package/dist/machines/tags-input/index.d.cts +179 -0
  284. package/dist/machines/tags-input/index.d.mts +179 -0
  285. package/dist/machines/tags-input/index.mjs +1121 -0
  286. package/dist/machines/timer/index.cjs +329 -0
  287. package/dist/machines/timer/index.d.cts +98 -0
  288. package/dist/machines/timer/index.d.mts +98 -0
  289. package/dist/machines/timer/index.mjs +324 -0
  290. package/dist/machines/toast/index.cjs +1155 -0
  291. package/dist/machines/toast/index.d.cts +195 -0
  292. package/dist/machines/toast/index.d.mts +195 -0
  293. package/dist/machines/toast/index.mjs +1151 -0
  294. package/dist/machines/toggle/index.cjs +103 -0
  295. package/dist/machines/toggle/index.d.cts +46 -0
  296. package/dist/machines/toggle/index.d.mts +46 -0
  297. package/dist/machines/toggle/index.mjs +99 -0
  298. package/dist/machines/toggle-group/index.cjs +328 -0
  299. package/dist/machines/toggle-group/index.d.cts +81 -0
  300. package/dist/machines/toggle-group/index.d.mts +81 -0
  301. package/dist/machines/toggle-group/index.mjs +322 -0
  302. package/dist/machines/tooltip/index.cjs +516 -0
  303. package/dist/machines/tooltip/index.d.cts +71 -0
  304. package/dist/machines/tooltip/index.d.mts +71 -0
  305. package/dist/machines/tooltip/index.mjs +512 -0
  306. package/dist/machines/tour/index.cjs +1108 -0
  307. package/dist/machines/tour/index.d.cts +206 -0
  308. package/dist/machines/tour/index.d.mts +206 -0
  309. package/dist/machines/tour/index.mjs +1101 -0
  310. package/dist/machines/tree-view/index.cjs +1271 -0
  311. package/dist/machines/tree-view/index.d.cts +215 -0
  312. package/dist/machines/tree-view/index.d.mts +215 -0
  313. package/dist/machines/tree-view/index.mjs +1263 -0
  314. package/dist/node-BctU8GXk.d.mts +24 -0
  315. package/dist/node-CSsuPZVZ.d.cts +24 -0
  316. package/dist/popper-BPJeAtcA.mjs +349 -0
  317. package/dist/popper-D0FAW_p7.cjs +373 -0
  318. package/dist/popper.cjs +8 -0
  319. package/dist/popper.d.cts +74 -0
  320. package/dist/popper.d.mts +2 -0
  321. package/dist/popper.mjs +5 -0
  322. package/dist/raf-BnlYUlDi.d.mts +15 -0
  323. package/dist/raf-Cd2FGy0z.d.cts +15 -0
  324. package/dist/rect-utils-0ellN0a_.mjs +854 -0
  325. package/dist/rect-utils-DKLRhP8G.cjs +1147 -0
  326. package/dist/rect-utils.cjs +51 -0
  327. package/dist/rect-utils.d.cts +198 -0
  328. package/dist/rect-utils.d.mts +198 -0
  329. package/dist/rect-utils.mjs +3 -0
  330. package/dist/remove-scroll-Lrfv79X_.mjs +58 -0
  331. package/dist/remove-scroll-Uvzg1L9r.cjs +63 -0
  332. package/dist/remove-scroll.cjs +0 -0
  333. package/dist/remove-scroll.d.cts +1 -0
  334. package/dist/remove-scroll.d.mts +1 -0
  335. package/dist/remove-scroll.mjs +1 -0
  336. package/dist/scroll-snap-CrTmQRzA.mjs +152 -0
  337. package/dist/scroll-snap-zyiZLv7W.cjs +175 -0
  338. package/dist/scroll-snap.cjs +7 -0
  339. package/dist/scroll-snap.d.cts +14 -0
  340. package/dist/scroll-snap.d.mts +14 -0
  341. package/dist/scroll-snap.mjs +4 -0
  342. package/dist/selection-BIhSzkF7.d.mts +50 -0
  343. package/dist/selection-CS1GBp8e.d.cts +50 -0
  344. package/dist/store-BZcXv49B.cjs +305 -0
  345. package/dist/store-DEojWy9H.mjs +263 -0
  346. package/dist/store.cjs +9 -0
  347. package/dist/store.d.cts +26 -0
  348. package/dist/store.d.mts +26 -0
  349. package/dist/store.mjs +3 -0
  350. package/dist/stringify-state.cjs +49 -0
  351. package/dist/stringify-state.d.cts +8 -0
  352. package/dist/stringify-state.d.mts +8 -0
  353. package/dist/stringify-state.mjs +46 -0
  354. package/dist/tree-collection-BwU5WhGQ.d.mts +78 -0
  355. package/dist/tree-collection-DP_eznnI.d.cts +78 -0
  356. package/dist/typeahead-BdNwVP09.d.cts +45 -0
  357. package/dist/typeahead-XN6lZ7G9.d.mts +45 -0
  358. package/dist/types-BivBkYg9.d.cts +57 -0
  359. package/dist/types-Bl_6JtPQ.d.mts +57 -0
  360. package/dist/types-CPUMVt7c.d.mts +54 -0
  361. package/dist/types-CT_W6HWr.d.cts +54 -0
  362. package/dist/types-DDTcG99l.d.mts +201 -0
  363. package/dist/types-DejIu60O.d.cts +201 -0
  364. package/dist/types-DiIdKZ3K.d.cts +45 -0
  365. package/dist/types-GxLIgJib.d.cts +17 -0
  366. package/dist/types.cjs +15 -0
  367. package/dist/types.d.cts +2 -0
  368. package/dist/types.d.mts +2 -0
  369. package/dist/types.mjs +14 -0
  370. package/dist/utils-BZyrxWWR.mjs +525 -0
  371. package/dist/utils-_6frwjgJ.cjs +1040 -0
  372. package/dist/utils.cjs +88 -0
  373. package/dist/utils.d.cts +144 -0
  374. package/dist/utils.d.mts +144 -0
  375. package/dist/utils.mjs +3 -0
  376. package/dist/wait-for-CMjPsqWk.d.cts +10 -0
  377. package/dist/wait-for-D2nkdD4z.d.mts +10 -0
  378. package/package.json +399 -0
@@ -0,0 +1,19 @@
1
+ import { a as ColorFormat, i as ColorChannelRange, n as ColorAxes, o as ColorStringFormat, r as ColorChannel, s as ColorType, t as Color } from "./color-VKewNv2e.cjs";
2
+
3
+ //#region src/shared/color-utils/area-gradient.d.ts
4
+ interface GradientOptions {
5
+ xChannel: ColorChannel;
6
+ yChannel: ColorChannel;
7
+ dir?: "rtl" | "ltr" | undefined;
8
+ }
9
+ interface GradientStyles {
10
+ areaStyles: Record<string, string>;
11
+ areaGradientStyles: Record<string, string>;
12
+ }
13
+ declare function getColorAreaGradient(color: Color, options: GradientOptions): GradientStyles;
14
+ //#endregion
15
+ //#region src/shared/color-utils/parse-color.d.ts
16
+ declare const parseColor: (value: string) => ColorType;
17
+ declare const normalizeColor: (v: string | ColorType) => ColorType;
18
+ //#endregion
19
+ export { Color, ColorAxes, ColorChannel, ColorChannelRange, ColorFormat, ColorStringFormat, ColorType, getColorAreaGradient, normalizeColor, parseColor };
@@ -0,0 +1,19 @@
1
+ import { a as ColorFormat, i as ColorChannelRange, n as ColorAxes, o as ColorStringFormat, r as ColorChannel, s as ColorType, t as Color } from "./color-BkAP1Tkd.mjs";
2
+
3
+ //#region src/shared/color-utils/area-gradient.d.ts
4
+ interface GradientOptions {
5
+ xChannel: ColorChannel;
6
+ yChannel: ColorChannel;
7
+ dir?: "rtl" | "ltr" | undefined;
8
+ }
9
+ interface GradientStyles {
10
+ areaStyles: Record<string, string>;
11
+ areaGradientStyles: Record<string, string>;
12
+ }
13
+ declare function getColorAreaGradient(color: Color, options: GradientOptions): GradientStyles;
14
+ //#endregion
15
+ //#region src/shared/color-utils/parse-color.d.ts
16
+ declare const parseColor: (value: string) => ColorType;
17
+ declare const normalizeColor: (v: string | ColorType) => ColorType;
18
+ //#endregion
19
+ export { Color, ColorAxes, ColorChannel, ColorChannelRange, ColorFormat, ColorStringFormat, ColorType, getColorAreaGradient, normalizeColor, parseColor };
@@ -0,0 +1,4 @@
1
+ import "./utils-BZyrxWWR.mjs";
2
+ import { i as getColorAreaGradient, n as parseColor, r as Color, t as normalizeColor } from "./color-utils-Cc5GVXZh.mjs";
3
+
4
+ export { Color, getColorAreaGradient, normalizeColor, parseColor };
@@ -0,0 +1,49 @@
1
+ import { b as Transition, d as GuardFn, g as Params, m as MachineSchema, p as Machine, v as Scope } from "./types-DDTcG99l.mjs";
2
+ import { l as isActiveElement } from "./node-BctU8GXk.mjs";
3
+
4
+ //#region src/shared/core/merge-props.d.ts
5
+ interface Props {
6
+ [key: string | symbol]: any;
7
+ }
8
+ type TupleTypes<T extends any[]> = T[number];
9
+ type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
10
+ declare function mergeProps<T extends Props>(...args: Array<T | undefined>): UnionToIntersection<TupleTypes<T[]>>;
11
+ //#endregion
12
+ //#region src/shared/core/memo.d.ts
13
+ type NoInfer<T> = [T][T extends any ? 0 : never];
14
+ declare function memo<TDeps extends any[], TDepArgs, TResult>(getDeps: (depArgs: TDepArgs) => [...TDeps], fn: (args: NoInfer<[...TDeps]>, deps: TDepArgs) => TResult, opts?: {
15
+ onChange?: ((result: TResult) => void) | undefined;
16
+ }): (depArgs: TDepArgs) => TResult;
17
+ //#endregion
18
+ //#region src/shared/core/create-machine.d.ts
19
+ declare function createGuards<T extends MachineSchema>(): {
20
+ and: (...guards: Array<GuardFn<T> | T["guard"]>) => (params: any) => boolean;
21
+ or: (...guards: Array<GuardFn<T> | T["guard"]>) => (params: any) => boolean;
22
+ not: (guard: GuardFn<T> | T["guard"]) => (params: any) => boolean;
23
+ };
24
+ declare function createMachine<T extends MachineSchema>(config: Machine<T>): Machine<T>;
25
+ declare function setup<T extends MachineSchema>(): {
26
+ guards: {
27
+ and: (...guards: (GuardFn<T> | T["guard"])[]) => (params: any) => boolean;
28
+ or: (...guards: (GuardFn<T> | T["guard"])[]) => (params: any) => boolean;
29
+ not: (guard: GuardFn<T> | T["guard"]) => (params: any) => boolean;
30
+ };
31
+ createMachine: (config: Machine<T>) => Machine<T>;
32
+ choose: (transitions: Transition<T> | Transition<T>[]) => ({
33
+ choose
34
+ }: Params<T>) => T["action"][] | undefined;
35
+ };
36
+ //#endregion
37
+ //#region src/shared/core/scope.d.ts
38
+ declare function createScope(props: Pick<Scope, "id" | "ids" | "getRootNode">): {
39
+ getRootNode: () => Document | ShadowRoot;
40
+ getDoc: () => Document;
41
+ getWin: () => Window & typeof globalThis;
42
+ getActiveElement: () => HTMLElement | null;
43
+ isActiveElement: typeof isActiveElement;
44
+ getById: <T extends Element = HTMLElement>(id: string) => T | null;
45
+ ids?: Record<string, any> | undefined;
46
+ id?: string | undefined | undefined;
47
+ };
48
+ //#endregion
49
+ export { memo as a, setup as i, createGuards as n, mergeProps as o, createMachine as r, createScope as t };
@@ -0,0 +1,176 @@
1
+ const require_dom_query = require('./dom-query-CWZdWUGp.cjs');
2
+ const require_utils = require('./utils-_6frwjgJ.cjs');
3
+
4
+ //#region src/shared/core/merge-props.ts
5
+ const clsx = (...args) => args.map((str) => str?.trim?.()).filter(Boolean).join(" ");
6
+ const CSS_REGEX = /((?:--)?(?:\w+-?)+)\s*:\s*([^;]*)/g;
7
+ const serialize = (style) => {
8
+ const res = {};
9
+ let match;
10
+ while (match = CSS_REGEX.exec(style)) res[match[1]] = match[2];
11
+ return res;
12
+ };
13
+ const css = (a, b) => {
14
+ if (require_utils.isString(a)) {
15
+ if (require_utils.isString(b)) return `${a};${b}`;
16
+ a = serialize(a);
17
+ } else if (require_utils.isString(b)) b = serialize(b);
18
+ return Object.assign({}, a ?? {}, b ?? {});
19
+ };
20
+ function mergeProps(...args) {
21
+ let result = {};
22
+ for (let props of args) {
23
+ if (!props) continue;
24
+ for (let key in result) {
25
+ if (key.startsWith("on") && typeof result[key] === "function" && typeof props[key] === "function") {
26
+ result[key] = require_utils.callAll(props[key], result[key]);
27
+ continue;
28
+ }
29
+ if (key === "className" || key === "class") {
30
+ result[key] = clsx(result[key], props[key]);
31
+ continue;
32
+ }
33
+ if (key === "style") {
34
+ result[key] = css(result[key], props[key]);
35
+ continue;
36
+ }
37
+ result[key] = props[key] !== void 0 ? props[key] : result[key];
38
+ }
39
+ for (let key in props) if (result[key] === void 0) result[key] = props[key];
40
+ const symbols = Object.getOwnPropertySymbols(props);
41
+ for (let symbol of symbols) result[symbol] = props[symbol];
42
+ }
43
+ return result;
44
+ }
45
+
46
+ //#endregion
47
+ //#region src/shared/core/memo.ts
48
+ function memo(getDeps, fn, opts) {
49
+ let deps = [];
50
+ let result;
51
+ return (depArgs) => {
52
+ const newDeps = getDeps(depArgs);
53
+ if (!(newDeps.length !== deps.length || newDeps.some((dep, index) => !require_utils.isEqual(deps[index], dep)))) return result;
54
+ deps = newDeps;
55
+ result = fn(newDeps, depArgs);
56
+ opts?.onChange?.(result);
57
+ return result;
58
+ };
59
+ }
60
+
61
+ //#endregion
62
+ //#region src/shared/core/create-machine.ts
63
+ function createGuards() {
64
+ return {
65
+ and: (...guards) => {
66
+ return function andGuard(params) {
67
+ return guards.every((str) => params.guard(str));
68
+ };
69
+ },
70
+ or: (...guards) => {
71
+ return function orGuard(params) {
72
+ return guards.some((str) => params.guard(str));
73
+ };
74
+ },
75
+ not: (guard) => {
76
+ return function notGuard(params) {
77
+ return !params.guard(guard);
78
+ };
79
+ }
80
+ };
81
+ }
82
+ function createMachine(config) {
83
+ return config;
84
+ }
85
+ function setup() {
86
+ return {
87
+ guards: createGuards(),
88
+ createMachine: (config) => {
89
+ return createMachine(config);
90
+ },
91
+ choose: (transitions) => {
92
+ return function chooseFn({ choose }) {
93
+ return choose(transitions)?.actions;
94
+ };
95
+ }
96
+ };
97
+ }
98
+
99
+ //#endregion
100
+ //#region src/shared/core/types.ts
101
+ let MachineStatus = /* @__PURE__ */ function(MachineStatus$1) {
102
+ MachineStatus$1["NotStarted"] = "Not Started";
103
+ MachineStatus$1["Started"] = "Started";
104
+ MachineStatus$1["Stopped"] = "Stopped";
105
+ return MachineStatus$1;
106
+ }({});
107
+ const INIT_STATE = "__init__";
108
+
109
+ //#endregion
110
+ //#region src/shared/core/scope.ts
111
+ function createScope(props) {
112
+ const getRootNode = () => props.getRootNode?.() ?? document;
113
+ const getDoc = () => require_dom_query.getDocument(getRootNode());
114
+ const getWin = () => getDoc().defaultView ?? window;
115
+ const getActiveElementFn = () => require_dom_query.getActiveElement(getRootNode());
116
+ const getById = (id) => getRootNode().getElementById(id);
117
+ return {
118
+ ...props,
119
+ getRootNode,
120
+ getDoc,
121
+ getWin,
122
+ getActiveElement: getActiveElementFn,
123
+ isActiveElement: require_dom_query.isActiveElement,
124
+ getById
125
+ };
126
+ }
127
+
128
+ //#endregion
129
+ Object.defineProperty(exports, 'INIT_STATE', {
130
+ enumerable: true,
131
+ get: function () {
132
+ return INIT_STATE;
133
+ }
134
+ });
135
+ Object.defineProperty(exports, 'MachineStatus', {
136
+ enumerable: true,
137
+ get: function () {
138
+ return MachineStatus;
139
+ }
140
+ });
141
+ Object.defineProperty(exports, 'createGuards', {
142
+ enumerable: true,
143
+ get: function () {
144
+ return createGuards;
145
+ }
146
+ });
147
+ Object.defineProperty(exports, 'createMachine', {
148
+ enumerable: true,
149
+ get: function () {
150
+ return createMachine;
151
+ }
152
+ });
153
+ Object.defineProperty(exports, 'createScope', {
154
+ enumerable: true,
155
+ get: function () {
156
+ return createScope;
157
+ }
158
+ });
159
+ Object.defineProperty(exports, 'memo', {
160
+ enumerable: true,
161
+ get: function () {
162
+ return memo;
163
+ }
164
+ });
165
+ Object.defineProperty(exports, 'mergeProps', {
166
+ enumerable: true,
167
+ get: function () {
168
+ return mergeProps;
169
+ }
170
+ });
171
+ Object.defineProperty(exports, 'setup', {
172
+ enumerable: true,
173
+ get: function () {
174
+ return setup;
175
+ }
176
+ });
@@ -0,0 +1,49 @@
1
+ import { b as Transition, d as GuardFn, g as Params, m as MachineSchema, p as Machine, v as Scope } from "./types-DejIu60O.cjs";
2
+ import { l as isActiveElement } from "./node-CSsuPZVZ.cjs";
3
+
4
+ //#region src/shared/core/merge-props.d.ts
5
+ interface Props {
6
+ [key: string | symbol]: any;
7
+ }
8
+ type TupleTypes<T extends any[]> = T[number];
9
+ type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
10
+ declare function mergeProps<T extends Props>(...args: Array<T | undefined>): UnionToIntersection<TupleTypes<T[]>>;
11
+ //#endregion
12
+ //#region src/shared/core/memo.d.ts
13
+ type NoInfer<T> = [T][T extends any ? 0 : never];
14
+ declare function memo<TDeps extends any[], TDepArgs, TResult>(getDeps: (depArgs: TDepArgs) => [...TDeps], fn: (args: NoInfer<[...TDeps]>, deps: TDepArgs) => TResult, opts?: {
15
+ onChange?: ((result: TResult) => void) | undefined;
16
+ }): (depArgs: TDepArgs) => TResult;
17
+ //#endregion
18
+ //#region src/shared/core/create-machine.d.ts
19
+ declare function createGuards<T extends MachineSchema>(): {
20
+ and: (...guards: Array<GuardFn<T> | T["guard"]>) => (params: any) => boolean;
21
+ or: (...guards: Array<GuardFn<T> | T["guard"]>) => (params: any) => boolean;
22
+ not: (guard: GuardFn<T> | T["guard"]) => (params: any) => boolean;
23
+ };
24
+ declare function createMachine<T extends MachineSchema>(config: Machine<T>): Machine<T>;
25
+ declare function setup<T extends MachineSchema>(): {
26
+ guards: {
27
+ and: (...guards: (GuardFn<T> | T["guard"])[]) => (params: any) => boolean;
28
+ or: (...guards: (GuardFn<T> | T["guard"])[]) => (params: any) => boolean;
29
+ not: (guard: GuardFn<T> | T["guard"]) => (params: any) => boolean;
30
+ };
31
+ createMachine: (config: Machine<T>) => Machine<T>;
32
+ choose: (transitions: Transition<T> | Transition<T>[]) => ({
33
+ choose
34
+ }: Params<T>) => T["action"][] | undefined;
35
+ };
36
+ //#endregion
37
+ //#region src/shared/core/scope.d.ts
38
+ declare function createScope(props: Pick<Scope, "id" | "ids" | "getRootNode">): {
39
+ getRootNode: () => Document | ShadowRoot;
40
+ getDoc: () => Document;
41
+ getWin: () => Window & typeof globalThis;
42
+ getActiveElement: () => HTMLElement | null;
43
+ isActiveElement: typeof isActiveElement;
44
+ getById: <T extends Element = HTMLElement>(id: string) => T | null;
45
+ ids?: Record<string, any> | undefined;
46
+ id?: string | undefined | undefined;
47
+ };
48
+ //#endregion
49
+ export { memo as a, setup as i, createGuards as n, mergeProps as o, createMachine as r, createScope as t };
@@ -0,0 +1,129 @@
1
+ import { Qt as getDocument, Zt as getActiveElement, in as isActiveElement } from "./dom-query-DFCRhyj1.mjs";
2
+ import { W as callAll, dt as isEqual, ut as isString } from "./utils-BZyrxWWR.mjs";
3
+
4
+ //#region src/shared/core/merge-props.ts
5
+ const clsx = (...args) => args.map((str) => str?.trim?.()).filter(Boolean).join(" ");
6
+ const CSS_REGEX = /((?:--)?(?:\w+-?)+)\s*:\s*([^;]*)/g;
7
+ const serialize = (style) => {
8
+ const res = {};
9
+ let match;
10
+ while (match = CSS_REGEX.exec(style)) res[match[1]] = match[2];
11
+ return res;
12
+ };
13
+ const css = (a, b) => {
14
+ if (isString(a)) {
15
+ if (isString(b)) return `${a};${b}`;
16
+ a = serialize(a);
17
+ } else if (isString(b)) b = serialize(b);
18
+ return Object.assign({}, a ?? {}, b ?? {});
19
+ };
20
+ function mergeProps(...args) {
21
+ let result = {};
22
+ for (let props of args) {
23
+ if (!props) continue;
24
+ for (let key in result) {
25
+ if (key.startsWith("on") && typeof result[key] === "function" && typeof props[key] === "function") {
26
+ result[key] = callAll(props[key], result[key]);
27
+ continue;
28
+ }
29
+ if (key === "className" || key === "class") {
30
+ result[key] = clsx(result[key], props[key]);
31
+ continue;
32
+ }
33
+ if (key === "style") {
34
+ result[key] = css(result[key], props[key]);
35
+ continue;
36
+ }
37
+ result[key] = props[key] !== void 0 ? props[key] : result[key];
38
+ }
39
+ for (let key in props) if (result[key] === void 0) result[key] = props[key];
40
+ const symbols = Object.getOwnPropertySymbols(props);
41
+ for (let symbol of symbols) result[symbol] = props[symbol];
42
+ }
43
+ return result;
44
+ }
45
+
46
+ //#endregion
47
+ //#region src/shared/core/memo.ts
48
+ function memo(getDeps, fn, opts) {
49
+ let deps = [];
50
+ let result;
51
+ return (depArgs) => {
52
+ const newDeps = getDeps(depArgs);
53
+ if (!(newDeps.length !== deps.length || newDeps.some((dep, index) => !isEqual(deps[index], dep)))) return result;
54
+ deps = newDeps;
55
+ result = fn(newDeps, depArgs);
56
+ opts?.onChange?.(result);
57
+ return result;
58
+ };
59
+ }
60
+
61
+ //#endregion
62
+ //#region src/shared/core/create-machine.ts
63
+ function createGuards() {
64
+ return {
65
+ and: (...guards) => {
66
+ return function andGuard(params) {
67
+ return guards.every((str) => params.guard(str));
68
+ };
69
+ },
70
+ or: (...guards) => {
71
+ return function orGuard(params) {
72
+ return guards.some((str) => params.guard(str));
73
+ };
74
+ },
75
+ not: (guard) => {
76
+ return function notGuard(params) {
77
+ return !params.guard(guard);
78
+ };
79
+ }
80
+ };
81
+ }
82
+ function createMachine(config) {
83
+ return config;
84
+ }
85
+ function setup() {
86
+ return {
87
+ guards: createGuards(),
88
+ createMachine: (config) => {
89
+ return createMachine(config);
90
+ },
91
+ choose: (transitions) => {
92
+ return function chooseFn({ choose }) {
93
+ return choose(transitions)?.actions;
94
+ };
95
+ }
96
+ };
97
+ }
98
+
99
+ //#endregion
100
+ //#region src/shared/core/types.ts
101
+ let MachineStatus = /* @__PURE__ */ function(MachineStatus$1) {
102
+ MachineStatus$1["NotStarted"] = "Not Started";
103
+ MachineStatus$1["Started"] = "Started";
104
+ MachineStatus$1["Stopped"] = "Stopped";
105
+ return MachineStatus$1;
106
+ }({});
107
+ const INIT_STATE = "__init__";
108
+
109
+ //#endregion
110
+ //#region src/shared/core/scope.ts
111
+ function createScope(props) {
112
+ const getRootNode = () => props.getRootNode?.() ?? document;
113
+ const getDoc = () => getDocument(getRootNode());
114
+ const getWin = () => getDoc().defaultView ?? window;
115
+ const getActiveElementFn = () => getActiveElement(getRootNode());
116
+ const getById = (id) => getRootNode().getElementById(id);
117
+ return {
118
+ ...props,
119
+ getRootNode,
120
+ getDoc,
121
+ getWin,
122
+ getActiveElement: getActiveElementFn,
123
+ isActiveElement,
124
+ getById
125
+ };
126
+ }
127
+
128
+ //#endregion
129
+ export { createMachine as a, mergeProps as c, createGuards as i, INIT_STATE as n, setup as o, MachineStatus as r, memo as s, createScope as t };
package/dist/core.cjs ADDED
@@ -0,0 +1,12 @@
1
+ require('./dom-query-CWZdWUGp.cjs');
2
+ require('./utils-_6frwjgJ.cjs');
3
+ const require_core = require('./core-CQFbMdTl.cjs');
4
+
5
+ exports.INIT_STATE = require_core.INIT_STATE;
6
+ exports.MachineStatus = require_core.MachineStatus;
7
+ exports.createGuards = require_core.createGuards;
8
+ exports.createMachine = require_core.createMachine;
9
+ exports.createScope = require_core.createScope;
10
+ exports.memo = require_core.memo;
11
+ exports.mergeProps = require_core.mergeProps;
12
+ exports.setup = require_core.setup;
@@ -0,0 +1,3 @@
1
+ import { a as memo, i as setup, n as createGuards, o as mergeProps, r as createMachine, t as createScope } from "./core-CefBjbst.cjs";
2
+ import { _ as PropFn, a as BindableParams, b as Transition, c as ComputedFn, d as GuardFn, f as INIT_STATE, g as Params, h as MachineStatus, i as BindableFn, l as EffectsOrFn, m as MachineSchema, n as Bindable, o as BindableRefs, p as Machine, r as BindableContext, s as ChooseFn, t as ActionsOrFn, u as EventObject, v as Scope, x as ValueOrFn, y as Service } from "./types-DejIu60O.cjs";
3
+ export { ActionsOrFn, Bindable, BindableContext, BindableFn, BindableParams, BindableRefs, ChooseFn, ComputedFn, EffectsOrFn, EventObject, GuardFn, INIT_STATE, Machine, MachineSchema, MachineStatus, Params, PropFn, Scope, Service, Transition, ValueOrFn, createGuards, createMachine, createScope, memo, mergeProps, setup };
@@ -0,0 +1,3 @@
1
+ import { a as memo, i as setup, n as createGuards, o as mergeProps, r as createMachine, t as createScope } from "./core-30pJjyC2.mjs";
2
+ import { _ as PropFn, a as BindableParams, b as Transition, c as ComputedFn, d as GuardFn, f as INIT_STATE, g as Params, h as MachineStatus, i as BindableFn, l as EffectsOrFn, m as MachineSchema, n as Bindable, o as BindableRefs, p as Machine, r as BindableContext, s as ChooseFn, t as ActionsOrFn, u as EventObject, v as Scope, x as ValueOrFn, y as Service } from "./types-DDTcG99l.mjs";
3
+ export { ActionsOrFn, Bindable, BindableContext, BindableFn, BindableParams, BindableRefs, ChooseFn, ComputedFn, EffectsOrFn, EventObject, GuardFn, INIT_STATE, Machine, MachineSchema, MachineStatus, Params, PropFn, Scope, Service, Transition, ValueOrFn, createGuards, createMachine, createScope, memo, mergeProps, setup };
package/dist/core.mjs ADDED
@@ -0,0 +1,5 @@
1
+ import "./dom-query-DFCRhyj1.mjs";
2
+ import "./utils-BZyrxWWR.mjs";
3
+ import { a as createMachine, c as mergeProps, i as createGuards, n as INIT_STATE, o as setup, r as MachineStatus, s as memo, t as createScope } from "./core-DCFNMTZF.mjs";
4
+
5
+ export { INIT_STATE, MachineStatus, createGuards, createMachine, createScope, memo, mergeProps, setup };
@@ -0,0 +1,70 @@
1
+ //#region src/shared/anatomy/create-anatomy.d.ts
2
+ /**
3
+ * Represents a part of an anatomy with its selector and attributes.
4
+ */
5
+ interface AnatomyPart {
6
+ /**
7
+ * The CSS selector for the anatomy part.
8
+ */
9
+ selector: string;
10
+ /**
11
+ * The attributes associated with the anatomy part.
12
+ */
13
+ attrs: Record<"data-scope" | "data-part", string>;
14
+ }
15
+ /**
16
+ * Represents an instance of anatomy without the parts method.
17
+ */
18
+ type AnatomyInstance<T extends string> = Omit<Anatomy<T>, "parts">;
19
+ /**
20
+ * Extracts the part names from an anatomy instance.
21
+ */
22
+ type AnatomyPartName<T> = T extends AnatomyInstance<infer U> ? U : never;
23
+ /**
24
+ * Interface for creating and manipulating anatomy objects.
25
+ */
26
+ interface Anatomy<T extends string> {
27
+ /**
28
+ * Defines the parts of the anatomy.
29
+ * @param parts - The part names.
30
+ * @returns An anatomy instance with the specified parts.
31
+ */
32
+ parts: <U extends string>(...parts: U[]) => AnatomyInstance<U>;
33
+ /**
34
+ * Extends the anatomy with additional parts.
35
+ * @param parts - The additional part names.
36
+ * @returns An anatomy instance with extended parts.
37
+ */
38
+ extendWith: <V extends string>(...parts: V[]) => AnatomyInstance<T | V>;
39
+ /**
40
+ * Builds the anatomy into a record of parts.
41
+ * @returns A record mapping part names to AnatomyPart objects.
42
+ */
43
+ build: () => Record<T, AnatomyPart>;
44
+ /**
45
+ * Renames the anatomy.
46
+ * @param newName - The new name for the anatomy.
47
+ * @returns A new anatomy with the updated name.
48
+ */
49
+ rename: (newName: string) => Anatomy<T>;
50
+ /**
51
+ * Gets the keys (part names) of the anatomy.
52
+ * @returns An array of part names.
53
+ */
54
+ keys: () => T[];
55
+ /**
56
+ * Omits specified parts from the anatomy.
57
+ * @param values - The part names to omit.
58
+ * @returns An anatomy instance without the omitted parts.
59
+ */
60
+ omit: <U extends T>(...values: U[]) => AnatomyInstance<Exclude<T, U>>;
61
+ }
62
+ /**
63
+ * Creates an anatomy object for defining component parts and their selectors.
64
+ * @param name - The name of the anatomy.
65
+ * @param parts - The initial parts of the anatomy.
66
+ * @returns An anatomy object.
67
+ */
68
+ declare const createAnatomy: <T extends string>(name: string, parts?: T[]) => Anatomy<T>;
69
+ //#endregion
70
+ export { createAnatomy as a, AnatomyPartName as i, AnatomyInstance as n, AnatomyPart as r, Anatomy as t };
@@ -0,0 +1,70 @@
1
+ //#region src/shared/anatomy/create-anatomy.d.ts
2
+ /**
3
+ * Represents a part of an anatomy with its selector and attributes.
4
+ */
5
+ interface AnatomyPart {
6
+ /**
7
+ * The CSS selector for the anatomy part.
8
+ */
9
+ selector: string;
10
+ /**
11
+ * The attributes associated with the anatomy part.
12
+ */
13
+ attrs: Record<"data-scope" | "data-part", string>;
14
+ }
15
+ /**
16
+ * Represents an instance of anatomy without the parts method.
17
+ */
18
+ type AnatomyInstance<T extends string> = Omit<Anatomy<T>, "parts">;
19
+ /**
20
+ * Extracts the part names from an anatomy instance.
21
+ */
22
+ type AnatomyPartName<T> = T extends AnatomyInstance<infer U> ? U : never;
23
+ /**
24
+ * Interface for creating and manipulating anatomy objects.
25
+ */
26
+ interface Anatomy<T extends string> {
27
+ /**
28
+ * Defines the parts of the anatomy.
29
+ * @param parts - The part names.
30
+ * @returns An anatomy instance with the specified parts.
31
+ */
32
+ parts: <U extends string>(...parts: U[]) => AnatomyInstance<U>;
33
+ /**
34
+ * Extends the anatomy with additional parts.
35
+ * @param parts - The additional part names.
36
+ * @returns An anatomy instance with extended parts.
37
+ */
38
+ extendWith: <V extends string>(...parts: V[]) => AnatomyInstance<T | V>;
39
+ /**
40
+ * Builds the anatomy into a record of parts.
41
+ * @returns A record mapping part names to AnatomyPart objects.
42
+ */
43
+ build: () => Record<T, AnatomyPart>;
44
+ /**
45
+ * Renames the anatomy.
46
+ * @param newName - The new name for the anatomy.
47
+ * @returns A new anatomy with the updated name.
48
+ */
49
+ rename: (newName: string) => Anatomy<T>;
50
+ /**
51
+ * Gets the keys (part names) of the anatomy.
52
+ * @returns An array of part names.
53
+ */
54
+ keys: () => T[];
55
+ /**
56
+ * Omits specified parts from the anatomy.
57
+ * @param values - The part names to omit.
58
+ * @returns An anatomy instance without the omitted parts.
59
+ */
60
+ omit: <U extends T>(...values: U[]) => AnatomyInstance<Exclude<T, U>>;
61
+ }
62
+ /**
63
+ * Creates an anatomy object for defining component parts and their selectors.
64
+ * @param name - The name of the anatomy.
65
+ * @param parts - The initial parts of the anatomy.
66
+ * @returns An anatomy object.
67
+ */
68
+ declare const createAnatomy: <T extends string>(name: string, parts?: T[]) => Anatomy<T>;
69
+ //#endregion
70
+ export { createAnatomy as a, AnatomyPartName as i, AnatomyInstance as n, AnatomyPart as r, Anatomy as t };
@@ -0,0 +1,39 @@
1
+ //#region src/shared/anatomy/create-anatomy.ts
2
+ /**
3
+ * Creates an anatomy object for defining component parts and their selectors.
4
+ * @param name - The name of the anatomy.
5
+ * @param parts - The initial parts of the anatomy.
6
+ * @returns An anatomy object.
7
+ */
8
+ const createAnatomy = (name, parts = []) => ({
9
+ parts: (...values) => {
10
+ if (isEmpty(parts)) return createAnatomy(name, values);
11
+ throw new Error("createAnatomy().parts(...) should only be called once. Did you mean to use .extendWith(...) ?");
12
+ },
13
+ extendWith: (...values) => createAnatomy(name, [...parts, ...values]),
14
+ omit: (...values) => createAnatomy(name, parts.filter((part) => !values.includes(part))),
15
+ rename: (newName) => createAnatomy(newName, parts),
16
+ keys: () => parts,
17
+ build: () => [...new Set(parts)].reduce((prev, part) => Object.assign(prev, { [part]: {
18
+ selector: [`&[data-scope="${toKebabCase(name)}"][data-part="${toKebabCase(part)}"]`, `& [data-scope="${toKebabCase(name)}"][data-part="${toKebabCase(part)}"]`].join(", "),
19
+ attrs: {
20
+ "data-scope": toKebabCase(name),
21
+ "data-part": toKebabCase(part)
22
+ }
23
+ } }), {})
24
+ });
25
+ /**
26
+ * Converts a string to kebab-case.
27
+ * @param value - The string to convert.
28
+ * @returns The kebab-case version of the string.
29
+ */
30
+ const toKebabCase = (value) => value.replace(/([A-Z])([A-Z])/g, "$1-$2").replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[\s_]+/g, "-").toLowerCase();
31
+ /**
32
+ * Checks if an array is empty.
33
+ * @param v - The array to check.
34
+ * @returns True if the array is empty, false otherwise.
35
+ */
36
+ const isEmpty = (v) => v.length === 0;
37
+
38
+ //#endregion
39
+ export { createAnatomy as t };