@multiplatform.one/frappe-ui 6.0.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 (883) hide show
  1. package/LICENSE +201 -0
  2. package/dist/cjs/FormSidebar.cjs +178 -0
  3. package/dist/cjs/FormSidebar.native.js +194 -0
  4. package/dist/cjs/FormSidebar.native.js.map +1 -0
  5. package/dist/cjs/FrappeCalendar.cjs +174 -0
  6. package/dist/cjs/FrappeCalendar.native.js +203 -0
  7. package/dist/cjs/FrappeCalendar.native.js.map +1 -0
  8. package/dist/cjs/FrappeCalendar.stories.cjs +252 -0
  9. package/dist/cjs/FrappeCalendar.stories.native.js +271 -0
  10. package/dist/cjs/FrappeCalendar.stories.native.js.map +1 -0
  11. package/dist/cjs/FrappeDashboard.cjs +163 -0
  12. package/dist/cjs/FrappeDashboard.native.js +190 -0
  13. package/dist/cjs/FrappeDashboard.native.js.map +1 -0
  14. package/dist/cjs/FrappeDashboard.stories.cjs +231 -0
  15. package/dist/cjs/FrappeDashboard.stories.native.js +240 -0
  16. package/dist/cjs/FrappeDashboard.stories.native.js.map +1 -0
  17. package/dist/cjs/FrappeForm.cjs +410 -0
  18. package/dist/cjs/FrappeForm.native.js +471 -0
  19. package/dist/cjs/FrappeForm.native.js.map +1 -0
  20. package/dist/cjs/FrappeForm.stories.cjs +254 -0
  21. package/dist/cjs/FrappeForm.stories.native.js +304 -0
  22. package/dist/cjs/FrappeForm.stories.native.js.map +1 -0
  23. package/dist/cjs/FrappeImageView.cjs +301 -0
  24. package/dist/cjs/FrappeImageView.native.js +332 -0
  25. package/dist/cjs/FrappeImageView.native.js.map +1 -0
  26. package/dist/cjs/FrappeKanban.cjs +147 -0
  27. package/dist/cjs/FrappeKanban.native.js +206 -0
  28. package/dist/cjs/FrappeKanban.native.js.map +1 -0
  29. package/dist/cjs/FrappeKanban.stories.cjs +220 -0
  30. package/dist/cjs/FrappeKanban.stories.native.js +229 -0
  31. package/dist/cjs/FrappeKanban.stories.native.js.map +1 -0
  32. package/dist/cjs/FrappeList.cjs +81 -0
  33. package/dist/cjs/FrappeList.native.js +85 -0
  34. package/dist/cjs/FrappeList.native.js.map +1 -0
  35. package/dist/cjs/FrappeList.stories.cjs +245 -0
  36. package/dist/cjs/FrappeList.stories.native.js +262 -0
  37. package/dist/cjs/FrappeList.stories.native.js.map +1 -0
  38. package/dist/cjs/FrappeListView.cjs +363 -0
  39. package/dist/cjs/FrappeListView.native.js +402 -0
  40. package/dist/cjs/FrappeListView.native.js.map +1 -0
  41. package/dist/cjs/FrappeProvider.cjs +69 -0
  42. package/dist/cjs/FrappeProvider.native.js +75 -0
  43. package/dist/cjs/FrappeProvider.native.js.map +1 -0
  44. package/dist/cjs/FrappeReportBuilder.cjs +351 -0
  45. package/dist/cjs/FrappeReportBuilder.native.js +415 -0
  46. package/dist/cjs/FrappeReportBuilder.native.js.map +1 -0
  47. package/dist/cjs/FrappeTable.cjs +328 -0
  48. package/dist/cjs/FrappeTable.native.js +403 -0
  49. package/dist/cjs/FrappeTable.native.js.map +1 -0
  50. package/dist/cjs/FrappeTable.stories.cjs +232 -0
  51. package/dist/cjs/FrappeTable.stories.native.js +244 -0
  52. package/dist/cjs/FrappeTable.stories.native.js.map +1 -0
  53. package/dist/cjs/FrappeTreeView.cjs +277 -0
  54. package/dist/cjs/FrappeTreeView.native.js +337 -0
  55. package/dist/cjs/FrappeTreeView.native.js.map +1 -0
  56. package/dist/cjs/components/attachments.cjs +72 -0
  57. package/dist/cjs/components/attachments.native.js +80 -0
  58. package/dist/cjs/components/attachments.native.js.map +1 -0
  59. package/dist/cjs/components/tags.cjs +88 -0
  60. package/dist/cjs/components/tags.native.js +106 -0
  61. package/dist/cjs/components/tags.native.js.map +1 -0
  62. package/dist/cjs/components/timeline.cjs +170 -0
  63. package/dist/cjs/components/timeline.native.js +196 -0
  64. package/dist/cjs/components/timeline.native.js.map +1 -0
  65. package/dist/cjs/desk/DeskFormPage.cjs +113 -0
  66. package/dist/cjs/desk/DeskFormPage.native.js +134 -0
  67. package/dist/cjs/desk/DeskFormPage.native.js.map +1 -0
  68. package/dist/cjs/desk/DeskListPage.cjs +103 -0
  69. package/dist/cjs/desk/DeskListPage.native.js +121 -0
  70. package/dist/cjs/desk/DeskListPage.native.js.map +1 -0
  71. package/dist/cjs/desk/DeskShell.cjs +107 -0
  72. package/dist/cjs/desk/DeskShell.native.js +125 -0
  73. package/dist/cjs/desk/DeskShell.native.js.map +1 -0
  74. package/dist/cjs/desk/DeskSidebar.cjs +149 -0
  75. package/dist/cjs/desk/DeskSidebar.native.js +201 -0
  76. package/dist/cjs/desk/DeskSidebar.native.js.map +1 -0
  77. package/dist/cjs/desk/awesomebar.cjs +276 -0
  78. package/dist/cjs/desk/awesomebar.native.js +357 -0
  79. package/dist/cjs/desk/awesomebar.native.js.map +1 -0
  80. package/dist/cjs/fieldRegistry.cjs +454 -0
  81. package/dist/cjs/fieldRegistry.native.js +497 -0
  82. package/dist/cjs/fieldRegistry.native.js.map +1 -0
  83. package/dist/cjs/fields/Barcode/index.cjs +75 -0
  84. package/dist/cjs/fields/Barcode/index.native.js +78 -0
  85. package/dist/cjs/fields/Barcode/index.native.js.map +1 -0
  86. package/dist/cjs/fields/Check/Check.stories.cjs +114 -0
  87. package/dist/cjs/fields/Check/Check.stories.native.js +121 -0
  88. package/dist/cjs/fields/Check/Check.stories.native.js.map +1 -0
  89. package/dist/cjs/fields/Check/index.cjs +64 -0
  90. package/dist/cjs/fields/Check/index.native.js +69 -0
  91. package/dist/cjs/fields/Check/index.native.js.map +1 -0
  92. package/dist/cjs/fields/Color/Color.stories.cjs +131 -0
  93. package/dist/cjs/fields/Color/Color.stories.native.js +138 -0
  94. package/dist/cjs/fields/Color/Color.stories.native.js.map +1 -0
  95. package/dist/cjs/fields/Color/index.cjs +70 -0
  96. package/dist/cjs/fields/Color/index.native.js +73 -0
  97. package/dist/cjs/fields/Color/index.native.js.map +1 -0
  98. package/dist/cjs/fields/Data/Data.stories.cjs +133 -0
  99. package/dist/cjs/fields/Data/Data.stories.native.js +140 -0
  100. package/dist/cjs/fields/Data/Data.stories.native.js.map +1 -0
  101. package/dist/cjs/fields/Data/index.cjs +71 -0
  102. package/dist/cjs/fields/Data/index.native.js +74 -0
  103. package/dist/cjs/fields/Data/index.native.js.map +1 -0
  104. package/dist/cjs/fields/Date/Date.stories.cjs +244 -0
  105. package/dist/cjs/fields/Date/Date.stories.native.js +267 -0
  106. package/dist/cjs/fields/Date/Date.stories.native.js.map +1 -0
  107. package/dist/cjs/fields/Date/date.native.js +314 -0
  108. package/dist/cjs/fields/Date/date.native.js.map +1 -0
  109. package/dist/cjs/fields/Date/index.cjs +65 -0
  110. package/dist/cjs/fields/Date/index.native.js +68 -0
  111. package/dist/cjs/fields/Date/index.native.js.map +1 -0
  112. package/dist/cjs/fields/DateRange/index.cjs +61 -0
  113. package/dist/cjs/fields/DateRange/index.native.js +64 -0
  114. package/dist/cjs/fields/DateRange/index.native.js.map +1 -0
  115. package/dist/cjs/fields/Duration/index.cjs +40 -0
  116. package/dist/cjs/fields/Duration/index.native.js +43 -0
  117. package/dist/cjs/fields/Duration/index.native.js.map +1 -0
  118. package/dist/cjs/fields/DynamicLink.cjs +152 -0
  119. package/dist/cjs/fields/DynamicLink.native.js +172 -0
  120. package/dist/cjs/fields/DynamicLink.native.js.map +1 -0
  121. package/dist/cjs/fields/FileUpload.cjs +188 -0
  122. package/dist/cjs/fields/FileUpload.native.js +203 -0
  123. package/dist/cjs/fields/FileUpload.native.js.map +1 -0
  124. package/dist/cjs/fields/FileUploadField/index.cjs +65 -0
  125. package/dist/cjs/fields/FileUploadField/index.native.js +68 -0
  126. package/dist/cjs/fields/FileUploadField/index.native.js.map +1 -0
  127. package/dist/cjs/fields/Geolocation/index.cjs +66 -0
  128. package/dist/cjs/fields/Geolocation/index.native.js +69 -0
  129. package/dist/cjs/fields/Geolocation/index.native.js.map +1 -0
  130. package/dist/cjs/fields/HTML/index.cjs +82 -0
  131. package/dist/cjs/fields/HTML/index.native.js +89 -0
  132. package/dist/cjs/fields/HTML/index.native.js.map +1 -0
  133. package/dist/cjs/fields/Heading/Heading.stories.cjs +183 -0
  134. package/dist/cjs/fields/Heading/Heading.stories.native.js +196 -0
  135. package/dist/cjs/fields/Heading/Heading.stories.native.js.map +1 -0
  136. package/dist/cjs/fields/Heading/index.cjs +112 -0
  137. package/dist/cjs/fields/Heading/index.native.js +117 -0
  138. package/dist/cjs/fields/Heading/index.native.js.map +1 -0
  139. package/dist/cjs/fields/Link.cjs +269 -0
  140. package/dist/cjs/fields/Link.native.js +285 -0
  141. package/dist/cjs/fields/Link.native.js.map +1 -0
  142. package/dist/cjs/fields/LongText/index.cjs +70 -0
  143. package/dist/cjs/fields/LongText/index.native.js +73 -0
  144. package/dist/cjs/fields/LongText/index.native.js.map +1 -0
  145. package/dist/cjs/fields/MentionInput/index.cjs +63 -0
  146. package/dist/cjs/fields/MentionInput/index.native.js +66 -0
  147. package/dist/cjs/fields/MentionInput/index.native.js.map +1 -0
  148. package/dist/cjs/fields/Numeric/Numeric.stories.cjs +163 -0
  149. package/dist/cjs/fields/Numeric/Numeric.stories.native.js +170 -0
  150. package/dist/cjs/fields/Numeric/Numeric.stories.native.js.map +1 -0
  151. package/dist/cjs/fields/Numeric/index.cjs +80 -0
  152. package/dist/cjs/fields/Numeric/index.native.js +83 -0
  153. package/dist/cjs/fields/Numeric/index.native.js.map +1 -0
  154. package/dist/cjs/fields/OTPInput/index.cjs +68 -0
  155. package/dist/cjs/fields/OTPInput/index.native.js +71 -0
  156. package/dist/cjs/fields/OTPInput/index.native.js.map +1 -0
  157. package/dist/cjs/fields/Password/index.cjs +67 -0
  158. package/dist/cjs/fields/Password/index.native.js +70 -0
  159. package/dist/cjs/fields/Password/index.native.js.map +1 -0
  160. package/dist/cjs/fields/Phone/index.cjs +67 -0
  161. package/dist/cjs/fields/Phone/index.native.js +70 -0
  162. package/dist/cjs/fields/Phone/index.native.js.map +1 -0
  163. package/dist/cjs/fields/Progress/index.cjs +60 -0
  164. package/dist/cjs/fields/Progress/index.native.js +63 -0
  165. package/dist/cjs/fields/Progress/index.native.js.map +1 -0
  166. package/dist/cjs/fields/RadioGroup/index.cjs +70 -0
  167. package/dist/cjs/fields/RadioGroup/index.native.js +73 -0
  168. package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -0
  169. package/dist/cjs/fields/Rating/index.cjs +66 -0
  170. package/dist/cjs/fields/Rating/index.native.js +69 -0
  171. package/dist/cjs/fields/Rating/index.native.js.map +1 -0
  172. package/dist/cjs/fields/ReadOnly/ReadOnly.stories.cjs +185 -0
  173. package/dist/cjs/fields/ReadOnly/ReadOnly.stories.native.js +192 -0
  174. package/dist/cjs/fields/ReadOnly/ReadOnly.stories.native.js.map +1 -0
  175. package/dist/cjs/fields/ReadOnly/index.cjs +242 -0
  176. package/dist/cjs/fields/ReadOnly/index.native.js +244 -0
  177. package/dist/cjs/fields/ReadOnly/index.native.js.map +1 -0
  178. package/dist/cjs/fields/Select/Select.stories.cjs +149 -0
  179. package/dist/cjs/fields/Select/Select.stories.native.js +157 -0
  180. package/dist/cjs/fields/Select/Select.stories.native.js.map +1 -0
  181. package/dist/cjs/fields/Select/index.cjs +70 -0
  182. package/dist/cjs/fields/Select/index.native.js +78 -0
  183. package/dist/cjs/fields/Select/index.native.js.map +1 -0
  184. package/dist/cjs/fields/Signature/index.cjs +74 -0
  185. package/dist/cjs/fields/Signature/index.native.js +77 -0
  186. package/dist/cjs/fields/Signature/index.native.js.map +1 -0
  187. package/dist/cjs/fields/Slider/index.cjs +70 -0
  188. package/dist/cjs/fields/Slider/index.native.js +75 -0
  189. package/dist/cjs/fields/Slider/index.native.js.map +1 -0
  190. package/dist/cjs/fields/SmallText/index.cjs +69 -0
  191. package/dist/cjs/fields/SmallText/index.native.js +72 -0
  192. package/dist/cjs/fields/SmallText/index.native.js.map +1 -0
  193. package/dist/cjs/fields/Switch/index.cjs +64 -0
  194. package/dist/cjs/fields/Switch/index.native.js +69 -0
  195. package/dist/cjs/fields/Switch/index.native.js.map +1 -0
  196. package/dist/cjs/fields/TableMultiSelect.cjs +168 -0
  197. package/dist/cjs/fields/TableMultiSelect.native.js +202 -0
  198. package/dist/cjs/fields/TableMultiSelect.native.js.map +1 -0
  199. package/dist/cjs/fields/TextEditor/index.cjs +280 -0
  200. package/dist/cjs/fields/TextEditor/index.native.js +61 -0
  201. package/dist/cjs/fields/TextEditor/index.native.js.map +1 -0
  202. package/dist/cjs/fields/TextEditor/tiptap.css +109 -0
  203. package/dist/cjs/fields/TextEditor/tiptap.css.map +6 -0
  204. package/dist/cjs/fields/TextEditor/types.cjs +18 -0
  205. package/dist/cjs/fields/TextEditor/types.native.js +21 -0
  206. package/dist/cjs/fields/TextEditor/types.native.js.map +1 -0
  207. package/dist/cjs/fields/TimePicker/index.cjs +40 -0
  208. package/dist/cjs/fields/TimePicker/index.native.js +43 -0
  209. package/dist/cjs/fields/TimePicker/index.native.js.map +1 -0
  210. package/dist/cjs/fields/ToggleGroup/index.cjs +70 -0
  211. package/dist/cjs/fields/ToggleGroup/index.native.js +73 -0
  212. package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -0
  213. package/dist/cjs/index.cjs +145 -0
  214. package/dist/cjs/index.native.js +148 -0
  215. package/dist/cjs/index.native.js.map +1 -0
  216. package/dist/cjs/schemaForm/index.cjs +201 -0
  217. package/dist/cjs/schemaForm/index.native.js +243 -0
  218. package/dist/cjs/schemaForm/index.native.js.map +1 -0
  219. package/dist/cjs/useFrappePagination.cjs +61 -0
  220. package/dist/cjs/useFrappePagination.native.js +73 -0
  221. package/dist/cjs/useFrappePagination.native.js.map +1 -0
  222. package/dist/esm/FormSidebar.mjs +142 -0
  223. package/dist/esm/FormSidebar.mjs.map +1 -0
  224. package/dist/esm/FormSidebar.native.js +155 -0
  225. package/dist/esm/FormSidebar.native.js.map +1 -0
  226. package/dist/esm/FrappeCalendar.mjs +149 -0
  227. package/dist/esm/FrappeCalendar.mjs.map +1 -0
  228. package/dist/esm/FrappeCalendar.native.js +164 -0
  229. package/dist/esm/FrappeCalendar.native.js.map +1 -0
  230. package/dist/esm/FrappeCalendar.stories.mjs +221 -0
  231. package/dist/esm/FrappeCalendar.stories.mjs.map +1 -0
  232. package/dist/esm/FrappeCalendar.stories.native.js +237 -0
  233. package/dist/esm/FrappeCalendar.stories.native.js.map +1 -0
  234. package/dist/esm/FrappeDashboard.mjs +133 -0
  235. package/dist/esm/FrappeDashboard.mjs.map +1 -0
  236. package/dist/esm/FrappeDashboard.native.js +146 -0
  237. package/dist/esm/FrappeDashboard.native.js.map +1 -0
  238. package/dist/esm/FrappeDashboard.stories.mjs +203 -0
  239. package/dist/esm/FrappeDashboard.stories.mjs.map +1 -0
  240. package/dist/esm/FrappeDashboard.stories.native.js +209 -0
  241. package/dist/esm/FrappeDashboard.stories.native.js.map +1 -0
  242. package/dist/esm/FrappeForm.mjs +385 -0
  243. package/dist/esm/FrappeForm.mjs.map +1 -0
  244. package/dist/esm/FrappeForm.native.js +443 -0
  245. package/dist/esm/FrappeForm.native.js.map +1 -0
  246. package/dist/esm/FrappeForm.stories.mjs +226 -0
  247. package/dist/esm/FrappeForm.stories.mjs.map +1 -0
  248. package/dist/esm/FrappeForm.stories.native.js +273 -0
  249. package/dist/esm/FrappeForm.stories.native.js.map +1 -0
  250. package/dist/esm/FrappeImageView.mjs +275 -0
  251. package/dist/esm/FrappeImageView.mjs.map +1 -0
  252. package/dist/esm/FrappeImageView.native.js +292 -0
  253. package/dist/esm/FrappeImageView.native.js.map +1 -0
  254. package/dist/esm/FrappeKanban.mjs +122 -0
  255. package/dist/esm/FrappeKanban.mjs.map +1 -0
  256. package/dist/esm/FrappeKanban.native.js +167 -0
  257. package/dist/esm/FrappeKanban.native.js.map +1 -0
  258. package/dist/esm/FrappeKanban.stories.mjs +192 -0
  259. package/dist/esm/FrappeKanban.stories.mjs.map +1 -0
  260. package/dist/esm/FrappeKanban.stories.native.js +198 -0
  261. package/dist/esm/FrappeKanban.stories.native.js.map +1 -0
  262. package/dist/esm/FrappeList.mjs +56 -0
  263. package/dist/esm/FrappeList.mjs.map +1 -0
  264. package/dist/esm/FrappeList.native.js +57 -0
  265. package/dist/esm/FrappeList.native.js.map +1 -0
  266. package/dist/esm/FrappeList.stories.mjs +217 -0
  267. package/dist/esm/FrappeList.stories.mjs.map +1 -0
  268. package/dist/esm/FrappeList.stories.native.js +231 -0
  269. package/dist/esm/FrappeList.stories.native.js.map +1 -0
  270. package/dist/esm/FrappeListView.mjs +338 -0
  271. package/dist/esm/FrappeListView.mjs.map +1 -0
  272. package/dist/esm/FrappeListView.native.js +363 -0
  273. package/dist/esm/FrappeListView.native.js.map +1 -0
  274. package/dist/esm/FrappeProvider.mjs +31 -0
  275. package/dist/esm/FrappeProvider.mjs.map +1 -0
  276. package/dist/esm/FrappeProvider.native.js +34 -0
  277. package/dist/esm/FrappeProvider.native.js.map +1 -0
  278. package/dist/esm/FrappeReportBuilder.mjs +326 -0
  279. package/dist/esm/FrappeReportBuilder.mjs.map +1 -0
  280. package/dist/esm/FrappeReportBuilder.native.js +376 -0
  281. package/dist/esm/FrappeReportBuilder.native.js.map +1 -0
  282. package/dist/esm/FrappeTable.mjs +292 -0
  283. package/dist/esm/FrappeTable.mjs.map +1 -0
  284. package/dist/esm/FrappeTable.native.js +364 -0
  285. package/dist/esm/FrappeTable.native.js.map +1 -0
  286. package/dist/esm/FrappeTable.stories.mjs +203 -0
  287. package/dist/esm/FrappeTable.stories.mjs.map +1 -0
  288. package/dist/esm/FrappeTable.stories.native.js +212 -0
  289. package/dist/esm/FrappeTable.stories.native.js.map +1 -0
  290. package/dist/esm/FrappeTreeView.mjs +252 -0
  291. package/dist/esm/FrappeTreeView.mjs.map +1 -0
  292. package/dist/esm/FrappeTreeView.native.js +298 -0
  293. package/dist/esm/FrappeTreeView.native.js.map +1 -0
  294. package/dist/esm/components/attachments.mjs +47 -0
  295. package/dist/esm/components/attachments.mjs.map +1 -0
  296. package/dist/esm/components/attachments.native.js +52 -0
  297. package/dist/esm/components/attachments.native.js.map +1 -0
  298. package/dist/esm/components/tags.mjs +63 -0
  299. package/dist/esm/components/tags.mjs.map +1 -0
  300. package/dist/esm/components/tags.native.js +78 -0
  301. package/dist/esm/components/tags.native.js.map +1 -0
  302. package/dist/esm/components/timeline.mjs +145 -0
  303. package/dist/esm/components/timeline.mjs.map +1 -0
  304. package/dist/esm/components/timeline.native.js +168 -0
  305. package/dist/esm/components/timeline.native.js.map +1 -0
  306. package/dist/esm/desk/DeskFormPage.mjs +88 -0
  307. package/dist/esm/desk/DeskFormPage.mjs.map +1 -0
  308. package/dist/esm/desk/DeskFormPage.native.js +95 -0
  309. package/dist/esm/desk/DeskFormPage.native.js.map +1 -0
  310. package/dist/esm/desk/DeskListPage.mjs +78 -0
  311. package/dist/esm/desk/DeskListPage.mjs.map +1 -0
  312. package/dist/esm/desk/DeskListPage.native.js +82 -0
  313. package/dist/esm/desk/DeskListPage.native.js.map +1 -0
  314. package/dist/esm/desk/DeskShell.mjs +82 -0
  315. package/dist/esm/desk/DeskShell.mjs.map +1 -0
  316. package/dist/esm/desk/DeskShell.native.js +97 -0
  317. package/dist/esm/desk/DeskShell.native.js.map +1 -0
  318. package/dist/esm/desk/DeskSidebar.mjs +121 -0
  319. package/dist/esm/desk/DeskSidebar.mjs.map +1 -0
  320. package/dist/esm/desk/DeskSidebar.native.js +159 -0
  321. package/dist/esm/desk/DeskSidebar.native.js.map +1 -0
  322. package/dist/esm/desk/awesomebar.mjs +251 -0
  323. package/dist/esm/desk/awesomebar.mjs.map +1 -0
  324. package/dist/esm/desk/awesomebar.native.js +329 -0
  325. package/dist/esm/desk/awesomebar.native.js.map +1 -0
  326. package/dist/esm/fieldRegistry.mjs +416 -0
  327. package/dist/esm/fieldRegistry.mjs.map +1 -0
  328. package/dist/esm/fieldRegistry.native.js +456 -0
  329. package/dist/esm/fieldRegistry.native.js.map +1 -0
  330. package/dist/esm/fields/Barcode/index.mjs +50 -0
  331. package/dist/esm/fields/Barcode/index.mjs.map +1 -0
  332. package/dist/esm/fields/Barcode/index.native.js +50 -0
  333. package/dist/esm/fields/Barcode/index.native.js.map +1 -0
  334. package/dist/esm/fields/Check/Check.stories.mjs +87 -0
  335. package/dist/esm/fields/Check/Check.stories.mjs.map +1 -0
  336. package/dist/esm/fields/Check/Check.stories.native.js +91 -0
  337. package/dist/esm/fields/Check/Check.stories.native.js.map +1 -0
  338. package/dist/esm/fields/Check/index.mjs +39 -0
  339. package/dist/esm/fields/Check/index.mjs.map +1 -0
  340. package/dist/esm/fields/Check/index.native.js +41 -0
  341. package/dist/esm/fields/Check/index.native.js.map +1 -0
  342. package/dist/esm/fields/Color/Color.stories.mjs +104 -0
  343. package/dist/esm/fields/Color/Color.stories.mjs.map +1 -0
  344. package/dist/esm/fields/Color/Color.stories.native.js +108 -0
  345. package/dist/esm/fields/Color/Color.stories.native.js.map +1 -0
  346. package/dist/esm/fields/Color/index.mjs +45 -0
  347. package/dist/esm/fields/Color/index.mjs.map +1 -0
  348. package/dist/esm/fields/Color/index.native.js +45 -0
  349. package/dist/esm/fields/Color/index.native.js.map +1 -0
  350. package/dist/esm/fields/Data/Data.stories.mjs +106 -0
  351. package/dist/esm/fields/Data/Data.stories.mjs.map +1 -0
  352. package/dist/esm/fields/Data/Data.stories.native.js +110 -0
  353. package/dist/esm/fields/Data/Data.stories.native.js.map +1 -0
  354. package/dist/esm/fields/Data/index.mjs +46 -0
  355. package/dist/esm/fields/Data/index.mjs.map +1 -0
  356. package/dist/esm/fields/Data/index.native.js +46 -0
  357. package/dist/esm/fields/Data/index.native.js.map +1 -0
  358. package/dist/esm/fields/Date/Date.stories.mjs +209 -0
  359. package/dist/esm/fields/Date/Date.stories.mjs.map +1 -0
  360. package/dist/esm/fields/Date/Date.stories.native.js +229 -0
  361. package/dist/esm/fields/Date/Date.stories.native.js.map +1 -0
  362. package/dist/esm/fields/Date/date.native.js +275 -0
  363. package/dist/esm/fields/Date/date.native.js.map +1 -0
  364. package/dist/esm/fields/Date/index.mjs +40 -0
  365. package/dist/esm/fields/Date/index.mjs.map +1 -0
  366. package/dist/esm/fields/Date/index.native.js +40 -0
  367. package/dist/esm/fields/Date/index.native.js.map +1 -0
  368. package/dist/esm/fields/DateRange/index.mjs +36 -0
  369. package/dist/esm/fields/DateRange/index.mjs.map +1 -0
  370. package/dist/esm/fields/DateRange/index.native.js +36 -0
  371. package/dist/esm/fields/DateRange/index.native.js.map +1 -0
  372. package/dist/esm/fields/Duration/index.mjs +15 -0
  373. package/dist/esm/fields/Duration/index.mjs.map +1 -0
  374. package/dist/esm/fields/Duration/index.native.js +15 -0
  375. package/dist/esm/fields/Duration/index.native.js.map +1 -0
  376. package/dist/esm/fields/DynamicLink.mjs +127 -0
  377. package/dist/esm/fields/DynamicLink.mjs.map +1 -0
  378. package/dist/esm/fields/DynamicLink.native.js +133 -0
  379. package/dist/esm/fields/DynamicLink.native.js.map +1 -0
  380. package/dist/esm/fields/FileUpload.mjs +163 -0
  381. package/dist/esm/fields/FileUpload.mjs.map +1 -0
  382. package/dist/esm/fields/FileUpload.native.js +175 -0
  383. package/dist/esm/fields/FileUpload.native.js.map +1 -0
  384. package/dist/esm/fields/FileUploadField/index.mjs +40 -0
  385. package/dist/esm/fields/FileUploadField/index.mjs.map +1 -0
  386. package/dist/esm/fields/FileUploadField/index.native.js +40 -0
  387. package/dist/esm/fields/FileUploadField/index.native.js.map +1 -0
  388. package/dist/esm/fields/Geolocation/index.mjs +41 -0
  389. package/dist/esm/fields/Geolocation/index.mjs.map +1 -0
  390. package/dist/esm/fields/Geolocation/index.native.js +41 -0
  391. package/dist/esm/fields/Geolocation/index.native.js.map +1 -0
  392. package/dist/esm/fields/HTML/index.mjs +57 -0
  393. package/dist/esm/fields/HTML/index.mjs.map +1 -0
  394. package/dist/esm/fields/HTML/index.native.js +61 -0
  395. package/dist/esm/fields/HTML/index.native.js.map +1 -0
  396. package/dist/esm/fields/Heading/Heading.stories.mjs +155 -0
  397. package/dist/esm/fields/Heading/Heading.stories.mjs.map +1 -0
  398. package/dist/esm/fields/Heading/Heading.stories.native.js +165 -0
  399. package/dist/esm/fields/Heading/Heading.stories.native.js.map +1 -0
  400. package/dist/esm/fields/Heading/index.mjs +87 -0
  401. package/dist/esm/fields/Heading/index.mjs.map +1 -0
  402. package/dist/esm/fields/Heading/index.native.js +89 -0
  403. package/dist/esm/fields/Heading/index.native.js.map +1 -0
  404. package/dist/esm/fields/Link.mjs +244 -0
  405. package/dist/esm/fields/Link.mjs.map +1 -0
  406. package/dist/esm/fields/Link.native.js +257 -0
  407. package/dist/esm/fields/Link.native.js.map +1 -0
  408. package/dist/esm/fields/LongText/index.mjs +45 -0
  409. package/dist/esm/fields/LongText/index.mjs.map +1 -0
  410. package/dist/esm/fields/LongText/index.native.js +45 -0
  411. package/dist/esm/fields/LongText/index.native.js.map +1 -0
  412. package/dist/esm/fields/MentionInput/index.mjs +38 -0
  413. package/dist/esm/fields/MentionInput/index.mjs.map +1 -0
  414. package/dist/esm/fields/MentionInput/index.native.js +38 -0
  415. package/dist/esm/fields/MentionInput/index.native.js.map +1 -0
  416. package/dist/esm/fields/Numeric/Numeric.stories.mjs +136 -0
  417. package/dist/esm/fields/Numeric/Numeric.stories.mjs.map +1 -0
  418. package/dist/esm/fields/Numeric/Numeric.stories.native.js +140 -0
  419. package/dist/esm/fields/Numeric/Numeric.stories.native.js.map +1 -0
  420. package/dist/esm/fields/Numeric/index.mjs +55 -0
  421. package/dist/esm/fields/Numeric/index.mjs.map +1 -0
  422. package/dist/esm/fields/Numeric/index.native.js +55 -0
  423. package/dist/esm/fields/Numeric/index.native.js.map +1 -0
  424. package/dist/esm/fields/OTPInput/index.mjs +43 -0
  425. package/dist/esm/fields/OTPInput/index.mjs.map +1 -0
  426. package/dist/esm/fields/OTPInput/index.native.js +43 -0
  427. package/dist/esm/fields/OTPInput/index.native.js.map +1 -0
  428. package/dist/esm/fields/Password/index.mjs +42 -0
  429. package/dist/esm/fields/Password/index.mjs.map +1 -0
  430. package/dist/esm/fields/Password/index.native.js +42 -0
  431. package/dist/esm/fields/Password/index.native.js.map +1 -0
  432. package/dist/esm/fields/Phone/index.mjs +42 -0
  433. package/dist/esm/fields/Phone/index.mjs.map +1 -0
  434. package/dist/esm/fields/Phone/index.native.js +42 -0
  435. package/dist/esm/fields/Phone/index.native.js.map +1 -0
  436. package/dist/esm/fields/Progress/index.mjs +35 -0
  437. package/dist/esm/fields/Progress/index.mjs.map +1 -0
  438. package/dist/esm/fields/Progress/index.native.js +35 -0
  439. package/dist/esm/fields/Progress/index.native.js.map +1 -0
  440. package/dist/esm/fields/RadioGroup/index.mjs +45 -0
  441. package/dist/esm/fields/RadioGroup/index.mjs.map +1 -0
  442. package/dist/esm/fields/RadioGroup/index.native.js +45 -0
  443. package/dist/esm/fields/RadioGroup/index.native.js.map +1 -0
  444. package/dist/esm/fields/Rating/index.mjs +41 -0
  445. package/dist/esm/fields/Rating/index.mjs.map +1 -0
  446. package/dist/esm/fields/Rating/index.native.js +41 -0
  447. package/dist/esm/fields/Rating/index.native.js.map +1 -0
  448. package/dist/esm/fields/ReadOnly/ReadOnly.stories.mjs +158 -0
  449. package/dist/esm/fields/ReadOnly/ReadOnly.stories.mjs.map +1 -0
  450. package/dist/esm/fields/ReadOnly/ReadOnly.stories.native.js +162 -0
  451. package/dist/esm/fields/ReadOnly/ReadOnly.stories.native.js.map +1 -0
  452. package/dist/esm/fields/ReadOnly/index.mjs +217 -0
  453. package/dist/esm/fields/ReadOnly/index.mjs.map +1 -0
  454. package/dist/esm/fields/ReadOnly/index.native.js +216 -0
  455. package/dist/esm/fields/ReadOnly/index.native.js.map +1 -0
  456. package/dist/esm/fields/Select/Select.stories.mjs +122 -0
  457. package/dist/esm/fields/Select/Select.stories.mjs.map +1 -0
  458. package/dist/esm/fields/Select/Select.stories.native.js +127 -0
  459. package/dist/esm/fields/Select/Select.stories.native.js.map +1 -0
  460. package/dist/esm/fields/Select/index.mjs +45 -0
  461. package/dist/esm/fields/Select/index.mjs.map +1 -0
  462. package/dist/esm/fields/Select/index.native.js +50 -0
  463. package/dist/esm/fields/Select/index.native.js.map +1 -0
  464. package/dist/esm/fields/Signature/index.mjs +49 -0
  465. package/dist/esm/fields/Signature/index.mjs.map +1 -0
  466. package/dist/esm/fields/Signature/index.native.js +49 -0
  467. package/dist/esm/fields/Signature/index.native.js.map +1 -0
  468. package/dist/esm/fields/Slider/index.mjs +45 -0
  469. package/dist/esm/fields/Slider/index.mjs.map +1 -0
  470. package/dist/esm/fields/Slider/index.native.js +47 -0
  471. package/dist/esm/fields/Slider/index.native.js.map +1 -0
  472. package/dist/esm/fields/SmallText/index.mjs +44 -0
  473. package/dist/esm/fields/SmallText/index.mjs.map +1 -0
  474. package/dist/esm/fields/SmallText/index.native.js +44 -0
  475. package/dist/esm/fields/SmallText/index.native.js.map +1 -0
  476. package/dist/esm/fields/Switch/index.mjs +39 -0
  477. package/dist/esm/fields/Switch/index.mjs.map +1 -0
  478. package/dist/esm/fields/Switch/index.native.js +41 -0
  479. package/dist/esm/fields/Switch/index.native.js.map +1 -0
  480. package/dist/esm/fields/TableMultiSelect.mjs +143 -0
  481. package/dist/esm/fields/TableMultiSelect.mjs.map +1 -0
  482. package/dist/esm/fields/TableMultiSelect.native.js +163 -0
  483. package/dist/esm/fields/TableMultiSelect.native.js.map +1 -0
  484. package/dist/esm/fields/TextEditor/index.mjs +244 -0
  485. package/dist/esm/fields/TextEditor/index.mjs.map +1 -0
  486. package/dist/esm/fields/TextEditor/index.native.js +33 -0
  487. package/dist/esm/fields/TextEditor/index.native.js.map +1 -0
  488. package/dist/esm/fields/TextEditor/tiptap.css +109 -0
  489. package/dist/esm/fields/TextEditor/tiptap.css.map +6 -0
  490. package/dist/esm/fields/TextEditor/types.mjs +2 -0
  491. package/dist/esm/fields/TextEditor/types.mjs.map +1 -0
  492. package/dist/esm/fields/TextEditor/types.native.js +2 -0
  493. package/dist/esm/fields/TextEditor/types.native.js.map +1 -0
  494. package/dist/esm/fields/TimePicker/index.mjs +15 -0
  495. package/dist/esm/fields/TimePicker/index.mjs.map +1 -0
  496. package/dist/esm/fields/TimePicker/index.native.js +15 -0
  497. package/dist/esm/fields/TimePicker/index.native.js.map +1 -0
  498. package/dist/esm/fields/ToggleGroup/index.mjs +45 -0
  499. package/dist/esm/fields/ToggleGroup/index.mjs.map +1 -0
  500. package/dist/esm/fields/ToggleGroup/index.native.js +45 -0
  501. package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -0
  502. package/dist/esm/index.mjs +55 -0
  503. package/dist/esm/index.mjs.map +1 -0
  504. package/dist/esm/index.native.js +55 -0
  505. package/dist/esm/index.native.js.map +1 -0
  506. package/dist/esm/schemaForm/index.mjs +165 -0
  507. package/dist/esm/schemaForm/index.mjs.map +1 -0
  508. package/dist/esm/schemaForm/index.native.js +204 -0
  509. package/dist/esm/schemaForm/index.native.js.map +1 -0
  510. package/dist/esm/useFrappePagination.mjs +36 -0
  511. package/dist/esm/useFrappePagination.mjs.map +1 -0
  512. package/dist/esm/useFrappePagination.native.js +45 -0
  513. package/dist/esm/useFrappePagination.native.js.map +1 -0
  514. package/dist/jsx/FormSidebar.mjs +142 -0
  515. package/dist/jsx/FormSidebar.mjs.map +1 -0
  516. package/dist/jsx/FormSidebar.native.js +194 -0
  517. package/dist/jsx/FormSidebar.native.js.map +1 -0
  518. package/dist/jsx/FrappeCalendar.mjs +149 -0
  519. package/dist/jsx/FrappeCalendar.mjs.map +1 -0
  520. package/dist/jsx/FrappeCalendar.native.js +203 -0
  521. package/dist/jsx/FrappeCalendar.native.js.map +1 -0
  522. package/dist/jsx/FrappeCalendar.stories.mjs +221 -0
  523. package/dist/jsx/FrappeCalendar.stories.mjs.map +1 -0
  524. package/dist/jsx/FrappeCalendar.stories.native.js +271 -0
  525. package/dist/jsx/FrappeCalendar.stories.native.js.map +1 -0
  526. package/dist/jsx/FrappeDashboard.mjs +133 -0
  527. package/dist/jsx/FrappeDashboard.mjs.map +1 -0
  528. package/dist/jsx/FrappeDashboard.native.js +190 -0
  529. package/dist/jsx/FrappeDashboard.native.js.map +1 -0
  530. package/dist/jsx/FrappeDashboard.stories.mjs +203 -0
  531. package/dist/jsx/FrappeDashboard.stories.mjs.map +1 -0
  532. package/dist/jsx/FrappeDashboard.stories.native.js +240 -0
  533. package/dist/jsx/FrappeDashboard.stories.native.js.map +1 -0
  534. package/dist/jsx/FrappeForm.mjs +385 -0
  535. package/dist/jsx/FrappeForm.mjs.map +1 -0
  536. package/dist/jsx/FrappeForm.native.js +471 -0
  537. package/dist/jsx/FrappeForm.native.js.map +1 -0
  538. package/dist/jsx/FrappeForm.stories.mjs +226 -0
  539. package/dist/jsx/FrappeForm.stories.mjs.map +1 -0
  540. package/dist/jsx/FrappeForm.stories.native.js +304 -0
  541. package/dist/jsx/FrappeForm.stories.native.js.map +1 -0
  542. package/dist/jsx/FrappeImageView.mjs +275 -0
  543. package/dist/jsx/FrappeImageView.mjs.map +1 -0
  544. package/dist/jsx/FrappeImageView.native.js +332 -0
  545. package/dist/jsx/FrappeImageView.native.js.map +1 -0
  546. package/dist/jsx/FrappeKanban.mjs +122 -0
  547. package/dist/jsx/FrappeKanban.mjs.map +1 -0
  548. package/dist/jsx/FrappeKanban.native.js +206 -0
  549. package/dist/jsx/FrappeKanban.native.js.map +1 -0
  550. package/dist/jsx/FrappeKanban.stories.mjs +192 -0
  551. package/dist/jsx/FrappeKanban.stories.mjs.map +1 -0
  552. package/dist/jsx/FrappeKanban.stories.native.js +229 -0
  553. package/dist/jsx/FrappeKanban.stories.native.js.map +1 -0
  554. package/dist/jsx/FrappeList.mjs +56 -0
  555. package/dist/jsx/FrappeList.mjs.map +1 -0
  556. package/dist/jsx/FrappeList.native.js +85 -0
  557. package/dist/jsx/FrappeList.native.js.map +1 -0
  558. package/dist/jsx/FrappeList.stories.mjs +217 -0
  559. package/dist/jsx/FrappeList.stories.mjs.map +1 -0
  560. package/dist/jsx/FrappeList.stories.native.js +262 -0
  561. package/dist/jsx/FrappeList.stories.native.js.map +1 -0
  562. package/dist/jsx/FrappeListView.mjs +338 -0
  563. package/dist/jsx/FrappeListView.mjs.map +1 -0
  564. package/dist/jsx/FrappeListView.native.js +402 -0
  565. package/dist/jsx/FrappeListView.native.js.map +1 -0
  566. package/dist/jsx/FrappeProvider.mjs +31 -0
  567. package/dist/jsx/FrappeProvider.mjs.map +1 -0
  568. package/dist/jsx/FrappeProvider.native.js +75 -0
  569. package/dist/jsx/FrappeProvider.native.js.map +1 -0
  570. package/dist/jsx/FrappeReportBuilder.mjs +326 -0
  571. package/dist/jsx/FrappeReportBuilder.mjs.map +1 -0
  572. package/dist/jsx/FrappeReportBuilder.native.js +415 -0
  573. package/dist/jsx/FrappeReportBuilder.native.js.map +1 -0
  574. package/dist/jsx/FrappeTable.mjs +292 -0
  575. package/dist/jsx/FrappeTable.mjs.map +1 -0
  576. package/dist/jsx/FrappeTable.native.js +403 -0
  577. package/dist/jsx/FrappeTable.native.js.map +1 -0
  578. package/dist/jsx/FrappeTable.stories.mjs +203 -0
  579. package/dist/jsx/FrappeTable.stories.mjs.map +1 -0
  580. package/dist/jsx/FrappeTable.stories.native.js +244 -0
  581. package/dist/jsx/FrappeTable.stories.native.js.map +1 -0
  582. package/dist/jsx/FrappeTreeView.mjs +252 -0
  583. package/dist/jsx/FrappeTreeView.mjs.map +1 -0
  584. package/dist/jsx/FrappeTreeView.native.js +337 -0
  585. package/dist/jsx/FrappeTreeView.native.js.map +1 -0
  586. package/dist/jsx/components/attachments.mjs +47 -0
  587. package/dist/jsx/components/attachments.mjs.map +1 -0
  588. package/dist/jsx/components/attachments.native.js +80 -0
  589. package/dist/jsx/components/attachments.native.js.map +1 -0
  590. package/dist/jsx/components/tags.mjs +63 -0
  591. package/dist/jsx/components/tags.mjs.map +1 -0
  592. package/dist/jsx/components/tags.native.js +106 -0
  593. package/dist/jsx/components/tags.native.js.map +1 -0
  594. package/dist/jsx/components/timeline.mjs +145 -0
  595. package/dist/jsx/components/timeline.mjs.map +1 -0
  596. package/dist/jsx/components/timeline.native.js +196 -0
  597. package/dist/jsx/components/timeline.native.js.map +1 -0
  598. package/dist/jsx/desk/DeskFormPage.mjs +88 -0
  599. package/dist/jsx/desk/DeskFormPage.mjs.map +1 -0
  600. package/dist/jsx/desk/DeskFormPage.native.js +134 -0
  601. package/dist/jsx/desk/DeskFormPage.native.js.map +1 -0
  602. package/dist/jsx/desk/DeskListPage.mjs +78 -0
  603. package/dist/jsx/desk/DeskListPage.mjs.map +1 -0
  604. package/dist/jsx/desk/DeskListPage.native.js +121 -0
  605. package/dist/jsx/desk/DeskListPage.native.js.map +1 -0
  606. package/dist/jsx/desk/DeskShell.mjs +82 -0
  607. package/dist/jsx/desk/DeskShell.mjs.map +1 -0
  608. package/dist/jsx/desk/DeskShell.native.js +125 -0
  609. package/dist/jsx/desk/DeskShell.native.js.map +1 -0
  610. package/dist/jsx/desk/DeskSidebar.mjs +121 -0
  611. package/dist/jsx/desk/DeskSidebar.mjs.map +1 -0
  612. package/dist/jsx/desk/DeskSidebar.native.js +201 -0
  613. package/dist/jsx/desk/DeskSidebar.native.js.map +1 -0
  614. package/dist/jsx/desk/awesomebar.mjs +251 -0
  615. package/dist/jsx/desk/awesomebar.mjs.map +1 -0
  616. package/dist/jsx/desk/awesomebar.native.js +357 -0
  617. package/dist/jsx/desk/awesomebar.native.js.map +1 -0
  618. package/dist/jsx/fieldRegistry.mjs +416 -0
  619. package/dist/jsx/fieldRegistry.mjs.map +1 -0
  620. package/dist/jsx/fieldRegistry.native.js +497 -0
  621. package/dist/jsx/fieldRegistry.native.js.map +1 -0
  622. package/dist/jsx/fields/Barcode/index.mjs +50 -0
  623. package/dist/jsx/fields/Barcode/index.mjs.map +1 -0
  624. package/dist/jsx/fields/Barcode/index.native.js +78 -0
  625. package/dist/jsx/fields/Barcode/index.native.js.map +1 -0
  626. package/dist/jsx/fields/Check/Check.stories.mjs +87 -0
  627. package/dist/jsx/fields/Check/Check.stories.mjs.map +1 -0
  628. package/dist/jsx/fields/Check/Check.stories.native.js +121 -0
  629. package/dist/jsx/fields/Check/Check.stories.native.js.map +1 -0
  630. package/dist/jsx/fields/Check/index.mjs +39 -0
  631. package/dist/jsx/fields/Check/index.mjs.map +1 -0
  632. package/dist/jsx/fields/Check/index.native.js +69 -0
  633. package/dist/jsx/fields/Check/index.native.js.map +1 -0
  634. package/dist/jsx/fields/Color/Color.stories.mjs +104 -0
  635. package/dist/jsx/fields/Color/Color.stories.mjs.map +1 -0
  636. package/dist/jsx/fields/Color/Color.stories.native.js +138 -0
  637. package/dist/jsx/fields/Color/Color.stories.native.js.map +1 -0
  638. package/dist/jsx/fields/Color/index.mjs +45 -0
  639. package/dist/jsx/fields/Color/index.mjs.map +1 -0
  640. package/dist/jsx/fields/Color/index.native.js +73 -0
  641. package/dist/jsx/fields/Color/index.native.js.map +1 -0
  642. package/dist/jsx/fields/Data/Data.stories.mjs +106 -0
  643. package/dist/jsx/fields/Data/Data.stories.mjs.map +1 -0
  644. package/dist/jsx/fields/Data/Data.stories.native.js +140 -0
  645. package/dist/jsx/fields/Data/Data.stories.native.js.map +1 -0
  646. package/dist/jsx/fields/Data/index.mjs +46 -0
  647. package/dist/jsx/fields/Data/index.mjs.map +1 -0
  648. package/dist/jsx/fields/Data/index.native.js +74 -0
  649. package/dist/jsx/fields/Data/index.native.js.map +1 -0
  650. package/dist/jsx/fields/Date/Date.stories.mjs +209 -0
  651. package/dist/jsx/fields/Date/Date.stories.mjs.map +1 -0
  652. package/dist/jsx/fields/Date/Date.stories.native.js +267 -0
  653. package/dist/jsx/fields/Date/Date.stories.native.js.map +1 -0
  654. package/dist/jsx/fields/Date/date.native.js +314 -0
  655. package/dist/jsx/fields/Date/date.native.js.map +1 -0
  656. package/dist/jsx/fields/Date/index.mjs +40 -0
  657. package/dist/jsx/fields/Date/index.mjs.map +1 -0
  658. package/dist/jsx/fields/Date/index.native.js +68 -0
  659. package/dist/jsx/fields/Date/index.native.js.map +1 -0
  660. package/dist/jsx/fields/DateRange/index.mjs +36 -0
  661. package/dist/jsx/fields/DateRange/index.mjs.map +1 -0
  662. package/dist/jsx/fields/DateRange/index.native.js +64 -0
  663. package/dist/jsx/fields/DateRange/index.native.js.map +1 -0
  664. package/dist/jsx/fields/Duration/index.mjs +15 -0
  665. package/dist/jsx/fields/Duration/index.mjs.map +1 -0
  666. package/dist/jsx/fields/Duration/index.native.js +43 -0
  667. package/dist/jsx/fields/Duration/index.native.js.map +1 -0
  668. package/dist/jsx/fields/DynamicLink.mjs +127 -0
  669. package/dist/jsx/fields/DynamicLink.mjs.map +1 -0
  670. package/dist/jsx/fields/DynamicLink.native.js +172 -0
  671. package/dist/jsx/fields/DynamicLink.native.js.map +1 -0
  672. package/dist/jsx/fields/FileUpload.mjs +163 -0
  673. package/dist/jsx/fields/FileUpload.mjs.map +1 -0
  674. package/dist/jsx/fields/FileUpload.native.js +203 -0
  675. package/dist/jsx/fields/FileUpload.native.js.map +1 -0
  676. package/dist/jsx/fields/FileUploadField/index.mjs +40 -0
  677. package/dist/jsx/fields/FileUploadField/index.mjs.map +1 -0
  678. package/dist/jsx/fields/FileUploadField/index.native.js +68 -0
  679. package/dist/jsx/fields/FileUploadField/index.native.js.map +1 -0
  680. package/dist/jsx/fields/Geolocation/index.mjs +41 -0
  681. package/dist/jsx/fields/Geolocation/index.mjs.map +1 -0
  682. package/dist/jsx/fields/Geolocation/index.native.js +69 -0
  683. package/dist/jsx/fields/Geolocation/index.native.js.map +1 -0
  684. package/dist/jsx/fields/HTML/index.mjs +57 -0
  685. package/dist/jsx/fields/HTML/index.mjs.map +1 -0
  686. package/dist/jsx/fields/HTML/index.native.js +89 -0
  687. package/dist/jsx/fields/HTML/index.native.js.map +1 -0
  688. package/dist/jsx/fields/Heading/Heading.stories.mjs +155 -0
  689. package/dist/jsx/fields/Heading/Heading.stories.mjs.map +1 -0
  690. package/dist/jsx/fields/Heading/Heading.stories.native.js +196 -0
  691. package/dist/jsx/fields/Heading/Heading.stories.native.js.map +1 -0
  692. package/dist/jsx/fields/Heading/index.mjs +87 -0
  693. package/dist/jsx/fields/Heading/index.mjs.map +1 -0
  694. package/dist/jsx/fields/Heading/index.native.js +117 -0
  695. package/dist/jsx/fields/Heading/index.native.js.map +1 -0
  696. package/dist/jsx/fields/Link.mjs +244 -0
  697. package/dist/jsx/fields/Link.mjs.map +1 -0
  698. package/dist/jsx/fields/Link.native.js +285 -0
  699. package/dist/jsx/fields/Link.native.js.map +1 -0
  700. package/dist/jsx/fields/LongText/index.mjs +45 -0
  701. package/dist/jsx/fields/LongText/index.mjs.map +1 -0
  702. package/dist/jsx/fields/LongText/index.native.js +73 -0
  703. package/dist/jsx/fields/LongText/index.native.js.map +1 -0
  704. package/dist/jsx/fields/MentionInput/index.mjs +38 -0
  705. package/dist/jsx/fields/MentionInput/index.mjs.map +1 -0
  706. package/dist/jsx/fields/MentionInput/index.native.js +66 -0
  707. package/dist/jsx/fields/MentionInput/index.native.js.map +1 -0
  708. package/dist/jsx/fields/Numeric/Numeric.stories.mjs +136 -0
  709. package/dist/jsx/fields/Numeric/Numeric.stories.mjs.map +1 -0
  710. package/dist/jsx/fields/Numeric/Numeric.stories.native.js +170 -0
  711. package/dist/jsx/fields/Numeric/Numeric.stories.native.js.map +1 -0
  712. package/dist/jsx/fields/Numeric/index.mjs +55 -0
  713. package/dist/jsx/fields/Numeric/index.mjs.map +1 -0
  714. package/dist/jsx/fields/Numeric/index.native.js +83 -0
  715. package/dist/jsx/fields/Numeric/index.native.js.map +1 -0
  716. package/dist/jsx/fields/OTPInput/index.mjs +43 -0
  717. package/dist/jsx/fields/OTPInput/index.mjs.map +1 -0
  718. package/dist/jsx/fields/OTPInput/index.native.js +71 -0
  719. package/dist/jsx/fields/OTPInput/index.native.js.map +1 -0
  720. package/dist/jsx/fields/Password/index.mjs +42 -0
  721. package/dist/jsx/fields/Password/index.mjs.map +1 -0
  722. package/dist/jsx/fields/Password/index.native.js +70 -0
  723. package/dist/jsx/fields/Password/index.native.js.map +1 -0
  724. package/dist/jsx/fields/Phone/index.mjs +42 -0
  725. package/dist/jsx/fields/Phone/index.mjs.map +1 -0
  726. package/dist/jsx/fields/Phone/index.native.js +70 -0
  727. package/dist/jsx/fields/Phone/index.native.js.map +1 -0
  728. package/dist/jsx/fields/Progress/index.mjs +35 -0
  729. package/dist/jsx/fields/Progress/index.mjs.map +1 -0
  730. package/dist/jsx/fields/Progress/index.native.js +63 -0
  731. package/dist/jsx/fields/Progress/index.native.js.map +1 -0
  732. package/dist/jsx/fields/RadioGroup/index.mjs +45 -0
  733. package/dist/jsx/fields/RadioGroup/index.mjs.map +1 -0
  734. package/dist/jsx/fields/RadioGroup/index.native.js +73 -0
  735. package/dist/jsx/fields/RadioGroup/index.native.js.map +1 -0
  736. package/dist/jsx/fields/Rating/index.mjs +41 -0
  737. package/dist/jsx/fields/Rating/index.mjs.map +1 -0
  738. package/dist/jsx/fields/Rating/index.native.js +69 -0
  739. package/dist/jsx/fields/Rating/index.native.js.map +1 -0
  740. package/dist/jsx/fields/ReadOnly/ReadOnly.stories.mjs +158 -0
  741. package/dist/jsx/fields/ReadOnly/ReadOnly.stories.mjs.map +1 -0
  742. package/dist/jsx/fields/ReadOnly/ReadOnly.stories.native.js +192 -0
  743. package/dist/jsx/fields/ReadOnly/ReadOnly.stories.native.js.map +1 -0
  744. package/dist/jsx/fields/ReadOnly/index.mjs +217 -0
  745. package/dist/jsx/fields/ReadOnly/index.mjs.map +1 -0
  746. package/dist/jsx/fields/ReadOnly/index.native.js +244 -0
  747. package/dist/jsx/fields/ReadOnly/index.native.js.map +1 -0
  748. package/dist/jsx/fields/Select/Select.stories.mjs +122 -0
  749. package/dist/jsx/fields/Select/Select.stories.mjs.map +1 -0
  750. package/dist/jsx/fields/Select/Select.stories.native.js +157 -0
  751. package/dist/jsx/fields/Select/Select.stories.native.js.map +1 -0
  752. package/dist/jsx/fields/Select/index.mjs +45 -0
  753. package/dist/jsx/fields/Select/index.mjs.map +1 -0
  754. package/dist/jsx/fields/Select/index.native.js +78 -0
  755. package/dist/jsx/fields/Select/index.native.js.map +1 -0
  756. package/dist/jsx/fields/Signature/index.mjs +49 -0
  757. package/dist/jsx/fields/Signature/index.mjs.map +1 -0
  758. package/dist/jsx/fields/Signature/index.native.js +77 -0
  759. package/dist/jsx/fields/Signature/index.native.js.map +1 -0
  760. package/dist/jsx/fields/Slider/index.mjs +45 -0
  761. package/dist/jsx/fields/Slider/index.mjs.map +1 -0
  762. package/dist/jsx/fields/Slider/index.native.js +75 -0
  763. package/dist/jsx/fields/Slider/index.native.js.map +1 -0
  764. package/dist/jsx/fields/SmallText/index.mjs +44 -0
  765. package/dist/jsx/fields/SmallText/index.mjs.map +1 -0
  766. package/dist/jsx/fields/SmallText/index.native.js +72 -0
  767. package/dist/jsx/fields/SmallText/index.native.js.map +1 -0
  768. package/dist/jsx/fields/Switch/index.mjs +39 -0
  769. package/dist/jsx/fields/Switch/index.mjs.map +1 -0
  770. package/dist/jsx/fields/Switch/index.native.js +69 -0
  771. package/dist/jsx/fields/Switch/index.native.js.map +1 -0
  772. package/dist/jsx/fields/TableMultiSelect.mjs +143 -0
  773. package/dist/jsx/fields/TableMultiSelect.mjs.map +1 -0
  774. package/dist/jsx/fields/TableMultiSelect.native.js +202 -0
  775. package/dist/jsx/fields/TableMultiSelect.native.js.map +1 -0
  776. package/dist/jsx/fields/TextEditor/index.mjs +244 -0
  777. package/dist/jsx/fields/TextEditor/index.mjs.map +1 -0
  778. package/dist/jsx/fields/TextEditor/index.native.js +61 -0
  779. package/dist/jsx/fields/TextEditor/index.native.js.map +1 -0
  780. package/dist/jsx/fields/TextEditor/tiptap.css +109 -0
  781. package/dist/jsx/fields/TextEditor/tiptap.css.map +6 -0
  782. package/dist/jsx/fields/TextEditor/types.mjs +2 -0
  783. package/dist/jsx/fields/TextEditor/types.mjs.map +1 -0
  784. package/dist/jsx/fields/TextEditor/types.native.js +21 -0
  785. package/dist/jsx/fields/TextEditor/types.native.js.map +1 -0
  786. package/dist/jsx/fields/TimePicker/index.mjs +15 -0
  787. package/dist/jsx/fields/TimePicker/index.mjs.map +1 -0
  788. package/dist/jsx/fields/TimePicker/index.native.js +43 -0
  789. package/dist/jsx/fields/TimePicker/index.native.js.map +1 -0
  790. package/dist/jsx/fields/ToggleGroup/index.mjs +45 -0
  791. package/dist/jsx/fields/ToggleGroup/index.mjs.map +1 -0
  792. package/dist/jsx/fields/ToggleGroup/index.native.js +73 -0
  793. package/dist/jsx/fields/ToggleGroup/index.native.js.map +1 -0
  794. package/dist/jsx/index.js +55 -0
  795. package/dist/jsx/index.js.map +1 -0
  796. package/dist/jsx/index.mjs +55 -0
  797. package/dist/jsx/index.mjs.map +1 -0
  798. package/dist/jsx/index.native.js +148 -0
  799. package/dist/jsx/index.native.js.map +1 -0
  800. package/dist/jsx/schemaForm/index.mjs +165 -0
  801. package/dist/jsx/schemaForm/index.mjs.map +1 -0
  802. package/dist/jsx/schemaForm/index.native.js +243 -0
  803. package/dist/jsx/schemaForm/index.native.js.map +1 -0
  804. package/dist/jsx/useFrappePagination.mjs +36 -0
  805. package/dist/jsx/useFrappePagination.mjs.map +1 -0
  806. package/dist/jsx/useFrappePagination.native.js +73 -0
  807. package/dist/jsx/useFrappePagination.native.js.map +1 -0
  808. package/package.json +120 -0
  809. package/src/FormSidebar.tsx +215 -0
  810. package/src/FrappeCalendar.stories.tsx +246 -0
  811. package/src/FrappeCalendar.tsx +201 -0
  812. package/src/FrappeDashboard.stories.tsx +196 -0
  813. package/src/FrappeDashboard.tsx +199 -0
  814. package/src/FrappeForm.stories.tsx +250 -0
  815. package/src/FrappeForm.tsx +485 -0
  816. package/src/FrappeImageView.tsx +360 -0
  817. package/src/FrappeKanban.stories.tsx +172 -0
  818. package/src/FrappeKanban.tsx +190 -0
  819. package/src/FrappeList.stories.tsx +178 -0
  820. package/src/FrappeList.tsx +79 -0
  821. package/src/FrappeListView.tsx +421 -0
  822. package/src/FrappeProvider.tsx +144 -0
  823. package/src/FrappeReportBuilder.tsx +405 -0
  824. package/src/FrappeTable.stories.tsx +220 -0
  825. package/src/FrappeTable.tsx +402 -0
  826. package/src/FrappeTreeView.tsx +332 -0
  827. package/src/components/attachments.tsx +86 -0
  828. package/src/components/tags.tsx +108 -0
  829. package/src/components/timeline.tsx +226 -0
  830. package/src/desk/DeskFormPage.tsx +114 -0
  831. package/src/desk/DeskListPage.tsx +104 -0
  832. package/src/desk/DeskShell.tsx +123 -0
  833. package/src/desk/DeskSidebar.tsx +185 -0
  834. package/src/desk/awesomebar.tsx +370 -0
  835. package/src/fieldRegistry.ts +589 -0
  836. package/src/fields/Barcode/index.tsx +82 -0
  837. package/src/fields/Check/Check.stories.tsx +60 -0
  838. package/src/fields/Check/index.tsx +76 -0
  839. package/src/fields/Color/Color.stories.tsx +70 -0
  840. package/src/fields/Color/index.tsx +84 -0
  841. package/src/fields/Data/Data.stories.tsx +75 -0
  842. package/src/fields/Data/index.tsx +86 -0
  843. package/src/fields/Date/Date.stories.tsx +154 -0
  844. package/src/fields/Date/date.native.tsx +346 -0
  845. package/src/fields/Date/index.tsx +80 -0
  846. package/src/fields/DateRange/index.tsx +73 -0
  847. package/src/fields/Duration/index.tsx +11 -0
  848. package/src/fields/DynamicLink.tsx +139 -0
  849. package/src/fields/FileUpload.tsx +204 -0
  850. package/src/fields/FileUploadField/index.tsx +80 -0
  851. package/src/fields/Geolocation/index.tsx +76 -0
  852. package/src/fields/HTML/index.tsx +50 -0
  853. package/src/fields/Heading/Heading.stories.tsx +112 -0
  854. package/src/fields/Heading/index.tsx +103 -0
  855. package/src/fields/Link.tsx +271 -0
  856. package/src/fields/LongText/index.tsx +85 -0
  857. package/src/fields/MentionInput/index.tsx +105 -0
  858. package/src/fields/Numeric/Numeric.stories.tsx +81 -0
  859. package/src/fields/Numeric/index.tsx +103 -0
  860. package/src/fields/OTPInput/index.tsx +83 -0
  861. package/src/fields/Password/index.tsx +80 -0
  862. package/src/fields/Phone/index.tsx +77 -0
  863. package/src/fields/Progress/index.tsx +71 -0
  864. package/src/fields/RadioGroup/index.tsx +87 -0
  865. package/src/fields/Rating/index.tsx +78 -0
  866. package/src/fields/ReadOnly/ReadOnly.stories.tsx +96 -0
  867. package/src/fields/ReadOnly/index.tsx +281 -0
  868. package/src/fields/Select/Select.stories.tsx +75 -0
  869. package/src/fields/Select/index.tsx +83 -0
  870. package/src/fields/Signature/index.tsx +88 -0
  871. package/src/fields/Slider/index.tsx +85 -0
  872. package/src/fields/SmallText/index.tsx +83 -0
  873. package/src/fields/Switch/index.tsx +76 -0
  874. package/src/fields/TableMultiSelect.tsx +184 -0
  875. package/src/fields/TextEditor/index.native.tsx +40 -0
  876. package/src/fields/TextEditor/index.tsx +262 -0
  877. package/src/fields/TextEditor/tiptap.css +126 -0
  878. package/src/fields/TextEditor/types.ts +14 -0
  879. package/src/fields/TimePicker/index.tsx +11 -0
  880. package/src/fields/ToggleGroup/index.tsx +87 -0
  881. package/src/index.ts +184 -0
  882. package/src/schemaForm/index.tsx +252 -0
  883. package/src/useFrappePagination.ts +85 -0
