@timeax/form-palette 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (503) hide show
  1. package/dist/adapters/axios.d.ts +21 -0
  2. package/dist/adapters/axios.d.ts.map +1 -0
  3. package/dist/adapters/axios.js +74 -0
  4. package/dist/adapters/axios.js.map +1 -0
  5. package/dist/adapters/index.d.ts +35 -0
  6. package/dist/adapters/index.d.ts.map +1 -0
  7. package/dist/adapters/index.js +74 -0
  8. package/dist/adapters/index.js.map +1 -0
  9. package/dist/adapters/inertia.d.ts +24 -0
  10. package/dist/adapters/inertia.d.ts.map +1 -0
  11. package/dist/adapters/inertia.js +126 -0
  12. package/dist/adapters/inertia.js.map +1 -0
  13. package/dist/core/adapter-registry.d.ts +30 -0
  14. package/dist/core/adapter-registry.d.ts.map +1 -0
  15. package/{src/core/adapter-registry.ts → dist/core/adapter-registry.js} +10 -28
  16. package/dist/core/adapter-registry.js.map +1 -0
  17. package/{src/core/bound/bind-host.ts → dist/core/bound/bind-host.d.ts} +2 -3
  18. package/dist/core/bound/bind-host.d.ts.map +1 -0
  19. package/dist/core/bound/bind-host.js +2 -0
  20. package/dist/core/bound/bind-host.js.map +1 -0
  21. package/dist/core/bound/observe-bound-field.d.ts +21 -0
  22. package/dist/core/bound/observe-bound-field.d.ts.map +1 -0
  23. package/dist/core/bound/observe-bound-field.js +116 -0
  24. package/dist/core/bound/observe-bound-field.js.map +1 -0
  25. package/dist/core/bound/wait-for-bound-field.d.ts +5 -0
  26. package/dist/core/bound/wait-for-bound-field.d.ts.map +1 -0
  27. package/dist/core/bound/wait-for-bound-field.js +35 -0
  28. package/dist/core/bound/wait-for-bound-field.js.map +1 -0
  29. package/{src/core/context.ts → dist/core/context.d.ts} +2 -6
  30. package/dist/core/context.d.ts.map +1 -0
  31. package/dist/core/context.js +11 -0
  32. package/dist/core/context.js.map +1 -0
  33. package/dist/core/core-provider.d.ts +22 -0
  34. package/dist/core/core-provider.d.ts.map +1 -0
  35. package/{src/core/core-provider.tsx → dist/core/core-provider.js} +209 -364
  36. package/dist/core/core-provider.js.map +1 -0
  37. package/dist/core/core-root.d.ts +26 -0
  38. package/dist/core/core-root.d.ts.map +1 -0
  39. package/dist/core/core-root.js +38 -0
  40. package/dist/core/core-root.js.map +1 -0
  41. package/dist/core/core-shell.d.ts +22 -0
  42. package/dist/core/core-shell.d.ts.map +1 -0
  43. package/dist/core/core-shell.js +8 -0
  44. package/dist/core/core-shell.js.map +1 -0
  45. package/{src/core/errors/error-strip.tsx → dist/core/errors/error-strip.d.ts} +2 -39
  46. package/dist/core/errors/error-strip.d.ts.map +1 -0
  47. package/dist/core/errors/error-strip.js +18 -0
  48. package/dist/core/errors/error-strip.js.map +1 -0
  49. package/dist/core/errors/index.d.ts +4 -0
  50. package/dist/core/errors/index.d.ts.map +1 -0
  51. package/dist/core/errors/index.js +4 -0
  52. package/dist/core/errors/index.js.map +1 -0
  53. package/dist/core/errors/map-error-bag.d.ts +24 -0
  54. package/dist/core/errors/map-error-bag.d.ts.map +1 -0
  55. package/{src/core/errors/map-error-bag.ts → dist/core/errors/map-error-bag.js} +10 -22
  56. package/dist/core/errors/map-error-bag.js.map +1 -0
  57. package/dist/core/errors/map-zod.d.ts +18 -0
  58. package/dist/core/errors/map-zod.d.ts.map +1 -0
  59. package/{src/core/errors/map-zod.ts → dist/core/errors/map-zod.js} +7 -19
  60. package/dist/core/errors/map-zod.js.map +1 -0
  61. package/dist/core/hooks/use-button.d.ts +73 -0
  62. package/dist/core/hooks/use-button.d.ts.map +1 -0
  63. package/dist/core/hooks/use-button.js +116 -0
  64. package/dist/core/hooks/use-button.js.map +1 -0
  65. package/dist/core/hooks/use-core-context.d.ts +9 -0
  66. package/dist/core/hooks/use-core-context.d.ts.map +1 -0
  67. package/{src/core/hooks/use-core-context.ts → dist/core/hooks/use-core-context.js} +3 -6
  68. package/dist/core/hooks/use-core-context.js.map +1 -0
  69. package/dist/core/hooks/use-core-utility.d.ts +1 -0
  70. package/dist/core/hooks/use-core-utility.d.ts.map +1 -0
  71. package/dist/core/hooks/use-core-utility.js +2 -0
  72. package/dist/core/hooks/use-core-utility.js.map +1 -0
  73. package/{src/core/hooks/use-core.ts → dist/core/hooks/use-core.d.ts} +9 -13
  74. package/dist/core/hooks/use-core.d.ts.map +1 -0
  75. package/dist/core/hooks/use-core.js +11 -0
  76. package/dist/core/hooks/use-core.js.map +1 -0
  77. package/dist/core/hooks/use-field.d.ts +141 -0
  78. package/dist/core/hooks/use-field.d.ts.map +1 -0
  79. package/dist/core/hooks/use-field.js +256 -0
  80. package/dist/core/hooks/use-field.js.map +1 -0
  81. package/dist/core/hooks/use-optional-field.d.ts +9 -0
  82. package/dist/core/hooks/use-optional-field.d.ts.map +1 -0
  83. package/dist/core/hooks/use-optional-field.js +146 -0
  84. package/dist/core/hooks/use-optional-field.js.map +1 -0
  85. package/dist/core/index.d.ts +11 -0
  86. package/dist/core/index.d.ts.map +1 -0
  87. package/dist/core/index.js +11 -0
  88. package/dist/core/index.js.map +1 -0
  89. package/dist/core/registry/binder-registry.d.ts +38 -0
  90. package/dist/core/registry/binder-registry.d.ts.map +1 -0
  91. package/dist/core/registry/binder-registry.js +52 -0
  92. package/dist/core/registry/binder-registry.js.map +1 -0
  93. package/dist/core/registry/field-registry.d.ts +86 -0
  94. package/dist/core/registry/field-registry.d.ts.map +1 -0
  95. package/{src/core/registry/field-registry.ts → dist/core/registry/field-registry.js} +56 -70
  96. package/dist/core/registry/field-registry.js.map +1 -0
  97. package/dist/core/test.d.ts +2 -0
  98. package/dist/core/test.d.ts.map +1 -0
  99. package/dist/core/test.js +9 -0
  100. package/dist/core/test.js.map +1 -0
  101. package/dist/index.d.ts +15 -0
  102. package/dist/index.d.ts.map +1 -0
  103. package/{src/index.ts → dist/index.js} +5 -47
  104. package/dist/index.js.map +1 -0
  105. package/{src/input/index.ts → dist/input/index.d.ts} +1 -2
  106. package/dist/input/index.d.ts.map +1 -0
  107. package/dist/input/index.js +3 -0
  108. package/dist/input/index.js.map +1 -0
  109. package/dist/input/input-field.d.ts +15 -0
  110. package/dist/input/input-field.d.ts.map +1 -0
  111. package/dist/input/input-field.js +413 -0
  112. package/dist/input/input-field.js.map +1 -0
  113. package/dist/input/input-layout-graph.d.ts +77 -0
  114. package/dist/input/input-layout-graph.d.ts.map +1 -0
  115. package/dist/input/input-layout-graph.js +108 -0
  116. package/dist/input/input-layout-graph.js.map +1 -0
  117. package/{src/input/input-props.ts → dist/input/input-props.d.ts} +22 -84
  118. package/dist/input/input-props.d.ts.map +1 -0
  119. package/dist/input/input-props.js +4 -0
  120. package/dist/input/input-props.js.map +1 -0
  121. package/dist/lib/get-global-countries.d.ts +3 -0
  122. package/dist/lib/get-global-countries.d.ts.map +1 -0
  123. package/dist/lib/get-global-countries.js +70 -0
  124. package/dist/lib/get-global-countries.js.map +1 -0
  125. package/dist/lib/utils.d.ts +3 -0
  126. package/dist/lib/utils.d.ts.map +1 -0
  127. package/dist/lib/utils.js +6 -0
  128. package/dist/lib/utils.js.map +1 -0
  129. package/dist/presets/index.d.ts +1 -0
  130. package/dist/presets/index.d.ts.map +1 -0
  131. package/dist/presets/index.js +2 -0
  132. package/dist/presets/index.js.map +1 -0
  133. package/dist/presets/shadcn-preset.d.ts +1 -0
  134. package/dist/presets/shadcn-preset.d.ts.map +1 -0
  135. package/dist/presets/shadcn-preset.js +2 -0
  136. package/dist/presets/shadcn-preset.js.map +1 -0
  137. package/dist/presets/shadcn-variants/checkbox.d.ts +212 -0
  138. package/dist/presets/shadcn-variants/checkbox.d.ts.map +1 -0
  139. package/dist/presets/shadcn-variants/checkbox.js +315 -0
  140. package/dist/presets/shadcn-variants/checkbox.js.map +1 -0
  141. package/dist/presets/shadcn-variants/chips.d.ts +154 -0
  142. package/dist/presets/shadcn-variants/chips.d.ts.map +1 -0
  143. package/dist/presets/shadcn-variants/chips.js +266 -0
  144. package/dist/presets/shadcn-variants/chips.js.map +1 -0
  145. package/dist/presets/shadcn-variants/color.d.ts +63 -0
  146. package/dist/presets/shadcn-variants/color.d.ts.map +1 -0
  147. package/dist/presets/shadcn-variants/color.js +96 -0
  148. package/dist/presets/shadcn-variants/color.js.map +1 -0
  149. package/dist/presets/shadcn-variants/custom.d.ts +94 -0
  150. package/dist/presets/shadcn-variants/custom.d.ts.map +1 -0
  151. package/dist/presets/shadcn-variants/custom.js +80 -0
  152. package/dist/presets/shadcn-variants/custom.js.map +1 -0
  153. package/dist/presets/shadcn-variants/date.d.ts +114 -0
  154. package/dist/presets/shadcn-variants/date.d.ts.map +1 -0
  155. package/dist/presets/shadcn-variants/date.js +414 -0
  156. package/dist/presets/shadcn-variants/date.js.map +1 -0
  157. package/dist/presets/shadcn-variants/file.d.ts +79 -0
  158. package/dist/presets/shadcn-variants/file.d.ts.map +1 -0
  159. package/dist/presets/shadcn-variants/file.js +289 -0
  160. package/dist/presets/shadcn-variants/file.js.map +1 -0
  161. package/dist/presets/shadcn-variants/keyvalue.d.ts +35 -0
  162. package/dist/presets/shadcn-variants/keyvalue.d.ts.map +1 -0
  163. package/dist/presets/shadcn-variants/keyvalue.js +215 -0
  164. package/dist/presets/shadcn-variants/keyvalue.js.map +1 -0
  165. package/dist/presets/shadcn-variants/multiselect.d.ts +210 -0
  166. package/dist/presets/shadcn-variants/multiselect.d.ts.map +1 -0
  167. package/dist/presets/shadcn-variants/multiselect.js +352 -0
  168. package/dist/presets/shadcn-variants/multiselect.js.map +1 -0
  169. package/dist/presets/shadcn-variants/number.d.ts +31 -0
  170. package/dist/presets/shadcn-variants/number.d.ts.map +1 -0
  171. package/dist/presets/shadcn-variants/number.js +64 -0
  172. package/dist/presets/shadcn-variants/number.js.map +1 -0
  173. package/dist/presets/shadcn-variants/password.d.ts +195 -0
  174. package/dist/presets/shadcn-variants/password.d.ts.map +1 -0
  175. package/dist/presets/shadcn-variants/password.js +296 -0
  176. package/dist/presets/shadcn-variants/password.js.map +1 -0
  177. package/dist/presets/shadcn-variants/phone.d.ts +69 -0
  178. package/dist/presets/shadcn-variants/phone.d.ts.map +1 -0
  179. package/dist/presets/shadcn-variants/phone.js +308 -0
  180. package/dist/presets/shadcn-variants/phone.js.map +1 -0
  181. package/dist/presets/shadcn-variants/radio.d.ts +172 -0
  182. package/dist/presets/shadcn-variants/radio.d.ts.map +1 -0
  183. package/dist/presets/shadcn-variants/radio.js +192 -0
  184. package/dist/presets/shadcn-variants/radio.js.map +1 -0
  185. package/dist/presets/shadcn-variants/select.d.ts +203 -0
  186. package/dist/presets/shadcn-variants/select.d.ts.map +1 -0
  187. package/dist/presets/shadcn-variants/select.js +285 -0
  188. package/dist/presets/shadcn-variants/select.js.map +1 -0
  189. package/dist/presets/shadcn-variants/slider.d.ts +131 -0
  190. package/dist/presets/shadcn-variants/slider.d.ts.map +1 -0
  191. package/dist/presets/shadcn-variants/slider.js +151 -0
  192. package/dist/presets/shadcn-variants/slider.js.map +1 -0
  193. package/dist/presets/shadcn-variants/text.d.ts +155 -0
  194. package/dist/presets/shadcn-variants/text.d.ts.map +1 -0
  195. package/dist/presets/shadcn-variants/text.js +98 -0
  196. package/dist/presets/shadcn-variants/text.js.map +1 -0
  197. package/dist/presets/shadcn-variants/textarea.d.ts +18 -0
  198. package/dist/presets/shadcn-variants/textarea.d.ts.map +1 -0
  199. package/dist/presets/shadcn-variants/textarea.js +24 -0
  200. package/dist/presets/shadcn-variants/textarea.js.map +1 -0
  201. package/dist/presets/shadcn-variants/toggle.d.ts +61 -0
  202. package/dist/presets/shadcn-variants/toggle.d.ts.map +1 -0
  203. package/dist/presets/shadcn-variants/toggle.js +67 -0
  204. package/dist/presets/shadcn-variants/toggle.js.map +1 -0
  205. package/dist/presets/shadcn-variants/treeselect.d.ts +81 -0
  206. package/dist/presets/shadcn-variants/treeselect.d.ts.map +1 -0
  207. package/dist/presets/shadcn-variants/treeselect.js +317 -0
  208. package/dist/presets/shadcn-variants/treeselect.js.map +1 -0
  209. package/dist/presets/ui/badge.d.ts +10 -0
  210. package/dist/presets/ui/badge.d.ts.map +1 -0
  211. package/dist/presets/ui/badge.js +23 -0
  212. package/dist/presets/ui/badge.js.map +1 -0
  213. package/dist/presets/ui/button.d.ts +11 -0
  214. package/dist/presets/ui/button.d.ts.map +1 -0
  215. package/dist/presets/ui/button.js +34 -0
  216. package/dist/presets/ui/button.js.map +1 -0
  217. package/dist/presets/ui/calendar.d.ts +9 -0
  218. package/dist/presets/ui/calendar.d.ts.map +1 -0
  219. package/dist/presets/ui/calendar.js +76 -0
  220. package/dist/presets/ui/calendar.js.map +1 -0
  221. package/dist/presets/ui/checkbox.d.ts +18 -0
  222. package/dist/presets/ui/checkbox.d.ts.map +1 -0
  223. package/dist/presets/ui/checkbox.js +61 -0
  224. package/dist/presets/ui/checkbox.js.map +1 -0
  225. package/dist/presets/ui/custom.d.ts +1 -0
  226. package/dist/presets/ui/custom.d.ts.map +1 -0
  227. package/dist/presets/ui/custom.js +2 -0
  228. package/dist/presets/ui/custom.js.map +1 -0
  229. package/dist/presets/ui/dialog.d.ts +16 -0
  230. package/dist/presets/ui/dialog.d.ts.map +1 -0
  231. package/dist/presets/ui/dialog.js +36 -0
  232. package/dist/presets/ui/dialog.js.map +1 -0
  233. package/dist/presets/ui/field.d.ts +25 -0
  234. package/dist/presets/ui/field.d.ts.map +1 -0
  235. package/dist/presets/ui/field.js +76 -0
  236. package/dist/presets/ui/field.js.map +1 -0
  237. package/dist/presets/ui/input-mask.d.ts +34 -0
  238. package/dist/presets/ui/input-mask.d.ts.map +1 -0
  239. package/dist/presets/ui/input-mask.js +561 -0
  240. package/dist/presets/ui/input-mask.js.map +1 -0
  241. package/dist/presets/ui/input-otp.d.ts +12 -0
  242. package/dist/presets/ui/input-otp.d.ts.map +1 -0
  243. package/dist/presets/ui/input-otp.js +22 -0
  244. package/dist/presets/ui/input-otp.js.map +1 -0
  245. package/dist/presets/ui/input.d.ts +83 -0
  246. package/dist/presets/ui/input.d.ts.map +1 -0
  247. package/dist/presets/ui/input.js +436 -0
  248. package/dist/presets/ui/input.js.map +1 -0
  249. package/dist/presets/ui/label.d.ts +5 -0
  250. package/dist/presets/ui/label.d.ts.map +1 -0
  251. package/dist/presets/ui/label.js +8 -0
  252. package/dist/presets/ui/label.js.map +1 -0
  253. package/dist/presets/ui/number.d.ts +60 -0
  254. package/dist/presets/ui/number.d.ts.map +1 -0
  255. package/dist/presets/ui/number.js +1078 -0
  256. package/dist/presets/ui/number.js.map +1 -0
  257. package/dist/presets/ui/popover.d.ts +8 -0
  258. package/dist/presets/ui/popover.d.ts.map +1 -0
  259. package/dist/presets/ui/popover.js +17 -0
  260. package/dist/presets/ui/popover.js.map +1 -0
  261. package/dist/presets/ui/radio-group.d.ts +6 -0
  262. package/dist/presets/ui/radio-group.d.ts.map +1 -0
  263. package/dist/presets/ui/radio-group.js +12 -0
  264. package/dist/presets/ui/radio-group.js.map +1 -0
  265. package/dist/presets/ui/scroll-area.d.ts +6 -0
  266. package/dist/presets/ui/scroll-area.d.ts.map +1 -0
  267. package/dist/presets/ui/scroll-area.js +13 -0
  268. package/dist/presets/ui/scroll-area.js.map +1 -0
  269. package/dist/presets/ui/select.d.ts +21 -0
  270. package/dist/presets/ui/select.d.ts.map +1 -0
  271. package/dist/presets/ui/select.js +38 -0
  272. package/dist/presets/ui/select.js.map +1 -0
  273. package/dist/presets/ui/separator.d.ts +5 -0
  274. package/dist/presets/ui/separator.d.ts.map +1 -0
  275. package/dist/presets/ui/separator.js +9 -0
  276. package/dist/presets/ui/separator.js.map +1 -0
  277. package/dist/presets/ui/slider.d.ts +5 -0
  278. package/dist/presets/ui/slider.d.ts.map +1 -0
  279. package/dist/presets/ui/slider.js +14 -0
  280. package/dist/presets/ui/slider.js.map +1 -0
  281. package/dist/presets/ui/switch.d.ts +7 -0
  282. package/dist/presets/ui/switch.d.ts.map +1 -0
  283. package/dist/presets/ui/switch.js +9 -0
  284. package/dist/presets/ui/switch.js.map +1 -0
  285. package/dist/presets/ui/textarea.d.ts +76 -0
  286. package/dist/presets/ui/textarea.d.ts.map +1 -0
  287. package/dist/presets/ui/textarea.js +291 -0
  288. package/dist/presets/ui/textarea.js.map +1 -0
  289. package/dist/presets/ui/time-dropdowns.d.ts +58 -0
  290. package/dist/presets/ui/time-dropdowns.d.ts.map +1 -0
  291. package/dist/presets/ui/time-dropdowns.js +133 -0
  292. package/dist/presets/ui/time-dropdowns.js.map +1 -0
  293. package/{src/schema/adapter.ts → dist/schema/adapter.d.ts} +7 -35
  294. package/dist/schema/adapter.d.ts.map +1 -0
  295. package/dist/schema/adapter.js +3 -0
  296. package/dist/schema/adapter.js.map +1 -0
  297. package/{src/schema/core.ts → dist/schema/core.d.ts} +17 -117
  298. package/dist/schema/core.d.ts.map +1 -0
  299. package/dist/schema/core.js +4 -0
  300. package/dist/schema/core.js.map +1 -0
  301. package/dist/schema/field-map.d.ts +1 -0
  302. package/dist/schema/field-map.d.ts.map +1 -0
  303. package/dist/schema/field-map.js +2 -0
  304. package/dist/schema/field-map.js.map +1 -0
  305. package/{src/schema/field.ts → dist/schema/field.d.ts} +1 -34
  306. package/dist/schema/field.d.ts.map +1 -0
  307. package/dist/schema/field.js +4 -0
  308. package/dist/schema/field.js.map +1 -0
  309. package/dist/schema/index.d.ts +1 -0
  310. package/dist/schema/index.d.ts.map +1 -0
  311. package/dist/schema/index.js +2 -0
  312. package/dist/schema/index.js.map +1 -0
  313. package/{src/schema/input-field.ts → dist/schema/input-field.d.ts} +6 -43
  314. package/dist/schema/input-field.d.ts.map +1 -0
  315. package/dist/schema/input-field.js +3 -0
  316. package/dist/schema/input-field.js.map +1 -0
  317. package/dist/schema/presets.d.ts +1 -0
  318. package/dist/schema/presets.d.ts.map +1 -0
  319. package/dist/schema/presets.js +2 -0
  320. package/dist/schema/presets.js.map +1 -0
  321. package/{src/schema/variant.ts → dist/schema/variant.d.ts} +24 -64
  322. package/dist/schema/variant.d.ts.map +1 -0
  323. package/dist/schema/variant.js +3 -0
  324. package/dist/schema/variant.js.map +1 -0
  325. package/dist/variants/core/checkbox.d.ts +15 -0
  326. package/dist/variants/core/checkbox.d.ts.map +1 -0
  327. package/dist/variants/core/checkbox.js +27 -0
  328. package/dist/variants/core/checkbox.js.map +1 -0
  329. package/dist/variants/core/chips.d.ts +3 -0
  330. package/dist/variants/core/chips.d.ts.map +1 -0
  331. package/dist/variants/core/chips.js +20 -0
  332. package/dist/variants/core/chips.js.map +1 -0
  333. package/dist/variants/core/color.d.ts +3 -0
  334. package/dist/variants/core/color.d.ts.map +1 -0
  335. package/dist/variants/core/color.js +14 -0
  336. package/dist/variants/core/color.js.map +1 -0
  337. package/dist/variants/core/custom.d.ts +11 -0
  338. package/dist/variants/core/custom.d.ts.map +1 -0
  339. package/{src/variants/core/custom.tsx → dist/variants/core/custom.js} +15 -18
  340. package/dist/variants/core/custom.js.map +1 -0
  341. package/dist/variants/core/date.d.ts +3 -0
  342. package/dist/variants/core/date.d.ts.map +1 -0
  343. package/dist/variants/core/date.js +20 -0
  344. package/dist/variants/core/date.js.map +1 -0
  345. package/dist/variants/core/file.d.ts +3 -0
  346. package/dist/variants/core/file.d.ts.map +1 -0
  347. package/dist/variants/core/file.js +6 -0
  348. package/dist/variants/core/file.js.map +1 -0
  349. package/dist/variants/core/keyvalue.d.ts +3 -0
  350. package/dist/variants/core/keyvalue.d.ts.map +1 -0
  351. package/dist/variants/core/keyvalue.js +9 -0
  352. package/dist/variants/core/keyvalue.js.map +1 -0
  353. package/dist/variants/core/multiselect.d.ts +11 -0
  354. package/dist/variants/core/multiselect.d.ts.map +1 -0
  355. package/dist/variants/core/multiselect.js +15 -0
  356. package/dist/variants/core/multiselect.js.map +1 -0
  357. package/dist/variants/core/number.d.ts +38 -0
  358. package/dist/variants/core/number.d.ts.map +1 -0
  359. package/dist/variants/core/number.js +62 -0
  360. package/dist/variants/core/number.js.map +1 -0
  361. package/dist/variants/core/password.d.ts +11 -0
  362. package/dist/variants/core/password.d.ts.map +1 -0
  363. package/dist/variants/core/password.js +29 -0
  364. package/dist/variants/core/password.js.map +1 -0
  365. package/dist/variants/core/phone.d.ts +3 -0
  366. package/dist/variants/core/phone.d.ts.map +1 -0
  367. package/dist/variants/core/phone.js +14 -0
  368. package/dist/variants/core/phone.js.map +1 -0
  369. package/dist/variants/core/radio.d.ts +8 -0
  370. package/dist/variants/core/radio.d.ts.map +1 -0
  371. package/dist/variants/core/radio.js +34 -0
  372. package/dist/variants/core/radio.js.map +1 -0
  373. package/dist/variants/core/select.d.ts +5 -0
  374. package/dist/variants/core/select.d.ts.map +1 -0
  375. package/dist/variants/core/select.js +11 -0
  376. package/dist/variants/core/select.js.map +1 -0
  377. package/dist/variants/core/slider.d.ts +19 -0
  378. package/dist/variants/core/slider.d.ts.map +1 -0
  379. package/dist/variants/core/slider.js +36 -0
  380. package/dist/variants/core/slider.js.map +1 -0
  381. package/dist/variants/core/text.d.ts +38 -0
  382. package/dist/variants/core/text.d.ts.map +1 -0
  383. package/{src/variants/core/text.tsx → dist/variants/core/text.js} +4 -56
  384. package/dist/variants/core/text.js.map +1 -0
  385. package/dist/variants/core/textarea.d.ts +3 -0
  386. package/dist/variants/core/textarea.d.ts.map +1 -0
  387. package/dist/variants/core/textarea.js +20 -0
  388. package/dist/variants/core/textarea.js.map +1 -0
  389. package/dist/variants/core/toggle.d.ts +6 -0
  390. package/dist/variants/core/toggle.d.ts.map +1 -0
  391. package/dist/variants/core/toggle.js +41 -0
  392. package/dist/variants/core/toggle.js.map +1 -0
  393. package/dist/variants/core/treeselect.d.ts +4 -0
  394. package/dist/variants/core/treeselect.d.ts.map +1 -0
  395. package/dist/variants/core/treeselect.js +7 -0
  396. package/dist/variants/core/treeselect.js.map +1 -0
  397. package/dist/variants/helpers/selection-summary.d.ts +24 -0
  398. package/dist/variants/helpers/selection-summary.d.ts.map +1 -0
  399. package/dist/variants/helpers/selection-summary.js +105 -0
  400. package/dist/variants/helpers/selection-summary.js.map +1 -0
  401. package/dist/variants/index.d.ts +16 -0
  402. package/dist/variants/index.d.ts.map +1 -0
  403. package/{src/variants/index.ts → dist/variants/index.js} +7 -27
  404. package/dist/variants/index.js.map +1 -0
  405. package/dist/variants/registry.d.ts +19 -0
  406. package/dist/variants/registry.d.ts.map +1 -0
  407. package/dist/variants/registry.js +29 -0
  408. package/dist/variants/registry.js.map +1 -0
  409. package/dist/variants/select-shared.d.ts +1 -0
  410. package/dist/variants/select-shared.d.ts.map +1 -0
  411. package/dist/variants/select-shared.js +2 -0
  412. package/dist/variants/select-shared.js.map +1 -0
  413. package/{src/variants/shared.ts → dist/variants/shared.d.ts} +3 -22
  414. package/dist/variants/shared.d.ts.map +1 -0
  415. package/dist/variants/shared.js +3 -0
  416. package/dist/variants/shared.js.map +1 -0
  417. package/package.json +5 -5
  418. package/.scaffold-cache.json +0 -537
  419. package/src/.scaffold-cache.json +0 -544
  420. package/src/adapters/axios.ts +0 -117
  421. package/src/adapters/index.ts +0 -91
  422. package/src/adapters/inertia.ts +0 -187
  423. package/src/core/bound/observe-bound-field.ts +0 -172
  424. package/src/core/bound/wait-for-bound-field.ts +0 -57
  425. package/src/core/core-root.tsx +0 -72
  426. package/src/core/core-shell.tsx +0 -44
  427. package/src/core/errors/index.ts +0 -2
  428. package/src/core/hooks/use-button.ts +0 -220
  429. package/src/core/hooks/use-core-utility.ts +0 -0
  430. package/src/core/hooks/use-field.ts +0 -497
  431. package/src/core/hooks/use-optional-field.ts +0 -28
  432. package/src/core/index.ts +0 -0
  433. package/src/core/registry/binder-registry.ts +0 -82
  434. package/src/core/test.tsx +0 -17
  435. package/src/global.d.ts +0 -14
  436. package/src/input/input-field.tsx +0 -854
  437. package/src/input/input-layout-graph.ts +0 -230
  438. package/src/lib/get-global-countries.ts +0 -87
  439. package/src/lib/utils.ts +0 -6
  440. package/src/presets/index.ts +0 -0
  441. package/src/presets/shadcn-preset.ts +0 -0
  442. package/src/presets/shadcn-variants/checkbox.tsx +0 -849
  443. package/src/presets/shadcn-variants/chips.tsx +0 -756
  444. package/src/presets/shadcn-variants/color.tsx +0 -284
  445. package/src/presets/shadcn-variants/custom.tsx +0 -227
  446. package/src/presets/shadcn-variants/date.tsx +0 -796
  447. package/src/presets/shadcn-variants/file.tsx +0 -764
  448. package/src/presets/shadcn-variants/keyvalue.tsx +0 -556
  449. package/src/presets/shadcn-variants/multiselect.tsx +0 -1132
  450. package/src/presets/shadcn-variants/number.tsx +0 -176
  451. package/src/presets/shadcn-variants/password.tsx +0 -737
  452. package/src/presets/shadcn-variants/phone.tsx +0 -628
  453. package/src/presets/shadcn-variants/radio.tsx +0 -578
  454. package/src/presets/shadcn-variants/select.tsx +0 -956
  455. package/src/presets/shadcn-variants/slider.tsx +0 -622
  456. package/src/presets/shadcn-variants/text.tsx +0 -343
  457. package/src/presets/shadcn-variants/textarea.tsx +0 -66
  458. package/src/presets/shadcn-variants/toggle.tsx +0 -218
  459. package/src/presets/shadcn-variants/treeselect.tsx +0 -784
  460. package/src/presets/ui/badge.tsx +0 -46
  461. package/src/presets/ui/button.tsx +0 -60
  462. package/src/presets/ui/calendar.tsx +0 -214
  463. package/src/presets/ui/checkbox.tsx +0 -115
  464. package/src/presets/ui/custom.tsx +0 -0
  465. package/src/presets/ui/dialog.tsx +0 -141
  466. package/src/presets/ui/field.tsx +0 -246
  467. package/src/presets/ui/input-mask.tsx +0 -739
  468. package/src/presets/ui/input-otp.tsx +0 -77
  469. package/src/presets/ui/input.tsx +0 -1011
  470. package/src/presets/ui/label.tsx +0 -22
  471. package/src/presets/ui/number.tsx +0 -1370
  472. package/src/presets/ui/popover.tsx +0 -46
  473. package/src/presets/ui/radio-group.tsx +0 -43
  474. package/src/presets/ui/scroll-area.tsx +0 -56
  475. package/src/presets/ui/select.tsx +0 -190
  476. package/src/presets/ui/separator.tsx +0 -28
  477. package/src/presets/ui/slider.tsx +0 -61
  478. package/src/presets/ui/switch.tsx +0 -32
  479. package/src/presets/ui/textarea.tsx +0 -634
  480. package/src/presets/ui/time-dropdowns.tsx +0 -350
  481. package/src/schema/field-map.ts +0 -0
  482. package/src/schema/index.ts +0 -0
  483. package/src/schema/presets.ts +0 -0
  484. package/src/variants/core/checkbox.tsx +0 -54
  485. package/src/variants/core/chips.tsx +0 -22
  486. package/src/variants/core/color.tsx +0 -16
  487. package/src/variants/core/date.tsx +0 -25
  488. package/src/variants/core/file.tsx +0 -9
  489. package/src/variants/core/keyvalue.tsx +0 -12
  490. package/src/variants/core/multiselect.tsx +0 -28
  491. package/src/variants/core/number.tsx +0 -115
  492. package/src/variants/core/password.tsx +0 -35
  493. package/src/variants/core/phone.tsx +0 -16
  494. package/src/variants/core/radio.tsx +0 -38
  495. package/src/variants/core/select.tsx +0 -15
  496. package/src/variants/core/slider.tsx +0 -55
  497. package/src/variants/core/textarea.tsx +0 -22
  498. package/src/variants/core/toggle.tsx +0 -50
  499. package/src/variants/core/treeselect.tsx +0 -11
  500. package/src/variants/helpers/selection-summary.tsx +0 -236
  501. package/src/variants/registry.ts +0 -38
  502. package/src/variants/select-shared.ts +0 -0
  503. package/tsconfig.json +0 -14
