@skybin-tech/nebula-ui 0.0.28 → 0.0.30

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 (273) hide show
  1. package/README.md +422 -356
  2. package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -1
  3. package/dist/cjs/components/Accordion/Accordion.cjs.map +1 -1
  4. package/dist/cjs/components/Alert/Alert.cjs.map +1 -1
  5. package/dist/cjs/components/Avatar/Avatar.cjs.map +1 -1
  6. package/dist/cjs/components/Badge/Badge.cjs.map +1 -1
  7. package/dist/cjs/components/Button/Button.cjs +1 -1
  8. package/dist/cjs/components/Button/Button.cjs.map +1 -1
  9. package/dist/cjs/components/Card/Card.cjs.map +1 -1
  10. package/dist/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
  11. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
  12. package/dist/cjs/components/Form/Checkbox.cjs.map +1 -1
  13. package/dist/cjs/components/Form/Combobox.cjs +124 -0
  14. package/dist/cjs/components/Form/Combobox.cjs.map +1 -0
  15. package/dist/cjs/components/Form/CountryPicker.cjs +101 -0
  16. package/dist/cjs/components/Form/CountryPicker.cjs.map +1 -0
  17. package/dist/cjs/components/Form/CountrySelect.cjs +111 -0
  18. package/dist/cjs/components/Form/CountrySelect.cjs.map +1 -0
  19. package/dist/cjs/components/Form/DatePicker.cjs +122 -0
  20. package/dist/cjs/components/Form/DatePicker.cjs.map +1 -0
  21. package/dist/cjs/components/Form/FieldLayout.cjs +65 -0
  22. package/dist/cjs/components/Form/FieldLayout.cjs.map +1 -0
  23. package/dist/cjs/components/Form/Form.cjs +12 -9
  24. package/dist/cjs/components/Form/Form.cjs.map +1 -1
  25. package/dist/cjs/components/Form/FormSwitch.cjs.map +1 -1
  26. package/dist/cjs/components/Form/PhoneInput.cjs +170 -0
  27. package/dist/cjs/components/Form/PhoneInput.cjs.map +1 -0
  28. package/dist/cjs/components/Form/Radio.cjs.map +1 -1
  29. package/dist/cjs/components/Form/Select.cjs +35 -47
  30. package/dist/cjs/components/Form/Select.cjs.map +1 -1
  31. package/dist/cjs/components/Form/TextArea.cjs +1 -1
  32. package/dist/cjs/components/Form/TextArea.cjs.map +1 -1
  33. package/dist/cjs/components/Form/TextBox.cjs +50 -61
  34. package/dist/cjs/components/Form/TextBox.cjs.map +1 -1
  35. package/dist/cjs/components/Form/context.cjs +25 -11
  36. package/dist/cjs/components/Form/context.cjs.map +1 -1
  37. package/dist/cjs/components/Form/hooks.cjs.map +1 -1
  38. package/dist/cjs/components/Form/index.cjs +16 -0
  39. package/dist/cjs/components/Form/variants.cjs.map +1 -1
  40. package/dist/cjs/components/Input/Input.cjs +2 -2
  41. package/dist/cjs/components/Input/Input.cjs.map +1 -1
  42. package/dist/cjs/components/Label/Label.cjs.map +1 -1
  43. package/dist/cjs/components/Pagination/Pagination.cjs +4 -4
  44. package/dist/cjs/components/Pagination/Pagination.cjs.map +1 -1
  45. package/dist/cjs/components/Separator/Separator.cjs.map +1 -1
  46. package/dist/cjs/components/Switch/Switch.cjs.map +1 -1
  47. package/dist/cjs/components/Tabs/Tabs.cjs.map +1 -1
  48. package/dist/cjs/components/Textarea/Textarea.cjs.map +1 -1
  49. package/dist/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  50. package/dist/cjs/data/countries.cjs +1062 -0
  51. package/dist/cjs/data/countries.cjs.map +1 -0
  52. package/dist/cjs/hooks/useDebounce.cjs.map +1 -1
  53. package/dist/cjs/hooks/useToast.cjs.map +1 -1
  54. package/dist/cjs/hooks/useToggle.cjs.map +1 -1
  55. package/dist/cjs/index.cjs +64 -4
  56. package/dist/cjs/primitives/accordion.cjs.map +1 -1
  57. package/dist/cjs/primitives/alert-dialog.cjs +73 -0
  58. package/dist/cjs/primitives/alert-dialog.cjs.map +1 -0
  59. package/dist/cjs/primitives/alert.cjs.map +1 -1
  60. package/dist/cjs/primitives/avatar.cjs.map +1 -1
  61. package/dist/cjs/primitives/badge.cjs.map +1 -1
  62. package/dist/cjs/primitives/breadcrumb.cjs +73 -0
  63. package/dist/cjs/primitives/breadcrumb.cjs.map +1 -0
  64. package/dist/cjs/primitives/button.cjs +8 -7
  65. package/dist/cjs/primitives/button.cjs.map +1 -1
  66. package/dist/cjs/primitives/calendar.cjs.map +1 -1
  67. package/dist/cjs/primitives/card.cjs.map +1 -1
  68. package/dist/cjs/primitives/checkbox.cjs.map +1 -1
  69. package/dist/cjs/primitives/command.cjs.map +1 -1
  70. package/dist/cjs/primitives/dialog.cjs.map +1 -1
  71. package/dist/cjs/primitives/dropdown-menu.cjs.map +1 -1
  72. package/dist/cjs/primitives/input-otp.cjs +49 -0
  73. package/dist/cjs/primitives/input-otp.cjs.map +1 -0
  74. package/dist/cjs/primitives/label.cjs.map +1 -1
  75. package/dist/cjs/primitives/popover.cjs.map +1 -1
  76. package/dist/cjs/primitives/progress.cjs +24 -0
  77. package/dist/cjs/primitives/progress.cjs.map +1 -0
  78. package/dist/cjs/primitives/radio-group.cjs.map +1 -1
  79. package/dist/cjs/primitives/scroll-area.cjs.map +1 -1
  80. package/dist/cjs/primitives/select.cjs.map +1 -1
  81. package/dist/cjs/primitives/separator.cjs.map +1 -1
  82. package/dist/cjs/primitives/sheet.cjs +78 -0
  83. package/dist/cjs/primitives/sheet.cjs.map +1 -0
  84. package/dist/cjs/primitives/slider.cjs +23 -0
  85. package/dist/cjs/primitives/slider.cjs.map +1 -0
  86. package/dist/cjs/primitives/sonner.cjs.map +1 -1
  87. package/dist/cjs/primitives/switch.cjs.map +1 -1
  88. package/dist/cjs/primitives/table.cjs.map +1 -1
  89. package/dist/cjs/primitives/tabs.cjs.map +1 -1
  90. package/dist/cjs/primitives/textarea.cjs +1 -1
  91. package/dist/cjs/primitives/textarea.cjs.map +1 -1
  92. package/dist/cjs/primitives/textbox.cjs +1 -1
  93. package/dist/cjs/primitives/textbox.cjs.map +1 -1
  94. package/dist/cjs/primitives/toast.cjs.map +1 -1
  95. package/dist/cjs/primitives/toggle.cjs.map +1 -1
  96. package/dist/cjs/utils/cn.cjs.map +1 -1
  97. package/dist/components/Alert/Alert.js.map +1 -1
  98. package/dist/components/AlertDialog/AlertDialog.d.ts +2 -0
  99. package/dist/components/AlertDialog/AlertDialog.d.ts.map +1 -0
  100. package/dist/components/AlertDialog/index.d.ts +2 -0
  101. package/dist/components/AlertDialog/index.d.ts.map +1 -0
  102. package/dist/components/Avatar/Avatar.js.map +1 -1
  103. package/dist/components/Badge/Badge.js.map +1 -1
  104. package/dist/components/Breadcrumb/Breadcrumb.d.ts +2 -0
  105. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
  106. package/dist/components/Breadcrumb/index.d.ts +2 -0
  107. package/dist/components/Breadcrumb/index.d.ts.map +1 -0
  108. package/dist/components/Button/Button.d.ts.map +1 -1
  109. package/dist/components/Button/Button.js +2 -2
  110. package/dist/components/Button/Button.js.map +1 -1
  111. package/dist/components/Card/Card.js.map +1 -1
  112. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  113. package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -1
  114. package/dist/components/Form/Checkbox.js.map +1 -1
  115. package/dist/components/Form/Combobox.d.ts +31 -0
  116. package/dist/components/Form/Combobox.d.ts.map +1 -0
  117. package/dist/components/Form/Combobox.js +124 -0
  118. package/dist/components/Form/Combobox.js.map +1 -0
  119. package/dist/components/Form/CountryPicker.d.ts +17 -0
  120. package/dist/components/Form/CountryPicker.d.ts.map +1 -0
  121. package/dist/components/Form/CountryPicker.js +101 -0
  122. package/dist/components/Form/CountryPicker.js.map +1 -0
  123. package/dist/components/Form/CountrySelect.d.ts +32 -0
  124. package/dist/components/Form/CountrySelect.d.ts.map +1 -0
  125. package/dist/components/Form/CountrySelect.js +111 -0
  126. package/dist/components/Form/CountrySelect.js.map +1 -0
  127. package/dist/components/Form/DatePicker.d.ts +27 -0
  128. package/dist/components/Form/DatePicker.d.ts.map +1 -0
  129. package/dist/components/Form/DatePicker.js +122 -0
  130. package/dist/components/Form/DatePicker.js.map +1 -0
  131. package/dist/components/Form/FieldLayout.d.ts +15 -0
  132. package/dist/components/Form/FieldLayout.d.ts.map +1 -0
  133. package/dist/components/Form/FieldLayout.js +65 -0
  134. package/dist/components/Form/FieldLayout.js.map +1 -0
  135. package/dist/components/Form/Form.d.ts +1 -1
  136. package/dist/components/Form/Form.d.ts.map +1 -1
  137. package/dist/components/Form/Form.js +12 -9
  138. package/dist/components/Form/Form.js.map +1 -1
  139. package/dist/components/Form/FormSwitch.js.map +1 -1
  140. package/dist/components/Form/PhoneInput.d.ts +38 -0
  141. package/dist/components/Form/PhoneInput.d.ts.map +1 -0
  142. package/dist/components/Form/PhoneInput.js +170 -0
  143. package/dist/components/Form/PhoneInput.js.map +1 -0
  144. package/dist/components/Form/Radio.js.map +1 -1
  145. package/dist/components/Form/Select.d.ts.map +1 -1
  146. package/dist/components/Form/Select.js +35 -47
  147. package/dist/components/Form/Select.js.map +1 -1
  148. package/dist/components/Form/TextArea.js +1 -1
  149. package/dist/components/Form/TextArea.js.map +1 -1
  150. package/dist/components/Form/TextBox.d.ts.map +1 -1
  151. package/dist/components/Form/TextBox.js +50 -61
  152. package/dist/components/Form/TextBox.js.map +1 -1
  153. package/dist/components/Form/context.d.ts.map +1 -1
  154. package/dist/components/Form/context.js +25 -11
  155. package/dist/components/Form/context.js.map +1 -1
  156. package/dist/components/Form/context.test.d.ts +2 -0
  157. package/dist/components/Form/context.test.d.ts.map +1 -0
  158. package/dist/components/Form/hooks.js.map +1 -1
  159. package/dist/components/Form/index.d.ts +12 -0
  160. package/dist/components/Form/index.d.ts.map +1 -1
  161. package/dist/components/Form/index.js +7 -1
  162. package/dist/components/Input/Input.js +2 -2
  163. package/dist/components/Input/Input.js.map +1 -1
  164. package/dist/components/InputOTP/InputOTP.d.ts +2 -0
  165. package/dist/components/InputOTP/InputOTP.d.ts.map +1 -0
  166. package/dist/components/InputOTP/index.d.ts +2 -0
  167. package/dist/components/InputOTP/index.d.ts.map +1 -0
  168. package/dist/components/Label/Label.js.map +1 -1
  169. package/dist/components/Pagination/Pagination.d.ts +2 -2
  170. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  171. package/dist/components/Pagination/Pagination.js +4 -4
  172. package/dist/components/Pagination/Pagination.js.map +1 -1
  173. package/dist/components/Progress/Progress.d.ts +2 -0
  174. package/dist/components/Progress/Progress.d.ts.map +1 -0
  175. package/dist/components/Progress/index.d.ts +2 -0
  176. package/dist/components/Progress/index.d.ts.map +1 -0
  177. package/dist/components/Separator/Separator.js.map +1 -1
  178. package/dist/components/Sheet/Sheet.d.ts +2 -0
  179. package/dist/components/Sheet/Sheet.d.ts.map +1 -0
  180. package/dist/components/Sheet/index.d.ts +2 -0
  181. package/dist/components/Sheet/index.d.ts.map +1 -0
  182. package/dist/components/Slider/Slider.d.ts +2 -0
  183. package/dist/components/Slider/Slider.d.ts.map +1 -0
  184. package/dist/components/Slider/index.d.ts +2 -0
  185. package/dist/components/Slider/index.d.ts.map +1 -0
  186. package/dist/components/Switch/Switch.js.map +1 -1
  187. package/dist/components/Tabs/Tabs.js.map +1 -1
  188. package/dist/components/Textarea/Textarea.js.map +1 -1
  189. package/dist/data/countries.d.ts +18 -0
  190. package/dist/data/countries.d.ts.map +1 -0
  191. package/dist/data/countries.js +1054 -0
  192. package/dist/data/countries.js.map +1 -0
  193. package/dist/hooks/useDebounce.js.map +1 -1
  194. package/dist/hooks/useToast.js.map +1 -1
  195. package/dist/hooks/useToggle.js.map +1 -1
  196. package/dist/index.d.ts +10 -2
  197. package/dist/index.d.ts.map +1 -1
  198. package/dist/index.js +16 -5
  199. package/dist/primitives/accordion.js.map +1 -1
  200. package/dist/primitives/alert-dialog.d.ts +21 -0
  201. package/dist/primitives/alert-dialog.d.ts.map +1 -0
  202. package/dist/primitives/alert-dialog.js +60 -0
  203. package/dist/primitives/alert-dialog.js.map +1 -0
  204. package/dist/primitives/alert.js.map +1 -1
  205. package/dist/primitives/avatar.js.map +1 -1
  206. package/dist/primitives/breadcrumb.d.ts +20 -0
  207. package/dist/primitives/breadcrumb.d.ts.map +1 -0
  208. package/dist/primitives/breadcrumb.js +65 -0
  209. package/dist/primitives/breadcrumb.js.map +1 -0
  210. package/dist/primitives/button.d.ts +4 -3
  211. package/dist/primitives/button.d.ts.map +1 -1
  212. package/dist/primitives/button.js +7 -7
  213. package/dist/primitives/button.js.map +1 -1
  214. package/dist/primitives/calendar.js.map +1 -1
  215. package/dist/primitives/card.js.map +1 -1
  216. package/dist/primitives/checkbox.js.map +1 -1
  217. package/dist/primitives/command.js.map +1 -1
  218. package/dist/primitives/dialog.js.map +1 -1
  219. package/dist/primitives/dropdown-menu.js.map +1 -1
  220. package/dist/primitives/index.d.ts +6 -0
  221. package/dist/primitives/index.d.ts.map +1 -1
  222. package/dist/primitives/input-otp.d.ts +35 -0
  223. package/dist/primitives/input-otp.d.ts.map +1 -0
  224. package/dist/primitives/input-otp.js +44 -0
  225. package/dist/primitives/input-otp.js.map +1 -0
  226. package/dist/primitives/input.d.ts +1 -3
  227. package/dist/primitives/input.d.ts.map +1 -1
  228. package/dist/primitives/label.js.map +1 -1
  229. package/dist/primitives/popover.js.map +1 -1
  230. package/dist/primitives/progress.d.ts +5 -0
  231. package/dist/primitives/progress.d.ts.map +1 -0
  232. package/dist/primitives/progress.js +21 -0
  233. package/dist/primitives/progress.js.map +1 -0
  234. package/dist/primitives/radio-group.js.map +1 -1
  235. package/dist/primitives/scroll-area.js.map +1 -1
  236. package/dist/primitives/select.js.map +1 -1
  237. package/dist/primitives/separator.js.map +1 -1
  238. package/dist/primitives/sheet.d.ts +26 -0
  239. package/dist/primitives/sheet.d.ts.map +1 -0
  240. package/dist/primitives/sheet.js +66 -0
  241. package/dist/primitives/sheet.js.map +1 -0
  242. package/dist/primitives/slider.d.ts +5 -0
  243. package/dist/primitives/slider.d.ts.map +1 -0
  244. package/dist/primitives/slider.js +20 -0
  245. package/dist/primitives/slider.js.map +1 -0
  246. package/dist/primitives/sonner.js.map +1 -1
  247. package/dist/primitives/switch.js.map +1 -1
  248. package/dist/primitives/table.js.map +1 -1
  249. package/dist/primitives/tabs.js.map +1 -1
  250. package/dist/primitives/textarea.js +1 -1
  251. package/dist/primitives/textarea.js.map +1 -1
  252. package/dist/primitives/textbox.js +1 -1
  253. package/dist/primitives/textbox.js.map +1 -1
  254. package/dist/primitives/toast.js.map +1 -1
  255. package/dist/primitives/toggle.js.map +1 -1
  256. package/package.json +168 -60
  257. package/src/styles/index.css +107 -0
  258. package/dist/cjs/primitives/input.cjs +0 -20
  259. package/dist/cjs/primitives/input.cjs.map +0 -1
  260. package/dist/primitives/input.js +0 -18
  261. package/dist/primitives/input.js.map +0 -1
  262. package/dist/stories/Button.d.ts +0 -15
  263. package/dist/stories/Button.d.ts.map +0 -1
  264. package/dist/stories/Button.stories.d.ts +0 -24
  265. package/dist/stories/Button.stories.d.ts.map +0 -1
  266. package/dist/stories/Header.d.ts +0 -12
  267. package/dist/stories/Header.d.ts.map +0 -1
  268. package/dist/stories/Header.stories.d.ts +0 -19
  269. package/dist/stories/Header.stories.d.ts.map +0 -1
  270. package/dist/stories/Page.d.ts +0 -3
  271. package/dist/stories/Page.d.ts.map +0 -1
  272. package/dist/stories/Page.stories.d.ts +0 -13
  273. package/dist/stories/Page.stories.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"context.cjs","names":[],"sources":["../../../../src/components/Form/context.ts"],"sourcesContent":["'use client';\n\nimport { createContext, useCallback, useRef } from \"react\";\r\nimport type { UseFormReturn, FieldValues } from \"react-hook-form\";\r\nimport { z } from \"zod\";\r\n\r\n/**\r\n * Validation rule types that can be applied to form fields\r\n */\r\nexport interface FieldValidationRules {\r\n /** Field is required */\r\n required?: boolean | string;\r\n /** Minimum length for strings */\r\n minLength?: number | { value: number; message: string };\r\n /** Maximum length for strings */\r\n maxLength?: number | { value: number; message: string };\r\n /** Minimum value for numbers */\r\n min?: number | { value: number; message: string };\r\n /** Maximum value for numbers */\r\n max?: number | { value: number; message: string };\r\n /** Regex pattern for validation */\r\n pattern?: RegExp | { value: RegExp; message: string };\r\n /** Email validation */\r\n email?: boolean | string;\r\n /** URL validation */\r\n url?: boolean | string;\r\n /** Custom validation function */\r\n validate?: (value: unknown) => boolean | string | Promise<boolean | string>;\r\n}\r\n\r\n/**\r\n * Form configuration options\r\n */\r\nexport interface FormConfig {\r\n /** Show validation errors inline */\r\n showInlineErrors?: boolean;\r\n /** Validate on blur */\r\n validateOnBlur?: boolean;\r\n /** Validate on change */\r\n validateOnChange?: boolean;\r\n /** Size of form controls */\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n /** Layout direction */\r\n layout?: \"horizontal\" | \"vertical\" | \"inline\";\r\n /** Label width for horizontal layout */\r\n labelWidth?: string | number;\r\n /** Whether form is disabled */\r\n disabled?: boolean;\r\n /** Colon after label */\r\n colon?: boolean;\r\n}\r\n\r\n/**\r\n * Field registration info\r\n */\r\nexport interface FieldRegistration {\r\n name: string;\r\n type: \"string\" | \"number\" | \"boolean\" | \"date\" | \"array\";\r\n rules: FieldValidationRules;\r\n}\r\n\r\n/**\r\n * Form context value\r\n */\r\nexport interface FormContextValue<TFieldValues extends FieldValues = FieldValues>\r\n extends FormConfig {\r\n form: UseFormReturn<TFieldValues>;\r\n /** Register a field's validation rules */\r\n registerFieldValidation: (field: FieldRegistration) => void;\r\n /** Unregister a field's validation rules */\r\n unregisterFieldValidation: (name: string) => void;\r\n /** Get current validation schema */\r\n getValidationSchema: () => z.ZodObject<Record<string, z.ZodTypeAny>>;\r\n /** Trigger validation for a specific field */\r\n triggerValidation: (name: string) => Promise<boolean>;\r\n}\r\n\r\n/**\r\n * Default form configuration\r\n */\r\nexport const defaultFormConfig: FormConfig = {\r\n showInlineErrors: true,\r\n validateOnBlur: true,\r\n validateOnChange: false,\r\n size: \"md\",\r\n layout: \"vertical\",\r\n disabled: false,\r\n colon: true,\r\n};\r\n\r\n/**\r\n * Form context for sharing form state and configuration\r\n */\r\nexport const FormConfigContext = createContext<FormContextValue | null>(null);\r\n\r\n/**\r\n * Build a Zod schema from validation rules\r\n */\r\nexport function buildZodSchemaFromRules(\r\n type: FieldRegistration[\"type\"],\r\n rules: FieldValidationRules\r\n): z.ZodTypeAny {\r\n // Helper to extract value and message\r\n const getValueAndMessage = <T>(\r\n rule: T | { value: T; message: string } | undefined,\r\n defaultMessage: string\r\n ): { value: T; message: string } | null => {\r\n if (rule === undefined) return null;\r\n if (typeof rule === \"object\" && rule !== null && \"value\" in rule) {\r\n return rule as { value: T; message: string };\r\n }\r\n return { value: rule as T, message: defaultMessage };\r\n };\r\n\r\n // Build string schema\r\n if (type === \"string\") {\r\n let schema = z.string();\r\n\r\n const minLengthRule = getValueAndMessage(\r\n rules.minLength,\r\n `Minimum ${typeof rules.minLength === \"number\" ? rules.minLength : (rules.minLength as { value: number })?.value} characters required`\r\n );\r\n if (minLengthRule) {\r\n schema = schema.min(minLengthRule.value as number, minLengthRule.message);\r\n }\r\n\r\n const maxLengthRule = getValueAndMessage(\r\n rules.maxLength,\r\n `Maximum ${typeof rules.maxLength === \"number\" ? rules.maxLength : (rules.maxLength as { value: number })?.value} characters allowed`\r\n );\r\n if (maxLengthRule) {\r\n schema = schema.max(maxLengthRule.value as number, maxLengthRule.message);\r\n }\r\n\r\n if (rules.pattern !== undefined) {\r\n const patternRule = rules.pattern instanceof RegExp\r\n ? { value: rules.pattern, message: \"Invalid format\" }\r\n : rules.pattern;\r\n schema = schema.regex(patternRule.value, patternRule.message);\r\n }\r\n\r\n if (rules.email) {\r\n const message = typeof rules.email === \"string\" ? rules.email : \"Invalid email address\";\r\n schema = schema.email(message);\r\n }\r\n\r\n if (rules.url) {\r\n const message = typeof rules.url === \"string\" ? rules.url : \"Invalid URL\";\r\n schema = schema.url(message);\r\n }\r\n\r\n // Handle required - for strings, require non-empty\r\n if (rules.required) {\r\n const message = typeof rules.required === \"string\" ? rules.required : \"This field is required\";\r\n schema = schema.min(1, message);\r\n return schema;\r\n }\r\n\r\n return schema.optional();\r\n }\r\n\r\n // Build number schema\r\n if (type === \"number\") {\r\n let schema = z.coerce.number();\r\n\r\n const minRule = getValueAndMessage(\r\n rules.min,\r\n `Minimum value is ${typeof rules.min === \"number\" ? rules.min : (rules.min as { value: number })?.value}`\r\n );\r\n if (minRule) {\r\n schema = schema.min(minRule.value as number, minRule.message);\r\n }\r\n\r\n const maxRule = getValueAndMessage(\r\n rules.max,\r\n `Maximum value is ${typeof rules.max === \"number\" ? rules.max : (rules.max as { value: number })?.value}`\r\n );\r\n if (maxRule) {\r\n schema = schema.max(maxRule.value as number, maxRule.message);\r\n }\r\n\r\n if (!rules.required) {\r\n return schema.optional();\r\n }\r\n return schema;\r\n }\r\n\r\n // Build boolean schema\r\n if (type === \"boolean\") {\r\n const schema = z.boolean();\r\n if (rules.required) {\r\n // For required boolean, must be true (like accepting terms)\r\n return schema.refine((val) => val === true, {\r\n message: typeof rules.required === \"string\" ? rules.required : \"This field is required\",\r\n });\r\n }\r\n return schema.optional();\r\n }\r\n\r\n // Build date schema\r\n if (type === \"date\") {\r\n const schema = z.coerce.date();\r\n if (!rules.required) {\r\n return schema.optional();\r\n }\r\n return schema;\r\n }\r\n\r\n // Build array schema\r\n if (type === \"array\") {\r\n let schema = z.array(z.unknown());\r\n if (rules.required) {\r\n const message = typeof rules.required === \"string\" ? rules.required : \"This field is required\";\r\n schema = schema.min(1, message);\r\n }\r\n return schema;\r\n }\r\n\r\n // Default fallback\r\n return z.unknown();\r\n}\r\n\r\n/**\r\n * Hook to manage field validations\r\n */\r\nexport function useFieldValidationRegistry() {\r\n const fieldsRef = useRef<Map<string, FieldRegistration>>(new Map());\r\n\r\n const registerFieldValidation = useCallback((field: FieldRegistration) => {\r\n fieldsRef.current.set(field.name, field);\r\n }, []);\r\n\r\n const unregisterFieldValidation = useCallback((name: string) => {\r\n fieldsRef.current.delete(name);\r\n }, []);\r\n\r\n const getValidationSchema = useCallback(() => {\r\n const shape: Record<string, z.ZodTypeAny> = {};\r\n \r\n fieldsRef.current.forEach((field) => {\r\n shape[field.name] = buildZodSchemaFromRules(field.type, field.rules);\r\n });\r\n\r\n return z.object(shape);\r\n }, []);\r\n\r\n return {\r\n registerFieldValidation,\r\n unregisterFieldValidation,\r\n getValidationSchema,\r\n fieldsRef,\r\n };\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"context.cjs","names":[],"sources":["../../../../src/components/Form/context.ts"],"sourcesContent":["'use client';\r\n\r\nimport { createContext, useCallback, useRef } from \"react\";\r\nimport type { UseFormReturn, FieldValues } from \"react-hook-form\";\r\nimport { z } from \"zod\";\r\n\r\n/**\r\n * Validation rule types that can be applied to form fields\r\n */\r\nexport interface FieldValidationRules {\r\n /** Field is required */\r\n required?: boolean | string;\r\n /** Minimum length for strings */\r\n minLength?: number | { value: number; message: string };\r\n /** Maximum length for strings */\r\n maxLength?: number | { value: number; message: string };\r\n /** Minimum value for numbers */\r\n min?: number | { value: number; message: string };\r\n /** Maximum value for numbers */\r\n max?: number | { value: number; message: string };\r\n /** Regex pattern for validation */\r\n pattern?: RegExp | { value: RegExp; message: string };\r\n /** Email validation */\r\n email?: boolean | string;\r\n /** URL validation */\r\n url?: boolean | string;\r\n /** Custom validation function */\r\n validate?: (value: unknown) => boolean | string | Promise<boolean | string>;\r\n}\r\n\r\n/**\r\n * Form configuration options\r\n */\r\nexport interface FormConfig {\r\n /** Show validation errors inline */\r\n showInlineErrors?: boolean;\r\n /** Validate on blur */\r\n validateOnBlur?: boolean;\r\n /** Validate on change */\r\n validateOnChange?: boolean;\r\n /** Size of form controls */\r\n size?: \"sm\" | \"md\" | \"lg\";\r\n /** Layout direction */\r\n layout?: \"horizontal\" | \"vertical\" | \"inline\";\r\n /** Label width for horizontal layout */\r\n labelWidth?: string | number;\r\n /** Whether form is disabled */\r\n disabled?: boolean;\r\n /** Colon after label */\r\n colon?: boolean;\r\n}\r\n\r\n/**\r\n * Field registration info\r\n */\r\nexport interface FieldRegistration {\r\n name: string;\r\n type: \"string\" | \"number\" | \"boolean\" | \"date\" | \"array\";\r\n rules: FieldValidationRules;\r\n}\r\n\r\n/**\r\n * Form context value\r\n */\r\nexport interface FormContextValue<TFieldValues extends FieldValues = FieldValues>\r\n extends FormConfig {\r\n form: UseFormReturn<TFieldValues>;\r\n /** Register a field's validation rules */\r\n registerFieldValidation: (field: FieldRegistration) => void;\r\n /** Unregister a field's validation rules */\r\n unregisterFieldValidation: (name: string) => void;\r\n /** Get current validation schema */\r\n getValidationSchema: () => z.ZodObject<Record<string, z.ZodTypeAny>>;\r\n /** Trigger validation for a specific field */\r\n triggerValidation: (name: string) => Promise<boolean>;\r\n}\r\n\r\n/**\r\n * Default form configuration\r\n */\r\nexport const defaultFormConfig: FormConfig = {\r\n showInlineErrors: true,\r\n validateOnBlur: true,\r\n validateOnChange: false,\r\n size: \"md\",\r\n layout: \"vertical\",\r\n disabled: false,\r\n colon: true,\r\n};\r\n\r\n/**\r\n * Form context for sharing form state and configuration\r\n */\r\nexport const FormConfigContext = createContext<FormContextValue | null>(null);\r\n\r\n/**\r\n * Build a Zod schema from validation rules\r\n */\r\nexport function buildZodSchemaFromRules(\r\n type: FieldRegistration[\"type\"],\r\n rules: FieldValidationRules\r\n): z.ZodTypeAny {\r\n // Helper to extract value and message\r\n const getValueAndMessage = <T>(\r\n rule: T | { value: T; message: string } | undefined,\r\n defaultMessage: string\r\n ): { value: T; message: string } | null => {\r\n if (rule === undefined) return null;\r\n if (typeof rule === \"object\" && rule !== null && \"value\" in rule) {\r\n return rule as { value: T; message: string };\r\n }\r\n return { value: rule as T, message: defaultMessage };\r\n };\r\n\r\n // Build string schema\r\n if (type === \"string\") {\r\n let schema = z.string();\r\n\r\n const minLengthRule = getValueAndMessage(\r\n rules.minLength,\r\n `Minimum ${typeof rules.minLength === \"number\" ? rules.minLength : (rules.minLength as { value: number })?.value} characters required`\r\n );\r\n if (minLengthRule) {\r\n schema = schema.min(minLengthRule.value as number, minLengthRule.message);\r\n }\r\n\r\n const maxLengthRule = getValueAndMessage(\r\n rules.maxLength,\r\n `Maximum ${typeof rules.maxLength === \"number\" ? rules.maxLength : (rules.maxLength as { value: number })?.value} characters allowed`\r\n );\r\n if (maxLengthRule) {\r\n schema = schema.max(maxLengthRule.value as number, maxLengthRule.message);\r\n }\r\n\r\n if (rules.pattern !== undefined) {\r\n const patternRule = rules.pattern instanceof RegExp\r\n ? { value: rules.pattern, message: \"Invalid format\" }\r\n : rules.pattern;\r\n schema = schema.regex(patternRule.value, patternRule.message);\r\n }\r\n\r\n if (rules.email) {\r\n const message = typeof rules.email === \"string\" ? rules.email : \"Invalid email address\";\r\n schema = schema.email(message);\r\n }\r\n\r\n if (rules.url) {\r\n const message = typeof rules.url === \"string\" ? rules.url : \"Invalid URL\";\r\n schema = schema.url(message);\r\n }\r\n\r\n // Handle required - for strings, require non-empty\r\n if (rules.required) {\r\n const message = typeof rules.required === \"string\" ? rules.required : \"This field is required\";\r\n return finalizeSchema(\r\n z.preprocess(\r\n (value) => (value === undefined || value === null ? \"\" : value),\r\n schema.min(1, message)\r\n ),\r\n rules\r\n );\r\n }\r\n\r\n return finalizeSchema(schema.optional(), rules);\r\n }\r\n\r\n // Build number schema\r\n if (type === \"number\") {\r\n let schema = z.coerce.number();\r\n\r\n const minRule = getValueAndMessage(\r\n rules.min,\r\n `Minimum value is ${typeof rules.min === \"number\" ? rules.min : (rules.min as { value: number })?.value}`\r\n );\r\n if (minRule) {\r\n schema = schema.min(minRule.value as number, minRule.message);\r\n }\r\n\r\n const maxRule = getValueAndMessage(\r\n rules.max,\r\n `Maximum value is ${typeof rules.max === \"number\" ? rules.max : (rules.max as { value: number })?.value}`\r\n );\r\n if (maxRule) {\r\n schema = schema.max(maxRule.value as number, maxRule.message);\r\n }\r\n\r\n if (!rules.required) {\r\n return finalizeSchema(schema.optional(), rules);\r\n }\r\n return finalizeSchema(schema, rules);\r\n }\r\n\r\n // Build boolean schema\r\n if (type === \"boolean\") {\r\n const schema = z.boolean();\r\n if (rules.required) {\r\n return finalizeSchema(\r\n schema.refine((val) => val === true, {\r\n message: typeof rules.required === \"string\" ? rules.required : \"This field is required\",\r\n }),\r\n rules\r\n );\r\n }\r\n return finalizeSchema(schema.optional(), rules);\r\n }\r\n\r\n // Build date schema\r\n if (type === \"date\") {\r\n const schema = z.coerce.date();\r\n if (!rules.required) {\r\n return finalizeSchema(schema.optional(), rules);\r\n }\r\n return finalizeSchema(schema, rules);\r\n }\r\n\r\n // Build array schema\r\n if (type === \"array\") {\r\n let schema = z.array(z.unknown());\r\n if (rules.required) {\r\n const message = typeof rules.required === \"string\" ? rules.required : \"This field is required\";\r\n schema = schema.min(1, message);\r\n }\r\n return finalizeSchema(schema, rules);\r\n }\r\n\r\n // Default fallback\r\n return finalizeSchema(z.unknown(), rules);\r\n}\r\n\r\nfunction applyCustomValidate(\r\n schema: z.ZodTypeAny,\r\n rules: FieldValidationRules\r\n): z.ZodTypeAny {\r\n if (!rules.validate) {\r\n return schema;\r\n }\r\n\r\n const validateFn = rules.validate;\r\n\r\n return schema.superRefine(async (value, ctx) => {\r\n const result = await validateFn(value);\r\n\r\n if (result === true) {\r\n return;\r\n }\r\n\r\n ctx.addIssue({\r\n code: z.ZodIssueCode.custom,\r\n message: typeof result === \"string\" ? result : \"Invalid value\",\r\n });\r\n });\r\n}\r\n\r\nfunction finalizeSchema(\r\n schema: z.ZodTypeAny,\r\n rules: FieldValidationRules\r\n): z.ZodTypeAny {\r\n return applyCustomValidate(schema, rules);\r\n}\r\n\r\n/**\r\n * Hook to manage field validations\r\n */\r\nexport function useFieldValidationRegistry() {\r\n const fieldsRef = useRef<Map<string, FieldRegistration>>(new Map());\r\n\r\n const registerFieldValidation = useCallback((field: FieldRegistration) => {\r\n fieldsRef.current.set(field.name, field);\r\n }, []);\r\n\r\n const unregisterFieldValidation = useCallback((name: string) => {\r\n fieldsRef.current.delete(name);\r\n }, []);\r\n\r\n const getValidationSchema = useCallback(() => {\r\n const shape: Record<string, z.ZodTypeAny> = {};\r\n \r\n fieldsRef.current.forEach((field) => {\r\n shape[field.name] = buildZodSchemaFromRules(field.type, field.rules);\r\n });\r\n\r\n return z.object(shape);\r\n }, []);\r\n\r\n return {\r\n registerFieldValidation,\r\n unregisterFieldValidation,\r\n getValidationSchema,\r\n fieldsRef,\r\n };\r\n}\r\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.cjs","names":[],"sources":["../../../../src/components/Form/hooks.ts"],"sourcesContent":["'use client';\n\nimport { useContext } from \"react\";\r\nimport {\r\n useFormContext as useRHFFormContext,\r\n useController,\r\n type FieldValues,\r\n type FieldPath,\r\n type UseControllerProps,\r\n type UseControllerReturn,\r\n} from \"react-hook-form\";\r\nimport { FormConfigContext, type FormContextValue, type FormConfig } from \"./context\";\r\n\r\n/**\r\n * Hook to access form configuration context\r\n */\r\nexport function useFormConfig<TFieldValues extends FieldValues = FieldValues>(): FormContextValue<TFieldValues> {\r\n const context = useContext(FormConfigContext) as FormContextValue<TFieldValues> | null;\r\n if (!context) {\r\n throw new Error(\"useFormConfig must be used within a Form component\");\r\n }\r\n return context;\r\n}\r\n\r\n/**\r\n * Hook to access react-hook-form context directly\r\n */\r\nexport function useForm<TFieldValues extends FieldValues = FieldValues>() {\r\n return useRHFFormContext<TFieldValues>();\r\n}\r\n\r\n/**\r\n * Hook to create a controlled field with form context awareness\r\n */\r\nexport function useFormField<\r\n TFieldValues extends FieldValues = FieldValues,\r\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\r\n>(\r\n props: UseControllerProps<TFieldValues, TName>\r\n): UseControllerReturn<TFieldValues, TName> & { config: FormConfig } {\r\n const { form, ...config } = useFormConfig<TFieldValues>();\r\n const controller = useController<TFieldValues, TName>({\r\n ...props,\r\n control: form.control,\r\n });\r\n\r\n return {\r\n ...controller,\r\n config,\r\n };\r\n}\r\n\r\n/**\r\n * Hook to get field error\r\n */\r\nexport function useFieldError<\r\n TFieldValues extends FieldValues = FieldValues,\r\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\r\n>(name: TName): string | undefined {\r\n const { form } = useFormConfig<TFieldValues>();\r\n const error = form.formState.errors[name];\r\n return error?.message as string | undefined;\r\n}\r\n"],"mappings":";;;;;;;;;AAgBA,SAAgB,gBAAgG;CAC9G,MAAM,WAAA,GAAA,MAAA,WAAA,CAAqB,gBAAA,iBAAiB;CAC5C,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,oDAAoD;CAEtE,OAAO;AACT;;;;AAKA,SAAgB,UAA0D;CACxE,QAAA,GAAA,gBAAA,eAAA,CAAuC;AACzC;;;;AAKA,SAAgB,aAId,OACmE;CACnE,MAAM,EAAE,MAAM,GAAG,WAAW,cAA4B;CAMxD,OAAO;EACL,IAAA,GAAA,gBAAA,cAAA,CANoD;GACpD,GAAG;GACH,SAAS,KAAK;EAChB,CAGK;EACH;CACF;AACF;;;;AAKA,SAAgB,cAGd,MAAiC;CACjC,MAAM,EAAE,SAAS,cAA4B;CAE7C,OADc,KAAK,UAAU,OAAO,KAC7B,EAAO;AAChB"}
