@timeax/form-palette 0.0.3 → 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 +4 -4
  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,64 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { InputNumber } from "../ui/number";
4
+ import { cn } from "@/lib/utils";
5
+ import { ChevronUp, ChevronDown, Plus, Minus } from "lucide-react";
6
+ export const ShadcnNumberVariant = React.forwardRef(function ShadcnNumberVariant(props, forwardedRef) {
7
+ const { showButtons, buttonLayout = "stacked", disabled, // Extract disabled to style buttons
8
+ ...rest } = props;
9
+ // we still want access to these for stepping logic
10
+ const { step = 1, min, value, max, onValue: onValueChange, name, id, inputId, } = rest;
11
+ const handleChange = React.useCallback((e) => {
12
+ if (onValueChange) {
13
+ onValueChange(e.value, {
14
+ source: "user",
15
+ nativeEvent: e.originalEvent,
16
+ raw: e.value,
17
+ });
18
+ }
19
+ }, [onValueChange]);
20
+ const handleStep = React.useCallback((direction, originalEvent) => {
21
+ if (disabled)
22
+ return;
23
+ const current = value ?? 0;
24
+ let next = current + direction * step;
25
+ if (typeof min === "number")
26
+ next = Math.max(next, min);
27
+ if (typeof max === "number")
28
+ next = Math.min(next, max);
29
+ // Prime-style event
30
+ const e = {
31
+ originalEvent,
32
+ value: next,
33
+ stopPropagation: () => originalEvent.stopPropagation(),
34
+ preventDefault: () => originalEvent.preventDefault(),
35
+ target: {
36
+ name,
37
+ id: id ?? inputId ?? null,
38
+ value: next,
39
+ },
40
+ };
41
+ handleChange(e);
42
+ }, [value, step, min, max, onValueChange, name, id, inputId, disabled, handleChange]);
43
+ // --- Styles ---
44
+ // Common styles for the interactive buttons
45
+ const btnBase = "flex h-full items-center justify-center bg-transparent text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground disabled:opacity-50 disabled:cursor-not-allowed";
46
+ // Build controls based on layout
47
+ let leadingControl;
48
+ let trailingControl;
49
+ if (showButtons) {
50
+ if (buttonLayout === "inline") {
51
+ // INLINE: "-" on the left, "+" on the right
52
+ leadingControl = (_jsx("button", { type: "button", tabIndex: -1, disabled: disabled, onClick: (e) => handleStep(-1, e), className: cn(btnBase, "border-r border-input px-3"), "aria-label": "Decrease value", children: _jsx(Minus, { className: "h-4 w-4" }) }));
53
+ trailingControl = (_jsx("button", { type: "button", tabIndex: -1, disabled: disabled, onClick: (e) => handleStep(1, e), className: cn(btnBase, "border-l border-input px-3"), "aria-label": "Increase value", children: _jsx(Plus, { className: "h-4 w-4" }) }));
54
+ }
55
+ else {
56
+ // STACKED: vertical +/- on the right
57
+ trailingControl = (_jsxs("div", { className: "flex h-full flex-col border-l border-input", children: [_jsx("button", { type: "button", tabIndex: -1, disabled: disabled, onClick: (e) => handleStep(1, e), className: cn(btnBase, "h-1/2 px-2 border-b border-input"), "aria-label": "Increase value", children: _jsx(ChevronUp, { className: "h-3 w-3" }) }), _jsx("button", { type: "button", tabIndex: -1, disabled: disabled, onClick: (e) => handleStep(-1, e), className: cn(btnBase, "h-1/2 px-2"), "aria-label": "Decrease value", children: _jsx(ChevronDown, { className: "h-3 w-3" }) })] }));
58
+ }
59
+ }
60
+ return (_jsx(InputNumber, { ref: forwardedRef, value: value, disabled: disabled, ...rest, onValueChange: handleChange, leadingControl: leadingControl, trailingControl: trailingControl, extendBoxToControls: true,
61
+ // Ensure the controls sit flush inside the container
62
+ leadingControlClassName: cn("flex h-full", rest.leadingControlClassName), trailingControlClassName: cn("flex h-full", rest.trailingControlClassName) }));
63
+ });
64
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/number.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ import * as React from "react";
2
+ import type { VariantBaseProps } from "@/variants/shared";
3
+ import type { ShadcnTextVariantProps } from "@/presets/shadcn-variants/text";
4
+ type BaseProps = VariantBaseProps<string | undefined>;
5
+ /**
6
+ * Options for the built-in password strength meter.
7
+ *
8
+ * NOTE: Score is always in the range 0–4 (inclusive).
9
+ */
10
+ export interface StrengthOptions {
11
+ /**
12
+ * Custom scoring function.
13
+ * Return a number in the range 0–4 (inclusive) where 0 = weakest, 4 = strongest.
14
+ */
15
+ calc?: (value: string) => number;
16
+ /**
17
+ * Labels for each score bucket (index 0..4).
18
+ * Defaults to: ["Very weak", "Weak", "Okay", "Good", "Strong"]
19
+ */
20
+ labels?: [string, string, string, string, string];
21
+ /**
22
+ * Thresholds for score steps using a 0–100 bar.
23
+ * Defaults to [0, 25, 50, 75, 100] mapping to scores 0..4 respectively.
24
+ */
25
+ thresholds?: [number, number, number, number, number];
26
+ /**
27
+ * Minimum score required to consider the password acceptable (0–4).
28
+ * This is purely visual unless you enforce it in validate/onChange.
29
+ * Default: 2
30
+ */
31
+ minScore?: number | 2;
32
+ /**
33
+ * Whether to show the textual label next to/under the bar.
34
+ * Default: true
35
+ */
36
+ showLabel?: boolean;
37
+ /**
38
+ * Where to render the meter.
39
+ * - "inline" → compact row under the input
40
+ * - "block" → stacked with more spacing
41
+ * Default: "inline"
42
+ */
43
+ display?: "inline" | "block";
44
+ }
45
+ export interface PasswordRuleConfig {
46
+ /**
47
+ * Pattern used to decide if the rule passes.
48
+ */
49
+ pattern: RegExp;
50
+ /**
51
+ * If true, the rule is considered optional (recommendation).
52
+ * Default: false unless the rule name is not prefixed with "!".
53
+ */
54
+ optional?: boolean;
55
+ /**
56
+ * Weight in the scoring (relative importance).
57
+ * Default: 1, doubled if the use key is prefixed with "!".
58
+ */
59
+ weight?: number;
60
+ /**
61
+ * Short label for the rule (e.g. "At least 8 characters").
62
+ * Defaults to the map key if omitted.
63
+ */
64
+ label?: string;
65
+ /**
66
+ * Longer description, used in detailed rule view.
67
+ */
68
+ description?: string;
69
+ }
70
+ /**
71
+ * A definition entry can be:
72
+ * - string → treated as a regex source
73
+ * - RegExp → used directly
74
+ * - full config
75
+ */
76
+ export type PasswordRuleDefinition = string | RegExp | PasswordRuleConfig;
77
+ /**
78
+ * Map of alias/keys → definition entries.
79
+ */
80
+ export type PasswordDefinitionMap = Record<string, PasswordRuleDefinition>;
81
+ /**
82
+ * Internal normalized state for a single rule.
83
+ */
84
+ interface NormalizedRuleState {
85
+ key: string;
86
+ label: string;
87
+ description?: string;
88
+ optional: boolean;
89
+ required: boolean;
90
+ weight: number;
91
+ passed: boolean;
92
+ }
93
+ /**
94
+ * Props passed to custom meter renderers.
95
+ */
96
+ export interface PasswordMeterRenderProps {
97
+ /** Raw password value. */
98
+ value: string;
99
+ /** Bucket score 0..4 based on percent + thresholds. */
100
+ score: number;
101
+ /** 0–100 progress used for the bar. */
102
+ percent: number;
103
+ /** Human label for the current score. */
104
+ label: string;
105
+ /** Whether score >= minScore. */
106
+ passed: boolean;
107
+ /** Effective minScore after normalization. */
108
+ minScore: number;
109
+ /** Effective thresholds used for bucketing. */
110
+ thresholds: [number, number, number, number, number];
111
+ /** Effective labels used. */
112
+ labels: [string, string, string, string, string];
113
+ /** Rule-level details when using a definition map. */
114
+ rules: NormalizedRuleState[];
115
+ }
116
+ /**
117
+ * Password-only props (on top of Shadcn text UI props & VariantBaseProps).
118
+ *
119
+ * This is what the form runtime sees as VariantPropsFor<"password">.
120
+ */
121
+ export interface PasswordVariantProps {
122
+ /** Maximum number of characters permitted. */
123
+ maxLength?: number;
124
+ /** Browser autocomplete hint (e.g., "current-password", "new-password"). */
125
+ autoComplete?: string;
126
+ /** Show an eye button to toggle between obscured/plain text. (default: true) */
127
+ revealToggle?: boolean;
128
+ /** Start in the revealed (plain text) state. */
129
+ defaultRevealed?: boolean;
130
+ /** Called whenever the reveal state changes. */
131
+ onRevealChange?(revealed: boolean): void;
132
+ /** Override the icons used for hide/show. */
133
+ renderToggleIcon?(revealed: boolean): React.ReactNode;
134
+ /** Accessible label for the toggle button. */
135
+ toggleAriaLabel?(revealed: boolean): string;
136
+ /**
137
+ * Extra className for the reveal toggle button.
138
+ */
139
+ toggleButtonClassName?: string;
140
+ /**
141
+ * Enable the built-in strength meter (boolean or options).
142
+ *
143
+ * - false / undefined → no built-in meter is shown
144
+ * - true → use defaults
145
+ * - object → merge with defaults
146
+ */
147
+ strengthMeter?: boolean | StrengthOptions;
148
+ /**
149
+ * Optional rule definition map.
150
+ */
151
+ ruleDefinitions?: PasswordDefinitionMap;
152
+ /**
153
+ * Selection of rule aliases to apply.
154
+ *
155
+ * - "length" → use ruleDefinitions["length"] with default importance
156
+ * - "!length" → same rule but treated as more important
157
+ */
158
+ ruleUses?: string[];
159
+ /**
160
+ * Built-in meter style:
161
+ * - "simple" → single bar + label
162
+ * - "rules" → bar + per-rule checklist
163
+ * Default: "simple"
164
+ */
165
+ meterStyle?: "simple" | "rules";
166
+ /**
167
+ * Optional custom meter renderer.
168
+ */
169
+ renderMeter?(props: PasswordMeterRenderProps): React.ReactNode;
170
+ /**
171
+ * ClassNames for the meter and rules UI.
172
+ */
173
+ meterWrapperClassName?: string;
174
+ meterContainerClassName?: string;
175
+ meterBarClassName?: string;
176
+ meterLabelClassName?: string;
177
+ rulesWrapperClassName?: string;
178
+ rulesHeadingClassName?: string;
179
+ rulesListClassName?: string;
180
+ ruleItemClassName?: string;
181
+ ruleIconClassName?: string;
182
+ ruleLabelClassName?: string;
183
+ /**
184
+ * Extra className for the outer field wrapper.
185
+ */
186
+ className?: string;
187
+ }
188
+ type TextUiProps = Omit<ShadcnTextVariantProps, "type" | "inputMode" | "leadingControl" | "trailingControl" | "value" | "onValue">;
189
+ /**
190
+ * Full props for the Shadcn-based password variant.
191
+ */
192
+ export type ShadcnPasswordVariantProps = TextUiProps & PasswordVariantProps & Pick<BaseProps, "value" | "onValue" | "error">;
193
+ export declare const ShadcnPasswordVariant: React.ForwardRefExoticComponent<TextUiProps & PasswordVariantProps & Pick<BaseProps, "value" | "onValue" | "error"> & React.RefAttributes<HTMLInputElement>>;
194
+ export default ShadcnPasswordVariant;
195
+ //# sourceMappingURL=password.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/password.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,296 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // src/presets/shadcn-variants/password.tsx
3
+ import * as React from "react";
4
+ import { Input } from "@/presets/ui/input";
5
+ import { cn } from "@/lib/utils";
6
+ import { Eye, EyeOff, Check } from "lucide-react";
7
+ /** Heuristic length/charset score: fast, dependency-free. Returns 0..4. */
8
+ function defaultScore(pw) {
9
+ if (!pw)
10
+ return 0;
11
+ let score = 0;
12
+ // length
13
+ if (pw.length >= 8)
14
+ score++;
15
+ if (pw.length >= 12)
16
+ score++;
17
+ // diversity
18
+ const hasLower = /[a-z]/.test(pw);
19
+ const hasUpper = /[A-Z]/.test(pw);
20
+ const hasDigit = /\d/.test(pw);
21
+ const hasSymbol = /[^A-Za-z0-9]/.test(pw);
22
+ const variety = [hasLower, hasUpper, hasDigit, hasSymbol].filter(Boolean)
23
+ .length;
24
+ if (variety >= 2)
25
+ score++;
26
+ if (variety >= 3)
27
+ score++;
28
+ // Cap at 4
29
+ return Math.max(0, Math.min(4, score));
30
+ }
31
+ const DEFAULT_LABELS = [
32
+ "Very weak",
33
+ "Weak",
34
+ "Okay",
35
+ "Good",
36
+ "Strong",
37
+ ];
38
+ const DEFAULT_THRESHOLDS = [
39
+ 0, 25, 50, 75, 100,
40
+ ];
41
+ function normalizeStrengthOptions(raw) {
42
+ if (!raw)
43
+ return null;
44
+ const base = {
45
+ calc: defaultScore,
46
+ labels: DEFAULT_LABELS,
47
+ thresholds: DEFAULT_THRESHOLDS,
48
+ minScore: 2,
49
+ showLabel: true,
50
+ display: "inline",
51
+ };
52
+ if (raw === true) {
53
+ return base;
54
+ }
55
+ return {
56
+ ...base,
57
+ ...raw,
58
+ labels: raw.labels ?? base.labels,
59
+ thresholds: raw.thresholds ?? base.thresholds,
60
+ minScore: raw.minScore ?? base.minScore,
61
+ showLabel: raw.showLabel ?? base.showLabel,
62
+ display: raw.display ?? base.display,
63
+ };
64
+ }
65
+ // Default rule definitions used by the meter.
66
+ const DEFAULT_RULE_DEFINITIONS = {
67
+ "length-8": {
68
+ pattern: /.{8,}/,
69
+ label: "8+ chars",
70
+ description: "Use at least 8 characters.",
71
+ },
72
+ "length-12": {
73
+ pattern: /.{12,}/,
74
+ optional: true,
75
+ label: "12+ chars",
76
+ description: "Use 12 or more characters for stronger security.",
77
+ },
78
+ lower: {
79
+ pattern: /[a-z]/,
80
+ label: "Lowercase",
81
+ description: "Include at least one lowercase letter (a–z).",
82
+ },
83
+ upper: {
84
+ pattern: /[A-Z]/,
85
+ label: "Uppercase",
86
+ description: "Include at least one uppercase letter (A–Z).",
87
+ },
88
+ digit: {
89
+ pattern: /\d/,
90
+ label: "Number",
91
+ description: "Include at least one digit (0–9).",
92
+ },
93
+ symbol: {
94
+ pattern: /[^A-Za-z0-9]/,
95
+ label: "Symbol",
96
+ description: "Include at least one symbol (e.g. !, @, #, ?).",
97
+ },
98
+ "no-space": {
99
+ pattern: /^\S+$/,
100
+ optional: true,
101
+ label: "No spaces",
102
+ description: "Avoid spaces in your password.",
103
+ },
104
+ };
105
+ /**
106
+ * Merge default → global → local rule definitions.
107
+ *
108
+ * - DEFAULT_RULE_DEFINITIONS
109
+ * - window["form-palette"]?.ruleDefinition
110
+ * - props.ruleDefinitions
111
+ */
112
+ function getMergedRuleDefinitions(local) {
113
+ let merged = { ...DEFAULT_RULE_DEFINITIONS };
114
+ if (typeof window !== "undefined") {
115
+ const fp = window["form-palette"];
116
+ const globalDefs = fp?.ruleDefinition;
117
+ if (globalDefs && typeof globalDefs === "object") {
118
+ merged = { ...merged, ...globalDefs };
119
+ }
120
+ }
121
+ if (local && typeof local === "object") {
122
+ merged = { ...merged, ...local };
123
+ }
124
+ return merged;
125
+ }
126
+ // ─────────────────────────────────────────────
127
+ // Rule normalization & scoring
128
+ // ─────────────────────────────────────────────
129
+ function normalizeRules(value, definitions, uses) {
130
+ if (!definitions || Object.keys(definitions).length === 0) {
131
+ return { rules: [], percent: null };
132
+ }
133
+ const useList = uses && uses.length ? uses : Object.keys(definitions);
134
+ const rules = [];
135
+ let totalWeight = 0;
136
+ let passedWeight = 0;
137
+ for (const rawKey of useList) {
138
+ if (!rawKey)
139
+ continue;
140
+ const important = rawKey.startsWith("!");
141
+ const key = important ? rawKey.slice(1) : rawKey;
142
+ const def = definitions[key];
143
+ if (!def)
144
+ continue;
145
+ let pattern;
146
+ let optional = !important;
147
+ let weight = important ? 2 : 1;
148
+ let label = key;
149
+ let description;
150
+ if (typeof def === "string") {
151
+ pattern = new RegExp(def);
152
+ }
153
+ else if (def instanceof RegExp) {
154
+ pattern = def;
155
+ }
156
+ else {
157
+ pattern = def.pattern;
158
+ if (def.optional !== undefined)
159
+ optional = def.optional;
160
+ if (def.weight !== undefined)
161
+ weight = def.weight;
162
+ if (def.label)
163
+ label = def.label;
164
+ if (def.description)
165
+ description = def.description;
166
+ }
167
+ const passed = pattern.test(value);
168
+ totalWeight += weight;
169
+ if (passed)
170
+ passedWeight += weight;
171
+ rules.push({
172
+ key,
173
+ label,
174
+ description,
175
+ optional,
176
+ required: !optional,
177
+ weight,
178
+ passed,
179
+ });
180
+ }
181
+ if (totalWeight === 0) {
182
+ return { rules, percent: null };
183
+ }
184
+ const percent = (passedWeight / totalWeight) * 100;
185
+ return { rules, percent };
186
+ }
187
+ function clampScore(x) {
188
+ if (Number.isNaN(x))
189
+ return 0;
190
+ return Math.max(0, Math.min(4, x));
191
+ }
192
+ function computeMeterState(value, strength, definitions, uses) {
193
+ const { rules, percent: rulesPercent } = normalizeRules(value, definitions, uses);
194
+ const labels = strength.labels ?? DEFAULT_LABELS;
195
+ const thresholds = strength.thresholds ?? DEFAULT_THRESHOLDS;
196
+ const minScore = (strength.minScore ?? 2);
197
+ let percent;
198
+ let score;
199
+ if (rulesPercent != null) {
200
+ percent = rulesPercent;
201
+ }
202
+ else {
203
+ const rawScore = clampScore(strength.calc ? strength.calc(value) : defaultScore(value));
204
+ percent = (rawScore / 4) * 100;
205
+ }
206
+ let bucketIndex = 0;
207
+ for (let i = 0; i < thresholds.length; i++) {
208
+ if (percent >= thresholds[i]) {
209
+ bucketIndex = i;
210
+ }
211
+ else {
212
+ break;
213
+ }
214
+ }
215
+ score = bucketIndex;
216
+ const label = labels[score] ??
217
+ labels[labels.length - 1] ??
218
+ DEFAULT_LABELS[DEFAULT_LABELS.length - 1];
219
+ const passed = score >= minScore;
220
+ return {
221
+ value,
222
+ score,
223
+ percent,
224
+ label,
225
+ passed,
226
+ minScore,
227
+ thresholds: thresholds,
228
+ labels,
229
+ rules,
230
+ };
231
+ }
232
+ function meterColor(score) {
233
+ if (score <= 1)
234
+ return "bg-destructive";
235
+ if (score === 2)
236
+ return "bg-orange-500";
237
+ if (score === 3)
238
+ return "bg-amber-500";
239
+ return "bg-emerald-500";
240
+ }
241
+ // ─────────────────────────────────────────────
242
+ // Main variant component
243
+ // ─────────────────────────────────────────────
244
+ export const ShadcnPasswordVariant = React.forwardRef(function ShadcnPasswordVariant(props, ref) {
245
+ const {
246
+ // base variant bits
247
+ value, onValue, error,
248
+ // password base props
249
+ maxLength, autoComplete, revealToggle = true, defaultRevealed = false, onRevealChange, renderToggleIcon, toggleAriaLabel, toggleButtonClassName,
250
+ // strength / rules
251
+ strengthMeter, ruleDefinitions, ruleUses, meterStyle = "simple", renderMeter, meterWrapperClassName, meterContainerClassName, meterBarClassName, meterLabelClassName, rulesWrapperClassName, rulesHeadingClassName, rulesListClassName, ruleItemClassName, ruleIconClassName, ruleLabelClassName, className,
252
+ // everything else from Shadcn text UI
253
+ ...restTextProps } = props;
254
+ const [revealed, setRevealed] = React.useState(Boolean(defaultRevealed));
255
+ const normalizedStrength = React.useMemo(() => normalizeStrengthOptions(strengthMeter), [strengthMeter]);
256
+ const effectiveRuleDefinitions = React.useMemo(() => getMergedRuleDefinitions(ruleDefinitions), [ruleDefinitions]);
257
+ const meterState = React.useMemo(() => {
258
+ if (!normalizedStrength)
259
+ return null;
260
+ const v = value ?? "";
261
+ return computeMeterState(v, normalizedStrength, effectiveRuleDefinitions, ruleUses);
262
+ }, [normalizedStrength, value, ruleUses, effectiveRuleDefinitions]);
263
+ const handleToggleReveal = React.useCallback(() => {
264
+ setRevealed((prev) => {
265
+ const next = !prev;
266
+ onRevealChange?.(next);
267
+ return next;
268
+ });
269
+ }, [onRevealChange]);
270
+ const handleChange = React.useCallback((event) => {
271
+ const next = event.target.value ?? "";
272
+ const detail = {
273
+ source: "variant",
274
+ raw: next,
275
+ nativeEvent: event,
276
+ meta: meterState ?? undefined,
277
+ };
278
+ onValue?.(next, detail);
279
+ }, [onValue, meterState]);
280
+ const toggleLabel = toggleAriaLabel?.(revealed) ??
281
+ (revealed ? "Hide password" : "Show password");
282
+ const trailingControl = revealToggle === false ? undefined : (_jsx("button", { type: "button", onClick: handleToggleReveal, "aria-label": toggleLabel, tabIndex: -1, className: cn("inline-flex h-full items-center justify-center px-3 text-muted-foreground transition-colors hover:text-foreground hover:bg-muted/50 focus-visible:outline-none focus-visible:bg-muted/50", toggleButtonClassName), "data-slot": "password-toggle", children: renderToggleIcon ? (renderToggleIcon(revealed)) : revealed ? (_jsx(EyeOff, { className: "h-4 w-4" })) : (_jsx(Eye, { className: "h-4 w-4" })) }));
283
+ const meterNode = normalizedStrength && meterState
284
+ ? renderMeter?.(meterState) ??
285
+ (strengthMeter && (_jsxs("div", { className: cn(normalizedStrength.display === "block"
286
+ ? "mt-2 space-y-2"
287
+ : "mt-1.5 flex flex-col gap-0", meterWrapperClassName), "data-slot": "password-meter", children: [_jsxs("div", { className: cn("flex w-full items-center gap-3", meterContainerClassName), children: [_jsx("div", { className: "flex-1", children: _jsx("div", { className: "h-1 w-full overflow-hidden rounded-full bg-secondary", children: _jsx("div", { className: cn("h-full transition-all duration-300 ease-out", meterColor(meterState.score), meterBarClassName), style: { width: `${meterState.percent}%` } }) }) }), normalizedStrength.showLabel !== false && (_jsx("div", { className: cn("min-w-[4rem] text-right text-[10px] font-medium uppercase tracking-wider text-muted-foreground", meterLabelClassName), children: meterState.label }))] }), meterStyle === "rules" &&
288
+ meterState.rules.length > 0 && (_jsx("div", { className: cn("flex flex-wrap gap-1.5 pt-1", rulesWrapperClassName), children: meterState.rules.map((rule) => (_jsxs("span", { className: cn("inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-[10px] font-medium transition-colors duration-200", rule.passed
289
+ ? "border-emerald-500/30 bg-emerald-500/10 text-emerald-600 dark:border-emerald-400/20 dark:bg-emerald-400/10 dark:text-emerald-400"
290
+ : "border-transparent bg-secondary text-muted-foreground", ruleItemClassName), children: [rule.passed && (_jsx(Check, { className: "h-3 w-3", strokeWidth: 3 })), rule.label] }, rule.key))) }))] })))
291
+ : null;
292
+ return (_jsxs("div", { className: cn("group/password w-full", className), "data-slot": "password-field", children: [_jsx(Input, { ref: ref, ...restTextProps, type: revealed ? "text" : "password", value: value ?? "", onChange: handleChange, maxLength: maxLength, autoComplete: autoComplete, trailingControl: trailingControl, "aria-invalid": error ? "true" : undefined }), meterNode] }));
293
+ });
294
+ ShadcnPasswordVariant.displayName = "ShadcnPasswordVariant";
295
+ export default ShadcnPasswordVariant;
296
+ //# sourceMappingURL=password.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password.js","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/password.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import * as React from "react";
2
+ import type { VariantBaseProps } from "@/variants/shared";
3
+ import type { ShadcnTextVariantProps } from "@/presets/shadcn-variants/text";
4
+ type BaseProps = VariantBaseProps<string | undefined>;
5
+ /**
6
+ * Single-country phone config.
7
+ *
8
+ * - code: ISO 3166-1 alpha-2 ("NG", "US", "GB", ...)
9
+ * - dial: dial code without "+" ("234", "1", "44", ...)
10
+ * - mask: NATIONAL portion mask only (no dial), e.g. "999 999 9999"
11
+ */
12
+ export interface PhoneCountry {
13
+ code: string;
14
+ label: string;
15
+ dial: string;
16
+ mask: string;
17
+ flag?: React.ReactNode;
18
+ }
19
+ /**
20
+ * How the variant emits the form value.
21
+ *
22
+ * - "masked" → "+234 801 234 5678"
23
+ * - "e164" → "2348012345678" (dial + national digits, no "+")
24
+ * - "national"→ "8012345678"
25
+ */
26
+ export type PhoneValueMode = "masked" | "e164" | "national";
27
+ export interface PhoneSpecificProps {
28
+ countries?: PhoneCountry[];
29
+ defaultCountry?: string;
30
+ onCountryChange?: (country: PhoneCountry) => void;
31
+ showCountry?: boolean;
32
+ countryPlaceholder?: string;
33
+ showFlag?: boolean;
34
+ showSelectedLabel?: boolean;
35
+ showSelectedDial?: boolean;
36
+ showDialInList?: boolean;
37
+ /**
38
+ * Controls how the emitted value is shaped.
39
+ *
40
+ * Default mirrors legacy autoUnmask=true + emitE164=true → "e164".
41
+ */
42
+ valueMode?: PhoneValueMode;
43
+ /**
44
+ * When true, the national mask keeps placeholder characters
45
+ * for not-yet-filled positions. When false, trailing mask
46
+ * fragments are omitted.
47
+ */
48
+ keepCharPositions?: boolean;
49
+ /**
50
+ * Style hooks for the internal country selector.
51
+ */
52
+ countrySelectClassName?: string;
53
+ countryTriggerClassName?: string;
54
+ countryValueClassName?: string;
55
+ countryContentClassName?: string;
56
+ countryItemClassName?: string;
57
+ }
58
+ type TextUiProps = Omit<ShadcnTextVariantProps, "type" | "inputMode" | "leadingControl" | "value" | "onValue">;
59
+ /**
60
+ * Full props for the phone variant as seen by the form runtime.
61
+ *
62
+ * - Keeps the same `value`/`onValue` contract as other variants.
63
+ * - Inherits visual/behavioural text props (size, density, className, etc.).
64
+ * - Adds phone-specific configuration (countries, valueMode, etc.).
65
+ */
66
+ export type ShadcnPhoneVariantProps = TextUiProps & PhoneSpecificProps & Pick<BaseProps, "value" | "onValue">;
67
+ export declare const ShadcnPhoneVariant: React.ForwardRefExoticComponent<TextUiProps & PhoneSpecificProps & Pick<BaseProps, "value" | "onValue"> & React.RefAttributes<HTMLInputElement>>;
68
+ export {};
69
+ //# sourceMappingURL=phone.d.ts.map