@stackcraftmx/calcita 0.51.0 → 0.53.0

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 (214) hide show
  1. package/README.md +73 -6
  2. package/cli/calcita.js +4 -2
  3. package/cli/checkTexts.js +66 -9
  4. package/dist/appShell/BarActionButton.js.map +1 -1
  5. package/dist/datePickers/DateInput.js +5 -3
  6. package/dist/datePickers/DateInput.js.map +1 -1
  7. package/dist/datePickers/DateTimeInput.js +6 -4
  8. package/dist/datePickers/DateTimeInput.js.map +1 -1
  9. package/dist/datePickers/FormDateField.js +1 -1
  10. package/dist/datePickers/FormDateField.js.map +1 -1
  11. package/dist/datePickers/FormDateTimeField.js +1 -1
  12. package/dist/datePickers/FormDateTimeField.js.map +1 -1
  13. package/dist/datePickers/FormMonthField.js +1 -1
  14. package/dist/datePickers/FormMonthField.js.map +1 -1
  15. package/dist/datePickers/FormTimeField.js +1 -1
  16. package/dist/datePickers/FormTimeField.js.map +1 -1
  17. package/dist/datePickers/MonthInput.js +5 -3
  18. package/dist/datePickers/MonthInput.js.map +1 -1
  19. package/dist/datePickers/PickerFrame.js +2 -2
  20. package/dist/datePickers/PickerFrame.js.map +1 -1
  21. package/dist/datePickers/TimeInput.js +6 -4
  22. package/dist/datePickers/TimeInput.js.map +1 -1
  23. package/dist/feedback/Toaster.js +11 -2
  24. package/dist/feedback/Toaster.js.map +1 -1
  25. package/dist/forms/CalcitaFormik.js +11 -0
  26. package/dist/forms/CalcitaFormik.js.map +1 -0
  27. package/dist/forms/FormAttachmentsField.js +1 -1
  28. package/dist/forms/FormAttachmentsField.js.map +1 -1
  29. package/dist/forms/FormCatalogField.js +1 -1
  30. package/dist/forms/FormCatalogField.js.map +1 -1
  31. package/dist/forms/FormCheckboxGroupField.js +1 -1
  32. package/dist/forms/FormCheckboxGroupField.js.map +1 -1
  33. package/dist/forms/FormColorField.js +1 -1
  34. package/dist/forms/FormColorField.js.map +1 -1
  35. package/dist/forms/FormFileField.js +1 -1
  36. package/dist/forms/FormFileField.js.map +1 -1
  37. package/dist/forms/FormFileUploadField.js +1 -1
  38. package/dist/forms/FormFileUploadField.js.map +1 -1
  39. package/dist/forms/FormImageField.js +1 -1
  40. package/dist/forms/FormImageField.js.map +1 -1
  41. package/dist/forms/FormMaskedField.js +1 -1
  42. package/dist/forms/FormMaskedField.js.map +1 -1
  43. package/dist/forms/FormNumberField.js +1 -1
  44. package/dist/forms/FormNumberField.js.map +1 -1
  45. package/dist/forms/FormSchemaProvider.js +17 -0
  46. package/dist/forms/FormSchemaProvider.js.map +1 -0
  47. package/dist/forms/FormSelectField.js +1 -1
  48. package/dist/forms/FormSelectField.js.map +1 -1
  49. package/dist/forms/FormTextField.js +1 -1
  50. package/dist/forms/FormTextField.js.map +1 -1
  51. package/dist/forms/FormTransferListField.js +1 -1
  52. package/dist/forms/FormTransferListField.js.map +1 -1
  53. package/dist/forms/FormWizard.js +23 -6
  54. package/dist/forms/FormWizard.js.map +1 -1
  55. package/dist/forms/schemaRequired.js +33 -0
  56. package/dist/forms/schemaRequired.js.map +1 -0
  57. package/dist/forms/useFormikField.js +18 -5
  58. package/dist/forms/useFormikField.js.map +1 -1
  59. package/dist/forms.js +52 -46
  60. package/dist/forms.js.map +1 -1
  61. package/dist/hookForm/FormAttachmentsField.js +1 -1
  62. package/dist/hookForm/FormAttachmentsField.js.map +1 -1
  63. package/dist/hookForm/FormCatalogField.js +1 -1
  64. package/dist/hookForm/FormCatalogField.js.map +1 -1
  65. package/dist/hookForm/FormCheckboxGroupField.js +1 -1
  66. package/dist/hookForm/FormCheckboxGroupField.js.map +1 -1
  67. package/dist/hookForm/FormColorField.js +1 -1
  68. package/dist/hookForm/FormColorField.js.map +1 -1
  69. package/dist/hookForm/FormFileField.js +1 -1
  70. package/dist/hookForm/FormFileField.js.map +1 -1
  71. package/dist/hookForm/FormFileUploadField.js +1 -1
  72. package/dist/hookForm/FormFileUploadField.js.map +1 -1
  73. package/dist/hookForm/FormImageField.js +1 -1
  74. package/dist/hookForm/FormImageField.js.map +1 -1
  75. package/dist/hookForm/FormMaskedField.js +1 -1
  76. package/dist/hookForm/FormMaskedField.js.map +1 -1
  77. package/dist/hookForm/FormNumberField.js +1 -1
  78. package/dist/hookForm/FormNumberField.js.map +1 -1
  79. package/dist/hookForm/FormSelectField.js +1 -1
  80. package/dist/hookForm/FormSelectField.js.map +1 -1
  81. package/dist/hookForm/FormTextField.js +1 -1
  82. package/dist/hookForm/FormTextField.js.map +1 -1
  83. package/dist/hookForm/FormTransferListField.js +1 -1
  84. package/dist/hookForm/FormTransferListField.js.map +1 -1
  85. package/dist/hookForm/FormWizard.js +21 -5
  86. package/dist/hookForm/FormWizard.js.map +1 -1
  87. package/dist/hookForm/useHookFormField.js +9 -3
  88. package/dist/hookForm/useHookFormField.js.map +1 -1
  89. package/dist/index.js +12 -3
  90. package/dist/index.js.map +1 -1
  91. package/dist/inputs/CatalogInput.js +3 -2
  92. package/dist/inputs/CatalogInput.js.map +1 -1
  93. package/dist/inputs/CheckboxGroupInput.js +2 -1
  94. package/dist/inputs/CheckboxGroupInput.js.map +1 -1
  95. package/dist/inputs/ColorInput.js +3 -1
  96. package/dist/inputs/ColorInput.js.map +1 -1
  97. package/dist/inputs/FieldFrame.js +18 -3
  98. package/dist/inputs/FieldFrame.js.map +1 -1
  99. package/dist/inputs/FormSection.js +42 -11
  100. package/dist/inputs/FormSection.js.map +1 -1
  101. package/dist/inputs/NumberInput.js +3 -1
  102. package/dist/inputs/NumberInput.js.map +1 -1
  103. package/dist/inputs/SelectInput.js +3 -1
  104. package/dist/inputs/SelectInput.js.map +1 -1
  105. package/dist/inputs/TextInput.js +1 -1
  106. package/dist/inputs/TextInput.js.map +1 -1
  107. package/dist/inputs/TransferListInput.js +2 -1
  108. package/dist/inputs/TransferListInput.js.map +1 -1
  109. package/dist/inputs/WizardLayout.js +51 -17
  110. package/dist/inputs/WizardLayout.js.map +1 -1
  111. package/dist/inputs/formLayoutContext.js +7 -2
  112. package/dist/inputs/formLayoutContext.js.map +1 -1
  113. package/dist/inputs/requiredMark.js +17 -0
  114. package/dist/inputs/requiredMark.js.map +1 -0
  115. package/dist/inputs/useWizardSteps.js +36 -0
  116. package/dist/inputs/useWizardSteps.js.map +1 -0
  117. package/dist/inputs/wizardSteps.js +32 -0
  118. package/dist/inputs/wizardSteps.js.map +1 -0
  119. package/dist/locales/en.js +1 -0
  120. package/dist/locales/en.js.map +1 -1
  121. package/dist/locales/es.js +1 -0
  122. package/dist/locales/es.js.map +1 -1
  123. package/dist/richText/FormRichTextField.js +1 -1
  124. package/dist/richText/FormRichTextField.js.map +1 -1
  125. package/dist/richText/RichTextEditor.js +4 -3
  126. package/dist/richText/RichTextEditor.js.map +1 -1
  127. package/dist/toolkit/ToolkitProvider.js +3 -0
  128. package/dist/toolkit/ToolkitProvider.js.map +1 -1
  129. package/dist/toolkit/toolkitContext.js.map +1 -1
  130. package/dist/types/appShell/BarActionButton.d.ts +1 -0
  131. package/dist/types/datePickers/DateInput.d.ts +2 -0
  132. package/dist/types/datePickers/DateTimeInput.d.ts +2 -0
  133. package/dist/types/datePickers/FormDateField.d.ts +3 -3
  134. package/dist/types/datePickers/FormDateTimeField.d.ts +3 -3
  135. package/dist/types/datePickers/FormMonthField.d.ts +3 -3
  136. package/dist/types/datePickers/FormTimeField.d.ts +3 -3
  137. package/dist/types/datePickers/MonthInput.d.ts +2 -0
  138. package/dist/types/datePickers/PickerFrame.d.ts +3 -1
  139. package/dist/types/datePickers/TimeInput.d.ts +2 -0
  140. package/dist/types/feedback/Toaster.d.ts +15 -1
  141. package/dist/types/feedback/index.d.ts +1 -1
  142. package/dist/types/forms/CalcitaFormik.d.ts +6 -0
  143. package/dist/types/forms/FormAttachmentsField.d.ts +3 -3
  144. package/dist/types/forms/FormCatalogField.d.ts +2 -2
  145. package/dist/types/forms/FormCheckboxGroupField.d.ts +3 -3
  146. package/dist/types/forms/FormColorField.d.ts +2 -2
  147. package/dist/types/forms/FormFileField.d.ts +3 -3
  148. package/dist/types/forms/FormFileUploadField.d.ts +3 -3
  149. package/dist/types/forms/FormImageField.d.ts +3 -3
  150. package/dist/types/forms/FormMaskedField.d.ts +2 -2
  151. package/dist/types/forms/FormNumberField.d.ts +2 -2
  152. package/dist/types/forms/FormSchemaProvider.d.ts +13 -0
  153. package/dist/types/forms/FormSelectField.d.ts +2 -2
  154. package/dist/types/forms/FormTextField.d.ts +2 -2
  155. package/dist/types/forms/FormTransferListField.d.ts +3 -3
  156. package/dist/types/forms/FormWizard.d.ts +14 -1
  157. package/dist/types/forms/index.d.ts +1 -0
  158. package/dist/types/forms/schemaRequired.d.ts +14 -0
  159. package/dist/types/forms/useFormikField.d.ts +10 -4
  160. package/dist/types/forms.d.ts +4 -2
  161. package/dist/types/hookForm/FormAttachmentsField.d.ts +3 -3
  162. package/dist/types/hookForm/FormCatalogField.d.ts +3 -3
  163. package/dist/types/hookForm/FormCheckboxGroupField.d.ts +3 -3
  164. package/dist/types/hookForm/FormColorField.d.ts +3 -3
  165. package/dist/types/hookForm/FormFileField.d.ts +3 -3
  166. package/dist/types/hookForm/FormFileUploadField.d.ts +3 -3
  167. package/dist/types/hookForm/FormImageField.d.ts +3 -3
  168. package/dist/types/hookForm/FormMaskedField.d.ts +3 -3
  169. package/dist/types/hookForm/FormNumberField.d.ts +3 -3
  170. package/dist/types/hookForm/FormSelectField.d.ts +3 -3
  171. package/dist/types/hookForm/FormTextField.d.ts +3 -3
  172. package/dist/types/hookForm/FormTransferListField.d.ts +3 -3
  173. package/dist/types/hookForm/FormWizard.d.ts +14 -1
  174. package/dist/types/hookForm/useHookFormField.d.ts +8 -4
  175. package/dist/types/index.d.ts +4 -3
  176. package/dist/types/inputs/CatalogInput.d.ts +1 -0
  177. package/dist/types/inputs/CheckboxGroupInput.d.ts +1 -0
  178. package/dist/types/inputs/ColorInput.d.ts +1 -0
  179. package/dist/types/inputs/FieldFrame.d.ts +1 -0
  180. package/dist/types/inputs/FormSection.d.ts +13 -0
  181. package/dist/types/inputs/NumberInput.d.ts +1 -0
  182. package/dist/types/inputs/SelectInput.d.ts +1 -0
  183. package/dist/types/inputs/TextInput.d.ts +1 -1
  184. package/dist/types/inputs/TransferListInput.d.ts +1 -0
  185. package/dist/types/inputs/WizardLayout.d.ts +6 -2
  186. package/dist/types/inputs/formLayoutContext.d.ts +8 -1
  187. package/dist/types/inputs/requiredMark.d.ts +9 -0
  188. package/dist/types/inputs/useWizardSteps.d.ts +23 -0
  189. package/dist/types/inputs/wizardSteps.d.ts +65 -0
  190. package/dist/types/locales/en.d.ts +1 -0
  191. package/dist/types/locales/es.d.ts +1 -0
  192. package/dist/types/richText/FormRichTextField.d.ts +3 -3
  193. package/dist/types/richText/RichTextEditor.d.ts +1 -0
  194. package/dist/types/toolkit/ToolkitProvider.d.ts +5 -1
  195. package/dist/types/toolkit/toolkitContext.d.ts +2 -1
  196. package/dist/types/ui/cards/RecordCard.d.ts +12 -0
  197. package/dist/types/ui/index.d.ts +1 -1
  198. package/dist/types/ui/navigation/BackButton.d.ts +1 -0
  199. package/dist/types/upload/AttachmentsInput.d.ts +2 -0
  200. package/dist/types/upload/FileInput.d.ts +1 -0
  201. package/dist/types/upload/FileUploadInput.d.ts +1 -0
  202. package/dist/types/upload/ImageInput.d.ts +1 -0
  203. package/dist/ui/cards/RecordCard.js +6 -2
  204. package/dist/ui/cards/RecordCard.js.map +1 -1
  205. package/dist/ui/navigation/BackButton.js.map +1 -1
  206. package/dist/upload/AttachmentsInput.js +2 -1
  207. package/dist/upload/AttachmentsInput.js.map +1 -1
  208. package/dist/upload/FileInput.js +2 -1
  209. package/dist/upload/FileInput.js.map +1 -1
  210. package/dist/upload/FileUploadInput.js +2 -1
  211. package/dist/upload/FileUploadInput.js.map +1 -1
  212. package/dist/upload/ImageInput.js +2 -1
  213. package/dist/upload/ImageInput.js.map +1 -1
  214. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"toolkitContext.js","sources":["../../src/toolkit/toolkitContext.js"],"sourcesContent":["// El contexto de ToolkitProvider y los hooks que lo leen. Vive aparte del proveedor (que es .jsx) para que los hooks se\n// importen desde archivos .js sin arrastrar JSX.\n//\n// Hooks genéricos: function (regla de la casa).\nimport {createContext, useContext} from 'react';\nimport {allowOnlyUnrestricted} from '@/access/accessRules.js';\nimport {browserNavigation} from '@/toolkit/browserNavigation.js';\nimport {toolkitSettings} from '@/toolkit/toolkitSettings.js';\n\nexport const ToolkitContext = createContext(null);\n\n/**\n * La configuración del proveedor; sin proveedor, la vigente con la navegación del navegador.\n *\n * @returns {{language: string, onLanguageChange: Function|null, texts: object, translate: Function|null, timeZone: string, currency: string, hourCycle: 'h23'|'h12', appName: string, buildId: string, navigation: object, canAccess: Function}}\n */\nexport function useToolkitSettings() {\n const settings = useContext(ToolkitContext);\n\n return settings ?? {...toolkitSettings(), onLanguageChange: null, navigation: browserNavigation, canAccess: allowOnlyUnrestricted};\n}\n\n/**\n * La navegación que conectó el proyecto: {useNavigate, useLocation, Link}.\n *\n * @returns {{useNavigate: Function, useLocation: Function, Link: import('react').ElementType}}\n */\nexport function useToolkitNavigation() {\n return useToolkitSettings().navigation;\n}\n"],"names":[],"mappings":";;;;;AASY,MAAC,iBAAiB,cAAc,IAAI;AAOzC,SAAS,qBAAqB;AACjC,QAAM,WAAW,WAAW,cAAc;AAE1C,SAAO,YAAY,EAAC,GAAG,mBAAmB,kBAAkB,MAAM,YAAY,mBAAmB,WAAW,sBAAqB;AACrI;AAOO,SAAS,uBAAuB;AACnC,SAAO,mBAAkB,EAAG;AAChC;"}
