@iziui/react 0.0.54-rc → 0.0.56-rc

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 (258) hide show
  1. package/dist/.types/_internal/core/index.d.ts +4 -0
  2. package/dist/.types/_internal/core/options/CustomOptions.d.ts +24 -0
  3. package/dist/.types/_internal/core/options/createOptions/createOptions.d.ts +10 -0
  4. package/dist/.types/_internal/core/options/createOptions/index.d.ts +1 -0
  5. package/dist/.types/_internal/core/options/index.d.ts +2 -0
  6. package/dist/.types/_internal/core/plugin/behavior/defineBoxShadow/defineBoxShadow.d.ts +2 -0
  7. package/dist/.types/_internal/core/plugin/behavior/defineBoxShadow/index.d.ts +1 -0
  8. package/dist/.types/_internal/core/plugin/behavior/index.d.ts +1 -0
  9. package/dist/.types/_internal/core/plugin/color/defineBackground/defineBackground.d.ts +2 -0
  10. package/dist/.types/_internal/core/plugin/color/defineBackground/index.d.ts +1 -0
  11. package/dist/.types/_internal/core/plugin/color/defineBackgroundColor/defineBackgroundColor.d.ts +2 -0
  12. package/dist/.types/_internal/core/plugin/color/defineBackgroundColor/index.d.ts +1 -0
  13. package/dist/.types/_internal/core/plugin/color/defineBorderColor/defineBorderColor.d.ts +2 -0
  14. package/dist/.types/_internal/core/plugin/color/defineBorderColor/index.d.ts +1 -0
  15. package/dist/.types/_internal/core/plugin/color/defineColor/defineColor.d.ts +2 -0
  16. package/dist/.types/_internal/core/plugin/color/defineColor/index.d.ts +1 -0
  17. package/dist/.types/_internal/core/plugin/color/index.d.ts +4 -0
  18. package/dist/.types/_internal/core/plugin/definePlugin/definePlugin.d.ts +5 -0
  19. package/dist/.types/_internal/core/plugin/definePlugin/index.d.ts +1 -0
  20. package/dist/.types/_internal/core/plugin/index.d.ts +5 -0
  21. package/dist/.types/_internal/core/plugin/plugin.d.ts +4 -0
  22. package/dist/.types/_internal/core/plugin/shape/defineBorderRadius/defineBorderRadius.d.ts +2 -0
  23. package/dist/.types/_internal/core/plugin/shape/defineBorderRadius/index.d.ts +1 -0
  24. package/dist/.types/_internal/core/plugin/shape/index.d.ts +1 -0
  25. package/dist/.types/_internal/core/plugin/spacing/defineMargin/defineMargin.d.ts +2 -0
  26. package/dist/.types/_internal/core/plugin/spacing/defineMargin/index.d.ts +1 -0
  27. package/dist/.types/_internal/core/plugin/spacing/definePadding/definePadding.d.ts +2 -0
  28. package/dist/.types/_internal/core/plugin/spacing/definePadding/index.d.ts +1 -0
  29. package/dist/.types/_internal/core/plugin/spacing/index.d.ts +2 -0
  30. package/dist/.types/_internal/core/theme/Theme.d.ts +63 -0
  31. package/dist/.types/_internal/core/theme/applyTheme/applyTheme.d.ts +2 -0
  32. package/dist/.types/_internal/core/theme/applyTheme/index.d.ts +1 -0
  33. package/dist/.types/_internal/core/theme/colors/colors.d.ts +2 -0
  34. package/dist/.types/_internal/core/theme/colors/index.d.ts +1 -0
  35. package/dist/.types/_internal/core/theme/createMappedColors.d.ts +2 -0
  36. package/dist/.types/_internal/core/theme/createTheme/createTheme.d.ts +2 -0
  37. package/dist/.types/_internal/core/theme/createTheme/index.d.ts +1 -0
  38. package/dist/.types/_internal/core/theme/defaultTheme.d.ts +5 -0
  39. package/dist/.types/_internal/core/theme/index.d.ts +5 -0
  40. package/dist/.types/_internal/core/utils/adjustLightness/adjustLightness.d.ts +1 -0
  41. package/dist/.types/_internal/core/utils/adjustLightness/index.d.ts +1 -0
  42. package/dist/.types/_internal/core/utils/convertPathToColor/convertPathToColor.d.ts +3 -0
  43. package/dist/.types/_internal/core/utils/convertPathToColor/index.d.ts +1 -0
  44. package/dist/.types/_internal/core/utils/generateSupportColors/generateSupportColors.d.ts +2 -0
  45. package/dist/.types/_internal/core/utils/generateSupportColors/index.d.ts +1 -0
  46. package/dist/.types/_internal/core/utils/getContrastColor/getContrastColor.d.ts +1 -0
  47. package/dist/.types/_internal/core/utils/getContrastColor/index.d.ts +1 -0
  48. package/dist/.types/_internal/core/utils/getGradient/getGradient.d.ts +1 -0
  49. package/dist/.types/_internal/core/utils/getGradient/index.d.ts +1 -0
  50. package/dist/.types/_internal/core/utils/getOpacityColor/getOpacityColor.d.ts +7 -0
  51. package/dist/.types/_internal/core/utils/getOpacityColor/index.d.ts +1 -0
  52. package/dist/.types/_internal/core/utils/getPriorityColor/getPriorityColor.d.ts +2 -0
  53. package/dist/.types/_internal/core/utils/getPriorityColor/index.d.ts +1 -0
  54. package/dist/.types/_internal/core/utils/hexToHsl/hexToHsl.d.ts +5 -0
  55. package/dist/.types/_internal/core/utils/hexToHsl/index.d.ts +1 -0
  56. package/dist/.types/_internal/core/utils/hslToHex/hslToHex.d.ts +1 -0
  57. package/dist/.types/_internal/core/utils/hslToHex/index.d.ts +1 -0
  58. package/dist/.types/_internal/core/utils/index.d.ts +10 -0
  59. package/dist/.types/_internal/core/utils/joinClass/index.d.ts +1 -0
  60. package/dist/.types/_internal/core/utils/joinClass/joinClass.d.ts +1 -0
  61. package/dist/.types/_internal/tokens/web/js/const.d.ts +1 -0
  62. package/dist/.types/_internal/tokens/web/js/index.d.ts +19 -0
  63. package/dist/.types/_internal/tokens/web/js/index.js +33 -0
  64. package/dist/.types/_internal/tokens/web/js/list.d.ts +2 -0
  65. package/dist/.types/_internal/tokens/web/js/object.d.ts +10 -0
  66. package/dist/.types/_internal/tokens/web/scss/main.scss +2 -0
  67. package/dist/.types/_internal/tokens/web/scss/mixins.scss +61 -0
  68. package/dist/.types/_internal/tokens/web/scss/variables.scss +47 -0
  69. package/dist/.types/_internal/toolkit/debounce/debounce.d.ts +6 -0
  70. package/dist/.types/_internal/toolkit/debounce/index.d.ts +1 -0
  71. package/dist/.types/_internal/toolkit/index.d.ts +9 -0
  72. package/dist/.types/_internal/toolkit/interface/ArrayOrObject.d.ts +1 -0
  73. package/dist/.types/_internal/toolkit/interface/IntRange.d.ts +3 -0
  74. package/dist/.types/_internal/toolkit/interface/Path.d.ts +5 -0
  75. package/dist/.types/_internal/toolkit/interface/index.d.ts +3 -0
  76. package/dist/.types/_internal/toolkit/logger/index.d.ts +1 -0
  77. package/dist/.types/_internal/toolkit/logger/logger.d.ts +10 -0
  78. package/dist/.types/_internal/toolkit/mask/MaskOptions.d.ts +5 -0
  79. package/dist/.types/_internal/toolkit/mask/index.d.ts +2 -0
  80. package/dist/.types/_internal/toolkit/mask/mask.d.ts +2 -0
  81. package/dist/.types/_internal/toolkit/normalize/index.d.ts +1 -0
  82. package/dist/.types/_internal/toolkit/normalize/normalize.d.ts +1 -0
  83. package/dist/.types/_internal/toolkit/promise/index.d.ts +1 -0
  84. package/dist/.types/_internal/toolkit/promise/wait.d.ts +1 -0
  85. package/dist/.types/_internal/toolkit/string/index.d.ts +1 -0
  86. package/dist/.types/_internal/toolkit/string/string.d.ts +4 -0
  87. package/dist/.types/_internal/toolkit/uuid/index.d.ts +1 -0
  88. package/dist/.types/_internal/toolkit/uuid/uuid.d.ts +1 -0
  89. package/dist/.types/_internal/toolkit/validators/index.d.ts +2 -0
  90. package/dist/.types/_internal/toolkit/validators/isEmpty.d.ts +1 -0
  91. package/dist/.types/_internal/toolkit/validators/isValidEmail.d.ts +1 -0
  92. package/dist/.types/actions/Button/Button.d.ts +2 -2
  93. package/dist/.types/actions/Button/Button.d.ts.map +1 -1
  94. package/dist/.types/actions/Button/Button.stories.d.ts +1 -0
  95. package/dist/.types/actions/Button/Button.stories.d.ts.map +1 -1
  96. package/dist/.types/actions/ButtonIcon/ButtonIcon.d.ts +2 -2
  97. package/dist/.types/core/createComponent.d.ts +1 -1
  98. package/dist/.types/core/createComponent.d.ts.map +1 -1
  99. package/dist/.types/display/Avatar/Avatar.d.ts +2 -2
  100. package/dist/.types/display/Card/Card.d.ts +1 -1
  101. package/dist/.types/display/Card/CardContent.d.ts +1 -1
  102. package/dist/.types/display/Chip/Chip.d.ts +2 -2
  103. package/dist/.types/display/Divider/Divider.d.ts +1 -1
  104. package/dist/.types/display/Icon/Icon.d.ts +1 -1
  105. package/dist/.types/display/Table/Table.d.ts +1 -1
  106. package/dist/.types/display/Table/TableCell.d.ts +1 -1
  107. package/dist/.types/display/Tooltip/Tooltip.d.ts +1 -1
  108. package/dist/.types/display/Typography/Typography.d.ts +2 -2
  109. package/dist/.types/feedback/Alert/Alert.d.ts +2 -2
  110. package/dist/.types/feedback/Loading/Loading.d.ts +2 -2
  111. package/dist/.types/feedback/Modal/Modal.d.ts +1 -1
  112. package/dist/.types/feedback/Modal/ModalFooter.d.ts +1 -1
  113. package/dist/.types/feedback/Skeleton/Skeleton.d.ts +1 -1
  114. package/dist/.types/feedback/Toast/Toast.d.ts +2 -2
  115. package/dist/.types/fields/Checkbox/Checkbox.d.ts +2 -2
  116. package/dist/.types/fields/CheckboxGroup/CheckboxGroup.d.ts +1 -1
  117. package/dist/.types/fields/ColorPicker/ColorPicker.d.ts +1 -1
  118. package/dist/.types/fields/Input/Input.d.ts +1 -1
  119. package/dist/.types/fields/InputFile/InputFile.d.ts +1 -1
  120. package/dist/.types/fields/Select/Select.d.ts +1 -1
  121. package/dist/.types/fields/Switchs/Switch.d.ts +2 -2
  122. package/dist/.types/lab/Form/Form.d.ts.map +1 -1
  123. package/dist/.types/layout/Box/Box.d.ts +1 -1
  124. package/dist/.types/layout/Container/Container.d.ts +1 -1
  125. package/dist/.types/layout/Grid/interface.d.ts +1 -1
  126. package/dist/.types/layout/Stack/Stack.d.ts +1 -1
  127. package/dist/.types/navigation/Drawer/Drawer.d.ts +1 -1
  128. package/dist/.types/navigation/Drawer/DrawerContent.d.ts +1 -1
  129. package/dist/.types/navigation/Drawer/DrawerFooter.d.ts +1 -1
  130. package/dist/.types/navigation/Drawer/DrawerHeader.d.ts +1 -1
  131. package/dist/.types/navigation/Menu/Menu.d.ts +1 -1
  132. package/dist/.types/navigation/Menu/MenuButton.d.ts +2 -2
  133. package/dist/.types/theme/ThemeProvider.d.ts +1 -1
  134. package/dist/.types/theme/createTheme.d.ts +1 -1
  135. package/dist/chunks/{Alert-Eku3Mhx-.js → Alert-B4WtVQjs.js} +2 -2
  136. package/dist/chunks/{Alert-Eku3Mhx-.js.map → Alert-B4WtVQjs.js.map} +1 -1
  137. package/dist/chunks/{Alert-BSZpV_lB.cjs → Alert-BNWxpf3J.cjs} +2 -2
  138. package/dist/chunks/{Alert-BSZpV_lB.cjs.map → Alert-BNWxpf3J.cjs.map} +1 -1
  139. package/dist/chunks/{Box-DeyuR4kp.cjs → Box-CpfLDkkt.cjs} +2 -2
  140. package/dist/chunks/{Box-DeyuR4kp.cjs.map → Box-CpfLDkkt.cjs.map} +1 -1
  141. package/dist/chunks/{Box-fopUzufC.js → Box-JICj_E-d.js} +2 -2
  142. package/dist/chunks/{Box-fopUzufC.js.map → Box-JICj_E-d.js.map} +1 -1
  143. package/dist/chunks/{ButtonIcon-B5VfjTl_.js → ButtonIcon-CX9wj1rg.js} +2 -2
  144. package/dist/chunks/{ButtonIcon-B5VfjTl_.js.map → ButtonIcon-CX9wj1rg.js.map} +1 -1
  145. package/dist/chunks/{ButtonIcon-CzxDZNK8.cjs → ButtonIcon-DT522QTk.cjs} +2 -2
  146. package/dist/chunks/{ButtonIcon-CzxDZNK8.cjs.map → ButtonIcon-DT522QTk.cjs.map} +1 -1
  147. package/dist/chunks/{Card-fHaoq-NO.js → Card-9HLyAUcP.js} +2 -2
  148. package/dist/chunks/{Card-fHaoq-NO.js.map → Card-9HLyAUcP.js.map} +1 -1
  149. package/dist/chunks/{Card-C3pG2xgW.cjs → Card-I0APaJxr.cjs} +2 -2
  150. package/dist/chunks/{Card-C3pG2xgW.cjs.map → Card-I0APaJxr.cjs.map} +1 -1
  151. package/dist/chunks/{CardContent-BrZkcjus.cjs → CardContent-D0UkIs4G.cjs} +2 -2
  152. package/dist/chunks/{CardContent-BrZkcjus.cjs.map → CardContent-D0UkIs4G.cjs.map} +1 -1
  153. package/dist/chunks/{CardContent-CokBJbi1.js → CardContent-Vo_b-uhI.js} +2 -2
  154. package/dist/chunks/{CardContent-CokBJbi1.js.map → CardContent-Vo_b-uhI.js.map} +1 -1
  155. package/dist/chunks/{Drawer-CgE3gFqo.js → Drawer-D7qt20Nz.js} +2 -2
  156. package/dist/chunks/{Drawer-CgE3gFqo.js.map → Drawer-D7qt20Nz.js.map} +1 -1
  157. package/dist/chunks/{Drawer-XsBmySVj.cjs → Drawer-DkanRBGg.cjs} +2 -2
  158. package/dist/chunks/{Drawer-XsBmySVj.cjs.map → Drawer-DkanRBGg.cjs.map} +1 -1
  159. package/dist/chunks/{Icon-BCwUSOy5.js → Icon-CvSrDjml.js} +2 -2
  160. package/dist/chunks/{Icon-BCwUSOy5.js.map → Icon-CvSrDjml.js.map} +1 -1
  161. package/dist/chunks/{Icon-BEUDQFrk.cjs → Icon-D5Za3nOG.cjs} +2 -2
  162. package/dist/chunks/{Icon-BEUDQFrk.cjs.map → Icon-D5Za3nOG.cjs.map} +1 -1
  163. package/dist/chunks/{MenuButton-B1Ie5Sqy.js → MenuButton-Br-AJ3PB.js} +2 -2
  164. package/dist/chunks/{MenuButton-B1Ie5Sqy.js.map → MenuButton-Br-AJ3PB.js.map} +1 -1
  165. package/dist/chunks/{MenuButton-DOZFhvP9.cjs → MenuButton-DsXIKOMv.cjs} +2 -2
  166. package/dist/chunks/{MenuButton-DOZFhvP9.cjs.map → MenuButton-DsXIKOMv.cjs.map} +1 -1
  167. package/dist/chunks/{Stack-DyhbU7Me.js → Stack-CJUShSaY.js} +2 -2
  168. package/dist/chunks/{Stack-DyhbU7Me.js.map → Stack-CJUShSaY.js.map} +1 -1
  169. package/dist/chunks/{Stack-B9mi696v.cjs → Stack-DroqONbc.cjs} +2 -2
  170. package/dist/chunks/{Stack-B9mi696v.cjs.map → Stack-DroqONbc.cjs.map} +1 -1
  171. package/dist/chunks/{Typography-CmzvEsC_.js → Typography-CLOmn49Z.js} +2 -2
  172. package/dist/chunks/{Typography-CmzvEsC_.js.map → Typography-CLOmn49Z.js.map} +1 -1
  173. package/dist/chunks/{Typography-DaZ95boB.cjs → Typography-DrfQb45j.cjs} +2 -2
  174. package/dist/chunks/{Typography-DaZ95boB.cjs.map → Typography-DrfQb45j.cjs.map} +1 -1
  175. package/dist/chunks/{createComponent-DppVNf5x.js → createComponent-CNxBIpVe.js} +2 -2
  176. package/dist/chunks/{createComponent-DppVNf5x.js.map → createComponent-CNxBIpVe.js.map} +1 -1
  177. package/dist/chunks/{createComponent-6wUj8nAi.cjs → createComponent-Dk7XYIBw.cjs} +2 -2
  178. package/dist/chunks/{createComponent-6wUj8nAi.cjs.map → createComponent-Dk7XYIBw.cjs.map} +1 -1
  179. package/dist/chunks/useForm-C-tp2h3s.cjs +2 -0
  180. package/dist/chunks/useForm-C-tp2h3s.cjs.map +1 -0
  181. package/dist/chunks/useForm-phDdjT1r.js +2 -0
  182. package/dist/chunks/useForm-phDdjT1r.js.map +1 -0
  183. package/dist/chunks/{useMenu-D3vT9I3W.cjs → useMenu-CwgTamGj.cjs} +2 -2
  184. package/dist/chunks/{useMenu-D3vT9I3W.cjs.map → useMenu-CwgTamGj.cjs.map} +1 -1
  185. package/dist/chunks/{useMenu--3XhFiqi.js → useMenu-CzhqRm1Q.js} +2 -2
  186. package/dist/chunks/{useMenu--3XhFiqi.js.map → useMenu-CzhqRm1Q.js.map} +1 -1
  187. package/dist/chunks/{useTheme-BhIs8Txu.js → useTheme-BkUhhydo.js} +1 -1
  188. package/dist/chunks/{useTheme-BhIs8Txu.js.map → useTheme-BkUhhydo.js.map} +1 -1
  189. package/dist/chunks/{useTheme-BZ0xkY68.cjs → useTheme-DwBpyW-5.cjs} +1 -1
  190. package/dist/chunks/{useTheme-BZ0xkY68.cjs.map → useTheme-DwBpyW-5.cjs.map} +1 -1
  191. package/dist/components/Alert/index.cjs +1 -1
  192. package/dist/components/Alert/index.js +1 -1
  193. package/dist/components/Avatar/index.cjs +1 -1
  194. package/dist/components/Avatar/index.js +1 -1
  195. package/dist/components/Box/index.cjs +1 -1
  196. package/dist/components/Box/index.js +1 -1
  197. package/dist/components/Button/index.cjs +1 -1
  198. package/dist/components/Button/index.cjs.map +1 -1
  199. package/dist/components/Button/index.js +1 -1
  200. package/dist/components/Button/index.js.map +1 -1
  201. package/dist/components/ButtonIcon/index.cjs +1 -1
  202. package/dist/components/ButtonIcon/index.js +1 -1
  203. package/dist/components/Card/index.cjs +1 -1
  204. package/dist/components/Card/index.js +1 -1
  205. package/dist/components/Checkbox/index.cjs +1 -1
  206. package/dist/components/Checkbox/index.js +1 -1
  207. package/dist/components/CheckboxGroup/index.cjs +1 -1
  208. package/dist/components/CheckboxGroup/index.js +1 -1
  209. package/dist/components/Chip/index.cjs +1 -1
  210. package/dist/components/Chip/index.js +1 -1
  211. package/dist/components/ColorPicker/index.cjs +1 -1
  212. package/dist/components/ColorPicker/index.js +1 -1
  213. package/dist/components/Container/index.cjs +1 -1
  214. package/dist/components/Container/index.js +1 -1
  215. package/dist/components/Divider/index.cjs +1 -1
  216. package/dist/components/Divider/index.js +1 -1
  217. package/dist/components/Drawer/index.cjs +1 -1
  218. package/dist/components/Drawer/index.js +1 -1
  219. package/dist/components/Icon/index.cjs +1 -1
  220. package/dist/components/Icon/index.js +1 -1
  221. package/dist/components/Input/index.cjs +1 -1
  222. package/dist/components/Input/index.js +1 -1
  223. package/dist/components/InputFile/index.cjs +1 -1
  224. package/dist/components/InputFile/index.js +1 -1
  225. package/dist/components/Loading/index.cjs +1 -1
  226. package/dist/components/Loading/index.js +1 -1
  227. package/dist/components/Menu/index.cjs +1 -1
  228. package/dist/components/Menu/index.js +1 -1
  229. package/dist/components/Modal/index.cjs +1 -1
  230. package/dist/components/Modal/index.js +1 -1
  231. package/dist/components/Select/index.cjs +1 -1
  232. package/dist/components/Select/index.js +1 -1
  233. package/dist/components/Skeleton/index.cjs +1 -1
  234. package/dist/components/Skeleton/index.js +1 -1
  235. package/dist/components/Stack/index.cjs +1 -1
  236. package/dist/components/Stack/index.js +1 -1
  237. package/dist/components/Switchs/index.cjs +1 -1
  238. package/dist/components/Switchs/index.js +1 -1
  239. package/dist/components/Table/index.cjs +1 -1
  240. package/dist/components/Table/index.js +1 -1
  241. package/dist/components/Toast/index.cjs +1 -1
  242. package/dist/components/Toast/index.js +1 -1
  243. package/dist/components/Tooltip/index.cjs +1 -1
  244. package/dist/components/Tooltip/index.js +1 -1
  245. package/dist/components/Typography/index.cjs +1 -1
  246. package/dist/components/Typography/index.js +1 -1
  247. package/dist/index.cjs +1 -1
  248. package/dist/index.js +1 -1
  249. package/dist/lab/Form/index.cjs +1 -1
  250. package/dist/lab/Form/index.js +1 -1
  251. package/dist/style.css +2 -2
  252. package/dist/theme/index.cjs +1 -1
  253. package/dist/theme/index.js +1 -1
  254. package/package.json +1 -1
  255. package/dist/chunks/useForm-BrezSwQu.js +0 -2
  256. package/dist/chunks/useForm-BrezSwQu.js.map +0 -1
  257. package/dist/chunks/useForm-UT6lrV2_.cjs +0 -2
  258. package/dist/chunks/useForm-UT6lrV2_.cjs.map +0 -1
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{T as f,c as x,u as n}from"./chunks/useTheme-BhIs8Txu.js";import{B as C}from"./chunks/Bounce-DP0PU3kr.js";import{C as M,F as G,u as T,a as c,b as h}from"./chunks/useForm-BrezSwQu.js";import{F as B}from"./chunks/Fade-spxq-W-Q.js";import{S as D}from"./chunks/Slide-BxEwoZ70.js";import{Z as S}from"./chunks/Zoom-DqgU4Wfv.js";import{u as b}from"./chunks/useListenerResized-Bnqxrt7k.js";import{M as w,u as I}from"./chunks/useMenu--3XhFiqi.js";import{u as P}from"./chunks/useResize-BjM6tiAF.js";import{C as j}from"./chunks/Card-fHaoq-NO.js";import{C as q}from"./chunks/CardContent-CokBJbi1.js";import{D as A}from"./chunks/Drawer-CgE3gFqo.js";import{G as H,a as J}from"./chunks/GridItem-CaoPZmBu.js";import{M as N}from"./chunks/MenuButton-B1Ie5Sqy.js";import"react";import"react/jsx-runtime";import"./chunks/index-CZ41y9Hn.js";import"./chunks/joinClass-anSpaauN.js";import"./chunks/uuid-dGvr9vBZ.js";import"./chunks/createComponent-DppVNf5x.js";import"./chunks/Ripple-Bq9bxg4k.js";import"./chunks/Stack-DyhbU7Me.js";export{C as Bounce,j as Card,q as CardContent,M as Control,A as Drawer,B as Fade,G as Form,H as Grid,J as GridItem,w as Menu,N as MenuButton,D as Slide,f as ThemeProvider,S as Zoom,x as createTheme,T as useControl,c as useForm,h as useFormGroup,b as useListenerResized,I as useMenu,P as useResize,n as useTheme};
1
+ import{T as f,c as x,u as n}from"./chunks/useTheme-BkUhhydo.js";import{B as C}from"./chunks/Bounce-DP0PU3kr.js";import{C as M,F as G,u as T,a as c,b as h}from"./chunks/useForm-phDdjT1r.js";import{F as B}from"./chunks/Fade-spxq-W-Q.js";import{S as D}from"./chunks/Slide-BxEwoZ70.js";import{Z as S}from"./chunks/Zoom-DqgU4Wfv.js";import{u as b}from"./chunks/useListenerResized-Bnqxrt7k.js";import{M as w,u as I}from"./chunks/useMenu-CzhqRm1Q.js";import{u as P}from"./chunks/useResize-BjM6tiAF.js";import{C as j}from"./chunks/Card-9HLyAUcP.js";import{C as q}from"./chunks/CardContent-Vo_b-uhI.js";import{D as A}from"./chunks/Drawer-D7qt20Nz.js";import{G as H,a as J}from"./chunks/GridItem-CaoPZmBu.js";import{M as N}from"./chunks/MenuButton-Br-AJ3PB.js";import"react";import"react/jsx-runtime";import"./chunks/index-CZ41y9Hn.js";import"./chunks/joinClass-anSpaauN.js";import"./chunks/uuid-dGvr9vBZ.js";import"./chunks/createComponent-CNxBIpVe.js";import"./chunks/Ripple-Bq9bxg4k.js";import"./chunks/Stack-CJUShSaY.js";export{C as Bounce,j as Card,q as CardContent,M as Control,A as Drawer,B as Fade,G as Form,H as Grid,J as GridItem,w as Menu,N as MenuButton,D as Slide,f as ThemeProvider,S as Zoom,x as createTheme,T as useControl,c as useForm,h as useFormGroup,b as useListenerResized,I as useMenu,P as useResize,n as useTheme};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../chunks/useForm-UT6lrV2_.cjs");require("react");require("react/jsx-runtime");exports.Control=r.Control;exports.Form=r.Form;exports.useControl=r.useControl;exports.useForm=r.useForm;exports.useFormGroup=r.useFormGroup;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../chunks/useForm-C-tp2h3s.cjs");require("react");require("react/jsx-runtime");exports.Control=r.Control;exports.Form=r.Form;exports.useControl=r.useControl;exports.useForm=r.useForm;exports.useFormGroup=r.useFormGroup;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,2 +1,2 @@
1
- import{C as m,F as t,u,a as e,b as p}from"../../chunks/useForm-BrezSwQu.js";import"react";import"react/jsx-runtime";export{m as Control,t as Form,u as useControl,e as useForm,p as useFormGroup};
1
+ import{C as m,F as t,u,a as e,b as p}from"../../chunks/useForm-phDdjT1r.js";import"react";import"react/jsx-runtime";export{m as Control,t as Form,u as useControl,e as useForm,p as useFormGroup};
2
2
  //# sourceMappingURL=index.js.map
