@yamada-ui/react 2.0.10-dev-20260301101758 → 2.1.0-dev-20260302125757

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 (683) hide show
  1. package/dist/cjs/components/accordion/accordion.cjs +8 -9
  2. package/dist/cjs/components/accordion/accordion.cjs.map +1 -1
  3. package/dist/cjs/components/accordion/accordion.style.cjs +11 -37
  4. package/dist/cjs/components/accordion/accordion.style.cjs.map +1 -1
  5. package/dist/cjs/components/accordion/use-accordion.cjs +7 -2
  6. package/dist/cjs/components/accordion/use-accordion.cjs.map +1 -1
  7. package/dist/cjs/components/autocomplete/autocomplete.cjs +2 -2
  8. package/dist/cjs/components/button/button-group.cjs +1 -1
  9. package/dist/cjs/components/chart/area-chart.cjs +41 -0
  10. package/dist/cjs/components/chart/area-chart.cjs.map +1 -0
  11. package/dist/cjs/components/chart/area-chart.namespace.cjs +31 -0
  12. package/dist/cjs/components/chart/area-chart.namespace.cjs.map +1 -0
  13. package/dist/cjs/components/chart/area-chart.style.cjs +12 -0
  14. package/dist/cjs/components/chart/area-chart.style.cjs.map +1 -0
  15. package/dist/cjs/components/chart/bar-chart.cjs +41 -0
  16. package/dist/cjs/components/chart/bar-chart.cjs.map +1 -0
  17. package/dist/cjs/components/chart/bar-chart.namespace.cjs +30 -0
  18. package/dist/cjs/components/chart/bar-chart.namespace.cjs.map +1 -0
  19. package/dist/cjs/components/chart/bar-chart.style.cjs +14 -0
  20. package/dist/cjs/components/chart/bar-chart.style.cjs.map +1 -0
  21. package/dist/cjs/components/chart/cartesian-chart.cjs +637 -0
  22. package/dist/cjs/components/chart/cartesian-chart.cjs.map +1 -0
  23. package/dist/cjs/components/chart/cartesian-chart.style.cjs +123 -0
  24. package/dist/cjs/components/chart/cartesian-chart.style.cjs.map +1 -0
  25. package/dist/cjs/components/chart/chart.cjs +233 -0
  26. package/dist/cjs/components/chart/chart.cjs.map +1 -0
  27. package/dist/cjs/components/chart/chart.style.cjs +119 -0
  28. package/dist/cjs/components/chart/chart.style.cjs.map +1 -0
  29. package/dist/cjs/components/chart/donut-chart.cjs +45 -0
  30. package/dist/cjs/components/chart/donut-chart.cjs.map +1 -0
  31. package/dist/cjs/components/chart/donut-chart.namespace.cjs +27 -0
  32. package/dist/cjs/components/chart/donut-chart.namespace.cjs.map +1 -0
  33. package/dist/cjs/components/chart/donut-chart.style.cjs +10 -0
  34. package/dist/cjs/components/chart/donut-chart.style.cjs.map +1 -0
  35. package/dist/cjs/components/chart/index.cjs +134 -0
  36. package/dist/cjs/components/chart/line-chart.cjs +41 -0
  37. package/dist/cjs/components/chart/line-chart.cjs.map +1 -0
  38. package/dist/cjs/components/chart/line-chart.namespace.cjs +30 -0
  39. package/dist/cjs/components/chart/line-chart.namespace.cjs.map +1 -0
  40. package/dist/cjs/components/chart/line-chart.style.cjs +12 -0
  41. package/dist/cjs/components/chart/line-chart.style.cjs.map +1 -0
  42. package/dist/cjs/components/chart/pie-chart.cjs +45 -0
  43. package/dist/cjs/components/chart/pie-chart.cjs.map +1 -0
  44. package/dist/cjs/components/chart/pie-chart.namespace.cjs +27 -0
  45. package/dist/cjs/components/chart/pie-chart.namespace.cjs.map +1 -0
  46. package/dist/cjs/components/chart/pie-chart.style.cjs +12 -0
  47. package/dist/cjs/components/chart/pie-chart.style.cjs.map +1 -0
  48. package/dist/cjs/components/chart/polar-chart.cjs +659 -0
  49. package/dist/cjs/components/chart/polar-chart.cjs.map +1 -0
  50. package/dist/cjs/components/chart/polar-chart.style.cjs +150 -0
  51. package/dist/cjs/components/chart/polar-chart.style.cjs.map +1 -0
  52. package/dist/cjs/components/chart/radar-chart.cjs +44 -0
  53. package/dist/cjs/components/chart/radar-chart.cjs.map +1 -0
  54. package/dist/cjs/components/chart/radar-chart.namespace.cjs +30 -0
  55. package/dist/cjs/components/chart/radar-chart.namespace.cjs.map +1 -0
  56. package/dist/cjs/components/chart/radar-chart.style.cjs +12 -0
  57. package/dist/cjs/components/chart/radar-chart.style.cjs.map +1 -0
  58. package/dist/cjs/components/chart/radial-chart.cjs +57 -0
  59. package/dist/cjs/components/chart/radial-chart.cjs.map +1 -0
  60. package/dist/cjs/components/chart/radial-chart.namespace.cjs +30 -0
  61. package/dist/cjs/components/chart/radial-chart.namespace.cjs.map +1 -0
  62. package/dist/cjs/components/chart/radial-chart.style.cjs +15 -0
  63. package/dist/cjs/components/chart/radial-chart.style.cjs.map +1 -0
  64. package/dist/cjs/components/chart/use-area-chart.cjs +41 -0
  65. package/dist/cjs/components/chart/use-area-chart.cjs.map +1 -0
  66. package/dist/cjs/components/chart/use-bar-chart.cjs +41 -0
  67. package/dist/cjs/components/chart/use-bar-chart.cjs.map +1 -0
  68. package/dist/cjs/components/chart/use-cartesian-chart.cjs +592 -0
  69. package/dist/cjs/components/chart/use-cartesian-chart.cjs.map +1 -0
  70. package/dist/cjs/components/chart/use-chart.cjs +253 -0
  71. package/dist/cjs/components/chart/use-chart.cjs.map +1 -0
  72. package/dist/cjs/components/chart/use-line-chart.cjs +41 -0
  73. package/dist/cjs/components/chart/use-line-chart.cjs.map +1 -0
  74. package/dist/cjs/components/chart/use-pie-chart.cjs +43 -0
  75. package/dist/cjs/components/chart/use-pie-chart.cjs.map +1 -0
  76. package/dist/cjs/components/chart/use-polar-chart.cjs +716 -0
  77. package/dist/cjs/components/chart/use-polar-chart.cjs.map +1 -0
  78. package/dist/cjs/components/chart/use-radar-chart.cjs +45 -0
  79. package/dist/cjs/components/chart/use-radar-chart.cjs.map +1 -0
  80. package/dist/cjs/components/chart/use-radial-chart.cjs +63 -0
  81. package/dist/cjs/components/chart/use-radial-chart.cjs.map +1 -0
  82. package/dist/cjs/components/checkbox/checkbox.style.cjs +18 -0
  83. package/dist/cjs/components/checkbox/checkbox.style.cjs.map +1 -1
  84. package/dist/cjs/components/checkbox-card/checkbox-card.style.cjs +18 -0
  85. package/dist/cjs/components/checkbox-card/checkbox-card.style.cjs.map +1 -1
  86. package/dist/cjs/components/color-picker/color-picker.cjs +2 -2
  87. package/dist/cjs/components/date-picker/date-picker.cjs +2 -2
  88. package/dist/cjs/components/dropzone/dropzone.style.cjs +18 -0
  89. package/dist/cjs/components/dropzone/dropzone.style.cjs.map +1 -1
  90. package/dist/cjs/components/editable/editable.style.cjs +36 -0
  91. package/dist/cjs/components/editable/editable.style.cjs.map +1 -1
  92. package/dist/cjs/components/field/field.cjs +28 -15
  93. package/dist/cjs/components/field/field.cjs.map +1 -1
  94. package/dist/cjs/components/field/use-field-props.cjs +12 -1
  95. package/dist/cjs/components/field/use-field-props.cjs.map +1 -1
  96. package/dist/cjs/components/fieldset/fieldset.cjs +12 -2
  97. package/dist/cjs/components/fieldset/fieldset.cjs.map +1 -1
  98. package/dist/cjs/components/fieldset/fieldset.style.cjs +1 -1
  99. package/dist/cjs/components/fieldset/fieldset.style.cjs.map +1 -1
  100. package/dist/cjs/components/file-button/file-button.cjs +2 -2
  101. package/dist/cjs/components/file-button/use-file-button.cjs +2 -5
  102. package/dist/cjs/components/file-button/use-file-button.cjs.map +1 -1
  103. package/dist/cjs/components/file-input/use-file-input.cjs +7 -2
  104. package/dist/cjs/components/file-input/use-file-input.cjs.map +1 -1
  105. package/dist/cjs/components/form/form.cjs +136 -0
  106. package/dist/cjs/components/form/form.cjs.map +1 -0
  107. package/dist/cjs/components/form/form.style.cjs +108 -0
  108. package/dist/cjs/components/form/form.style.cjs.map +1 -0
  109. package/dist/cjs/components/form/index.cjs +23 -0
  110. package/dist/cjs/components/form/namespace.cjs +25 -0
  111. package/dist/cjs/components/form/namespace.cjs.map +1 -0
  112. package/dist/cjs/components/input/input-group.cjs +2 -2
  113. package/dist/cjs/components/input/input.style.cjs +36 -0
  114. package/dist/cjs/components/input/input.style.cjs.map +1 -1
  115. package/dist/cjs/components/loading/oval.cjs +2 -3
  116. package/dist/cjs/components/loading/oval.cjs.map +1 -1
  117. package/dist/cjs/components/modal/modal.cjs +2 -2
  118. package/dist/cjs/components/native-accordion/index.cjs +23 -0
  119. package/dist/cjs/components/native-accordion/namespace.cjs +22 -0
  120. package/dist/cjs/components/native-accordion/namespace.cjs.map +1 -0
  121. package/dist/cjs/components/native-accordion/native-accordion.cjs +102 -0
  122. package/dist/cjs/components/native-accordion/native-accordion.cjs.map +1 -0
  123. package/dist/cjs/components/native-accordion/native-accordion.style.cjs +69 -0
  124. package/dist/cjs/components/native-accordion/native-accordion.style.cjs.map +1 -0
  125. package/dist/cjs/components/native-accordion/use-native-accordion.cjs +61 -0
  126. package/dist/cjs/components/native-accordion/use-native-accordion.cjs.map +1 -0
  127. package/dist/cjs/components/native-popover/index.cjs +23 -0
  128. package/dist/cjs/components/native-popover/namespace.cjs +25 -0
  129. package/dist/cjs/components/native-popover/namespace.cjs.map +1 -0
  130. package/dist/cjs/components/native-popover/native-popover.cjs +99 -0
  131. package/dist/cjs/components/native-popover/native-popover.cjs.map +1 -0
  132. package/dist/cjs/components/native-popover/native-popover.style.cjs +67 -0
  133. package/dist/cjs/components/native-popover/native-popover.style.cjs.map +1 -0
  134. package/dist/cjs/components/native-popover/use-native-popover.cjs +119 -0
  135. package/dist/cjs/components/native-popover/use-native-popover.cjs.map +1 -0
  136. package/dist/cjs/components/native-select/native-select.cjs +2 -2
  137. package/dist/cjs/components/number-input/number-input.cjs +2 -2
  138. package/dist/cjs/components/number-input/number-input.style.cjs +2 -2
  139. package/dist/cjs/components/password-input/password-input.cjs +2 -2
  140. package/dist/cjs/components/password-input/password-input.style.cjs +2 -2
  141. package/dist/cjs/components/pin-input/pin-input.cjs +2 -2
  142. package/dist/cjs/components/popover/index.cjs +1 -0
  143. package/dist/cjs/components/popover/namespace.cjs +1 -0
  144. package/dist/cjs/components/popover/namespace.cjs.map +1 -1
  145. package/dist/cjs/components/popover/popover.cjs +12 -4
  146. package/dist/cjs/components/popover/popover.cjs.map +1 -1
  147. package/dist/cjs/components/popover/popover.style.cjs +4 -54
  148. package/dist/cjs/components/popover/popover.style.cjs.map +1 -1
  149. package/dist/cjs/components/popover/use-popover.cjs +16 -9
  150. package/dist/cjs/components/popover/use-popover.cjs.map +1 -1
  151. package/dist/cjs/components/qr-code/index.cjs +19 -0
  152. package/dist/cjs/components/qr-code/namespace.cjs +21 -0
  153. package/dist/cjs/components/qr-code/namespace.cjs.map +1 -0
  154. package/dist/cjs/components/qr-code/qr-code.cjs +66 -0
  155. package/dist/cjs/components/qr-code/qr-code.cjs.map +1 -0
  156. package/dist/cjs/components/qr-code/qr-code.style.cjs +48 -0
  157. package/dist/cjs/components/qr-code/qr-code.style.cjs.map +1 -0
  158. package/dist/cjs/components/qr-code/use-qr-code.cjs +67 -0
  159. package/dist/cjs/components/qr-code/use-qr-code.cjs.map +1 -0
  160. package/dist/cjs/components/radio/radio.style.cjs +18 -0
  161. package/dist/cjs/components/radio/radio.style.cjs.map +1 -1
  162. package/dist/cjs/components/radio-card/radio-card.style.cjs +21 -1
  163. package/dist/cjs/components/radio-card/radio-card.style.cjs.map +1 -1
  164. package/dist/cjs/components/rating/rating.style.cjs +19 -1
  165. package/dist/cjs/components/rating/rating.style.cjs.map +1 -1
  166. package/dist/cjs/components/resizable/index.cjs +3 -0
  167. package/dist/cjs/components/resizable/namespace.cjs +2 -0
  168. package/dist/cjs/components/resizable/namespace.cjs.map +1 -1
  169. package/dist/cjs/components/resizable/resizable.cjs +12 -12
  170. package/dist/cjs/components/resizable/resizable.cjs.map +1 -1
  171. package/dist/cjs/components/resizable/resizable.style.cjs +1 -2
  172. package/dist/cjs/components/resizable/resizable.style.cjs.map +1 -1
  173. package/dist/cjs/components/resizable/use-resizable.cjs +56 -89
  174. package/dist/cjs/components/resizable/use-resizable.cjs.map +1 -1
  175. package/dist/cjs/components/select/select.cjs +2 -2
  176. package/dist/cjs/components/slider/slider.style.cjs +18 -0
  177. package/dist/cjs/components/slider/slider.style.cjs.map +1 -1
  178. package/dist/cjs/components/tip/index.cjs +3 -0
  179. package/dist/cjs/components/tip/tip.cjs +53 -0
  180. package/dist/cjs/components/tip/tip.cjs.map +1 -0
  181. package/dist/cjs/components/toggle/toggle.cjs +2 -2
  182. package/dist/cjs/components/tooltip/index.cjs +2 -0
  183. package/dist/cjs/components/tooltip/use-tooltip.cjs +23 -3
  184. package/dist/cjs/components/tooltip/use-tooltip.cjs.map +1 -1
  185. package/dist/cjs/core/components/create-component.cjs +8 -4
  186. package/dist/cjs/core/components/create-component.cjs.map +1 -1
  187. package/dist/cjs/core/components/use-component-style.cjs +54 -14
  188. package/dist/cjs/core/components/use-component-style.cjs.map +1 -1
  189. package/dist/cjs/core/css/at-rule.cjs +3 -2
  190. package/dist/cjs/core/css/at-rule.cjs.map +1 -1
  191. package/dist/cjs/core/css/color-mix.cjs +5 -2
  192. package/dist/cjs/core/css/color-mix.cjs.map +1 -1
  193. package/dist/cjs/core/css/conditions.cjs +6 -0
  194. package/dist/cjs/core/css/conditions.cjs.map +1 -1
  195. package/dist/cjs/core/css/styles.cjs +13 -3
  196. package/dist/cjs/core/css/styles.cjs.map +1 -1
  197. package/dist/cjs/core/css/use-css.cjs +5 -4
  198. package/dist/cjs/core/css/use-css.cjs.map +1 -1
  199. package/dist/cjs/core/system/styled.cjs +4 -3
  200. package/dist/cjs/core/system/styled.cjs.map +1 -1
  201. package/dist/cjs/core/system/var.cjs +2 -1
  202. package/dist/cjs/core/system/var.cjs.map +1 -1
  203. package/dist/cjs/index.cjs +524 -171
  204. package/dist/cjs/index.cjs.map +1 -1
  205. package/dist/cjs/theme/styles/reset-style.cjs +1 -0
  206. package/dist/cjs/theme/styles/reset-style.cjs.map +1 -1
  207. package/dist/cjs/utils/children.cjs +9 -1
  208. package/dist/cjs/utils/children.cjs.map +1 -1
  209. package/dist/esm/components/accordion/accordion.js +8 -9
  210. package/dist/esm/components/accordion/accordion.js.map +1 -1
  211. package/dist/esm/components/accordion/accordion.style.js +11 -37
  212. package/dist/esm/components/accordion/accordion.style.js.map +1 -1
  213. package/dist/esm/components/accordion/use-accordion.js +7 -2
  214. package/dist/esm/components/accordion/use-accordion.js.map +1 -1
  215. package/dist/esm/components/autocomplete/autocomplete.js +2 -2
  216. package/dist/esm/components/button/button-group.js +1 -1
  217. package/dist/esm/components/chart/area-chart.js +38 -0
  218. package/dist/esm/components/chart/area-chart.js.map +1 -0
  219. package/dist/esm/components/chart/area-chart.namespace.js +26 -0
  220. package/dist/esm/components/chart/area-chart.namespace.js.map +1 -0
  221. package/dist/esm/components/chart/area-chart.style.js +12 -0
  222. package/dist/esm/components/chart/area-chart.style.js.map +1 -0
  223. package/dist/esm/components/chart/bar-chart.js +38 -0
  224. package/dist/esm/components/chart/bar-chart.js.map +1 -0
  225. package/dist/esm/components/chart/bar-chart.namespace.js +25 -0
  226. package/dist/esm/components/chart/bar-chart.namespace.js.map +1 -0
  227. package/dist/esm/components/chart/bar-chart.style.js +14 -0
  228. package/dist/esm/components/chart/bar-chart.style.js.map +1 -0
  229. package/dist/esm/components/chart/cartesian-chart.js +629 -0
  230. package/dist/esm/components/chart/cartesian-chart.js.map +1 -0
  231. package/dist/esm/components/chart/cartesian-chart.style.js +123 -0
  232. package/dist/esm/components/chart/cartesian-chart.style.js.map +1 -0
  233. package/dist/esm/components/chart/chart.js +222 -0
  234. package/dist/esm/components/chart/chart.js.map +1 -0
  235. package/dist/esm/components/chart/chart.style.js +119 -0
  236. package/dist/esm/components/chart/chart.style.js.map +1 -0
  237. package/dist/esm/components/chart/donut-chart.js +42 -0
  238. package/dist/esm/components/chart/donut-chart.js.map +1 -0
  239. package/dist/esm/components/chart/donut-chart.namespace.js +22 -0
  240. package/dist/esm/components/chart/donut-chart.namespace.js.map +1 -0
  241. package/dist/esm/components/chart/donut-chart.style.js +10 -0
  242. package/dist/esm/components/chart/donut-chart.style.js.map +1 -0
  243. package/dist/esm/components/chart/index.js +31 -0
  244. package/dist/esm/components/chart/line-chart.js +38 -0
  245. package/dist/esm/components/chart/line-chart.js.map +1 -0
  246. package/dist/esm/components/chart/line-chart.namespace.js +25 -0
  247. package/dist/esm/components/chart/line-chart.namespace.js.map +1 -0
  248. package/dist/esm/components/chart/line-chart.style.js +12 -0
  249. package/dist/esm/components/chart/line-chart.style.js.map +1 -0
  250. package/dist/esm/components/chart/pie-chart.js +42 -0
  251. package/dist/esm/components/chart/pie-chart.js.map +1 -0
  252. package/dist/esm/components/chart/pie-chart.namespace.js +22 -0
  253. package/dist/esm/components/chart/pie-chart.namespace.js.map +1 -0
  254. package/dist/esm/components/chart/pie-chart.style.js +12 -0
  255. package/dist/esm/components/chart/pie-chart.style.js.map +1 -0
  256. package/dist/esm/components/chart/polar-chart.js +651 -0
  257. package/dist/esm/components/chart/polar-chart.js.map +1 -0
  258. package/dist/esm/components/chart/polar-chart.style.js +150 -0
  259. package/dist/esm/components/chart/polar-chart.style.js.map +1 -0
  260. package/dist/esm/components/chart/radar-chart.js +41 -0
  261. package/dist/esm/components/chart/radar-chart.js.map +1 -0
  262. package/dist/esm/components/chart/radar-chart.namespace.js +25 -0
  263. package/dist/esm/components/chart/radar-chart.namespace.js.map +1 -0
  264. package/dist/esm/components/chart/radar-chart.style.js +12 -0
  265. package/dist/esm/components/chart/radar-chart.style.js.map +1 -0
  266. package/dist/esm/components/chart/radial-chart.js +54 -0
  267. package/dist/esm/components/chart/radial-chart.js.map +1 -0
  268. package/dist/esm/components/chart/radial-chart.namespace.js +25 -0
  269. package/dist/esm/components/chart/radial-chart.namespace.js.map +1 -0
  270. package/dist/esm/components/chart/radial-chart.style.js +15 -0
  271. package/dist/esm/components/chart/radial-chart.style.js.map +1 -0
  272. package/dist/esm/components/chart/use-area-chart.js +40 -0
  273. package/dist/esm/components/chart/use-area-chart.js.map +1 -0
  274. package/dist/esm/components/chart/use-bar-chart.js +40 -0
  275. package/dist/esm/components/chart/use-bar-chart.js.map +1 -0
  276. package/dist/esm/components/chart/use-cartesian-chart.js +585 -0
  277. package/dist/esm/components/chart/use-cartesian-chart.js.map +1 -0
  278. package/dist/esm/components/chart/use-chart.js +246 -0
  279. package/dist/esm/components/chart/use-chart.js.map +1 -0
  280. package/dist/esm/components/chart/use-line-chart.js +40 -0
  281. package/dist/esm/components/chart/use-line-chart.js.map +1 -0
  282. package/dist/esm/components/chart/use-pie-chart.js +42 -0
  283. package/dist/esm/components/chart/use-pie-chart.js.map +1 -0
  284. package/dist/esm/components/chart/use-polar-chart.js +707 -0
  285. package/dist/esm/components/chart/use-polar-chart.js.map +1 -0
  286. package/dist/esm/components/chart/use-radar-chart.js +44 -0
  287. package/dist/esm/components/chart/use-radar-chart.js.map +1 -0
  288. package/dist/esm/components/chart/use-radial-chart.js +62 -0
  289. package/dist/esm/components/chart/use-radial-chart.js.map +1 -0
  290. package/dist/esm/components/checkbox/checkbox.style.js +18 -0
  291. package/dist/esm/components/checkbox/checkbox.style.js.map +1 -1
  292. package/dist/esm/components/checkbox-card/checkbox-card.style.js +18 -0
  293. package/dist/esm/components/checkbox-card/checkbox-card.style.js.map +1 -1
  294. package/dist/esm/components/color-picker/color-picker.js +2 -2
  295. package/dist/esm/components/date-picker/date-picker.js +2 -2
  296. package/dist/esm/components/dropzone/dropzone.style.js +18 -0
  297. package/dist/esm/components/dropzone/dropzone.style.js.map +1 -1
  298. package/dist/esm/components/editable/editable.style.js +36 -0
  299. package/dist/esm/components/editable/editable.style.js.map +1 -1
  300. package/dist/esm/components/field/field.js +28 -15
  301. package/dist/esm/components/field/field.js.map +1 -1
  302. package/dist/esm/components/field/use-field-props.js +12 -1
  303. package/dist/esm/components/field/use-field-props.js.map +1 -1
  304. package/dist/esm/components/fieldset/fieldset.js +12 -2
  305. package/dist/esm/components/fieldset/fieldset.js.map +1 -1
  306. package/dist/esm/components/fieldset/fieldset.style.js +1 -1
  307. package/dist/esm/components/fieldset/fieldset.style.js.map +1 -1
  308. package/dist/esm/components/file-button/file-button.js +2 -2
  309. package/dist/esm/components/file-button/use-file-button.js +2 -5
  310. package/dist/esm/components/file-button/use-file-button.js.map +1 -1
  311. package/dist/esm/components/file-input/use-file-input.js +7 -2
  312. package/dist/esm/components/file-input/use-file-input.js.map +1 -1
  313. package/dist/esm/components/form/form.js +124 -0
  314. package/dist/esm/components/form/form.js.map +1 -0
  315. package/dist/esm/components/form/form.style.js +108 -0
  316. package/dist/esm/components/form/form.style.js.map +1 -0
  317. package/dist/esm/components/form/index.js +5 -0
  318. package/dist/esm/components/form/namespace.js +20 -0
  319. package/dist/esm/components/form/namespace.js.map +1 -0
  320. package/dist/esm/components/input/input-group.js +2 -2
  321. package/dist/esm/components/input/input.style.js +36 -0
  322. package/dist/esm/components/input/input.style.js.map +1 -1
  323. package/dist/esm/components/loading/oval.js +2 -3
  324. package/dist/esm/components/loading/oval.js.map +1 -1
  325. package/dist/esm/components/modal/modal.js +2 -2
  326. package/dist/esm/components/native-accordion/index.js +6 -0
  327. package/dist/esm/components/native-accordion/namespace.js +17 -0
  328. package/dist/esm/components/native-accordion/namespace.js.map +1 -0
  329. package/dist/esm/components/native-accordion/native-accordion.js +95 -0
  330. package/dist/esm/components/native-accordion/native-accordion.js.map +1 -0
  331. package/dist/esm/components/native-accordion/native-accordion.style.js +69 -0
  332. package/dist/esm/components/native-accordion/native-accordion.style.js.map +1 -0
  333. package/dist/esm/components/native-accordion/use-native-accordion.js +57 -0
  334. package/dist/esm/components/native-accordion/use-native-accordion.js.map +1 -0
  335. package/dist/esm/components/native-popover/index.js +6 -0
  336. package/dist/esm/components/native-popover/namespace.js +20 -0
  337. package/dist/esm/components/native-popover/namespace.js.map +1 -0
  338. package/dist/esm/components/native-popover/native-popover.js +89 -0
  339. package/dist/esm/components/native-popover/native-popover.js.map +1 -0
  340. package/dist/esm/components/native-popover/native-popover.style.js +67 -0
  341. package/dist/esm/components/native-popover/native-popover.style.js.map +1 -0
  342. package/dist/esm/components/native-popover/use-native-popover.js +118 -0
  343. package/dist/esm/components/native-popover/use-native-popover.js.map +1 -0
  344. package/dist/esm/components/native-select/native-select.js +2 -2
  345. package/dist/esm/components/number-input/number-input.js +2 -2
  346. package/dist/esm/components/number-input/number-input.style.js +2 -2
  347. package/dist/esm/components/password-input/password-input.js +2 -2
  348. package/dist/esm/components/password-input/password-input.style.js +2 -2
  349. package/dist/esm/components/pin-input/pin-input.js +2 -2
  350. package/dist/esm/components/popover/index.js +2 -2
  351. package/dist/esm/components/popover/namespace.js +2 -1
  352. package/dist/esm/components/popover/namespace.js.map +1 -1
  353. package/dist/esm/components/popover/popover.js +12 -5
  354. package/dist/esm/components/popover/popover.js.map +1 -1
  355. package/dist/esm/components/popover/popover.style.js +4 -54
  356. package/dist/esm/components/popover/popover.style.js.map +1 -1
  357. package/dist/esm/components/popover/use-popover.js +16 -9
  358. package/dist/esm/components/popover/use-popover.js.map +1 -1
  359. package/dist/esm/components/qr-code/index.js +6 -0
  360. package/dist/esm/components/qr-code/namespace.js +16 -0
  361. package/dist/esm/components/qr-code/namespace.js.map +1 -0
  362. package/dist/esm/components/qr-code/qr-code.js +60 -0
  363. package/dist/esm/components/qr-code/qr-code.js.map +1 -0
  364. package/dist/esm/components/qr-code/qr-code.style.js +48 -0
  365. package/dist/esm/components/qr-code/qr-code.style.js.map +1 -0
  366. package/dist/esm/components/qr-code/use-qr-code.js +66 -0
  367. package/dist/esm/components/qr-code/use-qr-code.js.map +1 -0
  368. package/dist/esm/components/radio/radio.style.js +18 -0
  369. package/dist/esm/components/radio/radio.style.js.map +1 -1
  370. package/dist/esm/components/radio-card/radio-card.style.js +21 -1
  371. package/dist/esm/components/radio-card/radio-card.style.js.map +1 -1
  372. package/dist/esm/components/rating/rating.style.js +19 -1
  373. package/dist/esm/components/rating/rating.style.js.map +1 -1
  374. package/dist/esm/components/resizable/index.js +2 -2
  375. package/dist/esm/components/resizable/namespace.js +2 -1
  376. package/dist/esm/components/resizable/namespace.js.map +1 -1
  377. package/dist/esm/components/resizable/resizable.js +13 -13
  378. package/dist/esm/components/resizable/resizable.js.map +1 -1
  379. package/dist/esm/components/resizable/resizable.style.js +1 -2
  380. package/dist/esm/components/resizable/resizable.style.js.map +1 -1
  381. package/dist/esm/components/resizable/use-resizable.js +60 -93
  382. package/dist/esm/components/resizable/use-resizable.js.map +1 -1
  383. package/dist/esm/components/select/select.js +2 -2
  384. package/dist/esm/components/slider/slider.style.js +18 -0
  385. package/dist/esm/components/slider/slider.style.js.map +1 -1
  386. package/dist/esm/components/tip/index.js +3 -0
  387. package/dist/esm/components/tip/tip.js +52 -0
  388. package/dist/esm/components/tip/tip.js.map +1 -0
  389. package/dist/esm/components/toggle/toggle.js +2 -2
  390. package/dist/esm/components/tooltip/index.js +2 -2
  391. package/dist/esm/components/tooltip/use-tooltip.js +22 -4
  392. package/dist/esm/components/tooltip/use-tooltip.js.map +1 -1
  393. package/dist/esm/core/components/create-component.js +8 -4
  394. package/dist/esm/core/components/create-component.js.map +1 -1
  395. package/dist/esm/core/components/use-component-style.js +54 -14
  396. package/dist/esm/core/components/use-component-style.js.map +1 -1
  397. package/dist/esm/core/css/at-rule.js +3 -2
  398. package/dist/esm/core/css/at-rule.js.map +1 -1
  399. package/dist/esm/core/css/color-mix.js +5 -2
  400. package/dist/esm/core/css/color-mix.js.map +1 -1
  401. package/dist/esm/core/css/conditions.js +6 -0
  402. package/dist/esm/core/css/conditions.js.map +1 -1
  403. package/dist/esm/core/css/styles.js +13 -3
  404. package/dist/esm/core/css/styles.js.map +1 -1
  405. package/dist/esm/core/css/use-css.js +5 -4
  406. package/dist/esm/core/css/use-css.js.map +1 -1
  407. package/dist/esm/core/system/styled.js +4 -3
  408. package/dist/esm/core/system/styled.js.map +1 -1
  409. package/dist/esm/core/system/var.js +2 -1
  410. package/dist/esm/core/system/var.js.map +1 -1
  411. package/dist/esm/index.js +258 -84
  412. package/dist/esm/index.js.map +1 -1
  413. package/dist/esm/theme/styles/reset-style.js +1 -0
  414. package/dist/esm/theme/styles/reset-style.js.map +1 -1
  415. package/dist/esm/utils/children.js +9 -1
  416. package/dist/esm/utils/children.js.map +1 -1
  417. package/dist/types/components/accordion/accordion.d.ts +3 -6
  418. package/dist/types/components/accordion/use-accordion.d.ts +11 -11
  419. package/dist/types/components/airy/airy.d.ts +2 -2
  420. package/dist/types/components/alert/alert.d.ts +2 -2
  421. package/dist/types/components/alpha-slider/alpha-slider.d.ts +2 -2
  422. package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +2 -2
  423. package/dist/types/components/autocomplete/autocomplete.d.ts +2 -2
  424. package/dist/types/components/autocomplete/autocomplete.style.d.ts +13 -1
  425. package/dist/types/components/autocomplete/use-autocomplete.d.ts +5 -5
  426. package/dist/types/components/avatar/avatar.d.ts +6 -6
  427. package/dist/types/components/avatar/avatar.style.d.ts +1 -1
  428. package/dist/types/components/avatar/use-avatar-group.d.ts +2 -2
  429. package/dist/types/components/badge/badge.d.ts +2 -2
  430. package/dist/types/components/bleed/bleed.d.ts +2 -2
  431. package/dist/types/components/blockquote/blockquote.d.ts +2 -2
  432. package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
  433. package/dist/types/components/breadcrumb/breadcrumb.style.d.ts +1 -1
  434. package/dist/types/components/breadcrumb/use-breadcrumb.d.ts +2 -2
  435. package/dist/types/components/button/button.d.ts +2 -2
  436. package/dist/types/components/button/icon-button.d.ts +2 -2
  437. package/dist/types/components/calendar/calendar.d.ts +2 -2
  438. package/dist/types/components/calendar/calendar.style.d.ts +2 -2
  439. package/dist/types/components/calendar/use-calendar.d.ts +8 -8
  440. package/dist/types/components/card/card.d.ts +2 -2
  441. package/dist/types/components/carousel/carousel.d.ts +2 -2
  442. package/dist/types/components/carousel/carousel.style.d.ts +2 -2
  443. package/dist/types/components/carousel/use-carousel.d.ts +3 -3
  444. package/dist/types/components/center/center.d.ts +2 -2
  445. package/dist/types/components/chart/area-chart.d.ts +34 -0
  446. package/dist/types/components/chart/area-chart.namespace.d.ts +11 -0
  447. package/dist/types/components/chart/area-chart.style.d.ts +10 -0
  448. package/dist/types/components/chart/bar-chart.d.ts +34 -0
  449. package/dist/types/components/chart/bar-chart.namespace.d.ts +11 -0
  450. package/dist/types/components/chart/bar-chart.style.d.ts +10 -0
  451. package/dist/types/components/chart/cartesian-chart.d.ts +311 -0
  452. package/dist/types/components/chart/cartesian-chart.style.d.ts +10 -0
  453. package/dist/types/components/chart/chart.d.ts +148 -0
  454. package/dist/types/components/chart/chart.style.d.ts +36 -0
  455. package/dist/types/components/chart/donut-chart.d.ts +34 -0
  456. package/dist/types/components/chart/donut-chart.namespace.d.ts +11 -0
  457. package/dist/types/components/chart/donut-chart.style.d.ts +10 -0
  458. package/dist/types/components/chart/index.d.ts +30 -0
  459. package/dist/types/components/chart/line-chart.d.ts +34 -0
  460. package/dist/types/components/chart/line-chart.namespace.d.ts +11 -0
  461. package/dist/types/components/chart/line-chart.style.d.ts +10 -0
  462. package/dist/types/components/chart/pie-chart.d.ts +34 -0
  463. package/dist/types/components/chart/pie-chart.namespace.d.ts +11 -0
  464. package/dist/types/components/chart/pie-chart.style.d.ts +10 -0
  465. package/dist/types/components/chart/polar-chart.d.ts +401 -0
  466. package/dist/types/components/chart/polar-chart.style.d.ts +10 -0
  467. package/dist/types/components/chart/radar-chart.d.ts +34 -0
  468. package/dist/types/components/chart/radar-chart.namespace.d.ts +11 -0
  469. package/dist/types/components/chart/radar-chart.style.d.ts +10 -0
  470. package/dist/types/components/chart/radial-chart.d.ts +34 -0
  471. package/dist/types/components/chart/radial-chart.namespace.d.ts +11 -0
  472. package/dist/types/components/chart/radial-chart.style.d.ts +10 -0
  473. package/dist/types/components/chart/use-area-chart.d.ts +29 -0
  474. package/dist/types/components/chart/use-bar-chart.d.ts +29 -0
  475. package/dist/types/components/chart/use-cartesian-chart.d.ts +238 -0
  476. package/dist/types/components/chart/use-chart.d.ts +117 -0
  477. package/dist/types/components/chart/use-line-chart.d.ts +29 -0
  478. package/dist/types/components/chart/use-pie-chart.d.ts +30 -0
  479. package/dist/types/components/chart/use-polar-chart.d.ts +330 -0
  480. package/dist/types/components/chart/use-radar-chart.d.ts +31 -0
  481. package/dist/types/components/chart/use-radial-chart.d.ts +40 -0
  482. package/dist/types/components/checkbox/checkbox.d.ts +5 -5
  483. package/dist/types/components/checkbox/use-checkbox-group.d.ts +2 -2
  484. package/dist/types/components/checkbox-card/checkbox-card.d.ts +23 -5
  485. package/dist/types/components/checkbox-card/checkbox-card.style.d.ts +6 -0
  486. package/dist/types/components/circle-progress/circle-progress.d.ts +2 -2
  487. package/dist/types/components/close-button/close-button.d.ts +2 -2
  488. package/dist/types/components/code/code.d.ts +2 -2
  489. package/dist/types/components/collapse/collapse.d.ts +2 -2
  490. package/dist/types/components/color-picker/color-picker.d.ts +2 -2
  491. package/dist/types/components/color-picker/color-picker.style.d.ts +12 -0
  492. package/dist/types/components/color-picker/use-color-picker.d.ts +2 -2
  493. package/dist/types/components/color-selector/color-selector.d.ts +2 -2
  494. package/dist/types/components/color-selector/use-color-selector.d.ts +3 -3
  495. package/dist/types/components/color-swatch/color-swatch.d.ts +2 -2
  496. package/dist/types/components/container/container.d.ts +2 -2
  497. package/dist/types/components/data-list/data-list.d.ts +2 -2
  498. package/dist/types/components/date-picker/date-picker.d.ts +2 -2
  499. package/dist/types/components/date-picker/date-picker.style.d.ts +13 -1
  500. package/dist/types/components/date-picker/use-date-picker.d.ts +4 -4
  501. package/dist/types/components/drawer/drawer.d.ts +2 -2
  502. package/dist/types/components/drawer/drawer.style.d.ts +2 -2
  503. package/dist/types/components/dropzone/dropzone.d.ts +8 -2
  504. package/dist/types/components/dropzone/dropzone.style.d.ts +6 -0
  505. package/dist/types/components/editable/editable.d.ts +2 -2
  506. package/dist/types/components/editable/use-editable.d.ts +2 -2
  507. package/dist/types/components/em/em.d.ts +2 -2
  508. package/dist/types/components/empty-state/empty-state.d.ts +2 -2
  509. package/dist/types/components/fade/fade.d.ts +2 -2
  510. package/dist/types/components/field/field.d.ts +7 -3
  511. package/dist/types/components/field/field.style.d.ts +2 -2
  512. package/dist/types/components/field/use-field-props.d.ts +7 -4
  513. package/dist/types/components/fieldset/fieldset.d.ts +3 -3
  514. package/dist/types/components/fieldset/fieldset.style.d.ts +4 -2
  515. package/dist/types/components/file-button/file-button.d.ts +2 -2
  516. package/dist/types/components/file-button/use-file-button.d.ts +17 -17
  517. package/dist/types/components/file-input/file-input.d.ts +2 -2
  518. package/dist/types/components/file-input/file-input.style.d.ts +12 -0
  519. package/dist/types/components/file-input/use-file-input.d.ts +17 -17
  520. package/dist/types/components/flex/flex.d.ts +2 -2
  521. package/dist/types/components/flip/flip.d.ts +2 -2
  522. package/dist/types/components/float/float.d.ts +2 -2
  523. package/dist/types/components/form/form.d.ts +129 -0
  524. package/dist/types/components/form/form.style.d.ts +107 -0
  525. package/dist/types/components/form/index.d.ts +4 -0
  526. package/dist/types/components/form/namespace.d.ts +9 -0
  527. package/dist/types/components/format/format-byte.d.ts +2 -2
  528. package/dist/types/components/format/format-date-time.d.ts +2 -2
  529. package/dist/types/components/format/format-number.d.ts +2 -2
  530. package/dist/types/components/grid/grid-item.d.ts +2 -2
  531. package/dist/types/components/grid/grid.d.ts +2 -2
  532. package/dist/types/components/group/group.d.ts +2 -2
  533. package/dist/types/components/group/use-group.d.ts +2 -2
  534. package/dist/types/components/heading/heading.d.ts +2 -2
  535. package/dist/types/components/hue-slider/hue-slider.d.ts +3 -3
  536. package/dist/types/components/icon/icon.d.ts +4 -4
  537. package/dist/types/components/image/image.d.ts +2 -2
  538. package/dist/types/components/indicator/indicator.d.ts +2 -2
  539. package/dist/types/components/infinite-scroll-area/infinite-scroll-area.d.ts +2 -2
  540. package/dist/types/components/input/input-addon.d.ts +2 -2
  541. package/dist/types/components/input/input-element.d.ts +2 -2
  542. package/dist/types/components/input/input.d.ts +2 -2
  543. package/dist/types/components/input/input.style.d.ts +12 -0
  544. package/dist/types/components/kbd/kbd.d.ts +2 -2
  545. package/dist/types/components/link/link.d.ts +2 -2
  546. package/dist/types/components/link-box/link-box.d.ts +2 -2
  547. package/dist/types/components/list/list.d.ts +2 -2
  548. package/dist/types/components/loading/loading-provider.d.ts +2 -2
  549. package/dist/types/components/loading/loading.d.ts +3 -3
  550. package/dist/types/components/mark/mark.d.ts +2 -2
  551. package/dist/types/components/menu/menu.d.ts +2 -2
  552. package/dist/types/components/menu/menu.style.d.ts +2 -2
  553. package/dist/types/components/menu/use-menu.d.ts +11 -11
  554. package/dist/types/components/modal/modal.d.ts +2 -2
  555. package/dist/types/components/modal/modal.style.d.ts +2 -2
  556. package/dist/types/components/native-accordion/index.d.ts +5 -0
  557. package/dist/types/components/native-accordion/namespace.d.ts +9 -0
  558. package/dist/types/components/native-accordion/native-accordion.d.ts +59 -0
  559. package/dist/types/components/native-accordion/native-accordion.style.d.ts +58 -0
  560. package/dist/types/components/native-accordion/use-native-accordion.d.ts +50 -0
  561. package/dist/types/components/native-popover/index.d.ts +5 -0
  562. package/dist/types/components/native-popover/namespace.d.ts +9 -0
  563. package/dist/types/components/native-popover/native-popover.d.ts +35 -0
  564. package/dist/types/components/native-popover/native-popover.style.d.ts +39 -0
  565. package/dist/types/components/native-popover/use-native-popover.d.ts +75 -0
  566. package/dist/types/components/native-select/native-select.d.ts +2 -2
  567. package/dist/types/components/native-select/native-select.style.d.ts +12 -0
  568. package/dist/types/components/native-table/native-table.d.ts +2 -2
  569. package/dist/types/components/notice/notice.style.d.ts +1 -1
  570. package/dist/types/components/number-input/number-input.d.ts +2 -2
  571. package/dist/types/components/number-input/number-input.style.d.ts +12 -0
  572. package/dist/types/components/pagination/pagination.d.ts +2 -2
  573. package/dist/types/components/pagination/use-pagination.d.ts +2 -2
  574. package/dist/types/components/password-input/password-input.d.ts +2 -2
  575. package/dist/types/components/password-input/password-input.style.d.ts +12 -0
  576. package/dist/types/components/password-input/strength-meter.d.ts +2 -2
  577. package/dist/types/components/password-input/use-password-input.d.ts +2 -2
  578. package/dist/types/components/pin-input/pin-input.d.ts +2 -2
  579. package/dist/types/components/pin-input/pin-input.style.d.ts +12 -0
  580. package/dist/types/components/pin-input/use-pin-input.d.ts +7 -7
  581. package/dist/types/components/popover/index.d.ts +2 -2
  582. package/dist/types/components/popover/namespace.d.ts +2 -2
  583. package/dist/types/components/popover/popover.d.ts +5 -9
  584. package/dist/types/components/popover/use-popover.d.ts +1 -0
  585. package/dist/types/components/progress/progress.d.ts +2 -2
  586. package/dist/types/components/progress/use-progress.d.ts +706 -706
  587. package/dist/types/components/qr-code/index.d.ts +5 -0
  588. package/dist/types/components/qr-code/namespace.d.ts +9 -0
  589. package/dist/types/components/qr-code/qr-code.d.ts +35 -0
  590. package/dist/types/components/qr-code/qr-code.style.d.ts +56 -0
  591. package/dist/types/components/qr-code/use-qr-code.d.ts +94 -0
  592. package/dist/types/components/radio/radio.d.ts +5 -5
  593. package/dist/types/components/radio/use-radio-group.d.ts +2 -2
  594. package/dist/types/components/radio-card/radio-card.d.ts +29 -5
  595. package/dist/types/components/radio-card/radio-card.style.d.ts +8 -0
  596. package/dist/types/components/rating/rating.style.d.ts +2 -2
  597. package/dist/types/components/rating/use-rating.d.ts +7 -7
  598. package/dist/types/components/reorder/reorder.d.ts +2 -2
  599. package/dist/types/components/reorder/use-reorder.d.ts +3 -3
  600. package/dist/types/components/resizable/index.d.ts +2 -2
  601. package/dist/types/components/resizable/namespace.d.ts +2 -2
  602. package/dist/types/components/resizable/resizable.d.ts +5 -10
  603. package/dist/types/components/resizable/resizable.style.d.ts +0 -3
  604. package/dist/types/components/resizable/use-resizable.d.ts +20 -146
  605. package/dist/types/components/ripple/ripple.d.ts +2 -2
  606. package/dist/types/components/ripple/use-ripple.d.ts +2 -2
  607. package/dist/types/components/rotate/rotate.d.ts +2 -2
  608. package/dist/types/components/saturation-slider/saturation-slider.d.ts +2 -2
  609. package/dist/types/components/saturation-slider/use-saturation-slider.d.ts +2 -2
  610. package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
  611. package/dist/types/components/segmented-control/segmented-control.d.ts +2 -2
  612. package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
  613. package/dist/types/components/segmented-control/use-segmented-control.d.ts +9 -9
  614. package/dist/types/components/select/select.d.ts +2 -2
  615. package/dist/types/components/select/select.style.d.ts +13 -1
  616. package/dist/types/components/select/use-select.d.ts +4 -4
  617. package/dist/types/components/separator/separator.d.ts +2 -2
  618. package/dist/types/components/simple-grid/simple-grid.d.ts +2 -2
  619. package/dist/types/components/skeleton/skeleton.d.ts +2 -2
  620. package/dist/types/components/slide/slide.d.ts +2 -2
  621. package/dist/types/components/slide-fade/slide-fade.d.ts +2 -2
  622. package/dist/types/components/slider/slider.d.ts +2 -2
  623. package/dist/types/components/slider/slider.style.d.ts +10 -0
  624. package/dist/types/components/slider/use-slider.d.ts +2 -2
  625. package/dist/types/components/stack/h-stack.d.ts +2 -2
  626. package/dist/types/components/stack/stack.d.ts +2 -2
  627. package/dist/types/components/stack/v-stack.d.ts +2 -2
  628. package/dist/types/components/stack/z-stack.d.ts +2 -2
  629. package/dist/types/components/stat/stat.d.ts +2 -2
  630. package/dist/types/components/stat/stat.style.d.ts +2 -2
  631. package/dist/types/components/status/status.d.ts +2 -2
  632. package/dist/types/components/steps/steps.d.ts +2 -2
  633. package/dist/types/components/steps/steps.style.d.ts +1 -1
  634. package/dist/types/components/steps/use-steps.d.ts +10 -10
  635. package/dist/types/components/switch/switch.d.ts +2 -2
  636. package/dist/types/components/table/table.d.ts +2 -2
  637. package/dist/types/components/tabs/tabs.d.ts +2 -2
  638. package/dist/types/components/tabs/tabs.style.d.ts +1 -1
  639. package/dist/types/components/tabs/use-tabs.d.ts +16 -16
  640. package/dist/types/components/tag/tag.d.ts +2 -2
  641. package/dist/types/components/tag/tag.style.d.ts +1 -1
  642. package/dist/types/components/text/text.d.ts +2 -2
  643. package/dist/types/components/textarea/textarea.d.ts +2 -2
  644. package/dist/types/components/textarea/textarea.style.d.ts +12 -0
  645. package/dist/types/components/textarea/use-autosize.d.ts +2 -2
  646. package/dist/types/components/timeline/timeline.d.ts +5 -5
  647. package/dist/types/components/timeline/timeline.style.d.ts +2 -2
  648. package/dist/types/components/tip/index.d.ts +2 -0
  649. package/dist/types/components/tip/tip.d.ts +30 -0
  650. package/dist/types/components/toggle/toggle.d.ts +6 -6
  651. package/dist/types/components/toggle/use-toggle-group.d.ts +2 -2
  652. package/dist/types/components/toggle/use-toggle.d.ts +2 -2
  653. package/dist/types/components/tooltip/index.d.ts +2 -2
  654. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  655. package/dist/types/components/tooltip/use-tooltip.d.ts +4 -1
  656. package/dist/types/components/visually-hidden/visually-hidden.d.ts +2 -2
  657. package/dist/types/components/wrap/wrap.d.ts +2 -2
  658. package/dist/types/core/components/create-component.d.ts +9 -9
  659. package/dist/types/core/components/use-component-style.d.ts +1 -0
  660. package/dist/types/core/css/conditions.d.ts +53 -5
  661. package/dist/types/core/css/index.d.ts +2 -2
  662. package/dist/types/core/css/index.types.d.ts +78 -1
  663. package/dist/types/core/css/styles.d.ts +44 -111
  664. package/dist/types/core/css/use-css.d.ts +2 -2
  665. package/dist/types/core/index.d.ts +2 -2
  666. package/dist/types/core/system/color-mode-provider.d.ts +2 -2
  667. package/dist/types/core/system/styled.d.ts +3 -2
  668. package/dist/types/core/system/system-provider.d.ts +2 -2
  669. package/dist/types/hooks/use-breakpoint/use-breakpoint-state.d.ts +2 -2
  670. package/dist/types/hooks/use-clickable/index.d.ts +9 -9
  671. package/dist/types/hooks/use-clipboard/index.d.ts +2 -2
  672. package/dist/types/hooks/use-combobox/index.d.ts +12 -12
  673. package/dist/types/hooks/use-counter/index.d.ts +2 -2
  674. package/dist/types/hooks/use-descendants/index.d.ts +2 -2
  675. package/dist/types/hooks/use-field-sizing/index.d.ts +2 -2
  676. package/dist/types/hooks/use-hover/index.d.ts +2 -2
  677. package/dist/types/hooks/use-popper/index.d.ts +2 -2
  678. package/dist/types/hooks/use-resize-observer/index.d.ts +3 -3
  679. package/dist/types/index.d.ts +85 -34
  680. package/dist/types/providers/i18n-provider/i18n-provider.d.ts +3 -3
  681. package/dist/types/providers/ui-provider/ui-provider.d.ts +2 -2
  682. package/dist/types/utils/children.d.ts +4 -4
  683. package/package.json +5 -3
