@rjsf/daisyui 6.0.0-beta.2

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 (315) hide show
  1. package/README.md +231 -0
  2. package/dist/chakra-ui.esm.js +2192 -0
  3. package/dist/chakra-ui.esm.js.map +7 -0
  4. package/dist/chakra-ui.umd.js +2011 -0
  5. package/dist/index.js +2180 -0
  6. package/dist/index.js.map +7 -0
  7. package/lib/DaisyUIForm.d.ts +5 -0
  8. package/lib/DaisyUIForm.js +8 -0
  9. package/lib/DaisyUIForm.js.map +1 -0
  10. package/lib/DaisyUIFrameProvider.d.ts +35 -0
  11. package/lib/DaisyUIFrameProvider.js +93 -0
  12. package/lib/DaisyUIFrameProvider.js.map +1 -0
  13. package/lib/daisyForm/DaisyForm.d.ts +12 -0
  14. package/lib/daisyForm/DaisyForm.js +15 -0
  15. package/lib/daisyForm/DaisyForm.js.map +1 -0
  16. package/lib/daisyForm/index.d.ts +2 -0
  17. package/lib/daisyForm/index.js +3 -0
  18. package/lib/daisyForm/index.js.map +1 -0
  19. package/lib/index.d.ts +10 -0
  20. package/lib/index.js +11 -0
  21. package/lib/index.js.map +1 -0
  22. package/lib/templates/ArrayFieldDescriptionTemplate/ArrayFieldDescriptionTemplate.d.ts +7 -0
  23. package/lib/templates/ArrayFieldDescriptionTemplate/ArrayFieldDescriptionTemplate.js +11 -0
  24. package/lib/templates/ArrayFieldDescriptionTemplate/ArrayFieldDescriptionTemplate.js.map +1 -0
  25. package/lib/templates/ArrayFieldDescriptionTemplate/index.d.ts +2 -0
  26. package/lib/templates/ArrayFieldDescriptionTemplate/index.js +3 -0
  27. package/lib/templates/ArrayFieldDescriptionTemplate/index.js.map +1 -0
  28. package/lib/templates/ArrayFieldItemButtonsTemplate/ArrayFieldItemButtonsTemplate.d.ts +5 -0
  29. package/lib/templates/ArrayFieldItemButtonsTemplate/ArrayFieldItemButtonsTemplate.js +20 -0
  30. package/lib/templates/ArrayFieldItemButtonsTemplate/ArrayFieldItemButtonsTemplate.js.map +1 -0
  31. package/lib/templates/ArrayFieldItemButtonsTemplate/index.d.ts +2 -0
  32. package/lib/templates/ArrayFieldItemButtonsTemplate/index.js +3 -0
  33. package/lib/templates/ArrayFieldItemButtonsTemplate/index.js.map +1 -0
  34. package/lib/templates/ArrayFieldItemTemplate/ArrayFieldItemTemplate.d.ts +14 -0
  35. package/lib/templates/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js +27 -0
  36. package/lib/templates/ArrayFieldItemTemplate/ArrayFieldItemTemplate.js.map +1 -0
  37. package/lib/templates/ArrayFieldItemTemplate/index.d.ts +2 -0
  38. package/lib/templates/ArrayFieldItemTemplate/index.js +3 -0
  39. package/lib/templates/ArrayFieldItemTemplate/index.js.map +1 -0
  40. package/lib/templates/ArrayFieldTemplate/ArrayFieldTemplate.d.ts +15 -0
  41. package/lib/templates/ArrayFieldTemplate/ArrayFieldTemplate.js +37 -0
  42. package/lib/templates/ArrayFieldTemplate/ArrayFieldTemplate.js.map +1 -0
  43. package/lib/templates/ArrayFieldTemplate/index.d.ts +2 -0
  44. package/lib/templates/ArrayFieldTemplate/index.js +3 -0
  45. package/lib/templates/ArrayFieldTemplate/index.js.map +1 -0
  46. package/lib/templates/ArrayFieldTitleTemplate/ArrayFieldTitleTemplate.d.ts +7 -0
  47. package/lib/templates/ArrayFieldTitleTemplate/ArrayFieldTitleTemplate.js +11 -0
  48. package/lib/templates/ArrayFieldTitleTemplate/ArrayFieldTitleTemplate.js.map +1 -0
  49. package/lib/templates/ArrayFieldTitleTemplate/index.d.ts +2 -0
  50. package/lib/templates/ArrayFieldTitleTemplate/index.js +3 -0
  51. package/lib/templates/ArrayFieldTitleTemplate/index.js.map +1 -0
  52. package/lib/templates/BaseInputTemplate/BaseInputTemplate.d.ts +16 -0
  53. package/lib/templates/BaseInputTemplate/BaseInputTemplate.js +33 -0
  54. package/lib/templates/BaseInputTemplate/BaseInputTemplate.js.map +1 -0
  55. package/lib/templates/BaseInputTemplate/index.d.ts +2 -0
  56. package/lib/templates/BaseInputTemplate/index.js +3 -0
  57. package/lib/templates/BaseInputTemplate/index.js.map +1 -0
  58. package/lib/templates/ButtonTemplates/AddButton.d.ts +6 -0
  59. package/lib/templates/ButtonTemplates/AddButton.js +15 -0
  60. package/lib/templates/ButtonTemplates/AddButton.js.map +1 -0
  61. package/lib/templates/ButtonTemplates/DaisyUIButton.d.ts +18 -0
  62. package/lib/templates/ButtonTemplates/DaisyUIButton.js +15 -0
  63. package/lib/templates/ButtonTemplates/DaisyUIButton.js.map +1 -0
  64. package/lib/templates/ButtonTemplates/IconButton.d.ts +5 -0
  65. package/lib/templates/ButtonTemplates/IconButton.js +21 -0
  66. package/lib/templates/ButtonTemplates/IconButton.js.map +1 -0
  67. package/lib/templates/ButtonTemplates/SubmitButton.d.ts +4 -0
  68. package/lib/templates/ButtonTemplates/SubmitButton.js +12 -0
  69. package/lib/templates/ButtonTemplates/SubmitButton.js.map +1 -0
  70. package/lib/templates/ButtonTemplates/index.d.ts +15 -0
  71. package/lib/templates/ButtonTemplates/index.js +17 -0
  72. package/lib/templates/ButtonTemplates/index.js.map +1 -0
  73. package/lib/templates/DescriptionField/DescriptionField.d.ts +8 -0
  74. package/lib/templates/DescriptionField/DescriptionField.js +16 -0
  75. package/lib/templates/DescriptionField/DescriptionField.js.map +1 -0
  76. package/lib/templates/DescriptionField/index.d.ts +2 -0
  77. package/lib/templates/DescriptionField/index.js +3 -0
  78. package/lib/templates/DescriptionField/index.js.map +1 -0
  79. package/lib/templates/ErrorList/ErrorList.d.ts +7 -0
  80. package/lib/templates/ErrorList/ErrorList.js +11 -0
  81. package/lib/templates/ErrorList/ErrorList.js.map +1 -0
  82. package/lib/templates/ErrorList/index.d.ts +2 -0
  83. package/lib/templates/ErrorList/index.js +3 -0
  84. package/lib/templates/ErrorList/index.js.map +1 -0
  85. package/lib/templates/FieldErrorTemplate/FieldErrorTemplate.d.ts +10 -0
  86. package/lib/templates/FieldErrorTemplate/FieldErrorTemplate.js +15 -0
  87. package/lib/templates/FieldErrorTemplate/FieldErrorTemplate.js.map +1 -0
  88. package/lib/templates/FieldErrorTemplate/index.d.ts +2 -0
  89. package/lib/templates/FieldErrorTemplate/index.js +3 -0
  90. package/lib/templates/FieldErrorTemplate/index.js.map +1 -0
  91. package/lib/templates/FieldHelpTemplate/FieldHelpTemplate.d.ts +11 -0
  92. package/lib/templates/FieldHelpTemplate/FieldHelpTemplate.js +15 -0
  93. package/lib/templates/FieldHelpTemplate/FieldHelpTemplate.js.map +1 -0
  94. package/lib/templates/FieldHelpTemplate/index.d.ts +2 -0
  95. package/lib/templates/FieldHelpTemplate/index.js +3 -0
  96. package/lib/templates/FieldHelpTemplate/index.js.map +1 -0
  97. package/lib/templates/FieldTemplate/FieldTemplate.d.ts +15 -0
  98. package/lib/templates/FieldTemplate/FieldTemplate.js +23 -0
  99. package/lib/templates/FieldTemplate/FieldTemplate.js.map +1 -0
  100. package/lib/templates/FieldTemplate/index.d.ts +2 -0
  101. package/lib/templates/FieldTemplate/index.js +3 -0
  102. package/lib/templates/FieldTemplate/index.js.map +1 -0
  103. package/lib/templates/GridTemplate/GridTemplate.d.ts +7 -0
  104. package/lib/templates/GridTemplate/GridTemplate.js +16 -0
  105. package/lib/templates/GridTemplate/GridTemplate.js.map +1 -0
  106. package/lib/templates/GridTemplate/index.d.ts +2 -0
  107. package/lib/templates/GridTemplate/index.js +3 -0
  108. package/lib/templates/GridTemplate/index.js.map +1 -0
  109. package/lib/templates/ObjectFieldTemplate/ObjectFieldTemplate.d.ts +13 -0
  110. package/lib/templates/ObjectFieldTemplate/ObjectFieldTemplate.js +25 -0
  111. package/lib/templates/ObjectFieldTemplate/ObjectFieldTemplate.js.map +1 -0
  112. package/lib/templates/ObjectFieldTemplate/index.d.ts +2 -0
  113. package/lib/templates/ObjectFieldTemplate/index.js +3 -0
  114. package/lib/templates/ObjectFieldTemplate/index.js.map +1 -0
  115. package/lib/templates/Templates.d.ts +19 -0
  116. package/lib/templates/Templates.js +56 -0
  117. package/lib/templates/Templates.js.map +1 -0
  118. package/lib/templates/TitleField/TitleField.d.ts +13 -0
  119. package/lib/templates/TitleField/TitleField.js +19 -0
  120. package/lib/templates/TitleField/TitleField.js.map +1 -0
  121. package/lib/templates/TitleField/index.d.ts +2 -0
  122. package/lib/templates/TitleField/index.js +3 -0
  123. package/lib/templates/TitleField/index.js.map +1 -0
  124. package/lib/templates/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.d.ts +7 -0
  125. package/lib/templates/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js +20 -0
  126. package/lib/templates/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.js.map +1 -0
  127. package/lib/templates/WrapIfAdditionalTemplate/index.d.ts +2 -0
  128. package/lib/templates/WrapIfAdditionalTemplate/index.js +3 -0
  129. package/lib/templates/WrapIfAdditionalTemplate/index.js.map +1 -0
  130. package/lib/templates/index.d.ts +19 -0
  131. package/lib/templates/index.js +20 -0
  132. package/lib/templates/index.js.map +1 -0
  133. package/lib/theme/Theme.d.ts +43 -0
  134. package/lib/theme/Theme.js +68 -0
  135. package/lib/theme/Theme.js.map +1 -0
  136. package/lib/theme/index.d.ts +2 -0
  137. package/lib/theme/index.js +3 -0
  138. package/lib/theme/index.js.map +1 -0
  139. package/lib/tsconfig.tsbuildinfo +1 -0
  140. package/lib/types/DaisyProps.d.ts +5 -0
  141. package/lib/types/DaisyProps.js +2 -0
  142. package/lib/types/DaisyProps.js.map +1 -0
  143. package/lib/utils.d.ts +13 -0
  144. package/lib/utils.js +5 -0
  145. package/lib/utils.js.map +1 -0
  146. package/lib/widgets/AltDateTimeWidget/AltDateTimeWidget.d.ts +6 -0
  147. package/lib/widgets/AltDateTimeWidget/AltDateTimeWidget.js +10 -0
  148. package/lib/widgets/AltDateTimeWidget/AltDateTimeWidget.js.map +1 -0
  149. package/lib/widgets/AltDateTimeWidget/index.d.ts +2 -0
  150. package/lib/widgets/AltDateTimeWidget/index.js +3 -0
  151. package/lib/widgets/AltDateTimeWidget/index.js.map +1 -0
  152. package/lib/widgets/AltDateWidget/AltDateWidget.d.ts +15 -0
  153. package/lib/widgets/AltDateWidget/AltDateWidget.js +138 -0
  154. package/lib/widgets/AltDateWidget/AltDateWidget.js.map +1 -0
  155. package/lib/widgets/AltDateWidget/index.d.ts +2 -0
  156. package/lib/widgets/AltDateWidget/index.js +3 -0
  157. package/lib/widgets/AltDateWidget/index.js.map +1 -0
  158. package/lib/widgets/CheckboxWidget/CheckboxWidget.d.ts +13 -0
  159. package/lib/widgets/CheckboxWidget/CheckboxWidget.js +43 -0
  160. package/lib/widgets/CheckboxWidget/CheckboxWidget.js.map +1 -0
  161. package/lib/widgets/CheckboxWidget/index.d.ts +2 -0
  162. package/lib/widgets/CheckboxWidget/index.js +3 -0
  163. package/lib/widgets/CheckboxWidget/index.js.map +1 -0
  164. package/lib/widgets/CheckboxesWidget/CheckboxesWidget.d.ts +16 -0
  165. package/lib/widgets/CheckboxesWidget/CheckboxesWidget.js +73 -0
  166. package/lib/widgets/CheckboxesWidget/CheckboxesWidget.js.map +1 -0
  167. package/lib/widgets/CheckboxesWidget/index.d.ts +2 -0
  168. package/lib/widgets/CheckboxesWidget/index.js +3 -0
  169. package/lib/widgets/CheckboxesWidget/index.js.map +1 -0
  170. package/lib/widgets/DateTimeWidget/DateTimeWidget.d.ts +14 -0
  171. package/lib/widgets/DateTimeWidget/DateTimeWidget.js +207 -0
  172. package/lib/widgets/DateTimeWidget/DateTimeWidget.js.map +1 -0
  173. package/lib/widgets/DateTimeWidget/index.d.ts +2 -0
  174. package/lib/widgets/DateTimeWidget/index.js +3 -0
  175. package/lib/widgets/DateTimeWidget/index.js.map +1 -0
  176. package/lib/widgets/DateWidget/DateWidget.d.ts +14 -0
  177. package/lib/widgets/DateWidget/DateWidget.js +274 -0
  178. package/lib/widgets/DateWidget/DateWidget.js.map +1 -0
  179. package/lib/widgets/DateWidget/index.d.ts +2 -0
  180. package/lib/widgets/DateWidget/index.js +3 -0
  181. package/lib/widgets/DateWidget/index.js.map +1 -0
  182. package/lib/widgets/FileWidget/FileWidget.d.ts +12 -0
  183. package/lib/widgets/FileWidget/FileWidget.js +57 -0
  184. package/lib/widgets/FileWidget/FileWidget.js.map +1 -0
  185. package/lib/widgets/FileWidget/index.d.ts +2 -0
  186. package/lib/widgets/FileWidget/index.js +3 -0
  187. package/lib/widgets/FileWidget/index.js.map +1 -0
  188. package/lib/widgets/RadioWidget/RadioWidget.d.ts +14 -0
  189. package/lib/widgets/RadioWidget/RadioWidget.js +67 -0
  190. package/lib/widgets/RadioWidget/RadioWidget.js.map +1 -0
  191. package/lib/widgets/RadioWidget/index.d.ts +2 -0
  192. package/lib/widgets/RadioWidget/index.js +3 -0
  193. package/lib/widgets/RadioWidget/index.js.map +1 -0
  194. package/lib/widgets/RangeWidget/RangeWidget.d.ts +13 -0
  195. package/lib/widgets/RangeWidget/RangeWidget.js +42 -0
  196. package/lib/widgets/RangeWidget/RangeWidget.js.map +1 -0
  197. package/lib/widgets/RangeWidget/index.d.ts +2 -0
  198. package/lib/widgets/RangeWidget/index.js +3 -0
  199. package/lib/widgets/RangeWidget/index.js.map +1 -0
  200. package/lib/widgets/RatingWidget/RatingWidget.d.ts +17 -0
  201. package/lib/widgets/RatingWidget/RatingWidget.js +64 -0
  202. package/lib/widgets/RatingWidget/RatingWidget.js.map +1 -0
  203. package/lib/widgets/RatingWidget/index.d.ts +2 -0
  204. package/lib/widgets/RatingWidget/index.js +3 -0
  205. package/lib/widgets/RatingWidget/index.js.map +1 -0
  206. package/lib/widgets/SelectWidget/SelectWidget.d.ts +14 -0
  207. package/lib/widgets/SelectWidget/SelectWidget.js +74 -0
  208. package/lib/widgets/SelectWidget/SelectWidget.js.map +1 -0
  209. package/lib/widgets/SelectWidget/index.d.ts +2 -0
  210. package/lib/widgets/SelectWidget/index.js +3 -0
  211. package/lib/widgets/SelectWidget/index.js.map +1 -0
  212. package/lib/widgets/TextareaWidget/TextareaWidget.d.ts +12 -0
  213. package/lib/widgets/TextareaWidget/TextareaWidget.js +44 -0
  214. package/lib/widgets/TextareaWidget/TextareaWidget.js.map +1 -0
  215. package/lib/widgets/TextareaWidget/index.d.ts +2 -0
  216. package/lib/widgets/TextareaWidget/index.js +3 -0
  217. package/lib/widgets/TextareaWidget/index.js.map +1 -0
  218. package/lib/widgets/TimeWidget/TimeWidget.d.ts +12 -0
  219. package/lib/widgets/TimeWidget/TimeWidget.js +42 -0
  220. package/lib/widgets/TimeWidget/TimeWidget.js.map +1 -0
  221. package/lib/widgets/TimeWidget/index.d.ts +2 -0
  222. package/lib/widgets/TimeWidget/index.js +3 -0
  223. package/lib/widgets/TimeWidget/index.js.map +1 -0
  224. package/lib/widgets/ToggleWidget/ToggleWidget.d.ts +13 -0
  225. package/lib/widgets/ToggleWidget/ToggleWidget.js +40 -0
  226. package/lib/widgets/ToggleWidget/ToggleWidget.js.map +1 -0
  227. package/lib/widgets/ToggleWidget/index.d.ts +2 -0
  228. package/lib/widgets/ToggleWidget/index.js +3 -0
  229. package/lib/widgets/ToggleWidget/index.js.map +1 -0
  230. package/lib/widgets/Widgets.d.ts +18 -0
  231. package/lib/widgets/Widgets.js +35 -0
  232. package/lib/widgets/Widgets.js.map +1 -0
  233. package/lib/widgets/index.d.ts +2 -0
  234. package/lib/widgets/index.js +3 -0
  235. package/lib/widgets/index.js.map +1 -0
  236. package/package.json +95 -0
  237. package/src/DaisyUIForm.tsx +9 -0
  238. package/src/DaisyUIFrameProvider.tsx +107 -0
  239. package/src/daisyForm/DaisyForm.tsx +20 -0
  240. package/src/daisyForm/index.ts +2 -0
  241. package/src/index.ts +13 -0
  242. package/src/styles.css +9 -0
  243. package/src/templates/ArrayFieldDescriptionTemplate/ArrayFieldDescriptionTemplate.tsx +19 -0
  244. package/src/templates/ArrayFieldDescriptionTemplate/index.ts +2 -0
  245. package/src/templates/ArrayFieldItemButtonsTemplate/ArrayFieldItemButtonsTemplate.tsx +89 -0
  246. package/src/templates/ArrayFieldItemButtonsTemplate/index.ts +2 -0
  247. package/src/templates/ArrayFieldItemTemplate/ArrayFieldItemTemplate.tsx +55 -0
  248. package/src/templates/ArrayFieldItemTemplate/index.ts +2 -0
  249. package/src/templates/ArrayFieldTemplate/ArrayFieldTemplate.tsx +120 -0
  250. package/src/templates/ArrayFieldTemplate/index.ts +2 -0
  251. package/src/templates/ArrayFieldTitleTemplate/ArrayFieldTitleTemplate.tsx +15 -0
  252. package/src/templates/ArrayFieldTitleTemplate/index.ts +2 -0
  253. package/src/templates/BaseInputTemplate/BaseInputTemplate.tsx +104 -0
  254. package/src/templates/BaseInputTemplate/index.ts +2 -0
  255. package/src/templates/ButtonTemplates/AddButton.tsx +38 -0
  256. package/src/templates/ButtonTemplates/DaisyUIButton.tsx +31 -0
  257. package/src/templates/ButtonTemplates/IconButton.tsx +62 -0
  258. package/src/templates/ButtonTemplates/SubmitButton.tsx +25 -0
  259. package/src/templates/ButtonTemplates/index.ts +19 -0
  260. package/src/templates/DescriptionField/DescriptionField.tsx +26 -0
  261. package/src/templates/DescriptionField/index.ts +2 -0
  262. package/src/templates/ErrorList/ErrorList.tsx +21 -0
  263. package/src/templates/ErrorList/index.ts +2 -0
  264. package/src/templates/FieldErrorTemplate/FieldErrorTemplate.tsx +22 -0
  265. package/src/templates/FieldErrorTemplate/index.ts +2 -0
  266. package/src/templates/FieldHelpTemplate/FieldHelpTemplate.tsx +23 -0
  267. package/src/templates/FieldHelpTemplate/index.ts +2 -0
  268. package/src/templates/FieldTemplate/FieldTemplate.tsx +66 -0
  269. package/src/templates/FieldTemplate/index.ts +2 -0
  270. package/src/templates/GridTemplate/GridTemplate.tsx +26 -0
  271. package/src/templates/GridTemplate/index.ts +2 -0
  272. package/src/templates/ObjectFieldTemplate/ObjectFieldTemplate.tsx +108 -0
  273. package/src/templates/ObjectFieldTemplate/index.ts +2 -0
  274. package/src/templates/Templates.tsx +63 -0
  275. package/src/templates/TitleField/TitleField.tsx +26 -0
  276. package/src/templates/TitleField/index.ts +2 -0
  277. package/src/templates/WrapIfAdditionalTemplate/WrapIfAdditionalTemplate.tsx +74 -0
  278. package/src/templates/WrapIfAdditionalTemplate/index.ts +2 -0
  279. package/src/templates/index.ts +22 -0
  280. package/src/theme/Theme.tsx +93 -0
  281. package/src/theme/index.ts +2 -0
  282. package/src/tsconfig.json +26 -0
  283. package/src/types/DaisyProps.ts +5 -0
  284. package/src/types.d.ts +4 -0
  285. package/src/utils.ts +18 -0
  286. package/src/widgets/AltDateTimeWidget/AltDateTimeWidget.tsx +14 -0
  287. package/src/widgets/AltDateTimeWidget/index.ts +2 -0
  288. package/src/widgets/AltDateWidget/AltDateWidget.tsx +328 -0
  289. package/src/widgets/AltDateWidget/index.ts +2 -0
  290. package/src/widgets/CheckboxWidget/CheckboxWidget.tsx +108 -0
  291. package/src/widgets/CheckboxWidget/index.ts +2 -0
  292. package/src/widgets/CheckboxesWidget/CheckboxesWidget.tsx +124 -0
  293. package/src/widgets/CheckboxesWidget/index.ts +2 -0
  294. package/src/widgets/DateTimeWidget/DateTimeWidget.tsx +343 -0
  295. package/src/widgets/DateTimeWidget/index.ts +2 -0
  296. package/src/widgets/DateWidget/DateWidget.tsx +393 -0
  297. package/src/widgets/DateWidget/index.ts +2 -0
  298. package/src/widgets/FileWidget/FileWidget.tsx +86 -0
  299. package/src/widgets/FileWidget/index.ts +2 -0
  300. package/src/widgets/RadioWidget/RadioWidget.tsx +114 -0
  301. package/src/widgets/RadioWidget/index.ts +2 -0
  302. package/src/widgets/RangeWidget/RangeWidget.tsx +78 -0
  303. package/src/widgets/RangeWidget/index.ts +2 -0
  304. package/src/widgets/RatingWidget/RatingWidget.tsx +120 -0
  305. package/src/widgets/RatingWidget/index.ts +2 -0
  306. package/src/widgets/SelectWidget/SelectWidget.tsx +161 -0
  307. package/src/widgets/SelectWidget/index.ts +2 -0
  308. package/src/widgets/TextareaWidget/TextareaWidget.tsx +77 -0
  309. package/src/widgets/TextareaWidget/index.ts +2 -0
  310. package/src/widgets/TimeWidget/TimeWidget.tsx +72 -0
  311. package/src/widgets/TimeWidget/index.ts +2 -0
  312. package/src/widgets/ToggleWidget/ToggleWidget.tsx +70 -0
  313. package/src/widgets/ToggleWidget/index.ts +2 -0
  314. package/src/widgets/Widgets.tsx +58 -0
  315. package/src/widgets/index.ts +2 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTimeWidget.js","sourceRoot":"","sources":["../../../src/widgets/DateTimeWidget/DateTimeWidget.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { default } from './DateTimeWidget.js';
