@multiplatform.one/frappe-ui 7.4.1 → 7.6.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.
- package/dist/cjs/FileBrowser/AttachLibrary.cjs +111 -0
- package/dist/cjs/FileBrowser/AttachLibrary.native.js +115 -0
- package/dist/cjs/FileBrowser/AttachLibrary.native.js.map +1 -0
- package/dist/cjs/FileBrowser/folderTree.cjs +84 -0
- package/dist/cjs/FileBrowser/folderTree.native.js +94 -0
- package/dist/cjs/FileBrowser/folderTree.native.js.map +1 -0
- package/dist/cjs/FileBrowser/index.cjs +690 -0
- package/dist/cjs/FileBrowser/index.native.js +781 -0
- package/dist/cjs/FileBrowser/index.native.js.map +1 -0
- package/dist/cjs/FileBrowser/types.cjs +18 -0
- package/dist/cjs/FileBrowser/types.native.js +21 -0
- package/dist/cjs/FileBrowser/types.native.js.map +1 -0
- package/dist/cjs/FileBrowser/viewPersistence.cjs +55 -0
- package/dist/cjs/FileBrowser/viewPersistence.native.js +60 -0
- package/dist/cjs/FileBrowser/viewPersistence.native.js.map +1 -0
- package/dist/cjs/FormSidebar.cjs +47 -47
- package/dist/cjs/FormSidebar.native.js +48 -50
- package/dist/cjs/FormSidebar.native.js.map +1 -1
- package/dist/cjs/FrappeAssignment.cjs +18 -13
- package/dist/cjs/FrappeAssignment.native.js +19 -13
- package/dist/cjs/FrappeAssignment.native.js.map +1 -1
- package/dist/cjs/FrappeCalendar.cjs +11 -10
- package/dist/cjs/FrappeCalendar.native.js +11 -10
- package/dist/cjs/FrappeCalendar.native.js.map +1 -1
- package/dist/cjs/FrappeChartCard.cjs +6 -15
- package/dist/cjs/FrappeChartCard.native.js +6 -15
- package/dist/cjs/FrappeChartCard.native.js.map +1 -1
- package/dist/cjs/FrappeDashboard.cjs +12 -9
- package/dist/cjs/FrappeDashboard.native.js +12 -9
- package/dist/cjs/FrappeDashboard.native.js.map +1 -1
- package/dist/cjs/FrappeForm.cjs +36 -25
- package/dist/cjs/FrappeForm.native.js +36 -25
- package/dist/cjs/FrappeForm.native.js.map +1 -1
- package/dist/cjs/FrappeGantt.cjs +7 -5
- package/dist/cjs/FrappeGantt.native.js +7 -5
- package/dist/cjs/FrappeGantt.native.js.map +1 -1
- package/dist/cjs/FrappeImageView.cjs +22 -22
- package/dist/cjs/FrappeImageView.native.js +24 -22
- package/dist/cjs/FrappeImageView.native.js.map +1 -1
- package/dist/cjs/FrappeKPICard.cjs +7 -29
- package/dist/cjs/FrappeKPICard.native.js +7 -29
- package/dist/cjs/FrappeKPICard.native.js.map +1 -1
- package/dist/cjs/FrappeKanban.cjs +11 -13
- package/dist/cjs/FrappeKanban.native.js +11 -13
- package/dist/cjs/FrappeKanban.native.js.map +1 -1
- package/dist/cjs/FrappeLikedBy.cjs +5 -5
- package/dist/cjs/FrappeLikedBy.native.js +6 -6
- package/dist/cjs/FrappeLikedBy.native.js.map +1 -1
- package/dist/cjs/FrappeListView.cjs +32 -33
- package/dist/cjs/FrappeListView.native.js +37 -39
- package/dist/cjs/FrappeListView.native.js.map +1 -1
- package/dist/cjs/FrappeReportBuilder.cjs +30 -46
- package/dist/cjs/FrappeReportBuilder.native.js +30 -42
- package/dist/cjs/FrappeReportBuilder.native.js.map +1 -1
- package/dist/cjs/FrappeReportView.cjs +5 -5
- package/dist/cjs/FrappeReportView.native.js +5 -5
- package/dist/cjs/FrappeReportView.native.js.map +1 -1
- package/dist/cjs/FrappeTreeView.cjs +9 -6
- package/dist/cjs/FrappeTreeView.native.js +10 -6
- package/dist/cjs/FrappeTreeView.native.js.map +1 -1
- package/dist/cjs/desk/DeskFormPage.cjs +3 -3
- package/dist/cjs/desk/DeskFormPage.native.js +3 -3
- package/dist/cjs/desk/DeskFormPage.native.js.map +1 -1
- package/dist/cjs/desk/DeskListPage.cjs +2 -2
- package/dist/cjs/desk/DeskListPage.native.js +2 -2
- package/dist/cjs/desk/DeskListPage.native.js.map +1 -1
- package/dist/cjs/desk/DeskShell.cjs +58 -38
- package/dist/cjs/desk/DeskShell.native.js +63 -44
- package/dist/cjs/desk/DeskShell.native.js.map +1 -1
- package/dist/cjs/desk/awesomebar.cjs +28 -16
- package/dist/cjs/desk/awesomebar.native.js +28 -16
- package/dist/cjs/desk/awesomebar.native.js.map +1 -1
- package/dist/cjs/fieldRegistry.cjs +64 -3
- package/dist/cjs/fieldRegistry.native.js +69 -3
- package/dist/cjs/fieldRegistry.native.js.map +1 -1
- package/dist/cjs/fields/Check/index.cjs +1 -1
- package/dist/cjs/fields/Check/index.native.js +1 -1
- package/dist/cjs/fields/Check/index.native.js.map +1 -1
- package/dist/cjs/fields/Color/index.cjs +1 -1
- package/dist/cjs/fields/Color/index.native.js +1 -1
- package/dist/cjs/fields/Color/index.native.js.map +1 -1
- package/dist/cjs/fields/Data/index.native.js.map +1 -1
- package/dist/cjs/fields/Date/index.native.js +47 -34
- package/dist/cjs/fields/Date/index.native.js.map +1 -1
- package/dist/cjs/fields/Date/sheetKeyboard.cjs +54 -0
- package/dist/cjs/fields/Date/sheetKeyboard.native.js +57 -0
- package/dist/cjs/fields/Date/sheetKeyboard.native.js.map +1 -0
- package/dist/cjs/fields/DynamicLink.cjs +37 -128
- package/dist/cjs/fields/DynamicLink.native.js +40 -138
- package/dist/cjs/fields/DynamicLink.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload.cjs +233 -50
- package/dist/cjs/fields/FileUpload.native.js +242 -51
- package/dist/cjs/fields/FileUpload.native.js.map +1 -1
- package/dist/cjs/fields/FileUploadField/index.cjs +53 -20
- package/dist/cjs/fields/FileUploadField/index.native.js +56 -20
- package/dist/cjs/fields/FileUploadField/index.native.js.map +1 -1
- package/dist/cjs/fields/HTML/index.cjs +30 -51
- package/dist/cjs/fields/HTML/index.native.js +30 -51
- package/dist/cjs/fields/HTML/index.native.js.map +1 -1
- package/dist/cjs/fields/Icon/index.cjs +73 -0
- package/dist/cjs/fields/Icon/index.native.js +76 -0
- package/dist/cjs/fields/Icon/index.native.js.map +1 -0
- package/dist/cjs/fields/Link.cjs +34 -8
- package/dist/cjs/fields/Link.native.js +35 -9
- package/dist/cjs/fields/Link.native.js.map +1 -1
- package/dist/cjs/fields/LinkTree.cjs +114 -0
- package/dist/cjs/fields/LinkTree.native.js +125 -0
- package/dist/cjs/fields/LinkTree.native.js.map +1 -0
- package/dist/cjs/fields/LongText/index.cjs +6 -4
- package/dist/cjs/fields/LongText/index.native.js +6 -4
- package/dist/cjs/fields/LongText/index.native.js.map +1 -1
- package/dist/cjs/fields/Numeric/index.native.js.map +1 -1
- package/dist/cjs/fields/Password/index.cjs +178 -16
- package/dist/cjs/fields/Password/index.native.js +186 -16
- package/dist/cjs/fields/Password/index.native.js.map +1 -1
- package/dist/cjs/fields/Phone/index.native.js.map +1 -1
- package/dist/cjs/fields/ReadOnly/index.cjs +34 -48
- package/dist/cjs/fields/ReadOnly/index.native.js +34 -46
- package/dist/cjs/fields/ReadOnly/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/index.cjs +1 -1
- package/dist/cjs/fields/Select/index.native.js +1 -1
- package/dist/cjs/fields/Select/index.native.js.map +1 -1
- package/dist/cjs/fields/SmallText/index.cjs +4 -3
- package/dist/cjs/fields/SmallText/index.native.js +4 -3
- package/dist/cjs/fields/SmallText/index.native.js.map +1 -1
- package/dist/cjs/fields/TableMultiSelect.cjs +39 -150
- package/dist/cjs/fields/TableMultiSelect.native.js +44 -171
- package/dist/cjs/fields/TableMultiSelect.native.js.map +1 -1
- package/dist/cjs/fields/TextEditor/index.cjs +26 -293
- package/dist/cjs/index.cjs +9 -0
- package/dist/cjs/index.native.js +9 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/schemaForm/SchemaWizard.cjs +182 -0
- package/dist/cjs/schemaForm/SchemaWizard.native.js +232 -0
- package/dist/cjs/schemaForm/SchemaWizard.native.js.map +1 -0
- package/dist/cjs/schemaForm/index.cjs +1 -1
- package/dist/cjs/schemaForm/index.native.js +1 -1
- package/dist/cjs/schemaForm/index.native.js.map +1 -1
- package/dist/cjs/shared/useKeyboardInset.cjs +48 -0
- package/dist/cjs/shared/useKeyboardInset.native.js +53 -0
- package/dist/cjs/shared/useKeyboardInset.native.js.map +1 -0
- package/dist/esm/FileBrowser/AttachLibrary.mjs +86 -0
- package/dist/esm/FileBrowser/AttachLibrary.mjs.map +1 -0
- package/dist/esm/FileBrowser/AttachLibrary.native.js +87 -0
- package/dist/esm/FileBrowser/AttachLibrary.native.js.map +1 -0
- package/dist/esm/FileBrowser/folderTree.mjs +52 -0
- package/dist/esm/FileBrowser/folderTree.mjs.map +1 -0
- package/dist/esm/FileBrowser/folderTree.native.js +59 -0
- package/dist/esm/FileBrowser/folderTree.native.js.map +1 -0
- package/dist/esm/FileBrowser/index.mjs +665 -0
- package/dist/esm/FileBrowser/index.mjs.map +1 -0
- package/dist/esm/FileBrowser/index.native.js +753 -0
- package/dist/esm/FileBrowser/index.native.js.map +1 -0
- package/dist/esm/FileBrowser/types.mjs +2 -0
- package/dist/esm/FileBrowser/types.mjs.map +1 -0
- package/dist/esm/FileBrowser/types.native.js +2 -0
- package/dist/esm/FileBrowser/types.native.js.map +1 -0
- package/dist/esm/FileBrowser/viewPersistence.mjs +29 -0
- package/dist/esm/FileBrowser/viewPersistence.mjs.map +1 -0
- package/dist/esm/FileBrowser/viewPersistence.native.js +31 -0
- package/dist/esm/FileBrowser/viewPersistence.native.js.map +1 -0
- package/dist/esm/FormSidebar.mjs +46 -46
- package/dist/esm/FormSidebar.mjs.map +1 -1
- package/dist/esm/FormSidebar.native.js +47 -49
- package/dist/esm/FormSidebar.native.js.map +1 -1
- package/dist/esm/FrappeAssignment.mjs +19 -14
- package/dist/esm/FrappeAssignment.mjs.map +1 -1
- package/dist/esm/FrappeAssignment.native.js +20 -14
- package/dist/esm/FrappeAssignment.native.js.map +1 -1
- package/dist/esm/FrappeCalendar.mjs +12 -11
- package/dist/esm/FrappeCalendar.mjs.map +1 -1
- package/dist/esm/FrappeCalendar.native.js +12 -11
- package/dist/esm/FrappeCalendar.native.js.map +1 -1
- package/dist/esm/FrappeChartCard.mjs +7 -16
- package/dist/esm/FrappeChartCard.mjs.map +1 -1
- package/dist/esm/FrappeChartCard.native.js +7 -16
- package/dist/esm/FrappeChartCard.native.js.map +1 -1
- package/dist/esm/FrappeDashboard.mjs +12 -9
- package/dist/esm/FrappeDashboard.mjs.map +1 -1
- package/dist/esm/FrappeDashboard.native.js +12 -9
- package/dist/esm/FrappeDashboard.native.js.map +1 -1
- package/dist/esm/FrappeForm.mjs +35 -24
- package/dist/esm/FrappeForm.mjs.map +1 -1
- package/dist/esm/FrappeForm.native.js +35 -24
- package/dist/esm/FrappeForm.native.js.map +1 -1
- package/dist/esm/FrappeGantt.mjs +7 -5
- package/dist/esm/FrappeGantt.mjs.map +1 -1
- package/dist/esm/FrappeGantt.native.js +7 -5
- package/dist/esm/FrappeGantt.native.js.map +1 -1
- package/dist/esm/FrappeImageView.mjs +23 -23
- package/dist/esm/FrappeImageView.mjs.map +1 -1
- package/dist/esm/FrappeImageView.native.js +25 -23
- package/dist/esm/FrappeImageView.native.js.map +1 -1
- package/dist/esm/FrappeKPICard.mjs +7 -29
- package/dist/esm/FrappeKPICard.mjs.map +1 -1
- package/dist/esm/FrappeKPICard.native.js +7 -29
- package/dist/esm/FrappeKPICard.native.js.map +1 -1
- package/dist/esm/FrappeKanban.mjs +13 -15
- package/dist/esm/FrappeKanban.mjs.map +1 -1
- package/dist/esm/FrappeKanban.native.js +13 -15
- package/dist/esm/FrappeKanban.native.js.map +1 -1
- package/dist/esm/FrappeLikedBy.mjs +6 -6
- package/dist/esm/FrappeLikedBy.mjs.map +1 -1
- package/dist/esm/FrappeLikedBy.native.js +7 -7
- package/dist/esm/FrappeLikedBy.native.js.map +1 -1
- package/dist/esm/FrappeListView.mjs +33 -34
- package/dist/esm/FrappeListView.mjs.map +1 -1
- package/dist/esm/FrappeListView.native.js +38 -40
- package/dist/esm/FrappeListView.native.js.map +1 -1
- package/dist/esm/FrappeReportBuilder.mjs +27 -43
- package/dist/esm/FrappeReportBuilder.mjs.map +1 -1
- package/dist/esm/FrappeReportBuilder.native.js +27 -39
- package/dist/esm/FrappeReportBuilder.native.js.map +1 -1
- package/dist/esm/FrappeReportView.mjs +6 -6
- package/dist/esm/FrappeReportView.mjs.map +1 -1
- package/dist/esm/FrappeReportView.native.js +6 -6
- package/dist/esm/FrappeReportView.native.js.map +1 -1
- package/dist/esm/FrappeTreeView.mjs +9 -6
- package/dist/esm/FrappeTreeView.mjs.map +1 -1
- package/dist/esm/FrappeTreeView.native.js +10 -6
- package/dist/esm/FrappeTreeView.native.js.map +1 -1
- package/dist/esm/desk/DeskFormPage.mjs +3 -3
- package/dist/esm/desk/DeskFormPage.mjs.map +1 -1
- package/dist/esm/desk/DeskFormPage.native.js +3 -3
- package/dist/esm/desk/DeskFormPage.native.js.map +1 -1
- package/dist/esm/desk/DeskListPage.mjs +2 -2
- package/dist/esm/desk/DeskListPage.mjs.map +1 -1
- package/dist/esm/desk/DeskListPage.native.js +2 -2
- package/dist/esm/desk/DeskListPage.native.js.map +1 -1
- package/dist/esm/desk/DeskShell.mjs +48 -28
- package/dist/esm/desk/DeskShell.mjs.map +1 -1
- package/dist/esm/desk/DeskShell.native.js +52 -33
- package/dist/esm/desk/DeskShell.native.js.map +1 -1
- package/dist/esm/desk/awesomebar.mjs +29 -17
- package/dist/esm/desk/awesomebar.mjs.map +1 -1
- package/dist/esm/desk/awesomebar.native.js +29 -17
- package/dist/esm/desk/awesomebar.native.js.map +1 -1
- package/dist/esm/fieldRegistry.mjs +65 -4
- package/dist/esm/fieldRegistry.mjs.map +1 -1
- package/dist/esm/fieldRegistry.native.js +70 -4
- package/dist/esm/fieldRegistry.native.js.map +1 -1
- package/dist/esm/fields/Check/index.mjs +1 -1
- package/dist/esm/fields/Check/index.mjs.map +1 -1
- package/dist/esm/fields/Check/index.native.js +1 -1
- package/dist/esm/fields/Check/index.native.js.map +1 -1
- package/dist/esm/fields/Color/index.mjs +1 -1
- package/dist/esm/fields/Color/index.mjs.map +1 -1
- package/dist/esm/fields/Color/index.native.js +1 -1
- package/dist/esm/fields/Color/index.native.js.map +1 -1
- package/dist/esm/fields/Data/index.mjs.map +1 -1
- package/dist/esm/fields/Data/index.native.js.map +1 -1
- package/dist/esm/fields/Date/index.native.js +46 -33
- package/dist/esm/fields/Date/index.native.js.map +1 -1
- package/dist/esm/fields/Date/sheetKeyboard.mjs +21 -0
- package/dist/esm/fields/Date/sheetKeyboard.mjs.map +1 -0
- package/dist/esm/fields/Date/sheetKeyboard.native.js +21 -0
- package/dist/esm/fields/Date/sheetKeyboard.native.js.map +1 -0
- package/dist/esm/fields/DynamicLink.mjs +37 -128
- package/dist/esm/fields/DynamicLink.mjs.map +1 -1
- package/dist/esm/fields/DynamicLink.native.js +40 -138
- package/dist/esm/fields/DynamicLink.native.js.map +1 -1
- package/dist/esm/fields/FileUpload.mjs +234 -51
- package/dist/esm/fields/FileUpload.mjs.map +1 -1
- package/dist/esm/fields/FileUpload.native.js +243 -52
- package/dist/esm/fields/FileUpload.native.js.map +1 -1
- package/dist/esm/fields/FileUploadField/index.mjs +55 -22
- package/dist/esm/fields/FileUploadField/index.mjs.map +1 -1
- package/dist/esm/fields/FileUploadField/index.native.js +58 -22
- package/dist/esm/fields/FileUploadField/index.native.js.map +1 -1
- package/dist/esm/fields/HTML/index.mjs +33 -54
- package/dist/esm/fields/HTML/index.mjs.map +1 -1
- package/dist/esm/fields/HTML/index.native.js +33 -54
- package/dist/esm/fields/HTML/index.native.js.map +1 -1
- package/dist/esm/fields/Icon/index.mjs +48 -0
- package/dist/esm/fields/Icon/index.mjs.map +1 -0
- package/dist/esm/fields/Icon/index.native.js +48 -0
- package/dist/esm/fields/Icon/index.native.js.map +1 -0
- package/dist/esm/fields/Link.mjs +35 -9
- package/dist/esm/fields/Link.mjs.map +1 -1
- package/dist/esm/fields/Link.native.js +36 -10
- package/dist/esm/fields/Link.native.js.map +1 -1
- package/dist/esm/fields/LinkTree.mjs +89 -0
- package/dist/esm/fields/LinkTree.mjs.map +1 -0
- package/dist/esm/fields/LinkTree.native.js +97 -0
- package/dist/esm/fields/LinkTree.native.js.map +1 -0
- package/dist/esm/fields/LongText/index.mjs +7 -5
- package/dist/esm/fields/LongText/index.mjs.map +1 -1
- package/dist/esm/fields/LongText/index.native.js +7 -5
- package/dist/esm/fields/LongText/index.native.js.map +1 -1
- package/dist/esm/fields/Numeric/index.mjs.map +1 -1
- package/dist/esm/fields/Numeric/index.native.js.map +1 -1
- package/dist/esm/fields/Password/index.mjs +180 -18
- package/dist/esm/fields/Password/index.mjs.map +1 -1
- package/dist/esm/fields/Password/index.native.js +188 -18
- package/dist/esm/fields/Password/index.native.js.map +1 -1
- package/dist/esm/fields/Phone/index.mjs.map +1 -1
- package/dist/esm/fields/Phone/index.native.js.map +1 -1
- package/dist/esm/fields/ReadOnly/index.mjs +36 -50
- package/dist/esm/fields/ReadOnly/index.mjs.map +1 -1
- package/dist/esm/fields/ReadOnly/index.native.js +36 -48
- package/dist/esm/fields/ReadOnly/index.native.js.map +1 -1
- package/dist/esm/fields/Select/index.mjs +1 -1
- package/dist/esm/fields/Select/index.mjs.map +1 -1
- package/dist/esm/fields/Select/index.native.js +1 -1
- package/dist/esm/fields/Select/index.native.js.map +1 -1
- package/dist/esm/fields/SmallText/index.mjs +5 -4
- package/dist/esm/fields/SmallText/index.mjs.map +1 -1
- package/dist/esm/fields/SmallText/index.native.js +5 -4
- package/dist/esm/fields/SmallText/index.native.js.map +1 -1
- package/dist/esm/fields/TableMultiSelect.mjs +41 -152
- package/dist/esm/fields/TableMultiSelect.mjs.map +1 -1
- package/dist/esm/fields/TableMultiSelect.native.js +46 -173
- package/dist/esm/fields/TableMultiSelect.native.js.map +1 -1
- package/dist/esm/fields/TextEditor/index.mjs +28 -284
- package/dist/esm/fields/TextEditor/index.mjs.map +1 -1
- package/dist/esm/index.mjs +5 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +5 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/schemaForm/SchemaWizard.mjs +156 -0
- package/dist/esm/schemaForm/SchemaWizard.mjs.map +1 -0
- package/dist/esm/schemaForm/SchemaWizard.native.js +203 -0
- package/dist/esm/schemaForm/SchemaWizard.native.js.map +1 -0
- package/dist/esm/schemaForm/index.mjs +1 -1
- package/dist/esm/schemaForm/index.mjs.map +1 -1
- package/dist/esm/schemaForm/index.native.js +1 -1
- package/dist/esm/schemaForm/index.native.js.map +1 -1
- package/dist/esm/shared/useKeyboardInset.mjs +23 -0
- package/dist/esm/shared/useKeyboardInset.mjs.map +1 -0
- package/dist/esm/shared/useKeyboardInset.native.js +25 -0
- package/dist/esm/shared/useKeyboardInset.native.js.map +1 -0
- package/dist/jsx/FileBrowser/AttachLibrary.mjs +86 -0
- package/dist/jsx/FileBrowser/AttachLibrary.mjs.map +1 -0
- package/dist/jsx/FileBrowser/AttachLibrary.native.js +115 -0
- package/dist/jsx/FileBrowser/AttachLibrary.native.js.map +1 -0
- package/dist/jsx/FileBrowser/folderTree.mjs +52 -0
- package/dist/jsx/FileBrowser/folderTree.mjs.map +1 -0
- package/dist/jsx/FileBrowser/folderTree.native.js +94 -0
- package/dist/jsx/FileBrowser/folderTree.native.js.map +1 -0
- package/dist/jsx/FileBrowser/index.mjs +665 -0
- package/dist/jsx/FileBrowser/index.mjs.map +1 -0
- package/dist/jsx/FileBrowser/index.native.js +781 -0
- package/dist/jsx/FileBrowser/index.native.js.map +1 -0
- package/dist/jsx/FileBrowser/types.mjs +2 -0
- package/dist/jsx/FileBrowser/types.mjs.map +1 -0
- package/dist/jsx/FileBrowser/types.native.js +21 -0
- package/dist/jsx/FileBrowser/types.native.js.map +1 -0
- package/dist/jsx/FileBrowser/viewPersistence.mjs +29 -0
- package/dist/jsx/FileBrowser/viewPersistence.mjs.map +1 -0
- package/dist/jsx/FileBrowser/viewPersistence.native.js +60 -0
- package/dist/jsx/FileBrowser/viewPersistence.native.js.map +1 -0
- package/dist/jsx/FormSidebar.mjs +46 -46
- package/dist/jsx/FormSidebar.mjs.map +1 -1
- package/dist/jsx/FormSidebar.native.js +48 -50
- package/dist/jsx/FormSidebar.native.js.map +1 -1
- package/dist/jsx/FrappeAssignment.mjs +19 -14
- package/dist/jsx/FrappeAssignment.mjs.map +1 -1
- package/dist/jsx/FrappeAssignment.native.js +19 -13
- package/dist/jsx/FrappeAssignment.native.js.map +1 -1
- package/dist/jsx/FrappeCalendar.mjs +12 -11
- package/dist/jsx/FrappeCalendar.mjs.map +1 -1
- package/dist/jsx/FrappeCalendar.native.js +11 -10
- package/dist/jsx/FrappeCalendar.native.js.map +1 -1
- package/dist/jsx/FrappeChartCard.mjs +7 -16
- package/dist/jsx/FrappeChartCard.mjs.map +1 -1
- package/dist/jsx/FrappeChartCard.native.js +6 -15
- package/dist/jsx/FrappeChartCard.native.js.map +1 -1
- package/dist/jsx/FrappeDashboard.mjs +12 -9
- package/dist/jsx/FrappeDashboard.mjs.map +1 -1
- package/dist/jsx/FrappeDashboard.native.js +12 -9
- package/dist/jsx/FrappeDashboard.native.js.map +1 -1
- package/dist/jsx/FrappeForm.mjs +35 -24
- package/dist/jsx/FrappeForm.mjs.map +1 -1
- package/dist/jsx/FrappeForm.native.js +36 -25
- package/dist/jsx/FrappeForm.native.js.map +1 -1
- package/dist/jsx/FrappeGantt.mjs +7 -5
- package/dist/jsx/FrappeGantt.mjs.map +1 -1
- package/dist/jsx/FrappeGantt.native.js +7 -5
- package/dist/jsx/FrappeGantt.native.js.map +1 -1
- package/dist/jsx/FrappeImageView.mjs +23 -23
- package/dist/jsx/FrappeImageView.mjs.map +1 -1
- package/dist/jsx/FrappeImageView.native.js +24 -22
- package/dist/jsx/FrappeImageView.native.js.map +1 -1
- package/dist/jsx/FrappeKPICard.mjs +7 -29
- package/dist/jsx/FrappeKPICard.mjs.map +1 -1
- package/dist/jsx/FrappeKPICard.native.js +7 -29
- package/dist/jsx/FrappeKPICard.native.js.map +1 -1
- package/dist/jsx/FrappeKanban.mjs +13 -15
- package/dist/jsx/FrappeKanban.mjs.map +1 -1
- package/dist/jsx/FrappeKanban.native.js +11 -13
- package/dist/jsx/FrappeKanban.native.js.map +1 -1
- package/dist/jsx/FrappeLikedBy.mjs +6 -6
- package/dist/jsx/FrappeLikedBy.mjs.map +1 -1
- package/dist/jsx/FrappeLikedBy.native.js +6 -6
- package/dist/jsx/FrappeLikedBy.native.js.map +1 -1
- package/dist/jsx/FrappeListView.mjs +33 -34
- package/dist/jsx/FrappeListView.mjs.map +1 -1
- package/dist/jsx/FrappeListView.native.js +37 -39
- package/dist/jsx/FrappeListView.native.js.map +1 -1
- package/dist/jsx/FrappeReportBuilder.mjs +27 -43
- package/dist/jsx/FrappeReportBuilder.mjs.map +1 -1
- package/dist/jsx/FrappeReportBuilder.native.js +30 -42
- package/dist/jsx/FrappeReportBuilder.native.js.map +1 -1
- package/dist/jsx/FrappeReportView.mjs +6 -6
- package/dist/jsx/FrappeReportView.mjs.map +1 -1
- package/dist/jsx/FrappeReportView.native.js +5 -5
- package/dist/jsx/FrappeReportView.native.js.map +1 -1
- package/dist/jsx/FrappeTreeView.mjs +9 -6
- package/dist/jsx/FrappeTreeView.mjs.map +1 -1
- package/dist/jsx/FrappeTreeView.native.js +10 -6
- package/dist/jsx/FrappeTreeView.native.js.map +1 -1
- package/dist/jsx/desk/DeskFormPage.mjs +3 -3
- package/dist/jsx/desk/DeskFormPage.mjs.map +1 -1
- package/dist/jsx/desk/DeskFormPage.native.js +3 -3
- package/dist/jsx/desk/DeskFormPage.native.js.map +1 -1
- package/dist/jsx/desk/DeskListPage.mjs +2 -2
- package/dist/jsx/desk/DeskListPage.mjs.map +1 -1
- package/dist/jsx/desk/DeskListPage.native.js +2 -2
- package/dist/jsx/desk/DeskListPage.native.js.map +1 -1
- package/dist/jsx/desk/DeskShell.mjs +48 -28
- package/dist/jsx/desk/DeskShell.mjs.map +1 -1
- package/dist/jsx/desk/DeskShell.native.js +63 -44
- package/dist/jsx/desk/DeskShell.native.js.map +1 -1
- package/dist/jsx/desk/awesomebar.mjs +29 -17
- package/dist/jsx/desk/awesomebar.mjs.map +1 -1
- package/dist/jsx/desk/awesomebar.native.js +28 -16
- package/dist/jsx/desk/awesomebar.native.js.map +1 -1
- package/dist/jsx/fieldRegistry.mjs +65 -4
- package/dist/jsx/fieldRegistry.mjs.map +1 -1
- package/dist/jsx/fieldRegistry.native.js +69 -3
- package/dist/jsx/fieldRegistry.native.js.map +1 -1
- package/dist/jsx/fields/Check/index.mjs +1 -1
- package/dist/jsx/fields/Check/index.mjs.map +1 -1
- package/dist/jsx/fields/Check/index.native.js +1 -1
- package/dist/jsx/fields/Check/index.native.js.map +1 -1
- package/dist/jsx/fields/Color/index.mjs +1 -1
- package/dist/jsx/fields/Color/index.mjs.map +1 -1
- package/dist/jsx/fields/Color/index.native.js +1 -1
- package/dist/jsx/fields/Color/index.native.js.map +1 -1
- package/dist/jsx/fields/Data/index.mjs.map +1 -1
- package/dist/jsx/fields/Data/index.native.js.map +1 -1
- package/dist/jsx/fields/Date/index.native.js +47 -34
- package/dist/jsx/fields/Date/index.native.js.map +1 -1
- package/dist/jsx/fields/Date/sheetKeyboard.mjs +21 -0
- package/dist/jsx/fields/Date/sheetKeyboard.mjs.map +1 -0
- package/dist/jsx/fields/Date/sheetKeyboard.native.js +57 -0
- package/dist/jsx/fields/Date/sheetKeyboard.native.js.map +1 -0
- package/dist/jsx/fields/DynamicLink.mjs +37 -128
- package/dist/jsx/fields/DynamicLink.mjs.map +1 -1
- package/dist/jsx/fields/DynamicLink.native.js +40 -138
- package/dist/jsx/fields/DynamicLink.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload.mjs +234 -51
- package/dist/jsx/fields/FileUpload.mjs.map +1 -1
- package/dist/jsx/fields/FileUpload.native.js +242 -51
- package/dist/jsx/fields/FileUpload.native.js.map +1 -1
- package/dist/jsx/fields/FileUploadField/index.mjs +55 -22
- package/dist/jsx/fields/FileUploadField/index.mjs.map +1 -1
- package/dist/jsx/fields/FileUploadField/index.native.js +56 -20
- package/dist/jsx/fields/FileUploadField/index.native.js.map +1 -1
- package/dist/jsx/fields/HTML/index.mjs +33 -54
- package/dist/jsx/fields/HTML/index.mjs.map +1 -1
- package/dist/jsx/fields/HTML/index.native.js +30 -51
- package/dist/jsx/fields/HTML/index.native.js.map +1 -1
- package/dist/jsx/fields/Icon/index.mjs +48 -0
- package/dist/jsx/fields/Icon/index.mjs.map +1 -0
- package/dist/jsx/fields/Icon/index.native.js +76 -0
- package/dist/jsx/fields/Icon/index.native.js.map +1 -0
- package/dist/jsx/fields/Link.mjs +35 -9
- package/dist/jsx/fields/Link.mjs.map +1 -1
- package/dist/jsx/fields/Link.native.js +35 -9
- package/dist/jsx/fields/Link.native.js.map +1 -1
- package/dist/jsx/fields/LinkTree.mjs +89 -0
- package/dist/jsx/fields/LinkTree.mjs.map +1 -0
- package/dist/jsx/fields/LinkTree.native.js +125 -0
- package/dist/jsx/fields/LinkTree.native.js.map +1 -0
- package/dist/jsx/fields/LongText/index.mjs +7 -5
- package/dist/jsx/fields/LongText/index.mjs.map +1 -1
- package/dist/jsx/fields/LongText/index.native.js +6 -4
- package/dist/jsx/fields/LongText/index.native.js.map +1 -1
- package/dist/jsx/fields/Numeric/index.mjs.map +1 -1
- package/dist/jsx/fields/Numeric/index.native.js.map +1 -1
- package/dist/jsx/fields/Password/index.mjs +180 -18
- package/dist/jsx/fields/Password/index.mjs.map +1 -1
- package/dist/jsx/fields/Password/index.native.js +186 -16
- package/dist/jsx/fields/Password/index.native.js.map +1 -1
- package/dist/jsx/fields/Phone/index.mjs.map +1 -1
- package/dist/jsx/fields/Phone/index.native.js.map +1 -1
- package/dist/jsx/fields/ReadOnly/index.mjs +36 -50
- package/dist/jsx/fields/ReadOnly/index.mjs.map +1 -1
- package/dist/jsx/fields/ReadOnly/index.native.js +34 -46
- package/dist/jsx/fields/ReadOnly/index.native.js.map +1 -1
- package/dist/jsx/fields/Select/index.mjs +1 -1
- package/dist/jsx/fields/Select/index.mjs.map +1 -1
- package/dist/jsx/fields/Select/index.native.js +1 -1
- package/dist/jsx/fields/Select/index.native.js.map +1 -1
- package/dist/jsx/fields/SmallText/index.mjs +5 -4
- package/dist/jsx/fields/SmallText/index.mjs.map +1 -1
- package/dist/jsx/fields/SmallText/index.native.js +4 -3
- package/dist/jsx/fields/SmallText/index.native.js.map +1 -1
- package/dist/jsx/fields/TableMultiSelect.mjs +41 -152
- package/dist/jsx/fields/TableMultiSelect.mjs.map +1 -1
- package/dist/jsx/fields/TableMultiSelect.native.js +44 -171
- package/dist/jsx/fields/TableMultiSelect.native.js.map +1 -1
- package/dist/jsx/fields/TextEditor/index.mjs +28 -284
- package/dist/jsx/fields/TextEditor/index.mjs.map +1 -1
- package/dist/jsx/index.js +5 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +5 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +9 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/schemaForm/SchemaWizard.mjs +156 -0
- package/dist/jsx/schemaForm/SchemaWizard.mjs.map +1 -0
- package/dist/jsx/schemaForm/SchemaWizard.native.js +232 -0
- package/dist/jsx/schemaForm/SchemaWizard.native.js.map +1 -0
- package/dist/jsx/schemaForm/index.mjs +1 -1
- package/dist/jsx/schemaForm/index.mjs.map +1 -1
- package/dist/jsx/schemaForm/index.native.js +1 -1
- package/dist/jsx/schemaForm/index.native.js.map +1 -1
- package/dist/jsx/shared/useKeyboardInset.mjs +23 -0
- package/dist/jsx/shared/useKeyboardInset.mjs.map +1 -0
- package/dist/jsx/shared/useKeyboardInset.native.js +53 -0
- package/dist/jsx/shared/useKeyboardInset.native.js.map +1 -0
- package/package.json +16 -16
- package/src/FileBrowser/AttachLibrary.tsx +90 -0
- package/src/FileBrowser/FileBrowser.spec.tsx +273 -0
- package/src/FileBrowser/FileBrowser.stories.tsx +97 -0
- package/src/FileBrowser/folderTree.ts +62 -0
- package/src/FileBrowser/index.tsx +765 -0
- package/src/FileBrowser/types.ts +61 -0
- package/src/FileBrowser/viewPersistence.ts +37 -0
- package/src/FormSidebar.stories.tsx +82 -25
- package/src/FormSidebar.tsx +51 -37
- package/src/FrappeAssignment.stories.tsx +158 -12
- package/src/FrappeAssignment.tsx +11 -9
- package/src/FrappeCalendar.stories.tsx +85 -9
- package/src/FrappeCalendar.tsx +9 -9
- package/src/FrappeChartCard.stories.tsx +107 -14
- package/src/FrappeChartCard.tsx +5 -12
- package/src/FrappeDashboard.stories.tsx +79 -9
- package/src/FrappeDashboard.tsx +8 -8
- package/src/FrappeForm.tsx +36 -24
- package/src/FrappeGantt.stories.tsx +73 -4
- package/src/FrappeGantt.tsx +7 -4
- package/src/FrappeImageView.tsx +23 -22
- package/src/FrappeKPICard.stories.tsx +110 -10
- package/src/FrappeKPICard.tsx +6 -22
- package/src/FrappeKanban.stories.tsx +115 -9
- package/src/FrappeKanban.tsx +10 -9
- package/src/FrappeLikedBy.stories.tsx +82 -10
- package/src/FrappeLikedBy.tsx +6 -6
- package/src/FrappeList.stories.tsx +85 -8
- package/src/FrappeListView.spec.tsx +59 -0
- package/src/FrappeListView.tsx +27 -30
- package/src/FrappeProvider.stories.tsx +53 -2
- package/src/FrappeReportBuilder.tsx +21 -34
- package/src/FrappeReportView.tsx +4 -4
- package/src/FrappeTreeView.tsx +8 -4
- package/src/components/attachments.stories.tsx +79 -7
- package/src/components/tags.stories.tsx +131 -6
- package/src/components/timeline.stories.tsx +128 -7
- package/src/desk/Awesomebar.stories.tsx +3 -2
- package/src/desk/DeskFormPage.tsx +3 -2
- package/src/desk/DeskListPage.tsx +2 -1
- package/src/desk/DeskShell.stories.tsx +21 -2
- package/src/desk/DeskShell.tsx +56 -39
- package/src/desk/awesomebar.tsx +33 -22
- package/src/fieldRegistry.spec.tsx +131 -1
- package/src/fieldRegistry.ts +100 -4
- package/src/fields/Barcode/Barcode.stories.tsx +32 -0
- package/src/fields/Check/Check.spec.tsx +27 -0
- package/src/fields/Check/Check.stories.tsx +58 -0
- package/src/fields/Check/index.tsx +7 -1
- package/src/fields/CodeEditor/CodeEditor.stories.tsx +32 -0
- package/src/fields/Color/Color.spec.tsx +21 -0
- package/src/fields/Color/Color.stories.tsx +33 -0
- package/src/fields/Color/index.tsx +7 -1
- package/src/fields/Data/Data.spec.tsx +26 -0
- package/src/fields/Data/Data.stories.tsx +58 -0
- package/src/fields/Data/index.tsx +6 -0
- package/src/fields/Date/Date.stories.tsx +32 -0
- package/src/fields/Date/Datetime.stories.tsx +32 -0
- package/src/fields/Date/index.native.tsx +45 -33
- package/src/fields/Date/nativePresentation.spec.tsx +20 -0
- package/src/fields/Date/sheetKeyboard.spec.ts +51 -0
- package/src/fields/Date/sheetKeyboard.ts +37 -0
- package/src/fields/DateRange/DateRange.stories.tsx +41 -0
- package/src/fields/Duration/Duration.stories.tsx +32 -0
- package/src/fields/DynamicLink.stories.tsx +115 -14
- package/src/fields/DynamicLink.tsx +43 -125
- package/src/fields/FileUpload.tsx +273 -54
- package/src/fields/FileUploadField/FileUploadField.stories.tsx +87 -0
- package/src/fields/FileUploadField/index.tsx +73 -25
- package/src/fields/FrappeFileUpload.stories.tsx +32 -0
- package/src/fields/Geolocation/Geolocation.stories.tsx +33 -0
- package/src/fields/HTML/Html.stories.tsx +59 -0
- package/src/fields/HTML/index.tsx +25 -34
- package/src/fields/Heading/Heading.stories.tsx +63 -2
- package/src/fields/Icon/index.tsx +90 -0
- package/src/fields/Link.spec.tsx +10 -0
- package/src/fields/Link.stories.tsx +161 -2
- package/src/fields/Link.tree.spec.tsx +111 -0
- package/src/fields/Link.tsx +36 -19
- package/src/fields/LinkTree.tsx +102 -0
- package/src/fields/LongText/LongText.stories.tsx +66 -0
- package/src/fields/LongText/index.tsx +13 -5
- package/src/fields/MarkdownEditor/MarkdownEditor.stories.tsx +36 -0
- package/src/fields/MentionInput/MentionInput.stories.tsx +44 -0
- package/src/fields/Numeric/Numeric.spec.tsx +7 -0
- package/src/fields/Numeric/Numeric.stories.tsx +32 -0
- package/src/fields/Numeric/index.tsx +7 -0
- package/src/fields/OTPInput/OTPInput.stories.tsx +33 -0
- package/src/fields/Password/Password.spec.tsx +119 -0
- package/src/fields/Password/Password.stories.tsx +58 -0
- package/src/fields/Password/index.tsx +234 -23
- package/src/fields/Phone/Phone.stories.tsx +33 -0
- package/src/fields/Phone/index.tsx +4 -0
- package/src/fields/Progress/Progress.stories.tsx +32 -0
- package/src/fields/RadioGroup/RadioGroup.stories.tsx +37 -0
- package/src/fields/Rating/Rating.stories.tsx +33 -0
- package/src/fields/ReadOnly/ReadOnly.stories.tsx +54 -0
- package/src/fields/ReadOnly/index.tsx +41 -55
- package/src/fields/Select/Select.stories.tsx +43 -0
- package/src/fields/Select/index.tsx +5 -1
- package/src/fields/Signature/Signature.stories.tsx +32 -0
- package/src/fields/Slider/Slider.stories.tsx +32 -0
- package/src/fields/SmallText/SmallText.stories.tsx +58 -0
- package/src/fields/SmallText/index.tsx +9 -4
- package/src/fields/Switch/Switch.stories.tsx +33 -0
- package/src/fields/TableMultiSelect.spec.tsx +26 -5
- package/src/fields/TableMultiSelect.stories.tsx +90 -14
- package/src/fields/TableMultiSelect.tsx +55 -177
- package/src/fields/TextEditor/TextEditor.spec.tsx +5 -3
- package/src/fields/TextEditor/TextEditor.stories.tsx +66 -0
- package/src/fields/TextEditor/index.tsx +32 -299
- package/src/fields/TimePicker/TimePicker.stories.tsx +32 -0
- package/src/fields/ToggleGroup/ToggleGroup.stories.tsx +35 -0
- package/src/frappeRemainder.designLaw.spec.ts +176 -0
- package/src/frappeViews.designLaw.spec.ts +94 -0
- package/src/index.ts +18 -1
- package/src/schemaForm/SchemaForm.spec.tsx +154 -0
- package/src/schemaForm/SchemaForm.stories.tsx +27 -0
- package/src/schemaForm/SchemaWizard.spec.tsx +134 -0
- package/src/schemaForm/SchemaWizard.stories.tsx +94 -0
- package/src/schemaForm/SchemaWizard.tsx +192 -0
- package/src/schemaForm/index.tsx +3 -4
- package/src/shared/useKeyboardInset.ts +45 -0
- package/types/FileBrowser/AttachLibrary.d.ts +13 -0
- package/types/FileBrowser/AttachLibrary.d.ts.map +1 -0
- package/types/FileBrowser/folderTree.d.ts +15 -0
- package/types/FileBrowser/folderTree.d.ts.map +1 -0
- package/types/FileBrowser/index.d.ts +4 -0
- package/types/FileBrowser/index.d.ts.map +1 -0
- package/types/FileBrowser/types.d.ts +59 -0
- package/types/FileBrowser/types.d.ts.map +1 -0
- package/types/FileBrowser/viewPersistence.d.ts +4 -0
- package/types/FileBrowser/viewPersistence.d.ts.map +1 -0
- package/types/FormSidebar.d.ts.map +1 -1
- package/types/FrappeAssignment.d.ts.map +1 -1
- package/types/FrappeChartCard.d.ts.map +1 -1
- package/types/FrappeDashboard.d.ts.map +1 -1
- package/types/FrappeForm.d.ts.map +1 -1
- package/types/FrappeGantt.d.ts.map +1 -1
- package/types/FrappeImageView.d.ts.map +1 -1
- package/types/FrappeKPICard.d.ts.map +1 -1
- package/types/FrappeKanban.d.ts.map +1 -1
- package/types/FrappeListView.d.ts.map +1 -1
- package/types/FrappeReportBuilder.d.ts.map +1 -1
- package/types/FrappeReportView.d.ts.map +1 -1
- package/types/FrappeTreeView.d.ts.map +1 -1
- package/types/desk/DeskFormPage.d.ts.map +1 -1
- package/types/desk/DeskListPage.d.ts.map +1 -1
- package/types/desk/DeskShell.d.ts +4 -2
- package/types/desk/DeskShell.d.ts.map +1 -1
- package/types/desk/awesomebar.d.ts.map +1 -1
- package/types/fieldRegistry.d.ts.map +1 -1
- package/types/fields/Check/index.d.ts +6 -0
- package/types/fields/Check/index.d.ts.map +1 -1
- package/types/fields/Color/index.d.ts +6 -0
- package/types/fields/Color/index.d.ts.map +1 -1
- package/types/fields/Data/index.d.ts +6 -0
- package/types/fields/Data/index.d.ts.map +1 -1
- package/types/fields/Date/index.native.d.ts +5 -0
- package/types/fields/Date/index.native.d.ts.map +1 -1
- package/types/fields/Date/sheetKeyboard.d.ts +19 -0
- package/types/fields/Date/sheetKeyboard.d.ts.map +1 -0
- package/types/fields/DynamicLink.d.ts.map +1 -1
- package/types/fields/FileUpload.d.ts +11 -1
- package/types/fields/FileUpload.d.ts.map +1 -1
- package/types/fields/FileUploadField/index.d.ts +8 -1
- package/types/fields/FileUploadField/index.d.ts.map +1 -1
- package/types/fields/HTML/index.d.ts.map +1 -1
- package/types/fields/Icon/index.d.ts +15 -0
- package/types/fields/Icon/index.d.ts.map +1 -0
- package/types/fields/Link.d.ts +6 -1
- package/types/fields/Link.d.ts.map +1 -1
- package/types/fields/LinkTree.d.ts +3 -0
- package/types/fields/LinkTree.d.ts.map +1 -0
- package/types/fields/LongText/index.d.ts +4 -0
- package/types/fields/LongText/index.d.ts.map +1 -1
- package/types/fields/Numeric/index.d.ts +7 -0
- package/types/fields/Numeric/index.d.ts.map +1 -1
- package/types/fields/Password/index.d.ts +1 -0
- package/types/fields/Password/index.d.ts.map +1 -1
- package/types/fields/Phone/index.d.ts +4 -0
- package/types/fields/Phone/index.d.ts.map +1 -1
- package/types/fields/ReadOnly/index.d.ts.map +1 -1
- package/types/fields/Select/index.d.ts +4 -0
- package/types/fields/Select/index.d.ts.map +1 -1
- package/types/fields/SmallText/index.d.ts +4 -0
- package/types/fields/SmallText/index.d.ts.map +1 -1
- package/types/fields/TableMultiSelect.d.ts +2 -1
- package/types/fields/TableMultiSelect.d.ts.map +1 -1
- package/types/fields/TextEditor/index.d.ts +2 -3
- package/types/fields/TextEditor/index.d.ts.map +1 -1
- package/types/index.d.ts +7 -1
- package/types/index.d.ts.map +1 -1
- package/types/schemaForm/SchemaWizard.d.ts +20 -0
- package/types/schemaForm/SchemaWizard.d.ts.map +1 -0
- package/types/schemaForm/index.d.ts.map +1 -1
- package/types/shared/useKeyboardInset.d.ts +18 -0
- package/types/shared/useKeyboardInset.d.ts.map +1 -0
|
@@ -14,12 +14,96 @@ export default {
|
|
|
14
14
|
docs: {
|
|
15
15
|
description: {
|
|
16
16
|
component:
|
|
17
|
-
"Assignment (ToDo) management for one document: live assignee list from ToDo docs filtered by reference_type/reference_name, add via the backend-searching User combobox, complete (status Closed) and remove (status Cancelled) per row — assign_to parity over plain ToDo CRUD.",
|
|
17
|
+
"Assignment (ToDo) management for one document: live assignee list from ToDo docs filtered by reference_type/reference_name, add via the backend-searching User combobox, complete (status Closed) and remove (status Cancelled) per row — assign_to parity over plain ToDo CRUD. Fixture stories are network-hermetic (G-15/D-05): documents come from InMemoryFixtureProvider and DocType meta / search_link from an in-story fetch mock, so nothing leaves the machine. The separately-named Live story is the live-bench arm.",
|
|
18
18
|
},
|
|
19
19
|
},
|
|
20
20
|
},
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Hermetic story host (G-15 story honesty / D-05, closes UX-P18).
|
|
25
|
+
//
|
|
26
|
+
// Fixture-backed stories previously pointed at https://demo.frappe.cloud. The
|
|
27
|
+
// fixture provider serves the *collection*, but DocType meta and the add
|
|
28
|
+
// flow's search_link still resolve over HTTP — so those stories fired real
|
|
29
|
+
// cross-origin requests the browser rejected with CORS, poisoning the console
|
|
30
|
+
// for every automated probe. MOCK_HOST keeps the same code path (real fetch,
|
|
31
|
+
// real meta/search shape) without leaving the machine; ERR_HOST is the
|
|
32
|
+
// deliberate failure host for the error-state story.
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
|
|
35
|
+
const MOCK_HOST = "https://frappeassignment.mock.test";
|
|
36
|
+
const ERR_HOST = "https://forbidden.frappeassignment.mock.test";
|
|
37
|
+
|
|
38
|
+
function assignmentMetaRaw(name: string) {
|
|
39
|
+
if (name === "User") {
|
|
40
|
+
return {
|
|
41
|
+
name: "User",
|
|
42
|
+
module: "Core",
|
|
43
|
+
title_field: "full_name",
|
|
44
|
+
fields: [
|
|
45
|
+
{ fieldname: "full_name", fieldtype: "Data", label: "Full Name", in_list_view: 1 },
|
|
46
|
+
{ fieldname: "user_image", fieldtype: "Attach Image", label: "User Image" },
|
|
47
|
+
],
|
|
48
|
+
permissions: [{ role: "All", read: 1, write: 1, create: 1 }],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
if (name === "Task") {
|
|
52
|
+
return {
|
|
53
|
+
name: "Task",
|
|
54
|
+
module: "Projects",
|
|
55
|
+
title_field: "subject",
|
|
56
|
+
fields: [{ fieldname: "subject", fieldtype: "Data", label: "Subject", in_list_view: 1 }],
|
|
57
|
+
permissions: [{ role: "All", read: 1, write: 1, create: 1 }],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
name: name || "ToDo",
|
|
62
|
+
module: "Desk",
|
|
63
|
+
title_field: "description",
|
|
64
|
+
fields: [
|
|
65
|
+
{ fieldname: "description", fieldtype: "Text", label: "Description", in_list_view: 1 },
|
|
66
|
+
{
|
|
67
|
+
fieldname: "allocated_to",
|
|
68
|
+
fieldtype: "Link",
|
|
69
|
+
label: "Allocated To",
|
|
70
|
+
options: "User",
|
|
71
|
+
in_list_view: 1,
|
|
72
|
+
},
|
|
73
|
+
{ fieldname: "assigned_by", fieldtype: "Link", label: "Assigned By", options: "User" },
|
|
74
|
+
{
|
|
75
|
+
fieldname: "reference_type",
|
|
76
|
+
fieldtype: "Link",
|
|
77
|
+
label: "Reference Type",
|
|
78
|
+
options: "DocType",
|
|
79
|
+
},
|
|
80
|
+
{ fieldname: "reference_name", fieldtype: "Dynamic Link", label: "Reference Name" },
|
|
81
|
+
{
|
|
82
|
+
fieldname: "status",
|
|
83
|
+
fieldtype: "Select",
|
|
84
|
+
label: "Status",
|
|
85
|
+
options: "Open\nClosed\nCancelled",
|
|
86
|
+
in_list_view: 1,
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
fieldname: "priority",
|
|
90
|
+
fieldtype: "Select",
|
|
91
|
+
label: "Priority",
|
|
92
|
+
options: "Low\nMedium\nHigh",
|
|
93
|
+
},
|
|
94
|
+
{ fieldname: "date", fieldtype: "Date", label: "Due Date" },
|
|
95
|
+
],
|
|
96
|
+
permissions: [{ role: "All", read: 1, write: 1, create: 1 }],
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function jsonResponse(body: unknown, status = 200): Response {
|
|
101
|
+
return new Response(JSON.stringify(body), {
|
|
102
|
+
status,
|
|
103
|
+
headers: { "Content-Type": "application/json" },
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
|
|
23
107
|
const todoFixtures: FrappeToDo[] = [
|
|
24
108
|
{
|
|
25
109
|
name: "TODO-001",
|
|
@@ -86,15 +170,77 @@ const userFixtures: FrappeUserDoc[] = [
|
|
|
86
170
|
{ name: "maria@example.com", doctype: "User", full_name: "Maria Garcia" },
|
|
87
171
|
];
|
|
88
172
|
|
|
89
|
-
|
|
173
|
+
(() => {
|
|
174
|
+
if (typeof window === "undefined") return;
|
|
175
|
+
const w = window as unknown as Record<string, unknown>;
|
|
176
|
+
if (w.__frappeAssignmentMockFetch) return;
|
|
177
|
+
w.__frappeAssignmentMockFetch = true;
|
|
178
|
+
const realFetch = window.fetch.bind(window);
|
|
179
|
+
window.fetch = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {
|
|
180
|
+
const urlStr =
|
|
181
|
+
typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url;
|
|
182
|
+
if (urlStr.startsWith(ERR_HOST)) return jsonResponse({ message: "Not permitted" }, 403);
|
|
183
|
+
if (urlStr.startsWith(MOCK_HOST)) {
|
|
184
|
+
const url = new URL(urlStr);
|
|
185
|
+
if (url.pathname === "/api/method/frappe.desk.form.load.getdoctype") {
|
|
186
|
+
const doctype = url.searchParams.get("doctype") || "ToDo";
|
|
187
|
+
return jsonResponse({ docs: [assignmentMetaRaw(doctype)] });
|
|
188
|
+
}
|
|
189
|
+
if (url.pathname === "/api/method/frappe.desk.search.search_link") {
|
|
190
|
+
const txt = (url.searchParams.get("txt") || "").toLowerCase();
|
|
191
|
+
const hits = userFixtures.filter(
|
|
192
|
+
(user) =>
|
|
193
|
+
!txt ||
|
|
194
|
+
user.name.toLowerCase().includes(txt) ||
|
|
195
|
+
(user.full_name ?? "").toLowerCase().includes(txt),
|
|
196
|
+
);
|
|
197
|
+
return jsonResponse({
|
|
198
|
+
message: hits.map((user) => ({
|
|
199
|
+
value: user.name,
|
|
200
|
+
description: user.full_name,
|
|
201
|
+
})),
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
const metaMatch = url.pathname.match(/^\/api\/resource\/DocType\/(.+)$/);
|
|
205
|
+
if (metaMatch)
|
|
206
|
+
return jsonResponse({ data: assignmentMetaRaw(decodeURIComponent(metaMatch[1])) });
|
|
207
|
+
if (url.pathname === "/api/resource/DocType") {
|
|
208
|
+
return jsonResponse({
|
|
209
|
+
data: [
|
|
210
|
+
{ name: "ToDo", module: "Desk" },
|
|
211
|
+
{ name: "User", module: "Core" },
|
|
212
|
+
{ name: "Task", module: "Projects" },
|
|
213
|
+
],
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
// Everything else (guest field-peek, counts): empty, never the network.
|
|
217
|
+
return jsonResponse({ data: [] });
|
|
218
|
+
}
|
|
219
|
+
return realFetch(input as RequestInfo, init);
|
|
220
|
+
};
|
|
221
|
+
})();
|
|
222
|
+
|
|
223
|
+
const doctypeFixtures = [
|
|
224
|
+
{ ...assignmentMetaRaw("ToDo"), doctype: "DocType" },
|
|
225
|
+
{ ...assignmentMetaRaw("User"), doctype: "DocType" },
|
|
226
|
+
{ ...assignmentMetaRaw("Task"), doctype: "DocType" },
|
|
227
|
+
];
|
|
228
|
+
|
|
229
|
+
const makeFixtures = () =>
|
|
230
|
+
new InMemoryFixtureProvider({
|
|
231
|
+
ToDo: todoFixtures,
|
|
232
|
+
User: userFixtures,
|
|
233
|
+
DocType: doctypeFixtures,
|
|
234
|
+
});
|
|
90
235
|
|
|
91
236
|
/**
|
|
92
237
|
* Two open assignees + one completed. The cancelled ToDo (TODO-005) and the
|
|
93
238
|
* other document's ToDo (TODO-004) must not render. The add flow's user
|
|
94
|
-
* search
|
|
239
|
+
* search is served hermetically via the in-story search_link mock; the Live
|
|
240
|
+
* story exercises the real bench search.
|
|
95
241
|
*/
|
|
96
242
|
export const Main = () => (
|
|
97
|
-
<FrappeProvider baseURL=
|
|
243
|
+
<FrappeProvider baseURL={MOCK_HOST} fixtures={makeFixtures()}>
|
|
98
244
|
<FrappeAssignment
|
|
99
245
|
doctype="Task"
|
|
100
246
|
name="TASK-001"
|
|
@@ -109,21 +255,21 @@ Main.storyName = "Main";
|
|
|
109
255
|
|
|
110
256
|
/** Completed section hidden via showCompleted={false}. */
|
|
111
257
|
export const OpenOnly = () => (
|
|
112
|
-
<FrappeProvider baseURL=
|
|
258
|
+
<FrappeProvider baseURL={MOCK_HOST} fixtures={makeFixtures()}>
|
|
113
259
|
<FrappeAssignment doctype="Task" name="TASK-001" showCompleted={false} />
|
|
114
260
|
</FrappeProvider>
|
|
115
261
|
);
|
|
116
262
|
|
|
117
263
|
/** No assignments match: the compact empty state must show. */
|
|
118
264
|
export const Empty = () => (
|
|
119
|
-
<FrappeProvider baseURL=
|
|
265
|
+
<FrappeProvider baseURL={MOCK_HOST} fixtures={makeFixtures()}>
|
|
120
266
|
<FrappeAssignment doctype="Task" name="TASK-NO-ASSIGNMENTS" />
|
|
121
267
|
</FrappeProvider>
|
|
122
268
|
);
|
|
123
269
|
|
|
124
270
|
/** disabled hides add and per-row mutation affordances. */
|
|
125
271
|
export const Disabled = () => (
|
|
126
|
-
<FrappeProvider baseURL=
|
|
272
|
+
<FrappeProvider baseURL={MOCK_HOST} fixtures={makeFixtures()}>
|
|
127
273
|
<FrappeAssignment doctype="Task" name="TASK-001" disabled />
|
|
128
274
|
</FrappeProvider>
|
|
129
275
|
);
|
|
@@ -143,18 +289,18 @@ class PendingFixtureProvider extends InMemoryFixtureProvider {
|
|
|
143
289
|
* (LC-20 / DG-ST-02).
|
|
144
290
|
*/
|
|
145
291
|
export const Loading = () => (
|
|
146
|
-
<FrappeProvider baseURL=
|
|
292
|
+
<FrappeProvider baseURL={MOCK_HOST} fixtures={new PendingFixtureProvider()}>
|
|
147
293
|
<FrappeAssignment doctype="Task" name="TASK-001" />
|
|
148
294
|
</FrappeProvider>
|
|
149
295
|
);
|
|
150
296
|
|
|
151
297
|
/**
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
298
|
+
* Collection that fails with no fixtures: error chrome with Retry instead of
|
|
299
|
+
* masquerading as "no one assigned" (DG-ST-01 / Axiom 6). The failure is
|
|
300
|
+
* served hermetically — the in-story mock answers ERR_HOST with 403.
|
|
155
301
|
*/
|
|
156
302
|
export const LoadError = () => (
|
|
157
|
-
<FrappeProvider baseURL=
|
|
303
|
+
<FrappeProvider baseURL={ERR_HOST}>
|
|
158
304
|
<FrappeAssignment doctype="Task" name="TASK-001" />
|
|
159
305
|
</FrappeProvider>
|
|
160
306
|
);
|
package/src/FrappeAssignment.tsx
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { AsyncBoundary, Avatar } from "@multiplatform.one/components";
|
|
17
17
|
import { useFrappeCollection, useLiveQuery } from "@multiplatform.one/frappe";
|
|
18
|
-
import { Button } from "@multiplatform.one/forms";
|
|
18
|
+
import { Button, formCommonColors } from "@multiplatform.one/forms";
|
|
19
19
|
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
20
20
|
import { CheckIcon, PlusIcon, XIcon } from "@phosphor-icons/react";
|
|
21
21
|
import { useCallback, useMemo, useState } from "react";
|
|
@@ -168,6 +168,8 @@ function AssignmentRow({
|
|
|
168
168
|
onRemove?: (todo: FrappeToDo) => void;
|
|
169
169
|
}) {
|
|
170
170
|
const { t } = useTranslation();
|
|
171
|
+
const { knobProps } = useResolvedKnobs();
|
|
172
|
+
const iconSize = Number(knobProps.controlIcon?.width) || 14;
|
|
171
173
|
return (
|
|
172
174
|
<XStack
|
|
173
175
|
role="listitem"
|
|
@@ -178,17 +180,17 @@ function AssignmentRow({
|
|
|
178
180
|
>
|
|
179
181
|
<Avatar size="$2" src={image} name={label} />
|
|
180
182
|
<YStack flex={1} minWidth={0}>
|
|
181
|
-
<Text
|
|
183
|
+
<Text {...knobProps.body} numberOfLines={1}>
|
|
182
184
|
{label}
|
|
183
185
|
</Text>
|
|
184
186
|
{todo.allocated_to && todo.allocated_to !== label ? (
|
|
185
|
-
<Text
|
|
187
|
+
<Text {...knobProps.label} color={formCommonColors.muted} numberOfLines={1}>
|
|
186
188
|
{todo.allocated_to}
|
|
187
189
|
</Text>
|
|
188
190
|
) : null}
|
|
189
191
|
</YStack>
|
|
190
192
|
{completed ? (
|
|
191
|
-
<CheckIcon size={
|
|
193
|
+
<CheckIcon size={iconSize} aria-label={t("Completed")} />
|
|
192
194
|
) : (
|
|
193
195
|
<>
|
|
194
196
|
{onComplete ? (
|
|
@@ -199,7 +201,7 @@ function AssignmentRow({
|
|
|
199
201
|
disabled={disabled}
|
|
200
202
|
aria-label={t("Mark assignment complete")}
|
|
201
203
|
onPress={() => onComplete(todo)}
|
|
202
|
-
icon={<CheckIcon size={
|
|
204
|
+
icon={<CheckIcon size={iconSize} />}
|
|
203
205
|
/>
|
|
204
206
|
) : null}
|
|
205
207
|
{onRemove ? (
|
|
@@ -210,7 +212,7 @@ function AssignmentRow({
|
|
|
210
212
|
disabled={disabled}
|
|
211
213
|
aria-label={t("Remove assignment")}
|
|
212
214
|
onPress={() => onRemove(todo)}
|
|
213
|
-
icon={<XIcon size={
|
|
215
|
+
icon={<XIcon size={iconSize} />}
|
|
214
216
|
/>
|
|
215
217
|
) : null}
|
|
216
218
|
</>
|
|
@@ -377,7 +379,7 @@ function FrappeAssignmentBody({
|
|
|
377
379
|
<YStack {...knobProps.gap} testID="frappe-assignment" {...stackProps}>
|
|
378
380
|
<FrappeReconnectIndicator config={connectionConfig} />
|
|
379
381
|
<XStack alignItems="center" gap="$2">
|
|
380
|
-
<Text flex={1}
|
|
382
|
+
<Text flex={1} {...knobProps.label} fontWeight="400" color={formCommonColors.muted}>
|
|
381
383
|
{label ?? t("Assigned To")}
|
|
382
384
|
</Text>
|
|
383
385
|
{canMutate ? (
|
|
@@ -428,7 +430,7 @@ function FrappeAssignmentBody({
|
|
|
428
430
|
})}
|
|
429
431
|
{showCompleted && completed.length > 0 ? (
|
|
430
432
|
<YStack gap="$2">
|
|
431
|
-
<Text
|
|
433
|
+
<Text {...knobProps.label} color={formCommonColors.muted} fontWeight="400">
|
|
432
434
|
{t("Completed")}
|
|
433
435
|
</Text>
|
|
434
436
|
{completed.map((todo) => {
|
|
@@ -448,7 +450,7 @@ function FrappeAssignmentBody({
|
|
|
448
450
|
</YStack>
|
|
449
451
|
</AsyncBoundary>
|
|
450
452
|
{actionError ? (
|
|
451
|
-
<Text role="alert"
|
|
453
|
+
<Text role="alert" {...knobProps.label} color={formCommonColors.error}>
|
|
452
454
|
{actionError}
|
|
453
455
|
</Text>
|
|
454
456
|
) : null}
|
|
@@ -15,12 +15,88 @@ export default {
|
|
|
15
15
|
docs: {
|
|
16
16
|
description: {
|
|
17
17
|
component:
|
|
18
|
-
"Calendar over useFrappeCollection / useLiveQuery.
|
|
18
|
+
"Calendar over useFrappeCollection / useLiveQuery. Fixture stories are network-hermetic (G-15/D-05): documents come from InMemoryFixtureProvider and DocType meta from an in-story fetch mock, so nothing leaves the machine. The separately-named Live story is the live-bench arm — it targets STORYBOOK_FRAPPE_URL when reachable and falls back to fixtures otherwise. Events support pointer drag-and-drop rescheduling (web only): moves persist via collection.update and then fire onEventMove(name, fromDate, toDate). Set enableEventDrag={false} to opt out.",
|
|
19
19
|
},
|
|
20
20
|
},
|
|
21
21
|
},
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// Hermetic story host (G-15 story honesty / D-05, closes UX-P18).
|
|
26
|
+
//
|
|
27
|
+
// Fixture-backed stories previously pointed at https://demo.frappe.cloud. The
|
|
28
|
+
// fixture provider serves the *collection*, but DocType meta still resolves
|
|
29
|
+
// over HTTP — so those stories fired a real cross-origin request the browser
|
|
30
|
+
// rejected with CORS, poisoning the console. MOCK_HOST keeps the same code
|
|
31
|
+
// path (real fetch, real meta shape) without leaving the machine.
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
|
|
34
|
+
const MOCK_HOST = "https://frappecalendar.mock.test";
|
|
35
|
+
|
|
36
|
+
function eventMetaRaw(name: string) {
|
|
37
|
+
const isLeave = name === "LeaveApplication";
|
|
38
|
+
return {
|
|
39
|
+
name,
|
|
40
|
+
module: isLeave ? "HR" : "Desk",
|
|
41
|
+
title_field: "subject",
|
|
42
|
+
fields: isLeave
|
|
43
|
+
? [
|
|
44
|
+
{ fieldname: "subject", fieldtype: "Data", label: "Subject", in_list_view: 1 },
|
|
45
|
+
{ fieldname: "from_date", fieldtype: "Date", label: "From Date", in_list_view: 1 },
|
|
46
|
+
{ fieldname: "to_date", fieldtype: "Date", label: "To Date", in_list_view: 1 },
|
|
47
|
+
{ fieldname: "color", fieldtype: "Color", label: "Color" },
|
|
48
|
+
]
|
|
49
|
+
: [
|
|
50
|
+
{ fieldname: "subject", fieldtype: "Data", label: "Subject", in_list_view: 1 },
|
|
51
|
+
{ fieldname: "starts_on", fieldtype: "Datetime", label: "Starts On", in_list_view: 1 },
|
|
52
|
+
{ fieldname: "ends_on", fieldtype: "Datetime", label: "Ends On" },
|
|
53
|
+
{ fieldname: "color", fieldtype: "Color", label: "Color" },
|
|
54
|
+
{ fieldname: "description", fieldtype: "Small Text", label: "Description" },
|
|
55
|
+
],
|
|
56
|
+
permissions: [{ role: "All", read: 1, write: 1, create: 1 }],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function jsonResponse(body: unknown, status = 200): Response {
|
|
61
|
+
return new Response(JSON.stringify(body), {
|
|
62
|
+
status,
|
|
63
|
+
headers: { "Content-Type": "application/json" },
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
(() => {
|
|
68
|
+
if (typeof window === "undefined") return;
|
|
69
|
+
const w = window as unknown as Record<string, unknown>;
|
|
70
|
+
if (w.__frappeCalendarMockFetch) return;
|
|
71
|
+
w.__frappeCalendarMockFetch = true;
|
|
72
|
+
const realFetch = window.fetch.bind(window);
|
|
73
|
+
window.fetch = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {
|
|
74
|
+
const urlStr =
|
|
75
|
+
typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url;
|
|
76
|
+
if (urlStr.startsWith(MOCK_HOST)) {
|
|
77
|
+
const url = new URL(urlStr);
|
|
78
|
+
if (url.pathname === "/api/method/frappe.desk.form.load.getdoctype") {
|
|
79
|
+
const doctype = url.searchParams.get("doctype") ?? "CalEvent";
|
|
80
|
+
return jsonResponse({ docs: [eventMetaRaw(doctype)] });
|
|
81
|
+
}
|
|
82
|
+
const metaMatch = url.pathname.match(/^\/api\/resource\/DocType\/(.+)$/);
|
|
83
|
+
if (metaMatch)
|
|
84
|
+
return jsonResponse({ data: eventMetaRaw(decodeURIComponent(metaMatch[1])) });
|
|
85
|
+
if (url.pathname === "/api/resource/DocType") {
|
|
86
|
+
return jsonResponse({
|
|
87
|
+
data: [
|
|
88
|
+
{ name: "CalEvent", module: "Desk" },
|
|
89
|
+
{ name: "LeaveApplication", module: "HR" },
|
|
90
|
+
],
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
// Everything else (guest field-peek, counts): empty, never the network.
|
|
94
|
+
return jsonResponse({ data: [] });
|
|
95
|
+
}
|
|
96
|
+
return realFetch(input as RequestInfo, init);
|
|
97
|
+
};
|
|
98
|
+
})();
|
|
99
|
+
|
|
24
100
|
interface CalEvent {
|
|
25
101
|
name: string;
|
|
26
102
|
doctype: string;
|
|
@@ -96,7 +172,7 @@ const eventFixtures: CalEvent[] = [
|
|
|
96
172
|
|
|
97
173
|
export const MonthView = () => (
|
|
98
174
|
<FrappeProvider
|
|
99
|
-
baseURL=
|
|
175
|
+
baseURL={MOCK_HOST}
|
|
100
176
|
fixtures={new InMemoryFixtureProvider({ CalEvent: eventFixtures })}
|
|
101
177
|
>
|
|
102
178
|
<FrappeCalendar<CalEvent>
|
|
@@ -124,7 +200,7 @@ MonthView.parameters = {
|
|
|
124
200
|
MonthView.storyName = "Main";
|
|
125
201
|
export const WeekView = () => (
|
|
126
202
|
<FrappeProvider
|
|
127
|
-
baseURL=
|
|
203
|
+
baseURL={MOCK_HOST}
|
|
128
204
|
fixtures={new InMemoryFixtureProvider({ CalEvent: eventFixtures })}
|
|
129
205
|
>
|
|
130
206
|
<FrappeCalendar<CalEvent>
|
|
@@ -150,7 +226,7 @@ WeekView.parameters = {
|
|
|
150
226
|
|
|
151
227
|
export const DayView = () => (
|
|
152
228
|
<FrappeProvider
|
|
153
|
-
baseURL=
|
|
229
|
+
baseURL={MOCK_HOST}
|
|
154
230
|
fixtures={new InMemoryFixtureProvider({ CalEvent: eventFixtures })}
|
|
155
231
|
>
|
|
156
232
|
<FrappeCalendar<CalEvent>
|
|
@@ -176,7 +252,7 @@ DayView.parameters = {
|
|
|
176
252
|
|
|
177
253
|
export const WithCustomEventRenderer = () => (
|
|
178
254
|
<FrappeProvider
|
|
179
|
-
baseURL=
|
|
255
|
+
baseURL={MOCK_HOST}
|
|
180
256
|
fixtures={new InMemoryFixtureProvider({ CalEvent: eventFixtures })}
|
|
181
257
|
>
|
|
182
258
|
<FrappeCalendar<CalEvent>
|
|
@@ -209,7 +285,7 @@ WithCustomEventRenderer.parameters = {
|
|
|
209
285
|
|
|
210
286
|
export const MondayFirstDay = () => (
|
|
211
287
|
<FrappeProvider
|
|
212
|
-
baseURL=
|
|
288
|
+
baseURL={MOCK_HOST}
|
|
213
289
|
fixtures={new InMemoryFixtureProvider({ CalEvent: eventFixtures })}
|
|
214
290
|
>
|
|
215
291
|
<FrappeCalendar<CalEvent>
|
|
@@ -333,7 +409,7 @@ const dateOnlyFixtures: LeaveRequest[] = [
|
|
|
333
409
|
*/
|
|
334
410
|
export const DateOnlyFields = () => (
|
|
335
411
|
<FrappeProvider
|
|
336
|
-
baseURL=
|
|
412
|
+
baseURL={MOCK_HOST}
|
|
337
413
|
fixtures={new InMemoryFixtureProvider({ LeaveApplication: dateOnlyFixtures })}
|
|
338
414
|
>
|
|
339
415
|
<FrappeCalendar<LeaveRequest>
|
|
@@ -422,7 +498,7 @@ const namedColorFixtures: CalEvent[] = [
|
|
|
422
498
|
|
|
423
499
|
export const NamedColors = () => (
|
|
424
500
|
<FrappeProvider
|
|
425
|
-
baseURL=
|
|
501
|
+
baseURL={MOCK_HOST}
|
|
426
502
|
fixtures={new InMemoryFixtureProvider({ CalEvent: namedColorFixtures })}
|
|
427
503
|
>
|
|
428
504
|
<FrappeCalendar<CalEvent>
|
|
@@ -448,7 +524,7 @@ NamedColors.parameters = {
|
|
|
448
524
|
|
|
449
525
|
export const WithEventMove = () => (
|
|
450
526
|
<FrappeProvider
|
|
451
|
-
baseURL=
|
|
527
|
+
baseURL={MOCK_HOST}
|
|
452
528
|
fixtures={new InMemoryFixtureProvider({ CalEvent: eventFixtures })}
|
|
453
529
|
>
|
|
454
530
|
<FrappeCalendar<CalEvent>
|
package/src/FrappeCalendar.tsx
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
type CalendarEvent,
|
|
6
6
|
type CalendarEventMoveRange,
|
|
7
7
|
} from "@multiplatform.one/components";
|
|
8
|
-
import { Spinner } from "@multiplatform.one/forms";
|
|
8
|
+
import { Spinner, formCommonColors } from "@multiplatform.one/forms";
|
|
9
9
|
import React, { useMemo, useCallback, useState, type ReactNode } from "react";
|
|
10
10
|
import { Text, YStack, type YStackProps } from "tamagui";
|
|
11
11
|
import { useTranslation } from "react-i18next";
|
|
@@ -214,11 +214,11 @@ export function FrappeCalendar<TDoc extends { name: string; doctype: string }>({
|
|
|
214
214
|
// was invisible on light fills and failed AA on mid-tone doc colors.
|
|
215
215
|
const defaultEventContent = useCallback(
|
|
216
216
|
(calEvent: CalendarEvent): ReactNode => (
|
|
217
|
-
<Text
|
|
217
|
+
<Text numberOfLines={2} color={eventChipTextColor(calEvent.color)} {...knobProps.label}>
|
|
218
218
|
{calEvent.title}
|
|
219
219
|
</Text>
|
|
220
220
|
),
|
|
221
|
-
[],
|
|
221
|
+
[knobProps.label],
|
|
222
222
|
);
|
|
223
223
|
|
|
224
224
|
// Bridge renderEvent from Frappe doc to generic CalendarEvent
|
|
@@ -271,7 +271,7 @@ export function FrappeCalendar<TDoc extends { name: string; doctype: string }>({
|
|
|
271
271
|
return (
|
|
272
272
|
<YStack {...knobProps.panelPadding} alignItems="center" {...stackProps}>
|
|
273
273
|
<Spinner size="large" />
|
|
274
|
-
<Text color=
|
|
274
|
+
<Text color={formCommonColors.muted} marginTop="$2" {...knobProps.body}>
|
|
275
275
|
{t("Loading {{doctype}}...", { doctype })}
|
|
276
276
|
</Text>
|
|
277
277
|
</YStack>
|
|
@@ -282,8 +282,8 @@ export function FrappeCalendar<TDoc extends { name: string; doctype: string }>({
|
|
|
282
282
|
if (error) return <>{error(queryError)}</>;
|
|
283
283
|
return (
|
|
284
284
|
<YStack {...knobProps.panelPadding} alignItems="center" {...stackProps} {...knobProps.gap}>
|
|
285
|
-
<Text color=
|
|
286
|
-
<Text color=
|
|
285
|
+
<Text color={formCommonColors.error}>{t("Error loading {{doctype}}", { doctype })}</Text>
|
|
286
|
+
<Text color={formCommonColors.muted} {...knobProps.body}>
|
|
287
287
|
{queryError.message}
|
|
288
288
|
</Text>
|
|
289
289
|
</YStack>
|
|
@@ -296,13 +296,13 @@ export function FrappeCalendar<TDoc extends { name: string; doctype: string }>({
|
|
|
296
296
|
{actionError && (
|
|
297
297
|
<YStack
|
|
298
298
|
{...knobProps.panelPadding}
|
|
299
|
-
{...knobProps.
|
|
299
|
+
{...knobProps.containerRadius}
|
|
300
300
|
backgroundColor="$red2"
|
|
301
301
|
borderColor="$red7"
|
|
302
302
|
borderWidth={1}
|
|
303
303
|
>
|
|
304
|
-
<Text color=
|
|
305
|
-
<Text color=
|
|
304
|
+
<Text color={formCommonColors.error}>{t("Action failed")}</Text>
|
|
305
|
+
<Text color={formCommonColors.muted} {...knobProps.body}>
|
|
306
306
|
{actionError.message}
|
|
307
307
|
</Text>
|
|
308
308
|
</YStack>
|