@@ -4,16 +4,18 @@ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
4
4
  const require_effect = require('../../utils/effect.cjs');
5
5
  const require_ref = require('../../utils/ref.cjs');
6
6
  const require_utils_index = require('../../utils/index.cjs');
7
+ const require_props = require('../../core/components/props.cjs');
8
+ require('../../core/index.cjs');
9
+ const require_hooks_use_popper_index = require('../../hooks/use-popper/index.cjs');
7
10
  const require_use_disclosure = require('../../hooks/use-disclosure/use-disclosure.cjs');
8
11
  require('../../hooks/use-disclosure/index.cjs');
9
12
  const require_hooks_use_event_listener_index = require('../../hooks/use-event-listener/index.cjs');
10
13
  const require_hooks_use_outside_click_index = require('../../hooks/use-outside-click/index.cjs');
11
- const require_hooks_use_popper_index = require('../../hooks/use-popper/index.cjs');
12
14
  let react = require("react");
13
15
 
14
16
  //#region src/components/tooltip/use-tooltip.tsx
15
17
  const useTooltip = (props = {}) => {
16
- const [popperProps, { closeDelay = 0, closeOnClick = true, closeOnEsc = true, closeOnScroll, defaultOpen, disabled, open: openProp, openDelay = 0, onClose: onCloseProp, onOpen: onOpenProp }] = require_hooks_use_popper_index.usePopperProps(props, ["open"]);
18
+ const [popperProps$1, { closeDelay = 0, closeOnClick = true, closeOnEsc = true, closeOnScroll, defaultOpen, disabled, open: openProp, openDelay = 0, onClose: onCloseProp, onOpen: onOpenProp }] = require_hooks_use_popper_index.usePopperProps(props, ["open"]);
17
19
  const describedbyId = (0, react.useId)();
18
20
  const triggerRef = (0, react.useRef)(null);
19
21
  const openTimeout = (0, react.useRef)(void 0);
@@ -26,7 +28,7 @@ const useTooltip = (props = {}) => {
26
28
  });
