@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
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { MediaAspect, TileSizeRung } from "@multiplatform.one/theme";
|
|
2
|
+
|
|
3
|
+
export type FileBrowserView = "list" | "grid";
|
|
4
|
+
export type FileBrowserLayout = "split" | "drill";
|
|
5
|
+
export type FileBrowserSelectionMode = "multi" | "single";
|
|
6
|
+
export type FileBrowserPaneStatus = "ready" | "loading" | "empty" | "error";
|
|
7
|
+
export type FileBrowserSelectAllScope = "page" | "filtered";
|
|
8
|
+
export type FileBrowserBulkBarPlacement = "top" | "bottom";
|
|
9
|
+
|
|
10
|
+
/** One File-doctype row (folder or file). */
|
|
11
|
+
export type FileBrowserFile = {
|
|
12
|
+
name: string;
|
|
13
|
+
file_name: string;
|
|
14
|
+
file_url?: string;
|
|
15
|
+
file_size?: number;
|
|
16
|
+
file_type?: string;
|
|
17
|
+
folder?: string;
|
|
18
|
+
is_folder?: number | boolean;
|
|
19
|
+
modified?: string;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export type FileBrowserProps = {
|
|
23
|
+
/** Fixture / controlled File rows. Omit to load the live File doctype. */
|
|
24
|
+
files?: FileBrowserFile[];
|
|
25
|
+
foldersStatus?: FileBrowserPaneStatus;
|
|
26
|
+
filesStatus?: FileBrowserPaneStatus;
|
|
27
|
+
foldersError?: boolean | string | Error;
|
|
28
|
+
filesError?: boolean | string | Error;
|
|
29
|
+
onFoldersRetry?: () => void;
|
|
30
|
+
onFilesRetry?: () => void;
|
|
31
|
+
view?: FileBrowserView;
|
|
32
|
+
defaultView?: FileBrowserView;
|
|
33
|
+
onViewChange?: (view: FileBrowserView) => void;
|
|
34
|
+
/** Persist list|grid per surface (localStorage). Not a theme knob. */
|
|
35
|
+
surfaceId?: string;
|
|
36
|
+
selectionMode?: FileBrowserSelectionMode;
|
|
37
|
+
selectedIds?: string[];
|
|
38
|
+
onSelectedIdsChange?: (ids: string[]) => void;
|
|
39
|
+
/** Attach library current value — trailing 14×14 check (LC-21). */
|
|
40
|
+
currentValue?: string;
|
|
41
|
+
onPick?: (file: FileBrowserFile) => void;
|
|
42
|
+
currentFolder?: string;
|
|
43
|
+
onCurrentFolderChange?: (folder: string) => void;
|
|
44
|
+
tileSize?: TileSizeRung;
|
|
45
|
+
mediaAspect?: MediaAspect;
|
|
46
|
+
selectAllScope?: FileBrowserSelectAllScope;
|
|
47
|
+
bulkBarPlacement?: FileBrowserBulkBarPlacement;
|
|
48
|
+
tableZebra?: boolean;
|
|
49
|
+
/** Test / story override. Default: split ≥640, drill-in below. */
|
|
50
|
+
layout?: FileBrowserLayout;
|
|
51
|
+
/** Opens the in-pane FileUpload (same forms control Attach uses). */
|
|
52
|
+
onUpload?: (file: File) => unknown;
|
|
53
|
+
search?: string;
|
|
54
|
+
onSearchChange?: (query: string) => void;
|
|
55
|
+
onOpen?: (file: FileBrowserFile) => void;
|
|
56
|
+
onDownload?: (files: FileBrowserFile[]) => void;
|
|
57
|
+
onRename?: (file: FileBrowserFile) => void;
|
|
58
|
+
onMove?: (files: FileBrowserFile[]) => void;
|
|
59
|
+
onDelete?: (files: FileBrowserFile[]) => void;
|
|
60
|
+
accept?: string;
|
|
61
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { FileBrowserView } from "./types";
|
|
2
|
+
|
|
3
|
+
const PREFIX = "mpo.filebrowser.view.";
|
|
4
|
+
|
|
5
|
+
/** Survives the test-utils no-op localStorage stub; localStorage still wins after reload. */
|
|
6
|
+
const memory = new Map<string, FileBrowserView>();
|
|
7
|
+
|
|
8
|
+
function storageKey(surfaceId: string): string {
|
|
9
|
+
return `${PREFIX}${surfaceId}`;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function coerce(value: string | null | undefined): FileBrowserView | undefined {
|
|
13
|
+
return value === "grid" || value === "list" ? value : undefined;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function readPersistedView(surfaceId?: string): FileBrowserView | undefined {
|
|
17
|
+
if (!surfaceId) return undefined;
|
|
18
|
+
const key = storageKey(surfaceId);
|
|
19
|
+
const remembered = memory.get(key);
|
|
20
|
+
if (remembered) return remembered;
|
|
21
|
+
try {
|
|
22
|
+
return coerce(globalThis.localStorage?.getItem(key));
|
|
23
|
+
} catch {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function writePersistedView(surfaceId: string | undefined, view: FileBrowserView): void {
|
|
29
|
+
if (!surfaceId) return;
|
|
30
|
+
const key = storageKey(surfaceId);
|
|
31
|
+
memory.set(key, view);
|
|
32
|
+
try {
|
|
33
|
+
globalThis.localStorage?.setItem(key, view);
|
|
34
|
+
} catch {
|
|
35
|
+
// quota / private mode / test stub
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -26,7 +26,8 @@ import {
|
|
|
26
26
|
type SidebarSection,
|
|
27
27
|
} from "./FormSidebar";
|
|
28
28
|
import { FrappeForm } from "./FrappeForm";
|
|
29
|
-
import {
|
|
29
|
+
import { FrappeProvider } from "./FrappeProvider";
|
|
30
|
+
import { FrappeStoryProvider, LiveToDoGate, frappeStoriesLive } from "./frappeStoryTarget";
|
|
30
31
|
|
|
31
32
|
export default {
|
|
32
33
|
title: "FrappeUI/FormSidebar",
|
|
@@ -413,6 +414,71 @@ const todoFixtureMeta = {
|
|
|
413
414
|
permissions: [{ role: "All", read: 1, write: 1 }],
|
|
414
415
|
};
|
|
415
416
|
|
|
417
|
+
// ---------------------------------------------------------------------------
|
|
418
|
+
// Hermetic Live fallback (G-15 story honesty / D-05, closes UX-P18).
|
|
419
|
+
//
|
|
420
|
+
// FrappeStoryProvider's offline arm still targets demo.frappe.cloud as
|
|
421
|
+
// baseURL. Native / Kitchen Sink / TestFlight never have the bench, so that
|
|
422
|
+
// host fires CORS-failing getdoctype requests even with fixtures. MOCK_HOST
|
|
423
|
+
// keeps the same code path (real fetch, real meta shape) without leaving the
|
|
424
|
+
// machine. The live arm still uses FrappeStoryProvider when the bench is up.
|
|
425
|
+
// ---------------------------------------------------------------------------
|
|
426
|
+
|
|
427
|
+
const MOCK_HOST = "https://frappeformsidebar.mock.test";
|
|
428
|
+
|
|
429
|
+
const liveSidebarFixtures = new InMemoryFixtureProvider({
|
|
430
|
+
DocType: [todoFixtureMeta],
|
|
431
|
+
ToDo: [
|
|
432
|
+
{
|
|
433
|
+
name: "TODO-LIVE-001",
|
|
434
|
+
doctype: "ToDo",
|
|
435
|
+
description: "Fixture fallback todo (bench unreachable)",
|
|
436
|
+
status: "Open",
|
|
437
|
+
priority: "Medium",
|
|
438
|
+
_assign: '["jane@example.com"]',
|
|
439
|
+
},
|
|
440
|
+
],
|
|
441
|
+
});
|
|
442
|
+
|
|
443
|
+
function jsonResponse(body: unknown, status = 200): Response {
|
|
444
|
+
return new Response(JSON.stringify(body), {
|
|
445
|
+
status,
|
|
446
|
+
headers: { "Content-Type": "application/json" },
|
|
447
|
+
});
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
(() => {
|
|
451
|
+
if (typeof window === "undefined") return;
|
|
452
|
+
const w = window as unknown as Record<string, unknown>;
|
|
453
|
+
if (w.__frappeFormSidebarMockFetch) return;
|
|
454
|
+
w.__frappeFormSidebarMockFetch = true;
|
|
455
|
+
const realFetch = window.fetch.bind(window);
|
|
456
|
+
window.fetch = async (input: RequestInfo | URL, init?: RequestInit): Promise<Response> => {
|
|
457
|
+
const urlStr =
|
|
458
|
+
typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url;
|
|
459
|
+
if (urlStr.startsWith(MOCK_HOST)) {
|
|
460
|
+
const url = new URL(urlStr);
|
|
461
|
+
if (url.pathname === "/api/method/frappe.desk.form.load.getdoctype") {
|
|
462
|
+
const doctype = url.searchParams.get("doctype") || "ToDo";
|
|
463
|
+
const meta = doctype === "ToDo" ? todoFixtureMeta : { ...todoFixtureMeta, name: doctype };
|
|
464
|
+
return jsonResponse({ docs: [meta] });
|
|
465
|
+
}
|
|
466
|
+
const metaMatch = url.pathname.match(/^\/api\/resource\/DocType\/(.+)$/);
|
|
467
|
+
if (metaMatch) {
|
|
468
|
+
const doctype = decodeURIComponent(metaMatch[1]);
|
|
469
|
+
const meta = doctype === "ToDo" ? todoFixtureMeta : { ...todoFixtureMeta, name: doctype };
|
|
470
|
+
return jsonResponse({ data: meta });
|
|
471
|
+
}
|
|
472
|
+
if (url.pathname === "/api/resource/DocType") {
|
|
473
|
+
return jsonResponse({ data: [{ name: "ToDo", module: "Desk" }] });
|
|
474
|
+
}
|
|
475
|
+
// Everything else (DocShare, guest field-peek, counts): empty, never the network.
|
|
476
|
+
return jsonResponse({ data: [] });
|
|
477
|
+
}
|
|
478
|
+
return realFetch(input as RequestInfo, init);
|
|
479
|
+
};
|
|
480
|
+
})();
|
|
481
|
+
|
|
416
482
|
/**
|
|
417
483
|
* Live sidebar plumbing: renders FrappeForm (schema mode + showSidebar)
|
|
418
484
|
* against the real bench ToDo doctype so the sidebar's assignments
|
|
@@ -420,28 +486,11 @@ const todoFixtureMeta = {
|
|
|
420
486
|
* the open document in place. The `name` arg selects the document
|
|
421
487
|
* (harnesses pass a real doc name via URL args). When live with no arg,
|
|
422
488
|
* LiveToDoGate resolves a real ToDo so the story does not 404 on a
|
|
423
|
-
* hash-named doctype. Falls back to fixtures when the bench is
|
|
424
|
-
*
|
|
425
|
-
* form rather than a meta error.
|
|
489
|
+
* hash-named doctype. Falls back to MOCK_HOST + fixtures when the bench is
|
|
490
|
+
* down — native never needs the bench or demo.frappe.cloud.
|
|
426
491
|
*/
|
|
427
|
-
export const Live = (args: { name?: string }) =>
|
|
428
|
-
|
|
429
|
-
fixtures={
|
|
430
|
-
new InMemoryFixtureProvider({
|
|
431
|
-
DocType: [todoFixtureMeta],
|
|
432
|
-
ToDo: [
|
|
433
|
-
{
|
|
434
|
-
name: "TODO-LIVE-001",
|
|
435
|
-
doctype: "ToDo",
|
|
436
|
-
description: "Fixture fallback todo (bench unreachable)",
|
|
437
|
-
status: "Open",
|
|
438
|
-
priority: "Medium",
|
|
439
|
-
_assign: '["jane@example.com"]',
|
|
440
|
-
},
|
|
441
|
-
],
|
|
442
|
-
})
|
|
443
|
-
}
|
|
444
|
-
>
|
|
492
|
+
export const Live = (args: { name?: string }) => {
|
|
493
|
+
const form = (
|
|
445
494
|
<LiveToDoGate name={args.name}>
|
|
446
495
|
{(name) => (
|
|
447
496
|
<FrappeForm
|
|
@@ -452,15 +501,23 @@ export const Live = (args: { name?: string }) => (
|
|
|
452
501
|
/>
|
|
453
502
|
)}
|
|
454
503
|
</LiveToDoGate>
|
|
455
|
-
|
|
456
|
-
)
|
|
504
|
+
);
|
|
505
|
+
if (frappeStoriesLive) {
|
|
506
|
+
return <FrappeStoryProvider>{form}</FrappeStoryProvider>;
|
|
507
|
+
}
|
|
508
|
+
return (
|
|
509
|
+
<FrappeProvider baseURL={MOCK_HOST} fixtures={liveSidebarFixtures}>
|
|
510
|
+
{form}
|
|
511
|
+
</FrappeProvider>
|
|
512
|
+
);
|
|
513
|
+
};
|
|
457
514
|
Live.args = { name: "" };
|
|
458
515
|
Live.argTypes = { name: { control: "text" } };
|
|
459
516
|
Live.parameters = {
|
|
460
517
|
docs: {
|
|
461
518
|
description: {
|
|
462
519
|
story:
|
|
463
|
-
"Live sidebar over the real bench: assignments (_assign), shares (DocShare subscription) and metadata update in place when the open ToDo changes on the server. Opens a real bench ToDo so the live arm is not a 404. Administrator sees live DocShare rows; an ordinary Desk User is refused DocShare (403) and the Shared With section degrades — that is expected, not a product failure.
|
|
520
|
+
"Live sidebar over the real bench: assignments (_assign), shares (DocShare subscription) and metadata update in place when the open ToDo changes on the server. Opens a real bench ToDo so the live arm is not a 404. Administrator sees live DocShare rows; an ordinary Desk User is refused DocShare (403) and the Shared With section degrades — that is expected, not a product failure. When the bench is down (Kitchen Sink / TestFlight / native) the fallback uses MOCK_HOST https://frappeformsidebar.mock.test plus fixtures so DocType meta never hits demo.frappe.cloud.",
|
|
464
521
|
},
|
|
465
522
|
},
|
|
466
523
|
};
|
package/src/FormSidebar.tsx
CHANGED
|
@@ -17,13 +17,13 @@
|
|
|
17
17
|
* DeskParity story.
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
import { Avatar, getInitials } from "@multiplatform.one/components";
|
|
21
|
-
import {
|
|
20
|
+
import { Avatar, componentColors, getInitials } from "@multiplatform.one/components";
|
|
21
|
+
import { Button } from "@multiplatform.one/forms";
|
|
22
|
+
import { useResolvedKnobs } from "@multiplatform.one/theme";
|
|
22
23
|
import { ImageSquareIcon, PlusIcon, UploadIcon, UserIcon, XIcon } from "@phosphor-icons/react";
|
|
23
24
|
import React from "react";
|
|
24
25
|
import { useTranslation } from "react-i18next";
|
|
25
26
|
import {
|
|
26
|
-
Button,
|
|
27
27
|
Image,
|
|
28
28
|
ListItem,
|
|
29
29
|
Separator,
|
|
@@ -96,12 +96,13 @@ export interface FormSidebarProps extends Omit<YStackProps, "children"> {
|
|
|
96
96
|
// Initials come from the catalog Avatar helper (census #21) — the local copy
|
|
97
97
|
// this file carried could drift from the one Timeline/Avatar consume.
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
// R12 tint family (decorative, not semantic): orange / blue / purple / pink.
|
|
100
|
+
const avatarColors = ["$orange4", "$blue4", "$purple4", "$pink4"];
|
|
100
101
|
function avatarColor(index: number): string {
|
|
101
102
|
return avatarColors[index % avatarColors.length];
|
|
102
103
|
}
|
|
103
104
|
|
|
104
|
-
const textColors = ["$
|
|
105
|
+
const textColors = ["$orange11", "$blue11", "$purple11", "$pink11"];
|
|
105
106
|
function textColor(index: number): string {
|
|
106
107
|
return textColors[index % textColors.length];
|
|
107
108
|
}
|
|
@@ -122,9 +123,10 @@ export function FormSidebar({
|
|
|
122
123
|
const { t } = useTranslation();
|
|
123
124
|
const { knobProps } = useResolvedKnobs();
|
|
124
125
|
const theme = useTheme();
|
|
125
|
-
// Resolved token, not "var(--
|
|
126
|
+
// Resolved token, not "var(--color11)": CSS var strings reach react-native-svg
|
|
126
127
|
// unparsed on native and the icon renders invisible.
|
|
127
|
-
const placeholderIconColor = theme.
|
|
128
|
+
const placeholderIconColor = theme.color11?.val ?? "currentColor";
|
|
129
|
+
const iconSize = Number(knobProps.controlIcon?.width) || 16;
|
|
128
130
|
|
|
129
131
|
// Broken-image fallback: remember which URL failed so a replacement URL
|
|
130
132
|
// gets a fresh attempt (no effect needed).
|
|
@@ -133,11 +135,7 @@ export function FormSidebar({
|
|
|
133
135
|
|
|
134
136
|
// Scale typography, avatars, icons and the image block with the size knob
|
|
135
137
|
const sz = knobProps.sizeToken;
|
|
136
|
-
const headingFontSize = sz === "$3" ? "$1" : sz === "$5" ? "$4" : "$2";
|
|
137
|
-
const labelFontSize = headingFontSize;
|
|
138
|
-
const subFontSize = sz === "$5" ? "$2" : "$1";
|
|
139
138
|
const avatarSize = sz === "$3" ? "$1" : sz === "$5" ? "$3" : "$2";
|
|
140
|
-
const metaIconSize = sz === "$3" ? 12 : sz === "$5" ? 16 : 14;
|
|
141
139
|
const imageSize = sz === "$3" ? 160 : sz === "$5" ? 240 : 200;
|
|
142
140
|
|
|
143
141
|
const resolvedImageLabel = imageLabel ?? t("Document image");
|
|
@@ -192,55 +190,55 @@ export function FormSidebar({
|
|
|
192
190
|
borderColor="$borderColor"
|
|
193
191
|
aria-label={resolvedImageLabel}
|
|
194
192
|
>
|
|
195
|
-
<ImageSquareIcon size={
|
|
196
|
-
<Text
|
|
193
|
+
<ImageSquareIcon size={iconSize * 2} color={placeholderIconColor} />
|
|
194
|
+
<Text color={componentColors.text.muted} {...knobProps.label}>
|
|
197
195
|
{t("Image failed to load")}
|
|
198
196
|
</Text>
|
|
199
197
|
</YStack>
|
|
200
198
|
) : (
|
|
201
|
-
<
|
|
202
|
-
|
|
199
|
+
<YStack
|
|
200
|
+
role="button"
|
|
201
|
+
tabIndex={0}
|
|
203
202
|
onPress={onImageAdd}
|
|
204
203
|
aria-label={t("Add image")}
|
|
205
204
|
width={imageSize}
|
|
206
205
|
height={imageSize}
|
|
207
|
-
|
|
206
|
+
alignItems="center"
|
|
207
|
+
justifyContent="center"
|
|
208
|
+
cursor="pointer"
|
|
208
209
|
gap="$2"
|
|
209
210
|
{...knobProps.containerRadius}
|
|
210
211
|
borderWidth={1}
|
|
211
212
|
borderStyle="dashed"
|
|
212
213
|
borderColor="$borderColor"
|
|
213
214
|
>
|
|
214
|
-
<ImageSquareIcon size={
|
|
215
|
-
<Text
|
|
215
|
+
<ImageSquareIcon size={iconSize * 2} color={placeholderIconColor} />
|
|
216
|
+
<Text color={componentColors.text.muted} {...knobProps.label}>
|
|
216
217
|
{t("Add image")}
|
|
217
218
|
</Text>
|
|
218
|
-
</
|
|
219
|
+
</YStack>
|
|
219
220
|
)}
|
|
220
221
|
|
|
221
222
|
{imageUrl && (onImageAdd || onImageRemove) && (
|
|
222
223
|
<XStack gap="$2">
|
|
223
224
|
{onImageAdd && (
|
|
224
225
|
<Button
|
|
225
|
-
size="$
|
|
226
|
+
size="$2"
|
|
226
227
|
chromeless
|
|
227
228
|
icon={UploadIcon}
|
|
228
229
|
aria-label={t("Replace image")}
|
|
229
230
|
onPress={onImageAdd}
|
|
230
|
-
// DG-LAY-04: raw size="$1" buttons measure ~20px tall.
|
|
231
|
-
{...pressTargetStyle()}
|
|
232
231
|
>
|
|
233
232
|
{t("Replace")}
|
|
234
233
|
</Button>
|
|
235
234
|
)}
|
|
236
235
|
{onImageRemove && (
|
|
237
236
|
<Button
|
|
238
|
-
size="$
|
|
237
|
+
size="$2"
|
|
239
238
|
chromeless
|
|
240
239
|
icon={XIcon}
|
|
241
240
|
aria-label={t("Remove image")}
|
|
242
241
|
onPress={onImageRemove}
|
|
243
|
-
{...pressTargetStyle()}
|
|
244
242
|
>
|
|
245
243
|
{t("Remove")}
|
|
246
244
|
</Button>
|
|
@@ -259,21 +257,20 @@ export function FormSidebar({
|
|
|
259
257
|
<XStack alignItems="center" justifyContent="space-between">
|
|
260
258
|
<XStack alignItems="center" gap="$2">
|
|
261
259
|
{section.icon}
|
|
262
|
-
<Text
|
|
260
|
+
<Text color={componentColors.text.muted} {...knobProps.label} fontWeight="400">
|
|
263
261
|
{section.title}
|
|
264
262
|
</Text>
|
|
265
263
|
</XStack>
|
|
266
264
|
{section.onAdd && (
|
|
267
265
|
<Button
|
|
268
|
-
size="$
|
|
266
|
+
size="$2"
|
|
267
|
+
circular
|
|
269
268
|
chromeless
|
|
270
269
|
icon={PlusIcon}
|
|
271
270
|
aria-label={t("Add {{section}}", {
|
|
272
271
|
section: section.title,
|
|
273
272
|
})}
|
|
274
273
|
onPress={section.onAdd}
|
|
275
|
-
// DG-LAY-04: raw size="$1" icon buttons measure ~17×20.
|
|
276
|
-
{...pressTargetStyle()}
|
|
277
274
|
/>
|
|
278
275
|
)}
|
|
279
276
|
</XStack>
|
|
@@ -286,36 +283,40 @@ export function FormSidebar({
|
|
|
286
283
|
<XStack key={item.id} gap="$2" alignItems="center">
|
|
287
284
|
<Avatar circular size={avatarSize} backgroundColor={avatarColor(sectionIdx)}>
|
|
288
285
|
<Avatar.Fallback backgroundColor={avatarColor(sectionIdx)}>
|
|
289
|
-
<Text
|
|
286
|
+
<Text color={textColor(sectionIdx)} {...knobProps.label} fontWeight="700">
|
|
290
287
|
{getInitials(item.label)}
|
|
291
288
|
</Text>
|
|
292
289
|
</Avatar.Fallback>
|
|
293
290
|
</Avatar>
|
|
294
291
|
<YStack flex={1}>
|
|
295
|
-
<Text
|
|
292
|
+
<Text
|
|
293
|
+
color={componentColors.text.primary}
|
|
294
|
+
numberOfLines={1}
|
|
295
|
+
{...knobProps.label}
|
|
296
|
+
>
|
|
296
297
|
{item.label}
|
|
297
298
|
</Text>
|
|
298
299
|
{item.sublabel && (
|
|
299
|
-
<Text
|
|
300
|
+
<Text color={componentColors.text.muted} {...knobProps.label}>
|
|
300
301
|
{item.sublabel}
|
|
301
302
|
</Text>
|
|
302
303
|
)}
|
|
303
304
|
</YStack>
|
|
304
305
|
{section.onRemoveItem && (
|
|
305
306
|
<Button
|
|
306
|
-
size="$
|
|
307
|
+
size="$2"
|
|
308
|
+
circular
|
|
307
309
|
chromeless
|
|
308
310
|
icon={XIcon}
|
|
309
311
|
aria-label={t("Remove {{name}}", { name: item.label })}
|
|
310
312
|
onPress={() => section.onRemoveItem?.(item)}
|
|
311
|
-
{...pressTargetStyle()}
|
|
312
313
|
/>
|
|
313
314
|
)}
|
|
314
315
|
</XStack>
|
|
315
316
|
))}
|
|
316
317
|
</YStack>
|
|
317
318
|
) : (
|
|
318
|
-
<Text
|
|
319
|
+
<Text color={componentColors.text.muted} {...knobProps.label}>
|
|
319
320
|
{section.emptyText ?? t("None")}
|
|
320
321
|
</Text>
|
|
321
322
|
)}
|
|
@@ -331,7 +332,12 @@ export function FormSidebar({
|
|
|
331
332
|
{/* -- Info / Metadata -- */}
|
|
332
333
|
{metadata.length > 0 && (
|
|
333
334
|
<YStack gap="$1">
|
|
334
|
-
<Text
|
|
335
|
+
<Text
|
|
336
|
+
color={componentColors.text.muted}
|
|
337
|
+
paddingHorizontal="$2"
|
|
338
|
+
{...knobProps.label}
|
|
339
|
+
fontWeight="400"
|
|
340
|
+
>
|
|
335
341
|
{t("Info")}
|
|
336
342
|
</Text>
|
|
337
343
|
{metadata.map((entry) => (
|
|
@@ -340,10 +346,18 @@ export function FormSidebar({
|
|
|
340
346
|
size={knobProps.sizeToken}
|
|
341
347
|
icon={
|
|
342
348
|
(entry.icon ?? (
|
|
343
|
-
<UserIcon
|
|
349
|
+
<UserIcon
|
|
350
|
+
size={iconSize}
|
|
351
|
+
color={placeholderIconColor}
|
|
352
|
+
style={{ flexShrink: 0 }}
|
|
353
|
+
/>
|
|
344
354
|
)) as any
|
|
345
355
|
}
|
|
346
|
-
title={
|
|
356
|
+
title={
|
|
357
|
+
<Text color={componentColors.text.muted} {...knobProps.label}>
|
|
358
|
+
{entry.label}
|
|
359
|
+
</Text>
|
|
360
|
+
}
|
|
347
361
|
backgroundColor="transparent"
|
|
348
362
|
paddingVertical="$1"
|
|
349
363
|
/>
|