1
+ {"version":3,"file":"toolkitContext.js","sources":["../../src/toolkit/toolkitContext.js"],"sourcesContent":["// El contexto de ToolkitProvider y los hooks que lo leen. Vive aparte del proveedor (que es .jsx) para que los hooks se\n// importen desde archivos .js sin arrastrar JSX.\n//\n// Hooks genéricos: function (regla de la casa).\nimport {createContext, useContext} from 'react';\nimport {allowOnlyUnrestricted} from '@/access/accessRules.js';\nimport {browserNavigation} from '@/toolkit/browserNavigation.js';\nimport {toolkitSettings} from '@/toolkit/toolkitSettings.js';\n\nexport const ToolkitContext = createContext(null);\n\n/**\n * La configuración del proveedor; sin proveedor, la vigente con la navegación del navegador.\n *\n * @returns {{language: string, onLanguageChange: Function|null, requiredFromSchema?: boolean, texts: object, translate: Function|null, timeZone: string, currency: string, hourCycle: 'h23'|'h12', appName: string, buildId: string, navigation: object, canAccess: Function}}\n */\nexport function useToolkitSettings() {\n const settings = useContext(ToolkitContext);\n\n return settings ?? {...toolkitSettings(), onLanguageChange: null, navigation: browserNavigation, canAccess: allowOnlyUnrestricted};\n}\n\n/**\n * La navegación que conectó el proyecto: {useNavigate, useLocation, Link}.\n *\n * @returns {{useNavigate: Function, useLocation: Function, Link: import('react').ElementType}}\n */\nexport function useToolkitNavigation() {\n return useToolkitSettings().navigation;\n}\n"],"names":[],"mappings":";;;;;AASY,MAAC,iBAAiB,cAAc,IAAI;AAOzC,SAAS,qBAAqB;AACjC,QAAM,WAAW,WAAW,cAAc;AAE1C,SAAO,YAAY,EAAC,GAAG,mBAAmB,kBAAkB,MAAM,YAAY,mBAAmB,WAAW,sBAAqB;AACrI;AAOO,SAAS,uBAAuB;AACnC,SAAO,mBAAkB,EAAG;AAChC;"}
@@ -4,6 +4,7 @@ declare const BarActionButton: (props: {
4
4
  onClick?: (event: object) => void;
5
5
  disabled?: boolean;
6
6
  color?: 'inherit' | 'primary' | 'secondary' | 'success' | 'error' | 'info' | 'warning';
7
+ sx?: object;
7
8
  } & {
8
9
  slots?: Record<string, import('react').ElementType>;
9
10
  slotProps?: Record<string, object | ((partProps: object) => object)>;
@@ -17,6 +17,8 @@ declare const DateInput: (props: {
17
17
  disablePast?: boolean;
18
18
  openTo?: 'day' | 'month' | 'year';
19
19
  disabled?: boolean;
20
+ format?: string;
21
+ required?: boolean;
20
22
  inputRef?: import('react').Ref<HTMLInputElement>;
21
23
  pickerProps?: object;
22
24
  messages?: Record<string, string | object>;
@@ -19,6 +19,8 @@ declare const DateTimeInput: (props: {
19
19
  showTimeZone?: boolean;
20
20
  timeZoneLabel?: string;
21
21
  disabled?: boolean;
22
+ format?: string;
23
+ required?: boolean;
22
24
  inputRef?: import('react').Ref<HTMLInputElement>;
23
25
  pickerProps?: object;
24
26
  messages?: Record<string, string | object>;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('./DateInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
3
- * DateInput (minDate, maxDate, disableFuture, openTo…), sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('./DateInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('./DateInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
3
+ * DateInput (minDate, maxDate, disableFuture, openTo…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
4
4
  */
5
5
  export default function FormDateField({ name, ...dateInputProps }: {
6
6
  name: string;
7
- } & Omit<Parameters<typeof import('./DateInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
7
+ } & Omit<Parameters<typeof import('./DateInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('./DateInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('./DateTimeInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
3
- * DateTimeInput (minDateTime, minimumMinutesFromNow, disablePast, minutesStep, timeZone…), sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('./DateTimeInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('./DateTimeInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
3
+ * DateTimeInput (minDateTime, minimumMinutesFromNow, disablePast, minutesStep, timeZone…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
4
4
  */
5
5
  export default function FormDateTimeField({ name, ...inputProps }: {
6
6
  name: string;
7
- } & Omit<Parameters<typeof import('./DateTimeInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
7
+ } & Omit<Parameters<typeof import('./DateTimeInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('./DateTimeInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('./MonthInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
3
- * MonthInput (minMonth, maxMonth, disableFuture…), sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('./MonthInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('./MonthInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
3
+ * MonthInput (minMonth, maxMonth, disableFuture…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
4
4
  */
5
5
  export default function FormMonthField({ name, ...inputProps }: {
6
6
  name: string;
7
- } & Omit<Parameters<typeof import('./MonthInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
7
+ } & Omit<Parameters<typeof import('./MonthInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('./MonthInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('./TimeInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
3
- * TimeInput (minTime, maxTime, minutesStep…), sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('./TimeInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('./TimeInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
3
+ * TimeInput (minTime, maxTime, minutesStep…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
4
4
  */
5
5
  export default function FormTimeField({ name, ...inputProps }: {
6
6
  name: string;
7
- } & Omit<Parameters<typeof import('./TimeInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
7
+ } & Omit<Parameters<typeof import('./TimeInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('./TimeInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -14,6 +14,8 @@ declare const MonthInput: (props: {
14
14
  disableFuture?: boolean;
15
15
  disablePast?: boolean;
16
16
  disabled?: boolean;
17
+ format?: string;
18
+ required?: boolean;
17
19
  inputRef?: import('react').Ref<HTMLInputElement>;
18
20
  pickerProps?: object;
19
21
  messages?: Record<string, string | object>;
@@ -12,11 +12,13 @@ export declare function textFieldSlotPropsOf(textField: object, pickerProps?: ob
12
12
  * @param {string} props.inputId
13
13
  * @param {import('react').ReactNode} props.label ya traducida
14
14
  * @param {string} props.language el del proveedor más cercano
15
+ * @param {boolean} [props.required] el asterisco en la etiqueta
15
16
  * @param {import('react').ReactNode} props.children el selector de MUI X
16
17
  */
17
- export default function PickerFrame({ inputId, label, language, children }: {
18
+ export default function PickerFrame({ inputId, label, language, required, children }: {
18
19
  inputId: string;
19
20
  label: import('react').ReactNode;
20
21
  language: string;
22
+ required?: boolean;
21
23
  children: import('react').ReactNode;
22
24
  }): import("react").JSX.Element;
@@ -13,6 +13,8 @@ declare const TimeInput: (props: {
13
13
  maxTime?: string;
14
14
  minutesStep?: number;
15
15
  disabled?: boolean;
16
+ format?: string;
17
+ required?: boolean;
16
18
  inputRef?: import('react').Ref<HTMLInputElement>;
17
19
  pickerProps?: object;
18
20
  messages?: Record<string, string | object>;
@@ -1 +1,15 @@
1
- export default function Toaster(): import("react").JSX.Element;
1
+ /** Dónde salen los avisos (los nombres de sonner). */
2
+ export declare const TOASTER_POSITION: Readonly<{
3
+ topLeft: "top-left";
4
+ topCenter: "top-center";
5
+ topRight: "top-right";
6
+ bottomLeft: "bottom-left";
7
+ bottomCenter: "bottom-center";
8
+ bottomRight: "bottom-right";
9
+ }>;
10
+ /**
11
+ * @param {import('sonner').ToasterProps} props lo de sonner, tal cual (https://sonner.emilkowal.ski/toaster: duration,
12
+ * offset, mobileOffset, visibleToasts, toastOptions…). Por omisión: position abajo a la izquierda (uno de
13
+ * TOASTER_POSITION), richColors y closeButton sí, y theme el modo de MUI que se ve en pantalla
14
+ */
15
+ export default function Toaster({ position, richColors, closeButton, ...sonnerProps }: import('sonner').ToasterProps): import("react").JSX.Element;
@@ -2,7 +2,7 @@ export { default as ConfirmDialog } from './ConfirmDialog.js';
2
2
  export { default as ModalWaiting } from './ModalWaiting.js';
3
3
  export { NEW_BUILD_NOTICE_VARIANT, default as NewBuildNotice } from './NewBuildNotice.js';
4
4
  export { default as StaleBuildBoundary } from './StaleBuildBoundary.js';
5
- export { default as Toaster } from './Toaster.js';
5
+ export { TOASTER_POSITION, default as Toaster } from './Toaster.js';
6
6
  export { confirmActionMachine } from './confirmActionMachine.js';
7
7
  export { TOAST_DEFAULT_OPTIONS, dismissToast, errorsObjectToMessage, toastDefault, toastError, toastInfo, toastLoading, toastProblem, toastPromise, toastSuccess, toastWarn, } from './toast.js';
8
8
  export { useConfirmAction } from './useConfirmAction.js';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @template {import('formik').FormikValues} Values
3
+ * @param {import('formik').FormikConfig<Values>} props las de Formik de formik
4
+ * @returns {import('react').JSX.Element}
5
+ */
6
+ export default function Formik<Values extends import('formik').FormikValues>(props: import('formik').FormikConfig<Values>): import('react').JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
3
- * AttachmentsInput (accept, maxFiles, maxTotalSize, template…), sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
3
+ * AttachmentsInput (accept, maxFiles, maxTotalSize, template…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
4
4
  */
5
5
  export default function FormAttachmentsField({ name, ...inputProps }: {
6
6
  name: string;
7
- } & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
7
+ } & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de CatalogInput (options, formatLabel, loading…), sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'onChange'|'onBlur'>>} props las de CatalogInput (options, formatLabel, loading…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
3
3
  */
4
4
  export default function FormCatalogField({ name, ...catalogInputProps }: {
5
5
  name: string;
6
- } & Omit<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
6
+ } & Omit<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
3
- * CheckboxGroupInput, sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
3
+ * CheckboxGroupInput, sin value ni error (su onChange y su onBlur corren después de los del formulario)
4
4
  */
5
5
  export default function FormCheckboxGroupField({ name, ...inputProps }: {
6
6
  name: string;
7
- } & Omit<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
7
+ } & Omit<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de ColorInput (checkContrast…), sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'onChange'|'onBlur'>>} props las de ColorInput (checkContrast…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
3
3
  */
4
4
  export default function FormColorField({ name, ...colorInputProps }: {
5
5
  name: string;
6
- } & Omit<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
6
+ } & Omit<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('../upload/FileInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
3
- * FileInput (accept, maxSize, template…), sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('../upload/FileInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../upload/FileInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
3
+ * FileInput (accept, maxSize, template…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
4
4
  */
5
5
  export default function FormFileField({ name, ...inputProps }: {
6
6
  name: string;
7
- } & Omit<Parameters<typeof import('../upload/FileInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
7
+ } & Omit<Parameters<typeof import('../upload/FileInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../upload/FileInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
3
- * FileUploadInput (upload, accept, maxSize, download…), sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
3
+ * FileUploadInput (upload, accept, maxSize, download…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
4
4
  */
5
5
  export default function FormFileUploadField({ name, ...inputProps }: {
6
6
  name: string;
7
- } & Omit<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
7
+ } & Omit<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
3
- * ImageInput (shape, size, maxSize…), sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
3
+ * ImageInput (shape, size, maxSize…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
4
4
  */
5
5
  export default function FormImageField({ name, ...inputProps }: {
6
6
  name: string;
7
- } & Omit<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
7
+ } & Omit<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props
2
+ * @param {{name: string} & Omit<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'onChange'|'onBlur'>>} props
3
3
  * las de MaskedInput (mask, label, helperText, placeholder…)
4
4
  */
5
5
  export default function FormMaskedField({ name, ...inputProps }: {
6
6
  name: string;
7
- } & Omit<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
7
+ } & Omit<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de NumberInput (decimals, prefix, suffix, allowNegative…), sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'onChange'|'onBlur'>>} props las de NumberInput (decimals, prefix, suffix, allowNegative…), sin value ni error (su onChange y su onBlur corren después de los del formulario)
3
3
  */
4
4
  export default function FormNumberField({ name, ...numberInputProps }: {
5
5
  name: string;
6
- } & Omit<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
6
+ } & Omit<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ /** El esquema del formulario más cercano (o la función que lo da, como en formik); null sin él. */
2
+ export declare const FormSchemaContext: import("react").Context<unknown>;
3
+ /** El esquema del formulario más cercano; null sin él. */
4
+ export declare const useFormSchema: () => unknown;
5
+ /**
6
+ * @param {object} props
7
+ * @param {unknown} props.schema el mismo validationSchema que recibe Formik
8
+ * @param {import('react').ReactNode} props.children los campos
9
+ */
10
+ export declare function FormSchemaProvider({ schema, children }: {
11
+ schema: unknown;
12
+ children: import('react').ReactNode;
13
+ }): import("react").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de SelectInput, sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'onChange'|'onBlur'>>} props las de SelectInput, sin value ni error (su onChange y su onBlur corren después de los del formulario)
3
3
  */
4
4
  export default function FormSelectField({ name, ...selectInputProps }: {
5
5
  name: string;
6
- } & Omit<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
6
+ } & Omit<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('../inputs/TextInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de TextInput, sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('../inputs/TextInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/TextInput.js').default>[0], 'onChange'|'onBlur'>>} props las de TextInput, sin value ni error (su onChange y su onBlur corren después de los del formulario)
3
3
  */
4
4
  export default function FormTextField({ name, ...textInputProps }: {
5
5
  name: string;
6
- } & Omit<Parameters<typeof import('../inputs/TextInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
6
+ } & Omit<Parameters<typeof import('../inputs/TextInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/TextInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @param {{name: string} & Omit<Parameters<typeof import('../inputs/TransferListInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
3
- * TransferListInput, sin value / onChange / onBlur / error
2
+ * @param {{name: string} & Omit<Parameters<typeof import('../inputs/TransferListInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/TransferListInput.js').default>[0], 'onChange'|'onBlur'>>} props las de
3
+ * TransferListInput, sin value ni error (su onChange y su onBlur corren después de los del formulario)
4
4
  */
5
5
  export default function FormTransferListField({ name, ...inputProps }: {
6
6
  name: string;
7
- } & Omit<Parameters<typeof import('../inputs/TransferListInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
7
+ } & Omit<Parameters<typeof import('../inputs/TransferListInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/TransferListInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -6,17 +6,30 @@
6
6
  * @param {string[]} [props.steps[].fields] los campos del paso (los que revisa «Siguiente»)
7
7
  * @param {boolean} [props.steps[].optional] se puede omitir
8
8
  * @param {import('react').ReactNode} props.steps[].content los campos del paso
9
+ * @param {boolean} [props.steps[].completed] lleva la palomita (cuando los títulos se pulsan, solo si la pantalla lo dice)
9
10
  * @param {string} props.submitLabel ya traducido: el botón del último paso
11
+ * @param {'horizontal'|'vertical'} [props.orientation] uno de WIZARD_ORIENTATION; por omisión horizontal
12
+ * @param {boolean} [props.hideBackOnFirstStep] en el primer paso no se pinta «Anterior»; por omisión sale apagado, como antes
13
+ * @param {string} [props.initialStepKey] la llave del paso en el que se abre (la que diga el servidor); por omisión el primero
14
+ * @param {'none'|'free'|'checked'} [props.stepSelection] uno de WIZARD_STEP_SELECTION: si el título de otro paso se pulsa y qué
15
+ * revisa antes; por omisión none (se avanza con «Siguiente», como siempre)
16
+ * @param {(stepKey: string, index: number) => void} [props.onStepChange] cada vez que cambia el paso abierto
10
17
  * @param {object} [props.texts] los textos que cambian, con la forma de `common`: {wizard: {next, back, skip, optional, skipped, stepOf}}
11
18
  */
12
- export default function FormWizard({ steps, submitLabel, texts, ...unknownProps }: {
19
+ export default function FormWizard({ steps, submitLabel, orientation, hideBackOnFirstStep, initialStepKey, stepSelection, onStepChange, texts, ...unknownProps }: {
13
20
  steps: {
14
21
  key: string;
15
22
  label: string;
16
23
  fields?: string[];
17
24
  optional?: boolean;
18
25
  content: import('react').ReactNode;
26
+ completed?: boolean;
19
27
  }[];
20
28
  submitLabel: string;
29
+ orientation?: 'horizontal' | 'vertical';
30
+ hideBackOnFirstStep?: boolean;
31
+ initialStepKey?: string;
32
+ stepSelection?: 'none' | 'free' | 'checked';
33
+ onStepChange?: (stepKey: string, index: number) => void;
21
34
  texts?: object;
22
35
  }): import("react").JSX.Element;
@@ -25,5 +25,6 @@ export { RECOVERY_CODE_PATTERN, TOTP_CODE_PATTERN, normalizeRecoveryCode, normal
25
25
  export { default as SubmitButton } from './SubmitButton.js';
26
26
  export { applyServerProblem } from './applyServerProblem.js';
27
27
  export { formLevelMessageOf, splitRowFieldErrors, splitServerFieldErrors } from './serverProblemFields.js';
28
+ export { isRequiredInSchema } from './schemaRequired.js';
28
29
  export { useFormikField } from './useFormikField.js';
29
30
  export { Yup, buildYupLocale, translateValidationMessage } from './validation.js';
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Las partes de un nombre de campo de formik: 'contacts.2.email' y 'contacts[2].email' dan ['contacts', '2', 'email'].
3
+ *
4
+ * @param {string} name
5
+ * @returns {string[]}
6
+ */
7
+ export declare function fieldPathOf(name: string): string[];
8
+ /**
9
+ * @param {unknown} schema el validationSchema del formulario (un esquema de yup o una función que lo da, como en formik)
10
+ * @param {string} name el campo, con la forma de formik ('contacts.2.email')
11
+ * @param {object} [values] los valores del formulario, para las condiciones (.when)
12
+ * @returns {boolean} false si no hay esquema, si no es de yup o si el campo no está en él
13
+ */
14
+ export declare function isRequiredInSchema(schema: unknown, name: string, values?: object): boolean;
@@ -1,11 +1,17 @@
1
1
  /**
2
2
  * @param {string} name el campo del formulario
3
- * @returns {{name: string, value: unknown, onChange: (value: unknown) => void, onBlur: () => void, error: unknown}}
3
+ * @param {{required?: boolean, onChange?: Function, onBlur?: Function}} [screen] lo que la pantalla le dijo al campo
4
+ * @returns {{name: string, value: unknown, onChange: (value: unknown, ...rest: unknown[]) => void, onBlur: (...args: unknown[]) => void, error: unknown, required: boolean}}
4
5
  */
5
- export declare function useFormikField(name: string): {
6
+ export declare function useFormikField(name: string, screen?: {
7
+ required?: boolean;
8
+ onChange?: Function;
9
+ onBlur?: Function;
10
+ }): {
6
11
  name: string;
7
12
  value: unknown;
8
- onChange: (value: unknown) => void;
9
- onBlur: () => void;
13
+ onChange: (value: unknown, ...rest: unknown[]) => void;
14
+ onBlur: (...args: unknown[]) => void;
10
15
  error: unknown;
16
+ required: boolean;
11
17
  };
@@ -1,2 +1,4 @@
1
- export { FieldArray, Form, Formik, useField, useFormikContext } from 'formik';
2
- export { ChangePasswordForm, ForgotPasswordForm, FormAttachmentsField, FormCatalogField, FormCheckboxGroupField, FormColorField, FormFileField, FormFileUploadField, FormImageField, FormMaskedField, FormNumberField, FormProblemAlert, FormRepeatingFields, FormSelectField, FormServerProblem, FormTransferListField, FormTextField, FormWizard, RECOVERY_CODE_PATTERN, SECOND_STEP_METHOD, SecondStepForm, SignInForm, SubmitButton, TOTP_CODE_PATTERN, TwoStepVerificationCard, Yup, applyServerProblem, buildYupLocale, formLevelMessageOf, normalizeRecoveryCode, normalizeTotpCode, listTotalAtMostRule, listTotalOf, orderedInListRule, percentRule, sameAsFieldRule, splitRowFieldErrors, splitServerFieldErrors, translateValidationMessage, uniqueInListRule, useFormikField, } from './forms/index.js';
1
+ export { FieldArray, Form, useField, useFormikContext } from 'formik';
2
+ export { default as Formik } from './forms/CalcitaFormik.js';
3
+ export { FormSchemaProvider, useFormSchema } from './forms/FormSchemaProvider.js';
4
+ export { ChangePasswordForm, ForgotPasswordForm, FormAttachmentsField, FormCatalogField, FormCheckboxGroupField, FormColorField, FormFileField, FormFileUploadField, FormImageField, FormMaskedField, FormNumberField, FormProblemAlert, FormRepeatingFields, FormSelectField, FormServerProblem, FormTransferListField, FormTextField, FormWizard, RECOVERY_CODE_PATTERN, SECOND_STEP_METHOD, SecondStepForm, SignInForm, SubmitButton, TOTP_CODE_PATTERN, TwoStepVerificationCard, Yup, applyServerProblem, buildYupLocale, formLevelMessageOf, isRequiredInSchema, normalizeRecoveryCode, normalizeTotpCode, listTotalAtMostRule, listTotalOf, orderedInListRule, percentRule, sameAsFieldRule, splitRowFieldErrors, splitServerFieldErrors, translateValidationMessage, uniqueInListRule, useFormikField, } from './forms/index.js';
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las del campo de la casa, sin
3
- * value / onChange / onBlur / error; control: el de useForm, si la pantalla no usa FormProvider
2
+ * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'onChange'|'onBlur'>>} props las del campo de la casa, sin
3
+ * value ni error (su onChange y su onBlur corren después de los del formulario); control: el de useForm, si la pantalla no usa FormProvider
4
4
  */
5
5
  export default function FormAttachmentsField({ name, control, ...inputProps }: {
6
6
  name: string;
7
7
  control?: object;
8
- } & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
8
+ } & Omit<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../upload/AttachmentsInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las del campo de la casa, sin
3
- * value / onChange / onBlur / error; control: el de useForm, si la pantalla no usa FormProvider
2
+ * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'onChange'|'onBlur'>>} props las del campo de la casa, sin
3
+ * value ni error (su onChange y su onBlur corren después de los del formulario); control: el de useForm, si la pantalla no usa FormProvider
4
4
  */
5
5
  export default function FormCatalogField({ name, control, ...inputProps }: {
6
6
  name: string;
7
7
  control?: object;
8
- } & Omit<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
8
+ } & Omit<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/CatalogInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las del campo de la casa, sin
3
- * value / onChange / onBlur / error; control: el de useForm, si la pantalla no usa FormProvider
2
+ * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'onChange'|'onBlur'>>} props las del campo de la casa, sin
3
+ * value ni error (su onChange y su onBlur corren después de los del formulario); control: el de useForm, si la pantalla no usa FormProvider
4
4
  */
5
5
  export default function FormCheckboxGroupField({ name, control, ...inputProps }: {
6
6
  name: string;
7
7
  control?: object;
8
- } & Omit<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
8
+ } & Omit<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/CheckboxGroupInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las del campo de la casa, sin
3
- * value / onChange / onBlur / error; control: el de useForm, si la pantalla no usa FormProvider
2
+ * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'onChange'|'onBlur'>>} props las del campo de la casa, sin
3
+ * value ni error (su onChange y su onBlur corren después de los del formulario); control: el de useForm, si la pantalla no usa FormProvider
4
4
  */
5
5
  export default function FormColorField({ name, control, ...inputProps }: {
6
6
  name: string;
7
7
  control?: object;
8
- } & Omit<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
8
+ } & Omit<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/ColorInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../upload/FileInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las del campo de la casa, sin
3
- * value / onChange / onBlur / error; control: el de useForm, si la pantalla no usa FormProvider
2
+ * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../upload/FileInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../upload/FileInput.js').default>[0], 'onChange'|'onBlur'>>} props las del campo de la casa, sin
3
+ * value ni error (su onChange y su onBlur corren después de los del formulario); control: el de useForm, si la pantalla no usa FormProvider
4
4
  */
5
5
  export default function FormFileField({ name, control, ...inputProps }: {
6
6
  name: string;
7
7
  control?: object;
8
- } & Omit<Parameters<typeof import('../upload/FileInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
8
+ } & Omit<Parameters<typeof import('../upload/FileInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../upload/FileInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las del campo de la casa, sin
3
- * value / onChange / onBlur / error; control: el de useForm, si la pantalla no usa FormProvider
2
+ * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'onChange'|'onBlur'>>} props las del campo de la casa, sin
3
+ * value ni error (su onChange y su onBlur corren después de los del formulario); control: el de useForm, si la pantalla no usa FormProvider
4
4
  */
5
5
  export default function FormFileUploadField({ name, control, ...inputProps }: {
6
6
  name: string;
7
7
  control?: object;
8
- } & Omit<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
8
+ } & Omit<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../upload/FileUploadInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las del campo de la casa, sin
3
- * value / onChange / onBlur / error; control: el de useForm, si la pantalla no usa FormProvider
2
+ * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'onChange'|'onBlur'>>} props las del campo de la casa, sin
3
+ * value ni error (su onChange y su onBlur corren después de los del formulario); control: el de useForm, si la pantalla no usa FormProvider
4
4
  */
5
5
  export default function FormImageField({ name, control, ...inputProps }: {
6
6
  name: string;
7
7
  control?: object;
8
- } & Omit<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
8
+ } & Omit<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../upload/ImageInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,9 +1,9 @@
1
1
  /**
2
- * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props
3
- * las de MaskedInput (mask, label, helperText, placeholder…), sin value / onChange / onBlur / error; control: el de useForm,
2
+ * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'onChange'|'onBlur'>>} props
3
+ * las de MaskedInput (mask, label, helperText, placeholder…), sin value ni error (su onChange y su onBlur corren después de los del formulario); control: el de useForm,
4
4
  * si la pantalla no usa FormProvider
5
5
  */
6
6
  export default function FormMaskedField({ name, control, ...inputProps }: {
7
7
  name: string;
8
8
  control?: object;
9
- } & Omit<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
9
+ } & Omit<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/MaskedInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las del campo de la casa, sin
3
- * value / onChange / onBlur / error; control: el de useForm, si la pantalla no usa FormProvider
2
+ * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'onChange'|'onBlur'>>} props las del campo de la casa, sin
3
+ * value ni error (su onChange y su onBlur corren después de los del formulario); control: el de useForm, si la pantalla no usa FormProvider
4
4
  */
5
5
  export default function FormNumberField({ name, control, ...inputProps }: {
6
6
  name: string;
7
7
  control?: object;
8
- } & Omit<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
8
+ } & Omit<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/NumberInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las del campo de la casa, sin
3
- * value / onChange / onBlur / error; control: el de useForm, si la pantalla no usa FormProvider
2
+ * @param {{name: string, control?: object} & Omit<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'> & Partial<Pick<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'onChange'|'onBlur'>>} props las del campo de la casa, sin
3
+ * value ni error (su onChange y su onBlur corren después de los del formulario); control: el de useForm, si la pantalla no usa FormProvider
4
4
  */
5
5
  export default function FormSelectField({ name, control, ...inputProps }: {
6
6
  name: string;
7
7
  control?: object;
8
- } & Omit<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
8
+ } & Omit<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'> & Partial<Pick<Parameters<typeof import('../inputs/SelectInput.js').default>[0], 'onChange' | 'onBlur'>>): import("react").JSX.Element;