@stackcraftmx/calcita 0.32.1 → 0.47.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 (338) hide show
  1. package/README.md +263 -2
  2. package/cli/packageVersions.js +12 -3
  3. package/cli/projectFiles.js +5 -2
  4. package/cli/templates/module/__Name__Page.test.jsx.tpl +24 -0
  5. package/cli/templates/project/README.md.tpl +14 -1
  6. package/cli/templates/project/src/app/appRouter.jsx.tpl +5 -2
  7. package/cli/templates/project/src/core/accountConnector.js.tpl +4 -2
  8. package/cli/templates/project/src/modules/auth/SignInPage.test.jsx.tpl +20 -0
  9. package/cli/templates/project/src/modules/home/HomePage.test.jsx.tpl +16 -0
  10. package/cli/templates/project/src/testing/browserGaps.js.tpl +70 -0
  11. package/cli/templates/project/src/testing/openScreen.jsx.tpl +58 -0
  12. package/cli/templates/project/src/testing/setup.js.tpl +25 -0
  13. package/cli/templates/project/vite.config.js.tpl +12 -0
  14. package/dist/DataTable/GoToPage.js +69 -13
  15. package/dist/DataTable/GoToPage.js.map +1 -1
  16. package/dist/DataTable/ServerTable.js +2 -0
  17. package/dist/DataTable/ServerTable.js.map +1 -1
  18. package/dist/DataTable/ServerTableFilterDrawer.js +52 -0
  19. package/dist/DataTable/ServerTableFilterDrawer.js.map +1 -0
  20. package/dist/DataTable/filterContext.js.map +1 -1
  21. package/dist/DataTable/goToPageOptions.js +17 -0
  22. package/dist/DataTable/goToPageOptions.js.map +1 -0
  23. package/dist/date-pickers.js +28 -2
  24. package/dist/date-pickers.js.map +1 -1
  25. package/dist/datePickers/DateInput.js +15 -34
  26. package/dist/datePickers/DateInput.js.map +1 -1
  27. package/dist/datePickers/DateTimeInput.js +75 -0
  28. package/dist/datePickers/DateTimeInput.js.map +1 -0
  29. package/dist/datePickers/FormDateTimeField.js +12 -0
  30. package/dist/datePickers/FormDateTimeField.js.map +1 -0
  31. package/dist/datePickers/FormMonthField.js +12 -0
  32. package/dist/datePickers/FormMonthField.js.map +1 -0
  33. package/dist/datePickers/FormTimeField.js +12 -0
  34. package/dist/datePickers/FormTimeField.js.map +1 -0
  35. package/dist/datePickers/MonthInput.js +58 -0
  36. package/dist/datePickers/MonthInput.js.map +1 -0
  37. package/dist/datePickers/PickerFrame.js +27 -0
  38. package/dist/datePickers/PickerFrame.js.map +1 -0
  39. package/dist/datePickers/TimeInput.js +55 -0
  40. package/dist/datePickers/TimeInput.js.map +1 -0
  41. package/dist/datePickers/dateTimeRules.js +24 -0
  42. package/dist/datePickers/dateTimeRules.js.map +1 -0
  43. package/dist/datePickers/pickerValues.js +106 -0
  44. package/dist/datePickers/pickerValues.js.map +1 -0
  45. package/dist/datePickers/useCurrentMinute.js +28 -0
  46. package/dist/datePickers/useCurrentMinute.js.map +1 -0
  47. package/dist/datePickers/usePickerField.js +22 -0
  48. package/dist/datePickers/usePickerField.js.map +1 -0
  49. package/dist/dictionaries/dictionaries.js +3 -1
  50. package/dist/dictionaries/dictionaries.js.map +1 -1
  51. package/dist/forms/FormAttachmentsField.js +12 -0
  52. package/dist/forms/FormAttachmentsField.js.map +1 -0
  53. package/dist/forms/FormCheckboxGroupField.js +12 -0
  54. package/dist/forms/FormCheckboxGroupField.js.map +1 -0
  55. package/dist/forms/FormFileField.js +12 -0
  56. package/dist/forms/FormFileField.js.map +1 -0
  57. package/dist/forms/FormFileUploadField.js +12 -0
  58. package/dist/forms/FormFileUploadField.js.map +1 -0
  59. package/dist/forms/FormImageField.js +12 -0
  60. package/dist/forms/FormImageField.js.map +1 -0
  61. package/dist/forms/FormMaskedField.js +12 -0
  62. package/dist/forms/FormMaskedField.js.map +1 -0
  63. package/dist/forms/FormRepeatingFields.js +54 -0
  64. package/dist/forms/FormRepeatingFields.js.map +1 -0
  65. package/dist/forms/FormTransferListField.js +12 -0
  66. package/dist/forms/FormTransferListField.js.map +1 -0
  67. package/dist/forms/applyServerProblem.js +10 -3
  68. package/dist/forms/applyServerProblem.js.map +1 -1
  69. package/dist/forms/listRules.js +111 -0
  70. package/dist/forms/listRules.js.map +1 -0
  71. package/dist/forms/serverProblemFields.js +17 -0
  72. package/dist/forms/serverProblemFields.js.map +1 -1
  73. package/dist/forms.js +51 -29
  74. package/dist/forms.js.map +1 -1
  75. package/dist/hookForm/FormAttachmentsField.js +12 -0
  76. package/dist/hookForm/FormAttachmentsField.js.map +1 -0
  77. package/dist/hookForm/FormCheckboxGroupField.js +12 -0
  78. package/dist/hookForm/FormCheckboxGroupField.js.map +1 -0
  79. package/dist/hookForm/FormFileField.js +12 -0
  80. package/dist/hookForm/FormFileField.js.map +1 -0
  81. package/dist/hookForm/FormFileUploadField.js +12 -0
  82. package/dist/hookForm/FormFileUploadField.js.map +1 -0
  83. package/dist/hookForm/FormImageField.js +12 -0
  84. package/dist/hookForm/FormImageField.js.map +1 -0
  85. package/dist/hookForm/FormMaskedField.js +12 -0
  86. package/dist/hookForm/FormMaskedField.js.map +1 -0
  87. package/dist/hookForm/FormRepeatingFields.js +44 -0
  88. package/dist/hookForm/FormRepeatingFields.js.map +1 -0
  89. package/dist/hookForm/FormTransferListField.js +12 -0
  90. package/dist/hookForm/FormTransferListField.js.map +1 -0
  91. package/dist/hookForm/applyServerProblem.js +8 -3
  92. package/dist/hookForm/applyServerProblem.js.map +1 -1
  93. package/dist/index.js +188 -100
  94. package/dist/index.js.map +1 -1
  95. package/dist/inputs/CatalogInput.js +74 -7
  96. package/dist/inputs/CatalogInput.js.map +1 -1
  97. package/dist/inputs/CheckboxGroupInput.js +100 -0
  98. package/dist/inputs/CheckboxGroupInput.js.map +1 -0
  99. package/dist/inputs/MaskedInput.js +86 -0
  100. package/dist/inputs/MaskedInput.js.map +1 -0
  101. package/dist/inputs/NumberInput.js +12 -1
  102. package/dist/inputs/NumberInput.js.map +1 -1
  103. package/dist/inputs/RepeatingFields.js +177 -0
  104. package/dist/inputs/RepeatingFields.js.map +1 -0
  105. package/dist/inputs/SelectInput.js +43 -5
  106. package/dist/inputs/SelectInput.js.map +1 -1
  107. package/dist/inputs/TransferListInput.js +215 -0
  108. package/dist/inputs/TransferListInput.js.map +1 -0
  109. package/dist/inputs/inputMasks.js +84 -0
  110. package/dist/inputs/inputMasks.js.map +1 -0
  111. package/dist/inputs/selectAllState.js +20 -0
  112. package/dist/inputs/selectAllState.js.map +1 -0
  113. package/dist/inputs/useRowKeys.js +26 -0
  114. package/dist/inputs/useRowKeys.js.map +1 -0
  115. package/dist/legal/CookieNotice.js +79 -0
  116. package/dist/legal/CookieNotice.js.map +1 -0
  117. package/dist/legal/TermsAcceptanceDialog.js +129 -0
  118. package/dist/legal/TermsAcceptanceDialog.js.map +1 -0
  119. package/dist/legal/consentStorage.js +18 -0
  120. package/dist/legal/consentStorage.js.map +1 -0
  121. package/dist/legal/useCookieConsent.js +17 -0
  122. package/dist/legal/useCookieConsent.js.map +1 -0
  123. package/dist/locales/en.js +233 -1
  124. package/dist/locales/en.js.map +1 -1
  125. package/dist/locales/es.js +233 -1
  126. package/dist/locales/es.js.map +1 -1
  127. package/dist/mexico/CfdiSummary.js +81 -0
  128. package/dist/mexico/CfdiSummary.js.map +1 -0
  129. package/dist/mexico/EfirmaFields.js +167 -0
  130. package/dist/mexico/EfirmaFields.js.map +1 -0
  131. package/dist/mexico/certificateReader.js +79 -0
  132. package/dist/mexico/certificateReader.js.map +1 -0
  133. package/dist/mexico/cfdiReader.js +81 -0
  134. package/dist/mexico/cfdiReader.js.map +1 -0
  135. package/dist/mexico/derReader.js +81 -0
  136. package/dist/mexico/derReader.js.map +1 -0
  137. package/dist/mexico/efirmaKey.js +51 -0
  138. package/dist/mexico/efirmaKey.js.map +1 -0
  139. package/dist/mexico/mexicoIdentifiers.js +86 -0
  140. package/dist/mexico/mexicoIdentifiers.js.map +1 -0
  141. package/dist/mexico/mexicoRules.js +16 -0
  142. package/dist/mexico/mexicoRules.js.map +1 -0
  143. package/dist/mexico.js +32 -0
  144. package/dist/mexico.js.map +1 -0
  145. package/dist/react-hook-form.js +40 -17
  146. package/dist/react-hook-form.js.map +1 -1
  147. package/dist/rich-text.js +19 -0
  148. package/dist/rich-text.js.map +1 -0
  149. package/dist/richText/FormRichTextField.js +12 -0
  150. package/dist/richText/FormRichTextField.js.map +1 -0
  151. package/dist/richText/RichTextEditor.js +108 -0
  152. package/dist/richText/RichTextEditor.js.map +1 -0
  153. package/dist/richText/RichTextLinkPopover.js +57 -0
  154. package/dist/richText/RichTextLinkPopover.js.map +1 -0
  155. package/dist/richText/RichTextToolbar.js +189 -0
  156. package/dist/richText/RichTextToolbar.js.map +1 -0
  157. package/dist/richText/RichTextView.js +26 -0
  158. package/dist/richText/RichTextView.js.map +1 -0
  159. package/dist/richText/richTextContentSx.js +42 -0
  160. package/dist/richText/richTextContentSx.js.map +1 -0
  161. package/dist/richText/richTextExtensions.js +44 -0
  162. package/dist/richText/richTextExtensions.js.map +1 -0
  163. package/dist/richText/richTextRules.js +46 -0
  164. package/dist/richText/richTextRules.js.map +1 -0
  165. package/dist/security/SessionsCard.js +11 -7
  166. package/dist/security/SessionsCard.js.map +1 -1
  167. package/dist/table.js +2 -0
  168. package/dist/table.js.map +1 -1
  169. package/dist/theme/components/glassComponents.js +27 -0
  170. package/dist/theme/components/glassComponents.js.map +1 -1
  171. package/dist/theme/components/minimalComponents.js +12 -0
  172. package/dist/theme/components/minimalComponents.js.map +1 -1
  173. package/dist/types/DataTable/ServerTableFilterDrawer.d.ts +21 -0
  174. package/dist/types/DataTable/filterContext.d.ts +2 -1
  175. package/dist/types/DataTable/goToPageOptions.d.ts +15 -0
  176. package/dist/types/DataTable/index.d.ts +1 -0
  177. package/dist/types/date-pickers.d.ts +10 -1
  178. package/dist/types/datePickers/DateInput.d.ts +6 -4
  179. package/dist/types/datePickers/DateTimeInput.d.ts +50 -0
  180. package/dist/types/datePickers/FormDateTimeField.d.ts +7 -0
  181. package/dist/types/datePickers/FormMonthField.d.ts +7 -0
  182. package/dist/types/datePickers/FormTimeField.d.ts +7 -0
  183. package/dist/types/datePickers/MonthInput.d.ts +39 -0
  184. package/dist/types/datePickers/PickerFrame.d.ts +22 -0
  185. package/dist/types/datePickers/TimeInput.d.ts +38 -0
  186. package/dist/types/datePickers/dateTimeRules.d.ts +31 -0
  187. package/dist/types/datePickers/pickerValues.d.ts +114 -0
  188. package/dist/types/datePickers/useCurrentMinute.d.ts +5 -0
  189. package/dist/types/datePickers/usePickerField.d.ts +24 -0
  190. package/dist/types/dictionaries/dictionaries.d.ts +6 -3
  191. package/dist/types/forms/FormAttachmentsField.d.ts +7 -0
  192. package/dist/types/forms/FormCheckboxGroupField.d.ts +7 -0
  193. package/dist/types/forms/FormFileField.d.ts +7 -0
  194. package/dist/types/forms/FormFileUploadField.d.ts +7 -0
  195. package/dist/types/forms/FormImageField.d.ts +7 -0
  196. package/dist/types/forms/FormMaskedField.d.ts +7 -0
  197. package/dist/types/forms/FormRepeatingFields.d.ts +25 -0
  198. package/dist/types/forms/FormTransferListField.d.ts +7 -0
  199. package/dist/types/forms/index.d.ts +10 -1
  200. package/dist/types/forms/listRules.d.ts +48 -0
  201. package/dist/types/forms/serverProblemFields.d.ts +13 -0
  202. package/dist/types/forms.d.ts +1 -1
  203. package/dist/types/hookForm/FormAttachmentsField.d.ts +8 -0
  204. package/dist/types/hookForm/FormCheckboxGroupField.d.ts +8 -0
  205. package/dist/types/hookForm/FormFileField.d.ts +8 -0
  206. package/dist/types/hookForm/FormFileUploadField.d.ts +8 -0
  207. package/dist/types/hookForm/FormImageField.d.ts +8 -0
  208. package/dist/types/hookForm/FormMaskedField.d.ts +9 -0
  209. package/dist/types/hookForm/FormRepeatingFields.d.ts +27 -0
  210. package/dist/types/hookForm/FormTransferListField.d.ts +8 -0
  211. package/dist/types/index.d.ts +25 -3
  212. package/dist/types/inputs/CatalogInput.d.ts +7 -1
  213. package/dist/types/inputs/CheckboxGroupInput.d.ts +39 -0
  214. package/dist/types/inputs/MaskedInput.d.ts +35 -0
  215. package/dist/types/inputs/RepeatingFields.d.ts +52 -0
  216. package/dist/types/inputs/SelectInput.d.ts +6 -1
  217. package/dist/types/inputs/TransferListInput.d.ts +43 -0
  218. package/dist/types/inputs/inputMasks.d.ts +52 -0
  219. package/dist/types/inputs/selectAllState.d.ts +11 -0
  220. package/dist/types/inputs/useRowKeys.d.ts +11 -0
  221. package/dist/types/legal/CookieNotice.d.ts +30 -0
  222. package/dist/types/legal/TermsAcceptanceDialog.d.ts +32 -0
  223. package/dist/types/legal/consentStorage.d.ts +16 -0
  224. package/dist/types/legal/useCookieConsent.d.ts +13 -0
  225. package/dist/types/locales/en.d.ts +232 -0
  226. package/dist/types/locales/es.d.ts +232 -0
  227. package/dist/types/mexico/CfdiSummary.d.ts +17 -0
  228. package/dist/types/mexico/EfirmaFields.d.ts +38 -0
  229. package/dist/types/mexico/certificateReader.d.ts +37 -0
  230. package/dist/types/mexico/cfdiReader.d.ts +95 -0
  231. package/dist/types/mexico/derReader.d.ts +54 -0
  232. package/dist/types/mexico/efirmaKey.d.ts +26 -0
  233. package/dist/types/mexico/mexicoIdentifiers.d.ts +61 -0
  234. package/dist/types/mexico/mexicoRules.d.ts +29 -0
  235. package/dist/types/mexico.d.ts +11 -0
  236. package/dist/types/react-hook-form.d.ts +10 -1
  237. package/dist/types/rich-text.d.ts +5 -0
  238. package/dist/types/richText/FormRichTextField.d.ts +7 -0
  239. package/dist/types/richText/RichTextEditor.d.ts +42 -0
  240. package/dist/types/richText/RichTextLinkPopover.d.ts +17 -0
  241. package/dist/types/richText/RichTextToolbar.d.ts +15 -0
  242. package/dist/types/richText/RichTextView.d.ts +13 -0
  243. package/dist/types/richText/richTextContentSx.d.ts +7 -0
  244. package/dist/types/richText/richTextExtensions.d.ts +15 -0
  245. package/dist/types/richText/richTextRules.d.ts +41 -0
  246. package/dist/types/table.d.ts +1 -1
  247. package/dist/types/ui/actions/ActionsMenu.d.ts +18 -3
  248. package/dist/types/ui/actions/CopyButton.d.ts +7 -4
  249. package/dist/types/ui/actions/tableRowText.d.ts +6 -0
  250. package/dist/types/ui/cards/RecordCard.d.ts +65 -0
  251. package/dist/types/ui/cards/RecordCardSkeleton.d.ts +17 -0
  252. package/dist/types/ui/countdown/Countdown.d.ts +31 -0
  253. package/dist/types/ui/countdown/countdownParts.d.ts +39 -0
  254. package/dist/types/ui/countdown/useCountdown.d.ts +14 -0
  255. package/dist/types/ui/documents/PdfViewerDialog.d.ts +21 -0
  256. package/dist/types/ui/filters/FilterDrawer.d.ts +34 -0
  257. package/dist/types/ui/filters/filterDrawerFields.d.ts +139 -0
  258. package/dist/types/ui/help/HelpButton.d.ts +15 -0
  259. package/dist/types/ui/help/HelpCarouselDialog.d.ts +35 -0
  260. package/dist/types/ui/help/useHelpCarousel.d.ts +21 -0
  261. package/dist/types/ui/index.d.ts +10 -0
  262. package/dist/types/ui/labels/IconBadge.d.ts +34 -0
  263. package/dist/types/ui/navigation/RouteTabs.d.ts +44 -0
  264. package/dist/types/ui/navigation/routeTabMatching.d.ts +27 -0
  265. package/dist/types/upload/AttachmentsInput.d.ts +62 -0
  266. package/dist/types/upload/FileChip.d.ts +18 -0
  267. package/dist/types/upload/FileDropzone.d.ts +3 -0
  268. package/dist/types/upload/FileInput.d.ts +48 -0
  269. package/dist/types/upload/FileUploadInput.d.ts +80 -0
  270. package/dist/types/upload/ImageInput.d.ts +53 -0
  271. package/dist/types/upload/TemplateDownloadButton.d.ts +39 -0
  272. package/dist/types/upload/fileAppearance.d.ts +8 -0
  273. package/dist/types/upload/fileRules.d.ts +38 -0
  274. package/dist/types/upload/transferProgress.d.ts +18 -0
  275. package/dist/types/upload/uploadMachine.d.ts +6 -2
  276. package/dist/types/upload/uploadWithProgress.d.ts +6 -2
  277. package/dist/types/upload/useFilePicker.d.ts +39 -0
  278. package/dist/ui/actions/ActionsMenu.js +98 -15
  279. package/dist/ui/actions/ActionsMenu.js.map +1 -1
  280. package/dist/ui/actions/CopyButton.js +31 -11
  281. package/dist/ui/actions/CopyButton.js.map +1 -1
  282. package/dist/ui/actions/tableRowText.js +7 -0
  283. package/dist/ui/actions/tableRowText.js.map +1 -0
  284. package/dist/ui/cards/RecordCard.js +145 -0
  285. package/dist/ui/cards/RecordCard.js.map +1 -0
  286. package/dist/ui/cards/RecordCardSkeleton.js +33 -0
  287. package/dist/ui/cards/RecordCardSkeleton.js.map +1 -0
  288. package/dist/ui/countdown/Countdown.js +38 -0
  289. package/dist/ui/countdown/Countdown.js.map +1 -0
  290. package/dist/ui/countdown/countdownParts.js +34 -0
  291. package/dist/ui/countdown/countdownParts.js.map +1 -0
  292. package/dist/ui/countdown/useCountdown.js +35 -0
  293. package/dist/ui/countdown/useCountdown.js.map +1 -0
  294. package/dist/ui/documents/PdfViewerDialog.js +81 -0
  295. package/dist/ui/documents/PdfViewerDialog.js.map +1 -0
  296. package/dist/ui/filters/FilterDrawer.js +211 -0
  297. package/dist/ui/filters/FilterDrawer.js.map +1 -0
  298. package/dist/ui/filters/filterDrawerFields.js +119 -0
  299. package/dist/ui/filters/filterDrawerFields.js.map +1 -0
  300. package/dist/ui/help/HelpButton.js +17 -0
  301. package/dist/ui/help/HelpButton.js.map +1 -0
  302. package/dist/ui/help/HelpCarouselDialog.js +154 -0
  303. package/dist/ui/help/HelpCarouselDialog.js.map +1 -0
  304. package/dist/ui/help/useHelpCarousel.js +25 -0
  305. package/dist/ui/help/useHelpCarousel.js.map +1 -0
  306. package/dist/ui/labels/IconBadge.js +82 -0
  307. package/dist/ui/labels/IconBadge.js.map +1 -0
  308. package/dist/ui/navigation/RouteTabs.js +75 -0
  309. package/dist/ui/navigation/RouteTabs.js.map +1 -0
  310. package/dist/ui/navigation/routeTabMatching.js +23 -0
  311. package/dist/ui/navigation/routeTabMatching.js.map +1 -0
  312. package/dist/upload/AttachmentsInput.js +127 -0
  313. package/dist/upload/AttachmentsInput.js.map +1 -0
  314. package/dist/upload/FileChip.js +27 -0
  315. package/dist/upload/FileChip.js.map +1 -0
  316. package/dist/upload/FileDropzone.js +19 -84
  317. package/dist/upload/FileDropzone.js.map +1 -1
  318. package/dist/upload/FileInput.js +112 -0
  319. package/dist/upload/FileInput.js.map +1 -0
  320. package/dist/upload/FileUploadInput.js +285 -0
  321. package/dist/upload/FileUploadInput.js.map +1 -0
  322. package/dist/upload/ImageInput.js +125 -0
  323. package/dist/upload/ImageInput.js.map +1 -0
  324. package/dist/upload/TemplateDownloadButton.js +67 -0
  325. package/dist/upload/TemplateDownloadButton.js.map +1 -0
  326. package/dist/upload/fileAppearance.js +21 -0
  327. package/dist/upload/fileAppearance.js.map +1 -0
  328. package/dist/upload/fileRules.js +27 -1
  329. package/dist/upload/fileRules.js.map +1 -1
  330. package/dist/upload/transferProgress.js +23 -0
  331. package/dist/upload/transferProgress.js.map +1 -0
  332. package/dist/upload/uploadMachine.js +8 -8
  333. package/dist/upload/uploadMachine.js.map +1 -1
  334. package/dist/upload/uploadWithProgress.js +1 -1
  335. package/dist/upload/uploadWithProgress.js.map +1 -1
  336. package/dist/upload/useFilePicker.js +101 -0
  337. package/dist/upload/useFilePicker.js.map +1 -0
  338. package/package.json +44 -1