package/dist/style.css CHANGED
@@ -79,6 +79,6 @@
79
79
  /* assets/useMenu-Bmun71gn.css */
80
80
  .iziui-menu{position:absolute;word-break:break-all;white-space:pre-wrap;display:flex;flex-direction:column;z-index:4}.iziui-menu__overlay{position:fixed;height:100vh;width:100%;top:0;left:0;z-index:3;cursor:auto}.iziui-menu__card{box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d}.iziui-menu__card__content{overflow:auto;padding:8px 0}.iziui-menu--open{opacity:1;transform:translateY(0)}.iziui-menu--close{transform:translateY(-10px);opacity:0}.iziui-menu__item{border:none;padding:8px 16px;position:relative;white-space:nowrap;background-color:transparent;color:var(--text-primary);transition:all .3s cubic-bezier(.4,0,.2,1);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:flex-start}.iziui-menu__item:hover{background-color:var(--divider)}.iziui-menu__item--primary{color:var(--primary)}.iziui-menu__item--primary:hover{background-color:var(--primary-opacity)}.iziui-menu__item--secondary{color:var(--secondary)}.iziui-menu__item--secondary:hover{background-color:var(--secondary-opacity)}.iziui-menu__item--info{color:var(--info)}.iziui-menu__item--info:hover{background-color:var(--info-opacity)}.iziui-menu__item--error{color:var(--error)}.iziui-menu__item--error:hover{background-color:var(--error-opacity)}.iziui-menu__item--warning{color:var(--warning)}.iziui-menu__item--warning:hover{background-color:var(--warning-opacity)}.iziui-menu__item--success{color:var(--success)}.iziui-menu__item--success:hover{background-color:var(--success-opacity)}
