@wildo-ai/presets-components 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/.native.tsbuildinfo +1 -0
- package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
- package/dist/esm/components/actions/action-bar.labels.d.ts.map +1 -1
- package/dist/esm/components/actions/action-button.d.ts.map +1 -1
- package/dist/esm/components/actions/action-button.labels.d.ts.map +1 -1
- package/dist/esm/components/actions/button-group.d.ts.map +1 -1
- package/dist/esm/components/actions/button.d.ts.map +1 -1
- package/dist/esm/components/actions/button.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact-browser.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/artifact.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/code-block.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/code-block.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/image.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/image.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/shiki-highlighter-runtime.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/shiki-highlighter.lazy.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/web-preview.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/artifacts/web-preview.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/conversation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/conversation.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/message.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/message.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/prompt-input.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/prompt-input.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/sources.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/sources.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/suggestion.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/chat/suggestion.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.d.ts +41 -6
- package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.js +37 -7
- package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
- package/dist/esm/components/ai-elements/decision/decision-request.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/decision-request.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/confirmation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/confirmation.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/queue.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/queue.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/task.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/task.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/execution/tool.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/canvas.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/connection.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/connection.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/controls.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/controls.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/edge.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/edge.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/graph-runtime.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/graph.lazy.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/node.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/panel.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/panel.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/toolbar.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/toolbar.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/agent.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/agent.js +23 -3
- package/dist/esm/components/ai-elements/meta/agent.js.map +1 -1
- package/dist/esm/components/ai-elements/meta/context.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/context.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/context.lazy.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/model-selector.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/model-selector.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/open-in-chat.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/open-in-chat.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/loader.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/loader.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/shimmer.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/shared/shimmer.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/stream/execution-stream.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/stream/execution-stream.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/chain-of-thought.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/chain-of-thought.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/checkpoint.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/checkpoint.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/inline-citation.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/inline-citation.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/plan.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/plan.labels.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/reasoning.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/trace/reasoning.labels.d.ts.map +1 -1
- package/dist/esm/components/app/app-layout-main-container.d.ts.map +1 -1
- package/dist/esm/components/app/app-layout-main-container.labels.d.ts.map +1 -1
- package/dist/esm/components/app/public-layout-main-container.d.ts.map +1 -1
- package/dist/esm/components/app/public-layout-main-container.js +1 -1
- package/dist/esm/components/app/public-layout-main-container.js.map +1 -1
- package/dist/esm/components/app/public-layout-main-container.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-format.utils.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/avatar.d.ts.map +1 -1
- package/dist/esm/components/data-display/avatar.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/badge.d.ts.map +1 -1
- package/dist/esm/components/data-display/badge.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/description-list.d.ts.map +1 -1
- package/dist/esm/components/data-display/description-list.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-bigdecimal.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-bigdecimal.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-boolean.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-boolean.js +20 -1
- package/dist/esm/components/data-display/formatters/display-field-boolean.js.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-boolean.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-code.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-code.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-date.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-date.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-datetime.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-datetime.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-duration.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-duration.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-enum.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-enum.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-audio.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-audio.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-document.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-document.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-gallery.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-gallery.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-image.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-image.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-video.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file-video.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-file.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-format.utils.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-i18n.utils.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-money.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-money.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-number.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-number.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-phone.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-phone.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-bigdecimal.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-date.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-date.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-datetime.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-datetime.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-money.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-money.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-number.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-number.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-time.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-range-time.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-string.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-string.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-time.d.ts.map +1 -1
- package/dist/esm/components/data-display/formatters/display-field-time.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/markdown-content.d.ts.map +1 -1
- package/dist/esm/components/data-display/markdown-stream-runtime.d.ts.map +1 -1
- package/dist/esm/components/data-display/markdown-stream.lazy.d.ts.map +1 -1
- package/dist/esm/components/data-display/notification-indicator.d.ts.map +1 -1
- package/dist/esm/components/data-display/notification-indicator.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.d.ts.map +1 -1
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.d.ts.map +1 -1
- package/dist/esm/components/feedback/celebration-overlay.d.ts.map +1 -1
- package/dist/esm/components/feedback/celebration-overlay.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/danger-zone.d.ts.map +1 -1
- package/dist/esm/components/feedback/danger-zone.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/empty-state.d.ts.map +1 -1
- package/dist/esm/components/feedback/empty-state.js +11 -1
- package/dist/esm/components/feedback/empty-state.js.map +1 -1
- package/dist/esm/components/feedback/empty-state.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/error-display.d.ts.map +1 -1
- package/dist/esm/components/feedback/error-display.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-limit-indicator.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-lock-badge.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-lock-badge.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-dialog.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-dialog.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.d.ts.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.js +7 -0
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.js.map +1 -1
- package/dist/esm/components/feedback/features/feature-unavailable-prompt.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-overlay.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-overlay.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-spinner.d.ts.map +1 -1
- package/dist/esm/components/feedback/loading-spinner.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/notification-center.d.ts +5 -3
- package/dist/esm/components/feedback/notification-center.d.ts.map +1 -1
- package/dist/esm/components/feedback/notification-center.js +7 -5
- package/dist/esm/components/feedback/notification-center.js.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/progress.d.ts.map +1 -1
- package/dist/esm/components/feedback/progress.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/skeleton.d.ts.map +1 -1
- package/dist/esm/components/feedback/skeleton.labels.d.ts.map +1 -1
- package/dist/esm/components/feedback/toast.d.ts.map +1 -1
- package/dist/esm/components/feedback/toast.labels.d.ts.map +1 -1
- package/dist/esm/components/form/autosave-indicator.d.ts.map +1 -1
- package/dist/esm/components/form/autosave-indicator.labels.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/field.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/field.labels.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/form-primitive.d.ts.map +1 -1
- package/dist/esm/components/form/chromes/form-primitive.labels.d.ts.map +1 -1
- package/dist/esm/components/form/combobox.d.ts.map +1 -1
- package/dist/esm/components/form/combobox.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/checkbox.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/checkbox.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/switch.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/switch.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle-group-boolean.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle-group-boolean.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle.d.ts.map +1 -1
- package/dist/esm/components/form/controls/boolean/toggle.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/code-editor/cm6-editor-appearance.d.ts.map +1 -1
- package/dist/esm/components/form/controls/code-editor/cm6-editor.d.ts.map +1 -1
- package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.d.ts.map +1 -1
- package/dist/esm/components/form/controls/code-editor/form-field-code.d.ts.map +1 -1
- package/dist/esm/components/form/controls/code-editor/markdown-editor.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/calendar.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/calendar.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/date-range-picker.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datepicker.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-picker.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-picker.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/date-time/time-range-picker.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/radio.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/select-multiple.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/select-multiple.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/select.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/select.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/toggle-group.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/file-upload.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/file-upload.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/image-crop.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts +52 -0
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts.map +1 -0
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.js +157 -0
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.js.map +1 -0
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts +16 -0
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts.map +1 -0
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js +20 -0
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js.map +1 -0
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts +37 -0
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts.map +1 -0
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.js +125 -0
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.js.map +1 -0
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts +16 -0
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts.map +1 -0
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js +20 -0
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js.map +1 -0
- package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input-group.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/number/slider.d.ts.map +1 -1
- package/dist/esm/components/form/controls/number/slider.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/color-input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/color-input.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/color-picker-surface.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/color-picker-surface.js +1 -1
- package/dist/esm/components/form/controls/string/color-picker-surface.js.map +1 -1
- package/dist/esm/components/form/controls/string/inline-edit-text.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/input-otp.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/input-otp.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/password-input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/password-input.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/textarea.d.ts.map +1 -1
- package/dist/esm/components/form/controls/string/textarea.labels.d.ts.map +1 -1
- package/dist/esm/components/layout/aspect-ratio.d.ts.map +1 -1
- package/dist/esm/components/layout/aspect-ratio.labels.d.ts.map +1 -1
- package/dist/esm/components/layout/carousel.d.ts.map +1 -1
- package/dist/esm/components/layout/carousel.labels.d.ts.map +1 -1
- package/dist/esm/components/layout/divider.d.ts.map +1 -1
- package/dist/esm/components/layout/divider.labels.d.ts.map +1 -1
- package/dist/esm/components/layout/resizable.d.ts.map +1 -1
- package/dist/esm/components/layout/resizable.labels.d.ts.map +1 -1
- package/dist/esm/components/layout/scroll-area.d.ts.map +1 -1
- package/dist/esm/components/layout/scroll-area.labels.d.ts.map +1 -1
- package/dist/esm/components/layout/separator.d.ts.map +1 -1
- package/dist/esm/components/layout/separator.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/activity-bar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/activity-bar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/command-menu.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/command-menu.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/control-panel.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/control-panel.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/menu-user-org.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/menu-user-org.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/menubar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/menubar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/navigation-back.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/navigation-back.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/notification-center.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/notification-center.js +22 -19
- package/dist/esm/components/navigation/app-level/notification-center.js.map +1 -1
- package/dist/esm/components/navigation/app-level/notification-center.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/notification-center.labels.js +11 -14
- package/dist/esm/components/navigation/app-level/notification-center.labels.js.map +1 -1
- package/dist/esm/components/navigation/app-level/quick-action-button.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/quick-action-button.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/quick-switcher.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/quick-switcher.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/sidebar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/sidebar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/status-bar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/status-bar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/toolbar.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/toolbar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/utility-panel.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/utility-panel.js +49 -9
- package/dist/esm/components/navigation/app-level/utility-panel.js.map +1 -1
- package/dist/esm/components/navigation/app-level/utility-panel.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/utility-panel.labels.js +1 -0
- package/dist/esm/components/navigation/app-level/utility-panel.labels.js.map +1 -1
- package/dist/esm/components/navigation/breadcrumb.d.ts.map +1 -1
- package/dist/esm/components/navigation/breadcrumb.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/command.d.ts.map +1 -1
- package/dist/esm/components/navigation/command.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/menu-bar.d.ts.map +1 -1
- package/dist/esm/components/navigation/menu-bar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/navbar.d.ts.map +1 -1
- package/dist/esm/components/navigation/navbar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/sidebar.d.ts.map +1 -1
- package/dist/esm/components/navigation/sidebar.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert-dialog.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert-dialog.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/alert.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/dialog.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/drawer.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/drawer.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/sheet.d.ts.map +1 -1
- package/dist/esm/components/overlays/containers/sheet.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/context-menu.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/context-menu.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/dropdown-menu.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/dropdown-menu.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/hover-card.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/hover-card.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/popover.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/popover.labels.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/tooltip.d.ts.map +1 -1
- package/dist/esm/components/overlays/floating/tooltip.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/accordion.d.ts.map +1 -1
- package/dist/esm/components/sections/accordion.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/card.d.ts.map +1 -1
- package/dist/esm/components/sections/card.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/collapsible.d.ts.map +1 -1
- package/dist/esm/components/sections/collapsible.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/content-section.d.ts.map +1 -1
- package/dist/esm/components/sections/disclosure-nesting.d.ts.map +1 -1
- package/dist/esm/components/sections/pagination.d.ts.map +1 -1
- package/dist/esm/components/sections/pagination.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/stacked-layout.d.ts.map +1 -1
- package/dist/esm/components/sections/stacked-layout.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/stepper.d.ts.map +1 -1
- package/dist/esm/components/sections/stepper.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/table.d.ts.map +1 -1
- package/dist/esm/components/sections/table.labels.d.ts.map +1 -1
- package/dist/esm/components/sections/tabs.d.ts.map +1 -1
- package/dist/esm/components/sections/tabs.js +5 -1
- package/dist/esm/components/sections/tabs.js.map +1 -1
- package/dist/esm/components/sections/tabs.labels.d.ts.map +1 -1
- package/dist/esm/components/typography/heading.d.ts.map +1 -1
- package/dist/esm/components/typography/heading.labels.d.ts.map +1 -1
- package/dist/esm/components/typography/label.d.ts.map +1 -1
- package/dist/esm/components/typography/label.labels.d.ts.map +1 -1
- package/dist/esm/components/typography/link.d.ts.map +1 -1
- package/dist/esm/components/typography/link.labels.d.ts.map +1 -1
- package/dist/esm/components/typography/text.d.ts.map +1 -1
- package/dist/esm/components/typography/text.labels.d.ts.map +1 -1
- package/dist/esm/components/typography/truncated-text.d.ts.map +1 -1
- package/dist/esm/config/billing-shell.presets.d.ts.map +1 -1
- package/dist/esm/config/index.d.ts.map +1 -1
- package/dist/esm/config/preset-design-system.d.ts.map +1 -1
- package/dist/esm/config/preset-error-pages.d.ts.map +1 -1
- package/dist/esm/config/preset-kits.d.ts.map +1 -1
- package/dist/esm/config/preset-navigation.d.ts.map +1 -1
- package/dist/esm/config/preset-resources.d.ts.map +1 -1
- package/dist/esm/config/preset-shell.d.ts.map +1 -1
- package/dist/esm/config/preset-utils.d.ts.map +1 -1
- package/dist/esm/config/presets.d.ts.map +1 -1
- package/dist/esm/config/resources/application.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/billing.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/guidance.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/identity.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/identity.resource-presets.js +6 -0
- package/dist/esm/config/resources/identity.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/index.d.ts +23 -1
- package/dist/esm/config/resources/index.d.ts.map +1 -1
- package/dist/esm/config/resources/index.js +24 -3
- package/dist/esm/config/resources/index.js.map +1 -1
- package/dist/esm/config/resources/organizations.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/resource.config.utils.d.ts.map +1 -1
- package/dist/esm/config/resources/security.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/security.resource-presets.js +95 -4
- package/dist/esm/config/resources/security.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/webhooks.resource-presets.d.ts.map +1 -1
- package/dist/esm/index.d.ts +1 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lottie/lottie.content.definitions.d.ts.map +1 -1
- package/dist/esm/lottie/lottie.definitions.d.ts.map +1 -1
- package/dist/esm/mermaid-stub.d.ts.map +1 -1
- package/dist/esm/registration/register-common-enums.d.ts.map +1 -1
- package/dist/esm/registration/register-common-enums.js +20 -1
- package/dist/esm/registration/register-common-enums.js.map +1 -1
- package/dist/esm/registration/register-default-animations.d.ts.map +1 -1
- package/dist/esm/registration/register-default-icons.d.ts.map +1 -1
- package/dist/esm/registration/register-default-presets.d.ts.map +1 -1
- package/dist/esm/registration/register-default-presets.js +4 -4
- package/dist/esm/registration/register-default-presets.js.map +1 -1
- package/dist/esm/registration/register-provider-components.d.ts +31 -0
- package/dist/esm/registration/register-provider-components.d.ts.map +1 -0
- package/dist/esm/registration/register-provider-components.js +45 -0
- package/dist/esm/registration/register-provider-components.js.map +1 -0
- package/dist/esm/shiki-subset.d.ts.map +1 -1
- package/dist/esm/theme-exports.d.ts.map +1 -1
- package/dist/esm/themes/cozy.theme.d.ts.map +1 -1
- package/dist/esm/themes/dense.theme.d.ts.map +1 -1
- package/dist/esm/themes/editorial.theme.d.ts.map +1 -1
- package/dist/esm/themes/glass.theme.d.ts.map +1 -1
- package/dist/esm/themes/neo-brutalist.theme.d.ts.map +1 -1
- package/dist/esm/themes/terminal.theme.d.ts.map +1 -1
- package/dist/esm/themes/trading.theme.d.ts.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +6 -5
- package/dist/esm/components/billing/billing-plan-change-preview.d.ts +0 -13
- package/dist/esm/components/billing/billing-plan-change-preview.d.ts.map +0 -1
- package/dist/esm/components/billing/billing-plan-change-preview.js +0 -44
- package/dist/esm/components/billing/billing-plan-change-preview.js.map +0 -1
- package/dist/esm/components/billing/billing-plan-change-preview.labels.d.ts +0 -3
- package/dist/esm/components/billing/billing-plan-change-preview.labels.d.ts.map +0 -1
- package/dist/esm/components/billing/billing-plan-change-preview.labels.js +0 -36
- package/dist/esm/components/billing/billing-plan-change-preview.labels.js.map +0 -1
- package/dist/esm/components/billing/billing-promotion-code-input.d.ts +0 -10
- package/dist/esm/components/billing/billing-promotion-code-input.d.ts.map +0 -1
- package/dist/esm/components/billing/billing-promotion-code-input.js +0 -68
- package/dist/esm/components/billing/billing-promotion-code-input.js.map +0 -1
- package/dist/esm/components/billing/billing-promotion-code-input.labels.d.ts +0 -3
- package/dist/esm/components/billing/billing-promotion-code-input.labels.d.ts.map +0 -1
- package/dist/esm/components/billing/billing-promotion-code-input.labels.js +0 -14
- package/dist/esm/components/billing/billing-promotion-code-input.labels.js.map +0 -1
- package/dist/esm/config/resources/infrastructure.resource-presets.d.ts +0 -16
- package/dist/esm/config/resources/infrastructure.resource-presets.d.ts.map +0 -1
- package/dist/esm/config/resources/infrastructure.resource-presets.js +0 -110
- package/dist/esm/config/resources/infrastructure.resource-presets.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.resource-presets.js","sourceRoot":"","sources":["../../../../../src/config/resources/identity.resource-presets.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport type { ResourceUIBehavior } from \"@wildo-ai/saas-frontend-lib\";\nimport { resourceUIBehavior, resourceUIBehaviorFrom, StandardIconReference, ActionVisibility } from \"@wildo-ai/saas-frontend-lib\";\nimport { DisplayField, DisplayLayout, FormField, FormLayout, ObjectScope, RelatedResourceSections, Section, SummaryLayout, SummaryFlow, SummaryMeta, SummaryTitle } from \"@wildo-ai/saas-frontend-lib\";\nimport {\n BadgeSemanticVariant,\n DisplayChromeMode,\n EditChromeMode,\n EnumDisplayMode,\n SectionMode,\n StringDisplayMode,\n StringEditMode,\n FileDisplayPresentation,\n FileMediaShape,\n FileMediaSize,\n} from \"@wildo-ai/zod-decorators\";\nimport {\n CoreResourceType as R,\n CoreResourceOperation as Op,\n UserStatus,\n UserSelf_Operations,\n UserSelfPreferences_Operations,\n Users_Operations,\n userSelfResourceConfiguration_InitializationFactory as userSelfFactory,\n userSelfProfilesResourceConfiguration_InitializationFactory as userSelfProfilesFactory,\n userSelfPreferencesResourceConfiguration_InitializationFactory as userSelfPreferencesFactory,\n usersResourceConfiguration_InitializationFactory as usersFactory,\n anonymousUsersResourceConfiguration_InitializationFactory as anonymousUsersFactory,\n userProfilesResourceConfiguration_InitializationFactory as userProfilesFactory,\n userPreferencesResourceConfiguration_InitializationFactory as userPreferencesFactory,\n userFeaturesResourceConfiguration_InitializationFactory as userFeaturesFactory,\n UserSchema,\n UserProfileSchema,\n UserPreferencesSchema,\n AnonymousUserSchema,\n ScopeFeaturesWithOverridesSchema,\n} from \"@wildo-ai/saas-models\";\nimport { Ban, KeyRound, Power, PowerOff, RotateCcw, ShieldMinus, ShieldPlus, UserCheck } from \"lucide-react\";\nimport { addressable, notAddressable, apiOnly } from \"./resource.config.utils\";\n\n/**\n * Identity & Users — Resource frontend presets\n *\n * **Main:** USER_SELF, USER_SELF_PROFILES, USER_SELF_PREFERENCES, USERS (read-only for\n * mentions/assignments), ANONYMOUS_USERS, USER_FEATURES. End users use the `_SELF` variants\n * for their own profiles/preferences — USER_PROFILES and USER_PREFERENCES are **admin-only**.\n *\n * **Admin:** USERS (LIST addressable — user management page), USER_PROFILES, USER_PREFERENCES,\n * ANONYMOUS_USERS, USER_FEATURES.\n *\n * Field-level `{primitive}UI` follows the billing convention: inline `values` for enums, and\n * `showDescription: true`. Layout templates are implemented inline in each resource config.\n */\n\nexport const usersMainResourceUIBehavior = resourceUIBehavior(usersFactory, UserSchema, ({ schemaShape }) => ({\n icon: StandardIconReference.USERS,\n layout: {\n refs: { sections: [\"overview\", \"access\", \"lifecycle\"] },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"email\" />\n <DisplayField name=\"status\" />\n </Section>\n <Section name=\"access\">\n <DisplayField name=\"appRoles\" />\n <DisplayField name=\"userTypes\" />\n </Section>\n <Section name=\"lifecycle\">\n <DisplayField name=\"createdAt\" />\n <DisplayField name=\"updatedAt\" />\n </Section>\n {/*\n Composes NO children. A user's owned children here are membership rows,\n invoice/usage records and the guidance / progression / lifecycle state\n machinery — none of which belongs on the user's own record. The ADMIN\n variant extends this display and names the two it does show.\n */}\n <RelatedResourceSections config={{ mode: SectionMode.INLINE }} targets={[]} />\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"email\" />\n <SummaryMeta>\n <DisplayField name=\"status\" />\n <DisplayField name=\"createdAt\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"email\" />\n <FormField name=\"status\" />\n </Section>\n <Section name=\"access\">\n <FormField name=\"appRoles\" />\n <FormField name=\"userTypes\" />\n </Section>\n </FormLayout>\n ),\n },\n fields: {\n status: schemaShape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },\n edit: { showDescription: true },\n values: {\n [UserStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS },\n [UserStatus.INACTIVE]: { color: BadgeSemanticVariant.SECONDARY },\n [UserStatus.SUSPENDED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n [UserStatus.PENDING_VERIFICATION]: { color: BadgeSemanticVariant.WARNING },\n [UserStatus.PENDING_INVITATION]: { color: BadgeSemanticVariant.INFO },\n [UserStatus.DELETED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n },\n }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.email,\n views: [[Op.READ, notAddressable()]],\n}));\n\nexport const usersAdminResourceUIBehavior = resourceUIBehaviorFrom(usersFactory, usersMainResourceUIBehavior, ({ base, opsVariantResolver }) => ({\n icon: base.icon,\n getFrontendResourceLabel: base.getFrontendResourceLabel,\n // Extends the shared base display: both variants use one layout object but\n // compose different children — the base none, this one the profile and\n // preference records an operator manages. Both are 1:1, so they render through\n // READ rather than a collection LIST.\n layout: {\n ...base.layout,\n display: () => {\n const BaseDisplay = base.layout!.display!;\n return (\n <>\n <BaseDisplay />\n <RelatedResourceSections\n config={{ mode: SectionMode.INLINE }}\n targets={[\n { resourceType: R.USER_PROFILES, operationLike: Op.READ },\n { resourceType: R.USER_PREFERENCES, operationLike: Op.READ },\n ]}\n />\n </>\n );\n },\n },\n fields: base.fields,\n views: [\n [opsVariantResolver(Op.READ, \"admin\"), notAddressable()],\n [opsVariantResolver(Op.LIST, \"admin\"), addressable()],\n [opsVariantResolver(Op.SEARCH, \"admin\"), notAddressable()],\n // CREATE has a form view but its action is suppressed here: users self-signup\n // or are invited — admin direct-create is a high-risk path, not a list action.\n [Op.CREATE, notAddressable({ actionVisibility: ActionVisibility.HIDDEN })],\n [Op.UPDATE, notAddressable()],\n [Op.DELETE, notAddressable()],\n [Users_Operations.ASSIGN_ROLES, notAddressable({ iconOverride: ShieldPlus })],\n [Users_Operations.REVOKE_ROLES, notAddressable({ iconOverride: ShieldMinus })],\n [Users_Operations.SUSPEND_USER, notAddressable({ iconOverride: Ban })],\n [Users_Operations.UNSUSPEND_USER, notAddressable({ iconOverride: UserCheck })],\n [Users_Operations.FORCE_PASSWORD_RESET, notAddressable({ iconOverride: KeyRound })],\n ],\n}));\n\nexport function buildIdentityMainPresets(): Partial<ResourceUIBehavior> {\n return {\n [R.USER_SELF]: resourceUIBehavior(userSelfFactory, UserSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.USER,\n getFrontendResourceLabel: ({ currentObject }) => currentObject.email,\n layout: {\n refs: { sections: [\"overview\", \"access\", \"lifecycle\"] },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"email\" />\n <DisplayField name=\"status\" />\n </Section>\n <Section name=\"access\">\n <DisplayField name=\"appRoles\" />\n <DisplayField name=\"userTypes\" />\n </Section>\n <Section name=\"lifecycle\">\n <DisplayField name=\"createdAt\" />\n <DisplayField name=\"updatedAt\" />\n </Section>\n {/*\n A user's own record shows the organizations they belong to. Their\n self profile and preference rows are NOT composed here: both have\n dedicated settings surfaces, and repeating them would show the same\n record twice under one page.\n */}\n <RelatedResourceSections\n config={{ mode: SectionMode.TABS }}\n targets={[R.ORGANIZATION_MEMBERS]}\n />\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"email\" />\n <SummaryMeta>\n <DisplayField name=\"status\" />\n <DisplayField name=\"createdAt\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"email\" />\n <FormField name=\"status\" />\n </Section>\n <Section name=\"access\">\n <FormField name=\"appRoles\" />\n <FormField name=\"userTypes\" />\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n // Profile / preferences edits ride the dedicated `USER_SELF_PROFILES` /\n // `USER_SELF_PREFERENCES` child resources declared below — the `UPDATE_PROFILE` /\n // `UPDATE_PREFERENCES` verbs were removed on 2026-08-01 (they declared another\n // resource's schema, so they answered 200 having persisted nothing).\n // No self-delete action: `DELETE_ACCOUNT` was removed on 2026-08-01 — data-subject erasure\n // is a system-level API with no route. See the `UserSelf_Operations` enum comment.\n [UserSelf_Operations.DEACTIVATE_ACCOUNT, notAddressable({ iconOverride: PowerOff })],\n [UserSelf_Operations.REACTIVATE_ACCOUNT, notAddressable({ iconOverride: Power })],\n ],\n })),\n\n [R.USER_SELF_PROFILES]: resourceUIBehavior(userSelfProfilesFactory, UserProfileSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.PROFILE,\n getFrontendResourceLabel: ({ currentObject }) => `${currentObject.firstName} ${currentObject.lastName}`.trim(),\n layout: {\n // Flat, sectionless profile: a single settings-row list (no cards, no\n // section headers). The old identity/contact/profile grouping added\n // visual chrome without semantic value on a short self-profile form.\n refs: { sections: [] },\n // Settings-page chrome (Settings Hub → Profile): label-left / value-right rows.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.INLINE, edit: EditChromeMode.SETTINGS_ROW },\n display: () => (\n <DisplayLayout>\n <DisplayField name=\"displayName\" />\n <DisplayField name=\"firstName\" />\n <DisplayField name=\"lastName\" />\n <DisplayField name=\"title\" />\n <DisplayField name=\"avatar\" />\n <DisplayField name=\"phoneNumber\" />\n <DisplayField name=\"bio\" />\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"displayName\" />\n <SummaryMeta>\n <DisplayField name=\"firstName\" />\n <DisplayField name=\"lastName\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <FormField name=\"displayName\" />\n <FormField name=\"firstName\" />\n <FormField name=\"lastName\" />\n <FormField name=\"title\" />\n <FormField name=\"avatar\" />\n <FormField name=\"phoneNumber\" />\n <FormField name=\"bio\" />\n </FormLayout>\n ),\n },\n fields: {\n // Title is optional metadata — hide the row on the READ view until set\n // (the edit form still renders it so it can be filled).\n title: schemaShape.title.stringUI({ display: { hideWhenEmpty: true } }),\n // Avatar renders INLINE as a small CIRCLE on display (opt-in), no caption — the\n // natural profile-picture look. Bytes are fetched over the authenticated\n // resource-integrated serve route (authz inherits the profile READ); without the\n // opt-in a file field shows the neutral file card.\n avatar: schemaShape.avatar.fileUI({\n display: {\n presentation: FileDisplayPresentation.THUMBNAIL,\n preview: { shape: FileMediaShape.CIRCLE, size: FileMediaSize.MD, showCaption: false },\n },\n }),\n // Bio is long-form prose: rich markdown on display, a markdown SOURCE\n // editor (syntax-tinted, CodeMirror-backed, lazy-loaded) on edit.\n // The edit control opts OUT of the layout's SETTINGS_ROW default\n // (label-left / narrow end column): long-form writing needs the full row\n // width, so the field authors STACKED — label above, editor spanning.\n bio: schemaShape.bio.stringUI({\n display: { displayMode: StringDisplayMode.MARKDOWN, hideWhenEmpty: true },\n edit: { editMode: StringEditMode.MARKDOWN, chromeMode: EditChromeMode.STACKED },\n }),\n },\n views: [\n [Op.READ, notAddressable()],\n // Self-profile is auto-created on signup — headless (callable via API, no view).\n [Op.CREATE, apiOnly()],\n [Op.UPDATE, notAddressable()],\n ],\n })),\n\n [R.USER_SELF_PREFERENCES]: resourceUIBehavior(userSelfPreferencesFactory, UserPreferencesSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.SETTINGS,\n layout: {\n // Settings-page sections — each preference GROUP is its own CARD so the\n // Settings Hub → Preferences page reads as distinct titled blocks\n // (Notifications / Privacy / Regional / Language) rather than one flat\n // list. `appearance` (UI theme) is intentionally NOT a section here — see\n // the omission note in the display/edit templates.\n refs: { sections: [\"notifications\", \"privacy\", \"regional\", \"language\"] },\n // Settings-page chrome (Settings Hub → Preferences): label-left / value-right rows.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.INLINE, edit: EditChromeMode.SETTINGS_ROW },\n display: () => (\n <DisplayLayout>\n <Section name=\"notifications\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"notifications\">\n <DisplayField name=\"email\" />\n <DisplayField name=\"push\" />\n <DisplayField name=\"sms\" />\n <DisplayField name=\"inApp\" />\n </ObjectScope>\n </Section>\n {/*\n Privacy contains only the two user-facing preference decisions below. Governed\n notice, contract and consent interactions are exact-release records in a separate\n runtime boundary and must never be rendered or edited as preference members.\n */}\n <Section name=\"privacy\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"privacy\">\n <DisplayField name=\"dataProcessingConsent\" />\n <DisplayField name=\"privacyLevel\" />\n </ObjectScope>\n </Section>\n {/*\n UI theme is intentionally OMITTED from this preferences page. The\n dedicated \"Appearance\" Settings-Hub panel (AppPage_AppearanceSettings)\n owns theme selection — surfacing `ui.theme` here too duplicated the\n same control on two surfaces. The `ui` field remains in the schema and\n the summary projection as the persisted value; only the editable\n duplicate on this page is removed. (If theme should instead be owned\n here and the Appearance panel retired, flip this and remove that panel.)\n */}\n <Section name=\"regional\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"regional\">\n <DisplayField name=\"timezone\" />\n <DisplayField name=\"dateFormat\" />\n <DisplayField name=\"timeFormat\" />\n <DisplayField name=\"locale\" />\n </ObjectScope>\n </Section>\n <Section name=\"language\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"languagePreferences\">\n <DisplayField name=\"primaryLanguage\" />\n <DisplayField name=\"fallbackLanguages\" />\n <DisplayField name=\"autoDetect\" />\n <DisplayField name=\"useOrganizationDefault\" />\n </ObjectScope>\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout flow={SummaryFlow.ROW}>\n <ObjectScope name=\"ui\">\n <DisplayField name=\"theme\" />\n </ObjectScope>\n <ObjectScope name=\"regional\">\n <DisplayField name=\"timezone\" />\n <DisplayField name=\"locale\" />\n </ObjectScope>\n <ObjectScope name=\"languagePreferences\">\n <DisplayField name=\"primaryLanguage\" />\n </ObjectScope>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"notifications\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"notifications\">\n <FormField name=\"email\" />\n <FormField name=\"push\" />\n <FormField name=\"sms\" />\n <FormField name=\"inApp\" />\n </ObjectScope>\n </Section>\n {/* Privacy: edit only the consent SETTINGS — see the display layout note above. */}\n <Section name=\"privacy\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"privacy\">\n <FormField name=\"dataProcessingConsent\" />\n <FormField name=\"privacyLevel\" />\n </ObjectScope>\n </Section>\n {/* UI theme intentionally OMITTED — owned by the Appearance Settings-Hub\n panel; see the display-template omission note above. */}\n <Section name=\"regional\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"regional\">\n <FormField name=\"timezone\" />\n <FormField name=\"dateFormat\" />\n <FormField name=\"timeFormat\" />\n <FormField name=\"locale\" />\n </ObjectScope>\n </Section>\n <Section name=\"language\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"languagePreferences\">\n <FormField name=\"primaryLanguage\" />\n <FormField name=\"fallbackLanguages\" />\n <FormField name=\"autoDetect\" />\n <FormField name=\"useOrganizationDefault\" />\n </ObjectScope>\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [UserSelfPreferences_Operations.RESET_TO_DEFAULTS, notAddressable({ iconOverride: RotateCcw })],\n ],\n })),\n\n [R.USERS]: usersMainResourceUIBehavior,\n\n [R.ANONYMOUS_USERS]: resourceUIBehavior(anonymousUsersFactory, AnonymousUserSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.USER,\n layout: {\n refs: { sections: [\"overview\", \"privacy\", \"context\"] },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"transpositionStatus\" />\n <DisplayField name=\"convertedToUserId\" />\n <DisplayField name=\"createdAt\" />\n </Section>\n <Section name=\"privacy\">\n <DisplayField name=\"privacy\" />\n </Section>\n <Section name=\"context\">\n <DisplayField name=\"userAgent\" />\n <DisplayField name=\"ipHash\" />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout flow={SummaryFlow.ROW}>\n <DisplayField name=\"transpositionStatus\" />\n <DisplayField name=\"createdAt\" />\n </SummaryLayout>\n ),\n },\n views: [[Op.READ, notAddressable()]],\n })),\n\n [R.USER_FEATURES]: resourceUIBehavior(userFeaturesFactory, ScopeFeaturesWithOverridesSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n layout: {\n refs: { sections: [\"overview\", \"overrides\"] },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"features\" />\n <DisplayField name=\"limits\" />\n </Section>\n <Section name=\"overrides\">\n <ObjectScope name=\"manualOverrides\">\n <DisplayField name=\"addedFeatures\" />\n <DisplayField name=\"removedFeatures\" />\n <DisplayField name=\"limitOverrides\" />\n </ObjectScope>\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <DisplayField name=\"features\" />\n <DisplayField name=\"limits\" />\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"features\" />\n <FormField name=\"limits\" />\n </Section>\n <Section name=\"overrides\">\n <ObjectScope name=\"manualOverrides\">\n <FormField name=\"addedFeatures\" />\n <FormField name=\"removedFeatures\" />\n <FormField name=\"limitOverrides\" />\n </ObjectScope>\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.SEARCH, notAddressable()],\n ],\n })),\n };\n}\n\nexport function buildIdentityAdminPresets(main: Partial<ResourceUIBehavior>): Partial<ResourceUIBehavior> {\n return {\n [R.USERS]: usersAdminResourceUIBehavior,\n\n [R.ANONYMOUS_USERS]: resourceUIBehaviorFrom(anonymousUsersFactory, main[R.ANONYMOUS_USERS]!, ({ base }) => ({\n icon: base.icon,\n layout: base.layout,\n views: [[Op.LIST, notAddressable()]],\n })),\n\n [R.USER_PROFILES]: resourceUIBehavior(userProfilesFactory, UserProfileSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.PROFILE,\n getFrontendResourceLabel: ({ currentObject }) => `${currentObject.firstName} ${currentObject.lastName}`.trim(),\n layout: main[R.USER_SELF_PROFILES]?.layout,\n views: [\n [opsVariantResolver(Op.READ, \"admin\"), notAddressable()],\n [opsVariantResolver(Op.SEARCH, \"admin\"), notAddressable()],\n // Profiles are created programmatically alongside the user — headless (API-only).\n [opsVariantResolver(Op.CREATE, \"admin\"), apiOnly()],\n [opsVariantResolver(Op.UPDATE, \"admin\"), notAddressable()],\n [opsVariantResolver(Op.DELETE, \"admin\"), notAddressable()],\n ],\n })),\n\n [R.USER_PREFERENCES]: resourceUIBehavior(userPreferencesFactory, UserPreferencesSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.SETTINGS,\n layout: main[R.USER_SELF_PREFERENCES]?.layout,\n views: [\n [opsVariantResolver(Op.READ, \"admin\"), notAddressable()],\n [opsVariantResolver(Op.UPDATE, \"admin\"), notAddressable()],\n ],\n })),\n\n [R.USER_FEATURES]: resourceUIBehaviorFrom(userFeaturesFactory, main[R.USER_FEATURES]!, ({ base }) => ({\n icon: base.icon,\n layout: base.layout,\n views: [[Op.UPDATE, notAddressable()]],\n })),\n };\n}\n\nexport const identityMainPresets = buildIdentityMainPresets();\nexport const identityAdminPresets = buildIdentityAdminPresets(identityMainPresets);\n\n// Named re-exports for `*.resource.specification.ts` (mergeResourceFrontendConfigurations + `codeHandling.frontendConfigurationSources`).\nexport const userSelfResourceUIBehavior = identityMainPresets[R.USER_SELF]!;\nexport const userSelfProfilesResourceUIBehavior = identityMainPresets[R.USER_SELF_PROFILES]!;\nexport const userSelfPreferencesResourceUIBehavior = identityMainPresets[R.USER_SELF_PREFERENCES]!;\nexport const anonymousUsersMainResourceUIBehavior = identityMainPresets[R.ANONYMOUS_USERS]!;\nexport const anonymousUsersAdminResourceUIBehavior = identityAdminPresets[R.ANONYMOUS_USERS]!;\nexport const userProfilesResourceUIBehavior = identityAdminPresets[R.USER_PROFILES]!;\nexport const userPreferencesResourceUIBehavior = identityAdminPresets[R.USER_PREFERENCES]!;\nexport const userFeaturesMainResourceUIBehavior = identityMainPresets[R.USER_FEATURES]!;\nexport const userFeaturesAdminResourceUIBehavior = identityAdminPresets[R.USER_FEATURES]!;\n"]}
|
|
1
|
+
{"version":3,"file":"identity.resource-presets.js","sourceRoot":"","sources":["../../../../src/config/resources/identity.resource-presets.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport type { ResourceUIBehavior } from \"@wildo-ai/saas-frontend-lib\";\nimport { resourceUIBehavior, resourceUIBehaviorFrom, StandardIconReference, ActionVisibility } from \"@wildo-ai/saas-frontend-lib\";\nimport { DisplayField, DisplayLayout, FormField, FormLayout, ObjectScope, RelatedResourceSections, Section, SummaryLayout, SummaryFlow, SummaryMeta, SummaryTitle } from \"@wildo-ai/saas-frontend-lib\";\nimport {\n BadgeSemanticVariant,\n DisplayChromeMode,\n EditChromeMode,\n EnumDisplayMode,\n SectionMode,\n StringDisplayMode,\n StringEditMode,\n FileDisplayPresentation,\n FileMediaShape,\n FileMediaSize,\n} from \"@wildo-ai/zod-decorators\";\nimport {\n CoreResourceType as R,\n CoreResourceOperation as Op,\n UserStatus,\n UserSelf_Operations,\n UserSelfPreferences_Operations,\n Users_Operations,\n userSelfResourceConfiguration_InitializationFactory as userSelfFactory,\n userSelfProfilesResourceConfiguration_InitializationFactory as userSelfProfilesFactory,\n userSelfPreferencesResourceConfiguration_InitializationFactory as userSelfPreferencesFactory,\n usersResourceConfiguration_InitializationFactory as usersFactory,\n anonymousUsersResourceConfiguration_InitializationFactory as anonymousUsersFactory,\n userProfilesResourceConfiguration_InitializationFactory as userProfilesFactory,\n userPreferencesResourceConfiguration_InitializationFactory as userPreferencesFactory,\n userFeaturesResourceConfiguration_InitializationFactory as userFeaturesFactory,\n UserSchema,\n UserProfileSchema,\n UserPreferencesSchema,\n AnonymousUserSchema,\n ScopeFeaturesWithOverridesSchema,\n} from \"@wildo-ai/saas-models\";\nimport { Ban, KeyRound, Power, PowerOff, RotateCcw, ShieldMinus, ShieldPlus, UserCheck } from \"lucide-react\";\nimport { addressable, notAddressable, apiOnly } from \"./resource.config.utils\";\n\n/**\n * Identity & Users — Resource frontend presets\n *\n * **Main:** USER_SELF, USER_SELF_PROFILES, USER_SELF_PREFERENCES, USERS (read-only for\n * mentions/assignments), ANONYMOUS_USERS, USER_FEATURES. End users use the `_SELF` variants\n * for their own profiles/preferences — USER_PROFILES and USER_PREFERENCES are **admin-only**.\n *\n * **Admin:** USERS (LIST addressable — user management page), USER_PROFILES, USER_PREFERENCES,\n * ANONYMOUS_USERS, USER_FEATURES.\n *\n * Field-level `{primitive}UI` follows the billing convention: inline `values` for enums, and\n * `showDescription: true`. Layout templates are implemented inline in each resource config.\n */\n\nexport const usersMainResourceUIBehavior = resourceUIBehavior(usersFactory, UserSchema, ({ schemaShape }) => ({\n icon: StandardIconReference.USERS,\n layout: {\n refs: { sections: [\"overview\", \"access\", \"lifecycle\"] },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"email\" />\n <DisplayField name=\"status\" />\n </Section>\n <Section name=\"access\">\n <DisplayField name=\"appRoles\" />\n <DisplayField name=\"userTypes\" />\n </Section>\n <Section name=\"lifecycle\">\n <DisplayField name=\"createdAt\" />\n <DisplayField name=\"updatedAt\" />\n </Section>\n {/*\n Composes NO children. A user's owned children here are membership rows,\n invoice/usage records and the guidance / progression / lifecycle state\n machinery — none of which belongs on the user's own record. The ADMIN\n variant extends this display and names the two it does show.\n */}\n <RelatedResourceSections config={{ mode: SectionMode.INLINE }} targets={[]} />\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"email\" />\n <SummaryMeta>\n <DisplayField name=\"status\" />\n <DisplayField name=\"createdAt\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"email\" />\n <FormField name=\"status\" />\n </Section>\n <Section name=\"access\">\n <FormField name=\"appRoles\" />\n <FormField name=\"userTypes\" />\n </Section>\n </FormLayout>\n ),\n },\n fields: {\n status: schemaShape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },\n edit: { showDescription: true },\n values: {\n [UserStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS },\n [UserStatus.INACTIVE]: { color: BadgeSemanticVariant.SECONDARY },\n [UserStatus.SUSPENDED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n [UserStatus.PENDING_VERIFICATION]: { color: BadgeSemanticVariant.WARNING },\n [UserStatus.PENDING_INVITATION]: { color: BadgeSemanticVariant.INFO },\n [UserStatus.DELETED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n },\n }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.email,\n views: [[Op.READ, notAddressable()]],\n}));\n\nexport const usersAdminResourceUIBehavior = resourceUIBehaviorFrom(usersFactory, usersMainResourceUIBehavior, ({ base, opsVariantResolver }) => ({\n icon: base.icon,\n getFrontendResourceLabel: base.getFrontendResourceLabel,\n // Extends the shared base display: both variants use one layout object but\n // compose different children — the base none, this one the profile and\n // preference records an operator manages. Both are 1:1, so they render through\n // READ rather than a collection LIST.\n layout: {\n ...base.layout,\n display: () => {\n const BaseDisplay = base.layout!.display!;\n return (\n <>\n <BaseDisplay />\n <RelatedResourceSections\n config={{ mode: SectionMode.INLINE }}\n targets={[\n { resourceType: R.USER_PROFILES, operationLike: Op.READ },\n { resourceType: R.USER_PREFERENCES, operationLike: Op.READ },\n ]}\n />\n </>\n );\n },\n },\n fields: base.fields,\n views: [\n [opsVariantResolver(Op.READ, \"admin\"), notAddressable()],\n [opsVariantResolver(Op.LIST, \"admin\"), addressable()],\n [opsVariantResolver(Op.SEARCH, \"admin\"), notAddressable()],\n // CREATE has a form view but its action is suppressed here: users self-signup\n // or are invited — admin direct-create is a high-risk path, not a list action.\n [Op.CREATE, notAddressable({ actionVisibility: ActionVisibility.HIDDEN })],\n [Op.UPDATE, notAddressable()],\n [Op.DELETE, notAddressable()],\n [Users_Operations.ASSIGN_ROLES, notAddressable({ iconOverride: ShieldPlus })],\n [Users_Operations.REVOKE_ROLES, notAddressable({ iconOverride: ShieldMinus })],\n [Users_Operations.SUSPEND_USER, notAddressable({ iconOverride: Ban })],\n [Users_Operations.UNSUSPEND_USER, notAddressable({ iconOverride: UserCheck })],\n // The only door back from a SELF-deactivated account (#430). Surfaced beside `unsuspend_user`\n // because the two are the same shape of administrative reinstatement over disjoint source\n // states; the resource specification documents it in its frontend views, and the merged frontend\n // configuration is what that documentation is validated against at spec load — omitting it here\n // is an ESM-import throw that crash-loops every companion.\n [Users_Operations.REACTIVATE_USER, notAddressable({ iconOverride: RotateCcw })],\n [Users_Operations.FORCE_PASSWORD_RESET, notAddressable({ iconOverride: KeyRound })],\n ],\n}));\n\nexport function buildIdentityMainPresets(): Partial<ResourceUIBehavior> {\n return {\n [R.USER_SELF]: resourceUIBehavior(userSelfFactory, UserSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.USER,\n getFrontendResourceLabel: ({ currentObject }) => currentObject.email,\n layout: {\n refs: { sections: [\"overview\", \"access\", \"lifecycle\"] },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"email\" />\n <DisplayField name=\"status\" />\n </Section>\n <Section name=\"access\">\n <DisplayField name=\"appRoles\" />\n <DisplayField name=\"userTypes\" />\n </Section>\n <Section name=\"lifecycle\">\n <DisplayField name=\"createdAt\" />\n <DisplayField name=\"updatedAt\" />\n </Section>\n {/*\n A user's own record shows the organizations they belong to. Their\n self profile and preference rows are NOT composed here: both have\n dedicated settings surfaces, and repeating them would show the same\n record twice under one page.\n */}\n <RelatedResourceSections\n config={{ mode: SectionMode.TABS }}\n targets={[R.ORGANIZATION_MEMBERS]}\n />\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"email\" />\n <SummaryMeta>\n <DisplayField name=\"status\" />\n <DisplayField name=\"createdAt\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"email\" />\n <FormField name=\"status\" />\n </Section>\n <Section name=\"access\">\n <FormField name=\"appRoles\" />\n <FormField name=\"userTypes\" />\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n // Profile / preferences edits ride the dedicated `USER_SELF_PROFILES` /\n // `USER_SELF_PREFERENCES` child resources declared below — the `UPDATE_PROFILE` /\n // `UPDATE_PREFERENCES` verbs were removed on 2026-08-01 (they declared another\n // resource's schema, so they answered 200 having persisted nothing).\n // No self-delete action: `DELETE_ACCOUNT` was removed on 2026-08-01 — data-subject erasure\n // is a system-level API with no route. See the `UserSelf_Operations` enum comment.\n [UserSelf_Operations.DEACTIVATE_ACCOUNT, notAddressable({ iconOverride: PowerOff })],\n [UserSelf_Operations.REACTIVATE_ACCOUNT, notAddressable({ iconOverride: Power })],\n ],\n })),\n\n [R.USER_SELF_PROFILES]: resourceUIBehavior(userSelfProfilesFactory, UserProfileSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.PROFILE,\n getFrontendResourceLabel: ({ currentObject }) => `${currentObject.firstName} ${currentObject.lastName}`.trim(),\n layout: {\n // Flat, sectionless profile: a single settings-row list (no cards, no\n // section headers). The old identity/contact/profile grouping added\n // visual chrome without semantic value on a short self-profile form.\n refs: { sections: [] },\n // Settings-page chrome (Settings Hub → Profile): label-left / value-right rows.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.INLINE, edit: EditChromeMode.SETTINGS_ROW },\n display: () => (\n <DisplayLayout>\n <DisplayField name=\"displayName\" />\n <DisplayField name=\"firstName\" />\n <DisplayField name=\"lastName\" />\n <DisplayField name=\"title\" />\n <DisplayField name=\"avatar\" />\n <DisplayField name=\"phoneNumber\" />\n <DisplayField name=\"bio\" />\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"displayName\" />\n <SummaryMeta>\n <DisplayField name=\"firstName\" />\n <DisplayField name=\"lastName\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <FormField name=\"displayName\" />\n <FormField name=\"firstName\" />\n <FormField name=\"lastName\" />\n <FormField name=\"title\" />\n <FormField name=\"avatar\" />\n <FormField name=\"phoneNumber\" />\n <FormField name=\"bio\" />\n </FormLayout>\n ),\n },\n fields: {\n // Title is optional metadata — hide the row on the READ view until set\n // (the edit form still renders it so it can be filled).\n title: schemaShape.title.stringUI({ display: { hideWhenEmpty: true } }),\n // Avatar renders INLINE as a small CIRCLE on display (opt-in), no caption — the\n // natural profile-picture look. Bytes are fetched over the authenticated\n // resource-integrated serve route (authz inherits the profile READ); without the\n // opt-in a file field shows the neutral file card.\n avatar: schemaShape.avatar.fileUI({\n display: {\n presentation: FileDisplayPresentation.THUMBNAIL,\n preview: { shape: FileMediaShape.CIRCLE, size: FileMediaSize.MD, showCaption: false },\n },\n }),\n // Bio is long-form prose: rich markdown on display, a markdown SOURCE\n // editor (syntax-tinted, CodeMirror-backed, lazy-loaded) on edit.\n // The edit control opts OUT of the layout's SETTINGS_ROW default\n // (label-left / narrow end column): long-form writing needs the full row\n // width, so the field authors STACKED — label above, editor spanning.\n bio: schemaShape.bio.stringUI({\n display: { displayMode: StringDisplayMode.MARKDOWN, hideWhenEmpty: true },\n edit: { editMode: StringEditMode.MARKDOWN, chromeMode: EditChromeMode.STACKED },\n }),\n },\n views: [\n [Op.READ, notAddressable()],\n // Self-profile is auto-created on signup — headless (callable via API, no view).\n [Op.CREATE, apiOnly()],\n [Op.UPDATE, notAddressable()],\n ],\n })),\n\n [R.USER_SELF_PREFERENCES]: resourceUIBehavior(userSelfPreferencesFactory, UserPreferencesSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.SETTINGS,\n layout: {\n // Settings-page sections — each preference GROUP is its own CARD so the\n // Settings Hub → Preferences page reads as distinct titled blocks\n // (Notifications / Privacy / Regional / Language) rather than one flat\n // list. `appearance` (UI theme) is intentionally NOT a section here — see\n // the omission note in the display/edit templates.\n refs: { sections: [\"notifications\", \"privacy\", \"regional\", \"language\"] },\n // Settings-page chrome (Settings Hub → Preferences): label-left / value-right rows.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.INLINE, edit: EditChromeMode.SETTINGS_ROW },\n display: () => (\n <DisplayLayout>\n <Section name=\"notifications\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"notifications\">\n <DisplayField name=\"email\" />\n <DisplayField name=\"push\" />\n <DisplayField name=\"sms\" />\n <DisplayField name=\"inApp\" />\n </ObjectScope>\n </Section>\n {/*\n Privacy contains only the two user-facing preference decisions below. Governed\n notice, contract and consent interactions are exact-release records in a separate\n runtime boundary and must never be rendered or edited as preference members.\n */}\n <Section name=\"privacy\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"privacy\">\n <DisplayField name=\"dataProcessingConsent\" />\n <DisplayField name=\"privacyLevel\" />\n </ObjectScope>\n </Section>\n {/*\n UI theme is intentionally OMITTED from this preferences page. The\n dedicated \"Appearance\" Settings-Hub panel (AppPage_AppearanceSettings)\n owns theme selection — surfacing `ui.theme` here too duplicated the\n same control on two surfaces. The `ui` field remains in the schema and\n the summary projection as the persisted value; only the editable\n duplicate on this page is removed. (If theme should instead be owned\n here and the Appearance panel retired, flip this and remove that panel.)\n */}\n <Section name=\"regional\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"regional\">\n <DisplayField name=\"timezone\" />\n <DisplayField name=\"dateFormat\" />\n <DisplayField name=\"timeFormat\" />\n <DisplayField name=\"locale\" />\n </ObjectScope>\n </Section>\n <Section name=\"language\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"languagePreferences\">\n <DisplayField name=\"primaryLanguage\" />\n <DisplayField name=\"fallbackLanguages\" />\n <DisplayField name=\"autoDetect\" />\n <DisplayField name=\"useOrganizationDefault\" />\n </ObjectScope>\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout flow={SummaryFlow.ROW}>\n <ObjectScope name=\"ui\">\n <DisplayField name=\"theme\" />\n </ObjectScope>\n <ObjectScope name=\"regional\">\n <DisplayField name=\"timezone\" />\n <DisplayField name=\"locale\" />\n </ObjectScope>\n <ObjectScope name=\"languagePreferences\">\n <DisplayField name=\"primaryLanguage\" />\n </ObjectScope>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"notifications\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"notifications\">\n <FormField name=\"email\" />\n <FormField name=\"push\" />\n <FormField name=\"sms\" />\n <FormField name=\"inApp\" />\n </ObjectScope>\n </Section>\n {/* Privacy: edit only the consent SETTINGS — see the display layout note above. */}\n <Section name=\"privacy\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"privacy\">\n <FormField name=\"dataProcessingConsent\" />\n <FormField name=\"privacyLevel\" />\n </ObjectScope>\n </Section>\n {/* UI theme intentionally OMITTED — owned by the Appearance Settings-Hub\n panel; see the display-template omission note above. */}\n <Section name=\"regional\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"regional\">\n <FormField name=\"timezone\" />\n <FormField name=\"dateFormat\" />\n <FormField name=\"timeFormat\" />\n <FormField name=\"locale\" />\n </ObjectScope>\n </Section>\n <Section name=\"language\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"languagePreferences\">\n <FormField name=\"primaryLanguage\" />\n <FormField name=\"fallbackLanguages\" />\n <FormField name=\"autoDetect\" />\n <FormField name=\"useOrganizationDefault\" />\n </ObjectScope>\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [UserSelfPreferences_Operations.RESET_TO_DEFAULTS, notAddressable({ iconOverride: RotateCcw })],\n ],\n })),\n\n [R.USERS]: usersMainResourceUIBehavior,\n\n [R.ANONYMOUS_USERS]: resourceUIBehavior(anonymousUsersFactory, AnonymousUserSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.USER,\n layout: {\n refs: { sections: [\"overview\", \"privacy\", \"context\"] },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"transpositionStatus\" />\n <DisplayField name=\"convertedToUserId\" />\n <DisplayField name=\"createdAt\" />\n </Section>\n <Section name=\"privacy\">\n <DisplayField name=\"privacy\" />\n </Section>\n <Section name=\"context\">\n <DisplayField name=\"userAgent\" />\n <DisplayField name=\"ipHash\" />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout flow={SummaryFlow.ROW}>\n <DisplayField name=\"transpositionStatus\" />\n <DisplayField name=\"createdAt\" />\n </SummaryLayout>\n ),\n },\n views: [[Op.READ, notAddressable()]],\n })),\n\n [R.USER_FEATURES]: resourceUIBehavior(userFeaturesFactory, ScopeFeaturesWithOverridesSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n layout: {\n refs: { sections: [\"overview\", \"overrides\"] },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"features\" />\n <DisplayField name=\"limits\" />\n </Section>\n <Section name=\"overrides\">\n <ObjectScope name=\"manualOverrides\">\n <DisplayField name=\"addedFeatures\" />\n <DisplayField name=\"removedFeatures\" />\n <DisplayField name=\"limitOverrides\" />\n </ObjectScope>\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <DisplayField name=\"features\" />\n <DisplayField name=\"limits\" />\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"features\" />\n <FormField name=\"limits\" />\n </Section>\n <Section name=\"overrides\">\n <ObjectScope name=\"manualOverrides\">\n <FormField name=\"addedFeatures\" />\n <FormField name=\"removedFeatures\" />\n <FormField name=\"limitOverrides\" />\n </ObjectScope>\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.SEARCH, notAddressable()],\n ],\n })),\n };\n}\n\nexport function buildIdentityAdminPresets(main: Partial<ResourceUIBehavior>): Partial<ResourceUIBehavior> {\n return {\n [R.USERS]: usersAdminResourceUIBehavior,\n\n [R.ANONYMOUS_USERS]: resourceUIBehaviorFrom(anonymousUsersFactory, main[R.ANONYMOUS_USERS]!, ({ base }) => ({\n icon: base.icon,\n layout: base.layout,\n views: [[Op.LIST, notAddressable()]],\n })),\n\n [R.USER_PROFILES]: resourceUIBehavior(userProfilesFactory, UserProfileSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.PROFILE,\n getFrontendResourceLabel: ({ currentObject }) => `${currentObject.firstName} ${currentObject.lastName}`.trim(),\n layout: main[R.USER_SELF_PROFILES]?.layout,\n views: [\n [opsVariantResolver(Op.READ, \"admin\"), notAddressable()],\n [opsVariantResolver(Op.SEARCH, \"admin\"), notAddressable()],\n // Profiles are created programmatically alongside the user — headless (API-only).\n [opsVariantResolver(Op.CREATE, \"admin\"), apiOnly()],\n [opsVariantResolver(Op.UPDATE, \"admin\"), notAddressable()],\n [opsVariantResolver(Op.DELETE, \"admin\"), notAddressable()],\n ],\n })),\n\n [R.USER_PREFERENCES]: resourceUIBehavior(userPreferencesFactory, UserPreferencesSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.SETTINGS,\n layout: main[R.USER_SELF_PREFERENCES]?.layout,\n views: [\n [opsVariantResolver(Op.READ, \"admin\"), notAddressable()],\n [opsVariantResolver(Op.UPDATE, \"admin\"), notAddressable()],\n ],\n })),\n\n [R.USER_FEATURES]: resourceUIBehaviorFrom(userFeaturesFactory, main[R.USER_FEATURES]!, ({ base }) => ({\n icon: base.icon,\n layout: base.layout,\n views: [[Op.UPDATE, notAddressable()]],\n })),\n };\n}\n\nexport const identityMainPresets = buildIdentityMainPresets();\nexport const identityAdminPresets = buildIdentityAdminPresets(identityMainPresets);\n\n// Named re-exports for `*.resource.specification.ts` (mergeResourceFrontendConfigurations + `codeHandling.frontendConfigurationSources`).\nexport const userSelfResourceUIBehavior = identityMainPresets[R.USER_SELF]!;\nexport const userSelfProfilesResourceUIBehavior = identityMainPresets[R.USER_SELF_PROFILES]!;\nexport const userSelfPreferencesResourceUIBehavior = identityMainPresets[R.USER_SELF_PREFERENCES]!;\nexport const anonymousUsersMainResourceUIBehavior = identityMainPresets[R.ANONYMOUS_USERS]!;\nexport const anonymousUsersAdminResourceUIBehavior = identityAdminPresets[R.ANONYMOUS_USERS]!;\nexport const userProfilesResourceUIBehavior = identityAdminPresets[R.USER_PROFILES]!;\nexport const userPreferencesResourceUIBehavior = identityAdminPresets[R.USER_PREFERENCES]!;\nexport const userFeaturesMainResourceUIBehavior = identityMainPresets[R.USER_FEATURES]!;\nexport const userFeaturesAdminResourceUIBehavior = identityAdminPresets[R.USER_FEATURES]!;\n"]}
|
|
@@ -17,6 +17,28 @@ import type { ResourceUIBehavior } from '@wildo-ai/saas-frontend-lib';
|
|
|
17
17
|
export declare const RESOURCES_FRONTEND_MAIN_APP: ResourceUIBehavior;
|
|
18
18
|
/** Complete resource frontend configuration for the admin application. */
|
|
19
19
|
export declare const RESOURCES_FRONTEND_ADMIN_APP: ResourceUIBehavior;
|
|
20
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Complete resource frontend configuration for the platform layer (companion, internal tooling).
|
|
22
|
+
*
|
|
23
|
+
* ## There is deliberately no `jobExecutions` / `jobPayloadStorage` preset — decided 2026-09-08 (#469)
|
|
24
|
+
*
|
|
25
|
+
* One used to exist: a per-status colour map and per-field display modes for both resources. It
|
|
26
|
+
* rendered nowhere and never could — every operation on both is `REPOSITORY_ONLY`, so no route and
|
|
27
|
+
* no generated screen can reach them — and its existence made the absence of a job browser look
|
|
28
|
+
* like an oversight rather than a decision. It was deleted rather than wired.
|
|
29
|
+
*
|
|
30
|
+
* So an operator does NOT get "what happened to this job" from inside the product. That is the
|
|
31
|
+
* accepted cost. Where to look instead:
|
|
32
|
+
*
|
|
33
|
+
* - **A parked or dead-lettered job** is a BROKER-level concern; inspect and replay it with the
|
|
34
|
+
* broker's own tooling. See the note on `QueueBackendService`.
|
|
35
|
+
* - **A worker that outran its shutdown grace period** is an ORCHESTRATOR-level concern; see the
|
|
36
|
+
* note on `WorkerShutdownManagerBackendService`.
|
|
37
|
+
*
|
|
38
|
+
* If that ever bites, the option to revisit FIRST is the middle one that was not taken: queue depth
|
|
39
|
+
* in the health signal and a recorded event on a grace-period overrun, WITHOUT a job-execution read
|
|
40
|
+
* surface — it catches fleet-level problems without exposing job payloads, which may carry personal
|
|
41
|
+
* data. Restoring display behaviour is the last step, not the first.
|
|
42
|
+
*/
|
|
21
43
|
export declare const RESOURCES_FRONTEND_PLATFORM: ResourceUIBehavior;
|
|
22
44
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/config/resources/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAatE,yEAAyE;AACzE,eAAO,MAAM,2BAA2B,EAAE,kBAQzC,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,4BAA4B,EAAE,kBAQ1C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,2BAA2B,EAAE,kBAEzC,CAAC"}
|
|
@@ -19,7 +19,6 @@ import { securityAdminPresets, securityMainPresets } from './security.resource-p
|
|
|
19
19
|
import { billingAdminPresets, billingMainPresets } from './billing.resource-presets.js';
|
|
20
20
|
import { webhooksAdminPresets, webhooksMainPresets } from './webhooks.resource-presets.js';
|
|
21
21
|
import { guidanceAdminPresets, guidanceMainPresets, guidancePlatformPresets } from './guidance.resource-presets.js';
|
|
22
|
-
import { infrastructurePlatformPresets } from './infrastructure.resource-presets.js';
|
|
23
22
|
function mergePresets(...partials) {
|
|
24
23
|
return Object.assign({}, ...partials);
|
|
25
24
|
}
|
|
@@ -27,6 +26,28 @@ function mergePresets(...partials) {
|
|
|
27
26
|
export const RESOURCES_FRONTEND_MAIN_APP = mergePresets(identityMainPresets, organizationsMainPresets, applicationMainPresets, securityMainPresets, billingMainPresets, webhooksMainPresets, guidanceMainPresets);
|
|
28
27
|
/** Complete resource frontend configuration for the admin application. */
|
|
29
28
|
export const RESOURCES_FRONTEND_ADMIN_APP = mergePresets(identityAdminPresets, organizationsAdminPresets, applicationAdminPresets, securityAdminPresets, billingAdminPresets, webhooksAdminPresets, guidanceAdminPresets);
|
|
30
|
-
/**
|
|
31
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Complete resource frontend configuration for the platform layer (companion, internal tooling).
|
|
31
|
+
*
|
|
32
|
+
* ## There is deliberately no `jobExecutions` / `jobPayloadStorage` preset — decided 2026-09-08 (#469)
|
|
33
|
+
*
|
|
34
|
+
* One used to exist: a per-status colour map and per-field display modes for both resources. It
|
|
35
|
+
* rendered nowhere and never could — every operation on both is `REPOSITORY_ONLY`, so no route and
|
|
36
|
+
* no generated screen can reach them — and its existence made the absence of a job browser look
|
|
37
|
+
* like an oversight rather than a decision. It was deleted rather than wired.
|
|
38
|
+
*
|
|
39
|
+
* So an operator does NOT get "what happened to this job" from inside the product. That is the
|
|
40
|
+
* accepted cost. Where to look instead:
|
|
41
|
+
*
|
|
42
|
+
* - **A parked or dead-lettered job** is a BROKER-level concern; inspect and replay it with the
|
|
43
|
+
* broker's own tooling. See the note on `QueueBackendService`.
|
|
44
|
+
* - **A worker that outran its shutdown grace period** is an ORCHESTRATOR-level concern; see the
|
|
45
|
+
* note on `WorkerShutdownManagerBackendService`.
|
|
46
|
+
*
|
|
47
|
+
* If that ever bites, the option to revisit FIRST is the middle one that was not taken: queue depth
|
|
48
|
+
* in the health signal and a recorded event on a grace-period overrun, WITHOUT a job-execution read
|
|
49
|
+
* surface — it catches fleet-level problems without exposing job payloads, which may carry personal
|
|
50
|
+
* data. Restoring display behaviour is the last step, not the first.
|
|
51
|
+
*/
|
|
52
|
+
export const RESOURCES_FRONTEND_PLATFORM = mergePresets(guidancePlatformPresets);
|
|
32
53
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/config/resources/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACvG,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEjH,SAAS,YAAY,CAAC,GAAG,QAAuC;IAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAuB,CAAC;AAC9D,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,MAAM,2BAA2B,GAAuB,YAAY,CACzE,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,CACpB,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,4BAA4B,GAAuB,YAAY,CAC1E,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,CACrB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAuB,YAAY,CACzE,uBAAuB,CACxB,CAAC","sourcesContent":["/**\n * Resource frontend presets — domain-oriented aggregation\n *\n * Three application scopes:\n * - **MAIN_APP** — end-user facing, role-filtered at runtime\n * - **ADMIN_APP** — app administrator / platform operator\n * - **PLATFORM** — Wildo platform layer (companion, internal tooling, CLI)\n *\n * Each domain file exports `buildXxxMainPresets`, `buildXxxAdminPresets`, and/or\n * `buildXxxPlatformPresets` depending on where its resources belong.\n *\n * **Canonical layout + template pattern:** `billing.resource-presets.tsx` (inline arrow\n * templates, `defaultChromeMode`, `useFormTemplateContext` / `useDisplayTemplateContext`).\n */\n\nimport type { ResourceUIBehavior } from '@wildo-ai/saas-frontend-lib';\nimport { identityAdminPresets, identityMainPresets } from './identity.resource-presets';\nimport { organizationsAdminPresets, organizationsMainPresets } from './organizations.resource-presets';\nimport { applicationAdminPresets, applicationMainPresets } from './application.resource-presets';\nimport { securityAdminPresets, securityMainPresets } from './security.resource-presets';\nimport { billingAdminPresets, billingMainPresets } from './billing.resource-presets';\nimport { webhooksAdminPresets, webhooksMainPresets } from './webhooks.resource-presets';\nimport { guidanceAdminPresets, guidanceMainPresets, guidancePlatformPresets } from './guidance.resource-presets';\n\nfunction mergePresets(...partials: Partial<ResourceUIBehavior>[]): ResourceUIBehavior {\n return Object.assign({}, ...partials) as ResourceUIBehavior;\n}\n\n/** Complete resource frontend configuration for the main application. */\nexport const RESOURCES_FRONTEND_MAIN_APP: ResourceUIBehavior = mergePresets(\n identityMainPresets,\n organizationsMainPresets,\n applicationMainPresets,\n securityMainPresets,\n billingMainPresets,\n webhooksMainPresets,\n guidanceMainPresets,\n);\n\n/** Complete resource frontend configuration for the admin application. */\nexport const RESOURCES_FRONTEND_ADMIN_APP: ResourceUIBehavior = mergePresets(\n identityAdminPresets,\n organizationsAdminPresets,\n applicationAdminPresets,\n securityAdminPresets,\n billingAdminPresets,\n webhooksAdminPresets,\n guidanceAdminPresets,\n);\n\n/**\n * Complete resource frontend configuration for the platform layer (companion, internal tooling).\n *\n * ## There is deliberately no `jobExecutions` / `jobPayloadStorage` preset — decided 2026-09-08 (#469)\n *\n * One used to exist: a per-status colour map and per-field display modes for both resources. It\n * rendered nowhere and never could — every operation on both is `REPOSITORY_ONLY`, so no route and\n * no generated screen can reach them — and its existence made the absence of a job browser look\n * like an oversight rather than a decision. It was deleted rather than wired.\n *\n * So an operator does NOT get \"what happened to this job\" from inside the product. That is the\n * accepted cost. Where to look instead:\n *\n * - **A parked or dead-lettered job** is a BROKER-level concern; inspect and replay it with the\n * broker's own tooling. See the note on `QueueBackendService`.\n * - **A worker that outran its shutdown grace period** is an ORCHESTRATOR-level concern; see the\n * note on `WorkerShutdownManagerBackendService`.\n *\n * If that ever bites, the option to revisit FIRST is the middle one that was not taken: queue depth\n * in the health signal and a recorded event on a grace-period overrun, WITHOUT a job-execution read\n * surface — it catches fleet-level problems without exposing job payloads, which may carry personal\n * data. Restoring display behaviour is the last step, not the first.\n */\nexport const RESOURCES_FRONTEND_PLATFORM: ResourceUIBehavior = mergePresets(\n guidancePlatformPresets,\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organizations.resource-presets.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"organizations.resource-presets.d.ts","sourceRoot":"","sources":["../../../../src/config/resources/organizations.resource-presets.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAmC,MAAM,6BAA6B,CAAC;AAoGvG,wBAAgB,6BAA6B,IAAI,OAAO,CAAC,kBAAkB,CAAC,CA0gB3E;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2B7G;AAED,eAAO,MAAM,wBAAwB,6BAAkC,CAAC;AACxE,eAAO,MAAM,yBAAyB,6BAA2D,CAAC;AAElG,eAAO,MAAM,sCAAsC,gGAA6C,CAAC;AACjG,eAAO,MAAM,uCAAuC,gGAA8C,CAAC;AACnG,eAAO,MAAM,uCAAuC,gGAAkD,CAAC;AACvG,eAAO,MAAM,yCAAyC,gGAAoD,CAAC;AAC3G,eAAO,MAAM,0CAA0C,gGAAqD,CAAC;AAC7G,eAAO,MAAM,+CAA+C,gGAA0D,CAAC;AACvH,eAAO,MAAM,6CAA6C,gGAAwD,CAAC;AACnH,eAAO,MAAM,0CAA0C,gGAAqD,CAAC;AAC7G,eAAO,MAAM,2CAA2C,gGAAsD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.config.utils.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"resource.config.utils.d.ts","sourceRoot":"","sources":["../../../../src/config/resources/resource.config.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAGnF;;;GAGG;AACH,KAAK,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,SAAS,CAAC,CAAC,CAAC;AAExF;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,SAAS,CAAC,EAAE,sBAAsB,GAAG,+BAA+B,CAE/F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,sBAAsB,GAAG,+BAA+B,CAElG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,IAAI,+BAA+B,CAEzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.resource-presets.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"security.resource-presets.d.ts","sourceRoot":"","sources":["../../../../src/config/resources/security.resource-presets.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAqetE,wBAAgB,wBAAwB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CA0dtE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA+MxG;AAED,eAAO,MAAM,mBAAmB,6BAA6B,CAAC;AAC9D,eAAO,MAAM,oBAAoB,6BAAiD,CAAC;AAEnF,eAAO,MAAM,gCAAgC,gGAAuC,CAAC;AACrF,eAAO,MAAM,iCAAiC,gGAAwC,CAAC;AACvF,eAAO,MAAM,+BAA+B,gGAAqC,CAAC"}
|
|
@@ -2,8 +2,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { resourceUIBehavior, resourceUIBehaviorFrom, polymorphicResourceUIBehavior, polymorphicResourceUIBehaviorFrom, StandardIconReference, ResourceOperationActionScope, } from '@wildo-ai/saas-frontend-lib';
|
|
3
3
|
import { DisplayField, DisplayLayout, FormField, FormLayout, ObjectScope, Section, SummaryLayout, useFormTemplateContext, useDisplayTemplateContext, ResourceLayoutPreset_Create_SamlWizard, ResourceLayoutPreset_Read_SsoSaml, SummaryFlow, SummaryMeta, SummaryTitle, } from '@wildo-ai/saas-frontend-lib';
|
|
4
4
|
import { BadgeSemanticVariant, BooleanDisplayMode, BooleanEditMode, BooleanLabellingValue, SectionMode, DisplayChromeMode, EditChromeMode, EnumDisplayMode, ShowWhenOperator, StringDisplayMode, } from '@wildo-ai/zod-decorators';
|
|
5
|
-
import { Key, ShieldCheck, Fingerprint, UserCog, KeyRound, Radio, AlertTriangle, RotateCw, RefreshCw, PowerOff, Power, CalendarPlus, ChartColumn, Download, Trash2, PlugZap, Search, ShieldX, } from 'lucide-react';
|
|
6
|
-
import { CoreResourceType as R, CoreResourceOperation as Op, ApiKeyStatus, OrgApiKeys_Operations, AuditLogs_Operations, SiemDeliveryDlq_Operations, SsoConnection_Operations, ScimTokens_Operations, orgApiKeysResourceConfiguration_InitializationFactory as orgApiKeysFactory, auditLogsResourceConfiguration_InitializationFactory as auditLogsFactory, siemExportConfigPolymorphicFactories, siemDeliveryDlqPolymorphicFactories, ssoConfigPolymorphicFactories, ssoConnectionPolymorphicFactories, scimProvisioningConfigPolymorphicFactories, scimTokensPolymorphicFactories, ApiKeyOrganizationSchema, AuditableEvent_BaseSchema, SiemExportConfigBaseSchema, SiemDeliveryDlqBaseSchema, SiemDeliveryDlqStatus, SsoConfigBaseSchema, SsoConnectionBaseSchema, ScimProvisioningConfigBaseSchema, ScimTokenBaseSchema, SsoProtocol, SIEMAuthMethod, } from '@wildo-ai/saas-models';
|
|
5
|
+
import { Key, ShieldCheck, Globe, Unlink, Fingerprint, UserCog, KeyRound, Radio, AlertTriangle, RotateCw, RefreshCw, PowerOff, Power, CalendarPlus, ChartColumn, Download, Trash2, PlugZap, Search, ShieldX, } from 'lucide-react';
|
|
6
|
+
import { CoreResourceType as R, CoreResourceOperation as Op, ApiKeyStatus, OrgApiKeys_Operations, AuditLogs_Operations, SiemDeliveryDlq_Operations, SsoConnection_Operations, ScimTokens_Operations, orgApiKeysResourceConfiguration_InitializationFactory as orgApiKeysFactory, orgProviderCredentialsResourceConfiguration_InitializationFactory as orgProviderCredentialsFactory, OrganizationProviderCredentialSchema, userProviderCredentialsResourceConfiguration_InitializationFactory as userProviderCredentialsFactory, UserProviderCredentialSchema, ProviderCredentialValidationState, auditLogsResourceConfiguration_InitializationFactory as auditLogsFactory, siemExportConfigPolymorphicFactories, siemDeliveryDlqPolymorphicFactories, ssoConfigPolymorphicFactories, SsoConfig_Operations, ssoConnectionPolymorphicFactories, scimProvisioningConfigPolymorphicFactories, scimTokensPolymorphicFactories, ApiKeyOrganizationSchema, AuditableEvent_BaseSchema, SiemExportConfigBaseSchema, SiemDeliveryDlqBaseSchema, SiemDeliveryDlqStatus, SsoConfigBaseSchema, SsoConnectionBaseSchema, ScimProvisioningConfigBaseSchema, ScimTokenBaseSchema, SsoProtocol, SIEMAuthMethod, } from '@wildo-ai/saas-models';
|
|
7
7
|
import { addressable, notAddressable } from './resource.config.utils.js';
|
|
8
8
|
// ── SIEM export config — field overrides (shared across polymorphic variants) ─
|
|
9
9
|
const siemExportFieldOverrides = {
|
|
@@ -66,13 +66,13 @@ function SiemDlqSummaryTemplate() {
|
|
|
66
66
|
return (_jsxs(SummaryLayout, { children: [_jsx(SummaryTitle, { name: "failureReason" }), _jsx(SummaryMeta, { children: _jsx(DisplayField, { name: "status" }) })] }));
|
|
67
67
|
}
|
|
68
68
|
function SsoConfigDisplayTemplate() {
|
|
69
|
-
return (_jsxs(DisplayLayout, { children: [_jsx(Section, { name: "enforcement", appearance: SectionMode.CARD, children: _jsxs(ObjectScope, { name: "enforcement", children: [_jsx(DisplayField, { name: "requireSSO" }), _jsx(DisplayField, { name: "allowPasswordFallback" }), _jsx(DisplayField, { name: "
|
|
69
|
+
return (_jsxs(DisplayLayout, { children: [_jsx(Section, { name: "enforcement", appearance: SectionMode.CARD, children: _jsxs(ObjectScope, { name: "enforcement", children: [_jsx(DisplayField, { name: "requireSSO" }), _jsx(DisplayField, { name: "allowPasswordFallback" }), _jsx(DisplayField, { name: "graceLoginAttempts" })] }) }), _jsx(Section, { name: "domains", children: _jsxs(ObjectScope, { name: "domains", children: [_jsx(DisplayField, { name: "verifiedDomains" }), _jsx(DisplayField, { name: "ssoEnabledDomains" }), _jsx(DisplayField, { name: "domainHinting" }), _jsx(DisplayField, { name: "allowExternalDomains" }), _jsx(DisplayField, { name: "domainVerificationStatus" })] }) }), _jsx(Section, { name: "provisioning", children: _jsxs(ObjectScope, { name: "provisioning", children: [_jsx(DisplayField, { name: "autoCreateUsers" }), _jsx(DisplayField, { name: "autoUpdateUsers" }), _jsx(DisplayField, { name: "autoDeactivateUsers" }), _jsx(DisplayField, { name: "defaultRole" }), _jsx(DisplayField, { name: "requiredAttributes" }), _jsx(DisplayField, { name: "syncFrequencyHours" })] }) }), _jsx(Section, { name: "session", children: _jsxs(ObjectScope, { name: "sessionSettings", children: [_jsx(DisplayField, { name: "ssoSessionDurationMinutes" }), _jsx(DisplayField, { name: "requireReauthForSensitive" }), _jsx(DisplayField, { name: "singleLogoutEnabled" }), _jsx(DisplayField, { name: "maxConcurrentSessions" })] }) }), _jsx(Section, { name: "audit", children: _jsxs(ObjectScope, { name: "auditConfig", children: [_jsx(DisplayField, { name: "logAllSSOEvents" }), _jsx(DisplayField, { name: "logProviderSwitching" }), _jsx(DisplayField, { name: "logRoleMapping" }), _jsx(DisplayField, { name: "complianceReporting" }), _jsx(DisplayField, { name: "retentionDays" })] }) }), _jsx(Section, { name: "emergency", children: _jsxs(ObjectScope, { name: "emergencyAccess", children: [_jsx(DisplayField, { name: "enabled" }), _jsx(DisplayField, { name: "breakGlassAccounts" })] }) }), _jsxs(Section, { name: "oauth", children: [_jsxs(ObjectScope, { name: "oauth2ProviderRestrictions", children: [_jsx(DisplayField, { name: "allowedProviders" }), _jsx(DisplayField, { name: "blockedProviders" }), _jsx(DisplayField, { name: "requireEnterpriseSSOOnly" })] }), _jsx(DisplayField, { name: "socialCredentialOverrides" })] })] }));
|
|
70
70
|
}
|
|
71
71
|
function SsoConfigSummaryTemplate() {
|
|
72
72
|
return (_jsx(SummaryLayout, { flow: SummaryFlow.ROW, children: _jsx(ObjectScope, { name: "enforcement", children: _jsx(DisplayField, { name: "requireSSO" }) }) }));
|
|
73
73
|
}
|
|
74
74
|
function SsoConnectionDisplayTemplate() {
|
|
75
|
-
return (_jsxs(DisplayLayout, { children: [_jsxs(Section, { name: "overview", appearance: SectionMode.CARD, children: [_jsx(DisplayField, { name: "displayName" }), _jsx(DisplayField, { name: "protocol" }), _jsx(DisplayField, { name: "enabled" }), _jsx(DisplayField, { name: "isDefault" }), _jsx(DisplayField, { name: "externalProviderId" })] }), _jsx(Section, { name: "oidc", children: _jsxs(ObjectScope, { name: "oidc", children: [_jsx(DisplayField, { name: "templateMode" }), _jsx(DisplayField, { name: "discoveryUrl" }), _jsx(DisplayField, { name: "issuer" }), _jsx(DisplayField, { name: "authorizationEndpoint" }), _jsx(DisplayField, { name: "tokenEndpoint" }), _jsx(DisplayField, { name: "userInfoEndpoint" }), _jsx(DisplayField, { name: "jwksUri" }), _jsx(DisplayField, { name: "endSessionEndpoint" }), _jsx(DisplayField, { name: "clientId" }), _jsx(DisplayField, { name: "scopes" }), _jsx(DisplayField, { name: "responseType" }), _jsx(DisplayField, { name: "responseMode" }), _jsx(DisplayField, { name: "
|
|
75
|
+
return (_jsxs(DisplayLayout, { children: [_jsxs(Section, { name: "overview", appearance: SectionMode.CARD, children: [_jsx(DisplayField, { name: "displayName" }), _jsx(DisplayField, { name: "protocol" }), _jsx(DisplayField, { name: "enabled" }), _jsx(DisplayField, { name: "isDefault" }), _jsx(DisplayField, { name: "externalProviderId" })] }), _jsx(Section, { name: "oidc", children: _jsxs(ObjectScope, { name: "oidc", children: [_jsx(DisplayField, { name: "templateMode" }), _jsx(DisplayField, { name: "discoveryUrl" }), _jsx(DisplayField, { name: "issuer" }), _jsx(DisplayField, { name: "authorizationEndpoint" }), _jsx(DisplayField, { name: "tokenEndpoint" }), _jsx(DisplayField, { name: "userInfoEndpoint" }), _jsx(DisplayField, { name: "jwksUri" }), _jsx(DisplayField, { name: "endSessionEndpoint" }), _jsx(DisplayField, { name: "clientId" }), _jsx(DisplayField, { name: "scopes" }), _jsx(DisplayField, { name: "responseType" }), _jsx(DisplayField, { name: "responseMode" }), _jsx(DisplayField, { name: "pkceEnabled" }), _jsx(DisplayField, { name: "pkceMethod" }), _jsx(DisplayField, { name: "prompt" }), _jsx(DisplayField, { name: "acrValues" }), _jsx(DisplayField, { name: "maxAge" }), _jsx(DisplayField, { name: "claimsMapping" }), _jsx(DisplayField, { name: "auditSettings" })] }) }), _jsx(Section, { name: "saml", children: _jsxs(ObjectScope, { name: "saml", children: [_jsx(DisplayField, { name: "entityId" }), _jsx(DisplayField, { name: "ssoUrl" }), _jsx(DisplayField, { name: "sloUrl" }), _jsx(DisplayField, { name: "x509CertificatePem" }), _jsx(DisplayField, { name: "attributeMapping" }), _jsx(DisplayField, { name: "signRequests" }), _jsx(DisplayField, { name: "wantAssertionsSigned" }), _jsx(DisplayField, { name: "allowedClockDrift" }), _jsx(DisplayField, { name: "forceAuthn" }), _jsx(DisplayField, { name: "maxAuthAge" }), _jsx(DisplayField, { name: "nameIdFormat" }), _jsx(DisplayField, { name: "allowIdpInitiated" }), _jsx(DisplayField, { name: "auditSettings" })] }) }), _jsxs(Section, { name: "provisioning", children: [_jsx(DisplayField, { name: "autoCreateUsers" }), _jsx(DisplayField, { name: "autoVerifyEmail" }), _jsx(DisplayField, { name: "bypassAppMFA" }), _jsx(DisplayField, { name: "defaultRole" }), _jsx(DisplayField, { name: "allowedDomains" }), _jsx(DisplayField, { name: "roleMapping" }), _jsx(DisplayField, { name: "groupMapping" })] })] }));
|
|
76
76
|
}
|
|
77
77
|
function SsoConnectionSummaryTemplate() {
|
|
78
78
|
return (_jsxs(SummaryLayout, { children: [_jsx(SummaryTitle, { name: "displayName" }), _jsxs(SummaryMeta, { children: [_jsx(DisplayField, { name: "protocol" }), _jsx(DisplayField, { name: "enabled" })] })] }));
|
|
@@ -138,6 +138,88 @@ export function buildSecurityMainPresets() {
|
|
|
138
138
|
[OrgApiKeys_Operations.USAGE_STATS, notAddressable({ iconOverride: ChartColumn })],
|
|
139
139
|
],
|
|
140
140
|
})),
|
|
141
|
+
/**
|
|
142
|
+
* The tenant's OWN credentials toward third parties.
|
|
143
|
+
*
|
|
144
|
+
* Easy to read as a sibling of API keys and it is their mirror image: an API key lets somebody
|
|
145
|
+
* reach THIS application, and one of these lets this application reach somebody else AS THIS
|
|
146
|
+
* TENANT. Same administrator, opposite direction — which is why they sit next to each other in
|
|
147
|
+
* Settings and must not be described in the same words.
|
|
148
|
+
*
|
|
149
|
+
* ## No layout refs, deliberately
|
|
150
|
+
*
|
|
151
|
+
* Declaring `layout.refs.sections` creates a contract the resource SPECIFICATION has to document
|
|
152
|
+
* slot for slot, validated at load; this resource has eight visible fields and no section would
|
|
153
|
+
* earn that coupling. Field-level UI is the whole surface until it needs one.
|
|
154
|
+
*
|
|
155
|
+
* ## What the administrator can see, and what they cannot
|
|
156
|
+
*
|
|
157
|
+
* `secretValue` is `.isWriteOnlySecret()`, so it is present in the CREATE and UPDATE forms and
|
|
158
|
+
* masked on every read — the operator supplies and rotates it, and no screen ever shows it back.
|
|
159
|
+
* Nothing here weakens that; the preset only names the fields that are already readable.
|
|
160
|
+
*/
|
|
161
|
+
[R.ORG_PROVIDER_CREDENTIALS]: resourceUIBehavior(orgProviderCredentialsFactory, OrganizationProviderCredentialSchema, ({ schemaShape }) => ({
|
|
162
|
+
icon: KeyRound,
|
|
163
|
+
fields: {
|
|
164
|
+
validationState: schemaShape.validationState.enumUI({
|
|
165
|
+
display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },
|
|
166
|
+
edit: { showDescription: true },
|
|
167
|
+
values: {
|
|
168
|
+
// UNVALIDATED is the honest default and is not a warning: storing a credential proves
|
|
169
|
+
// only that somebody typed one, which is a normal state rather than a problem.
|
|
170
|
+
[ProviderCredentialValidationState.UNVALIDATED]: { color: BadgeSemanticVariant.SECONDARY },
|
|
171
|
+
[ProviderCredentialValidationState.VALID]: { color: BadgeSemanticVariant.SUCCESS },
|
|
172
|
+
// The provider REJECTED it on its last use, so the tenant is acting as nobody until it
|
|
173
|
+
// is rotated. That is a call to action, not an error the screen has to explain away.
|
|
174
|
+
[ProviderCredentialValidationState.INVALID]: { color: BadgeSemanticVariant.WARNING },
|
|
175
|
+
},
|
|
176
|
+
}),
|
|
177
|
+
},
|
|
178
|
+
getFrontendResourceLabel: ({ currentObject }) => `${currentObject.providerRef} · ${currentObject.secretSlug}`,
|
|
179
|
+
emptyState: { primaryAction: Op.CREATE },
|
|
180
|
+
views: [
|
|
181
|
+
[Op.READ, notAddressable()],
|
|
182
|
+
[Op.LIST, addressable()],
|
|
183
|
+
[Op.CREATE, notAddressable()],
|
|
184
|
+
[Op.UPDATE, notAddressable()],
|
|
185
|
+
[Op.DELETE, notAddressable()],
|
|
186
|
+
],
|
|
187
|
+
})),
|
|
188
|
+
[R.USER_PROVIDER_CREDENTIALS]: resourceUIBehavior(userProviderCredentialsFactory, UserProviderCredentialSchema, ({ schemaShape }) => ({
|
|
189
|
+
icon: KeyRound,
|
|
190
|
+
fields: {
|
|
191
|
+
// The same three states as the tenant's, coloured identically on purpose: a person reading
|
|
192
|
+
// their own connections and an administrator reading the tenant's are answering the same
|
|
193
|
+
// question, and two colour languages for one vocabulary is how a reader learns to distrust
|
|
194
|
+
// both. The WORDS come from the enum's i18n entry, authored once for every surface.
|
|
195
|
+
validationState: schemaShape.validationState.enumUI({
|
|
196
|
+
display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },
|
|
197
|
+
edit: { showDescription: true },
|
|
198
|
+
values: {
|
|
199
|
+
// UNVALIDATED is the honest default and is not a warning: storing a credential proves
|
|
200
|
+
// only that somebody typed one, which is a normal state rather than a problem.
|
|
201
|
+
[ProviderCredentialValidationState.UNVALIDATED]: { color: BadgeSemanticVariant.SECONDARY },
|
|
202
|
+
[ProviderCredentialValidationState.VALID]: { color: BadgeSemanticVariant.SUCCESS },
|
|
203
|
+
// The provider REJECTED it on its last use. For a person this is the more actionable of
|
|
204
|
+
// the two failure shapes: nobody else can rotate it for them, so the badge is the only
|
|
205
|
+
// notice they will get that their own integration has stopped working.
|
|
206
|
+
[ProviderCredentialValidationState.INVALID]: { color: BadgeSemanticVariant.WARNING },
|
|
207
|
+
},
|
|
208
|
+
}),
|
|
209
|
+
},
|
|
210
|
+
getFrontendResourceLabel: ({ currentObject }) => `${currentObject.providerRef} · ${currentObject.secretSlug}`,
|
|
211
|
+
emptyState: { primaryAction: Op.CREATE },
|
|
212
|
+
// No `layout.refs`, matching the tenant sibling: this resource declares no layout sections in
|
|
213
|
+
// its specification, and a preset naming refs the layout does not declare fails the
|
|
214
|
+
// structural-slot validator at import time and crash-loops the companion.
|
|
215
|
+
views: [
|
|
216
|
+
[Op.READ, notAddressable()],
|
|
217
|
+
[Op.LIST, addressable()],
|
|
218
|
+
[Op.CREATE, notAddressable()],
|
|
219
|
+
[Op.UPDATE, notAddressable()],
|
|
220
|
+
[Op.DELETE, notAddressable()],
|
|
221
|
+
],
|
|
222
|
+
})),
|
|
141
223
|
[R.AUDIT_LOGS]: resourceUIBehavior(auditLogsFactory, AuditableEvent_BaseSchema, ({ schema, schemaShape, opsVariantResolver }) => ({
|
|
142
224
|
icon: ShieldCheck,
|
|
143
225
|
getFrontendResourceLabel: ({ currentObject }) => `${currentObject.eventType ?? 'Audit Event'} — ${currentObject.createdAt?.toISOString?.() ?? ''}`,
|
|
@@ -271,6 +353,12 @@ export function buildSecurityMainPresets() {
|
|
|
271
353
|
},
|
|
272
354
|
views: [
|
|
273
355
|
[Op.READ, addressable()],
|
|
356
|
+
// Domain ownership is the one publicly mutable part of this policy row (#424). The three
|
|
357
|
+
// actions live beside the `domains` section: claim returns a DNS record to copy, verify
|
|
358
|
+
// resolves it, revoke releases the domain for another scope to verify.
|
|
359
|
+
[SsoConfig_Operations.CLAIM_DOMAIN, notAddressable({ iconOverride: Globe })],
|
|
360
|
+
[SsoConfig_Operations.VERIFY_DOMAIN, notAddressable({ iconOverride: ShieldCheck })],
|
|
361
|
+
[SsoConfig_Operations.REVOKE_DOMAIN, notAddressable({ iconOverride: Unlink })],
|
|
274
362
|
],
|
|
275
363
|
variantOverrides: {
|
|
276
364
|
[R.APPLICATION]: { views: [] },
|
|
@@ -431,6 +519,9 @@ export function buildSecurityAdminPresets(main) {
|
|
|
431
519
|
layout: base.layout,
|
|
432
520
|
views: [
|
|
433
521
|
[Op.READ, addressable()],
|
|
522
|
+
[SsoConfig_Operations.CLAIM_DOMAIN, notAddressable({ iconOverride: Globe })],
|
|
523
|
+
[SsoConfig_Operations.VERIFY_DOMAIN, notAddressable({ iconOverride: ShieldCheck })],
|
|
524
|
+
[SsoConfig_Operations.REVOKE_DOMAIN, notAddressable({ iconOverride: Unlink })],
|
|
434
525
|
],
|
|
435
526
|
variantOverrides: {
|
|
436
527
|
[R.ORGANIZATIONS]: {
|