1
+ {"version":3,"file":"hooks.cjs","names":[],"sources":["../../../../src/components/Form/hooks.ts"],"sourcesContent":["'use client';\r\n\r\nimport { useContext } from \"react\";\r\nimport {\r\n useFormContext as useRHFFormContext,\r\n useController,\r\n type FieldValues,\r\n type FieldPath,\r\n type UseControllerProps,\r\n type UseControllerReturn,\r\n} from \"react-hook-form\";\r\nimport { FormConfigContext, type FormContextValue, type FormConfig } from \"./context\";\r\n\r\n/**\r\n * Hook to access form configuration context\r\n */\r\nexport function useFormConfig<TFieldValues extends FieldValues = FieldValues>(): FormContextValue<TFieldValues> {\r\n const context = useContext(FormConfigContext) as FormContextValue<TFieldValues> | null;\r\n if (!context) {\r\n throw new Error(\"useFormConfig must be used within a Form component\");\r\n }\r\n return context;\r\n}\r\n\r\n/**\r\n * Hook to access react-hook-form context directly\r\n */\r\nexport function useForm<TFieldValues extends FieldValues = FieldValues>() {\r\n return useRHFFormContext<TFieldValues>();\r\n}\r\n\r\n/**\r\n * Hook to create a controlled field with form context awareness\r\n */\r\nexport function useFormField<\r\n TFieldValues extends FieldValues = FieldValues,\r\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\r\n>(\r\n props: UseControllerProps<TFieldValues, TName>\r\n): UseControllerReturn<TFieldValues, TName> & { config: FormConfig } {\r\n const { form, ...config } = useFormConfig<TFieldValues>();\r\n const controller = useController<TFieldValues, TName>({\r\n ...props,\r\n control: form.control,\r\n });\r\n\r\n return {\r\n ...controller,\r\n config,\r\n };\r\n}\r\n\r\n/**\r\n * Hook to get field error\r\n */\r\nexport function useFieldError<\r\n TFieldValues extends FieldValues = FieldValues,\r\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\r\n>(name: TName): string | undefined {\r\n const { form } = useFormConfig<TFieldValues>();\r\n const error = form.formState.errors[name];\r\n return error?.message as string | undefined;\r\n}\r\n"],"mappings":";;;;;;;;;AAgBA,SAAgB,gBAAgG;CAC9G,MAAM,WAAA,GAAU,MAAA,WAAA,CAAW,gBAAA,iBAAiB;CAC5C,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,oDAAoD;CAEtE,OAAO;AACT;;;;AAKA,SAAgB,UAA0D;CACxE,QAAA,GAAO,gBAAA,eAAA,CAAgC;AACzC;;;;AAKA,SAAgB,aAId,OACmE;CACnE,MAAM,EAAE,MAAM,GAAG,WAAW,cAA4B;CAMxD,OAAO;EACL,IAAA,GANiB,gBAAA,cAAA,CAAmC;GACpD,GAAG;GACH,SAAS,KAAK;EAChB,CAGK;EACH;CACF;AACF;;;;AAKA,SAAgB,cAGd,MAAiC;CACjC,MAAM,EAAE,SAAS,cAA4B;CAE7C,OADc,KAAK,UAAU,OAAO,KAC7B,EAAO;AAChB"}
@@ -2,19 +2,35 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const require_context = require("./context.cjs");
4
4
  const require_Form = require("./Form.cjs");
