@wildo-ai/presets-components 1.1.0 → 1.1.2

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.
Files changed (100) hide show
  1. package/dist/esm/components/actions/action-button.d.ts +1 -4
  2. package/dist/esm/components/actions/action-button.d.ts.map +1 -1
  3. package/dist/esm/components/actions/action-button.js +21 -5
  4. package/dist/esm/components/actions/action-button.js.map +1 -1
  5. package/dist/esm/components/ai-elements/artifacts/artifact-browser.d.ts.map +1 -1
  6. package/dist/esm/components/ai-elements/artifacts/artifact-browser.js +7 -3
  7. package/dist/esm/components/ai-elements/artifacts/artifact-browser.js.map +1 -1
  8. package/dist/esm/components/ai-elements/execution/task.d.ts.map +1 -1
  9. package/dist/esm/components/ai-elements/execution/task.js +10 -2
  10. package/dist/esm/components/ai-elements/execution/task.js.map +1 -1
  11. package/dist/esm/components/app/app-layout-main-container.labels.d.ts.map +1 -1
  12. package/dist/esm/components/app/app-layout-main-container.labels.js +10 -2
  13. package/dist/esm/components/app/app-layout-main-container.labels.js.map +1 -1
  14. package/dist/esm/components/app/public-layout-main-container.d.ts.map +1 -1
  15. package/dist/esm/components/app/public-layout-main-container.js +52 -5
  16. package/dist/esm/components/app/public-layout-main-container.js.map +1 -1
  17. package/dist/esm/components/data-display/description-list.d.ts.map +1 -1
  18. package/dist/esm/components/data-display/description-list.js +10 -7
  19. package/dist/esm/components/data-display/description-list.js.map +1 -1
  20. package/dist/esm/components/data-display/formatters/display-field-string.d.ts.map +1 -1
  21. package/dist/esm/components/data-display/formatters/display-field-string.js +3 -0
  22. package/dist/esm/components/data-display/formatters/display-field-string.js.map +1 -1
  23. package/dist/esm/components/form/chromes/form-primitive.labels.js +2 -2
  24. package/dist/esm/components/form/chromes/form-primitive.labels.js.map +1 -1
  25. package/dist/esm/components/navigation/app-level/menu-user-org.d.ts.map +1 -1
  26. package/dist/esm/components/navigation/app-level/menu-user-org.js +8 -2
  27. package/dist/esm/components/navigation/app-level/menu-user-org.js.map +1 -1
  28. package/dist/esm/components/navigation/app-level/sidebar.d.ts.map +1 -1
  29. package/dist/esm/components/navigation/app-level/sidebar.js +32 -15
  30. package/dist/esm/components/navigation/app-level/sidebar.js.map +1 -1
  31. package/dist/esm/components/overlays/containers/sheet.d.ts.map +1 -1
  32. package/dist/esm/components/overlays/containers/sheet.js +2 -2
  33. package/dist/esm/components/overlays/containers/sheet.js.map +1 -1
  34. package/dist/esm/components/sections/accordion.d.ts.map +1 -1
  35. package/dist/esm/components/sections/accordion.js +43 -13
  36. package/dist/esm/components/sections/accordion.js.map +1 -1
  37. package/dist/esm/components/sections/collapsible.d.ts.map +1 -1
  38. package/dist/esm/components/sections/collapsible.js +17 -3
  39. package/dist/esm/components/sections/collapsible.js.map +1 -1
  40. package/dist/esm/components/sections/content-section.d.ts.map +1 -1
  41. package/dist/esm/components/sections/content-section.js +11 -7
  42. package/dist/esm/components/sections/content-section.js.map +1 -1
  43. package/dist/esm/components/sections/disclosure-nesting.d.ts +20 -0
  44. package/dist/esm/components/sections/disclosure-nesting.d.ts.map +1 -0
  45. package/dist/esm/components/sections/disclosure-nesting.js +20 -0
  46. package/dist/esm/components/sections/disclosure-nesting.js.map +1 -0
  47. package/dist/esm/components/sections/tabs.d.ts.map +1 -1
  48. package/dist/esm/components/sections/tabs.js +141 -10
  49. package/dist/esm/components/sections/tabs.js.map +1 -1
  50. package/dist/esm/config/preset-kits.d.ts.map +1 -1
  51. package/dist/esm/config/preset-kits.js +0 -4
  52. package/dist/esm/config/preset-kits.js.map +1 -1
  53. package/dist/esm/config/preset-shell.d.ts.map +1 -1
  54. package/dist/esm/config/preset-shell.js +0 -4
  55. package/dist/esm/config/preset-shell.js.map +1 -1
  56. package/dist/esm/config/presets.d.ts.map +1 -1
  57. package/dist/esm/config/presets.js +0 -1
  58. package/dist/esm/config/presets.js.map +1 -1
  59. package/dist/esm/config/resources/application.resource-presets.d.ts.map +1 -1
  60. package/dist/esm/config/resources/application.resource-presets.js +6 -6
  61. package/dist/esm/config/resources/application.resource-presets.js.map +1 -1
  62. package/dist/esm/config/resources/billing.resource-presets.d.ts.map +1 -1
  63. package/dist/esm/config/resources/billing.resource-presets.js +8 -8
  64. package/dist/esm/config/resources/billing.resource-presets.js.map +1 -1
  65. package/dist/esm/config/resources/guidance.resource-presets.d.ts.map +1 -1
  66. package/dist/esm/config/resources/guidance.resource-presets.js +7 -7
  67. package/dist/esm/config/resources/guidance.resource-presets.js.map +1 -1
  68. package/dist/esm/config/resources/identity.resource-presets.d.ts.map +1 -1
  69. package/dist/esm/config/resources/identity.resource-presets.js +7 -7
  70. package/dist/esm/config/resources/identity.resource-presets.js.map +1 -1
  71. package/dist/esm/config/resources/organizations.resource-presets.d.ts.map +1 -1
  72. package/dist/esm/config/resources/organizations.resource-presets.js +8 -8
  73. package/dist/esm/config/resources/organizations.resource-presets.js.map +1 -1
  74. package/dist/esm/config/resources/security.resource-presets.d.ts.map +1 -1
  75. package/dist/esm/config/resources/security.resource-presets.js +9 -9
  76. package/dist/esm/config/resources/security.resource-presets.js.map +1 -1
  77. package/dist/esm/themes/cozy.theme.d.ts.map +1 -1
  78. package/dist/esm/themes/cozy.theme.js +8 -3
  79. package/dist/esm/themes/cozy.theme.js.map +1 -1
  80. package/dist/esm/themes/dense.theme.d.ts.map +1 -1
  81. package/dist/esm/themes/dense.theme.js +8 -5
  82. package/dist/esm/themes/dense.theme.js.map +1 -1
  83. package/dist/esm/themes/editorial.theme.d.ts.map +1 -1
  84. package/dist/esm/themes/editorial.theme.js +8 -3
  85. package/dist/esm/themes/editorial.theme.js.map +1 -1
  86. package/dist/esm/themes/glass.theme.d.ts.map +1 -1
  87. package/dist/esm/themes/glass.theme.js +10 -4
  88. package/dist/esm/themes/glass.theme.js.map +1 -1
  89. package/dist/esm/themes/neo-brutalist.theme.d.ts.map +1 -1
  90. package/dist/esm/themes/neo-brutalist.theme.js +8 -3
  91. package/dist/esm/themes/neo-brutalist.theme.js.map +1 -1
  92. package/dist/esm/themes/terminal.theme.d.ts.map +1 -1
  93. package/dist/esm/themes/terminal.theme.js +8 -3
  94. package/dist/esm/themes/terminal.theme.js.map +1 -1
  95. package/dist/esm/themes/trading.theme.d.ts.map +1 -1
  96. package/dist/esm/themes/trading.theme.js +8 -3
  97. package/dist/esm/themes/trading.theme.js.map +1 -1
  98. package/dist/tsconfig.build.tsbuildinfo +1 -1
  99. package/package.json +7 -7
  100. package/dist/esm/.builder.pid +0 -9
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { RelatedResourceSections, resourceUIBehavior, resourceUIBehaviorFrom, polymorphicResourceUIBehavior, StandardIconReference, } from '@wildo-ai/saas-frontend-lib';
2
+ import { RelatedResourceSections, resourceUIBehavior, resourceUIBehaviorFrom, polymorphicResourceUIBehavior, StandardIconReference, SummaryFlow, SummaryMeta, SummaryTitle, } from '@wildo-ai/saas-frontend-lib';
3
3
  import { useFormTemplateContext, useDisplayTemplateContext, DisplayField, DisplayLayout, FormField, FormLayout, ObjectScope, Section, SummaryLayout, } from '@wildo-ai/saas-frontend-lib';
