@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
@@ -1,350 +0,0 @@
1
- import * as React from "react";
2
- import { cn } from "@/lib/utils";
3
- import {
4
- Select,
5
- SelectTrigger,
6
- SelectValue,
7
- SelectContent,
8
- SelectItem,
9
- } from "@/presets/ui/select";
10
-
11
- export interface TimeDropdownsProps {
12
- /**
13
- * Current date-time value.
14
- * Only the time portion will be modified; date part is preserved.
15
- */
16
- value: Date | undefined;
17
-
18
- /**
19
- * Called whenever any of the time parts change.
20
- */
21
- onChange(next: Date | undefined): void;
22
-
23
- /**
24
- * Whether to show seconds dropdown.
25
- * Default: false.
26
- */
27
- showSeconds?: boolean;
28
-
29
- /**
30
- * Step between minutes in the dropdown.
31
- * Default: 5.
32
- */
33
- minuteStep?: number;
34
-
35
- /**
36
- * Step between seconds in the dropdown.
37
- * Default: 5.
38
- */
39
- secondStep?: number;
40
-
41
- /**
42
- * If true, show 12-hour clock with AM/PM toggle.
43
- * If false, show 24-hour clock (00–23).
44
- * Default: false (24-hour).
45
- */
46
- use12Hour?: boolean;
47
-
48
- /**
49
- * Optional label to show above or beside the dropdowns.
50
- */
51
- label?: React.ReactNode;
52
-
53
- /**
54
- * Custom className for the outer wrapper.
55
- */
56
- className?: string;
57
-
58
- /**
59
- * Custom className for each SelectTrigger (hours/minutes/seconds).
60
- */
61
- triggerClassName?: string;
62
-
63
- /**
64
- * Compact / normal layout toggle.
65
- * Just a quick spacing switch for now.
66
- */
67
- density?: "compact" | "normal";
68
- }
69
-
70
- function pad2(n: number): string {
71
- return n.toString().padStart(2, "0");
72
- }
73
-
74
- function buildMinuteOptions(step: number): string[] {
75
- const items: string[] = [];
76
- for (let m = 0; m < 60; m += step) {
77
- items.push(pad2(m));
78
- }
79
- return items;
80
- }
81
-
82
- function buildSecondOptions(step: number): string[] {
83
- const items: string[] = [];
84
- for (let s = 0; s < 60; s += step) {
85
- items.push(pad2(s));
86
- }
87
- return items;
88
- }
89
-
90
- function buildHourOptions24(): string[] {
91
- const items: string[] = [];
92
- for (let h = 0; h < 24; h++) {
93
- items.push(pad2(h));
94
- }
95
- return items;
96
- }
97
-
98
- function buildHourOptions12(): string[] {
99
- const items: string[] = [];
100
- for (let h = 1; h <= 12; h++) {
101
- items.push(h.toString());
102
- }
103
- return items;
104
- }
105
-
106
- /**
107
- * Safely create a new Date instance with updated time parts,
108
- * preserving the original date portion when possible.
109
- */
110
- function withTime(
111
- base: Date | undefined,
112
- opts: { hours?: number; minutes?: number; seconds?: number },
113
- ): Date {
114
- const src = base ? new Date(base.getTime()) : new Date();
115
- const h = opts.hours ?? src.getHours();
116
- const m = opts.minutes ?? src.getMinutes();
117
- const s = opts.seconds ?? src.getSeconds();
118
- src.setHours(h, m, s, 0);
119
- return src;
120
- }
121
-
122
- /**
123
- * Drop-in time dropdown cluster for use in the date popover.
124
- *
125
- * Renders hour / minute (and optionally second) Selects plus
126
- * an AM/PM toggle when `use12Hour` is true.
127
- */
128
- export const TimeDropdowns: React.FC<TimeDropdownsProps> = (props) => {
129
- const {
130
- value,
131
- onChange,
132
- showSeconds = false,
133
- minuteStep = 5,
134
- secondStep = 5,
135
- use12Hour = false,
136
- label,
137
- className,
138
- triggerClassName,
139
- density = "normal",
140
- } = props;
141
-
142
- const minuteOptions = React.useMemo(
143
- () => buildMinuteOptions(minuteStep),
144
- [minuteStep],
145
- );
146
- const secondOptions = React.useMemo(
147
- () => buildSecondOptions(secondStep),
148
- [secondStep],
149
- );
150
-
151
- const hourOptions = React.useMemo(
152
- () => (use12Hour ? buildHourOptions12() : buildHourOptions24()),
153
- [use12Hour],
154
- );
155
-
156
- // Derive current parts from value.
157
- let hours24 = value ? value.getHours() : 0;
158
- let minutes = value ? value.getMinutes() : 0;
159
- let seconds = value ? value.getSeconds() : 0;
160
-
161
- let hourDisplay: string;
162
- let period: "am" | "pm" | null = null;
163
-
164
- if (use12Hour) {
165
- period = hours24 >= 12 ? "pm" : "am";
166
- let h12 = hours24 % 12;
167
- if (h12 === 0) h12 = 12;
168
- hourDisplay = h12.toString();
169
- } else {
170
- hourDisplay = pad2(hours24);
171
- }
172
-
173
- const minuteDisplay = pad2(minutes);
174
- const secondDisplay = pad2(seconds);
175
-
176
- const baseTriggerClasses = cn(
177
- "h-8 w-[4.2rem] px-2 py-0 text-xs",
178
- "whitespace-nowrap",
179
- "border-input bg-background",
180
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
181
- );
182
-
183
- const triggerClasses = cn(
184
- baseTriggerClasses,
185
- triggerClassName,
186
- density === "compact" && "h-7 text-[0.7rem] px-1.5",
187
- );
188
-
189
- const gapClass = density === "compact" ? "gap-1" : "gap-2";
190
-
191
- const handleHourChange = (hStr: string) => {
192
- let nextHours24: number;
193
-
194
- if (use12Hour) {
195
- const h12 = parseInt(hStr, 10) || 0;
196
- if (!period) {
197
- // fallback: assume AM
198
- nextHours24 = h12 % 12;
199
- } else {
200
- if (period === "am") {
201
- nextHours24 = h12 % 12; // 12am → 0
202
- } else {
203
- nextHours24 = h12 % 12 + 12; // 12pm → 12, 1pm → 13
204
- }
205
- }
206
- } else {
207
- nextHours24 = parseInt(hStr, 10) || 0;
208
- }
209
-
210
- const nextDate = withTime(value, { hours: nextHours24 });
211
- onChange(nextDate);
212
- };
213
-
214
- const handleMinuteChange = (mStr: string) => {
215
- const m = parseInt(mStr, 10) || 0;
216
- const nextDate = withTime(value, { minutes: m });
217
- onChange(nextDate);
218
- };
219
-
220
- const handleSecondChange = (sStr: string) => {
221
- const s = parseInt(sStr, 10) || 0;
222
- const nextDate = withTime(value, { seconds: s });
223
- onChange(nextDate);
224
- };
225
-
226
- const handlePeriodChange = (p: string) => {
227
- if (!use12Hour) return;
228
- const nextPeriod = p === "pm" ? "pm" : "am";
229
-
230
- // Convert from current hours24 + new period.
231
- let h12 = hours24 % 12;
232
- if (h12 === 0) h12 = 12;
233
-
234
- let nextHours24: number;
235
- if (nextPeriod === "am") {
236
- nextHours24 = h12 % 12; // 12am → 0
237
- } else {
238
- nextHours24 = h12 % 12 + 12; // 12pm → 12, etc.
239
- }
240
-
241
- const nextDate = withTime(value, { hours: nextHours24 });
242
- onChange(nextDate);
243
- };
244
-
245
- return (
246
- <div
247
- className={cn(
248
- "flex w-full flex-col gap-2",
249
- density === "compact" && "gap-1",
250
- className,
251
- )}
252
- data-slot="time-dropdowns"
253
- >
254
- {label && (
255
- <div className="text-xs font-medium text-muted-foreground">
256
- {label}
257
- </div>
258
- )}
259
-
260
- <div
261
- className={cn(
262
- "flex w-full items-center",
263
- gapClass,
264
- )}
265
- data-slot="time-dropdowns-row"
266
- >
267
- {/* Hour */}
268
- <Select value={hourDisplay} onValueChange={handleHourChange}>
269
- <SelectTrigger
270
- className={triggerClasses}
271
- data-slot="time-hour"
272
- >
273
- <SelectValue placeholder="HH" />
274
- </SelectTrigger>
275
- <SelectContent>
276
- {hourOptions.map((h) => (
277
- <SelectItem key={h} value={h}>
278
- {use12Hour ? h.padStart(2, " ") : pad2(Number(h))}
279
- </SelectItem>
280
- ))}
281
- </SelectContent>
282
- </Select>
283
-
284
- {/* Minute */}
285
- <Select
286
- value={minuteDisplay}
287
- onValueChange={handleMinuteChange}
288
- >
289
- <SelectTrigger
290
- className={triggerClasses}
291
- data-slot="time-minute"
292
- >
293
- <SelectValue placeholder="MM" />
294
- </SelectTrigger>
295
- <SelectContent>
296
- {minuteOptions.map((m) => (
297
- <SelectItem key={m} value={m}>
298
- {m}
299
- </SelectItem>
300
- ))}
301
- </SelectContent>
302
- </Select>
303
-
304
- {/* Second (optional) */}
305
- {showSeconds && (
306
- <Select
307
- value={secondDisplay}
308
- onValueChange={handleSecondChange}
309
- >
310
- <SelectTrigger
311
- className={triggerClasses}
312
- data-slot="time-second"
313
- >
314
- <SelectValue placeholder="SS" />
315
- </SelectTrigger>
316
- <SelectContent>
317
- {secondOptions.map((s) => (
318
- <SelectItem key={s} value={s}>
319
- {s}
320
- </SelectItem>
321
- ))}
322
- </SelectContent>
323
- </Select>
324
- )}
325
-
326
- {/* AM/PM (optional) */}
327
- {use12Hour && (
328
- <Select
329
- value={period ?? "am"}
330
- onValueChange={handlePeriodChange}
331
- >
332
- <SelectTrigger
333
- className={cn(
334
- triggerClasses,
335
- "w-[3.8rem]",
336
- )}
337
- data-slot="time-period"
338
- >
339
- <SelectValue />
340
- </SelectTrigger>
341
- <SelectContent>
342
- <SelectItem value="am">AM</SelectItem>
343
- <SelectItem value="pm">PM</SelectItem>
344
- </SelectContent>
345
- </Select>
346
- )}
347
- </div>
348
- </div>
349
- );
350
- };
File without changes
File without changes
File without changes
@@ -1,54 +0,0 @@
1
- // src/variants/core/checkbox.ts
2
-
3
- import type { VariantModuleFor } from "@/schema/variant";
4
- import { ShadcnCheckboxVariant } from "@/presets/shadcn-variants/checkbox";
5
- import type {
6
- ShadcnCheckboxVariantPublicProps,
7
- CheckboxVariantPublicValue,
8
- } from "@/presets/shadcn-variants/checkbox";
9
- import type { VariantBaseProps } from "@/variants/shared";
10
- import { toggleLayoutDefaults } from "./toggle";
11
-
12
- /**
13
- * Public props type you can import elsewhere:
14
- *
15
- * import type { CheckboxVariantProps } from "@/variants/core/checkbox";
16
- */
17
- export type CheckboxVariantProps = ShadcnCheckboxVariantPublicProps;
18
-
19
- /**
20
- * Concrete Variant component type, if you need it:
21
- *
22
- * VariantBaseProps<CheckboxVariantPublicValue> & CheckboxVariantProps
23
- */
24
- type CheckboxVariantComponentProps =
25
- VariantBaseProps<CheckboxVariantPublicValue> & CheckboxVariantProps;
26
-
27
- /**
28
- * Runtime module for the "checkbox" variant.
29
- *
30
- * This wires the Shadcn preset into the core registry with sensible defaults.
31
- */
32
- export const checkboxModule: VariantModuleFor<"checkbox"> = {
33
- variant: "checkbox",
34
-
35
- // ShadcnCheckboxVariant is generic; we fix it to the public aliases
36
- // via this cast. At call sites you'll still get strong typing because
37
- // the registry types know the concrete value/props.
38
- Variant: ShadcnCheckboxVariant as unknown as React.ComponentType<CheckboxVariantComponentProps>,
39
-
40
- resolveLayout({ props }) {
41
- if (props.single) {
42
- return toggleLayoutDefaults
43
- }
44
-
45
- return {};
46
- },
47
-
48
- meta: {
49
- label: "Checkbox",
50
- description:
51
- "Single or group checkboxes with optional per-item tri-state support.",
52
- tags: ["checkbox", "group", "boolean", "tri-state"],
53
- },
54
- };
@@ -1,22 +0,0 @@
1
- import ShadcnChipsVariant from "@/presets/shadcn-variants/chips";
2
- import { VariantModuleFor } from "@/schema/variant";
3
-
4
-
5
- export const chipVariant: VariantModuleFor<"chips"> = {
6
- variant: "chips",
7
- Variant: ShadcnChipsVariant as any,
8
- // Optional layout defaults – tweak as you like
9
- defaults: {
10
- layout: {
11
- fullWidth: true,
12
- // You can set defaultSize/defaultDensity here if you want:
13
- // defaultSize: "md",
14
- // defaultDensity: "normal",
15
- },
16
- },
17
- meta: {
18
- label: "Chips",
19
- description: "Chips input allowing multiple selections.",
20
- tags: ["chips", "multi-select", "tags"],
21
- },
22
- }
@@ -1,16 +0,0 @@
1
- // ———————————————————————————————
2
- // VariantModule wiring
3
-
4
- import { ShadcnColorVariant } from "@/presets/shadcn-variants/color";
5
- import { VariantModule } from "@/schema/variant";
6
-
7
- // ———————————————————————————————
8
- export const ColorVariantModule: VariantModule<"color"> = {
9
- variant: "color",
10
- Variant: ShadcnColorVariant,
11
- meta: {
12
- label: "Phone",
13
- description: "Phone number input with country code and masking.",
14
- tags: ["phone", "tel", "contact"],
15
- },
16
- };
@@ -1,25 +0,0 @@
1
- import ShadcnDateVariant from "@/presets/shadcn-variants/date";
2
- import { VariantModuleFor } from "@/schema/variant";
3
-
4
-
5
- export const dateVariant: VariantModuleFor<"date"> = {
6
- variant: "date",
7
- Variant: ShadcnDateVariant as any,
8
-
9
- // Optional layout defaults – tweak as you like
10
- defaults: {
11
- layout: {
12
- fullWidth: true,
13
- // You can set defaultSize/defaultDensity here if you want:
14
- // defaultSize: "md",
15
- // defaultDensity: "normal",
16
- },
17
- },
18
-
19
- meta: {
20
- label: "Date",
21
- description:
22
- "Date input with calendar picker.",
23
- tags: ["date", "calendar", "picker"],
24
- },
25
- }
@@ -1,9 +0,0 @@
1
- import ShadcnFileVariant from "@/presets/shadcn-variants/file";
2
- import { VariantModule } from "@/schema/variant";
3
-
4
-
5
-
6
- export const fileManagerModule: VariantModule<'file'> = {
7
- Variant: ShadcnFileVariant as any,
8
- variant: 'file'
9
- }
@@ -1,12 +0,0 @@
1
- import ShadcnKeyValueVariant from "@/presets/shadcn-variants/keyvalue";
2
- import { VariantModule } from "@/schema/variant";
3
-
4
-
5
- export const keyValueModule: VariantModule<'keyvalue'> = {
6
- variant: 'keyvalue',
7
- Variant: ShadcnKeyValueVariant,
8
-
9
- meta: {
10
- label: ''
11
- }
12
- }
@@ -1,28 +0,0 @@
1
-
2
-
3
- // src/variants/multi-select.ts
4
-
5
- import type { VariantModule } from "@/schema/variant";
6
- import {
7
- ShadcnMultiSelectVariant,
8
- type ShadcnMultiSelectVariantProps,
9
- } from "@/presets/shadcn-variants/multiselect";
10
-
11
- export type MultiSelectValue = (string | number)[] | undefined;
12
-
13
-
14
- /**
15
- * Variant module for "multi-select".
16
- *
17
- * No defaults / layout overrides here — layout is driven by InputField +
18
- * host overrides, same as your other variants.
19
- */
20
- export const multiSelectVariantModule: VariantModule<"multi-select"> = {
21
- variant: "multi-select",
22
- Variant: ShadcnMultiSelectVariant,
23
- meta: {
24
-
25
- }
26
- };
27
-
28
- export default multiSelectVariantModule;
@@ -1,115 +0,0 @@
1
- // src/variants/core/text.tsx
2
-
3
- import * as React from "react";
4
-
5
- import type { Dict } from "@/schema/core";
6
- import type { VariantModule } from "@/schema/variant";
7
- import type { ValidateResult } from "@/schema/input-field";
8
- import { ShadcnTextVariant } from "@/presets/shadcn-variants/text";
9
- import type { ShadcnTextUiProps } from "@/presets/shadcn-variants/text";
10
- import { ShadcnNumberVariant, ShadcnNumberVariantProps } from "@/presets/shadcn-variants/number";
11
-
12
- /**
13
- * Text variant props (core layer).
14
- *
15
- * - Extends Dict so it can cleanly participate in the Variants registry.
16
- * - Extends the Shadcn UI props so the core variant can pass everything
17
- * straight through to the underlying visual component.
18
- *
19
- * This is where we hang *semantic* flags that drive validation.
20
- */
21
- export interface TextVariantProps extends Dict, ShadcnTextUiProps {
22
- /**
23
- * If true, the value will be trimmed before validation.
24
- * (Visual value is still whatever the user types; this is just for
25
- * validation semantics.)
26
- */
27
- trim?: boolean;
28
-
29
- /**
30
- * Minimum allowed string length (after optional trimming).
31
- */
32
- minLength?: number;
33
-
34
- /**
35
- * Maximum allowed string length (after optional trimming).
36
- */
37
- maxLength?: number;
38
- }
39
-
40
- /**
41
- * Simple validation helper for the text variant.
42
- */
43
- function validateText(
44
- value: number | undefined,
45
- ctx: {
46
- required?: boolean;
47
- props: ShadcnNumberVariantProps;
48
- }
49
- ): ValidateResult {
50
- const { required, props } = ctx;
51
- const { minLength, maxLength } = props;
52
-
53
- const raw = (value ?? "") + "";
54
- const v = raw.trim();
55
-
56
- // required
57
- if (required && v.length === 0) {
58
- return "This field is required.";
59
- }
60
-
61
- // minLength
62
- if (typeof minLength === "number" && v.length > 0 && v.length < minLength) {
63
- return `Please enter at least ${minLength} characters.`;
64
- }
65
-
66
- // maxLength
67
- if (typeof maxLength === "number" && v.length > maxLength) {
68
- return `Please enter no more than ${maxLength} characters.`;
69
- }
70
-
71
- return true;
72
- }
73
-
74
- /**
75
- * Core text variant module.
76
- *
77
- * - Uses ShadcnTextVariant as the visual component.
78
- * - Adds simple length-based validation.
79
- * - Provides layout defaults for InputField to use.
80
- */
81
- export const numberVariant: VariantModule<"number"> = {
82
- variant: "number",
83
-
84
- // Visual component: Shadcn-based text input
85
- Variant: ShadcnNumberVariant as any,
86
-
87
- // Validation logic (runs before/alongside per-field onValidate)
88
- validate(value, { required, props, field, form }) {
89
- // field + form are available if you need them later.
90
- return validateText(value, { required, props });
91
- },
92
-
93
- // Layout defaults for this variant
94
- defaults: {
95
- layout: {
96
- labelPlacement: "top",
97
- sublabelPlacement: "right",
98
- descriptionPlacement: "below",
99
- helpTextPlacement: "below",
100
- errorTextPlacement: "below",
101
- inline: false,
102
- fullWidth: true,
103
- defaultSize: "md",
104
- defaultDensity: "comfortable",
105
- },
106
- },
107
-
108
- meta: {
109
- label: "Number",
110
- description: "Single-line number input",
111
- tags: ["number", "input", "integer", "float"],
112
- },
113
- };
114
-
115
- export default numberVariant;
@@ -1,35 +0,0 @@
1
- // src/variants/core/password.tsx
2
-
3
- import type { VariantModuleFor } from "@/schema/variant";
4
- import { ShadcnPasswordVariant } from "@/presets/shadcn-variants/password";
5
-
6
- /**
7
- * Core module for the "password" variant.
8
- *
9
- * - Uses the ShadcnPasswordVariant UI (Input + reveal toggle + strength meter).
10
- * - Value type is string | undefined (from Variants["password"].value).
11
- * - Props are ShadcnPasswordVariantProps (from Variants["password"].props).
12
- */
13
- export const passwordVariant: VariantModuleFor<"password"> = {
14
- variant: "password",
15
- Variant: ShadcnPasswordVariant,
16
-
17
- // Optional layout defaults – tweak as you like
18
- defaults: {
19
- layout: {
20
- fullWidth: true,
21
- // You can set defaultSize/defaultDensity here if you want:
22
- // defaultSize: "md",
23
- // defaultDensity: "normal",
24
- },
25
- },
26
-
27
- meta: {
28
- label: "Password",
29
- description:
30
- "Password input with reveal toggle and optional strength meter.",
31
- tags: ["auth", "security", "password"],
32
- },
33
- };
34
-
35
- export default passwordVariant;
@@ -1,16 +0,0 @@
1
- // ———————————————————————————————
2
- // VariantModule wiring
3
-
4
- import { ShadcnPhoneVariant } from "@/presets/shadcn-variants/phone";
5
- import { VariantModule } from "@/schema/variant";
6
-
7
- // ———————————————————————————————
8
- export const PhoneVariantModule: VariantModule<"phone"> = {
9
- variant: "phone",
10
- Variant: ShadcnPhoneVariant,
11
- meta: {
12
- label: "Phone",
13
- description: "Phone number input with country code and masking.",
14
- tags: ["phone", "tel", "contact"],
15
- },
16
- };