@pilotiq/pilotiq 0.1.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/.turbo/turbo-build.log +4 -0
- package/CHANGELOG.md +11 -0
- package/CLAUDE.md +207 -0
- package/LICENSE +21 -0
- package/dist/Cluster.d.ts +56 -0
- package/dist/Cluster.d.ts.map +1 -0
- package/dist/Cluster.js +62 -0
- package/dist/Cluster.js.map +1 -0
- package/dist/Column.d.ts +378 -0
- package/dist/Column.d.ts.map +1 -0
- package/dist/Column.js +434 -0
- package/dist/Column.js.map +1 -0
- package/dist/Global.d.ts +123 -0
- package/dist/Global.d.ts.map +1 -0
- package/dist/Global.js +124 -0
- package/dist/Global.js.map +1 -0
- package/dist/Page.d.ts +90 -0
- package/dist/Page.d.ts.map +1 -0
- package/dist/Page.js +107 -0
- package/dist/Page.js.map +1 -0
- package/dist/Pilotiq.d.ts +505 -0
- package/dist/Pilotiq.d.ts.map +1 -0
- package/dist/Pilotiq.js +463 -0
- package/dist/Pilotiq.js.map +1 -0
- package/dist/PilotiqRegistry.d.ts +10 -0
- package/dist/PilotiqRegistry.d.ts.map +1 -0
- package/dist/PilotiqRegistry.js +32 -0
- package/dist/PilotiqRegistry.js.map +1 -0
- package/dist/PilotiqServiceProvider.d.ts +16 -0
- package/dist/PilotiqServiceProvider.d.ts.map +1 -0
- package/dist/PilotiqServiceProvider.js +57 -0
- package/dist/PilotiqServiceProvider.js.map +1 -0
- package/dist/RelationManager.d.ts +372 -0
- package/dist/RelationManager.d.ts.map +1 -0
- package/dist/RelationManager.js +342 -0
- package/dist/RelationManager.js.map +1 -0
- package/dist/RenderHook.d.ts +86 -0
- package/dist/RenderHook.d.ts.map +1 -0
- package/dist/RenderHook.js +116 -0
- package/dist/RenderHook.js.map +1 -0
- package/dist/Resource.d.ts +290 -0
- package/dist/Resource.d.ts.map +1 -0
- package/dist/Resource.js +362 -0
- package/dist/Resource.js.map +1 -0
- package/dist/RightPanel.d.ts +92 -0
- package/dist/RightPanel.d.ts.map +1 -0
- package/dist/RightPanel.js +61 -0
- package/dist/RightPanel.js.map +1 -0
- package/dist/Tab.d.ts +92 -0
- package/dist/Tab.d.ts.map +1 -0
- package/dist/Tab.js +93 -0
- package/dist/Tab.js.map +1 -0
- package/dist/UserMenuItem.d.ts +76 -0
- package/dist/UserMenuItem.d.ts.map +1 -0
- package/dist/UserMenuItem.js +87 -0
- package/dist/UserMenuItem.js.map +1 -0
- package/dist/actions/Action.d.ts +888 -0
- package/dist/actions/Action.d.ts.map +1 -0
- package/dist/actions/Action.js +1652 -0
- package/dist/actions/Action.js.map +1 -0
- package/dist/actions/ActionGroup.d.ts +85 -0
- package/dist/actions/ActionGroup.d.ts.map +1 -0
- package/dist/actions/ActionGroup.js +132 -0
- package/dist/actions/ActionGroup.js.map +1 -0
- package/dist/actions/attachFactory.d.ts +67 -0
- package/dist/actions/attachFactory.d.ts.map +1 -0
- package/dist/actions/attachFactory.js +115 -0
- package/dist/actions/attachFactory.js.map +1 -0
- package/dist/actions/exportFactory.d.ts +88 -0
- package/dist/actions/exportFactory.d.ts.map +1 -0
- package/dist/actions/exportFactory.js +144 -0
- package/dist/actions/exportFactory.js.map +1 -0
- package/dist/actions/importFactory.d.ts +97 -0
- package/dist/actions/importFactory.d.ts.map +1 -0
- package/dist/actions/importFactory.js +143 -0
- package/dist/actions/importFactory.js.map +1 -0
- package/dist/actions/index.d.ts +3 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +3 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/applyPageHooks.d.ts +54 -0
- package/dist/applyPageHooks.d.ts.map +1 -0
- package/dist/applyPageHooks.js +149 -0
- package/dist/applyPageHooks.js.map +1 -0
- package/dist/cells/coerce.d.ts +25 -0
- package/dist/cells/coerce.d.ts.map +1 -0
- package/dist/cells/coerce.js +87 -0
- package/dist/cells/coerce.js.map +1 -0
- package/dist/clusterPaths.d.ts +9 -0
- package/dist/clusterPaths.d.ts.map +1 -0
- package/dist/clusterPaths.js +19 -0
- package/dist/clusterPaths.js.map +1 -0
- package/dist/columns/BadgeColumn.d.ts +16 -0
- package/dist/columns/BadgeColumn.d.ts.map +1 -0
- package/dist/columns/BadgeColumn.js +25 -0
- package/dist/columns/BadgeColumn.js.map +1 -0
- package/dist/columns/BooleanColumn.d.ts +10 -0
- package/dist/columns/BooleanColumn.d.ts.map +1 -0
- package/dist/columns/BooleanColumn.js +18 -0
- package/dist/columns/BooleanColumn.js.map +1 -0
- package/dist/columns/ColorColumn.d.ts +27 -0
- package/dist/columns/ColorColumn.d.ts.map +1 -0
- package/dist/columns/ColorColumn.js +35 -0
- package/dist/columns/ColorColumn.js.map +1 -0
- package/dist/columns/IconColumn.d.ts +22 -0
- package/dist/columns/IconColumn.d.ts.map +1 -0
- package/dist/columns/IconColumn.js +28 -0
- package/dist/columns/IconColumn.js.map +1 -0
- package/dist/columns/ImageColumn.d.ts +17 -0
- package/dist/columns/ImageColumn.d.ts.map +1 -0
- package/dist/columns/ImageColumn.js +24 -0
- package/dist/columns/ImageColumn.js.map +1 -0
- package/dist/columns/SelectColumn.d.ts +36 -0
- package/dist/columns/SelectColumn.d.ts.map +1 -0
- package/dist/columns/SelectColumn.js +52 -0
- package/dist/columns/SelectColumn.js.map +1 -0
- package/dist/columns/TextColumn.d.ts +18 -0
- package/dist/columns/TextColumn.d.ts.map +1 -0
- package/dist/columns/TextColumn.js +20 -0
- package/dist/columns/TextColumn.js.map +1 -0
- package/dist/columns/TextInputColumn.d.ts +47 -0
- package/dist/columns/TextInputColumn.d.ts.map +1 -0
- package/dist/columns/TextInputColumn.js +60 -0
- package/dist/columns/TextInputColumn.js.map +1 -0
- package/dist/columns/ToggleColumn.d.ts +32 -0
- package/dist/columns/ToggleColumn.d.ts.map +1 -0
- package/dist/columns/ToggleColumn.js +45 -0
- package/dist/columns/ToggleColumn.js.map +1 -0
- package/dist/columns/index.d.ts +10 -0
- package/dist/columns/index.d.ts.map +1 -0
- package/dist/columns/index.js +10 -0
- package/dist/columns/index.js.map +1 -0
- package/dist/defaultGlobalPages.d.ts +11 -0
- package/dist/defaultGlobalPages.d.ts.map +1 -0
- package/dist/defaultGlobalPages.js +87 -0
- package/dist/defaultGlobalPages.js.map +1 -0
- package/dist/defaultPages.d.ts +247 -0
- package/dist/defaultPages.d.ts.map +1 -0
- package/dist/defaultPages.js +558 -0
- package/dist/defaultPages.js.map +1 -0
- package/dist/elements/Form.d.ts +219 -0
- package/dist/elements/Form.d.ts.map +1 -0
- package/dist/elements/Form.js +259 -0
- package/dist/elements/Form.js.map +1 -0
- package/dist/elements/ListTabs.d.ts +17 -0
- package/dist/elements/ListTabs.d.ts.map +1 -0
- package/dist/elements/ListTabs.js +23 -0
- package/dist/elements/ListTabs.js.map +1 -0
- package/dist/elements/Table.d.ts +535 -0
- package/dist/elements/Table.d.ts.map +1 -0
- package/dist/elements/Table.js +481 -0
- package/dist/elements/Table.js.map +1 -0
- package/dist/elements/TableGroup.d.ts +121 -0
- package/dist/elements/TableGroup.d.ts.map +1 -0
- package/dist/elements/TableGroup.js +162 -0
- package/dist/elements/TableGroup.js.map +1 -0
- package/dist/elements/dispatchAction.d.ts +127 -0
- package/dist/elements/dispatchAction.d.ts.map +1 -0
- package/dist/elements/dispatchAction.js +254 -0
- package/dist/elements/dispatchAction.js.map +1 -0
- package/dist/elements/dispatchForm.d.ts +220 -0
- package/dist/elements/dispatchForm.d.ts.map +1 -0
- package/dist/elements/dispatchForm.js +1645 -0
- package/dist/elements/dispatchForm.js.map +1 -0
- package/dist/elements/dispatchTable.d.ts +69 -0
- package/dist/elements/dispatchTable.d.ts.map +1 -0
- package/dist/elements/dispatchTable.js +606 -0
- package/dist/elements/dispatchTable.js.map +1 -0
- package/dist/elements/index.d.ts +3 -0
- package/dist/elements/index.d.ts.map +1 -0
- package/dist/elements/index.js +3 -0
- package/dist/elements/index.js.map +1 -0
- package/dist/entries/BadgeEntry.d.ts +21 -0
- package/dist/entries/BadgeEntry.d.ts.map +1 -0
- package/dist/entries/BadgeEntry.js +32 -0
- package/dist/entries/BadgeEntry.js.map +1 -0
- package/dist/entries/CodeEntry.d.ts +38 -0
- package/dist/entries/CodeEntry.d.ts.map +1 -0
- package/dist/entries/CodeEntry.js +44 -0
- package/dist/entries/CodeEntry.js.map +1 -0
- package/dist/entries/ColorEntry.d.ts +32 -0
- package/dist/entries/ColorEntry.d.ts.map +1 -0
- package/dist/entries/ColorEntry.js +48 -0
- package/dist/entries/ColorEntry.js.map +1 -0
- package/dist/entries/ComponentEntry.d.ts +66 -0
- package/dist/entries/ComponentEntry.d.ts.map +1 -0
- package/dist/entries/ComponentEntry.js +86 -0
- package/dist/entries/ComponentEntry.js.map +1 -0
- package/dist/entries/Entry.d.ts +175 -0
- package/dist/entries/Entry.d.ts.map +1 -0
- package/dist/entries/Entry.js +233 -0
- package/dist/entries/Entry.js.map +1 -0
- package/dist/entries/IconEntry.d.ts +30 -0
- package/dist/entries/IconEntry.d.ts.map +1 -0
- package/dist/entries/IconEntry.js +34 -0
- package/dist/entries/IconEntry.js.map +1 -0
- package/dist/entries/ImageEntry.d.ts +33 -0
- package/dist/entries/ImageEntry.d.ts.map +1 -0
- package/dist/entries/ImageEntry.js +47 -0
- package/dist/entries/ImageEntry.js.map +1 -0
- package/dist/entries/KeyValueEntry.d.ts +30 -0
- package/dist/entries/KeyValueEntry.d.ts.map +1 -0
- package/dist/entries/KeyValueEntry.js +38 -0
- package/dist/entries/KeyValueEntry.js.map +1 -0
- package/dist/entries/RepeatableEntry.d.ts +122 -0
- package/dist/entries/RepeatableEntry.d.ts.map +1 -0
- package/dist/entries/RepeatableEntry.js +121 -0
- package/dist/entries/RepeatableEntry.js.map +1 -0
- package/dist/entries/TextEntry.d.ts +38 -0
- package/dist/entries/TextEntry.d.ts.map +1 -0
- package/dist/entries/TextEntry.js +49 -0
- package/dist/entries/TextEntry.js.map +1 -0
- package/dist/entries/index.d.ts +2 -0
- package/dist/entries/index.d.ts.map +1 -0
- package/dist/entries/index.js +8 -0
- package/dist/entries/index.js.map +1 -0
- package/dist/entries/registry.d.ts +41 -0
- package/dist/entries/registry.d.ts.map +1 -0
- package/dist/entries/registry.js +17 -0
- package/dist/entries/registry.js.map +1 -0
- package/dist/fields/BuilderField.d.ts +420 -0
- package/dist/fields/BuilderField.d.ts.map +1 -0
- package/dist/fields/BuilderField.js +359 -0
- package/dist/fields/BuilderField.js.map +1 -0
- package/dist/fields/CheckboxField.d.ts +18 -0
- package/dist/fields/CheckboxField.d.ts.map +1 -0
- package/dist/fields/CheckboxField.js +23 -0
- package/dist/fields/CheckboxField.js.map +1 -0
- package/dist/fields/CheckboxListField.d.ts +25 -0
- package/dist/fields/CheckboxListField.d.ts.map +1 -0
- package/dist/fields/CheckboxListField.js +46 -0
- package/dist/fields/CheckboxListField.js.map +1 -0
- package/dist/fields/ColorPickerField.d.ts +16 -0
- package/dist/fields/ColorPickerField.d.ts.map +1 -0
- package/dist/fields/ColorPickerField.js +21 -0
- package/dist/fields/ColorPickerField.js.map +1 -0
- package/dist/fields/DateField.d.ts +29 -0
- package/dist/fields/DateField.d.ts.map +1 -0
- package/dist/fields/DateField.js +45 -0
- package/dist/fields/DateField.js.map +1 -0
- package/dist/fields/EmailField.d.ts +8 -0
- package/dist/fields/EmailField.d.ts.map +1 -0
- package/dist/fields/EmailField.js +13 -0
- package/dist/fields/EmailField.js.map +1 -0
- package/dist/fields/Field.d.ts +485 -0
- package/dist/fields/Field.d.ts.map +1 -0
- package/dist/fields/Field.js +539 -0
- package/dist/fields/Field.js.map +1 -0
- package/dist/fields/FileUploadField.d.ts +43 -0
- package/dist/fields/FileUploadField.d.ts.map +1 -0
- package/dist/fields/FileUploadField.js +60 -0
- package/dist/fields/FileUploadField.js.map +1 -0
- package/dist/fields/HiddenField.d.ts +19 -0
- package/dist/fields/HiddenField.d.ts.map +1 -0
- package/dist/fields/HiddenField.js +24 -0
- package/dist/fields/HiddenField.js.map +1 -0
- package/dist/fields/KeyValueField.d.ts +36 -0
- package/dist/fields/KeyValueField.d.ts.map +1 -0
- package/dist/fields/KeyValueField.js +47 -0
- package/dist/fields/KeyValueField.js.map +1 -0
- package/dist/fields/MarkdownField.d.ts +79 -0
- package/dist/fields/MarkdownField.d.ts.map +1 -0
- package/dist/fields/MarkdownField.js +117 -0
- package/dist/fields/MarkdownField.js.map +1 -0
- package/dist/fields/NumberField.d.ts +17 -0
- package/dist/fields/NumberField.d.ts.map +1 -0
- package/dist/fields/NumberField.js +27 -0
- package/dist/fields/NumberField.js.map +1 -0
- package/dist/fields/RadioField.d.ts +26 -0
- package/dist/fields/RadioField.d.ts.map +1 -0
- package/dist/fields/RadioField.js +47 -0
- package/dist/fields/RadioField.js.map +1 -0
- package/dist/fields/RepeaterField.d.ts +594 -0
- package/dist/fields/RepeaterField.d.ts.map +1 -0
- package/dist/fields/RepeaterField.js +504 -0
- package/dist/fields/RepeaterField.js.map +1 -0
- package/dist/fields/RowButton.d.ts +86 -0
- package/dist/fields/RowButton.d.ts.map +1 -0
- package/dist/fields/RowButton.js +85 -0
- package/dist/fields/RowButton.js.map +1 -0
- package/dist/fields/SelectField.d.ts +127 -0
- package/dist/fields/SelectField.d.ts.map +1 -0
- package/dist/fields/SelectField.js +160 -0
- package/dist/fields/SelectField.js.map +1 -0
- package/dist/fields/SliderField.d.ts +31 -0
- package/dist/fields/SliderField.d.ts.map +1 -0
- package/dist/fields/SliderField.js +45 -0
- package/dist/fields/SliderField.js.map +1 -0
- package/dist/fields/SlugField.d.ts +11 -0
- package/dist/fields/SlugField.d.ts.map +1 -0
- package/dist/fields/SlugField.js +19 -0
- package/dist/fields/SlugField.js.map +1 -0
- package/dist/fields/TagsInputField.d.ts +65 -0
- package/dist/fields/TagsInputField.d.ts.map +1 -0
- package/dist/fields/TagsInputField.js +104 -0
- package/dist/fields/TagsInputField.js.map +1 -0
- package/dist/fields/TextField.d.ts +11 -0
- package/dist/fields/TextField.d.ts.map +1 -0
- package/dist/fields/TextField.js +19 -0
- package/dist/fields/TextField.js.map +1 -0
- package/dist/fields/TextareaField.d.ts +40 -0
- package/dist/fields/TextareaField.d.ts.map +1 -0
- package/dist/fields/TextareaField.js +51 -0
- package/dist/fields/TextareaField.js.map +1 -0
- package/dist/fields/ToggleButtonsField.d.ts +24 -0
- package/dist/fields/ToggleButtonsField.d.ts.map +1 -0
- package/dist/fields/ToggleButtonsField.js +41 -0
- package/dist/fields/ToggleButtonsField.js.map +1 -0
- package/dist/fields/ToggleField.d.ts +8 -0
- package/dist/fields/ToggleField.d.ts.map +1 -0
- package/dist/fields/ToggleField.js +13 -0
- package/dist/fields/ToggleField.js.map +1 -0
- package/dist/fields/optionsResolver.d.ts +54 -0
- package/dist/fields/optionsResolver.d.ts.map +1 -0
- package/dist/fields/optionsResolver.js +62 -0
- package/dist/fields/optionsResolver.js.map +1 -0
- package/dist/fields/resolveField.d.ts +21 -0
- package/dist/fields/resolveField.d.ts.map +1 -0
- package/dist/fields/resolveField.js +26 -0
- package/dist/fields/resolveField.js.map +1 -0
- package/dist/filters/BooleanFilter.d.ts +20 -0
- package/dist/filters/BooleanFilter.d.ts.map +1 -0
- package/dist/filters/BooleanFilter.js +31 -0
- package/dist/filters/BooleanFilter.js.map +1 -0
- package/dist/filters/DateRangeFilter.d.ts +68 -0
- package/dist/filters/DateRangeFilter.d.ts.map +1 -0
- package/dist/filters/DateRangeFilter.js +137 -0
- package/dist/filters/DateRangeFilter.js.map +1 -0
- package/dist/filters/Filter.d.ts +140 -0
- package/dist/filters/Filter.d.ts.map +1 -0
- package/dist/filters/Filter.js +99 -0
- package/dist/filters/Filter.js.map +1 -0
- package/dist/filters/FormFilter.d.ts +103 -0
- package/dist/filters/FormFilter.d.ts.map +1 -0
- package/dist/filters/FormFilter.js +180 -0
- package/dist/filters/FormFilter.js.map +1 -0
- package/dist/filters/MultiSelectFilter.d.ts +41 -0
- package/dist/filters/MultiSelectFilter.d.ts.map +1 -0
- package/dist/filters/MultiSelectFilter.js +67 -0
- package/dist/filters/MultiSelectFilter.js.map +1 -0
- package/dist/filters/QueryBuilderFilter.d.ts +145 -0
- package/dist/filters/QueryBuilderFilter.d.ts.map +1 -0
- package/dist/filters/QueryBuilderFilter.js +323 -0
- package/dist/filters/QueryBuilderFilter.js.map +1 -0
- package/dist/filters/SelectFilter.d.ts +26 -0
- package/dist/filters/SelectFilter.d.ts.map +1 -0
- package/dist/filters/SelectFilter.js +35 -0
- package/dist/filters/SelectFilter.js.map +1 -0
- package/dist/filters/TernaryFilter.d.ts +35 -0
- package/dist/filters/TernaryFilter.d.ts.map +1 -0
- package/dist/filters/TernaryFilter.js +71 -0
- package/dist/filters/TernaryFilter.js.map +1 -0
- package/dist/filters/TrashedFilter.d.ts +28 -0
- package/dist/filters/TrashedFilter.d.ts.map +1 -0
- package/dist/filters/TrashedFilter.js +52 -0
- package/dist/filters/TrashedFilter.js.map +1 -0
- package/dist/filters/queryBuilder/BooleanConstraint.d.ts +13 -0
- package/dist/filters/queryBuilder/BooleanConstraint.d.ts.map +1 -0
- package/dist/filters/queryBuilder/BooleanConstraint.js +27 -0
- package/dist/filters/queryBuilder/BooleanConstraint.js.map +1 -0
- package/dist/filters/queryBuilder/Constraint.d.ts +74 -0
- package/dist/filters/queryBuilder/Constraint.d.ts.map +1 -0
- package/dist/filters/queryBuilder/Constraint.js +45 -0
- package/dist/filters/queryBuilder/Constraint.js.map +1 -0
- package/dist/filters/queryBuilder/DateConstraint.d.ts +18 -0
- package/dist/filters/queryBuilder/DateConstraint.d.ts.map +1 -0
- package/dist/filters/queryBuilder/DateConstraint.js +63 -0
- package/dist/filters/queryBuilder/DateConstraint.js.map +1 -0
- package/dist/filters/queryBuilder/NumberConstraint.d.ts +12 -0
- package/dist/filters/queryBuilder/NumberConstraint.d.ts.map +1 -0
- package/dist/filters/queryBuilder/NumberConstraint.js +61 -0
- package/dist/filters/queryBuilder/NumberConstraint.js.map +1 -0
- package/dist/filters/queryBuilder/SelectConstraint.d.ts +22 -0
- package/dist/filters/queryBuilder/SelectConstraint.d.ts.map +1 -0
- package/dist/filters/queryBuilder/SelectConstraint.js +66 -0
- package/dist/filters/queryBuilder/SelectConstraint.js.map +1 -0
- package/dist/filters/queryBuilder/TextConstraint.d.ts +18 -0
- package/dist/filters/queryBuilder/TextConstraint.d.ts.map +1 -0
- package/dist/filters/queryBuilder/TextConstraint.js +58 -0
- package/dist/filters/queryBuilder/TextConstraint.js.map +1 -0
- package/dist/filters/queryBuilder/index.d.ts +7 -0
- package/dist/filters/queryBuilder/index.d.ts.map +1 -0
- package/dist/filters/queryBuilder/index.js +7 -0
- package/dist/filters/queryBuilder/index.js.map +1 -0
- package/dist/icons/index.d.ts +3 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +3 -0
- package/dist/icons/index.js.map +1 -0
- package/dist/icons/lucide.d.ts +16 -0
- package/dist/icons/lucide.d.ts.map +1 -0
- package/dist/icons/lucide.js +173 -0
- package/dist/icons/lucide.js.map +1 -0
- package/dist/icons/registry.d.ts +27 -0
- package/dist/icons/registry.d.ts.map +1 -0
- package/dist/icons/registry.js +35 -0
- package/dist/icons/registry.js.map +1 -0
- package/dist/icons/types.d.ts +38 -0
- package/dist/icons/types.d.ts.map +1 -0
- package/dist/icons/types.js +23 -0
- package/dist/icons/types.js.map +1 -0
- package/dist/index.d.ts +118 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +135 -0
- package/dist/index.js.map +1 -0
- package/dist/io/csv.d.ts +51 -0
- package/dist/io/csv.d.ts.map +1 -0
- package/dist/io/csv.js +168 -0
- package/dist/io/csv.js.map +1 -0
- package/dist/notifications/Notification.d.ts +181 -0
- package/dist/notifications/Notification.d.ts.map +1 -0
- package/dist/notifications/Notification.js +290 -0
- package/dist/notifications/Notification.js.map +1 -0
- package/dist/notifications/broadcast.d.ts +58 -0
- package/dist/notifications/broadcast.d.ts.map +1 -0
- package/dist/notifications/broadcast.js +72 -0
- package/dist/notifications/broadcast.js.map +1 -0
- package/dist/notifications/database.d.ts +164 -0
- package/dist/notifications/database.d.ts.map +1 -0
- package/dist/notifications/database.js +321 -0
- package/dist/notifications/database.js.map +1 -0
- package/dist/notifications/dispatchNotificationAction.d.ts +48 -0
- package/dist/notifications/dispatchNotificationAction.d.ts.map +1 -0
- package/dist/notifications/dispatchNotificationAction.js +100 -0
- package/dist/notifications/dispatchNotificationAction.js.map +1 -0
- package/dist/notifications/flash.d.ts +34 -0
- package/dist/notifications/flash.d.ts.map +1 -0
- package/dist/notifications/flash.js +51 -0
- package/dist/notifications/flash.js.map +1 -0
- package/dist/notifications/index.d.ts +8 -0
- package/dist/notifications/index.d.ts.map +1 -0
- package/dist/notifications/index.js +6 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/notifications/registerBroadcastAuth.d.ts +45 -0
- package/dist/notifications/registerBroadcastAuth.d.ts.map +1 -0
- package/dist/notifications/registerBroadcastAuth.js +86 -0
- package/dist/notifications/registerBroadcastAuth.js.map +1 -0
- package/dist/notifications/resolveSavedNotification.d.ts +21 -0
- package/dist/notifications/resolveSavedNotification.d.ts.map +1 -0
- package/dist/notifications/resolveSavedNotification.js +43 -0
- package/dist/notifications/resolveSavedNotification.js.map +1 -0
- package/dist/notifications/types.d.ts +87 -0
- package/dist/notifications/types.d.ts.map +1 -0
- package/dist/notifications/types.js +2 -0
- package/dist/notifications/types.js.map +1 -0
- package/dist/orm/m2mAccessor.d.ts +49 -0
- package/dist/orm/m2mAccessor.d.ts.map +1 -0
- package/dist/orm/m2mAccessor.js +45 -0
- package/dist/orm/m2mAccessor.js.map +1 -0
- package/dist/orm/modelDefaults.d.ts +347 -0
- package/dist/orm/modelDefaults.d.ts.map +1 -0
- package/dist/orm/modelDefaults.js +375 -0
- package/dist/orm/modelDefaults.js.map +1 -0
- package/dist/pageData.d.ts +778 -0
- package/dist/pageData.d.ts.map +1 -0
- package/dist/pageData.js +3725 -0
- package/dist/pageData.js.map +1 -0
- package/dist/plugins/index.d.ts +2 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +2 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/themeEditor.d.ts +17 -0
- package/dist/plugins/themeEditor.d.ts.map +1 -0
- package/dist/plugins/themeEditor.js +23 -0
- package/dist/plugins/themeEditor.js.map +1 -0
- package/dist/react/AppShell.d.ts +58 -0
- package/dist/react/AppShell.d.ts.map +1 -0
- package/dist/react/AppShell.js +58 -0
- package/dist/react/AppShell.js.map +1 -0
- package/dist/react/CommandPalette.d.ts +21 -0
- package/dist/react/CommandPalette.d.ts.map +1 -0
- package/dist/react/CommandPalette.js +236 -0
- package/dist/react/CommandPalette.js.map +1 -0
- package/dist/react/FormStateContext.d.ts +83 -0
- package/dist/react/FormStateContext.d.ts.map +1 -0
- package/dist/react/FormStateContext.js +284 -0
- package/dist/react/FormStateContext.js.map +1 -0
- package/dist/react/HeadHooks.d.ts +26 -0
- package/dist/react/HeadHooks.d.ts.map +1 -0
- package/dist/react/HeadHooks.js +141 -0
- package/dist/react/HeadHooks.js.map +1 -0
- package/dist/react/NotificationActionStrip.d.ts +39 -0
- package/dist/react/NotificationActionStrip.d.ts.map +1 -0
- package/dist/react/NotificationActionStrip.js +129 -0
- package/dist/react/NotificationActionStrip.js.map +1 -0
- package/dist/react/NotificationBell.d.ts +20 -0
- package/dist/react/NotificationBell.d.ts.map +1 -0
- package/dist/react/NotificationBell.js +273 -0
- package/dist/react/NotificationBell.js.map +1 -0
- package/dist/react/RenderHookSlot.d.ts +20 -0
- package/dist/react/RenderHookSlot.d.ts.map +1 -0
- package/dist/react/RenderHookSlot.js +24 -0
- package/dist/react/RenderHookSlot.js.map +1 -0
- package/dist/react/RightSidebar.d.ts +33 -0
- package/dist/react/RightSidebar.d.ts.map +1 -0
- package/dist/react/RightSidebar.js +82 -0
- package/dist/react/RightSidebar.js.map +1 -0
- package/dist/react/RightSidebarContext.d.ts +62 -0
- package/dist/react/RightSidebarContext.d.ts.map +1 -0
- package/dist/react/RightSidebarContext.js +178 -0
- package/dist/react/RightSidebarContext.js.map +1 -0
- package/dist/react/RightSidebarTrigger.d.ts +16 -0
- package/dist/react/RightSidebarTrigger.d.ts.map +1 -0
- package/dist/react/RightSidebarTrigger.js +24 -0
- package/dist/react/RightSidebarTrigger.js.map +1 -0
- package/dist/react/SchemaRenderer.d.ts +63 -0
- package/dist/react/SchemaRenderer.d.ts.map +1 -0
- package/dist/react/SchemaRenderer.js +3458 -0
- package/dist/react/SchemaRenderer.js.map +1 -0
- package/dist/react/SearchTrigger.d.ts +13 -0
- package/dist/react/SearchTrigger.d.ts.map +1 -0
- package/dist/react/SearchTrigger.js +30 -0
- package/dist/react/SearchTrigger.js.map +1 -0
- package/dist/react/ThemeProvider.d.ts +18 -0
- package/dist/react/ThemeProvider.d.ts.map +1 -0
- package/dist/react/ThemeProvider.js +66 -0
- package/dist/react/ThemeProvider.js.map +1 -0
- package/dist/react/ThemeSettingsPage.d.ts +10 -0
- package/dist/react/ThemeSettingsPage.d.ts.map +1 -0
- package/dist/react/ThemeSettingsPage.js +293 -0
- package/dist/react/ThemeSettingsPage.js.map +1 -0
- package/dist/react/ThemeToggle.d.ts +2 -0
- package/dist/react/ThemeToggle.d.ts.map +1 -0
- package/dist/react/ThemeToggle.js +8 -0
- package/dist/react/ThemeToggle.js.map +1 -0
- package/dist/react/Toaster.d.ts +25 -0
- package/dist/react/Toaster.d.ts.map +1 -0
- package/dist/react/Toaster.js +89 -0
- package/dist/react/Toaster.js.map +1 -0
- package/dist/react/UserMenu.d.ts +23 -0
- package/dist/react/UserMenu.d.ts.map +1 -0
- package/dist/react/UserMenu.js +78 -0
- package/dist/react/UserMenu.js.map +1 -0
- package/dist/react/WidgetDataContext.d.ts +64 -0
- package/dist/react/WidgetDataContext.d.ts.map +1 -0
- package/dist/react/WidgetDataContext.js +89 -0
- package/dist/react/WidgetDataContext.js.map +1 -0
- package/dist/react/cells/EditableCell.d.ts +20 -0
- package/dist/react/cells/EditableCell.d.ts.map +1 -0
- package/dist/react/cells/EditableCell.js +251 -0
- package/dist/react/cells/EditableCell.js.map +1 -0
- package/dist/react/fieldJsHandler.d.ts +33 -0
- package/dist/react/fieldJsHandler.d.ts.map +1 -0
- package/dist/react/fieldJsHandler.js +61 -0
- package/dist/react/fieldJsHandler.js.map +1 -0
- package/dist/react/fields/BuilderInput.d.ts +21 -0
- package/dist/react/fields/BuilderInput.d.ts.map +1 -0
- package/dist/react/fields/BuilderInput.js +553 -0
- package/dist/react/fields/BuilderInput.js.map +1 -0
- package/dist/react/fields/CheckboxInput.d.ts +9 -0
- package/dist/react/fields/CheckboxInput.d.ts.map +1 -0
- package/dist/react/fields/CheckboxInput.js +23 -0
- package/dist/react/fields/CheckboxInput.js.map +1 -0
- package/dist/react/fields/CheckboxListInput.d.ts +19 -0
- package/dist/react/fields/CheckboxListInput.d.ts.map +1 -0
- package/dist/react/fields/CheckboxListInput.js +53 -0
- package/dist/react/fields/CheckboxListInput.js.map +1 -0
- package/dist/react/fields/ColorInput.d.ts +12 -0
- package/dist/react/fields/ColorInput.d.ts.map +1 -0
- package/dist/react/fields/ColorInput.js +29 -0
- package/dist/react/fields/ColorInput.js.map +1 -0
- package/dist/react/fields/DateFieldInput.d.ts +8 -0
- package/dist/react/fields/DateFieldInput.d.ts.map +1 -0
- package/dist/react/fields/DateFieldInput.js +39 -0
- package/dist/react/fields/DateFieldInput.js.map +1 -0
- package/dist/react/fields/DateTimeInput.d.ts +13 -0
- package/dist/react/fields/DateTimeInput.d.ts.map +1 -0
- package/dist/react/fields/DateTimeInput.js +29 -0
- package/dist/react/fields/DateTimeInput.js.map +1 -0
- package/dist/react/fields/FieldShell.d.ts +23 -0
- package/dist/react/fields/FieldShell.d.ts.map +1 -0
- package/dist/react/fields/FieldShell.js +46 -0
- package/dist/react/fields/FieldShell.js.map +1 -0
- package/dist/react/fields/FileUploadInput.d.ts +21 -0
- package/dist/react/fields/FileUploadInput.d.ts.map +1 -0
- package/dist/react/fields/FileUploadInput.js +120 -0
- package/dist/react/fields/FileUploadInput.js.map +1 -0
- package/dist/react/fields/HiddenInput.d.ts +11 -0
- package/dist/react/fields/HiddenInput.d.ts.map +1 -0
- package/dist/react/fields/HiddenInput.js +14 -0
- package/dist/react/fields/HiddenInput.js.map +1 -0
- package/dist/react/fields/KeyValueInput.d.ts +18 -0
- package/dist/react/fields/KeyValueInput.d.ts.map +1 -0
- package/dist/react/fields/KeyValueInput.js +122 -0
- package/dist/react/fields/KeyValueInput.js.map +1 -0
- package/dist/react/fields/MarkdownInput.d.ts +29 -0
- package/dist/react/fields/MarkdownInput.d.ts.map +1 -0
- package/dist/react/fields/MarkdownInput.js +250 -0
- package/dist/react/fields/MarkdownInput.js.map +1 -0
- package/dist/react/fields/RadioInput.d.ts +18 -0
- package/dist/react/fields/RadioInput.d.ts.map +1 -0
- package/dist/react/fields/RadioInput.js +34 -0
- package/dist/react/fields/RadioInput.js.map +1 -0
- package/dist/react/fields/RepeaterInput.d.ts +92 -0
- package/dist/react/fields/RepeaterInput.d.ts.map +1 -0
- package/dist/react/fields/RepeaterInput.js +705 -0
- package/dist/react/fields/RepeaterInput.js.map +1 -0
- package/dist/react/fields/SelectFieldInput.d.ts +23 -0
- package/dist/react/fields/SelectFieldInput.d.ts.map +1 -0
- package/dist/react/fields/SelectFieldInput.js +146 -0
- package/dist/react/fields/SelectFieldInput.js.map +1 -0
- package/dist/react/fields/SliderInput.d.ts +16 -0
- package/dist/react/fields/SliderInput.d.ts.map +1 -0
- package/dist/react/fields/SliderInput.js +37 -0
- package/dist/react/fields/SliderInput.js.map +1 -0
- package/dist/react/fields/TagsInput.d.ts +27 -0
- package/dist/react/fields/TagsInput.d.ts.map +1 -0
- package/dist/react/fields/TagsInput.js +189 -0
- package/dist/react/fields/TagsInput.js.map +1 -0
- package/dist/react/fields/TextLikeInput.d.ts +18 -0
- package/dist/react/fields/TextLikeInput.d.ts.map +1 -0
- package/dist/react/fields/TextLikeInput.js +46 -0
- package/dist/react/fields/TextLikeInput.js.map +1 -0
- package/dist/react/fields/ToggleButtonsInput.d.ts +20 -0
- package/dist/react/fields/ToggleButtonsInput.d.ts.map +1 -0
- package/dist/react/fields/ToggleButtonsInput.js +42 -0
- package/dist/react/fields/ToggleButtonsInput.js.map +1 -0
- package/dist/react/fields/ToggleFieldInput.d.ts +7 -0
- package/dist/react/fields/ToggleFieldInput.d.ts.map +1 -0
- package/dist/react/fields/ToggleFieldInput.js +30 -0
- package/dist/react/fields/ToggleFieldInput.js.map +1 -0
- package/dist/react/fields/rowChromeButton.d.ts +84 -0
- package/dist/react/fields/rowChromeButton.d.ts.map +1 -0
- package/dist/react/fields/rowChromeButton.js +111 -0
- package/dist/react/fields/rowChromeButton.js.map +1 -0
- package/dist/react/fields/syncRowGates.d.ts +11 -0
- package/dist/react/fields/syncRowGates.d.ts.map +1 -0
- package/dist/react/fields/syncRowGates.js +55 -0
- package/dist/react/fields/syncRowGates.js.map +1 -0
- package/dist/react/formStateHelpers.d.ts +44 -0
- package/dist/react/formStateHelpers.d.ts.map +1 -0
- package/dist/react/formStateHelpers.js +230 -0
- package/dist/react/formStateHelpers.js.map +1 -0
- package/dist/react/hooks/use-mobile.d.ts +2 -0
- package/dist/react/hooks/use-mobile.d.ts.map +1 -0
- package/dist/react/hooks/use-mobile.js +16 -0
- package/dist/react/hooks/use-mobile.js.map +1 -0
- package/dist/react/icon-context.d.ts +35 -0
- package/dist/react/icon-context.d.ts.map +1 -0
- package/dist/react/icon-context.js +45 -0
- package/dist/react/icon-context.js.map +1 -0
- package/dist/react/index.d.ts +26 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +28 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/layouts/SidebarLayout.d.ts +3 -0
- package/dist/react/layouts/SidebarLayout.d.ts.map +1 -0
- package/dist/react/layouts/SidebarLayout.js +85 -0
- package/dist/react/layouts/SidebarLayout.js.map +1 -0
- package/dist/react/layouts/TopbarLayout.d.ts +3 -0
- package/dist/react/layouts/TopbarLayout.d.ts.map +1 -0
- package/dist/react/layouts/TopbarLayout.js +103 -0
- package/dist/react/layouts/TopbarLayout.js.map +1 -0
- package/dist/react/navigate.d.ts +22 -0
- package/dist/react/navigate.d.ts.map +1 -0
- package/dist/react/navigate.js +30 -0
- package/dist/react/navigate.js.map +1 -0
- package/dist/react/registry.d.ts +35 -0
- package/dist/react/registry.d.ts.map +1 -0
- package/dist/react/registry.js +22 -0
- package/dist/react/registry.js.map +1 -0
- package/dist/react/right-panel-registry.d.ts +32 -0
- package/dist/react/right-panel-registry.d.ts.map +1 -0
- package/dist/react/right-panel-registry.js +20 -0
- package/dist/react/right-panel-registry.js.map +1 -0
- package/dist/react/theme-preview/apply.d.ts +11 -0
- package/dist/react/theme-preview/apply.d.ts.map +1 -0
- package/dist/react/theme-preview/apply.js +93 -0
- package/dist/react/theme-preview/apply.js.map +1 -0
- package/dist/react/theme-preview/build-html.d.ts +3 -0
- package/dist/react/theme-preview/build-html.d.ts.map +1 -0
- package/dist/react/theme-preview/build-html.js +437 -0
- package/dist/react/theme-preview/build-html.js.map +1 -0
- package/dist/react/ui/button.d.ts +9 -0
- package/dist/react/ui/button.d.ts.map +1 -0
- package/dist/react/ui/button.js +35 -0
- package/dist/react/ui/button.js.map +1 -0
- package/dist/react/ui/calendar.d.ts +5 -0
- package/dist/react/ui/calendar.d.ts.map +1 -0
- package/dist/react/ui/calendar.js +34 -0
- package/dist/react/ui/calendar.js.map +1 -0
- package/dist/react/ui/checkbox.d.ts +4 -0
- package/dist/react/ui/checkbox.d.ts.map +1 -0
- package/dist/react/ui/checkbox.js +9 -0
- package/dist/react/ui/checkbox.js.map +1 -0
- package/dist/react/ui/dialog.d.ts +12 -0
- package/dist/react/ui/dialog.d.ts.map +1 -0
- package/dist/react/ui/dialog.js +34 -0
- package/dist/react/ui/dialog.js.map +1 -0
- package/dist/react/ui/dropdown-menu.d.ts +12 -0
- package/dist/react/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/react/ui/dropdown-menu.js +23 -0
- package/dist/react/ui/dropdown-menu.js.map +1 -0
- package/dist/react/ui/input.d.ts +4 -0
- package/dist/react/ui/input.d.ts.map +1 -0
- package/dist/react/ui/input.js +8 -0
- package/dist/react/ui/input.js.map +1 -0
- package/dist/react/ui/label.d.ts +4 -0
- package/dist/react/ui/label.d.ts.map +1 -0
- package/dist/react/ui/label.js +7 -0
- package/dist/react/ui/label.js.map +1 -0
- package/dist/react/ui/popover.d.ts +6 -0
- package/dist/react/ui/popover.d.ts.map +1 -0
- package/dist/react/ui/popover.js +14 -0
- package/dist/react/ui/popover.js.map +1 -0
- package/dist/react/ui/select.d.ts +17 -0
- package/dist/react/ui/select.d.ts.map +1 -0
- package/dist/react/ui/select.js +39 -0
- package/dist/react/ui/select.js.map +1 -0
- package/dist/react/ui/separator.d.ts +4 -0
- package/dist/react/ui/separator.d.ts.map +1 -0
- package/dist/react/ui/separator.js +9 -0
- package/dist/react/ui/separator.js.map +1 -0
- package/dist/react/ui/sheet.d.ts +15 -0
- package/dist/react/ui/sheet.d.ts.map +1 -0
- package/dist/react/ui/sheet.js +37 -0
- package/dist/react/ui/sheet.js.map +1 -0
- package/dist/react/ui/sidebar.d.ts +64 -0
- package/dist/react/ui/sidebar.d.ts.map +1 -0
- package/dist/react/ui/sidebar.js +257 -0
- package/dist/react/ui/sidebar.js.map +1 -0
- package/dist/react/ui/skeleton.d.ts +3 -0
- package/dist/react/ui/skeleton.d.ts.map +1 -0
- package/dist/react/ui/skeleton.js +7 -0
- package/dist/react/ui/skeleton.js.map +1 -0
- package/dist/react/ui/slider.d.ts +4 -0
- package/dist/react/ui/slider.d.ts.map +1 -0
- package/dist/react/ui/slider.js +8 -0
- package/dist/react/ui/slider.js.map +1 -0
- package/dist/react/ui/switch.d.ts +4 -0
- package/dist/react/ui/switch.d.ts.map +1 -0
- package/dist/react/ui/switch.js +8 -0
- package/dist/react/ui/switch.js.map +1 -0
- package/dist/react/ui/table.d.ts +11 -0
- package/dist/react/ui/table.d.ts.map +1 -0
- package/dist/react/ui/table.js +28 -0
- package/dist/react/ui/table.js.map +1 -0
- package/dist/react/ui/tabs.d.ts +7 -0
- package/dist/react/ui/tabs.d.ts.map +1 -0
- package/dist/react/ui/tabs.js +17 -0
- package/dist/react/ui/tabs.js.map +1 -0
- package/dist/react/ui/textarea.d.ts +4 -0
- package/dist/react/ui/textarea.d.ts.map +1 -0
- package/dist/react/ui/textarea.js +7 -0
- package/dist/react/ui/textarea.js.map +1 -0
- package/dist/react/ui/tooltip.d.ts +7 -0
- package/dist/react/ui/tooltip.d.ts.map +1 -0
- package/dist/react/ui/tooltip.js +17 -0
- package/dist/react/ui/tooltip.js.map +1 -0
- package/dist/react/useResizableWidth.d.ts +47 -0
- package/dist/react/useResizableWidth.d.ts.map +1 -0
- package/dist/react/useResizableWidth.js +99 -0
- package/dist/react/useResizableWidth.js.map +1 -0
- package/dist/react/utils.d.ts +3 -0
- package/dist/react/utils.d.ts.map +1 -0
- package/dist/react/utils.js +6 -0
- package/dist/react/utils.js.map +1 -0
- package/dist/react/widgetRegistry.d.ts +33 -0
- package/dist/react/widgetRegistry.d.ts.map +1 -0
- package/dist/react/widgetRegistry.js +15 -0
- package/dist/react/widgetRegistry.js.map +1 -0
- package/dist/react/widgets/StatsOverviewRenderer.d.ts +6 -0
- package/dist/react/widgets/StatsOverviewRenderer.d.ts.map +1 -0
- package/dist/react/widgets/StatsOverviewRenderer.js +124 -0
- package/dist/react/widgets/StatsOverviewRenderer.js.map +1 -0
- package/dist/react/widgets/TableWidgetRenderer.d.ts +6 -0
- package/dist/react/widgets/TableWidgetRenderer.d.ts.map +1 -0
- package/dist/react/widgets/TableWidgetRenderer.js +123 -0
- package/dist/react/widgets/TableWidgetRenderer.js.map +1 -0
- package/dist/react/widgets/ViewRenderer.d.ts +16 -0
- package/dist/react/widgets/ViewRenderer.d.ts.map +1 -0
- package/dist/react/widgets/ViewRenderer.js +26 -0
- package/dist/react/widgets/ViewRenderer.js.map +1 -0
- package/dist/richtext/index.d.ts +2 -0
- package/dist/richtext/index.d.ts.map +1 -0
- package/dist/richtext/index.js +2 -0
- package/dist/richtext/index.js.map +1 -0
- package/dist/richtext/registry.d.ts +55 -0
- package/dist/richtext/registry.d.ts.map +1 -0
- package/dist/richtext/registry.js +66 -0
- package/dist/richtext/registry.js.map +1 -0
- package/dist/routes.d.ts +9 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +3116 -0
- package/dist/routes.js.map +1 -0
- package/dist/schema/Alert.d.ts +33 -0
- package/dist/schema/Alert.d.ts.map +1 -0
- package/dist/schema/Alert.js +41 -0
- package/dist/schema/Alert.js.map +1 -0
- package/dist/schema/Block.d.ts +112 -0
- package/dist/schema/Block.d.ts.map +1 -0
- package/dist/schema/Block.js +136 -0
- package/dist/schema/Block.js.map +1 -0
- package/dist/schema/Breadcrumbs.d.ts +31 -0
- package/dist/schema/Breadcrumbs.d.ts.map +1 -0
- package/dist/schema/Breadcrumbs.js +30 -0
- package/dist/schema/Breadcrumbs.js.map +1 -0
- package/dist/schema/Card.d.ts +17 -0
- package/dist/schema/Card.d.ts.map +1 -0
- package/dist/schema/Card.js +31 -0
- package/dist/schema/Card.js.map +1 -0
- package/dist/schema/Divider.d.ts +12 -0
- package/dist/schema/Divider.d.ts.map +1 -0
- package/dist/schema/Divider.js +19 -0
- package/dist/schema/Divider.js.map +1 -0
- package/dist/schema/Element.d.ts +150 -0
- package/dist/schema/Element.d.ts.map +1 -0
- package/dist/schema/Element.js +124 -0
- package/dist/schema/Element.js.map +1 -0
- package/dist/schema/EmptyState.d.ts +48 -0
- package/dist/schema/EmptyState.d.ts.map +1 -0
- package/dist/schema/EmptyState.js +57 -0
- package/dist/schema/EmptyState.js.map +1 -0
- package/dist/schema/Fieldset.d.ts +25 -0
- package/dist/schema/Fieldset.d.ts.map +1 -0
- package/dist/schema/Fieldset.js +39 -0
- package/dist/schema/Fieldset.js.map +1 -0
- package/dist/schema/Grid.d.ts +23 -0
- package/dist/schema/Grid.d.ts.map +1 -0
- package/dist/schema/Grid.js +36 -0
- package/dist/schema/Grid.js.map +1 -0
- package/dist/schema/Group.d.ts +19 -0
- package/dist/schema/Group.d.ts.map +1 -0
- package/dist/schema/Group.js +26 -0
- package/dist/schema/Group.js.map +1 -0
- package/dist/schema/Heading.d.ts +25 -0
- package/dist/schema/Heading.d.ts.map +1 -0
- package/dist/schema/Heading.js +34 -0
- package/dist/schema/Heading.js.map +1 -0
- package/dist/schema/Html.d.ts +48 -0
- package/dist/schema/Html.d.ts.map +1 -0
- package/dist/schema/Html.js +60 -0
- package/dist/schema/Html.js.map +1 -0
- package/dist/schema/Icon.d.ts +34 -0
- package/dist/schema/Icon.d.ts.map +1 -0
- package/dist/schema/Icon.js +40 -0
- package/dist/schema/Icon.js.map +1 -0
- package/dist/schema/Image.d.ts +38 -0
- package/dist/schema/Image.d.ts.map +1 -0
- package/dist/schema/Image.js +48 -0
- package/dist/schema/Image.js.map +1 -0
- package/dist/schema/LinkTag.d.ts +48 -0
- package/dist/schema/LinkTag.d.ts.map +1 -0
- package/dist/schema/LinkTag.js +16 -0
- package/dist/schema/LinkTag.js.map +1 -0
- package/dist/schema/Markdown.d.ts +57 -0
- package/dist/schema/Markdown.d.ts.map +1 -0
- package/dist/schema/Markdown.js +75 -0
- package/dist/schema/Markdown.js.map +1 -0
- package/dist/schema/MetaTag.d.ts +41 -0
- package/dist/schema/MetaTag.d.ts.map +1 -0
- package/dist/schema/MetaTag.js +16 -0
- package/dist/schema/MetaTag.js.map +1 -0
- package/dist/schema/RelationTabs.d.ts +50 -0
- package/dist/schema/RelationTabs.d.ts.map +1 -0
- package/dist/schema/RelationTabs.js +48 -0
- package/dist/schema/RelationTabs.js.map +1 -0
- package/dist/schema/ScriptTag.d.ts +63 -0
- package/dist/schema/ScriptTag.d.ts.map +1 -0
- package/dist/schema/ScriptTag.js +16 -0
- package/dist/schema/ScriptTag.js.map +1 -0
- package/dist/schema/Section.d.ts +93 -0
- package/dist/schema/Section.d.ts.map +1 -0
- package/dist/schema/Section.js +127 -0
- package/dist/schema/Section.js.map +1 -0
- package/dist/schema/ServerDataElement.d.ts +101 -0
- package/dist/schema/ServerDataElement.d.ts.map +1 -0
- package/dist/schema/ServerDataElement.js +135 -0
- package/dist/schema/ServerDataElement.js.map +1 -0
- package/dist/schema/Split.d.ts +31 -0
- package/dist/schema/Split.d.ts.map +1 -0
- package/dist/schema/Split.js +41 -0
- package/dist/schema/Split.js.map +1 -0
- package/dist/schema/Stat.d.ts +92 -0
- package/dist/schema/Stat.d.ts.map +1 -0
- package/dist/schema/Stat.js +116 -0
- package/dist/schema/Stat.js.map +1 -0
- package/dist/schema/StatsOverview.d.ts +76 -0
- package/dist/schema/StatsOverview.d.ts.map +1 -0
- package/dist/schema/StatsOverview.js +71 -0
- package/dist/schema/StatsOverview.js.map +1 -0
- package/dist/schema/StyleTag.d.ts +32 -0
- package/dist/schema/StyleTag.d.ts.map +1 -0
- package/dist/schema/StyleTag.js +38 -0
- package/dist/schema/StyleTag.js.map +1 -0
- package/dist/schema/TableWidget.d.ts +148 -0
- package/dist/schema/TableWidget.d.ts.map +1 -0
- package/dist/schema/TableWidget.js +190 -0
- package/dist/schema/TableWidget.js.map +1 -0
- package/dist/schema/Tabs.d.ts +40 -0
- package/dist/schema/Tabs.d.ts.map +1 -0
- package/dist/schema/Tabs.js +66 -0
- package/dist/schema/Tabs.js.map +1 -0
- package/dist/schema/Text.d.ts +33 -0
- package/dist/schema/Text.d.ts.map +1 -0
- package/dist/schema/Text.js +40 -0
- package/dist/schema/Text.js.map +1 -0
- package/dist/schema/UnorderedList.d.ts +36 -0
- package/dist/schema/UnorderedList.d.ts.map +1 -0
- package/dist/schema/UnorderedList.js +42 -0
- package/dist/schema/UnorderedList.js.map +1 -0
- package/dist/schema/View.d.ts +81 -0
- package/dist/schema/View.d.ts.map +1 -0
- package/dist/schema/View.js +81 -0
- package/dist/schema/View.js.map +1 -0
- package/dist/schema/Wizard.d.ts +67 -0
- package/dist/schema/Wizard.d.ts.map +1 -0
- package/dist/schema/Wizard.js +94 -0
- package/dist/schema/Wizard.js.map +1 -0
- package/dist/schema/index.d.ts +26 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +26 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/resolveSchema.d.ts +122 -0
- package/dist/schema/resolveSchema.d.ts.map +1 -0
- package/dist/schema/resolveSchema.js +648 -0
- package/dist/schema/resolveSchema.js.map +1 -0
- package/dist/schema/sanitize.d.ts +21 -0
- package/dist/schema/sanitize.d.ts.map +1 -0
- package/dist/schema/sanitize.js +46 -0
- package/dist/schema/sanitize.js.map +1 -0
- package/dist/search.d.ts +53 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +114 -0
- package/dist/search.js.map +1 -0
- package/dist/sessionFilters.d.ts +8 -0
- package/dist/sessionFilters.d.ts.map +1 -0
- package/dist/sessionFilters.js +115 -0
- package/dist/sessionFilters.js.map +1 -0
- package/dist/summarizers/Summarizer.d.ts +65 -0
- package/dist/summarizers/Summarizer.d.ts.map +1 -0
- package/dist/summarizers/Summarizer.js +98 -0
- package/dist/summarizers/Summarizer.js.map +1 -0
- package/dist/summarizers/index.d.ts +2 -0
- package/dist/summarizers/index.d.ts.map +1 -0
- package/dist/summarizers/index.js +2 -0
- package/dist/summarizers/index.js.map +1 -0
- package/dist/theme/base-colors.d.ts +3 -0
- package/dist/theme/base-colors.d.ts.map +1 -0
- package/dist/theme/base-colors.js +64 -0
- package/dist/theme/base-colors.js.map +1 -0
- package/dist/theme/chart-colors.d.ts +3 -0
- package/dist/theme/chart-colors.d.ts.map +1 -0
- package/dist/theme/chart-colors.js +46 -0
- package/dist/theme/chart-colors.js.map +1 -0
- package/dist/theme/colors.d.ts +56 -0
- package/dist/theme/colors.d.ts.map +1 -0
- package/dist/theme/colors.js +410 -0
- package/dist/theme/colors.js.map +1 -0
- package/dist/theme/generate-css.d.ts +9 -0
- package/dist/theme/generate-css.d.ts.map +1 -0
- package/dist/theme/generate-css.js +36 -0
- package/dist/theme/generate-css.js.map +1 -0
- package/dist/theme/generate-scale.d.ts +3 -0
- package/dist/theme/generate-scale.d.ts.map +1 -0
- package/dist/theme/generate-scale.js +89 -0
- package/dist/theme/generate-scale.js.map +1 -0
- package/dist/theme/icon-map.d.ts +9 -0
- package/dist/theme/icon-map.d.ts.map +1 -0
- package/dist/theme/icon-map.js +40 -0
- package/dist/theme/icon-map.js.map +1 -0
- package/dist/theme/index.d.ts +15 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +13 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/migrate.d.ts +14 -0
- package/dist/theme/migrate.d.ts.map +1 -0
- package/dist/theme/migrate.js +79 -0
- package/dist/theme/migrate.js.map +1 -0
- package/dist/theme/presets.d.ts +30 -0
- package/dist/theme/presets.d.ts.map +1 -0
- package/dist/theme/presets.js +128 -0
- package/dist/theme/presets.js.map +1 -0
- package/dist/theme/radius.d.ts +11 -0
- package/dist/theme/radius.d.ts.map +1 -0
- package/dist/theme/radius.js +17 -0
- package/dist/theme/radius.js.map +1 -0
- package/dist/theme/resolve.d.ts +13 -0
- package/dist/theme/resolve.d.ts.map +1 -0
- package/dist/theme/resolve.js +91 -0
- package/dist/theme/resolve.js.map +1 -0
- package/dist/theme/spacing.d.ts +14 -0
- package/dist/theme/spacing.d.ts.map +1 -0
- package/dist/theme/spacing.js +17 -0
- package/dist/theme/spacing.js.map +1 -0
- package/dist/theme/theme-colors.d.ts +9 -0
- package/dist/theme/theme-colors.d.ts.map +1 -0
- package/dist/theme/theme-colors.js +84 -0
- package/dist/theme/theme-colors.js.map +1 -0
- package/dist/theme/types.d.ts +94 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +2 -0
- package/dist/theme/types.js.map +1 -0
- package/dist/uploads/UploadAdapter.d.ts +34 -0
- package/dist/uploads/UploadAdapter.d.ts.map +1 -0
- package/dist/uploads/UploadAdapter.js +2 -0
- package/dist/uploads/UploadAdapter.js.map +1 -0
- package/dist/uploads/index.d.ts +3 -0
- package/dist/uploads/index.d.ts.map +1 -0
- package/dist/uploads/index.js +2 -0
- package/dist/uploads/index.js.map +1 -0
- package/dist/uploads/localUpload.d.ts +25 -0
- package/dist/uploads/localUpload.d.ts.map +1 -0
- package/dist/uploads/localUpload.js +65 -0
- package/dist/uploads/localUpload.js.map +1 -0
- package/dist/validation/Validator.d.ts +40 -0
- package/dist/validation/Validator.d.ts.map +1 -0
- package/dist/validation/Validator.js +25 -0
- package/dist/validation/Validator.js.map +1 -0
- package/dist/validation/index.d.ts +5 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +5 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/rules.d.ts +9 -0
- package/dist/validation/rules.d.ts.map +1 -0
- package/dist/validation/rules.js +61 -0
- package/dist/validation/rules.js.map +1 -0
- package/dist/validation/runValidators.d.ts +30 -0
- package/dist/validation/runValidators.d.ts.map +1 -0
- package/dist/validation/runValidators.js +438 -0
- package/dist/validation/runValidators.js.map +1 -0
- package/dist/validation/uniqueValidator.d.ts +61 -0
- package/dist/validation/uniqueValidator.d.ts.map +1 -0
- package/dist/validation/uniqueValidator.js +80 -0
- package/dist/validation/uniqueValidator.js.map +1 -0
- package/dist/vite.d.ts +19 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +696 -0
- package/dist/vite.js.map +1 -0
- package/dist/widgets/index.d.ts +2 -0
- package/dist/widgets/index.d.ts.map +1 -0
- package/dist/widgets/index.js +7 -0
- package/dist/widgets/index.js.map +1 -0
- package/dist/widgets/registry.d.ts +32 -0
- package/dist/widgets/registry.d.ts.map +1 -0
- package/dist/widgets/registry.js +17 -0
- package/dist/widgets/registry.js.map +1 -0
- package/package.json +101 -0
- package/src/Cluster.test.ts +283 -0
- package/src/Cluster.ts +83 -0
- package/src/Column.test.ts +140 -0
- package/src/Column.ts +612 -0
- package/src/Global.test.ts +367 -0
- package/src/Global.ts +169 -0
- package/src/Page.test.ts +50 -0
- package/src/Page.ts +139 -0
- package/src/Pilotiq.test.ts +47 -0
- package/src/Pilotiq.ts +705 -0
- package/src/PilotiqRegistry.ts +36 -0
- package/src/PilotiqServiceProvider.ts +69 -0
- package/src/RelationManager.test.ts +400 -0
- package/src/RelationManager.ts +527 -0
- package/src/RenderHook.test.ts +252 -0
- package/src/RenderHook.ts +226 -0
- package/src/Resource.test.ts +240 -0
- package/src/Resource.ts +439 -0
- package/src/RightPanel.test.ts +202 -0
- package/src/RightPanel.ts +132 -0
- package/src/Tab.test.ts +91 -0
- package/src/Tab.ts +156 -0
- package/src/UserMenuItem.ts +145 -0
- package/src/actions/Action.test.ts +2479 -0
- package/src/actions/Action.ts +2124 -0
- package/src/actions/ActionGroup.test.ts +112 -0
- package/src/actions/ActionGroup.ts +173 -0
- package/src/actions/attachFactory.ts +172 -0
- package/src/actions/exportFactory.ts +215 -0
- package/src/actions/importFactory.ts +222 -0
- package/src/actions/index.ts +17 -0
- package/src/applyPageHooks.test.ts +298 -0
- package/src/applyPageHooks.ts +242 -0
- package/src/authorization.test.ts +483 -0
- package/src/breadcrumbs.test.ts +238 -0
- package/src/cells/coerce.test.ts +85 -0
- package/src/cells/coerce.ts +84 -0
- package/src/clusterPaths.ts +35 -0
- package/src/columns/BadgeColumn.test.ts +54 -0
- package/src/columns/BadgeColumn.ts +32 -0
- package/src/columns/BooleanColumn.test.ts +41 -0
- package/src/columns/BooleanColumn.ts +18 -0
- package/src/columns/ColorColumn.test.ts +37 -0
- package/src/columns/ColorColumn.ts +38 -0
- package/src/columns/IconColumn.test.ts +54 -0
- package/src/columns/IconColumn.ts +37 -0
- package/src/columns/ImageColumn.test.ts +41 -0
- package/src/columns/ImageColumn.ts +28 -0
- package/src/columns/SelectColumn.ts +60 -0
- package/src/columns/TextColumn.test.ts +190 -0
- package/src/columns/TextColumn.ts +20 -0
- package/src/columns/TextInputColumn.ts +68 -0
- package/src/columns/ToggleColumn.ts +46 -0
- package/src/columns/editableColumns.test.ts +193 -0
- package/src/columns/index.ts +9 -0
- package/src/defaultGlobalPages.ts +95 -0
- package/src/defaultPages.test.ts +634 -0
- package/src/defaultPages.ts +614 -0
- package/src/defaultViewPage.test.ts +147 -0
- package/src/elements/Form.test.ts +223 -0
- package/src/elements/Form.ts +397 -0
- package/src/elements/ListTabs.ts +28 -0
- package/src/elements/Table.test.ts +422 -0
- package/src/elements/Table.ts +816 -0
- package/src/elements/TableGroup.test.ts +149 -0
- package/src/elements/TableGroup.ts +199 -0
- package/src/elements/dispatchAction.test.ts +463 -0
- package/src/elements/dispatchAction.ts +355 -0
- package/src/elements/dispatchForm.test.ts +455 -0
- package/src/elements/dispatchForm.ts +1855 -0
- package/src/elements/dispatchTable.test.ts +1247 -0
- package/src/elements/dispatchTable.ts +666 -0
- package/src/elements/index.ts +21 -0
- package/src/entries/BadgeEntry.ts +39 -0
- package/src/entries/CodeEntry.test.ts +40 -0
- package/src/entries/CodeEntry.ts +52 -0
- package/src/entries/ColorEntry.ts +63 -0
- package/src/entries/ComponentEntry.test.ts +173 -0
- package/src/entries/ComponentEntry.ts +95 -0
- package/src/entries/Entry.ts +304 -0
- package/src/entries/IconEntry.ts +49 -0
- package/src/entries/ImageEntry.ts +61 -0
- package/src/entries/KeyValueEntry.ts +47 -0
- package/src/entries/RepeatableEntry.test.ts +239 -0
- package/src/entries/RepeatableEntry.ts +173 -0
- package/src/entries/TextEntry.test.ts +394 -0
- package/src/entries/TextEntry.ts +60 -0
- package/src/entries/index.ts +12 -0
- package/src/entries/leaves.test.ts +306 -0
- package/src/entries/registry.ts +54 -0
- package/src/fields/BuilderField.test.ts +1188 -0
- package/src/fields/BuilderField.ts +568 -0
- package/src/fields/BuilderRelationship.test.ts +811 -0
- package/src/fields/CheckboxField.test.ts +44 -0
- package/src/fields/CheckboxField.ts +27 -0
- package/src/fields/CheckboxListField.test.ts +99 -0
- package/src/fields/CheckboxListField.ts +66 -0
- package/src/fields/ColorPickerField.test.ts +33 -0
- package/src/fields/ColorPickerField.ts +25 -0
- package/src/fields/DateField.ts +54 -0
- package/src/fields/DateTimeField.test.ts +55 -0
- package/src/fields/EmailField.ts +16 -0
- package/src/fields/Field.test.ts +639 -0
- package/src/fields/Field.ts +773 -0
- package/src/fields/FileUploadField.test.ts +97 -0
- package/src/fields/FileUploadField.ts +71 -0
- package/src/fields/HiddenField.test.ts +27 -0
- package/src/fields/HiddenField.ts +28 -0
- package/src/fields/KeyValueField.test.ts +105 -0
- package/src/fields/KeyValueField.ts +55 -0
- package/src/fields/MarkdownField.test.ts +167 -0
- package/src/fields/MarkdownField.ts +151 -0
- package/src/fields/NumberField.ts +33 -0
- package/src/fields/RadioField.test.ts +94 -0
- package/src/fields/RadioField.ts +67 -0
- package/src/fields/RepeaterField.test.ts +1806 -0
- package/src/fields/RepeaterField.ts +791 -0
- package/src/fields/RepeaterRelationship.test.ts +1630 -0
- package/src/fields/RepeaterSimple.test.ts +248 -0
- package/src/fields/RowButton.test.ts +149 -0
- package/src/fields/RowButton.ts +125 -0
- package/src/fields/SelectField.test.ts +192 -0
- package/src/fields/SelectField.ts +235 -0
- package/src/fields/SliderField.test.ts +50 -0
- package/src/fields/SliderField.ts +53 -0
- package/src/fields/SlugField.ts +24 -0
- package/src/fields/TagsInputField.test.ts +154 -0
- package/src/fields/TagsInputField.ts +133 -0
- package/src/fields/TextField.ts +24 -0
- package/src/fields/TextareaField.test.ts +58 -0
- package/src/fields/TextareaField.ts +59 -0
- package/src/fields/ToggleButtonsField.test.ts +106 -0
- package/src/fields/ToggleButtonsField.ts +59 -0
- package/src/fields/ToggleField.ts +16 -0
- package/src/fields/disableOptionsWhenSelectedInSiblingRepeaterItems.test.ts +319 -0
- package/src/fields/optionsResolver.ts +95 -0
- package/src/fields/resolveField.ts +28 -0
- package/src/filters/BooleanFilter.ts +35 -0
- package/src/filters/DateRangeFilter.test.ts +194 -0
- package/src/filters/DateRangeFilter.ts +148 -0
- package/src/filters/Filter.test.ts +268 -0
- package/src/filters/Filter.ts +184 -0
- package/src/filters/FormFilter.test.ts +238 -0
- package/src/filters/FormFilter.ts +215 -0
- package/src/filters/MultiSelectFilter.test.ts +119 -0
- package/src/filters/MultiSelectFilter.ts +78 -0
- package/src/filters/QueryBuilderFilter.test.ts +644 -0
- package/src/filters/QueryBuilderFilter.ts +398 -0
- package/src/filters/SelectFilter.ts +46 -0
- package/src/filters/TernaryFilter.test.ts +160 -0
- package/src/filters/TernaryFilter.ts +72 -0
- package/src/filters/TrashedFilter.test.ts +149 -0
- package/src/filters/TrashedFilter.ts +55 -0
- package/src/filters/queryBuilder/BooleanConstraint.ts +31 -0
- package/src/filters/queryBuilder/Constraint.ts +115 -0
- package/src/filters/queryBuilder/DateConstraint.ts +69 -0
- package/src/filters/queryBuilder/NumberConstraint.ts +66 -0
- package/src/filters/queryBuilder/SelectConstraint.ts +72 -0
- package/src/filters/queryBuilder/TextConstraint.ts +65 -0
- package/src/filters/queryBuilder/index.ts +12 -0
- package/src/icons/index.ts +2 -0
- package/src/icons/lucide.ts +204 -0
- package/src/icons/registry.test.ts +56 -0
- package/src/icons/registry.ts +41 -0
- package/src/icons/types.ts +47 -0
- package/src/index.ts +521 -0
- package/src/io/csv.test.ts +142 -0
- package/src/io/csv.ts +170 -0
- package/src/nestedRelationManagerData.test.ts +526 -0
- package/src/notifications/Notification.test.ts +210 -0
- package/src/notifications/Notification.ts +354 -0
- package/src/notifications/broadcast.test.ts +110 -0
- package/src/notifications/broadcast.ts +95 -0
- package/src/notifications/database.test.ts +383 -0
- package/src/notifications/database.ts +398 -0
- package/src/notifications/databaseNotifications.test.ts +187 -0
- package/src/notifications/dispatchNotificationAction.test.ts +341 -0
- package/src/notifications/dispatchNotificationAction.ts +142 -0
- package/src/notifications/flash.test.ts +89 -0
- package/src/notifications/flash.ts +71 -0
- package/src/notifications/index.ts +45 -0
- package/src/notifications/registerBroadcastAuth.test.ts +134 -0
- package/src/notifications/registerBroadcastAuth.ts +100 -0
- package/src/notifications/resolveSavedNotification.test.ts +82 -0
- package/src/notifications/resolveSavedNotification.ts +59 -0
- package/src/notifications/types.ts +93 -0
- package/src/orm/m2mAccessor.ts +66 -0
- package/src/orm/modelDefaults.test.ts +633 -0
- package/src/orm/modelDefaults.ts +632 -0
- package/src/pageData.test.ts +1121 -0
- package/src/pageData.ts +4662 -0
- package/src/plugins/index.ts +1 -0
- package/src/plugins/themeEditor.ts +24 -0
- package/src/react/AppShell.tsx +148 -0
- package/src/react/CommandPalette.tsx +375 -0
- package/src/react/FormStateContext.tsx +398 -0
- package/src/react/HeadHooks.tsx +126 -0
- package/src/react/NotificationActionStrip.tsx +263 -0
- package/src/react/NotificationBell.tsx +426 -0
- package/src/react/RenderHookSlot.tsx +32 -0
- package/src/react/RightSidebar.tsx +257 -0
- package/src/react/RightSidebarContext.tsx +211 -0
- package/src/react/RightSidebarTrigger.tsx +53 -0
- package/src/react/SchemaRenderer.tsx +6128 -0
- package/src/react/SearchTrigger.tsx +46 -0
- package/src/react/ThemeProvider.tsx +93 -0
- package/src/react/ThemeSettingsPage.tsx +579 -0
- package/src/react/ThemeToggle.tsx +20 -0
- package/src/react/Toaster.tsx +158 -0
- package/src/react/UserMenu.tsx +196 -0
- package/src/react/WidgetDataContext.tsx +157 -0
- package/src/react/cells/EditableCell.tsx +376 -0
- package/src/react/fieldJsHandler.test.ts +166 -0
- package/src/react/fieldJsHandler.ts +79 -0
- package/src/react/fields/BuilderInput.tsx +995 -0
- package/src/react/fields/CheckboxInput.tsx +39 -0
- package/src/react/fields/CheckboxListInput.tsx +81 -0
- package/src/react/fields/ColorInput.tsx +51 -0
- package/src/react/fields/DateFieldInput.tsx +70 -0
- package/src/react/fields/DateTimeInput.tsx +42 -0
- package/src/react/fields/FieldShell.tsx +107 -0
- package/src/react/fields/FileUploadInput.tsx +189 -0
- package/src/react/fields/HiddenInput.tsx +17 -0
- package/src/react/fields/KeyValueInput.tsx +200 -0
- package/src/react/fields/MarkdownInput.tsx +333 -0
- package/src/react/fields/RadioInput.tsx +60 -0
- package/src/react/fields/RepeaterInput.test.ts +116 -0
- package/src/react/fields/RepeaterInput.tsx +1313 -0
- package/src/react/fields/SelectFieldInput.tsx +257 -0
- package/src/react/fields/SliderInput.tsx +63 -0
- package/src/react/fields/TagsInput.tsx +265 -0
- package/src/react/fields/TextLikeInput.tsx +54 -0
- package/src/react/fields/ToggleButtonsInput.tsx +60 -0
- package/src/react/fields/ToggleFieldInput.tsx +35 -0
- package/src/react/fields/rowChromeButton.tsx +225 -0
- package/src/react/fields/syncRowGates.test.ts +202 -0
- package/src/react/fields/syncRowGates.ts +66 -0
- package/src/react/formStateHelpers.test.ts +295 -0
- package/src/react/formStateHelpers.ts +218 -0
- package/src/react/hooks/use-mobile.ts +19 -0
- package/src/react/icon-context.tsx +60 -0
- package/src/react/index.ts +85 -0
- package/src/react/layouts/SidebarLayout.tsx +239 -0
- package/src/react/layouts/TopbarLayout.tsx +245 -0
- package/src/react/navigate.tsx +37 -0
- package/src/react/registry.ts +48 -0
- package/src/react/right-panel-registry.tsx +47 -0
- package/src/react/theme-preview/apply.ts +99 -0
- package/src/react/theme-preview/build-html.ts +436 -0
- package/src/react/ui/button.tsx +51 -0
- package/src/react/ui/calendar.tsx +67 -0
- package/src/react/ui/checkbox.tsx +29 -0
- package/src/react/ui/dialog.tsx +108 -0
- package/src/react/ui/dropdown-menu.tsx +97 -0
- package/src/react/ui/input.tsx +20 -0
- package/src/react/ui/label.tsx +21 -0
- package/src/react/ui/popover.tsx +50 -0
- package/src/react/ui/select.tsx +169 -0
- package/src/react/ui/separator.tsx +25 -0
- package/src/react/ui/sheet.tsx +136 -0
- package/src/react/ui/sidebar.tsx +723 -0
- package/src/react/ui/skeleton.tsx +13 -0
- package/src/react/ui/slider.tsx +34 -0
- package/src/react/ui/switch.tsx +28 -0
- package/src/react/ui/table.tsx +105 -0
- package/src/react/ui/tabs.tsx +63 -0
- package/src/react/ui/textarea.tsx +18 -0
- package/src/react/ui/tooltip.tsx +64 -0
- package/src/react/useResizableWidth.ts +139 -0
- package/src/react/utils.ts +6 -0
- package/src/react/widgetRegistry.test.ts +43 -0
- package/src/react/widgetRegistry.ts +50 -0
- package/src/react/widgets/StatsOverviewRenderer.tsx +232 -0
- package/src/react/widgets/TableWidgetRenderer.tsx +231 -0
- package/src/react/widgets/ViewRenderer.tsx +71 -0
- package/src/relationManagerData.test.ts +1146 -0
- package/src/richtext/index.ts +8 -0
- package/src/richtext/registry.ts +89 -0
- package/src/routes-nested-relations.test.ts +676 -0
- package/src/routes-relations.test.ts +972 -0
- package/src/routes.test.ts +1886 -0
- package/src/routes.ts +3262 -0
- package/src/schema/Alert.test.ts +63 -0
- package/src/schema/Alert.ts +49 -0
- package/src/schema/Block.ts +169 -0
- package/src/schema/Breadcrumbs.ts +40 -0
- package/src/schema/Card.ts +35 -0
- package/src/schema/Divider.ts +20 -0
- package/src/schema/Element.ts +219 -0
- package/src/schema/EmptyState.test.ts +37 -0
- package/src/schema/EmptyState.ts +63 -0
- package/src/schema/Fieldset.ts +43 -0
- package/src/schema/Grid.ts +43 -0
- package/src/schema/Group.ts +30 -0
- package/src/schema/Heading.ts +39 -0
- package/src/schema/Html.ts +67 -0
- package/src/schema/Icon.ts +54 -0
- package/src/schema/Image.ts +57 -0
- package/src/schema/LinkTag.ts +41 -0
- package/src/schema/Markdown.ts +85 -0
- package/src/schema/MetaTag.ts +41 -0
- package/src/schema/RelationTabs.ts +71 -0
- package/src/schema/ScriptTag.ts +55 -0
- package/src/schema/Section.ts +143 -0
- package/src/schema/ServerDataElement.test.ts +140 -0
- package/src/schema/ServerDataElement.ts +156 -0
- package/src/schema/Split.ts +50 -0
- package/src/schema/Stat.test.ts +118 -0
- package/src/schema/Stat.ts +154 -0
- package/src/schema/StatsOverview.test.ts +141 -0
- package/src/schema/StatsOverview.ts +119 -0
- package/src/schema/StyleTag.ts +35 -0
- package/src/schema/TableWidget.test.ts +297 -0
- package/src/schema/TableWidget.ts +289 -0
- package/src/schema/Tabs.ts +79 -0
- package/src/schema/Text.ts +58 -0
- package/src/schema/UnorderedList.ts +49 -0
- package/src/schema/View.test.ts +111 -0
- package/src/schema/View.ts +127 -0
- package/src/schema/Wizard.ts +108 -0
- package/src/schema/containers.test.ts +446 -0
- package/src/schema/headTags.test.ts +134 -0
- package/src/schema/index.ts +39 -0
- package/src/schema/primes.test.ts +269 -0
- package/src/schema/resolveSchema.test.ts +329 -0
- package/src/schema/resolveSchema.ts +807 -0
- package/src/schema/sanitize.ts +49 -0
- package/src/search.test.ts +446 -0
- package/src/search.ts +178 -0
- package/src/sessionFilters.test.ts +352 -0
- package/src/sessionFilters.ts +133 -0
- package/src/summarizers/Summarizer.test.ts +84 -0
- package/src/summarizers/Summarizer.ts +123 -0
- package/src/summarizers/index.ts +11 -0
- package/src/theme/base-colors.ts +68 -0
- package/src/theme/chart-colors.ts +50 -0
- package/src/theme/colors.ts +447 -0
- package/src/theme/generate-css.test.ts +139 -0
- package/src/theme/generate-css.ts +44 -0
- package/src/theme/generate-scale.test.ts +106 -0
- package/src/theme/generate-scale.ts +97 -0
- package/src/theme/icon-map.ts +42 -0
- package/src/theme/index.ts +28 -0
- package/src/theme/migrate.ts +81 -0
- package/src/theme/presets.ts +135 -0
- package/src/theme/radius.ts +18 -0
- package/src/theme/resolve.test.ts +238 -0
- package/src/theme/resolve.ts +96 -0
- package/src/theme/spacing.ts +18 -0
- package/src/theme/theme-colors.ts +88 -0
- package/src/theme/types.ts +125 -0
- package/src/uploads/UploadAdapter.ts +35 -0
- package/src/uploads/index.ts +2 -0
- package/src/uploads/localUpload.test.ts +70 -0
- package/src/uploads/localUpload.ts +84 -0
- package/src/validation/Validator.ts +49 -0
- package/src/validation/index.ts +28 -0
- package/src/validation/rules.ts +78 -0
- package/src/validation/runValidators.ts +435 -0
- package/src/validation/uniqueValidator.test.ts +196 -0
- package/src/validation/uniqueValidator.ts +133 -0
- package/src/validation/validators.test.ts +268 -0
- package/src/vite.ts +758 -0
- package/src/widgets/index.ts +10 -0
- package/src/widgets/registry.ts +45 -0
- package/src/widgets.test.ts +592 -0
- package/tsconfig.build.json +11 -0
- package/tsconfig.json +4 -0
- package/tsconfig.test.json +10 -0
- package/views/react/Dashboard.tsx +27 -0
- package/views/react/Resources/Form.tsx +102 -0
- package/views/react/Resources/Index.tsx +49 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import { persist as persistDatabaseNotification } from './database.js';
|
|
2
|
+
import { push as pushBroadcast, notificationChannel, } from './broadcast.js';
|
|
3
|
+
let _idSeq = 0;
|
|
4
|
+
function nextId() {
|
|
5
|
+
_idSeq += 1;
|
|
6
|
+
return `n-${_idSeq}-${Date.now()}`;
|
|
7
|
+
}
|
|
8
|
+
export class Notification {
|
|
9
|
+
_id;
|
|
10
|
+
_type = 'info';
|
|
11
|
+
_title = '';
|
|
12
|
+
_body;
|
|
13
|
+
_icon;
|
|
14
|
+
_duration;
|
|
15
|
+
_actions = [];
|
|
16
|
+
constructor() { }
|
|
17
|
+
static make(title) {
|
|
18
|
+
const n = new Notification();
|
|
19
|
+
if (title)
|
|
20
|
+
n._title = title;
|
|
21
|
+
return n;
|
|
22
|
+
}
|
|
23
|
+
// ─── Type sugar ───────────────────────────────────────
|
|
24
|
+
info() { this._type = 'info'; return this; }
|
|
25
|
+
success() { this._type = 'success'; return this; }
|
|
26
|
+
warning() { this._type = 'warning'; return this; }
|
|
27
|
+
error() { this._type = 'error'; return this; }
|
|
28
|
+
// ─── Content ──────────────────────────────────────────
|
|
29
|
+
title(s) { this._title = s; return this; }
|
|
30
|
+
body(s) { this._body = s; return this; }
|
|
31
|
+
icon(i) { this._icon = i; return this; }
|
|
32
|
+
// ─── Behavior ─────────────────────────────────────────
|
|
33
|
+
/** Auto-dismiss timeout in ms. `0` means persistent. Default 5000. */
|
|
34
|
+
duration(ms) { this._duration = ms; return this; }
|
|
35
|
+
/** Override the auto-generated id (rarely needed). */
|
|
36
|
+
id(s) { this._id = s; return this; }
|
|
37
|
+
/**
|
|
38
|
+
* Filament-style action strip — buttons rendered below the body on
|
|
39
|
+
* both transient toasts and persisted bell rows.
|
|
40
|
+
*
|
|
41
|
+
* Three serializable dispatch modes:
|
|
42
|
+
* - `Action.make('view').url('/p/123')` — href anchor
|
|
43
|
+
* - `Action.make('post').method('post').action(u)` — form-POST
|
|
44
|
+
* - `Action.make('archive').handler('name').payload({…})`
|
|
45
|
+
* — registered
|
|
46
|
+
* handler
|
|
47
|
+
*
|
|
48
|
+
* Closure handlers (`.handler(async ctx => …)`) work on transient
|
|
49
|
+
* toasts (dispatched against the page's `_action/:name`) but are
|
|
50
|
+
* rejected at `sendToDatabase()` time — closures don't round-trip
|
|
51
|
+
* through the `data` JSON column. Use the named-registry path
|
|
52
|
+
* (`Pilotiq.notificationHandlers({…})`) for persistent rows.
|
|
53
|
+
*
|
|
54
|
+
* Pair with `.markAsRead()` on any action to flip the row's
|
|
55
|
+
* `read_at` when the action fires:
|
|
56
|
+
*
|
|
57
|
+
* Notification.make('New project assigned')
|
|
58
|
+
* .actions([
|
|
59
|
+
* Action.make('view').url('/p/123').markAsRead(),
|
|
60
|
+
* Action.make('archive').handler('archive-project')
|
|
61
|
+
* .payload({ projectId: 123 }).markAsRead(),
|
|
62
|
+
* ])
|
|
63
|
+
* .sendToDatabase(currentUser)
|
|
64
|
+
*/
|
|
65
|
+
actions(actions) {
|
|
66
|
+
this._actions = actions;
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
/** Internal — exposed so the toaster / dispatcher can read the
|
|
70
|
+
* authored Action instances directly when needed (rare). Most
|
|
71
|
+
* consumers should read from `toMeta().actions` instead. */
|
|
72
|
+
getActions() { return this._actions; }
|
|
73
|
+
/**
|
|
74
|
+
* Optional click-through URL. When set on a row that's been written
|
|
75
|
+
* to the database via `sendToDatabase()`, the bell-icon dropdown
|
|
76
|
+
* navigates here when the row is clicked (and marks it read in the
|
|
77
|
+
* same step). Ignored on transient toasts.
|
|
78
|
+
*/
|
|
79
|
+
url(href) { this._url = href; return this; }
|
|
80
|
+
_url;
|
|
81
|
+
// ─── Serialization ────────────────────────────────────
|
|
82
|
+
toMeta() {
|
|
83
|
+
const actions = this._actions.length > 0
|
|
84
|
+
? this._actions.map(a => serializeForNotification(a, { transient: true }))
|
|
85
|
+
: undefined;
|
|
86
|
+
return {
|
|
87
|
+
id: this._id ?? nextId(),
|
|
88
|
+
type: this._type,
|
|
89
|
+
title: this._title,
|
|
90
|
+
...(this._body !== undefined ? { body: this._body } : {}),
|
|
91
|
+
...(this._icon !== undefined ? { icon: this._icon } : {}),
|
|
92
|
+
...(this._duration !== undefined ? { duration: this._duration } : {}),
|
|
93
|
+
...(actions !== undefined ? { actions } : {}),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Build the JSON payload stored in the `notification.data` column.
|
|
98
|
+
* Mirrors the toast meta but always includes `type` (so the bell
|
|
99
|
+
* dropdown can apply the matching tint chip) and `url` when set.
|
|
100
|
+
*
|
|
101
|
+
* Action strip: closure-handler actions are rejected here — their
|
|
102
|
+
* dispatch target only exists on the page that authored the notify,
|
|
103
|
+
* and the row may outlive that page by days. The named-registry path
|
|
104
|
+
* (`Pilotiq.notificationHandlers({…})`) is the persistence-safe
|
|
105
|
+
* escape hatch.
|
|
106
|
+
*/
|
|
107
|
+
toDatabase() {
|
|
108
|
+
const data = {
|
|
109
|
+
type: this._type,
|
|
110
|
+
title: this._title,
|
|
111
|
+
};
|
|
112
|
+
if (this._body !== undefined)
|
|
113
|
+
data['body'] = this._body;
|
|
114
|
+
if (this._icon !== undefined)
|
|
115
|
+
data['icon'] = this._icon;
|
|
116
|
+
if (this._url !== undefined)
|
|
117
|
+
data['url'] = this._url;
|
|
118
|
+
if (this._actions.length > 0) {
|
|
119
|
+
data['actions'] = this._actions.map(a => serializeForNotification(a, { transient: false }));
|
|
120
|
+
}
|
|
121
|
+
return data;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Persist this notification on the `notification` table for
|
|
125
|
+
* `recipient`. The bell-icon dropdown surfaces it on the recipient's
|
|
126
|
+
* next poll (or immediately on broadcast — see Phase 2).
|
|
127
|
+
*
|
|
128
|
+
* Throws when no `@rudderjs/orm` adapter is registered, with a clear
|
|
129
|
+
* message pointing at the providers list.
|
|
130
|
+
*
|
|
131
|
+
* `notifiableType` lets the caller override the column value when an
|
|
132
|
+
* app stores notifications scoped to a non-`'users'` notifiable
|
|
133
|
+
* (teams, projects, etc). Default `'users'` matches the table layout
|
|
134
|
+
* `@rudderjs/notification`'s `DatabaseChannel` writes.
|
|
135
|
+
*
|
|
136
|
+
* await Notification.make('Saved successfully')
|
|
137
|
+
* .body('Changes to the post have been saved.')
|
|
138
|
+
* .success()
|
|
139
|
+
* .sendToDatabase(currentUser)
|
|
140
|
+
*/
|
|
141
|
+
async sendToDatabase(recipient, opts = {}) {
|
|
142
|
+
const data = this.toDatabase();
|
|
143
|
+
const result = await persistDatabaseNotification({
|
|
144
|
+
notifiableType: opts.notifiableType ?? 'users',
|
|
145
|
+
notifiableId: String(recipient.id),
|
|
146
|
+
data,
|
|
147
|
+
});
|
|
148
|
+
// Phase 2: push the same payload over WebSocket so the bell client
|
|
149
|
+
// can refetch immediately. Soft-fails when `@rudderjs/broadcast`
|
|
150
|
+
// isn't installed (or when the provider hasn't booted) — apps still
|
|
151
|
+
// get the persisted row via polling.
|
|
152
|
+
if (opts.broadcast) {
|
|
153
|
+
await pushBroadcast({
|
|
154
|
+
recipientId: recipient.id,
|
|
155
|
+
payload: { ...data, id: result.id, createdAt: Date.now() },
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
return result;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Push this notification over WebSocket without persisting it. Pairs
|
|
162
|
+
* with `sendToDatabase()` (or runs standalone for ephemeral pushes
|
|
163
|
+
* like "user-X started typing"). Soft-fails when `@rudderjs/broadcast`
|
|
164
|
+
* isn't installed.
|
|
165
|
+
*
|
|
166
|
+
* Channel: `private-pilotiq-notifications.${recipient.id}`. The bell
|
|
167
|
+
* client subscribes to this channel automatically when broadcast is
|
|
168
|
+
* enabled in `Pilotiq.databaseNotifications({ broadcast: true })`.
|
|
169
|
+
*
|
|
170
|
+
* await Notification.make('Live update')
|
|
171
|
+
* .info()
|
|
172
|
+
* .broadcast(currentUser)
|
|
173
|
+
*/
|
|
174
|
+
async broadcast(recipient) {
|
|
175
|
+
return pushBroadcast({
|
|
176
|
+
recipientId: recipient.id,
|
|
177
|
+
payload: this.toDatabase(),
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/** Re-export so callers can build channel names without reaching into
|
|
182
|
+
* the internal broadcast module. Useful for apps that want to push
|
|
183
|
+
* custom events from their own code (e.g. presence pings). */
|
|
184
|
+
export { notificationChannel };
|
|
185
|
+
/** @internal — reset id sequence; tests use this for stability. */
|
|
186
|
+
export function _resetNotificationIdSeq() {
|
|
187
|
+
_idSeq = 0;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Walk an `Action` instance and emit the slim `NotificationActionMeta`
|
|
191
|
+
* wire shape — the same format on transient toasts (`toMeta()`) and
|
|
192
|
+
* persisted bell rows (`toDatabase()`).
|
|
193
|
+
*
|
|
194
|
+
* Rejects Action features that don't fit a notification context:
|
|
195
|
+
*
|
|
196
|
+
* - Modal / form-modal actions (`.schema()`, `.modal*()`,
|
|
197
|
+
* `.slideOver()`) — notifications aren't Resource pages, the modal
|
|
198
|
+
* dispatcher's row/page context isn't available.
|
|
199
|
+
* - Submit-button actions (`.submit()` / `.formField()`) — there's no
|
|
200
|
+
* surrounding `<form>` to submit.
|
|
201
|
+
* - Bulk placement — notifications are per-row, no `records[]`.
|
|
202
|
+
* - Visibility callbacks (`.visible(fn)` / `.disabled(fn)`) — need
|
|
203
|
+
* a render context the notification doesn't carry. Use the
|
|
204
|
+
* server-side filter (only emit the action when relevant) instead.
|
|
205
|
+
*
|
|
206
|
+
* `transient: true` (used by `toMeta()`) tolerates closure handlers —
|
|
207
|
+
* they dispatch through the current page's `_action/:name` endpoint.
|
|
208
|
+
* `transient: false` (used by `toDatabase()`) rejects closures with a
|
|
209
|
+
* clear message pointing at the named-registry pattern.
|
|
210
|
+
*/
|
|
211
|
+
export function serializeForNotification(action, opts) {
|
|
212
|
+
// Reject incompatible Action features at config time (works on both
|
|
213
|
+
// transports; the row's wire shape can't carry these even if we
|
|
214
|
+
// wanted it to).
|
|
215
|
+
if (action.hasModal()) {
|
|
216
|
+
throw new Error(`[Pilotiq] Notification.actions: action "${action.name}" carries a modal-form ` +
|
|
217
|
+
`(.schema() / .modalHeading() / .slideOver()). Modal-form actions aren't supported ` +
|
|
218
|
+
`inside notifications in v1 — drop the modal or move the workflow to a Resource action.`);
|
|
219
|
+
}
|
|
220
|
+
if (action.isSubmit()) {
|
|
221
|
+
throw new Error(`[Pilotiq] Notification.actions: action "${action.name}" is a submit button (.submit()). ` +
|
|
222
|
+
`Notifications have no surrounding <form>; use .url() / .method() / .handler() instead.`);
|
|
223
|
+
}
|
|
224
|
+
if (action.getPlacement() === 'bulk') {
|
|
225
|
+
throw new Error(`[Pilotiq] Notification.actions: action "${action.name}" is bulk-placed. ` +
|
|
226
|
+
`Notifications are per-row — bulk placement has no recipient context.`);
|
|
227
|
+
}
|
|
228
|
+
const handlerFn = action.getHandler();
|
|
229
|
+
const handlerName = action.getHandlerName();
|
|
230
|
+
const href = action.getHref();
|
|
231
|
+
const method = action.getMethod();
|
|
232
|
+
const actionUrl = action.getActionUrl();
|
|
233
|
+
// Closure handler on a persisted row — reject loudly. The caller
|
|
234
|
+
// explicitly asked to `sendToDatabase`; silently dropping the action
|
|
235
|
+
// would surprise.
|
|
236
|
+
if (!opts.transient && handlerFn && !handlerName) {
|
|
237
|
+
throw new Error(`[Pilotiq] Notification.actions: action "${action.name}" has a closure handler ` +
|
|
238
|
+
`but is being persisted via .sendToDatabase(). Closures don't survive serialization. ` +
|
|
239
|
+
`Use Pilotiq.notificationHandlers({ '${action.name}': async ctx => … }) and call ` +
|
|
240
|
+
`Action.handler('${action.name}') instead.`);
|
|
241
|
+
}
|
|
242
|
+
const meta = {
|
|
243
|
+
name: action.name,
|
|
244
|
+
label: action.getLabel(),
|
|
245
|
+
};
|
|
246
|
+
// Dispatch mode — exactly one of url / post / handler. Precedence
|
|
247
|
+
// matches the Action surface: explicit href wins over method-form.
|
|
248
|
+
if (href) {
|
|
249
|
+
meta.url = href;
|
|
250
|
+
}
|
|
251
|
+
else if (method && actionUrl) {
|
|
252
|
+
meta.post = actionUrl;
|
|
253
|
+
}
|
|
254
|
+
else if (handlerName) {
|
|
255
|
+
meta.handler = handlerName;
|
|
256
|
+
const payload = action.getPayload();
|
|
257
|
+
if (Object.keys(payload).length > 0)
|
|
258
|
+
meta.payload = payload;
|
|
259
|
+
}
|
|
260
|
+
else if (handlerFn && opts.transient) {
|
|
261
|
+
// Transient toast with a closure handler — defer dispatch to the
|
|
262
|
+
// current page's `_action/:name`. Wire shape doesn't carry the
|
|
263
|
+
// closure itself; the toaster reads `Notification.getActions()`
|
|
264
|
+
// for closures and falls back to the page-level dispatch URL.
|
|
265
|
+
meta.handler = action.name;
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
throw new Error(`[Pilotiq] Notification.actions: action "${action.name}" has no dispatch target. ` +
|
|
269
|
+
`Set one of .url() / .method().action() / .handler(closureOrName).`);
|
|
270
|
+
}
|
|
271
|
+
// Chrome — copy through the subset that makes sense in a strip.
|
|
272
|
+
const color = action.getColor();
|
|
273
|
+
const icon = action.getIcon();
|
|
274
|
+
const outlined = action.isOutlined();
|
|
275
|
+
const size = action.getSize();
|
|
276
|
+
if (color !== undefined)
|
|
277
|
+
meta.color = color;
|
|
278
|
+
if (icon !== undefined)
|
|
279
|
+
meta.icon = icon;
|
|
280
|
+
if (outlined)
|
|
281
|
+
meta.outlined = true;
|
|
282
|
+
if (size !== undefined)
|
|
283
|
+
meta.size = size;
|
|
284
|
+
if (action.isOpenUrlInNewTab())
|
|
285
|
+
meta.openUrlInNewTab = true;
|
|
286
|
+
if (action.isMarkAsReadOnFire())
|
|
287
|
+
meta.markAsRead = true;
|
|
288
|
+
return meta;
|
|
289
|
+
}
|
|
290
|
+
//# sourceMappingURL=Notification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Notification.js","sourceRoot":"","sources":["../../src/notifications/Notification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Broadcast-backed notifications — server-side push helpers.
|
|
3
|
+
*
|
|
4
|
+
* Phase 2 of the notifications plan. Pairs with `database.ts` (Phase 1):
|
|
5
|
+
* `database.ts` writes a row, `broadcast.ts` pushes the same payload to
|
|
6
|
+
* the recipient's private WebSocket channel so the bell-icon dropdown
|
|
7
|
+
* can refetch immediately instead of waiting on its polling interval.
|
|
8
|
+
*
|
|
9
|
+
* `@rudderjs/broadcast` is a runtime soft-import — pilotiq has no hard
|
|
10
|
+
* dependency on it. When the host app hasn't installed broadcast (or
|
|
11
|
+
* the provider hasn't booted), `push()` resolves to a clean no-op so
|
|
12
|
+
* apps that opt into the database surface only stay quiet.
|
|
13
|
+
*
|
|
14
|
+
* Channel naming convention: `private-pilotiq-notifications.${userId}`.
|
|
15
|
+
* Auth callbacks register at panel boot (`registerBroadcastAuth` in
|
|
16
|
+
* `routes.ts`) and gate subscriptions on
|
|
17
|
+
* `pilotiq.resolveUser(req).id === channel.userId`.
|
|
18
|
+
*/
|
|
19
|
+
import type { DatabaseNotificationMeta } from './database.js';
|
|
20
|
+
/** Internal cached snapshot of `@rudderjs/broadcast`'s public surface.
|
|
21
|
+
* We only need the `broadcast` fn from the package — auth registration
|
|
22
|
+
* goes through the same module via a separate path in `routes.ts`. */
|
|
23
|
+
interface BroadcastModule {
|
|
24
|
+
broadcast(channel: string, event: string, data: unknown): void;
|
|
25
|
+
}
|
|
26
|
+
/** Build the private channel name for a recipient. Mirrors the constant
|
|
27
|
+
* in `routes.ts` so the boot-time auth registration and the runtime
|
|
28
|
+
* push agree on the shape. Exported so the client renderer's
|
|
29
|
+
* channel-name calculation can import the same helper. */
|
|
30
|
+
export declare function notificationChannel(userId: string | number): string;
|
|
31
|
+
/** Standard event name we push for new-row events. The bell client
|
|
32
|
+
* subscribes to this event and re-fetches the list when it fires. */
|
|
33
|
+
export declare const NOTIFICATION_CREATED_EVENT = "notification.created";
|
|
34
|
+
export interface PushOptions {
|
|
35
|
+
/** Recipient identity — typically the user.id used as `notifiable_id`. */
|
|
36
|
+
recipientId: string | number;
|
|
37
|
+
/** Optional override for the channel name (advanced). Defaults to
|
|
38
|
+
* `notificationChannel(recipientId)`. */
|
|
39
|
+
channel?: string;
|
|
40
|
+
/** Optional override for the event name. Defaults to
|
|
41
|
+
* `NOTIFICATION_CREATED_EVENT`. */
|
|
42
|
+
event?: string;
|
|
43
|
+
/** The payload to push. Typically the same `DatabaseNotificationMeta`
|
|
44
|
+
* shape returned by the list endpoint, plus any free-form keys. */
|
|
45
|
+
payload: DatabaseNotificationMeta | Record<string, unknown>;
|
|
46
|
+
}
|
|
47
|
+
/** Push a notification event to the recipient's private channel. Soft-fails
|
|
48
|
+
* when `@rudderjs/broadcast` isn't installed — apps that haven't enabled
|
|
49
|
+
* broadcast still work; the bell falls back to polling. */
|
|
50
|
+
export declare function push(opts: PushOptions): Promise<{
|
|
51
|
+
ok: boolean;
|
|
52
|
+
}>;
|
|
53
|
+
/** @internal — test seam. Inject a fake broadcast module (or `null` to
|
|
54
|
+
* mimic "package not installed"). Pass `undefined` to clear and fall
|
|
55
|
+
* back to the dynamic import. */
|
|
56
|
+
export declare function _setTestBroadcast(mod: BroadcastModule | null | undefined): void;
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=broadcast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/notifications/broadcast.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAA;AAE7D;;uEAEuE;AACvE,UAAU,eAAe;IACvB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CAC/D;AAqBD;;;2DAG2D;AAC3D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAEnE;AAED;sEACsE;AACtE,eAAO,MAAM,0BAA0B,yBAAyB,CAAA;AAEhE,MAAM,WAAW,WAAW;IAC1B,0EAA0E;IAC1E,WAAW,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B;8CAC0C;IAC1C,OAAO,CAAC,EAAK,MAAM,CAAA;IACnB;wCACoC;IACpC,KAAK,CAAC,EAAO,MAAM,CAAA;IACnB;wEACoE;IACpE,OAAO,EAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChE;AAED;;4DAE4D;AAC5D,wBAAsB,IAAI,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC,CAWtE;AAED;;kCAEkC;AAClC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAE/E"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Broadcast-backed notifications — server-side push helpers.
|
|
3
|
+
*
|
|
4
|
+
* Phase 2 of the notifications plan. Pairs with `database.ts` (Phase 1):
|
|
5
|
+
* `database.ts` writes a row, `broadcast.ts` pushes the same payload to
|
|
6
|
+
* the recipient's private WebSocket channel so the bell-icon dropdown
|
|
7
|
+
* can refetch immediately instead of waiting on its polling interval.
|
|
8
|
+
*
|
|
9
|
+
* `@rudderjs/broadcast` is a runtime soft-import — pilotiq has no hard
|
|
10
|
+
* dependency on it. When the host app hasn't installed broadcast (or
|
|
11
|
+
* the provider hasn't booted), `push()` resolves to a clean no-op so
|
|
12
|
+
* apps that opt into the database surface only stay quiet.
|
|
13
|
+
*
|
|
14
|
+
* Channel naming convention: `private-pilotiq-notifications.${userId}`.
|
|
15
|
+
* Auth callbacks register at panel boot (`registerBroadcastAuth` in
|
|
16
|
+
* `routes.ts`) and gate subscriptions on
|
|
17
|
+
* `pilotiq.resolveUser(req).id === channel.userId`.
|
|
18
|
+
*/
|
|
19
|
+
let _testModule = 'unset';
|
|
20
|
+
/** Soft-resolve the broadcast module. Returns `null` when the package
|
|
21
|
+
* isn't installed OR when `BroadcastingProvider` hasn't booted (the
|
|
22
|
+
* `broadcast()` fn is a no-op until then, but we still want to import
|
|
23
|
+
* the module in case the provider is wired up later in the request
|
|
24
|
+
* lifecycle). */
|
|
25
|
+
async function loadBroadcast() {
|
|
26
|
+
if (_testModule !== 'unset')
|
|
27
|
+
return _testModule;
|
|
28
|
+
const moduleName = '@rudderjs/broadcast';
|
|
29
|
+
try {
|
|
30
|
+
const mod = await import(/* @vite-ignore */ moduleName);
|
|
31
|
+
if (typeof mod.broadcast !== 'function')
|
|
32
|
+
return null;
|
|
33
|
+
return mod;
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/** Build the private channel name for a recipient. Mirrors the constant
|
|
40
|
+
* in `routes.ts` so the boot-time auth registration and the runtime
|
|
41
|
+
* push agree on the shape. Exported so the client renderer's
|
|
42
|
+
* channel-name calculation can import the same helper. */
|
|
43
|
+
export function notificationChannel(userId) {
|
|
44
|
+
return `private-pilotiq-notifications.${String(userId)}`;
|
|
45
|
+
}
|
|
46
|
+
/** Standard event name we push for new-row events. The bell client
|
|
47
|
+
* subscribes to this event and re-fetches the list when it fires. */
|
|
48
|
+
export const NOTIFICATION_CREATED_EVENT = 'notification.created';
|
|
49
|
+
/** Push a notification event to the recipient's private channel. Soft-fails
|
|
50
|
+
* when `@rudderjs/broadcast` isn't installed — apps that haven't enabled
|
|
51
|
+
* broadcast still work; the bell falls back to polling. */
|
|
52
|
+
export async function push(opts) {
|
|
53
|
+
const mod = await loadBroadcast();
|
|
54
|
+
if (!mod)
|
|
55
|
+
return { ok: false };
|
|
56
|
+
const channel = opts.channel ?? notificationChannel(opts.recipientId);
|
|
57
|
+
const event = opts.event ?? NOTIFICATION_CREATED_EVENT;
|
|
58
|
+
try {
|
|
59
|
+
mod.broadcast(channel, event, opts.payload);
|
|
60
|
+
return { ok: true };
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return { ok: false };
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/** @internal — test seam. Inject a fake broadcast module (or `null` to
|
|
67
|
+
* mimic "package not installed"). Pass `undefined` to clear and fall
|
|
68
|
+
* back to the dynamic import. */
|
|
69
|
+
export function _setTestBroadcast(mod) {
|
|
70
|
+
_testModule = mod === undefined ? 'unset' : mod;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=broadcast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/notifications/broadcast.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAWH,IAAI,WAAW,GAAqC,OAAO,CAAA;AAE3D;;;;kBAIkB;AAClB,KAAK,UAAU,aAAa;IAC1B,IAAI,WAAW,KAAK,OAAO;QAAE,OAAO,WAAW,CAAA;IAC/C,MAAM,UAAU,GAAG,qBAAqB,CAAA;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,UAAU,CAA6B,CAAA;QACnF,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,UAAU;YAAE,OAAO,IAAI,CAAA;QACpD,OAAO,GAAsB,CAAA;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED;;;2DAG2D;AAC3D,MAAM,UAAU,mBAAmB,CAAC,MAAuB;IACzD,OAAO,iCAAiC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAA;AAC1D,CAAC;AAED;sEACsE;AACtE,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAA;AAgBhE;;4DAE4D;AAC5D,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAiB;IAC1C,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAA;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;IAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACrE,MAAM,KAAK,GAAK,IAAI,CAAC,KAAK,IAAM,0BAA0B,CAAA;IAC1D,IAAI,CAAC;QACH,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;IACtB,CAAC;AACH,CAAC;AAED;;kCAEkC;AAClC,MAAM,UAAU,iBAAiB,CAAC,GAAuC;IACvE,WAAW,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AACjD,CAAC"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database-backed notifications — server-side store helpers.
|
|
3
|
+
*
|
|
4
|
+
* Pilotiq doesn't ship a Prisma model; we read/write the
|
|
5
|
+
* `notification` table that `@rudderjs/notification`'s
|
|
6
|
+
* `NotificationProvider` publishes (`prisma/schema/notification.prisma`).
|
|
7
|
+
* Apps that want bell-icon notifications add `NotificationProvider` to
|
|
8
|
+
* their providers list and run `prisma generate`/`db push`; pilotiq
|
|
9
|
+
* then queries the same table via `@rudderjs/orm`'s `ModelRegistry`
|
|
10
|
+
* adapter so the wire shape matches what
|
|
11
|
+
* `Notifier.send(user, new MyNotification())` already writes.
|
|
12
|
+
*
|
|
13
|
+
* `@rudderjs/orm` is a runtime soft-import — pilotiq has no hard
|
|
14
|
+
* dependency on it. When the host app hasn't installed orm (or no
|
|
15
|
+
* adapter is registered), every helper resolves to a clean
|
|
16
|
+
* "store unavailable" sentinel rather than throwing.
|
|
17
|
+
*/
|
|
18
|
+
import type { NotificationMeta, NotificationType } from './Notification.js';
|
|
19
|
+
import type { NotificationActionMeta } from './types.js';
|
|
20
|
+
/** Wire shape returned by the list endpoint to the bell client. */
|
|
21
|
+
export interface DatabaseNotificationMeta {
|
|
22
|
+
/** Stable PK from the `notification.id` column. */
|
|
23
|
+
id: string;
|
|
24
|
+
/** Unix-ms timestamp the row was created. */
|
|
25
|
+
createdAt: number;
|
|
26
|
+
/** ISO `read_at` timestamp; absent when unread. */
|
|
27
|
+
readAt?: string;
|
|
28
|
+
/** Display title — read from the `data` JSON `title` key. */
|
|
29
|
+
title: string;
|
|
30
|
+
/** Optional supporting text. */
|
|
31
|
+
body?: string;
|
|
32
|
+
/** Optional UI tint. Mirrors the transient toast types so the bell can
|
|
33
|
+
* share badge styling with the toaster. */
|
|
34
|
+
type?: NotificationType;
|
|
35
|
+
/** Optional icon (registry name). */
|
|
36
|
+
icon?: string;
|
|
37
|
+
/** Optional click-through URL. When set, clicking the row navigates
|
|
38
|
+
* there + marks the notification as read. */
|
|
39
|
+
url?: string;
|
|
40
|
+
/** Optional action strip rendered below the body. Round-trips
|
|
41
|
+
* verbatim through the `data.actions` JSON column (`Notification`
|
|
42
|
+
* emits the slim wire shape; `rowToMeta` validates each entry and
|
|
43
|
+
* drops malformed ones with a `console.warn` rather than failing
|
|
44
|
+
* the dropdown). */
|
|
45
|
+
actions?: NotificationActionMeta[];
|
|
46
|
+
}
|
|
47
|
+
/** Raw row shape on the `notification` table — matches the schema
|
|
48
|
+
* shipped by `@rudderjs/notification`. The `data` column is a
|
|
49
|
+
* JSON-encoded string blob. */
|
|
50
|
+
interface NotificationRow {
|
|
51
|
+
id: string;
|
|
52
|
+
notifiable_id: string;
|
|
53
|
+
notifiable_type: string;
|
|
54
|
+
type: string;
|
|
55
|
+
data: string | Record<string, unknown>;
|
|
56
|
+
read_at: string | null;
|
|
57
|
+
created_at: string;
|
|
58
|
+
updated_at: string;
|
|
59
|
+
}
|
|
60
|
+
/** Minimal query surface we use against the orm adapter. */
|
|
61
|
+
interface QB {
|
|
62
|
+
where(column: string, value: unknown): QB;
|
|
63
|
+
where(column: string, op: string, value: unknown): QB;
|
|
64
|
+
orderBy(column: string, dir?: 'ASC' | 'DESC'): QB;
|
|
65
|
+
paginate(page: number, perPage?: number): Promise<{
|
|
66
|
+
data: unknown[];
|
|
67
|
+
total: number;
|
|
68
|
+
}>;
|
|
69
|
+
get?(): Promise<unknown[]>;
|
|
70
|
+
count?(): Promise<number>;
|
|
71
|
+
update?(data: Record<string, unknown>): Promise<unknown>;
|
|
72
|
+
updateAll?(data: Record<string, unknown>): Promise<number>;
|
|
73
|
+
create?(data: Record<string, unknown>): Promise<unknown>;
|
|
74
|
+
}
|
|
75
|
+
/** Notification-table row JSON-decoded `data` payload. We always store
|
|
76
|
+
* pilotiq's `NotificationMeta` shape; rows written by
|
|
77
|
+
* `@rudderjs/notification.Notifier.send(...)` may carry arbitrary
|
|
78
|
+
* application keys — we surface what we can recognize and ignore the rest. */
|
|
79
|
+
declare function parseRowData(raw: string | Record<string, unknown>): Record<string, unknown>;
|
|
80
|
+
declare function rowToMeta(row: NotificationRow): DatabaseNotificationMeta;
|
|
81
|
+
export interface ListOptions {
|
|
82
|
+
/** `notifiable_type` column value. */
|
|
83
|
+
notifiableType: string;
|
|
84
|
+
/** `notifiable_id` column value (typically the user's id). */
|
|
85
|
+
notifiableId: string;
|
|
86
|
+
/** Hard cap on rows returned. Default 25. */
|
|
87
|
+
limit?: number;
|
|
88
|
+
/** When true, only rows with `read_at IS NULL` are returned. */
|
|
89
|
+
unreadOnly?: boolean;
|
|
90
|
+
}
|
|
91
|
+
export interface ListResult {
|
|
92
|
+
notifications: DatabaseNotificationMeta[];
|
|
93
|
+
unreadCount: number;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Fetch the latest notifications for a notifiable + the unread count.
|
|
97
|
+
* Returns `{ notifications: [], unreadCount: 0 }` when no orm adapter is
|
|
98
|
+
* registered — apps without a database stay quiet rather than 500.
|
|
99
|
+
*/
|
|
100
|
+
export declare function listForUser(opts: ListOptions): Promise<ListResult>;
|
|
101
|
+
/**
|
|
102
|
+
* Fetch a single row by id, scoped to the notifiable. Returns
|
|
103
|
+
* `undefined` when no row matches (already-deleted / wrong owner /
|
|
104
|
+
* store unavailable). Used by the notification action route to look
|
|
105
|
+
* up the stored `data.actions` array before dispatching.
|
|
106
|
+
*/
|
|
107
|
+
export declare function findOneForUser(id: string, opts: {
|
|
108
|
+
notifiableType: string;
|
|
109
|
+
notifiableId: string;
|
|
110
|
+
}): Promise<DatabaseNotificationMeta | undefined>;
|
|
111
|
+
/** Count rows with `read_at IS NULL` for the notifiable. */
|
|
112
|
+
export declare function unreadCount(opts: {
|
|
113
|
+
notifiableType: string;
|
|
114
|
+
notifiableId: string;
|
|
115
|
+
}): Promise<number>;
|
|
116
|
+
/**
|
|
117
|
+
* Mark a single notification row as read. Always scoped to
|
|
118
|
+
* `notifiableId` so a tampered POST can't mark another user's row.
|
|
119
|
+
*
|
|
120
|
+
* Returns `true` when a row was updated, `false` when no row matched
|
|
121
|
+
* (already-deleted / wrong owner / store unavailable).
|
|
122
|
+
*/
|
|
123
|
+
export declare function markAsRead(id: string, opts: {
|
|
124
|
+
notifiableType: string;
|
|
125
|
+
notifiableId: string;
|
|
126
|
+
}): Promise<boolean>;
|
|
127
|
+
/** Mark a row unread again — used by the bell's "mark unread" affordance. */
|
|
128
|
+
export declare function markAsUnread(id: string, opts: {
|
|
129
|
+
notifiableType: string;
|
|
130
|
+
notifiableId: string;
|
|
131
|
+
}): Promise<boolean>;
|
|
132
|
+
/** Mark every unread notification for the notifiable as read. */
|
|
133
|
+
export declare function markAllAsRead(opts: {
|
|
134
|
+
notifiableType: string;
|
|
135
|
+
notifiableId: string;
|
|
136
|
+
}): Promise<number>;
|
|
137
|
+
/**
|
|
138
|
+
* Insert a notification row directly. Powers
|
|
139
|
+
* `Notification.make(...).sendToDatabase(recipient)`. Throws when the
|
|
140
|
+
* orm adapter isn't registered — the caller has explicitly asked to
|
|
141
|
+
* persist, so silent no-op would hide a real config error.
|
|
142
|
+
*/
|
|
143
|
+
export declare function persist(opts: {
|
|
144
|
+
notifiableType: string;
|
|
145
|
+
notifiableId: string;
|
|
146
|
+
type?: string;
|
|
147
|
+
data: NotificationMeta & Record<string, unknown>;
|
|
148
|
+
}): Promise<{
|
|
149
|
+
id: string;
|
|
150
|
+
}>;
|
|
151
|
+
/** @internal — test seam. Inject a fake adapter (or `null` to mimic
|
|
152
|
+
* "store unavailable"). Pass `undefined` to clear and fall back to the
|
|
153
|
+
* dynamic `@rudderjs/orm` import. Tests should clear in `afterEach`. */
|
|
154
|
+
export declare function _setTestAdapter(adp: {
|
|
155
|
+
query: <T>(table: string) => QB;
|
|
156
|
+
} | null | undefined): void;
|
|
157
|
+
/** @internal — exposed for tests; lets a unit test inject a fake
|
|
158
|
+
* ModelRegistry without monkey-patching dynamic-import. */
|
|
159
|
+
export declare const _internal: {
|
|
160
|
+
parseRowData: typeof parseRowData;
|
|
161
|
+
rowToMeta: typeof rowToMeta;
|
|
162
|
+
};
|
|
163
|
+
export {};
|
|
164
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/notifications/database.ts"],"names":[],"mappings":"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"}
|