@@ -0,0 +1,95 @@
1
+ export type Cfdi = {
2
+ version: string | null;
3
+ series: string | null;
4
+ folio: string | null;
5
+ issuedAt: string | null;
6
+ /**
7
+ * CFDI_VOUCHER_TYPE
8
+ */
9
+ voucherType: string | null;
10
+ paymentMethod: string | null;
11
+ paymentForm: string | null;
12
+ currency: string | null;
13
+ exchangeRate: string | null;
14
+ subtotal: string | null;
15
+ discount: string | null;
16
+ total: string | null;
17
+ placeOfIssue: string | null;
18
+ issuer: {
19
+ rfc: string | null;
20
+ name: string | null;
21
+ taxRegime: string | null;
22
+ };
23
+ receiver: {
24
+ rfc: string | null;
25
+ name: string | null;
26
+ cfdiUse: string | null;
27
+ taxRegime: string | null;
28
+ postalCode: string | null;
29
+ };
30
+ concepts: Array<{
31
+ productCode: string | null;
32
+ quantity: string | null;
33
+ unitCode: string | null;
34
+ description: string | null;
35
+ unitValue: string | null;
36
+ amount: string | null;
37
+ }>;
38
+ taxes: {
39
+ transferred: string | null;
40
+ withheld: string | null;
41
+ };
42
+ /**
43
+ * null: sin timbre del SAT
44
+ */
45
+ stamp: {
46
+ uuid: string | null;
47
+ stampedAt: string | null;
48
+ certifierRfc: string | null;
49
+ } | null;
50
+ };
51
+ /**
52
+ * Una factura leída: los montos en texto, como vienen en el XML.
53
+ *
54
+ * @typedef {object} Cfdi
55
+ * @property {string|null} version
56
+ * @property {string|null} series
57
+ * @property {string|null} folio
58
+ * @property {string|null} issuedAt
59
+ * @property {string|null} voucherType CFDI_VOUCHER_TYPE
60
+ * @property {string|null} paymentMethod
61
+ * @property {string|null} paymentForm
62
+ * @property {string|null} currency
63
+ * @property {string|null} exchangeRate
64
+ * @property {string|null} subtotal
65
+ * @property {string|null} discount
66
+ * @property {string|null} total
67
+ * @property {string|null} placeOfIssue
68
+ * @property {{rfc: string|null, name: string|null, taxRegime: string|null}} issuer
69
+ * @property {{rfc: string|null, name: string|null, cfdiUse: string|null, taxRegime: string|null, postalCode: string|null}} receiver
70
+ * @property {Array<{productCode: string|null, quantity: string|null, unitCode: string|null, description: string|null, unitValue: string|null, amount: string|null}>} concepts
71
+ * @property {{transferred: string|null, withheld: string|null}} taxes
72
+ * @property {{uuid: string|null, stampedAt: string|null, certifierRfc: string|null}|null} stamp null: sin timbre del SAT
73
+ */
74
+ /** El tipo de comprobante (TipoDeComprobante): ingreso, egreso, traslado, nómina o pago. */
75
+ export declare const CFDI_VOUCHER_TYPE: Readonly<{
76
+ income: "I";
77
+ expense: "E";
78
+ transfer: "T";
79
+ payroll: "N";
80
+ payment: "P";
81
+ }>;
82
+ /**
83
+ * Lee el XML de un CFDI.
84
+ *
85
+ * @param {string} xmlText
86
+ * @returns {Cfdi|null} null si el XML no es un CFDI (no trae su Comprobante con Emisor y Receptor)
87
+ */
88
+ export declare function readCfdi(xmlText: string): Cfdi | null;
89
+ /**
90
+ * Lee el CFDI de un archivo elegido (un File o un Blob).
91
+ *
92
+ * @param {Blob} file
93
+ * @returns {Promise<Cfdi|null>} lo de readCfdi
94
+ */
95
+ export declare function readCfdiFile(file: Blob): Promise<Cfdi | null>;
@@ -0,0 +1,54 @@
1
+ /** Las etiquetas DER que se leen. */
2
+ export declare const DER_TAG: Readonly<{
3
+ integer: 2;
4
+ objectIdentifier: 6;
5
+ utf8String: 12;
6
+ printableString: 19;
7
+ teletexString: 20;
8
+ ia5String: 22;
9
+ utcTime: 23;
10
+ generalizedTime: 24;
11
+ bmpString: 30;
12
+ sequence: 48;
13
+ set: 49;
14
+ }>;
15
+ /**
16
+ * Una pieza DER y, si agrupa otras, sus piezas.
17
+ *
18
+ * @param {Uint8Array} bytes
19
+ * @param {number} [offset]
20
+ * @returns {{tag: number, content: Uint8Array, end: number, children: Array<object>|null}}
21
+ */
22
+ export declare function readDerNode(bytes: Uint8Array, offset?: number): {
23
+ tag: number;
24
+ content: Uint8Array;
25
+ end: number;
26
+ children: Array<object> | null;
27
+ };
28
+ /**
29
+ * Un identificador de objeto (OID) como se escribe: '2.5.4.45'.
30
+ *
31
+ * @param {Uint8Array} content
32
+ * @returns {string}
33
+ */
34
+ export declare function objectIdentifierOf(content: Uint8Array): string;
35
+ /**
36
+ * El texto de una pieza de texto (UTF-8, imprimible, latin-1 o UTF-16 de los nombres con acentos).
37
+ *
38
+ * @param {{tag: number, content: Uint8Array}} node
39
+ * @returns {string}
40
+ */
41
+ export declare function derTextOf({ tag, content }: {
42
+ tag: number;
43
+ content: Uint8Array;
44
+ }): string;
45
+ /**
46
+ * Una fecha de certificado como instante ISO: UTCTime 'AAMMDDhhmmssZ' (de 1950 a 2049) o GeneralizedTime 'AAAAMMDDhhmmssZ'.
47
+ *
48
+ * @param {{tag: number, content: Uint8Array}} node
49
+ * @returns {string} '2030-11-02T04:56:30.000Z'
50
+ */
51
+ export declare function derTimeOf(node: {
52
+ tag: number;
53
+ content: Uint8Array;
54
+ }): string;
@@ -0,0 +1,26 @@
1
+ /** Por qué no pasó la llave. */
2
+ export declare const EFIRMA_KEY_PROBLEM: Readonly<{
3
+ notKey: "notKey";
4
+ wrongPassword: "wrongPassword";
5
+ otherCertificate: "otherCertificate";
6
+ }>;
7
+ /** Un «no» de la llave, con su motivo (reason es uno de EFIRMA_KEY_PROBLEM). */
8
+ export declare class EfirmaKeyError extends Error {
9
+ reason: string;
10
+ /**
11
+ * @param {string} reason EFIRMA_KEY_PROBLEM
12
+ */
13
+ constructor(reason: string);
14
+ }
15
+ /**
16
+ * Abre la llave con la contraseña y la compara con el certificado. Si todo está bien no regresa nada; si no, truena con
17
+ * EfirmaKeyError y su motivo.
18
+ *
19
+ * @param {{certificateBytes: ArrayBuffer|Uint8Array, keyBytes: ArrayBuffer|Uint8Array, password: string}} efirma
20
+ * @returns {Promise<void>}
21
+ */
22
+ export declare function verifyEfirmaKey({ certificateBytes, keyBytes, password }: {
23
+ certificateBytes: ArrayBuffer | Uint8Array;
24
+ keyBytes: ArrayBuffer | Uint8Array;
25
+ password: string;
26
+ }): Promise<void>;
@@ -0,0 +1,61 @@
1
+ /** De qué tipo es un RFC. */
2
+ export declare const RFC_KIND: Readonly<{
3
+ company: "company";
4
+ person: "person";
5
+ generic: "generic";
6
+ }>;
7
+ /**
8
+ * El dígito verificador de un RFC (el último carácter), calculado con el resto de 11 del SAT.
9
+ *
10
+ * @param {string} rfc el RFC completo (se ignora su último carácter)
11
+ * @returns {string} '0'-'9' o 'A'
12
+ */
13
+ export declare function rfcCheckDigitOf(rfc: string): string;
14
+ /**
15
+ * De qué tipo es un RFC bien formado; null si no tiene la forma.
16
+ *
17
+ * @param {string|null|undefined} rfc
18
+ * @returns {string|null} RFC_KIND
19
+ */
20
+ export declare function rfcKindOf(rfc: string | null | undefined): string | null;
21
+ /**
22
+ * ¿El RFC está bien escrito? Revisa su forma (persona moral, física o genérico) y que la fecha exista.
23
+ *
24
+ * El dígito verificador va aparte (strict) y no por omisión: si un RFC real no lo cumpliera, la persona se quedaría sin poder
25
+ * seguir, y quien dice si un RFC existe es el SAT.
26
+ *
27
+ * @param {string|null|undefined} rfc
28
+ * @param {{strict?: boolean}} [options] strict: además, el dígito verificador
29
+ * @returns {boolean}
30
+ */
31
+ export declare function isValidRfc(rfc: string | null | undefined, { strict }?: {
32
+ strict?: boolean;
33
+ }): boolean;
34
+ /**
35
+ * El dígito verificador de una CURP (el último).
36
+ *
37
+ * @param {string} curp la CURP completa (se ignora su último carácter)
38
+ * @returns {string}
39
+ */
40
+ export declare function curpCheckDigitOf(curp: string): string;
41
+ /**
42
+ * ¿La CURP está bien escrita? Su forma (con el estado y el sexo), que la fecha exista y su dígito verificador.
43
+ *
44
+ * @param {string|null|undefined} curp
45
+ * @returns {boolean}
46
+ */
47
+ export declare function isValidCurp(curp: string | null | undefined): boolean;
48
+ /**
49
+ * El dígito verificador de una CLABE (el 18.º).
50
+ *
51
+ * @param {string} clabe la CLABE completa o sus primeros 17 dígitos
52
+ * @returns {string}
53
+ */
54
+ export declare function clabeCheckDigitOf(clabe: string): string;
55
+ /**
56
+ * ¿La CLABE está bien escrita? 18 dígitos (los espacios no cuentan) y su dígito verificador.
57
+ *
58
+ * @param {string|null|undefined} clabe
59
+ * @returns {boolean}
60
+ */
61
+ export declare function isValidClabe(clabe: string | null | undefined): boolean;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @param {{strict?: boolean}} [options] strict: también el dígito verificador (ver isValidRfc)
3
+ * @returns {{name: string, message: {key: string}, test: (value: unknown) => boolean}}
4
+ */
5
+ export declare function rfcRule({ strict }?: {
6
+ strict?: boolean;
7
+ }): {
8
+ name: string;
9
+ message: {
10
+ key: string;
11
+ };
12
+ test: (value: unknown) => boolean;
13
+ };
14
+ /** @returns {{name: string, message: {key: string}, test: (value: unknown) => boolean}} */
15
+ export declare function curpRule(): {
16
+ name: string;
17
+ message: {
18
+ key: string;
19
+ };
20
+ test: (value: unknown) => boolean;
21
+ };
22
+ /** @returns {{name: string, message: {key: string}, test: (value: unknown) => boolean}} */
23
+ export declare function clabeRule(): {
24
+ name: string;
25
+ message: {
26
+ key: string;
27
+ };
28
+ test: (value: unknown) => boolean;
29
+ };
@@ -0,0 +1,11 @@
1
+ export { RFC_KIND, clabeCheckDigitOf, curpCheckDigitOf, isValidClabe, isValidCurp, isValidRfc, rfcCheckDigitOf, rfcKindOf, } from './mexico/mexicoIdentifiers.js';
2
+ export { clabeRule, curpRule, rfcRule } from './mexico/mexicoRules.js';
3
+ export { CERTIFICATE_STATUS, certificateStatusOf, readCertificate } from './mexico/certificateReader.js';
4
+ export { CFDI_VOUCHER_TYPE, readCfdi, readCfdiFile } from './mexico/cfdiReader.js';
5
+ export { EFIRMA_KEY_PROBLEM, EfirmaKeyError, verifyEfirmaKey } from './mexico/efirmaKey.js';
6
+ export { default as CfdiSummary } from './mexico/CfdiSummary.js';
7
+ export { default as EfirmaFields } from './mexico/EfirmaFields.js';
8
+ export type Cfdi = import('./mexico/cfdiReader.js').Cfdi;
9
+ export type EfirmaCertificate = ReturnType<typeof import('./mexico/certificateReader.js').readCertificate>;
10
+ /** Una factura leída (lo que regresa readCfdi). @typedef {import('./mexico/cfdiReader.js').Cfdi} Cfdi */
11
+ /** Un certificado leído (lo que regresa readCertificate). @typedef {ReturnType<typeof import('./mexico/certificateReader.js').readCertificate>} EfirmaCertificate */
@@ -1,9 +1,18 @@
1
- export { Controller, FormProvider, useForm, useFormContext } from 'react-hook-form';
1
+ export { Controller, FormProvider, useFieldArray, useForm, useFormContext, useWatch } from 'react-hook-form';
2
2
  export { yupResolver } from '@hookform/resolvers/yup';
