@timeax/form-palette 0.0.2 → 0.0.4

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 (503) hide show
  1. package/dist/adapters/axios.d.ts +21 -0
  2. package/dist/adapters/axios.d.ts.map +1 -0
  3. package/dist/adapters/axios.js +74 -0
  4. package/dist/adapters/axios.js.map +1 -0
  5. package/dist/adapters/index.d.ts +35 -0
  6. package/dist/adapters/index.d.ts.map +1 -0
  7. package/dist/adapters/index.js +74 -0
  8. package/dist/adapters/index.js.map +1 -0
  9. package/dist/adapters/inertia.d.ts +24 -0
  10. package/dist/adapters/inertia.d.ts.map +1 -0
  11. package/dist/adapters/inertia.js +126 -0
  12. package/dist/adapters/inertia.js.map +1 -0
  13. package/dist/core/adapter-registry.d.ts +30 -0
  14. package/dist/core/adapter-registry.d.ts.map +1 -0
  15. package/{src/core/adapter-registry.ts → dist/core/adapter-registry.js} +10 -28
  16. package/dist/core/adapter-registry.js.map +1 -0
  17. package/{src/core/bound/bind-host.ts → dist/core/bound/bind-host.d.ts} +2 -3
  18. package/dist/core/bound/bind-host.d.ts.map +1 -0
  19. package/dist/core/bound/bind-host.js +2 -0
  20. package/dist/core/bound/bind-host.js.map +1 -0
  21. package/dist/core/bound/observe-bound-field.d.ts +21 -0
  22. package/dist/core/bound/observe-bound-field.d.ts.map +1 -0
  23. package/dist/core/bound/observe-bound-field.js +116 -0
  24. package/dist/core/bound/observe-bound-field.js.map +1 -0
  25. package/dist/core/bound/wait-for-bound-field.d.ts +5 -0
  26. package/dist/core/bound/wait-for-bound-field.d.ts.map +1 -0
  27. package/dist/core/bound/wait-for-bound-field.js +35 -0
  28. package/dist/core/bound/wait-for-bound-field.js.map +1 -0
  29. package/{src/core/context.ts → dist/core/context.d.ts} +2 -6
  30. package/dist/core/context.d.ts.map +1 -0
  31. package/dist/core/context.js +11 -0
  32. package/dist/core/context.js.map +1 -0
  33. package/dist/core/core-provider.d.ts +22 -0
  34. package/dist/core/core-provider.d.ts.map +1 -0
  35. package/{src/core/core-provider.tsx → dist/core/core-provider.js} +209 -364
  36. package/dist/core/core-provider.js.map +1 -0
  37. package/dist/core/core-root.d.ts +26 -0
  38. package/dist/core/core-root.d.ts.map +1 -0
  39. package/dist/core/core-root.js +38 -0
  40. package/dist/core/core-root.js.map +1 -0
  41. package/dist/core/core-shell.d.ts +22 -0
  42. package/dist/core/core-shell.d.ts.map +1 -0
  43. package/dist/core/core-shell.js +8 -0
  44. package/dist/core/core-shell.js.map +1 -0
  45. package/{src/core/errors/error-strip.tsx → dist/core/errors/error-strip.d.ts} +2 -39
  46. package/dist/core/errors/error-strip.d.ts.map +1 -0
  47. package/dist/core/errors/error-strip.js +18 -0
  48. package/dist/core/errors/error-strip.js.map +1 -0
  49. package/dist/core/errors/index.d.ts +4 -0
  50. package/dist/core/errors/index.d.ts.map +1 -0
  51. package/dist/core/errors/index.js +4 -0
  52. package/dist/core/errors/index.js.map +1 -0
  53. package/dist/core/errors/map-error-bag.d.ts +24 -0
  54. package/dist/core/errors/map-error-bag.d.ts.map +1 -0
  55. package/{src/core/errors/map-error-bag.ts → dist/core/errors/map-error-bag.js} +10 -22
  56. package/dist/core/errors/map-error-bag.js.map +1 -0
  57. package/dist/core/errors/map-zod.d.ts +18 -0
  58. package/dist/core/errors/map-zod.d.ts.map +1 -0
  59. package/{src/core/errors/map-zod.ts → dist/core/errors/map-zod.js} +7 -19
  60. package/dist/core/errors/map-zod.js.map +1 -0
  61. package/dist/core/hooks/use-button.d.ts +73 -0
  62. package/dist/core/hooks/use-button.d.ts.map +1 -0
  63. package/dist/core/hooks/use-button.js +116 -0
  64. package/dist/core/hooks/use-button.js.map +1 -0
  65. package/dist/core/hooks/use-core-context.d.ts +9 -0
  66. package/dist/core/hooks/use-core-context.d.ts.map +1 -0
  67. package/{src/core/hooks/use-core-context.ts → dist/core/hooks/use-core-context.js} +3 -6
  68. package/dist/core/hooks/use-core-context.js.map +1 -0
  69. package/dist/core/hooks/use-core-utility.d.ts +1 -0
  70. package/dist/core/hooks/use-core-utility.d.ts.map +1 -0
  71. package/dist/core/hooks/use-core-utility.js +2 -0
  72. package/dist/core/hooks/use-core-utility.js.map +1 -0
  73. package/{src/core/hooks/use-core.ts → dist/core/hooks/use-core.d.ts} +9 -13
  74. package/dist/core/hooks/use-core.d.ts.map +1 -0
  75. package/dist/core/hooks/use-core.js +11 -0
  76. package/dist/core/hooks/use-core.js.map +1 -0
  77. package/dist/core/hooks/use-field.d.ts +141 -0
  78. package/dist/core/hooks/use-field.d.ts.map +1 -0
  79. package/dist/core/hooks/use-field.js +256 -0
  80. package/dist/core/hooks/use-field.js.map +1 -0
  81. package/dist/core/hooks/use-optional-field.d.ts +9 -0
  82. package/dist/core/hooks/use-optional-field.d.ts.map +1 -0
  83. package/dist/core/hooks/use-optional-field.js +146 -0
  84. package/dist/core/hooks/use-optional-field.js.map +1 -0
  85. package/dist/core/index.d.ts +11 -0
  86. package/dist/core/index.d.ts.map +1 -0
  87. package/dist/core/index.js +11 -0
  88. package/dist/core/index.js.map +1 -0
  89. package/dist/core/registry/binder-registry.d.ts +38 -0
  90. package/dist/core/registry/binder-registry.d.ts.map +1 -0
  91. package/dist/core/registry/binder-registry.js +52 -0
  92. package/dist/core/registry/binder-registry.js.map +1 -0
  93. package/dist/core/registry/field-registry.d.ts +86 -0
  94. package/dist/core/registry/field-registry.d.ts.map +1 -0
  95. package/{src/core/registry/field-registry.ts → dist/core/registry/field-registry.js} +56 -70
  96. package/dist/core/registry/field-registry.js.map +1 -0
  97. package/dist/core/test.d.ts +2 -0
  98. package/dist/core/test.d.ts.map +1 -0
  99. package/dist/core/test.js +9 -0
  100. package/dist/core/test.js.map +1 -0
  101. package/dist/index.d.ts +15 -0
  102. package/dist/index.d.ts.map +1 -0
  103. package/{src/index.ts → dist/index.js} +5 -47
  104. package/dist/index.js.map +1 -0
  105. package/{src/input/index.ts → dist/input/index.d.ts} +1 -2
  106. package/dist/input/index.d.ts.map +1 -0
  107. package/dist/input/index.js +3 -0
  108. package/dist/input/index.js.map +1 -0
  109. package/dist/input/input-field.d.ts +15 -0
  110. package/dist/input/input-field.d.ts.map +1 -0
  111. package/dist/input/input-field.js +413 -0
  112. package/dist/input/input-field.js.map +1 -0
  113. package/dist/input/input-layout-graph.d.ts +77 -0
  114. package/dist/input/input-layout-graph.d.ts.map +1 -0
  115. package/dist/input/input-layout-graph.js +108 -0
  116. package/dist/input/input-layout-graph.js.map +1 -0
  117. package/{src/input/input-props.ts → dist/input/input-props.d.ts} +22 -84
  118. package/dist/input/input-props.d.ts.map +1 -0
  119. package/dist/input/input-props.js +4 -0
  120. package/dist/input/input-props.js.map +1 -0
  121. package/dist/lib/get-global-countries.d.ts +3 -0
  122. package/dist/lib/get-global-countries.d.ts.map +1 -0
  123. package/dist/lib/get-global-countries.js +70 -0
  124. package/dist/lib/get-global-countries.js.map +1 -0
  125. package/dist/lib/utils.d.ts +3 -0
  126. package/dist/lib/utils.d.ts.map +1 -0
  127. package/dist/lib/utils.js +6 -0
  128. package/dist/lib/utils.js.map +1 -0
  129. package/dist/presets/index.d.ts +1 -0
  130. package/dist/presets/index.d.ts.map +1 -0
  131. package/dist/presets/index.js +2 -0
  132. package/dist/presets/index.js.map +1 -0
  133. package/dist/presets/shadcn-preset.d.ts +1 -0
  134. package/dist/presets/shadcn-preset.d.ts.map +1 -0
  135. package/dist/presets/shadcn-preset.js +2 -0
  136. package/dist/presets/shadcn-preset.js.map +1 -0
  137. package/dist/presets/shadcn-variants/checkbox.d.ts +212 -0
  138. package/dist/presets/shadcn-variants/checkbox.d.ts.map +1 -0
  139. package/dist/presets/shadcn-variants/checkbox.js +315 -0
  140. package/dist/presets/shadcn-variants/checkbox.js.map +1 -0
  141. package/dist/presets/shadcn-variants/chips.d.ts +154 -0
  142. package/dist/presets/shadcn-variants/chips.d.ts.map +1 -0
  143. package/dist/presets/shadcn-variants/chips.js +266 -0
  144. package/dist/presets/shadcn-variants/chips.js.map +1 -0
  145. package/dist/presets/shadcn-variants/color.d.ts +63 -0
  146. package/dist/presets/shadcn-variants/color.d.ts.map +1 -0
  147. package/dist/presets/shadcn-variants/color.js +96 -0
  148. package/dist/presets/shadcn-variants/color.js.map +1 -0
  149. package/dist/presets/shadcn-variants/custom.d.ts +94 -0
  150. package/dist/presets/shadcn-variants/custom.d.ts.map +1 -0
  151. package/dist/presets/shadcn-variants/custom.js +80 -0
  152. package/dist/presets/shadcn-variants/custom.js.map +1 -0
  153. package/dist/presets/shadcn-variants/date.d.ts +114 -0
  154. package/dist/presets/shadcn-variants/date.d.ts.map +1 -0
  155. package/dist/presets/shadcn-variants/date.js +414 -0
  156. package/dist/presets/shadcn-variants/date.js.map +1 -0
  157. package/dist/presets/shadcn-variants/file.d.ts +79 -0
  158. package/dist/presets/shadcn-variants/file.d.ts.map +1 -0
  159. package/dist/presets/shadcn-variants/file.js +289 -0
  160. package/dist/presets/shadcn-variants/file.js.map +1 -0
  161. package/dist/presets/shadcn-variants/keyvalue.d.ts +35 -0
  162. package/dist/presets/shadcn-variants/keyvalue.d.ts.map +1 -0
  163. package/dist/presets/shadcn-variants/keyvalue.js +215 -0
  164. package/dist/presets/shadcn-variants/keyvalue.js.map +1 -0
  165. package/dist/presets/shadcn-variants/multiselect.d.ts +210 -0
  166. package/dist/presets/shadcn-variants/multiselect.d.ts.map +1 -0
  167. package/dist/presets/shadcn-variants/multiselect.js +352 -0
  168. package/dist/presets/shadcn-variants/multiselect.js.map +1 -0
  169. package/dist/presets/shadcn-variants/number.d.ts +31 -0
  170. package/dist/presets/shadcn-variants/number.d.ts.map +1 -0
  171. package/dist/presets/shadcn-variants/number.js +64 -0
  172. package/dist/presets/shadcn-variants/number.js.map +1 -0
  173. package/dist/presets/shadcn-variants/password.d.ts +195 -0
  174. package/dist/presets/shadcn-variants/password.d.ts.map +1 -0
  175. package/dist/presets/shadcn-variants/password.js +296 -0
  176. package/dist/presets/shadcn-variants/password.js.map +1 -0
  177. package/dist/presets/shadcn-variants/phone.d.ts +69 -0
  178. package/dist/presets/shadcn-variants/phone.d.ts.map +1 -0
  179. package/dist/presets/shadcn-variants/phone.js +308 -0
  180. package/dist/presets/shadcn-variants/phone.js.map +1 -0
  181. package/dist/presets/shadcn-variants/radio.d.ts +172 -0
  182. package/dist/presets/shadcn-variants/radio.d.ts.map +1 -0
  183. package/dist/presets/shadcn-variants/radio.js +192 -0
  184. package/dist/presets/shadcn-variants/radio.js.map +1 -0
  185. package/dist/presets/shadcn-variants/select.d.ts +203 -0
  186. package/dist/presets/shadcn-variants/select.d.ts.map +1 -0
  187. package/dist/presets/shadcn-variants/select.js +285 -0
  188. package/dist/presets/shadcn-variants/select.js.map +1 -0
  189. package/dist/presets/shadcn-variants/slider.d.ts +131 -0
  190. package/dist/presets/shadcn-variants/slider.d.ts.map +1 -0
  191. package/dist/presets/shadcn-variants/slider.js +151 -0
  192. package/dist/presets/shadcn-variants/slider.js.map +1 -0
  193. package/dist/presets/shadcn-variants/text.d.ts +155 -0
  194. package/dist/presets/shadcn-variants/text.d.ts.map +1 -0
  195. package/dist/presets/shadcn-variants/text.js +98 -0
  196. package/dist/presets/shadcn-variants/text.js.map +1 -0
  197. package/dist/presets/shadcn-variants/textarea.d.ts +18 -0
  198. package/dist/presets/shadcn-variants/textarea.d.ts.map +1 -0
  199. package/dist/presets/shadcn-variants/textarea.js +24 -0
  200. package/dist/presets/shadcn-variants/textarea.js.map +1 -0
  201. package/dist/presets/shadcn-variants/toggle.d.ts +61 -0
  202. package/dist/presets/shadcn-variants/toggle.d.ts.map +1 -0
  203. package/dist/presets/shadcn-variants/toggle.js +67 -0
  204. package/dist/presets/shadcn-variants/toggle.js.map +1 -0
  205. package/dist/presets/shadcn-variants/treeselect.d.ts +81 -0
  206. package/dist/presets/shadcn-variants/treeselect.d.ts.map +1 -0
  207. package/dist/presets/shadcn-variants/treeselect.js +317 -0
  208. package/dist/presets/shadcn-variants/treeselect.js.map +1 -0
  209. package/dist/presets/ui/badge.d.ts +10 -0
  210. package/dist/presets/ui/badge.d.ts.map +1 -0
  211. package/dist/presets/ui/badge.js +23 -0
  212. package/dist/presets/ui/badge.js.map +1 -0
  213. package/dist/presets/ui/button.d.ts +11 -0
  214. package/dist/presets/ui/button.d.ts.map +1 -0
  215. package/dist/presets/ui/button.js +34 -0
  216. package/dist/presets/ui/button.js.map +1 -0
  217. package/dist/presets/ui/calendar.d.ts +9 -0
  218. package/dist/presets/ui/calendar.d.ts.map +1 -0
  219. package/dist/presets/ui/calendar.js +76 -0
  220. package/dist/presets/ui/calendar.js.map +1 -0
  221. package/dist/presets/ui/checkbox.d.ts +18 -0
  222. package/dist/presets/ui/checkbox.d.ts.map +1 -0
  223. package/dist/presets/ui/checkbox.js +61 -0
  224. package/dist/presets/ui/checkbox.js.map +1 -0
  225. package/dist/presets/ui/custom.d.ts +1 -0
  226. package/dist/presets/ui/custom.d.ts.map +1 -0
  227. package/dist/presets/ui/custom.js +2 -0
  228. package/dist/presets/ui/custom.js.map +1 -0
  229. package/dist/presets/ui/dialog.d.ts +16 -0
  230. package/dist/presets/ui/dialog.d.ts.map +1 -0
  231. package/dist/presets/ui/dialog.js +36 -0
  232. package/dist/presets/ui/dialog.js.map +1 -0
  233. package/dist/presets/ui/field.d.ts +25 -0
  234. package/dist/presets/ui/field.d.ts.map +1 -0
  235. package/dist/presets/ui/field.js +76 -0
  236. package/dist/presets/ui/field.js.map +1 -0
  237. package/dist/presets/ui/input-mask.d.ts +34 -0
  238. package/dist/presets/ui/input-mask.d.ts.map +1 -0
  239. package/dist/presets/ui/input-mask.js +561 -0
  240. package/dist/presets/ui/input-mask.js.map +1 -0
  241. package/dist/presets/ui/input-otp.d.ts +12 -0
  242. package/dist/presets/ui/input-otp.d.ts.map +1 -0
  243. package/dist/presets/ui/input-otp.js +22 -0
  244. package/dist/presets/ui/input-otp.js.map +1 -0
  245. package/dist/presets/ui/input.d.ts +83 -0
  246. package/dist/presets/ui/input.d.ts.map +1 -0
  247. package/dist/presets/ui/input.js +436 -0
  248. package/dist/presets/ui/input.js.map +1 -0
  249. package/dist/presets/ui/label.d.ts +5 -0
  250. package/dist/presets/ui/label.d.ts.map +1 -0
  251. package/dist/presets/ui/label.js +8 -0
  252. package/dist/presets/ui/label.js.map +1 -0
  253. package/dist/presets/ui/number.d.ts +60 -0
  254. package/dist/presets/ui/number.d.ts.map +1 -0
  255. package/dist/presets/ui/number.js +1078 -0
  256. package/dist/presets/ui/number.js.map +1 -0
  257. package/dist/presets/ui/popover.d.ts +8 -0
  258. package/dist/presets/ui/popover.d.ts.map +1 -0
  259. package/dist/presets/ui/popover.js +17 -0
  260. package/dist/presets/ui/popover.js.map +1 -0
  261. package/dist/presets/ui/radio-group.d.ts +6 -0
  262. package/dist/presets/ui/radio-group.d.ts.map +1 -0
  263. package/dist/presets/ui/radio-group.js +12 -0
  264. package/dist/presets/ui/radio-group.js.map +1 -0
  265. package/dist/presets/ui/scroll-area.d.ts +6 -0
  266. package/dist/presets/ui/scroll-area.d.ts.map +1 -0
  267. package/dist/presets/ui/scroll-area.js +13 -0
  268. package/dist/presets/ui/scroll-area.js.map +1 -0
  269. package/dist/presets/ui/select.d.ts +21 -0
  270. package/dist/presets/ui/select.d.ts.map +1 -0
  271. package/dist/presets/ui/select.js +38 -0
  272. package/dist/presets/ui/select.js.map +1 -0
  273. package/dist/presets/ui/separator.d.ts +5 -0
  274. package/dist/presets/ui/separator.d.ts.map +1 -0
  275. package/dist/presets/ui/separator.js +9 -0
  276. package/dist/presets/ui/separator.js.map +1 -0
  277. package/dist/presets/ui/slider.d.ts +5 -0
  278. package/dist/presets/ui/slider.d.ts.map +1 -0
  279. package/dist/presets/ui/slider.js +14 -0
  280. package/dist/presets/ui/slider.js.map +1 -0
  281. package/dist/presets/ui/switch.d.ts +7 -0
  282. package/dist/presets/ui/switch.d.ts.map +1 -0
  283. package/dist/presets/ui/switch.js +9 -0
  284. package/dist/presets/ui/switch.js.map +1 -0
  285. package/dist/presets/ui/textarea.d.ts +76 -0
  286. package/dist/presets/ui/textarea.d.ts.map +1 -0
  287. package/dist/presets/ui/textarea.js +291 -0
  288. package/dist/presets/ui/textarea.js.map +1 -0
  289. package/dist/presets/ui/time-dropdowns.d.ts +58 -0
  290. package/dist/presets/ui/time-dropdowns.d.ts.map +1 -0
  291. package/dist/presets/ui/time-dropdowns.js +133 -0
  292. package/dist/presets/ui/time-dropdowns.js.map +1 -0
  293. package/{src/schema/adapter.ts → dist/schema/adapter.d.ts} +7 -35
  294. package/dist/schema/adapter.d.ts.map +1 -0
  295. package/dist/schema/adapter.js +3 -0
  296. package/dist/schema/adapter.js.map +1 -0
  297. package/{src/schema/core.ts → dist/schema/core.d.ts} +17 -117
  298. package/dist/schema/core.d.ts.map +1 -0
  299. package/dist/schema/core.js +4 -0
  300. package/dist/schema/core.js.map +1 -0
  301. package/dist/schema/field-map.d.ts +1 -0
  302. package/dist/schema/field-map.d.ts.map +1 -0
  303. package/dist/schema/field-map.js +2 -0
  304. package/dist/schema/field-map.js.map +1 -0
  305. package/{src/schema/field.ts → dist/schema/field.d.ts} +1 -34
  306. package/dist/schema/field.d.ts.map +1 -0
  307. package/dist/schema/field.js +4 -0
  308. package/dist/schema/field.js.map +1 -0
  309. package/dist/schema/index.d.ts +1 -0
  310. package/dist/schema/index.d.ts.map +1 -0
  311. package/dist/schema/index.js +2 -0
  312. package/dist/schema/index.js.map +1 -0
  313. package/{src/schema/input-field.ts → dist/schema/input-field.d.ts} +6 -43
  314. package/dist/schema/input-field.d.ts.map +1 -0
  315. package/dist/schema/input-field.js +3 -0
  316. package/dist/schema/input-field.js.map +1 -0
  317. package/dist/schema/presets.d.ts +1 -0
  318. package/dist/schema/presets.d.ts.map +1 -0
  319. package/dist/schema/presets.js +2 -0
  320. package/dist/schema/presets.js.map +1 -0
  321. package/{src/schema/variant.ts → dist/schema/variant.d.ts} +24 -64
  322. package/dist/schema/variant.d.ts.map +1 -0
  323. package/dist/schema/variant.js +3 -0
  324. package/dist/schema/variant.js.map +1 -0
  325. package/dist/variants/core/checkbox.d.ts +15 -0
  326. package/dist/variants/core/checkbox.d.ts.map +1 -0
  327. package/dist/variants/core/checkbox.js +27 -0
  328. package/dist/variants/core/checkbox.js.map +1 -0
  329. package/dist/variants/core/chips.d.ts +3 -0
  330. package/dist/variants/core/chips.d.ts.map +1 -0
  331. package/dist/variants/core/chips.js +20 -0
  332. package/dist/variants/core/chips.js.map +1 -0
  333. package/dist/variants/core/color.d.ts +3 -0
  334. package/dist/variants/core/color.d.ts.map +1 -0
  335. package/dist/variants/core/color.js +14 -0
  336. package/dist/variants/core/color.js.map +1 -0
  337. package/dist/variants/core/custom.d.ts +11 -0
  338. package/dist/variants/core/custom.d.ts.map +1 -0
  339. package/{src/variants/core/custom.tsx → dist/variants/core/custom.js} +15 -18
  340. package/dist/variants/core/custom.js.map +1 -0
  341. package/dist/variants/core/date.d.ts +3 -0
  342. package/dist/variants/core/date.d.ts.map +1 -0
  343. package/dist/variants/core/date.js +20 -0
  344. package/dist/variants/core/date.js.map +1 -0
  345. package/dist/variants/core/file.d.ts +3 -0
  346. package/dist/variants/core/file.d.ts.map +1 -0
  347. package/dist/variants/core/file.js +6 -0
  348. package/dist/variants/core/file.js.map +1 -0
  349. package/dist/variants/core/keyvalue.d.ts +3 -0
  350. package/dist/variants/core/keyvalue.d.ts.map +1 -0
  351. package/dist/variants/core/keyvalue.js +9 -0
  352. package/dist/variants/core/keyvalue.js.map +1 -0
  353. package/dist/variants/core/multiselect.d.ts +11 -0
  354. package/dist/variants/core/multiselect.d.ts.map +1 -0
  355. package/dist/variants/core/multiselect.js +15 -0
  356. package/dist/variants/core/multiselect.js.map +1 -0
  357. package/dist/variants/core/number.d.ts +38 -0
  358. package/dist/variants/core/number.d.ts.map +1 -0
  359. package/dist/variants/core/number.js +62 -0
  360. package/dist/variants/core/number.js.map +1 -0
  361. package/dist/variants/core/password.d.ts +11 -0
  362. package/dist/variants/core/password.d.ts.map +1 -0
  363. package/dist/variants/core/password.js +29 -0
  364. package/dist/variants/core/password.js.map +1 -0
  365. package/dist/variants/core/phone.d.ts +3 -0
  366. package/dist/variants/core/phone.d.ts.map +1 -0
  367. package/dist/variants/core/phone.js +14 -0
  368. package/dist/variants/core/phone.js.map +1 -0
  369. package/dist/variants/core/radio.d.ts +8 -0
  370. package/dist/variants/core/radio.d.ts.map +1 -0
  371. package/dist/variants/core/radio.js +34 -0
  372. package/dist/variants/core/radio.js.map +1 -0
  373. package/dist/variants/core/select.d.ts +5 -0
  374. package/dist/variants/core/select.d.ts.map +1 -0
  375. package/dist/variants/core/select.js +11 -0
  376. package/dist/variants/core/select.js.map +1 -0
  377. package/dist/variants/core/slider.d.ts +19 -0
  378. package/dist/variants/core/slider.d.ts.map +1 -0
  379. package/dist/variants/core/slider.js +36 -0
  380. package/dist/variants/core/slider.js.map +1 -0
  381. package/dist/variants/core/text.d.ts +38 -0
  382. package/dist/variants/core/text.d.ts.map +1 -0
  383. package/{src/variants/core/text.tsx → dist/variants/core/text.js} +4 -56
  384. package/dist/variants/core/text.js.map +1 -0
  385. package/dist/variants/core/textarea.d.ts +3 -0
  386. package/dist/variants/core/textarea.d.ts.map +1 -0
  387. package/dist/variants/core/textarea.js +20 -0
  388. package/dist/variants/core/textarea.js.map +1 -0
  389. package/dist/variants/core/toggle.d.ts +6 -0
  390. package/dist/variants/core/toggle.d.ts.map +1 -0
  391. package/dist/variants/core/toggle.js +41 -0
  392. package/dist/variants/core/toggle.js.map +1 -0
  393. package/dist/variants/core/treeselect.d.ts +4 -0
  394. package/dist/variants/core/treeselect.d.ts.map +1 -0
  395. package/dist/variants/core/treeselect.js +7 -0
  396. package/dist/variants/core/treeselect.js.map +1 -0
  397. package/dist/variants/helpers/selection-summary.d.ts +24 -0
  398. package/dist/variants/helpers/selection-summary.d.ts.map +1 -0
  399. package/dist/variants/helpers/selection-summary.js +105 -0
  400. package/dist/variants/helpers/selection-summary.js.map +1 -0
  401. package/dist/variants/index.d.ts +16 -0
  402. package/dist/variants/index.d.ts.map +1 -0
  403. package/{src/variants/index.ts → dist/variants/index.js} +7 -27
  404. package/dist/variants/index.js.map +1 -0
  405. package/dist/variants/registry.d.ts +19 -0
  406. package/dist/variants/registry.d.ts.map +1 -0
  407. package/dist/variants/registry.js +29 -0
  408. package/dist/variants/registry.js.map +1 -0
  409. package/dist/variants/select-shared.d.ts +1 -0
  410. package/dist/variants/select-shared.d.ts.map +1 -0
  411. package/dist/variants/select-shared.js +2 -0
  412. package/dist/variants/select-shared.js.map +1 -0
  413. package/{src/variants/shared.ts → dist/variants/shared.d.ts} +3 -22
  414. package/dist/variants/shared.d.ts.map +1 -0
  415. package/dist/variants/shared.js +3 -0
  416. package/dist/variants/shared.js.map +1 -0
  417. package/package.json +5 -5
  418. package/.scaffold-cache.json +0 -537
  419. package/src/.scaffold-cache.json +0 -544
  420. package/src/adapters/axios.ts +0 -117
  421. package/src/adapters/index.ts +0 -91
  422. package/src/adapters/inertia.ts +0 -187
  423. package/src/core/bound/observe-bound-field.ts +0 -172
  424. package/src/core/bound/wait-for-bound-field.ts +0 -57
  425. package/src/core/core-root.tsx +0 -72
  426. package/src/core/core-shell.tsx +0 -44
  427. package/src/core/errors/index.ts +0 -2
  428. package/src/core/hooks/use-button.ts +0 -220
  429. package/src/core/hooks/use-core-utility.ts +0 -0
  430. package/src/core/hooks/use-field.ts +0 -497
  431. package/src/core/hooks/use-optional-field.ts +0 -28
  432. package/src/core/index.ts +0 -0
  433. package/src/core/registry/binder-registry.ts +0 -82
  434. package/src/core/test.tsx +0 -17
  435. package/src/global.d.ts +0 -14
  436. package/src/input/input-field.tsx +0 -854
  437. package/src/input/input-layout-graph.ts +0 -230
  438. package/src/lib/get-global-countries.ts +0 -87
  439. package/src/lib/utils.ts +0 -6
  440. package/src/presets/index.ts +0 -0
  441. package/src/presets/shadcn-preset.ts +0 -0
  442. package/src/presets/shadcn-variants/checkbox.tsx +0 -849
  443. package/src/presets/shadcn-variants/chips.tsx +0 -756
  444. package/src/presets/shadcn-variants/color.tsx +0 -284
  445. package/src/presets/shadcn-variants/custom.tsx +0 -227
  446. package/src/presets/shadcn-variants/date.tsx +0 -796
  447. package/src/presets/shadcn-variants/file.tsx +0 -764
  448. package/src/presets/shadcn-variants/keyvalue.tsx +0 -556
  449. package/src/presets/shadcn-variants/multiselect.tsx +0 -1132
  450. package/src/presets/shadcn-variants/number.tsx +0 -176
  451. package/src/presets/shadcn-variants/password.tsx +0 -737
  452. package/src/presets/shadcn-variants/phone.tsx +0 -628
  453. package/src/presets/shadcn-variants/radio.tsx +0 -578
  454. package/src/presets/shadcn-variants/select.tsx +0 -956
  455. package/src/presets/shadcn-variants/slider.tsx +0 -622
  456. package/src/presets/shadcn-variants/text.tsx +0 -343
  457. package/src/presets/shadcn-variants/textarea.tsx +0 -66
  458. package/src/presets/shadcn-variants/toggle.tsx +0 -218
  459. package/src/presets/shadcn-variants/treeselect.tsx +0 -784
  460. package/src/presets/ui/badge.tsx +0 -46
  461. package/src/presets/ui/button.tsx +0 -60
  462. package/src/presets/ui/calendar.tsx +0 -214
  463. package/src/presets/ui/checkbox.tsx +0 -115
  464. package/src/presets/ui/custom.tsx +0 -0
  465. package/src/presets/ui/dialog.tsx +0 -141
  466. package/src/presets/ui/field.tsx +0 -246
  467. package/src/presets/ui/input-mask.tsx +0 -739
  468. package/src/presets/ui/input-otp.tsx +0 -77
  469. package/src/presets/ui/input.tsx +0 -1011
  470. package/src/presets/ui/label.tsx +0 -22
  471. package/src/presets/ui/number.tsx +0 -1370
  472. package/src/presets/ui/popover.tsx +0 -46
  473. package/src/presets/ui/radio-group.tsx +0 -43
  474. package/src/presets/ui/scroll-area.tsx +0 -56
  475. package/src/presets/ui/select.tsx +0 -190
  476. package/src/presets/ui/separator.tsx +0 -28
  477. package/src/presets/ui/slider.tsx +0 -61
  478. package/src/presets/ui/switch.tsx +0 -32
  479. package/src/presets/ui/textarea.tsx +0 -634
  480. package/src/presets/ui/time-dropdowns.tsx +0 -350
  481. package/src/schema/field-map.ts +0 -0
  482. package/src/schema/index.ts +0 -0
  483. package/src/schema/presets.ts +0 -0
  484. package/src/variants/core/checkbox.tsx +0 -54
  485. package/src/variants/core/chips.tsx +0 -22
  486. package/src/variants/core/color.tsx +0 -16
  487. package/src/variants/core/date.tsx +0 -25
  488. package/src/variants/core/file.tsx +0 -9
  489. package/src/variants/core/keyvalue.tsx +0 -12
  490. package/src/variants/core/multiselect.tsx +0 -28
  491. package/src/variants/core/number.tsx +0 -115
  492. package/src/variants/core/password.tsx +0 -35
  493. package/src/variants/core/phone.tsx +0 -16
  494. package/src/variants/core/radio.tsx +0 -38
  495. package/src/variants/core/select.tsx +0 -15
  496. package/src/variants/core/slider.tsx +0 -55
  497. package/src/variants/core/textarea.tsx +0 -22
  498. package/src/variants/core/toggle.tsx +0 -50
  499. package/src/variants/core/treeselect.tsx +0 -11
  500. package/src/variants/helpers/selection-summary.tsx +0 -236
  501. package/src/variants/registry.ts +0 -38
  502. package/src/variants/select-shared.ts +0 -0
  503. package/tsconfig.json +0 -14
