@multiplatform.one/frappe-ui 7.7.6 → 7.10.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 (538) hide show
  1. package/dist/cjs/ChartCard.native.js.map +1 -1
  2. package/dist/cjs/FileBrowser/AttachLibrary.native.js.map +1 -1
  3. package/dist/cjs/FileBrowser/folderTree.native.js.map +1 -1
  4. package/dist/cjs/FileBrowser/index.native.js.map +1 -1
  5. package/dist/cjs/FileBrowser/types.native.js.map +1 -1
  6. package/dist/cjs/FileBrowser/viewPersistence.native.js.map +1 -1
  7. package/dist/cjs/FormSidebar.cjs +7 -7
  8. package/dist/cjs/FormSidebar.native.js +7 -7
  9. package/dist/cjs/FormSidebar.native.js.map +1 -1
  10. package/dist/cjs/FrappeAssignment.native.js.map +1 -1
  11. package/dist/cjs/FrappeCalendar.cjs +20 -17
  12. package/dist/cjs/FrappeCalendar.native.js +22 -21
  13. package/dist/cjs/FrappeCalendar.native.js.map +1 -1
  14. package/dist/cjs/FrappeChartCard.cjs +29 -3
  15. package/dist/cjs/FrappeChartCard.native.js +29 -3
  16. package/dist/cjs/FrappeChartCard.native.js.map +1 -1
  17. package/dist/cjs/FrappeConnectionIndicator.native.js.map +1 -1
  18. package/dist/cjs/FrappeDashboard.native.js.map +1 -1
  19. package/dist/cjs/FrappeForm.cjs +1 -1
  20. package/dist/cjs/FrappeForm.native.js +2 -2
  21. package/dist/cjs/FrappeForm.native.js.map +1 -1
  22. package/dist/cjs/FrappeGantt.cjs +25 -34
  23. package/dist/cjs/FrappeGantt.native.js +27 -38
  24. package/dist/cjs/FrappeGantt.native.js.map +1 -1
  25. package/dist/cjs/FrappeImageView.cjs +4 -2
  26. package/dist/cjs/FrappeImageView.native.js +8 -4
  27. package/dist/cjs/FrappeImageView.native.js.map +1 -1
  28. package/dist/cjs/FrappeKPICard.cjs +29 -3
  29. package/dist/cjs/FrappeKPICard.native.js +29 -3
  30. package/dist/cjs/FrappeKPICard.native.js.map +1 -1
  31. package/dist/cjs/FrappeKanban.cjs +16 -17
  32. package/dist/cjs/FrappeKanban.native.js +18 -21
  33. package/dist/cjs/FrappeKanban.native.js.map +1 -1
  34. package/dist/cjs/FrappeLikedBy.cjs +1 -1
  35. package/dist/cjs/FrappeLikedBy.native.js +1 -1
  36. package/dist/cjs/FrappeLikedBy.native.js.map +1 -1
  37. package/dist/cjs/FrappeList.cjs +2 -2
  38. package/dist/cjs/FrappeList.native.js +2 -2
  39. package/dist/cjs/FrappeList.native.js.map +1 -1
  40. package/dist/cjs/FrappeListView.cjs +6 -6
  41. package/dist/cjs/FrappeListView.native.js +6 -6
  42. package/dist/cjs/FrappeListView.native.js.map +1 -1
  43. package/dist/cjs/FrappeProvider.native.js.map +1 -1
  44. package/dist/cjs/FrappeReconnectIndicator.native.js.map +1 -1
  45. package/dist/cjs/FrappeReportBuilder.cjs +2 -2
  46. package/dist/cjs/FrappeReportBuilder.native.js +2 -2
  47. package/dist/cjs/FrappeReportBuilder.native.js.map +1 -1
  48. package/dist/cjs/FrappeReportView.native.js +3 -3
  49. package/dist/cjs/FrappeReportView.native.js.map +1 -1
  50. package/dist/cjs/FrappeTable.cjs +35 -38
  51. package/dist/cjs/FrappeTable.native.js +38 -39
  52. package/dist/cjs/FrappeTable.native.js.map +1 -1
  53. package/dist/cjs/FrappeTreeView.cjs +85 -50
  54. package/dist/cjs/FrappeTreeView.native.js +129 -50
  55. package/dist/cjs/FrappeTreeView.native.js.map +1 -1
  56. package/dist/cjs/SyncErrorNotice.native.js.map +1 -1
  57. package/dist/cjs/commentActions.cjs +1 -1
  58. package/dist/cjs/commentActions.native.js +1 -1
  59. package/dist/cjs/commentActions.native.js.map +1 -1
  60. package/dist/cjs/components/attachments.native.js.map +1 -1
  61. package/dist/cjs/components/tags.native.js.map +1 -1
  62. package/dist/cjs/components/timeline.cjs +1 -1
  63. package/dist/cjs/components/timeline.native.js +1 -1
  64. package/dist/cjs/components/timeline.native.js.map +1 -1
  65. package/dist/cjs/dependsOn.native.js.map +1 -1
  66. package/dist/cjs/desk/DeskFormPage.native.js.map +1 -1
  67. package/dist/cjs/desk/DeskFormSidebar.native.js.map +1 -1
  68. package/dist/cjs/desk/DeskListPage.native.js.map +1 -1
  69. package/dist/cjs/desk/DeskShell.cjs +2 -0
  70. package/dist/cjs/desk/DeskShell.native.js +2 -0
  71. package/dist/cjs/desk/DeskShell.native.js.map +1 -1
  72. package/dist/cjs/desk/DeskSidebar.native.js.map +1 -1
  73. package/dist/cjs/desk/awesomebar.cjs +1 -1
  74. package/dist/cjs/desk/awesomebar.native.js +1 -1
  75. package/dist/cjs/desk/awesomebar.native.js.map +1 -1
  76. package/dist/cjs/fieldOverrides.native.js.map +1 -1
  77. package/dist/cjs/fieldRegistry.native.js +31 -31
  78. package/dist/cjs/fieldRegistry.native.js.map +1 -1
  79. package/dist/cjs/fields/Barcode/index.native.js.map +1 -1
  80. package/dist/cjs/fields/Check/index.native.js.map +1 -1
  81. package/dist/cjs/fields/CodeEditor/index.native.js.map +1 -1
  82. package/dist/cjs/fields/Color/index.native.js.map +1 -1
  83. package/dist/cjs/fields/Data/index.native.js.map +1 -1
  84. package/dist/cjs/fields/Date/sheetKeyboard.native.js.map +1 -1
  85. package/dist/cjs/fields/Date/types.native.js.map +1 -1
  86. package/dist/cjs/fields/Date/wire.native.js.map +1 -1
  87. package/dist/cjs/fields/DateRange/index.cjs +30 -2
  88. package/dist/cjs/fields/DateRange/index.native.js +34 -2
  89. package/dist/cjs/fields/DateRange/index.native.js.map +1 -1
  90. package/dist/cjs/fields/Duration/index.native.js.map +1 -1
  91. package/dist/cjs/fields/DynamicLink.native.js.map +1 -1
  92. package/dist/cjs/fields/FileUpload.native.js.map +1 -1
  93. package/dist/cjs/fields/FileUploadField/index.native.js.map +1 -1
  94. package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
  95. package/dist/cjs/fields/HTML/index.native.js.map +1 -1
  96. package/dist/cjs/fields/Heading/index.native.js.map +1 -1
  97. package/dist/cjs/fields/Icon/index.native.js.map +1 -1
  98. package/dist/cjs/fields/Link.native.js.map +1 -1
  99. package/dist/cjs/fields/LinkTree.native.js.map +1 -1
  100. package/dist/cjs/fields/LongText/index.native.js.map +1 -1
  101. package/dist/cjs/fields/MentionInput/index.cjs +4 -1
  102. package/dist/cjs/fields/MentionInput/index.native.js +4 -1
  103. package/dist/cjs/fields/MentionInput/index.native.js.map +1 -1
  104. package/dist/cjs/fields/Numeric/index.native.js.map +1 -1
  105. package/dist/cjs/fields/OTPInput/index.native.js.map +1 -1
  106. package/dist/cjs/fields/Password/index.native.js.map +1 -1
  107. package/dist/cjs/fields/Phone/index.native.js.map +1 -1
  108. package/dist/cjs/fields/Progress/index.native.js.map +1 -1
  109. package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
  110. package/dist/cjs/fields/Rating/index.native.js.map +1 -1
  111. package/dist/cjs/fields/ReadOnly/index.native.js.map +1 -1
  112. package/dist/cjs/fields/Select/index.native.js.map +1 -1
  113. package/dist/cjs/fields/Signature/index.native.js.map +1 -1
  114. package/dist/cjs/fields/Slider/index.native.js.map +1 -1
  115. package/dist/cjs/fields/SmallText/index.native.js.map +1 -1
  116. package/dist/cjs/fields/Switch/index.native.js.map +1 -1
  117. package/dist/cjs/fields/TableMultiSelect.native.js.map +1 -1
  118. package/dist/cjs/fields/TextEditor/types.native.js.map +1 -1
  119. package/dist/cjs/fields/TimePicker/index.native.js.map +1 -1
  120. package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
  121. package/dist/cjs/fields/shared/EditorPreviewPanes.native.js.map +1 -1
  122. package/dist/cjs/filterFields.native.js.map +1 -1
  123. package/dist/cjs/formEngine/createPrefill.native.js.map +1 -1
  124. package/dist/cjs/formEngine/dirtyTracking.native.js.map +1 -1
  125. package/dist/cjs/formEngine/doctypeMeta.native.js.map +1 -1
  126. package/dist/cjs/formEngine/fetchFrom.native.js.map +1 -1
  127. package/dist/cjs/formEngine/fieldPermissions.native.js.map +1 -1
  128. package/dist/cjs/formEngine/formActions.native.js.map +1 -1
  129. package/dist/cjs/formEngine/formLayout.native.js.map +1 -1
  130. package/dist/cjs/formEngine/index.native.js.map +1 -1
  131. package/dist/cjs/formEngine/useFormEngine.native.js.map +1 -1
  132. package/dist/cjs/frappeEventColor.native.js.map +1 -1
  133. package/dist/cjs/frappeStoryTarget.native.js.map +1 -1
  134. package/dist/cjs/frappeUsers.native.js.map +1 -1
  135. package/dist/cjs/index.cjs +4 -0
  136. package/dist/cjs/index.native.js +38 -34
  137. package/dist/cjs/index.native.js.map +1 -1
  138. package/dist/cjs/liveErrors.native.js.map +1 -1
  139. package/dist/cjs/resolveControl.native.js.map +1 -1
  140. package/dist/cjs/schemaForm/SchemaWizard.native.js.map +1 -1
  141. package/dist/cjs/schemaForm/applyFieldOrder.native.js.map +1 -1
  142. package/dist/cjs/schemaForm/index.cjs +10 -9
  143. package/dist/cjs/schemaForm/index.native.js +11 -10
  144. package/dist/cjs/schemaForm/index.native.js.map +1 -1
  145. package/dist/cjs/shared/devWarn.cjs +40 -0
  146. package/dist/cjs/shared/devWarn.native.js +45 -0
  147. package/dist/cjs/shared/devWarn.native.js.map +1 -0
  148. package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -1
  149. package/dist/cjs/syncError.native.js.map +1 -1
  150. package/dist/cjs/useFrappeAggregate.cjs +15 -8
  151. package/dist/cjs/useFrappeAggregate.native.js +15 -9
  152. package/dist/cjs/useFrappeAggregate.native.js.map +1 -1
  153. package/dist/cjs/useFrappeFacets.cjs +10 -9
  154. package/dist/cjs/useFrappeFacets.native.js +10 -10
  155. package/dist/cjs/useFrappeFacets.native.js.map +1 -1
  156. package/dist/cjs/useFrappePagination.native.js.map +1 -1
  157. package/dist/cjs/useFrappeRows.cjs +113 -0
  158. package/dist/cjs/useFrappeRows.native.js +129 -0
  159. package/dist/cjs/useFrappeRows.native.js.map +1 -0
  160. package/dist/esm/ChartCard.native.js.map +1 -1
  161. package/dist/esm/FileBrowser/AttachLibrary.native.js.map +1 -1
  162. package/dist/esm/FileBrowser/folderTree.native.js.map +1 -1
  163. package/dist/esm/FileBrowser/index.native.js.map +1 -1
  164. package/dist/esm/FileBrowser/types.native.js.map +1 -1
  165. package/dist/esm/FileBrowser/viewPersistence.native.js.map +1 -1
  166. package/dist/esm/FormSidebar.mjs +7 -7
  167. package/dist/esm/FormSidebar.mjs.map +1 -1
  168. package/dist/esm/FormSidebar.native.js +7 -7
  169. package/dist/esm/FormSidebar.native.js.map +1 -1
  170. package/dist/esm/FrappeAssignment.native.js.map +1 -1
  171. package/dist/esm/FrappeCalendar.mjs +20 -17
  172. package/dist/esm/FrappeCalendar.mjs.map +1 -1
  173. package/dist/esm/FrappeCalendar.native.js +22 -21
  174. package/dist/esm/FrappeCalendar.native.js.map +1 -1
  175. package/dist/esm/FrappeChartCard.mjs +30 -4
  176. package/dist/esm/FrappeChartCard.mjs.map +1 -1
  177. package/dist/esm/FrappeChartCard.native.js +30 -4
  178. package/dist/esm/FrappeChartCard.native.js.map +1 -1
  179. package/dist/esm/FrappeConnectionIndicator.native.js.map +1 -1
  180. package/dist/esm/FrappeDashboard.native.js.map +1 -1
  181. package/dist/esm/FrappeForm.mjs +1 -1
  182. package/dist/esm/FrappeForm.mjs.map +1 -1
  183. package/dist/esm/FrappeForm.native.js +1 -1
  184. package/dist/esm/FrappeForm.native.js.map +1 -1
  185. package/dist/esm/FrappeGantt.mjs +27 -36
  186. package/dist/esm/FrappeGantt.mjs.map +1 -1
  187. package/dist/esm/FrappeGantt.native.js +29 -40
  188. package/dist/esm/FrappeGantt.native.js.map +1 -1
  189. package/dist/esm/FrappeImageView.mjs +5 -3
  190. package/dist/esm/FrappeImageView.mjs.map +1 -1
  191. package/dist/esm/FrappeImageView.native.js +9 -5
  192. package/dist/esm/FrappeImageView.native.js.map +1 -1
  193. package/dist/esm/FrappeKPICard.mjs +30 -4
  194. package/dist/esm/FrappeKPICard.mjs.map +1 -1
  195. package/dist/esm/FrappeKPICard.native.js +30 -4
  196. package/dist/esm/FrappeKPICard.native.js.map +1 -1
  197. package/dist/esm/FrappeKanban.mjs +16 -17
  198. package/dist/esm/FrappeKanban.mjs.map +1 -1
  199. package/dist/esm/FrappeKanban.native.js +18 -21
  200. package/dist/esm/FrappeKanban.native.js.map +1 -1
  201. package/dist/esm/FrappeLikedBy.mjs +1 -1
  202. package/dist/esm/FrappeLikedBy.mjs.map +1 -1
  203. package/dist/esm/FrappeLikedBy.native.js +1 -1
  204. package/dist/esm/FrappeLikedBy.native.js.map +1 -1
  205. package/dist/esm/FrappeList.mjs +2 -2
  206. package/dist/esm/FrappeList.mjs.map +1 -1
  207. package/dist/esm/FrappeList.native.js +2 -2
  208. package/dist/esm/FrappeList.native.js.map +1 -1
  209. package/dist/esm/FrappeListView.mjs +6 -6
  210. package/dist/esm/FrappeListView.mjs.map +1 -1
  211. package/dist/esm/FrappeListView.native.js +6 -6
  212. package/dist/esm/FrappeListView.native.js.map +1 -1
  213. package/dist/esm/FrappeProvider.mjs.map +1 -1
  214. package/dist/esm/FrappeProvider.native.js.map +1 -1
  215. package/dist/esm/FrappeReconnectIndicator.native.js.map +1 -1
  216. package/dist/esm/FrappeReportBuilder.mjs +2 -2
  217. package/dist/esm/FrappeReportBuilder.mjs.map +1 -1
  218. package/dist/esm/FrappeReportBuilder.native.js +2 -2
  219. package/dist/esm/FrappeReportBuilder.native.js.map +1 -1
  220. package/dist/esm/FrappeReportView.native.js.map +1 -1
  221. package/dist/esm/FrappeTable.mjs +36 -39
  222. package/dist/esm/FrappeTable.mjs.map +1 -1
  223. package/dist/esm/FrappeTable.native.js +39 -40
  224. package/dist/esm/FrappeTable.native.js.map +1 -1
  225. package/dist/esm/FrappeTreeView.mjs +89 -55
  226. package/dist/esm/FrappeTreeView.mjs.map +1 -1
  227. package/dist/esm/FrappeTreeView.native.js +133 -55
  228. package/dist/esm/FrappeTreeView.native.js.map +1 -1
  229. package/dist/esm/SyncErrorNotice.native.js.map +1 -1
  230. package/dist/esm/commentActions.mjs +1 -1
  231. package/dist/esm/commentActions.mjs.map +1 -1
  232. package/dist/esm/commentActions.native.js +1 -1
  233. package/dist/esm/commentActions.native.js.map +1 -1
  234. package/dist/esm/components/attachments.native.js.map +1 -1
  235. package/dist/esm/components/tags.native.js.map +1 -1
  236. package/dist/esm/components/timeline.mjs +1 -1
  237. package/dist/esm/components/timeline.mjs.map +1 -1
  238. package/dist/esm/components/timeline.native.js +1 -1
  239. package/dist/esm/components/timeline.native.js.map +1 -1
  240. package/dist/esm/dependsOn.native.js.map +1 -1
  241. package/dist/esm/desk/DeskFormPage.native.js.map +1 -1
  242. package/dist/esm/desk/DeskFormSidebar.native.js.map +1 -1
  243. package/dist/esm/desk/DeskListPage.native.js.map +1 -1
  244. package/dist/esm/desk/DeskShell.mjs +2 -0
  245. package/dist/esm/desk/DeskShell.mjs.map +1 -1
  246. package/dist/esm/desk/DeskShell.native.js +2 -0
  247. package/dist/esm/desk/DeskShell.native.js.map +1 -1
  248. package/dist/esm/desk/DeskSidebar.native.js.map +1 -1
  249. package/dist/esm/desk/awesomebar.mjs +1 -1
  250. package/dist/esm/desk/awesomebar.mjs.map +1 -1
  251. package/dist/esm/desk/awesomebar.native.js +1 -1
  252. package/dist/esm/desk/awesomebar.native.js.map +1 -1
  253. package/dist/esm/fieldOverrides.native.js.map +1 -1
  254. package/dist/esm/fieldRegistry.native.js.map +1 -1
  255. package/dist/esm/fields/Barcode/index.native.js.map +1 -1
  256. package/dist/esm/fields/Check/index.native.js.map +1 -1
  257. package/dist/esm/fields/CodeEditor/index.native.js.map +1 -1
  258. package/dist/esm/fields/Color/index.native.js.map +1 -1
  259. package/dist/esm/fields/Data/index.native.js.map +1 -1
  260. package/dist/esm/fields/Date/sheetKeyboard.native.js.map +1 -1
  261. package/dist/esm/fields/Date/types.native.js.map +1 -1
  262. package/dist/esm/fields/Date/wire.native.js.map +1 -1
  263. package/dist/esm/fields/DateRange/index.mjs +30 -2
  264. package/dist/esm/fields/DateRange/index.mjs.map +1 -1
  265. package/dist/esm/fields/DateRange/index.native.js +34 -2
  266. package/dist/esm/fields/DateRange/index.native.js.map +1 -1
  267. package/dist/esm/fields/Duration/index.native.js.map +1 -1
  268. package/dist/esm/fields/DynamicLink.native.js.map +1 -1
  269. package/dist/esm/fields/FileUpload.native.js.map +1 -1
  270. package/dist/esm/fields/FileUploadField/index.native.js.map +1 -1
  271. package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
  272. package/dist/esm/fields/HTML/index.native.js.map +1 -1
  273. package/dist/esm/fields/Heading/index.native.js.map +1 -1
  274. package/dist/esm/fields/Icon/index.native.js.map +1 -1
  275. package/dist/esm/fields/Link.native.js.map +1 -1
  276. package/dist/esm/fields/LinkTree.native.js.map +1 -1
  277. package/dist/esm/fields/LongText/index.native.js.map +1 -1
  278. package/dist/esm/fields/MentionInput/index.mjs +4 -1
  279. package/dist/esm/fields/MentionInput/index.mjs.map +1 -1
  280. package/dist/esm/fields/MentionInput/index.native.js +4 -1
  281. package/dist/esm/fields/MentionInput/index.native.js.map +1 -1
  282. package/dist/esm/fields/Numeric/index.native.js.map +1 -1
  283. package/dist/esm/fields/OTPInput/index.native.js.map +1 -1
  284. package/dist/esm/fields/Password/index.native.js.map +1 -1
  285. package/dist/esm/fields/Phone/index.native.js.map +1 -1
  286. package/dist/esm/fields/Progress/index.native.js.map +1 -1
  287. package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
  288. package/dist/esm/fields/Rating/index.native.js.map +1 -1
  289. package/dist/esm/fields/ReadOnly/index.native.js.map +1 -1
  290. package/dist/esm/fields/Select/index.native.js.map +1 -1
  291. package/dist/esm/fields/Signature/index.native.js.map +1 -1
  292. package/dist/esm/fields/Slider/index.native.js.map +1 -1
  293. package/dist/esm/fields/SmallText/index.native.js.map +1 -1
  294. package/dist/esm/fields/Switch/index.native.js.map +1 -1
  295. package/dist/esm/fields/TableMultiSelect.native.js.map +1 -1
  296. package/dist/esm/fields/TextEditor/types.native.js.map +1 -1
  297. package/dist/esm/fields/TimePicker/index.native.js.map +1 -1
  298. package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
  299. package/dist/esm/fields/shared/EditorPreviewPanes.native.js.map +1 -1
  300. package/dist/esm/filterFields.native.js.map +1 -1
  301. package/dist/esm/formEngine/createPrefill.native.js.map +1 -1
  302. package/dist/esm/formEngine/dirtyTracking.native.js.map +1 -1
  303. package/dist/esm/formEngine/doctypeMeta.native.js.map +1 -1
  304. package/dist/esm/formEngine/fetchFrom.native.js.map +1 -1
  305. package/dist/esm/formEngine/fieldPermissions.native.js.map +1 -1
  306. package/dist/esm/formEngine/formActions.native.js.map +1 -1
  307. package/dist/esm/formEngine/formLayout.native.js.map +1 -1
  308. package/dist/esm/formEngine/index.native.js.map +1 -1
  309. package/dist/esm/formEngine/useFormEngine.native.js.map +1 -1
  310. package/dist/esm/frappeEventColor.native.js.map +1 -1
  311. package/dist/esm/frappeStoryTarget.native.js.map +1 -1
  312. package/dist/esm/frappeUsers.native.js.map +1 -1
  313. package/dist/esm/index.mjs +2 -1
  314. package/dist/esm/index.mjs.map +1 -1
  315. package/dist/esm/index.native.js +2 -1
  316. package/dist/esm/index.native.js.map +1 -1
  317. package/dist/esm/liveErrors.native.js.map +1 -1
  318. package/dist/esm/resolveControl.native.js.map +1 -1
  319. package/dist/esm/schemaForm/SchemaWizard.native.js.map +1 -1
  320. package/dist/esm/schemaForm/applyFieldOrder.native.js.map +1 -1
  321. package/dist/esm/schemaForm/index.mjs +8 -7
  322. package/dist/esm/schemaForm/index.mjs.map +1 -1
  323. package/dist/esm/schemaForm/index.native.js +8 -7
  324. package/dist/esm/schemaForm/index.native.js.map +1 -1
  325. package/dist/esm/shared/devWarn.mjs +14 -0
  326. package/dist/esm/shared/devWarn.mjs.map +1 -0
  327. package/dist/esm/shared/devWarn.native.js +16 -0
  328. package/dist/esm/shared/devWarn.native.js.map +1 -0
  329. package/dist/esm/shared/useKeyboardInset.native.js.map +1 -1
  330. package/dist/esm/syncError.native.js.map +1 -1
  331. package/dist/esm/useFrappeAggregate.mjs +15 -8
  332. package/dist/esm/useFrappeAggregate.mjs.map +1 -1
  333. package/dist/esm/useFrappeAggregate.native.js +15 -9
  334. package/dist/esm/useFrappeAggregate.native.js.map +1 -1
  335. package/dist/esm/useFrappeFacets.mjs +10 -9
  336. package/dist/esm/useFrappeFacets.mjs.map +1 -1
  337. package/dist/esm/useFrappeFacets.native.js +10 -10
  338. package/dist/esm/useFrappeFacets.native.js.map +1 -1
  339. package/dist/esm/useFrappePagination.native.js.map +1 -1
  340. package/dist/esm/useFrappeRows.mjs +86 -0
  341. package/dist/esm/useFrappeRows.mjs.map +1 -0
  342. package/dist/esm/useFrappeRows.native.js +99 -0
  343. package/dist/esm/useFrappeRows.native.js.map +1 -0
  344. package/dist/jsx/FormSidebar.mjs +7 -7
  345. package/dist/jsx/FormSidebar.mjs.map +1 -1
  346. package/dist/jsx/FormSidebar.native.js +7 -7
  347. package/dist/jsx/FormSidebar.native.js.map +1 -1
  348. package/dist/jsx/FrappeCalendar.mjs +20 -17
  349. package/dist/jsx/FrappeCalendar.mjs.map +1 -1
  350. package/dist/jsx/FrappeCalendar.native.js +22 -21
  351. package/dist/jsx/FrappeCalendar.native.js.map +1 -1
  352. package/dist/jsx/FrappeChartCard.mjs +30 -4
  353. package/dist/jsx/FrappeChartCard.mjs.map +1 -1
  354. package/dist/jsx/FrappeChartCard.native.js +29 -3
  355. package/dist/jsx/FrappeChartCard.native.js.map +1 -1
  356. package/dist/jsx/FrappeForm.mjs +1 -1
  357. package/dist/jsx/FrappeForm.mjs.map +1 -1
  358. package/dist/jsx/FrappeForm.native.js +1 -1
  359. package/dist/jsx/FrappeForm.native.js.map +1 -1
  360. package/dist/jsx/FrappeGantt.mjs +27 -36
  361. package/dist/jsx/FrappeGantt.mjs.map +1 -1
  362. package/dist/jsx/FrappeGantt.native.js +27 -38
  363. package/dist/jsx/FrappeGantt.native.js.map +1 -1
  364. package/dist/jsx/FrappeImageView.mjs +5 -3
  365. package/dist/jsx/FrappeImageView.mjs.map +1 -1
  366. package/dist/jsx/FrappeImageView.native.js +8 -4
  367. package/dist/jsx/FrappeImageView.native.js.map +1 -1
  368. package/dist/jsx/FrappeKPICard.mjs +30 -4
  369. package/dist/jsx/FrappeKPICard.mjs.map +1 -1
  370. package/dist/jsx/FrappeKPICard.native.js +29 -3
  371. package/dist/jsx/FrappeKPICard.native.js.map +1 -1
  372. package/dist/jsx/FrappeKanban.mjs +16 -17
  373. package/dist/jsx/FrappeKanban.mjs.map +1 -1
  374. package/dist/jsx/FrappeKanban.native.js +18 -21
  375. package/dist/jsx/FrappeKanban.native.js.map +1 -1
  376. package/dist/jsx/FrappeLikedBy.mjs +1 -1
  377. package/dist/jsx/FrappeLikedBy.mjs.map +1 -1
  378. package/dist/jsx/FrappeLikedBy.native.js +1 -1
  379. package/dist/jsx/FrappeLikedBy.native.js.map +1 -1
  380. package/dist/jsx/FrappeList.mjs +2 -2
  381. package/dist/jsx/FrappeList.mjs.map +1 -1
  382. package/dist/jsx/FrappeList.native.js +2 -2
  383. package/dist/jsx/FrappeList.native.js.map +1 -1
  384. package/dist/jsx/FrappeListView.mjs +6 -6
  385. package/dist/jsx/FrappeListView.mjs.map +1 -1
  386. package/dist/jsx/FrappeListView.native.js +6 -6
  387. package/dist/jsx/FrappeListView.native.js.map +1 -1
  388. package/dist/jsx/FrappeProvider.mjs.map +1 -1
  389. package/dist/jsx/FrappeProvider.native.js.map +1 -1
  390. package/dist/jsx/FrappeReportBuilder.mjs +2 -2
  391. package/dist/jsx/FrappeReportBuilder.mjs.map +1 -1
  392. package/dist/jsx/FrappeReportBuilder.native.js +2 -2
  393. package/dist/jsx/FrappeReportBuilder.native.js.map +1 -1
  394. package/dist/jsx/FrappeTable.mjs +36 -39
  395. package/dist/jsx/FrappeTable.mjs.map +1 -1
  396. package/dist/jsx/FrappeTable.native.js +38 -39
  397. package/dist/jsx/FrappeTable.native.js.map +1 -1
  398. package/dist/jsx/FrappeTreeView.mjs +89 -55
  399. package/dist/jsx/FrappeTreeView.mjs.map +1 -1
  400. package/dist/jsx/FrappeTreeView.native.js +129 -50
  401. package/dist/jsx/FrappeTreeView.native.js.map +1 -1
  402. package/dist/jsx/commentActions.mjs +1 -1
  403. package/dist/jsx/commentActions.mjs.map +1 -1
  404. package/dist/jsx/commentActions.native.js +1 -1
  405. package/dist/jsx/commentActions.native.js.map +1 -1
  406. package/dist/jsx/components/timeline.mjs +1 -1
  407. package/dist/jsx/components/timeline.mjs.map +1 -1
  408. package/dist/jsx/components/timeline.native.js +1 -1
  409. package/dist/jsx/desk/DeskShell.mjs +2 -0
  410. package/dist/jsx/desk/DeskShell.mjs.map +1 -1
  411. package/dist/jsx/desk/DeskShell.native.js +2 -0
  412. package/dist/jsx/desk/DeskShell.native.js.map +1 -1
  413. package/dist/jsx/desk/awesomebar.mjs +1 -1
  414. package/dist/jsx/desk/awesomebar.mjs.map +1 -1
  415. package/dist/jsx/desk/awesomebar.native.js +1 -1
  416. package/dist/jsx/desk/awesomebar.native.js.map +1 -1
  417. package/dist/jsx/fields/DateRange/index.mjs +30 -2
  418. package/dist/jsx/fields/DateRange/index.mjs.map +1 -1
  419. package/dist/jsx/fields/DateRange/index.native.js +34 -2
  420. package/dist/jsx/fields/DateRange/index.native.js.map +1 -1
  421. package/dist/jsx/fields/MentionInput/index.mjs +4 -1
  422. package/dist/jsx/fields/MentionInput/index.mjs.map +1 -1
  423. package/dist/jsx/fields/MentionInput/index.native.js +4 -1
  424. package/dist/jsx/fields/MentionInput/index.native.js.map +1 -1
  425. package/dist/jsx/index.js +2 -1
  426. package/dist/jsx/index.js.map +1 -1
  427. package/dist/jsx/index.mjs +2 -1
  428. package/dist/jsx/index.mjs.map +1 -1
  429. package/dist/jsx/index.native.js +4 -0
  430. package/dist/jsx/index.native.js.map +1 -1
  431. package/dist/jsx/schemaForm/index.mjs +8 -7
  432. package/dist/jsx/schemaForm/index.mjs.map +1 -1
  433. package/dist/jsx/schemaForm/index.native.js +10 -9
  434. package/dist/jsx/schemaForm/index.native.js.map +1 -1
  435. package/dist/jsx/shared/devWarn.mjs +14 -0
  436. package/dist/jsx/shared/devWarn.mjs.map +1 -0
  437. package/dist/jsx/shared/devWarn.native.js +45 -0
  438. package/dist/jsx/shared/devWarn.native.js.map +1 -0
  439. package/dist/jsx/useFrappeAggregate.mjs +15 -8
  440. package/dist/jsx/useFrappeAggregate.mjs.map +1 -1
  441. package/dist/jsx/useFrappeAggregate.native.js +15 -9
  442. package/dist/jsx/useFrappeAggregate.native.js.map +1 -1
  443. package/dist/jsx/useFrappeFacets.mjs +10 -9
  444. package/dist/jsx/useFrappeFacets.mjs.map +1 -1
  445. package/dist/jsx/useFrappeFacets.native.js +10 -10
  446. package/dist/jsx/useFrappeFacets.native.js.map +1 -1
  447. package/dist/jsx/useFrappeRows.mjs +86 -0
  448. package/dist/jsx/useFrappeRows.mjs.map +1 -0
  449. package/dist/jsx/useFrappeRows.native.js +129 -0
  450. package/dist/jsx/useFrappeRows.native.js.map +1 -0
  451. package/package.json +17 -16
  452. package/src/FileBrowser/FileBrowser.spec.tsx +11 -1
  453. package/src/FormSidebar.tsx +7 -7
  454. package/src/FrappeCalendar.tsx +25 -22
  455. package/src/FrappeChartCard.spec.tsx +179 -0
  456. package/src/FrappeChartCard.tsx +55 -6
  457. package/src/FrappeForm.tsx +7 -3
  458. package/src/FrappeGantt.tsx +29 -39
  459. package/src/FrappeImageView.tsx +5 -3
  460. package/src/FrappeKPICard.spec.tsx +153 -0
  461. package/src/FrappeKPICard.tsx +52 -6
  462. package/src/FrappeKanban.tsx +24 -17
  463. package/src/FrappeLikedBy.tsx +1 -1
  464. package/src/FrappeList.tsx +3 -2
  465. package/src/FrappeListView.tsx +6 -6
  466. package/src/FrappeProvider.fixturesOnly.spec.tsx +129 -0
  467. package/src/FrappeProvider.tsx +16 -6
  468. package/src/FrappeReportBuilder.tsx +4 -2
  469. package/src/FrappeTable.autoHeight.spec.tsx +142 -0
  470. package/src/FrappeTable.rowAccumulator.spec.tsx +110 -0
  471. package/src/FrappeTable.tsx +75 -48
  472. package/src/FrappeTreeView.stories.tsx +59 -0
  473. package/src/FrappeTreeView.tsx +166 -56
  474. package/src/commentActions.ts +1 -1
  475. package/src/components/timeline.tsx +1 -1
  476. package/src/desk/DeskShell.tsx +2 -0
  477. package/src/desk/awesomebar.tsx +5 -2
  478. package/src/fields/CodeEditor/CodeEditor.spec.tsx +10 -9
  479. package/src/fields/Date/Date.spec.tsx +8 -1
  480. package/src/fields/Date/nativePresentation.spec.tsx +8 -1
  481. package/src/fields/Date/typeParity.spec.tsx +27 -10
  482. package/src/fields/DateRange/DateRange.spec.tsx +87 -15
  483. package/src/fields/DateRange/index.tsx +47 -3
  484. package/src/fields/Duration/Duration.spec.tsx +73 -0
  485. package/src/fields/MentionInput/MentionInput.spec.tsx +110 -0
  486. package/src/fields/MentionInput/index.tsx +4 -1
  487. package/src/fields/Password/index.tsx +1 -1
  488. package/src/fields/Progress/Progress.spec.tsx +9 -0
  489. package/src/fields/RadioGroup/RadioGroup.spec.tsx +93 -0
  490. package/src/fields/Signature/Signature.spec.tsx +105 -0
  491. package/src/fields/Slider/Slider.spec.tsx +73 -0
  492. package/src/fields/Switch/Switch.spec.tsx +65 -0
  493. package/src/fields/TextEditor/TextEditor.spec.tsx +2 -3
  494. package/src/fields/TextEditor/TextEditor.stories.tsx +31 -1
  495. package/src/fields/ToggleGroup/ToggleGroup.spec.tsx +110 -0
  496. package/src/frappeViews.designLaw.spec.ts +11 -7
  497. package/src/index.ts +13 -0
  498. package/src/schemaForm/index.tsx +6 -7
  499. package/src/shared/devWarn.ts +44 -0
  500. package/src/useFrappeAggregate.ts +17 -11
  501. package/src/useFrappeFacets.ts +17 -10
  502. package/src/useFrappeRows.spec.tsx +176 -0
  503. package/src/useFrappeRows.ts +293 -0
  504. package/types/FrappeCalendar.d.ts.map +1 -1
  505. package/types/FrappeChartCard.d.ts +17 -1
  506. package/types/FrappeChartCard.d.ts.map +1 -1
  507. package/types/FrappeForm.d.ts +6 -2
  508. package/types/FrappeForm.d.ts.map +1 -1
  509. package/types/FrappeGantt.d.ts.map +1 -1
  510. package/types/FrappeImageView.d.ts.map +1 -1
  511. package/types/FrappeKPICard.d.ts +14 -1
  512. package/types/FrappeKPICard.d.ts.map +1 -1
  513. package/types/FrappeKanban.d.ts.map +1 -1
  514. package/types/FrappeList.d.ts.map +1 -1
  515. package/types/FrappeProvider.d.ts +16 -6
  516. package/types/FrappeProvider.d.ts.map +1 -1
  517. package/types/FrappeReportBuilder.d.ts.map +1 -1
  518. package/types/FrappeTable.d.ts +20 -1
  519. package/types/FrappeTable.d.ts.map +1 -1
  520. package/types/FrappeTreeView.d.ts +38 -1
  521. package/types/FrappeTreeView.d.ts.map +1 -1
  522. package/types/desk/DeskShell.d.ts.map +1 -1
  523. package/types/desk/awesomebar.d.ts.map +1 -1
  524. package/types/fields/DateRange/index.d.ts.map +1 -1
  525. package/types/fields/MentionInput/index.d.ts.map +1 -1
  526. package/types/fields/Password/index.d.ts +1 -1
  527. package/types/fields/Password/index.d.ts.map +1 -1
  528. package/types/index.d.ts +1 -0
  529. package/types/index.d.ts.map +1 -1
  530. package/types/schemaForm/index.d.ts.map +1 -1
  531. package/types/shared/devWarn.d.ts +23 -0
  532. package/types/shared/devWarn.d.ts.map +1 -0
  533. package/types/useFrappeAggregate.d.ts +2 -1
  534. package/types/useFrappeAggregate.d.ts.map +1 -1
  535. package/types/useFrappeFacets.d.ts +2 -1
  536. package/types/useFrappeFacets.d.ts.map +1 -1
  537. package/types/useFrappeRows.d.ts +186 -0
  538. package/types/useFrappeRows.d.ts.map +1 -0