3
+ export { default as FormAttachmentsField } from './hookForm/FormAttachmentsField.js';
3
4
  export { default as FormCatalogField } from './hookForm/FormCatalogField.js';
5
+ export { default as FormCheckboxGroupField } from './hookForm/FormCheckboxGroupField.js';
4
6
  export { default as FormColorField } from './hookForm/FormColorField.js';
7
+ export { default as FormFileField } from './hookForm/FormFileField.js';
8
+ export { default as FormFileUploadField } from './hookForm/FormFileUploadField.js';
9
+ export { default as FormImageField } from './hookForm/FormImageField.js';
10
+ export { default as FormMaskedField } from './hookForm/FormMaskedField.js';
5
11
  export { default as FormNumberField } from './hookForm/FormNumberField.js';
6
12
  export { default as FormProblemAlert } from './hookForm/FormProblemAlert.js';
13
+ export { default as FormRepeatingFields } from './hookForm/FormRepeatingFields.js';
14
+ export { default as FormTransferListField } from './hookForm/FormTransferListField.js';
15
+ export { listTotalAtMostRule, listTotalOf, orderedInListRule, uniqueInListRule } from './forms/listRules.js';
7
16
  export { default as FormSelectField } from './hookForm/FormSelectField.js';
8
17
  export { default as FormWizard } from './hookForm/FormWizard.js';