5
+ const require_FieldLayout = require("./FieldLayout.cjs");
5
6
  const require_TextBox = require("./TextBox.cjs");
6
7
  const require_TextArea = require("./TextArea.cjs");
7
8
  const require_Select = require("./Select.cjs");
9
+ const require_CountryPicker = require("./CountryPicker.cjs");
10
+ const require_CountrySelect = require("./CountrySelect.cjs");
11
+ const require_PhoneInput = require("./PhoneInput.cjs");
12
+ const require_DatePicker = require("./DatePicker.cjs");
13
+ const require_Combobox = require("./Combobox.cjs");
8
14
  const require_Checkbox = require("./Checkbox.cjs");
9
15
  const require_Radio = require("./Radio.cjs");
10
16
  const require_FormSwitch = require("./FormSwitch.cjs");
11
17
  const require_hooks = require("./hooks.cjs");
12
18
  exports.Checkbox = require_Checkbox.Checkbox;
19
+ exports.Combobox = require_Combobox.Combobox;
20
+ exports.CountryPicker = require_CountryPicker.CountryPicker;
21
+ exports.CountrySelect = require_CountrySelect.CountrySelect;
22
+ exports.DatePicker = require_DatePicker.DatePicker;
23
+ exports.FieldLayout = require_FieldLayout.FieldLayout;
13
24
  exports.Form = require_Form.Form;