2
+ export * from './DateTimeWidget.js';
@@ -0,0 +1,3 @@
1
+ export { default } from './DateTimeWidget.js';
2
+ export * from './DateTimeWidget.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/DateTimeWidget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
2
+ import 'react-day-picker/dist/style.css';
3
+ /** The `DateWidget` component provides a date picker with DaisyUI styling.
4
+ *
5
+ * Features:
6
+ * - Calendar popup with month/year dropdown navigation
7
+ * - Accessible keyboard navigation
8
+ * - Date formatting using date-fns
9
+ * - Date-only selection (time component set to 00:00:00)
10
+ * - Manages focus and blur events for accessibility
11
+ *
12
+ * @param props - The `WidgetProps` for this component
13
+ */
14
+ export default function DateWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,274 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
+ import { faCalendar } from '@fortawesome/free-solid-svg-icons';
4
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
+ import { format, isSameDay, isToday, isValid } from 'date-fns';
6
+ import { DayPicker, UI } from 'react-day-picker';
7
+ import 'react-day-picker/dist/style.css';
8
+ /**
9
+ * Custom hook to manage the picker's popup state and displayed month
10
+ *
11
+ * @param initialDate - Initial date to display, defaults to today
12
+ * @returns State and handlers for the date picker
13
+ */
14
+ function useDatePickerState(initialDate) {
15
+ const [isOpen, setIsOpen] = useState(false);
16
+ const [month, setMonth] = useState(initialDate !== null && initialDate !== void 0 ? initialDate : new Date());
17
+ return { isOpen, setIsOpen, month, setMonth };
18
+ }
19
+ /**
20
+ * Custom hook to detect clicks outside an element and run a callback
21
+ *
22
+ * @param ref - React ref to the element to monitor
23
+ * @param callback - Function to call when a click outside is detected
24
+ */
25
+ function useClickOutside(ref, callback) {
26
+ useEffect(() => {
27
+ const handleClickOutside = (event) => {
28
+ if (ref.current && !ref.current.contains(event.target)) {
29
+ callback();
30
+ }
31
+ };
32
+ document.addEventListener('mousedown', handleClickOutside);
33
+ return () => document.removeEventListener('mousedown', handleClickOutside);
34
+ }, [ref, callback]);
35
+ }
36
+ /**
37
+ * Predefined DayPicker styles using DaisyUI classes
38
+ */
39
+ const dayPickerStyles = {
40
+ classNames: {
41
+ [UI.Root]: 'relative',
42
+ [UI.Nav]: 'hidden',
43
+ [UI.Chevron]: 'hidden',
44
+ [UI.CaptionLabel]: 'hidden',
45
+ [UI.Dropdowns]: 'flex justify-between gap-4 px-4 pb-4',
46
+ [UI.Dropdown]: 'select select-bordered select-sm w-32',
47
+ [UI.MonthsDropdown]: 'select select-bordered select-sm',
48
+ [UI.YearsDropdown]: 'select select-bordered select-sm',
49
+ [UI.Months]: 'flex justify-center',
50
+ [UI.Month]: 'w-full',
51
+ [UI.MonthCaption]: 'flex justify-center',
52
+ [UI.MonthGrid]: 'w-full',
53
+ [UI.Weekdays]: 'grid grid-cols-7 text-center border-b mb-2 pb-1 text-base-content/60 uppercase',
54
+ [UI.Weekday]: 'p-1 font-medium text-base-content/60 text-sm',
55
+ [UI.Week]: 'grid grid-cols-7',
56
+ [UI.Day]: 'w-10 h-8 p-0 relative rounded-md',
57
+ [UI.DayButton]: 'btn btn-ghost absolute inset-0 flex items-center justify-center w-full h-full cursor-pointer rounded-md hover:btn-primary',
58
+ },
59
+ modifiers: {
60
+ selected: 'btn btn-accent min-h-0 h-full',
61
+ outside: 'text-base-content/30 hover:btn-ghost',
62
+ disabled: 'opacity-50 cursor-not-allowed hover:btn-disabled',
63
+ },
64
+ };
65
+ /**
66
+ * Popup component for the calendar
67
+ *
68
+ * Renders a DayPicker calendar for selecting dates
69
+ *
70
+ * @param props - The DatePickerProps for this component
71
+ */
72
+ function DatePickerPopup({ selectedDate, month, onMonthChange, onSelect }) {
73
+ const customDayModifiers = {
74
+ selected: selectedDate,
75
+ 'custom-today': (date) => isToday(date) && !(selectedDate && isSameDay(date, selectedDate)),
76
+ };
77
+ const customModifiersClassNames = {
78
+ ...dayPickerStyles.modifiers,
79
+ 'custom-today': 'btn btn-outline btn-info min-h-0 h-full',
80
+ };
81
+ return (_jsx("div", { className: 'p-3', style: { minWidth: '320px', minHeight: '350px' }, children: _jsx(DayPicker, { mode: 'single', selected: selectedDate, month: month, onMonthChange: onMonthChange, onSelect: onSelect, captionLayout: 'dropdown', fromYear: 1900, toYear: new Date().getFullYear() + 10, showOutsideDays: true, classNames: dayPickerStyles.classNames, modifiers: customDayModifiers, modifiersClassNames: customModifiersClassNames }) }));
82
+ }
83
+ // Use React.memo to optimize re-renders
84
+ const MemoizedDatePickerPopup = memo(DatePickerPopup);
85
+ /** The `DateWidget` component provides a date picker with DaisyUI styling.
86
+ *
87
+ * Features:
88
+ * - Calendar popup with month/year dropdown navigation
89
+ * - Accessible keyboard navigation
90
+ * - Date formatting using date-fns
91
+ * - Date-only selection (time component set to 00:00:00)
92
+ * - Manages focus and blur events for accessibility
93
+ *
94
+ * @param props - The `WidgetProps` for this component
95
+ */
96
+ export default function DateWidget(props) {
97
+ const { id, value, onChange, onFocus, onBlur, schema } = props;
98
+ // Initialize the local date from the parent's value.
99
+ const initialDate = useMemo(() => (value ? new Date(value) : undefined), [value]);
100
+ const [localDate, setLocalDate] = useState(initialDate);
101
+ // When the parent's value changes externally, update local state.
102
+ useEffect(() => {
103
+ setLocalDate(initialDate);
104
+ }, [initialDate]);
105
+ const { isOpen, setIsOpen, month, setMonth } = useDatePickerState(initialDate);
106
+ const containerRef = useRef(null);
107
+ const inputRef = useRef(null);
108
+ // Close the popup when clicking outside and commit changes.
109
+ useClickOutside(containerRef, () => {
110
+ if (isOpen) {
111
+ setIsOpen(false);
112
+ onChange(localDate ? localDate.toISOString() : '');
113
+ // Manually invoke the blur handler to ensure blur event is triggered
114
+ if (onBlur) {
115
+ onBlur(id, value);
116
+ }
117
+ }
118
+ });
119
+ // When the local date changes, update the displayed month.
120
+ useEffect(() => {
121
+ if (localDate) {
122
+ setMonth(localDate);
123
+ }
124
+ }, [localDate, setMonth]);
125
+ // Update the month when the user navigates the calendar.
126
+ const handleMonthChange = useCallback((date) => setMonth(date), [setMonth]);
127
+ // Update local state on day selection (but do not commit immediately).
128
+ const handleSelect = useCallback((date) => {
129
+ if (date) {
130
+ // Remove any time component by setting hours, minutes, seconds, and milliseconds to zero.
131
+ date.setHours(0, 0, 0, 0);
132
+ setLocalDate(date);
133
+ }
134
+ }, []);
135
+ // Add a portal container to the document body if it doesn't exist
136
+ useEffect(() => {
137
+ // Check if the portal container exists, create it if not
138
+ let portalContainer = document.getElementById('date-picker-portal');
139
+ if (!portalContainer) {
140
+ portalContainer = document.createElement('div');
141
+ portalContainer.id = 'date-picker-portal';
142
+ document.body.appendChild(portalContainer);
143
+ }
144
+ // Clean up on unmount
145
+ return () => {
146
+ // Only remove if no other date pickers are using it and if portalContainer exists
147
+ const container = document.getElementById('date-picker-portal');
148
+ if (container && document.querySelectorAll('.date-picker-popup').length === 0) {
149
+ container.remove();
150
+ }
151
+ };
152
+ }, []);
153
+ // Get the document and window objects (will work in iframes too)
154
+ const getDocumentAndWindow = () => {
155
+ // Try to get the iframe's document and window if we're in one
156
+ let doc = document;
157
+ let win = window;
158
+ try {
159
+ // If we're in an iframe, try to access the parent
160
+ if (window.frameElement) {
161
+ // We're in an iframe
162
+ const iframe = window.frameElement;
163
+ // Get the iframe's contentDocument and contentWindow
164
+ if (iframe.contentDocument) {
165
+ doc = iframe.contentDocument;
166
+ }
167
+ if (iframe.contentWindow) {
168
+ win = iframe.contentWindow;
169
+ }
170
+ }
171
+ }
172
+ catch (e) {
173
+ // Security error, we're in a cross-origin iframe
174
+ console.log('Unable to access parent frame:', e);
175
+ }
176
+ return { doc, win };
177
+ };
178
+ // Render the calendar at a specific position
179
+ const renderCalendar = useCallback(() => {
180
+ if (!containerRef.current || !inputRef.current) {
181
+ return;
182
+ }
183
+ // Get the proper document and window
184
+ const { win } = getDocumentAndWindow();
185
+ const inputRect = inputRef.current.getBoundingClientRect();
186
+ const containerWidth = 320; // Minimum width we've set
187
+ // Position the calendar relative to the input but with fixed positioning
188
+ containerRef.current.style.position = 'fixed';
189
+ containerRef.current.style.top = `${inputRect.bottom + 5}px`;
190
+ // Prevent it from going off-screen on the right
191
+ const rightEdge = inputRect.left + containerWidth;
192
+ const windowWidth = win.innerWidth;
193
+ if (rightEdge > windowWidth - 20) {
194
+ // Align to the right edge if it would overflow
195
+ containerRef.current.style.left = `${Math.max(20, windowWidth - 20 - containerWidth)}px`;
196
+ }
197
+ else {
198
+ // Otherwise align to the left edge of the input
199
+ containerRef.current.style.left = `${inputRect.left}px`;
200
+ }
201
+ // Ensure the calendar is visible
202
+ containerRef.current.style.zIndex = '99999';
203
+ }, [containerRef, inputRef]);
204
+ // Handle window resize to reposition the calendar
205
+ useEffect(() => {
206
+ if (!isOpen) {
207
+ return;
208
+ }
209
+ // Position initially
210
+ renderCalendar();
211
+ // Update position on resize
212
+ window.addEventListener('resize', renderCalendar);
213
+ window.addEventListener('scroll', renderCalendar);
214
+ return () => {
215
+ window.removeEventListener('resize', renderCalendar);
216
+ window.removeEventListener('scroll', renderCalendar);
217
+ };
218
+ }, [isOpen, renderCalendar]);
219
+ // Toggle popup visibility.
220
+ const togglePicker = useCallback((e) => {
221
+ e.stopPropagation();
222
+ setIsOpen((prev) => !prev);
223
+ if (!isOpen && onFocus) {
224
+ onFocus(id, value);
225
+ }
226
+ // Position calculation will happen in the effect hook
227
+ }, [isOpen, id, onFocus, setIsOpen, value]);
228
+ // Handle focus event
229
+ const handleFocus = useCallback(() => {
230
+ if (onFocus) {
231
+ onFocus(id, value);
232
+ }
233
+ }, [id, onFocus, value]);
234
+ // Handle blur event
235
+ const handleBlur = useCallback(() => {
236
+ if (!isOpen && onBlur) {
237
+ onBlur(id, value);
238
+ }
239
+ }, [id, onBlur, value, isOpen]);
240
+ // Close popup on escape key
241
+ useEffect(() => {
242
+ const handleEscape = (e) => {
243
+ if (e.key === 'Escape' && isOpen) {
244
+ setIsOpen(false);
245
+ if (onBlur) {
246
+ onBlur(id, value);
247
+ }
248
+ }
249
+ };
250
+ document.addEventListener('keydown', handleEscape);
251
+ return () => document.removeEventListener('keydown', handleEscape);
252
+ }, [id, isOpen, onBlur, value]);
253
+ // Add the handleDoneClick callback near the top of the component, with the other event handlers
254
+ /** Handle clicking the "Done" button
255
+ */
256
+ const handleDoneClick = useCallback(() => {
257
+ var _a;
258
+ setIsOpen(false);
259
+ onChange(localDate ? localDate.toISOString() : '');
260
+ if (onBlur) {
261
+ onBlur(id, value);
262
+ }
263
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
264
+ }, [localDate, onChange, onBlur, id, value]);
265
+ return (_jsx("div", { className: 'form-control my-4 w-full relative', children: _jsxs("div", { className: 'w-full', tabIndex: 0, onKeyDown: (e) => {
266
+ if (e.key === 'Enter' || e.key === ' ') {
267
+ togglePicker(e);
268
+ }
269
+ }, onFocus: handleFocus, onBlur: handleBlur, ref: inputRef, children: [_jsxs("div", { id: id, className: `input input-bordered w-full flex items-center justify-between cursor-pointer ${isOpen ? 'ring-2 ring-primary/50' : ''}`, onClick: togglePicker, role: 'button', "aria-haspopup": 'true', "aria-expanded": isOpen, tabIndex: -1, children: [_jsx("span", { className: localDate && isValid(localDate) ? '' : 'text-base-content/50', children: localDate && isValid(localDate) ? format(localDate, 'PP') : schema.title }), _jsx(FontAwesomeIcon, { icon: faCalendar, className: 'ml-2 h-4 w-4 text-primary' })] }), isOpen && (_jsxs("div", { ref: containerRef, className: 'date-picker-popup fixed z-[99999] w-full max-w-xs bg-base-100 border border-base-300 shadow-lg rounded-box', style: {
270
+ maxHeight: 'none',
271
+ overflow: 'visible',
272
+ }, onClick: (e) => e.stopPropagation(), children: [_jsx(MemoizedDatePickerPopup, { selectedDate: localDate, month: month, onMonthChange: handleMonthChange, onSelect: handleSelect }), _jsx("div", { className: 'p-3 flex justify-end border-t border-base-300', children: _jsx("button", { type: 'button', className: 'btn btn-sm btn-primary', onClick: handleDoneClick, children: "Done" }) })] }))] }) }));
273
+ }
274
+ //# sourceMappingURL=DateWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateWidget.js","sourceRoot":"","sources":["../../../src/widgets/DateWidget/DateWidget.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { default } from './DateWidget.js';
2
+ export * from './DateWidget.js';
@@ -0,0 +1,3 @@
1
+ export { default } from './DateWidget.js';
2
+ export * from './DateWidget.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/DateWidget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { FormContextType, RJSFSchema, StrictRJSFSchema, WidgetProps } from '@rjsf/utils';
2
+ /** The `FileWidget` component provides a file input with DaisyUI styling
3
+ *
4
+ * Features:
5
+ * - Handles both single and multiple file uploads
6
+ * - Supports file type filtering via accept attribute
7
+ * - Properly manages disabled and readonly states
8
+ * - Handles focus and blur events
9
+ *
10
+ * @param props - The `WidgetProps` for this component
11
+ */
12
+ export default function FileWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,57 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ /** The `FileWidget` component provides a file input with DaisyUI styling
4
+ *
5
+ * Features:
6
+ * - Handles both single and multiple file uploads
7
+ * - Supports file type filtering via accept attribute
8
+ * - Properly manages disabled and readonly states
9
+ * - Handles focus and blur events
10
+ *
11
+ * @param props - The `WidgetProps` for this component
12
+ */
13
+ export default function FileWidget(props) {
14
+ const { id, required, disabled, readonly, schema, onChange, onFocus, onBlur, options = {} } = props;
15
+ // Ensure isMulti is explicitly a boolean.
16
+ const isMulti = schema.type === 'array' || Boolean(options.multiple);
17
+ // Accept attribute for restricting file types (e.g., "image/*"), if defined in options.
18
+ const accept = typeof options.accept === 'string' ? options.accept : undefined;
19
+ /** Handle file selection changes
20
+ *
21
+ * @param event - The change event from the file input
22
+ */
23
+ const handleChange = useCallback((event) => {
24
+ if (!event.target.files) {
25
+ return;
26
+ }
27
+ // Convert FileList to array for multiple upload handling.
28
+ const fileList = Array.from(event.target.files);
29
+ if (isMulti) {
30
+ onChange(fileList);
31
+ }
32
+ else {
33
+ // For single file, send the first file (or null if none chosen)
34
+ onChange(fileList[0] || null);
35
+ }
36
+ }, [onChange, isMulti]);
37
+ /** Handle focus events
38
+ *
39
+ * @param event - The focus event
40
+ */
41
+ const handleFocus = useCallback((event) => {
42
+ if (onFocus) {
43
+ onFocus(id, event.target.files ? Array.from(event.target.files) : null);
44
+ }
45
+ }, [onFocus, id]);
46
+ /** Handle blur events
47
+ *
48
+ * @param event - The blur event
49
+ */
50
+ const handleBlur = useCallback((event) => {
51
+ if (onBlur) {
52
+ onBlur(id, event.target.files ? Array.from(event.target.files) : null);
53
+ }
54
+ }, [onBlur, id]);
55
+ return (_jsx("input", { id: id, type: 'file', className: 'file-input w-full', required: required, disabled: disabled || readonly, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur, multiple: isMulti, accept: accept }));
56
+ }
57
+ //# sourceMappingURL=FileWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileWidget.js","sourceRoot":"","sources":["../../../src/widgets/FileWidget/FileWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA2B,WAAW,EAAE,MAAM,OAAO,CAAC;AAG7D;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,KAA2B;IAE3B,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;IAEpG,0CAA0C;IAC1C,MAAM,OAAO,GAAY,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9E,wFAAwF;IACxF,MAAM,MAAM,GAAuB,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnG;;;OAGG;IACH,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,KAAoC,EAAE,EAAE;QACvC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,0DAA0D;QAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,gEAAgE;YAChE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,OAAO,CAAC,CACpB,CAAC;IAEF;;;OAGG;IACH,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,KAAmC,EAAE,EAAE;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC,EACD,CAAC,OAAO,EAAE,EAAE,CAAC,CACd,CAAC;IAEF;;;OAGG;IACH,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,KAAmC,EAAE,EAAE;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzE,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,EAAE,CAAC,CACb,CAAC;IAEF,OAAO,CACL,gBACE,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,mBAAmB,EAC7B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAC9B,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,OAAO,EACjB,MAAM,EAAE,MAAM,GACd,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default } from './FileWidget.js';
2
+ export * from './FileWidget.js';
@@ -0,0 +1,3 @@
1
+ export { default } from './FileWidget.js';
2
+ export * from './FileWidget.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/FileWidget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { WidgetProps, StrictRJSFSchema, FormContextType, RJSFSchema } from '@rjsf/utils';
2
+ /** The `RadioWidget` component renders a group of radio buttons with DaisyUI styling
3
+ *
4
+ * Features:
5
+ * - Supports both primitive values and objects in enum options
6
+ * - Handles selection state for various data types
7
+ * - Uses DaisyUI radio styling with accessible labels
8
+ * - Supports disabled and readonly states
9
+ * - Provides focus and blur event handling
10
+ * - Renders radio buttons in a vertical layout for better spacing
11
+ *
12
+ * @param props - The `WidgetProps` for this component
13
+ */
14
+ export default function RadioWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({ id, options, value, required, disabled, readonly, onChange, onFocus, onBlur, }: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,67 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ /** The `RadioWidget` component renders a group of radio buttons with DaisyUI styling
4
+ *
5
+ * Features:
6
+ * - Supports both primitive values and objects in enum options
7
+ * - Handles selection state for various data types
8
+ * - Uses DaisyUI radio styling with accessible labels
9
+ * - Supports disabled and readonly states
10
+ * - Provides focus and blur event handling
11
+ * - Renders radio buttons in a vertical layout for better spacing
12
+ *
13
+ * @param props - The `WidgetProps` for this component
14
+ */
15
+ export default function RadioWidget({ id, options, value, required, disabled, readonly, onChange, onFocus, onBlur, }) {
16
+ var _a;
17
+ const { enumOptions } = options;
18
+ const isEnumeratedObject = enumOptions && ((_a = enumOptions[0]) === null || _a === void 0 ? void 0 : _a.value) && typeof enumOptions[0].value === 'object';
19
+ /** Gets the actual value from an option
20
+ *
21
+ * @param option - The option object to get value from
22
+ * @returns The option's value
23
+ */
24
+ const getValue = (option) => {
25
+ return option.value;
26
+ };
27
+ /** Determines if an option is checked based on the current value
28
+ *
29
+ * @param option - The option to check
30
+ * @returns Whether the option should be checked
31
+ */
32
+ const isChecked = (option) => {
33
+ if (isEnumeratedObject) {
34
+ return value && value.name === option.value.name;
35
+ }
36
+ return value === option.value;
37
+ };
38
+ /** Handles focus events for accessibility */
39
+ const handleFocus = useCallback((event) => {
40
+ var _a;
41
+ if (onFocus) {
42
+ const index = Number(event.target.dataset.index);
43
+ const optionValue = (_a = enumOptions === null || enumOptions === void 0 ? void 0 : enumOptions[index]) === null || _a === void 0 ? void 0 : _a.value;
44
+ onFocus(id, optionValue);
45
+ }
46
+ }, [onFocus, id, enumOptions]);
47
+ /** Handles blur events for accessibility */
48
+ const handleBlur = useCallback((event) => {
49
+ var _a;
50
+ if (onBlur) {
51
+ const index = Number(event.target.dataset.index);
52
+ const optionValue = (_a = enumOptions === null || enumOptions === void 0 ? void 0 : enumOptions[index]) === null || _a === void 0 ? void 0 : _a.value;
53
+ onBlur(id, optionValue);
54
+ }
55
+ }, [onBlur, id, enumOptions]);
56
+ /** Handles change events for radio options */
57
+ const handleChange = useCallback((event) => {
58
+ const index = Number(event.target.dataset.index);
59
+ const option = enumOptions === null || enumOptions === void 0 ? void 0 : enumOptions[index];
60
+ if (option) {
61
+ onChange(isEnumeratedObject ? option.value : option.value);
62
+ event.target.blur();
63
+ }
64
+ }, [onChange, isEnumeratedObject, enumOptions]);
65
+ return (_jsx("div", { className: 'form-control', children: _jsx("div", { className: 'flex flex-col gap-2 mt-1', children: enumOptions === null || enumOptions === void 0 ? void 0 : enumOptions.map((option, index) => (_jsxs("label", { className: 'flex items-center cursor-pointer gap-2', children: [_jsx("input", { type: 'radio', id: `${id}-${option.value}`, className: 'radio', name: id, value: getValue(option), checked: isChecked(option), required: required, disabled: disabled || readonly, "data-index": index, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur }), _jsx("span", { className: 'label-text', children: option.label })] }, option.value))) }) }));
66
+ }
67
+ //# sourceMappingURL=RadioWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioWidget.js","sourceRoot":"","sources":["../../../src/widgets/RadioWidget/RadioWidget.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { default } from './RadioWidget.js';
2
+ export * from './RadioWidget.js';
@@ -0,0 +1,3 @@
1
+ export { default } from './RadioWidget.js';
2
+ export * from './RadioWidget.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/RadioWidget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { WidgetProps, StrictRJSFSchema, RJSFSchema, FormContextType } from '@rjsf/utils';
2
+ /** The `RangeWidget` component renders a range slider input with DaisyUI styling
3
+ *
4
+ * Features:
5
+ * - Visual slider control for numerical values
6
+ * - Displays current value next to the slider
7
+ * - Supports min, max, and step attributes from schema
8
+ * - Handles required, disabled, and readonly states
9
+ * - Supports focus and blur events for accessibility
10
+ *
11
+ * @param props - The `WidgetProps` for this component
12
+ */
13
+ export default function RangeWidget<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>({ id, value, required, disabled, readonly, onChange, onFocus, onBlur, schema, }: WidgetProps<T, S, F>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ /** The `RangeWidget` component renders a range slider input with DaisyUI styling
4
+ *
5
+ * Features:
6
+ * - Visual slider control for numerical values
7
+ * - Displays current value next to the slider
8
+ * - Supports min, max, and step attributes from schema
9
+ * - Handles required, disabled, and readonly states
10
+ * - Supports focus and blur events for accessibility
11
+ *
12
+ * @param props - The `WidgetProps` for this component
13
+ */
14
+ export default function RangeWidget({ id, value, required, disabled, readonly, onChange, onFocus, onBlur, schema, }) {
15
+ /** Handle focus events
16
+ *
17
+ * @param event - The focus event
18
+ */
19
+ const handleFocus = (event) => {
20
+ if (onFocus) {
21
+ onFocus(id, event.target.value);
22
+ }
23
+ };
24
+ /** Handle blur events
25
+ *
26
+ * @param event - The blur event
27
+ */
28
+ const handleBlur = (event) => {
29
+ if (onBlur) {
30
+ onBlur(id, event.target.value);
31
+ }
32
+ };
33
+ /** Handle change events
34
+ *
35
+ * @param event - The change event
36
+ */
37
+ const handleChange = useCallback((event) => {
38
+ onChange(event.target.value);
39
+ }, [onChange]);
40
+ return (_jsx("div", { className: 'form-control', children: _jsxs("div", { className: 'flex items-center', children: [_jsx("input", { type: 'range', id: id, className: 'range', value: value || schema.default, required: required, disabled: disabled || readonly, min: schema.minimum, max: schema.maximum, step: schema.multipleOf || 1, onChange: handleChange, onFocus: handleFocus, onBlur: handleBlur }), _jsx("span", { className: 'label-text ml-4', children: value })] }) }));
41
+ }
42
+ //# sourceMappingURL=RangeWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RangeWidget.js","sourceRoot":"","sources":["../../../src/widgets/RangeWidget/RangeWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAc,WAAW,EAAE,MAAM,OAAO,CAAC;AAGhD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAoF,EACrH,EAAE,EACF,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,MAAM,GACe;IACrB;;;OAGG;IACH,MAAM,WAAW,GAAG,CAAC,KAAmC,EAAE,EAAE;QAC1D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC;IAEF;;;OAGG;IACH,MAAM,UAAU,GAAG,CAAC,KAAmC,EAAE,EAAE;QACzD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IAEF;;;OAGG;IACH,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,KAA0C,EAAE,EAAE;QAC7C,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO,CACL,cAAK,SAAS,EAAC,cAAc,YAC3B,eAAK,SAAS,EAAC,mBAAmB,aAChC,gBACE,IAAI,EAAC,OAAO,EACZ,EAAE,EAAE,EAAE,EACN,SAAS,EAAC,OAAO,EACjB,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,OAAO,EAC9B,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAC9B,GAAG,EAAE,MAAM,CAAC,OAAO,EACnB,GAAG,EAAE,MAAM,CAAC,OAAO,EACnB,IAAI,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC,EAC5B,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,GAClB,EACF,eAAM,SAAS,EAAC,iBAAiB,YAAE,KAAK,GAAQ,IAC5C,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default } from './RangeWidget.js';
2
+ export * from './RangeWidget.js';
@@ -0,0 +1,3 @@
1
+ export { default } from './RangeWidget.js';
2
+ export * from './RangeWidget.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/widgets/RangeWidget/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,cAAc,eAAe,CAAC"}