4
4
  import { BadgeSemanticVariant, BooleanDisplayMode, BooleanEditMode, BooleanLabellingValue, SectionMode, DisplayChromeMode, EditChromeMode, EnumDisplayMode, FormFieldComponent, NumberDisplayMode, StringDisplayMode, } from '@wildo-ai/zod-decorators';
5
5
  import { Package, Layers, Puzzle, Gauge, CircleDot, Coins, ShoppingBag, Hash, Layers2, TrendingUp, Package as PackageIcon, Calendar, CalendarDays, Ticket, KeyRound, Gift, Handshake, Percent, Banknote, Clock, UserCheck, CheckCircle2, TimerOff, CircleX, Building2, User, Ban, AlertTriangle, Wallet, Loader, OctagonX, PauseCircle, Sparkles, Square, Repeat, Infinity, FileText, BarChart3, BadgeCheck, PowerOff, ShoppingCart, ExternalLink, Info, CirclePlay, ArrowRightLeft, PackagePlus, PackageMinus, CirclePlus, } from 'lucide-react';
@@ -20,7 +20,7 @@ export function buildBillingMainPresets() {
20
20
  summary: DisplayChromeMode.INLINE,
21
21
  edit: EditChromeMode.SETTINGS_ROW,
22
22
  },
23
- summary: () => (_jsxs(SummaryLayout, { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-sm", children: [_jsx(DisplayField, { name: "isActive" }), _jsx(DisplayField, { name: "_id", hideLabel: true, className: "text-muted-foreground text-xs font-mono truncate max-w-full" })] })),
23
+ summary: () => (_jsxs(SummaryLayout, { flow: SummaryFlow.ROW, children: [_jsx(DisplayField, { name: "isActive" }), _jsx(DisplayField, { name: "_id", hideLabel: true, className: "text-muted-foreground text-xs font-mono truncate max-w-full" })] })),
24
24
  };
25
25
  return {
26
26
  [R.PRODUCTS]: resourceUIBehavior(productsFactory, ProductSchema, ({ schema, schemaShape, opsVariantResolver }) => ({
@@ -45,7 +45,7 @@ export function buildBillingMainPresets() {
45
45
  },
46
46
  summary: () => {
47
47
  const { data, isLoading } = useDisplayTemplateContext();
48
- return (_jsxs(SummaryLayout, { className: "flex flex-col gap-2 text-sm", children: [_jsx("div", { className: "font-medium leading-tight", children: _jsx(DisplayField, { name: "key", hideLabel: true }) }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1", children: [_jsx(DisplayField, { name: "type" }), _jsx(DisplayField, { name: "planTier" }), _jsx(DisplayField, { name: "isPublic" }), _jsx(DisplayField, { name: "isActive" })] }), _jsx(DisplayField, { name: "_id", hideLabel: true, className: "text-muted-foreground text-xs font-mono truncate max-w-full" })] }));
48
+ return (_jsxs(SummaryLayout, { children: [_jsx(SummaryTitle, { name: "key" }), _jsxs(SummaryMeta, { children: [_jsx(DisplayField, { name: "type" }), _jsx(DisplayField, { name: "planTier" }), _jsx(DisplayField, { name: "isPublic" }), _jsx(DisplayField, { name: "isActive" })] }), _jsx(DisplayField, { name: "_id", hideLabel: true, className: "text-muted-foreground text-xs font-mono truncate max-w-full" })] }));
49
49
  },
50
50
  },
51
51
  fields: {
@@ -109,7 +109,7 @@ export function buildBillingMainPresets() {
109
109
  },
110
110
  summary: () => {
111
111
  const { data, isLoading } = useDisplayTemplateContext();
112
- return (_jsxs(SummaryLayout, { className: "flex flex-col gap-2 text-sm", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1", children: [_jsx(DisplayField, { name: "model" }), _jsx(DisplayField, { name: "unitPrice" }), _jsx(DisplayField, { name: "interval" })] }), _jsx(DisplayField, { name: "_id", hideLabel: true, className: "text-muted-foreground text-xs font-mono truncate max-w-full" })] }));
112
+ return (_jsxs(SummaryLayout, { children: [_jsxs(SummaryMeta, { children: [_jsx(DisplayField, { name: "model" }), _jsx(DisplayField, { name: "unitPrice" }), _jsx(DisplayField, { name: "interval" })] }), _jsx(DisplayField, { name: "_id", hideLabel: true, className: "text-muted-foreground text-xs font-mono truncate max-w-full" })] }));
113
113
  },
114
114
  },
115
115
  fields: {
@@ -166,7 +166,7 @@ export function buildBillingMainPresets() {
166
166
  },
167
167
  summary: () => {
168
168
  const { data, isLoading } = useDisplayTemplateContext();
169
- return (_jsxs(SummaryLayout, { className: "flex flex-col gap-2 text-sm", children: [_jsx("div", { className: "font-medium leading-tight", children: _jsx(DisplayField, { name: "referralCode", hideLabel: true }) }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1", children: [_jsx(DisplayField, { name: "status" }), _jsx(DisplayField, { name: "referrerScopeType" }), _jsx(DisplayField, { name: "referredScopeType" })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-muted-foreground text-xs", children: [_jsx(DisplayField, { name: "expiresAt" }), _jsx(DisplayField, { name: "convertedAt" })] }), _jsx(DisplayField, { name: "referrerBillingAccountId", hideLabel: true, className: "text-xs font-mono truncate max-w-full" })] }));
169
+ return (_jsxs(SummaryLayout, { children: [_jsx(SummaryTitle, { name: "referralCode" }), _jsxs(SummaryMeta, { children: [_jsx(DisplayField, { name: "status" }), _jsx(DisplayField, { name: "referrerScopeType" }), _jsx(DisplayField, { name: "referredScopeType" })] }), _jsxs(SummaryMeta, { className: "text-muted-foreground text-xs", children: [_jsx(DisplayField, { name: "expiresAt" }), _jsx(DisplayField, { name: "convertedAt" })] }), _jsx(DisplayField, { name: "referrerBillingAccountId", hideLabel: true, className: "text-xs font-mono truncate max-w-full" })] }));
170
170
  },
171
171
  },
172
172
  fields: {
@@ -225,7 +225,7 @@ export function buildBillingMainPresets() {
225
225
  },
226
226
  summary: () => {
227
227
  const { data, isLoading } = useDisplayTemplateContext();
228
- return (_jsxs(SummaryLayout, { className: "flex flex-col gap-2 text-sm", children: [_jsx("div", { className: "font-medium leading-tight", children: _jsx(DisplayField, { name: "name", hideLabel: true }) }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1", children: [_jsx(DisplayField, { name: "type" }), _jsx(DisplayField, { name: "discountType" })] }), _jsx(DisplayField, { name: "_id", hideLabel: true, className: "text-muted-foreground text-xs font-mono truncate max-w-full" })] }));
228
+ return (_jsxs(SummaryLayout, { children: [_jsx(SummaryTitle, { name: "name" }), _jsxs(SummaryMeta, { children: [_jsx(DisplayField, { name: "type" }), _jsx(DisplayField, { name: "discountType" })] }), _jsx(DisplayField, { name: "_id", hideLabel: true, className: "text-muted-foreground text-xs font-mono truncate max-w-full" })] }));
229
229
  },
230
230
  },
231
231
  fields: {
@@ -389,7 +389,7 @@ export function buildBillingMainPresets() {
389
389
  },
390
390
  summary: () => {
391
391
  const { data, isLoading } = useDisplayTemplateContext();
392
- return (_jsxs(SummaryLayout, { className: "flex flex-col gap-2 text-sm", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1", children: [_jsx(DisplayField, { name: "status" }), _jsx(DisplayField, { name: "cancelAtPeriodEnd" })] }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-muted-foreground text-xs", children: [_jsx(DisplayField, { name: "currentPeriodEnd" }), _jsx(DisplayField, { name: "trialEnd" })] }), _jsx(DisplayField, { name: "billingAccountId", hideLabel: true, className: "text-xs font-mono truncate max-w-full" }), _jsx(DisplayField, { name: "_id", hideLabel: true, className: "text-muted-foreground text-xs font-mono truncate max-w-full" })] }));
392
+ return (_jsxs(SummaryLayout, { children: [_jsxs(SummaryMeta, { children: [_jsx(DisplayField, { name: "status" }), _jsx(DisplayField, { name: "cancelAtPeriodEnd" })] }), _jsxs(SummaryMeta, { className: "text-muted-foreground text-xs", children: [_jsx(DisplayField, { name: "currentPeriodEnd" }), _jsx(DisplayField, { name: "trialEnd" })] }), _jsx(DisplayField, { name: "billingAccountId", hideLabel: true, className: "text-xs font-mono truncate max-w-full" }), _jsx(DisplayField, { name: "_id", hideLabel: true, className: "text-muted-foreground text-xs font-mono truncate max-w-full" })] }));
393
393
  },
394
394
  },
395
395
  fields: {
@@ -449,7 +449,7 @@ export function buildBillingMainPresets() {
449
449
  },
450
450
  summary: () => {
451
451
  const { data, isLoading } = useDisplayTemplateContext();
452
- return (_jsxs(SummaryLayout, { className: "flex flex-col gap-2 text-sm", children: [_jsx("div", { className: "font-medium leading-tight", children: _jsx(DisplayField, { name: "poolKey", hideLabel: true }) }), _jsxs("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1", children: [_jsx(DisplayField, { name: "available" }), _jsx(DisplayField, { name: "totalPurchased" }), _jsx(DisplayField, { name: "totalConsumed" })] }), _jsx(DisplayField, { name: "billingAccountId", hideLabel: true, className: "text-muted-foreground text-xs font-mono truncate max-w-full" })] }));
452
+ return (_jsxs(SummaryLayout, { children: [_jsx(SummaryTitle, { name: "poolKey" }), _jsxs(SummaryMeta, { children: [_jsx(DisplayField, { name: "available" }), _jsx(DisplayField, { name: "totalPurchased" }), _jsx(DisplayField, { name: "totalConsumed" })] }), _jsx(DisplayField, { name: "billingAccountId", hideLabel: true, className: "text-muted-foreground text-xs font-mono truncate max-w-full" })] }));
453
453
  },
454
454
  },
455
455
  fields: {
@@ -1 +1 @@
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. `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} 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 className=\"flex flex-wrap items-center gap-x-3 gap-y-1 text-sm\">\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 className=\"flex flex-col gap-2 text-sm\">\n <div className=\"font-medium leading-tight\">\n <DisplayField name=\"key\" hideLabel />\n </div>\n <div className=\"flex flex-wrap items-center gap-x-3 gap-y-1\">\n <DisplayField name=\"type\" />\n <DisplayField name=\"planTier\" />\n <DisplayField name=\"isPublic\" />\n <DisplayField name=\"isActive\" />\n </div>\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 className=\"flex flex-col gap-2 text-sm\">\n <div className=\"flex flex-wrap items-center gap-x-3 gap-y-1\">\n <DisplayField name=\"model\" />\n <DisplayField name=\"unitPrice\" />\n <DisplayField name=\"interval\" />\n </div>\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 className=\"flex flex-col gap-2 text-sm\">\n <div className=\"font-medium leading-tight\">\n <DisplayField name=\"referralCode\" hideLabel />\n </div>\n <div className=\"flex flex-wrap items-center gap-x-3 gap-y-1\">\n <DisplayField name=\"status\" />\n <DisplayField name=\"referrerScopeType\" />\n <DisplayField name=\"referredScopeType\" />\n </div>\n <div className=\"flex flex-wrap items-center gap-x-3 gap-y-1 text-muted-foreground text-xs\">\n <DisplayField name=\"expiresAt\" />\n <DisplayField name=\"convertedAt\" />\n </div>\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 className=\"flex flex-col gap-2 text-sm\">\n <div className=\"font-medium leading-tight\">\n <DisplayField name=\"name\" hideLabel />\n </div>\n <div className=\"flex flex-wrap items-center gap-x-3 gap-y-1\">\n <DisplayField name=\"type\" />\n <DisplayField name=\"discountType\" />\n </div>\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 className=\"flex flex-col gap-2 text-sm\">\n <div className=\"flex flex-wrap items-center gap-x-3 gap-y-1\">\n <DisplayField name=\"status\" />\n <DisplayField name=\"cancelAtPeriodEnd\" />\n </div>\n <div className=\"flex flex-wrap items-center gap-x-3 gap-y-1 text-muted-foreground text-xs\">\n <DisplayField name=\"currentPeriodEnd\" />\n <DisplayField name=\"trialEnd\" />\n </div>\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 className=\"flex flex-col gap-2 text-sm\">\n <div className=\"font-medium leading-tight\">\n <DisplayField name=\"poolKey\" hideLabel />\n </div>\n <div className=\"flex flex-wrap items-center gap-x-3 gap-y-1\">\n <DisplayField name=\"available\" />\n <DisplayField name=\"totalPurchased\" />\n <DisplayField name=\"totalConsumed\" />\n </div>\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. `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 +1 @@
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;AAgFtE,wBAAgB,wBAAwB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAwHtE;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAoH1E;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"}
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;AAiFtE,wBAAgB,wBAAwB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAwHtE;AAED,wBAAgB,4BAA4B,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAoH1E;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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { resourceUIBehavior, resourceUIBehaviorFrom, } from '@wildo-ai/saas-frontend-lib';
2
+ import { resourceUIBehavior, resourceUIBehaviorFrom, SummaryFlow, } from '@wildo-ai/saas-frontend-lib';
3
3
  import { DisplayField, DisplayLayout, FormField, FormLayout, Section, SummaryLayout, } from '@wildo-ai/saas-frontend-lib';
4
4
  import { BadgeSemanticVariant, EnumDisplayMode, NumberDisplayMode, SectionMode, } from '@wildo-ai/zod-decorators';
5
5
  import { BookOpen, Compass, Trophy } from 'lucide-react';
@@ -56,7 +56,7 @@ export function buildGuidanceMainPresets() {
56
56
  sections: ['overview', 'activity', 'milestones'],
57
57
  },
58
58
  display: () => (_jsxs(DisplayLayout, { children: [_jsx(Section, { name: "overview", appearance: SectionMode.CARD, children: _jsx(DisplayField, { name: "totalPoints" }) }), _jsxs(Section, { name: "activity", children: [_jsx(DisplayField, { name: "categoriesProgress" }), _jsx(DisplayField, { name: "operationCounts" })] }), _jsx(Section, { name: "milestones", children: _jsx(DisplayField, { name: "milestonesAchieved" }) })] })),
59
- summary: () => (_jsx(SummaryLayout, { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-sm", children: _jsx(DisplayField, { name: "totalPoints" }) })),
59
+ summary: () => (_jsx(SummaryLayout, { flow: SummaryFlow.ROW, children: _jsx(DisplayField, { name: "totalPoints" }) })),
60
60
  },
61
61
  fields: {
62
62
  totalPoints: schemaShape.totalPoints.numberUI({
@@ -78,7 +78,7 @@ export function buildGuidanceMainPresets() {
78
78
  sections: ['overview', 'activity', 'milestones'],
79
79
  },
80
80
  display: () => (_jsxs(DisplayLayout, { children: [_jsx(Section, { name: "overview", appearance: SectionMode.CARD, children: _jsx(DisplayField, { name: "totalPoints" }) }), _jsxs(Section, { name: "activity", children: [_jsx(DisplayField, { name: "categoriesProgress" }), _jsx(DisplayField, { name: "operationCounts" })] }), _jsx(Section, { name: "milestones", children: _jsx(DisplayField, { name: "milestonesAchieved" }) })] })),
81
- summary: () => (_jsx(SummaryLayout, { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-sm", children: _jsx(DisplayField, { name: "totalPoints" }) })),
81
+ summary: () => (_jsx(SummaryLayout, { flow: SummaryFlow.ROW, children: _jsx(DisplayField, { name: "totalPoints" }) })),
82
82
  },
83
83
  fields: {
84
84
  totalPoints: schemaShape.totalPoints.numberUI({
@@ -100,7 +100,7 @@ export function buildGuidanceMainPresets() {
100
100
  sections: ['overview', 'engagement', 'history'],
101
101
  },
102
102
  display: () => (_jsxs(DisplayLayout, { children: [_jsxs(Section, { name: "overview", appearance: SectionMode.CARD, children: [_jsx(DisplayField, { name: "currentStage" }), _jsx(DisplayField, { name: "stageEnteredAt" }), _jsx(DisplayField, { name: "lastActiveAt" })] }), _jsxs(Section, { name: "engagement", children: [_jsx(DisplayField, { name: "stagesVisited" }), _jsx(DisplayField, { name: "activationCriteriaMet" }), _jsx(DisplayField, { name: "engagement" })] }), _jsx(Section, { name: "history", children: _jsx(DisplayField, { name: "stageHistory" }) })] })),
103
- summary: () => (_jsx(SummaryLayout, { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-sm", children: _jsx(DisplayField, { name: "currentStage" }) })),
103
+ summary: () => (_jsx(SummaryLayout, { flow: SummaryFlow.ROW, children: _jsx(DisplayField, { name: "currentStage" }) })),
104
104
  },
105
105
  fields: lifecycleStageFields(schemaShape),
106
106
  views: [
@@ -121,7 +121,7 @@ export function buildGuidancePlatformPresets() {
121
121
  sections: ['overview'],
122
122
  },
123
123
  display: () => (_jsx(DisplayLayout, { children: _jsx(Section, { name: "overview", appearance: SectionMode.CARD, children: _jsx(DisplayField, { name: "flows" }) }) })),
124
- summary: () => (_jsx(SummaryLayout, { className: "text-sm", children: _jsx(DisplayField, { name: "flows" }) })),
124
+ summary: () => (_jsx(SummaryLayout, { children: _jsx(DisplayField, { name: "flows" }) })),
125
125
  edit: () => (_jsx(FormLayout, { children: _jsx(Section, { name: "overview", appearance: SectionMode.CARD, children: _jsx(FormField, { name: "flows" }) }) })),
126
126
  },
127
127
  views: [
@@ -142,7 +142,7 @@ export function buildGuidancePlatformPresets() {
142
142
  sections: ['overview'],
143
143
  },
144
144
  display: () => (_jsx(DisplayLayout, { children: _jsx(Section, { name: "overview", appearance: SectionMode.CARD, children: _jsx(DisplayField, { name: "flows" }) }) })),
145
- summary: () => (_jsx(SummaryLayout, { className: "text-sm", children: _jsx(DisplayField, { name: "flows" }) })),
145
+ summary: () => (_jsx(SummaryLayout, { children: _jsx(DisplayField, { name: "flows" }) })),
146
146
  edit: () => (_jsx(FormLayout, { children: _jsx(Section, { name: "overview", appearance: SectionMode.CARD, children: _jsx(FormField, { name: "flows" }) }) })),
147
147
  },
148
148
  views: [
@@ -163,7 +163,7 @@ export function buildGuidancePlatformPresets() {
163
163
  sections: ['overview', 'engagement', 'history'],
164
164
  },
165
165
  display: () => (_jsxs(DisplayLayout, { children: [_jsxs(Section, { name: "overview", appearance: SectionMode.CARD, children: [_jsx(DisplayField, { name: "currentStage" }), _jsx(DisplayField, { name: "stageEnteredAt" }), _jsx(DisplayField, { name: "lastActiveAt" })] }), _jsxs(Section, { name: "engagement", children: [_jsx(DisplayField, { name: "stagesVisited" }), _jsx(DisplayField, { name: "activationCriteriaMet" }), _jsx(DisplayField, { name: "engagement" })] }), _jsx(Section, { name: "history", children: _jsx(DisplayField, { name: "stageHistory" }) })] })),
166
- summary: () => (_jsx(SummaryLayout, { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-sm", children: _jsx(DisplayField, { name: "currentStage" }) })),
166
+ summary: () => (_jsx(SummaryLayout, { flow: SummaryFlow.ROW, children: _jsx(DisplayField, { name: "currentStage" }) })),
167
167
  },
168
168
  fields: lifecycleStageFields(schemaShape),
169
169
  views: [