14
25
  exports.FormCheckbox = require_Checkbox.Checkbox;
26
+ exports.FormCombobox = require_Combobox.Combobox;
15
27
  exports.FormConfigContext = require_context.FormConfigContext;
28
+ exports.FormCountrySelect = require_CountrySelect.CountrySelect;
29
+ exports.FormDatePicker = require_DatePicker.DatePicker;
30
+ exports.FormPhoneInput = require_PhoneInput.PhoneInput;
16
31
  exports.FormSelect = require_Select.Select;
17
32
  exports.FormSwitch = require_FormSwitch.FormSwitch;
33
+ exports.PhoneInput = require_PhoneInput.PhoneInput;
18
34
  exports.RadioGroup = require_Radio.RadioGroup;
19
35
  exports.RadioItem = require_Radio.RadioItem;
20
36
  exports.Select = require_Select.Select;
@@ -1 +1 @@
1
- {"version":3,"file":"variants.cjs","names":[],"sources":["../../../../src/components/Form/variants.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\r\n\r\n/**\r\n * Shared label variant for all form field components.\r\n * Shows a required asterisk when required=true.\r\n */\r\nexport const labelVariants = cva(\"block text-sm font-medium mb-1.5\", {\r\n variants: {\r\n required: {\r\n true: \"after:content-['*'] after:ml-0.5 after:text-destructive\",\r\n false: \"\",\r\n },\r\n },\r\n defaultVariants: {\r\n required: false,\r\n },\r\n});\r\n"],"mappings":";;;;;;AAMA,IAAa,iBAAA,qCAAA,CAAA,CAAA,IAAA,CAAoB,oCAAoC;CACnE,UAAU,EACR,UAAU;EACR,MAAM;EACN,OAAO;CACT,EACF;CACA,iBAAiB,EACf,UAAU,MACZ;AACF,CAAC"}
1
+ {"version":3,"file":"variants.cjs","names":[],"sources":["../../../../src/components/Form/variants.ts"],"sourcesContent":["import { cva } from \"class-variance-authority\";\r\n\r\n/**\r\n * Shared label variant for all form field components.\r\n * Shows a required asterisk when required=true.\r\n */\r\nexport const labelVariants = cva(\"block text-sm font-medium mb-1.5\", {\r\n variants: {\r\n required: {\r\n true: \"after:content-['*'] after:ml-0.5 after:text-destructive\",\r\n false: \"\",\r\n },\r\n },\r\n defaultVariants: {\r\n required: false,\r\n },\r\n});\r\n"],"mappings":";;;;;;AAMA,IAAa,iBAAA,qCAAgB,CAAA,CAAA,IAAA,CAAI,oCAAoC;CACnE,UAAU,EACR,UAAU;EACR,MAAM;EACN,OAAO;CACT,EACF;CACA,iBAAiB,EACf,UAAU,MACZ;AACF,CAAC"}
@@ -1,9 +1,9 @@
1
1
  "use client";