@@ -0,0 +1,192 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // src/presets/shadcn-variants/radio.tsx
3
+ import * as React from "react";
4
+ import { cn } from "@/lib/utils";
5
+ // Adjust path if your radio group lives elsewhere
6
+ import { RadioGroup, RadioGroupItem, } from "@/presets/ui/radio-group";
7
+ // ─────────────────────────────────────────────
8
+ // Helpers
9
+ // ─────────────────────────────────────────────
10
+ function paddingForDensity(density) {
11
+ switch (density) {
12
+ case "compact":
13
+ return "py-1.5";
14
+ case "loose":
15
+ return "py-3";
16
+ case "comfortable":
17
+ default:
18
+ return "py-1";
19
+ }
20
+ }
21
+ function labelTextSize(size) {
22
+ switch (size) {
23
+ case "sm":
24
+ return "text-xs";
25
+ case "lg":
26
+ return "text-base";
27
+ case "md":
28
+ default:
29
+ return "text-sm";
30
+ }
31
+ }
32
+ function descriptionTextSize(size) {
33
+ switch (size) {
34
+ case "sm":
35
+ return "text-[0.7rem]";
36
+ case "lg":
37
+ return "text-sm";
38
+ case "md":
39
+ default:
40
+ return "text-xs";
41
+ }
42
+ }
43
+ /**
44
+ * Normalise TItem[] into RadioItem<TValue>[] using one of:
45
+ * - explicit mappers
46
+ * - optionValue/optionLabel keys
47
+ * - native RadioItem fields
48
+ */
49
+ function normalizeItems(items, mappers, optionValueKey, optionLabelKey) {
50
+ // 1) Full mappers win – most explicit
51
+ if (mappers) {
52
+ return items.map((item, index) => ({
53
+ value: mappers.getValue(item, index),
54
+ label: mappers.getLabel(item, index),
55
+ description: mappers.getDescription
56
+ ? mappers.getDescription(item, index)
57
+ : undefined,
58
+ disabled: mappers.isDisabled
59
+ ? mappers.isDisabled(item, index)
60
+ : false,
61
+ key: mappers.getKey ? mappers.getKey(item, index) : index,
62
+ }));
63
+ }
64
+ // 2) optionValue / optionLabel keys
65
+ if (optionValueKey || optionLabelKey) {
66
+ return items.map((item, index) => {
67
+ const anyItem = item;
68
+ const rawValue = optionValueKey != null
69
+ ? anyItem[optionValueKey]
70
+ : anyItem.value;
71
+ const value = rawValue;
72
+ const rawLabel = optionLabelKey != null
73
+ ? anyItem[optionLabelKey]
74
+ : anyItem.label ?? String(rawValue ?? index);
75
+ const description = anyItem.description;
76
+ const disabled = !!anyItem.disabled;
77
+ const key = anyItem.key ?? index;
78
+ return {
79
+ value,
80
+ label: rawLabel,
81
+ description,
82
+ disabled,
83
+ key,
84
+ };
85
+ });
86
+ }
87
+ // 3) Fallback: assume TItem already matches RadioItem<TValue>
88
+ return items;
89
+ }
90
+ /**
91
+ * Shallow-ish equality for values.
92
+ */
93
+ function isEqualValue(a, b) {
94
+ return Object.is(a, b);
95
+ }
96
+ // ─────────────────────────────────────────────
97
+ // Component
98
+ // ─────────────────────────────────────────────
99
+ const InnerShadcnRadioVariant = (props, ref) => {
100
+ const {
101
+ // variant base
102
+ value, onValue, error, disabled, required,
103
+ // radio UI
104
+ items, mappers, optionValue, optionLabel, renderOption, layout = "list", columns = 2, itemGapPx, size = "md", density = "comfortable", "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, name, groupClassName, optionClassName, labelClassName, descriptionClassName, className, // alias for groupClassName
105
+ id,
106
+ // passthrough to RadioGroup
107
+ ...restGroupProps } = props;
108
+ const hasError = !!error;
109
+ const normalized = React.useMemo(() => normalizeItems(items, mappers, optionValue, optionLabel), [items, mappers, optionValue, optionLabel]);
110
+ // Map TValue → string for RadioGroup
111
+ const selectedString = React.useMemo(() => {
112
+ if (value === undefined)
113
+ return undefined;
114
+ const found = normalized.find((item) => isEqualValue(item.value, value));
115
+ return found ? String(found.value) : undefined;
116
+ }, [normalized, value]);
117
+ const handleSelect = React.useCallback((next) => {
118
+ if (!onValue || disabled)
119
+ return;
120
+ const detail = {
121
+ source: "variant",
122
+ raw: next,
123
+ nativeEvent: undefined,
124
+ meta: undefined,
125
+ };
126
+ onValue(next, detail);
127
+ }, [onValue, disabled]);
128
+ const handleRadioChange = React.useCallback((raw) => {
129
+ const found = normalized.find((item) => String(item.value) === raw);
130
+ if (!found)
131
+ return;
132
+ handleSelect(found.value);
133
+ }, [normalized, handleSelect]);
134
+ const groupStyle = React.useMemo(() => {
135
+ if (!itemGapPx) {
136
+ if (layout === "grid") {
137
+ return {
138
+ gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))`,
139
+ };
140
+ }
141
+ return undefined;
142
+ }
143
+ if (layout === "list") {
144
+ return { rowGap: itemGapPx };
145
+ }
146
+ return {
147
+ gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))`,
148
+ gap: itemGapPx,
149
+ };
150
+ }, [layout, columns, itemGapPx]);
151
+ const groupClasses = cn(layout === "grid" ? "grid" : "flex flex-col", groupClassName ?? className);
152
+ const baseOptionClass = cn(
153
+ // layout container for each option row
154
+ "relative flex items-start",
155
+ // keep disabled styles
156
+ "data-[disabled=true]:opacity-60 data-[disabled=true]:cursor-not-allowed",
157
+ // vertical padding from density
158
+ paddingForDensity(density), optionClassName);
159
+ const labelClassesBase = cn("font-medium text-foreground", labelTextSize(size), labelClassName);
160
+ const descriptionClassesBase = cn("mt-0.5 text-muted-foreground", descriptionTextSize(size), descriptionClassName);
161
+ return (_jsx(RadioGroup, { ref: ref, id: id, name: name, value: selectedString, onValueChange: handleRadioChange, disabled: disabled, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, "aria-invalid": hasError || undefined, "aria-required": required || undefined, className: groupClasses, style: groupStyle, "data-slot": "radio-group", ...restGroupProps, children: normalized.map((item, index) => {
162
+ const itemString = String(item.value);
163
+ const selected = selectedString === itemString;
164
+ const optionDisabled = !!disabled || !!item.disabled;
165
+ const optionKey = item.key ?? index;
166
+ const optionId = id ? `${id}-option-${optionKey}` : undefined;
167
+ const radioNode = (_jsx(RadioGroupItem, { id: optionId, value: itemString, disabled: optionDisabled, className: "mt-1" }));
168
+ // Custom renderer path
169
+ if (renderOption) {
170
+ return (_jsx("div", { "data-slot": "radio-option", "data-checked": selected ? "true" : "false", "data-disabled": optionDisabled ? "true" : "false", className: baseOptionClass, children: renderOption({
171
+ item,
172
+ index,
173
+ selected,
174
+ disabled: optionDisabled,
175
+ size,
176
+ density,
177
+ optionId,
178
+ radio: radioNode,
179
+ }) }, optionKey));
180
+ }
181
+ // Default rendering
182
+ return (_jsx("div", { "data-slot": "radio-option", "data-checked": selected ? "true" : "false", "data-disabled": optionDisabled ? "true" : "false", className: baseOptionClass, children: _jsxs("label", { htmlFor: optionId, className: "flex cursor-pointer items-start gap-3 w-full", children: [radioNode, _jsxs("div", { className: "flex flex-col min-w-0", children: [_jsx("span", { className: labelClassesBase, children: item.label }), item.description != null && (_jsx("span", { className: descriptionClassesBase, children: item.description }))] })] }) }, optionKey));
183
+ }) }));
184
+ };
185
+ /**
186
+ * Concrete Shadcn radio variant component.
187
+ *
188
+ * Cast to a generic-friendly type so TS can still infer TValue/TItem.
189
+ */
190
+ export const ShadcnRadioVariant = React.forwardRef(InnerShadcnRadioVariant);
191
+ export default ShadcnRadioVariant;
192
+ //# sourceMappingURL=radio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/radio.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,203 @@
1
+ import * as React from "react";
2
+ import type { VariantBaseProps } from "@/variants/shared";
3
+ type SelectPrimitive = string | number;
4
+ export type SelectOption = SelectPrimitive | {
5
+ label?: React.ReactNode;
6
+ value?: SelectPrimitive;
7
+ description?: React.ReactNode;
8
+ disabled?: boolean;
9
+ [key: string]: any;
10
+ };
11
+ type NormalizedSelectItem = {
12
+ key: string;
13
+ value: SelectPrimitive;
14
+ labelNode: React.ReactNode;
15
+ labelText: string;
16
+ description?: React.ReactNode;
17
+ disabled?: boolean;
18
+ icon?: React.ReactNode;
19
+ raw: SelectOption;
20
+ };
21
+ /**
22
+ * Shadcn-based Select variant.
23
+ */
24
+ export interface ShadcnSelectVariantProps extends Pick<VariantBaseProps<SelectPrimitive | undefined>, "value" | "onValue" | "error" | "disabled" | "readOnly" | "size" | "density"> {
25
+ /**
26
+ * Options for the select.
27
+ *
28
+ * You can pass:
29
+ * - primitives: ["ng", "gh", "ke"]
30
+ * - objects: [{ label, value, ...extra }]
31
+ */
32
+ options?: SelectOption[];
33
+ /**
34
+ * Automatically capitalise the first letter of the label
35
+ * (when the resolved label is a string).
36
+ */
37
+ autoCap?: boolean;
38
+ /**
39
+ * How to read the label from each option.
40
+ *
41
+ * - string → key on the option object
42
+ * - function → custom mapper
43
+ * - omitted → tries `label`, else String(value)
44
+ */
45
+ optionLabel?: string | ((item: SelectOption) => React.ReactNode);
46
+ /**
47
+ * How to read the value from each option.
48
+ *
49
+ * - string → key on the option object
50
+ * - function → custom mapper
51
+ * - omitted → uses `value`, or `id`, or `key`, or index
52
+ */
53
+ optionValue?: string | ((item: SelectOption) => SelectPrimitive);
54
+ /**
55
+ * Optional description line under the label.
56
+ */
57
+ optionDescription?: string | ((item: SelectOption) => React.ReactNode);
58
+ /**
59
+ * How to determine if an option is disabled.
60
+ */
61
+ optionDisabled?: string | ((item: SelectOption) => boolean);
62
+ /**
63
+ * How to extract an icon for each option.
64
+ *
65
+ * - string → key on the option object (default "icon")
66
+ * - function → custom mapper
67
+ */
68
+ optionIcon?: string | ((item: SelectOption) => React.ReactNode);
69
+ /**
70
+ * How to compute the React key for each option.
71
+ */
72
+ optionKey?: string | ((item: SelectOption, index: number) => React.Key);
73
+ /**
74
+ * Enable inline search inside the dropdown.
75
+ */
76
+ searchable?: boolean;
77
+ /**
78
+ * Placeholder for the search input.
79
+ */
80
+ searchPlaceholder?: string;
81
+ /**
82
+ * Label shown when there are no options available at all.
83
+ *
84
+ * If omitted, falls back to `emptySearchText` or a default message.
85
+ */
86
+ emptyLabel?: React.ReactNode;
87
+ /**
88
+ * Text to show when search yields no results
89
+ * (but there *are* options in general).
90
+ */
91
+ emptySearchText?: React.ReactNode;
92
+ /**
93
+ * Show a small clear button in the trigger when a value is selected.
94
+ */
95
+ clearable?: boolean;
96
+ /**
97
+ * Placeholder when nothing is selected.
98
+ */
99
+ placeholder?: React.ReactNode;
100
+ /**
101
+ * Wrapper class for the whole variant.
102
+ */
103
+ className?: string;
104
+ /**
105
+ * Extra classes for the SelectTrigger.
106
+ */
107
+ triggerClassName?: string;
108
+ /**
109
+ * Extra classes for the SelectContent popover.
110
+ */
111
+ contentClassName?: string;
112
+ /**
113
+ * Custom renderer for each option row.
114
+ */
115
+ renderOption?: (ctx: {
116
+ item: NormalizedSelectItem;
117
+ selected: boolean;
118
+ index: number;
119
+ option: React.ReactNode;
120
+ }) => React.ReactNode;
121
+ /**
122
+ * Custom renderer for the trigger value.
123
+ */
124
+ renderValue?: (ctx: {
125
+ selectedItem: NormalizedSelectItem | null;
126
+ placeholder?: React.ReactNode;
127
+ }) => React.ReactNode;
128
+ /**
129
+ * One or more icons displayed inside the trigger, on the left.
130
+ *
131
+ * If not provided and `icon` is set, that single icon
132
+ * is treated as `leadingIcons[0]`.
133
+ */
134
+ leadingIcons?: React.ReactNode[];
135
+ /**
136
+ * Icons displayed on the right side of the trigger,
137
+ * near the clear button / chevron area.
138
+ */
139
+ trailingIcons?: React.ReactNode[];
140
+ /**
141
+ * Convenience single-icon prop for the left side.
142
+ */
143
+ icon?: React.ReactNode;
144
+ /**
145
+ * Base gap between icons and text.
146
+ * Defaults to 4px-ish via `gap-1`.
147
+ */
148
+ iconGap?: number;
149
+ /**
150
+ * Extra spacing to apply between leading icons and the text.
151
+ */
152
+ leadingIconSpacing?: number;
153
+ /**
154
+ * Extra spacing to apply between trailing icons and the clear button.
155
+ */
156
+ trailingIconSpacing?: number;
157
+ /**
158
+ * Arbitrary React node rendered before the select (e.g. a button).
159
+ */
160
+ leadingControl?: React.ReactNode;
161
+ /**
162
+ * Arbitrary React node rendered after the select (e.g. a button).
163
+ */
164
+ trailingControl?: React.ReactNode;
165
+ /**
166
+ * Extra classes for the leading control wrapper.
167
+ */
168
+ leadingControlClassName?: string;
169
+ /**
170
+ * Extra classes for the trailing control wrapper.
171
+ */
172
+ trailingControlClassName?: string;
173
+ /**
174
+ * If true and there are controls, the select trigger + controls share
175
+ * a single visual box (borders, radius, focus states).
176
+ */
177
+ joinControls?: boolean;
178
+ /**
179
+ * When joinControls is true, whether the box styling extends over controls
180
+ * (true) or controls are visually separate (false).
181
+ */
182
+ extendBoxToControls?: boolean;
183
+ /**
184
+ * Enable incremental rendering for large option lists.
185
+ *
186
+ * When true, only a page of options is rendered initially,
187
+ * and more are revealed as the user scrolls down.
188
+ */
189
+ virtualScroll?: boolean;
190
+ /**
191
+ * Number of options to render per "page" when virtualScroll is enabled.
192
+ * Default: 50.
193
+ */
194
+ virtualScrollPageSize?: number;
195
+ /**
196
+ * Distance from the bottom (in px) at which the next page loads.
197
+ * Default: 48px.
198
+ */
199
+ virtualScrollThreshold?: number;
200
+ }
201
+ export declare const ShadcnSelectVariant: React.ForwardRefExoticComponent<ShadcnSelectVariantProps & React.RefAttributes<HTMLButtonElement>>;
202
+ export default ShadcnSelectVariant;
203
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/presets/shadcn-variants/select.tsx"],"names":[],"mappings":"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"}