81
81
  /*$vite$:1*/
82
- /* assets/useTheme-B5djpGTF.css */
83
- html,body{margin:0;height:auto;transition:all .3s cubic-bezier(.4,0,.2,1)}h1,h2,h3,h4,h5,h6,p,a,button,label,span,th,tr,td,dl,dt,ul,li,ol{font-family:var(--typography)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{box-shadow:inset 0 0 5px gray}::-webkit-scrollbar-thumb{background:#a2a2a2;border-radius:10px}::selection{background:var(--primary);color:var(--primary-contrast)}
82
+ /* assets/useTheme-d4AkXEDG.css */
83
+ *{box-sizing:border-box}html,body{margin:0;height:auto;transition:all .3s cubic-bezier(.4,0,.2,1)}h1,h2,h3,h4,h5,h6,p,a,button,label,span,th,tr,td,dl,dt,ul,li,ol{font-family:var(--typography)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{box-shadow:inset 0 0 5px gray}::-webkit-scrollbar-thumb{background:#a2a2a2;border-radius:10px}::selection{background:var(--primary);color:var(--primary-contrast)}
84
84
  /*$vite$:1*/
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/useTheme-BZ0xkY68.cjs");require("react");require("react/jsx-runtime");exports.ThemeProvider=e.ThemeProvider;exports.createTheme=e.createTheme;exports.useTheme=e.useTheme;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/useTheme-DwBpyW-5.cjs");require("react");require("react/jsx-runtime");exports.ThemeProvider=e.ThemeProvider;exports.createTheme=e.createTheme;exports.useTheme=e.useTheme;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,2 +1,2 @@
1
- import{T as a,c as s,u as t}from"../chunks/useTheme-BhIs8Txu.js";import"react";import"react/jsx-runtime";export{a as ThemeProvider,s as createTheme,t as useTheme};
1
+ import{T as a,c as s,u as t}from"../chunks/useTheme-BkUhhydo.js";import"react";import"react/jsx-runtime";export{a as ThemeProvider,s as createTheme,t as useTheme};
2
2
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iziui/react",
3
- "version": "0.0.54-rc",
3
+ "version": "0.0.56-rc",
4
4
  "main": "./dist/index.cjs",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,2 +0,0 @@
1
- import{createContext as p,useContext as f,cloneElement as v,useState as m}from"react";import{jsxs as y,jsx as h}from"react/jsx-runtime";const d=p(null);function V({formGroup:o,debug:t=!1,children:r,...e}){return y(d,{value:o,children:[h("form",{...e,onSubmit:o.submit,noValidate:!0,children:r}),t&&h("pre",{style:{maxHeight:350,padding:15,borderRadius:4,overflow:"auto",color:"#333",background:"#e5e5e5",boxShadow:"0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)"},children:JSON.stringify(o.controls,null,2)})]})}function g(){const o=f(d);if(!o)throw new Error("useFormGroup must be used inside <FormProvider> (or <Form />).");return o}function b(o){const t=g();return{control:t.controls[o],update:n=>{t.setValues(a=>(a[o]=n,a))}}}function w({controlName:o,field:t,action:r="input"}){const{control:e,update:n}=b(o);return(i=>{const u=s=>["radio","checkbox"].includes(s.type)?s.target.checked:s.target.value;return v(i,{onBlur:s=>{r==="blur"&&n(u(s)),i.props.onBlur&&i.props.onBlur(s)},onInput:s=>{r==="input"&&n(u(s)),i.props.onInput&&i.props.onInput(s)},onChange:s=>{r==="change"&&n(u(s)),i.props.onChange&&i.props.onChange(s)}})})(t(e))}class c{constructor(t,r,e){this.controls=t,this.handle=r,this.validator=e}controls;handle;validator;_valid=!1;_hydrate;get hydrate(){return this._hydrate}set hydrate(t){this._hydrate=t}get isValid(){return this._valid}set isValid(t){this._valid=t}get errors(){return Object.values(this.controls).filter(t=>t.error)}get values(){const t={};return this.eachControl((r,e)=>({[e]:r.value})).forEach(r=>{for(const e in r)t[e]=r[e]}),t}setValues(t){const r=typeof t=="function"?t(this.values):t;for(const e of Object.keys(r))this.controls[e].value=r[e];this.validate(),this.hydrate(this),this.handle.change&&this.handle.change(this)}eachControl(t){return Object.keys(this.controls).map(r=>t(this.controls[r],r))}submit(){this.handle.submit&&(this.eachControl(t=>t.dirty=!0),this.handle.submit(this))}reset(){this.eachControl(t=>t.reset()),this.hydrate(this)}validate(){this.validator&&(Object.entries(this.validator).map(([t,r])=>{const e=this.controls[t].validate(),n=r(this);this.controls[t].error=e||n||""}),this.isValid=!this.errors.length)}}class C{_value;defaultValue;validators=[];type;error="";dirty=!1;constructor({defaultValue:t,type:r="text",validators:e}){this.type=r,this._value=t,this.defaultValue=t,e&&(this.validators=e)}get value(){return this._value}set value(t){this.dirty=!0,this._value=t,this.validate()}get isInvalid(){return!!(this.dirty&&this.error)}reset(){this.value=this.defaultValue,this.dirty=!1}validate(){const t=this.validators.map(r=>r(this)).filter(Boolean);return this.error=t[0]||"",this.error}}function x(o){return Object.entries(o).reduce((t,r)=>{const e=r[0],n=r[1];return t[e]=new C(n),t},{})}function j({form:o,handle:t,validator:r}){const[e,n]=m(new c(x(o),t,r)),a=i=>{n(u=>{const s=i.controls,l=new c(s,t,r);return l.hydrate=u.hydrate,l})};return e.hydrate=a,e}export{w as C,V as F,j as a,g as b,b as u};
2
- //# sourceMappingURL=useForm-BrezSwQu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useForm-BrezSwQu.js","sources":["../../src/lab/Form/Form.tsx","../../src/lab/Form/useFormGroup.ts","../../src/lab/Form/useControl.ts","../../src/lab/Form/Control.tsx","../../src/lab/Form/FormGroup.ts","../../src/lab/Form/FormControl.ts","../../src/lab/Form/useForm.ts"],"sourcesContent":["import { createContext, HTMLAttributes } from 'react';\n\nimport type FormGroup from './FormGroup';\n\nexport const FormContext = createContext<FormGroup<any> | null>(null);\n\ninterface FormProps<T extends Record<string, unknown>> extends HTMLAttributes<HTMLFormElement> {\n formGroup: FormGroup<T>;\n debug?: boolean;\n}\n\nexport default function Form<T extends Record<string, unknown>>({\n formGroup,\n debug = false,\n children,\n ...props\n}: FormProps<T>) {\n return (\n <FormContext value={formGroup}>\n <form {...props} onSubmit={formGroup.submit} noValidate>\n {children}\n </form>\n {\n debug && (\n <pre style={{\n maxHeight: 350,\n padding: 15,\n borderRadius: 4,\n overflow: 'auto',\n color: '#333',\n background: '#e5e5e5',\n boxShadow: '0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)',\n }}>\n {JSON.stringify(formGroup.controls, null, 2)}\n </pre>\n )\n }\n </FormContext>\n );\n}","import { useContext } from 'react';\n\nimport type FormGroup from './FormGroup';\nimport { FormContext } from './Form';\n\nexport default function useFormGroup<T extends Record<string, unknown>>() {\n const context = useContext(FormContext);\n\n if (!context) throw new Error('useFormGroup must be used inside <FormProvider> (or <Form />).');\n\n return context as FormGroup<T>;\n}","import useFormGroup from './useFormGroup';\n\nexport default function useControl<\n T extends Record<string, unknown>,\n K extends keyof T = keyof T,\n>(controlName: K) {\n const formGroup = useFormGroup<T>();\n const control = formGroup.controls[controlName];\n\n const update = (value: T[K]) => {\n formGroup.setValues((data) => {\n data[controlName] = value;\n\n return data;\n });\n };\n\n return { control, update };\n}","import { ChangeEvent, cloneElement, InputEvent, InputHTMLAttributes, ReactElement } from 'react';\n\nimport useControl from './useControl';\nimport type { AbstractControl } from './AbstractControl';\n\ninterface ControlProps<\n T extends Record<string, any>,\n K extends keyof T,\n> {\n controlName: K;\n action?: 'change' | 'input' | 'blur';\n field: (control: AbstractControl<T>[K]) => React.JSX.Element;\n}\n\nexport default function Control<\n T extends Record<string, any>,\n K extends keyof T\n>({\n controlName,\n field,\n action = 'input'\n}: ControlProps<T, K>) {\n const { control, update } = useControl<T, K>(controlName);\n\n const renderChildren = (child: ReactElement<InputHTMLAttributes<HTMLInputElement>>) => {\n const getValue = (e: ChangeEvent<HTMLInputElement> | InputEvent<HTMLInputElement>) => {\n if (['radio', 'checkbox'].includes(e.type)) { return e.target['checked']; }\n\n return e.target['value'];\n };\n\n return cloneElement(child, {\n onBlur: (e) => {\n if (action === 'blur') { update(getValue(e)); };\n\n if (child.props.onBlur) { child.props.onBlur(e); }\n },\n onInput: (e) => {\n if (action === 'input') { update(getValue(e)); };\n\n if (child.props.onInput) { child.props.onInput(e); }\n },\n onChange: (e) => {\n if (action === 'change') { update(getValue(e)); };\n\n if (child.props.onChange) { child.props.onChange(e); }\n },\n });\n };\n\n return (\n renderChildren(field(control))\n );\n}","import type { AbstractControl } from './AbstractControl';\nimport type FormControl from './FormControl';\n\ntype Hydrate<T extends Record<string, unknown>> = (data: FormGroup<T>) => void;\ntype SetValues<F> = Partial<F> | ((values: F) => Partial<F>);\n\nexport type Validator<T extends Record<string, unknown>> = {\n [K in keyof T]: (data: FormGroup<T>) => string | void;\n}\n\nexport interface Handle<T extends Record<string, unknown>> {\n change?: (form: FormGroup<T>) => void;\n submit?: (form: FormGroup<T>) => void;\n}\n\nexport default class FormGroup<T extends Record<string, unknown>> {\n private _valid = false;\n private _hydrate!: Hydrate<T>;\n\n constructor(\n public controls: AbstractControl<T>,\n public handle: Handle<T>,\n public validator?: Validator<T>,\n ) { }\n\n /**\n * Atualiza o estado interno do componente.\n * @private\n * @description Este método é usado internamente pela biblioteca.\n * Para atualizar valores externamente, use {@link setValues}.\n*/\n get hydrate() { return this._hydrate; }\n set hydrate(fn: (values: FormGroup<T>) => any) { this._hydrate = fn; }\n\n get isValid(): boolean { return this._valid; }\n set isValid(validity: boolean) { this._valid = validity; }\n\n get errors() {\n return Object.values<FormControl<T[keyof T]>>(this.controls).filter(c => c.error);\n }\n\n get values(): T {\n const values: Record<string, any> = {};\n\n this.eachControl((control, key) => ({ [key as string]: control.value }))\n .forEach(control => { for (const prop in control) { values[prop] = control[prop]; } });\n\n return values as T;\n }\n\n public setValues(fn: SetValues<T>): void;\n public setValues(partialForm: Partial<T>): void;\n public setValues(arg: Partial<T> | SetValues<T>) {\n const partial =\n typeof arg === 'function'\n ? arg(this.values)\n : arg;\n\n for (const key of Object.keys(partial)) {\n this.controls[key].value = partial[key] as T[keyof T];\n }\n\n this.validate();\n\n this.hydrate(this);\n\n if (!this.handle.change) { return; }\n\n this.handle.change(this);\n }\n\n private eachControl(fn: <K extends keyof T>(control: FormControl<T[K]>, key?: K) => any) {\n return Object.keys(this.controls).map(k => fn(this.controls[k], k));\n }\n\n public submit() {\n if (!this.handle.submit) { return; }\n\n this.eachControl((control) => control.dirty = true);\n\n this.handle.submit(this);\n }\n\n public reset() {\n this.eachControl((control) => control.reset());\n this.hydrate(this);\n }\n\n public validate() {\n if (!this.validator) { return; }\n\n Object.entries(this.validator).map(([key, fn]) => {\n const controlError = this.controls[key].validate();\n const validatorError = fn(this);\n\n this.controls[key].error = controlError || validatorError || '';\n });\n\n this.isValid = !this.errors.length;\n }\n}","type Type = 'text' | 'email';\ntype Validator<C> = (control: FormControl<C>) => string | false | void;\n\ntype Data<T> = {\n defaultValue: T;\n type?: Type;\n validators?: Validator<T>[];\n}\n\nexport type Constructor<V> = ConstructorParameters<typeof FormControl<V>>[number];\n\nexport default class FormControl<V> implements Pick<Data<V>, 'type'> {\n private _value!: V;\n private defaultValue: V;\n private validators: Validator<V>[] = [];\n\n public type: Type;\n public error = '';\n public dirty = false;\n\n constructor({\n defaultValue,\n type = 'text',\n validators,\n }: Data<V>) {\n this.type = type;\n this._value = defaultValue;\n this.defaultValue = defaultValue;\n\n if (validators) { this.validators = validators; }\n }\n\n get value(): V { return this._value; }\n set value(value: V) {\n this.dirty = true;\n this._value = value;\n this.validate();\n }\n\n get isInvalid() { return Boolean(this.dirty && this.error); }\n\n public reset() {\n this.value = this.defaultValue;\n this.dirty = false;\n }\n\n public validate() {\n const errors = this.validators\n .map(v => v(this))\n .filter(Boolean);\n\n this.error = errors[0] || '';\n\n return this.error;\n }\n}\n","import { useState } from 'react';\n\nimport FormGroup from './FormGroup';\nimport FormControl from './FormControl';\nimport type { Constructor } from './FormControl';\nimport type { Handle, Validator } from './FormGroup';\nimport type { AbstractControl } from './AbstractControl';\n\ntype UseForm<T extends Record<string, unknown>> = {\n form: { [K in keyof T]: Constructor<T[K]> };\n handle: Handle<T>;\n validator?: Validator<T>;\n}\n\nfunction makingControls<T extends Record<string, unknown>>(form: { [K in keyof T]: Constructor<T[K]> }) {\n return Object.entries(form)\n .reduce((acc, data) => {\n const key = data[0] as keyof T;\n const value = data[1] as Constructor<T[keyof T]>;\n\n acc[key] = new FormControl(value);\n\n return acc;\n }, {} as AbstractControl<T>);\n}\n\nexport default function useForm<T extends Record<string, unknown>>({\n form,\n handle,\n validator\n}: UseForm<T>) {\n const [formGroup, setFormGroup] = useState<FormGroup<T>>(\n new FormGroup(\n makingControls(form),\n handle,\n validator\n )\n );\n\n const hydrate = (form: FormGroup<T>) => {\n setFormGroup(prev => {\n const controls = form.controls;\n\n const newFormGroup = new FormGroup(controls, handle, validator);\n newFormGroup.hydrate = prev.hydrate;\n\n return newFormGroup;\n });\n };\n\n formGroup.hydrate = hydrate;\n\n return formGroup;\n}"],"names":["FormContext","createContext","Form","formGroup","debug","children","props","jsxs","jsx","useFormGroup","context","useContext","useControl","controlName","value","data","Control","field","action","control","update","child","getValue","e","cloneElement","FormGroup","controls","handle","validator","fn","validity","c","values","key","prop","arg","partial","k","controlError","validatorError","FormControl","defaultValue","type","validators","errors","v","makingControls","form","acc","useForm","setFormGroup","useState","hydrate","prev","newFormGroup"],"mappings":"wIAIO,MAAMA,EAAcC,EAAqC,IAAI,EAOpE,SAAwBC,EAAwC,CAC9D,UAAAC,EACA,MAAAC,EAAQ,GACR,SAAAC,EACA,GAAGC,CACL,EAAiB,CACf,OACEC,EAACP,EAAA,CAAY,MAAOG,EAClB,SAAA,CAAAK,EAAC,OAAA,CAAM,GAAGF,EAAO,SAAUH,EAAU,OAAQ,WAAU,GACpD,SAAAE,EACH,EAEED,GACEI,EAAC,MAAA,CAAI,MAAO,CACV,UAAW,IACX,QAAS,GACT,aAAc,EACd,SAAU,OACV,MAAO,OACP,WAAY,UACZ,UAAW,wDAAA,EAEV,SAAA,KAAK,UAAUL,EAAU,SAAU,KAAM,CAAC,CAAA,CAC7C,CAAA,EAGN,CAEJ,CClCA,SAAwBM,GAAkD,CACxE,MAAMC,EAAUC,EAAWX,CAAW,EAEtC,GAAI,CAACU,EAAS,MAAM,IAAI,MAAM,gEAAgE,EAE9F,OAAOA,CACT,CCTA,SAAwBE,EAGtBC,EAAgB,CAChB,MAAMV,EAAYM,EAAA,EAWlB,MAAO,CAAE,QAVON,EAAU,SAASU,CAAW,EAU5B,OARFC,GAAgB,CAC9BX,EAAU,UAAWY,IACnBA,EAAKF,CAAW,EAAIC,EAEbC,EACR,CACH,CAEkB,CACpB,CCJA,SAAwBC,EAGtB,CACA,YAAAH,EACA,MAAAI,EACA,OAAAC,EAAS,OACX,EAAuB,CACrB,KAAM,CAAE,QAAAC,EAAS,OAAAC,GAAWR,EAAiBC,CAAW,EA4BxD,OA1BwBQ,GAA+D,CACrF,MAAMC,EAAYC,GACZ,CAAC,QAAS,UAAU,EAAE,SAASA,EAAE,IAAI,EAAYA,EAAE,OAAO,QAEvDA,EAAE,OAAO,MAGlB,OAAOC,EAAaH,EAAO,CACzB,OAASE,GAAM,CACTL,IAAW,QAAUE,EAAOE,EAASC,CAAC,CAAC,EAEvCF,EAAM,MAAM,QAAUA,EAAM,MAAM,OAAOE,CAAC,CAChD,EACA,QAAUA,GAAM,CACVL,IAAW,SAAWE,EAAOE,EAASC,CAAC,CAAC,EAExCF,EAAM,MAAM,SAAWA,EAAM,MAAM,QAAQE,CAAC,CAClD,EACA,SAAWA,GAAM,CACXL,IAAW,UAAYE,EAAOE,EAASC,CAAC,CAAC,EAEzCF,EAAM,MAAM,UAAYA,EAAM,MAAM,SAASE,CAAC,CACpD,CAAA,CACD,CACH,GAGiBN,EAAME,CAAO,CAAC,CAEjC,CCtCA,MAAqBM,CAA6C,CAIhE,YACSC,EACAC,EACAC,EACP,CAHO,KAAA,SAAAF,EACA,KAAA,OAAAC,EACA,KAAA,UAAAC,CACL,CAHK,SACA,OACA,UAND,OAAS,GACT,SAcR,IAAI,SAAU,CAAE,OAAO,KAAK,QAAU,CACtC,IAAI,QAAQC,EAAmC,CAAE,KAAK,SAAWA,CAAI,CAErE,IAAI,SAAmB,CAAE,OAAO,KAAK,MAAQ,CAC7C,IAAI,QAAQC,EAAmB,CAAE,KAAK,OAASA,CAAU,CAEzD,IAAI,QAAS,CACX,OAAO,OAAO,OAAgC,KAAK,QAAQ,EAAE,OAAOC,GAAKA,EAAE,KAAK,CAClF,CAEA,IAAI,QAAY,CACd,MAAMC,EAA8B,CAAA,EAEpC,YAAK,YAAY,CAACb,EAASc,KAAS,CAAE,CAACA,CAAa,EAAGd,EAAQ,KAAA,EAAQ,EACpE,QAAQA,GAAW,CAAE,UAAWe,KAAQf,EAAWa,EAAOE,CAAI,EAAIf,EAAQe,CAAI,CAAK,CAAC,EAEhFF,CACT,CAIO,UAAUG,EAAgC,CAC/C,MAAMC,EACJ,OAAOD,GAAQ,WACXA,EAAI,KAAK,MAAM,EACfA,EAEN,UAAWF,KAAO,OAAO,KAAKG,CAAO,EACnC,KAAK,SAASH,CAAG,EAAE,MAAQG,EAAQH,CAAG,EAGxC,KAAK,SAAA,EAEL,KAAK,QAAQ,IAAI,EAEZ,KAAK,OAAO,QAEjB,KAAK,OAAO,OAAO,IAAI,CACzB,CAEQ,YAAYJ,EAAqE,CACvF,OAAO,OAAO,KAAK,KAAK,QAAQ,EAAE,IAAIQ,GAAKR,EAAG,KAAK,SAASQ,CAAC,EAAGA,CAAC,CAAC,CACpE,CAEO,QAAS,CACT,KAAK,OAAO,SAEjB,KAAK,YAAalB,GAAYA,EAAQ,MAAQ,EAAI,EAElD,KAAK,OAAO,OAAO,IAAI,EACzB,CAEO,OAAQ,CACb,KAAK,YAAaA,GAAYA,EAAQ,OAAO,EAC7C,KAAK,QAAQ,IAAI,CACnB,CAEO,UAAW,CACX,KAAK,YAEV,OAAO,QAAQ,KAAK,SAAS,EAAE,IAAI,CAAC,CAACc,EAAKJ,CAAE,IAAM,CAChD,MAAMS,EAAe,KAAK,SAASL,CAAG,EAAE,SAAA,EAClCM,EAAiBV,EAAG,IAAI,EAE9B,KAAK,SAASI,CAAG,EAAE,MAAQK,GAAgBC,GAAkB,EAC/D,CAAC,EAED,KAAK,QAAU,CAAC,KAAK,OAAO,OAC9B,CACF,CCzFA,MAAqBC,CAAgD,CAC3D,OACA,aACA,WAA6B,CAAA,EAE9B,KACA,MAAQ,GACR,MAAQ,GAEf,YAAY,CACV,aAAAC,EACA,KAAAC,EAAO,OACP,WAAAC,CAAA,EACU,CACV,KAAK,KAAOD,EACZ,KAAK,OAASD,EACd,KAAK,aAAeA,EAEhBE,IAAc,KAAK,WAAaA,EACtC,CAEA,IAAI,OAAW,CAAE,OAAO,KAAK,MAAQ,CACrC,IAAI,MAAM7B,EAAU,CAClB,KAAK,MAAQ,GACb,KAAK,OAASA,EACd,KAAK,SAAA,CACP,CAEA,IAAI,WAAY,CAAE,MAAO,GAAQ,KAAK,OAAS,KAAK,MAAQ,CAErD,OAAQ,CACb,KAAK,MAAQ,KAAK,aAClB,KAAK,MAAQ,EACf,CAEO,UAAW,CAChB,MAAM8B,EAAS,KAAK,WACjB,IAAIC,GAAKA,EAAE,IAAI,CAAC,EAChB,OAAO,OAAO,EAEjB,YAAK,MAAQD,EAAO,CAAC,GAAK,GAEnB,KAAK,KACd,CACF,CCzCA,SAASE,EAAkDC,EAA6C,CACtG,OAAO,OAAO,QAAQA,CAAI,EACvB,OAAO,CAACC,EAAKjC,IAAS,CACrB,MAAMkB,EAAMlB,EAAK,CAAC,EACZD,EAAQC,EAAK,CAAC,EAEpB,OAAAiC,EAAIf,CAAG,EAAI,IAAIO,EAAY1B,CAAK,EAEzBkC,CACT,EAAG,CAAA,CAAwB,CAC/B,CAEA,SAAwBC,EAA2C,CACjE,KAAAF,EACA,OAAApB,EACA,UAAAC,CACF,EAAe,CACb,KAAM,CAACzB,EAAW+C,CAAY,EAAIC,EAChC,IAAI1B,EACFqB,EAAeC,CAAI,EACnBpB,EACAC,CAAA,CACF,EAGIwB,EAAWL,GAAuB,CACtCG,EAAaG,GAAQ,CACnB,MAAM3B,EAAWqB,EAAK,SAEhBO,EAAe,IAAI7B,EAAUC,EAAUC,EAAQC,CAAS,EAC9D,OAAA0B,EAAa,QAAUD,EAAK,QAErBC,CACT,CAAC,CACH,EAEA,OAAAnD,EAAU,QAAUiD,EAEbjD,CACT"}
@@ -1,2 +0,0 @@
1
- "use strict";const l=require("react"),h=require("react/jsx-runtime"),p=l.createContext(null);function m({formGroup:o,debug:t=!1,children:r,...e}){return h.jsxs(p,{value:o,children:[h.jsx("form",{...e,onSubmit:o.submit,noValidate:!0,children:r}),t&&h.jsx("pre",{style:{maxHeight:350,padding:15,borderRadius:4,overflow:"auto",color:"#333",background:"#e5e5e5",boxShadow:"0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)"},children:JSON.stringify(o.controls,null,2)})]})}function f(){const o=l.useContext(p);if(!o)throw new Error("useFormGroup must be used inside <FormProvider> (or <Form />).");return o}function v(o){const t=f();return{control:t.controls[o],update:n=>{t.setValues(u=>(u[o]=n,u))}}}function y({controlName:o,field:t,action:r="input"}){const{control:e,update:n}=v(o);return(i=>{const a=s=>["radio","checkbox"].includes(s.type)?s.target.checked:s.target.value;return l.cloneElement(i,{onBlur:s=>{r==="blur"&&n(a(s)),i.props.onBlur&&i.props.onBlur(s)},onInput:s=>{r==="input"&&n(a(s)),i.props.onInput&&i.props.onInput(s)},onChange:s=>{r==="change"&&n(a(s)),i.props.onChange&&i.props.onChange(s)}})})(t(e))}class d{constructor(t,r,e){this.controls=t,this.handle=r,this.validator=e}controls;handle;validator;_valid=!1;_hydrate;get hydrate(){return this._hydrate}set hydrate(t){this._hydrate=t}get isValid(){return this._valid}set isValid(t){this._valid=t}get errors(){return Object.values(this.controls).filter(t=>t.error)}get values(){const t={};return this.eachControl((r,e)=>({[e]:r.value})).forEach(r=>{for(const e in r)t[e]=r[e]}),t}setValues(t){const r=typeof t=="function"?t(this.values):t;for(const e of Object.keys(r))this.controls[e].value=r[e];this.validate(),this.hydrate(this),this.handle.change&&this.handle.change(this)}eachControl(t){return Object.keys(this.controls).map(r=>t(this.controls[r],r))}submit(){this.handle.submit&&(this.eachControl(t=>t.dirty=!0),this.handle.submit(this))}reset(){this.eachControl(t=>t.reset()),this.hydrate(this)}validate(){this.validator&&(Object.entries(this.validator).map(([t,r])=>{const e=this.controls[t].validate(),n=r(this);this.controls[t].error=e||n||""}),this.isValid=!this.errors.length)}}class g{_value;defaultValue;validators=[];type;error="";dirty=!1;constructor({defaultValue:t,type:r="text",validators:e}){this.type=r,this._value=t,this.defaultValue=t,e&&(this.validators=e)}get value(){return this._value}set value(t){this.dirty=!0,this._value=t,this.validate()}get isInvalid(){return!!(this.dirty&&this.error)}reset(){this.value=this.defaultValue,this.dirty=!1}validate(){const t=this.validators.map(r=>r(this)).filter(Boolean);return this.error=t[0]||"",this.error}}function b(o){return Object.entries(o).reduce((t,r)=>{const e=r[0],n=r[1];return t[e]=new g(n),t},{})}function C({form:o,handle:t,validator:r}){const[e,n]=l.useState(new d(b(o),t,r)),u=i=>{n(a=>{const s=i.controls,c=new d(s,t,r);return c.hydrate=a.hydrate,c})};return e.hydrate=u,e}exports.Control=y;exports.Form=m;exports.useControl=v;exports.useForm=C;exports.useFormGroup=f;
2
- //# sourceMappingURL=useForm-UT6lrV2_.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useForm-UT6lrV2_.cjs","sources":["../../src/lab/Form/Form.tsx","../../src/lab/Form/useFormGroup.ts","../../src/lab/Form/useControl.ts","../../src/lab/Form/Control.tsx","../../src/lab/Form/FormGroup.ts","../../src/lab/Form/FormControl.ts","../../src/lab/Form/useForm.ts"],"sourcesContent":["import { createContext, HTMLAttributes } from 'react';\n\nimport type FormGroup from './FormGroup';\n\nexport const FormContext = createContext<FormGroup<any> | null>(null);\n\ninterface FormProps<T extends Record<string, unknown>> extends HTMLAttributes<HTMLFormElement> {\n formGroup: FormGroup<T>;\n debug?: boolean;\n}\n\nexport default function Form<T extends Record<string, unknown>>({\n formGroup,\n debug = false,\n children,\n ...props\n}: FormProps<T>) {\n return (\n <FormContext value={formGroup}>\n <form {...props} onSubmit={formGroup.submit} noValidate>\n {children}\n </form>\n {\n debug && (\n <pre style={{\n maxHeight: 350,\n padding: 15,\n borderRadius: 4,\n overflow: 'auto',\n color: '#333',\n background: '#e5e5e5',\n boxShadow: '0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)',\n }}>\n {JSON.stringify(formGroup.controls, null, 2)}\n </pre>\n )\n }\n </FormContext>\n );\n}","import { useContext } from 'react';\n\nimport type FormGroup from './FormGroup';\nimport { FormContext } from './Form';\n\nexport default function useFormGroup<T extends Record<string, unknown>>() {\n const context = useContext(FormContext);\n\n if (!context) throw new Error('useFormGroup must be used inside <FormProvider> (or <Form />).');\n\n return context as FormGroup<T>;\n}","import useFormGroup from './useFormGroup';\n\nexport default function useControl<\n T extends Record<string, unknown>,\n K extends keyof T = keyof T,\n>(controlName: K) {\n const formGroup = useFormGroup<T>();\n const control = formGroup.controls[controlName];\n\n const update = (value: T[K]) => {\n formGroup.setValues((data) => {\n data[controlName] = value;\n\n return data;\n });\n };\n\n return { control, update };\n}","import { ChangeEvent, cloneElement, InputEvent, InputHTMLAttributes, ReactElement } from 'react';\n\nimport useControl from './useControl';\nimport type { AbstractControl } from './AbstractControl';\n\ninterface ControlProps<\n T extends Record<string, any>,\n K extends keyof T,\n> {\n controlName: K;\n action?: 'change' | 'input' | 'blur';\n field: (control: AbstractControl<T>[K]) => React.JSX.Element;\n}\n\nexport default function Control<\n T extends Record<string, any>,\n K extends keyof T\n>({\n controlName,\n field,\n action = 'input'\n}: ControlProps<T, K>) {\n const { control, update } = useControl<T, K>(controlName);\n\n const renderChildren = (child: ReactElement<InputHTMLAttributes<HTMLInputElement>>) => {\n const getValue = (e: ChangeEvent<HTMLInputElement> | InputEvent<HTMLInputElement>) => {\n if (['radio', 'checkbox'].includes(e.type)) { return e.target['checked']; }\n\n return e.target['value'];\n };\n\n return cloneElement(child, {\n onBlur: (e) => {\n if (action === 'blur') { update(getValue(e)); };\n\n if (child.props.onBlur) { child.props.onBlur(e); }\n },\n onInput: (e) => {\n if (action === 'input') { update(getValue(e)); };\n\n if (child.props.onInput) { child.props.onInput(e); }\n },\n onChange: (e) => {\n if (action === 'change') { update(getValue(e)); };\n\n if (child.props.onChange) { child.props.onChange(e); }\n },\n });\n };\n\n return (\n renderChildren(field(control))\n );\n}","import type { AbstractControl } from './AbstractControl';\nimport type FormControl from './FormControl';\n\ntype Hydrate<T extends Record<string, unknown>> = (data: FormGroup<T>) => void;\ntype SetValues<F> = Partial<F> | ((values: F) => Partial<F>);\n\nexport type Validator<T extends Record<string, unknown>> = {\n [K in keyof T]: (data: FormGroup<T>) => string | void;\n}\n\nexport interface Handle<T extends Record<string, unknown>> {\n change?: (form: FormGroup<T>) => void;\n submit?: (form: FormGroup<T>) => void;\n}\n\nexport default class FormGroup<T extends Record<string, unknown>> {\n private _valid = false;\n private _hydrate!: Hydrate<T>;\n\n constructor(\n public controls: AbstractControl<T>,\n public handle: Handle<T>,\n public validator?: Validator<T>,\n ) { }\n\n /**\n * Atualiza o estado interno do componente.\n * @private\n * @description Este método é usado internamente pela biblioteca.\n * Para atualizar valores externamente, use {@link setValues}.\n*/\n get hydrate() { return this._hydrate; }\n set hydrate(fn: (values: FormGroup<T>) => any) { this._hydrate = fn; }\n\n get isValid(): boolean { return this._valid; }\n set isValid(validity: boolean) { this._valid = validity; }\n\n get errors() {\n return Object.values<FormControl<T[keyof T]>>(this.controls).filter(c => c.error);\n }\n\n get values(): T {\n const values: Record<string, any> = {};\n\n this.eachControl((control, key) => ({ [key as string]: control.value }))\n .forEach(control => { for (const prop in control) { values[prop] = control[prop]; } });\n\n return values as T;\n }\n\n public setValues(fn: SetValues<T>): void;\n public setValues(partialForm: Partial<T>): void;\n public setValues(arg: Partial<T> | SetValues<T>) {\n const partial =\n typeof arg === 'function'\n ? arg(this.values)\n : arg;\n\n for (const key of Object.keys(partial)) {\n this.controls[key].value = partial[key] as T[keyof T];\n }\n\n this.validate();\n\n this.hydrate(this);\n\n if (!this.handle.change) { return; }\n\n this.handle.change(this);\n }\n\n private eachControl(fn: <K extends keyof T>(control: FormControl<T[K]>, key?: K) => any) {\n return Object.keys(this.controls).map(k => fn(this.controls[k], k));\n }\n\n public submit() {\n if (!this.handle.submit) { return; }\n\n this.eachControl((control) => control.dirty = true);\n\n this.handle.submit(this);\n }\n\n public reset() {\n this.eachControl((control) => control.reset());\n this.hydrate(this);\n }\n\n public validate() {\n if (!this.validator) { return; }\n\n Object.entries(this.validator).map(([key, fn]) => {\n const controlError = this.controls[key].validate();\n const validatorError = fn(this);\n\n this.controls[key].error = controlError || validatorError || '';\n });\n\n this.isValid = !this.errors.length;\n }\n}","type Type = 'text' | 'email';\ntype Validator<C> = (control: FormControl<C>) => string | false | void;\n\ntype Data<T> = {\n defaultValue: T;\n type?: Type;\n validators?: Validator<T>[];\n}\n\nexport type Constructor<V> = ConstructorParameters<typeof FormControl<V>>[number];\n\nexport default class FormControl<V> implements Pick<Data<V>, 'type'> {\n private _value!: V;\n private defaultValue: V;\n private validators: Validator<V>[] = [];\n\n public type: Type;\n public error = '';\n public dirty = false;\n\n constructor({\n defaultValue,\n type = 'text',\n validators,\n }: Data<V>) {\n this.type = type;\n this._value = defaultValue;\n this.defaultValue = defaultValue;\n\n if (validators) { this.validators = validators; }\n }\n\n get value(): V { return this._value; }\n set value(value: V) {\n this.dirty = true;\n this._value = value;\n this.validate();\n }\n\n get isInvalid() { return Boolean(this.dirty && this.error); }\n\n public reset() {\n this.value = this.defaultValue;\n this.dirty = false;\n }\n\n public validate() {\n const errors = this.validators\n .map(v => v(this))\n .filter(Boolean);\n\n this.error = errors[0] || '';\n\n return this.error;\n }\n}\n","import { useState } from 'react';\n\nimport FormGroup from './FormGroup';\nimport FormControl from './FormControl';\nimport type { Constructor } from './FormControl';\nimport type { Handle, Validator } from './FormGroup';\nimport type { AbstractControl } from './AbstractControl';\n\ntype UseForm<T extends Record<string, unknown>> = {\n form: { [K in keyof T]: Constructor<T[K]> };\n handle: Handle<T>;\n validator?: Validator<T>;\n}\n\nfunction makingControls<T extends Record<string, unknown>>(form: { [K in keyof T]: Constructor<T[K]> }) {\n return Object.entries(form)\n .reduce((acc, data) => {\n const key = data[0] as keyof T;\n const value = data[1] as Constructor<T[keyof T]>;\n\n acc[key] = new FormControl(value);\n\n return acc;\n }, {} as AbstractControl<T>);\n}\n\nexport default function useForm<T extends Record<string, unknown>>({\n form,\n handle,\n validator\n}: UseForm<T>) {\n const [formGroup, setFormGroup] = useState<FormGroup<T>>(\n new FormGroup(\n makingControls(form),\n handle,\n validator\n )\n );\n\n const hydrate = (form: FormGroup<T>) => {\n setFormGroup(prev => {\n const controls = form.controls;\n\n const newFormGroup = new FormGroup(controls, handle, validator);\n newFormGroup.hydrate = prev.hydrate;\n\n return newFormGroup;\n });\n };\n\n formGroup.hydrate = hydrate;\n\n return formGroup;\n}"],"names":["FormContext","createContext","Form","formGroup","debug","children","props","jsxs","jsx","useFormGroup","context","useContext","useControl","controlName","value","data","Control","field","action","control","update","child","getValue","e","cloneElement","FormGroup","controls","handle","validator","fn","validity","c","values","key","prop","arg","partial","k","controlError","validatorError","FormControl","defaultValue","type","validators","errors","v","makingControls","form","acc","useForm","setFormGroup","useState","hydrate","prev","newFormGroup"],"mappings":"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"}