2
- const require_input = require("../../primitives/input.cjs");
2
+ const require_textbox = require("../../primitives/textbox.cjs");
3
3
  let react = require("react");
4
4
  let react_jsx_runtime = require("react/jsx-runtime");
5
5
  //#region src/components/Input/Input.tsx
6
- var Input = (0, react.forwardRef)((props, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_input.Input, {
6
+ var Input = (0, react.forwardRef)((props, ref) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_textbox.TextBoxPrimitive, {
7
7
  ref,
8
8
  ...props
9
9
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"Input.cjs","names":[],"sources":["../../../../src/components/Input/Input.tsx"],"sourcesContent":["import { forwardRef } from \"react\"\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\nimport { Input as InputPrimitive } from \"../../primitives/input\"\n\nexport type InputProps = ComponentPropsWithoutRef<typeof InputPrimitive>\n\nexport const Input = forwardRef<\n ElementRef<typeof InputPrimitive>,\n InputProps\n>((props, ref) => <InputPrimitive ref={ref} {...props} />)\nInput.displayName = \"Input\"\n"],"mappings":";;;;;AAMA,IAAa,SAAA,GAAA,MAAA,WAAA,EAGV,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,OAAD;CAAqB;CAAK,GAAI;AAAQ,CAAA,CAAC;AACzD,MAAM,cAAc"}
1
+ {"version":3,"file":"Input.cjs","names":[],"sources":["../../../../src/components/Input/Input.tsx"],"sourcesContent":["import { forwardRef } from \"react\"\r\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\r\nimport { Input as InputPrimitive } from \"../../primitives/input\"\r\n\r\nexport type InputProps = ComponentPropsWithoutRef<typeof InputPrimitive>\r\n\r\nexport const Input = forwardRef<\r\n ElementRef<typeof InputPrimitive>,\r\n InputProps\r\n>((props, ref) => <InputPrimitive ref={ref} {...props} />)\r\nInput.displayName = \"Input\"\r\n"],"mappings":";;;;;AAMA,IAAa,SAAA,GAAQ,MAAA,WAAA,EAGlB,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAA,kBAAD;CAAqB;CAAK,GAAI;AAAQ,CAAA,CAAC;AACzD,MAAM,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Label.cjs","names":[],"sources":["../../../../src/components/Label/Label.tsx"],"sourcesContent":["import { forwardRef } from \"react\"\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\nimport { Label as LabelPrimitive } from \"../../primitives/label\"\n\nexport type LabelProps = ComponentPropsWithoutRef<typeof LabelPrimitive>\n\nexport const Label = forwardRef<\n ElementRef<typeof LabelPrimitive>,\n LabelProps\n>((props, ref) => <LabelPrimitive ref={ref} {...props} />)\nLabel.displayName = \"Label\"\n"],"mappings":";;;;;AAMA,IAAa,SAAA,GAAA,MAAA,WAAA,EAGV,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,OAAD;CAAqB;CAAK,GAAI;AAAQ,CAAA,CAAC;AACzD,MAAM,cAAc"}
1
+ {"version":3,"file":"Label.cjs","names":[],"sources":["../../../../src/components/Label/Label.tsx"],"sourcesContent":["import { forwardRef } from \"react\"\r\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\r\nimport { Label as LabelPrimitive } from \"../../primitives/label\"\r\n\r\nexport type LabelProps = ComponentPropsWithoutRef<typeof LabelPrimitive>\r\n\r\nexport const Label = forwardRef<\r\n ElementRef<typeof LabelPrimitive>,\r\n LabelProps\r\n>((props, ref) => <LabelPrimitive ref={ref} {...props} />)\r\nLabel.displayName = \"Label\"\r\n"],"mappings":";;;;;AAMA,IAAa,SAAA,GAAQ,MAAA,WAAA,EAGlB,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAA,OAAD;CAAqB;CAAK,GAAI;AAAQ,CAAA,CAAC;AACzD,MAAM,cAAc"}
@@ -35,18 +35,18 @@ var PaginationLink = ({ className, isActive, size = "icon", ...props }) => /* @_
35
35
  ...props
36
36
  });
37
37
  PaginationLink.displayName = "PaginationLink";
38
- var PaginationPrevious = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(PaginationLink, {
38
+ var PaginationPrevious = ({ className, size = "default", ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(PaginationLink, {
39
39
  "aria-label": "Go to previous page",
40
- size: "default",
41
40
  className: require_cn.cn("gap-1 pl-2.5", className),
41
+ size,
42
42
  ...props,
43
43
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronLeft, { className: "h-4 w-4" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "Previous" })]
44
44
  });
45
45
  PaginationPrevious.displayName = "PaginationPrevious";
46
- var PaginationNext = ({ className, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(PaginationLink, {
46
+ var PaginationNext = ({ className, size = "default", ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(PaginationLink, {
47
47
  "aria-label": "Go to next page",
48
- size: "default",
49
48
  className: require_cn.cn("gap-1 pr-2.5", className),
49
+ size,
50
50
  ...props,
51
51
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: "Next" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronRight, { className: "h-4 w-4" })]
52
52
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.cjs","names":[],"sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import * as React from \"react\"\r\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\"\r\nimport { cn } from \"../../utils/cn\"\r\nimport { ButtonPrimitive, buttonVariants } from \"../../primitives/button\"\r\n\r\nconst Pagination = ({ className, ...props }: React.ComponentProps<\"nav\">) => (\r\n <nav\r\n role=\"navigation\"\r\n aria-label=\"pagination\"\r\n className={cn(\"mx-auto flex w-full justify-center\", className)}\r\n {...props}\r\n />\r\n)\r\nPagination.displayName = \"Pagination\"\r\n\r\nconst PaginationContent = React.forwardRef<\r\n HTMLUListElement,\r\n React.ComponentProps<\"ul\">\r\n>(({ className, ...props }, ref) => (\r\n <ul\r\n ref={ref}\r\n className={cn(\"flex flex-row items-center gap-1\", className)}\r\n {...props}\r\n />\r\n))\r\nPaginationContent.displayName = \"PaginationContent\"\r\n\r\nconst PaginationItem = React.forwardRef<\r\n HTMLLIElement,\r\n React.ComponentProps<\"li\">\r\n>(({ className, ...props }, ref) => (\r\n <li ref={ref} className={cn(\"\", className)} {...props} />\r\n))\r\nPaginationItem.displayName = \"PaginationItem\"\r\n\r\ntype PaginationLinkProps = {\r\n isActive?: boolean\r\n} & Pick<React.ComponentProps<typeof ButtonPrimitive>, \"size\"> &\r\n React.ComponentProps<\"a\">\r\n\r\nconst PaginationLink = ({ className, isActive, size = \"icon\", ...props }: PaginationLinkProps) => (\r\n <a\r\n aria-current={isActive ? \"page\" : undefined}\r\n className={cn(\r\n buttonVariants({\r\n variant: isActive ? \"outline\" : \"ghost\",\r\n size,\r\n }),\r\n className\r\n )}\r\n {...props}\r\n />\r\n)\r\nPaginationLink.displayName = \"PaginationLink\"\r\n\r\nconst PaginationPrevious = ({ className, ...props }: React.ComponentProps<typeof PaginationLink>) => (\r\n <PaginationLink\r\n aria-label=\"Go to previous page\"\r\n size=\"default\"\r\n className={cn(\"gap-1 pl-2.5\", className)}\r\n {...props}\r\n >\r\n <ChevronLeft className=\"h-4 w-4\" />\r\n <span>Previous</span>\r\n </PaginationLink>\r\n)\r\nPaginationPrevious.displayName = \"PaginationPrevious\"\r\n\r\nconst PaginationNext = ({ className, ...props }: React.ComponentProps<typeof PaginationLink>) => (\r\n <PaginationLink\r\n aria-label=\"Go to next page\"\r\n size=\"default\"\r\n className={cn(\"gap-1 pr-2.5\", className)}\r\n {...props}\r\n >\r\n <span>Next</span>\r\n <ChevronRight className=\"h-4 w-4\" />\r\n </PaginationLink>\r\n)\r\nPaginationNext.displayName = \"PaginationNext\"\r\n\r\nconst PaginationEllipsis = ({ className, ...props }: React.ComponentProps<\"span\">) => (\r\n <span\r\n aria-hidden\r\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\r\n {...props}\r\n >\r\n <MoreHorizontal className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">More pages</span>\r\n </span>\r\n)\r\nPaginationEllipsis.displayName = \"PaginationEllipsis\"\r\n\r\nexport {\r\n Pagination,\r\n PaginationContent,\r\n PaginationItem,\r\n PaginationLink,\r\n PaginationNext,\r\n PaginationPrevious,\r\n PaginationEllipsis,\r\n}\r\n"],"mappings":";;;;;;;;;AAKA,IAAM,cAAc,EAAE,WAAW,GAAG,YAClC,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,WAAW,WAAA,GAAG,sCAAsC,SAAS;CAC7D,GAAI;AACL,CAAA;AAEH,WAAW,cAAc;AAEzB,IAAM,oBAAoB,MAAM,YAG7B,EAAE,WAAW,GAAG,SAAS,QAC1B,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;CACO;CACL,WAAW,WAAA,GAAG,oCAAoC,SAAS;CAC3D,GAAI;AACL,CAAA,CACF;AACD,kBAAkB,cAAc;AAEhC,IAAM,iBAAiB,MAAM,YAG1B,EAAE,WAAW,GAAG,SAAS,QAC1B,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;CAAS;CAAK,WAAW,WAAA,GAAG,IAAI,SAAS;CAAG,GAAI;AAAQ,CAAA,CACzD;AACD,eAAe,cAAc;AAO7B,IAAM,kBAAkB,EAAE,WAAW,UAAU,OAAO,QAAQ,GAAG,YAC/D,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;CACE,gBAAc,WAAW,SAAS,KAAA;CAClC,WAAW,WAAA,GACT,eAAA,eAAe;EACb,SAAS,WAAW,YAAY;EAChC;CACF,CAAC,GACD,SACF;CACA,GAAI;AACL,CAAA;AAEH,eAAe,cAAc;AAE7B,IAAM,sBAAsB,EAAE,WAAW,GAAG,YAC1C,iBAAA,GAAA,kBAAA,KAAA,CAAC,gBAAD;CACE,cAAW;CACX,MAAK;CACL,WAAW,WAAA,GAAG,gBAAgB,SAAS;CACvC,GAAI;WAJN,CAME,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,aAAD,EAAa,WAAU,UAAW,CAAA,GAClC,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAA,UAAM,WAAc,CAAA,CACN;;AAElB,mBAAmB,cAAc;AAEjC,IAAM,kBAAkB,EAAE,WAAW,GAAG,YACtC,iBAAA,GAAA,kBAAA,KAAA,CAAC,gBAAD;CACE,cAAW;CACX,MAAK;CACL,WAAW,WAAA,GAAG,gBAAgB,SAAS;CACvC,GAAI;WAJN,CAME,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAA,UAAM,OAAU,CAAA,GAChB,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,cAAD,EAAc,WAAU,UAAW,CAAA,CACrB;;AAElB,eAAe,cAAc;AAE7B,IAAM,sBAAsB,EAAE,WAAW,GAAG,YAC1C,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;CACE,eAAA;CACA,WAAW,WAAA,GAAG,4CAA4C,SAAS;CACnE,GAAI;WAHN,CAKE,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,gBAAD,EAAgB,WAAU,UAAW,CAAA,GACrC,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EAAM,WAAU;YAAU;CAAgB,CAAA,CACtC;;AAER,mBAAmB,cAAc"}
1
+ {"version":3,"file":"Pagination.cjs","names":[],"sources":["../../../../src/components/Pagination/Pagination.tsx"],"sourcesContent":["import * as React from \"react\"\r\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\"\r\nimport { cn } from \"../../utils/cn\"\r\nimport { ButtonPrimitive, buttonVariants } from \"../../primitives/button\"\r\n\r\nconst Pagination = ({ className, ...props }: React.ComponentProps<\"nav\">) => (\r\n <nav\r\n role=\"navigation\"\r\n aria-label=\"pagination\"\r\n className={cn(\"mx-auto flex w-full justify-center\", className)}\r\n {...props}\r\n />\r\n)\r\nPagination.displayName = \"Pagination\"\r\n\r\nconst PaginationContent = React.forwardRef<\r\n HTMLUListElement,\r\n React.ComponentProps<\"ul\">\r\n>(({ className, ...props }, ref) => (\r\n <ul\r\n ref={ref}\r\n className={cn(\"flex flex-row items-center gap-1\", className)}\r\n {...props}\r\n />\r\n))\r\nPaginationContent.displayName = \"PaginationContent\"\r\n\r\nconst PaginationItem = React.forwardRef<\r\n HTMLLIElement,\r\n React.ComponentProps<\"li\">\r\n>(({ className, ...props }, ref) => (\r\n <li ref={ref} className={cn(\"\", className)} {...props} />\r\n))\r\nPaginationItem.displayName = \"PaginationItem\"\r\n\r\ntype PaginationLinkProps = {\r\n isActive?: boolean\r\n} & Pick<React.ComponentProps<typeof ButtonPrimitive>, \"size\"> &\r\n React.ComponentProps<\"a\">\r\n\r\nconst PaginationLink = ({ className, isActive, size = \"icon\", ...props }: PaginationLinkProps) => (\r\n <a\r\n aria-current={isActive ? \"page\" : undefined}\r\n className={cn(\r\n buttonVariants({\r\n variant: isActive ? \"outline\" : \"ghost\",\r\n size,\r\n }),\r\n className\r\n )}\r\n {...props}\r\n />\r\n)\r\nPaginationLink.displayName = \"PaginationLink\"\r\n\r\nconst PaginationPrevious = ({ className, size = \"default\", ...props }: React.ComponentProps<typeof PaginationLink>) => (\r\n <PaginationLink\r\n aria-label=\"Go to previous page\"\r\n className={cn(\"gap-1 pl-2.5\", className)}\r\n size={size}\r\n {...props}\r\n >\r\n <ChevronLeft className=\"h-4 w-4\" />\r\n <span>Previous</span>\r\n </PaginationLink>\r\n)\r\nPaginationPrevious.displayName = \"PaginationPrevious\"\r\n\r\nconst PaginationNext = ({ className, size = \"default\", ...props }: React.ComponentProps<typeof PaginationLink>) => (\r\n <PaginationLink\r\n aria-label=\"Go to next page\"\r\n className={cn(\"gap-1 pr-2.5\", className)}\r\n size={size}\r\n {...props}\r\n >\r\n <span>Next</span>\r\n <ChevronRight className=\"h-4 w-4\" />\r\n </PaginationLink>\r\n)\r\nPaginationNext.displayName = \"PaginationNext\"\r\n\r\nconst PaginationEllipsis = ({ className, ...props }: React.ComponentProps<\"span\">) => (\r\n <span\r\n aria-hidden\r\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\r\n {...props}\r\n >\r\n <MoreHorizontal className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">More pages</span>\r\n </span>\r\n)\r\nPaginationEllipsis.displayName = \"PaginationEllipsis\"\r\n\r\nexport {\r\n Pagination,\r\n PaginationContent,\r\n PaginationItem,\r\n PaginationLink,\r\n PaginationNext,\r\n PaginationPrevious,\r\n PaginationEllipsis,\r\n}\r\n"],"mappings":";;;;;;;;;AAKA,IAAM,cAAc,EAAE,WAAW,GAAG,YAClC,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,WAAW,WAAA,GAAG,sCAAsC,SAAS;CAC7D,GAAI;AACL,CAAA;AAEH,WAAW,cAAc;AAEzB,IAAM,oBAAoB,MAAM,YAG7B,EAAE,WAAW,GAAG,SAAS,QAC1B,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;CACO;CACL,WAAW,WAAA,GAAG,oCAAoC,SAAS;CAC3D,GAAI;AACL,CAAA,CACF;AACD,kBAAkB,cAAc;AAEhC,IAAM,iBAAiB,MAAM,YAG1B,EAAE,WAAW,GAAG,SAAS,QAC1B,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;CAAS;CAAK,WAAW,WAAA,GAAG,IAAI,SAAS;CAAG,GAAI;AAAQ,CAAA,CACzD;AACD,eAAe,cAAc;AAO7B,IAAM,kBAAkB,EAAE,WAAW,UAAU,OAAO,QAAQ,GAAG,YAC/D,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;CACE,gBAAc,WAAW,SAAS,KAAA;CAClC,WAAW,WAAA,GACT,eAAA,eAAe;EACb,SAAS,WAAW,YAAY;EAChC;CACF,CAAC,GACD,SACF;CACA,GAAI;AACL,CAAA;AAEH,eAAe,cAAc;AAE7B,IAAM,sBAAsB,EAAE,WAAW,OAAO,WAAW,GAAG,YAC5D,iBAAA,GAAA,kBAAA,KAAA,CAAC,gBAAD;CACE,cAAW;CACX,WAAW,WAAA,GAAG,gBAAgB,SAAS;CACjC;CACN,GAAI;CAJN,UAAA,CAME,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,aAAD,EAAa,WAAU,UAAW,CAAA,GAClC,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAA,UAAM,WAAc,CAAA,CACN;;AAElB,mBAAmB,cAAc;AAEjC,IAAM,kBAAkB,EAAE,WAAW,OAAO,WAAW,GAAG,YACxD,iBAAA,GAAA,kBAAA,KAAA,CAAC,gBAAD;CACE,cAAW;CACX,WAAW,WAAA,GAAG,gBAAgB,SAAS;CACjC;CACN,GAAI;CAJN,UAAA,CAME,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAA,UAAM,OAAU,CAAA,GAChB,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,cAAD,EAAc,WAAU,UAAW,CAAA,CACrB;;AAElB,eAAe,cAAc;AAE7B,IAAM,sBAAsB,EAAE,WAAW,GAAG,YAC1C,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;CACE,eAAA;CACA,WAAW,WAAA,GAAG,4CAA4C,SAAS;CACnE,GAAI;CAHN,UAAA,CAKE,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,gBAAD,EAAgB,WAAU,UAAW,CAAA,GACrC,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EAAM,WAAU;EAAU,UAAA;CAAgB,CAAA,CACtC;;AAER,mBAAmB,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Separator.cjs","names":[],"sources":["../../../../src/components/Separator/Separator.tsx"],"sourcesContent":["import { forwardRef } from \"react\"\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\nimport { Separator as SeparatorPrimitive } from \"../../primitives/separator\"\n\nexport const Separator = forwardRef<\n ElementRef<typeof SeparatorPrimitive>,\n ComponentPropsWithoutRef<typeof SeparatorPrimitive>\n>((props, ref) => <SeparatorPrimitive ref={ref} {...props} />)\nSeparator.displayName = \"Separator\"\n"],"mappings":";;;;;AAIA,IAAa,aAAA,GAAA,MAAA,WAAA,EAGV,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAA,WAAD;CAAyB;CAAK,GAAI;AAAQ,CAAA,CAAC;AAC7D,UAAU,cAAc"}
1
+ {"version":3,"file":"Separator.cjs","names":[],"sources":["../../../../src/components/Separator/Separator.tsx"],"sourcesContent":["import { forwardRef } from \"react\"\r\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\r\nimport { Separator as SeparatorPrimitive } from \"../../primitives/separator\"\r\n\r\nexport const Separator = forwardRef<\r\n ElementRef<typeof SeparatorPrimitive>,\r\n ComponentPropsWithoutRef<typeof SeparatorPrimitive>\r\n>((props, ref) => <SeparatorPrimitive ref={ref} {...props} />)\r\nSeparator.displayName = \"Separator\"\r\n"],"mappings":";;;;;AAIA,IAAa,aAAA,GAAY,MAAA,WAAA,EAGtB,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAA,WAAD;CAAyB;CAAK,GAAI;AAAQ,CAAA,CAAC;AAC7D,UAAU,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.cjs","names":[],"sources":["../../../../src/components/Switch/Switch.tsx"],"sourcesContent":["import { forwardRef } from \"react\"\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\nimport type * as SwitchPrimitives from \"@radix-ui/react-switch\"\nimport { Switch as SwitchPrimitive } from \"../../primitives/switch\"\n\nexport type SwitchProps = ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n\nexport const Switch = forwardRef<\n ElementRef<typeof SwitchPrimitive>,\n SwitchProps\n>((props, ref) => <SwitchPrimitive ref={ref} {...props} />)\nSwitch.displayName = \"Switch\"\n"],"mappings":";;;;;AAOA,IAAa,UAAA,GAAA,MAAA,WAAA,EAGV,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,eAAA,QAAD;CAAsB;CAAK,GAAI;AAAQ,CAAA,CAAC;AAC1D,OAAO,cAAc"}
1
+ {"version":3,"file":"Switch.cjs","names":[],"sources":["../../../../src/components/Switch/Switch.tsx"],"sourcesContent":["import { forwardRef } from \"react\"\r\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\r\nimport type * as SwitchPrimitives from \"@radix-ui/react-switch\"\r\nimport { Switch as SwitchPrimitive } from \"../../primitives/switch\"\r\n\r\nexport type SwitchProps = ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\r\n\r\nexport const Switch = forwardRef<\r\n ElementRef<typeof SwitchPrimitive>,\r\n SwitchProps\r\n>((props, ref) => <SwitchPrimitive ref={ref} {...props} />)\r\nSwitch.displayName = \"Switch\"\r\n"],"mappings":";;;;;AAOA,IAAa,UAAA,GAAS,MAAA,WAAA,EAGnB,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,eAAA,QAAD;CAAsB;CAAK,GAAI;AAAQ,CAAA,CAAC;AAC1D,OAAO,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.cjs","names":[],"sources":["../../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { forwardRef } from \"react\"\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\nimport {\n Tabs as TabsPrimitive,\n TabsList as TabsListPrimitive,\n TabsTrigger as TabsTriggerPrimitive,\n TabsContent as TabsContentPrimitive,\n} from \"../../primitives/tabs\"\n\nexport const Tabs = forwardRef<\n ElementRef<typeof TabsPrimitive>,\n ComponentPropsWithoutRef<typeof TabsPrimitive>\n>((props, ref) => <TabsPrimitive ref={ref} {...props} />)\nTabs.displayName = \"Tabs\"\n\nexport const TabsList = forwardRef<\n ElementRef<typeof TabsListPrimitive>,\n ComponentPropsWithoutRef<typeof TabsListPrimitive>\n>((props, ref) => <TabsListPrimitive ref={ref} {...props} />)\nTabsList.displayName = \"TabsList\"\n\nexport const TabsTrigger = forwardRef<\n ElementRef<typeof TabsTriggerPrimitive>,\n ComponentPropsWithoutRef<typeof TabsTriggerPrimitive>\n>((props, ref) => <TabsTriggerPrimitive ref={ref} {...props} />)\nTabsTrigger.displayName = \"TabsTrigger\"\n\nexport const TabsContent = forwardRef<\n ElementRef<typeof TabsContentPrimitive>,\n ComponentPropsWithoutRef<typeof TabsContentPrimitive>\n>((props, ref) => <TabsContentPrimitive ref={ref} {...props} />)\nTabsContent.displayName = \"TabsContent\"\n"],"mappings":";;;;;AASA,IAAa,QAAA,GAAA,MAAA,WAAA,EAGV,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,MAAD;CAAoB;CAAK,GAAI;AAAQ,CAAA,CAAC;AACxD,KAAK,cAAc;AAEnB,IAAa,YAAA,GAAA,MAAA,WAAA,EAGV,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,UAAD;CAAwB;CAAK,GAAI;AAAQ,CAAA,CAAC;AAC5D,SAAS,cAAc;AAEvB,IAAa,eAAA,GAAA,MAAA,WAAA,EAGV,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,aAAD;CAA2B;CAAK,GAAI;AAAQ,CAAA,CAAC;AAC/D,YAAY,cAAc;AAE1B,IAAa,eAAA,GAAA,MAAA,WAAA,EAGV,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,aAAD;CAA2B;CAAK,GAAI;AAAQ,CAAA,CAAC;AAC/D,YAAY,cAAc"}
1
+ {"version":3,"file":"Tabs.cjs","names":[],"sources":["../../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import { forwardRef } from \"react\"\r\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\r\nimport {\r\n Tabs as TabsPrimitive,\r\n TabsList as TabsListPrimitive,\r\n TabsTrigger as TabsTriggerPrimitive,\r\n TabsContent as TabsContentPrimitive,\r\n} from \"../../primitives/tabs\"\r\n\r\nexport const Tabs = forwardRef<\r\n ElementRef<typeof TabsPrimitive>,\r\n ComponentPropsWithoutRef<typeof TabsPrimitive>\r\n>((props, ref) => <TabsPrimitive ref={ref} {...props} />)\r\nTabs.displayName = \"Tabs\"\r\n\r\nexport const TabsList = forwardRef<\r\n ElementRef<typeof TabsListPrimitive>,\r\n ComponentPropsWithoutRef<typeof TabsListPrimitive>\r\n>((props, ref) => <TabsListPrimitive ref={ref} {...props} />)\r\nTabsList.displayName = \"TabsList\"\r\n\r\nexport const TabsTrigger = forwardRef<\r\n ElementRef<typeof TabsTriggerPrimitive>,\r\n ComponentPropsWithoutRef<typeof TabsTriggerPrimitive>\r\n>((props, ref) => <TabsTriggerPrimitive ref={ref} {...props} />)\r\nTabsTrigger.displayName = \"TabsTrigger\"\r\n\r\nexport const TabsContent = forwardRef<\r\n ElementRef<typeof TabsContentPrimitive>,\r\n ComponentPropsWithoutRef<typeof TabsContentPrimitive>\r\n>((props, ref) => <TabsContentPrimitive ref={ref} {...props} />)\r\nTabsContent.displayName = \"TabsContent\"\r\n"],"mappings":";;;;;AASA,IAAa,QAAA,GAAO,MAAA,WAAA,EAGjB,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,MAAD;CAAoB;CAAK,GAAI;AAAQ,CAAA,CAAC;AACxD,KAAK,cAAc;AAEnB,IAAa,YAAA,GAAW,MAAA,WAAA,EAGrB,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,UAAD;CAAwB;CAAK,GAAI;AAAQ,CAAA,CAAC;AAC5D,SAAS,cAAc;AAEvB,IAAa,eAAA,GAAc,MAAA,WAAA,EAGxB,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,aAAD;CAA2B;CAAK,GAAI;AAAQ,CAAA,CAAC;AAC/D,YAAY,cAAc;AAE1B,IAAa,eAAA,GAAc,MAAA,WAAA,EAGxB,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,aAAA,aAAD;CAA2B;CAAK,GAAI;AAAQ,CAAA,CAAC;AAC/D,YAAY,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.cjs","names":[],"sources":["../../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":["import { forwardRef } from \"react\"\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\nimport { Textarea as TextareaPrimitive } from \"../../primitives/textarea\"\n\nexport type TextareaProps = ComponentPropsWithoutRef<typeof TextareaPrimitive>\n\nexport const Textarea = forwardRef<\n ElementRef<typeof TextareaPrimitive>,\n TextareaProps\n>((props, ref) => <TextareaPrimitive ref={ref} {...props} />)\nTextarea.displayName = \"Textarea\"\n"],"mappings":";;;;;AAMA,IAAa,YAAA,GAAA,MAAA,WAAA,EAGV,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,iBAAA,UAAD;CAAwB;CAAK,GAAI;AAAQ,CAAA,CAAC;AAC5D,SAAS,cAAc"}
1
+ {"version":3,"file":"Textarea.cjs","names":[],"sources":["../../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":["import { forwardRef } from \"react\"\r\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\r\nimport { Textarea as TextareaPrimitive } from \"../../primitives/textarea\"\r\n\r\nexport type TextareaProps = ComponentPropsWithoutRef<typeof TextareaPrimitive>\r\n\r\nexport const Textarea = forwardRef<\r\n ElementRef<typeof TextareaPrimitive>,\r\n TextareaProps\r\n>((props, ref) => <TextareaPrimitive ref={ref} {...props} />)\r\nTextarea.displayName = \"Textarea\"\r\n"],"mappings":";;;;;AAMA,IAAa,YAAA,GAAW,MAAA,WAAA,EAGrB,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,iBAAA,UAAD;CAAwB;CAAK,GAAI;AAAQ,CAAA,CAAC;AAC5D,SAAS,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.cjs","names":[],"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\r\n Tooltip as TooltipPrimitive,\r\n TooltipTrigger as TooltipTriggerPrimitive,\r\n TooltipContent as TooltipContentPrimitive,\r\n TooltipProvider as TooltipProviderPrimitive,\r\n} from \"../../primitives/tooltip\"\r\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\r\nimport { forwardRef } from \"react\"\r\n\r\nexport const TooltipProvider = TooltipProviderPrimitive\r\nexport const Tooltip = TooltipPrimitive\r\nexport const TooltipTrigger = TooltipTriggerPrimitive\r\n\r\nexport const TooltipContent = forwardRef<\r\n ElementRef<typeof TooltipContentPrimitive>,\r\n ComponentPropsWithoutRef<typeof TooltipContentPrimitive>\r\n>((props, ref) => <TooltipContentPrimitive ref={ref} {...props} />)\r\nTooltipContent.displayName = \"TooltipContent\"\r\n\r\nexport type TooltipContentProps = ComponentPropsWithoutRef<typeof TooltipContentPrimitive>\r\n"],"mappings":";;;;;AASA,IAAa,kBAAkB,gBAAA;AAC/B,IAAa,UAAU,gBAAA;AACvB,IAAa,iBAAiB,gBAAA;AAE9B,IAAa,kBAAA,GAAA,MAAA,WAAA,EAGV,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAA,gBAAD;CAA8B;CAAK,GAAI;AAAQ,CAAA,CAAC;AAClE,eAAe,cAAc"}
1
+ {"version":3,"file":"Tooltip.cjs","names":[],"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\r\n Tooltip as TooltipPrimitive,\r\n TooltipTrigger as TooltipTriggerPrimitive,\r\n TooltipContent as TooltipContentPrimitive,\r\n TooltipProvider as TooltipProviderPrimitive,\r\n} from \"../../primitives/tooltip\"\r\nimport type { ComponentPropsWithoutRef, ElementRef } from \"react\"\r\nimport { forwardRef } from \"react\"\r\n\r\nexport const TooltipProvider = TooltipProviderPrimitive\r\nexport const Tooltip = TooltipPrimitive\r\nexport const TooltipTrigger = TooltipTriggerPrimitive\r\n\r\nexport const TooltipContent = forwardRef<\r\n ElementRef<typeof TooltipContentPrimitive>,\r\n ComponentPropsWithoutRef<typeof TooltipContentPrimitive>\r\n>((props, ref) => <TooltipContentPrimitive ref={ref} {...props} />)\r\nTooltipContent.displayName = \"TooltipContent\"\r\n\r\nexport type TooltipContentProps = ComponentPropsWithoutRef<typeof TooltipContentPrimitive>\r\n"],"mappings":";;;;;AASA,IAAa,kBAAkB,gBAAA;AAC/B,IAAa,UAAU,gBAAA;AACvB,IAAa,iBAAiB,gBAAA;AAE9B,IAAa,kBAAA,GAAiB,MAAA,WAAA,EAG3B,OAAO,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,gBAAA,gBAAD;CAA8B;CAAK,GAAI;AAAQ,CAAA,CAAC;AAClE,eAAe,cAAc"}