@wildo-ai/presets-components 1.1.4 → 1.1.6
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 +65 -8
- 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.js +8 -1
- package/dist/esm/components/ai-elements/chat/suggestion.js.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 +124 -17
- package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/decision/approval.js +105 -13
- 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 +3 -1
- package/dist/esm/components/ai-elements/graph/graph-runtime.d.ts.map +1 -1
- package/dist/esm/components/ai-elements/graph/graph-runtime.js +3 -1
- package/dist/esm/components/ai-elements/graph/graph-runtime.js.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 +9 -0
- package/dist/esm/components/app/app-layout-main-container.d.ts.map +1 -1
- package/dist/esm/components/app/app-layout-main-container.js +17 -23
- package/dist/esm/components/app/app-layout-main-container.js.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 +48 -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 +25 -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 +22 -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 +10 -4
- 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 +8 -1
- 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 +10 -7
- 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 +4 -1
- 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 +29 -11
- 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 +14 -15
- 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 +2 -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 +8 -3
- 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-number.labels.js +5 -2
- package/dist/esm/components/data-display/formatters/display-field-number.labels.js.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 +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 +129 -15
- 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/data-display/untrusted-html-content.d.ts +55 -0
- package/dist/esm/components/data-display/untrusted-html-content.d.ts.map +1 -0
- package/dist/esm/components/data-display/untrusted-html-content.js +67 -0
- package/dist/esm/components/data-display/untrusted-html-content.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.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 +5 -5
- 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 +37 -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 +14 -13
- 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/address/providers/google-places-address-lookup.adapter.d.ts +42 -0
- package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.d.ts.map +1 -0
- package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.js +120 -0
- package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.js.map +1 -0
- package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.d.ts +16 -0
- package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.d.ts.map +1 -0
- package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.js +8 -0
- package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.js.map +1 -0
- 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 +3 -1
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.js +3 -1
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.js.map +1 -1
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts +6 -0
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js +8 -1
- package/dist/esm/components/form/controls/file/providers/google-drive-picker.lazy.js.map +1 -1
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts +6 -2
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.js +6 -2
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.js.map +1 -1
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts +6 -0
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.d.ts.map +1 -1
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js +8 -1
- package/dist/esm/components/form/controls/file/providers/onedrive-picker.lazy.js.map +1 -1
- package/dist/esm/components/form/controls/input-group.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input-group.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input.d.ts.map +1 -1
- package/dist/esm/components/form/controls/input.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/number/slider.d.ts.map +1 -1
- package/dist/esm/components/form/controls/number/slider.labels.d.ts.map +1 -1
- package/dist/esm/components/form/controls/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.js +2 -2
- package/dist/esm/components/navigation/app-level/activity-bar.js.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.js +10 -4
- package/dist/esm/components/navigation/app-level/menu-user-org.js.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/menu-user-org.labels.js +7 -0
- package/dist/esm/components/navigation/app-level/menu-user-org.labels.js.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 +36 -14
- 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 +31 -5
- 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 +41 -25
- 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.js +2 -2
- package/dist/esm/components/navigation/app-level/status-bar.js.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.js +2 -2
- package/dist/esm/components/navigation/app-level/toolbar.js.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 +24 -6
- 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.js +1 -1
- package/dist/esm/components/navigation/breadcrumb.js.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.js +5 -3
- package/dist/esm/components/sections/stepper.js.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 +60 -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 +23 -7
- 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/agent-work.resource-presets.d.ts +4 -0
- package/dist/esm/config/resources/agent-work.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/agent-work.resource-presets.js +115 -0
- package/dist/esm/config/resources/agent-work.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/api-key-rotation-window.d.ts +22 -0
- package/dist/esm/config/resources/api-key-rotation-window.d.ts.map +1 -0
- package/dist/esm/config/resources/api-key-rotation-window.js +45 -0
- package/dist/esm/config/resources/api-key-rotation-window.js.map +1 -0
- 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 +268 -26
- package/dist/esm/config/resources/application.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/billing.resource-presets.d.ts +4 -3
- package/dist/esm/config/resources/billing.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/billing.resource-presets.js +241 -111
- package/dist/esm/config/resources/billing.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/conversation-threads.resource-presets.d.ts +4 -0
- package/dist/esm/config/resources/conversation-threads.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/conversation-threads.resource-presets.js +105 -0
- package/dist/esm/config/resources/conversation-threads.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/guidance.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/guidance.resource-presets.js +39 -16
- package/dist/esm/config/resources/guidance.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/identity.resource-presets.d.ts +0 -13
- package/dist/esm/config/resources/identity.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/identity.resource-presets.js +71 -17
- package/dist/esm/config/resources/identity.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/inbound-deliveries.resource-presets.d.ts +6 -0
- package/dist/esm/config/resources/inbound-deliveries.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/inbound-deliveries.resource-presets.js +112 -0
- package/dist/esm/config/resources/inbound-deliveries.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/inbound-email.resource-presets.d.ts +4 -0
- package/dist/esm/config/resources/inbound-email.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/inbound-email.resource-presets.js +182 -0
- package/dist/esm/config/resources/inbound-email.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/index.d.ts.map +1 -1
- package/dist/esm/config/resources/index.js +9 -2
- package/dist/esm/config/resources/index.js.map +1 -1
- package/dist/esm/config/resources/legal-holds.resource-presets.d.ts +4 -0
- package/dist/esm/config/resources/legal-holds.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/legal-holds.resource-presets.js +76 -0
- package/dist/esm/config/resources/legal-holds.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/organizations.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/organizations.resource-presets.js +216 -35
- package/dist/esm/config/resources/organizations.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/resource.config.utils.d.ts +20 -0
- package/dist/esm/config/resources/resource.config.utils.d.ts.map +1 -1
- package/dist/esm/config/resources/resource.config.utils.js +20 -0
- package/dist/esm/config/resources/resource.config.utils.js.map +1 -1
- package/dist/esm/config/resources/retention-enforcement.resource-presets.d.ts +5 -0
- package/dist/esm/config/resources/retention-enforcement.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/retention-enforcement.resource-presets.js +74 -0
- package/dist/esm/config/resources/retention-enforcement.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/security.resource-presets.d.ts +11 -3
- package/dist/esm/config/resources/security.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/security.resource-presets.js +685 -99
- package/dist/esm/config/resources/security.resource-presets.js.map +1 -1
- package/dist/esm/config/resources/service-providers.resource-presets.d.ts +4 -0
- package/dist/esm/config/resources/service-providers.resource-presets.d.ts.map +1 -0
- package/dist/esm/config/resources/service-providers.resource-presets.js +321 -0
- package/dist/esm/config/resources/service-providers.resource-presets.js.map +1 -0
- package/dist/esm/config/resources/webhooks.resource-presets.d.ts +4 -3
- package/dist/esm/config/resources/webhooks.resource-presets.d.ts.map +1 -1
- package/dist/esm/config/resources/webhooks.resource-presets.js +102 -26
- 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 +63 -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 +32 -4
- package/dist/esm/registration/register-default-presets.js.map +1 -1
- package/dist/esm/registration/register-provider-components.d.ts.map +1 -1
- package/dist/esm/registration/register-provider-components.js +11 -0
- package/dist/esm/registration/register-provider-components.js.map +1 -1
- 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 +76 -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 +31 -45
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.resource-presets.js","sourceRoot":"","sources":["../../../../../src/config/resources/billing.resource-presets.tsx"],"names":[],"mappings":";AAyBA,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,6BAA6B,EAE7B,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,YAAY,GACb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,YAAY,EACZ,aAAa,EACb,SAAS,EACT,UAAU,EACV,WAAW,EACX,OAAO,EACP,aAAa,GACd,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,KAAK,EACL,SAAS,EACT,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAAO,EACP,UAAU,EACV,OAAO,IAAI,WAAW,EACtB,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,OAAO,EACP,QAAQ,EACR,KAAK,EACL,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,IAAI,EACJ,GAAG,EACH,aAAa,EACb,MAAM,EACN,MAAM,EACN,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACZ,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,IAAI,CAAC,EACrB,qBAAqB,IAAI,EAAE,EAC3B,oBAAoB,EACpB,yBAAyB,EACzB,8BAA8B,EAC9B,qBAAqB,EACrB,mDAAmD,IAAI,eAAe,EACtE,iDAAiD,IAAI,aAAa,EAClE,oDAAoD,IAAI,gBAAgB,EACxE,qDAAqD,IAAI,iBAAiB,EAC1E,mCAAmC,EACnC,wCAAwC,EACxC,+BAA+B,EAC/B,+BAA+B,EAC/B,gCAAgC,EAChC,aAAa,EACb,WAAW,EACX,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,6BAA6B,EAC7B,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,eAAe,EACf,aAAa,EACb,YAAY,GACb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,UAAU,uBAAuB;IACrC;;;;;;;OAOG;IACH,MAAM,0BAA0B,GAAG;QACjC,iBAAiB,EAAE;YACjB,OAAO,EAAE,iBAAiB,CAAC,OAAO;YAClC,OAAO,EAAE,iBAAiB,CAAC,MAAM;YACjC,IAAI,EAAE,cAAc,CAAC,YAAY;SAClC;QACD,OAAO,EAAE,GAAG,EAAE,CAAC,CACb,MAAC,aAAa,IAAC,IAAI,EAAE,WAAW,CAAC,GAAG,aAClC,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,EAChC,KAAC,YAAY,IAAC,IAAI,EAAC,KAAK,EAAC,SAAS,QAAC,SAAS,EAAC,6DAA6D,GAAG,IAC/F,CACjB;KACF,CAAC;IAEF,OAAO;QACL,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;YACjH,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC,MAAM,EAAE;YACxC,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,QAAQ,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC;iBACpE;gBACD,iBAAiB,EAAE;oBACjB,OAAO,EAAE,iBAAiB,CAAC,OAAO;oBAClC,OAAO,EAAE,iBAAiB,CAAC,MAAM;oBACjC,IAAI,EAAE,cAAc,CAAC,YAAY;iBAClC;gBACD,IAAI,EAAE,GAAG,EAAE;oBACT,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,sBAAsB,EAAE,CAAC;oBAC/D,OAAO,CACL,MAAC,UAAU,eACT,MAAC,OAAO,IAAC,IAAI,EAAC,UAAU,EAAC,UAAU,EAAE,WAAW,CAAC,IAAI,aACnD,KAAC,SAAS,IAAC,IAAI,EAAC,KAAK,GAAG,EACxB,KAAC,SAAS,IAAC,IAAI,EAAC,MAAM,GAAG,EACzB,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,GAAG,EAC7B,KAAC,SAAS,IAAC,IAAI,EAAC,eAAe,GAAG,EAClC,KAAC,SAAS,IAAC,IAAI,EAAC,mBAAmB,GAAG,EACtC,KAAC,SAAS,IAAC,IAAI,EAAC,cAAc,GAAG,EACjC,KAAC,SAAS,IAAC,IAAI,EAAC,iBAAiB,GAAG,EACpC,KAAC,SAAS,IAAC,IAAI,EAAC,eAAe,GAAG,EAClC,KAAC,SAAS,IAAC,IAAI,EAAC,WAAW,GAAG,IACtB,EACV,KAAC,OAAO,IAAC,IAAI,EAAC,KAAK,YACjB,KAAC,SAAS,IAAC,IAAI,EAAC,gBAAgB,GAAG,GAC3B,EACV,KAAC,OAAO,IAAC,IAAI,EAAC,UAAU,EAAC,UAAU,EAAE,WAAW,CAAC,IAAI,YACnD,MAAC,WAAW,IAAC,IAAI,EAAC,gBAAgB,aAChC,KAAC,SAAS,IAAC,IAAI,EAAC,wBAAwB,GAAG,EAC3C,KAAC,SAAS,IAAC,IAAI,EAAC,gBAAgB,GAAG,EACnC,KAAC,SAAS,IAAC,IAAI,EAAC,eAAe,GAAG,IACtB,GACN,EACV,KAAC,OAAO,IAAC,IAAI,EAAC,UAAU,YACtB,KAAC,SAAS,IAAC,IAAI,EAAC,gBAAgB,GAAG,GAC3B,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,YAAY,aACxB,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,GAAG,EAC7B,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,GAAG,EAC7B,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,GAAG,IACrB,IACC,CACd,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,yBAAyB,EAAE,CAAC;oBACxD,OAAO,CACL,MAAC,aAAa,eACZ,MAAC,OAAO,IAAC,IAAI,EAAC,UAAU,EAAC,UAAU,EAAE,WAAW,CAAC,IAAI,aACnD,KAAC,YAAY,IAAC,IAAI,EAAC,KAAK,GAAG,EAC3B,KAAC,YAAY,IAAC,IAAI,EAAC,MAAM,GAAG,EAC5B,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,EAChC,KAAC,YAAY,IAAC,IAAI,EAAC,eAAe,GAAG,EACrC,KAAC,YAAY,IAAC,IAAI,EAAC,WAAW,GAAG,EACjC,KAAC,YAAY,IAAC,IAAI,EAAC,cAAc,GAAG,EACpC,KAAC,YAAY,IAAC,IAAI,EAAC,iBAAiB,GAAG,EACvC,KAAC,YAAY,IAAC,IAAI,EAAC,eAAe,GAAG,IAC7B,EACV,KAAC,OAAO,IAAC,IAAI,EAAC,KAAK,YACjB,KAAC,YAAY,IAAC,IAAI,EAAC,gBAAgB,GAAG,GAC9B,EACV,KAAC,OAAO,IAAC,IAAI,EAAC,UAAU,EAAC,UAAU,EAAE,WAAW,CAAC,IAAI,YACnD,MAAC,WAAW,IAAC,IAAI,EAAC,gBAAgB,aAChC,KAAC,YAAY,IAAC,IAAI,EAAC,wBAAwB,GAAG,EAC9C,KAAC,YAAY,IAAC,IAAI,EAAC,gBAAgB,GAAG,EACtC,KAAC,YAAY,IAAC,IAAI,EAAC,eAAe,GAAG,IACzB,GACN,EACV,KAAC,OAAO,IAAC,IAAI,EAAC,UAAU,YACtB,KAAC,YAAY,IAAC,IAAI,EAAC,gBAAgB,GAAG,GAC9B,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,YAAY,aACxB,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,EAChC,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,EAChC,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,IACxB,EAEV,KAAC,uBAAuB,IAAC,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAI,IACtE,CACjB,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,yBAAyB,EAAE,CAAC;oBACxD,OAAO,CACL,MAAC,aAAa,eACZ,KAAC,YAAY,IAAC,IAAI,EAAC,KAAK,GAAG,EAC3B,MAAC,WAAW,eACV,KAAC,YAAY,IAAC,IAAI,EAAC,MAAM,GAAG,EAC5B,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,EAChC,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,EAChC,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,IACpB,EACd,KAAC,YAAY,IAAC,IAAI,EAAC,KAAK,EAAC,SAAS,QAAC,SAAS,EAAC,6DAA6D,GAAG,IAC/F,CACjB,CAAC;gBACJ,CAAC;aACF;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC/B,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAC5B,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;oBACvE,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;iBAChC,CAAC;gBACF,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC5B,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;oBACtE,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC/B,MAAM,EAAE;wBACN,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;wBACtE,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;wBAC5E,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;wBAC3E,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;wBAChF,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE;wBAC/E,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;qBAC/E;iBACF,CAAC;gBACF,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACtC,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC/F,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;iBAChC,CAAC;gBACF,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC;oBACxC,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC5E,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;iBAChC,CAAC;gBACF,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACvC,cAAc,EAAE,qBAAqB,CAAC,eAAe;oBACrD,OAAO,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC7E,IAAI,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE;iBAClE,CAAC;gBACF,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACvC,cAAc,EAAE,qBAAqB,CAAC,MAAM;oBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC7E,IAAI,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE;iBAClE,CAAC;gBACF,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;aAC3G;YACD,wBAAwB,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG;YAClE,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QAEH,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,kBAAkB,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3G,IAAI,EAAE,qBAAqB,CAAC,OAAO;YACnC,UAAU,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC,MAAM,EAAE;YACxC,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE;gBAC/D,iBAAiB,EAAE;oBACjB,OAAO,EAAE,iBAAiB,CAAC,OAAO;oBAClC,OAAO,EAAE,iBAAiB,CAAC,MAAM;oBACjC,IAAI,EAAE,cAAc,CAAC,YAAY;iBAClC;gBACD,IAAI,EAAE,GAAG,EAAE;oBACT,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,sBAAsB,EAAE,CAAC;oBAC/D,OAAO,CACL,MAAC,UAAU,eACT,MAAC,OAAO,IAAC,IAAI,EAAC,SAAS,EAAC,UAAU,EAAE,WAAW,CAAC,IAAI,aAClD,KAAC,SAAS,IAAC,IAAI,EAAC,WAAW,GAAG,EAC9B,KAAC,SAAS,IAAC,IAAI,EAAC,OAAO,GAAG,EAC1B,KAAC,SAAS,IAAC,IAAI,EAAC,WAAW,GAAG,EAC9B,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,GAAG,EAC7B,KAAC,SAAS,IAAC,IAAI,EAAC,eAAe,GAAG,IAC1B,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,OAAO,aACnB,KAAC,SAAS,IAAC,IAAI,EAAC,OAAO,GAAG,EAC1B,KAAC,SAAS,IAAC,IAAI,EAAC,aAAa,GAAG,EAChC,KAAC,SAAS,IAAC,IAAI,EAAC,kBAAkB,GAAG,IAC7B,EACV,KAAC,OAAO,IAAC,IAAI,EAAC,KAAK,YACjB,KAAC,SAAS,IAAC,IAAI,EAAC,aAAa,GAAG,GACxB,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,cAAc,EAAC,UAAU,EAAE,cAAc,CAAC,MAAM,aAC5D,KAAC,SAAS,IAAC,IAAI,EAAC,WAAW,GAAG,EAC9B,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,GAAG,IACrB,IACC,CACd,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,yBAAyB,EAAE,CAAC;oBACxD,OAAO,CACL,MAAC,aAAa,eACZ,MAAC,OAAO,IAAC,IAAI,EAAC,SAAS,EAAC,UAAU,EAAE,WAAW,CAAC,IAAI,aAClD,KAAC,YAAY,IAAC,IAAI,EAAC,WAAW,GAAG,EACjC,KAAC,YAAY,IAAC,IAAI,EAAC,OAAO,GAAG,EAC7B,KAAC,YAAY,IAAC,IAAI,EAAC,WAAW,GAAG,EACjC,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,EAChC,KAAC,YAAY,IAAC,IAAI,EAAC,eAAe,GAAG,IAC7B,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,OAAO,aACnB,KAAC,YAAY,IAAC,IAAI,EAAC,OAAO,GAAG,EAC7B,KAAC,YAAY,IAAC,IAAI,EAAC,aAAa,GAAG,EACnC,KAAC,YAAY,IAAC,IAAI,EAAC,kBAAkB,GAAG,IAChC,EACV,KAAC,OAAO,IAAC,IAAI,EAAC,KAAK,YACjB,KAAC,YAAY,IAAC,IAAI,EAAC,aAAa,GAAG,GAC3B,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,cAAc,aAC1B,KAAC,YAAY,IAAC,IAAI,EAAC,WAAW,GAAG,EACjC,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,IACxB,IACI,CACjB,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,yBAAyB,EAAE,CAAC;oBACxD,OAAO,CACL,MAAC,aAAa,eACZ,MAAC,WAAW,eACV,KAAC,YAAY,IAAC,IAAI,EAAC,OAAO,GAAG,EAC7B,KAAC,YAAY,IAAC,IAAI,EAAC,WAAW,GAAG,EACjC,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,IACpB,EACd,KAAC,YAAY,IAAC,IAAI,EAAC,KAAK,EAAC,SAAS,QAAC,SAAS,EAAC,6DAA6D,GAAG,IAC/F,CACjB,CAAC;gBACJ,CAAC;aACF;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC/B,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC9B,YAAY,EAAE,oBAAoB,CAAC,SAAS;oBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;oBACtE,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC/B,MAAM,EAAE;wBACN,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;wBAC5E,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;wBAC5E,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;wBAC1E,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;wBAChF,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;qBACnF;iBACF,CAAC;gBACF,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACpC,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;oBACtE,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC/B,MAAM,EAAE;wBACN,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAClF,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE;qBACjF;iBACF,CAAC;gBACF,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC;oBAChD,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC5E,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;iBAChC,CAAC;gBACF,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;gBACtG,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;gBAC9G,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;gBACpG,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC;oBACzC,cAAc,EAAE,qBAAqB,CAAC,MAAM;oBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC7E,IAAI,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE;iBAClE,CAAC;gBACF,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACvC,cAAc,EAAE,qBAAqB,CAAC,eAAe;oBACrD,OAAO,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC7E,IAAI,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE;iBAClE,CAAC;aACH;YACD,wBAAwB,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,KAAK,MAAM,aAAa,CAAC,QAAQ,IAAI,UAAU,EAAE;YACnH,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QAEH,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAC,gBAAgB,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;YACpH,IAAI,EAAE,qBAAqB,CAAC,KAAK;YACjC,UAAU,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC,MAAM,EAAE;YACxC,MAAM,EAAE;gBACN,iBAAiB,EAAE;oBACjB,OAAO,EAAE,iBAAiB,CAAC,OAAO;oBAClC,OAAO,EAAE,iBAAiB,CAAC,MAAM;oBACjC,IAAI,EAAE,cAAc,CAAC,YAAY;iBAClC;gBACC,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,yBAAyB,EAAE,CAAC;oBACxD,OAAO,CACL,MAAC,aAAa,eACZ,KAAC,YAAY,IAAC,IAAI,EAAC,cAAc,GAAG,EACpC,MAAC,WAAW,eACV,KAAC,YAAY,IAAC,IAAI,EAAC,QAAQ,GAAG,EAC9B,KAAC,YAAY,IAAC,IAAI,EAAC,mBAAmB,GAAG,EACzC,KAAC,YAAY,IAAC,IAAI,EAAC,mBAAmB,GAAG,IAC7B,EACd,MAAC,WAAW,IAAC,SAAS,EAAC,+BAA+B,aACpD,KAAC,YAAY,IAAC,IAAI,EAAC,WAAW,GAAG,EACjC,KAAC,YAAY,IAAC,IAAI,EAAC,aAAa,GAAG,IACvB,EACd,KAAC,YAAY,IAAC,IAAI,EAAC,0BAA0B,EAAC,SAAS,QAAC,SAAS,EAAC,uCAAuC,GAAG,IAC9F,CACjB,CAAC;gBACJ,CAAC;aACJ;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC/B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;oBAChC,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE;oBAC/C,MAAM,EAAE;wBACN,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;wBAC3E,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;wBAChF,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE;wBACvF,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACjF,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;qBACvF;iBACF,CAAC;gBACF,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;gBACrG,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC;oBACtD,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE;oBAC/C,MAAM,EAAE;wBACN,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;wBAC5F,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;qBAClF;iBACF,CAAC;gBACF,iBAAiB,EAAE,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC;oBACtD,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE;oBAC/C,MAAM,EAAE;wBACN,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;wBAC5F,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;qBAClF;iBACF,CAAC;gBACF,qBAAqB,EAAE,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAAC;oBACjE,cAAc,EAAE,qBAAqB,CAAC,MAAM;oBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,SAAS,EAAE;iBACvD,CAAC;gBACF,qBAAqB,EAAE,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAAC;oBACjE,cAAc,EAAE,qBAAqB,CAAC,MAAM;oBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,SAAS,EAAE;iBACvD,CAAC;aACH;YACD,wBAAwB,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY;YAC3E,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QAEH,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,eAAe,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;YACvH,IAAI,EAAE,qBAAqB,CAAC,SAAS;YACrC,UAAU,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC,MAAM,EAAE;YACxC,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE;gBACrF,iBAAiB,EAAE;oBACjB,OAAO,EAAE,iBAAiB,CAAC,OAAO;oBAClC,OAAO,EAAE,iBAAiB,CAAC,MAAM;oBACjC,IAAI,EAAE,cAAc,CAAC,YAAY;iBAClC;gBACD,IAAI,EAAE,GAAG,EAAE,CAAC,CACV,MAAC,UAAU,eACT,MAAC,OAAO,IAAC,IAAI,EAAC,UAAU,EAAC,UAAU,EAAE,WAAW,CAAC,IAAI,aACnD,KAAC,SAAS,IAAC,IAAI,EAAC,MAAM,GAAG,EACzB,KAAC,SAAS,IAAC,IAAI,EAAC,aAAa,GAAG,EAChC,KAAC,SAAS,IAAC,IAAI,EAAC,MAAM,GAAG,EACzB,KAAC,SAAS,IAAC,IAAI,EAAC,MAAM,GAAG,IACjB,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,UAAU,aACtB,KAAC,SAAS,IAAC,IAAI,EAAC,cAAc,GAAG,EACjC,KAAC,SAAS,IAAC,IAAI,EAAC,oBAAoB,GAAG,EACvC,KAAC,SAAS,IAAC,IAAI,EAAC,qBAAqB,GAAG,IAChC,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,UAAU,aACtB,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,GAAG,EAC7B,KAAC,SAAS,IAAC,IAAI,EAAC,kBAAkB,GAAG,IAC7B,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,eAAe,aAC3B,KAAC,SAAS,IAAC,IAAI,EAAC,oBAAoB,GAAG,EACvC,KAAC,SAAS,IAAC,IAAI,EAAC,gBAAgB,GAAG,EACnC,KAAC,SAAS,IAAC,IAAI,EAAC,eAAe,GAAG,IAC1B,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,UAAU,aACtB,KAAC,SAAS,IAAC,IAAI,EAAC,WAAW,GAAG,EAC9B,KAAC,SAAS,IAAC,IAAI,EAAC,YAAY,GAAG,EAC/B,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,GAAG,EAC7B,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,GAAG,IACrB,IACC,CACd;gBACD,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,yBAAyB,EAAE,CAAC;oBACxD,OAAO,CACL,MAAC,aAAa,eACZ,MAAC,OAAO,IAAC,IAAI,EAAC,UAAU,EAAC,UAAU,EAAE,WAAW,CAAC,IAAI,aACnD,KAAC,YAAY,IAAC,IAAI,EAAC,MAAM,GAAG,EAC5B,KAAC,YAAY,IAAC,IAAI,EAAC,aAAa,GAAG,EACnC,KAAC,YAAY,IAAC,IAAI,EAAC,MAAM,GAAG,EAC5B,KAAC,YAAY,IAAC,IAAI,EAAC,MAAM,GAAG,IACpB,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,UAAU,aACtB,KAAC,YAAY,IAAC,IAAI,EAAC,cAAc,GAAG,EACpC,KAAC,YAAY,IAAC,IAAI,EAAC,oBAAoB,GAAG,EAC1C,KAAC,YAAY,IAAC,IAAI,EAAC,qBAAqB,GAAG,IACnC,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,UAAU,aACtB,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,EAChC,KAAC,YAAY,IAAC,IAAI,EAAC,kBAAkB,GAAG,IAChC,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,eAAe,aAC3B,KAAC,YAAY,IAAC,IAAI,EAAC,oBAAoB,GAAG,EAC1C,KAAC,YAAY,IAAC,IAAI,EAAC,gBAAgB,GAAG,EACtC,KAAC,YAAY,IAAC,IAAI,EAAC,eAAe,GAAG,IAC7B,EACV,MAAC,OAAO,IAAC,IAAI,EAAC,UAAU,aACtB,KAAC,YAAY,IAAC,IAAI,EAAC,WAAW,GAAG,EACjC,KAAC,YAAY,IAAC,IAAI,EAAC,YAAY,GAAG,EAClC,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,EAChC,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,IACxB,IACI,CACjB,CAAC;gBACJ,CAAC;gBACD,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,yBAAyB,EAAE,CAAC;oBACxD,OAAO,CACL,MAAC,aAAa,eACZ,KAAC,YAAY,IAAC,IAAI,EAAC,MAAM,GAAG,EAC5B,MAAC,WAAW,eACV,KAAC,YAAY,IAAC,IAAI,EAAC,MAAM,GAAG,EAC5B,KAAC,YAAY,IAAC,IAAI,EAAC,cAAc,GAAG,IACxB,EACd,KAAC,YAAY,IAAC,IAAI,EAAC,KAAK,EAAC,SAAS,QAAC,SAAS,EAAC,6DAA6D,GAAG,IAC/F,CACjB,CAAC;gBACJ,CAAC;aACF;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC/B,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC9B,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC/F,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;iBAChC,CAAC;gBACF,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC;oBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC5E,IAAI,EAAE,EAAE,SAAS,EAAE,kBAAkB,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE;iBACxE,CAAC;gBACF,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAC9B,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;oBACvE,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;iBAChC,CAAC;gBACF,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC5B,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;oBACtE,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC/B,MAAM,EAAE;wBACN,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;wBAC7E,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACpF,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;wBAC/E,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;qBAC/E;iBACF,CAAC;gBACF,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC;oBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;oBACtE,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC/B,MAAM,EAAE;wBACN,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;wBAC9E,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACvF;iBACF,CAAC;gBACF,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC,QAAQ,CAAC;oBAC1D,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC5E,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;iBAChC,CAAC;gBACF,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;oBACpC,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;oBACtE,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC/B,MAAM,EAAE;wBACN,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;wBACpF,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;wBACjF,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACrF;iBACF,CAAC;gBACF,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC;oBACtD,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC5E,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;iBAChC,CAAC;gBACF,cAAc,EAAE,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC;oBAClD,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC5E,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;iBAChC,CAAC;gBACF,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC;oBAChD,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC5E,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;iBAChC,CAAC;gBACF,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACvC,cAAc,EAAE,qBAAqB,CAAC,eAAe;oBACrD,OAAO,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC7E,IAAI,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE;iBAClE,CAAC;aACH;YACD,wBAAwB,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI;YACnE,KAAK,EAAE;gBACL,CAAC,oBAAoB,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC1E,CAAC,oBAAoB,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;aAC9E;SACF,CAAC,CAAC;QAEH,GAAG,6BAA6B,CAC9B;YACE,QAAQ,EAAE;gBACR,EAAE,kBAAkB,EAAE,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,6BAA6B,EAAE;gBACtF,EAAE,kBAAkB,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,qBAAqB,EAAE;aACvE;SACF,EACD,mCAAmC,CAAC,CAAC,CAAC,6BAA6B,CAAC,EACpE,wBAAwB,EACxB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,EAAE,qBAAqB,CAAC,WAAW;YACvC,qEAAqE;YACrE,4EAA4E;YAC5E,2EAA2E;YAC3E,yEAAyE;YACzE,0EAA0E;YAC1E,UAAU,EAAE,EAAE,aAAa,EAAE,KAAc,EAAE;YAC7C,MAAM,EAAE,0BAA0B;YAClC,MAAM,EAAE;gBACN,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAChC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACxC,cAAc,EAAE,qBAAqB,CAAC,eAAe;oBACrD,OAAO,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,SAAS,EAAE;iBACvD,CAAC;aACH;YACD,oEAAoE;YACpE,uEAAuE;YACvE,uEAAuE;YACvE,4BAA4B;YAC5B,wBAAwB,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAC9C,aAAa,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,iBAAiB;YACrF,KAAK,EAAE;gBACL,CAAC,yBAAyB,CAAC,aAAa,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;gBACzF,CAAC,yBAAyB,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;gBACvF,CAAC,yBAAyB,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7E,gFAAgF;gBAChF,2CAA2C;gBAC3C,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACtB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;aACvB;YACD,qEAAqE;YACrE,2EAA2E;YAC3E,0EAA0E;YAC1E,0EAA0E;YAC1E,mBAAmB;YACnB,EAAE;YACF,2EAA2E;YAC3E,0DAA0D;YAC1D,2EAA2E;YAC3E,2EAA2E;YAC3E,gBAAgB,EAAE;gBAChB,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE;oBACjB,MAAM,EAAE;wBACN,GAAG,0BAA0B;wBAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,CACb,MAAC,aAAa,eACZ,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,EAChC,KAAC,uBAAuB,IACtB,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,EAClC,OAAO,EAAE;wCACP,CAAC,CAAC,0BAA0B;wCAC5B,CAAC,CAAC,yBAAyB;wCAC3B,CAAC,CAAC,0BAA0B;wCAC5B,CAAC,CAAC,yBAAyB;qCAC5B,GACD,IACY,CACjB;qBACF;iBACF;gBACD,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBACT,MAAM,EAAE;wBACN,GAAG,0BAA0B;wBAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,CACb,MAAC,aAAa,eACZ,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,EAChC,KAAC,uBAAuB,IACtB,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,EAClC,OAAO,EAAE;wCACP,CAAC,CAAC,kBAAkB;wCACpB,CAAC,CAAC,iBAAiB;wCACnB,CAAC,CAAC,kBAAkB;wCACpB,CAAC,CAAC,iBAAiB;qCACpB,GACD,IACY,CACjB;qBACF;iBACF;aACF;SACF,CAAC,CACH;QAED,GAAG,6BAA6B,CAC9B;YACE,QAAQ,EAAE;gBACR,EAAE,kBAAkB,EAAE,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,0BAA0B,EAAE;gBACnF,EAAE,kBAAkB,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,kBAAkB,EAAE;aACpE;SACF,EACD,wCAAwC,CAAC,CAAC,CAAC,0BAA0B,CAAC,EACtE,6BAA6B,EAC7B,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,EAAE,qBAAqB,CAAC,YAAY;YACxC,qEAAqE;YACrE,4EAA4E;YAC5E,2EAA2E;YAC3E,yEAAyE;YACzE,0EAA0E;YAC1E,UAAU,EAAE,EAAE,aAAa,EAAE,KAAc,EAAE;YAC7C,MAAM,EAAE;gBACN,iBAAiB,EAAE;oBACjB,OAAO,EAAE,iBAAiB,CAAC,OAAO;oBAClC,OAAO,EAAE,iBAAiB,CAAC,MAAM;oBACjC,IAAI,EAAE,cAAc,CAAC,YAAY;iBAClC;gBACD,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,yBAAyB,EAAE,CAAC;oBACxD,OAAO,CACL,MAAC,aAAa,eACZ,MAAC,WAAW,eACV,KAAC,YAAY,IAAC,IAAI,EAAC,QAAQ,GAAG,EAC9B,KAAC,YAAY,IAAC,IAAI,EAAC,mBAAmB,GAAG,IAC7B,EACd,MAAC,WAAW,IAAC,SAAS,EAAC,+BAA+B,aACpD,KAAC,YAAY,IAAC,IAAI,EAAC,kBAAkB,GAAG,EACxC,KAAC,YAAY,IAAC,IAAI,EAAC,UAAU,GAAG,IACpB,EACd,KAAC,YAAY,IAAC,IAAI,EAAC,kBAAkB,EAAC,SAAS,QAAC,SAAS,EAAC,uCAAuC,GAAG,EACpG,KAAC,YAAY,IAAC,IAAI,EAAC,KAAK,EAAC,SAAS,QAAC,SAAS,EAAC,6DAA6D,GAAG,IAC/F,CACjB,CAAC;gBACJ,CAAC;aACF;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAChC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;oBACjC,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE;oBAC/C,MAAM,EAAE;wBACN,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE;wBACxF,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACnF,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE;wBAC3F,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE;wBACtF,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE;wBACtF,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;wBACtF,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACpG,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE;qBAC1F;iBACF,CAAC;gBACF,iBAAiB,EAAE,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC;oBAC1D,cAAc,EAAE,qBAAqB,CAAC,MAAM;oBAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,SAAS,EAAE;iBACvD,CAAC;gBACF,kBAAkB,EAAE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC;oBAC3D,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,SAAS,EAAE;oBACrD,IAAI,EAAE,EAAE,SAAS,EAAE,kBAAkB,CAAC,QAAQ,EAAE;iBACjD,CAAC;aACH;YACD,wBAAwB,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC7E,KAAK,EAAE;gBACL,CAAC,8BAA8B,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC9E,CAAC,8BAA8B,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;gBACrF,CAAC,8BAA8B,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC9F,CAAC,8BAA8B,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;gBACzF,CAAC,8BAA8B,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;gBAC7F,+EAA+E;gBAC/E,mCAAmC;gBACnC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;aACvB;SACF,CAAC,CACH;QAED,GAAG,6BAA6B,CAC9B;YACE,QAAQ,EAAE;gBACR,EAAE,kBAAkB,EAAE,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,yBAAyB,EAAE;gBAClF,EAAE,kBAAkB,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,iBAAiB,EAAE;aACnE;SACF,EACD,+BAA+B,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAC5D,gBAAgB,EAChB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,EAAE,qBAAqB,CAAC,WAAW;YACvC,qEAAqE;YACrE,4EAA4E;YAC5E,2EAA2E;YAC3E,yEAAyE;YACzE,0EAA0E;YAC1E,UAAU,EAAE,EAAE,aAAa,EAAE,KAAc,EAAE;YAC7C,MAAM,EAAE;gBACN,iBAAiB,EAAE;oBACjB,OAAO,EAAE,iBAAiB,CAAC,OAAO;oBAClC,OAAO,EAAE,iBAAiB,CAAC,MAAM;oBACjC,IAAI,EAAE,cAAc,CAAC,YAAY;iBAClC;gBACD,OAAO,EAAE,GAAG,EAAE;oBACZ,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,yBAAyB,EAAE,CAAC;oBACxD,OAAO,CACL,MAAC,aAAa,eACZ,KAAC,YAAY,IAAC,IAAI,EAAC,SAAS,GAAG,EAC/B,MAAC,WAAW,eACV,KAAC,YAAY,IAAC,IAAI,EAAC,WAAW,GAAG,EACjC,KAAC,YAAY,IAAC,IAAI,EAAC,gBAAgB,GAAG,EACtC,KAAC,YAAY,IAAC,IAAI,EAAC,eAAe,GAAG,IACzB,EACd,KAAC,YAAY,IAAC,IAAI,EAAC,kBAAkB,EAAC,SAAS,QAAC,SAAS,EAAC,6DAA6D,GAAG,IAC5G,CACjB,CAAC;gBACJ,CAAC;aACF;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAChC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC;gBACrG,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC;gBAC/G,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC;aAC9G;YACD,wBAAwB,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO;YACtE,KAAK,EAAE;gBACL,CAAC,qBAAqB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;aAC7E;SACF,CAAC,CACH;QAED,sEAAsE;QAEtE,GAAG,6BAA6B,CAC9B;YACE,QAAQ,EAAE;gBACR,EAAE,kBAAkB,EAAE,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,yBAAyB,EAAE;gBAClF,EAAE,kBAAkB,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,iBAAiB,EAAE;aACnE;SACF,EACD,+BAA+B,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAC5D,gBAAgB,EAChB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,aAAa,EAAE,KAAc,EAAE;YAC7C,MAAM,EAAE;gBACN,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAChC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;oBACjC,OAAO,EAAE,EAAE,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;oBACtE,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE;oBAC/B,MAAM,EAAE;wBACN,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,SAAS,EAAE;wBAChE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,IAAI,EAAE;wBAC1D,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE;wBAC7D,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,OAAO,EAAE;wBAC7D,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,EAAE,KAAK,EAAE,oBAAoB,CAAC,WAAW,EAAE;qBAC3E;iBACF,CAAC;gBACF,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;oBAChC,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;iBAC7E,CAAC;aACH;YACD,wBAAwB,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,WAAW,aAAa,CAAC,MAAM,EAAE;YAClF,KAAK,EAAE;gBACL,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;gBAC3B,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;aAC5B;SACF,CAAC,CACH;QAED,sEAAsE;QAEtE,GAAG,6BAA6B,CAC9B;YACE,QAAQ,EAAE;gBACR,EAAE,kBAAkB,EAAE,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,0BAA0B,EAAE;gBACnF,EAAE,kBAAkB,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,kBAAkB,EAAE;aACpE;SACF,EACD,gCAAgC,CAAC,CAAC,CAAC,0BAA0B,CAAC,EAC9D,iBAAiB,EACjB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC,CAAC;YAChD,IAAI,EAAE,SAAS;YACf,UAAU,EAAE,EAAE,aAAa,EAAE,KAAc,EAAE;YAC7C,MAAM,EAAE;gBACN,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAChC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAC3C,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;iBACxE,CAAC;gBACF,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBACvC,OAAO,EAAE,EAAE,WAAW,EAAE,iBAAiB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE;iBAC7E,CAAC;aACH;YACD,wBAAwB,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,UAAU,MAAM,aAAa,CAAC,QAAQ,EAAE;YAC1G,KAAK,EAAE;gBACL,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;gBAC3B,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;aAC5B;SACF,CAAC,CACH;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAiC;IACxE,OAAO;QACL,oEAAoE;QACpE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACtF,KAAK,EAAE;gBACL,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;gBAC3B,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;gBAC3B,8EAA8E;gBAC9E,2EAA2E;gBAC3E,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;aAC9B;SACF,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAChF,KAAK,EAAE;gBACL,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;gBAC3B,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;gBAC3B,4EAA4E;gBAC5E,2EAA2E;gBAC3E,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;aAC9B;SACF,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACzF,KAAK,EAAE;gBACL,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;gBAC3B,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;gBAC3B,8EAA8E;gBAC9E,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;aACvB;SACF,CAAC,CAAC;QAEH,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,sBAAsB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,UAAU,CAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5F,KAAK,EAAE;gBACL,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;gBAC3B,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC;gBAC3B,CAAC,oBAAoB,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;aAC9E;SACF,CAAC,CAAC;QAEH,CAAC,CAAC,CAAC,6BAA6B,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,6BAA6B,CAAE;QACzE,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAE;QAEzD,CAAC,CAAC,CAAC,0BAA0B,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAE;QACnE,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAE;QAEnD,2DAA2D;QAC3D,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,sBAAsB,CACnD,+BAA+B,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAC5D,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAE,EAClC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACb,KAAK,EAAE;gBACL,CAAC,qBAAqB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;aAC7E;SACF,CAAC,CACH;QACD,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,sBAAsB,CAC3C,+BAA+B,CAAC,CAAC,CAAC,iBAAiB,CAAC,EACpD,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAE,EAC1B,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACb,KAAK,EAAE;gBACL,CAAC,qBAAqB,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;aAC7E;SACF,CAAC,CACH;QAED,mDAAmD;QACnD,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAE;QACjE,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAE;QACjD,CAAC,CAAC,CAAC,0BAA0B,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAE;QACnE,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAE;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,EAAE,CAAC;AAC5D,MAAM,CAAC,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,8BAA8B,GAAG,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAE,CAAC;AAC9E,MAAM,CAAC,MAAM,+BAA+B,GAAG,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAE,CAAC;AAChF,MAAM,CAAC,MAAM,4BAA4B,GAAG,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC;AAC1E,MAAM,CAAC,MAAM,6BAA6B,GAAG,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC;AAC5E,MAAM,CAAC,MAAM,+BAA+B,GAAG,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAE,CAAC;AAChF,MAAM,CAAC,MAAM,gCAAgC,GAAG,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAE,CAAC;AAClF,MAAM,CAAC,MAAM,gCAAgC,GAAG,kBAAkB,CAAC,CAAC,CAAC,UAAU,CAAE,CAAC;AAClF,MAAM,CAAC,MAAM,iCAAiC,GAAG,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAE,CAAC","sourcesContent":["/**\n * Billing — Resource frontend presets\n *\n * Domain: PRODUCTS, PRICES, REFERRALS, PROMOTIONS,\n * BILLING_ACCOUNTS (poly), SUBSCRIPTIONS (poly), CREDIT_POOLS (poly),\n * INVOICE_REFS (poly), USAGE_RECORDS (poly)\n *\n * **Main:** PROMOTIONS (APPLY action only), BILLING_ACCOUNTS, SUBSCRIPTIONS, CREDIT_POOLS\n * (TOP_UP only — CONSUME is automated), INVOICE_REFS (LIST+READ), USAGE_RECORDS (LIST+READ).\n * PRODUCTS/PRICES/REFERRALS have field definitions but no main views — admin-only catalog.\n *\n * **Admin:** Full catalog (PRODUCTS, PRICES, REFERRALS, PROMOTIONS with LIST+READ+DEACTIVATE),\n * plus admin variants of all polymorphic resources.\n *\n * Layout JSX is inline. `layout.defaultChromeMode.edit` matches the dominant edit `<Section>`\n * chrome (`SETTINGS_ROW`); only override `chromeMode` on a section when it differs. Admin\n * deltas use `resourceUIBehaviorFrom` with `({ base })` when `views` are a subset of main.\n *\n * All three template types (`edit`, `display`, `summary`) are `() => { ... }` arrow functions\n * so they can call context hooks. Edit templates use `useFormTemplateContext()` for operation\n * branching; display/summary templates use `useDisplayTemplateContext()` for reactive data.\n */\n\nimport React from 'react';\nimport type { ResourceUIBehavior } from '@wildo-ai/saas-frontend-lib';\nimport {\n RelatedResourceSections,\n resourceUIBehavior,\n resourceUIBehaviorFrom,\n polymorphicResourceUIBehavior,\n polymorphicResourceUIBehaviorFrom,\n StandardIconReference,\n SummaryFlow,\n SummaryMeta,\n SummaryTitle,\n} from '@wildo-ai/saas-frontend-lib';\nimport {\n useFormTemplateContext,\n useDisplayTemplateContext,\n DisplayField,\n DisplayLayout,\n FormField,\n FormLayout,\n ObjectScope,\n Section,\n SummaryLayout,\n} from '@wildo-ai/saas-frontend-lib';\nimport {\n BadgeSemanticVariant,\n BooleanDisplayMode,\n BooleanEditMode,\n BooleanLabellingValue,\n SectionMode,\n DisplayChromeMode,\n EditChromeMode,\n EnumDisplayMode,\n FormFieldComponent,\n NumberDisplayMode,\n StringDisplayMode,\n} from '@wildo-ai/zod-decorators';\nimport {\n Package,\n Layers,\n Puzzle,\n Gauge,\n CircleDot,\n Coins,\n ShoppingBag,\n Hash,\n Layers2,\n TrendingUp,\n Package as PackageIcon,\n Calendar,\n CalendarDays,\n Ticket,\n KeyRound,\n Gift,\n Handshake,\n Percent,\n Banknote,\n Clock,\n UserCheck,\n CheckCircle2,\n TimerOff,\n CircleX,\n Building2,\n User,\n Ban,\n AlertTriangle,\n Wallet,\n Loader,\n OctagonX,\n PauseCircle,\n Sparkles,\n Square,\n Repeat,\n Infinity,\n FileText,\n BarChart3,\n BadgeCheck,\n PowerOff,\n ShoppingCart,\n ExternalLink,\n Info,\n CirclePlay,\n ArrowRightLeft,\n PackagePlus,\n PackageMinus,\n CirclePlus,\n} from 'lucide-react';\nimport {\n CoreResourceType as R,\n CoreResourceOperation as Op,\n Promotion_Operations,\n BillingAccount_Operations,\n BillingSubscription_Operations,\n CreditPool_Operations,\n productsResourceConfiguration_InitializationFactory as productsFactory,\n pricesResourceConfiguration_InitializationFactory as pricesFactory,\n referralsResourceConfiguration_InitializationFactory as referralsFactory,\n promotionsResourceConfiguration_InitializationFactory as promotionsFactory,\n billingAccountsPolymorphicFactories,\n billingSubscriptionsPolymorphicFactories,\n creditPoolsPolymorphicFactories,\n invoiceRefsPolymorphicFactories,\n usageRecordsPolymorphicFactories,\n ProductSchema,\n PriceSchema,\n ReferralSchema,\n PromotionSchema,\n BillingAccountBaseSchema,\n BillingSubscriptionBaseSchema,\n CreditPoolSchema,\n InvoiceRefSchema,\n UsageRecordSchema,\n ReferralStatus,\n SubscriptionStatus,\n InvoiceStatus,\n BillingScopeType,\n PromotionDuration,\n ProductType,\n PricingModel,\n BillingInterval,\n PromotionType,\n DiscountType,\n} from '@wildo-ai/saas-models';\nimport { notAddressable, apiOnly } from './resource.config.utils';\n\nexport function buildBillingMainPresets(): Partial<ResourceUIBehavior> {\n /**\n * Chrome + summary shared by BOTH billing-account variants.\n *\n * Extracted because `variantOverrides` REPLACE a shared field rather than merging\n * into it: each variant supplies its own `display` (its children genuinely differ)\n * and must spread this to keep the chrome mode and summary it would otherwise\n * silently lose.\n */\n const billingAccountSharedLayout = {\n defaultChromeMode: {\n display: DisplayChromeMode.STACKED,\n summary: DisplayChromeMode.INLINE,\n edit: EditChromeMode.SETTINGS_ROW,\n },\n summary: () => (\n <SummaryLayout flow={SummaryFlow.ROW}>\n <DisplayField name=\"isActive\" />\n <DisplayField name=\"_id\" hideLabel className=\"text-muted-foreground text-xs font-mono truncate max-w-full\" />\n </SummaryLayout>\n ),\n };\n\n return {\n [R.PRODUCTS]: resourceUIBehavior(productsFactory, ProductSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: Package,\n emptyState: { primaryAction: Op.CREATE },\n layout: {\n refs: {\n sections: ['overview', 'tax', 'purchase', 'behavior', 'visibility'],\n },\n defaultChromeMode: {\n display: DisplayChromeMode.STACKED,\n summary: DisplayChromeMode.INLINE,\n edit: EditChromeMode.SETTINGS_ROW,\n },\n edit: () => {\n const { isExisting, operationType } = useFormTemplateContext();\n return (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"key\" />\n <FormField name=\"type\" />\n <FormField name=\"planTier\" />\n <FormField name=\"planTierOrder\" />\n <FormField name=\"requiredPlanTiers\" />\n <FormField name=\"targetScopes\" />\n <FormField name=\"grantedFeatures\" />\n <FormField name=\"grantedLimits\" />\n <FormField name=\"sortOrder\" />\n </Section>\n <Section name=\"tax\">\n <FormField name=\"taxDisplayMode\" />\n </Section>\n <Section name=\"purchase\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"purchaseConfig\">\n <FormField name=\"maxQuantityPerPurchase\" />\n <FormField name=\"creditsPerUnit\" />\n <FormField name=\"creditPoolKey\" />\n </ObjectScope>\n </Section>\n <Section name=\"behavior\">\n <FormField name=\"behaviorPolicy\" />\n </Section>\n <Section name=\"visibility\">\n <FormField name=\"isPublic\" />\n <FormField name=\"isActive\" />\n <FormField name=\"metadata\" />\n </Section>\n </FormLayout>\n );\n },\n display: () => {\n const { data, isLoading } = useDisplayTemplateContext();\n return (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"key\" />\n <DisplayField name=\"type\" />\n <DisplayField name=\"planTier\" />\n <DisplayField name=\"planTierOrder\" />\n <DisplayField name=\"sortOrder\" />\n <DisplayField name=\"targetScopes\" />\n <DisplayField name=\"grantedFeatures\" />\n <DisplayField name=\"grantedLimits\" />\n </Section>\n <Section name=\"tax\">\n <DisplayField name=\"taxDisplayMode\" />\n </Section>\n <Section name=\"purchase\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"purchaseConfig\">\n <DisplayField name=\"maxQuantityPerPurchase\" />\n <DisplayField name=\"creditsPerUnit\" />\n <DisplayField name=\"creditPoolKey\" />\n </ObjectScope>\n </Section>\n <Section name=\"behavior\">\n <DisplayField name=\"behaviorPolicy\" />\n </Section>\n <Section name=\"visibility\">\n <DisplayField name=\"isPublic\" />\n <DisplayField name=\"isActive\" />\n <DisplayField name=\"metadata\" />\n </Section>\n {/* A product's prices — the one child this surface composes. */}\n <RelatedResourceSections config={{ mode: SectionMode.TABS }} targets={[R.PRICES]} />\n </DisplayLayout>\n );\n },\n summary: () => {\n const { data, isLoading } = useDisplayTemplateContext();\n return (\n <SummaryLayout>\n <SummaryTitle name=\"key\" />\n <SummaryMeta>\n <DisplayField name=\"type\" />\n <DisplayField name=\"planTier\" />\n <DisplayField name=\"isPublic\" />\n <DisplayField name=\"isActive\" />\n </SummaryMeta>\n <DisplayField name=\"_id\" hideLabel className=\"text-muted-foreground text-xs font-mono truncate max-w-full\" />\n </SummaryLayout>\n );\n },\n },\n fields: {\n _id: schemaShape._id.isHidden(),\n key: schemaShape.key.stringUI({\n display: { displayMode: StringDisplayMode.COPY, showDescription: true },\n edit: { showDescription: true },\n }),\n type: schemaShape.type.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },\n edit: { showDescription: true },\n values: {\n [ProductType.PLAN]: { color: BadgeSemanticVariant.INFO, icon: Layers },\n [ProductType.ADDON]: { color: BadgeSemanticVariant.SECONDARY, icon: Puzzle },\n [ProductType.METERED]: { color: BadgeSemanticVariant.DEFAULT, icon: Gauge },\n [ProductType.ONE_TIME]: { color: BadgeSemanticVariant.OUTLINE, icon: CircleDot },\n [ProductType.CREDIT_PACK]: { color: BadgeSemanticVariant.WARNING, icon: Coins },\n [ProductType.ITEM]: { color: BadgeSemanticVariant.DEFAULT, icon: ShoppingBag },\n },\n }),\n planTier: schemaShape.planTier.stringUI({\n display: { displayMode: StringDisplayMode.TRUNCATE, truncateLength: 48, showDescription: true },\n edit: { showDescription: true },\n }),\n sortOrder: schemaShape.sortOrder.numberUI({\n display: { displayMode: NumberDisplayMode.FORMATTED, showDescription: true },\n edit: { showDescription: true },\n }),\n isActive: schemaShape.isActive.booleanUI({\n labellingValue: BooleanLabellingValue.ACTIVE_INACTIVE,\n display: { displayMode: BooleanDisplayMode.CHECKMARK, showDescription: true },\n edit: { editMode: BooleanEditMode.SWITCH, showDescription: true },\n }),\n isPublic: schemaShape.isPublic.booleanUI({\n labellingValue: BooleanLabellingValue.YES_NO,\n display: { displayMode: BooleanDisplayMode.CHECKMARK, showDescription: true },\n edit: { editMode: BooleanEditMode.SWITCH, showDescription: true },\n }),\n taxDisplayMode: schemaShape.taxDisplayMode.enumUI({ display: { tooltip: true }, edit: { tooltip: true } }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.key,\n views: [],\n })),\n\n [R.PRICES]: resourceUIBehavior(pricesFactory, PriceSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.RECEIPT,\n emptyState: { primaryAction: Op.CREATE },\n layout: {\n refs: { sections: ['pricing', 'tiers', 'tax', 'availability'] },\n defaultChromeMode: {\n display: DisplayChromeMode.STACKED,\n summary: DisplayChromeMode.INLINE,\n edit: EditChromeMode.SETTINGS_ROW,\n },\n edit: () => {\n const { isExisting, operationType } = useFormTemplateContext();\n return (\n <FormLayout>\n <Section name=\"pricing\" appearance={SectionMode.CARD}>\n <FormField name=\"productId\" />\n <FormField name=\"model\" />\n <FormField name=\"unitPrice\" />\n <FormField name=\"interval\" />\n <FormField name=\"intervalCount\" />\n </Section>\n <Section name=\"tiers\">\n <FormField name=\"tiers\" />\n <FormField name=\"packageSize\" />\n <FormField name=\"usageAggregation\" />\n </Section>\n <Section name=\"tax\">\n <FormField name=\"taxBehavior\" />\n </Section>\n <Section name=\"availability\" chromeMode={EditChromeMode.INLINE}>\n <FormField name=\"isDefault\" />\n <FormField name=\"isActive\" />\n </Section>\n </FormLayout>\n );\n },\n display: () => {\n const { data, isLoading } = useDisplayTemplateContext();\n return (\n <DisplayLayout>\n <Section name=\"pricing\" appearance={SectionMode.CARD}>\n <DisplayField name=\"productId\" />\n <DisplayField name=\"model\" />\n <DisplayField name=\"unitPrice\" />\n <DisplayField name=\"interval\" />\n <DisplayField name=\"intervalCount\" />\n </Section>\n <Section name=\"tiers\">\n <DisplayField name=\"tiers\" />\n <DisplayField name=\"packageSize\" />\n <DisplayField name=\"usageAggregation\" />\n </Section>\n <Section name=\"tax\">\n <DisplayField name=\"taxBehavior\" />\n </Section>\n <Section name=\"availability\">\n <DisplayField name=\"isDefault\" />\n <DisplayField name=\"isActive\" />\n </Section>\n </DisplayLayout>\n );\n },\n summary: () => {\n const { data, isLoading } = useDisplayTemplateContext();\n return (\n <SummaryLayout>\n <SummaryMeta>\n <DisplayField name=\"model\" />\n <DisplayField name=\"unitPrice\" />\n <DisplayField name=\"interval\" />\n </SummaryMeta>\n <DisplayField name=\"_id\" hideLabel className=\"text-muted-foreground text-xs font-mono truncate max-w-full\" />\n </SummaryLayout>\n );\n },\n },\n fields: {\n _id: schemaShape._id.isHidden(),\n model: schemaShape.model.enumUI({\n defaultColor: BadgeSemanticVariant.SECONDARY,\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },\n edit: { showDescription: true },\n values: {\n [PricingModel.FLAT]: { color: BadgeSemanticVariant.SECONDARY, icon: Square },\n [PricingModel.PER_UNIT]: { color: BadgeSemanticVariant.DEFAULT, icon: Hash },\n [PricingModel.TIERED]: { color: BadgeSemanticVariant.INFO, icon: Layers2 },\n [PricingModel.GRADUATED]: { color: BadgeSemanticVariant.INFO, icon: TrendingUp },\n [PricingModel.PACKAGE]: { color: BadgeSemanticVariant.OUTLINE, icon: PackageIcon },\n },\n }),\n interval: schemaShape.interval.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },\n edit: { showDescription: true },\n values: {\n [BillingInterval.MONTH]: { color: BadgeSemanticVariant.SECONDARY, icon: Calendar },\n [BillingInterval.YEAR]: { color: BadgeSemanticVariant.INFO, icon: CalendarDays },\n },\n }),\n intervalCount: schemaShape.intervalCount.numberUI({\n display: { displayMode: NumberDisplayMode.FORMATTED, showDescription: true },\n edit: { showDescription: true },\n }),\n packageSize: schemaShape.packageSize.numberUI({ display: { tooltip: true }, edit: { tooltip: true } }),\n usageAggregation: schemaShape.usageAggregation.enumUI({ display: { tooltip: true }, edit: { tooltip: true } }),\n taxBehavior: schemaShape.taxBehavior.enumUI({ display: { tooltip: true }, edit: { tooltip: true } }),\n isDefault: schemaShape.isDefault.booleanUI({\n labellingValue: BooleanLabellingValue.YES_NO,\n display: { displayMode: BooleanDisplayMode.CHECKMARK, showDescription: true },\n edit: { editMode: BooleanEditMode.SWITCH, showDescription: true },\n }),\n isActive: schemaShape.isActive.booleanUI({\n labellingValue: BooleanLabellingValue.ACTIVE_INACTIVE,\n display: { displayMode: BooleanDisplayMode.CHECKMARK, showDescription: true },\n edit: { editMode: BooleanEditMode.SWITCH, showDescription: true },\n }),\n },\n getFrontendResourceLabel: ({ currentObject }) => `${currentObject.model} — ${currentObject.interval ?? 'one-time'}`,\n views: [],\n })),\n\n [R.REFERRALS]: resourceUIBehavior(referralsFactory, ReferralSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.SHARE,\n emptyState: { primaryAction: Op.CREATE },\n layout: {\n defaultChromeMode: {\n display: DisplayChromeMode.STACKED,\n summary: DisplayChromeMode.INLINE,\n edit: EditChromeMode.SETTINGS_ROW,\n },\n summary: () => {\n const { data, isLoading } = useDisplayTemplateContext();\n return (\n <SummaryLayout>\n <SummaryTitle name=\"referralCode\" />\n <SummaryMeta>\n <DisplayField name=\"status\" />\n <DisplayField name=\"referrerScopeType\" />\n <DisplayField name=\"referredScopeType\" />\n </SummaryMeta>\n <SummaryMeta className=\"text-muted-foreground text-xs\">\n <DisplayField name=\"expiresAt\" />\n <DisplayField name=\"convertedAt\" />\n </SummaryMeta>\n <DisplayField name=\"referrerBillingAccountId\" hideLabel className=\"text-xs font-mono truncate max-w-full\" />\n </SummaryLayout>\n );\n },\n },\n fields: {\n _id: schemaShape._id.isHidden(),\n status: schemaShape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n values: {\n [ReferralStatus.PENDING]: { color: BadgeSemanticVariant.INFO, icon: Clock },\n [ReferralStatus.ACCEPTED]: { color: BadgeSemanticVariant.INFO, icon: UserCheck },\n [ReferralStatus.CONVERTED]: { color: BadgeSemanticVariant.SUCCESS, icon: CheckCircle2 },\n [ReferralStatus.EXPIRED]: { color: BadgeSemanticVariant.WARNING, icon: TimerOff },\n [ReferralStatus.CANCELLED]: { color: BadgeSemanticVariant.DESTRUCTIVE, icon: CircleX },\n },\n }),\n referralCode: schemaShape.referralCode.stringUI({ display: { displayMode: StringDisplayMode.COPY } }),\n referrerScopeType: schemaShape.referrerScopeType.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n values: {\n [BillingScopeType.ORGANIZATIONS]: { color: BadgeSemanticVariant.SECONDARY, icon: Building2 },\n [BillingScopeType.USER_SELF]: { color: BadgeSemanticVariant.OUTLINE, icon: User },\n },\n }),\n referredScopeType: schemaShape.referredScopeType.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n values: {\n [BillingScopeType.ORGANIZATIONS]: { color: BadgeSemanticVariant.SECONDARY, icon: Building2 },\n [BillingScopeType.USER_SELF]: { color: BadgeSemanticVariant.OUTLINE, icon: User },\n },\n }),\n referrerRewardApplied: schemaShape.referrerRewardApplied.booleanUI({\n labellingValue: BooleanLabellingValue.YES_NO,\n display: { displayMode: BooleanDisplayMode.CHECKMARK },\n }),\n referredRewardApplied: schemaShape.referredRewardApplied.booleanUI({\n labellingValue: BooleanLabellingValue.YES_NO,\n display: { displayMode: BooleanDisplayMode.CHECKMARK },\n }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.referralCode,\n views: [],\n })),\n\n [R.PROMOTIONS]: resourceUIBehavior(promotionsFactory, PromotionSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.PROMOTION,\n emptyState: { primaryAction: Op.CREATE },\n layout: {\n refs: { sections: ['overview', 'discount', 'duration', 'applicability', 'validity'] },\n defaultChromeMode: {\n display: DisplayChromeMode.STACKED,\n summary: DisplayChromeMode.INLINE,\n edit: EditChromeMode.SETTINGS_ROW,\n },\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"name\" />\n <FormField name=\"description\" />\n <FormField name=\"type\" />\n <FormField name=\"code\" />\n </Section>\n <Section name=\"discount\">\n <FormField name=\"discountType\" />\n <FormField name=\"discountPercentage\" />\n <FormField name=\"discountFixedAmount\" />\n </Section>\n <Section name=\"duration\">\n <FormField name=\"duration\" />\n <FormField name=\"durationInMonths\" />\n </Section>\n <Section name=\"applicability\">\n <FormField name=\"applicableProducts\" />\n <FormField name=\"maxRedemptions\" />\n <FormField name=\"timesRedeemed\" />\n </Section>\n <Section name=\"validity\">\n <FormField name=\"validFrom\" />\n <FormField name=\"validUntil\" />\n <FormField name=\"isActive\" />\n <FormField name=\"metadata\" />\n </Section>\n </FormLayout>\n ),\n display: () => {\n const { data, isLoading } = useDisplayTemplateContext();\n return (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"name\" />\n <DisplayField name=\"description\" />\n <DisplayField name=\"type\" />\n <DisplayField name=\"code\" />\n </Section>\n <Section name=\"discount\">\n <DisplayField name=\"discountType\" />\n <DisplayField name=\"discountPercentage\" />\n <DisplayField name=\"discountFixedAmount\" />\n </Section>\n <Section name=\"duration\">\n <DisplayField name=\"duration\" />\n <DisplayField name=\"durationInMonths\" />\n </Section>\n <Section name=\"applicability\">\n <DisplayField name=\"applicableProducts\" />\n <DisplayField name=\"maxRedemptions\" />\n <DisplayField name=\"timesRedeemed\" />\n </Section>\n <Section name=\"validity\">\n <DisplayField name=\"validFrom\" />\n <DisplayField name=\"validUntil\" />\n <DisplayField name=\"isActive\" />\n <DisplayField name=\"metadata\" />\n </Section>\n </DisplayLayout>\n );\n },\n summary: () => {\n const { data, isLoading } = useDisplayTemplateContext();\n return (\n <SummaryLayout>\n <SummaryTitle name=\"name\" />\n <SummaryMeta>\n <DisplayField name=\"type\" />\n <DisplayField name=\"discountType\" />\n </SummaryMeta>\n <DisplayField name=\"_id\" hideLabel className=\"text-muted-foreground text-xs font-mono truncate max-w-full\" />\n </SummaryLayout>\n );\n },\n },\n fields: {\n _id: schemaShape._id.isHidden(),\n name: schemaShape.name.stringUI({\n display: { displayMode: StringDisplayMode.TRUNCATE, truncateLength: 64, showDescription: true },\n edit: { showDescription: true },\n }),\n description: schemaShape.description.stringUI({\n display: { displayMode: StringDisplayMode.MULTILINE, showDescription: true },\n edit: { component: FormFieldComponent.TEXTAREA, showDescription: true },\n }),\n code: schemaShape.code.stringUI({\n display: { displayMode: StringDisplayMode.COPY, showDescription: true },\n edit: { showDescription: true },\n }),\n type: schemaShape.type.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },\n edit: { showDescription: true },\n values: {\n [PromotionType.COUPON]: { color: BadgeSemanticVariant.SUCCESS, icon: Ticket },\n [PromotionType.PROMOTION_CODE]: { color: BadgeSemanticVariant.INFO, icon: KeyRound },\n [PromotionType.REFERRAL]: { color: BadgeSemanticVariant.SECONDARY, icon: Gift },\n [PromotionType.DEAL]: { color: BadgeSemanticVariant.WARNING, icon: Handshake },\n },\n }),\n discountType: schemaShape.discountType.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },\n edit: { showDescription: true },\n values: {\n [DiscountType.PERCENTAGE]: { color: BadgeSemanticVariant.INFO, icon: Percent },\n [DiscountType.FIXED_AMOUNT]: { color: BadgeSemanticVariant.SECONDARY, icon: Banknote },\n },\n }),\n discountPercentage: schemaShape.discountPercentage.numberUI({\n suffix: '%',\n display: { displayMode: NumberDisplayMode.FORMATTED, showDescription: true },\n edit: { showDescription: true },\n }),\n duration: schemaShape.duration.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },\n edit: { showDescription: true },\n values: {\n [PromotionDuration.ONCE]: { color: BadgeSemanticVariant.SECONDARY, icon: CircleDot },\n [PromotionDuration.REPEATING]: { color: BadgeSemanticVariant.INFO, icon: Repeat },\n [PromotionDuration.FOREVER]: { color: BadgeSemanticVariant.SUCCESS, icon: Infinity },\n },\n }),\n durationInMonths: schemaShape.durationInMonths.numberUI({\n display: { displayMode: NumberDisplayMode.FORMATTED, showDescription: true },\n edit: { showDescription: true },\n }),\n maxRedemptions: schemaShape.maxRedemptions.numberUI({\n display: { displayMode: NumberDisplayMode.FORMATTED, showDescription: true },\n edit: { showDescription: true },\n }),\n timesRedeemed: schemaShape.timesRedeemed.numberUI({\n display: { displayMode: NumberDisplayMode.FORMATTED, showDescription: true },\n edit: { showDescription: true },\n }),\n isActive: schemaShape.isActive.booleanUI({\n labellingValue: BooleanLabellingValue.ACTIVE_INACTIVE,\n display: { displayMode: BooleanDisplayMode.CHECKMARK, showDescription: true },\n edit: { editMode: BooleanEditMode.SWITCH, showDescription: true },\n }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.name,\n views: [\n [Promotion_Operations.APPLY, notAddressable({ iconOverride: BadgeCheck })],\n [Promotion_Operations.DEACTIVATE, notAddressable({ iconOverride: PowerOff })],\n ],\n })),\n\n ...polymorphicResourceUIBehavior(\n {\n variants: [\n { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_BILLING_ACCOUNTS },\n { parentResourceType: R.USERS, resourceType: R.USER_BILLING_ACCOUNTS },\n ],\n },\n billingAccountsPolymorphicFactories[R.ORGANIZATION_BILLING_ACCOUNTS],\n BillingAccountBaseSchema,\n ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.CREDIT_CARD,\n // Billing accounts / subscriptions / credit pools are system-managed\n // (auto-created on org access / created by Stripe webhooks / on CREDIT_PACK\n // purchase) — CREATE is REPOSITORY_ONLY, so there is no user-facing create\n // op. Suppress the empty-state \"Add\" affordance (matches invoice/usage);\n // the empty state reads as \"not configured yet\", not a broken Add button.\n emptyState: { primaryAction: false as const },\n layout: billingAccountSharedLayout,\n fields: {\n _id: schema.shape._id.isHidden(),\n isActive: schema.shape.isActive.booleanUI({\n labellingValue: BooleanLabellingValue.ACTIVE_INACTIVE,\n display: { displayMode: BooleanDisplayMode.CHECKMARK },\n }),\n },\n // A billing account has no user-authored name — it is the singleton\n // provider link for its scope. Label it by its role + state instead of\n // leaking the raw `_id` as a title (same raw-composition convention as\n // the invoice label below).\n getFrontendResourceLabel: ({ currentObject }) =>\n currentObject.isActive === false ? 'Billing account (inactive)' : 'Billing account',\n views: [\n [BillingAccount_Operations.OPEN_CHECKOUT, notAddressable({ iconOverride: ShoppingCart })],\n [BillingAccount_Operations.OPEN_PORTAL, notAddressable({ iconOverride: ExternalLink })],\n [BillingAccount_Operations.GET_STATE, notAddressable({ iconOverride: Info })],\n // Billing accounts are Stripe-managed (portal/checkout) — generic UPDATE/DELETE\n // are headless (no inline edit/delete UI).\n [Op.UPDATE, apiOnly()],\n [Op.DELETE, apiOnly()],\n ],\n // Each variant composes its OWN children — an organization's billing\n // account owns organization-scoped subscriptions/invoices/usage/credits, a\n // user's owns the user-scoped ones. The discriminator is the parent type,\n // so the composition genuinely differs per variant and cannot live in one\n // shared template.\n //\n // `variantOverrides` REPLACE the shared field rather than merging into it,\n // so each variant restates the shared layout by spreading\n // `billingAccountSharedLayout` and adding only its own `display`. Omitting\n // the spread would silently drop the chrome mode and the summary template.\n variantOverrides: {\n [R.ORGANIZATIONS]: {\n layout: {\n ...billingAccountSharedLayout,\n display: () => (\n <DisplayLayout>\n <DisplayField name=\"isActive\" />\n <RelatedResourceSections\n config={{ mode: SectionMode.TABS }}\n targets={[\n R.ORGANIZATION_SUBSCRIPTIONS,\n R.ORGANIZATION_INVOICE_REFS,\n R.ORGANIZATION_USAGE_RECORDS,\n R.ORGANIZATION_CREDIT_POOLS,\n ]}\n />\n </DisplayLayout>\n ),\n },\n },\n [R.USERS]: {\n layout: {\n ...billingAccountSharedLayout,\n display: () => (\n <DisplayLayout>\n <DisplayField name=\"isActive\" />\n <RelatedResourceSections\n config={{ mode: SectionMode.TABS }}\n targets={[\n R.USER_SUBSCRIPTIONS,\n R.USER_INVOICE_REFS,\n R.USER_USAGE_RECORDS,\n R.USER_CREDIT_POOLS,\n ]}\n />\n </DisplayLayout>\n ),\n },\n },\n },\n }),\n ),\n\n ...polymorphicResourceUIBehavior(\n {\n variants: [\n { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_SUBSCRIPTIONS },\n { parentResourceType: R.USERS, resourceType: R.USER_SUBSCRIPTIONS },\n ],\n },\n billingSubscriptionsPolymorphicFactories[R.ORGANIZATION_SUBSCRIPTIONS],\n BillingSubscriptionBaseSchema,\n ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.SUBSCRIPTION,\n // Billing accounts / subscriptions / credit pools are system-managed\n // (auto-created on org access / created by Stripe webhooks / on CREDIT_PACK\n // purchase) — CREATE is REPOSITORY_ONLY, so there is no user-facing create\n // op. Suppress the empty-state \"Add\" affordance (matches invoice/usage);\n // the empty state reads as \"not configured yet\", not a broken Add button.\n emptyState: { primaryAction: false as const },\n layout: {\n defaultChromeMode: {\n display: DisplayChromeMode.STACKED,\n summary: DisplayChromeMode.INLINE,\n edit: EditChromeMode.SETTINGS_ROW,\n },\n summary: () => {\n const { data, isLoading } = useDisplayTemplateContext();\n return (\n <SummaryLayout>\n <SummaryMeta>\n <DisplayField name=\"status\" />\n <DisplayField name=\"cancelAtPeriodEnd\" />\n </SummaryMeta>\n <SummaryMeta className=\"text-muted-foreground text-xs\">\n <DisplayField name=\"currentPeriodEnd\" />\n <DisplayField name=\"trialEnd\" />\n </SummaryMeta>\n <DisplayField name=\"billingAccountId\" hideLabel className=\"text-xs font-mono truncate max-w-full\" />\n <DisplayField name=\"_id\" hideLabel className=\"text-muted-foreground text-xs font-mono truncate max-w-full\" />\n </SummaryLayout>\n );\n },\n },\n fields: {\n _id: schema.shape._id.isHidden(),\n status: schema.shape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n values: {\n [SubscriptionStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS, icon: CheckCircle2 },\n [SubscriptionStatus.TRIALING]: { color: BadgeSemanticVariant.INFO, icon: Sparkles },\n [SubscriptionStatus.PAST_DUE]: { color: BadgeSemanticVariant.WARNING, icon: AlertTriangle },\n [SubscriptionStatus.UNPAID]: { color: BadgeSemanticVariant.DESTRUCTIVE, icon: Wallet },\n [SubscriptionStatus.CANCELLED]: { color: BadgeSemanticVariant.DESTRUCTIVE, icon: Ban },\n [SubscriptionStatus.INCOMPLETE]: { color: BadgeSemanticVariant.WARNING, icon: Loader },\n [SubscriptionStatus.INCOMPLETE_EXPIRED]: { color: BadgeSemanticVariant.DESTRUCTIVE, icon: OctagonX },\n [SubscriptionStatus.PAUSED]: { color: BadgeSemanticVariant.SECONDARY, icon: PauseCircle },\n },\n }),\n cancelAtPeriodEnd: schema.shape.cancelAtPeriodEnd.booleanUI({\n labellingValue: BooleanLabellingValue.YES_NO,\n display: { displayMode: BooleanDisplayMode.CHECKMARK },\n }),\n cancellationReason: schema.shape.cancellationReason.stringUI({\n display: { displayMode: StringDisplayMode.MULTILINE },\n edit: { component: FormFieldComponent.TEXTAREA },\n }),\n },\n getFrontendResourceLabel: ({ currentObject }) => String(currentObject.status),\n views: [\n [BillingSubscription_Operations.CANCEL, notAddressable({ iconOverride: Ban })],\n [BillingSubscription_Operations.RESUME, notAddressable({ iconOverride: CirclePlay })],\n [BillingSubscription_Operations.CHANGE_PLAN, notAddressable({ iconOverride: ArrowRightLeft })],\n [BillingSubscription_Operations.ADD_ADDON, notAddressable({ iconOverride: PackagePlus })],\n [BillingSubscription_Operations.REMOVE_ADDON, notAddressable({ iconOverride: PackageMinus })],\n // Subscriptions are managed via the custom ops above + Stripe — generic UPDATE\n // is headless (no inline edit UI).\n [Op.UPDATE, apiOnly()],\n ],\n }),\n ),\n\n ...polymorphicResourceUIBehavior(\n {\n variants: [\n { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_CREDIT_POOLS },\n { parentResourceType: R.USERS, resourceType: R.USER_CREDIT_POOLS },\n ],\n },\n creditPoolsPolymorphicFactories[R.ORGANIZATION_CREDIT_POOLS],\n CreditPoolSchema,\n ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.CREDIT_POOL,\n // Billing accounts / subscriptions / credit pools are system-managed\n // (auto-created on org access / created by Stripe webhooks / on CREDIT_PACK\n // purchase) — CREATE is REPOSITORY_ONLY, so there is no user-facing create\n // op. Suppress the empty-state \"Add\" affordance (matches invoice/usage);\n // the empty state reads as \"not configured yet\", not a broken Add button.\n emptyState: { primaryAction: false as const },\n layout: {\n defaultChromeMode: {\n display: DisplayChromeMode.STACKED,\n summary: DisplayChromeMode.INLINE,\n edit: EditChromeMode.SETTINGS_ROW,\n },\n summary: () => {\n const { data, isLoading } = useDisplayTemplateContext();\n return (\n <SummaryLayout>\n <SummaryTitle name=\"poolKey\" />\n <SummaryMeta>\n <DisplayField name=\"available\" />\n <DisplayField name=\"totalPurchased\" />\n <DisplayField name=\"totalConsumed\" />\n </SummaryMeta>\n <DisplayField name=\"billingAccountId\" hideLabel className=\"text-muted-foreground text-xs font-mono truncate max-w-full\" />\n </SummaryLayout>\n );\n },\n },\n fields: {\n _id: schema.shape._id.isHidden(),\n available: schema.shape.available.numberUI({ display: { displayMode: NumberDisplayMode.FORMATTED } }),\n totalPurchased: schema.shape.totalPurchased.numberUI({ display: { displayMode: NumberDisplayMode.FORMATTED } }),\n totalConsumed: schema.shape.totalConsumed.numberUI({ display: { displayMode: NumberDisplayMode.FORMATTED } }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.poolKey,\n views: [\n [CreditPool_Operations.TOP_UP, notAddressable({ iconOverride: CirclePlus })],\n ],\n }),\n ),\n\n // ── Invoice References (polymorphic: org + user) ───────────────────\n\n ...polymorphicResourceUIBehavior(\n {\n variants: [\n { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_INVOICE_REFS },\n { parentResourceType: R.USERS, resourceType: R.USER_INVOICE_REFS },\n ],\n },\n invoiceRefsPolymorphicFactories[R.ORGANIZATION_INVOICE_REFS],\n InvoiceRefSchema,\n ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: FileText,\n emptyState: { primaryAction: false as const },\n fields: {\n _id: schema.shape._id.isHidden(),\n status: schema.shape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },\n edit: { showDescription: true },\n values: {\n [InvoiceStatus.DRAFT]: { color: BadgeSemanticVariant.SECONDARY },\n [InvoiceStatus.OPEN]: { color: BadgeSemanticVariant.INFO },\n [InvoiceStatus.PAID]: { color: BadgeSemanticVariant.SUCCESS },\n [InvoiceStatus.VOID]: { color: BadgeSemanticVariant.WARNING },\n [InvoiceStatus.UNCOLLECTIBLE]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n },\n }),\n total: schema.shape.total.moneyUI({\n display: { displayMode: NumberDisplayMode.FORMATTED, showDescription: true },\n }),\n },\n getFrontendResourceLabel: ({ currentObject }) => `Invoice ${currentObject.status}`,\n views: [\n [Op.LIST, notAddressable()],\n [Op.READ, notAddressable()],\n ],\n }),\n ),\n\n // ── Usage Records (polymorphic: org + user) ────────────────────────\n\n ...polymorphicResourceUIBehavior(\n {\n variants: [\n { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_USAGE_RECORDS },\n { parentResourceType: R.USERS, resourceType: R.USER_USAGE_RECORDS },\n ],\n },\n usageRecordsPolymorphicFactories[R.ORGANIZATION_USAGE_RECORDS],\n UsageRecordSchema,\n ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: BarChart3,\n emptyState: { primaryAction: false as const },\n fields: {\n _id: schema.shape._id.isHidden(),\n productKey: schema.shape.productKey.stringUI({\n display: { displayMode: StringDisplayMode.COPY, showDescription: true },\n }),\n quantity: schema.shape.quantity.numberUI({\n display: { displayMode: NumberDisplayMode.FORMATTED, showDescription: true },\n }),\n },\n getFrontendResourceLabel: ({ currentObject }) => `${currentObject.productKey} · ${currentObject.quantity}`,\n views: [\n [Op.LIST, notAddressable()],\n [Op.READ, notAddressable()],\n ],\n }),\n ),\n };\n}\n\nexport function buildBillingAdminPresets(main: Partial<ResourceUIBehavior>): Partial<ResourceUIBehavior> {\n return {\n // Admin catalog: LIST+READ for browsing the product/pricing catalog\n [R.PRODUCTS]: resourceUIBehaviorFrom(productsFactory, main[R.PRODUCTS]!, ({ base }) => ({\n views: [\n [Op.LIST, notAddressable()],\n [Op.READ, notAddressable()],\n // PRODUCTS has an authored edit form (layout.edit) — surface UPDATE so admins\n // get the Edit action (EMBEDDED); without it, UPDATE resolves to API_ONLY.\n [Op.UPDATE, notAddressable()],\n ],\n })),\n [R.PRICES]: resourceUIBehaviorFrom(pricesFactory, main[R.PRICES]!, ({ base }) => ({\n views: [\n [Op.LIST, notAddressable()],\n [Op.READ, notAddressable()],\n // PRICES has an authored edit form (layout.edit) — surface UPDATE so admins\n // get the Edit action (EMBEDDED); without it, UPDATE resolves to API_ONLY.\n [Op.UPDATE, notAddressable()],\n ],\n })),\n [R.REFERRALS]: resourceUIBehaviorFrom(referralsFactory, main[R.REFERRALS]!, ({ base }) => ({\n views: [\n [Op.LIST, notAddressable()],\n [Op.READ, notAddressable()],\n // Referrals are an immutable ledger record — UPDATE is headless (no edit UI).\n [Op.UPDATE, apiOnly()],\n ],\n })),\n\n [R.PROMOTIONS]: resourceUIBehaviorFrom(promotionsFactory, main[R.PROMOTIONS]!, ({ base }) => ({\n views: [\n [Op.LIST, notAddressable()],\n [Op.READ, notAddressable()],\n [Promotion_Operations.DEACTIVATE, notAddressable({ iconOverride: PowerOff })],\n ],\n })),\n\n [R.ORGANIZATION_BILLING_ACCOUNTS]: main[R.ORGANIZATION_BILLING_ACCOUNTS]!,\n [R.USER_BILLING_ACCOUNTS]: main[R.USER_BILLING_ACCOUNTS]!,\n\n [R.ORGANIZATION_SUBSCRIPTIONS]: main[R.ORGANIZATION_SUBSCRIPTIONS]!,\n [R.USER_SUBSCRIPTIONS]: main[R.USER_SUBSCRIPTIONS]!,\n\n // Admin credit pools: TOP_UP only (no CONSUME — automated)\n [R.ORGANIZATION_CREDIT_POOLS]: resourceUIBehaviorFrom(\n creditPoolsPolymorphicFactories[R.ORGANIZATION_CREDIT_POOLS],\n main[R.ORGANIZATION_CREDIT_POOLS]!,\n ({ base }) => ({\n views: [\n [CreditPool_Operations.TOP_UP, notAddressable({ iconOverride: CirclePlus })],\n ],\n }),\n ),\n [R.USER_CREDIT_POOLS]: resourceUIBehaviorFrom(\n creditPoolsPolymorphicFactories[R.USER_CREDIT_POOLS],\n main[R.USER_CREDIT_POOLS]!,\n ({ base }) => ({\n views: [\n [CreditPool_Operations.TOP_UP, notAddressable({ iconOverride: CirclePlus })],\n ],\n }),\n ),\n\n // Admin invoice refs + usage records: same as main\n [R.ORGANIZATION_INVOICE_REFS]: main[R.ORGANIZATION_INVOICE_REFS]!,\n [R.USER_INVOICE_REFS]: main[R.USER_INVOICE_REFS]!,\n [R.ORGANIZATION_USAGE_RECORDS]: main[R.ORGANIZATION_USAGE_RECORDS]!,\n [R.USER_USAGE_RECORDS]: main[R.USER_USAGE_RECORDS]!,\n };\n}\n\nexport const billingMainPresets = buildBillingMainPresets();\nexport const billingAdminPresets = buildBillingAdminPresets(billingMainPresets);\n\nexport const productsMainResourceUIBehavior = billingMainPresets[R.PRODUCTS]!;\nexport const productsAdminResourceUIBehavior = billingAdminPresets[R.PRODUCTS]!;\nexport const pricesMainResourceUIBehavior = billingMainPresets[R.PRICES]!;\nexport const pricesAdminResourceUIBehavior = billingAdminPresets[R.PRICES]!;\nexport const referralsMainResourceUIBehavior = billingMainPresets[R.REFERRALS]!;\nexport const referralsAdminResourceUIBehavior = billingAdminPresets[R.REFERRALS]!;\nexport const promotionsMainResourceUIBehavior = billingMainPresets[R.PROMOTIONS]!;\nexport const promotionsAdminResourceUIBehavior = billingAdminPresets[R.PROMOTIONS]!;\n"]}
|
|
1
|
+
{"version":3,"file":"billing.resource-presets.js","sourceRoot":"","sources":["../../../../../src/config/resources/billing.resource-presets.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Billing — Resource frontend presets\n *\n * Domain: PRODUCTS, PRICES, REFERRALS, PROMOTIONS,\n * BILLING_ACCOUNTS (poly), SUBSCRIPTIONS (poly), CREDIT_POOLS (poly),\n * INVOICE_REFS (poly), USAGE_RECORDS (poly)\n *\n * **Main:** PROMOTIONS (APPLY action only), BILLING_ACCOUNTS, SUBSCRIPTIONS, CREDIT_POOLS\n * (TOP_UP only — CONSUME is automated), INVOICE_REFS (LIST+READ), USAGE_RECORDS (LIST+READ).\n * PRODUCTS/PRICES/REFERRALS have field definitions but no main views — admin-only catalog.\n *\n * **Admin:** Full catalog (PRODUCTS, PRICES, REFERRALS, PROMOTIONS with LIST+READ+DEACTIVATE),\n * plus admin variants of all polymorphic resources.\n *\n * Layout JSX is inline. The catalogue resources (PRODUCTS, PRICES, REFERRALS, PROMOTIONS) follow the\n * display pass: the header owns identity and state (`layout.header`), read pages are settings rows with\n * no section descriptions, cards show bare values (`summary: HIDDEN`), and optional rows hide when\n * empty. Admin deltas use `resourceUIBehaviorFrom` with `({ base })` when `views` are a subset of main.\n *\n * All three template types (`edit`, `display`, `summary`) are `() => { ... }` arrow functions\n * so they can call context hooks. Edit templates use `useFormTemplateContext()` for operation\n * branching; display/summary templates use `useDisplayTemplateContext()` for reactive data.\n */\n\nimport React from 'react';\nimport type { ResourceUIBehavior } from '@wildo-ai/saas-frontend-lib';\nimport {\n RelatedResourceSections,\n ResourceHeaderTitle,\n resourceUIBehavior,\n resourceUIBehaviorFrom,\n polymorphicResourceUIBehavior,\n polymorphicResourceUIBehaviorFrom,\n StandardIconReference,\n SummaryFlow,\n SummaryMeta,\n SummaryTitle,\n unresolvedLabel,\n} from '@wildo-ai/saas-frontend-lib';\nimport {\n useFormTemplateContext,\n useDisplayTemplateContext,\n DisplayField,\n DisplayLayout,\n FormField,\n FormLayout,\n ObjectScope,\n Section,\n SummaryLayout,\n} from '@wildo-ai/saas-frontend-lib';\nimport {\n BadgeSemanticVariant,\n BooleanDisplayMode,\n BooleanEditMode,\n BooleanLabellingValue,\n SectionMode,\n DisplayChromeMode,\n EditChromeMode,\n EnumDisplayMode,\n FormFieldComponent,\n NumberDisplayMode,\n StringDisplayMode,\n} from '@wildo-ai/zod-decorators';\nimport {\n Package,\n Layers,\n Puzzle,\n Gauge,\n CircleDot,\n Coins,\n ShoppingBag,\n Hash,\n Layers2,\n TrendingUp,\n Package as PackageIcon,\n Calendar,\n CalendarDays,\n Ticket,\n KeyRound,\n Gift,\n Handshake,\n Percent,\n Banknote,\n Clock,\n UserCheck,\n CheckCircle2,\n TimerOff,\n CircleX,\n Building2,\n User,\n Ban,\n AlertTriangle,\n Wallet,\n Loader,\n OctagonX,\n PauseCircle,\n Sparkles,\n Square,\n Repeat,\n Infinity,\n FileText,\n BarChart3,\n BadgeCheck,\n PowerOff,\n ShoppingCart,\n ExternalLink,\n Info,\n CirclePlay,\n CalendarX2,\n ArrowRightLeft,\n PackagePlus,\n PackageMinus,\n CirclePlus,\n} from 'lucide-react';\nimport {\n CoreResourceType as R,\n CoreResourceOperation as Op,\n Promotion_Operations,\n BillingAccount_Operations,\n Referral_Operations,\n BillingSubscription_Operations,\n CreditPool_Operations,\n productsResourceConfiguration_InitializationFactory as productsFactory,\n pricesResourceConfiguration_InitializationFactory as pricesFactory,\n referralsResourceConfiguration_InitializationFactory as referralsFactory,\n promotionsResourceConfiguration_InitializationFactory as promotionsFactory,\n billingAccountsPolymorphicFactories,\n billingSubscriptionsPolymorphicFactories,\n creditPoolsPolymorphicFactories,\n invoiceRefsPolymorphicFactories,\n usageRecordsPolymorphicFactories,\n ProductSchema,\n PriceSchema,\n ReferralSchema,\n PromotionSchema,\n BillingAccountBaseSchema,\n BillingSubscriptionBaseSchema,\n CreditPoolSchema,\n InvoiceRefSchema,\n UsageRecordSchema,\n ReferralStatus,\n SubscriptionStatus,\n InvoiceStatus,\n BillingScopeType,\n PromotionDuration,\n ProductType,\n ProductAvailability,\n PricingModel,\n BillingInterval,\n PromotionType,\n DiscountType,\n} from '@wildo-ai/saas-models';\nimport { LabellingTypes } from '@wildo-ai/presets-components-models';\nimport { notAddressable, apiOnly } from './resource.config.utils';\n\nexport function buildBillingMainPresets(): Partial<ResourceUIBehavior> {\n /**\n * Chrome + summary shared by BOTH billing-account variants.\n *\n * Extracted because `variantOverrides` REPLACE a shared field rather than merging\n * into it: each variant supplies its own `display` (its children genuinely differ)\n * and must spread this to keep the chrome mode and summary it would otherwise\n * silently lose.\n */\n const billingAccountSharedLayout = {\n defaultChromeMode: {\n display: DisplayChromeMode.STACKED,\n summary: DisplayChromeMode.INLINE,\n edit: EditChromeMode.SETTINGS_ROW,\n },\n summary: () => (\n <SummaryLayout flow={SummaryFlow.ROW}>\n <DisplayField name=\"isActive\" />\n <DisplayField name=\"_id\" hideLabel className=\"text-muted-foreground text-xs font-mono truncate max-w-full\" />\n </SummaryLayout>\n ),\n };\n\n return {\n [R.PRODUCTS]: resourceUIBehavior(productsFactory, ProductSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: Package,\n layout: {\n // No `tax` section any more: it was a heading over one field. The tax display mode is a commercial\n // term of the product, so it sits in `overview` with the other terms.\n refs: {\n sections: ['overview', 'purchase', 'behavior', 'visibility'],\n },\n // A catalogue entry is configuration: settings rows on read and edit, bare values on a card.\n defaultChromeMode: {\n display: DisplayChromeMode.SETTINGS_ROW,\n summary: DisplayChromeMode.HIDDEN,\n edit: EditChromeMode.SETTINGS_ROW,\n },\n // The identity line: the product's name (the record's label, its word — #1851), what KIND of product it is, and whether new\n // checkouts can buy it. None of the three is repeated below.\n header: () => (\n <div className=\"flex min-w-0 flex-wrap items-center gap-field\">\n <ResourceHeaderTitle />\n <DisplayField name=\"type\" hideLabel hideDescription className=\"w-auto\" />\n <DisplayField name=\"isActive\" hideLabel hideDescription className=\"w-auto\" />\n </div>\n ),\n /*\n * The form carries what can be CHANGED. `key`, `type`, `grantedFeatures` and `grantedLimits` are\n * `isNotEditable` — they are set when the product is materialized from its definition — so on a form\n * they were four read-only rows restating the read page. The first editable term takes the focus.\n */\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"planTier\" autoFocus />\n <FormField name=\"planTierOrder\" />\n <FormField name=\"requiredPlanTiers\" />\n <FormField name=\"targetScopes\" />\n <FormField name=\"taxDisplayMode\" />\n </Section>\n {/* The one edit section that keeps its description: these three only apply to one-time and credit-pack\n products, which nothing else on the form says. */}\n <Section name=\"purchase\" appearance={SectionMode.CARD}>\n <ObjectScope name=\"purchaseConfig\">\n <FormField name=\"maxQuantityPerPurchase\" />\n <FormField name=\"creditsPerUnit\" />\n <FormField name=\"creditPoolKey\" />\n </ObjectScope>\n </Section>\n <Section name=\"behavior\">\n <FormField name=\"behaviorPolicy\" />\n </Section>\n <Section name=\"visibility\">\n <FormField name=\"isPublic\" />\n <FormField name=\"isActive\" />\n <FormField name=\"sortOrder\" />\n <FormField name=\"metadata\" />\n </Section>\n </FormLayout>\n ),\n /*\n * Read: the header names the product, its type and its availability, so the body starts at the terms.\n * No read section carries a description — \"Does not set legal tax rates\", \"Backend enforcement lives in\n * services\" were notes to an engineer, on a page an operator reads. The purchase and behaviour blocks only\n * exist for some product types, so they render only when the product carries them; an add-on used to show\n * a \"Purchase settings\" card of three dashes.\n */\n display: () => {\n const { data } = useDisplayTemplateContext();\n const purchase = (data as { purchaseConfig?: Record<string, unknown> } | undefined)?.purchaseConfig;\n const purchaseHas = (key: string): boolean => purchase?.[key] !== undefined && purchase?.[key] !== null;\n const hasPurchase = purchaseHas('maxQuantityPerPurchase') || purchaseHas('creditsPerUnit') || purchaseHas('creditPoolKey');\n const behavior = (data as { behaviorPolicy?: Record<string, unknown> } | undefined)?.behaviorPolicy;\n const hasBehavior = !!behavior && Object.keys(behavior).length > 0;\n return (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD} hideDescription>\n {/* The header names the product by its word (#1851); the key an operator also knows it by is a copyable row. */}\n <DisplayField name=\"key\" />\n <DisplayField name=\"planTier\" />\n <DisplayField name=\"planTierOrder\" />\n <DisplayField name=\"requiredPlanTiers\" />\n <DisplayField name=\"targetScopes\" />\n <DisplayField name=\"grantedFeatures\" />\n <DisplayField name=\"grantedLimits\" />\n <DisplayField name=\"taxDisplayMode\" />\n </Section>\n {hasPurchase && (\n <Section name=\"purchase\" appearance={SectionMode.CARD} hideDescription>\n <ObjectScope name=\"purchaseConfig\">\n {purchaseHas('maxQuantityPerPurchase') && <DisplayField name=\"maxQuantityPerPurchase\" />}\n {purchaseHas('creditsPerUnit') && <DisplayField name=\"creditsPerUnit\" />}\n {purchaseHas('creditPoolKey') && <DisplayField name=\"creditPoolKey\" />}\n </ObjectScope>\n </Section>\n )}\n {/* The section's heading names the policy, so the policy itself carries no label of its own. */}\n {hasBehavior && (\n <Section name=\"behavior\" chromeMode={DisplayChromeMode.HIDDEN} hideDescription>\n <DisplayField name=\"behaviorPolicy\" />\n </Section>\n )}\n <Section name=\"visibility\" hideDescription>\n <DisplayField name=\"isPublic\" />\n <DisplayField name=\"sortOrder\" />\n <DisplayField name=\"isRecommended\" />\n <DisplayField name=\"priceDisclosure\" />\n <DisplayField name=\"availability\" />\n <DisplayField name=\"metadata\" />\n </Section>\n {/* A product's prices — the one child this surface composes. */}\n <RelatedResourceSections config={{ mode: SectionMode.TABS }} targets={[R.PRICES]} />\n </DisplayLayout>\n );\n },\n /*\n * A catalogue card: the product's name, its key, the type badge, the tier. The title is the host-resolved name\n * (the application's word for the product, #1851) — `name=\"key\"` rendered the raw key where the word\n * belonged. The key stays on the card as a meta value because an operator also identifies a product by it.\n * Availability shows only when it is the EXCEPTION — nearly every product is active and public, and a\n * checkmark on every card was a column of noise that hid the one product that is not. The record id is gone.\n */\n summary: () => {\n const { data } = useDisplayTemplateContext();\n const product = data as { isActive?: boolean; isPublic?: boolean; isRecommended?: boolean; availability?: ProductAvailability } | undefined;\n return (\n <SummaryLayout>\n <SummaryTitle />\n <SummaryMeta>\n <DisplayField name=\"key\" />\n <DisplayField name=\"type\" />\n <DisplayField name=\"planTier\" />\n {product?.isActive === false && <DisplayField name=\"isActive\" />}\n {product?.isPublic === false && <DisplayField name=\"isPublic\" />}\n {product?.availability === ProductAvailability.UPCOMING && <DisplayField name=\"availability\" />}\n {product?.isRecommended === true && <DisplayField name=\"isRecommended\" />}\n </SummaryMeta>\n </SummaryLayout>\n );\n },\n },\n fields: {\n _id: schemaShape._id.isHidden(),\n key: schemaShape.key.stringUI({ display: { displayMode: StringDisplayMode.COPY } }),\n type: schemaShape.type.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n values: {\n [ProductType.PLAN]: { color: BadgeSemanticVariant.INFO, icon: Layers },\n [ProductType.ADDON]: { color: BadgeSemanticVariant.SECONDARY, icon: Puzzle },\n [ProductType.METERED]: { color: BadgeSemanticVariant.DEFAULT, icon: Gauge },\n [ProductType.ONE_TIME]: { color: BadgeSemanticVariant.OUTLINE, icon: CircleDot },\n [ProductType.CREDIT_PACK]: { color: BadgeSemanticVariant.WARNING, icon: Coins },\n [ProductType.ITEM]: { color: BadgeSemanticVariant.DEFAULT, icon: ShoppingBag },\n },\n }),\n // Keeps its description on the FORM only: what a tier is for (plan comparison) is not obvious from the\n // word. On a card the bare tier (\"premium\") beside the type badge read as a second product name, so the\n // card keeps its label.\n planTier: schemaShape.planTier.stringUI({\n display: { displayMode: StringDisplayMode.TRUNCATE, truncateLength: 48, hideWhenEmpty: true },\n summaryOverride: { chromeMode: DisplayChromeMode.INLINE },\n edit: { showDescription: true },\n }),\n planTierOrder: schemaShape.planTierOrder.numberUI({ display: { hideWhenEmpty: true } }),\n requiredPlanTiers: schemaShape.requiredPlanTiers.arrayUI({ display: { hideWhenEmpty: true } }),\n grantedFeatures: schemaShape.grantedFeatures.arrayUI({ display: { hideWhenEmpty: true } }),\n grantedLimits: schemaShape.grantedLimits.objectUI({ display: { hideWhenEmpty: true } }),\n sortOrder: schemaShape.sortOrder.numberUI({ display: { displayMode: NumberDisplayMode.FORMATTED } }),\n // Read as a word (\"Active\" / \"Inactive\") because it stands alone in the header and, when inactive, on a\n // card: a bare checkmark there says nothing about what is checked. The form keeps its description — what\n // \"active\" governs (new checkouts only) is not obvious.\n isActive: schemaShape.isActive.booleanUI({\n labellingValue: BooleanLabellingValue.ACTIVE_INACTIVE,\n display: { displayMode: BooleanDisplayMode.RAW },\n edit: { editMode: BooleanEditMode.SWITCH, showDescription: true },\n }),\n // A bare \"No\" on a card would not say what is not; the card keeps the label. The form keeps the description\n // (public = listed in self-serve catalogues).\n isPublic: schemaShape.isPublic.booleanUI({\n labellingValue: BooleanLabellingValue.YES_NO,\n display: { displayMode: BooleanDisplayMode.CHECKMARK },\n summaryOverride: { chromeMode: DisplayChromeMode.INLINE },\n edit: { editMode: BooleanEditMode.SWITCH, showDescription: true },\n }),\n // On a card only when true (see the summary above), and for the same reason as `isPublic` the card keeps the\n // label: a bare checkmark beside the tier would not say WHAT is checked. Set by the catalogue sync, so there is\n // no edit configuration.\n isRecommended: schemaShape.isRecommended.booleanUI({\n labellingValue: BooleanLabellingValue.YES_NO,\n display: { displayMode: BooleanDisplayMode.CHECKMARK },\n summaryOverride: { chromeMode: DisplayChromeMode.INLINE },\n }),\n taxDisplayMode: schemaShape.taxDisplayMode.enumUI({ display: { hideWhenEmpty: true }, edit: { tooltip: true } }),\n metadata: schemaShape.metadata.objectUI({ display: { hideWhenEmpty: true } }),\n },\n /*\n * A product is named by the application's word for it (`billing_products.<key>.name`), never by its key (#1851).\n * The key stays on the page as a copyable row. A product with no authored word answers its key, which LOOKS\n * missing and gets authored. The section is declared so the registry loads it for every surface that names a\n * product — a list row, the header, a subscription line's product reference, the breadcrumb of a price.\n */\n getFrontendResourceLabel: ({ currentObject, t }) => {\n const nameKey = `${LabellingTypes.BILLING_PRODUCTS}.${currentObject.key}.name`;\n const name = t(nameKey);\n return name === nameKey ? unresolvedLabel(currentObject.key) : name;\n },\n instanceLabelSections: [LabellingTypes.BILLING_PRODUCTS],\n views: [],\n })),\n\n [R.PRICES]: resourceUIBehavior(pricesFactory, PriceSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.RECEIPT,\n layout: {\n refs: { sections: ['pricing', 'tiers', 'tax', 'availability'] },\n defaultChromeMode: {\n display: DisplayChromeMode.SETTINGS_ROW,\n summary: DisplayChromeMode.HIDDEN,\n edit: EditChromeMode.SETTINGS_ROW,\n },\n // The name of a price is its model and cadence (see `getFrontendResourceLabel`); the header adds whether it\n // is the product's default and whether it is still sold, so neither is a body row.\n header: () => (\n <div className=\"flex min-w-0 flex-wrap items-center gap-field\">\n <ResourceHeaderTitle />\n <DisplayField name=\"isActive\" hideLabel hideDescription className=\"w-auto\" />\n </div>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"pricing\" appearance={SectionMode.CARD}>\n <FormField name=\"productId\" />\n <FormField name=\"model\" autoFocus />\n <FormField name=\"unitPrice\" />\n <FormField name=\"interval\" />\n <FormField name=\"intervalCount\" />\n </Section>\n <Section name=\"tiers\">\n <FormField name=\"tiers\" />\n <FormField name=\"packageSize\" />\n <FormField name=\"usageAggregation\" />\n </Section>\n <Section name=\"tax\">\n <FormField name=\"taxBehavior\" />\n </Section>\n <Section name=\"availability\" chromeMode={EditChromeMode.INLINE}>\n <FormField name=\"isDefault\" />\n <FormField name=\"isActive\" />\n </Section>\n </FormLayout>\n ),\n /*\n * Read: the amount first, then cadence. The product is not repeated — a price is read inside its product's\n * page — and the model is the header. Tiers and tax only exist for some prices, so those rows hide when\n * empty and their sections render only when they hold something; a flat monthly price used to show two\n * headed blocks of dashes. No read section carries a description.\n */\n display: () => {\n const { data } = useDisplayTemplateContext();\n const price = data as { tiers?: unknown[]; packageSize?: number; usageAggregation?: string; taxBehavior?: string } | undefined;\n const hasTiers = (price?.tiers?.length ?? 0) > 0 || price?.packageSize != null || price?.usageAggregation != null;\n return (\n <DisplayLayout>\n <Section name=\"pricing\" appearance={SectionMode.CARD} hideTitle hideDescription>\n <DisplayField name=\"unitPrice\" />\n <DisplayField name=\"interval\" />\n <DisplayField name=\"intervalCount\" />\n <DisplayField name=\"isDefault\" />\n </Section>\n {hasTiers && (\n <Section name=\"tiers\" hideDescription>\n <DisplayField name=\"tiers\" />\n <DisplayField name=\"packageSize\" />\n <DisplayField name=\"usageAggregation\" />\n </Section>\n )}\n {price?.taxBehavior != null && (\n <Section name=\"tax\" hideDescription>\n <DisplayField name=\"taxBehavior\" />\n </Section>\n )}\n </DisplayLayout>\n );\n },\n // A card inside the product's Prices tab: the amount, the cadence, the model — bare, each speaks for itself.\n // The record id is gone.\n summary: () => (\n <SummaryLayout>\n <SummaryMeta>\n <DisplayField name=\"unitPrice\" />\n <DisplayField name=\"interval\" />\n <DisplayField name=\"model\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n },\n fields: {\n _id: schemaShape._id.isHidden(),\n model: schemaShape.model.enumUI({\n defaultColor: BadgeSemanticVariant.SECONDARY,\n display: { displayMode: EnumDisplayMode.BADGE },\n edit: { showDescription: true },\n values: {\n [PricingModel.FLAT]: { color: BadgeSemanticVariant.SECONDARY, icon: Square },\n [PricingModel.PER_UNIT]: { color: BadgeSemanticVariant.DEFAULT, icon: Hash },\n [PricingModel.TIERED]: { color: BadgeSemanticVariant.INFO, icon: Layers2 },\n [PricingModel.GRADUATED]: { color: BadgeSemanticVariant.INFO, icon: TrendingUp },\n [PricingModel.PACKAGE]: { color: BadgeSemanticVariant.OUTLINE, icon: PackageIcon },\n },\n }),\n // Absent on a one-time price, which is exactly what its absence means; the header and the card say it by\n // not showing a cadence.\n interval: schemaShape.interval.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, hideWhenEmpty: true },\n values: {\n [BillingInterval.MONTH]: { color: BadgeSemanticVariant.SECONDARY, icon: Calendar },\n [BillingInterval.YEAR]: { color: BadgeSemanticVariant.INFO, icon: CalendarDays },\n },\n }),\n intervalCount: schemaShape.intervalCount.numberUI({\n display: { displayMode: NumberDisplayMode.FORMATTED, hideWhenEmpty: true },\n edit: { showDescription: true },\n }),\n tiers: schemaShape.tiers.arrayUI({ display: { hideWhenEmpty: true } }),\n packageSize: schemaShape.packageSize.numberUI({ display: { hideWhenEmpty: true }, edit: { tooltip: true } }),\n usageAggregation: schemaShape.usageAggregation.enumUI({ display: { hideWhenEmpty: true }, edit: { tooltip: true } }),\n taxBehavior: schemaShape.taxBehavior.enumUI({ display: { hideWhenEmpty: true }, edit: { tooltip: true } }),\n // A default price is the exception worth reading; \"not the default\" is not information.\n isDefault: schemaShape.isDefault.booleanUI({\n labellingValue: BooleanLabellingValue.YES_NO,\n display: { displayMode: BooleanDisplayMode.CHECKMARK },\n edit: { editMode: BooleanEditMode.SWITCH, showDescription: true },\n }),\n // A word in the header, for the same reason as a product's.\n isActive: schemaShape.isActive.booleanUI({\n labellingValue: BooleanLabellingValue.ACTIVE_INACTIVE,\n display: { displayMode: BooleanDisplayMode.RAW },\n edit: { editMode: BooleanEditMode.SWITCH, showDescription: true },\n }),\n },\n /*\n * A price's name is its model and, when it recurs, its cadence — both in the application's own words. It used\n * to join the raw wire values with an English \"one-time\", which no translator could reach\n * (`display-text-comes-from-i18n.md`). A missing word answers the raw value, which LOOKS missing and gets\n * authored. A one-time price is named by its model alone.\n */\n getFrontendResourceLabel: ({ currentObject, t }) => {\n const word = (key: string, raw: string): string => {\n const resolved = t(key);\n return resolved === key ? raw : resolved;\n };\n const model = word(`${LabellingTypes.SYSTEM_ENUMS}.PricingModel.${currentObject.model}`, String(currentObject.model));\n if (!currentObject.interval) return model;\n const interval = word(`${LabellingTypes.RESOURCES}.${R.PRICES}.fields.interval.enum.${currentObject.interval}`, String(currentObject.interval));\n return `${model} · ${interval}`;\n },\n views: [],\n })),\n\n [R.REFERRALS]: resourceUIBehavior(referralsFactory, ReferralSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.SHARE,\n layout: {\n // No sections: a referral is one code, its state, the two sides and what each earned. It is an immutable\n // ledger row (no edit form), read in a list.\n defaultChromeMode: {\n display: DisplayChromeMode.SETTINGS_ROW,\n summary: DisplayChromeMode.HIDDEN,\n edit: EditChromeMode.SETTINGS_ROW,\n },\n // The code is the record's name and the status its state; neither is repeated in the body.\n header: () => (\n <div className=\"flex min-w-0 flex-wrap items-center gap-field\">\n <ResourceHeaderTitle />\n <DisplayField name=\"status\" hideLabel hideDescription className=\"w-auto\" />\n </div>\n ),\n // The two sides, when each moved, and what each earned. Every optional row hides when empty — a referral\n // that has not been accepted yet has no referred side, and a column of dashes said nothing.\n display: () => (\n <DisplayLayout>\n <DisplayField name=\"referrerScopeType\" />\n <DisplayField name=\"referredScopeType\" />\n <DisplayField name=\"expiresAt\" />\n <DisplayField name=\"acceptedAt\" />\n <DisplayField name=\"convertedAt\" />\n <DisplayField name=\"referrerReward\" />\n <DisplayField name=\"referrerRewardApplied\" />\n <DisplayField name=\"referredReward\" />\n <DisplayField name=\"referredRewardApplied\" />\n </DisplayLayout>\n ),\n /*\n * A card: the code and its status badge. The two scope badges and the two dates keep their labels — a bare\n * \"Organization\" beside a bare \"User\" does not say which side referred, and a bare date does not say what\n * happened on it. The referrer's billing-account id is gone: in an organization's own referrals it is that\n * organization, and an opaque id told the reader nothing.\n */\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"referralCode\" />\n <SummaryMeta>\n <DisplayField name=\"status\" />\n <DisplayField name=\"referrerScopeType\" />\n <DisplayField name=\"referredScopeType\" />\n </SummaryMeta>\n <SummaryMeta className=\"text-muted-foreground text-xs\">\n <DisplayField name=\"expiresAt\" />\n <DisplayField name=\"convertedAt\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n },\n fields: {\n _id: schemaShape._id.isHidden(),\n status: schemaShape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n values: {\n [ReferralStatus.PENDING]: { color: BadgeSemanticVariant.INFO, icon: Clock },\n [ReferralStatus.ACCEPTED]: { color: BadgeSemanticVariant.INFO, icon: UserCheck },\n [ReferralStatus.CONVERTED]: { color: BadgeSemanticVariant.SUCCESS, icon: CheckCircle2 },\n [ReferralStatus.EXPIRED]: { color: BadgeSemanticVariant.WARNING, icon: TimerOff },\n [ReferralStatus.CANCELLED]: { color: BadgeSemanticVariant.DESTRUCTIVE, icon: CircleX },\n },\n }),\n referralCode: schemaShape.referralCode.stringUI({ display: { displayMode: StringDisplayMode.COPY } }),\n referrerScopeType: schemaShape.referrerScopeType.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n summaryOverride: { chromeMode: DisplayChromeMode.INLINE },\n values: {\n [BillingScopeType.ORGANIZATIONS]: { color: BadgeSemanticVariant.SECONDARY, icon: Building2 },\n [BillingScopeType.USER_SELF]: { color: BadgeSemanticVariant.OUTLINE, icon: User },\n },\n }),\n referredScopeType: schemaShape.referredScopeType.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, hideWhenEmpty: true },\n summaryOverride: { chromeMode: DisplayChromeMode.INLINE },\n values: {\n [BillingScopeType.ORGANIZATIONS]: { color: BadgeSemanticVariant.SECONDARY, icon: Building2 },\n [BillingScopeType.USER_SELF]: { color: BadgeSemanticVariant.OUTLINE, icon: User },\n },\n }),\n expiresAt: schemaShape.expiresAt.dateUI({ display: { hideWhenEmpty: true }, summaryOverride: { chromeMode: DisplayChromeMode.INLINE } }),\n acceptedAt: schemaShape.acceptedAt.dateUI({ display: { hideWhenEmpty: true } }),\n convertedAt: schemaShape.convertedAt.dateUI({ display: { hideWhenEmpty: true }, summaryOverride: { chromeMode: DisplayChromeMode.INLINE } }),\n referrerReward: schemaShape.referrerReward.objectUI({ display: { hideWhenEmpty: true } }),\n referredReward: schemaShape.referredReward.objectUI({ display: { hideWhenEmpty: true } }),\n referrerRewardApplied: schemaShape.referrerRewardApplied.booleanUI({\n labellingValue: BooleanLabellingValue.YES_NO,\n display: { displayMode: BooleanDisplayMode.CHECKMARK },\n }),\n referredRewardApplied: schemaShape.referredRewardApplied.booleanUI({\n labellingValue: BooleanLabellingValue.YES_NO,\n display: { displayMode: BooleanDisplayMode.CHECKMARK },\n }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.referralCode,\n // #1802: the organization owner issues a code from the list, and withdraws one that has not converted.\n views: [\n [Referral_Operations.ISSUE, notAddressable({ iconOverride: CirclePlus })],\n [Referral_Operations.CANCEL, notAddressable({ iconOverride: CircleX })],\n ],\n })),\n\n [R.PROMOTIONS]: resourceUIBehavior(promotionsFactory, PromotionSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.PROMOTION,\n layout: {\n refs: { sections: ['overview', 'discount', 'duration', 'applicability', 'validity'] },\n // An operator AUTHORS a promotion (a name, a description), so the form stacks; the read page is rows.\n defaultChromeMode: {\n display: DisplayChromeMode.SETTINGS_ROW,\n summary: DisplayChromeMode.HIDDEN,\n edit: EditChromeMode.STACKED,\n },\n // The name, the kind of promotion and whether it still accepts redemptions — the three things the body no\n // longer repeats.\n header: () => (\n <div className=\"flex min-w-0 flex-wrap items-center gap-field\">\n <ResourceHeaderTitle />\n <DisplayField name=\"type\" hideLabel hideDescription className=\"w-auto\" />\n <DisplayField name=\"isActive\" hideLabel hideDescription className=\"w-auto\" />\n </div>\n ),\n /*\n * The name first, focused; the description is prose, so a textarea. `timesRedeemed` is a counter the\n * system advances (`isNotEditable`), so it is read on the record, not shown as a disabled input here. The\n * discount and duration blocks keep their descriptions: which of the two amounts applies, and what\n * \"repeating\" needs, are not obvious from the fields.\n */\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"name\" autoFocus />\n <FormField name=\"description\" />\n <FormField name=\"type\" />\n <FormField name=\"code\" />\n </Section>\n <Section name=\"discount\">\n <FormField name=\"discountType\" />\n <FormField name=\"discountPercentage\" />\n <FormField name=\"discountFixedAmount\" />\n </Section>\n <Section name=\"duration\">\n <FormField name=\"duration\" />\n <FormField name=\"durationInMonths\" />\n </Section>\n <Section name=\"applicability\">\n <FormField name=\"applicableProducts\" />\n <FormField name=\"maxRedemptions\" />\n </Section>\n <Section name=\"validity\">\n <FormField name=\"validFrom\" />\n <FormField name=\"validUntil\" />\n <FormField name=\"isActive\" />\n <FormField name=\"metadata\" />\n </Section>\n </FormLayout>\n ),\n /*\n * Read: the header is the name, type and state. The first card is the promotion's own words and its code,\n * with no heading — \"Overview\" over a description said nothing the description does not. No read section\n * carries a description; those were notes about provider sync and API behaviour.\n */\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD} hideTitle hideDescription>\n <DisplayField name=\"description\" />\n <DisplayField name=\"code\" />\n </Section>\n <Section name=\"discount\" hideDescription>\n <DisplayField name=\"discountType\" />\n <DisplayField name=\"discountPercentage\" />\n <DisplayField name=\"discountFixedAmount\" />\n </Section>\n <Section name=\"duration\" hideDescription>\n <DisplayField name=\"duration\" />\n <DisplayField name=\"durationInMonths\" />\n </Section>\n <Section name=\"applicability\" hideDescription>\n <DisplayField name=\"applicableProducts\" />\n <DisplayField name=\"maxRedemptions\" />\n <DisplayField name=\"timesRedeemed\" />\n </Section>\n <Section name=\"validity\" hideDescription>\n <DisplayField name=\"validFrom\" />\n <DisplayField name=\"validUntil\" />\n <DisplayField name=\"metadata\" />\n </Section>\n </DisplayLayout>\n ),\n // A card: the name, then the promotion type and the discount type as badges. The record id is gone.\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"name\" />\n <SummaryMeta>\n <DisplayField name=\"type\" />\n <DisplayField name=\"discountType\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n },\n fields: {\n _id: schemaShape._id.isHidden(),\n name: schemaShape.name.stringUI({\n display: { displayMode: StringDisplayMode.TRUNCATE, truncateLength: 64 },\n }),\n description: schemaShape.description.stringUI({\n display: { displayMode: StringDisplayMode.MULTILINE, hideWhenEmpty: true },\n edit: { component: FormFieldComponent.TEXTAREA },\n }),\n // Hidden when empty: a deal with no customer-facing code is a real kind of promotion, not a gap. The form\n // keeps the description — what the code is for (typed at checkout) is not obvious.\n code: schemaShape.code.stringUI({\n display: { displayMode: StringDisplayMode.COPY, hideWhenEmpty: true },\n edit: { showDescription: true },\n }),\n type: schemaShape.type.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n values: {\n [PromotionType.COUPON]: { color: BadgeSemanticVariant.SUCCESS, icon: Ticket },\n [PromotionType.PROMOTION_CODE]: { color: BadgeSemanticVariant.INFO, icon: KeyRound },\n [PromotionType.REFERRAL]: { color: BadgeSemanticVariant.SECONDARY, icon: Gift },\n [PromotionType.DEAL]: { color: BadgeSemanticVariant.WARNING, icon: Handshake },\n },\n }),\n discountType: schemaShape.discountType.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n values: {\n [DiscountType.PERCENTAGE]: { color: BadgeSemanticVariant.INFO, icon: Percent },\n [DiscountType.FIXED_AMOUNT]: { color: BadgeSemanticVariant.SECONDARY, icon: Banknote },\n },\n }),\n // Only one of the two amounts applies (per `discountType`); the other is empty and hides.\n discountPercentage: schemaShape.discountPercentage.numberUI({\n suffix: '%',\n display: { displayMode: NumberDisplayMode.FORMATTED, hideWhenEmpty: true },\n }),\n discountFixedAmount: schemaShape.discountFixedAmount.moneyUI({ display: { hideWhenEmpty: true } }),\n duration: schemaShape.duration.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n values: {\n [PromotionDuration.ONCE]: { color: BadgeSemanticVariant.SECONDARY, icon: CircleDot },\n [PromotionDuration.REPEATING]: { color: BadgeSemanticVariant.INFO, icon: Repeat },\n [PromotionDuration.FOREVER]: { color: BadgeSemanticVariant.SUCCESS, icon: Infinity },\n },\n }),\n // Only a REPEATING promotion has a month count.\n durationInMonths: schemaShape.durationInMonths.numberUI({\n display: { displayMode: NumberDisplayMode.FORMATTED, hideWhenEmpty: true },\n }),\n // NOT hidden when empty, and neither are the redemption cap and the validity bounds: for these four an\n // empty value MEANS something (\"every product\", \"unlimited\", \"no start\", \"no end\"). The dash is kept until\n // those words are authored, rather than hiding a real answer.\n maxRedemptions: schemaShape.maxRedemptions.numberUI({ display: { displayMode: NumberDisplayMode.FORMATTED } }),\n timesRedeemed: schemaShape.timesRedeemed.numberUI({ display: { displayMode: NumberDisplayMode.FORMATTED } }),\n // A word in the header (\"Active\" / \"Inactive\"); a bare checkmark beside the name said nothing about what\n // was checked. The form keeps the description: deactivating stops NEW redemptions only.\n isActive: schemaShape.isActive.booleanUI({\n labellingValue: BooleanLabellingValue.ACTIVE_INACTIVE,\n display: { displayMode: BooleanDisplayMode.RAW },\n edit: { editMode: BooleanEditMode.SWITCH, showDescription: true },\n }),\n metadata: schemaShape.metadata.objectUI({ display: { hideWhenEmpty: true } }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.name,\n views: [\n [Promotion_Operations.APPLY, notAddressable({ iconOverride: BadgeCheck })],\n [Promotion_Operations.DEACTIVATE, notAddressable({ iconOverride: PowerOff })],\n ],\n })),\n\n ...polymorphicResourceUIBehavior(\n {\n variants: [\n { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_BILLING_ACCOUNTS },\n { parentResourceType: R.USERS, resourceType: R.USER_BILLING_ACCOUNTS },\n ],\n },\n billingAccountsPolymorphicFactories[R.ORGANIZATION_BILLING_ACCOUNTS],\n BillingAccountBaseSchema,\n ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.CREDIT_CARD,\n // Billing accounts / subscriptions / credit pools are system-managed\n // (auto-created on org access / created by Stripe webhooks / on CREDIT_PACK\n // purchase) — CREATE is REPOSITORY_ONLY, so there is no user-facing create\n // op. Suppress the empty-state \"Add\" affordance (matches invoice/usage);\n // the empty state reads as \"not configured yet\", not a broken Add button.\n emptyState: { primaryAction: false as const },\n layout: billingAccountSharedLayout,\n fields: {\n _id: schema.shape._id.isHidden(),\n isActive: schema.shape.isActive.booleanUI({\n labellingValue: BooleanLabellingValue.ACTIVE_INACTIVE,\n display: { displayMode: BooleanDisplayMode.CHECKMARK },\n }),\n },\n // A billing account has no user-authored name — it is the singleton provider link for its scope — so it is\n // named by its resource's own words (the READ title, \"Billing account\"), never by its raw `_id`. Whether it\n // is active is its STATE, a badge, not part of the name; the name used to be English written in code\n // (\"Billing account (inactive)\"), which no translator could reach. A missing word shows its key.\n getFrontendResourceLabel: ({ t, resourceType }) => t(`${LabellingTypes.RESOURCES}.${resourceType}.operations.read.title`),\n views: [\n [BillingAccount_Operations.OPEN_CHECKOUT, notAddressable({ iconOverride: ShoppingCart })],\n [BillingAccount_Operations.OPEN_PORTAL, notAddressable({ iconOverride: ExternalLink })],\n // #1802: a new customer redeems a referral code on its own account.\n [BillingAccount_Operations.REDEEM_REFERRAL, notAddressable({ iconOverride: Handshake })],\n [BillingAccount_Operations.GET_STATE, notAddressable({ iconOverride: Info })],\n // Billing accounts are Stripe-managed (portal/checkout) — generic UPDATE/DELETE\n // are headless (no inline edit/delete UI).\n [Op.UPDATE, apiOnly()],\n [Op.DELETE, apiOnly()],\n ],\n // Each variant composes its OWN children — an organization's billing\n // account owns organization-scoped subscriptions/invoices/usage/credits, a\n // user's owns the user-scoped ones. The discriminator is the parent type,\n // so the composition genuinely differs per variant and cannot live in one\n // shared template.\n //\n // `variantOverrides` REPLACE the shared field rather than merging into it,\n // so each variant restates the shared layout by spreading\n // `billingAccountSharedLayout` and adding only its own `display`. Omitting\n // the spread would silently drop the chrome mode and the summary template.\n variantOverrides: {\n [R.ORGANIZATIONS]: {\n layout: {\n ...billingAccountSharedLayout,\n display: () => (\n <DisplayLayout>\n <DisplayField name=\"isActive\" />\n <RelatedResourceSections\n config={{ mode: SectionMode.TABS }}\n targets={[\n R.ORGANIZATION_SUBSCRIPTIONS,\n R.ORGANIZATION_INVOICE_REFS,\n R.ORGANIZATION_USAGE_RECORDS,\n R.ORGANIZATION_CREDIT_POOLS,\n ]}\n />\n </DisplayLayout>\n ),\n },\n },\n [R.USERS]: {\n layout: {\n ...billingAccountSharedLayout,\n display: () => (\n <DisplayLayout>\n <DisplayField name=\"isActive\" />\n <RelatedResourceSections\n config={{ mode: SectionMode.TABS }}\n targets={[\n R.USER_SUBSCRIPTIONS,\n R.USER_INVOICE_REFS,\n R.USER_USAGE_RECORDS,\n R.USER_CREDIT_POOLS,\n ]}\n />\n </DisplayLayout>\n ),\n },\n },\n },\n }),\n ),\n\n ...polymorphicResourceUIBehavior(\n {\n variants: [\n { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_SUBSCRIPTIONS },\n { parentResourceType: R.USERS, resourceType: R.USER_SUBSCRIPTIONS },\n ],\n },\n billingSubscriptionsPolymorphicFactories[R.ORGANIZATION_SUBSCRIPTIONS],\n BillingSubscriptionBaseSchema,\n ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.SUBSCRIPTION,\n // Billing accounts / subscriptions / credit pools are system-managed\n // (auto-created on org access / created by Stripe webhooks / on CREDIT_PACK\n // purchase) — CREATE is REPOSITORY_ONLY, so there is no user-facing create\n // op. Suppress the empty-state \"Add\" affordance (matches invoice/usage);\n // the empty state reads as \"not configured yet\", not a broken Add button.\n emptyState: { primaryAction: false as const },\n layout: {\n defaultChromeMode: {\n display: DisplayChromeMode.STACKED,\n summary: DisplayChromeMode.INLINE,\n edit: EditChromeMode.SETTINGS_ROW,\n },\n summary: () => {\n const { data, isLoading } = useDisplayTemplateContext();\n return (\n <SummaryLayout>\n <SummaryMeta>\n <DisplayField name=\"status\" />\n <DisplayField name=\"cancelAtPeriodEnd\" />\n </SummaryMeta>\n <SummaryMeta className=\"text-muted-foreground text-xs\">\n <DisplayField name=\"currentPeriodEnd\" />\n <DisplayField name=\"trialEnd\" />\n </SummaryMeta>\n <DisplayField name=\"billingAccountId\" hideLabel className=\"text-xs font-mono truncate max-w-full\" />\n <DisplayField name=\"_id\" hideLabel className=\"text-muted-foreground text-xs font-mono truncate max-w-full\" />\n </SummaryLayout>\n );\n },\n },\n fields: {\n _id: schema.shape._id.isHidden(),\n status: schema.shape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n values: {\n [SubscriptionStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS, icon: CheckCircle2 },\n [SubscriptionStatus.TRIALING]: { color: BadgeSemanticVariant.INFO, icon: Sparkles },\n [SubscriptionStatus.PAST_DUE]: { color: BadgeSemanticVariant.WARNING, icon: AlertTriangle },\n [SubscriptionStatus.UNPAID]: { color: BadgeSemanticVariant.DESTRUCTIVE, icon: Wallet },\n [SubscriptionStatus.CANCELLED]: { color: BadgeSemanticVariant.DESTRUCTIVE, icon: Ban },\n [SubscriptionStatus.INCOMPLETE]: { color: BadgeSemanticVariant.WARNING, icon: Loader },\n [SubscriptionStatus.INCOMPLETE_EXPIRED]: { color: BadgeSemanticVariant.DESTRUCTIVE, icon: OctagonX },\n [SubscriptionStatus.PAUSED]: { color: BadgeSemanticVariant.SECONDARY, icon: PauseCircle },\n },\n }),\n cancelAtPeriodEnd: schema.shape.cancelAtPeriodEnd.booleanUI({\n labellingValue: BooleanLabellingValue.YES_NO,\n display: { displayMode: BooleanDisplayMode.CHECKMARK },\n }),\n cancellationReason: schema.shape.cancellationReason.stringUI({\n display: { displayMode: StringDisplayMode.MULTILINE },\n edit: { component: FormFieldComponent.TEXTAREA },\n }),\n },\n // A subscription is named by the billing period it is in, in the viewer's date format. Its status is its state\n // (the badge), and the raw status value was all the name used to say.\n getFrontendResourceLabel: ({ currentObject, formatDate }) =>\n `${formatDate(currentObject.currentPeriodStart)} – ${formatDate(currentObject.currentPeriodEnd)}`,\n views: [\n [BillingSubscription_Operations.CANCEL, notAddressable({ iconOverride: Ban })],\n [BillingSubscription_Operations.RESUME, notAddressable({ iconOverride: CirclePlay })],\n [BillingSubscription_Operations.CHANGE_PLAN, notAddressable({ iconOverride: ArrowRightLeft })],\n [BillingSubscription_Operations.PREVIEW_PLAN_CHANGE, apiOnly()],\n [BillingSubscription_Operations.ADD_ADDON, notAddressable({ iconOverride: PackagePlus })],\n [BillingSubscription_Operations.REMOVE_ADDON, notAddressable({ iconOverride: PackageMinus })],\n // Withdraws a plan change pending at the end of the period (#1868).\n [BillingSubscription_Operations.CANCEL_PLAN_CHANGE, notAddressable({ iconOverride: CalendarX2 })],\n // Subscriptions are managed via the custom ops above + Stripe — generic UPDATE\n // is headless (no inline edit UI).\n [Op.UPDATE, apiOnly()],\n ],\n }),\n ),\n\n ...polymorphicResourceUIBehavior(\n {\n variants: [\n { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_CREDIT_POOLS },\n { parentResourceType: R.USERS, resourceType: R.USER_CREDIT_POOLS },\n ],\n },\n creditPoolsPolymorphicFactories[R.ORGANIZATION_CREDIT_POOLS],\n CreditPoolSchema,\n ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: StandardIconReference.CREDIT_POOL,\n // Billing accounts / subscriptions / credit pools are system-managed\n // (auto-created on org access / created by Stripe webhooks / on CREDIT_PACK\n // purchase) — CREATE is REPOSITORY_ONLY, so there is no user-facing create\n // op. Suppress the empty-state \"Add\" affordance (matches invoice/usage);\n // the empty state reads as \"not configured yet\", not a broken Add button.\n emptyState: { primaryAction: false as const },\n layout: {\n defaultChromeMode: {\n display: DisplayChromeMode.STACKED,\n summary: DisplayChromeMode.INLINE,\n edit: EditChromeMode.SETTINGS_ROW,\n },\n summary: () => {\n const { data, isLoading } = useDisplayTemplateContext();\n return (\n <SummaryLayout>\n {/* The pool's NAME (its word, #1851); `name=\"poolKey\"` titled every card with the raw key. The key stays as a meta value. */}\n <SummaryTitle />\n <SummaryMeta>\n <DisplayField name=\"poolKey\" />\n <DisplayField name=\"available\" />\n <DisplayField name=\"totalPurchased\" />\n <DisplayField name=\"totalGranted\" />\n <DisplayField name=\"totalConsumed\" />\n </SummaryMeta>\n <DisplayField name=\"billingAccountId\" hideLabel className=\"text-muted-foreground text-xs font-mono truncate max-w-full\" />\n </SummaryLayout>\n );\n },\n },\n fields: {\n _id: schema.shape._id.isHidden(),\n available: schema.shape.available.numberUI({ display: { displayMode: NumberDisplayMode.FORMATTED } }),\n totalPurchased: schema.shape.totalPurchased.numberUI({ display: { displayMode: NumberDisplayMode.FORMATTED } }),\n totalGranted: schema.shape.totalGranted.numberUI({ display: { displayMode: NumberDisplayMode.FORMATTED, hideWhenEmpty: true } }),\n totalConsumed: schema.shape.totalConsumed.numberUI({ display: { displayMode: NumberDisplayMode.FORMATTED } }),\n },\n // Named by the application's word for the pool (`billing_credit_pools.<poolKey>.name`), for the same reason as a\n // product (#1851). An unworded pool answers its key.\n getFrontendResourceLabel: ({ currentObject, t }) => {\n const nameKey = `${LabellingTypes.BILLING_CREDIT_POOLS}.${currentObject.poolKey}.name`;\n const name = t(nameKey);\n return name === nameKey ? unresolvedLabel(currentObject.poolKey) : name;\n },\n instanceLabelSections: [LabellingTypes.BILLING_CREDIT_POOLS],\n views: [\n [CreditPool_Operations.TOP_UP, notAddressable({ iconOverride: CirclePlus })],\n ],\n }),\n ),\n\n // ── Invoice References (polymorphic: org + user) ───────────────────\n\n ...polymorphicResourceUIBehavior(\n {\n variants: [\n { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_INVOICE_REFS },\n { parentResourceType: R.USERS, resourceType: R.USER_INVOICE_REFS },\n ],\n },\n invoiceRefsPolymorphicFactories[R.ORGANIZATION_INVOICE_REFS],\n InvoiceRefSchema,\n ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: FileText,\n emptyState: { primaryAction: false as const },\n fields: {\n _id: schema.shape._id.isHidden(),\n status: schema.shape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },\n edit: { showDescription: true },\n values: {\n [InvoiceStatus.DRAFT]: { color: BadgeSemanticVariant.SECONDARY },\n [InvoiceStatus.OPEN]: { color: BadgeSemanticVariant.INFO },\n [InvoiceStatus.PAID]: { color: BadgeSemanticVariant.SUCCESS },\n [InvoiceStatus.VOID]: { color: BadgeSemanticVariant.WARNING },\n [InvoiceStatus.UNCOLLECTIBLE]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n },\n }),\n total: schema.shape.total.moneyUI({\n display: { displayMode: NumberDisplayMode.FORMATTED, showDescription: true },\n }),\n },\n // An invoice is named by its date, in the viewer's format. Its status is the badge beside it; the name used to be\n // English written in code around the raw status (\"Invoice paid\").\n getFrontendResourceLabel: ({ currentObject, formatDate }) => formatDate(currentObject.createdAt),\n views: [\n [Op.LIST, notAddressable()],\n [Op.READ, notAddressable()],\n ],\n }),\n ),\n\n // ── Usage Records (polymorphic: org + user) ────────────────────────\n\n ...polymorphicResourceUIBehavior(\n {\n variants: [\n { parentResourceType: R.ORGANIZATIONS, resourceType: R.ORGANIZATION_USAGE_RECORDS },\n { parentResourceType: R.USERS, resourceType: R.USER_USAGE_RECORDS },\n ],\n },\n usageRecordsPolymorphicFactories[R.ORGANIZATION_USAGE_RECORDS],\n UsageRecordSchema,\n ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: BarChart3,\n emptyState: { primaryAction: false as const },\n fields: {\n _id: schema.shape._id.isHidden(),\n productKey: schema.shape.productKey.stringUI({\n display: { displayMode: StringDisplayMode.COPY, showDescription: true },\n }),\n quantity: schema.shape.quantity.numberUI({\n display: { displayMode: NumberDisplayMode.FORMATTED, showDescription: true },\n }),\n },\n // A usage record is named by the instant it was recorded. The product key is an identifier and the quantity a\n // value; both are rows, and the name used to be the two raw values joined.\n getFrontendResourceLabel: ({ currentObject, formatDateTime }) => formatDateTime(currentObject.timestamp),\n views: [\n [Op.LIST, notAddressable()],\n [Op.READ, notAddressable()],\n ],\n }),\n ),\n };\n}\n\nexport function buildBillingAdminPresets(main: Partial<ResourceUIBehavior>): Partial<ResourceUIBehavior> {\n return {\n // Admin catalog: LIST+READ for browsing the product/pricing catalog\n [R.PRODUCTS]: resourceUIBehaviorFrom(productsFactory, main[R.PRODUCTS]!, ({ base }) => ({\n views: [\n [Op.LIST, notAddressable()],\n [Op.READ, notAddressable()],\n // PRODUCTS has an authored edit form (layout.edit) — surface UPDATE so admins\n // get the Edit action (EMBEDDED); without it, UPDATE resolves to API_ONLY.\n [Op.UPDATE, notAddressable()],\n ],\n })),\n [R.PRICES]: resourceUIBehaviorFrom(pricesFactory, main[R.PRICES]!, ({ base }) => ({\n views: [\n [Op.LIST, notAddressable()],\n [Op.READ, notAddressable()],\n // PRICES has an authored edit form (layout.edit) — surface UPDATE so admins\n // get the Edit action (EMBEDDED); without it, UPDATE resolves to API_ONLY.\n [Op.UPDATE, notAddressable()],\n ],\n })),\n [R.REFERRALS]: resourceUIBehaviorFrom(referralsFactory, main[R.REFERRALS]!, ({ base }) => ({\n views: [\n [Op.LIST, notAddressable()],\n [Op.READ, notAddressable()],\n // Referrals are an immutable ledger record — UPDATE is headless (no edit UI).\n [Op.UPDATE, apiOnly()],\n [Referral_Operations.ISSUE, notAddressable({ iconOverride: CirclePlus })],\n [Referral_Operations.CANCEL, notAddressable({ iconOverride: CircleX })],\n ],\n })),\n\n [R.PROMOTIONS]: resourceUIBehaviorFrom(promotionsFactory, main[R.PROMOTIONS]!, ({ base }) => ({\n views: [\n [Op.LIST, notAddressable()],\n [Op.READ, notAddressable()],\n [Promotion_Operations.DEACTIVATE, notAddressable({ iconOverride: PowerOff })],\n ],\n })),\n\n [R.ORGANIZATION_BILLING_ACCOUNTS]: main[R.ORGANIZATION_BILLING_ACCOUNTS]!,\n [R.USER_BILLING_ACCOUNTS]: main[R.USER_BILLING_ACCOUNTS]!,\n\n [R.ORGANIZATION_SUBSCRIPTIONS]: main[R.ORGANIZATION_SUBSCRIPTIONS]!,\n [R.USER_SUBSCRIPTIONS]: main[R.USER_SUBSCRIPTIONS]!,\n\n // Admin credit pools: TOP_UP only (no CONSUME — automated)\n [R.ORGANIZATION_CREDIT_POOLS]: resourceUIBehaviorFrom(\n creditPoolsPolymorphicFactories[R.ORGANIZATION_CREDIT_POOLS],\n main[R.ORGANIZATION_CREDIT_POOLS]!,\n ({ base }) => ({\n views: [\n [CreditPool_Operations.TOP_UP, notAddressable({ iconOverride: CirclePlus })],\n ],\n }),\n ),\n [R.USER_CREDIT_POOLS]: resourceUIBehaviorFrom(\n creditPoolsPolymorphicFactories[R.USER_CREDIT_POOLS],\n main[R.USER_CREDIT_POOLS]!,\n ({ base }) => ({\n views: [\n [CreditPool_Operations.TOP_UP, notAddressable({ iconOverride: CirclePlus })],\n ],\n }),\n ),\n\n // Admin invoice refs + usage records: same as main\n [R.ORGANIZATION_INVOICE_REFS]: main[R.ORGANIZATION_INVOICE_REFS]!,\n [R.USER_INVOICE_REFS]: main[R.USER_INVOICE_REFS]!,\n [R.ORGANIZATION_USAGE_RECORDS]: main[R.ORGANIZATION_USAGE_RECORDS]!,\n [R.USER_USAGE_RECORDS]: main[R.USER_USAGE_RECORDS]!,\n };\n}\n\nexport const billingMainPresets = buildBillingMainPresets();\nexport const billingAdminPresets = buildBillingAdminPresets(billingMainPresets);\n\nexport const productsMainResourceUIBehavior = billingMainPresets[R.PRODUCTS]!;\nexport const productsAdminResourceUIBehavior = billingAdminPresets[R.PRODUCTS]!;\nexport const pricesMainResourceUIBehavior = billingMainPresets[R.PRICES]!;\nexport const pricesAdminResourceUIBehavior = billingAdminPresets[R.PRICES]!;\nexport const referralsMainResourceUIBehavior = billingMainPresets[R.REFERRALS]!;\nexport const referralsAdminResourceUIBehavior = billingAdminPresets[R.REFERRALS]!;\nexport const promotionsMainResourceUIBehavior = billingMainPresets[R.PROMOTIONS]!;\nexport const promotionsAdminResourceUIBehavior = billingAdminPresets[R.PROMOTIONS]!;\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ResourceUIBehavior } from '@wildo-ai/saas-frontend-lib';
|
|
2
|
+
export declare function buildConversationThreadsMainPresets(): Partial<ResourceUIBehavior>;
|
|
3
|
+
export declare const conversationThreadsMainPresets: Partial<ResourceUIBehavior>;
|
|
4
|
+
//# sourceMappingURL=conversation-threads.resource-presets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-threads.resource-presets.d.ts","sourceRoot":"","sources":["../../../../../src/config/resources/conversation-threads.resource-presets.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AA0GtE,wBAAgB,mCAAmC,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAoEjF;AAED,eAAO,MAAM,8BAA8B,6BAAwC,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ActionVisibility, CollectionDisplayMode, CollectionFilterPanelVisibility, DisplayField, DisplayLayout, EmbedRelatedResourceList, ResourceHeaderTitle, SummaryLayout, SummaryMeta, resourceUIBehavior, } from '@wildo-ai/saas-frontend-lib';
|
|
3
|
+
import { BadgeSemanticVariant, DisplayChromeMode, EditChromeMode, EnumDisplayMode } from '@wildo-ai/zod-decorators';
|
|
4
|
+
import { Archive, Mail } from 'lucide-react';
|
|
5
|
+
import { ConversationMessageDirection, ConversationMessageSchema, ConversationOutboundStatus, ConversationThreadSchema, ConversationThreadStatus, ConversationThreads_Operations, CoreResourceOperation as Op, CoreResourceType as R, conversationMessagesResourceConfiguration_InitializationFactory as messagesFactory, conversationThreadsResourceConfiguration_InitializationFactory as threadsFactory, } from '@wildo-ai/saas-models';
|
|
6
|
+
import { notAddressable } from './resource.config.utils.js';
|
|
7
|
+
const CHROME = {
|
|
8
|
+
display: DisplayChromeMode.SETTINGS_ROW,
|
|
9
|
+
summary: DisplayChromeMode.HIDDEN,
|
|
10
|
+
edit: EditChromeMode.SETTINGS_ROW,
|
|
11
|
+
};
|
|
12
|
+
const hideWhenEmpty = { display: { hideWhenEmpty: true } };
|
|
13
|
+
/** The subject (the title) with the thread's status beside it. */
|
|
14
|
+
function ThreadHeader() {
|
|
15
|
+
return (_jsxs("div", { className: "flex min-w-0 flex-wrap items-center gap-field", children: [_jsx(ResourceHeaderTitle, {}), _jsx(DisplayField, { name: "status", hideLabel: true, hideDescription: true, className: "w-auto" })] }));
|
|
16
|
+
}
|
|
17
|
+
/*
|
|
18
|
+
* Who the conversation is with and how recent it is, then the messages themselves — the reason anyone opens a
|
|
19
|
+
* thread. `closedAt` shows once it happened.
|
|
20
|
+
*/
|
|
21
|
+
function ThreadDisplayTemplate() {
|
|
22
|
+
return (_jsxs(DisplayLayout, { children: [_jsx(DisplayField, { name: "counterpartAddress" }), _jsx(DisplayField, { name: "lastMessageAt" }), _jsx(DisplayField, { name: "closedAt" }), _jsx(EmbedRelatedResourceList, { resourceType: R.CONVERSATION_MESSAGES })] }));
|
|
23
|
+
}
|
|
24
|
+
/* A thread card: the subject (the title), its status, who it is with and when it last moved. */
|
|
25
|
+
function ThreadSummaryTemplate() {
|
|
26
|
+
return (_jsx(SummaryLayout, { children: _jsxs(SummaryMeta, { children: [_jsx(DisplayField, { name: "status" }), _jsx(DisplayField, { name: "counterpartAddress" }), _jsx(DisplayField, { name: "lastMessageAt" })] }) }));
|
|
27
|
+
}
|
|
28
|
+
/* One message: its direction first (received or answered), who sent it, when, then what it says. */
|
|
29
|
+
function MessageSummaryTemplate() {
|
|
30
|
+
return (_jsxs(SummaryLayout, { children: [_jsxs(SummaryMeta, { children: [_jsx(DisplayField, { name: "direction" }), _jsx(DisplayField, { name: "fromAddress" }), _jsx(DisplayField, { name: "occurredAt" }), _jsx(DisplayField, { name: "outboundStatus" })] }), _jsx(DisplayField, { name: "textPreview" })] }));
|
|
31
|
+
}
|
|
32
|
+
function MessageDisplayTemplate() {
|
|
33
|
+
return (_jsxs(DisplayLayout, { children: [_jsx(DisplayField, { name: "direction" }), _jsx(DisplayField, { name: "fromAddress" }), _jsx(DisplayField, { name: "toAddresses" }), _jsx(DisplayField, { name: "occurredAt" }), _jsx(DisplayField, { name: "textPreview" }), _jsx(DisplayField, { name: "outboundStatus" }), _jsx(DisplayField, { name: "templateRef" }), _jsx(DisplayField, { name: "failureCode" }), _jsx(DisplayField, { name: "settledAt" })] }));
|
|
34
|
+
}
|
|
35
|
+
export function buildConversationThreadsMainPresets() {
|
|
36
|
+
return {
|
|
37
|
+
[R.CONVERSATION_THREADS]: resourceUIBehavior(threadsFactory, ConversationThreadSchema, ({ schemaShape }) => ({
|
|
38
|
+
icon: Mail,
|
|
39
|
+
getFrontendResourceLabel: ({ currentObject }) => currentObject.subject || currentObject.counterpartAddress,
|
|
40
|
+
layout: {
|
|
41
|
+
defaultChromeMode: CHROME,
|
|
42
|
+
header: ThreadHeader,
|
|
43
|
+
display: ThreadDisplayTemplate,
|
|
44
|
+
summary: ThreadSummaryTemplate,
|
|
45
|
+
},
|
|
46
|
+
fields: {
|
|
47
|
+
status: schemaShape.status.enumUI({
|
|
48
|
+
display: { displayMode: EnumDisplayMode.BADGE, showDescription: false },
|
|
49
|
+
values: {
|
|
50
|
+
[ConversationThreadStatus.OPEN]: { color: BadgeSemanticVariant.INFO },
|
|
51
|
+
[ConversationThreadStatus.CLOSED]: { color: BadgeSemanticVariant.SECONDARY },
|
|
52
|
+
},
|
|
53
|
+
}),
|
|
54
|
+
closedAt: schemaShape.closedAt.dateUI(hideWhenEmpty),
|
|
55
|
+
},
|
|
56
|
+
views: [
|
|
57
|
+
// Embedded on the linked record, never a page of its own; newest first. The record is pinned by the embed, so
|
|
58
|
+
// the only choice left to the reader is open or closed.
|
|
59
|
+
[Op.LIST, notAddressable({ collectionDisplayConfig: { displayMode: CollectionDisplayMode.CARDS, quickFilterField: 'status', filterPanel: CollectionFilterPanelVisibility.HIDDEN } })],
|
|
60
|
+
// Row click → the thread and its messages in the companion drawer.
|
|
61
|
+
[Op.READ, notAddressable()],
|
|
62
|
+
// Per row, where the thread is still open (its `enabledCondition`).
|
|
63
|
+
[ConversationThreads_Operations.CLOSE, notAddressable({ iconOverride: Archive, actionVisibility: ActionVisibility.WHEN_AVAILABLE })],
|
|
64
|
+
],
|
|
65
|
+
})),
|
|
66
|
+
[R.CONVERSATION_MESSAGES]: resourceUIBehavior(messagesFactory, ConversationMessageSchema, ({ schemaShape }) => ({
|
|
67
|
+
icon: Mail,
|
|
68
|
+
getFrontendResourceLabel: ({ currentObject }) => currentObject.subject || currentObject.fromAddress,
|
|
69
|
+
layout: {
|
|
70
|
+
defaultChromeMode: CHROME,
|
|
71
|
+
display: MessageDisplayTemplate,
|
|
72
|
+
summary: MessageSummaryTemplate,
|
|
73
|
+
},
|
|
74
|
+
fields: {
|
|
75
|
+
direction: schemaShape.direction.enumUI({
|
|
76
|
+
display: { displayMode: EnumDisplayMode.BADGE, showDescription: false },
|
|
77
|
+
values: {
|
|
78
|
+
[ConversationMessageDirection.INBOUND]: { color: BadgeSemanticVariant.SECONDARY },
|
|
79
|
+
[ConversationMessageDirection.OUTBOUND]: { color: BadgeSemanticVariant.INFO },
|
|
80
|
+
},
|
|
81
|
+
}),
|
|
82
|
+
outboundStatus: schemaShape.outboundStatus.enumUI({
|
|
83
|
+
display: { displayMode: EnumDisplayMode.BADGE, showDescription: false, hideWhenEmpty: true },
|
|
84
|
+
values: {
|
|
85
|
+
[ConversationOutboundStatus.QUEUED]: { color: BadgeSemanticVariant.SECONDARY },
|
|
86
|
+
[ConversationOutboundStatus.ACCEPTED_BY_PROVIDER]: { color: BadgeSemanticVariant.SUCCESS },
|
|
87
|
+
[ConversationOutboundStatus.FAILED]: { color: BadgeSemanticVariant.DESTRUCTIVE },
|
|
88
|
+
},
|
|
89
|
+
}),
|
|
90
|
+
textPreview: schemaShape.textPreview.stringUI(hideWhenEmpty),
|
|
91
|
+
toAddresses: schemaShape.toAddresses.arrayUI(hideWhenEmpty),
|
|
92
|
+
templateRef: schemaShape.templateRef.stringUI(hideWhenEmpty),
|
|
93
|
+
failureCode: schemaShape.failureCode.stringUI(hideWhenEmpty),
|
|
94
|
+
settledAt: schemaShape.settledAt.dateUI(hideWhenEmpty),
|
|
95
|
+
},
|
|
96
|
+
views: [
|
|
97
|
+
// Embedded in its thread, newest first and grouped by day; opens in the drawer.
|
|
98
|
+
[Op.LIST, notAddressable({ collectionDisplayConfig: { displayMode: CollectionDisplayMode.CARDS, temporalGroupField: 'occurredAt', filterPanel: CollectionFilterPanelVisibility.HIDDEN } })],
|
|
99
|
+
[Op.READ, notAddressable()],
|
|
100
|
+
],
|
|
101
|
+
})),
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
export const conversationThreadsMainPresets = buildConversationThreadsMainPresets();
|
|
105
|
+
//# sourceMappingURL=conversation-threads.resource-presets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-threads.resource-presets.js","sourceRoot":"","sources":["../../../../../src/config/resources/conversation-threads.resource-presets.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Conversation threads and their messages (#1630) — the correspondence an inbound channel records.\n *\n * Neither has a destination of its own: a thread is read where it belongs, on the record a channel handler linked\n * it to, through `EmbedLinkedConversations` (saas-frontend-lib). That embed is the threads LIST pinned to the\n * record; a row opens the thread in the companion drawer, whose body is the thread's messages newest first and\n * grouped by day — what the client sent and what was answered, told apart by the direction badge. An organization administrator closes a\n * thread from its row. Reply tokens have no frontend at all: a reply address is a bearer secret.\n */\nimport React from 'react';\nimport type { ResourceUIBehavior } from '@wildo-ai/saas-frontend-lib';\nimport {\n ActionVisibility,\n CollectionDisplayMode,\n CollectionFilterPanelVisibility,\n DisplayField,\n DisplayLayout,\n EmbedRelatedResourceList,\n ResourceHeaderTitle,\n SummaryLayout,\n SummaryMeta,\n resourceUIBehavior,\n} from '@wildo-ai/saas-frontend-lib';\nimport { BadgeSemanticVariant, DisplayChromeMode, EditChromeMode, EnumDisplayMode } from '@wildo-ai/zod-decorators';\nimport { Archive, Mail } from 'lucide-react';\nimport {\n ConversationMessageDirection,\n ConversationMessageSchema,\n ConversationOutboundStatus,\n ConversationThreadSchema,\n ConversationThreadStatus,\n ConversationThreads_Operations,\n CoreResourceOperation as Op,\n CoreResourceType as R,\n conversationMessagesResourceConfiguration_InitializationFactory as messagesFactory,\n conversationThreadsResourceConfiguration_InitializationFactory as threadsFactory,\n} from '@wildo-ai/saas-models';\nimport { notAddressable } from './resource.config.utils';\n\nconst CHROME = {\n display: DisplayChromeMode.SETTINGS_ROW,\n summary: DisplayChromeMode.HIDDEN,\n edit: EditChromeMode.SETTINGS_ROW,\n} as const;\n\nconst hideWhenEmpty = { display: { hideWhenEmpty: true } } as const;\n\n/** The subject (the title) with the thread's status beside it. */\nfunction ThreadHeader(): React.JSX.Element {\n return (\n <div className=\"flex min-w-0 flex-wrap items-center gap-field\">\n <ResourceHeaderTitle />\n <DisplayField name=\"status\" hideLabel hideDescription className=\"w-auto\" />\n </div>\n );\n}\n\n/*\n * Who the conversation is with and how recent it is, then the messages themselves — the reason anyone opens a\n * thread. `closedAt` shows once it happened.\n */\nfunction ThreadDisplayTemplate(): React.JSX.Element {\n return (\n <DisplayLayout>\n <DisplayField name=\"counterpartAddress\" />\n <DisplayField name=\"lastMessageAt\" />\n <DisplayField name=\"closedAt\" />\n <EmbedRelatedResourceList resourceType={R.CONVERSATION_MESSAGES} />\n </DisplayLayout>\n );\n}\n\n/* A thread card: the subject (the title), its status, who it is with and when it last moved. */\nfunction ThreadSummaryTemplate(): React.JSX.Element {\n return (\n <SummaryLayout>\n <SummaryMeta>\n <DisplayField name=\"status\" />\n <DisplayField name=\"counterpartAddress\" />\n <DisplayField name=\"lastMessageAt\" />\n </SummaryMeta>\n </SummaryLayout>\n );\n}\n\n/* One message: its direction first (received or answered), who sent it, when, then what it says. */\nfunction MessageSummaryTemplate(): React.JSX.Element {\n return (\n <SummaryLayout>\n <SummaryMeta>\n <DisplayField name=\"direction\" />\n <DisplayField name=\"fromAddress\" />\n <DisplayField name=\"occurredAt\" />\n <DisplayField name=\"outboundStatus\" />\n </SummaryMeta>\n <DisplayField name=\"textPreview\" />\n </SummaryLayout>\n );\n}\n\nfunction MessageDisplayTemplate(): React.JSX.Element {\n return (\n <DisplayLayout>\n <DisplayField name=\"direction\" />\n <DisplayField name=\"fromAddress\" />\n <DisplayField name=\"toAddresses\" />\n <DisplayField name=\"occurredAt\" />\n <DisplayField name=\"textPreview\" />\n <DisplayField name=\"outboundStatus\" />\n <DisplayField name=\"templateRef\" />\n <DisplayField name=\"failureCode\" />\n <DisplayField name=\"settledAt\" />\n </DisplayLayout>\n );\n}\n\nexport function buildConversationThreadsMainPresets(): Partial<ResourceUIBehavior> {\n return {\n [R.CONVERSATION_THREADS]: resourceUIBehavior(threadsFactory, ConversationThreadSchema, ({ schemaShape }) => ({\n icon: Mail,\n getFrontendResourceLabel: ({ currentObject }) => currentObject.subject || currentObject.counterpartAddress,\n layout: {\n defaultChromeMode: CHROME,\n header: ThreadHeader,\n display: ThreadDisplayTemplate,\n summary: ThreadSummaryTemplate,\n },\n fields: {\n status: schemaShape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: false },\n values: {\n [ConversationThreadStatus.OPEN]: { color: BadgeSemanticVariant.INFO },\n [ConversationThreadStatus.CLOSED]: { color: BadgeSemanticVariant.SECONDARY },\n },\n }),\n closedAt: schemaShape.closedAt.dateUI(hideWhenEmpty),\n },\n views: [\n // Embedded on the linked record, never a page of its own; newest first. The record is pinned by the embed, so\n // the only choice left to the reader is open or closed.\n [Op.LIST, notAddressable({ collectionDisplayConfig: { displayMode: CollectionDisplayMode.CARDS, quickFilterField: 'status', filterPanel: CollectionFilterPanelVisibility.HIDDEN } })],\n // Row click → the thread and its messages in the companion drawer.\n [Op.READ, notAddressable()],\n // Per row, where the thread is still open (its `enabledCondition`).\n [ConversationThreads_Operations.CLOSE, notAddressable({ iconOverride: Archive, actionVisibility: ActionVisibility.WHEN_AVAILABLE })],\n ],\n })),\n [R.CONVERSATION_MESSAGES]: resourceUIBehavior(messagesFactory, ConversationMessageSchema, ({ schemaShape }) => ({\n icon: Mail,\n getFrontendResourceLabel: ({ currentObject }) => currentObject.subject || currentObject.fromAddress,\n layout: {\n defaultChromeMode: CHROME,\n display: MessageDisplayTemplate,\n summary: MessageSummaryTemplate,\n },\n fields: {\n direction: schemaShape.direction.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: false },\n values: {\n [ConversationMessageDirection.INBOUND]: { color: BadgeSemanticVariant.SECONDARY },\n [ConversationMessageDirection.OUTBOUND]: { color: BadgeSemanticVariant.INFO },\n },\n }),\n outboundStatus: schemaShape.outboundStatus.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: false, hideWhenEmpty: true },\n values: {\n [ConversationOutboundStatus.QUEUED]: { color: BadgeSemanticVariant.SECONDARY },\n [ConversationOutboundStatus.ACCEPTED_BY_PROVIDER]: { color: BadgeSemanticVariant.SUCCESS },\n [ConversationOutboundStatus.FAILED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n },\n }),\n textPreview: schemaShape.textPreview.stringUI(hideWhenEmpty),\n toAddresses: schemaShape.toAddresses.arrayUI(hideWhenEmpty),\n templateRef: schemaShape.templateRef.stringUI(hideWhenEmpty),\n failureCode: schemaShape.failureCode.stringUI(hideWhenEmpty),\n settledAt: schemaShape.settledAt.dateUI(hideWhenEmpty),\n },\n views: [\n // Embedded in its thread, newest first and grouped by day; opens in the drawer.\n [Op.LIST, notAddressable({ collectionDisplayConfig: { displayMode: CollectionDisplayMode.CARDS, temporalGroupField: 'occurredAt', filterPanel: CollectionFilterPanelVisibility.HIDDEN } })],\n [Op.READ, notAddressable()],\n ],\n })),\n };\n}\n\nexport const conversationThreadsMainPresets = buildConversationThreadsMainPresets();\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guidance.resource-presets.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"guidance.resource-presets.d.ts","sourceRoot":"","sources":["../../../../../src/config/resources/guidance.resource-presets.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAuFtE,wBAAgB,wBAAwB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAoItE;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAsH1E;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACjC,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACpC,OAAO,CAAC,kBAAkB,CAAC,CAgC7B;AAED,eAAO,MAAM,mBAAmB,6BAA6B,CAAC;AAC9D,eAAO,MAAM,uBAAuB,6BAAiC,CAAC;AACtE,eAAO,MAAM,oBAAoB,6BAGhC,CAAC;AAEF,eAAO,MAAM,2CAA2C,gGAAkD,CAAC;AAC3G,eAAO,MAAM,mDAAmD,gGAA0D,CAAC;AAC3H,eAAO,MAAM,gDAAgD,gGAAuD,CAAC;AACrH,eAAO,MAAM,0CAA0C,gGAAiD,CAAC;AACzG,eAAO,MAAM,kDAAkD,gGAAyD,CAAC;AACzH,eAAO,MAAM,mDAAmD,gGAA0D,CAAC;AAC3H,eAAO,MAAM,4CAA4C,gGAAmD,CAAC;AAC7G,eAAO,MAAM,gDAAgD,gGAAuD,CAAC;AACrH,eAAO,MAAM,iDAAiD,gGAAwD,CAAC"}
|