27
29
  const { getPopperProps, getReferenceProps } = require_hooks_use_popper_index.usePopper({
28
30
  open,
29
- ...popperProps
31
+ ...popperProps$1
30
32
  });
31
33
  const onForceClose = (0, react.useCallback)(() => {
32
34
  if (closeTimeout.current) {
@@ -121,7 +123,25 @@ const useTooltip = (props = {}) => {
121
123
  onOpen
122
124
  };
123
125
  };
126
+ const tooltipProps = [
127
+ ...require_hooks_use_popper_index.popperProps,
128
+ "open",
129
+ "defaultOpen",
130
+ "onOpen",
131
+ "onClose",
132
+ "closeDelay",
133
+ "closeOnClick",
134
+ "closeOnEsc",
135
+ "closeOnScroll",
136
+ "disabled",
137
+ "openDelay"
138
+ ];
139
+ const useTooltipProps = (props, omitKeys) => {
140
+ return require_props.useSplitProps(props, tooltipProps.filter((key) => !omitKeys?.includes(key)));
141
+ };
124
142
 
125
143
  //#endregion
144
+ exports.tooltipProps = tooltipProps;
126
145
  exports.useTooltip = useTooltip;
146
+ exports.useTooltipProps = useTooltipProps;
127
147
  //# sourceMappingURL=use-tooltip.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-tooltip.cjs","names":["usePopperProps","useDisclosure","usePopper","getTriggerProps: PropGetter<\"button\">","props","mergeRefs","getPositionerProps: PropGetter"],"sources":["../../../../src/components/tooltip/use-tooltip.tsx"],"sourcesContent":["\"use client\"\n\nimport type { PropGetter } from \"../../core\"\nimport type { UseDisclosureProps } from \"../../hooks/use-disclosure\"\nimport type { UsePopperProps } from \"../../hooks/use-popper\"\nimport { useCallback, useId, useRef } from \"react\"\nimport { useDisclosure } from \"../../hooks/use-disclosure\"\nimport { useEventListener } from \"../../hooks/use-event-listener\"\nimport { useOutsideClick } from \"../../hooks/use-outside-click\"\nimport { usePopper, usePopperProps } from \"../../hooks/use-popper\"\nimport {\n cx,\n dataAttr,\n getDocument,\n getWindow,\n handlerAll,\n mergeRefs,\n useUnmountEffect,\n} from \"../../utils\"\n\nexport interface UseTooltipProps\n extends Omit<UseDisclosureProps, \"timing\">, UsePopperProps<\"button\"> {\n /**\n * The delay before hiding the tooltip.\n *\n * @default 100\n */\n closeDelay?: number\n /**\n * If `true`, the tooltip will hide on click.\n *\n * @default true\n */\n closeOnClick?: boolean\n /**\n * If `true`, the tooltip will hide on pressing Esc key.\n *\n * @default true\n */\n closeOnEsc?: boolean\n /**\n * If `true`, the tooltip will hide on scroll.\n *\n * @default false\n */\n closeOnScroll?: boolean\n /**\n * If `true`, the tooltip will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The delay before showing the tooltip.\n *\n * @default 400\n */\n openDelay?: number\n}\n\nexport const useTooltip = (props: UseTooltipProps = {}) => {\n const [\n popperProps,\n {\n closeDelay = 0,\n closeOnClick = true,\n closeOnEsc = true,\n closeOnScroll,\n defaultOpen,\n disabled,\n open: openProp,\n openDelay = 0,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n },\n ] = usePopperProps(props, [\"open\"])\n const describedbyId = useId()\n const triggerRef = useRef<HTMLElement>(null)\n const openTimeout = useRef<NodeJS.Timeout>(undefined)\n const closeTimeout = useRef<NodeJS.Timeout>(undefined)\n const { open, onClose, onOpen } = useDisclosure({\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const { getPopperProps, getReferenceProps } = usePopper({\n open,\n ...popperProps,\n })\n\n const onForceClose = useCallback(() => {\n if (closeTimeout.current) {\n clearTimeout(closeTimeout.current)\n\n closeTimeout.current = undefined\n }\n\n onClose()\n }, [onClose])\n\n const onDelayOpen = useCallback(() => {\n if (!disabled && !openTimeout.current) {\n if (open) onForceClose()\n\n openTimeout.current = getWindow(triggerRef.current).setTimeout(\n onOpen,\n openDelay,\n )\n }\n }, [disabled, open, onForceClose, onOpen, openDelay])\n\n const onDelayClose = useCallback(() => {\n if (openTimeout.current) {\n clearTimeout(openTimeout.current)\n openTimeout.current = undefined\n }\n\n closeTimeout.current = getWindow(triggerRef.current).setTimeout(() => {\n onForceClose()\n }, closeDelay)\n }, [closeDelay, onForceClose])\n\n useEventListener(\n () => getDocument(triggerRef.current),\n \"keydown\",\n ({ key }) => {\n if (closeOnEsc && key === \"Escape\") onDelayClose()\n },\n )\n\n useEventListener(\n () => getDocument(triggerRef.current),\n \"scroll\",\n () => {\n if (open && closeOnScroll) onForceClose()\n },\n )\n\n useOutsideClick({\n ref: triggerRef,\n enabled: open,\n handler: () => {\n onDelayClose()\n },\n })\n\n useUnmountEffect(() => {\n clearTimeout(openTimeout.current)\n clearTimeout(closeTimeout.current)\n })\n\n const getTriggerProps: PropGetter<\"button\"> = useCallback(\n ({ \"aria-describedby\": ariaDescribedby, ...props } = {}) => {\n return getReferenceProps({\n ...props,\n ref: mergeRefs(props.ref, triggerRef),\n \"aria-describedby\": cx(\n ariaDescribedby,\n open ? describedbyId : undefined,\n ),\n onBlur: handlerAll(props.onBlur, onDelayClose),\n onClick: handlerAll(\n props.onClick,\n closeOnClick ? onDelayClose : undefined,\n ),\n onFocus: handlerAll(props.onFocus, onDelayOpen),\n onPointerEnter: handlerAll(props.onPointerEnter, (ev) => {\n if (ev.pointerType !== \"touch\") onDelayOpen()\n }),\n onPointerLeave: handlerAll(props.onPointerLeave, (ev) => {\n if (ev.pointerType !== \"touch\") onDelayClose()\n }),\n })\n },\n [\n getReferenceProps,\n describedbyId,\n onDelayOpen,\n open,\n closeOnClick,\n onDelayClose,\n ],\n )\n\n const getPositionerProps: PropGetter = useCallback(\n (props) => {\n return getPopperProps(props)\n },\n [getPopperProps],\n )\n\n const getContentProps: PropGetter = useCallback(\n (props = {}) => ({\n id: describedbyId,\n \"data-close\": dataAttr(!open),\n \"data-open\": dataAttr(open),\n role: \"tooltip\",\n onPointerLeave: handlerAll(props.onPointerLeave, onDelayClose),\n ...props,\n }),\n [describedbyId, onDelayClose, open],\n )\n\n return {\n open,\n getContentProps,\n getPositionerProps,\n getTriggerProps,\n onClose: onForceClose,\n onDelayClose,\n onDelayOpen,\n onOpen,\n }\n}\n\nexport type UseTooltipReturn = ReturnType<typeof useTooltip>\n"],"mappings":";;;;;;;;;;;;;;AA4DA,MAAa,cAAc,QAAyB,EAAE,KAAK;CACzD,MAAM,CACJ,aACA,EACE,aAAa,GACb,eAAe,MACf,aAAa,MACb,eACA,aACA,UACA,MAAM,UACN,YAAY,GACZ,SAAS,aACT,QAAQ,gBAERA,8CAAe,OAAO,CAAC,OAAO,CAAC;CACnC,MAAM,kCAAuB;CAC7B,MAAM,+BAAiC,KAAK;CAC5C,MAAM,gCAAqC,OAAU;CACrD,MAAM,iCAAsC,OAAU;CACtD,MAAM,EAAE,MAAM,SAAS,WAAWC,qCAAc;EAC9C;EACA,MAAM;EACN,SAAS;EACT,QAAQ;EACT,CAAC;CACF,MAAM,EAAE,gBAAgB,sBAAsBC,yCAAU;EACtD;EACA,GAAG;EACJ,CAAC;CAEF,MAAM,4CAAiC;AACrC,MAAI,aAAa,SAAS;AACxB,gBAAa,aAAa,QAAQ;AAElC,gBAAa,UAAU;;AAGzB,WAAS;IACR,CAAC,QAAQ,CAAC;CAEb,MAAM,2CAAgC;AACpC,MAAI,CAAC,YAAY,CAAC,YAAY,SAAS;AACrC,OAAI,KAAM,eAAc;AAExB,eAAY,2DAAoB,WAAW,QAAQ,CAAC,WAClD,QACA,UACD;;IAEF;EAAC;EAAU;EAAM;EAAc;EAAQ;EAAU,CAAC;CAErD,MAAM,4CAAiC;AACrC,MAAI,YAAY,SAAS;AACvB,gBAAa,YAAY,QAAQ;AACjC,eAAY,UAAU;;AAGxB,eAAa,2DAAoB,WAAW,QAAQ,CAAC,iBAAiB;AACpE,iBAAc;KACb,WAAW;IACb,CAAC,YAAY,aAAa,CAAC;AAE9B,kHACoB,WAAW,QAAQ,EACrC,YACC,EAAE,UAAU;AACX,MAAI,cAAc,QAAQ,SAAU,eAAc;GAErD;AAED,kHACoB,WAAW,QAAQ,EACrC,gBACM;AACJ,MAAI,QAAQ,cAAe,eAAc;GAE5C;AAED,uDAAgB;EACd,KAAK;EACL,SAAS;EACT,eAAe;AACb,iBAAc;;EAEjB,CAAC;AAEF,uCAAuB;AACrB,eAAa,YAAY,QAAQ;AACjC,eAAa,aAAa,QAAQ;GAClC;CAEF,MAAMC,0CACH,EAAE,oBAAoB,iBAAiB,GAAGC,YAAU,EAAE,KAAK;AAC1D,SAAO,kBAAkB;GACvB,GAAGA;GACH,KAAKC,sBAAUD,QAAM,KAAK,WAAW;GACrC,8DACE,iBACA,OAAO,gBAAgB,OACxB;GACD,0DAAmBA,QAAM,QAAQ,aAAa;GAC9C,2DACEA,QAAM,SACN,eAAe,eAAe,OAC/B;GACD,2DAAoBA,QAAM,SAAS,YAAY;GAC/C,kEAA2BA,QAAM,iBAAiB,OAAO;AACvD,QAAI,GAAG,gBAAgB,QAAS,cAAa;KAC7C;GACF,kEAA2BA,QAAM,iBAAiB,OAAO;AACvD,QAAI,GAAG,gBAAgB,QAAS,eAAc;KAC9C;GACH,CAAC;IAEJ;EACE;EACA;EACA;EACA;EACA;EACA;EACD,CACF;CAED,MAAME,6CACH,YAAU;AACT,SAAO,eAAeF,QAAM;IAE9B,CAAC,eAAe,CACjB;AAcD,QAAO;EACL;EACA,yCAbC,UAAQ,EAAE,MAAM;GACf,IAAI;GACJ,8DAAuB,CAAC,KAAK;GAC7B,6DAAsB,KAAK;GAC3B,MAAM;GACN,kEAA2BA,QAAM,gBAAgB,aAAa;GAC9D,GAAGA;GACJ,GACD;GAAC;GAAe;GAAc;GAAK,CACpC;EAKC;EACA;EACA,SAAS;EACT;EACA;EACA;EACD"}
1
+ {"version":3,"file":"use-tooltip.cjs","names":["popperProps","usePopperProps","useDisclosure","usePopper","getTriggerProps: PropGetter<\"button\">","props","mergeRefs","getPositionerProps: PropGetter","tooltipProps: (keyof UseTooltipProps)[]","useSplitProps"],"sources":["../../../../src/components/tooltip/use-tooltip.tsx"],"sourcesContent":["\"use client\"\n\nimport type { PropGetter } from \"../../core\"\nimport type { UseDisclosureProps } from \"../../hooks/use-disclosure\"\nimport type { UsePopperProps } from \"../../hooks/use-popper\"\nimport type { Dict } from \"../../utils\"\nimport { useCallback, useId, useRef } from \"react\"\nimport { useSplitProps } from \"../../core\"\nimport { useDisclosure } from \"../../hooks/use-disclosure\"\nimport { useEventListener } from \"../../hooks/use-event-listener\"\nimport { useOutsideClick } from \"../../hooks/use-outside-click\"\nimport { popperProps, usePopper, usePopperProps } from \"../../hooks/use-popper\"\nimport {\n cx,\n dataAttr,\n getDocument,\n getWindow,\n handlerAll,\n mergeRefs,\n useUnmountEffect,\n} from \"../../utils\"\n\nexport interface UseTooltipProps\n extends Omit<UseDisclosureProps, \"timing\">, UsePopperProps<\"button\"> {\n /**\n * The delay before hiding the tooltip.\n *\n * @default 100\n */\n closeDelay?: number\n /**\n * If `true`, the tooltip will hide on click.\n *\n * @default true\n */\n closeOnClick?: boolean\n /**\n * If `true`, the tooltip will hide on pressing Esc key.\n *\n * @default true\n */\n closeOnEsc?: boolean\n /**\n * If `true`, the tooltip will hide on scroll.\n *\n * @default false\n */\n closeOnScroll?: boolean\n /**\n * If `true`, the tooltip will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * The delay before showing the tooltip.\n *\n * @default 400\n */\n openDelay?: number\n}\n\nexport const useTooltip = (props: UseTooltipProps = {}) => {\n const [\n popperProps,\n {\n closeDelay = 0,\n closeOnClick = true,\n closeOnEsc = true,\n closeOnScroll,\n defaultOpen,\n disabled,\n open: openProp,\n openDelay = 0,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n },\n ] = usePopperProps(props, [\"open\"])\n const describedbyId = useId()\n const triggerRef = useRef<HTMLElement>(null)\n const openTimeout = useRef<NodeJS.Timeout>(undefined)\n const closeTimeout = useRef<NodeJS.Timeout>(undefined)\n const { open, onClose, onOpen } = useDisclosure({\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const { getPopperProps, getReferenceProps } = usePopper({\n open,\n ...popperProps,\n })\n\n const onForceClose = useCallback(() => {\n if (closeTimeout.current) {\n clearTimeout(closeTimeout.current)\n\n closeTimeout.current = undefined\n }\n\n onClose()\n }, [onClose])\n\n const onDelayOpen = useCallback(() => {\n if (!disabled && !openTimeout.current) {\n if (open) onForceClose()\n\n openTimeout.current = getWindow(triggerRef.current).setTimeout(\n onOpen,\n openDelay,\n )\n }\n }, [disabled, open, onForceClose, onOpen, openDelay])\n\n const onDelayClose = useCallback(() => {\n if (openTimeout.current) {\n clearTimeout(openTimeout.current)\n openTimeout.current = undefined\n }\n\n closeTimeout.current = getWindow(triggerRef.current).setTimeout(() => {\n onForceClose()\n }, closeDelay)\n }, [closeDelay, onForceClose])\n\n useEventListener(\n () => getDocument(triggerRef.current),\n \"keydown\",\n ({ key }) => {\n if (closeOnEsc && key === \"Escape\") onDelayClose()\n },\n )\n\n useEventListener(\n () => getDocument(triggerRef.current),\n \"scroll\",\n () => {\n if (open && closeOnScroll) onForceClose()\n },\n )\n\n useOutsideClick({\n ref: triggerRef,\n enabled: open,\n handler: () => {\n onDelayClose()\n },\n })\n\n useUnmountEffect(() => {\n clearTimeout(openTimeout.current)\n clearTimeout(closeTimeout.current)\n })\n\n const getTriggerProps: PropGetter<\"button\"> = useCallback(\n ({ \"aria-describedby\": ariaDescribedby, ...props } = {}) => {\n return getReferenceProps({\n ...props,\n ref: mergeRefs(props.ref, triggerRef),\n \"aria-describedby\": cx(\n ariaDescribedby,\n open ? describedbyId : undefined,\n ),\n onBlur: handlerAll(props.onBlur, onDelayClose),\n onClick: handlerAll(\n props.onClick,\n closeOnClick ? onDelayClose : undefined,\n ),\n onFocus: handlerAll(props.onFocus, onDelayOpen),\n onPointerEnter: handlerAll(props.onPointerEnter, (ev) => {\n if (ev.pointerType !== \"touch\") onDelayOpen()\n }),\n onPointerLeave: handlerAll(props.onPointerLeave, (ev) => {\n if (ev.pointerType !== \"touch\") onDelayClose()\n }),\n })\n },\n [\n getReferenceProps,\n describedbyId,\n onDelayOpen,\n open,\n closeOnClick,\n onDelayClose,\n ],\n )\n\n const getPositionerProps: PropGetter = useCallback(\n (props) => {\n return getPopperProps(props)\n },\n [getPopperProps],\n )\n\n const getContentProps: PropGetter = useCallback(\n (props = {}) => ({\n id: describedbyId,\n \"data-close\": dataAttr(!open),\n \"data-open\": dataAttr(open),\n role: \"tooltip\",\n onPointerLeave: handlerAll(props.onPointerLeave, onDelayClose),\n ...props,\n }),\n [describedbyId, onDelayClose, open],\n )\n\n return {\n open,\n getContentProps,\n getPositionerProps,\n getTriggerProps,\n onClose: onForceClose,\n onDelayClose,\n onDelayOpen,\n onOpen,\n }\n}\n\nexport type UseTooltipReturn = ReturnType<typeof useTooltip>\n\nexport const tooltipProps: (keyof UseTooltipProps)[] = [\n ...popperProps,\n \"open\",\n \"defaultOpen\",\n \"onOpen\",\n \"onClose\",\n \"closeDelay\",\n \"closeOnClick\",\n \"closeOnEsc\",\n \"closeOnScroll\",\n \"disabled\",\n \"openDelay\",\n]\n\nexport const useTooltipProps = <\n Y extends Dict = Dict,\n M extends keyof UseTooltipProps = keyof UseTooltipProps,\n>(\n props: Y,\n omitKeys?: M[],\n) => {\n return useSplitProps(\n props,\n tooltipProps.filter((key) => !omitKeys?.includes(key as M)),\n ) as unknown as [\n keyof UseTooltipProps extends M\n ? UseTooltipProps\n : Omit<UseTooltipProps, M>,\n Omit<\n Y,\n keyof UseTooltipProps extends M\n ? keyof UseTooltipProps\n : Exclude<keyof UseTooltipProps, M>\n >,\n ]\n}\n"],"mappings":"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"}
@@ -63,6 +63,7 @@ function createComponent(name, style) {
63
63
  className ??= require_utils.getClassName(name)(system);
64
64
  const contextProps = usePropsContext() ?? {};
65
65
  const [, rest] = require_use_component_style.useComponentStyle(withContext$1 ? require_props.mergeProps(contextProps, props)() : props, {
66
+ name,
66
67
  className,
67
68
  style,
68
69
  transferProps
@@ -72,10 +73,11 @@ function createComponent(name, style) {
72
73
  function component(el, { name: name$1, className, ...options } = {}) {
73
74
  const displayName = require_utils.getDisplayName(name$1, defaultDisplayName);
74
75
  const ProxyComponent = createProxyComponent(el, options);
75
- return function(...superProps) {
76
+ return function(initialProps, ...superProps) {
76
77
  return withDisplayName((props) => {
77
78
  className = useClassName(name$1, className);
78
- const mergedProps = require_props.chainProps(...superProps)()(props);
79
+ const computedProps = (0, require_utils_index.utils_exports.isFunction)(initialProps) ? initialProps(props) : require_props.mergeProps(initialProps ?? {}, props)();
80
+ const mergedProps = require_props.chainProps(...superProps)()(computedProps);
79
81
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ProxyComponent, {
80
82
  ...mergedProps,
81
83
  className: (0, require_utils_index.utils_exports.cx)(className, mergedProps.className)
@@ -137,6 +139,7 @@ function createSlotComponent(rootName, style) {
137
139
  className = useClassName(slot, className);
138
140
  const contextProps = usePropsContext() ?? {};
139
141
  const [css, rest] = require_use_component_style.useComponentSlotStyle(withContext$1 ? require_props.mergeProps(contextProps, props)() : props, {
142
+ name: rootName,
140
143
  className,
141
144
  style,
142
145
  slot,
@@ -161,10 +164,11 @@ function createSlotComponent(rootName, style) {
161
164
  className,
162
165
  slot
163
166
  });
164
- return function(...superProps) {
167
+ return function(initialProps, ...superProps) {
165
168
  return withDisplayName((props) => {
166
169
  className = useClassName(slot, className);
167
- const mergedProps = require_props.chainProps(...superProps)()(props);
170
+ const computedProps = (0, require_utils_index.utils_exports.isFunction)(initialProps) ? initialProps(props) : require_props.mergeProps(initialProps ?? {}, props)();
171
+ const mergedProps = require_props.chainProps(...superProps)()(computedProps);
168
172
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ProxyComponent, {
169
173
  ...mergedProps,
170
174
  className: (0, require_utils_index.utils_exports.cx)(className, mergedProps.className)
@@ -1 +1 @@
1
- {"version":3,"file":"create-component.cjs","names":["Fragment","styled","getDisplayName","createContext","useSystem","getClassName","name","useComponentStyle","withContext","mergeProps","chainProps","getSlotClassName","useComponentSlotStyle","style","mergeSlotCSS"],"sources":["../../../../src/core/components/create-component.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FC, FunctionComponent } from \"react\"\nimport type { AnyString, Dict, Merge } from \"../../utils\"\nimport type { CSSObject, CSSSlotObject } from \"../css\"\nimport type {\n ComponentSlotStyle,\n ComponentStyle,\n StyledOptions,\n System,\n WithoutThemeProps,\n} from \"../system\"\nimport type {\n As,\n DOMElement,\n HTMLStyledProps,\n Component as OriginalComponent,\n} from \"./index.types\"\nimport { Fragment } from \"react\"\nimport {\n createContext,\n cx,\n isArray,\n isFunction,\n isObject,\n isString,\n runIfFn,\n toArray,\n toCamelCase,\n toPascalCase,\n} from \"../../utils\"\nimport { styled, useSystem } from \"../system\"\nimport { chainProps, mergeProps } from \"./props\"\nimport {\n getSlotClassName,\n mergeSlotCSS,\n useComponentSlotStyle,\n useComponentStyle,\n} from \"./use-component-style\"\nimport { getClassName, getDisplayName } from \"./utils\"\n\ntype AsWithFragment = \"fragment\" | As\ntype ClassName = ((system: System) => string) | string\n\ntype Component<\n Y extends AsWithFragment = AsWithFragment,\n M extends object = {},\n> = Y extends \"fragment\"\n ? FunctionComponent<M>\n : OriginalComponent<Exclude<Y, \"fragment\">, M>\n\nexport type ComponentSlotName<\n Y extends ComponentSlotStyle | ComponentStyle = ComponentSlotStyle,\n> = AnyString | Extract<keyof NonNullable<Y[\"base\"]>, string>\n\nexport type ComponentSlot<Y extends string> =\n | [Y, Y]\n | Y\n | { name: string; slot: [Y, Y] | Y }\n\nexport type InitialProps<Y extends Dict = Dict> =\n | ((props: Y) => any)\n | Partial<Y>\nexport type SuperProps<Y extends Dict = Dict> = ((props: Y) => any) | Y\n\nexport type SuperWithoutThemeProps<\n Y extends Dict = Dict,\n M extends Dict = Dict,\n D extends keyof Y = keyof Y,\n> = ((props: WithoutThemeProps<Y, M, D>) => any) | WithoutThemeProps<Y, M, D>\n\nexport interface UseComponentPropsOptions<\n Y extends number | string | symbol = string,\n> {\n className?: ClassName\n withContext?: boolean\n transferProps?: Y[]\n}\n\nexport interface ComponentOptions extends Omit<StyledOptions, \"transferProps\"> {\n className?: ClassName\n shouldStyleProps?: boolean\n}\n\ninterface classNameOptions<Y extends string = string> {\n className?: ClassName\n slot?: ComponentSlot<Y>\n}\n\nexport interface ComponentWithContextOptions<\n Y extends number | string | symbol = string,\n>\n extends ComponentOptions, UseComponentPropsOptions<Y> {}\n\nfunction createProxyComponent<\n Y extends AsWithFragment = \"div\",\n M extends Dict = Dict,\n>(el: FC<M> | Y, { shouldStyleProps, ...options }: ComponentOptions = {}) {\n options.shouldForwardProp ??= isFunction(el)\n shouldStyleProps ??= !isFunction(el)\n\n if (el === \"fragment\") el = Fragment\n\n if (shouldStyleProps || isString(el)) {\n const ProxyComponent = styled(el as As, options)\n\n ProxyComponent.displayName = \"ProxyComponent\"\n\n return ProxyComponent\n } else {\n el.displayName ??= \"ProxyComponent\"\n\n return el as FC<M>\n }\n}\n\nfunction withDisplayName<\n Y extends AsWithFragment = AsWithFragment,\n M extends object = {},\n>(Component: FC<M>, displayName: string) {\n Object.defineProperty(Component, \"name\", { value: displayName })\n Object.defineProperty(Component, \"displayName\", { value: displayName })\n\n return Component as Component<Y, M>\n}\n\nfunction getSlotKey<Y extends string>(slot?: ComponentSlot<Y>) {\n if (!slot) return \"unknown\"\n\n if (isArray(slot) || !isObject(slot)) {\n return toCamelCase(toArray(slot).join(\"-\"))\n } else {\n return toCamelCase(slot.name)\n }\n}\n\nfunction getSlotName<Y extends string>(slot?: ComponentSlot<Y>) {\n if (!slot) return \"\"\n\n if (isArray(slot)) {\n return slot.map((value) => toPascalCase(value as string)).join(\"\")\n } else if (isObject(slot)) {\n return toPascalCase(slot.name)\n } else {\n return toPascalCase(slot as string)\n }\n}\n\nexport function createComponent<\n Y extends object = {},\n M extends ComponentStyle = Dict,\n D extends Dict = Dict,\n>(name: string, style?: M) {\n const defaultClassName = style?.className\n const defaultDisplayName = getDisplayName(name)\n const [ComponentContext, useComponentContext] = createContext<D>({\n name: `${defaultDisplayName}Context`,\n })\n const [PropsContext, usePropsContext] = createContext<Partial<Y>>({\n name: `${defaultDisplayName}PropsContext`,\n strict: false,\n })\n\n function useClassName(name?: string, className?: ClassName) {\n const system = useSystem()\n\n className = runIfFn(className, system)\n className ??= getClassName(name, defaultClassName)(system)\n\n return className\n }\n\n function useComponentProps<H extends Y = Y, R extends keyof H = keyof H>(\n props: H,\n {\n className,\n withContext = true,\n transferProps,\n }: UseComponentPropsOptions<R> = {},\n ) {\n const system = useSystem()\n\n className = runIfFn(className, system)\n className ??= defaultClassName\n className ??= getClassName(name)(system)\n\n const contextProps = usePropsContext() ?? {}\n const mergedProps = withContext ? mergeProps(contextProps, props)() : props\n const [, rest] = useComponentStyle(mergedProps, {\n className,\n style,\n transferProps,\n })\n\n return rest\n }\n\n function component<D extends AsWithFragment = \"div\", H extends Dict = Y>(\n el: D | FC<H>,\n { name, className, ...options }: ComponentOptions = {},\n ) {\n const displayName = getDisplayName(name, defaultDisplayName)\n const ProxyComponent = createProxyComponent(el, options)\n\n return function (...superProps: SuperProps<H>[]) {\n return withDisplayName<D, H>((props) => {\n className = useClassName(name, className)\n\n const mergedProps = chainProps<any>(...superProps)()(props)\n\n return (\n <ProxyComponent\n {...mergedProps}\n className={cx(className, mergedProps.className)}\n />\n )\n }, displayName)\n }\n }\n\n function withContext<\n D extends AsWithFragment = \"div\",\n H extends Y = Y,\n R extends keyof H = keyof H,\n >(\n el: D | FC<WithoutThemeProps<H, M, R>>,\n {\n name,\n className,\n withContext,\n transferProps,\n ...options\n }: ComponentWithContextOptions<R> = {},\n ) {\n const displayName = getDisplayName(name, defaultDisplayName)\n const ProxyComponent = createProxyComponent(el, options)\n\n return function (\n initialProps?: InitialProps<H>,\n ...superProps: SuperWithoutThemeProps<H, M, R>[]\n ) {\n return withDisplayName<D, H>((props) => {\n className = useClassName(name, className)\n\n const computedProps = isFunction(initialProps)\n ? initialProps(props)\n : mergeProps(initialProps ?? {}, props)()\n const mergedProps = useComponentProps(computedProps, {\n className,\n withContext,\n transferProps,\n })\n const rest = chainProps<any>(...toArray(superProps))()(mergedProps)\n\n return <ProxyComponent {...rest} />\n }, displayName)\n }\n }\n\n return {\n component,\n ComponentContext,\n PropsContext,\n useComponentContext,\n usePropsContext,\n withContext,\n useComponentProps,\n }\n}\n\nexport function createSlotComponent<\n Y extends object = {},\n M extends ComponentSlotStyle = Dict,\n D extends Dict = Dict,\n>(rootName: string, style?: M) {\n const rootClassName = style?.className\n const rootDisplayName = getDisplayName(rootName)\n const classNameMap = new Map<string, classNameOptions>()\n const [StyleContext, useStyleContext] = createContext<\n CSSSlotObject<ComponentSlotName<M>>\n >({\n name: `${rootDisplayName}StyleContext`,\n })\n const [ComponentContext, useComponentContext] = createContext<D>({\n name: `${rootDisplayName}Context`,\n })\n const [PropsContext, usePropsContext] = createContext<Partial<Y>>({\n name: `${rootDisplayName}PropsContext`,\n strict: false,\n })\n\n function useClassName(\n slot?: ComponentSlot<ComponentSlotName<M>>,\n className?: ClassName,\n ) {\n const system = useSystem()\n\n className = runIfFn(className, system)\n className ??= getSlotClassName(\n rootClassName ?? getClassName(rootName)(system),\n slot,\n )\n\n return className\n }\n\n function useClassNames() {\n const system = useSystem()\n const entries = classNameMap.entries().map(([key, { className, slot }]) => {\n className = runIfFn(className, system)\n className ??= getSlotClassName(\n rootClassName ?? getClassName(rootName)(system),\n slot,\n )\n\n return [key, className]\n })\n\n return Object.fromEntries(\n entries.filter(([_, className]) => className),\n ) as { [key: string]: string }\n }\n\n function useRootComponentProps<\n Y extends Dict = Dict,\n R extends keyof Y = keyof Y,\n >(\n props: Y,\n slot?: ComponentSlot<ComponentSlotName<M>>,\n {\n className,\n withContext = true,\n transferProps,\n }: UseComponentPropsOptions<R> = {},\n ): [\n CSSSlotObject,\n Merge<WithoutThemeProps<Y, M, R>, { css?: CSSObject | CSSObject[] }>,\n ] {\n className = useClassName(slot, className)\n\n const contextProps = usePropsContext() ?? {}\n const mergedProps = withContext ? mergeProps(contextProps, props)() : props\n const [css, rest] = useComponentSlotStyle(mergedProps, {\n className,\n style,\n slot,\n transferProps,\n })\n\n return [css, rest]\n }\n\n function useSlotComponentProps<Y extends Dict = Dict>(\n props: Y,\n slot?: ComponentSlot<ComponentSlotName<M>>,\n { className }: Omit<UseComponentPropsOptions, \"transferProps\"> = {},\n ) {\n className = useClassName(slot, className)\n\n const style = useStyleContext()\n\n return {\n ...props,\n className: cx(className, props.className),\n css: mergeSlotCSS(slot, style, props.css),\n }\n }\n\n function component<H extends AsWithFragment = \"div\", R extends Dict = Dict>(\n el: FC<R> | H,\n slot?: ComponentSlot<ComponentSlotName<M>>,\n { name, className, ...options }: ComponentOptions = {},\n ) {\n const ProxyComponent = createProxyComponent(el, options)\n const slotKey = getSlotKey(slot)\n const slotName = getSlotName(slot)\n const displayName = getDisplayName(name, `${rootDisplayName}${slotName}`)\n\n classNameMap.set(slotKey, { className, slot })\n\n return function (...superProps: SuperProps<R>[]) {\n return withDisplayName<H, R>((props) => {\n className = useClassName(slot, className)\n\n const mergedProps = chainProps(...superProps)()(props)\n\n return (\n <ProxyComponent\n {...mergedProps}\n className={cx(className, mergedProps.className)}\n />\n )\n }, displayName)\n }\n }\n\n function withProvider<\n H extends AsWithFragment = \"div\",\n R extends Y = Y,\n T extends keyof R = keyof R,\n >(\n el: FC<WithoutThemeProps<R, M, T>> | H,\n slot: ComponentSlot<ComponentSlotName<M>> = \"root\" as ComponentSlot<\n ComponentSlotName<M>\n >,\n {\n name,\n className,\n withContext,\n transferProps,\n ...options\n }: ComponentWithContextOptions<T> = {},\n ) {\n const ProxyComponent = createProxyComponent(el, options)\n const slotKey = getSlotKey(slot)\n const slotName = getSlotName(slot)\n const displayName = getDisplayName(name, `${rootDisplayName}${slotName}`)\n\n classNameMap.set(slotKey, { className, slot })\n\n return function (\n initialProps?: InitialProps<R>,\n ...superProps: SuperWithoutThemeProps<R, M, T>[]\n ) {\n return withDisplayName<H, R>((props) => {\n const computedProps = isFunction(initialProps)\n ? initialProps(props)\n : mergeProps(initialProps ?? {}, props)()\n const [context, mergedProps] = useRootComponentProps(\n computedProps,\n slot,\n {\n className,\n withContext,\n transferProps,\n },\n )\n const rest = chainProps<any>(...superProps)()(mergedProps)\n\n return (\n <StyleContext value={context}>\n <ProxyComponent {...rest} />\n </StyleContext>\n )\n }, displayName)\n }\n }\n\n function withContext<\n H extends AsWithFragment = \"div\",\n R extends Dict = H extends DOMElement ? HTMLStyledProps<H> : Dict,\n >(\n el: FC<R> | H,\n slot?: ComponentSlot<ComponentSlotName<M>>,\n {\n name,\n className,\n withContext,\n ...options\n }: Omit<ComponentWithContextOptions, \"transferProps\"> = {},\n ) {\n const ProxyComponent = createProxyComponent(el, options)\n const slotKey = getSlotKey(slot)\n const slotName = getSlotName(slot)\n const displayName = getDisplayName(name, `${rootDisplayName}${slotName}`)\n\n classNameMap.set(slotKey, { className, slot })\n\n return function (\n initialProps?: InitialProps<R>,\n ...superProps: SuperProps<R>[]\n ) {\n return withDisplayName<H, R>((props) => {\n const computedProps = isFunction(initialProps)\n ? initialProps(props)\n : mergeProps(initialProps ?? {}, props)()\n const mergedProps = useSlotComponentProps(computedProps, slot, {\n className,\n withContext,\n })\n const rest = chainProps(...superProps)()(mergedProps)\n\n return <ProxyComponent {...rest} />\n }, displayName)\n }\n }\n\n return {\n component,\n ComponentContext,\n PropsContext,\n StyleContext,\n useClassNames,\n useComponentContext,\n usePropsContext,\n useStyleContext,\n withContext,\n withProvider,\n useRootComponentProps,\n useSlotComponentProps,\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"create-component.cjs","names":["Fragment","styled","getDisplayName","createContext","useSystem","getClassName","name","useComponentStyle","withContext","mergeProps","chainProps","getSlotClassName","useComponentSlotStyle","style","mergeSlotCSS"],"sources":["../../../../src/core/components/create-component.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FC, FunctionComponent } from \"react\"\nimport type { AnyString, Dict, Merge } from \"../../utils\"\nimport type { CSSObject, CSSSlotObject } from \"../css\"\nimport type {\n ComponentSlotStyle,\n ComponentStyle,\n StyledOptions,\n System,\n WithoutThemeProps,\n} from \"../system\"\nimport type {\n As,\n DOMElement,\n HTMLStyledProps,\n Component as OriginalComponent,\n} from \"./index.types\"\nimport { Fragment } from \"react\"\nimport {\n createContext,\n cx,\n isArray,\n isFunction,\n isObject,\n isString,\n runIfFn,\n toArray,\n toCamelCase,\n toPascalCase,\n} from \"../../utils\"\nimport { styled, useSystem } from \"../system\"\nimport { chainProps, mergeProps } from \"./props\"\nimport {\n getSlotClassName,\n mergeSlotCSS,\n useComponentSlotStyle,\n useComponentStyle,\n} from \"./use-component-style\"\nimport { getClassName, getDisplayName } from \"./utils\"\n\ntype AsWithFragment = \"fragment\" | As\ntype ClassName = ((system: System) => string) | string\n\ntype Component<\n Y extends AsWithFragment = AsWithFragment,\n M extends object = {},\n> = Y extends \"fragment\"\n ? FunctionComponent<M>\n : OriginalComponent<Exclude<Y, \"fragment\">, M>\n\nexport type ComponentSlotName<\n Y extends ComponentSlotStyle | ComponentStyle = ComponentSlotStyle,\n> = AnyString | Extract<keyof NonNullable<Y[\"base\"]>, string>\n\nexport type ComponentSlot<Y extends string> =\n | [Y, Y]\n | Y\n | { name: string; slot: [Y, Y] | Y }\n\nexport type InitialProps<Y extends Dict = Dict> =\n | ((props: Y) => any)\n | Partial<Y>\nexport type SuperProps<Y extends Dict = Dict> = ((props: Y) => any) | Y\n\nexport type SuperWithoutThemeProps<\n Y extends Dict = Dict,\n M extends Dict = Dict,\n D extends keyof Y = keyof Y,\n> = ((props: WithoutThemeProps<Y, M, D>) => any) | WithoutThemeProps<Y, M, D>\n\nexport interface UseComponentPropsOptions<\n Y extends number | string | symbol = string,\n> {\n className?: ClassName\n withContext?: boolean\n transferProps?: Y[]\n}\n\nexport interface ComponentOptions extends Omit<StyledOptions, \"transferProps\"> {\n className?: ClassName\n shouldStyleProps?: boolean\n}\n\ninterface classNameOptions<Y extends string = string> {\n className?: ClassName\n slot?: ComponentSlot<Y>\n}\n\nexport interface ComponentWithContextOptions<\n Y extends number | string | symbol = string,\n>\n extends ComponentOptions, UseComponentPropsOptions<Y> {}\n\nfunction createProxyComponent<\n Y extends AsWithFragment = \"div\",\n M extends Dict = Dict,\n>(el: FC<M> | Y, { shouldStyleProps, ...options }: ComponentOptions = {}) {\n options.shouldForwardProp ??= isFunction(el)\n shouldStyleProps ??= !isFunction(el)\n\n if (el === \"fragment\") el = Fragment\n\n if (shouldStyleProps || isString(el)) {\n const ProxyComponent = styled(el as As, options)\n\n ProxyComponent.displayName = \"ProxyComponent\"\n\n return ProxyComponent\n } else {\n el.displayName ??= \"ProxyComponent\"\n\n return el as FC<M>\n }\n}\n\nfunction withDisplayName<\n Y extends AsWithFragment = AsWithFragment,\n M extends object = {},\n>(Component: FC<M>, displayName: string) {\n Object.defineProperty(Component, \"name\", { value: displayName })\n Object.defineProperty(Component, \"displayName\", { value: displayName })\n\n return Component as Component<Y, M>\n}\n\nfunction getSlotKey<Y extends string>(slot?: ComponentSlot<Y>) {\n if (!slot) return \"unknown\"\n\n if (isArray(slot) || !isObject(slot)) {\n return toCamelCase(toArray(slot).join(\"-\"))\n } else {\n return toCamelCase(slot.name)\n }\n}\n\nfunction getSlotName<Y extends string>(slot?: ComponentSlot<Y>) {\n if (!slot) return \"\"\n\n if (isArray(slot)) {\n return slot.map((value) => toPascalCase(value as string)).join(\"\")\n } else if (isObject(slot)) {\n return toPascalCase(slot.name)\n } else {\n return toPascalCase(slot as string)\n }\n}\n\nexport function createComponent<\n Y extends object = {},\n M extends ComponentStyle = Dict,\n D extends Dict = Dict,\n>(name: string, style?: M) {\n const defaultClassName = style?.className\n const defaultDisplayName = getDisplayName(name)\n const [ComponentContext, useComponentContext] = createContext<D>({\n name: `${defaultDisplayName}Context`,\n })\n const [PropsContext, usePropsContext] = createContext<Partial<Y>>({\n name: `${defaultDisplayName}PropsContext`,\n strict: false,\n })\n\n function useClassName(name?: string, className?: ClassName) {\n const system = useSystem()\n\n className = runIfFn(className, system)\n className ??= getClassName(name, defaultClassName)(system)\n\n return className\n }\n\n function useComponentProps<H extends Y = Y, R extends keyof H = keyof H>(\n props: H,\n {\n className,\n withContext = true,\n transferProps,\n }: UseComponentPropsOptions<R> = {},\n ) {\n const system = useSystem()\n\n className = runIfFn(className, system)\n className ??= defaultClassName\n className ??= getClassName(name)(system)\n\n const contextProps = usePropsContext() ?? {}\n const mergedProps = withContext ? mergeProps(contextProps, props)() : props\n const [, rest] = useComponentStyle(mergedProps, {\n name,\n className,\n style,\n transferProps,\n })\n\n return rest\n }\n\n function component<D extends AsWithFragment = \"div\", H extends Dict = Y>(\n el: D | FC<H>,\n { name, className, ...options }: ComponentOptions = {},\n ) {\n const displayName = getDisplayName(name, defaultDisplayName)\n const ProxyComponent = createProxyComponent(el, options)\n\n return function (\n initialProps?: InitialProps<H>,\n ...superProps: SuperProps<H>[]\n ) {\n return withDisplayName<D, H>((props) => {\n className = useClassName(name, className)\n\n const computedProps = isFunction(initialProps)\n ? initialProps(props)\n : mergeProps(initialProps ?? {}, props)()\n const mergedProps = chainProps<any>(...superProps)()(computedProps)\n\n return (\n <ProxyComponent\n {...mergedProps}\n className={cx(className, mergedProps.className)}\n />\n )\n }, displayName)\n }\n }\n\n function withContext<\n D extends AsWithFragment = \"div\",\n H extends Y = Y,\n R extends keyof H = keyof H,\n >(\n el: D | FC<WithoutThemeProps<H, M, R>>,\n {\n name,\n className,\n withContext,\n transferProps,\n ...options\n }: ComponentWithContextOptions<R> = {},\n ) {\n const displayName = getDisplayName(name, defaultDisplayName)\n const ProxyComponent = createProxyComponent(el, options)\n\n return function (\n initialProps?: InitialProps<H>,\n ...superProps: SuperWithoutThemeProps<H, M, R>[]\n ) {\n return withDisplayName<D, H>((props) => {\n className = useClassName(name, className)\n\n const computedProps = isFunction(initialProps)\n ? initialProps(props)\n : mergeProps(initialProps ?? {}, props)()\n const mergedProps = useComponentProps(computedProps, {\n className,\n withContext,\n transferProps,\n })\n const rest = chainProps<any>(...toArray(superProps))()(mergedProps)\n\n return <ProxyComponent {...rest} />\n }, displayName)\n }\n }\n\n return {\n component,\n ComponentContext,\n PropsContext,\n useComponentContext,\n usePropsContext,\n withContext,\n useComponentProps,\n }\n}\n\nexport function createSlotComponent<\n Y extends object = {},\n M extends ComponentSlotStyle = Dict,\n D extends Dict = Dict,\n>(rootName: string, style?: M) {\n const rootClassName = style?.className\n const rootDisplayName = getDisplayName(rootName)\n const classNameMap = new Map<string, classNameOptions>()\n const [StyleContext, useStyleContext] = createContext<\n CSSSlotObject<ComponentSlotName<M>>\n >({\n name: `${rootDisplayName}StyleContext`,\n })\n const [ComponentContext, useComponentContext] = createContext<D>({\n name: `${rootDisplayName}Context`,\n })\n const [PropsContext, usePropsContext] = createContext<Partial<Y>>({\n name: `${rootDisplayName}PropsContext`,\n strict: false,\n })\n\n function useClassName(\n slot?: ComponentSlot<ComponentSlotName<M>>,\n className?: ClassName,\n ) {\n const system = useSystem()\n\n className = runIfFn(className, system)\n className ??= getSlotClassName(\n rootClassName ?? getClassName(rootName)(system),\n slot,\n )\n\n return className\n }\n\n function useClassNames() {\n const system = useSystem()\n const entries = classNameMap.entries().map(([key, { className, slot }]) => {\n className = runIfFn(className, system)\n className ??= getSlotClassName(\n rootClassName ?? getClassName(rootName)(system),\n slot,\n )\n\n return [key, className]\n })\n\n return Object.fromEntries(\n entries.filter(([_, className]) => className),\n ) as { [key: string]: string }\n }\n\n function useRootComponentProps<\n Y extends Dict = Dict,\n R extends keyof Y = keyof Y,\n >(\n props: Y,\n slot?: ComponentSlot<ComponentSlotName<M>>,\n {\n className,\n withContext = true,\n transferProps,\n }: UseComponentPropsOptions<R> = {},\n ): [\n CSSSlotObject,\n Merge<WithoutThemeProps<Y, M, R>, { css?: CSSObject | CSSObject[] }>,\n ] {\n className = useClassName(slot, className)\n\n const contextProps = usePropsContext() ?? {}\n const mergedProps = withContext ? mergeProps(contextProps, props)() : props\n const [css, rest] = useComponentSlotStyle(mergedProps, {\n name: rootName,\n className,\n style,\n slot,\n transferProps,\n })\n\n return [css, rest]\n }\n\n function useSlotComponentProps<Y extends Dict = Dict>(\n props: Y,\n slot?: ComponentSlot<ComponentSlotName<M>>,\n { className }: Omit<UseComponentPropsOptions, \"transferProps\"> = {},\n ) {\n className = useClassName(slot, className)\n\n const style = useStyleContext()\n\n return {\n ...props,\n className: cx(className, props.className),\n css: mergeSlotCSS(slot, style, props.css),\n }\n }\n\n function component<H extends AsWithFragment = \"div\", R extends Dict = Dict>(\n el: FC<R> | H,\n slot?: ComponentSlot<ComponentSlotName<M>>,\n { name, className, ...options }: ComponentOptions = {},\n ) {\n const ProxyComponent = createProxyComponent(el, options)\n const slotKey = getSlotKey(slot)\n const slotName = getSlotName(slot)\n const displayName = getDisplayName(name, `${rootDisplayName}${slotName}`)\n\n classNameMap.set(slotKey, { className, slot })\n\n return function (\n initialProps?: InitialProps<R>,\n ...superProps: SuperProps<R>[]\n ) {\n return withDisplayName<H, R>((props) => {\n className = useClassName(slot, className)\n\n const computedProps = isFunction(initialProps)\n ? initialProps(props)\n : mergeProps(initialProps ?? {}, props)()\n const mergedProps = chainProps(...superProps)()(computedProps)\n\n return (\n <ProxyComponent\n {...mergedProps}\n className={cx(className, mergedProps.className)}\n />\n )\n }, displayName)\n }\n }\n\n function withProvider<\n H extends AsWithFragment = \"div\",\n R extends Y = Y,\n T extends keyof R = keyof R,\n >(\n el: FC<WithoutThemeProps<R, M, T>> | H,\n slot: ComponentSlot<ComponentSlotName<M>> = \"root\" as ComponentSlot<\n ComponentSlotName<M>\n >,\n {\n name,\n className,\n withContext,\n transferProps,\n ...options\n }: ComponentWithContextOptions<T> = {},\n ) {\n const ProxyComponent = createProxyComponent(el, options)\n const slotKey = getSlotKey(slot)\n const slotName = getSlotName(slot)\n const displayName = getDisplayName(name, `${rootDisplayName}${slotName}`)\n\n classNameMap.set(slotKey, { className, slot })\n\n return function (\n initialProps?: InitialProps<R>,\n ...superProps: SuperWithoutThemeProps<R, M, T>[]\n ) {\n return withDisplayName<H, R>((props) => {\n const computedProps = isFunction(initialProps)\n ? initialProps(props)\n : mergeProps(initialProps ?? {}, props)()\n const [context, mergedProps] = useRootComponentProps(\n computedProps,\n slot,\n {\n className,\n withContext,\n transferProps,\n },\n )\n const rest = chainProps<any>(...superProps)()(mergedProps)\n\n return (\n <StyleContext value={context}>\n <ProxyComponent {...rest} />\n </StyleContext>\n )\n }, displayName)\n }\n }\n\n function withContext<\n H extends AsWithFragment = \"div\",\n R extends Dict = H extends DOMElement ? HTMLStyledProps<H> : Dict,\n >(\n el: FC<R> | H,\n slot?: ComponentSlot<ComponentSlotName<M>>,\n {\n name,\n className,\n withContext,\n ...options\n }: Omit<ComponentWithContextOptions, \"transferProps\"> = {},\n ) {\n const ProxyComponent = createProxyComponent(el, options)\n const slotKey = getSlotKey(slot)\n const slotName = getSlotName(slot)\n const displayName = getDisplayName(name, `${rootDisplayName}${slotName}`)\n\n classNameMap.set(slotKey, { className, slot })\n\n return function (\n initialProps?: InitialProps<R>,\n ...superProps: SuperProps<R>[]\n ) {\n return withDisplayName<H, R>((props) => {\n const computedProps = isFunction(initialProps)\n ? initialProps(props)\n : mergeProps(initialProps ?? {}, props)()\n const mergedProps = useSlotComponentProps(computedProps, slot, {\n className,\n withContext,\n })\n const rest = chainProps(...superProps)()(mergedProps)\n\n return <ProxyComponent {...rest} />\n }, displayName)\n }\n }\n\n return {\n component,\n ComponentContext,\n PropsContext,\n StyleContext,\n useClassNames,\n useComponentContext,\n usePropsContext,\n useStyleContext,\n withContext,\n withProvider,\n useRootComponentProps,\n useSlotComponentProps,\n }\n}\n"],"mappings":"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"}
@@ -16,14 +16,36 @@ function getSelectorStyle(selectors, style) {
16
16
  return selectors.reduceRight((prev, key) => key ? { [key]: prev } : prev, style);
17
17
  }
18
18
  function getStyle(style) {
19
- return function({ hasSlot = false, selectors = [] }) {
19
+ return function({ name: rootName, hasSlot = false, modifier, selectors = [], value }) {
20
20
  if (!style || (0, require_utils_index.utils_exports.isEmptyObject)(style)) return;
21
21
  if (hasSlot) return Object.fromEntries(Object.entries(style).map(([name, style$1]) => {
22
- if (selectors.length) return [name, getSelectorStyle(selectors, style$1 ?? {})];
23
- else return [name, style$1];
22
+ if (selectors.length) {
23
+ if (value && modifier) style$1 = {
24
+ [`--${rootName}-${name}-${modifier}`]: `"${value}"`,
25
+ ...style$1
26
+ };
27
+ return [name, getSelectorStyle(selectors, style$1 ?? {})];
28
+ } else {
29
+ if (value && modifier) style$1 = {
30
+ [`--${rootName}-${name}-${modifier}`]: `"${value}"`,
31
+ ...style$1
32
+ };
33
+ return [name, style$1];
34
+ }
24
35
  }));
25
- else if (selectors.length) return getSelectorStyle(selectors, style);
26
- else return style;
36
+ else if (selectors.length) {
37
+ if (value && modifier) style = {
38
+ [`--${rootName}-${modifier}`]: `"${value}"`,
39
+ ...style
40
+ };
41
+ return getSelectorStyle(selectors, style);
42
+ } else {
43
+ if (value && modifier) style = {
44
+ [`--${rootName}-${modifier}`]: `"${value}"`,
45
+ ...style
46
+ };
47
+ return style;
48
+ }
27
49
  };
28
50
  }
29
51
  function getColorModeStyle(value, mergedStyle) {
@@ -63,7 +85,10 @@ function getModifierStyle(value, mergedStyle) {
63
85
  if (!value) return style;
64
86
  if ((0, require_utils_index.utils_exports.isArray)(value)) style = getColorModeStyle(value, mergedStyle)(options);
65
87
  else if ((0, require_utils_index.utils_exports.isObject)(value)) style = getConditionStyle(value, mergedStyle)(options);
66
- else style = getStyle(mergedStyle[value])(options);
88
+ else style = getStyle(mergedStyle[value])({
89
+ ...options,
90
+ value
91
+ });
67
92
  return style;
68
93
  };
69
94
  }
@@ -71,13 +96,21 @@ function getPropStyle(props, propVariants, style = {}) {
71
96
  const variants = Object.entries(propVariants);
72
97
  return function(options) {
73
98
  if (!variants.length) return style;
74
- variants.forEach(([name, variants$1]) => {
75
- const prop = props[name];
76
- if (prop) {
77
- const propStyle = getModifierStyle(prop, variants$1)(options);
99
+ variants.forEach(([modifier, variants$1]) => {
100
+ const value = props[modifier];
101
+ if (value) {
102
+ const propStyle = getModifierStyle(value, variants$1)({
103
+ modifier,
104
+ value,
105
+ ...options
106
+ });
78
107
  if (propStyle) style = (0, require_utils_index.utils_exports.merge)(style, wrapStyle("props", propStyle)(options));
79
108
  } else if (Object.keys(variants$1).every((key) => (0, require_utils_index.utils_exports.isBooleanish)(key))) {
80
- const propStyle = getModifierStyle("false", variants$1)(options);
109
+ const propStyle = getModifierStyle("false", variants$1)({
110
+ modifier,
111
+ value: "true",
112
+ ...options
113
+ });
81
114
  if (propStyle) style = (0, require_utils_index.utils_exports.merge)(style, wrapStyle("props", propStyle)(options));
82
115
  }
83
116
  });
@@ -157,12 +190,13 @@ function mergeDefaultProps(defaultProps, props) {
157
190
  return prev;
158
191
  }, props);
159
192
  }
160
- function useStyle(props, { className: defaultClassName, style: componentStyle, hasSlot, slot, transferProps } = {}) {
193
+ function useStyle(props, { name, className: defaultClassName, style: componentStyle, hasSlot, slot, transferProps } = {}) {
161
194
  const system = require_system_provider.useSystem();
162
195
  const { getAtRule, wrap } = system.layers;
163
196
  const rootColorScheme = require_styled.useColorSchemeContext();
164
197
  const options = {
165
198
  ...system.breakpoints,
199
+ name,
166
200
  hasSlot,
167
201
  wrap
168
202
  };
@@ -191,11 +225,17 @@ function useStyle(props, { className: defaultClassName, style: componentStyle, h
191
225
  style = (0, require_utils_index.utils_exports.merge)(style, wrapStyle("base", baseStyle)(options));
192
226
  }
193
227
  if (sizes && !hasSize) {
194
- const sizeStyle = (0, require_utils_index.utils_exports.merge)(sizes.base, getModifierStyle(size, sizes)(options));
228
+ const sizeStyle = (0, require_utils_index.utils_exports.merge)(sizes.base, getModifierStyle(size, sizes)({
229
+ modifier: "size",
230
+ ...options
231
+ }));
195
232
  style = (0, require_utils_index.utils_exports.merge)(style, wrapStyle("size", sizeStyle)(options));
196
233
  }
197
234
  if (variants && !hasVariant) {
198
- const variantStyle = (0, require_utils_index.utils_exports.merge)(variants.base, getModifierStyle(variant, variants)(options));
235
+ const variantStyle = (0, require_utils_index.utils_exports.merge)(variants.base, getModifierStyle(variant, variants)({
236
+ modifier: "variant",
237
+ ...options
238
+ }));
199
239
  style = (0, require_utils_index.utils_exports.merge)(style, wrapStyle("variant", variantStyle)(options));
200
240
  }
201
241
  if (propVariants) style = getPropStyle(mergedProps, propVariants, style)(options);
@@ -1 +1 @@
1
- {"version":3,"file":"use-component-style.cjs","names":["style","conditions","getCondition","style: Style<Y> | undefined","variants","temp: (CSSObject | undefined)[]","slot","css","useSystem","useColorSchemeContext","isEqualProps","style: Style<H>","mergeCSS"],"sources":["../../../../src/core/components/use-component-style.ts"],"sourcesContent":["\"use client\"\n\nimport type { Dict } from \"../../utils\"\nimport type {\n ColorModeArray,\n CSSModifierObject,\n CSSObject,\n CSSPropObject,\n CSSSlotObject,\n ResponsiveWithConditionObject,\n StyleValueWithCondition,\n} from \"../css\"\nimport type {\n Breakpoints,\n ComponentCompound,\n ComponentSlotStyle,\n ComponentStyle,\n Layers,\n LayerScheme,\n ThemeProps,\n WithoutThemeProps,\n} from \"../system\"\nimport type { ComponentSlot, ComponentSlotName } from \"./create-component\"\nimport type { HTMLStyledProps } from \"./index.types\"\nimport { useRef } from \"react\"\nimport {\n bem,\n cx,\n filterEmpty,\n isArray,\n isBooleanish,\n isEmptyObject,\n isObject,\n isRegExp,\n isUndefined,\n merge,\n omitObject,\n toArray,\n toKebabCase,\n} from \"../../utils\"\nimport { conditions, getCondition, mergeCSS } from \"../css\"\nimport { useColorSchemeContext, useSystem } from \"../system\"\nimport { isEqualProps } from \"./props\"\n\ntype Style<Y extends boolean = false> = Y extends false\n ? CSSObject\n : CSSSlotObject\n\ntype MergedStyle = CSSModifierObject | CSSModifierObject<CSSSlotObject>\n\ninterface GetStyleOptions\n extends Partial<Breakpoints>, Pick<Partial<Layers>, \"wrap\"> {\n hasSlot?: boolean\n selectors?: (string | undefined)[]\n}\n\nfunction getSelectorStyle<Y extends Dict = Dict>(\n selectors: (string | undefined)[],\n style: Y,\n) {\n return selectors.reduceRight<Dict>(\n (prev, key) => (key ? { [key]: prev } : prev),\n style,\n ) as Y\n}\n\nfunction getStyle<Y extends boolean = false>(\n style: CSSObject | CSSSlotObject | undefined,\n) {\n return function ({\n hasSlot = false,\n selectors = [],\n }: GetStyleOptions): Style<Y> | undefined {\n if (!style || isEmptyObject(style)) return\n\n if (hasSlot) {\n return Object.fromEntries(\n Object.entries(style as CSSSlotObject).map(([name, style]) => {\n if (selectors.length) {\n return [name, getSelectorStyle(selectors, style ?? {})]\n } else {\n return [name, style]\n }\n }),\n ) as Style<Y>\n } else if (selectors.length) {\n return getSelectorStyle(selectors, style) as Style<Y>\n } else {\n return style as Style<Y>\n }\n }\n}\n\nfunction getColorModeStyle<Y extends boolean = false>(\n value: ColorModeArray<string>,\n mergedStyle: MergedStyle,\n) {\n return function ({ selectors = [], ...rest }: GetStyleOptions) {\n const [lightValue, darkValue] = value\n\n const lightStyle = getModifierStyle<Y>(\n lightValue,\n mergedStyle,\n )({ ...rest, selectors })\n\n const darkStyle = getModifierStyle<Y>(\n darkValue,\n mergedStyle,\n )({ ...rest, selectors: [...selectors, conditions._dark] })\n\n return merge(lightStyle, darkStyle)\n }\n}\n\nfunction getConditionStyle<Y extends boolean = false>(\n value: ResponsiveWithConditionObject<string>,\n mergedStyle: MergedStyle,\n) {\n return function (options: GetStyleOptions) {\n const { isResponsiveKey, queries = [], selectors = [] } = options\n const conditionalKeys = Object.keys(value).filter(\n (key) => !isResponsiveKey?.(key),\n )\n\n const breakpointObj = queries.reduce<Style<Y>>(\n (prev, { breakpoint, query }) => {\n if (!isUndefined(value[breakpoint])) {\n prev = merge(\n prev,\n getModifierStyle<Y>(\n value[breakpoint],\n mergedStyle,\n )({ ...options, selectors: [...selectors, query] }),\n )\n }\n\n return prev\n },\n {},\n )\n\n const additionalObj = conditionalKeys.reduce<Style<Y>>((prev, key) => {\n prev = merge(\n prev,\n getModifierStyle<Y>(\n value[key as keyof typeof value],\n mergedStyle,\n )({ ...options, selectors: [...selectors, getCondition(key)] }),\n )\n\n return prev\n }, {})\n\n return merge(breakpointObj, additionalObj)\n }\n}\n\nfunction getModifierStyle<Y extends boolean = false>(\n value: StyleValueWithCondition<string> | undefined,\n mergedStyle: MergedStyle,\n) {\n return function (options: GetStyleOptions): Style<Y> | undefined {\n let style: Style<Y> | undefined = undefined\n\n if (!value) return style\n\n if (isArray(value)) {\n style = getColorModeStyle<Y>(value, mergedStyle)(options)\n } else if (isObject(value)) {\n style = getConditionStyle<Y>(value, mergedStyle)(options)\n } else {\n style = getStyle<Y>(mergedStyle[value])(options)\n }\n\n return style\n }\n}\n\nfunction getPropStyle<Y extends boolean = false>(\n props: Dict,\n propVariants: CSSPropObject | CSSPropObject<CSSSlotObject>,\n style: Style<Y> | undefined = {},\n) {\n const variants = Object.entries(propVariants)\n\n return function (options: GetStyleOptions) {\n if (!variants.length) return style\n\n variants.forEach(([name, variants]) => {\n const prop = props[name as keyof typeof props]\n\n if (prop) {\n const propStyle = getModifierStyle<Y>(prop, variants)(options)\n\n if (propStyle)\n style = merge(style, wrapStyle<Y>(\"props\", propStyle)(options))\n } else {\n const boolean = Object.keys(variants).every((key) => isBooleanish(key))\n\n if (boolean) {\n const propStyle = getModifierStyle<Y>(\"false\", variants)(options)\n\n if (propStyle)\n style = merge(style, wrapStyle<Y>(\"props\", propStyle)(options))\n }\n }\n })\n\n return style\n }\n}\n\nfunction getCompoundStyle<Y extends boolean = false>(\n props: Dict,\n compounds: ComponentCompound<CSSSlotObject>[] | ComponentCompound[],\n style: Style<Y> | undefined = {},\n) {\n return function (options: GetStyleOptions) {\n if (!compounds.length) return style\n\n compounds.forEach(({ css, layer, ...rest }) => {\n const conditions = Object.entries(rest)\n\n if (!conditions.length) return\n\n const apply = conditions.every(([key, value]) =>\n isArray(value)\n ? value.includes(props[key])\n : isRegExp(value)\n ? value.test(props[key])\n : props[key] === value,\n )\n\n if (!apply) return\n\n style = merge(\n style,\n wrapStyle<Y>(layer ?? \"compounds\", css as Style<Y>)(options),\n )\n })\n\n return style\n }\n}\n\nexport function getSlotClassName<Y extends string>(\n className?: string,\n slot?: ComponentSlot<Y>,\n) {\n if (!className || !slot) return className\n\n if (isArray(slot)) {\n const [element, modifier] = slot.map((value) =>\n toKebabCase(value as string),\n )\n\n return cx(bem(className, element), bem(className, element, modifier))\n } else if (isObject(slot)) {\n const slotArray = toArray(slot.slot)\n const [element, modifier] = slotArray.map((value) =>\n toKebabCase(value as string),\n )\n\n return cx(bem(className, element), bem(className, element, modifier))\n } else {\n return bem(className, toKebabCase(slot as string))\n }\n}\n\nexport function mergeSlotCSS<Y extends string>(\n slot?: ComponentSlot<Y>,\n style?: CSSSlotObject<Y>,\n css?: CSSObject | CSSObject[],\n): CSSObject | CSSObject[] | undefined {\n if (!style || !slot) return css\n\n const temp: (CSSObject | undefined)[] = []\n\n if (isArray(slot)) {\n temp.push(...slot.map((slot) => style[slot]))\n } else if (isObject(slot)) {\n if (isArray(slot.slot)) {\n temp.push(...slot.slot.map((slot) => style[slot]))\n } else {\n temp.push(style[slot.slot])\n }\n } else {\n temp.push(style[slot])\n }\n\n if (css) temp.push(...toArray(css))\n\n const result = filterEmpty(temp)\n\n return !!result.length ? result : undefined\n}\n\nfunction omitThemeProps<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n>(props: Y, omitKeys: string[] = [], transferProps?: D[]) {\n if (transferProps)\n omitKeys = omitKeys.filter((key) => !transferProps.includes(key as D))\n\n return omitObject(props, omitKeys) as unknown as WithoutThemeProps<Y, M, D>\n}\n\nfunction wrapStyle<Y extends boolean = false>(\n layer: LayerScheme,\n style?: Style<Y>,\n) {\n return function ({ hasSlot, wrap }: GetStyleOptions) {\n if (hasSlot) {\n if (!style) return undefined\n\n return Object.fromEntries(\n Object.entries(style).map(([slot, style]) => [\n slot,\n wrap?.(layer, style) ?? style,\n ]),\n )\n } else {\n return wrap?.(layer, style) ?? style\n }\n }\n}\n\nfunction getHasAtRuleStyle(css?: CSSObject | CSSObject[]) {\n return (getAtRule?: Layers[\"getAtRule\"]) => {\n let hasVariant = false\n let hasSize = false\n\n if (!css || !getAtRule) return { hasSize, hasVariant }\n\n const variantAtRule = getAtRule(\"variant\")\n const sizeAtRule = getAtRule(\"size\")\n\n css = toArray(css)\n\n css.forEach((css) => {\n const keys = Object.keys(css)\n\n if (keys.includes(variantAtRule)) hasVariant = true\n if (keys.includes(sizeAtRule)) hasSize = true\n })\n\n return { hasSize, hasVariant }\n }\n}\n\nfunction mergeDefaultProps<\n Y extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n M extends Dict = Dict,\n>(defaultProps: Y[\"defaultProps\"], props: M) {\n return Object.entries(defaultProps ?? {}).reduce<Dict>(\n (prev, [key, value]) => {\n prev[key] ??= value\n\n return prev\n },\n props,\n ) as M\n}\n\ninterface UseStyleOptions<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n H extends boolean = false,\n> {\n className?: string\n hasSlot?: H\n slot?: ComponentSlot<ComponentSlotName<M>>\n style?: M\n transferProps?: D[]\n}\n\nfunction useStyle<\n Y extends HTMLStyledProps & ThemeProps<{}> = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n H extends boolean = false,\n>(\n props: Y,\n {\n className: defaultClassName,\n style: componentStyle,\n hasSlot,\n slot,\n transferProps,\n }: UseStyleOptions<Y, M, D, H> = {},\n): [Style<H>, WithoutThemeProps<Y, M, D>] {\n const system = useSystem()\n const { getAtRule, wrap } = system.layers\n const rootColorScheme = useColorSchemeContext()\n const options = { ...system.breakpoints, hasSlot, wrap }\n\n const propsRef = useRef<Dict>({})\n const mergedPropsRef = useRef<Dict>({})\n const styleRef = useRef<Style<H> | undefined>(undefined)\n\n const hasComponentStyle =\n componentStyle && !!Object.keys(componentStyle).length\n\n if (hasComponentStyle) {\n const {\n className: customClassName,\n base,\n compounds,\n props: propVariants,\n sizes,\n variants,\n defaultProps: { colorScheme: defaultColorScheme, ...defaultProps } = {},\n } = componentStyle\n\n const colorScheme =\n props.colorScheme ?? rootColorScheme ?? defaultColorScheme\n\n const className = cx(defaultClassName ?? customClassName, props.className)\n const mergedProps = {\n ...mergeDefaultProps(defaultProps, props),\n className,\n colorScheme,\n }\n const omitProps = Object.keys(propVariants ?? {})\n const { size, variant } = mergedProps\n\n if (variants) omitProps.push(\"variant\")\n if (sizes) omitProps.push(\"size\")\n\n const computedProps = omitThemeProps(\n mergedProps,\n omitProps,\n transferProps,\n ) as Y\n\n if (\n !isEqualProps(mergedPropsRef.current, mergedProps, [\"css\", \"children\"])\n ) {\n const { hasSize, hasVariant } = getHasAtRuleStyle(props.css)(getAtRule)\n\n let style: Style<H> = {}\n\n if (base) {\n const baseStyle = getStyle<H>(base)(options)\n\n style = merge(style, wrapStyle<H>(\"base\", baseStyle)(options))\n }\n\n if (sizes && !hasSize) {\n const sizeStyle = merge(\n sizes.base,\n getModifierStyle<H>(size, sizes)(options),\n )\n\n style = merge(style, wrapStyle<H>(\"size\", sizeStyle)(options))\n }\n\n if (variants && !hasVariant) {\n const variantStyle = merge(\n variants.base,\n getModifierStyle<H>(variant, variants)(options),\n )\n\n style = merge(style, wrapStyle<H>(\"variant\", variantStyle)(options))\n }\n\n if (propVariants)\n style = getPropStyle<H>(mergedProps, propVariants, style)(options)\n\n if (compounds)\n style = getCompoundStyle<H>(mergedProps, compounds, style)(options)\n\n styleRef.current = style\n\n if (hasSlot) {\n computedProps.css = mergeSlotCSS<ComponentSlotName<M>>(\n slot,\n style as CSSSlotObject,\n computedProps.css,\n )\n } else {\n computedProps.css = mergeCSS(style as CSSObject, computedProps.css)\n }\n } else {\n computedProps.css = propsRef.current.css\n }\n\n mergedPropsRef.current = mergedProps\n\n if (!isEqualProps(propsRef.current, computedProps))\n propsRef.current = computedProps\n } else {\n const className = cx(defaultClassName, props.className)\n\n if (className) props.className = className\n\n if (!isEqualProps(propsRef.current, props))\n propsRef.current = props as unknown as WithoutThemeProps<Y, M, D>\n }\n\n return [\n styleRef.current ?? {},\n propsRef.current as WithoutThemeProps<Y, M, D>,\n ]\n}\n\nexport interface UseComponentStyleOptions<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n> extends Omit<UseStyleOptions<Y, M, D>, \"hasSlot\" | \"slot\"> {}\n\nexport function useComponentStyle<\n Y extends Dict = Dict,\n M extends ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n>(props: Y, options: UseComponentStyleOptions<Y, M, D> = {}) {\n return useStyle<Y, M, D>(props, options)\n}\n\nexport interface UseComponentSlotStyleOptions<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n> extends Omit<UseStyleOptions<Y, M, D, true>, \"hasSlot\"> {}\n\nexport function useComponentSlotStyle<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle = ComponentSlotStyle,\n D extends keyof Y = keyof Y,\n>(props: Y, options: UseComponentSlotStyleOptions<Y, M, D> = {}) {\n return useStyle<Y, M, D, true>(props, { ...options, hasSlot: true })\n}\n"],"mappings":";;;;;;;;;;;;;;AAwDA,SAAS,iBACP,WACA,OACA;AACA,QAAO,UAAU,aACd,MAAM,QAAS,MAAM,GAAG,MAAM,MAAM,GAAG,MACxC,MACD;;AAGH,SAAS,SACP,OACA;AACA,QAAO,SAAU,EACf,UAAU,OACV,YAAY,EAAE,IAC0B;AACxC,MAAI,CAAC,8DAAuB,MAAM,CAAE;AAEpC,MAAI,QACF,QAAO,OAAO,YACZ,OAAO,QAAQ,MAAuB,CAAC,KAAK,CAAC,MAAMA,aAAW;AAC5D,OAAI,UAAU,OACZ,QAAO,CAAC,MAAM,iBAAiB,WAAWA,WAAS,EAAE,CAAC,CAAC;OAEvD,QAAO,CAAC,MAAMA,QAAM;IAEtB,CACH;WACQ,UAAU,OACnB,QAAO,iBAAiB,WAAW,MAAM;MAEzC,QAAO;;;AAKb,SAAS,kBACP,OACA,aACA;AACA,QAAO,SAAU,EAAE,YAAY,EAAE,EAAE,GAAG,QAAyB;EAC7D,MAAM,CAAC,YAAY,aAAa;AAYhC,sDAVmB,iBACjB,YACA,YACD,CAAC;GAAE,GAAG;GAAM;GAAW,CAAC,EAEP,iBAChB,WACA,YACD,CAAC;GAAE,GAAG;GAAM,WAAW,CAAC,GAAG,WAAWC,8BAAW,MAAM;GAAE,CAAC,CAExB;;;AAIvC,SAAS,kBACP,OACA,aACA;AACA,QAAO,SAAU,SAA0B;EACzC,MAAM,EAAE,iBAAiB,UAAU,EAAE,EAAE,YAAY,EAAE,KAAK;EAC1D,MAAM,kBAAkB,OAAO,KAAK,MAAM,CAAC,QACxC,QAAQ,CAAC,kBAAkB,IAAI,CACjC;AA+BD,sDA7BsB,QAAQ,QAC3B,MAAM,EAAE,YAAY,YAAY;AAC/B,OAAI,oDAAa,MAAM,YAAY,CACjC,qDACE,MACA,iBACE,MAAM,aACN,YACD,CAAC;IAAE,GAAG;IAAS,WAAW,CAAC,GAAG,WAAW,MAAM;IAAE,CAAC,CACpD;AAGH,UAAO;KAET,EAAE,CACH,EAEqB,gBAAgB,QAAkB,MAAM,QAAQ;AACpE,uDACE,MACA,iBACE,MAAM,MACN,YACD,CAAC;IAAE,GAAG;IAAS,WAAW,CAAC,GAAG,WAAWC,gCAAa,IAAI,CAAC;IAAE,CAAC,CAChE;AAED,UAAO;KACN,EAAE,CAAC,CAEoC;;;AAI9C,SAAS,iBACP,OACA,aACA;AACA,QAAO,SAAU,SAAgD;EAC/D,IAAIC,QAA8B;AAElC,MAAI,CAAC,MAAO,QAAO;AAEnB,qDAAY,MAAM,CAChB,SAAQ,kBAAqB,OAAO,YAAY,CAAC,QAAQ;2DACvC,MAAM,CACxB,SAAQ,kBAAqB,OAAO,YAAY,CAAC,QAAQ;MAEzD,SAAQ,SAAY,YAAY,OAAO,CAAC,QAAQ;AAGlD,SAAO;;;AAIX,SAAS,aACP,OACA,cACA,QAA8B,EAAE,EAChC;CACA,MAAM,WAAW,OAAO,QAAQ,aAAa;AAE7C,QAAO,SAAU,SAA0B;AACzC,MAAI,CAAC,SAAS,OAAQ,QAAO;AAE7B,WAAS,SAAS,CAAC,MAAMC,gBAAc;GACrC,MAAM,OAAO,MAAM;AAEnB,OAAI,MAAM;IACR,MAAM,YAAY,iBAAoB,MAAMA,WAAS,CAAC,QAAQ;AAE9D,QAAI,UACF,sDAAc,OAAO,UAAa,SAAS,UAAU,CAAC,QAAQ,CAAC;cAEjD,OAAO,KAAKA,WAAS,CAAC,OAAO,4DAAqB,IAAI,CAAC,EAE1D;IACX,MAAM,YAAY,iBAAoB,SAASA,WAAS,CAAC,QAAQ;AAEjE,QAAI,UACF,sDAAc,OAAO,UAAa,SAAS,UAAU,CAAC,QAAQ,CAAC;;IAGrE;AAEF,SAAO;;;AAIX,SAAS,iBACP,OACA,WACA,QAA8B,EAAE,EAChC;AACA,QAAO,SAAU,SAA0B;AACzC,MAAI,CAAC,UAAU,OAAQ,QAAO;AAE9B,YAAU,SAAS,EAAE,KAAK,OAAO,GAAG,WAAW;GAC7C,MAAMH,eAAa,OAAO,QAAQ,KAAK;AAEvC,OAAI,CAACA,aAAW,OAAQ;AAUxB,OAAI,CARUA,aAAW,OAAO,CAAC,KAAK,0DAC5B,MAAM,GACV,MAAM,SAAS,MAAM,KAAK,mDACjB,MAAM,GACb,MAAM,KAAK,MAAM,KAAK,GACtB,MAAM,SAAS,MACtB,CAEW;AAEZ,wDACE,OACA,UAAa,SAAS,aAAa,IAAgB,CAAC,QAAQ,CAC7D;IACD;AAEF,SAAO;;;AAIX,SAAgB,iBACd,WACA,MACA;AACA,KAAI,CAAC,aAAa,CAAC,KAAM,QAAO;AAEhC,oDAAY,KAAK,EAAE;EACjB,MAAM,CAAC,SAAS,YAAY,KAAK,KAAK,6DACxB,MAAgB,CAC7B;AAED,8FAAc,WAAW,QAAQ,6CAAM,WAAW,SAAS,SAAS,CAAC;4DACnD,KAAK,EAAE;EAEzB,MAAM,CAAC,SAAS,2DADU,KAAK,KAAK,CACE,KAAK,6DAC7B,MAAgB,CAC7B;AAED,8FAAc,WAAW,QAAQ,6CAAM,WAAW,SAAS,SAAS,CAAC;OAErE,mDAAW,8DAAuB,KAAe,CAAC;;AAItD,SAAgB,aACd,MACA,OACA,KACqC;AACrC,KAAI,CAAC,SAAS,CAAC,KAAM,QAAO;CAE5B,MAAMI,OAAkC,EAAE;AAE1C,oDAAY,KAAK,CACf,MAAK,KAAK,GAAG,KAAK,KAAK,WAAS,MAAMC,QAAM,CAAC;0DAC3B,KAAK,CACvB,oDAAY,KAAK,KAAK,CACpB,MAAK,KAAK,GAAG,KAAK,KAAK,KAAK,WAAS,MAAMA,QAAM,CAAC;KAElD,MAAK,KAAK,MAAM,KAAK,MAAM;KAG7B,MAAK,KAAK,MAAM,MAAM;AAGxB,KAAI,IAAK,MAAK,KAAK,kDAAW,IAAI,CAAC;CAEnC,MAAM,4DAAqB,KAAK;AAEhC,QAAO,CAAC,CAAC,OAAO,SAAS,SAAS;;AAGpC,SAAS,eAIP,OAAU,WAAqB,EAAE,EAAE,eAAqB;AACxD,KAAI,cACF,YAAW,SAAS,QAAQ,QAAQ,CAAC,cAAc,SAAS,IAAS,CAAC;AAExE,0DAAkB,OAAO,SAAS;;AAGpC,SAAS,UACP,OACA,OACA;AACA,QAAO,SAAU,EAAE,SAAS,QAAyB;AACnD,MAAI,SAAS;AACX,OAAI,CAAC,MAAO,QAAO;AAEnB,UAAO,OAAO,YACZ,OAAO,QAAQ,MAAM,CAAC,KAAK,CAAC,MAAMN,aAAW,CAC3C,MACA,OAAO,OAAOA,QAAM,IAAIA,QACzB,CAAC,CACH;QAED,QAAO,OAAO,OAAO,MAAM,IAAI;;;AAKrC,SAAS,kBAAkB,KAA+B;AACxD,SAAQ,cAAoC;EAC1C,IAAI,aAAa;EACjB,IAAI,UAAU;AAEd,MAAI,CAAC,OAAO,CAAC,UAAW,QAAO;GAAE;GAAS;GAAY;EAEtD,MAAM,gBAAgB,UAAU,UAAU;EAC1C,MAAM,aAAa,UAAU,OAAO;AAEpC,uDAAc,IAAI;AAElB,MAAI,SAAS,UAAQ;GACnB,MAAM,OAAO,OAAO,KAAKO,MAAI;AAE7B,OAAI,KAAK,SAAS,cAAc,CAAE,cAAa;AAC/C,OAAI,KAAK,SAAS,WAAW,CAAE,WAAU;IACzC;AAEF,SAAO;GAAE;GAAS;GAAY;;;AAIlC,SAAS,kBAGP,cAAiC,OAAU;AAC3C,QAAO,OAAO,QAAQ,gBAAgB,EAAE,CAAC,CAAC,QACvC,MAAM,CAAC,KAAK,WAAW;AACtB,OAAK,SAAS;AAEd,SAAO;IAET,MACD;;AAgBH,SAAS,SAMP,OACA,EACE,WAAW,kBACX,OAAO,gBACP,SACA,MACA,kBAC+B,EAAE,EACK;CACxC,MAAM,SAASC,mCAAW;CAC1B,MAAM,EAAE,WAAW,SAAS,OAAO;CACnC,MAAM,kBAAkBC,sCAAuB;CAC/C,MAAM,UAAU;EAAE,GAAG,OAAO;EAAa;EAAS;EAAM;CAExD,MAAM,6BAAwB,EAAE,CAAC;CACjC,MAAM,mCAA8B,EAAE,CAAC;CACvC,MAAM,6BAAwC,OAAU;AAKxD,KAFE,kBAAkB,CAAC,CAAC,OAAO,KAAK,eAAe,CAAC,QAE3B;EACrB,MAAM,EACJ,WAAW,iBACX,MACA,WACA,OAAO,cACP,OACA,UACA,cAAc,EAAE,aAAa,oBAAoB,GAAG,iBAAiB,EAAE,KACrE;EAEJ,MAAM,cACJ,MAAM,eAAe,mBAAmB;EAE1C,MAAM,sDAAe,oBAAoB,iBAAiB,MAAM,UAAU;EAC1E,MAAM,cAAc;GAClB,GAAG,kBAAkB,cAAc,MAAM;GACzC;GACA;GACD;EACD,MAAM,YAAY,OAAO,KAAK,gBAAgB,EAAE,CAAC;EACjD,MAAM,EAAE,MAAM,YAAY;AAE1B,MAAI,SAAU,WAAU,KAAK,UAAU;AACvC,MAAI,MAAO,WAAU,KAAK,OAAO;EAEjC,MAAM,gBAAgB,eACpB,aACA,WACA,cACD;AAED,MACE,CAACC,2BAAa,eAAe,SAAS,aAAa,CAAC,OAAO,WAAW,CAAC,EACvE;GACA,MAAM,EAAE,SAAS,eAAe,kBAAkB,MAAM,IAAI,CAAC,UAAU;GAEvE,IAAIC,QAAkB,EAAE;AAExB,OAAI,MAAM;IACR,MAAM,YAAY,SAAY,KAAK,CAAC,QAAQ;AAE5C,yDAAc,OAAO,UAAa,QAAQ,UAAU,CAAC,QAAQ,CAAC;;AAGhE,OAAI,SAAS,CAAC,SAAS;IACrB,MAAM,yDACJ,MAAM,MACN,iBAAoB,MAAM,MAAM,CAAC,QAAQ,CAC1C;AAED,yDAAc,OAAO,UAAa,QAAQ,UAAU,CAAC,QAAQ,CAAC;;AAGhE,OAAI,YAAY,CAAC,YAAY;IAC3B,MAAM,4DACJ,SAAS,MACT,iBAAoB,SAAS,SAAS,CAAC,QAAQ,CAChD;AAED,yDAAc,OAAO,UAAa,WAAW,aAAa,CAAC,QAAQ,CAAC;;AAGtE,OAAI,aACF,SAAQ,aAAgB,aAAa,cAAc,MAAM,CAAC,QAAQ;AAEpE,OAAI,UACF,SAAQ,iBAAoB,aAAa,WAAW,MAAM,CAAC,QAAQ;AAErE,YAAS,UAAU;AAEnB,OAAI,QACF,eAAc,MAAM,aAClB,MACA,OACA,cAAc,IACf;OAED,eAAc,MAAMC,2BAAS,OAAoB,cAAc,IAAI;QAGrE,eAAc,MAAM,SAAS,QAAQ;AAGvC,iBAAe,UAAU;AAEzB,MAAI,CAACF,2BAAa,SAAS,SAAS,cAAc,CAChD,UAAS,UAAU;QAChB;EACL,MAAM,sDAAe,kBAAkB,MAAM,UAAU;AAEvD,MAAI,UAAW,OAAM,YAAY;AAEjC,MAAI,CAACA,2BAAa,SAAS,SAAS,MAAM,CACxC,UAAS,UAAU;;AAGvB,QAAO,CACL,SAAS,WAAW,EAAE,EACtB,SAAS,QACV;;AASH,SAAgB,kBAId,OAAU,UAA6C,EAAE,EAAE;AAC3D,QAAO,SAAkB,OAAO,QAAQ;;AAS1C,SAAgB,sBAId,OAAU,UAAiD,EAAE,EAAE;AAC/D,QAAO,SAAwB,OAAO;EAAE,GAAG;EAAS,SAAS;EAAM,CAAC"}
1
+ {"version":3,"file":"use-component-style.cjs","names":["style","conditions","getCondition","style: Style<Y> | undefined","variants","temp: (CSSObject | undefined)[]","slot","css","useSystem","useColorSchemeContext","isEqualProps","style: Style<H>","mergeCSS"],"sources":["../../../../src/core/components/use-component-style.ts"],"sourcesContent":["\"use client\"\n\nimport type { Dict } from \"../../utils\"\nimport type {\n ColorModeArray,\n CSSModifierObject,\n CSSObject,\n CSSPropObject,\n CSSSlotObject,\n ResponsiveWithConditionObject,\n StyleValueWithCondition,\n} from \"../css\"\nimport type {\n Breakpoints,\n ComponentCompound,\n ComponentSlotStyle,\n ComponentStyle,\n Layers,\n LayerScheme,\n ThemeProps,\n WithoutThemeProps,\n} from \"../system\"\nimport type { ComponentSlot, ComponentSlotName } from \"./create-component\"\nimport type { HTMLStyledProps } from \"./index.types\"\nimport { useRef } from \"react\"\nimport {\n bem,\n cx,\n filterEmpty,\n isArray,\n isBooleanish,\n isEmptyObject,\n isObject,\n isRegExp,\n isUndefined,\n merge,\n omitObject,\n toArray,\n toKebabCase,\n} from \"../../utils\"\nimport { conditions, getCondition, mergeCSS } from \"../css\"\nimport { useColorSchemeContext, useSystem } from \"../system\"\nimport { isEqualProps } from \"./props\"\n\ntype Style<Y extends boolean = false> = Y extends false\n ? CSSObject\n : CSSSlotObject\n\ntype MergedStyle = CSSModifierObject | CSSModifierObject<CSSSlotObject>\n\ninterface GetStyleOptions\n extends Partial<Breakpoints>, Pick<Partial<Layers>, \"wrap\"> {\n hasSlot?: boolean\n modifier?: string\n name?: string\n selectors?: (string | undefined)[]\n value?: string\n}\n\nfunction getSelectorStyle<Y extends Dict = Dict>(\n selectors: (string | undefined)[],\n style: Y,\n) {\n return selectors.reduceRight<Dict>(\n (prev, key) => (key ? { [key]: prev } : prev),\n style,\n ) as Y\n}\n\nfunction getStyle<Y extends boolean = false>(\n style: CSSObject | CSSSlotObject | undefined,\n) {\n return function ({\n name: rootName,\n hasSlot = false,\n modifier,\n selectors = [],\n value,\n }: GetStyleOptions): Style<Y> | undefined {\n if (!style || isEmptyObject(style)) return\n\n if (hasSlot) {\n return Object.fromEntries(\n Object.entries(style as CSSSlotObject).map(([name, style]) => {\n if (selectors.length) {\n if (value && modifier)\n style = {\n [`--${rootName}-${name}-${modifier}`]: `\"${value}\"`,\n ...style,\n } as CSSObject\n\n return [name, getSelectorStyle(selectors, style ?? {})]\n } else {\n if (value && modifier)\n style = {\n [`--${rootName}-${name}-${modifier}`]: `\"${value}\"`,\n ...style,\n } as CSSObject\n\n return [name, style]\n }\n }),\n ) as Style<Y>\n } else if (selectors.length) {\n if (value && modifier)\n style = {\n [`--${rootName}-${modifier}`]: `\"${value}\"`,\n ...style,\n } as CSSObject\n\n return getSelectorStyle(selectors, style) as Style<Y>\n } else {\n if (value && modifier)\n style = {\n [`--${rootName}-${modifier}`]: `\"${value}\"`,\n ...style,\n } as CSSObject\n\n return style as Style<Y>\n }\n }\n}\n\nfunction getColorModeStyle<Y extends boolean = false>(\n value: ColorModeArray<string>,\n mergedStyle: MergedStyle,\n) {\n return function ({ selectors = [], ...rest }: GetStyleOptions) {\n const [lightValue, darkValue] = value\n\n const lightStyle = getModifierStyle<Y>(\n lightValue,\n mergedStyle,\n )({ ...rest, selectors })\n\n const darkStyle = getModifierStyle<Y>(\n darkValue,\n mergedStyle,\n )({ ...rest, selectors: [...selectors, conditions._dark] })\n\n return merge(lightStyle, darkStyle)\n }\n}\n\nfunction getConditionStyle<Y extends boolean = false>(\n value: ResponsiveWithConditionObject<string>,\n mergedStyle: MergedStyle,\n) {\n return function (options: GetStyleOptions) {\n const { isResponsiveKey, queries = [], selectors = [] } = options\n const conditionalKeys = Object.keys(value).filter(\n (key) => !isResponsiveKey?.(key),\n )\n\n const breakpointObj = queries.reduce<Style<Y>>(\n (prev, { breakpoint, query }) => {\n if (!isUndefined(value[breakpoint])) {\n prev = merge(\n prev,\n getModifierStyle<Y>(\n value[breakpoint],\n mergedStyle,\n )({ ...options, selectors: [...selectors, query] }),\n )\n }\n\n return prev\n },\n {},\n )\n\n const additionalObj = conditionalKeys.reduce<Style<Y>>((prev, key) => {\n prev = merge(\n prev,\n getModifierStyle<Y>(\n value[key as keyof typeof value],\n mergedStyle,\n )({ ...options, selectors: [...selectors, getCondition(key)] }),\n )\n\n return prev\n }, {})\n\n return merge(breakpointObj, additionalObj)\n }\n}\n\nfunction getModifierStyle<Y extends boolean = false>(\n value: StyleValueWithCondition<string> | undefined,\n mergedStyle: MergedStyle,\n) {\n return function (options: GetStyleOptions): Style<Y> | undefined {\n let style: Style<Y> | undefined = undefined\n\n if (!value) return style\n\n if (isArray(value)) {\n style = getColorModeStyle<Y>(value, mergedStyle)(options)\n } else if (isObject(value)) {\n style = getConditionStyle<Y>(value, mergedStyle)(options)\n } else {\n style = getStyle<Y>(mergedStyle[value])({ ...options, value })\n }\n\n return style\n }\n}\n\nfunction getPropStyle<Y extends boolean = false>(\n props: Dict,\n propVariants: CSSPropObject | CSSPropObject<CSSSlotObject>,\n style: Style<Y> | undefined = {},\n) {\n const variants = Object.entries(propVariants)\n\n return function (options: GetStyleOptions) {\n if (!variants.length) return style\n\n variants.forEach(([modifier, variants]) => {\n const value = props[modifier as keyof typeof props]\n\n if (value) {\n const propStyle = getModifierStyle<Y>(\n value,\n variants,\n )({ modifier, value, ...options })\n\n if (propStyle)\n style = merge(style, wrapStyle<Y>(\"props\", propStyle)(options))\n } else {\n const boolean = Object.keys(variants).every((key) => isBooleanish(key))\n\n if (boolean) {\n const propStyle = getModifierStyle<Y>(\n \"false\",\n variants,\n )({ modifier, value: \"true\", ...options })\n\n if (propStyle)\n style = merge(style, wrapStyle<Y>(\"props\", propStyle)(options))\n }\n }\n })\n\n return style\n }\n}\n\nfunction getCompoundStyle<Y extends boolean = false>(\n props: Dict,\n compounds: ComponentCompound<CSSSlotObject>[] | ComponentCompound[],\n style: Style<Y> | undefined = {},\n) {\n return function (options: GetStyleOptions) {\n if (!compounds.length) return style\n\n compounds.forEach(({ css, layer, ...rest }) => {\n const conditions = Object.entries(rest)\n\n if (!conditions.length) return\n\n const apply = conditions.every(([key, value]) =>\n isArray(value)\n ? value.includes(props[key])\n : isRegExp(value)\n ? value.test(props[key])\n : props[key] === value,\n )\n\n if (!apply) return\n\n style = merge(\n style,\n wrapStyle<Y>(layer ?? \"compounds\", css as Style<Y>)(options),\n )\n })\n\n return style\n }\n}\n\nexport function getSlotClassName<Y extends string>(\n className?: string,\n slot?: ComponentSlot<Y>,\n) {\n if (!className || !slot) return className\n\n if (isArray(slot)) {\n const [element, modifier] = slot.map((value) =>\n toKebabCase(value as string),\n )\n\n return cx(bem(className, element), bem(className, element, modifier))\n } else if (isObject(slot)) {\n const slotArray = toArray(slot.slot)\n const [element, modifier] = slotArray.map((value) =>\n toKebabCase(value as string),\n )\n\n return cx(bem(className, element), bem(className, element, modifier))\n } else {\n return bem(className, toKebabCase(slot as string))\n }\n}\n\nexport function mergeSlotCSS<Y extends string>(\n slot?: ComponentSlot<Y>,\n style?: CSSSlotObject<Y>,\n css?: CSSObject | CSSObject[],\n): CSSObject | CSSObject[] | undefined {\n if (!style || !slot) return css\n\n const temp: (CSSObject | undefined)[] = []\n\n if (isArray(slot)) {\n temp.push(...slot.map((slot) => style[slot]))\n } else if (isObject(slot)) {\n if (isArray(slot.slot)) {\n temp.push(...slot.slot.map((slot) => style[slot]))\n } else {\n temp.push(style[slot.slot])\n }\n } else {\n temp.push(style[slot])\n }\n\n if (css) temp.push(...toArray(css))\n\n const result = filterEmpty(temp)\n\n return !!result.length ? result : undefined\n}\n\nfunction omitThemeProps<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n>(props: Y, omitKeys: string[] = [], transferProps?: D[]) {\n if (transferProps)\n omitKeys = omitKeys.filter((key) => !transferProps.includes(key as D))\n\n return omitObject(props, omitKeys) as unknown as WithoutThemeProps<Y, M, D>\n}\n\nfunction wrapStyle<Y extends boolean = false>(\n layer: LayerScheme,\n style?: Style<Y>,\n) {\n return function ({ hasSlot, wrap }: GetStyleOptions) {\n if (hasSlot) {\n if (!style) return undefined\n\n return Object.fromEntries(\n Object.entries(style).map(([slot, style]) => [\n slot,\n wrap?.(layer, style) ?? style,\n ]),\n )\n } else {\n return wrap?.(layer, style) ?? style\n }\n }\n}\n\nfunction getHasAtRuleStyle(css?: CSSObject | CSSObject[]) {\n return (getAtRule?: Layers[\"getAtRule\"]) => {\n let hasVariant = false\n let hasSize = false\n\n if (!css || !getAtRule) return { hasSize, hasVariant }\n\n const variantAtRule = getAtRule(\"variant\")\n const sizeAtRule = getAtRule(\"size\")\n\n css = toArray(css)\n\n css.forEach((css) => {\n const keys = Object.keys(css)\n\n if (keys.includes(variantAtRule)) hasVariant = true\n if (keys.includes(sizeAtRule)) hasSize = true\n })\n\n return { hasSize, hasVariant }\n }\n}\n\nfunction mergeDefaultProps<\n Y extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n M extends Dict = Dict,\n>(defaultProps: Y[\"defaultProps\"], props: M) {\n return Object.entries(defaultProps ?? {}).reduce<Dict>(\n (prev, [key, value]) => {\n prev[key] ??= value\n\n return prev\n },\n props,\n ) as M\n}\n\ninterface UseStyleOptions<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n H extends boolean = false,\n> {\n className?: string\n hasSlot?: H\n name?: string\n slot?: ComponentSlot<ComponentSlotName<M>>\n style?: M\n transferProps?: D[]\n}\n\nfunction useStyle<\n Y extends HTMLStyledProps & ThemeProps<{}> = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n H extends boolean = false,\n>(\n props: Y,\n {\n name,\n className: defaultClassName,\n style: componentStyle,\n hasSlot,\n slot,\n transferProps,\n }: UseStyleOptions<Y, M, D, H> = {},\n): [Style<H>, WithoutThemeProps<Y, M, D>] {\n const system = useSystem()\n const { getAtRule, wrap } = system.layers\n const rootColorScheme = useColorSchemeContext()\n const options = { ...system.breakpoints, name, hasSlot, wrap }\n\n const propsRef = useRef<Dict>({})\n const mergedPropsRef = useRef<Dict>({})\n const styleRef = useRef<Style<H> | undefined>(undefined)\n\n const hasComponentStyle =\n componentStyle && !!Object.keys(componentStyle).length\n\n if (hasComponentStyle) {\n const {\n className: customClassName,\n base,\n compounds,\n props: propVariants,\n sizes,\n variants,\n defaultProps: { colorScheme: defaultColorScheme, ...defaultProps } = {},\n } = componentStyle\n\n const colorScheme =\n props.colorScheme ?? rootColorScheme ?? defaultColorScheme\n\n const className = cx(defaultClassName ?? customClassName, props.className)\n const mergedProps = {\n ...mergeDefaultProps(defaultProps, props),\n className,\n colorScheme,\n }\n const omitProps = Object.keys(propVariants ?? {})\n const { size, variant } = mergedProps\n\n if (variants) omitProps.push(\"variant\")\n if (sizes) omitProps.push(\"size\")\n\n const computedProps = omitThemeProps(\n mergedProps,\n omitProps,\n transferProps,\n ) as Y\n\n if (\n !isEqualProps(mergedPropsRef.current, mergedProps, [\"css\", \"children\"])\n ) {\n const { hasSize, hasVariant } = getHasAtRuleStyle(props.css)(getAtRule)\n\n let style: Style<H> = {}\n\n if (base) {\n const baseStyle = getStyle<H>(base)(options)\n\n style = merge(style, wrapStyle<H>(\"base\", baseStyle)(options))\n }\n\n if (sizes && !hasSize) {\n const sizeStyle = merge(\n sizes.base,\n getModifierStyle<H>(size, sizes)({ modifier: \"size\", ...options }),\n )\n\n style = merge(style, wrapStyle<H>(\"size\", sizeStyle)(options))\n }\n\n if (variants && !hasVariant) {\n const variantStyle = merge(\n variants.base,\n getModifierStyle<H>(\n variant,\n variants,\n )({ modifier: \"variant\", ...options }),\n )\n\n style = merge(style, wrapStyle<H>(\"variant\", variantStyle)(options))\n }\n\n if (propVariants)\n style = getPropStyle<H>(mergedProps, propVariants, style)(options)\n\n if (compounds)\n style = getCompoundStyle<H>(mergedProps, compounds, style)(options)\n\n styleRef.current = style\n\n if (hasSlot) {\n computedProps.css = mergeSlotCSS<ComponentSlotName<M>>(\n slot,\n style as CSSSlotObject,\n computedProps.css,\n )\n } else {\n computedProps.css = mergeCSS(style as CSSObject, computedProps.css)\n }\n } else {\n computedProps.css = propsRef.current.css\n }\n\n mergedPropsRef.current = mergedProps\n\n if (!isEqualProps(propsRef.current, computedProps))\n propsRef.current = computedProps\n } else {\n const className = cx(defaultClassName, props.className)\n\n if (className) props.className = className\n\n if (!isEqualProps(propsRef.current, props))\n propsRef.current = props as unknown as WithoutThemeProps<Y, M, D>\n }\n\n return [\n styleRef.current ?? {},\n propsRef.current as WithoutThemeProps<Y, M, D>,\n ]\n}\n\nexport interface UseComponentStyleOptions<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n> extends Omit<UseStyleOptions<Y, M, D>, \"hasSlot\" | \"slot\"> {}\n\nexport function useComponentStyle<\n Y extends Dict = Dict,\n M extends ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n>(props: Y, options: UseComponentStyleOptions<Y, M, D> = {}) {\n return useStyle<Y, M, D>(props, options)\n}\n\nexport interface UseComponentSlotStyleOptions<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n> extends Omit<UseStyleOptions<Y, M, D, true>, \"hasSlot\"> {}\n\nexport function useComponentSlotStyle<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle = ComponentSlotStyle,\n D extends keyof Y = keyof Y,\n>(props: Y, options: UseComponentSlotStyleOptions<Y, M, D> = {}) {\n return useStyle<Y, M, D, true>(props, { ...options, hasSlot: true })\n}\n"],"mappings":"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"}
@@ -4,14 +4,15 @@ const require_utils = require('./utils.cjs');
4
4
  //#region src/core/css/at-rule.ts
5
5
  const generateAtRule = (identifier) => (values, { system }) => {
6
6
  if (!(0, require_utils_index.utils_exports.isArray)(values)) return values;
7
- return values.reduce((prev, { type, name, css, h, height, maxH, maxHeight, maxW, maxWidth, minH, minHeight, minW, minWidth, prefersColorMode, query, w, width, ...rest }) => {
7
+ return values.reduce((prev, { type, name, css, style, h, height, maxH, maxHeight, maxW, maxWidth, minH, minHeight, minW, minWidth, prefersColorMode, query, w, width, ...rest }) => {
8
8
  width ??= w;
9
9
  minWidth ??= minW;
10
10
  maxWidth ??= maxW;
11
11
  height ??= h;
12
12
  minHeight ??= minH;
13
13
  maxHeight ??= maxH;
14
- if (!query) {
14
+ if (!query) if (style) query = (0, require_utils_index.utils_exports.toArray)(style).map((style$1) => `style(${style$1})`).join(" and ");
15
+ else {
15
16
  const resolvedRest = (0, require_utils_index.utils_exports.filterUndefined)({
16
17
  height,
17
18
  maxHeight,
@@ -1 +1 @@
1
- {"version":3,"file":"at-rule.cjs","names":["tokenToVar"],"sources":["../../../../src/core/css/at-rule.ts"],"sourcesContent":["import type { Dict } from \"../../utils\"\nimport type { Transform } from \"./utils\"\nimport { filterUndefined, isArray, toKebabCase } from \"../../utils\"\nimport { tokenToVar } from \"./utils\"\n\nexport const generateAtRule =\n (identifier: string): Transform =>\n (values, { system }) => {\n if (!isArray(values)) return values\n\n return values.reduce<Dict>(\n (\n prev,\n {\n type,\n name,\n css,\n h,\n height,\n maxH,\n maxHeight,\n maxW,\n maxWidth,\n minH,\n minHeight,\n minW,\n minWidth,\n prefersColorMode,\n query,\n w,\n width,\n ...rest\n },\n ) => {\n width ??= w\n minWidth ??= minW\n maxWidth ??= maxW\n height ??= h\n minHeight ??= minH\n maxHeight ??= maxH\n\n if (!query) {\n const resolvedRest = filterUndefined({\n height,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n prefersColorScheme: prefersColorMode,\n width,\n ...rest,\n })\n\n query = Object.entries(resolvedRest)\n .map(([key, value]) => {\n value = tokenToVar(system)(\"sizes\", value)\n\n return `(${toKebabCase(key)}: ${value})`\n })\n .join(\" and \")\n }\n\n const condition = `@${identifier} ${type ?? name ?? \"\"} ${query}`\n\n prev[condition] = css\n\n return prev\n },\n {},\n )\n }\n"],"mappings":";;;;AAKA,MAAa,kBACV,gBACA,QAAQ,EAAE,aAAa;AACtB,KAAI,gDAAS,OAAO,CAAE,QAAO;AAE7B,QAAO,OAAO,QAEV,MACA,EACE,MACA,MACA,KACA,GACA,QACA,MACA,WACA,MACA,UACA,MACA,WACA,MACA,UACA,kBACA,OACA,GACA,OACA,GAAG,WAEF;AACH,YAAU;AACV,eAAa;AACb,eAAa;AACb,aAAW;AACX,gBAAc;AACd,gBAAc;AAEd,MAAI,CAAC,OAAO;GACV,MAAM,sEAA+B;IACnC;IACA;IACA;IACA;IACA;IACA,oBAAoB;IACpB;IACA,GAAG;IACJ,CAAC;AAEF,WAAQ,OAAO,QAAQ,aAAa,CACjC,KAAK,CAAC,KAAK,WAAW;AACrB,YAAQA,yBAAW,OAAO,CAAC,SAAS,MAAM;AAE1C,WAAO,uDAAgB,IAAI,CAAC,IAAI,MAAM;KACtC,CACD,KAAK,QAAQ;;EAGlB,MAAM,YAAY,IAAI,WAAW,GAAG,QAAQ,QAAQ,GAAG,GAAG;AAE1D,OAAK,aAAa;AAElB,SAAO;IAET,EAAE,CACH"}
1
+ {"version":3,"file":"at-rule.cjs","names":["style","tokenToVar"],"sources":["../../../../src/core/css/at-rule.ts"],"sourcesContent":["import type { Dict } from \"../../utils\"\nimport type { Transform } from \"./utils\"\nimport { filterUndefined, isArray, toArray, toKebabCase } from \"../../utils\"\nimport { tokenToVar } from \"./utils\"\n\nexport const generateAtRule =\n (identifier: string): Transform =>\n (values, { system }) => {\n if (!isArray(values)) return values\n\n return values.reduce<Dict>(\n (\n prev,\n {\n type,\n name,\n css,\n style,\n h,\n height,\n maxH,\n maxHeight,\n maxW,\n maxWidth,\n minH,\n minHeight,\n minW,\n minWidth,\n prefersColorMode,\n query,\n w,\n width,\n ...rest\n },\n ) => {\n width ??= w\n minWidth ??= minW\n maxWidth ??= maxW\n height ??= h\n minHeight ??= minH\n maxHeight ??= maxH\n\n if (!query) {\n if (style) {\n query = toArray(style)\n .map((style) => `style(${style})`)\n .join(\" and \")\n } else {\n const resolvedRest = filterUndefined({\n height,\n maxHeight,\n maxWidth,\n minHeight,\n minWidth,\n prefersColorScheme: prefersColorMode,\n width,\n ...rest,\n })\n\n query = Object.entries(resolvedRest)\n .map(([key, value]) => {\n value = tokenToVar(system)(\"sizes\", value)\n\n return `(${toKebabCase(key)}: ${value})`\n })\n .join(\" and \")\n }\n }\n\n const condition = `@${identifier} ${type ?? name ?? \"\"} ${query}`\n\n prev[condition] = css\n\n return prev\n },\n {},\n )\n }\n"],"mappings":";;;;AAKA,MAAa,kBACV,gBACA,QAAQ,EAAE,aAAa;AACtB,KAAI,gDAAS,OAAO,CAAE,QAAO;AAE7B,QAAO,OAAO,QAEV,MACA,EACE,MACA,MACA,KACA,OACA,GACA,QACA,MACA,WACA,MACA,UACA,MACA,WACA,MACA,UACA,kBACA,OACA,GACA,OACA,GAAG,WAEF;AACH,YAAU;AACV,eAAa;AACb,eAAa;AACb,aAAW;AACX,gBAAc;AACd,gBAAc;AAEd,MAAI,CAAC,MACH,KAAI,MACF,wDAAgB,MAAM,CACnB,KAAK,YAAU,SAASA,QAAM,GAAG,CACjC,KAAK,QAAQ;OACX;GACL,MAAM,sEAA+B;IACnC;IACA;IACA;IACA;IACA;IACA,oBAAoB;IACpB;IACA,GAAG;IACJ,CAAC;AAEF,WAAQ,OAAO,QAAQ,aAAa,CACjC,KAAK,CAAC,KAAK,WAAW;AACrB,YAAQC,yBAAW,OAAO,CAAC,SAAS,MAAM;AAE1C,WAAO,uDAAgB,IAAI,CAAC,IAAI,MAAM;KACtC,CACD,KAAK,QAAQ;;EAIpB,MAAM,YAAY,IAAI,WAAW,GAAG,QAAQ,QAAQ,GAAG,GAAG;AAE1D,OAAK,aAAa;AAElB,SAAO;IAET,EAAE,CACH"}
@@ -26,12 +26,15 @@ function getColor(system) {
26
26
  if (color?.startsWith("colors.")) color = color.replace("colors.", "");
27
27
  if (require_var.isColorScheme(color)) color = require_var.getColorSchemeVar(system)(color);
28
28
  else color = require_utils.tokenToVar(system)("colors", color, fallbackColor);
29
- if (percent && !percent.endsWith("%")) percent = `${percent}%`;
29
+ if (percent && !percent.startsWith("var") && !percent.endsWith("%")) percent = `${percent}%`;
30
30
  return !percent ? color : `${color} ${percent}`;
31
31
  };
32
32
  }
33
33
  function omitPercent(value) {
34
- if (value?.endsWith("%")) return value.replace(/\d{1,3}%$/, "").trim();
34
+ if (!value) return value;
35
+ if (value.endsWith("%")) return value.replace(/\d{1,3}%$/, "").trim();
36
+ const values = value.trim().match(/[a-z-]+\([^)]*\)|[^\s]+/gi) ?? [];
37
+ if (values.length > 1) return values[0];
35
38
  return value;
36
39
  }
37
40
  function createVariable(value, fallbackValue, properties) {
@@ -1 +1 @@
1
- {"version":3,"file":"color-mix.cjs","names":["methods: { [key: string]: string }","isColorScheme","getColorSchemeVar","tokenToVar","globalValues","getCSSFunction","splitValues"],"sources":["../../../../src/core/css/color-mix.ts"],"sourcesContent":["import type { System } from \"../system\"\nimport type { TransformOptions } from \"./utils\"\nimport { isArray, isString } from \"../../utils\"\nimport { getColorSchemeVar, isColorScheme } from \"../system\"\nimport { getCSSFunction, globalValues, splitValues, tokenToVar } from \"./utils\"\n\nconst DEFAULT_METHOD = \"in srgb\"\n\nconst methods: { [key: string]: string } = {\n \"a98-rgb\": \"in a98-rgb\",\n \"display-p3\": \"in display-p3\",\n lab: \"in lab\",\n oklab: \"in oklab\",\n \"prophoto-rgb\": \"in prophoto-rgb\",\n rec2020: \"in rec2020\",\n srgb: \"in srgb\",\n \"srgb-linear\": \"in srgb-linear\",\n xyz: \"in xyz\",\n \"xyz-d50\": \"in xyz-d50\",\n \"xyz-d65\": \"in xyz-d65\",\n}\n\nfunction getColor(system: System) {\n return function (value: string | undefined, fallbackColor?: string) {\n if (!isString(value) || !value) return \"\"\n\n let [color, percent, ...rest] = value.split(\" \").filter(Boolean)\n\n if (rest.length) return value\n\n if (color?.startsWith(\"colors.\")) color = color.replace(\"colors.\", \"\")\n\n if (isColorScheme(color)) {\n color = getColorSchemeVar(system)(color)\n } else {\n color = tokenToVar(system)(\"colors\", color, fallbackColor)\n }\n\n if (percent && !percent.endsWith(\"%\")) percent = `${percent}%`\n\n return !percent ? color : `${color} ${percent}`\n }\n}\n\nfunction omitPercent(value?: string) {\n if (value?.endsWith(\"%\")) return value.replace(/\\d{1,3}%$/, \"\").trim()\n\n return value\n}\n\nfunction createVariable(\n value: string,\n fallbackValue?: string,\n properties?: string[],\n) {\n if (!properties) return value\n\n const key =\n \"--mix-\" + (isArray(properties) ? properties.join(\"-\") : properties)\n\n const result = { [key]: value }\n\n properties.forEach((property) => {\n result[property] = fallbackValue\n ? `var(${key}, ${fallbackValue})`\n : `var(${key})`\n })\n\n return result\n}\n\nexport function colorMix(\n value: any,\n { fallback, properties, system }: TransformOptions,\n) {\n if (value == null || globalValues.has(value)) return value\n\n if (isString(value) && value.includes(\"/\")) {\n const [color, percent] = value.split(\"/\")\n\n value = `transparentize(${color}, ${percent})`\n }\n\n const { type, values } = getCSSFunction(value)\n\n if (!values) return getColor(system)(value, fallback)\n\n switch (type) {\n case \"mix\":\n case \"color-mix\": {\n let [color2, color1, method] = splitValues(values).reverse()\n\n if (method) {\n method = method in methods ? methods[method] : method\n } else {\n method = DEFAULT_METHOD\n }\n\n color1 = getColor(system)(color1, fallback)\n color2 = getColor(system)(color2, fallback)\n\n return createVariable(\n `color-mix(${method}` +\n (color1 ? `, ${color1}` : \"\") +\n (color2 ? `, ${color2}` : \"\") +\n \")\",\n omitPercent(color1),\n properties,\n )\n }\n\n case \"tint\":\n case \"shade\":\n case \"transparentize\": {\n const [color, percent] = splitValues(values)\n\n const color1 = getColor(system)(\n percent ? `${color} ${percent}` : color,\n fallback,\n )\n const color2 =\n type === \"transparentize\"\n ? \"transparent\"\n : type === \"tint\"\n ? \"#fff\"\n : \"#000\"\n\n return createVariable(\n `color-mix(${DEFAULT_METHOD}, ${color1}, ${color2})`,\n omitPercent(color1),\n properties,\n )\n }\n\n case \"tone\": {\n const [color, tone] = splitValues(values)\n\n const color1 = getColor(system)(color, fallback)\n\n if (!tone) return color1\n\n let ratio = parseInt(tone) || 500\n\n if (ratio < 50 && 950 < ratio) ratio = 500\n if (ratio === 500) return color1\n\n const color2 = ratio < 500 ? \"#fff\" : \"#000\"\n const percent = `${100 - (Math.abs(ratio - 500) * 2) / 10}%`\n\n return createVariable(\n `color-mix(${DEFAULT_METHOD}, ${color1} ${percent}, ${color2})`,\n omitPercent(color1),\n properties,\n )\n }\n\n default: {\n return value\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"color-mix.cjs","names":["methods: { [key: string]: string }","isColorScheme","getColorSchemeVar","tokenToVar","globalValues","getCSSFunction","splitValues"],"sources":["../../../../src/core/css/color-mix.ts"],"sourcesContent":["import type { System } from \"../system\"\nimport type { TransformOptions } from \"./utils\"\nimport { isArray, isString } from \"../../utils\"\nimport { getColorSchemeVar, isColorScheme } from \"../system\"\nimport { getCSSFunction, globalValues, splitValues, tokenToVar } from \"./utils\"\n\nconst DEFAULT_METHOD = \"in srgb\"\n\nconst methods: { [key: string]: string } = {\n \"a98-rgb\": \"in a98-rgb\",\n \"display-p3\": \"in display-p3\",\n lab: \"in lab\",\n oklab: \"in oklab\",\n \"prophoto-rgb\": \"in prophoto-rgb\",\n rec2020: \"in rec2020\",\n srgb: \"in srgb\",\n \"srgb-linear\": \"in srgb-linear\",\n xyz: \"in xyz\",\n \"xyz-d50\": \"in xyz-d50\",\n \"xyz-d65\": \"in xyz-d65\",\n}\n\nfunction getColor(system: System) {\n return function (value: string | undefined, fallbackColor?: string) {\n if (!isString(value) || !value) return \"\"\n\n let [color, percent, ...rest] = value.split(\" \").filter(Boolean)\n\n if (rest.length) return value\n\n if (color?.startsWith(\"colors.\")) color = color.replace(\"colors.\", \"\")\n\n if (isColorScheme(color)) {\n color = getColorSchemeVar(system)(color)\n } else {\n color = tokenToVar(system)(\"colors\", color, fallbackColor)\n }\n\n if (percent && !percent.startsWith(\"var\") && !percent.endsWith(\"%\"))\n percent = `${percent}%`\n\n return !percent ? color : `${color} ${percent}`\n }\n}\n\nfunction omitPercent(value?: string) {\n if (!value) return value\n\n if (value.endsWith(\"%\")) return value.replace(/\\d{1,3}%$/, \"\").trim()\n\n const values = value.trim().match(/[a-z-]+\\([^)]*\\)|[^\\s]+/gi) ?? []\n\n if (values.length > 1) return values[0]\n\n return value\n}\n\nfunction createVariable(\n value: string,\n fallbackValue?: string,\n properties?: string[],\n) {\n if (!properties) return value\n\n const key =\n \"--mix-\" + (isArray(properties) ? properties.join(\"-\") : properties)\n\n const result = { [key]: value }\n\n properties.forEach((property) => {\n result[property] = fallbackValue\n ? `var(${key}, ${fallbackValue})`\n : `var(${key})`\n })\n\n return result\n}\n\nexport function colorMix(\n value: any,\n { fallback, properties, system }: TransformOptions,\n) {\n if (value == null || globalValues.has(value)) return value\n\n if (isString(value) && value.includes(\"/\")) {\n const [color, percent] = value.split(\"/\")\n\n value = `transparentize(${color}, ${percent})`\n }\n\n const { type, values } = getCSSFunction(value)\n\n if (!values) return getColor(system)(value, fallback)\n\n switch (type) {\n case \"mix\":\n case \"color-mix\": {\n let [color2, color1, method] = splitValues(values).reverse()\n\n if (method) {\n method = method in methods ? methods[method] : method\n } else {\n method = DEFAULT_METHOD\n }\n\n color1 = getColor(system)(color1, fallback)\n color2 = getColor(system)(color2, fallback)\n\n return createVariable(\n `color-mix(${method}` +\n (color1 ? `, ${color1}` : \"\") +\n (color2 ? `, ${color2}` : \"\") +\n \")\",\n omitPercent(color1),\n properties,\n )\n }\n\n case \"tint\":\n case \"shade\":\n case \"transparentize\": {\n const [color, percent] = splitValues(values)\n\n const color1 = getColor(system)(\n percent ? `${color} ${percent}` : color,\n fallback,\n )\n const color2 =\n type === \"transparentize\"\n ? \"transparent\"\n : type === \"tint\"\n ? \"#fff\"\n : \"#000\"\n\n return createVariable(\n `color-mix(${DEFAULT_METHOD}, ${color1}, ${color2})`,\n omitPercent(color1),\n properties,\n )\n }\n\n case \"tone\": {\n const [color, tone] = splitValues(values)\n\n const color1 = getColor(system)(color, fallback)\n\n if (!tone) return color1\n\n let ratio = parseInt(tone) || 500\n\n if (ratio < 50 && 950 < ratio) ratio = 500\n if (ratio === 500) return color1\n\n const color2 = ratio < 500 ? \"#fff\" : \"#000\"\n const percent = `${100 - (Math.abs(ratio - 500) * 2) / 10}%`\n\n return createVariable(\n `color-mix(${DEFAULT_METHOD}, ${color1} ${percent}, ${color2})`,\n omitPercent(color1),\n properties,\n )\n }\n\n default: {\n return value\n }\n }\n}\n"],"mappings":"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"}
@@ -7,8 +7,10 @@ const toGroup = (selector) => [
7
7
  ].map((prefix) => `${prefix}${selector.slice(1)} &`).join(", ");
8
8
  const toPeer = (selector) => [...["[data-peer]", ".peer"].flatMap((prefix) => [`&:has(~ ${prefix}${selector.slice(1)})`, `${prefix}${selector.slice(1)} ~ &`]), ...["[data-peer]", ".peer"].flatMap((prefix) => [`&:has(~ ${prefix} *${selector.slice(1)})`, `${prefix}:has(*${selector.slice(1)}) ~ &`])].join(", ");
9
9
  const attributes = {
10
+ _inactive: "&[data-inactive]",
10
11
  _accept: "&[data-accept]",
11
12
  _between: "&[data-between]",
13
+ _center: "&:is([data-center], [data-group-center])",
12
14
  _complete: "&[data-complete]",
13
15
  _current: "&:is([aria-current], [data-current]):not([aria-current='false'])",
14
16
  _dark: ".dark &:not([data-mode]), [data-mode=dark] &:not([data-mode]), &[data-mode=dark]",
@@ -31,6 +33,7 @@ const attributes = {
31
33
  _notFallback: "&:not([data-fallback])",
32
34
  _notSelected: "&:not([data-selected]):not([aria-selected=true])",
33
35
  _numeric: "&[data-numeric]",
36
+ _open: "&:is([open], [data-open])",
34
37
  _pressed: "&:is([data-pressed], [aria-pressed=true])",
35
38
  _range: "&:is([data-range])",
36
39
  _reject: "&[data-reject]",
@@ -49,6 +52,7 @@ const pseudoElements = {
49
52
  _before: "&::before",
50
53
  _cue: "&::cue",
51
54
  _cueRegion: "&::cue-region",
55
+ _detailsContent: "&::details-content",
52
56
  _fileSelector: "&::file-selector-button",
53
57
  _firstLetter: "&::first-letter",
54
58
  _firstLine: "&::first-line",
@@ -113,6 +117,7 @@ const pseudoClasses = {
113
117
  _picture: "&:picture-in-picture",
114
118
  _placeholderShown: "&:placeholder-shown",
115
119
  _playing: "&:is(:playing, [data-playing])",
120
+ _popoverOpen: "&:popover-open",
116
121
  _readWrite: "&:is(:read-write, [data-read-write])",
117
122
  _required: "&:is(:required, [required])",
118
123
  _target: "&:is(:target, [data-target])",
@@ -152,6 +157,7 @@ const groupAttributes = {
152
157
  _groupInvalid: toGroup(pseudoClasses._invalid),
153
158
  _groupLoaded: toGroup(attributes._loaded),
154
159
  _groupLoading: toGroup(attributes._loading),
160
+ _groupOpen: toGroup(attributes._open),
155
161
  _groupOptional: toGroup(pseudoClasses._optional),
156
162
  _groupPlaceholderShown: toGroup(pseudoClasses._placeholderShown),
157
163
  _groupPressed: toGroup(attributes._pressed),