@wildo-ai/presets-components 1.1.3 → 1.1.5
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/components/actions/action-bar.d.ts.map +1 -1
- package/dist/esm/components/actions/action-bar.js +61 -7
- package/dist/esm/components/actions/action-bar.js.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.js +3 -3
- package/dist/esm/components/actions/action-button.js.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.js +62 -3
- package/dist/esm/components/actions/button.js.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.js +1 -1
- package/dist/esm/components/ai-elements/artifacts/code-block.js.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/diff-block.d.ts +4 -0
- package/dist/esm/components/ai-elements/artifacts/diff-block.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/artifacts/diff-block.js +165 -0
- package/dist/esm/components/ai-elements/artifacts/diff-block.js.map +1 -0
- package/dist/esm/components/ai-elements/artifacts/diff-block.labels.d.ts +3 -0
- package/dist/esm/components/ai-elements/artifacts/diff-block.labels.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/artifacts/diff-block.labels.js +63 -0
- package/dist/esm/components/ai-elements/artifacts/diff-block.labels.js.map +1 -0
- 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-argument-fields.d.ts +68 -0
- package/dist/esm/components/ai-elements/decision/approval-argument-fields.d.ts.map +1 -0
- package/dist/esm/components/ai-elements/decision/approval-argument-fields.js +208 -0
- package/dist/esm/components/ai-elements/decision/approval-argument-fields.js.map +1 -0
- package/dist/esm/components/ai-elements/decision/approval.d.ts +36 -4
- package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.js +77 -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.js +1 -1
- package/dist/esm/components/ai-elements/execution/task.js.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.js +8 -1
- package/dist/esm/components/ai-elements/execution/tool.js.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/graph.lazy.js +15 -15
- package/dist/esm/components/ai-elements/graph/graph.lazy.js.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 +0 -1
- package/dist/esm/components/ai-elements/meta/agent.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/meta/agent.js +23 -18
- 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/context.lazy.js +13 -11
- package/dist/esm/components/ai-elements/meta/context.lazy.js.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 +6 -0
- 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.js +13 -1
- package/dist/esm/components/ai-elements/trace/chain-of-thought.js.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-consent-gate.d.ts +23 -0
- package/dist/esm/components/app/app-layout-consent-gate.d.ts.map +1 -0
- package/dist/esm/components/app/app-layout-consent-gate.js +133 -0
- package/dist/esm/components/app/app-layout-consent-gate.js.map +1 -0
- package/dist/esm/components/app/app-layout-document-acceptance-gate.d.ts +19 -0
- package/dist/esm/components/app/app-layout-document-acceptance-gate.d.ts.map +1 -0
- package/dist/esm/components/app/app-layout-document-acceptance-gate.js +56 -0
- package/dist/esm/components/app/app-layout-document-acceptance-gate.js.map +1 -0
- 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/app-layout-main-container.labels.js +21 -0
- package/dist/esm/components/app/app-layout-main-container.labels.js.map +1 -1
- package/dist/esm/components/app/public-layout-main-container.d.ts +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 +9 -8
- 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/app/public-layout-terms.d.ts +46 -0
- package/dist/esm/components/app/public-layout-terms.d.ts.map +1 -0
- package/dist/esm/components/app/public-layout-terms.js +137 -0
- package/dist/esm/components/app/public-layout-terms.js.map +1 -0
- package/dist/esm/components/billing/billing-format.utils.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.d.ts +1 -1
- package/dist/esm/components/billing/billing-invoice-history.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.js +3 -1
- package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-invoice-history.labels.js +1 -0
- package/dist/esm/components/billing/billing-invoice-history.labels.js.map +1 -1
- package/dist/esm/components/billing/billing-plan-change-preview.d.ts +5 -0
- package/dist/esm/components/billing/billing-plan-change-preview.d.ts.map +1 -0
- package/dist/esm/components/billing/billing-plan-change-preview.js +22 -0
- package/dist/esm/components/billing/billing-plan-change-preview.js.map +1 -0
- package/dist/esm/components/billing/billing-plan-change-preview.labels.d.ts +3 -0
- package/dist/esm/components/billing/billing-plan-change-preview.labels.d.ts.map +1 -0
- package/dist/esm/components/billing/billing-plan-change-preview.labels.js +19 -0
- package/dist/esm/components/billing/billing-plan-change-preview.labels.js.map +1 -0
- package/dist/esm/components/billing/billing-portal-link.d.ts +1 -1
- package/dist/esm/components/billing/billing-portal-link.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.js +3 -1
- package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-portal-link.labels.js +1 -0
- package/dist/esm/components/billing/billing-portal-link.labels.js.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts +1 -1
- package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.js +4 -2
- package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-pricing-table.labels.js +1 -0
- package/dist/esm/components/billing/billing-pricing-table.labels.js.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.d.ts +1 -1
- package/dist/esm/components/billing/billing-subscription-status.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.js +3 -1
- package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-subscription-status.labels.js +1 -0
- package/dist/esm/components/billing/billing-subscription-status.labels.js.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.js +4 -4
- package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.labels.d.ts.map +1 -1
- package/dist/esm/components/billing/billing-usage-dashboard.labels.js +2 -0
- package/dist/esm/components/billing/billing-usage-dashboard.labels.js.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.js +16 -15
- package/dist/esm/components/data-display/badge.js.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 +2 -1
- package/dist/esm/components/data-display/description-list.d.ts.map +1 -1
- package/dist/esm/components/data-display/description-list.js +24 -8
- package/dist/esm/components/data-display/description-list.js.map +1 -1
- package/dist/esm/components/data-display/description-list.labels.d.ts.map +1 -1
- package/dist/esm/components/data-display/duration.d.ts +15 -0
- package/dist/esm/components/data-display/duration.d.ts.map +1 -0
- package/dist/esm/components/data-display/duration.js +50 -0
- package/dist/esm/components/data-display/duration.js.map +1 -0
- package/dist/esm/components/data-display/duration.labels.d.ts +15 -0
- package/dist/esm/components/data-display/duration.labels.d.ts.map +1 -0
- package/dist/esm/components/data-display/duration.labels.js +35 -0
- package/dist/esm/components/data-display/duration.labels.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-address.d.ts +21 -0
- package/dist/esm/components/data-display/formatters/display-field-address.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-address.js +75 -0
- package/dist/esm/components/data-display/formatters/display-field-address.js.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-address.labels.d.ts +3 -0
- package/dist/esm/components/data-display/formatters/display-field-address.labels.d.ts.map +1 -0
- package/dist/esm/components/data-display/formatters/display-field-address.labels.js +13 -0
- package/dist/esm/components/data-display/formatters/display-field-address.labels.js.map +1 -0
- 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.js +6 -2
- package/dist/esm/components/data-display/formatters/display-field-bigdecimal.js.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 +2 -2
- 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.js +2 -2
- package/dist/esm/components/data-display/formatters/display-field-code.js.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 +3 -3
- 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.js +17 -4
- package/dist/esm/components/data-display/formatters/display-field-date.js.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 +3 -3
- 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.js +17 -4
- package/dist/esm/components/data-display/formatters/display-field-datetime.js.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.js +12 -8
- package/dist/esm/components/data-display/formatters/display-field-enum.js.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.js +2 -1
- package/dist/esm/components/data-display/formatters/display-field-file-audio.js.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 +4 -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.js +18 -5
- package/dist/esm/components/data-display/formatters/display-field-file-document.js.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-document.labels.js +20 -0
- package/dist/esm/components/data-display/formatters/display-field-file-document.labels.js.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.js +3 -1
- package/dist/esm/components/data-display/formatters/display-field-file-image.js.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.js +2 -2
- package/dist/esm/components/data-display/formatters/display-field-file.js.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-file.labels.js +1 -0
- package/dist/esm/components/data-display/formatters/display-field-file.labels.js.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.js +2 -2
- package/dist/esm/components/data-display/formatters/display-field-number.js.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.js +82 -7
- package/dist/esm/components/data-display/formatters/display-field-string.js.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/identifier.d.ts +19 -0
- package/dist/esm/components/data-display/identifier.d.ts.map +1 -0
- package/dist/esm/components/data-display/identifier.js +21 -0
- package/dist/esm/components/data-display/identifier.js.map +1 -0
- package/dist/esm/components/data-display/kbd.d.ts +17 -0
- package/dist/esm/components/data-display/kbd.d.ts.map +1 -0
- package/dist/esm/components/data-display/kbd.js +18 -0
- package/dist/esm/components/data-display/kbd.js.map +1 -0
- 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/markdown-stream.lazy.js +13 -2
- package/dist/esm/components/data-display/markdown-stream.lazy.js.map +1 -1
- package/dist/esm/components/data-display/notification-indicator.d.ts.map +1 -1
- package/dist/esm/components/data-display/notification-indicator.js +3 -11
- package/dist/esm/components/data-display/notification-indicator.js.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-worker.d.ts +63 -0
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.d.ts.map +1 -0
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.js +75 -0
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.js.map +1 -0
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.d.ts +32 -0
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.d.ts.map +1 -0
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.js +36 -0
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer-worker.vite.js.map +1 -0
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.d.ts +46 -6
- 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.js +70 -46
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.js.map +1 -1
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.d.ts +12 -2
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.d.ts.map +1 -1
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.js +3 -2
- package/dist/esm/components/data-display/pdf-viewer/pdf-viewer.lazy.js.map +1 -1
- package/dist/esm/components/data-display/timeline.d.ts +3 -0
- package/dist/esm/components/data-display/timeline.d.ts.map +1 -0
- package/dist/esm/components/data-display/timeline.js +92 -0
- package/dist/esm/components/data-display/timeline.js.map +1 -0
- package/dist/esm/components/feedback/celebration-overlay.d.ts +13 -4
- package/dist/esm/components/feedback/celebration-overlay.d.ts.map +1 -1
- package/dist/esm/components/feedback/celebration-overlay.js +146 -22
- package/dist/esm/components/feedback/celebration-overlay.js.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.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.map +1 -1
- package/dist/esm/components/feedback/notification-center.js +6 -6
- package/dist/esm/components/feedback/notification-center.js.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.d.ts +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
- package/dist/esm/components/feedback/operations-confirm-critical.js +9 -7
- package/dist/esm/components/feedback/operations-confirm-critical.js.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.js +11 -3
- package/dist/esm/components/form/chromes/field.js.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/chromes/form-primitive.labels.js +28 -0
- package/dist/esm/components/form/chromes/form-primitive.labels.js.map +1 -1
- package/dist/esm/components/form/combobox.d.ts.map +1 -1
- package/dist/esm/components/form/combobox.js +4 -3
- package/dist/esm/components/form/combobox.js.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.js +2 -2
- package/dist/esm/components/form/controls/boolean/checkbox.js.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/cm6-editor.lazy.js +11 -2
- package/dist/esm/components/form/controls/code-editor/cm6-editor.lazy.js.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/datetime-range-picker.labels.js +11 -2
- package/dist/esm/components/form/controls/date-time/datetime-range-picker.labels.js.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/date-time/time-range-picker.labels.js +11 -2
- package/dist/esm/components/form/controls/date-time/time-range-picker.labels.js.map +1 -1
- package/dist/esm/components/form/controls/enum/radio.d.ts +1 -1
- package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
- package/dist/esm/components/form/controls/enum/radio.js +13 -12
- package/dist/esm/components/form/controls/enum/radio.js.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.js +5 -3
- package/dist/esm/components/form/controls/enum/select-multiple.js.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.js +96 -5
- package/dist/esm/components/form/controls/enum/toggle-group.js.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/dropbox-picker.d.ts +44 -0
- package/dist/esm/components/form/controls/file/providers/dropbox-picker.d.ts.map +1 -0
- package/dist/esm/components/form/controls/file/providers/dropbox-picker.js +137 -0
- package/dist/esm/components/form/controls/file/providers/dropbox-picker.js.map +1 -0
- package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.d.ts +22 -0
- package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.d.ts.map +1 -0
- package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.js +27 -0
- package/dist/esm/components/form/controls/file/providers/dropbox-picker.lazy.js.map +1 -0
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts +54 -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 +159 -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 +22 -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 +27 -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 +41 -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 +129 -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 +22 -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 +27 -0
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js.map +1 -0
- 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/number/slider.labels.js +9 -2
- package/dist/esm/components/form/controls/number/slider.labels.js.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.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/password-input.labels.js +9 -2
- package/dist/esm/components/form/controls/string/password-input.labels.js.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.js +2 -2
- package/dist/esm/components/navigation/app-level/command-menu.js.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.js +35 -13
- package/dist/esm/components/navigation/app-level/menubar.js.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.js +10 -2
- package/dist/esm/components/navigation/app-level/navigation-back.js.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.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 +15 -0
- 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-action-button.labels.js +4 -0
- package/dist/esm/components/navigation/app-level/quick-action-button.labels.js.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.js +38 -22
- package/dist/esm/components/navigation/app-level/sidebar.js.map +1 -1
- package/dist/esm/components/navigation/app-level/sidebar.labels.d.ts.map +1 -1
- package/dist/esm/components/navigation/app-level/sidebar.labels.js +1 -0
- package/dist/esm/components/navigation/app-level/sidebar.labels.js.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 +30 -5
- 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.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.js +2 -2
- package/dist/esm/components/navigation/command.js.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.js +11 -1
- package/dist/esm/components/overlays/containers/alert-dialog.js.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.js +11 -1
- package/dist/esm/components/overlays/containers/dialog.js.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.js +71 -6
- package/dist/esm/components/sections/card.js.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/content-section.js +36 -6
- package/dist/esm/components/sections/content-section.js.map +1 -1
- package/dist/esm/components/sections/disclosure-nesting.d.ts.map +1 -1
- package/dist/esm/components/sections/option-gesture.d.ts +15 -0
- package/dist/esm/components/sections/option-gesture.d.ts.map +1 -0
- package/dist/esm/components/sections/option-gesture.js +66 -0
- package/dist/esm/components/sections/option-gesture.js.map +1 -0
- 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 +64 -15
- 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.js +9 -3
- package/dist/esm/components/typography/link.js.map +1 -1
- package/dist/esm/components/typography/link.labels.d.ts.map +1 -1
- package/dist/esm/components/typography/text.d.ts +1 -1
- package/dist/esm/components/typography/text.d.ts.map +1 -1
- package/dist/esm/components/typography/text.js +3 -2
- package/dist/esm/components/typography/text.js.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-design-system.js +37 -60
- package/dist/esm/config/preset-design-system.js.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-navigation.js +0 -5
- package/dist/esm/config/preset-navigation.js.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 +2 -0
- package/dist/esm/config/resources/application.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/application.resource-presets.js +163 -7
- package/dist/esm/config/resources/application.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/billing.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/billing.resource-presets.js +1 -0
- package/dist/esm/config/resources/billing.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/guidance.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/guidance.resource-presets.js +21 -5
- package/dist/esm/config/resources/guidance.resource-presets.js.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 +25 -3
- package/dist/esm/config/resources/identity.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/index.d.ts.map +1 -1
- 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/organizations.resource-presets.js +90 -12
- package/dist/esm/config/resources/organizations.resource-presets.js.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 +8 -2
- package/dist/esm/config/resources/security.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/security.resource-presets.js +185 -29
- 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/config/resources/webhooks.resource-presets.js +27 -2
- package/dist/esm/config/resources/webhooks.resource-presets.js.map +1 -1
- package/dist/esm/index.d.ts +7 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +7 -1
- 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 +48 -34
- 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-icons.js +3 -1
- package/dist/esm/registration/register-default-icons.js.map +1 -1
- package/dist/esm/registration/register-default-presets.d.ts.map +1 -1
- package/dist/esm/registration/register-default-presets.js +36 -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 +50 -0
- package/dist/esm/registration/register-provider-components.js.map +1 -0
- package/dist/esm/shiki-subset.d.ts +11 -3
- package/dist/esm/shiki-subset.d.ts.map +1 -1
- package/dist/esm/shiki-subset.js +10 -2
- package/dist/esm/shiki-subset.js.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/cozy.theme.js +19 -5
- package/dist/esm/themes/cozy.theme.js.map +1 -1
- package/dist/esm/themes/dense.theme.d.ts.map +1 -1
- package/dist/esm/themes/dense.theme.js +56 -10
- package/dist/esm/themes/dense.theme.js.map +1 -1
- package/dist/esm/themes/editorial.theme.d.ts.map +1 -1
- package/dist/esm/themes/editorial.theme.js +19 -5
- package/dist/esm/themes/editorial.theme.js.map +1 -1
- package/dist/esm/themes/glass.theme.d.ts.map +1 -1
- package/dist/esm/themes/glass.theme.js +5 -1
- package/dist/esm/themes/glass.theme.js.map +1 -1
- package/dist/esm/themes/neo-brutalist.theme.d.ts.map +1 -1
- package/dist/esm/themes/neo-brutalist.theme.js +9 -2
- package/dist/esm/themes/neo-brutalist.theme.js.map +1 -1
- package/dist/esm/themes/terminal.theme.d.ts.map +1 -1
- package/dist/esm/themes/terminal.theme.js +19 -5
- package/dist/esm/themes/terminal.theme.js.map +1 -1
- package/dist/esm/themes/trading.theme.d.ts.map +1 -1
- package/dist/esm/themes/trading.theme.js +22 -6
- package/dist/esm/themes/trading.theme.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +29 -44
- package/dist/esm/.native.tsbuildinfo +0 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts +0 -16
- package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +0 -1
- package/dist/esm/components/form/controls/form-field-checkbox-group.js +0 -143
- package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { resourceUIBehavior, resourceUIBehaviorFrom, StandardIconReference, ActionVisibility, } from '@wildo-ai/saas-frontend-lib';
|
|
2
|
+
import { resourceUIBehavior, resourceUIBehaviorFrom, StandardIconReference, ActionVisibility, useApplication, ResourceLayoutInlineEditDefault, CollectionDisplayMode, } from '@wildo-ai/saas-frontend-lib';
|
|
3
3
|
import { DisplayField, DisplayLayout, FormField, FormLayout, ObjectScope, RelatedResourceSections, Section, SummaryLayout, SummaryFlow, SummaryMeta, SummaryTitle, } from '@wildo-ai/saas-frontend-lib';
|
|
4
4
|
import { BadgeSemanticVariant, DisplayChromeMode, EditChromeMode, EnumDisplayMode, SectionMode } from '@wildo-ai/zod-decorators';
|
|
5
|
-
import { Archive, ArchiveRestore, Ban, CirclePause, GitBranch, Move, Paintbrush, Power, RotateCcw, Send, ToggleLeft, ToggleRight, Trash2, UserPlus, } from 'lucide-react';
|
|
6
|
-
import { CoreResourceType as R, CoreResourceOperation as Op, OrganizationStatus, OrganizationMemberStatus, OrganizationUnit_Operations, OrganizationMembers_Operations, OrganizationProfile_Operations, Organization_Lifecycle_Operations, OrganizationFeatures_Operations, organizationResourceConfiguration_InitializationFactory as orgFactory, organizationUnitResourceConfiguration_InitializationFactory as orgUnitFactory, organizationMembersResourceConfiguration_InitializationFactory as orgMembersFactory, organizationProfileResourceConfiguration_InitializationFactory as orgProfileFactory, organizationNotificationsResourceConfiguration_InitializationFactory as orgNotificationsFactory, organizationPreferencesResourceConfiguration_InitializationFactory as orgPreferencesFactory, organizationFeaturesResourceConfiguration_InitializationFactory as orgFeaturesFactory, OrganizationSchema, OrganizationUnitSchema, OrganizationMemberSchema, OrganizationProfileSchema, OrganizationNotificationsSchema, OrganizationPreferencesSchema, ScopeFeaturesWithOverridesSchema, } from '@wildo-ai/saas-models';
|
|
5
|
+
import { Archive, ArchiveRestore, Ban, CirclePause, GitBranch, Landmark, Move, Paintbrush, Power, RotateCcw, Send, ToggleLeft, ToggleRight, Trash2, UserPlus, } from 'lucide-react';
|
|
6
|
+
import { CoreResourceType as R, CoreResourceOperation as Op, ExternalIdentitySource, OrganizationStatus, OrganizationMemberStatus, OrganizationUnit_Operations, OrganizationMembers_Operations, OrganizationProfile_Operations, Organization_Lifecycle_Operations, OrganizationFeatures_Operations, organizationResourceConfiguration_InitializationFactory as orgFactory, organizationUnitResourceConfiguration_InitializationFactory as orgUnitFactory, organizationMembersResourceConfiguration_InitializationFactory as orgMembersFactory, organizationProfileResourceConfiguration_InitializationFactory as orgProfileFactory, organizationNotificationsResourceConfiguration_InitializationFactory as orgNotificationsFactory, organizationPreferencesResourceConfiguration_InitializationFactory as orgPreferencesFactory, organizationFeaturesResourceConfiguration_InitializationFactory as orgFeaturesFactory, OrganizationSchema, OrganizationUnitSchema, OrganizationMemberSchema, OrganizationProfileSchema, OrganizationNotificationsSchema, OrganizationPreferencesSchema, ScopeFeaturesWithOverridesSchema, } from '@wildo-ai/saas-models';
|
|
7
7
|
import { addressable, notAddressable, apiOnly } from './resource.config.utils.js';
|
|
8
8
|
/**
|
|
9
9
|
* Organizations — Resource frontend presets
|
|
@@ -15,6 +15,22 @@ import { addressable, notAddressable, apiOnly } from './resource.config.utils.js
|
|
|
15
15
|
* Enum badges use inline `values` and `showDescription: true` like `billing.resource-presets.tsx`.
|
|
16
16
|
* Layout templates are implemented inline in each resource config.
|
|
17
17
|
*/
|
|
18
|
+
/**
|
|
19
|
+
* An organization's `type`, offered as a choice among the application's DECLARED organization types (#1032).
|
|
20
|
+
*
|
|
21
|
+
* The type is required and must name a declared type — creation refuses anything else, and a member of an
|
|
22
|
+
* organization whose type names nothing cannot sign in. The declaration is the application's, so the schema cannot
|
|
23
|
+
* carry it as an enum; this reads it from the running application's configuration and hands it to the field. As free
|
|
24
|
+
* text the same field accepted a typo and refused it only after submit.
|
|
25
|
+
*
|
|
26
|
+
* Rendered as a component (layout templates are), so reading the application context here is legal. The field still
|
|
27
|
+
* hides itself on edit forms, where `type` is creation-time identity.
|
|
28
|
+
*/
|
|
29
|
+
function DeclaredOrganizationTypeFormField() {
|
|
30
|
+
const { appConfig } = useApplication();
|
|
31
|
+
const declaredOrganizationTypes = Object.keys(appConfig.organizationTypes ?? {});
|
|
32
|
+
return _jsx(FormField, { name: "type", allowedValues: declaredOrganizationTypes });
|
|
33
|
+
}
|
|
18
34
|
/**
|
|
19
35
|
* Org lifecycle-transition action config, shared by the main and admin org
|
|
20
36
|
* presets (the same super-admin transitions surface in the main-app settings
|
|
@@ -38,23 +54,50 @@ const organizationLifecycleOpViews = [
|
|
|
38
54
|
// Only ever available on a marked tenant, and only to a platform super-admin — the role gate on
|
|
39
55
|
// the action bar hides it from everyone else, and `WHEN_AVAILABLE` hides it on a live tenant.
|
|
40
56
|
[Organization_Lifecycle_Operations.RESTORE, notAddressable({ iconOverride: RotateCcw, actionVisibility: ActionVisibility.WHEN_AVAILABLE, hasDescription: true })],
|
|
57
|
+
// #1054 — name this organization as the one that OPERATES the application. Surfaced for the same
|
|
58
|
+
// reason `restore` is: it is an operator door with no other in-product route, and the role gate on
|
|
59
|
+
// the action bar plus `WHEN_AVAILABLE` (the operation is enabled only from ACTIVE) already hide it
|
|
60
|
+
// from everyone it does not concern. `hasDescription` because the confirmation copy must carry what
|
|
61
|
+
// a generic dialog cannot: this is IRREVERSIBLE — there is no demotion door — and it requires a
|
|
62
|
+
// justification that is recorded on the audit trail.
|
|
63
|
+
[Organization_Lifecycle_Operations.PROMOTE_TO_OWNER_ORGANIZATION, notAddressable({ iconOverride: Landmark, actionVisibility: ActionVisibility.WHEN_AVAILABLE, hasDescription: true })],
|
|
41
64
|
];
|
|
42
65
|
export function buildOrganizationsMainPresets() {
|
|
43
66
|
return {
|
|
44
67
|
[R.ORGANIZATIONS]: resourceUIBehavior(orgFactory, OrganizationSchema, ({ schema, schemaShape, opsVariantResolver }) => ({
|
|
45
68
|
icon: StandardIconReference.ORGANIZATION,
|
|
46
69
|
layout: {
|
|
47
|
-
refs
|
|
70
|
+
// NO section refs on the display side. The pane is one flat list of rows, so it names no
|
|
71
|
+
// slot: a `<Section>` is a THREE-PLACE obligation — the JSX name, this manifest, and a
|
|
72
|
+
// documented slot in the resource specification — and what it buys is a heading. "Overview"
|
|
73
|
+
// over the only group on a page is a heading that says nothing the page does not.
|
|
74
|
+
// `overview` survives for the EDIT form, which still groups.
|
|
75
|
+
refs: { sections: ['overview'] },
|
|
48
76
|
// Settings-page chrome: shown in the Settings Hub (General). Read + edit render as
|
|
49
77
|
// label-left / value-right rows; the list/summary stays compact.
|
|
50
78
|
defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.INLINE, edit: EditChromeMode.SETTINGS_ROW },
|
|
51
|
-
|
|
79
|
+
// Organization general settings. A settings pane is a list of decisions an operator came to TAKE, so its
|
|
80
|
+
// writable fields are offered in place rather than behind a whole-pane edit mode. The set is
|
|
81
|
+
// DERIVED (not primary key, not excludeFromUpdate, not hidden, not opted out), so a field
|
|
82
|
+
// added to this schema tomorrow is covered without anyone remembering to decorate it.
|
|
83
|
+
defaultInlineEdit: ResourceLayoutInlineEditDefault.WRITABLE_FIELDS,
|
|
84
|
+
// And its empty rows say WHICH emptiness they are — "None yet" for a list with no members,
|
|
85
|
+
// "Not available" for a computed value, "No value" for a field awaiting input — instead of one
|
|
86
|
+
// em dash standing for all three. The surface policy's dash is right where a reader is scanning;
|
|
87
|
+
// on a settings row, which is read one at a time to decide something, it is an answer that
|
|
88
|
+
// refuses to answer.
|
|
89
|
+
defaultEmptyValue: 'placeholder',
|
|
90
|
+
display: () => (_jsxs(DisplayLayout, { children: [_jsx(DisplayField, { name: "slug" }), _jsx(DisplayField, { name: "status" }), _jsx(DisplayField, { name: "type" }), _jsx(DisplayField, { name: "createdAt" }), _jsx(RelatedResourceSections, { config: { mode: SectionMode.TABS }, targets: [] })] })),
|
|
52
91
|
summary: () => (_jsxs(SummaryLayout, { children: [_jsx(SummaryTitle, { name: "name" }), _jsxs(SummaryMeta, { children: [_jsx(DisplayField, { name: "slug" }), _jsx(DisplayField, { name: "status" }), _jsx(DisplayField, { name: "type" }), _jsx(DisplayField, { name: "createdAt" })] })] })),
|
|
53
|
-
edit: () => (_jsx(FormLayout, { children: _jsxs(Section, { name: "overview", appearance: SectionMode.CARD, children: [_jsx(FormField, { name: "name" }), _jsx(FormField, { name: "slug" }), _jsx(FormField, { name: "status" }), _jsx(
|
|
92
|
+
edit: () => (_jsx(FormLayout, { children: _jsxs(Section, { name: "overview", appearance: SectionMode.CARD, children: [_jsx(FormField, { name: "name" }), _jsx(FormField, { name: "slug" }), _jsx(FormField, { name: "status" }), _jsx(DeclaredOrganizationTypeFormField, {})] }) })),
|
|
54
93
|
},
|
|
55
94
|
fields: {
|
|
56
95
|
status: schemaShape.status.enumUI({
|
|
57
|
-
|
|
96
|
+
// No description on the READ surface: the badge already IS the answer, and the per-value
|
|
97
|
+
// sentence under it is a paragraph explaining a word the reader has just read — the
|
|
98
|
+
// tallest thing on a settings row for the least it says. EDIT keeps it, because there the
|
|
99
|
+
// reader is CHOOSING between values and the sentence is what distinguishes them.
|
|
100
|
+
display: { displayMode: EnumDisplayMode.BADGE, showDescription: false },
|
|
58
101
|
edit: { showDescription: true },
|
|
59
102
|
values: {
|
|
60
103
|
[OrganizationStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS },
|
|
@@ -86,10 +129,20 @@ export function buildOrganizationsMainPresets() {
|
|
|
86
129
|
getFrontendResourceLabel: ({ currentObject }) => currentObject.name,
|
|
87
130
|
layout: {
|
|
88
131
|
refs: { sections: ['identity', 'hierarchy'] },
|
|
89
|
-
display: () => (_jsxs(DisplayLayout, { children: [_jsxs(Section, { name: "identity", appearance: SectionMode.CARD, children: [_jsx(DisplayField, { name: "name" }), _jsx(DisplayField, { name: "code" }), _jsx(DisplayField, { name: "type" }), _jsx(DisplayField, { name: "status" })] }), _jsxs(Section, { name: "hierarchy", children: [_jsx(DisplayField, { name: "parentUnitId" }), _jsx(DisplayField, { name: "path" }), _jsx(DisplayField, { name: "inheritanceType" })] }), _jsx(RelatedResourceSections, { config: { mode: SectionMode.TABS }, targets: [R.ORGANIZATION_UNITS] })] })),
|
|
90
|
-
summary: () => (_jsxs(SummaryLayout, { children: [_jsx(SummaryTitle, { name: "name" }), _jsxs(SummaryMeta, { children: [_jsx(DisplayField, { name: "type" }), _jsx(DisplayField, { name: "status" })] })] })),
|
|
132
|
+
display: () => (_jsxs(DisplayLayout, { children: [_jsxs(Section, { name: "identity", appearance: SectionMode.CARD, children: [_jsx(DisplayField, { name: "name" }), _jsx(DisplayField, { name: "code" }), _jsx(DisplayField, { name: "type" }), _jsx(DisplayField, { name: "status" }), _jsx(DisplayField, { name: "externalSource" }), _jsx(DisplayField, { name: "externalId" })] }), _jsxs(Section, { name: "hierarchy", children: [_jsx(DisplayField, { name: "parentUnitId" }), _jsx(DisplayField, { name: "path" }), _jsx(DisplayField, { name: "inheritanceType" })] }), _jsx(RelatedResourceSections, { config: { mode: SectionMode.TABS }, targets: [R.ORGANIZATION_UNITS] })] })),
|
|
133
|
+
summary: () => (_jsxs(SummaryLayout, { children: [_jsx(SummaryTitle, { name: "name" }), _jsxs(SummaryMeta, { children: [_jsx(DisplayField, { name: "type" }), _jsx(DisplayField, { name: "status" }), _jsx(DisplayField, { name: "externalSource" })] })] })),
|
|
91
134
|
edit: () => (_jsxs(FormLayout, { children: [_jsxs(Section, { name: "identity", appearance: SectionMode.CARD, children: [_jsx(FormField, { name: "name" }), _jsx(FormField, { name: "code" }), _jsx(FormField, { name: "type" }), _jsx(FormField, { name: "status" })] }), _jsxs(Section, { name: "hierarchy", children: [_jsx(FormField, { name: "parentUnitId" }), _jsx(FormField, { name: "inheritanceType" })] })] })),
|
|
92
135
|
},
|
|
136
|
+
fields: {
|
|
137
|
+
// A badge, because it is a STATE of the row the reader needs at a glance in a list — the
|
|
138
|
+
// one fact that explains why a rename does not stick. Empty for a hand-authored unit.
|
|
139
|
+
externalSource: schemaShape.externalSource.enumUI({
|
|
140
|
+
display: { displayMode: EnumDisplayMode.BADGE, hideWhenEmpty: true },
|
|
141
|
+
values: { [ExternalIdentitySource.SCIM]: { color: BadgeSemanticVariant.INFO } },
|
|
142
|
+
}),
|
|
143
|
+
// The directory's own identifier for the group, so an administrator can find it there.
|
|
144
|
+
externalId: schemaShape.externalId.stringUI({ display: { hideWhenEmpty: true } }),
|
|
145
|
+
},
|
|
93
146
|
views: [
|
|
94
147
|
[Op.CREATE, notAddressable()],
|
|
95
148
|
[Op.READ, notAddressable()],
|
|
@@ -114,7 +167,11 @@ export function buildOrganizationsMainPresets() {
|
|
|
114
167
|
},
|
|
115
168
|
fields: {
|
|
116
169
|
status: schemaShape.status.enumUI({
|
|
117
|
-
|
|
170
|
+
// No description on the READ surface: the badge already IS the answer, and the per-value
|
|
171
|
+
// sentence under it is a paragraph explaining a word the reader has just read — the
|
|
172
|
+
// tallest thing on a settings row for the least it says. EDIT keeps it, because there the
|
|
173
|
+
// reader is CHOOSING between values and the sentence is what distinguishes them.
|
|
174
|
+
display: { displayMode: EnumDisplayMode.BADGE, showDescription: false },
|
|
118
175
|
edit: { showDescription: true },
|
|
119
176
|
values: {
|
|
120
177
|
[OrganizationMemberStatus.INVITED]: { color: BadgeSemanticVariant.INFO },
|
|
@@ -141,7 +198,18 @@ export function buildOrganizationsMainPresets() {
|
|
|
141
198
|
// way to invite from the UI.
|
|
142
199
|
[Op.CREATE, notAddressable({ iconOverride: UserPlus })],
|
|
143
200
|
[Op.READ, notAddressable()],
|
|
144
|
-
|
|
201
|
+
// A people directory. Identity, role, status and last activity are COMPARABLE across rows, which is what a table is for — and what every B2B product renders here.
|
|
202
|
+
// CARDS is the framework default and nothing had ever declared otherwise, so every
|
|
203
|
+
// collection in the product rendered as stacked cards — ~150px per row, four people to a
|
|
204
|
+
// viewport, with each field's help text and label repeated on every card. TABLE writes the
|
|
205
|
+
// headers once. `userSwitchableDisplayMode` keeps cards one click away rather than removing
|
|
206
|
+
// a rendering somebody may prefer on a narrow screen.
|
|
207
|
+
[Op.LIST, addressable({
|
|
208
|
+
collectionDisplayConfig: {
|
|
209
|
+
displayMode: CollectionDisplayMode.TABLE,
|
|
210
|
+
userSwitchableDisplayMode: true,
|
|
211
|
+
},
|
|
212
|
+
})],
|
|
145
213
|
[Op.SEARCH, notAddressable()],
|
|
146
214
|
[Op.UPDATE, notAddressable()],
|
|
147
215
|
[Op.DELETE, notAddressable()],
|
|
@@ -165,7 +233,10 @@ export function buildOrganizationsMainPresets() {
|
|
|
165
233
|
layout: {
|
|
166
234
|
refs: { sections: ['company', 'classification', 'location', 'branding', 'social'] },
|
|
167
235
|
display: () => (_jsxs(DisplayLayout, { children: [_jsxs(Section, { name: "company", appearance: SectionMode.CARD, children: [_jsx(DisplayField, { name: "displayName" }), _jsx(DisplayField, { name: "domain" }), _jsx(DisplayField, { name: "website" }), _jsx(DisplayField, { name: "phone" }), _jsx(DisplayField, { name: "description" })] }), _jsxs(Section, { name: "classification", children: [_jsx(DisplayField, { name: "industry" }), _jsx(DisplayField, { name: "size" }), _jsx(DisplayField, { name: "founded" }), _jsx(DisplayField, { name: "timezone" })] }), _jsx(Section, { name: "location", children: _jsx(DisplayField, { name: "address" }) }), _jsx(Section, { name: "branding", children: _jsxs(ObjectScope, { name: "branding", children: [_jsx(DisplayField, { name: "logo" }), _jsx(DisplayField, { name: "favicon" }), _jsx(DisplayField, { name: "primaryColor" }), _jsx(DisplayField, { name: "secondaryColor" }), _jsx(DisplayField, { name: "customDomain" })] }) }), _jsx(Section, { name: "social", children: _jsxs(ObjectScope, { name: "socialLinks", children: [_jsx(DisplayField, { name: "linkedin" }), _jsx(DisplayField, { name: "twitter" }), _jsx(DisplayField, { name: "facebook" }), _jsx(DisplayField, { name: "github" })] }) })] })),
|
|
168
|
-
summary: () => (
|
|
236
|
+
summary: () => (
|
|
237
|
+
// The card's LABEL already opens with `displayName`, so rendering it again as the only
|
|
238
|
+
// field said one thing twice. It is the TITLE of this card, not a row beneath one.
|
|
239
|
+
_jsx(SummaryLayout, { children: _jsx(SummaryTitle, { name: "displayName" }) })),
|
|
169
240
|
edit: () => (_jsxs(FormLayout, { children: [_jsxs(Section, { name: "company", appearance: SectionMode.CARD, children: [_jsx(FormField, { name: "displayName" }), _jsx(FormField, { name: "domain" }), _jsx(FormField, { name: "website" }), _jsx(FormField, { name: "phone" }), _jsx(FormField, { name: "description" })] }), _jsxs(Section, { name: "classification", children: [_jsx(FormField, { name: "industry" }), _jsx(FormField, { name: "size" }), _jsx(FormField, { name: "founded" }), _jsx(FormField, { name: "timezone" })] }), _jsx(Section, { name: "location", children: _jsx(FormField, { name: "address" }) }), _jsx(Section, { name: "branding", children: _jsxs(ObjectScope, { name: "branding", children: [_jsx(FormField, { name: "logo" }), _jsx(FormField, { name: "favicon" }), _jsx(FormField, { name: "primaryColor" }), _jsx(FormField, { name: "secondaryColor" }), _jsx(FormField, { name: "customDomain" })] }) }), _jsx(Section, { name: "social", children: _jsxs(ObjectScope, { name: "socialLinks", children: [_jsx(FormField, { name: "linkedin" }), _jsx(FormField, { name: "twitter" }), _jsx(FormField, { name: "facebook" }), _jsx(FormField, { name: "github" })] }) })] })),
|
|
170
241
|
},
|
|
171
242
|
views: [
|
|
@@ -237,6 +308,13 @@ export function buildOrganizationsAdminPresets(main) {
|
|
|
237
308
|
icon: base.icon,
|
|
238
309
|
layout: base.layout,
|
|
239
310
|
views: [
|
|
311
|
+
// READ is restated because `resourceUIBehaviorFrom` REPLACES `views` wholesale rather than
|
|
312
|
+
// merging them — it is "the primary differentiator between main/admin", per its own contract.
|
|
313
|
+
// Omitting it left the operator able to enable, disable and reset an organization's
|
|
314
|
+
// entitlements while unable to SEE them: the three mutations below act on a record the same
|
|
315
|
+
// preset refused to render. Found when this application composed both scopes and the
|
|
316
|
+
// `Entitlements` rail entry went headless (ADMIN replaces MAIN per resource type).
|
|
317
|
+
[Op.READ, notAddressable()],
|
|
240
318
|
[Op.UPDATE, notAddressable()],
|
|
241
319
|
[OrganizationFeatures_Operations.ENABLE_FEATURE, notAddressable({ iconOverride: ToggleRight })],
|
|
242
320
|
[OrganizationFeatures_Operations.DISABLE_FEATURE, notAddressable({ iconOverride: ToggleLeft })],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organizations.resource-presets.js","sourceRoot":"","sources":["../../../../../src/config/resources/organizations.resource-presets.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport type { ResourceUIBehavior, ResourceOperationFrontendConfig } from '@wildo-ai/saas-frontend-lib';\nimport {\n resourceUIBehavior,\n resourceUIBehaviorFrom,\n StandardIconReference,\n ActionVisibility,\n} from '@wildo-ai/saas-frontend-lib';\nimport {\n DisplayField,\n DisplayLayout,\n FormField,\n FormLayout,\n ObjectScope,\n RelatedResourceSections,\n Section,\n SummaryLayout,\n SummaryFlow,\n SummaryMeta,\n SummaryTitle,\n} from '@wildo-ai/saas-frontend-lib';\nimport { BadgeSemanticVariant, DisplayChromeMode, EditChromeMode, EnumDisplayMode, SectionMode } from '@wildo-ai/zod-decorators';\nimport {\n Archive,\n ArchiveRestore,\n Ban,\n CirclePause,\n GitBranch,\n Move,\n Paintbrush,\n Power,\n RotateCcw,\n Send,\n ToggleLeft,\n ToggleRight,\n Trash2,\n UserPlus,\n} from 'lucide-react';\nimport {\n CoreResourceType as R,\n CoreResourceOperation as Op,\n OrganizationStatus,\n OrganizationMemberStatus,\n OrganizationUnit_Operations,\n OrganizationMembers_Operations,\n OrganizationProfile_Operations,\n Organization_Lifecycle_Operations,\n OrganizationFeatures_Operations,\n organizationResourceConfiguration_InitializationFactory as orgFactory,\n organizationUnitResourceConfiguration_InitializationFactory as orgUnitFactory,\n organizationMembersResourceConfiguration_InitializationFactory as orgMembersFactory,\n organizationProfileResourceConfiguration_InitializationFactory as orgProfileFactory,\n organizationNotificationsResourceConfiguration_InitializationFactory as orgNotificationsFactory,\n organizationPreferencesResourceConfiguration_InitializationFactory as orgPreferencesFactory,\n organizationFeaturesResourceConfiguration_InitializationFactory as orgFeaturesFactory,\n OrganizationSchema,\n OrganizationUnitSchema,\n OrganizationMemberSchema,\n OrganizationProfileSchema,\n OrganizationNotificationsSchema,\n OrganizationPreferencesSchema,\n ScopeFeaturesWithOverridesSchema,\n} from '@wildo-ai/saas-models';\nimport { addressable, notAddressable, apiOnly } from './resource.config.utils';\n\n/**\n * Organizations — Resource frontend presets\n *\n * Domain: ORGANIZATIONS, ORGANIZATION_UNITS, ORGANIZATION_MEMBERS,\n * ORGANIZATION_PROFILES,\n * ORGANIZATION_NOTIFICATIONS, ORGANIZATION_PREFERENCES, ORGANIZATION_FEATURES\n *\n * Enum badges use inline `values` and `showDescription: true` like `billing.resource-presets.tsx`.\n * Layout templates are implemented inline in each resource config.\n */\n\n/**\n * Org lifecycle-transition action config, shared by the main and admin org\n * presets (the same super-admin transitions surface in the main-app settings\n * hub today and will surface in the dedicated admin app later).\n *\n * ACTIVATE/SUSPEND are direct status transitions with no intermediate view, so\n * they are gated purely by their `enabledCondition` (org status). The\n * `WHEN_AVAILABLE` visibility makes each action **vanish** (rather than render\n * disabled) when its precondition is unmet: ACTIVATE shows only on a\n * suspended/expired org, SUSPEND only on an active/trial one. The icon overrides\n * give the custom ops a meaningful glyph instead of the action-bar fallback.\n */\nconst organizationLifecycleOpViews: Array<[Organization_Lifecycle_Operations, ResourceOperationFrontendConfig]> = [\n [Organization_Lifecycle_Operations.ACTIVATE, notAddressable({ iconOverride: Power, actionVisibility: ActionVisibility.WHEN_AVAILABLE })],\n [Organization_Lifecycle_Operations.SUSPEND, notAddressable({ iconOverride: CirclePause, actionVisibility: ActionVisibility.WHEN_AVAILABLE, hasDescription: true })],\n // Tenant teardown (WS-A). `request_deletion` is the tenant-facing delete — it REPLACED the\n // org-admin `DELETE` action, which no longer exists as an API door. `hasDescription` because the\n // confirmation copy has to say the thing a delete dialog normally cannot: this is reversible,\n // and until when.\n [Organization_Lifecycle_Operations.REQUEST_DELETION, notAddressable({ iconOverride: Trash2, actionVisibility: ActionVisibility.WHEN_AVAILABLE, hasDescription: true })],\n // Only ever available on a marked tenant, and only to a platform super-admin — the role gate on\n // the action bar hides it from everyone else, and `WHEN_AVAILABLE` hides it on a live tenant.\n [Organization_Lifecycle_Operations.RESTORE, notAddressable({ iconOverride: RotateCcw, actionVisibility: ActionVisibility.WHEN_AVAILABLE, hasDescription: true })],\n];\n\nexport function buildOrganizationsMainPresets(): Partial<ResourceUIBehavior> {\n return {\n [R.ORGANIZATIONS]: resourceUIBehavior(orgFactory, OrganizationSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.ORGANIZATION,\n layout: {\n refs: { sections: ['overview', 'lifecycle'] },\n // Settings-page chrome: shown in the Settings Hub (General). Read + edit render as\n // label-left / value-right rows; the list/summary stays compact.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.INLINE, edit: EditChromeMode.SETTINGS_ROW },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"name\" />\n <DisplayField name=\"slug\" />\n <DisplayField name=\"status\" />\n <DisplayField name=\"type\" />\n </Section>\n <Section name=\"lifecycle\">\n <DisplayField name=\"createdAt\" />\n </Section>\n {/*\n The organization's own children, named here rather than curated\n through per-edge relationship config.\n\n Placing them makes this template OWN the child region: automatic\n composition stands down, so the tenant's APPLICATION resources\n (todo lists, todos, tasks — org-scoped, and therefore owned children\n of every organization) stop appearing as tabs on an engine admin\n surface that only ever intended these three. That leak was the\n price of composing every owned child by default; naming them is\n what removes it, and it removes the ~16 `hidden: true` opt-outs\n that used to say the same thing edge by edge.\n\n Titles come from each child resource's own header label, so this\n adds no `layout.refs` entry and no specification slot.\n */}\n <RelatedResourceSections\n config={{ mode: SectionMode.TABS }}\n targets={[R.ORGANIZATION_UNITS, R.ORGANIZATION_MEMBERS, R.ORGANIZATION_FEATURES]}\n />\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"name\" />\n <SummaryMeta>\n <DisplayField name=\"slug\" />\n <DisplayField name=\"status\" />\n <DisplayField name=\"type\" />\n <DisplayField name=\"createdAt\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"name\" />\n <FormField name=\"slug\" />\n <FormField name=\"status\" />\n <FormField name=\"type\" />\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 [OrganizationStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS },\n [OrganizationStatus.SUSPENDED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n [OrganizationStatus.TRIAL]: { color: BadgeSemanticVariant.INFO },\n [OrganizationStatus.TRIAL_EXPIRED]: { color: BadgeSemanticVariant.WARNING },\n [OrganizationStatus.CANCELLED]: { color: BadgeSemanticVariant.SECONDARY },\n [OrganizationStatus.DELETED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n },\n }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.name,\n views: [\n // Organizations are created via the registration/signup flow, not a resource\n // create form — headless (no form view, created programmatically by the flow).\n [Op.CREATE, apiOnly()],\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n // NO `Op.DELETE` view. Since the WS-A teardown split the DEFAULT delete variant is a\n // route-less INTERNAL_CALL owned by the `organization-purge` batch, so there is no HTTP\n // door for this view to drive — rendering an action for it would produce a button that\n // cannot be invoked. The tenant-facing verb is `request_deletion`, below. The `admin`\n // purge-now variant keeps its view in the admin presets.\n ...organizationLifecycleOpViews,\n ],\n })),\n\n [R.ORGANIZATION_UNITS]: resourceUIBehavior(orgUnitFactory, OrganizationUnitSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: GitBranch,\n getFrontendResourceLabel: ({ currentObject }) => currentObject.name,\n layout: {\n refs: { sections: ['identity', 'hierarchy'] },\n display: () => (\n <DisplayLayout>\n <Section name=\"identity\" appearance={SectionMode.CARD}>\n <DisplayField name=\"name\" />\n <DisplayField name=\"code\" />\n <DisplayField name=\"type\" />\n <DisplayField name=\"status\" />\n </Section>\n <Section name=\"hierarchy\">\n <DisplayField name=\"parentUnitId\" />\n <DisplayField name=\"path\" />\n <DisplayField name=\"inheritanceType\" />\n </Section>\n {/*\n Sub-units — a SELF-REFERENCING edge, so this nests: a unit shows its\n children, each of which is a unit that shows its own. Bounded by the\n framework embed-depth default and by the cycle guard keyed on\n `(edge, host row)`, which admits a genuine hierarchy over distinct\n rows while refusing a row that reappears on its own path.\n */}\n <RelatedResourceSections\n config={{ mode: SectionMode.TABS }}\n targets={[R.ORGANIZATION_UNITS]}\n />\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"name\" />\n <SummaryMeta>\n <DisplayField name=\"type\" />\n <DisplayField name=\"status\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"identity\" appearance={SectionMode.CARD}>\n <FormField name=\"name\" />\n <FormField name=\"code\" />\n <FormField name=\"type\" />\n <FormField name=\"status\" />\n </Section>\n <Section name=\"hierarchy\">\n <FormField name=\"parentUnitId\" />\n <FormField name=\"inheritanceType\" />\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.CREATE, notAddressable()],\n [Op.READ, notAddressable()],\n [Op.LIST, notAddressable()],\n [Op.SEARCH, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [Op.DELETE, notAddressable()],\n [OrganizationUnit_Operations.MOVE, notAddressable({ iconOverride: Move })],\n [OrganizationUnit_Operations.ARCHIVE, notAddressable({ iconOverride: Archive })],\n [OrganizationUnit_Operations.RESTORE, notAddressable({ iconOverride: ArchiveRestore })],\n ],\n })),\n\n [R.ORGANIZATION_MEMBERS]: resourceUIBehavior(orgMembersFactory, OrganizationMemberSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.TEAM,\n layout: {\n refs: { sections: ['overview', 'membership'] },\n // Settings-page chrome (Settings Hub → Members): 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=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"userTitle\" />\n <DisplayField name=\"status\" />\n <DisplayField name=\"roles\" />\n </Section>\n {/* Unit assignments moved out of this row entirely (D-B5): they are now\n ORGANIZATION_UNIT_MEMBERS rows, surfaced through that resource rather than as an\n embedded field here. The section keeps its slot ref for `createdAt`. */}\n <Section name=\"membership\">\n <DisplayField name=\"createdAt\" />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"userTitle\" />\n <SummaryMeta>\n <DisplayField name=\"roles\" />\n <DisplayField name=\"status\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n {/* Invite email — the admin's invitee address. Renders on the CREATE (invite)\n form only: `userEmail` is `.excludeFromUpdate()`, so it's absent from the\n UPDATE DTO and this FormField auto-skips on the edit form. The invite prefix\n find-or-creates the User by this email. Placed first — it's the primary input. */}\n <FormField name=\"userEmail\" />\n <FormField name=\"userTitle\" />\n <FormField name=\"status\" />\n <FormField name=\"roles\" />\n </Section>\n {/* No `membership` section on the edit form: its only field was\n `organizationUnitsMembership`, now the ORGANIZATION_UNIT_MEMBERS junction (D-B5).\n Assigning a member to a unit is a write against that resource, not a field edit\n here — which is also what makes it role-ceiling governed. */}\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 [OrganizationMemberStatus.INVITED]: { color: BadgeSemanticVariant.INFO },\n [OrganizationMemberStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS },\n [OrganizationMemberStatus.INACTIVE]: { color: BadgeSemanticVariant.SECONDARY },\n [OrganizationMemberStatus.SUSPENDED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n },\n }),\n },\n // A membership has no inherent name — its identity is the related user.\n // `instanceLabel` is a server-resolved virtual field that forwards the\n // user's name live from `USER_PROFILES` (see `forwardedLabel` on\n // `OrganizationMemberSchema`), so the label is a plain, synchronous field\n // ref — never stale, tenant-safe, no async frontend resolver. `userTitle`\n // is the distinct authored job title and stays its own FIELD.\n getFrontendResourceLabel: ['instanceLabel'],\n views: [\n [Op.COUNT, notAddressable()],\n // CREATE is the org-admin INVITE entry point (it mints the invitee's pending\n // membership row directly on this junction — invitations are no longer a separate\n // resource). Surfaced as an EMBEDDED action (\"Invite member\", UserPlus): the\n // collection toolbar shows the button, which opens the invite form overlay (email +\n // roles + optional title/units). NOT `apiOnly()` — that hid it entirely, leaving no\n // way to invite from the UI.\n [Op.CREATE, notAddressable({ iconOverride: UserPlus })],\n [Op.READ, notAddressable()],\n [Op.LIST, addressable()],\n [Op.SEARCH, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [Op.DELETE, notAddressable()],\n // Role changes ride `UPDATE` — the PROMOTE/DEMOTE verbs were removed on 2026-08-01\n // (routed but never implemented, so they answered 200 having changed nothing).\n [OrganizationMembers_Operations.SUSPEND, notAddressable({ iconOverride: CirclePause })],\n [OrganizationMembers_Operations.REACTIVATE, notAddressable({ iconOverride: Power })],\n // Invitation management on a still-INVITED row (invitations live in this list, not a\n // separate section): REVOKE cancels the pending invite (deletes the row + revokes its\n // accept token), RESEND re-issues the accept link. `WHEN_AVAILABLE` hides (not disables)\n // both on non-INVITED rows — they vanish on ACTIVE members rather than sit greyed out —\n // driven by the ops' `enabledCondition: status === INVITED` (resources-config). Surfaced\n // here so the spec's frontend `views` matches the merged config (companion validator).\n [OrganizationMembers_Operations.REVOKE, notAddressable({ iconOverride: Ban, actionVisibility: ActionVisibility.WHEN_AVAILABLE })],\n [OrganizationMembers_Operations.RESEND, notAddressable({ iconOverride: Send, actionVisibility: ActionVisibility.WHEN_AVAILABLE })],\n ],\n })),\n\n [R.ORGANIZATION_PROFILES]: resourceUIBehavior(orgProfileFactory, OrganizationProfileSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.PROFILE,\n getFrontendResourceLabel: ({ currentObject }) => currentObject.displayName || `Organization ${currentObject.organizationId}`,\n layout: {\n refs: { sections: ['company', 'classification', 'location', 'branding', 'social'] },\n display: () => (\n <DisplayLayout>\n <Section name=\"company\" appearance={SectionMode.CARD}>\n <DisplayField name=\"displayName\" />\n <DisplayField name=\"domain\" />\n <DisplayField name=\"website\" />\n <DisplayField name=\"phone\" />\n <DisplayField name=\"description\" />\n </Section>\n <Section name=\"classification\">\n <DisplayField name=\"industry\" />\n <DisplayField name=\"size\" />\n <DisplayField name=\"founded\" />\n <DisplayField name=\"timezone\" />\n </Section>\n <Section name=\"location\">\n <DisplayField name=\"address\" />\n </Section>\n <Section name=\"branding\">\n <ObjectScope name=\"branding\">\n <DisplayField name=\"logo\" />\n <DisplayField name=\"favicon\" />\n <DisplayField name=\"primaryColor\" />\n <DisplayField name=\"secondaryColor\" />\n <DisplayField name=\"customDomain\" />\n </ObjectScope>\n </Section>\n <Section name=\"social\">\n <ObjectScope name=\"socialLinks\">\n <DisplayField name=\"linkedin\" />\n <DisplayField name=\"twitter\" />\n <DisplayField name=\"facebook\" />\n <DisplayField name=\"github\" />\n </ObjectScope>\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <DisplayField name=\"displayName\" />\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"company\" appearance={SectionMode.CARD}>\n <FormField name=\"displayName\" />\n <FormField name=\"domain\" />\n <FormField name=\"website\" />\n <FormField name=\"phone\" />\n <FormField name=\"description\" />\n </Section>\n <Section name=\"classification\">\n <FormField name=\"industry\" />\n <FormField name=\"size\" />\n <FormField name=\"founded\" />\n <FormField name=\"timezone\" />\n </Section>\n <Section name=\"location\">\n <FormField name=\"address\" />\n </Section>\n <Section name=\"branding\">\n <ObjectScope name=\"branding\">\n <FormField name=\"logo\" />\n <FormField name=\"favicon\" />\n <FormField name=\"primaryColor\" />\n <FormField name=\"secondaryColor\" />\n <FormField name=\"customDomain\" />\n </ObjectScope>\n </Section>\n <Section name=\"social\">\n <ObjectScope name=\"socialLinks\">\n <FormField name=\"linkedin\" />\n <FormField name=\"twitter\" />\n <FormField name=\"facebook\" />\n <FormField name=\"github\" />\n </ObjectScope>\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [OrganizationProfile_Operations.UPDATE_BRANDING, notAddressable({ iconOverride: Paintbrush })],\n ],\n })),\n\n [R.ORGANIZATION_NOTIFICATIONS]: resourceUIBehavior(orgNotificationsFactory, OrganizationNotificationsSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.NOTIFICATION,\n layout: {\n refs: { sections: ['addresses', 'categories'] },\n display: () => (\n <DisplayLayout>\n <Section name=\"addresses\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"emailNotifications\">\n <DisplayField name=\"defaultEmailAddress\" />\n <DisplayField name=\"billingAddress\" />\n <DisplayField name=\"securityAddress\" />\n <DisplayField name=\"administrativeAddress\" />\n <DisplayField name=\"usersManagementAddress\" />\n </ObjectScope>\n </Section>\n <Section name=\"categories\">\n <ObjectScope name=\"emailNotifications\">\n <DisplayField name=\"billing\" />\n <DisplayField name=\"administrative\" />\n <DisplayField name=\"security\" />\n <DisplayField name=\"usersManagement\" />\n </ObjectScope>\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout flow={SummaryFlow.ROW}>\n <ObjectScope name=\"emailNotifications\">\n <DisplayField name=\"defaultEmailAddress\" />\n </ObjectScope>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"addresses\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"emailNotifications\">\n <FormField name=\"defaultEmailAddress\" />\n <FormField name=\"billingAddress\" />\n <FormField name=\"securityAddress\" />\n <FormField name=\"administrativeAddress\" />\n <FormField name=\"usersManagementAddress\" />\n </ObjectScope>\n </Section>\n <Section name=\"categories\">\n <ObjectScope name=\"emailNotifications\">\n <FormField name=\"billing\" />\n <FormField name=\"administrative\" />\n <FormField name=\"security\" />\n <FormField name=\"usersManagement\" />\n </ObjectScope>\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n ],\n })),\n\n [R.ORGANIZATION_PREFERENCES]: resourceUIBehavior(orgPreferencesFactory, OrganizationPreferencesSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.SETTINGS,\n layout: {\n refs: { sections: ['regional', 'language', 'overrides'] },\n display: () => (\n <DisplayLayout>\n <Section name=\"regional\" appearance={SectionMode.CARD}>\n <DisplayField name=\"timezone\" />\n <DisplayField name=\"locale\" />\n <DisplayField name=\"dateFormat\" />\n <DisplayField name=\"timeFormat\" />\n </Section>\n <Section name=\"language\">\n <ObjectScope name=\"languagePreferences\">\n <DisplayField name=\"primaryLanguage\" />\n <DisplayField name=\"supportedLanguages\" />\n <DisplayField name=\"allowUserOverride\" />\n <DisplayField name=\"enforceForAllMembers\" />\n </ObjectScope>\n </Section>\n <Section name=\"overrides\">\n <DisplayField name=\"allowMemberEmailOverride\" />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout flow={SummaryFlow.ROW}>\n <DisplayField name=\"timezone\" />\n <DisplayField name=\"locale\" />\n <ObjectScope name=\"languagePreferences\">\n <DisplayField name=\"primaryLanguage\" />\n </ObjectScope>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"regional\" appearance={SectionMode.CARD}>\n <FormField name=\"timezone\" />\n <FormField name=\"locale\" />\n <FormField name=\"dateFormat\" />\n <FormField name=\"timeFormat\" />\n </Section>\n <Section name=\"language\">\n <ObjectScope name=\"languagePreferences\">\n <FormField name=\"primaryLanguage\" />\n <FormField name=\"supportedLanguages\" />\n <FormField name=\"allowUserOverride\" />\n <FormField name=\"enforceForAllMembers\" />\n </ObjectScope>\n </Section>\n <Section name=\"overrides\">\n <FormField name=\"allowMemberEmailOverride\" />\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n ],\n })),\n\n [R.ORGANIZATION_FEATURES]: resourceUIBehavior(orgFeaturesFactory, 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 // Org feature flags are toggled programmatically, not via a generic edit form —\n // UPDATE is headless.\n [Op.UPDATE, apiOnly()],\n ],\n })),\n };\n}\n\nexport function buildOrganizationsAdminPresets(main: Partial<ResourceUIBehavior>): Partial<ResourceUIBehavior> {\n return {\n [R.ORGANIZATIONS]: resourceUIBehaviorFrom(orgFactory, main[R.ORGANIZATIONS]!, ({ base, opsVariantResolver }) => ({\n icon: base.icon,\n layout: base.layout,\n fields: base.fields,\n views: [\n [opsVariantResolver(Op.READ, 'admin'), notAddressable()],\n [Op.LIST, notAddressable()],\n [Op.SEARCH, notAddressable()],\n [opsVariantResolver(Op.CREATE, 'admin'), addressable()],\n [opsVariantResolver(Op.UPDATE, 'admin'), notAddressable()],\n [opsVariantResolver(Op.DELETE, 'admin'), notAddressable()],\n ...organizationLifecycleOpViews,\n ],\n })),\n [R.ORGANIZATION_FEATURES]: resourceUIBehaviorFrom(orgFeaturesFactory, main[R.ORGANIZATION_FEATURES]!, ({ base }) => ({\n icon: base.icon,\n layout: base.layout,\n views: [\n [Op.UPDATE, notAddressable()],\n [OrganizationFeatures_Operations.ENABLE_FEATURE, notAddressable({ iconOverride: ToggleRight })],\n [OrganizationFeatures_Operations.DISABLE_FEATURE, notAddressable({ iconOverride: ToggleLeft })],\n [OrganizationFeatures_Operations.RESET_FEATURES, notAddressable({ iconOverride: RotateCcw })],\n ],\n })),\n };\n}\n\nexport const organizationsMainPresets = buildOrganizationsMainPresets();\nexport const organizationsAdminPresets = buildOrganizationsAdminPresets(organizationsMainPresets);\n\nexport const organizationsMainOrgResourceUIBehavior = organizationsMainPresets[R.ORGANIZATIONS]!;\nexport const organizationsAdminOrgResourceUIBehavior = organizationsAdminPresets[R.ORGANIZATIONS]!;\nexport const organizationUnitsMainResourceUIBehavior = organizationsMainPresets[R.ORGANIZATION_UNITS]!;\nexport const organizationMembersMainResourceUIBehavior = organizationsMainPresets[R.ORGANIZATION_MEMBERS]!;\nexport const organizationProfilesMainResourceUIBehavior = organizationsMainPresets[R.ORGANIZATION_PROFILES]!;\nexport const organizationNotificationsMainResourceUIBehavior = organizationsMainPresets[R.ORGANIZATION_NOTIFICATIONS]!;\nexport const organizationPreferencesMainResourceUIBehavior = organizationsMainPresets[R.ORGANIZATION_PREFERENCES]!;\nexport const organizationFeaturesMainResourceUIBehavior = organizationsMainPresets[R.ORGANIZATION_FEATURES]!;\nexport const organizationFeaturesAdminResourceUIBehavior = organizationsAdminPresets[R.ORGANIZATION_FEATURES]!;\n"]}
|
|
1
|
+
{"version":3,"file":"organizations.resource-presets.js","sourceRoot":"","sources":["../../../../../src/config/resources/organizations.resource-presets.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport type { ResourceUIBehavior, ResourceOperationFrontendConfig } from '@wildo-ai/saas-frontend-lib';\nimport {\n resourceUIBehavior,\n resourceUIBehaviorFrom,\n StandardIconReference,\n ActionVisibility,\n useApplication,\n ResourceLayoutInlineEditDefault,\n CollectionDisplayMode,\n} from '@wildo-ai/saas-frontend-lib';\nimport {\n DisplayField,\n DisplayLayout,\n FormField,\n FormLayout,\n ObjectScope,\n RelatedResourceSections,\n Section,\n SummaryLayout,\n SummaryFlow,\n SummaryMeta,\n SummaryTitle,\n} from '@wildo-ai/saas-frontend-lib';\nimport { BadgeSemanticVariant, DisplayChromeMode, EditChromeMode, EnumDisplayMode, SectionMode } from '@wildo-ai/zod-decorators';\nimport {\n Archive,\n ArchiveRestore,\n Ban,\n CirclePause,\n GitBranch,\n Landmark,\n Move,\n Paintbrush,\n Power,\n RotateCcw,\n Send,\n ToggleLeft,\n ToggleRight,\n Trash2,\n UserPlus,\n} from 'lucide-react';\nimport {\n CoreResourceType as R,\n CoreResourceOperation as Op,\n ExternalIdentitySource,\n OrganizationStatus,\n OrganizationMemberStatus,\n OrganizationUnit_Operations,\n OrganizationMembers_Operations,\n OrganizationProfile_Operations,\n Organization_Lifecycle_Operations,\n OrganizationFeatures_Operations,\n organizationResourceConfiguration_InitializationFactory as orgFactory,\n organizationUnitResourceConfiguration_InitializationFactory as orgUnitFactory,\n organizationMembersResourceConfiguration_InitializationFactory as orgMembersFactory,\n organizationProfileResourceConfiguration_InitializationFactory as orgProfileFactory,\n organizationNotificationsResourceConfiguration_InitializationFactory as orgNotificationsFactory,\n organizationPreferencesResourceConfiguration_InitializationFactory as orgPreferencesFactory,\n organizationFeaturesResourceConfiguration_InitializationFactory as orgFeaturesFactory,\n OrganizationSchema,\n OrganizationUnitSchema,\n OrganizationMemberSchema,\n OrganizationProfileSchema,\n OrganizationNotificationsSchema,\n OrganizationPreferencesSchema,\n ScopeFeaturesWithOverridesSchema,\n} from '@wildo-ai/saas-models';\nimport { addressable, notAddressable, apiOnly } from './resource.config.utils';\n\n/**\n * Organizations — Resource frontend presets\n *\n * Domain: ORGANIZATIONS, ORGANIZATION_UNITS, ORGANIZATION_MEMBERS,\n * ORGANIZATION_PROFILES,\n * ORGANIZATION_NOTIFICATIONS, ORGANIZATION_PREFERENCES, ORGANIZATION_FEATURES\n *\n * Enum badges use inline `values` and `showDescription: true` like `billing.resource-presets.tsx`.\n * Layout templates are implemented inline in each resource config.\n */\n\n/**\n * An organization's `type`, offered as a choice among the application's DECLARED organization types (#1032).\n *\n * The type is required and must name a declared type — creation refuses anything else, and a member of an\n * organization whose type names nothing cannot sign in. The declaration is the application's, so the schema cannot\n * carry it as an enum; this reads it from the running application's configuration and hands it to the field. As free\n * text the same field accepted a typo and refused it only after submit.\n *\n * Rendered as a component (layout templates are), so reading the application context here is legal. The field still\n * hides itself on edit forms, where `type` is creation-time identity.\n */\nfunction DeclaredOrganizationTypeFormField(): React.JSX.Element {\n const { appConfig } = useApplication();\n const declaredOrganizationTypes = Object.keys(appConfig.organizationTypes ?? {});\n return <FormField name=\"type\" allowedValues={declaredOrganizationTypes} />;\n}\n\n/**\n * Org lifecycle-transition action config, shared by the main and admin org\n * presets (the same super-admin transitions surface in the main-app settings\n * hub today and will surface in the dedicated admin app later).\n *\n * ACTIVATE/SUSPEND are direct status transitions with no intermediate view, so\n * they are gated purely by their `enabledCondition` (org status). The\n * `WHEN_AVAILABLE` visibility makes each action **vanish** (rather than render\n * disabled) when its precondition is unmet: ACTIVATE shows only on a\n * suspended/expired org, SUSPEND only on an active/trial one. The icon overrides\n * give the custom ops a meaningful glyph instead of the action-bar fallback.\n */\nconst organizationLifecycleOpViews: Array<[Organization_Lifecycle_Operations, ResourceOperationFrontendConfig]> = [\n [Organization_Lifecycle_Operations.ACTIVATE, notAddressable({ iconOverride: Power, actionVisibility: ActionVisibility.WHEN_AVAILABLE })],\n [Organization_Lifecycle_Operations.SUSPEND, notAddressable({ iconOverride: CirclePause, actionVisibility: ActionVisibility.WHEN_AVAILABLE, hasDescription: true })],\n // Tenant teardown (WS-A). `request_deletion` is the tenant-facing delete — it REPLACED the\n // org-admin `DELETE` action, which no longer exists as an API door. `hasDescription` because the\n // confirmation copy has to say the thing a delete dialog normally cannot: this is reversible,\n // and until when.\n [Organization_Lifecycle_Operations.REQUEST_DELETION, notAddressable({ iconOverride: Trash2, actionVisibility: ActionVisibility.WHEN_AVAILABLE, hasDescription: true })],\n // Only ever available on a marked tenant, and only to a platform super-admin — the role gate on\n // the action bar hides it from everyone else, and `WHEN_AVAILABLE` hides it on a live tenant.\n [Organization_Lifecycle_Operations.RESTORE, notAddressable({ iconOverride: RotateCcw, actionVisibility: ActionVisibility.WHEN_AVAILABLE, hasDescription: true })],\n // #1054 — name this organization as the one that OPERATES the application. Surfaced for the same\n // reason `restore` is: it is an operator door with no other in-product route, and the role gate on\n // the action bar plus `WHEN_AVAILABLE` (the operation is enabled only from ACTIVE) already hide it\n // from everyone it does not concern. `hasDescription` because the confirmation copy must carry what\n // a generic dialog cannot: this is IRREVERSIBLE — there is no demotion door — and it requires a\n // justification that is recorded on the audit trail.\n [Organization_Lifecycle_Operations.PROMOTE_TO_OWNER_ORGANIZATION, notAddressable({ iconOverride: Landmark, actionVisibility: ActionVisibility.WHEN_AVAILABLE, hasDescription: true })],\n];\n\nexport function buildOrganizationsMainPresets(): Partial<ResourceUIBehavior> {\n return {\n [R.ORGANIZATIONS]: resourceUIBehavior(orgFactory, OrganizationSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.ORGANIZATION,\n layout: {\n // NO section refs on the display side. The pane is one flat list of rows, so it names no\n // slot: a `<Section>` is a THREE-PLACE obligation — the JSX name, this manifest, and a\n // documented slot in the resource specification — and what it buys is a heading. \"Overview\"\n // over the only group on a page is a heading that says nothing the page does not.\n // `overview` survives for the EDIT form, which still groups.\n refs: { sections: ['overview'] },\n // Settings-page chrome: shown in the Settings Hub (General). Read + edit render as\n // label-left / value-right rows; the list/summary stays compact.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.INLINE, edit: EditChromeMode.SETTINGS_ROW },\n // Organization general settings. A settings pane is a list of decisions an operator came to TAKE, so its\n // writable fields are offered in place rather than behind a whole-pane edit mode. The set is\n // DERIVED (not primary key, not excludeFromUpdate, not hidden, not opted out), so a field\n // added to this schema tomorrow is covered without anyone remembering to decorate it.\n defaultInlineEdit: ResourceLayoutInlineEditDefault.WRITABLE_FIELDS,\n // And its empty rows say WHICH emptiness they are — \"None yet\" for a list with no members,\n // \"Not available\" for a computed value, \"No value\" for a field awaiting input — instead of one\n // em dash standing for all three. The surface policy's dash is right where a reader is scanning;\n // on a settings row, which is read one at a time to decide something, it is an answer that\n // refuses to answer.\n defaultEmptyValue: 'placeholder',\n display: () => (\n <DisplayLayout>\n {/*\n One flat list of rows, no `<Section>` at all.\n\n It was two: an \"Overview\" card of four fields and a \"Lifecycle\" section holding\n `createdAt` and nothing else. A section of one row is not a grouping, it is a heading\n with a row under it — and \"Overview\" over the only other group named the PAGE rather\n than a part of it. Neither heading distinguished anything, so both are gone and the\n rows read as what they are: the four facts about this organization.\n\n `name` is gone from the body too. The pane's own title IS the organization's name, so\n the first row repeated it back with a label on it.\n */}\n <DisplayField name=\"slug\" />\n <DisplayField name=\"status\" />\n <DisplayField name=\"type\" />\n <DisplayField name=\"createdAt\" />\n {/*\n The organization's own children, named here rather than curated\n through per-edge relationship config.\n\n Placing them makes this template OWN the child region: automatic\n composition stands down, so the tenant's APPLICATION resources\n (todo lists, todos, tasks — org-scoped, and therefore owned children\n of every organization) stop appearing as tabs on an engine admin\n surface that only ever intended these three. That leak was the\n price of composing every owned child by default; naming them is\n what removes it, and it removes the ~16 `hidden: true` opt-outs\n that used to say the same thing edge by edge.\n\n Titles come from each child resource's own header label, so this\n adds no `layout.refs` entry and no specification slot.\n */}\n {/*\n `targets={[]}` — this pane composes NO children, which is a different statement from a\n template that never mentioned them: it still CLAIMS the child region, so the automatic\n block stands down and the tenant's application resources (todo lists, todos, tasks —\n org-scoped, and therefore owned children of every organization) do not reappear as tabs\n on an engine admin surface. That claim is the whole reason this stays.\n\n All three former targets have their own rail entry — Members, Teams, Entitlements — so\n embedding them here made one surface reachable two ways, and made a record ABOUT the\n tenant into a container OF three populations.\n */}\n <RelatedResourceSections config={{ mode: SectionMode.TABS }} targets={[]} />\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"name\" />\n <SummaryMeta>\n <DisplayField name=\"slug\" />\n <DisplayField name=\"status\" />\n <DisplayField name=\"type\" />\n <DisplayField name=\"createdAt\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"name\" />\n <FormField name=\"slug\" />\n <FormField name=\"status\" />\n <DeclaredOrganizationTypeFormField />\n </Section>\n </FormLayout>\n ),\n },\n fields: {\n status: schemaShape.status.enumUI({\n // No description on the READ surface: the badge already IS the answer, and the per-value\n // sentence under it is a paragraph explaining a word the reader has just read — the\n // tallest thing on a settings row for the least it says. EDIT keeps it, because there the\n // reader is CHOOSING between values and the sentence is what distinguishes them.\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: false },\n edit: { showDescription: true },\n values: {\n [OrganizationStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS },\n [OrganizationStatus.SUSPENDED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n [OrganizationStatus.TRIAL]: { color: BadgeSemanticVariant.INFO },\n [OrganizationStatus.TRIAL_EXPIRED]: { color: BadgeSemanticVariant.WARNING },\n [OrganizationStatus.CANCELLED]: { color: BadgeSemanticVariant.SECONDARY },\n [OrganizationStatus.DELETED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n },\n }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.name,\n views: [\n // Organizations are created via the registration/signup flow, not a resource\n // create form — headless (no form view, created programmatically by the flow).\n [Op.CREATE, apiOnly()],\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n // NO `Op.DELETE` view. Since the WS-A teardown split the DEFAULT delete variant is a\n // route-less INTERNAL_CALL owned by the `organization-purge` batch, so there is no HTTP\n // door for this view to drive — rendering an action for it would produce a button that\n // cannot be invoked. The tenant-facing verb is `request_deletion`, below. The `admin`\n // purge-now variant keeps its view in the admin presets.\n ...organizationLifecycleOpViews,\n ],\n })),\n\n [R.ORGANIZATION_UNITS]: resourceUIBehavior(orgUnitFactory, OrganizationUnitSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: GitBranch,\n getFrontendResourceLabel: ({ currentObject }) => currentObject.name,\n layout: {\n refs: { sections: ['identity', 'hierarchy'] },\n display: () => (\n <DisplayLayout>\n <Section name=\"identity\" appearance={SectionMode.CARD}>\n <DisplayField name=\"name\" />\n <DisplayField name=\"code\" />\n <DisplayField name=\"type\" />\n <DisplayField name=\"status\" />\n {/*\n Directory ownership (#1392). A unit a SCIM directory created is reconciled by that\n directory: its name and its members are re-asserted on every push, so an edit made\n here is reverted without an error. Both rows are `hideWhenEmpty`, so a hand-authored\n unit shows nothing extra and a directory-owned one says so where the name is.\n */}\n <DisplayField name=\"externalSource\" />\n <DisplayField name=\"externalId\" />\n </Section>\n <Section name=\"hierarchy\">\n <DisplayField name=\"parentUnitId\" />\n <DisplayField name=\"path\" />\n <DisplayField name=\"inheritanceType\" />\n </Section>\n {/*\n Sub-units — a SELF-REFERENCING edge, so this nests: a unit shows its\n children, each of which is a unit that shows its own. Bounded by the\n framework embed-depth default and by the cycle guard keyed on\n `(edge, host row)`, which admits a genuine hierarchy over distinct\n rows while refusing a row that reappears on its own path.\n */}\n <RelatedResourceSections\n config={{ mode: SectionMode.TABS }}\n targets={[R.ORGANIZATION_UNITS]}\n />\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"name\" />\n <SummaryMeta>\n <DisplayField name=\"type\" />\n <DisplayField name=\"status\" />\n <DisplayField name=\"externalSource\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"identity\" appearance={SectionMode.CARD}>\n <FormField name=\"name\" />\n <FormField name=\"code\" />\n <FormField name=\"type\" />\n <FormField name=\"status\" />\n </Section>\n <Section name=\"hierarchy\">\n <FormField name=\"parentUnitId\" />\n <FormField name=\"inheritanceType\" />\n </Section>\n </FormLayout>\n ),\n },\n fields: {\n // A badge, because it is a STATE of the row the reader needs at a glance in a list — the\n // one fact that explains why a rename does not stick. Empty for a hand-authored unit.\n externalSource: schemaShape.externalSource.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, hideWhenEmpty: true },\n values: { [ExternalIdentitySource.SCIM]: { color: BadgeSemanticVariant.INFO } },\n }),\n // The directory's own identifier for the group, so an administrator can find it there.\n externalId: schemaShape.externalId.stringUI({ display: { hideWhenEmpty: true } }),\n },\n views: [\n [Op.CREATE, notAddressable()],\n [Op.READ, notAddressable()],\n [Op.LIST, notAddressable()],\n [Op.SEARCH, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [Op.DELETE, notAddressable()],\n [OrganizationUnit_Operations.MOVE, notAddressable({ iconOverride: Move })],\n [OrganizationUnit_Operations.ARCHIVE, notAddressable({ iconOverride: Archive })],\n [OrganizationUnit_Operations.RESTORE, notAddressable({ iconOverride: ArchiveRestore })],\n ],\n })),\n\n [R.ORGANIZATION_MEMBERS]: resourceUIBehavior(orgMembersFactory, OrganizationMemberSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.TEAM,\n layout: {\n refs: { sections: ['overview', 'membership'] },\n // Settings-page chrome (Settings Hub → Members): 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=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"userTitle\" />\n <DisplayField name=\"status\" />\n <DisplayField name=\"roles\" />\n </Section>\n {/* Unit assignments moved out of this row entirely (D-B5): they are now\n ORGANIZATION_UNIT_MEMBERS rows, surfaced through that resource rather than as an\n embedded field here. The section keeps its slot ref for `createdAt`. */}\n <Section name=\"membership\">\n <DisplayField name=\"createdAt\" />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"userTitle\" />\n <SummaryMeta>\n <DisplayField name=\"roles\" />\n <DisplayField name=\"status\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n {/* Invite email — the admin's invitee address. Renders on the CREATE (invite)\n form only: `userEmail` is `.excludeFromUpdate()`, so it's absent from the\n UPDATE DTO and this FormField auto-skips on the edit form. The invite prefix\n find-or-creates the User by this email. Placed first — it's the primary input. */}\n <FormField name=\"userEmail\" />\n <FormField name=\"userTitle\" />\n <FormField name=\"status\" />\n <FormField name=\"roles\" />\n </Section>\n {/* No `membership` section on the edit form: its only field was\n `organizationUnitsMembership`, now the ORGANIZATION_UNIT_MEMBERS junction (D-B5).\n Assigning a member to a unit is a write against that resource, not a field edit\n here — which is also what makes it role-ceiling governed. */}\n </FormLayout>\n ),\n },\n fields: {\n status: schemaShape.status.enumUI({\n // No description on the READ surface: the badge already IS the answer, and the per-value\n // sentence under it is a paragraph explaining a word the reader has just read — the\n // tallest thing on a settings row for the least it says. EDIT keeps it, because there the\n // reader is CHOOSING between values and the sentence is what distinguishes them.\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: false },\n edit: { showDescription: true },\n values: {\n [OrganizationMemberStatus.INVITED]: { color: BadgeSemanticVariant.INFO },\n [OrganizationMemberStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS },\n [OrganizationMemberStatus.INACTIVE]: { color: BadgeSemanticVariant.SECONDARY },\n [OrganizationMemberStatus.SUSPENDED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n },\n }),\n },\n // A membership has no inherent name — its identity is the related user.\n // `instanceLabel` is a server-resolved virtual field that forwards the\n // user's name live from `USER_PROFILES` (see `forwardedLabel` on\n // `OrganizationMemberSchema`), so the label is a plain, synchronous field\n // ref — never stale, tenant-safe, no async frontend resolver. `userTitle`\n // is the distinct authored job title and stays its own FIELD.\n getFrontendResourceLabel: ['instanceLabel'],\n views: [\n [Op.COUNT, notAddressable()],\n // CREATE is the org-admin INVITE entry point (it mints the invitee's pending\n // membership row directly on this junction — invitations are no longer a separate\n // resource). Surfaced as an EMBEDDED action (\"Invite member\", UserPlus): the\n // collection toolbar shows the button, which opens the invite form overlay (email +\n // roles + optional title/units). NOT `apiOnly()` — that hid it entirely, leaving no\n // way to invite from the UI.\n [Op.CREATE, notAddressable({ iconOverride: UserPlus })],\n [Op.READ, notAddressable()],\n // A people directory. Identity, role, status and last activity are COMPARABLE across rows, which is what a table is for — and what every B2B product renders here.\n // CARDS is the framework default and nothing had ever declared otherwise, so every\n // collection in the product rendered as stacked cards — ~150px per row, four people to a\n // viewport, with each field's help text and label repeated on every card. TABLE writes the\n // headers once. `userSwitchableDisplayMode` keeps cards one click away rather than removing\n // a rendering somebody may prefer on a narrow screen.\n [Op.LIST, addressable({\n collectionDisplayConfig: {\n displayMode: CollectionDisplayMode.TABLE,\n userSwitchableDisplayMode: true,\n },\n })],\n [Op.SEARCH, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [Op.DELETE, notAddressable()],\n // Role changes ride `UPDATE` — the PROMOTE/DEMOTE verbs were removed on 2026-08-01\n // (routed but never implemented, so they answered 200 having changed nothing).\n [OrganizationMembers_Operations.SUSPEND, notAddressable({ iconOverride: CirclePause })],\n [OrganizationMembers_Operations.REACTIVATE, notAddressable({ iconOverride: Power })],\n // Invitation management on a still-INVITED row (invitations live in this list, not a\n // separate section): REVOKE cancels the pending invite (deletes the row + revokes its\n // accept token), RESEND re-issues the accept link. `WHEN_AVAILABLE` hides (not disables)\n // both on non-INVITED rows — they vanish on ACTIVE members rather than sit greyed out —\n // driven by the ops' `enabledCondition: status === INVITED` (resources-config). Surfaced\n // here so the spec's frontend `views` matches the merged config (companion validator).\n [OrganizationMembers_Operations.REVOKE, notAddressable({ iconOverride: Ban, actionVisibility: ActionVisibility.WHEN_AVAILABLE })],\n [OrganizationMembers_Operations.RESEND, notAddressable({ iconOverride: Send, actionVisibility: ActionVisibility.WHEN_AVAILABLE })],\n ],\n })),\n\n [R.ORGANIZATION_PROFILES]: resourceUIBehavior(orgProfileFactory, OrganizationProfileSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.PROFILE,\n getFrontendResourceLabel: ({ currentObject }) => currentObject.displayName || `Organization ${currentObject.organizationId}`,\n layout: {\n refs: { sections: ['company', 'classification', 'location', 'branding', 'social'] },\n display: () => (\n <DisplayLayout>\n <Section name=\"company\" appearance={SectionMode.CARD}>\n <DisplayField name=\"displayName\" />\n <DisplayField name=\"domain\" />\n <DisplayField name=\"website\" />\n <DisplayField name=\"phone\" />\n <DisplayField name=\"description\" />\n </Section>\n <Section name=\"classification\">\n <DisplayField name=\"industry\" />\n <DisplayField name=\"size\" />\n <DisplayField name=\"founded\" />\n <DisplayField name=\"timezone\" />\n </Section>\n <Section name=\"location\">\n <DisplayField name=\"address\" />\n </Section>\n <Section name=\"branding\">\n <ObjectScope name=\"branding\">\n <DisplayField name=\"logo\" />\n <DisplayField name=\"favicon\" />\n <DisplayField name=\"primaryColor\" />\n <DisplayField name=\"secondaryColor\" />\n <DisplayField name=\"customDomain\" />\n </ObjectScope>\n </Section>\n <Section name=\"social\">\n <ObjectScope name=\"socialLinks\">\n <DisplayField name=\"linkedin\" />\n <DisplayField name=\"twitter\" />\n <DisplayField name=\"facebook\" />\n <DisplayField name=\"github\" />\n </ObjectScope>\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n // The card's LABEL already opens with `displayName`, so rendering it again as the only\n // field said one thing twice. It is the TITLE of this card, not a row beneath one.\n <SummaryLayout>\n <SummaryTitle name=\"displayName\" />\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"company\" appearance={SectionMode.CARD}>\n <FormField name=\"displayName\" />\n <FormField name=\"domain\" />\n <FormField name=\"website\" />\n <FormField name=\"phone\" />\n <FormField name=\"description\" />\n </Section>\n <Section name=\"classification\">\n <FormField name=\"industry\" />\n <FormField name=\"size\" />\n <FormField name=\"founded\" />\n <FormField name=\"timezone\" />\n </Section>\n <Section name=\"location\">\n <FormField name=\"address\" />\n </Section>\n <Section name=\"branding\">\n <ObjectScope name=\"branding\">\n <FormField name=\"logo\" />\n <FormField name=\"favicon\" />\n <FormField name=\"primaryColor\" />\n <FormField name=\"secondaryColor\" />\n <FormField name=\"customDomain\" />\n </ObjectScope>\n </Section>\n <Section name=\"social\">\n <ObjectScope name=\"socialLinks\">\n <FormField name=\"linkedin\" />\n <FormField name=\"twitter\" />\n <FormField name=\"facebook\" />\n <FormField name=\"github\" />\n </ObjectScope>\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [OrganizationProfile_Operations.UPDATE_BRANDING, notAddressable({ iconOverride: Paintbrush })],\n ],\n })),\n\n [R.ORGANIZATION_NOTIFICATIONS]: resourceUIBehavior(orgNotificationsFactory, OrganizationNotificationsSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.NOTIFICATION,\n layout: {\n refs: { sections: ['addresses', 'categories'] },\n display: () => (\n <DisplayLayout>\n <Section name=\"addresses\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"emailNotifications\">\n <DisplayField name=\"defaultEmailAddress\" />\n <DisplayField name=\"billingAddress\" />\n <DisplayField name=\"securityAddress\" />\n <DisplayField name=\"administrativeAddress\" />\n <DisplayField name=\"usersManagementAddress\" />\n </ObjectScope>\n </Section>\n <Section name=\"categories\">\n <ObjectScope name=\"emailNotifications\">\n <DisplayField name=\"billing\" />\n <DisplayField name=\"administrative\" />\n <DisplayField name=\"security\" />\n <DisplayField name=\"usersManagement\" />\n </ObjectScope>\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout flow={SummaryFlow.ROW}>\n <ObjectScope name=\"emailNotifications\">\n <DisplayField name=\"defaultEmailAddress\" />\n </ObjectScope>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"addresses\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"emailNotifications\">\n <FormField name=\"defaultEmailAddress\" />\n <FormField name=\"billingAddress\" />\n <FormField name=\"securityAddress\" />\n <FormField name=\"administrativeAddress\" />\n <FormField name=\"usersManagementAddress\" />\n </ObjectScope>\n </Section>\n <Section name=\"categories\">\n <ObjectScope name=\"emailNotifications\">\n <FormField name=\"billing\" />\n <FormField name=\"administrative\" />\n <FormField name=\"security\" />\n <FormField name=\"usersManagement\" />\n </ObjectScope>\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n ],\n })),\n\n [R.ORGANIZATION_PREFERENCES]: resourceUIBehavior(orgPreferencesFactory, OrganizationPreferencesSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.SETTINGS,\n layout: {\n refs: { sections: ['regional', 'language', 'overrides'] },\n display: () => (\n <DisplayLayout>\n <Section name=\"regional\" appearance={SectionMode.CARD}>\n <DisplayField name=\"timezone\" />\n <DisplayField name=\"locale\" />\n <DisplayField name=\"dateFormat\" />\n <DisplayField name=\"timeFormat\" />\n </Section>\n <Section name=\"language\">\n <ObjectScope name=\"languagePreferences\">\n <DisplayField name=\"primaryLanguage\" />\n <DisplayField name=\"supportedLanguages\" />\n <DisplayField name=\"allowUserOverride\" />\n <DisplayField name=\"enforceForAllMembers\" />\n </ObjectScope>\n </Section>\n <Section name=\"overrides\">\n <DisplayField name=\"allowMemberEmailOverride\" />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout flow={SummaryFlow.ROW}>\n <DisplayField name=\"timezone\" />\n <DisplayField name=\"locale\" />\n <ObjectScope name=\"languagePreferences\">\n <DisplayField name=\"primaryLanguage\" />\n </ObjectScope>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"regional\" appearance={SectionMode.CARD}>\n <FormField name=\"timezone\" />\n <FormField name=\"locale\" />\n <FormField name=\"dateFormat\" />\n <FormField name=\"timeFormat\" />\n </Section>\n <Section name=\"language\">\n <ObjectScope name=\"languagePreferences\">\n <FormField name=\"primaryLanguage\" />\n <FormField name=\"supportedLanguages\" />\n <FormField name=\"allowUserOverride\" />\n <FormField name=\"enforceForAllMembers\" />\n </ObjectScope>\n </Section>\n <Section name=\"overrides\">\n <FormField name=\"allowMemberEmailOverride\" />\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n ],\n })),\n\n [R.ORGANIZATION_FEATURES]: resourceUIBehavior(orgFeaturesFactory, 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 // Org feature flags are toggled programmatically, not via a generic edit form —\n // UPDATE is headless.\n [Op.UPDATE, apiOnly()],\n ],\n })),\n };\n}\n\nexport function buildOrganizationsAdminPresets(main: Partial<ResourceUIBehavior>): Partial<ResourceUIBehavior> {\n return {\n [R.ORGANIZATIONS]: resourceUIBehaviorFrom(orgFactory, main[R.ORGANIZATIONS]!, ({ base, opsVariantResolver }) => ({\n icon: base.icon,\n layout: base.layout,\n fields: base.fields,\n views: [\n [opsVariantResolver(Op.READ, 'admin'), notAddressable()],\n [Op.LIST, notAddressable()],\n [Op.SEARCH, notAddressable()],\n [opsVariantResolver(Op.CREATE, 'admin'), addressable()],\n [opsVariantResolver(Op.UPDATE, 'admin'), notAddressable()],\n [opsVariantResolver(Op.DELETE, 'admin'), notAddressable()],\n ...organizationLifecycleOpViews,\n ],\n })),\n [R.ORGANIZATION_FEATURES]: resourceUIBehaviorFrom(orgFeaturesFactory, main[R.ORGANIZATION_FEATURES]!, ({ base }) => ({\n icon: base.icon,\n layout: base.layout,\n views: [\n // READ is restated because `resourceUIBehaviorFrom` REPLACES `views` wholesale rather than\n // merging them — it is \"the primary differentiator between main/admin\", per its own contract.\n // Omitting it left the operator able to enable, disable and reset an organization's\n // entitlements while unable to SEE them: the three mutations below act on a record the same\n // preset refused to render. Found when this application composed both scopes and the\n // `Entitlements` rail entry went headless (ADMIN replaces MAIN per resource type).\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [OrganizationFeatures_Operations.ENABLE_FEATURE, notAddressable({ iconOverride: ToggleRight })],\n [OrganizationFeatures_Operations.DISABLE_FEATURE, notAddressable({ iconOverride: ToggleLeft })],\n [OrganizationFeatures_Operations.RESET_FEATURES, notAddressable({ iconOverride: RotateCcw })],\n ],\n })),\n };\n}\n\nexport const organizationsMainPresets = buildOrganizationsMainPresets();\nexport const organizationsAdminPresets = buildOrganizationsAdminPresets(organizationsMainPresets);\n\nexport const organizationsMainOrgResourceUIBehavior = organizationsMainPresets[R.ORGANIZATIONS]!;\nexport const organizationsAdminOrgResourceUIBehavior = organizationsAdminPresets[R.ORGANIZATIONS]!;\nexport const organizationUnitsMainResourceUIBehavior = organizationsMainPresets[R.ORGANIZATION_UNITS]!;\nexport const organizationMembersMainResourceUIBehavior = organizationsMainPresets[R.ORGANIZATION_MEMBERS]!;\nexport const organizationProfilesMainResourceUIBehavior = organizationsMainPresets[R.ORGANIZATION_PROFILES]!;\nexport const organizationNotificationsMainResourceUIBehavior = organizationsMainPresets[R.ORGANIZATION_NOTIFICATIONS]!;\nexport const organizationPreferencesMainResourceUIBehavior = organizationsMainPresets[R.ORGANIZATION_PREFERENCES]!;\nexport const organizationFeaturesMainResourceUIBehavior = organizationsMainPresets[R.ORGANIZATION_FEATURES]!;\nexport const organizationFeaturesAdminResourceUIBehavior = organizationsAdminPresets[R.ORGANIZATION_FEATURES]!;\n"]}
|
|
@@ -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"}
|
|
@@ -7,8 +7,13 @@
|
|
|
7
7
|
* SIEM layout JSX lives in this file next to `layout.refs` + `fields` so section chrome
|
|
8
8
|
* and primitive UI params stay co-located with the preset. Edit/display templates are
|
|
9
9
|
* inlined as arrow functions so `useFormTemplateContext` / `useDisplayTemplateContext`
|
|
10
|
-
* are immediately available for future conditional rendering.
|
|
11
|
-
*
|
|
10
|
+
* are immediately available for future conditional rendering. The scope-level CONFIGURATION records
|
|
11
|
+
* here — SIEM export, SSO config, SCIM provisioning — declare the full settings chrome
|
|
12
|
+
* (`display` + `summary` + `edit`), because each is reached as a READ inside the Settings Hub and is
|
|
13
|
+
* opened to confirm a value far more often than to change one; only sections that differ (e.g. the
|
|
14
|
+
* status toggle) set `chromeMode` explicitly. The COLLECTIONS beside them (SSO connections, the SIEM
|
|
15
|
+
* dead-letter queue, SCIM tokens) declare none on purpose: a list has no label/value rows for the
|
|
16
|
+
* treatment to apply to.
|
|
12
17
|
* Other resources here use field-level UI only until they need custom sections; enum badges use
|
|
13
18
|
* `showDescription: true` like billing.
|
|
14
19
|
*/
|
|
@@ -20,4 +25,5 @@ export declare const securityAdminPresets: Partial<ResourceUIBehavior>;
|
|
|
20
25
|
export declare const orgApiKeysMainResourceUIBehavior: import("@wildo-ai/saas-frontend-lib").ResourceUIBehaviorConfig<any, any, import("zod").ZodAny>;
|
|
21
26
|
export declare const orgApiKeysAdminResourceUIBehavior: import("@wildo-ai/saas-frontend-lib").ResourceUIBehaviorConfig<any, any, import("zod").ZodAny>;
|
|
22
27
|
export declare const auditLogsMainResourceUIBehavior: import("@wildo-ai/saas-frontend-lib").ResourceUIBehaviorConfig<any, any, import("zod").ZodAny>;
|
|
28
|
+
export declare const applicationAuditLogsAdminResourceUIBehavior: import("@wildo-ai/saas-frontend-lib").ResourceUIBehaviorConfig<any, any, import("zod").ZodAny>;
|
|
23
29
|
//# sourceMappingURL=security.resource-presets.d.ts.map
|
|
@@ -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;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AA2dtE,wBAAgB,wBAAwB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAilBtE;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAuQxG;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;AAClF,eAAO,MAAM,2CAA2C,gGAAkD,CAAC"}
|