@@ -0,0 +1,76 @@
1
+ import type { FormFieldProps, FieldComponentProps } from "@multiplatform.one/forms";
2
+ import { Switch as FormsSwitch } from "@multiplatform.one/forms";
3
+ import type { DeepKeys } from "@tanstack/form-core";
4
+ import { useProps } from "tamagui";
5
+
6
+ export type SwitchFieldProps<
7
+ TData extends Record<string, unknown> = Record<string, unknown>,
8
+ TName extends string = string,
9
+ > = Omit<
10
+ FormFieldProps<
11
+ TData,
12
+ TName extends DeepKeys<TData> ? TName : DeepKeys<TData>,
13
+ unknown,
14
+ unknown,
15
+ boolean
16
+ >,
17
+ "children" | "field"
18
+ > &
19
+ Partial<
20
+ Omit<
21
+ FieldComponentProps<
22
+ TData,
23
+ TName extends DeepKeys<TData> ? TName : DeepKeys<TData>,
24
+ unknown,
25
+ unknown,
26
+ boolean
27
+ >,
28
+ "children"
29
+ >
30
+ > & {
31
+ value?: boolean;
32
+ onChange?: (value: boolean) => void;
33
+ disabled?: boolean;
34
+ switchProps?: Record<string, unknown>;
35
+ };
36
+
37
+ export function SwitchField<
38
+ TData extends Record<string, unknown> = Record<string, unknown>,
39
+ TName extends string = string,
40
+ >(props: SwitchFieldProps<TData, TName>) {
41
+ const {
42
+ switchProps,
43
+ defaultValue,
44
+ form,
45
+ name,
46
+ onBlur,
47
+ onChange,
48
+ validators,
49
+ disabled,
50
+ value,
51
+ mode: _mode,
52
+ preserveValue: _preserveValue,
53
+ ...fieldProps
54
+ } = useProps(props);
55
+
56
+ return (
57
+ <FormsSwitch
58
+ name={name}
59
+ form={form}
60
+ validators={validators}
61
+ defaultValue={defaultValue as boolean}
62
+ label={fieldProps.label}
63
+ labelProps={fieldProps.labelProps}
64
+ error={fieldProps.error}
65
+ helperText={fieldProps.helperText}
66
+ required={fieldProps.required}
67
+ id={fieldProps.id}
68
+ size={fieldProps.size}
69
+ checked={value}
70
+ onCheckedChange={(checked) => onChange?.(checked === true)}
71
+ onBlur={onBlur}
72
+ disabled={disabled}
73
+ switchProps={switchProps as any}
74
+ />
75
+ );
76
+ }
@@ -0,0 +1,184 @@
1
+ import { useFrappeCollection, useLiveQuery } from "@multiplatform.one/frappe";
2
+ import { CaretDownIcon, CheckIcon, XIcon } from "@phosphor-icons/react";
3
+ import { useResolvedKnobs } from "@multiplatform.one/theme";
4
+ import React, { useMemo, useState } from "react";
5
+ import {
6
+ Button,
7
+ Checkbox,
8
+ Label,
9
+ ListItem,
10
+ Popover,
11
+ ScrollView,
12
+ Text,
13
+ XStack,
14
+ YStack,
15
+ } from "tamagui";
16
+ import { useFrappeConfig } from "../FrappeProvider";
17
+
18
+ export interface TableMultiSelectOption {
19
+ name: string;
20
+ doctype: string;
21
+ [key: string]: any;
22
+ }
23
+
24
+ export interface TableMultiSelectProps {
25
+ label?: string;
26
+ value: string[];
27
+ onChange: (value: string[]) => void;
28
+ doctype: string;
29
+ displayField?: string;
30
+ disabled?: boolean;
31
+ required?: boolean;
32
+ maxSelections?: number;
33
+ baseURL?: string;
34
+ auth?: any;
35
+ }
36
+
37
+ export function TableMultiSelect({
38
+ label,
39
+ value = [],
40
+ onChange,
41
+ doctype,
42
+ displayField = "name",
43
+ disabled = false,
44
+ required = false,
45
+ maxSelections,
46
+ baseURL,
47
+ auth,
48
+ }: TableMultiSelectProps) {
49
+ const { knobProps } = useResolvedKnobs();
50
+ const config = useFrappeConfig();
51
+ const [open, setOpen] = useState(false);
52
+
53
+ const finalBaseURL = baseURL ?? config?.baseURL ?? "";
54
+ const finalConfig = finalBaseURL
55
+ ? {
56
+ baseURL: finalBaseURL,
57
+ socketPort: config?.socketPort,
58
+ auth: auth ?? config?.auth,
59
+ syncOptions: config?.syncOptions,
60
+ fixtures: config?.fixtures,
61
+ }
62
+ : undefined;
63
+
64
+ const optionsCollection = useFrappeCollection<TableMultiSelectOption>(finalConfig, doctype, {
65
+ fields: ["name", displayField],
66
+ });
67
+ const { data: rawOptions } = useLiveQuery(
68
+ (q) => (optionsCollection ? q.from({ _list: optionsCollection }) : null),
69
+ [optionsCollection],
70
+ );
71
+ const options = useMemo(() => (rawOptions as TableMultiSelectOption[]) ?? [], [rawOptions]);
72
+
73
+ const handleToggle = (optionName: string) => {
74
+ if (value.includes(optionName)) {
75
+ onChange(value.filter((v) => v !== optionName));
76
+ } else {
77
+ if (maxSelections && value.length >= maxSelections) return;
78
+ onChange([...value, optionName]);
79
+ }
80
+ };
81
+
82
+ const handleRemove = (optionName: string) => {
83
+ onChange(value.filter((v) => v !== optionName));
84
+ };
85
+
86
+ const selectedOptions = options.filter((opt) => value.includes(opt.name || ""));
87
+
88
+ return (
89
+ <YStack {...knobProps.gap}>
90
+ {label && (
91
+ <Label>
92
+ {label}
93
+ {required && <Text color="$red10"> *</Text>}
94
+ </Label>
95
+ )}
96
+
97
+ <Popover open={open} onOpenChange={setOpen} placement="bottom">
98
+ <Popover.Trigger asChild>
99
+ <Button
100
+ size="$3"
101
+ iconAfter={CaretDownIcon}
102
+ disabled={disabled}
103
+ justifyContent="space-between"
104
+ >
105
+ {value.length > 0 ? `${value.length} selected` : "Select options"}
106
+ </Button>
107
+ </Popover.Trigger>
108
+
109
+ <Popover.Content
110
+ borderColor="$borderColor"
111
+ enterStyle={{ y: -10, opacity: 0 }}
112
+ exitStyle={{ y: -10, opacity: 0 }}
113
+ >
114
+ <Popover.Arrow borderWidth={1} borderColor="$borderColor" />
115
+
116
+ <YStack minWidth={250} maxHeight={300}>
117
+ <ScrollView>
118
+ <YStack>
119
+ {options?.map((option) => {
120
+ const isChecked = value.includes(option.name || "");
121
+ const isDisabled =
122
+ disabled || (!isChecked && !!maxSelections && value.length >= maxSelections);
123
+ const displayLabel =
124
+ displayField !== "name" && option[displayField]
125
+ ? option[displayField]
126
+ : option.name;
127
+
128
+ return (
129
+ <ListItem
130
+ key={option.name}
131
+ title={displayLabel}
132
+ size={knobProps.sizeToken}
133
+ icon={
134
+ <Checkbox
135
+ {...({
136
+ checked: isChecked,
137
+ disabled: !!isDisabled,
138
+ onCheckedChange: () => !isDisabled && handleToggle(option.name || ""),
139
+ } as any)}
140
+ >
141
+ <Checkbox.Indicator>
142
+ <CheckIcon size={12} />
143
+ </Checkbox.Indicator>
144
+ </Checkbox>
145
+ }
146
+ hoverStyle={{ backgroundColor: "$color2" }}
147
+ cursor={isDisabled ? "not-allowed" : "pointer"}
148
+ opacity={isDisabled ? 0.5 : 1}
149
+ onPress={() => !isDisabled && handleToggle(option.name || "")}
150
+ />
151
+ );
152
+ })}
153
+ </YStack>
154
+ </ScrollView>
155
+ </YStack>
156
+ </Popover.Content>
157
+ </Popover>
158
+
159
+ {selectedOptions.length > 0 && (
160
+ <XStack flexWrap="wrap" {...knobProps.gap}>
161
+ {selectedOptions.map((option) => (
162
+ <Button
163
+ key={option.name}
164
+ size="$2"
165
+ theme="active"
166
+ iconAfter={
167
+ <Button
168
+ size="$1"
169
+ chromeless
170
+ circular
171
+ icon={XIcon}
172
+ disabled={disabled}
173
+ onPress={() => handleRemove(option.name || "")}
174
+ />
175
+ }
176
+ >
177
+ {displayField !== "name" && option[displayField] ? option[displayField] : option.name}
178
+ </Button>
179
+ ))}
180
+ </XStack>
181
+ )}
182
+ </YStack>
183
+ );
184
+ }
@@ -0,0 +1,40 @@
1
+ import { RichTextEditor } from "@multiplatform.one/rich-text";
2
+ import { YStack } from "tamagui";
3
+ import type { TextEditorProps } from "./types";
4
+
5
+ export type { TextEditorProps } from "./types";
6
+
7
+ /**
8
+ * Native TextEditor.
9
+ *
10
+ * Routes through the `@multiplatform.one/rich-text` wrapper, whose native build
11
+ * renders the `@10play/tentap-editor` WebView editor. This keeps `@tiptap` +
12
+ * `prosemirror` (web-only DOM) out of the Hermes bundle while preserving the
13
+ * same HTML `value` / `onChange(html)` contract as the web `TextEditor`.
14
+ */
15
+ export function TextEditor({
16
+ label,
17
+ value,
18
+ onChange,
19
+ disabled,
20
+ required,
21
+ error,
22
+ placeholder,
23
+ minHeight = 200,
24
+ ...rest
25
+ }: TextEditorProps) {
26
+ return (
27
+ <YStack {...rest}>
28
+ <RichTextEditor
29
+ label={label}
30
+ value={value}
31
+ onChange={(v: any) => onChange(v)}
32
+ disabled={disabled}
33
+ required={required}
34
+ error={error}
35
+ placeholder={placeholder}
36
+ minHeight={minHeight}
37
+ />
38
+ </YStack>
39
+ );
40
+ }
@@ -0,0 +1,262 @@
1
+ import { useResolvedKnobs } from "@multiplatform.one/theme";
2
+ import { dialog } from "@multiplatform.one/desktop";
3
+ import { useEditor, EditorContent, type Editor } from "@tiptap/react";
4
+ import StarterKit from "@tiptap/starter-kit";
5
+ import Link from "@tiptap/extension-link";
6
+ import TiptapImage from "@tiptap/extension-image";
7
+ import { Placeholder } from "@tiptap/extension-placeholder";
8
+ import "./tiptap.css";
9
+ import type React from "react";
10
+ import { useCallback, useEffect } from "react";
11
+ import type { IconWeight } from "@phosphor-icons/react";
12
+ import {
13
+ TextBIcon,
14
+ TextItalicIcon,
15
+ TextStrikethroughIcon,
16
+ ListBulletsIcon,
17
+ ListNumbersIcon,
18
+ QuotesIcon,
19
+ CodeSimpleIcon,
20
+ LinkSimpleIcon,
21
+ ImageSquareIcon,
22
+ ArrowUUpLeftIcon,
23
+ ArrowUUpRightIcon,
24
+ TextHOneIcon,
25
+ TextHTwoIcon,
26
+ TextHThreeIcon,
27
+ MinusIcon,
28
+ } from "@phosphor-icons/react";
29
+ import { Button, Label, Text, XStack, YStack } from "tamagui";
30
+
31
+ export type { TextEditorProps } from "./types";
32
+ import type { TextEditorProps } from "./types";
33
+
34
+ interface ToolbarButtonProps {
35
+ icon: React.ForwardRefExoticComponent<
36
+ React.ComponentPropsWithoutRef<"svg"> &
37
+ React.RefAttributes<SVGSVGElement> & {
38
+ size?: string | number;
39
+ weight?: IconWeight;
40
+ }
41
+ >;
42
+ onPress: () => void;
43
+ isActive?: boolean;
44
+ disabled?: boolean;
45
+ label: string;
46
+ }
47
+
48
+ function ToolbarButton({ icon: Icon, onPress, isActive, disabled, label }: ToolbarButtonProps) {
49
+ return (
50
+ <Button
51
+ size="$2"
52
+ chromeless
53
+ backgroundColor={isActive ? "$color5" : "transparent"}
54
+ hoverStyle={{ backgroundColor: "$color4" }}
55
+ pressStyle={{ backgroundColor: "$color5" }}
56
+ onPress={onPress}
57
+ disabled={disabled}
58
+ opacity={disabled ? 0.4 : 1}
59
+ aria-label={label}
60
+ padding="$1"
61
+ minWidth="$2"
62
+ height="$2"
63
+ >
64
+ <Icon size={16} weight={isActive ? "bold" : "regular"} />
65
+ </Button>
66
+ );
67
+ }
68
+
69
+ function ToolbarSeparator() {
70
+ return <YStack width={1} height="$1" backgroundColor="$color6" marginHorizontal="$1" />;
71
+ }
72
+
73
+ function EditorToolbar({ editor }: { editor: Editor }) {
74
+ const { knobProps: _knobProps } = useResolvedKnobs();
75
+ const addLink = useCallback(async () => {
76
+ const previousUrl = editor.getAttributes("link").href;
77
+ const url = await dialog.prompt("Enter URL", previousUrl || "https://");
78
+ if (url === null) return;
79
+ if (url === "") {
80
+ editor.chain().focus().extendMarkRange("link").unsetLink().run();
81
+ return;
82
+ }
83
+ editor.chain().focus().extendMarkRange("link").setLink({ href: url }).run();
84
+ }, [editor]);
85
+
86
+ const addImage = useCallback(async () => {
87
+ const url = await dialog.prompt("Enter image URL");
88
+ if (url) editor.chain().focus().setImage({ src: url }).run();
89
+ }, [editor]);
90
+
91
+ return (
92
+ <XStack
93
+ flexWrap="wrap"
94
+ gap="$0.5"
95
+ padding="$1.5"
96
+ borderBottomWidth={1}
97
+ borderBottomColor="$borderColor"
98
+ {...{ backgroundColor: "$color2" }}
99
+ alignItems="center"
100
+ >
101
+ <ToolbarButton
102
+ icon={TextBIcon}
103
+ onPress={() => editor.chain().focus().toggleBold().run()}
104
+ isActive={editor.isActive("bold")}
105
+ label="Bold"
106
+ />
107
+ <ToolbarButton
108
+ icon={TextItalicIcon}
109
+ onPress={() => editor.chain().focus().toggleItalic().run()}
110
+ isActive={editor.isActive("italic")}
111
+ label="Italic"
112
+ />
113
+ <ToolbarButton
114
+ icon={TextStrikethroughIcon}
115
+ onPress={() => editor.chain().focus().toggleStrike().run()}
116
+ isActive={editor.isActive("strike")}
117
+ label="Strikethrough"
118
+ />
119
+ <ToolbarButton
120
+ icon={CodeSimpleIcon}
121
+ onPress={() => editor.chain().focus().toggleCode().run()}
122
+ isActive={editor.isActive("code")}
123
+ label="Inline Code"
124
+ />
125
+ <ToolbarSeparator />
126
+ <ToolbarButton
127
+ icon={TextHOneIcon}
128
+ onPress={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}
129
+ isActive={editor.isActive("heading", { level: 1 })}
130
+ label="Heading 1"
131
+ />
132
+ <ToolbarButton
133
+ icon={TextHTwoIcon}
134
+ onPress={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}
135
+ isActive={editor.isActive("heading", { level: 2 })}
136
+ label="Heading 2"
137
+ />
138
+ <ToolbarButton
139
+ icon={TextHThreeIcon}
140
+ onPress={() => editor.chain().focus().toggleHeading({ level: 3 }).run()}
141
+ isActive={editor.isActive("heading", { level: 3 })}
142
+ label="Heading 3"
143
+ />
144
+ <ToolbarSeparator />
145
+ <ToolbarButton
146
+ icon={ListBulletsIcon}
147
+ onPress={() => editor.chain().focus().toggleBulletList().run()}
148
+ isActive={editor.isActive("bulletList")}
149
+ label="Bullet List"
150
+ />
151
+ <ToolbarButton
152
+ icon={ListNumbersIcon}
153
+ onPress={() => editor.chain().focus().toggleOrderedList().run()}
154
+ isActive={editor.isActive("orderedList")}
155
+ label="Ordered List"
156
+ />
157
+ <ToolbarButton
158
+ icon={QuotesIcon}
159
+ onPress={() => editor.chain().focus().toggleBlockquote().run()}
160
+ isActive={editor.isActive("blockquote")}
161
+ label="Blockquote"
162
+ />
163
+ <ToolbarButton
164
+ icon={MinusIcon}
165
+ onPress={() => editor.chain().focus().setHorizontalRule().run()}
166
+ label="Horizontal Rule"
167
+ />
168
+ <ToolbarSeparator />
169
+ <ToolbarButton
170
+ icon={LinkSimpleIcon}
171
+ onPress={addLink}
172
+ isActive={editor.isActive("link")}
173
+ label="Link"
174
+ />
175
+ <ToolbarButton icon={ImageSquareIcon} onPress={addImage} label="Image" />
176
+ <ToolbarSeparator />
177
+ <ToolbarButton
178
+ icon={ArrowUUpLeftIcon}
179
+ onPress={() => editor.chain().focus().undo().run()}
180
+ disabled={!editor.can().undo()}
181
+ label="Undo"
182
+ />
183
+ <ToolbarButton
184
+ icon={ArrowUUpRightIcon}
185
+ onPress={() => editor.chain().focus().redo().run()}
186
+ disabled={!editor.can().redo()}
187
+ label="Redo"
188
+ />
189
+ </XStack>
190
+ );
191
+ }
192
+
193
+ export function TextEditor({
194
+ label,
195
+ value = "",
196
+ onChange,
197
+ disabled = false,
198
+ required = false,
199
+ error,
200
+ placeholder = "Start writing...",
201
+ minHeight = 200,
202
+ ...stackProps
203
+ }: TextEditorProps) {
204
+ const { knobProps } = useResolvedKnobs();
205
+
206
+ const editor = useEditor({
207
+ immediatelyRender: false,
208
+ extensions: [
209
+ StarterKit,
210
+ Link.configure({
211
+ openOnClick: false,
212
+ HTMLAttributes: { rel: "noopener noreferrer", target: "_blank" },
213
+ }),
214
+ TiptapImage,
215
+ Placeholder.configure({ placeholder }),
216
+ ],
217
+ content: value,
218
+ editable: !disabled,
219
+ onUpdate: ({ editor: ed }) => {
220
+ onChange(ed.getHTML());
221
+ },
222
+ });
223
+
224
+ useEffect(() => {
225
+ if (editor && value !== editor.getHTML()) editor.commands.setContent(value);
226
+ }, [value, editor]);
227
+
228
+ useEffect(() => {
229
+ if (editor) editor.setEditable(!disabled);
230
+ }, [disabled, editor]);
231
+
232
+ return (
233
+ <YStack {...knobProps.gap} {...stackProps}>
234
+ {label && (
235
+ <Label size={knobProps.sizeToken}>
236
+ {label}
237
+ {required && <Text color="$red10"> *</Text>}
238
+ </Label>
239
+ )}
240
+ <YStack
241
+ {...knobProps.borderRadius}
242
+ borderColor={error ? "$red8" : "$borderColor"}
243
+ overflow="hidden"
244
+ opacity={disabled ? 0.6 : 1}
245
+ >
246
+ {editor && !disabled && <EditorToolbar editor={editor} />}
247
+ <YStack
248
+ minHeight={minHeight}
249
+ {...knobProps.panelPadding}
250
+ cursor={disabled ? "not-allowed" : "text"}
251
+ >
252
+ <EditorContent editor={editor} />
253
+ </YStack>
254
+ </YStack>
255
+ {error && (
256
+ <Text color="$red10" fontSize="$2">
257
+ {error}
258
+ </Text>
259
+ )}
260
+ </YStack>
261
+ );
262
+ }
@@ -0,0 +1,126 @@
1
+ /* Tiptap editor base styles for TextEditorField
2
+ *
3
+ * Colors use Tamagui CSS custom properties so they update with theme changes.
4
+ * Tamagui generates variables like --color6, --blue10, etc.
5
+ */
6
+
7
+ .tiptap {
8
+ outline: none;
9
+ min-height: 100%;
10
+ color: var(--color);
11
+ }
12
+
13
+ .tiptap p {
14
+ margin: 0.5em 0;
15
+ }
16
+
17
+ .tiptap h1 {
18
+ font-size: 1.75em;
19
+ font-weight: 700;
20
+ margin: 0.67em 0;
21
+ }
22
+
23
+ .tiptap h2 {
24
+ font-size: 1.4em;
25
+ font-weight: 600;
26
+ margin: 0.6em 0;
27
+ }
28
+
29
+ .tiptap h3 {
30
+ font-size: 1.17em;
31
+ font-weight: 600;
32
+ margin: 0.5em 0;
33
+ }
34
+
35
+ .tiptap ul,
36
+ .tiptap ol {
37
+ padding-left: 1.5em;
38
+ margin: 0.5em 0;
39
+ }
40
+
41
+ .tiptap ul {
42
+ list-style-type: disc;
43
+ }
44
+
45
+ .tiptap ol {
46
+ list-style-type: decimal;
47
+ }
48
+
49
+ .tiptap li {
50
+ margin: 0.2em 0;
51
+ }
52
+
53
+ .tiptap blockquote {
54
+ border-left: 3px solid var(--color8);
55
+ padding-left: 1em;
56
+ margin: 0.5em 0;
57
+ color: var(--color11);
58
+ font-style: italic;
59
+ }
60
+
61
+ .tiptap pre {
62
+ background-color: var(--color3);
63
+ border-radius: 6px;
64
+ padding: 0.75em 1em;
65
+ font-family: "Fira Code", "Cascadia Code", "JetBrains Mono", monospace;
66
+ font-size: 0.9em;
67
+ overflow-x: auto;
68
+ margin: 0.5em 0;
69
+ }
70
+
71
+ .tiptap code {
72
+ background-color: var(--color4);
73
+ border-radius: 3px;
74
+ padding: 0.15em 0.3em;
75
+ font-family: "Fira Code", "Cascadia Code", "JetBrains Mono", monospace;
76
+ font-size: 0.9em;
77
+ }
78
+
79
+ .tiptap pre code {
80
+ background: none;
81
+ padding: 0;
82
+ border-radius: 0;
83
+ }
84
+
85
+ .tiptap a {
86
+ color: var(--blue10);
87
+ text-decoration: underline;
88
+ cursor: pointer;
89
+ }
90
+
91
+ .tiptap a:hover {
92
+ color: var(--blue11);
93
+ }
94
+
95
+ .tiptap hr {
96
+ border: none;
97
+ border-top: 1px solid var(--color6);
98
+ margin: 1em 0;
99
+ }
100
+
101
+ .tiptap img {
102
+ max-width: 100%;
103
+ height: auto;
104
+ border-radius: 4px;
105
+ }
106
+
107
+ .tiptap p.is-editor-empty:first-child::before {
108
+ content: attr(data-placeholder);
109
+ float: left;
110
+ color: var(--color9);
111
+ pointer-events: none;
112
+ height: 0;
113
+ font-style: italic;
114
+ }
115
+
116
+ .tiptap strong {
117
+ font-weight: 700;
118
+ }
119
+
120
+ .tiptap em {
121
+ font-style: italic;
122
+ }
123
+
124
+ .tiptap s {
125
+ text-decoration: line-through;
126
+ }
@@ -0,0 +1,14 @@
1
+ import type { YStackProps } from "tamagui";
2
+
3
+ export interface TextEditorProps extends Omit<YStackProps, "children" | "onChange"> {
4
+ label?: string;
5
+ /** HTML string value */
6
+ value?: string;
7
+ onChange: (value: string) => void;
8
+ disabled?: boolean;
9
+ required?: boolean;
10
+ error?: string;
11
+ placeholder?: string;
12
+ /** Minimum height in pixels (default 200) */
13
+ minHeight?: number;
14
+ }