@pilotiq/pilotiq 0.7.2 → 0.8.1
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/.turbo/turbo-build.log +2 -2
- package/CHANGELOG.md +208 -0
- package/CLAUDE.md +59 -3
- package/dist/Pilotiq.d.ts +83 -0
- package/dist/Pilotiq.d.ts.map +1 -1
- package/dist/Pilotiq.js +39 -0
- package/dist/Pilotiq.js.map +1 -1
- package/dist/actions/Action.d.ts +27 -99
- package/dist/actions/Action.d.ts.map +1 -1
- package/dist/actions/Action.js +52 -754
- package/dist/actions/Action.js.map +1 -1
- package/dist/actions/bulkFactories.d.ts +46 -0
- package/dist/actions/bulkFactories.d.ts.map +1 -0
- package/dist/actions/bulkFactories.js +144 -0
- package/dist/actions/bulkFactories.js.map +1 -0
- package/dist/actions/crudFactories.d.ts +94 -0
- package/dist/actions/crudFactories.d.ts.map +1 -0
- package/dist/actions/crudFactories.js +209 -0
- package/dist/actions/crudFactories.js.map +1 -0
- package/dist/actions/factoryHelpers.d.ts +108 -0
- package/dist/actions/factoryHelpers.d.ts.map +1 -0
- package/dist/actions/factoryHelpers.js +138 -0
- package/dist/actions/factoryHelpers.js.map +1 -0
- package/dist/actions/m2mFactories.d.ts +47 -0
- package/dist/actions/m2mFactories.d.ts.map +1 -0
- package/dist/actions/m2mFactories.js +173 -0
- package/dist/actions/m2mFactories.js.map +1 -0
- package/dist/actions/relationFactories.d.ts +93 -0
- package/dist/actions/relationFactories.d.ts.map +1 -0
- package/dist/actions/relationFactories.js +321 -0
- package/dist/actions/relationFactories.js.map +1 -0
- package/dist/elements/dispatchForm.js +1 -1
- package/dist/elements/dispatchForm.js.map +1 -1
- package/dist/elements/dispatchTable.js +1 -1
- package/dist/elements/dispatchTable.js.map +1 -1
- package/dist/fields/Field.d.ts +31 -0
- package/dist/fields/Field.d.ts.map +1 -1
- package/dist/fields/Field.js +25 -0
- package/dist/fields/Field.js.map +1 -1
- package/dist/pageData/breadcrumbs.d.ts +42 -0
- package/dist/pageData/breadcrumbs.d.ts.map +1 -0
- package/dist/pageData/breadcrumbs.js +172 -0
- package/dist/pageData/breadcrumbs.js.map +1 -0
- package/dist/pageData/forms.d.ts +137 -0
- package/dist/pageData/forms.d.ts.map +1 -0
- package/dist/pageData/forms.js +427 -0
- package/dist/pageData/forms.js.map +1 -0
- package/dist/pageData/helpers.d.ts +239 -0
- package/dist/pageData/helpers.d.ts.map +1 -0
- package/dist/pageData/helpers.js +703 -0
- package/dist/pageData/helpers.js.map +1 -0
- package/dist/pageData/misc.d.ts +76 -0
- package/dist/pageData/misc.d.ts.map +1 -0
- package/dist/pageData/misc.js +263 -0
- package/dist/pageData/misc.js.map +1 -0
- package/dist/pageData/navigation.d.ts +292 -0
- package/dist/pageData/navigation.d.ts.map +1 -0
- package/dist/pageData/navigation.js +591 -0
- package/dist/pageData/navigation.js.map +1 -0
- package/dist/pageData/relationPages.d.ts +172 -0
- package/dist/pageData/relationPages.d.ts.map +1 -0
- package/dist/pageData/relationPages.js +867 -0
- package/dist/pageData/relationPages.js.map +1 -0
- package/dist/pageData/relationTabs.d.ts +65 -0
- package/dist/pageData/relationTabs.d.ts.map +1 -0
- package/dist/pageData/relationTabs.js +258 -0
- package/dist/pageData/relationTabs.js.map +1 -0
- package/dist/pageData/resourcePages.d.ts +48 -0
- package/dist/pageData/resourcePages.d.ts.map +1 -0
- package/dist/pageData/resourcePages.js +504 -0
- package/dist/pageData/resourcePages.js.map +1 -0
- package/dist/pageData.d.ts +12 -792
- package/dist/pageData.d.ts.map +1 -1
- package/dist/pageData.js +24 -3797
- package/dist/pageData.js.map +1 -1
- package/dist/react/AppShell.d.ts +8 -0
- package/dist/react/AppShell.d.ts.map +1 -1
- package/dist/react/AppShell.js +11 -1
- package/dist/react/AppShell.js.map +1 -1
- package/dist/react/CollabExtensionFactoryRegistry.d.ts +47 -0
- package/dist/react/CollabExtensionFactoryRegistry.d.ts.map +1 -0
- package/dist/react/CollabExtensionFactoryRegistry.js +14 -0
- package/dist/react/CollabExtensionFactoryRegistry.js.map +1 -0
- package/dist/react/CollabRoomContext.d.ts +37 -0
- package/dist/react/CollabRoomContext.d.ts.map +1 -0
- package/dist/react/CollabRoomContext.js +12 -0
- package/dist/react/CollabRoomContext.js.map +1 -0
- package/dist/react/FormCollabBindingRegistry.d.ts +62 -0
- package/dist/react/FormCollabBindingRegistry.d.ts.map +1 -0
- package/dist/react/FormCollabBindingRegistry.js +14 -0
- package/dist/react/FormCollabBindingRegistry.js.map +1 -0
- package/dist/react/FormStateContext.d.ts.map +1 -1
- package/dist/react/FormStateContext.js +87 -0
- package/dist/react/FormStateContext.js.map +1 -1
- package/dist/react/RecordWrapperGate.d.ts +25 -0
- package/dist/react/RecordWrapperGate.d.ts.map +1 -0
- package/dist/react/RecordWrapperGate.js +30 -0
- package/dist/react/RecordWrapperGate.js.map +1 -0
- package/dist/react/RecordWrapperRegistry.d.ts +31 -0
- package/dist/react/RecordWrapperRegistry.d.ts.map +1 -0
- package/dist/react/RecordWrapperRegistry.js +15 -0
- package/dist/react/RecordWrapperRegistry.js.map +1 -0
- package/dist/react/SchemaRenderer.d.ts +17 -23
- package/dist/react/SchemaRenderer.d.ts.map +1 -1
- package/dist/react/SchemaRenderer.js +71 -3647
- package/dist/react/SchemaRenderer.js.map +1 -1
- package/dist/react/component-slots.d.ts +103 -0
- package/dist/react/component-slots.d.ts.map +1 -0
- package/dist/react/component-slots.js +18 -0
- package/dist/react/component-slots.js.map +1 -0
- package/dist/react/fields/BuilderInput.d.ts.map +1 -1
- package/dist/react/fields/BuilderInput.js +21 -117
- package/dist/react/fields/BuilderInput.js.map +1 -1
- package/dist/react/fields/MarkdownInput.d.ts.map +1 -1
- package/dist/react/fields/MarkdownInput.js +1 -3
- package/dist/react/fields/MarkdownInput.js.map +1 -1
- package/dist/react/fields/RepeaterInput.d.ts.map +1 -1
- package/dist/react/fields/RepeaterInput.js +22 -127
- package/dist/react/fields/RepeaterInput.js.map +1 -1
- package/dist/react/fields/rowState.d.ts +40 -0
- package/dist/react/fields/rowState.d.ts.map +1 -0
- package/dist/react/fields/rowState.js +60 -0
- package/dist/react/fields/rowState.js.map +1 -0
- package/dist/react/fields/useRowReorderDnd.d.ts +28 -0
- package/dist/react/fields/useRowReorderDnd.d.ts.map +1 -0
- package/dist/react/fields/useRowReorderDnd.js +51 -0
- package/dist/react/fields/useRowReorderDnd.js.map +1 -0
- package/dist/react/index.d.ts +9 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +8 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/layouts/SidebarLayout.d.ts +1 -1
- package/dist/react/layouts/SidebarLayout.d.ts.map +1 -1
- package/dist/react/layouts/SidebarLayout.js +10 -2
- package/dist/react/layouts/SidebarLayout.js.map +1 -1
- package/dist/react/layouts/TopbarLayout.d.ts +1 -1
- package/dist/react/layouts/TopbarLayout.d.ts.map +1 -1
- package/dist/react/layouts/TopbarLayout.js +19 -11
- package/dist/react/layouts/TopbarLayout.js.map +1 -1
- package/dist/react/parseRecordEditUrl.d.ts +29 -0
- package/dist/react/parseRecordEditUrl.d.ts.map +1 -0
- package/dist/react/parseRecordEditUrl.js +25 -0
- package/dist/react/parseRecordEditUrl.js.map +1 -0
- package/dist/react/persistedState.d.ts +19 -0
- package/dist/react/persistedState.d.ts.map +1 -0
- package/dist/react/persistedState.js +51 -0
- package/dist/react/persistedState.js.map +1 -0
- package/dist/react/schemaRenderer/AlertRenderer.d.ts +12 -0
- package/dist/react/schemaRenderer/AlertRenderer.d.ts.map +1 -0
- package/dist/react/schemaRenderer/AlertRenderer.js +61 -0
- package/dist/react/schemaRenderer/AlertRenderer.js.map +1 -0
- package/dist/react/schemaRenderer/EntryRenderer.d.ts +13 -0
- package/dist/react/schemaRenderer/EntryRenderer.d.ts.map +1 -0
- package/dist/react/schemaRenderer/EntryRenderer.js +277 -0
- package/dist/react/schemaRenderer/EntryRenderer.js.map +1 -0
- package/dist/react/schemaRenderer/SectionRenderer.d.ts +16 -0
- package/dist/react/schemaRenderer/SectionRenderer.d.ts.map +1 -0
- package/dist/react/schemaRenderer/SectionRenderer.js +62 -0
- package/dist/react/schemaRenderer/SectionRenderer.js.map +1 -0
- package/dist/react/schemaRenderer/SimpleElements.d.ts +25 -0
- package/dist/react/schemaRenderer/SimpleElements.d.ts.map +1 -0
- package/dist/react/schemaRenderer/SimpleElements.js +147 -0
- package/dist/react/schemaRenderer/SimpleElements.js.map +1 -0
- package/dist/react/schemaRenderer/TabsRenderer.d.ts +17 -0
- package/dist/react/schemaRenderer/TabsRenderer.d.ts.map +1 -0
- package/dist/react/schemaRenderer/TabsRenderer.js +31 -0
- package/dist/react/schemaRenderer/TabsRenderer.js.map +1 -0
- package/dist/react/schemaRenderer/WizardRenderer.d.ts +34 -0
- package/dist/react/schemaRenderer/WizardRenderer.d.ts.map +1 -0
- package/dist/react/schemaRenderer/WizardRenderer.js +208 -0
- package/dist/react/schemaRenderer/WizardRenderer.js.map +1 -0
- package/dist/react/schemaRenderer/action/ActionGroupTrigger.d.ts +21 -0
- package/dist/react/schemaRenderer/action/ActionGroupTrigger.d.ts.map +1 -0
- package/dist/react/schemaRenderer/action/ActionGroupTrigger.js +82 -0
- package/dist/react/schemaRenderer/action/ActionGroupTrigger.js.map +1 -0
- package/dist/react/schemaRenderer/action/ActionModalDialog.d.ts +30 -0
- package/dist/react/schemaRenderer/action/ActionModalDialog.d.ts.map +1 -0
- package/dist/react/schemaRenderer/action/ActionModalDialog.js +182 -0
- package/dist/react/schemaRenderer/action/ActionModalDialog.js.map +1 -0
- package/dist/react/schemaRenderer/action/ConfirmActionDialog.d.ts +17 -0
- package/dist/react/schemaRenderer/action/ConfirmActionDialog.d.ts.map +1 -0
- package/dist/react/schemaRenderer/action/ConfirmActionDialog.js +19 -0
- package/dist/react/schemaRenderer/action/ConfirmActionDialog.js.map +1 -0
- package/dist/react/schemaRenderer/action/HandlerActionButton.d.ts +16 -0
- package/dist/react/schemaRenderer/action/HandlerActionButton.d.ts.map +1 -0
- package/dist/react/schemaRenderer/action/HandlerActionButton.js +16 -0
- package/dist/react/schemaRenderer/action/HandlerActionButton.js.map +1 -0
- package/dist/react/schemaRenderer/action/MethodActionButton.d.ts +22 -0
- package/dist/react/schemaRenderer/action/MethodActionButton.d.ts.map +1 -0
- package/dist/react/schemaRenderer/action/MethodActionButton.js +26 -0
- package/dist/react/schemaRenderer/action/MethodActionButton.js.map +1 -0
- package/dist/react/schemaRenderer/action/buttons.d.ts +18 -0
- package/dist/react/schemaRenderer/action/buttons.d.ts.map +1 -0
- package/dist/react/schemaRenderer/action/buttons.js +74 -0
- package/dist/react/schemaRenderer/action/buttons.js.map +1 -0
- package/dist/react/schemaRenderer/action/helpers.d.ts +26 -0
- package/dist/react/schemaRenderer/action/helpers.d.ts.map +1 -0
- package/dist/react/schemaRenderer/action/helpers.js +126 -0
- package/dist/react/schemaRenderer/action/helpers.js.map +1 -0
- package/dist/react/schemaRenderer/action/renderAction.d.ts +21 -0
- package/dist/react/schemaRenderer/action/renderAction.d.ts.map +1 -0
- package/dist/react/schemaRenderer/action/renderAction.js +102 -0
- package/dist/react/schemaRenderer/action/renderAction.js.map +1 -0
- package/dist/react/schemaRenderer/columnFormat.d.ts +10 -0
- package/dist/react/schemaRenderer/columnFormat.d.ts.map +1 -0
- package/dist/react/schemaRenderer/columnFormat.js +76 -0
- package/dist/react/schemaRenderer/columnFormat.js.map +1 -0
- package/dist/react/schemaRenderer/constants.d.ts +8 -0
- package/dist/react/schemaRenderer/constants.d.ts.map +1 -0
- package/dist/react/schemaRenderer/constants.js +45 -0
- package/dist/react/schemaRenderer/constants.js.map +1 -0
- package/dist/react/schemaRenderer/form/FormRenderer.d.ts +29 -0
- package/dist/react/schemaRenderer/form/FormRenderer.d.ts.map +1 -0
- package/dist/react/schemaRenderer/form/FormRenderer.js +163 -0
- package/dist/react/schemaRenderer/form/FormRenderer.js.map +1 -0
- package/dist/react/schemaRenderer/form/renderField.d.ts +6 -0
- package/dist/react/schemaRenderer/form/renderField.d.ts.map +1 -0
- package/dist/react/schemaRenderer/form/renderField.js +239 -0
- package/dist/react/schemaRenderer/form/renderField.js.map +1 -0
- package/dist/react/schemaRenderer/helpers.d.ts +32 -0
- package/dist/react/schemaRenderer/helpers.d.ts.map +1 -0
- package/dist/react/schemaRenderer/helpers.js +52 -0
- package/dist/react/schemaRenderer/helpers.js.map +1 -0
- package/dist/react/schemaRenderer/table/CardsLayoutBody.d.ts +60 -0
- package/dist/react/schemaRenderer/table/CardsLayoutBody.d.ts.map +1 -0
- package/dist/react/schemaRenderer/table/CardsLayoutBody.js +189 -0
- package/dist/react/schemaRenderer/table/CardsLayoutBody.js.map +1 -0
- package/dist/react/schemaRenderer/table/TableRenderer.d.ts +29 -0
- package/dist/react/schemaRenderer/table/TableRenderer.d.ts.map +1 -0
- package/dist/react/schemaRenderer/table/TableRenderer.js +85 -0
- package/dist/react/schemaRenderer/table/TableRenderer.js.map +1 -0
- package/dist/react/schemaRenderer/table/TableRendererBody.d.ts +18 -0
- package/dist/react/schemaRenderer/table/TableRendererBody.d.ts.map +1 -0
- package/dist/react/schemaRenderer/table/TableRendererBody.js +555 -0
- package/dist/react/schemaRenderer/table/TableRendererBody.js.map +1 -0
- package/dist/react/schemaRenderer/table/filters.d.ts +263 -0
- package/dist/react/schemaRenderer/table/filters.d.ts.map +1 -0
- package/dist/react/schemaRenderer/table/filters.js +497 -0
- package/dist/react/schemaRenderer/table/filters.js.map +1 -0
- package/dist/react/schemaRenderer/table/formatCell.d.ts +11 -0
- package/dist/react/schemaRenderer/table/formatCell.d.ts.map +1 -0
- package/dist/react/schemaRenderer/table/formatCell.js +172 -0
- package/dist/react/schemaRenderer/table/formatCell.js.map +1 -0
- package/dist/react/schemaRenderer/table/links.d.ts +42 -0
- package/dist/react/schemaRenderer/table/links.d.ts.map +1 -0
- package/dist/react/schemaRenderer/table/links.js +55 -0
- package/dist/react/schemaRenderer/table/links.js.map +1 -0
- package/dist/react/schemaRenderer/table/renderRowActions.d.ts +13 -0
- package/dist/react/schemaRenderer/table/renderRowActions.d.ts.map +1 -0
- package/dist/react/schemaRenderer/table/renderRowActions.js +25 -0
- package/dist/react/schemaRenderer/table/renderRowActions.js.map +1 -0
- package/dist/react/schemaRenderer/table/url.d.ts +41 -0
- package/dist/react/schemaRenderer/table/url.d.ts.map +1 -0
- package/dist/react/schemaRenderer/table/url.js +114 -0
- package/dist/react/schemaRenderer/table/url.js.map +1 -0
- package/dist/routes/globals.d.ts +13 -0
- package/dist/routes/globals.d.ts.map +1 -0
- package/dist/routes/globals.js +131 -0
- package/dist/routes/globals.js.map +1 -0
- package/dist/routes/helpers.d.ts +217 -0
- package/dist/routes/helpers.d.ts.map +1 -0
- package/dist/routes/helpers.js +498 -0
- package/dist/routes/helpers.js.map +1 -0
- package/dist/routes/pages.d.ts +15 -0
- package/dist/routes/pages.d.ts.map +1 -0
- package/dist/routes/pages.js +145 -0
- package/dist/routes/pages.js.map +1 -0
- package/dist/routes/panel.d.ts +19 -0
- package/dist/routes/panel.d.ts.map +1 -0
- package/dist/routes/panel.js +191 -0
- package/dist/routes/panel.js.map +1 -0
- package/dist/routes/relations.d.ts +21 -0
- package/dist/routes/relations.d.ts.map +1 -0
- package/dist/routes/relations.js +1239 -0
- package/dist/routes/relations.js.map +1 -0
- package/dist/routes/resources.d.ts +28 -0
- package/dist/routes/resources.d.ts.map +1 -0
- package/dist/routes/resources.js +741 -0
- package/dist/routes/resources.js.map +1 -0
- package/dist/routes/theme.d.ts +12 -0
- package/dist/routes/theme.d.ts.map +1 -0
- package/dist/routes/theme.js +82 -0
- package/dist/routes/theme.js.map +1 -0
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +64 -3078
- package/dist/routes.js.map +1 -1
- package/dist/vite.d.ts +1 -0
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +26 -5
- package/dist/vite.js.map +1 -1
- package/package.json +2 -1
- package/src/Pilotiq.ts +95 -0
- package/src/actions/Action.ts +79 -723
- package/src/actions/bulkFactories.ts +168 -0
- package/src/actions/crudFactories.ts +220 -0
- package/src/actions/factoryHelpers.ts +177 -0
- package/src/actions/m2mFactories.ts +193 -0
- package/src/actions/relationFactories.ts +372 -0
- package/src/elements/dispatchForm.ts +1 -1
- package/src/elements/dispatchTable.ts +1 -1
- package/src/fields/Field.ts +39 -0
- package/src/pageData/breadcrumbs.ts +288 -0
- package/src/pageData/forms.ts +578 -0
- package/src/pageData/helpers.ts +764 -0
- package/src/pageData/misc.ts +347 -0
- package/src/pageData/navigation.ts +779 -0
- package/src/pageData/relationPages.ts +1246 -0
- package/src/pageData/relationTabs.ts +286 -0
- package/src/pageData/resourcePages.ts +593 -0
- package/src/pageData.ts +122 -4731
- package/src/react/AppShell.tsx +27 -1
- package/src/react/CollabExtensionFactoryRegistry.ts +55 -0
- package/src/react/CollabRoomContext.ts +42 -0
- package/src/react/FormCollabBindingRegistry.ts +72 -0
- package/src/react/FormStateContext.tsx +91 -0
- package/src/react/RecordWrapperGate.tsx +40 -0
- package/src/react/RecordWrapperRegistry.ts +39 -0
- package/src/react/SchemaRenderer.tsx +230 -6479
- package/src/react/component-slots.test.ts +103 -0
- package/src/react/component-slots.ts +116 -0
- package/src/react/fields/BuilderInput.tsx +29 -117
- package/src/react/fields/MarkdownInput.tsx +0 -1
- package/src/react/fields/RepeaterInput.tsx +29 -130
- package/src/react/fields/rowState.ts +106 -0
- package/src/react/fields/useRowReorderDnd.ts +78 -0
- package/src/react/index.ts +38 -0
- package/src/react/layouts/SidebarLayout.tsx +39 -28
- package/src/react/layouts/TopbarLayout.tsx +70 -57
- package/src/react/parseRecordEditUrl.test.ts +75 -0
- package/src/react/parseRecordEditUrl.ts +55 -0
- package/src/react/persistedState.ts +40 -0
- package/src/react/schemaRenderer/AlertRenderer.tsx +112 -0
- package/src/react/schemaRenderer/EntryRenderer.tsx +501 -0
- package/src/react/schemaRenderer/SectionRenderer.tsx +120 -0
- package/src/react/schemaRenderer/SimpleElements.tsx +306 -0
- package/src/react/schemaRenderer/TabsRenderer.tsx +62 -0
- package/src/react/schemaRenderer/WizardRenderer.tsx +338 -0
- package/src/react/schemaRenderer/action/ActionGroupTrigger.tsx +177 -0
- package/src/react/schemaRenderer/action/ActionModalDialog.tsx +273 -0
- package/src/react/schemaRenderer/action/ConfirmActionDialog.tsx +61 -0
- package/src/react/schemaRenderer/action/HandlerActionButton.tsx +43 -0
- package/src/react/schemaRenderer/action/MethodActionButton.tsx +64 -0
- package/src/react/schemaRenderer/action/buttons.tsx +99 -0
- package/src/react/schemaRenderer/action/helpers.ts +140 -0
- package/src/react/schemaRenderer/action/renderAction.tsx +245 -0
- package/src/react/schemaRenderer/columnFormat.ts +65 -0
- package/src/react/schemaRenderer/constants.ts +50 -0
- package/src/react/schemaRenderer/form/FormRenderer.tsx +245 -0
- package/src/react/schemaRenderer/form/renderField.tsx +511 -0
- package/src/react/schemaRenderer/helpers.tsx +81 -0
- package/src/react/schemaRenderer/table/CardsLayoutBody.tsx +308 -0
- package/src/react/schemaRenderer/table/TableRenderer.tsx +123 -0
- package/src/react/schemaRenderer/table/TableRendererBody.tsx +974 -0
- package/src/react/schemaRenderer/table/filters.tsx +1233 -0
- package/src/react/schemaRenderer/table/formatCell.tsx +264 -0
- package/src/react/schemaRenderer/table/links.tsx +112 -0
- package/src/react/schemaRenderer/table/renderRowActions.tsx +52 -0
- package/src/react/schemaRenderer/table/url.tsx +143 -0
- package/src/routes/globals.ts +154 -0
- package/src/routes/helpers.ts +668 -0
- package/src/routes/pages.ts +173 -0
- package/src/routes/panel.ts +204 -0
- package/src/routes/relations.ts +1219 -0
- package/src/routes/resources.ts +786 -0
- package/src/routes/theme.ts +109 -0
- package/src/routes.test.ts +1 -1
- package/src/routes.ts +64 -3176
- package/src/schema/TableWidget.test.ts +2 -2
- package/src/theme/migrate.test.ts +178 -0
- package/src/vite.test.ts +184 -0
- package/src/vite.ts +26 -4
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, useState } from 'react';
|
|
3
|
+
import { FormIdContext, FormStateProvider, useFormState } from '../../FormStateContext.js';
|
|
4
|
+
import { useCollabRoom } from '../../CollabRoomContext.js';
|
|
5
|
+
import { getFormCollabBinding } from '../../FormCollabBindingRegistry.js';
|
|
6
|
+
import { useNavigate } from '../../navigate.js';
|
|
7
|
+
import { useToast } from '../../Toaster.js';
|
|
8
|
+
import { renderField } from './renderField.js';
|
|
9
|
+
/**
|
|
10
|
+
* Top-level `<form>` element. Owns:
|
|
11
|
+
* - HTML form chrome (action, method, _method spoof, hidden formId)
|
|
12
|
+
* - Fetch + JSON submission with `Accept: application/json` (so the
|
|
13
|
+
* server can return 422 with field errors instead of re-rendering)
|
|
14
|
+
* - Inline error stamping (`_form` banner + per-field error strings)
|
|
15
|
+
* - `FormStateProvider` mount when the form has any reactive field
|
|
16
|
+
* (`live()` or `afterStateUpdatedJs`) and a `stateUrl` was stamped.
|
|
17
|
+
*
|
|
18
|
+
* `renderElement` is injected for non-field children inside the form
|
|
19
|
+
* body (cards / dividers / fieldsets / etc).
|
|
20
|
+
*/
|
|
21
|
+
export function FormRenderer({ el, renderElement, }) {
|
|
22
|
+
const formId = String(el['formId'] ?? '');
|
|
23
|
+
const method = String(el['method'] ?? 'post').toLowerCase();
|
|
24
|
+
const action = el['action'] ? String(el['action']) : undefined;
|
|
25
|
+
const stateUrl = el['stateUrl'] ? String(el['stateUrl']) : undefined;
|
|
26
|
+
const serverValues = el['values'] ?? {};
|
|
27
|
+
const serverErrors = el['errors'] ?? {};
|
|
28
|
+
// Phase F2 — the controlled-form path also activates when we're
|
|
29
|
+
// inside a `<RecordCollabRoom>` AND a plugin (e.g.
|
|
30
|
+
// `@pilotiq-pro/collab`) registered a `FormCollabBinding` factory.
|
|
31
|
+
// Without this, forms with no `live()` fields stayed uncontrolled
|
|
32
|
+
// and the collab binding never wired up.
|
|
33
|
+
const collabRoom = useCollabRoom();
|
|
34
|
+
const collabFactory = getFormCollabBinding();
|
|
35
|
+
const collabActive = !!(collabRoom && collabFactory && formId);
|
|
36
|
+
const useControlled = !!stateUrl || collabActive;
|
|
37
|
+
// Methods other than GET/POST are spoofed via _method, mirroring Laravel.
|
|
38
|
+
const httpMethod = method === 'get' ? 'get' : 'post';
|
|
39
|
+
const spoofedMethod = method !== 'get' && method !== 'post' ? method : undefined;
|
|
40
|
+
const navigate = useNavigate();
|
|
41
|
+
const { notify } = useToast();
|
|
42
|
+
// Client-side errors override server-rendered ones after a fetch-mode
|
|
43
|
+
// 422 response. Field values stay uncontrolled — the inputs in the DOM
|
|
44
|
+
// still hold whatever the user typed, so we don't need to mirror them.
|
|
45
|
+
const [clientErrors, setClientErrors] = useState(null);
|
|
46
|
+
const [submitting, setSubmitting] = useState(false);
|
|
47
|
+
const errors = clientErrors ?? serverErrors;
|
|
48
|
+
// Plan #14 — formRef is threaded into FormStateProvider so live triggers
|
|
49
|
+
// can snapshot the form's full DOM state via FormData (captures
|
|
50
|
+
// uncontrolled inner-Repeater inputs that don't participate in the
|
|
51
|
+
// controlled values map).
|
|
52
|
+
const formRef = useRef(null);
|
|
53
|
+
const formErrors = errors['_form'] ?? [];
|
|
54
|
+
const hasFieldErrors = Object.keys(errors).some(k => k !== '_form');
|
|
55
|
+
const onSubmit = async (e) => {
|
|
56
|
+
if (!action)
|
|
57
|
+
return; // no action URL → fall through to native submit
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
if (submitting)
|
|
60
|
+
return;
|
|
61
|
+
setSubmitting(true);
|
|
62
|
+
setClientErrors(null);
|
|
63
|
+
try {
|
|
64
|
+
// Thread `event.submitter` so the clicked submit button's
|
|
65
|
+
// name/value pair lands in the FormData. Without this, secondary
|
|
66
|
+
// submits like "Create & create another" can't signal which
|
|
67
|
+
// button fired through the body. Supported in all evergreen
|
|
68
|
+
// browsers since 2022; cast through `as any` because TS lib.dom
|
|
69
|
+
// hasn't picked up the optional submitter argument on every
|
|
70
|
+
// version.
|
|
71
|
+
const submitter = e.nativeEvent.submitter;
|
|
72
|
+
const fd = new FormData(e.currentTarget, submitter ?? undefined);
|
|
73
|
+
const res = await fetch(action, {
|
|
74
|
+
method: 'POST',
|
|
75
|
+
headers: { 'Accept': 'application/json' },
|
|
76
|
+
body: fd,
|
|
77
|
+
});
|
|
78
|
+
const data = await res.json().catch(() => ({}));
|
|
79
|
+
if (res.status === 422) {
|
|
80
|
+
const next = data.errors ?? {};
|
|
81
|
+
setClientErrors(next);
|
|
82
|
+
// Surface a banner-level message if no field errors were returned
|
|
83
|
+
// — the form-level _form key lights up the existing banner.
|
|
84
|
+
setSubmitting(false);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (!res.ok) {
|
|
88
|
+
const message = String(data.error ?? `Request failed (${res.status})`);
|
|
89
|
+
notify({ type: 'error', title: 'Save failed', body: message });
|
|
90
|
+
setSubmitting(false);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
// Success — drain notifications and SPA-navigate to the redirect.
|
|
94
|
+
const notifs = data.notifications;
|
|
95
|
+
if (notifs && notifs.length > 0)
|
|
96
|
+
for (const n of notifs)
|
|
97
|
+
notify(n);
|
|
98
|
+
const redirect = String(data.redirect ?? '');
|
|
99
|
+
// The server may force a navigate even when the redirect equals
|
|
100
|
+
// the current URL — used by "Create & create another" so the
|
|
101
|
+
// form remounts with empty defaults instead of preserving the
|
|
102
|
+
// just-submitted values. Otherwise: skip navigate when the
|
|
103
|
+
// redirect matches the current URL, since re-fetching the same
|
|
104
|
+
// page would force a form remount and reset scroll.
|
|
105
|
+
const force = Boolean(data.force);
|
|
106
|
+
const currentUrl = typeof window !== 'undefined'
|
|
107
|
+
? window.location.pathname + window.location.search
|
|
108
|
+
: '';
|
|
109
|
+
if (redirect && (force || redirect !== currentUrl)) {
|
|
110
|
+
navigate(redirect);
|
|
111
|
+
// Don't reset submitting on success — the navigation will unmount us.
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
setSubmitting(false);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
notify({ type: 'error', title: 'Save failed', body: err instanceof Error ? err.message : String(err) });
|
|
119
|
+
setSubmitting(false);
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
return (_jsxs("form", { ref: formRef, id: formId || undefined, "data-form-id": formId || undefined, method: httpMethod, action: action, onSubmit: onSubmit, className: "flex flex-col gap-6", children: [formId && _jsx("input", { type: "hidden", name: "_formId", value: formId }), spoofedMethod && _jsx("input", { type: "hidden", name: "_method", value: spoofedMethod }), (formErrors.length > 0 || hasFieldErrors) && (_jsx("div", { className: "rounded-lg border border-destructive/40 bg-destructive/5 text-destructive p-3 text-sm", children: formErrors.length > 0 ? (_jsx("ul", { className: "list-disc pl-4", children: formErrors.map((msg, i) => _jsx("li", { children: msg }, i)) })) : ('Please correct the errors below.') })), _jsx(FormIdContext.Provider, { value: formId, children: useControlled ? (_jsx(FormStateProvider, { initialMeta: el, initialErrors: errors, formRef: formRef, children: _jsx(FormBody, { fallbackChildren: el.children ?? [], fallbackValues: serverValues, fallbackErrors: errors, renderElement: renderElement }) })) : ((el.children ?? []).map((child, i) => renderFormChild(child, i, serverValues, errors, renderElement))) })] }));
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Renders the controlled-form's children, sourcing them from the
|
|
126
|
+
* `FormStateProvider`'s current `formMeta` (which gets replaced after
|
|
127
|
+
* each live POST). Falls back to the props if (somehow) used outside a
|
|
128
|
+
* provider — the shell only mounts this when `stateUrl` is set so the
|
|
129
|
+
* fallback path is dead code in practice, but keeping it defensive.
|
|
130
|
+
*/
|
|
131
|
+
function FormBody({ fallbackChildren, fallbackValues, fallbackErrors, renderElement, }) {
|
|
132
|
+
const ctx = useFormState();
|
|
133
|
+
if (!ctx) {
|
|
134
|
+
return _jsx(_Fragment, { children: fallbackChildren.map((child, i) => renderFormChild(child, i, fallbackValues, fallbackErrors, renderElement)) });
|
|
135
|
+
}
|
|
136
|
+
const children = (ctx.formMeta.children ?? []);
|
|
137
|
+
return _jsx(_Fragment, { children: children.map((child, i) => renderFormChild(child, i, ctx.values, ctx.errors, renderElement)) });
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Render one child of a form's resolved schema with per-field values + errors.
|
|
141
|
+
*
|
|
142
|
+
* Field elements wrap in error-stamp chrome; non-field children fall
|
|
143
|
+
* through to `renderElement` so the form body can host cards / dividers /
|
|
144
|
+
* fieldsets / etc.
|
|
145
|
+
*/
|
|
146
|
+
export function renderFormChild(child, index, values, errors, renderElement) {
|
|
147
|
+
if (child.type === 'field') {
|
|
148
|
+
const name = String(child['name'] ?? '');
|
|
149
|
+
const fieldErrors = errors[name] ?? [];
|
|
150
|
+
const value = values[name];
|
|
151
|
+
return (_jsxs("div", { className: "flex flex-col gap-1", children: [renderFieldWithValue(child, index, value, renderElement), fieldErrors.map((msg, i) => (_jsx("p", { className: "text-xs text-destructive", children: msg }, i)))] }, index));
|
|
152
|
+
}
|
|
153
|
+
return renderElement(child, index);
|
|
154
|
+
}
|
|
155
|
+
function renderFieldWithValue(el, index, value, renderElement) {
|
|
156
|
+
// The form-state value (from `withValues` / record-fill) wins when present;
|
|
157
|
+
// otherwise the meta's own `defaultValue` (Plan #6 `Field.default()`) survives.
|
|
158
|
+
const enriched = value !== undefined
|
|
159
|
+
? { ...el, defaultValue: value }
|
|
160
|
+
: el;
|
|
161
|
+
return renderField(enriched, index, renderElement);
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=FormRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormRenderer.js","sourceRoot":"","sources":["../../../../src/react/schemaRenderer/form/FormRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ElementMeta } from '../../../schema/Element.js';
|
|
3
|
+
type RenderElement = (el: ElementMeta, index: number) => React.ReactNode;
|
|
4
|
+
export declare function renderField(el: ElementMeta, index: number, renderElement: RenderElement): React.ReactNode;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=renderField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderField.d.ts","sourceRoot":"","sources":["../../../../src/react/schemaRenderer/form/renderField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAgC7D,KAAK,aAAa,GAAG,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;AAExE,wBAAgB,WAAW,CACzB,EAAE,EAAa,WAAW,EAC1B,KAAK,EAAU,MAAM,EACrB,aAAa,EAAE,aAAa,GAC3B,KAAK,CAAC,SAAS,CAoFjB"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { FieldShell } from '../../fields/FieldShell.js';
|
|
3
|
+
import { TextLikeInput } from '../../fields/TextLikeInput.js';
|
|
4
|
+
import { useTextInputControls } from '../../fields/textInputControls.js';
|
|
5
|
+
import { SelectFieldInput } from '../../fields/SelectFieldInput.js';
|
|
6
|
+
import { ToggleFieldInput } from '../../fields/ToggleFieldInput.js';
|
|
7
|
+
import { DateFieldInput } from '../../fields/DateFieldInput.js';
|
|
8
|
+
import { HiddenInput } from '../../fields/HiddenInput.js';
|
|
9
|
+
import { CheckboxInput } from '../../fields/CheckboxInput.js';
|
|
10
|
+
import { RadioInput } from '../../fields/RadioInput.js';
|
|
11
|
+
import { ToggleButtonsInput } from '../../fields/ToggleButtonsInput.js';
|
|
12
|
+
import { CheckboxListInput } from '../../fields/CheckboxListInput.js';
|
|
13
|
+
import { SliderInput } from '../../fields/SliderInput.js';
|
|
14
|
+
import { ColorInput } from '../../fields/ColorInput.js';
|
|
15
|
+
import { DateTimeInput } from '../../fields/DateTimeInput.js';
|
|
16
|
+
import { KeyValueInput } from '../../fields/KeyValueInput.js';
|
|
17
|
+
import { TagsInput } from '../../fields/TagsInput.js';
|
|
18
|
+
import { FileUploadInput } from '../../fields/FileUploadInput.js';
|
|
19
|
+
import { MarkdownInput } from '../../fields/MarkdownInput.js';
|
|
20
|
+
import { RepeaterInput } from '../../fields/RepeaterInput.js';
|
|
21
|
+
import { BuilderInput } from '../../fields/BuilderInput.js';
|
|
22
|
+
import { getFieldRenderer } from '../../registry.js';
|
|
23
|
+
import { getFieldLabelSlot } from '../../FieldLabelSlotRegistry.js';
|
|
24
|
+
export function renderField(el, index, renderElement) {
|
|
25
|
+
const fieldType = String(el['fieldType'] ?? 'text');
|
|
26
|
+
const name = String(el['name'] ?? '');
|
|
27
|
+
const label = String(el['label'] ?? name);
|
|
28
|
+
const required = Boolean(el['required']);
|
|
29
|
+
const disabled = Boolean(el['disabled']);
|
|
30
|
+
const placeholder = el['placeholder'] ? String(el['placeholder']) : undefined;
|
|
31
|
+
const defaultValue = el['defaultValue'];
|
|
32
|
+
const defaultStr = defaultValue !== undefined && defaultValue !== null ? String(defaultValue) : undefined;
|
|
33
|
+
// Hidden fields render bare — no label, no shell, no chrome. Bail
|
|
34
|
+
// before the renderField switch + FieldShell wrap.
|
|
35
|
+
if (fieldType === 'hidden') {
|
|
36
|
+
return _jsx(HiddenInput, { name: name, defaultValue: defaultValue }, index);
|
|
37
|
+
}
|
|
38
|
+
// Field label slot — rendered next to the label when a plugin registered
|
|
39
|
+
// a component via registerFieldLabelSlot() and the field has aiActions +
|
|
40
|
+
// _agentRunBase stamped on its meta (set by tagFieldAiUrls in pageData).
|
|
41
|
+
const LabelSlot = getFieldLabelSlot();
|
|
42
|
+
const aiActions = Array.isArray(el['aiActions']) ? el['aiActions'] : undefined;
|
|
43
|
+
const agentRunBase = typeof el['_agentRunBase'] === 'string' ? el['_agentRunBase'] : undefined;
|
|
44
|
+
const labelSlot = (LabelSlot && aiActions?.length && agentRunBase)
|
|
45
|
+
? _jsx(LabelSlot, { fieldName: name, actions: aiActions, agentRunBase: agentRunBase })
|
|
46
|
+
: undefined;
|
|
47
|
+
const autofocus = el['autofocus'] === true;
|
|
48
|
+
const extraInput = el['extraInputAttributes'];
|
|
49
|
+
const common = {
|
|
50
|
+
id: name,
|
|
51
|
+
name,
|
|
52
|
+
disabled,
|
|
53
|
+
placeholder,
|
|
54
|
+
required,
|
|
55
|
+
...(defaultStr !== undefined ? { defaultValue: defaultStr } : {}),
|
|
56
|
+
...(autofocus ? { autoFocus: true } : {}),
|
|
57
|
+
...(extraInput ?? {}),
|
|
58
|
+
};
|
|
59
|
+
// External packages (e.g. @pilotiq/tiptap) register custom renderers
|
|
60
|
+
// for non-built-in fieldTypes. The registry wins over the built-in
|
|
61
|
+
// switch so consumers can override built-ins too if they want.
|
|
62
|
+
const Custom = getFieldRenderer(fieldType);
|
|
63
|
+
if (Custom) {
|
|
64
|
+
return (_jsx(FieldShell, { el: el, name: name, label: label, required: required, labelSlot: labelSlot, children: _jsx(Custom, { el: el, name: name, defaultValue: defaultValue, required: required, disabled: disabled, placeholder: placeholder }) }, index));
|
|
65
|
+
}
|
|
66
|
+
// TextField (and slug) rich affordances live in a dedicated shell so
|
|
67
|
+
// `useTextInputControls` can hold reveal-toggle / mask state via React
|
|
68
|
+
// hooks (renderField itself is a plain function, hooks would violate
|
|
69
|
+
// rules-of-hooks here).
|
|
70
|
+
if (fieldType === 'text' || fieldType === 'slug') {
|
|
71
|
+
return (_jsx(TextFieldShell, { el: el, name: name, label: label, required: required, common: common, labelSlot: labelSlot, renderElement: renderElement }, index));
|
|
72
|
+
}
|
|
73
|
+
const input = renderFieldInput(fieldType, el, name, defaultValue, defaultStr, common, disabled, required, placeholder);
|
|
74
|
+
return (_jsx(FieldShell, { el: el, name: name, label: label, required: required, labelSlot: labelSlot, children: input }, index));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Component-shape TextField renderer — wraps the input shell so we can
|
|
78
|
+
* use `useTextInputControls()` (which holds the eye-toggle / mask state).
|
|
79
|
+
* Keeps `renderField` itself hook-free.
|
|
80
|
+
*/
|
|
81
|
+
function TextFieldShell({ el, name, label, required, common, labelSlot, renderElement, }) {
|
|
82
|
+
const controls = useTextInputControls(el, name, (m) => renderElement(m, 0));
|
|
83
|
+
// Build the input with all the new HTML attrs (inputMode /
|
|
84
|
+
// autocapitalize / list / maxLength + the password/text type from
|
|
85
|
+
// the controls hook).
|
|
86
|
+
const textExtra = {};
|
|
87
|
+
if (el['maxLength'] !== undefined)
|
|
88
|
+
textExtra['maxLength'] = Number(el['maxLength']);
|
|
89
|
+
if (el['inputMode'] !== undefined)
|
|
90
|
+
textExtra['inputMode'] = String(el['inputMode']);
|
|
91
|
+
if (el['autocapitalize'] !== undefined)
|
|
92
|
+
textExtra['autoCapitalize'] = String(el['autocapitalize']);
|
|
93
|
+
if (Array.isArray(el['datalist']))
|
|
94
|
+
textExtra['list'] = `${name}__datalist`;
|
|
95
|
+
const datalist = Array.isArray(el['datalist']) ? el['datalist'] : undefined;
|
|
96
|
+
const input = (_jsxs(_Fragment, { children: [_jsx(TextLikeInput, { el: el, name: name, common: common, type: controls.type, extraProps: textExtra, multiline: false, applyMask: controls.applyMask }), datalist && (_jsx("datalist", { id: `${name}__datalist`, children: datalist.map((v, i) => _jsx("option", { value: v }, i)) }))] }));
|
|
97
|
+
return (_jsx(FieldShell, { el: el, name: name, label: label, required: required, before: controls.before, after: controls.after, labelSlot: labelSlot, children: input }));
|
|
98
|
+
}
|
|
99
|
+
function renderFieldInput(fieldType, el, name, defaultValue, defaultStr, common, disabled, required, placeholder) {
|
|
100
|
+
switch (fieldType) {
|
|
101
|
+
case 'textarea': {
|
|
102
|
+
const autosize = el['autosize'] === true;
|
|
103
|
+
const cols = typeof el['cols'] === 'number' ? Number(el['cols']) : undefined;
|
|
104
|
+
const extra = {};
|
|
105
|
+
// `field-sizing-content` on the Textarea component already grows
|
|
106
|
+
// the box with content; `autosize()` just unsets the explicit
|
|
107
|
+
// `rows` so the browser doesn't reserve a fixed minimum height.
|
|
108
|
+
if (!autosize)
|
|
109
|
+
extra['rows'] = Number(el['rows']) || 4;
|
|
110
|
+
if (cols !== undefined)
|
|
111
|
+
extra['cols'] = cols;
|
|
112
|
+
if (el['disableGrammarly'] === true) {
|
|
113
|
+
extra['data-gramm'] = 'false';
|
|
114
|
+
extra['data-gramm_editor'] = 'false';
|
|
115
|
+
extra['data-enable-grammarly'] = 'false';
|
|
116
|
+
}
|
|
117
|
+
return (_jsx(TextLikeInput, { el: el, name: name, common: common, type: "text", extraProps: extra, multiline: true }));
|
|
118
|
+
}
|
|
119
|
+
case 'select': {
|
|
120
|
+
const options = el['options'] ?? [];
|
|
121
|
+
const createOption = el['createOption'];
|
|
122
|
+
const fieldLabel = String(el['label'] ?? name);
|
|
123
|
+
return (_jsx(SelectFieldInput, { name: name, defaultValue: defaultStr, disabled: disabled, required: required, placeholder: placeholder, options: options, fieldLabel: fieldLabel, ...(createOption ? { createOption } : {}) }));
|
|
124
|
+
}
|
|
125
|
+
case 'toggle': {
|
|
126
|
+
const initialChecked = defaultValue === true || defaultValue === 'true' || defaultValue === 1 || defaultValue === '1';
|
|
127
|
+
return _jsx(ToggleFieldInput, { name: name, defaultChecked: initialChecked, disabled: disabled });
|
|
128
|
+
}
|
|
129
|
+
case 'checkbox': {
|
|
130
|
+
const initialChecked = defaultValue === true || defaultValue === 'true' || defaultValue === 1 || defaultValue === '1';
|
|
131
|
+
return _jsx(CheckboxInput, { name: name, defaultChecked: initialChecked, disabled: disabled });
|
|
132
|
+
}
|
|
133
|
+
case 'radio': {
|
|
134
|
+
const options = el['options'] ?? [];
|
|
135
|
+
const inline = Boolean(el['inline']);
|
|
136
|
+
return (_jsx(RadioInput, { name: name, defaultValue: defaultStr, disabled: disabled, options: options, inline: inline }));
|
|
137
|
+
}
|
|
138
|
+
case 'toggleButtons': {
|
|
139
|
+
const options = el['options'] ?? [];
|
|
140
|
+
return (_jsx(ToggleButtonsInput, { name: name, defaultValue: defaultStr, disabled: disabled, options: options }));
|
|
141
|
+
}
|
|
142
|
+
case 'checkboxList': {
|
|
143
|
+
const options = el['options'] ?? [];
|
|
144
|
+
const columns = Number(el['columns']) || 1;
|
|
145
|
+
return (_jsx(CheckboxListInput, { name: name, defaultValue: defaultValue, disabled: disabled, options: options, columns: columns }));
|
|
146
|
+
}
|
|
147
|
+
case 'slider': {
|
|
148
|
+
return (_jsx(SliderInput, { name: name, defaultValue: defaultValue, disabled: disabled, min: Number(el['min']) || 0, max: Number(el['max']) || 100, step: Number(el['step']) || 1, showValue: Boolean(el['showValue']) }));
|
|
149
|
+
}
|
|
150
|
+
case 'color': {
|
|
151
|
+
return (_jsx(ColorInput, { name: name, defaultValue: defaultValue, disabled: disabled }));
|
|
152
|
+
}
|
|
153
|
+
case 'keyValue': {
|
|
154
|
+
return (_jsx(KeyValueInput, { name: name, defaultValue: defaultValue, disabled: disabled, keyLabel: String(el['keyLabel'] ?? 'Key'), valueLabel: String(el['valueLabel'] ?? 'Value'), addLabel: String(el['addLabel'] ?? 'Add row'), reorderable: Boolean(el['reorderable']) }));
|
|
155
|
+
}
|
|
156
|
+
case 'tagsInput': {
|
|
157
|
+
const suggestions = el['suggestions'] ?? [];
|
|
158
|
+
// separator: omitted → ',' (default); explicit null → null (disabled).
|
|
159
|
+
const separator = 'separator' in el
|
|
160
|
+
? el['separator']
|
|
161
|
+
: ',';
|
|
162
|
+
const splitKeys = el['splitKeys'] ?? ['Enter'];
|
|
163
|
+
const maxTags = typeof el['maxTags'] === 'number' ? el['maxTags'] : null;
|
|
164
|
+
const reorderable = Boolean(el['reorderable']);
|
|
165
|
+
return (_jsx(TagsInput, { name: name, defaultValue: defaultValue, disabled: disabled, placeholder: placeholder, suggestions: suggestions, separator: separator, splitKeys: splitKeys, maxTags: maxTags, reorderable: reorderable }));
|
|
166
|
+
}
|
|
167
|
+
case 'fileUpload': {
|
|
168
|
+
return (_jsx(FileUploadInput, { name: name, defaultValue: defaultValue, disabled: disabled, accept: el['accept'], maxSize: typeof el['maxSize'] === 'number' ? el['maxSize'] : undefined, multiple: Boolean(el['multiple']), preview: el['preview'] !== false, directory: typeof el['directory'] === 'string' ? el['directory'] : undefined, uploadUrl: typeof el['uploadUrl'] === 'string' ? el['uploadUrl'] : undefined, downloadable: Boolean(el['downloadable']), openable: Boolean(el['openable']), reorderable: Boolean(el['reorderable']), appendFiles: Boolean(el['appendFiles']), panelLayout: el['panelLayout'] === 'grid' ? 'grid'
|
|
169
|
+
: el['panelLayout'] === 'integrated' ? 'integrated'
|
|
170
|
+
: 'list', ...(el['automaticallyResize'] && typeof el['automaticallyResize'] === 'object'
|
|
171
|
+
? { automaticallyResize: el['automaticallyResize'] }
|
|
172
|
+
: {}), imageEditor: Boolean(el['imageEditor']), circleCropper: Boolean(el['circleCropper']), automaticallyCropImagesToAspectRatio: Boolean(el['automaticallyCropImagesToAspectRatio']), ...(Array.isArray(el['imageEditorAspectRatioOptions'])
|
|
173
|
+
? { imageEditorAspectRatioOptions: el['imageEditorAspectRatioOptions'] }
|
|
174
|
+
: {}) }));
|
|
175
|
+
}
|
|
176
|
+
case 'markdown': {
|
|
177
|
+
const toolbarButtons = el['toolbarButtons'] ?? [];
|
|
178
|
+
return (_jsx(MarkdownInput, { name: name, defaultValue: defaultValue, disabled: disabled, placeholder: placeholder, toolbarButtons: toolbarButtons, minHeight: typeof el['minHeight'] === 'string' ? el['minHeight'] : undefined, maxHeight: typeof el['maxHeight'] === 'string' ? el['maxHeight'] : undefined, fileAttachmentsDirectory: typeof el['fileAttachmentsDirectory'] === 'string' ? el['fileAttachmentsDirectory'] : undefined, fileAttachmentsVisibility: typeof el['fileAttachmentsVisibility'] === 'string' ? el['fileAttachmentsVisibility'] : undefined, uploadUrl: typeof el['uploadUrl'] === 'string' ? el['uploadUrl'] : undefined }));
|
|
179
|
+
}
|
|
180
|
+
case 'repeater':
|
|
181
|
+
return _jsx(RepeaterInput, { el: el, name: name, disabled: disabled });
|
|
182
|
+
case 'builder':
|
|
183
|
+
return _jsx(BuilderInput, { el: el, name: name, disabled: disabled });
|
|
184
|
+
case 'dateTime': {
|
|
185
|
+
// Normalize various input shapes to YYYY-MM-DDTHH:mm.
|
|
186
|
+
let local;
|
|
187
|
+
if (defaultValue instanceof Date) {
|
|
188
|
+
local = isNaN(defaultValue.getTime())
|
|
189
|
+
? undefined
|
|
190
|
+
: defaultValue.toISOString().slice(0, 16);
|
|
191
|
+
}
|
|
192
|
+
else if (typeof defaultValue === 'string' && defaultValue) {
|
|
193
|
+
const parsed = new Date(defaultValue);
|
|
194
|
+
local = isNaN(parsed.getTime()) ? undefined : parsed.toISOString().slice(0, 16);
|
|
195
|
+
}
|
|
196
|
+
return (_jsx(DateTimeInput, { name: name, defaultValue: local, disabled: disabled, placeholder: placeholder }));
|
|
197
|
+
}
|
|
198
|
+
case 'number': {
|
|
199
|
+
const numProps = {};
|
|
200
|
+
if (el['min'] !== undefined)
|
|
201
|
+
numProps['min'] = Number(el['min']);
|
|
202
|
+
if (el['max'] !== undefined)
|
|
203
|
+
numProps['max'] = Number(el['max']);
|
|
204
|
+
if (el['step'] !== undefined)
|
|
205
|
+
numProps['step'] = Number(el['step']);
|
|
206
|
+
return (_jsx(TextLikeInput, { el: el, name: name, common: common, type: "number", extraProps: numProps, multiline: false }));
|
|
207
|
+
}
|
|
208
|
+
case 'email':
|
|
209
|
+
return (_jsx(TextLikeInput, { el: el, name: name, common: common, type: "email", extraProps: {}, multiline: false }));
|
|
210
|
+
case 'date': {
|
|
211
|
+
// SSR may hand us a JS Date object directly; SPA JSON nav arrives as
|
|
212
|
+
// an ISO string. Normalize both into a `YYYY-MM-DD` slice — naive
|
|
213
|
+
// string slicing on `Date.toString()` ("Mon Apr 27 2026 ...") gives
|
|
214
|
+
// garbage when re-parsed, so handle the Date branch explicitly.
|
|
215
|
+
let iso;
|
|
216
|
+
if (defaultValue instanceof Date) {
|
|
217
|
+
iso = isNaN(defaultValue.getTime())
|
|
218
|
+
? undefined
|
|
219
|
+
: defaultValue.toISOString().slice(0, 10);
|
|
220
|
+
}
|
|
221
|
+
else if (typeof defaultValue === 'string' && defaultValue) {
|
|
222
|
+
const parsed = new Date(defaultValue);
|
|
223
|
+
iso = isNaN(parsed.getTime())
|
|
224
|
+
? undefined
|
|
225
|
+
: parsed.toISOString().slice(0, 10);
|
|
226
|
+
}
|
|
227
|
+
return (_jsx(DateFieldInput, { name: name, defaultValue: iso, disabled: disabled, placeholder: placeholder }));
|
|
228
|
+
}
|
|
229
|
+
// `text` / `slug` short-circuit through `TextFieldShell` above; the
|
|
230
|
+
// bare default covers unknown fieldType strings.
|
|
231
|
+
default: {
|
|
232
|
+
const textExtra = {};
|
|
233
|
+
if (el['maxLength'] !== undefined)
|
|
234
|
+
textExtra['maxLength'] = Number(el['maxLength']);
|
|
235
|
+
return (_jsx(TextLikeInput, { el: el, name: name, common: common, type: "text", extraProps: textExtra, multiline: false }));
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=renderField.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderField.js","sourceRoot":"","sources":["../../../../src/react/schemaRenderer/form/renderField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ComponentType } from 'react';
|
|
3
|
+
import type { ElementMeta } from '../../schema/Element.js';
|
|
4
|
+
/** Resolve an icon name through the user-extensible registry. Returns
|
|
5
|
+
* `undefined` when the name isn't registered — callers fall back to
|
|
6
|
+
* their own default. Pilotiq's own chrome never depends on the
|
|
7
|
+
* registry. */
|
|
8
|
+
export type IconCmp = ComponentType<{
|
|
9
|
+
className?: string;
|
|
10
|
+
style?: React.CSSProperties;
|
|
11
|
+
'aria-hidden'?: boolean | 'true' | 'false';
|
|
12
|
+
'aria-label'?: string;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function resolveIcon(name: string | undefined): IconCmp | undefined;
|
|
15
|
+
/** Map an element's optional `_layout` hints (Plan #8 — columnSpan /
|
|
16
|
+
* columnStart / columnOrder) to Tailwind utility classes. Returns an
|
|
17
|
+
* empty string when the element has no layout hints. Outside of a
|
|
18
|
+
* parent Grid/Split the classes have no effect — Tailwind generates
|
|
19
|
+
* `col-span-*` / `col-start-*` / `order-*` regardless of context.
|
|
20
|
+
*
|
|
21
|
+
* Tailwind's JIT only ships utilities up to a fixed range; clamp here
|
|
22
|
+
* to the safe defaults (1..12 for col, 1..12 for order). */
|
|
23
|
+
export declare function layoutClasses(el: ElementMeta): string;
|
|
24
|
+
/** Wrap a child list in a flex column with consistent gap. Caller
|
|
25
|
+
* passes its own `renderElement` so this helper stays free of the
|
|
26
|
+
* SchemaRenderer ↔ leaf-renderers cycle. */
|
|
27
|
+
export declare function renderChildren(children: ElementMeta[] | undefined, gap: string, renderElement: (el: ElementMeta, index: number) => React.ReactNode): React.ReactNode;
|
|
28
|
+
/** Wrap a node in the standard hover tooltip. Returns the node as-is when
|
|
29
|
+
* `tooltip` is falsy. Used wherever a button/affordance needs an
|
|
30
|
+
* on-hover label without owning its own Popover. */
|
|
31
|
+
export declare function withTooltip(node: React.ReactNode, tooltip: string | undefined): React.ReactNode;
|
|
32
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/react/schemaRenderer/helpers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAI1D;;;eAGe;AACf,MAAM,MAAM,OAAO,GAAG,aAAa,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAA;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAC,CAAA;AAEF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAGzE;AAED;;;;;;;4DAO4D;AAC5D,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAmBrD;AAED;;4CAE4C;AAC5C,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,WAAW,EAAE,GAAG,SAAS,EACnC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,GACjE,KAAK,CAAC,SAAS,CAOjB;AAED;;qDAEqD;AACrD,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,SAAS,CAU/F"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { getIcon } from '../../icons/registry.js';
|
|
3
|
+
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../ui/tooltip.js';
|
|
4
|
+
export function resolveIcon(name) {
|
|
5
|
+
if (!name)
|
|
6
|
+
return undefined;
|
|
7
|
+
return getIcon(name);
|
|
8
|
+
}
|
|
9
|
+
/** Map an element's optional `_layout` hints (Plan #8 — columnSpan /
|
|
10
|
+
* columnStart / columnOrder) to Tailwind utility classes. Returns an
|
|
11
|
+
* empty string when the element has no layout hints. Outside of a
|
|
12
|
+
* parent Grid/Split the classes have no effect — Tailwind generates
|
|
13
|
+
* `col-span-*` / `col-start-*` / `order-*` regardless of context.
|
|
14
|
+
*
|
|
15
|
+
* Tailwind's JIT only ships utilities up to a fixed range; clamp here
|
|
16
|
+
* to the safe defaults (1..12 for col, 1..12 for order). */
|
|
17
|
+
export function layoutClasses(el) {
|
|
18
|
+
const layout = el['_layout'];
|
|
19
|
+
if (!layout)
|
|
20
|
+
return '';
|
|
21
|
+
const out = [];
|
|
22
|
+
if (typeof layout.columnSpan === 'number') {
|
|
23
|
+
const span = Math.max(1, Math.min(12, layout.columnSpan));
|
|
24
|
+
out.push(`col-span-${span}`);
|
|
25
|
+
}
|
|
26
|
+
if (typeof layout.columnStart === 'number') {
|
|
27
|
+
const start = Math.max(1, Math.min(12, layout.columnStart));
|
|
28
|
+
out.push(`col-start-${start}`);
|
|
29
|
+
}
|
|
30
|
+
if (typeof layout.columnOrder === 'number') {
|
|
31
|
+
const order = Math.max(1, Math.min(12, layout.columnOrder));
|
|
32
|
+
out.push(`order-${order}`);
|
|
33
|
+
}
|
|
34
|
+
return out.join(' ');
|
|
35
|
+
}
|
|
36
|
+
/** Wrap a child list in a flex column with consistent gap. Caller
|
|
37
|
+
* passes its own `renderElement` so this helper stays free of the
|
|
38
|
+
* SchemaRenderer ↔ leaf-renderers cycle. */
|
|
39
|
+
export function renderChildren(children, gap, renderElement) {
|
|
40
|
+
if (!children || children.length === 0)
|
|
41
|
+
return null;
|
|
42
|
+
return (_jsx("div", { className: `flex flex-col ${gap}`, children: children.map((child, i) => renderElement(child, i)) }));
|
|
43
|
+
}
|
|
44
|
+
/** Wrap a node in the standard hover tooltip. Returns the node as-is when
|
|
45
|
+
* `tooltip` is falsy. Used wherever a button/affordance needs an
|
|
46
|
+
* on-hover label without owning its own Popover. */
|
|
47
|
+
export function withTooltip(node, tooltip) {
|
|
48
|
+
if (!tooltip)
|
|
49
|
+
return node;
|
|
50
|
+
return (_jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { render: () => node }), _jsx(TooltipContent, { children: tooltip })] }) }));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/react/schemaRenderer/helpers.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAa3F,MAAM,UAAU,WAAW,CAAC,IAAwB;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3B,OAAO,OAAO,CAAC,IAAI,CAAwB,CAAA;AAC7C,CAAC;AAED;;;;;;;4DAO4D;AAC5D,MAAM,UAAU,aAAa,CAAC,EAAe;IAC3C,MAAM,MAAM,GAAG,EAAE,CAAC,SAAS,CAEd,CAAA;IACb,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAA;IACtB,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,OAAO,MAAM,CAAC,UAAU,KAAM,QAAQ,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;QACzD,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;IAC9B,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;QAC3D,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,EAAE,CAAC,CAAA;IAChC,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;QAC3D,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACtB,CAAC;AAED;;4CAE4C;AAC5C,MAAM,UAAU,cAAc,CAC5B,QAAmC,EACnC,GAAW,EACX,aAAkE;IAElE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACnD,OAAO,CACL,cAAK,SAAS,EAAE,iBAAiB,GAAG,EAAE,YACnC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAChD,CACP,CAAA;AACH,CAAC;AAED;;qDAEqD;AACrD,MAAM,UAAU,WAAW,CAAC,IAAqB,EAAE,OAA2B;IAC5E,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,OAAO,CACL,KAAC,eAAe,cACd,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAA0B,GAAI,EAC5D,KAAC,cAAc,cAAE,OAAO,GAAkB,IAClC,GACM,CACnB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ElementMeta } from '../../../schema/Element.js';
|
|
3
|
+
import type { NavigateFn } from '../../navigate.js';
|
|
4
|
+
type RenderElement = (el: ElementMeta, index: number) => React.ReactNode;
|
|
5
|
+
type RenderRowActions = (rowId: string, rowRecord: Record<string, unknown> | undefined, actions: ElementMeta[]) => React.ReactNode;
|
|
6
|
+
export declare function pickCardCols(table: Record<number, string>, raw: number | undefined): string | undefined;
|
|
7
|
+
/** Build a Tailwind grid-cols class string from a per-row config. Default
|
|
8
|
+
* `{ default: 1, sm: 2, lg: 3 }` mirrors Filament's typical card grid. */
|
|
9
|
+
export declare function cardsPerRowClasses(opts: Record<string, number> | undefined): string;
|
|
10
|
+
/**
|
|
11
|
+
* Card-grid body for `Table.contentLayout('cards')`. Renders the rows
|
|
12
|
+
* area only — the surrounding chrome (heading / search / filters /
|
|
13
|
+
* pagination / bulk-action toolbar / "Sort by" picker) lives in the
|
|
14
|
+
* parent `TableRendererBody` so both layouts share it.
|
|
15
|
+
*
|
|
16
|
+
* Each card renders its `_cardChildren` schema via the standard
|
|
17
|
+
* `renderElement` walker, so any display-Element (Heading, Text, Image,
|
|
18
|
+
* Icon, Badge entries, layout primitives, etc.) drops in without a new
|
|
19
|
+
* renderer. Per-row chrome attaches via the same `_recordUrl` /
|
|
20
|
+
* `_recordClasses` / `_visibleActions` / `_disabledActions` keys the
|
|
21
|
+
* table-mode renderer reads from — `loadTableRecords` is unchanged.
|
|
22
|
+
*
|
|
23
|
+
* Group banding splits the rows into contiguous sections by
|
|
24
|
+
* `_groupValue`, emitting a heading row above each section. The user's
|
|
25
|
+
* configured per-card grid (`cardsPerRow`) re-applies inside every
|
|
26
|
+
* section so the column count stays consistent.
|
|
27
|
+
*/
|
|
28
|
+
export declare function CardsLayoutBody({ rows, visibleIds, selected, toggleRow, hasBulkActions, hasRowActions, rowActions, hasRecordUrl, hasRecordClasses, activeEmpty, EmptyIcon, hasFilterOrSearch, defaultGroup, groupColumnLabel, groupCollapsible, collapsedGroups, toggleGroupCollapsed, cardsPerRow, navigate, groupHeadingScopable, buildGroupKeyHref, renderElement, renderRowActions, }: {
|
|
29
|
+
rows: unknown[];
|
|
30
|
+
visibleIds: string[];
|
|
31
|
+
selected: Set<string>;
|
|
32
|
+
toggleRow: (id: string) => void;
|
|
33
|
+
hasBulkActions: boolean;
|
|
34
|
+
hasRowActions: boolean;
|
|
35
|
+
rowActions: ElementMeta[];
|
|
36
|
+
hasRecordUrl: boolean;
|
|
37
|
+
hasRecordClasses: boolean;
|
|
38
|
+
activeEmpty: {
|
|
39
|
+
heading?: string;
|
|
40
|
+
description?: string;
|
|
41
|
+
icon?: string;
|
|
42
|
+
} | undefined;
|
|
43
|
+
EmptyIcon: React.ComponentType<{
|
|
44
|
+
className?: string;
|
|
45
|
+
}>;
|
|
46
|
+
hasFilterOrSearch: boolean;
|
|
47
|
+
defaultGroup: string | undefined;
|
|
48
|
+
groupColumnLabel: string | undefined;
|
|
49
|
+
groupCollapsible: boolean;
|
|
50
|
+
collapsedGroups: Record<string, boolean>;
|
|
51
|
+
toggleGroupCollapsed: (groupValue: string) => void;
|
|
52
|
+
cardsPerRow: Record<string, number> | undefined;
|
|
53
|
+
navigate: NavigateFn;
|
|
54
|
+
groupHeadingScopable?: boolean;
|
|
55
|
+
buildGroupKeyHref?: (value: string) => string;
|
|
56
|
+
renderElement: RenderElement;
|
|
57
|
+
renderRowActions: RenderRowActions;
|
|
58
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
59
|
+
export {};
|
|
60
|
+
//# sourceMappingURL=CardsLayoutBody.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CardsLayoutBody.d.ts","sourceRoot":"","sources":["../../../../src/react/schemaRenderer/table/CardsLayoutBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAI7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAInD,KAAK,aAAa,GAAM,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;AAC3E,KAAK,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,KAAK,CAAC,SAAS,CAAA;AA6ClI,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAYvG;AAED;0EAC0E;AAC1E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,CAenF;AAGD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EACrC,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EACzE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EACzC,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EACvF,WAAW,EAAE,QAAQ,EACrB,oBAAoB,EAAE,iBAAiB,EACvC,aAAa,EAAE,gBAAgB,GAChC,EAAE;IACD,IAAI,EAAe,OAAO,EAAE,CAAA;IAC5B,UAAU,EAAS,MAAM,EAAE,CAAA;IAC3B,QAAQ,EAAW,GAAG,CAAC,MAAM,CAAC,CAAA;IAC9B,SAAS,EAAU,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,cAAc,EAAK,OAAO,CAAA;IAC1B,aAAa,EAAM,OAAO,CAAA;IAC1B,UAAU,EAAS,WAAW,EAAE,CAAA;IAChC,YAAY,EAAO,OAAO,CAAA;IAC1B,gBAAgB,EAAG,OAAO,CAAA;IAC1B,WAAW,EAAQ;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IACxF,SAAS,EAAU,KAAK,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9D,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAO,MAAM,GAAG,SAAS,CAAA;IACrC,gBAAgB,EAAG,MAAM,GAAG,SAAS,CAAA;IACrC,gBAAgB,EAAG,OAAO,CAAA;IAC1B,eAAe,EAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC1C,oBAAoB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;IAClD,WAAW,EAAQ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;IACrD,QAAQ,EAAW,UAAU,CAAA;IAG7B,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,iBAAiB,CAAC,EAAK,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IAGhD,aAAa,EAAM,aAAa,CAAA;IAChC,gBAAgB,EAAG,gBAAgB,CAAA;CACpC,2CAmKA"}
|