9
18
  export { default as FormTextField } from './hookForm/FormTextField.js';
@@ -0,0 +1,5 @@
1
+ export { default as FormRichTextField } from './richText/FormRichTextField.js';
2
+ export { default as RichTextEditor } from './richText/RichTextEditor.js';
3
+ export { default as RichTextView } from './richText/RichTextView.js';
4
+ export { DEFAULT_RICH_TEXT_FEATURES, RICH_TEXT_FEATURE, SAFE_LINK_PROTOCOLS, isSafeLinkUrl, linkUrlOf, normalizedHtmlOf } from './richText/richTextRules.js';
5
+ export { RICH_TEXT_HEADING_LEVELS, richTextExtensionsOf } from './richText/richTextExtensions.js';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @param {{name: string} & Omit<Parameters<typeof import('./RichTextEditor.js').default>[0], 'name'|'value'|'onChange'|'onBlur'|'error'>} props las de
3
+ * RichTextEditor (features, maxLength, placeholder…), sin value / onChange / onBlur / error
4
+ */
5
+ export default function FormRichTextField({ name, ...editorProps }: {
6
+ name: string;
7
+ } & Omit<Parameters<typeof import('./RichTextEditor.js').default>[0], 'name' | 'value' | 'onChange' | 'onBlur' | 'error'>): import("react").JSX.Element;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @param {object} props
3
+ * @param {string} [props.name]
4
+ * @param {import('react').ReactNode} props.label ya traducida
5
+ * @param {string|null|undefined} props.value el HTML guardado ('' sin texto)
6
+ * @param {(html: string) => void} props.onChange recibe el HTML ('' si se borra todo)
7
+ * @param {() => void} [props.onBlur]
8
+ * @param {string} [props.placeholder] ya traducido: lo que se ve con el editor vacío
9
+ * @param {string|{key: string, values?: object}} [props.error]
10
+ * @param {string} [props.helperText] ya traducida
11
+ * @param {number} [props.maxLength] el tope de caracteres (con su contador abajo)
12
+ * @param {string[]} [props.features] los botones de la barra (RICH_TEXT_FEATURE); por omisión todos
13
+ * @param {Array<object>} [props.extensions] extensiones de Tiptap del proyecto
14
+ * @param {import('react').ReactNode} [props.toolbarActions] botones propios al final de la barra
15
+ * @param {(editor: import('@tiptap/react').Editor) => void} [props.onEditorReady] el editor de Tiptap, al estar listo
16
+ * @param {number} [props.minHeight] el alto mínimo del texto en px; por omisión 160
17
+ * @param {boolean} [props.disabled]
18
+ * @param {object} [props.sx]
19
+ * @param {object} [props.texts] los textos que cambian, con la forma de `richText` en los textos del paquete
20
+ */
21
+ export default function RichTextEditor(props: {
22
+ name?: string;
23
+ label: import('react').ReactNode;
24
+ value: string | null | undefined;
25
+ onChange: (html: string) => void;
26
+ onBlur?: () => void;
27
+ placeholder?: string;
28
+ error?: string | {
29
+ key: string;
30
+ values?: object;
31
+ };
32
+ helperText?: string;
33
+ maxLength?: number;
34
+ features?: string[];
35
+ extensions?: Array<object>;
36
+ toolbarActions?: import('react').ReactNode;
37
+ onEditorReady?: (editor: import('@tiptap/react').Editor) => void;
38
+ minHeight?: number;
39
+ disabled?: boolean;
40
+ sx?: object;
41
+ texts?: object;
42
+ }): import("react").JSX.Element;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @param {object} props
3
+ * @param {HTMLElement|null} props.anchorElement el botón de la liga (null: cerrada)
4
+ * @param {string} props.initialUrl la liga que ya tiene el texto ('' si no tiene)
5
+ * @param {(url: string) => void} props.onSave recibe la dirección ya revisada
6
+ * @param {() => void} props.onRemove
7
+ * @param {() => void} props.onClose
8
+ * @param {(key: string) => string} props.t el traductor del editor
9
+ */
10
+ export default function RichTextLinkPopover({ anchorElement, initialUrl, onSave, onRemove, onClose, t }: {
11
+ anchorElement: HTMLElement | null;
12
+ initialUrl: string;
13
+ onSave: (url: string) => void;
14
+ onRemove: () => void;
15
+ onClose: () => void;
16
+ t: (key: string) => string;
17
+ }): import("react").JSX.Element;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @param {object} props
3
+ * @param {import('@tiptap/react').Editor|null} props.editor
4
+ * @param {string[]} props.features
5
+ * @param {boolean} props.disabled
6
+ * @param {(key: string, values?: object) => string} props.t el traductor del editor (namespace richText)
7
+ * @param {import('react').ReactNode} [props.actions] botones del proyecto al final de la barra
8
+ */
9
+ export default function RichTextToolbar({ editor, features, disabled, t, actions }: {
10
+ editor: import('@tiptap/react').Editor | null;
11
+ features: string[];
12
+ disabled: boolean;
13
+ t: (key: string, values?: object) => string;
14
+ actions?: import('react').ReactNode;
15
+ }): import("react").JSX.Element | null;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @param {object} props
3
+ * @param {string|null|undefined} props.value el HTML guardado
4
+ * @param {string[]} [props.features] lo que se deja pasar (por omisión, lo de un editor completo)
5
+ * @param {Array<object>} [props.extensions] las extensiones de Tiptap del proyecto (las mismas que tiene su editor)
6
+ * @param {object} [props.sx]
7
+ */
8
+ export default function RichTextView(props: {
9
+ value: string | null | undefined;
10
+ features?: string[];
11
+ extensions?: Array<object>;
12
+ sx?: object;
13
+ }): import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * El sx del contenido (.tiptap es la caja que edita Tiptap; en la vista es la misma, sin editar).
3
+ *
4
+ * @param {object} theme
5
+ * @returns {object}
6
+ */
7
+ export declare function richTextContentSxOf(theme: object): object;
@@ -0,0 +1,15 @@
1
+ export declare const RICH_TEXT_HEADING_LEVELS: readonly number[];
2
+ /**
3
+ * @param {object} options
4
+ * @param {string[]} options.features los botones de la barra (RICH_TEXT_FEATURE)
5
+ * @param {string} [options.placeholder] ya traducido: lo que se ve con el editor vacío
6
+ * @param {number} [options.maxLength] el tope de caracteres; sin él, sin tope
7
+ * @param {Array<object>} [options.extensions] extensiones de Tiptap del proyecto, al final
8
+ * @returns {Array<object>}
9
+ */
10
+ export declare function richTextExtensionsOf({ features, placeholder, maxLength, extensions }: {
11
+ features: string[];
12
+ placeholder?: string;
13
+ maxLength?: number;
14
+ extensions?: Array<object>;
15
+ }): Array<object>;
@@ -0,0 +1,41 @@
1
+ /** Los botones que puede traer la barra del editor. */
2
+ export declare const RICH_TEXT_FEATURE: Readonly<{
3
+ textStyle: "textStyle";
4
+ bold: "bold";
5
+ italic: "italic";
6
+ underline: "underline";
7
+ strike: "strike";
8
+ bulletList: "bulletList";
9
+ orderedList: "orderedList";
10
+ blockquote: "blockquote";
11
+ codeBlock: "codeBlock";
12
+ link: "link";
13
+ align: "align";
14
+ clear: "clear";
15
+ history: "history";
16
+ }>;
17
+ /** Los de siempre: todos. Un editor más sencillo pasa su lista (features={[RICH_TEXT_FEATURE.bold, …]}). */
18
+ export declare const DEFAULT_RICH_TEXT_FEATURES: readonly ("align" | "blockquote" | "bold" | "bulletList" | "clear" | "codeBlock" | "history" | "italic" | "link" | "orderedList" | "strike" | "textStyle" | "underline")[];
19
+ /** Los protocolos que puede llevar una liga. */
20
+ export declare const SAFE_LINK_PROTOCOLS: readonly string[];
21
+ /**
22
+ * La dirección de una liga lista para guardarse, o null si no se acepta.
23
+ *
24
+ * @param {string|null|undefined} typedUrl lo que escribió la persona
25
+ * @returns {string|null}
26
+ */
27
+ export declare function linkUrlOf(typedUrl: string | null | undefined): string | null;
28
+ /**
29
+ * ¿Se acepta esta dirección como liga? (lo que pide la extensión de ligas del editor)
30
+ *
31
+ * @param {string} url
32
+ * @returns {boolean}
33
+ */
34
+ export declare function isSafeLinkUrl(url: string): boolean;
35
+ /**
36
+ * El HTML del editor como se guarda: '' si no hay nada escrito.
37
+ *
38
+ * @param {string|null|undefined} html
39
+ * @returns {string}
40
+ */
41
+ export declare function normalizedHtmlOf(html: string | null | undefined): string;
@@ -1,3 +1,3 @@
1
- export { AuditTrailDialog, AuditTrailTable, EmptyState, FILTER_KINDS, FilterChips, GoToPage, SELECTION_PHONE_LAYOUT, ServerTable, TableFilterContext, buildChipConfig, buildTableActors, detailColumn, facetColumn, isFilterActive, tableMachine, textColumn, toServerTableParams, useDebouncedFilter, useTableFilter, useTableState, } from './DataTable/index.js';
1
+ export { AuditTrailDialog, AuditTrailTable, EmptyState, FILTER_KINDS, FilterChips, GoToPage, SELECTION_PHONE_LAYOUT, ServerTable, ServerTableFilterDrawer, TableFilterContext, buildChipConfig, buildTableActors, detailColumn, facetColumn, isFilterActive, tableMachine, textColumn, toServerTableParams, useDebouncedFilter, useTableFilter, useTableState, } from './DataTable/index.js';
2
2
  export type RowSelection = import('./DataTable/rowSelection.js').RowSelection;