@@ -0,0 +1,176 @@
1
+ /**
2
+ * useFrappeRows — the composed doctype read (MPO-251).
3
+ *
4
+ * What this locks:
5
+ * 1. rows / isLoading / error come back from one hook, so a panel with no
6
+ * shipped component does not re-derive the read.
7
+ * 2. A 403 or an unreachable server surfaces as an ERROR, not as an empty
8
+ * result — the trap the copies each had to remember.
9
+ * 3. `limit` is defaulted by the hook (DEFAULT_FRAPPE_ROWS_LIMIT), with
10
+ * `limit: null` as the explicit bench-default opt-out FrappeTable takes.
11
+ * 4. Collection sharing is keyed on the options JSON: the same field list
12
+ * shares one collection, a different one does not.
13
+ *
14
+ * Fixture-hermetic: documents ride InMemoryFixtureProvider, so nothing
15
+ * dials a baseURL.
16
+ */
17
+
18
+ import { InMemoryFixtureProvider, useFrappeCollection } from "@multiplatform.one/frappe";
19
+ import { renderWithProviders } from "@multiplatform.one/test-utils";
20
+ import { cleanup, waitFor } from "@testing-library/react";
21
+ import { afterEach, describe, expect, it, vi } from "vitest";
22
+ import { FrappeProvider } from "./FrappeProvider";
23
+ import { DEFAULT_FRAPPE_ROWS_LIMIT, useFrappeConnection, useFrappeRows } from "./useFrappeRows";
24
+
25
+ afterEach(() => {
26
+ cleanup();
27
+ vi.restoreAllMocks();
28
+ });
29
+
30
+ interface Account {
31
+ name: string;
32
+ doctype: string;
33
+ account: string;
34
+ balance: string;
35
+ }
36
+
37
+ const accounts: Account[] = [
38
+ { name: "ACC-001", doctype: "Account", account: "Assets:Cash", balance: "10.00" },
39
+ { name: "ACC-002", doctype: "Account", account: "Assets:Bank", balance: "9.00" },
40
+ ];
41
+
42
+ const accountFields = ["name", "account", "balance"] as const;
43
+
44
+ function Harness({
45
+ onResult,
46
+ ...options
47
+ }: {
48
+ onResult: (result: ReturnType<typeof useFrappeRows<Account>>) => void;
49
+ } & Parameters<typeof useFrappeRows<Account>>[2]) {
50
+ const connection = useFrappeConnection();
51
+ const result = useFrappeRows<Account>(connection, "Account", options);
52
+ onResult(result);
53
+ return null;
54
+ }
55
+
56
+ function renderHarness(
57
+ options: Parameters<typeof useFrappeRows<Account>>[2] = {},
58
+ fixtures = new InMemoryFixtureProvider({ Account: accounts }),
59
+ ) {
60
+ const results: Array<ReturnType<typeof useFrappeRows<Account>>> = [];
61
+ const utils = renderWithProviders(
62
+ <FrappeProvider baseURL="https://userows.spec.test" fixtures={fixtures}>
63
+ <Harness onResult={(r) => results.push(r)} {...options} />
64
+ </FrappeProvider>,
65
+ );
66
+ return { results, last: () => results[results.length - 1]!, ...utils };
67
+ }
68
+
69
+ describe("useFrappeRows", () => {
70
+ it("reads a doctype into rows", async () => {
71
+ const { last } = renderHarness({ fields: accountFields });
72
+ await waitFor(() => expect(last().rows).toHaveLength(2));
73
+ expect(last().rows.map((r) => r.name)).toEqual(["ACC-001", "ACC-002"]);
74
+ expect(last().isLoading).toBe(false);
75
+ expect(last().error).toBeNull();
76
+ });
77
+
78
+ it("parks on enabled: false — no rows, not loading", () => {
79
+ const { last } = renderHarness({ fields: accountFields, enabled: false });
80
+ expect(last().rows).toEqual([]);
81
+ expect(last().isLoading).toBe(false);
82
+ expect(last().collection).toBeUndefined();
83
+ });
84
+
85
+ it("surfaces a permission rejection as an error rather than an empty result", async () => {
86
+ const fixtures = new InMemoryFixtureProvider({ Account: accounts });
87
+ vi.spyOn(fixtures, "getList").mockRejectedValue(
88
+ Object.assign(new Error("PermissionError"), { status: 403 }),
89
+ );
90
+ const { last } = renderHarness(
91
+ {
92
+ fields: accountFields,
93
+ messages: { permission: "No permission for Account", generic: "Error loading Account" },
94
+ },
95
+ fixtures,
96
+ );
97
+ await waitFor(() => expect(last().error).toBeInstanceOf(Error));
98
+ expect(last().error?.message).toContain("No permission for Account");
99
+ expect(last().rows).toEqual([]);
100
+ });
101
+
102
+ it("surfaces an unreachable server as an error rather than an empty result", async () => {
103
+ const fixtures = new InMemoryFixtureProvider({ Account: accounts });
104
+ vi.spyOn(fixtures, "getList").mockRejectedValue(new Error("Failed to fetch"));
105
+ const { last } = renderHarness(
106
+ {
107
+ fields: accountFields,
108
+ messages: { permission: "No permission for Account", generic: "Error loading Account" },
109
+ },
110
+ fixtures,
111
+ );
112
+ await waitFor(() => expect(last().error).toBeInstanceOf(Error));
113
+ expect(last().error?.message).toContain("Error loading Account");
114
+ });
115
+
116
+ it("defaults the limit rather than leaving it to the caller", () => {
117
+ // Two readers of the same doctype: one taking the default limit, one
118
+ // passing null (the bench-default opt-out). The options JSON is the
119
+ // collection cache key and `limit` is part of it, so a differing limit
120
+ // must produce a DIFFERENT collection.
121
+ const fixtures = new InMemoryFixtureProvider({ Account: accounts });
122
+ const seen: Array<unknown> = [];
123
+ function TwoReaders() {
124
+ const connection = useFrappeConnection();
125
+ const defaulted = useFrappeRows<Account>(connection, "Account", { fields: accountFields });
126
+ const benchDefault = useFrappeRows<Account>(connection, "Account", {
127
+ fields: accountFields,
128
+ limit: null,
129
+ });
130
+ const explicit = useFrappeRows<Account>(connection, "Account", {
131
+ fields: accountFields,
132
+ limit: DEFAULT_FRAPPE_ROWS_LIMIT,
133
+ });
134
+ seen.push([defaulted.collection, benchDefault.collection, explicit.collection]);
135
+ return null;
136
+ }
137
+ renderWithProviders(
138
+ <FrappeProvider baseURL="https://userows.spec.test" fixtures={fixtures}>
139
+ <TwoReaders />
140
+ </FrappeProvider>,
141
+ );
142
+ const [defaulted, benchDefault, explicit] = seen[seen.length - 1] as unknown[];
143
+ expect(defaulted).toBeDefined();
144
+ expect(defaulted, "omitting limit is the same query as passing the default").toBe(explicit);
145
+ expect(benchDefault, "limit: null is a different query — no limit at all").not.toBe(defaulted);
146
+ });
147
+
148
+ it("shares one collection with an identical field list and splits on a different one", () => {
149
+ const fixtures = new InMemoryFixtureProvider({ Account: accounts });
150
+ const seen: Array<unknown[]> = [];
151
+ function ThreeReaders() {
152
+ const connection = useFrappeConnection();
153
+ const a = useFrappeRows<Account>(connection, "Account", { fields: accountFields });
154
+ const b = useFrappeRows<Account>(connection, "Account", {
155
+ fields: ["name", "account", "balance"],
156
+ });
157
+ const c = useFrappeRows<Account>(connection, "Account", { fields: ["name", "account"] });
158
+ seen.push([a.collection, b.collection, c.collection]);
159
+ return null;
160
+ }
161
+ renderWithProviders(
162
+ <FrappeProvider baseURL="https://userows.spec.test" fixtures={fixtures}>
163
+ <ThreeReaders />
164
+ </FrappeProvider>,
165
+ );
166
+ const [a, b, c] = seen[seen.length - 1]!;
167
+ expect(a, "same field list shares one collection").toBe(b);
168
+ expect(c, "a field list short by one entry does NOT share").not.toBe(a);
169
+ });
170
+
171
+ it("is the same primitive FrappeTable's read was built on", () => {
172
+ // Guardrail against the hook drifting away from useFrappeCollection —
173
+ // the point of MPO-251 is ONE implementation, not a second one.
174
+ expect(typeof useFrappeCollection).toBe("function");
175
+ });
176
+ });
@@ -0,0 +1,293 @@
1
+ /**
2
+ * useFrappeRows — the composed doctype READ, exported (MPO-251).
3
+ *
4
+ * frappe-ui already re-exports the primitives underneath every live view
5
+ * (`useFrappeCollection`, `useLiveQuery`, `useFrappeConfig`). What it did not
6
+ * export was the ten lines that turn them into rows, so a consumer whose
7
+ * panel shape has no shipped component (a balance tree with colon paths, a
8
+ * register that folds a running balance before pagination, a per-currency
9
+ * exact sum) copied the read out of FrappeTable and owned it forever. This
10
+ * is that read, factored out, with the three things the copies had to get
11
+ * right owned here instead:
12
+ *
13
+ * 1. ERROR PLUMBING. Without `onSyncError` wired through, a 403 or a dead
14
+ * server renders as an EMPTY panel with no error anywhere — success and
15
+ * total failure look identical. `error` here carries the surfaced sync
16
+ * failure, normalized through {@link toLiveLoadError} so a permission
17
+ * rejection reads differently from a network failure. Pass `messages` to
18
+ * keep i18n ownership in the calling component.
19
+ *
20
+ * 2. THE LIMIT. A live bench sends no `limit_page_length` when the
21
+ * subscription carries no limit, and clamps the page to 20 rows
22
+ * (frappe `sync/subscriptionManager.ts`); a fixture provider slices only
23
+ * when asked, so the truncation shows on serve and never in a story.
24
+ * `limit` therefore defaults to {@link DEFAULT_FRAPPE_ROWS_LIMIT} rather
25
+ * than being left to each caller. `limit: null` is the explicit opt-out
26
+ * for a caller that genuinely wants the bench default — FrappeTable
27
+ * passes it so its own row count does not move under existing consumers.
28
+ *
29
+ * 3. COLLECTION SHARING. `useFrappeCollection` keys its cache on the JSON of
30
+ * the options (doctype + fields + filters + orderBy + limit + id), so two
31
+ * hooks reading the same doctype with the SAME field list share one
32
+ * collection and one subscription — and two hooks whose field lists
33
+ * differ by a single entry do NOT. Pin one field list per doctype in a
34
+ * module constant and reuse it. `onSyncError` is deliberately NOT part of
35
+ * that key, so passing a different error handler never splits a
36
+ * collection.
37
+ *
38
+ * The shipped components read through this hook — FrappeTable, FrappeList's
39
+ * table mode, FrappeTreeView, FrappeKanban, FrappeCalendar and FrappeGantt —
40
+ * so there is ONE implementation of the read rather than a reference one and
41
+ * N copies.
42
+ *
43
+ * @example
44
+ * ```tsx
45
+ * const accountFields = ["name", "account", "balance"] as const;
46
+ *
47
+ * function Balances() {
48
+ * const connection = useFrappeConnection();
49
+ * const { rows, isLoading, error } = useFrappeRows<Account>(connection, "Account", {
50
+ * fields: accountFields,
51
+ * limit: 500,
52
+ * });
53
+ * if (error) return <ErrorNotice error={error} />;
54
+ * if (isLoading) return <Spinner />;
55
+ * return rows.map((account) => <BalanceRow key={account.name} account={account} />);
56
+ * }
57
+ * ```
58
+ */
59
+
60
+ import {
61
+ useFrappeCollection,
62
+ useLiveQuery,
63
+ type Order,
64
+ type FixtureProvider,
65
+ } from "@multiplatform.one/frappe";
66
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
67
+ import { useFrappeConfig } from "./FrappeProvider";
68
+ import { toLiveLoadError } from "./liveErrors";
69
+
70
+ /**
71
+ * Rows returned when the caller passes no `limit`.
72
+ *
73
+ * Not a tuned number — it exists so a missing limit truncates at a value
74
+ * that is written down rather than at the bench's silent 20. A panel that
75
+ * knows its own ceiling should pass one.
76
+ */
77
+ export const DEFAULT_FRAPPE_ROWS_LIMIT = 100;
78
+
79
+ /**
80
+ * Connection shape the live-wired frappe-ui surfaces hand to
81
+ * @multiplatform.one/frappe — the FrappeProvider config narrowed to the
82
+ * fields the collection layer reads. Same shape
83
+ * {@link FrappeAggregateConnection} uses.
84
+ */
85
+ export interface FrappeRowsConnection {
86
+ /** Required unless `fixtures` is set (see FrappeConfig.baseURL). */
87
+ baseURL?: string;
88
+ socketPort?: number;
89
+ /** Same-origin socket override (see FrappeConfig.socketBaseURL). */
90
+ socketBaseURL?: string;
91
+ /** Frappe site name — the realtime Socket.IO namespace. */
92
+ siteName?: string;
93
+ auth?: {
94
+ useToken?: boolean;
95
+ token?: string | (() => string | Promise<string>);
96
+ type?: string;
97
+ };
98
+ syncOptions?: any;
99
+ fixtures?: FixtureProvider;
100
+ }
101
+
102
+ /** User-facing sentences for the failure kinds, so i18n stays with the caller. */
103
+ export interface FrappeRowsMessages {
104
+ /** Lead sentence when the server rejected the read (403 / PermissionError). */
105
+ permission: string;
106
+ /** Lead sentence for every other initial-sync failure. */
107
+ generic: string;
108
+ /**
109
+ * Message when the live query itself reports a failure that carries no
110
+ * detail of its own. Defaults to `generic`.
111
+ */
112
+ queryFailed?: string;
113
+ }
114
+
115
+ export interface UseFrappeRowsOptions<TDoc> {
116
+ /** Fields to fetch. Pin ONE list per doctype so readers share a collection. */
117
+ fields?: readonly (keyof TDoc & string)[];
118
+ filters?: Partial<TDoc> | Array<[keyof TDoc & string, string, any]>;
119
+ orderBy?: Array<{ field: keyof TDoc & string; order: Order }>;
120
+ /**
121
+ * Row ceiling for the subscription. Defaults to
122
+ * {@link DEFAULT_FRAPPE_ROWS_LIMIT}; pass `null` to send no limit and take
123
+ * the bench's own page length (20 on a stock site) — the legacy behavior,
124
+ * and an explicit choice rather than an omission.
125
+ */
126
+ limit?: number | null;
127
+ /** False parks the hook: no collection, no rows, not loading. */
128
+ enabled?: boolean;
129
+ /** Sentences for the surfaced error. Defaults are untranslated English. */
130
+ messages?: FrappeRowsMessages;
131
+ /**
132
+ * Full override of the sync-failure → Error mapping, for a component whose
133
+ * error copy predates {@link toLiveLoadError}'s "lead: detail" shape. Wins
134
+ * over `messages` on the sync path; `messages.queryFailed` still names the
135
+ * detail-less live-query failure.
136
+ */
137
+ mapError?: (err: unknown) => Error;
138
+ }
139
+
140
+ export interface UseFrappeRowsResult<TDoc> {
141
+ /** Rows currently in the collection ([] before the first sync). */
142
+ rows: TDoc[];
143
+ /**
144
+ * The initial-sync failure alone (403, network, bad doctype) — the one
145
+ * that carries an actionable message. Null when the only signal is the
146
+ * live query's detail-less `isError`.
147
+ */
148
+ syncError: Error | null;
149
+ /** First load in flight — no rows to show yet. */
150
+ isLoading: boolean;
151
+ /**
152
+ * The live query's own loading flag, untouched by `enabled`. Components
153
+ * that hold last-good rows across a collection swap read this rather than
154
+ * `isLoading`.
155
+ */
156
+ isQueryLoading: boolean;
157
+ /** The live query reported a failure (no message available). */
158
+ isError: boolean;
159
+ /** Surfaced failure — sync error first, live-query failure second. */
160
+ error: Error | null;
161
+ /**
162
+ * The underlying collection. `undefined` while parked, during SSR, or
163
+ * before the sync module exists. Identity changes when the query changes,
164
+ * which is the dependency to reset per-query state on.
165
+ */
166
+ collection: ReturnType<typeof useFrappeCollection<any>>;
167
+ }
168
+
169
+ const defaultMessages: FrappeRowsMessages = {
170
+ permission: "You do not have permission to view this document type",
171
+ generic: "Failed to load",
172
+ };
173
+
174
+ /**
175
+ * Read a Frappe doctype into rows: collection + live query + honest error
176
+ * state, in one hook.
177
+ *
178
+ * @typeParam TDoc - The document type (needs `name` and `doctype`)
179
+ * @param connection - Connection config; `undefined` parks the hook
180
+ * @param doctype - The doctype to read (`""` parks the hook)
181
+ * @param options - Fields, filters, ordering, limit, enabled, messages
182
+ */
183
+ export function useFrappeRows<TDoc extends { name: string; doctype: string }>(
184
+ connection: FrappeRowsConnection | undefined,
185
+ doctype: string,
186
+ options: UseFrappeRowsOptions<TDoc> = {},
187
+ ): UseFrappeRowsResult<TDoc> {
188
+ const { fields, filters, orderBy, limit, enabled = true, messages, mapError } = options;
189
+ const active = enabled && !!connection && !!doctype;
190
+
191
+ const permissionMessage = messages?.permission ?? defaultMessages.permission;
192
+ const genericMessage = messages?.generic ?? defaultMessages.generic;
193
+ const queryFailedMessage = messages?.queryFailed ?? genericMessage;
194
+
195
+ // Honest error surface: the collection swallows initial-sync failures
196
+ // (renders as empty otherwise); onSyncError turns 403/PermissionError and
197
+ // network failures into a visible error state.
198
+ const [syncError, setSyncError] = useState<Error | null>(null);
199
+ const mapErrorRef = useRef(mapError);
200
+ mapErrorRef.current = mapError;
201
+ const handleSyncError = useCallback(
202
+ (err: unknown) => {
203
+ setSyncError(
204
+ mapErrorRef.current
205
+ ? mapErrorRef.current(err)
206
+ : toLiveLoadError(err, { permissionMessage, genericMessage }),
207
+ );
208
+ },
209
+ [permissionMessage, genericMessage],
210
+ );
211
+
212
+ // `null` opts out of a limit entirely; `undefined` takes the documented
213
+ // default so a missing limit cannot silently clamp to the bench's 20.
214
+ const resolvedLimit = limit === null ? undefined : (limit ?? DEFAULT_FRAPPE_ROWS_LIMIT);
215
+
216
+ const collectionOptions = useMemo(
217
+ () => ({
218
+ fields,
219
+ filters,
220
+ orderBy,
221
+ ...(resolvedLimit !== undefined ? { limit: resolvedLimit } : {}),
222
+ onSyncError: handleSyncError,
223
+ }),
224
+ [fields, filters, orderBy, resolvedLimit, handleSyncError],
225
+ );
226
+
227
+ const collection = useFrappeCollection<TDoc>(
228
+ active ? (connection as any) : undefined,
229
+ active ? doctype : "",
230
+ collectionOptions as any,
231
+ );
232
+
233
+ // A new collection (doctype / filter / field change) starts clean.
234
+ useEffect(() => {
235
+ setSyncError(null);
236
+ }, [collection]);
237
+
238
+ const {
239
+ data: rawData,
240
+ isLoading: isQueryLoading,
241
+ isError,
242
+ } = useLiveQuery((q) => (collection ? q.from({ _list: collection }) : null), [collection]);
243
+
244
+ const rows = useMemo(() => (rawData as TDoc[] | undefined) ?? [], [rawData]);
245
+
246
+ const error = useMemo(
247
+ () => syncError ?? (isError ? new Error(queryFailedMessage) : null),
248
+ [syncError, isError, queryFailedMessage],
249
+ );
250
+
251
+ return {
252
+ rows,
253
+ syncError,
254
+ isLoading: active && (!collection || isQueryLoading),
255
+ isQueryLoading,
256
+ isError,
257
+ error,
258
+ collection,
259
+ };
260
+ }
261
+
262
+ /**
263
+ * The FrappeProvider config narrowed to a {@link FrappeRowsConnection}, with
264
+ * per-call overrides for the components that accept `baseURL` / `auth` /
265
+ * `syncOptions` props of their own.
266
+ *
267
+ * Returns `undefined` only when neither a baseURL nor a fixture corpus is
268
+ * configured — with nothing to read from, the collection layer cannot be
269
+ * built. Fixtures alone are enough: nothing dials a server in fixture mode.
270
+ * Callers that require a connection should throw with their own component
271
+ * name so the message names the missing provider.
272
+ */
273
+ export function useFrappeConnection(overrides?: {
274
+ baseURL?: string;
275
+ auth?: FrappeRowsConnection["auth"];
276
+ syncOptions?: any;
277
+ }): FrappeRowsConnection | undefined {
278
+ const config = useFrappeConfig();
279
+ const baseURL = overrides?.baseURL ?? config?.baseURL;
280
+ const auth = overrides?.auth ?? config?.auth;
281
+ const syncOptions = overrides?.syncOptions ?? config?.syncOptions;
282
+ const socketPort = config?.socketPort;
283
+ const siteName = config?.siteName;
284
+ const socketBaseURL = config?.socketBaseURL;
285
+ const fixtures = config?.fixtures;
286
+ return useMemo(
287
+ () =>
288
+ baseURL || fixtures
289
+ ? { baseURL, socketPort, siteName, socketBaseURL, auth, syncOptions, fixtures }
290
+ : undefined,
291
+ [baseURL, socketPort, siteName, socketBaseURL, auth, syncOptions, fixtures],
292
+ );
293
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"FrappeCalendar.d.ts","sourceRoot":"","sources":["../src/FrappeCalendar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FrappeCalendar.d.ts","sourceRoot":"","sources":["../src/FrappeCalendar.tsx"],"names":[],"mappings":"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"}
@@ -15,6 +15,14 @@
15
15
  * (permission failures called out), catalog empty state when the aggregate
16
16
  * returns no groups, and a subtle stale dim while a post-event refetch is
17
17
  * in flight.
18
+ *
19
+ * A `dataSource` with no data source in scope — no `baseURL` from the prop
20
+ * or a FrappeProvider, and no fixture corpus either — is a misconfiguration,
21
+ * not static mode: the caller asked for a computed series and there is
22
+ * nowhere to compute it. The card renders the not-configured surface and
23
+ * warns in dev. It never falls back to `config.data`, which would present
24
+ * an uncomputed shape as the series. A fixture corpus answers every read
25
+ * locally, so it stands in for a baseURL (MPO-228).
18
26
  */
19
27
  import { type ChartCardProps, type ChartConfig } from "@multiplatform.one/components";
20
28
  import { type FrappeAggregateOperation } from "./useFrappeAggregate";
@@ -34,12 +42,20 @@ export interface FrappeChartDataSource {
34
42
  formatLabel?: (label: string) => string;
35
43
  }
36
44
  export interface FrappeChartCardProps extends Omit<ChartCardProps, "config"> {
37
- /** Chart chrome (title, type, height…). In live mode `data` is overridden. */
45
+ /**
46
+ * Chart chrome (title, type, height…). In live mode `data` is overridden.
47
+ * With a `dataSource` and no data source in scope, `data` is not rendered
48
+ * at all.
49
+ */
38
50
  config: Omit<ChartConfig, "data"> & {
39
51
  data?: ChartConfig["data"];
40
52
  };
41
53
  /** When set, the chart series goes live against this doctype. */
42
54
  dataSource?: FrappeChartDataSource;
55
+ /**
56
+ * Falls back to the FrappeProvider's. Required whenever `dataSource` is
57
+ * set, unless the provider carries a fixture corpus.
58
+ */
43
59
  baseURL?: string;
44
60
  auth?: {
45
61
  useToken?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"FrappeChartCard.d.ts","sourceRoot":"","sources":["../src/FrappeChartCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAOvC,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAE9B,qEAAqE;AACrE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC;IAC1E,8EAA8E;IAC9E,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IACnE,iEAAiE;IACjE,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAuBD,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,UAAU,EACV,OAAO,EACP,IAAI,EACJ,WAAW,EACX,GAAG,cAAc,EAClB,EAAE,oBAAoB,2CA2FtB;AAED,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"FrappeChartCard.d.ts","sourceRoot":"","sources":["../src/FrappeChartCard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAE9B,qEAAqE;AACrE,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAED,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC;IAC1E;;;;OAIG;IACH,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IACnE,iEAAiE;IACjE,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAuBD,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,UAAU,EACV,OAAO,EACP,IAAI,EACJ,WAAW,EACX,GAAG,cAAc,EAClB,EAAE,oBAAoB,2CA2HtB;AAED,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC"}
@@ -81,8 +81,12 @@ export interface AssignmentTodoRow {
81
81
  reference_type?: string;
82
82
  reference_name?: string;
83
83
  }
84
- /** Resolves a Frappe file field value (e.g. `/files/x.png`) to a full URL. */
85
- export declare function resolveFileUrl(value: unknown, baseURL: string): string | undefined;
84
+ /**
85
+ * Resolves a Frappe file field value (e.g. `/files/x.png`) to a full URL.
86
+ * A site-relative path needs a server to hang off, so it resolves to nothing
87
+ * on a fixtures-only host (no baseURL); absolute URLs still pass through.
88
+ */
89
+ export declare function resolveFileUrl(value: unknown, baseURL: string | undefined): string | undefined;
86
90
  /**
87
91
  * Builds the live sidebar sections (assignments from the open assignment
88
92
  * ToDos, shares from the DocShare live query). Both inputs come from live
@@ -1 +1 @@
1
- {"version":3,"file":"FrappeForm.d.ts","sourceRoot":"","sources":["../src/FrappeForm.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FrappeForm.d.ts","sourceRoot":"","sources":["../src/FrappeForm.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FrappeGantt.d.ts","sourceRoot":"","sources":["../src/FrappeGantt.tsx"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,+BAA+B,CAAC;AACvC,OAAc,EAAkC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAczD,MAAM,WAAW,gBAAgB,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAE,SAAQ,IAAI,CAC5F,WAAW,EACX,UAAU,CACX;IACC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACpE,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACjC,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACjC,8GAA8G;IAC9G,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACjC,2CAA2C;IAC3C,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC3C;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,iEAAiE;IACjE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACvB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAaD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EAC1E,OAAO,EACP,IAAI,EACJ,WAAW,EACX,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAoD,EACpD,QAAgD,EAChD,UAA6C,EAC7C,UAAU,EACV,IAAa,EACb,WAAW,EACX,UAAU,EACV,cAAc,EACd,OAAO,EACP,KAAK,EACL,MAAM,EACN,SAAgB,EAChB,cAAqB,EACrB,gBAAuB,EACvB,cAAkB,EAClB,WAAW,EACX,GAAG,UAAU,EACd,EAAE,gBAAgB,CAAC,IAAI,CAAC,2CAsLxB"}
1
+ {"version":3,"file":"FrappeGantt.d.ts","sourceRoot":"","sources":["../src/FrappeGantt.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,+BAA+B,CAAC;AACvC,OAAc,EAAkC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAcnD,MAAM,WAAW,gBAAgB,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAE,SAAQ,IAAI,CAC5F,WAAW,EACX,UAAU,CACX;IACC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACpE,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACjC,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACjC,8GAA8G;IAC9G,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACjC,2CAA2C;IAC3C,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC3C;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,gFAAgF;IAChF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,iEAAiE;IACjE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACvB,WAAW,CAAC,EAAE,IAAI,CAAC;CACpB;AAaD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EAC1E,OAAO,EACP,IAAI,EACJ,WAAW,EACX,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAoD,EACpD,QAAgD,EAChD,UAA6C,EAC7C,UAAU,EACV,IAAa,EACb,WAAW,EACX,UAAU,EACV,cAAc,EACd,OAAO,EACP,KAAK,EACL,MAAM,EACN,SAAgB,EAChB,cAAqB,EACrB,gBAAuB,EACvB,cAAkB,EAClB,WAAW,EACX,GAAG,UAAU,EACd,EAAE,gBAAgB,CAAC,IAAI,CAAC,2CA4KxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"FrappeImageView.d.ts","sourceRoot":"","sources":["../src/FrappeImageView.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAgChE,MAAM,WAAW,oBAAoB,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAE,SAAQ,IAAI,CAChG,WAAW,EACX,UAAU,CACX;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5E,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,2CAqElC"}
1
+ {"version":3,"file":"FrappeImageView.d.ts","sourceRoot":"","sources":["../src/FrappeImageView.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAgC1E,MAAM,WAAW,oBAAoB,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAE,SAAQ,IAAI,CAChG,WAAW,EACX,UAAU,CACX;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAC5E,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,2CAqElC"}
@@ -11,6 +11,14 @@
11
11
  * (permission failures called out explicitly), a subtle stale affordance
12
12
  * (the card dims while a post-event refetch is in flight), and "—" when the
13
13
  * aggregate has no result (e.g. avg over an empty set).
14
+ *
15
+ * A `dataSource` with no data source in scope — no `baseURL` from the prop
16
+ * or a FrappeProvider, and no fixture corpus either — is a misconfiguration,
17
+ * not static mode: the caller asked for a computed figure and there is
18
+ * nowhere to compute it. The card renders the not-configured surface and
19
+ * warns in dev. It never falls back to `config.value`, which would present
20
+ * an uncomputed number as the KPI. A fixture corpus answers every read
21
+ * locally, so it stands in for a baseURL (MPO-228).
14
22
  */
15
23
  import { type KPICardConfig } from "@multiplatform.one/components";
16
24
  import { type YStackProps } from "tamagui";
@@ -29,11 +37,16 @@ export interface FrappeKPIDataSource {
29
37
  export interface FrappeKPICardProps extends Omit<YStackProps, "children"> {
30
38
  /**
31
39
  * KPI chrome (title, format, trend, icon…). In live mode `value` is
32
- * overridden by the aggregate; in static mode it renders as-is.
40
+ * overridden by the aggregate; in static mode it renders as-is. With a
41
+ * `dataSource` and no `baseURL`, `value` is not rendered at all.
33
42
  */
34
43
  config: KPICardConfig;
35
44
  /** When set, the card's value goes live against this doctype. */
36
45
  dataSource?: FrappeKPIDataSource;
46
+ /**
47
+ * Falls back to the FrappeProvider's. Required whenever `dataSource` is
48
+ * set, unless the provider carries a fixture corpus.
49
+ */
37
50
  baseURL?: string;
38
51
  auth?: {
39
52
  useToken?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"FrappeKPICard.d.ts","sourceRoot":"","sources":["../src/FrappeKPICard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAE9B,wCAAwC;AACxC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;IACvE;;;OAGG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB,iEAAiE;IACjE,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAcD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,UAAU,EACV,OAAO,EACP,IAAI,EACJ,WAAW,EACX,GAAG,UAAU,EACd,EAAE,kBAAkB,2CAkEpB;AAED,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"FrappeKPICard.d.ts","sourceRoot":"","sources":["../src/FrappeKPICard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,OAAO,EAGL,KAAK,wBAAwB,EAC9B,MAAM,sBAAsB,CAAC;AAE9B,wCAAwC;AACxC,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;IACvE;;;;OAIG;IACH,MAAM,EAAE,aAAa,CAAC;IACtB,iEAAiE;IACjE,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAcD,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,UAAU,EACV,OAAO,EACP,IAAI,EACJ,WAAW,EACX,GAAG,UAAU,EACd,EAAE,kBAAkB,2CAkGpB;AAED,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FrappeKanban.d.ts","sourceRoot":"","sources":["../src/FrappeKanban.tsx"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAyC,MAAM,OAAO,CAAC;AAS9D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,IAAI,IAAI,CACrC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EACnB,cAAc,EAAE,KAAK,CAAC,SAAS,KAC5B,KAAK,CAAC,SAAS,CAAC;AAErB,MAAM,WAAW,iBAAiB,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAE,SAAQ,IAAI,CAC7F,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAC1B,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,CAClD;IACC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACpE,WAAW,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC5C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9F,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;CAC3C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3E,OAAO,EACP,IAAI,EACJ,WAAW,EACX,OAAO,EACP,MAAM,EACN,OAAO,EACP,WAAW,EACX,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,UAAU,EACV,QAAgB,EAChB,kBAA0B,EAC1B,YAAY,EACZ,OAAO,EACP,KAAK,EACL,mBAAmB,EACnB,GAAG,WAAW,EACf,EAAE,iBAAiB,CAAC,IAAI,CAAC,2CAqPzB"}
1
+ {"version":3,"file":"FrappeKanban.d.ts","sourceRoot":"","sources":["../src/FrappeKanban.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAyC,MAAM,OAAO,CAAC;AAU9D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,IAAI,IAAI,CACrC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EACnB,cAAc,EAAE,KAAK,CAAC,SAAS,KAC5B,KAAK,CAAC,SAAS,CAAC;AAErB,MAAM,WAAW,iBAAiB,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAE,SAAQ,IAAI,CAC7F,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAC1B,SAAS,GAAG,YAAY,GAAG,YAAY,GAAG,OAAO,CAClD;IACC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACpE,WAAW,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACjC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;IACvC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACtD,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC5C,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9F,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;CAC3C;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EAC3E,OAAO,EACP,IAAI,EACJ,WAAW,EACX,OAAO,EACP,MAAM,EACN,OAAO,EACP,WAAW,EACX,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,UAAU,EACV,QAAgB,EAChB,kBAA0B,EAC1B,YAAY,EACZ,OAAO,EACP,KAAK,EACL,mBAAmB,EACnB,GAAG,WAAW,EACf,EAAE,iBAAiB,CAAC,IAAI,CAAC,2CA4PzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"FrappeList.d.ts","sourceRoot":"","sources":["../src/FrappeList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAEpF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,MAAM,WAAW,eAAe,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAE,SAAQ,IAAI,CAC3F,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EACxB,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,CAClD;IACC,4CAA4C;IAC5C,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACpE,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EACzE,OAAO,EACP,IAAI,EACJ,WAAW,EACX,OAAO,EACP,MAAM,EACN,OAAO,EACP,QAAQ,EACR,UAAU,EACV,GAAG,SAAS,EACb,EAAE,eAAe,CAAC,IAAI,CAAC,2CAkFvB"}
1
+ {"version":3,"file":"FrappeList.d.ts","sourceRoot":"","sources":["../src/FrappeList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAEpF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,MAAM,WAAW,eAAe,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAE,SAAQ,IAAI,CAC3F,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EACxB,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,CAClD;IACC,4CAA4C;IAC5C,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,IAAI,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IACpE,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,EACzE,OAAO,EACP,IAAI,EACJ,WAAW,EACX,OAAO,EACP,MAAM,EACN,OAAO,EACP,QAAQ,EACR,UAAU,EACV,GAAG,SAAS,EACb,EAAE,eAAe,CAAC,IAAI,CAAC,2CAmFvB"}