@@ -0,0 +1,155 @@
1
+ import * as React from "react";
2
+ import type { ExtraFieldProps, VariantBaseProps } from "@/variants/shared";
3
+ type MaskMode = "raw" | "masked";
4
+ /**
5
+ * Mask-related props for the Shadcn text variant.
6
+ *
7
+ * These are forwarded to the underlying <Input>, which in turn wires
8
+ * them into the InputMask implementation.
9
+ */
10
+ export interface ShadcnTextMaskProps {
11
+ /**
12
+ * Mask pattern – Primereact style.
13
+ * Example: "99/99/9999", "(999) 999-9999"
14
+ */
15
+ mask?: string;
16
+ /**
17
+ * Per-symbol definitions for slots.
18
+ * Kept for future custom engine; not used by the current
19
+ * react-input-mask implementation.
20
+ */
21
+ maskDefinitions?: Record<string, RegExp>;
22
+ /**
23
+ * Character used to visually represent an empty slot.
24
+ * Default: "_".
25
+ */
26
+ slotChar?: string;
27
+ /**
28
+ * If true, when the value is effectively "empty" (no unmasked chars),
29
+ * we emit an empty string "" instead of a fully-masked placeholder.
30
+ *
31
+ * NOTE: This behaviour is implemented in the variant, not Input,
32
+ * so we preserve your existing semantics.
33
+ */
34
+ autoClear?: boolean;
35
+ /**
36
+ * Whether the *model* value is raw or masked.
37
+ *
38
+ * - "raw" or true → onValue receives unmasked value
39
+ * - "masked" or false/undefined → onValue receives full masked string
40
+ *
41
+ * NOTE: detail.raw is **always** the masked string.
42
+ */
43
+ unmask?: MaskMode | boolean;
44
+ /**
45
+ * Placeholder for future caret-mode logic when we go back
46
+ * to a custom engine. Currently unused, kept for API compatibility.
47
+ */
48
+ maskInsertMode?: "stream" | "caret";
49
+ }
50
+ /**
51
+ * Extra UI props for the Shadcn text input (pure HTML-level).
52
+ *
53
+ * These are forwarded straight to the underlying <Input />.
54
+ */
55
+ export type ShadcnTextUiProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, "value" | "defaultValue" | "onChange" | "size"> & {
56
+ /**
57
+ * Extra classes applied only to the *inner* input element
58
+ * (the actual <input>, not the wrapper box).
59
+ */
60
+ inputClassName?: string;
61
+ /**
62
+ * Fixed prefix rendered as part of the input value, NOT as an icon.
63
+ * E.g. "₦", "ID: ".
64
+ *
65
+ * The underlying <Input> will:
66
+ * - take the model value (without prefix),
67
+ * - render prefix + value,
68
+ * - expose the full visible string in event.target.value.
69
+ */
70
+ prefix?: string;
71
+ /**
72
+ * Fixed suffix rendered as part of the input value, NOT as an icon.
73
+ * E.g. "%", "kg".
74
+ */
75
+ suffix?: string;
76
+ /**
77
+ * If true (default), we strip the prefix from the value
78
+ * before emitting it via `onValue`.
79
+ */
80
+ stripPrefix?: boolean;
81
+ /**
82
+ * If true (default), we strip the suffix from the value
83
+ * before emitting it via `onValue`.
84
+ */
85
+ stripSuffix?: boolean;
86
+ } & ShadcnTextMaskProps;
87
+ /**
88
+ * Props for the Shadcn-based text variant.
89
+ *
90
+ * This is a *form* wrapper around the base <Input />:
91
+ * - Handles value ↔ ChangeDetail mapping.
92
+ * - Delegates all visual concerns (masking, affixes, icons, controls,
93
+ * size, density) to the Input component.
94
+ */
95
+ export type ShadcnTextVariantProps = ExtraFieldProps<VariantBaseProps<string | undefined>> & {
96
+ /**
97
+ * If true and there are controls, the input + controls share one box
98
+ * (borders, radius, focus states).
99
+ *
100
+ * Delegated to the underlying <Input />.
101
+ */
102
+ joinControls?: boolean;
103
+ /**
104
+ * When joinControls is true, whether the box styling extends over controls
105
+ * (true) or controls are visually separate (false).
106
+ */
107
+ extendBoxToControls?: boolean;
108
+ };
109
+ export declare const ShadcnTextVariant: React.ForwardRefExoticComponent<import("@/variants/shared").Extras & VariantBaseProps<string | undefined> & {
110
+ /**
111
+ * If true and there are controls, the input + controls share one box
112
+ * (borders, radius, focus states).
113
+ *
114
+ * Delegated to the underlying <Input />.
115
+ */
116
+ joinControls?: boolean;
117
+ /**
118
+ * When joinControls is true, whether the box styling extends over controls
119
+ * (true) or controls are visually separate (false).
120
+ */
121
+ extendBoxToControls?: boolean;
122
+ } & Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange" | "value" | "defaultValue" | "size"> & {
123
+ /**
124
+ * Extra classes applied only to the *inner* input element
125
+ * (the actual <input>, not the wrapper box).
126
+ */
127
+ inputClassName?: string;
128
+ /**
129
+ * Fixed prefix rendered as part of the input value, NOT as an icon.
130
+ * E.g. "₦", "ID: ".
131
+ *
132
+ * The underlying <Input> will:
133
+ * - take the model value (without prefix),
134
+ * - render prefix + value,
135
+ * - expose the full visible string in event.target.value.
136
+ */
137
+ prefix?: string;
138
+ /**
139
+ * Fixed suffix rendered as part of the input value, NOT as an icon.
140
+ * E.g. "%", "kg".
141
+ */
142
+ suffix?: string;
143
+ /**
144
+ * If true (default), we strip the prefix from the value
145
+ * before emitting it via `onValue`.
146
+ */
147
+ stripPrefix?: boolean;
148
+ /**
149
+ * If true (default), we strip the suffix from the value
150
+ * before emitting it via `onValue`.
151
+ */
152
+ stripSuffix?: boolean;
153
+ } & ShadcnTextMaskProps & React.RefAttributes<HTMLInputElement>>;
154
+ export default ShadcnTextVariant;
155
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/text.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAER,eAAe,EACf,gBAAgB,EACnB,MAAM,mBAAmB,CAAC;AAG3B,KAAK,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEzC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAE5B;;;OAGG;IACH,cAAc,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CACvC;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAChC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAC3C,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,MAAM,CACjD,GAAG;IACA;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,mBAAmB,CAAC;AAExB;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG,eAAe,CAChD,gBAAgB,CAAC,MAAM,GAAG,SAAS,CAAC,CACvC,GAAG;IACA;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,iBAAiB;IAf1B;;;;;OAKG;mBACY,OAAO;IAEtB;;;OAGG;0BACmB,OAAO;;IA3D7B;;;OAGG;qBACc,MAAM;IAEvB;;;;;;;;OAQG;aACM,MAAM;IAEf;;;OAGG;aACM,MAAM;IAEf;;;OAGG;kBACW,OAAO;IAErB;;;OAGG;kBACW,OAAO;gEAqOvB,CAAC;AAIH,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,98 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // src/presets/ui/shadcn-variants/text.tsx
3
+ // noinspection GrazieInspection
4
+ import * as React from "react";
5
+ import { Input } from "@/presets/ui/input";
6
+ export const ShadcnTextVariant = React.forwardRef(function ShadcnTextVariant(props, forwardedRef) {
7
+ const {
8
+ // form-level props
9
+ value, onValue, disabled, readOnly, required, error, size, density,
10
+ // extras from VariantBaseProps / ExtraFieldProps
11
+ leadingIcons, trailingIcons, icon, iconGap, leadingIconSpacing, trailingIconSpacing, leadingControl, trailingControl, leadingControlClassName, trailingControlClassName, px, py, ps, pe, pb, joinControls = true, extendBoxToControls = true,
12
+ // masking
13
+ mask, maskDefinitions, slotChar, autoClear, unmask, maskInsertMode,
14
+ // affixes
15
+ prefix, suffix, stripPrefix = true, stripSuffix = true,
16
+ // visual props
17
+ inputClassName, className, style, ...rest } = props;
18
+ const isMasked = Boolean(mask);
19
+ // ─────────────────────────────────────────────
20
+ // Plain change handler (unmasked <Input />)
21
+ // ─────────────────────────────────────────────
22
+ const handlePlainChange = React.useCallback((e) => {
23
+ const displayed = e.target.value ?? "";
24
+ let modelValue = displayed;
25
+ // strip prefix if configured
26
+ if (prefix && stripPrefix && modelValue.startsWith(prefix)) {
27
+ modelValue = modelValue.slice(prefix.length);
28
+ }
29
+ // strip suffix if configured
30
+ if (suffix && stripSuffix && modelValue.endsWith(suffix)) {
31
+ modelValue = modelValue.slice(0, modelValue.length - suffix.length);
32
+ }
33
+ const detail = {
34
+ source: "variant",
35
+ raw: displayed, // actual visible value (with affixes)
36
+ nativeEvent: e,
37
+ meta: {
38
+ prefix,
39
+ suffix,
40
+ stripPrefix,
41
+ stripSuffix,
42
+ model: modelValue,
43
+ },
44
+ };
45
+ onValue?.(modelValue, detail);
46
+ }, [onValue, prefix, suffix, stripPrefix, stripSuffix]);
47
+ // ─────────────────────────────────────────────
48
+ // Masked change handler (InputMask under <Input />)
49
+ // ─────────────────────────────────────────────
50
+ const handleMaskedChange = React.useCallback((e) => {
51
+ const maskedValue = e.value ?? "";
52
+ // Same heuristic as your original variant:
53
+ // "Unmasked" = characters that would normally be accepted by masks.
54
+ const unmaskedInner = maskedValue.match(/[0-9A-Za-z]/g)?.join("") ?? "";
55
+ const mode = unmask === true || unmask === "raw" ? "raw" : "masked";
56
+ // IMPORTANT: detail.raw is ALWAYS the masked value.
57
+ const detail = {
58
+ source: "variant",
59
+ raw: maskedValue,
60
+ nativeEvent: e.originalEvent,
61
+ meta: {
62
+ masked: maskedValue,
63
+ unmasked: unmaskedInner,
64
+ mode,
65
+ prefix,
66
+ suffix,
67
+ },
68
+ };
69
+ let emitValue = mode === "raw" ? unmaskedInner : maskedValue;
70
+ // autoClear: if nothing "real" was typed, treat as empty.
71
+ if (autoClear && unmaskedInner.length === 0) {
72
+ emitValue = "";
73
+ }
74
+ onValue?.(emitValue, detail);
75
+ }, [onValue, unmask, autoClear, prefix, suffix]);
76
+ // Variant-level "model" is always the raw value you store.
77
+ // The underlying <Input> is responsible for visually applying prefix/suffix
78
+ // or mask literals on top of this model.
79
+ const modelValue = value ?? "";
80
+ return (_jsx(Input, { ref: forwardedRef,
81
+ // visual & sizing
82
+ className: className, style: style, size: size, density: density, inputClassName: inputClassName,
83
+ // flags
84
+ disabled: disabled, readOnly: readOnly, required: required, "aria-invalid": error ? "true" : undefined,
85
+ // masking
86
+ mask: mask, maskDefinitions: maskDefinitions, slotChar: slotChar, autoClear: autoClear, unmask: unmask, maskInsertMode: maskInsertMode,
87
+ // affixes (value-level, not icons)
88
+ prefix: prefix, suffix: suffix, stripPrefix: stripPrefix, stripSuffix: stripSuffix,
89
+ // icons & controls
90
+ leadingIcons: leadingIcons, trailingIcons: trailingIcons, icon: icon, iconGap: iconGap, leadingIconSpacing: leadingIconSpacing, trailingIconSpacing: trailingIconSpacing, leadingControl: leadingControl, trailingControl: trailingControl, leadingControlClassName: leadingControlClassName, trailingControlClassName: trailingControlClassName, joinControls: joinControls, extendBoxToControls: extendBoxToControls, px: px, py: py, ps: ps, pe: pe, pb: pb,
91
+ // value & event mapping
92
+ value: modelValue, onChange: isMasked
93
+ ? handleMaskedChange
94
+ : handlePlainChange, ...rest }));
95
+ });
96
+ ShadcnTextVariant.displayName = "ShadcnTextVariant";
97
+ export default ShadcnTextVariant;
98
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/text.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ import type { VariantBaseProps } from "@/variants/shared";
3
+ import type { TextareaProps as UiTextareaProps } from "@/presets/ui/textarea";
4
+ type TextareaValue = string | undefined;
5
+ type BaseProps = VariantBaseProps<TextareaValue>;
6
+ /**
7
+ * Full props for the Shadcn-based textarea variant.
8
+ *
9
+ * - Reuses all UI-level behaviour from `Textarea` (autoResize, upperControl,
10
+ * leading/trailing controls, icons, size/density, padding knobs, etc.).
11
+ * - Takes over `value` / `onChange` so it can emit through `onValue` with
12
+ * a `ChangeDetail`.
13
+ */
14
+ export interface ShadcnTextareaVariantProps extends Omit<UiTextareaProps, "value" | "defaultValue" | "onChange">, Pick<BaseProps, "value" | "onValue" | "error"> {
15
+ }
16
+ export declare const ShadcnTextareaVariant: React.ForwardRefExoticComponent<ShadcnTextareaVariantProps & React.RefAttributes<HTMLTextAreaElement>>;
17
+ export default ShadcnTextareaVariant;
18
+ //# sourceMappingURL=textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/textarea.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,mBAAmB,CAAC;AAExE,OAAO,KAAK,EAAE,aAAa,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE9E,KAAK,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AACxC,KAAK,SAAS,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,WAAW,0BACd,SAAQ,IAAI,CAAC,eAAe,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,CAAC,EACpE,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;CAAI;AAErD,eAAO,MAAM,qBAAqB,wGAsChC,CAAC;AAIH,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // src/presets/shadcn-variants/textarea.tsx
3
+ import * as React from "react";
4
+ import { Textarea } from "@/presets/ui/textarea";
5
+ export const ShadcnTextareaVariant = React.forwardRef(function ShadcnTextareaVariant(props, ref) {
6
+ const { value, onValue, error,
7
+ // everything else goes straight to the UI Textarea
8
+ ...rest } = props;
9
+ const handleChange = React.useCallback((event) => {
10
+ const next = event.target.value ?? "";
11
+ const detail = {
12
+ source: "variant",
13
+ raw: next,
14
+ nativeEvent: event,
15
+ meta: undefined,
16
+ };
17
+ // empty string → undefined, same convention as text/chips
18
+ onValue?.(next.length ? next : undefined, detail);
19
+ }, [onValue]);
20
+ return (_jsx(Textarea, { ref: ref, ...rest, value: value ?? "", onChange: handleChange, "aria-invalid": error ? "true" : undefined }));
21
+ });
22
+ ShadcnTextareaVariant.displayName = "ShadcnTextareaVariant";
23
+ export default ShadcnTextareaVariant;
24
+ //# sourceMappingURL=textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.js","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/textarea.tsx"],"names":[],"mappings":";AAAA,2CAA2C;AAE3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAkBjD,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAGnD,SAAS,qBAAqB,CAAC,KAAK,EAAE,GAAG;IACxC,MAAM,EACH,KAAK,EACL,OAAO,EACP,KAAK;IACL,mDAAmD;IACnD,GAAG,IAAI,EACT,GAAG,KAAK,CAAC;IAEV,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CACnC,CAAC,KAA6C,EAAE,EAAE;QAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QAEtC,MAAM,MAAM,GAAiB;YAC1B,MAAM,EAAE,SAAS;YACjB,GAAG,EAAE,IAAI;YACT,WAAW,EAAE,KAAK;YAClB,IAAI,EAAE,SAAS;SACjB,CAAC;QAEF,0DAA0D;QAC1D,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC,EACD,CAAC,OAAO,CAAC,CACX,CAAC;IAEF,OAAO,CACJ,KAAC,QAAQ,IACN,GAAG,EAAE,GAAG,KACJ,IAAI,EACR,KAAK,EAAE,KAAK,IAAI,EAAE,EAClB,QAAQ,EAAE,YAAY,kBACR,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GACzC,CACJ,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,qBAAqB,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAE5D,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,61 @@
1
+ import * as React from "react";
2
+ import type { VariantBaseProps } from "@/variants/shared";
3
+ import { Switch } from "@/presets/ui/switch";
4
+ type ToggleValue = boolean | undefined;
5
+ type BaseProps = VariantBaseProps<ToggleValue>;
6
+ type Size = "sm" | "md" | "lg";
7
+ type Density = "default" | "dense";
8
+ /**
9
+ * UI props specific to the Shadcn-based toggle.
10
+ *
11
+ * This uses Switch as the underlying control, but we keep
12
+ * the API surface small and focused.
13
+ */
14
+ export interface ShadcnToggleUiProps extends Omit<React.ComponentProps<typeof Switch>, "checked" | "onCheckedChange" | "className"> {
15
+ /**
16
+ * Visual size of the switch / text.
17
+ * Default: "md".
18
+ */
19
+ size?: Size;
20
+ /**
21
+ * Row density (vertical padding & gap).
22
+ * Default: "default".
23
+ */
24
+ density?: Density;
25
+ /**
26
+ * Place the switch on the left or right of the state text.
27
+ * Default: "left".
28
+ */
29
+ controlPlacement?: "left" | "right";
30
+ /**
31
+ * Optional state text shown next to the control when ON.
32
+ */
33
+ onText?: React.ReactNode;
34
+ /**
35
+ * Optional state text shown next to the control when OFF.
36
+ */
37
+ offText?: React.ReactNode;
38
+ /**
39
+ * Wrapper class for the whole toggle row.
40
+ */
41
+ className?: string;
42
+ /**
43
+ * Extra classes for the Switch root.
44
+ */
45
+ switchClassName?: string;
46
+ /**
47
+ * Extra classes for the Switch thumb.
48
+ * (Your patched Switch should support thumbClassName.)
49
+ */
50
+ switchThumbClassName?: string;
51
+ }
52
+ /**
53
+ * Full props for the Shadcn-based toggle variant.
54
+ *
55
+ * We only pick value/onValue/error from the variant base props;
56
+ * everything else (id, disabled, aria-*) flows via Switch props.
57
+ */
58
+ export type ShadcnToggleVariantProps = ShadcnToggleUiProps & Pick<BaseProps, "value" | "onValue" | "error">;
59
+ export declare const ShadcnToggleVariant: React.ForwardRefExoticComponent<Omit<ShadcnToggleVariantProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
60
+ export default ShadcnToggleVariant;
61
+ //# sourceMappingURL=toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/toggle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,KAAK,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AACvC,KAAK,SAAS,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;AAE/C,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/B,KAAK,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,WAAW,mBACd,SAAQ,IAAI,CACT,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EACnC,SAAS,GAAG,iBAAiB,GAAG,WAAW,CAC7C;IACD;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEpC;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,GACvD,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;AAsClD,eAAO,MAAM,mBAAmB,iHAkG9B,CAAC;AAIH,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // src/presets/shadcn-variants/toggle.tsx
3
+ import * as React from "react";
4
+ import { cn } from "@/lib/utils";
5
+ import { Switch } from "@/presets/ui/switch"; // adjust path if your Switch lives elsewhere
6
+ // ─────────────────────────────────────────────
7
+ // Helpers
8
+ // ─────────────────────────────────────────────
9
+ function rowGap(density) {
10
+ return density === "dense" ? "gap-2" : "gap-3";
11
+ }
12
+ function rowPadding(density) {
13
+ return density === "dense" ? "py-0.5" : "py-1";
14
+ }
15
+ function textSize(size) {
16
+ if (size === "sm")
17
+ return "text-sm";
18
+ if (size === "lg")
19
+ return "text-base";
20
+ return "text-sm";
21
+ }
22
+ // Map size → Switch track + thumb sizing
23
+ function switchRootSize(size) {
24
+ if (size === "sm")
25
+ return "h-5 w-9";
26
+ if (size === "lg")
27
+ return "h-7 w-12";
28
+ // default shadcn-ish base
29
+ return "h-[1.15rem] w-8";
30
+ }
31
+ function switchThumbSize(size) {
32
+ if (size === "sm")
33
+ return "size-3.5";
34
+ if (size === "lg")
35
+ return "size-5";
36
+ return "size-4";
37
+ }
38
+ // ─────────────────────────────────────────────
39
+ // Component
40
+ // ─────────────────────────────────────────────
41
+ export const ShadcnToggleVariant = React.forwardRef(function ShadcnToggleVariant(props, _ref) {
42
+ const {
43
+ // variant bits
44
+ value, onValue, error,
45
+ // UI config
46
+ size = "md", density = "default", controlPlacement = "left", onText, offText, className, switchClassName, switchThumbClassName,
47
+ // Switch passthroughs
48
+ disabled, id, "aria-describedby": describedBy, ...restSwitchProps } = props;
49
+ const checked = !!value;
50
+ const handleToggle = React.useCallback((next) => {
51
+ const nextVal = !!next;
52
+ const detail = {
53
+ source: "variant",
54
+ raw: nextVal,
55
+ nativeEvent: undefined,
56
+ meta: undefined,
57
+ };
58
+ onValue?.(nextVal, detail);
59
+ }, [onValue]);
60
+ const rowCls = cn("flex w-fit items-center", rowGap(density), rowPadding(density));
61
+ const stateText = onText != null || offText != null ? (_jsx("span", { className: cn("select-none text-muted-foreground", textSize(size)), children: checked ? onText : offText })) : null;
62
+ const switchEl = (_jsx(Switch, { id: id, checked: checked, onCheckedChange: handleToggle, disabled: disabled, "aria-describedby": describedBy, "aria-checked": checked, className: cn(switchRootSize(size), switchClassName), thumbClassName: cn(switchThumbSize(size), switchThumbClassName), ...restSwitchProps }));
63
+ return (_jsx("div", { "data-slot": "toggle-field", className: cn("w-fit", disabled && "opacity-50 cursor-not-allowed", className), "aria-disabled": disabled || undefined, "aria-invalid": error ? "true" : undefined, children: _jsx("div", { className: rowCls, children: controlPlacement === "left" ? (_jsxs(_Fragment, { children: [switchEl, stateText] })) : (_jsxs(_Fragment, { children: [stateText, switchEl] })) }) }));
64
+ });
65
+ ShadcnToggleVariant.displayName = "ShadcnToggleVariant";
66
+ export default ShadcnToggleVariant;
67
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/toggle.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import * as React from "react";
2
+ import type { VariantBaseProps } from "@/variants/shared";
3
+ type TreeKey = string | number;
4
+ type TreeValue = TreeKey | TreeKey[] | undefined;
5
+ export type TreeSelectOption = TreeKey | {
6
+ label?: React.ReactNode;
7
+ value?: TreeKey;
8
+ description?: React.ReactNode;
9
+ disabled?: boolean;
10
+ icon?: React.ReactNode;
11
+ children?: TreeSelectOption[];
12
+ [key: string]: any;
13
+ };
14
+ type NormalizedTreeItem = {
15
+ key: string;
16
+ value: TreeKey;
17
+ labelNode: React.ReactNode;
18
+ labelText: string;
19
+ description?: React.ReactNode;
20
+ disabled?: boolean;
21
+ icon?: React.ReactNode;
22
+ level: number;
23
+ parentValue?: TreeKey;
24
+ path: TreeKey[];
25
+ hasChildren: boolean;
26
+ children: NormalizedTreeItem[];
27
+ raw: TreeSelectOption;
28
+ };
29
+ export interface ShadcnTreeSelectVariantProps extends Pick<VariantBaseProps<TreeValue>, "value" | "onValue" | "error" | "disabled" | "readOnly" | "size" | "density"> {
30
+ options?: TreeSelectOption[];
31
+ /**
32
+ * If true, allows multiple selection (checkboxes).
33
+ * If false, allows single selection (no checkboxes, closes on select).
34
+ * Default: true
35
+ */
36
+ multiple?: boolean;
37
+ autoCap?: boolean;
38
+ optionLabel?: string | ((item: TreeSelectOption) => React.ReactNode);
39
+ optionValue?: string | ((item: TreeSelectOption) => TreeKey);
40
+ optionDescription?: string | ((item: TreeSelectOption) => React.ReactNode);
41
+ optionDisabled?: string | ((item: TreeSelectOption) => boolean);
42
+ optionIcon?: string | ((item: TreeSelectOption) => React.ReactNode);
43
+ optionKey?: string | ((item: TreeSelectOption, index: number) => React.Key);
44
+ searchable?: boolean;
45
+ searchPlaceholder?: string;
46
+ emptyLabel?: React.ReactNode;
47
+ emptySearchText?: React.ReactNode;
48
+ clearable?: boolean;
49
+ placeholder?: React.ReactNode;
50
+ className?: string;
51
+ triggerClassName?: string;
52
+ contentClassName?: string;
53
+ renderOption?: (ctx: {
54
+ item: NormalizedTreeItem;
55
+ selected: boolean;
56
+ index: number;
57
+ option: React.ReactNode;
58
+ }) => React.ReactNode;
59
+ renderValue?: (ctx: {
60
+ selectedItems: NormalizedTreeItem[];
61
+ placeholder?: React.ReactNode;
62
+ }) => React.ReactNode;
63
+ expandAll?: boolean;
64
+ defaultExpandedValues?: TreeKey[];
65
+ leafOnly?: boolean;
66
+ leadingIcons?: React.ReactNode[];
67
+ trailingIcons?: React.ReactNode[];
68
+ icon?: React.ReactNode;
69
+ iconGap?: number;
70
+ leadingIconSpacing?: number;
71
+ trailingIconSpacing?: number;
72
+ leadingControl?: React.ReactNode;
73
+ trailingControl?: React.ReactNode;
74
+ leadingControlClassName?: string;
75
+ trailingControlClassName?: string;
76
+ joinControls?: boolean;
77
+ extendBoxToControls?: boolean;
78
+ }
79
+ export declare const ShadcnTreeSelectVariant: React.ForwardRefExoticComponent<ShadcnTreeSelectVariantProps & React.RefAttributes<HTMLButtonElement>>;
80
+ export default ShadcnTreeSelectVariant;
81
+ //# sourceMappingURL=treeselect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"treeselect.d.ts","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/treeselect.tsx"],"names":[],"mappings":"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"}