3
3
  /** @typedef {import('./DataTable/rowSelection.js').RowSelection} RowSelection */
@@ -1,20 +1,35 @@
1
+ /** Los renglones que no son acciones. */
2
+ export declare const ACTIONS_MENU_ROW: Readonly<{
3
+ section: "section";
4
+ divider: "divider";
5
+ }>;
1
6
  /**
2
7
  * @param {object} props
3
8
  * @param {string} props.label el nombre del botón (lector de pantalla y su tooltip), ya traducido
4
- * @param {Array<{key: string, label: string, icon?: import('react').ReactNode, color?: string, disabled?: boolean, onClick: () => void}>} [props.actions]
9
+ * @param {Array<{key: string, type?: string, label?: string, icon?: import('react').ReactNode, description?: string, color?: string, disabled?: boolean, onClick?: () => void, href?: string, download?: string|boolean, children?: object[], render?: (helpers: {close: () => void}) => import('react').ReactNode}>} [props.actions]
5
10
  * @param {import('react').ReactNode} [props.icon] otro ícono para el botón (por omisión «⋯»)
6
11
  * @param {'small'|'medium'} [props.size]
12
+ * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
7
13
  */
8
14
  export default function ActionsMenu(props: {
9
15
  label: string;
10
16
  actions?: Array<{
11
17
  key: string;
12
- label: string;
18
+ type?: string;
19
+ label?: string;
13
20
  icon?: import('react').ReactNode;
21
+ description?: string;
14
22
  color?: string;
15
23
  disabled?: boolean;
16
- onClick: () => void;
24
+ onClick?: () => void;
25
+ href?: string;
26
+ download?: string | boolean;
27
+ children?: object[];
28
+ render?: (helpers: {
29
+ close: () => void;
30
+ }) => import('react').ReactNode;
17
31
  }>;
18
32
  icon?: import('react').ReactNode;
19
33
  size?: 'small' | 'medium';
34
+ texts?: object;
20
35
  }): import("react").JSX.Element | null;
@@ -1,15 +1,18 @@
1
1
  /**
2
2
  * @param {object} props
3
- * @param {string} props.value lo que se copia
4
- * @param {string} [props.label] ya traducido; por omisión «Copiar»
3
+ * @param {string|(() => string)} props.value lo que se copia; una función se llama al picar
4
+ * @param {string} [props.label] ya traducido: qué copia («Copiar el folio»); por omisión «Copiar». Es el globo y el nombre
5
+ * del botón para un lector de pantalla
5
6
  * @param {'small'|'medium'} [props.size]
6
7
  * @param {() => void} [props.onCopied]
8
+ * @param {(error: unknown) => void} [props.onCopyFailed] el navegador no dejó copiar (el botón ya lo dice en rojo)
7
9
  * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
8
10
  */
9
- export default function CopyButton({ value, label, size, onCopied, texts, ...unknownProps }: {
10
- value: string;
11
+ export default function CopyButton({ value, label, size, onCopied, onCopyFailed, texts, ...unknownProps }: {
12
+ value: string | (() => string);
11
13
  label?: string;
12
14
  size?: 'small' | 'medium';
13
15
  onCopied?: () => void;
16
+ onCopyFailed?: (error: unknown) => void;
14
17
  texts?: object;
15
18
  }): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {Array<string|number|null|undefined>} cells las celdas en el orden de las columnas, ya formateadas
3
+ * @returns {string} las celdas unidas con tabulador; una vacía o nula queda vacía. Un tabulador o un salto de renglón dentro
4
+ * de una celda se cambia por un espacio: partirían el renglón al pegarlo
5
+ */
6
+ export declare function tableRowTextOf(cells: Array<string | number | null | undefined>): string;
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @param {object} props
3
+ * @param {import('react').ReactNode} props.title el nombre del registro, ya traducido
4
+ * @param {import('react').ReactNode} [props.eyebrow] arriba del título: el folio o el tipo
5
+ * @param {import('react').ReactNode} [props.subtitle] abajo del título
6
+ * @param {string|import('react').ReactNode} [props.avatar] un texto (de él salen las iniciales) o un ícono
7
+ * @param {import('react').ReactNode} [props.status] a la derecha: StatusChip, IconBadge…
8
+ * @param {Parameters<typeof import('../actions/ActionsMenu.js').default>[0]['actions']} [props.actions] el menú «⋯», con sus secciones,
9
+ * separadores, ligas y submenús (los renglones de ActionsMenu)
10
+ * @param {Array<{key?: string, title?: import('react').ReactNode, facts?: Array<{label: import('react').ReactNode, value: import('react').ReactNode, emphasis?: boolean}>, content?: import('react').ReactNode}>} [props.groups]
11
+ * los datos, en grupos; emphasis los pone en negritas; content en lugar de facts para un grupo libre (una barra, unas
12
+ * insignias, un enlace)
13
+ * @param {import('react').ReactNode} [props.header] un encabezado propio en lugar del de la casa (avatar, títulos, estatus)
14
+ * @param {import('react').ReactNode} [props.children] contenido libre entre el cuerpo y lo de abajo
15
+ * @param {{label: import('react').ReactNode, value: import('react').ReactNode, caption?: import('react').ReactNode}} [props.highlight] el dato principal
16
+ * @param {import('react').ReactNode} [props.trailing] la última columna del cuerpo, después de los grupos y del dato principal
17
+ * (el estatus o unos botones, cuando el orden obligatorio los pone al final)
18
+ * @param {string} [props.columns] en escritorio, el ancho de cada columna del cuerpo como en CSS ('1.2fr 1fr 1fr auto'); por
19
+ * omisión, los grupos a partes iguales y el dato principal y trailing a su medida
20
+ * @param {import('react').ReactNode} [props.footer] abajo, a todo lo ancho
21
+ * @param {import('react').ReactNode} [props.details] lo que se despliega con «Ver detalle»
22
+ * @param {string} [props.detailsLabel] ya traducido; por omisión «Ver detalle»
23
+ * @param {boolean} [props.defaultDetailsOpen]
24
+ * @param {(isOpen: boolean) => void} [props.onDetailsToggle]
25
+ * @param {() => void} [props.onOpen] el botón para abrir el registro (su detalle)
26
+ * @param {string} [props.openLabel] ya traducido: el nombre de ese botón («Abrir el pedido P-1203»)
27
+ * @param {object} [props.sx]
28
+ * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
29
+ */
30
+ export default function RecordCard(props: {
31
+ title: import('react').ReactNode;
32
+ eyebrow?: import('react').ReactNode;
33
+ subtitle?: import('react').ReactNode;
34
+ avatar?: string | import('react').ReactNode;
35
+ status?: import('react').ReactNode;
36
+ actions?: Parameters<typeof import('../actions/ActionsMenu.js').default>[0]['actions'];
37
+ groups?: Array<{
38
+ key?: string;
39
+ title?: import('react').ReactNode;
40
+ facts?: Array<{
41
+ label: import('react').ReactNode;
42
+ value: import('react').ReactNode;
43
+ emphasis?: boolean;
44
+ }>;
45
+ content?: import('react').ReactNode;
46
+ }>;
47
+ header?: import('react').ReactNode;
48
+ children?: import('react').ReactNode;
49
+ highlight?: {
50
+ label: import('react').ReactNode;
51
+ value: import('react').ReactNode;
52
+ caption?: import('react').ReactNode;
53
+ };
54
+ trailing?: import('react').ReactNode;
55
+ columns?: string;
56
+ footer?: import('react').ReactNode;
57
+ details?: import('react').ReactNode;
58
+ detailsLabel?: string;
59
+ defaultDetailsOpen?: boolean;
60
+ onDetailsToggle?: (isOpen: boolean) => void;
61
+ onOpen?: () => void;
62
+ openLabel?: string;
63
+ sx?: object;
64
+ texts?: object;
65
+ }): import("react").JSX.Element;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @param {object} props
3
+ * @param {number} [props.groups] cuántos grupos de datos (como los de la tarjeta)
4
+ * @param {number} [props.factsPerGroup]
5
+ * @param {boolean} [props.withAvatar]
6
+ * @param {boolean} [props.withHighlight]
7
+ * @param {object} [props.sx]
8
+ * @param {object} [props.texts] los textos que cambian, con la forma de `common` en los textos del paquete
9
+ */
10
+ export default function RecordCardSkeleton({ groups, factsPerGroup, withAvatar, withHighlight, sx, texts, ...unknownProps }: {
11
+ groups?: number;
12
+ factsPerGroup?: number;
13
+ withAvatar?: boolean;
14
+ withHighlight?: boolean;
15
+ sx?: object;
16
+ texts?: object;
17
+ }): import("react").JSX.Element;