@wildo-ai/presets-components 1.1.5 → 1.1.7

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 (189) hide show
  1. package/dist/esm/.native.tsbuildinfo +1 -0
  2. package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
  3. package/dist/esm/components/actions/action-bar.js +5 -2
  4. package/dist/esm/components/actions/action-bar.js.map +1 -1
  5. package/dist/esm/components/ai-elements/chat/suggestion.d.ts.map +1 -1
  6. package/dist/esm/components/ai-elements/chat/suggestion.js +8 -1
  7. package/dist/esm/components/ai-elements/chat/suggestion.js.map +1 -1
  8. package/dist/esm/components/ai-elements/decision/approval.d.ts +108 -13
  9. package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
  10. package/dist/esm/components/ai-elements/decision/approval.js +60 -10
  11. package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
  12. package/dist/esm/components/ai-elements/graph/graph-runtime.d.ts +3 -1
  13. package/dist/esm/components/ai-elements/graph/graph-runtime.d.ts.map +1 -1
  14. package/dist/esm/components/ai-elements/graph/graph-runtime.js +3 -1
  15. package/dist/esm/components/ai-elements/graph/graph-runtime.js.map +1 -1
  16. package/dist/esm/components/app/app-layout-main-container.d.ts +9 -0
  17. package/dist/esm/components/app/app-layout-main-container.d.ts.map +1 -1
  18. package/dist/esm/components/app/app-layout-main-container.js +17 -23
  19. package/dist/esm/components/app/app-layout-main-container.js.map +1 -1
  20. package/dist/esm/components/app/app-layout-main-container.labels.d.ts.map +1 -1
  21. package/dist/esm/components/app/app-layout-main-container.labels.js +27 -0
  22. package/dist/esm/components/app/app-layout-main-container.labels.js.map +1 -1
  23. package/dist/esm/components/billing/billing-plan-change-preview.d.ts.map +1 -1
  24. package/dist/esm/components/billing/billing-plan-change-preview.js +5 -2
  25. package/dist/esm/components/billing/billing-plan-change-preview.js.map +1 -1
  26. package/dist/esm/components/billing/billing-plan-change-preview.labels.d.ts.map +1 -1
  27. package/dist/esm/components/billing/billing-plan-change-preview.labels.js +3 -0
  28. package/dist/esm/components/billing/billing-plan-change-preview.labels.js.map +1 -1
  29. package/dist/esm/components/billing/billing-pricing-table.d.ts +1 -1
  30. package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
  31. package/dist/esm/components/billing/billing-pricing-table.js +8 -4
  32. package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
  33. package/dist/esm/components/billing/billing-pricing-table.labels.d.ts.map +1 -1
  34. package/dist/esm/components/billing/billing-pricing-table.labels.js +7 -1
  35. package/dist/esm/components/billing/billing-pricing-table.labels.js.map +1 -1
  36. package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
  37. package/dist/esm/components/billing/billing-usage-dashboard.js +6 -3
  38. package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
  39. package/dist/esm/components/billing/billing-usage-dashboard.labels.d.ts.map +1 -1
  40. package/dist/esm/components/billing/billing-usage-dashboard.labels.js +2 -1
  41. package/dist/esm/components/billing/billing-usage-dashboard.labels.js.map +1 -1
  42. package/dist/esm/components/data-display/formatters/display-field-enum.d.ts.map +1 -1
  43. package/dist/esm/components/data-display/formatters/display-field-enum.js +18 -4
  44. package/dist/esm/components/data-display/formatters/display-field-enum.js.map +1 -1
  45. package/dist/esm/components/data-display/formatters/display-field-file.d.ts.map +1 -1
  46. package/dist/esm/components/data-display/formatters/display-field-file.js +13 -14
  47. package/dist/esm/components/data-display/formatters/display-field-file.js.map +1 -1
  48. package/dist/esm/components/data-display/formatters/display-field-file.labels.d.ts.map +1 -1
  49. package/dist/esm/components/data-display/formatters/display-field-file.labels.js +1 -0
  50. package/dist/esm/components/data-display/formatters/display-field-file.labels.js.map +1 -1
  51. package/dist/esm/components/data-display/formatters/display-field-number.d.ts.map +1 -1
  52. package/dist/esm/components/data-display/formatters/display-field-number.js +6 -1
  53. package/dist/esm/components/data-display/formatters/display-field-number.js.map +1 -1
  54. package/dist/esm/components/data-display/formatters/display-field-number.labels.d.ts.map +1 -1
  55. package/dist/esm/components/data-display/formatters/display-field-number.labels.js +5 -2
  56. package/dist/esm/components/data-display/formatters/display-field-number.labels.js.map +1 -1
  57. package/dist/esm/components/data-display/formatters/display-field-string.d.ts +1 -1
  58. package/dist/esm/components/data-display/formatters/display-field-string.d.ts.map +1 -1
  59. package/dist/esm/components/data-display/formatters/display-field-string.js +51 -12
  60. package/dist/esm/components/data-display/formatters/display-field-string.js.map +1 -1
  61. package/dist/esm/components/data-display/untrusted-html-content.d.ts +55 -0
  62. package/dist/esm/components/data-display/untrusted-html-content.d.ts.map +1 -0
  63. package/dist/esm/components/data-display/untrusted-html-content.js +67 -0
  64. package/dist/esm/components/data-display/untrusted-html-content.js.map +1 -0
  65. package/dist/esm/components/form/chromes/form-primitive.labels.d.ts.map +1 -1
  66. package/dist/esm/components/form/chromes/form-primitive.labels.js +9 -0
  67. package/dist/esm/components/form/chromes/form-primitive.labels.js.map +1 -1
  68. package/dist/esm/components/form/combobox.d.ts.map +1 -1
  69. package/dist/esm/components/form/combobox.js +10 -10
  70. package/dist/esm/components/form/combobox.js.map +1 -1
  71. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.d.ts +42 -0
  72. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.d.ts.map +1 -0
  73. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.js +120 -0
  74. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.adapter.js.map +1 -0
  75. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.d.ts +16 -0
  76. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.d.ts.map +1 -0
  77. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.js +8 -0
  78. package/dist/esm/components/form/controls/address/providers/google-places-address-lookup.js.map +1 -0
  79. package/dist/esm/components/navigation/app-level/activity-bar.d.ts.map +1 -1
  80. package/dist/esm/components/navigation/app-level/activity-bar.js +2 -2
  81. package/dist/esm/components/navigation/app-level/activity-bar.js.map +1 -1
  82. package/dist/esm/components/navigation/app-level/menu-user-org.d.ts.map +1 -1
  83. package/dist/esm/components/navigation/app-level/menu-user-org.js +10 -4
  84. package/dist/esm/components/navigation/app-level/menu-user-org.js.map +1 -1
  85. package/dist/esm/components/navigation/app-level/menu-user-org.labels.d.ts.map +1 -1
  86. package/dist/esm/components/navigation/app-level/menu-user-org.labels.js +7 -0
  87. package/dist/esm/components/navigation/app-level/menu-user-org.labels.js.map +1 -1
  88. package/dist/esm/components/navigation/app-level/menubar.d.ts.map +1 -1
  89. package/dist/esm/components/navigation/app-level/menubar.js +6 -6
  90. package/dist/esm/components/navigation/app-level/menubar.js.map +1 -1
  91. package/dist/esm/components/navigation/app-level/navigation-back.d.ts.map +1 -1
  92. package/dist/esm/components/navigation/app-level/navigation-back.js +27 -9
  93. package/dist/esm/components/navigation/app-level/navigation-back.js.map +1 -1
  94. package/dist/esm/components/navigation/app-level/sidebar.js +3 -3
  95. package/dist/esm/components/navigation/app-level/sidebar.js.map +1 -1
  96. package/dist/esm/components/navigation/app-level/status-bar.js +2 -2
  97. package/dist/esm/components/navigation/app-level/status-bar.js.map +1 -1
  98. package/dist/esm/components/navigation/app-level/toolbar.d.ts.map +1 -1
  99. package/dist/esm/components/navigation/app-level/toolbar.js +2 -2
  100. package/dist/esm/components/navigation/app-level/toolbar.js.map +1 -1
  101. package/dist/esm/components/navigation/app-level/utility-panel.js +2 -2
  102. package/dist/esm/components/navigation/app-level/utility-panel.js.map +1 -1
  103. package/dist/esm/components/navigation/breadcrumb.js +1 -1
  104. package/dist/esm/components/navigation/breadcrumb.js.map +1 -1
  105. package/dist/esm/components/sections/stepper.d.ts.map +1 -1
  106. package/dist/esm/components/sections/stepper.js +5 -3
  107. package/dist/esm/components/sections/stepper.js.map +1 -1
  108. package/dist/esm/config/preset-navigation.d.ts.map +1 -1
  109. package/dist/esm/config/preset-navigation.js +23 -2
  110. package/dist/esm/config/preset-navigation.js.map +1 -1
  111. package/dist/esm/config/resources/agent-work.resource-presets.d.ts +4 -0
  112. package/dist/esm/config/resources/agent-work.resource-presets.d.ts.map +1 -0
  113. package/dist/esm/config/resources/agent-work.resource-presets.js +115 -0
  114. package/dist/esm/config/resources/agent-work.resource-presets.js.map +1 -0
  115. package/dist/esm/config/resources/api-key-rotation-window.d.ts +22 -0
  116. package/dist/esm/config/resources/api-key-rotation-window.d.ts.map +1 -0
  117. package/dist/esm/config/resources/api-key-rotation-window.js +45 -0
  118. package/dist/esm/config/resources/api-key-rotation-window.js.map +1 -0
  119. package/dist/esm/config/resources/application.resource-presets.d.ts.map +1 -1
  120. package/dist/esm/config/resources/application.resource-presets.js +147 -61
  121. package/dist/esm/config/resources/application.resource-presets.js.map +1 -1
  122. package/dist/esm/config/resources/billing.resource-presets.d.ts +4 -3
  123. package/dist/esm/config/resources/billing.resource-presets.d.ts.map +1 -1
  124. package/dist/esm/config/resources/billing.resource-presets.js +240 -111
  125. package/dist/esm/config/resources/billing.resource-presets.js.map +1 -1
  126. package/dist/esm/config/resources/conversation-threads.resource-presets.d.ts +4 -0
  127. package/dist/esm/config/resources/conversation-threads.resource-presets.d.ts.map +1 -0
  128. package/dist/esm/config/resources/conversation-threads.resource-presets.js +105 -0
  129. package/dist/esm/config/resources/conversation-threads.resource-presets.js.map +1 -0
  130. package/dist/esm/config/resources/guidance.resource-presets.d.ts.map +1 -1
  131. package/dist/esm/config/resources/guidance.resource-presets.js +18 -11
  132. package/dist/esm/config/resources/guidance.resource-presets.js.map +1 -1
  133. package/dist/esm/config/resources/identity.resource-presets.d.ts +0 -13
  134. package/dist/esm/config/resources/identity.resource-presets.d.ts.map +1 -1
  135. package/dist/esm/config/resources/identity.resource-presets.js +48 -16
  136. package/dist/esm/config/resources/identity.resource-presets.js.map +1 -1
  137. package/dist/esm/config/resources/inbound-deliveries.resource-presets.d.ts +6 -0
  138. package/dist/esm/config/resources/inbound-deliveries.resource-presets.d.ts.map +1 -0
  139. package/dist/esm/config/resources/inbound-deliveries.resource-presets.js +112 -0
  140. package/dist/esm/config/resources/inbound-deliveries.resource-presets.js.map +1 -0
  141. package/dist/esm/config/resources/inbound-email.resource-presets.d.ts +4 -0
  142. package/dist/esm/config/resources/inbound-email.resource-presets.d.ts.map +1 -0
  143. package/dist/esm/config/resources/inbound-email.resource-presets.js +182 -0
  144. package/dist/esm/config/resources/inbound-email.resource-presets.js.map +1 -0
  145. package/dist/esm/config/resources/index.d.ts.map +1 -1
  146. package/dist/esm/config/resources/index.js +9 -2
  147. package/dist/esm/config/resources/index.js.map +1 -1
  148. package/dist/esm/config/resources/legal-holds.resource-presets.d.ts +4 -0
  149. package/dist/esm/config/resources/legal-holds.resource-presets.d.ts.map +1 -0
  150. package/dist/esm/config/resources/legal-holds.resource-presets.js +76 -0
  151. package/dist/esm/config/resources/legal-holds.resource-presets.js.map +1 -0
  152. package/dist/esm/config/resources/organizations.resource-presets.d.ts.map +1 -1
  153. package/dist/esm/config/resources/organizations.resource-presets.js +139 -36
  154. package/dist/esm/config/resources/organizations.resource-presets.js.map +1 -1
  155. package/dist/esm/config/resources/resource.config.utils.d.ts +20 -0
  156. package/dist/esm/config/resources/resource.config.utils.d.ts.map +1 -1
  157. package/dist/esm/config/resources/resource.config.utils.js +20 -0
  158. package/dist/esm/config/resources/resource.config.utils.js.map +1 -1
  159. package/dist/esm/config/resources/retention-enforcement.resource-presets.d.ts +5 -0
  160. package/dist/esm/config/resources/retention-enforcement.resource-presets.d.ts.map +1 -0
  161. package/dist/esm/config/resources/retention-enforcement.resource-presets.js +74 -0
  162. package/dist/esm/config/resources/retention-enforcement.resource-presets.js.map +1 -0
  163. package/dist/esm/config/resources/security.resource-presets.d.ts +3 -1
  164. package/dist/esm/config/resources/security.resource-presets.d.ts.map +1 -1
  165. package/dist/esm/config/resources/security.resource-presets.js +563 -133
  166. package/dist/esm/config/resources/security.resource-presets.js.map +1 -1
  167. package/dist/esm/config/resources/service-providers.resource-presets.d.ts +4 -0
  168. package/dist/esm/config/resources/service-providers.resource-presets.d.ts.map +1 -0
  169. package/dist/esm/config/resources/service-providers.resource-presets.js +321 -0
  170. package/dist/esm/config/resources/service-providers.resource-presets.js.map +1 -0
  171. package/dist/esm/config/resources/webhooks.resource-presets.d.ts +4 -3
  172. package/dist/esm/config/resources/webhooks.resource-presets.d.ts.map +1 -1
  173. package/dist/esm/config/resources/webhooks.resource-presets.js +76 -25
  174. package/dist/esm/config/resources/webhooks.resource-presets.js.map +1 -1
  175. package/dist/esm/index.d.ts +1 -0
  176. package/dist/esm/index.d.ts.map +1 -1
  177. package/dist/esm/index.js +1 -0
  178. package/dist/esm/index.js.map +1 -1
  179. package/dist/esm/registration/register-common-enums.d.ts.map +1 -1
  180. package/dist/esm/registration/register-common-enums.js +15 -0
  181. package/dist/esm/registration/register-common-enums.js.map +1 -1
  182. package/dist/esm/registration/register-provider-components.d.ts.map +1 -1
  183. package/dist/esm/registration/register-provider-components.js +6 -0
  184. package/dist/esm/registration/register-provider-components.js.map +1 -1
  185. package/dist/esm/themes/dense.theme.d.ts.map +1 -1
  186. package/dist/esm/themes/dense.theme.js +22 -2
  187. package/dist/esm/themes/dense.theme.js.map +1 -1
  188. package/dist/tsconfig.build.tsbuildinfo +1 -1
  189. package/package.json +8 -6
@@ -1 +1 @@
1
- {"version":3,"file":"application.resource-presets.js","sourceRoot":"","sources":["../../../../../src/config/resources/application.resource-presets.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport type { ResourceUIBehavior } from '@wildo-ai/saas-frontend-lib';\nimport {\n RelatedResourceSections,\n resourceUIBehavior,\n resourceUIBehaviorFrom,\n SummaryFlow,\n SummaryMeta,\n SummaryTitle,\n ResourceLayoutInlineEditDefault,\n} from '@wildo-ai/saas-frontend-lib';\nimport {\n DisplayField,\n DisplayLayout,\n FormField,\n FormLayout,\n ObjectScope,\n Section,\n SummaryLayout,\n SummaryTitlePlacement,\n} from '@wildo-ai/saas-frontend-lib';\nimport { BadgeSemanticVariant, DisplayChromeMode, EditChromeMode, EnumDisplayMode, SectionMode } from '@wildo-ai/zod-decorators';\nimport {\n CalendarPlus,\n ChartColumn,\n GitBranch,\n Key,\n KeyRound,\n ShieldCheck,\n ShieldX,\n Ban,\n Hourglass,\n LayoutGrid,\n Power,\n PowerOff,\n RefreshCw,\n RotateCcw,\n RotateCw,\n ToggleLeft,\n ToggleRight,\n} from 'lucide-react';\nimport {\n CoreResourceType as R,\n CoreResourceOperation as Op,\n ApiKeyStatus,\n AppApiKeys_Operations,\n ApplicationFeatures_Operations,\n applicationResourceConfiguration_InitializationFactory as appFactory,\n applicationVersionsResourceConfiguration_InitializationFactory as appVersionsFactory,\n applicationMetadataResourceConfiguration_InitializationFactory as appMetadataFactory,\n appApiKeysResourceConfiguration_InitializationFactory as appApiKeysFactory,\n appOAuthClientsResourceConfiguration_InitializationFactory as appOAuthClientsFactory,\n applicationAccessGrantsResourceConfiguration_InitializationFactory as appAccessGrantsFactory,\n ApplicationAccessGrants_Operations,\n ApplicationAccessGrantSchema,\n PlatformAccessGrantStatus,\n AppOAuthClients_Operations,\n OAuthClientApplicationSchema,\n OAuthClientStatus,\n applicationFeaturesResourceConfiguration_InitializationFactory as appFeaturesFactory,\n ApplicationSchema,\n ApplicationVersionSchema,\n ApplicationMetadataSchema,\n ApiKeyApplicationSchema,\n ScopeFeaturesWithOverridesSchema,\n} from '@wildo-ai/saas-models';\nimport { addressable, notAddressable, apiOnly } from './resource.config.utils';\n\n/**\n * Application — Resource frontend presets\n *\n * **Main:** APPLICATION is read-only and non-addressable (accessible from a menu dropdown —\n * \"About this app\" type surface). End users never manage versions or metadata.\n *\n * **Admin:** Full APPLICATION management (CRUD, activate/suspend), plus\n * APPLICATION_VERSIONS, APPLICATION_METADATA, and APPLICATION_API_KEYS.\n *\n * Field-level `{primitive}UI` uses `showDescription` aligned with `billing.resource-presets.tsx`.\n */\n\nexport function buildApplicationMainPresets(): Partial<ResourceUIBehavior> {\n return {\n [R.APPLICATION]: resourceUIBehavior(appFactory, ApplicationSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: LayoutGrid,\n getFrontendResourceLabel: ({ currentObject }) => currentObject.appDisplayName,\n layout: {\n refs: {\n sections: ['overview'],\n },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"appDisplayName\" />\n <DisplayField name=\"appSlug\" />\n <DisplayField name=\"lastVersion\" />\n </Section>\n {/*\n This surface composes NO children. It renders EMBEDDED (its READ is\n `notAddressable`), where the application's nine owned children —\n versions, features, api-keys, SSO/SCIM/SIEM configuration — would be\n noise. `targets={[]}` states that as a decision; saying nothing would\n mean \"compose them all\", which is what nine `hidden: true` entries\n were working around one edge at a time.\n The ADMIN variant below extends this display and names the four it\n does want.\n */}\n <RelatedResourceSections config={{ mode: SectionMode.TABS }} targets={[]} />\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"appDisplayName\" />\n <SummaryMeta>\n <DisplayField name=\"appSlug\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"appDisplayName\" />\n <FormField name=\"appSlug\" />\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n ],\n })),\n };\n}\n\nexport function buildApplicationAdminPresets(main: Partial<ResourceUIBehavior>): Partial<ResourceUIBehavior> {\n return {\n [R.APPLICATION]: resourceUIBehaviorFrom(appFactory, main[R.APPLICATION]!, ({ base, opsVariantResolver }) => ({\n icon: base.icon,\n getFrontendResourceLabel: base.getFrontendResourceLabel,\n // The admin surface EXTENDS the base display rather than reusing it: both\n // variants share one layout object, but they compose different children —\n // the base none, this one four. Extending is what lets a single shared\n // layout serve both without a per-variant relationship config.\n layout: {\n ...base.layout,\n display: () => {\n const BaseDisplay = base.layout!.display!;\n return (\n <>\n <BaseDisplay />\n {/* The four an operator manages here. The remaining five owned\n children — SSO / SCIM / SIEM configuration — stay out by not\n being named, which is what five `hidden: true` entries said. */}\n <RelatedResourceSections\n config={{ mode: SectionMode.TABS }}\n targets={[\n { resourceType: R.APPLICATION_METADATA, operationLike: Op.READ },\n R.APPLICATION_VERSIONS,\n R.APPLICATION_FEATURES,\n R.APPLICATION_API_KEYS,\n ]}\n />\n </>\n );\n },\n },\n views: [\n [opsVariantResolver(Op.READ, 'admin'), notAddressable()],\n [opsVariantResolver(Op.LIST, 'admin'), notAddressable()],\n [opsVariantResolver(Op.SEARCH, 'admin'), notAddressable()],\n [opsVariantResolver(Op.CREATE, 'admin'), notAddressable()],\n [opsVariantResolver(Op.UPDATE, 'admin'), notAddressable()],\n [opsVariantResolver(Op.DELETE, 'admin'), notAddressable()],\n ],\n })),\n\n [R.APPLICATION_VERSIONS]: resourceUIBehavior(appVersionsFactory, ApplicationVersionSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: GitBranch,\n getFrontendResourceLabel: ({ currentObject }) => currentObject.version,\n layout: {\n refs: {\n sections: ['overview', 'releaseNotes'],\n },\n // Settings-page chrome (Settings Hub → Administration): label-left / value-right rows.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.INLINE, edit: EditChromeMode.SETTINGS_ROW },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"version\" />\n <DisplayField name=\"releaseDate\" />\n </Section>\n <Section name=\"releaseNotes\">\n <DisplayField name=\"releaseNotes\" />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n // TEMPLATE_OWNED with no title: this card's LABEL is the version string, which the first\n // field already renders. At AUTO the row read \"1.4.2 · Version: 1.4.2 · Released: …\".\n <SummaryLayout flow={SummaryFlow.ROW} titlePlacement={SummaryTitlePlacement.TEMPLATE_OWNED}>\n <DisplayField name=\"version\" />\n <DisplayField name=\"releaseDate\" />\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"version\" />\n <FormField name=\"releaseDate\" />\n </Section>\n <Section name=\"releaseNotes\">\n <FormField name=\"releaseNotes\" />\n </Section>\n </FormLayout>\n ),\n },\n views: [\n // Versions are created by the app-version system (API-driven) — headless (API-only).\n [Op.CREATE, apiOnly()],\n [Op.READ, notAddressable()],\n [Op.LIST, notAddressable()],\n [Op.SEARCH, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [Op.DELETE, notAddressable()],\n ],\n })),\n\n [R.APPLICATION_METADATA]: resourceUIBehavior(appMetadataFactory, ApplicationMetadataSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n layout: {\n refs: {\n sections: ['overview'],\n },\n // Settings-page chrome (Settings Hub → Administration): label-left / value-right rows.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.INLINE, edit: EditChromeMode.SETTINGS_ROW },\n // Application metadata — the application’s own description. A settings pane is a list of decisions an operator came to TAKE, so its\n // writable fields are offered in place rather than behind a whole-pane edit mode. The set is\n // DERIVED (not primary key, not excludeFromUpdate, not hidden, not opted out), so a field\n // added to this schema tomorrow is covered without anyone remembering to decorate it.\n defaultInlineEdit: ResourceLayoutInlineEditDefault.WRITABLE_FIELDS,\n // And its empty rows say WHICH emptiness they are — \"None yet\" for a list with no members,\n // \"Not available\" for a computed value, \"No value\" for a field awaiting input — instead of one\n // em dash standing for all three. The surface policy's dash is right where a reader is scanning;\n // on a settings row, which is read one at a time to decide something, it is an answer that\n // refuses to answer.\n defaultEmptyValue: 'placeholder',\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"description\" />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <DisplayField name=\"description\" />\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"description\" />\n </Section>\n </FormLayout>\n ),\n },\n views: [\n // Metadata is system-managed, auto-initialized with the app — headless (API-only).\n [Op.CREATE, apiOnly()],\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [Op.DELETE, notAddressable()],\n ],\n })),\n\n [R.APPLICATION_FEATURES]: resourceUIBehavior(appFeaturesFactory, ScopeFeaturesWithOverridesSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n layout: {\n refs: { sections: ['overview', 'overrides'] },\n // Settings-page chrome (Settings Hub → Administration): label-left / value-right rows.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.INLINE, edit: EditChromeMode.SETTINGS_ROW },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"features\" />\n <DisplayField name=\"limits\" />\n </Section>\n <Section name=\"overrides\">\n <ObjectScope name=\"manualOverrides\">\n <DisplayField name=\"addedFeatures\" />\n <DisplayField name=\"removedFeatures\" />\n <DisplayField name=\"limitOverrides\" />\n </ObjectScope>\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <DisplayField name=\"features\" />\n <DisplayField name=\"limits\" />\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"features\" />\n <FormField name=\"limits\" />\n </Section>\n <Section name=\"overrides\">\n <ObjectScope name=\"manualOverrides\">\n <FormField name=\"addedFeatures\" />\n <FormField name=\"removedFeatures\" />\n <FormField name=\"limitOverrides\" />\n </ObjectScope>\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.SEARCH, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [ApplicationFeatures_Operations.ENABLE_FEATURE, notAddressable({ iconOverride: ToggleRight })],\n [ApplicationFeatures_Operations.DISABLE_FEATURE, notAddressable({ iconOverride: ToggleLeft })],\n [ApplicationFeatures_Operations.RESET_FEATURES, notAddressable({ iconOverride: RotateCcw })],\n ],\n })),\n\n [R.APPLICATION_API_KEYS]: resourceUIBehavior(appApiKeysFactory, ApiKeyApplicationSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: Key,\n layout: {\n refs: {\n sections: ['overview', 'access', 'lifecycle'],\n },\n // Settings-page chrome (Settings Hub → Administration): label-left / value-right rows.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.INLINE, edit: EditChromeMode.SETTINGS_ROW },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"name\" />\n <DisplayField name=\"scope\" />\n <DisplayField name=\"status\" />\n <DisplayField name=\"keyPrefix\" />\n </Section>\n <Section name=\"access\">\n <DisplayField name=\"roles\" />\n <DisplayField name=\"description\" />\n </Section>\n <Section name=\"lifecycle\">\n <DisplayField name=\"expiresAt\" />\n <DisplayField name=\"lastUsedAt\" />\n <DisplayField name=\"createdAt\" />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"name\" />\n <SummaryMeta>\n <DisplayField name=\"scope\" />\n <DisplayField name=\"status\" />\n <DisplayField name=\"keyPrefix\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"name\" />\n <FormField name=\"status\" />\n <FormField name=\"expiresAt\" />\n </Section>\n <Section name=\"access\">\n <FormField name=\"roles\" />\n <FormField name=\"description\" />\n </Section>\n </FormLayout>\n ),\n },\n fields: {\n status: schemaShape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },\n edit: { showDescription: true },\n values: {\n [ApiKeyStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS },\n [ApiKeyStatus.INACTIVE]: { color: BadgeSemanticVariant.SECONDARY },\n [ApiKeyStatus.EXPIRED]: { color: BadgeSemanticVariant.WARNING },\n },\n }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.name,\n views: [\n [Op.READ, notAddressable()],\n [Op.LIST, notAddressable()],\n [Op.SEARCH, notAddressable()],\n [Op.CREATE, notAddressable()],\n [AppApiKeys_Operations.ROTATE, notAddressable({ iconOverride: RotateCw })],\n [AppApiKeys_Operations.REGENERATE, notAddressable({ iconOverride: RefreshCw })],\n [AppApiKeys_Operations.DEACTIVATE, notAddressable({ iconOverride: PowerOff })],\n [AppApiKeys_Operations.REACTIVATE, notAddressable({ iconOverride: Power })],\n [AppApiKeys_Operations.EXTEND_EXPIRY, notAddressable({ iconOverride: CalendarPlus })],\n [AppApiKeys_Operations.USAGE_STATS, notAddressable({ iconOverride: ChartColumn })],\n ],\n })),\n\n /**\n * Application OAuth clients — the credential a machine presents to obtain a token.\n *\n * Shaped against the API-keys preset above on purpose: the resource's own specification calls\n * itself \"a FAITHFUL MIRROR of the api-keys resource\", and under client-credentials both\n * authenticate the SAME `APPLICATION_MACHINE` principal. An operator holding both screens is\n * looking at two credential TYPES for one identity, so making them look like siblings is the\n * honest rendering; giving them different shapes would suggest two different principals.\n *\n * Four sections rather than the api-keys three, because a client carries a concern a key does\n * not: `redirects` exists only for the authorization-code leg, and folding those URIs into\n * `access` would bury the one field whose exact value decides whether a sign-in round trip\n * lands. `EXTEND_EXPIRY` and `USAGE_STATS` are absent from the views for the reason the\n * specification gives — a client's validity is fixed at registration and no usage accounting is\n * recorded for clients, so naming either would name an operation this factory does not declare.\n *\n * The secret itself is never laid out. `hashedSecret` / `previousHashedSecret` are backend-only,\n * and `secretPrefix` is the part a human uses to recognise WHICH credential a log line names.\n */\n [R.OAUTH_CLIENTS_APPLICATION]: resourceUIBehavior(appOAuthClientsFactory, OAuthClientApplicationSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: KeyRound,\n layout: {\n refs: {\n sections: ['overview', 'access', 'redirects', 'lifecycle'],\n },\n // Settings-page chrome (Settings Hub → Administration): label-left / value-right rows.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.INLINE, edit: EditChromeMode.SETTINGS_ROW },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"name\" />\n <DisplayField name=\"description\" />\n <DisplayField name=\"status\" />\n <DisplayField name=\"secretPrefix\" />\n </Section>\n <Section name=\"access\">\n <DisplayField name=\"allowedGrants\" />\n <DisplayField name=\"allowedScopes\" />\n <DisplayField name=\"roles\" />\n <DisplayField name=\"tokenEndpointAuthMethod\" />\n <DisplayField name=\"requiresConsent\" />\n </Section>\n <Section name=\"redirects\">\n <DisplayField name=\"redirectUris\" />\n <DisplayField name=\"postLogoutRedirectUris\" />\n </Section>\n <Section name=\"lifecycle\">\n <DisplayField name=\"expiresAt\" />\n <DisplayField name=\"lastUsedAt\" />\n <DisplayField name=\"createdAt\" />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"name\" />\n <SummaryMeta>\n <DisplayField name=\"status\" />\n <DisplayField name=\"secretPrefix\" />\n <DisplayField name=\"expiresAt\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"name\" />\n <FormField name=\"description\" />\n <FormField name=\"expiresAt\" />\n </Section>\n <Section name=\"access\">\n <FormField name=\"allowedGrants\" />\n <FormField name=\"allowedScopes\" />\n <FormField name=\"roles\" />\n <FormField name=\"tokenEndpointAuthMethod\" />\n <FormField name=\"requiresConsent\" />\n </Section>\n <Section name=\"redirects\">\n <FormField name=\"redirectUris\" />\n <FormField name=\"postLogoutRedirectUris\" />\n </Section>\n </FormLayout>\n ),\n },\n fields: {\n // Same three states and the same colours as an API key, because they mean the same things.\n // EXPIRED is a WARNING rather than a DESTRUCTIVE: it is the end of a validity window, not a\n // failure, and it is the one state `reactivate` deliberately does NOT revive.\n status: schemaShape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },\n edit: { showDescription: true },\n values: {\n [OAuthClientStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS },\n [OAuthClientStatus.INACTIVE]: { color: BadgeSemanticVariant.SECONDARY },\n [OAuthClientStatus.EXPIRED]: { color: BadgeSemanticVariant.WARNING },\n },\n }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.name,\n views: [\n [Op.READ, notAddressable()],\n [Op.LIST, notAddressable()],\n [Op.SEARCH, notAddressable()],\n [Op.CREATE, notAddressable()],\n [AppOAuthClients_Operations.ROTATE, notAddressable({ iconOverride: RotateCw })],\n [AppOAuthClients_Operations.REGENERATE, notAddressable({ iconOverride: RefreshCw })],\n [AppOAuthClients_Operations.DEACTIVATE, notAddressable({ iconOverride: PowerOff })],\n [AppOAuthClients_Operations.REACTIVATE, notAddressable({ iconOverride: Power })],\n // Dispatched by the expiry sweep rather than by a person — headless, so it must carry no\n // view fields at all. An operator ends a client early with DEACTIVATE.\n [AppOAuthClients_Operations.EXPIRE, apiOnly()],\n ],\n })),\n\n /**\n * Application-wide access grants — the two-person rule, made visible.\n *\n * This is the record of an ELEVATION, not of a permission: one administrator requests a\n * time-bound window over an application-wide read, and a DIFFERENT administrator signs it.\n * Until this preset existed the mechanism ran with no surface at all, which is the worst shape\n * for a control of this kind — its entire justification is that the consequence becomes VISIBLE\n * rather than prevented, and nothing that cannot be read can make anything visible.\n *\n * Three sections, each answering one of the questions a reviewer actually asks:\n * `request` (who asked, and for what stated reason), `decision` (who signed, when, and why),\n * and `window` (how long it lasts, and which credential it admits). Merging decision into\n * request would put the requester and the approver in one block — the two identities the\n * control exists to keep apart.\n *\n * `justification` and `decisionReason` are laid out as first-class fields rather than metadata.\n * A grant whose reason is unreadable is a grant nobody can review, and the reason is the only\n * part of the row a human wrote.\n */\n [R.APPLICATION_ACCESS_GRANTS]: resourceUIBehavior(appAccessGrantsFactory, ApplicationAccessGrantSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: ShieldCheck,\n // The REQUESTING OPERATOR. Its own specification already says why — \"the first question\n // asked of any elevation is WHO holds it\" — and documented `frontend.label` on that basis\n // while this preset declared no label strategy at all. That combination THROWS at module\n // scope in `resourceSpecificationFromFrontendConfiguration`, and because the engine's spec\n // barrel evaluates every spec on import, one unmatched pair took the whole\n // `@wildo-ai/saas-specifications` package down for every consumer, application companions\n // included. Declaring it here is what makes the documentation true.\n getFrontendResourceLabel: ({ currentObject }) => currentObject.operatorUserId,\n layout: {\n refs: {\n sections: ['request', 'decision', 'window'],\n },\n // Settings-page chrome (Settings Hub → Administration): label-left / value-right rows.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.INLINE, edit: EditChromeMode.SETTINGS_ROW },\n display: () => (\n <DisplayLayout>\n <Section name=\"request\" appearance={SectionMode.CARD}>\n <DisplayField name=\"status\" />\n <DisplayField name=\"operatorUserId\" />\n <DisplayField name=\"justification\" />\n <DisplayField name=\"createdAt\" />\n </Section>\n <Section name=\"decision\">\n <DisplayField name=\"approvedByUserId\" />\n <DisplayField name=\"approvedAt\" />\n <DisplayField name=\"decisionReason\" />\n </Section>\n <Section name=\"window\">\n <DisplayField name=\"expiresAt\" />\n <DisplayField name=\"grantedMachineCredential\" />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"operatorUserId\" />\n <SummaryMeta>\n <DisplayField name=\"status\" />\n <DisplayField name=\"expiresAt\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n },\n fields: {\n // PENDING_APPROVAL is a WARNING rather than a neutral secondary: an unsigned request is the\n // state a reviewer must act on, and the one state where the window does not yet exist.\n // DENIED and REVOKED are both DESTRUCTIVE because both are a refusal; EXPIRED is not — it is\n // the control working, a window closing on its own.\n status: schemaShape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE, showDescription: true },\n values: {\n [PlatformAccessGrantStatus.PENDING_APPROVAL]: { color: BadgeSemanticVariant.WARNING },\n [PlatformAccessGrantStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS },\n [PlatformAccessGrantStatus.DENIED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n [PlatformAccessGrantStatus.REVOKED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n [PlatformAccessGrantStatus.EXPIRED]: { color: BadgeSemanticVariant.SECONDARY },\n },\n }),\n },\n views: [\n [Op.READ, notAddressable()],\n // The review queue. `status` is the axis a reviewer sorts by — an unsigned request is the\n // only row that needs anybody — so it is the quick filter.\n [Op.LIST, addressable({\n collectionDisplayConfig: {\n quickFilterField: 'status',\n temporalGroupField: 'createdAt',\n },\n })],\n [ApplicationAccessGrants_Operations.REQUEST_ACCESS, notAddressable({ iconOverride: Hourglass })],\n [ApplicationAccessGrants_Operations.APPROVE, notAddressable({ iconOverride: ShieldCheck })],\n [ApplicationAccessGrants_Operations.DENY, notAddressable({ iconOverride: ShieldX })],\n [ApplicationAccessGrants_Operations.REVOKE, notAddressable({ iconOverride: Ban })],\n // Dispatched by the credential-expiry sweep and by nothing else, so it is headless.\n [ApplicationAccessGrants_Operations.EXPIRE, apiOnly()],\n ],\n })),\n };\n}\n\nexport const applicationMainPresets = buildApplicationMainPresets();\nexport const applicationAdminPresets = buildApplicationAdminPresets(applicationMainPresets);\n\nexport const applicationMainApplicationResourceUIBehavior = applicationMainPresets[R.APPLICATION]!;\nexport const applicationAdminApplicationResourceUIBehavior = applicationAdminPresets[R.APPLICATION]!;\nexport const applicationVersionsAdminResourceUIBehavior = applicationAdminPresets[R.APPLICATION_VERSIONS]!;\nexport const applicationMetadataAdminResourceUIBehavior = applicationAdminPresets[R.APPLICATION_METADATA]!;\nexport const applicationFeaturesAdminResourceUIBehavior = applicationAdminPresets[R.APPLICATION_FEATURES]!;\nexport const appApiKeysApplicationAdminResourceUIBehavior = applicationAdminPresets[R.APPLICATION_API_KEYS]!;\nexport const appOAuthClientsApplicationAdminResourceUIBehavior = applicationAdminPresets[R.OAUTH_CLIENTS_APPLICATION]!;\nexport const applicationAccessGrantsAdminResourceUIBehavior = applicationAdminPresets[R.APPLICATION_ACCESS_GRANTS]!;\n"]}
1
+ {"version":3,"file":"application.resource-presets.js","sourceRoot":"","sources":["../../../../../src/config/resources/application.resource-presets.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport type { ResourceUIBehavior } from '@wildo-ai/saas-frontend-lib';\nimport {\n RelatedResourceSections,\n ResourceHeaderTitle,\n resourceUIBehavior,\n resourceUIBehaviorFrom,\n SummaryFlow,\n SummaryMeta,\n SummaryTitle,\n ResourceLayoutInlineEditDefault,\n} from '@wildo-ai/saas-frontend-lib';\nimport {\n DisplayField,\n DisplayLayout,\n FormField,\n FormLayout,\n ObjectScope,\n Section,\n SummaryLayout,\n SummaryTitlePlacement,\n} from '@wildo-ai/saas-frontend-lib';\nimport {\n BadgeSemanticVariant,\n DisplayChromeMode,\n EditChromeMode,\n EnumDisplayMode,\n ForeignKeyDisplayMode,\n SectionMode,\n StringEditMode,\n} from '@wildo-ai/zod-decorators';\nimport {\n BadgeCheck,\n CalendarPlus,\n FileText,\n ChartColumn,\n GitBranch,\n Key,\n KeyRound,\n ShieldCheck,\n ShieldX,\n Ban,\n Hourglass,\n LayoutGrid,\n Power,\n PowerOff,\n RefreshCw,\n RotateCcw,\n RotateCw,\n ToggleLeft,\n ToggleRight,\n} from 'lucide-react';\nimport {\n CoreResourceType as R,\n CoreResourceOperation as Op,\n ApiKeyStatus,\n AppApiKeys_Operations,\n ApplicationFeatures_Operations,\n applicationResourceConfiguration_InitializationFactory as appFactory,\n applicationVersionsResourceConfiguration_InitializationFactory as appVersionsFactory,\n applicationMetadataResourceConfiguration_InitializationFactory as appMetadataFactory,\n appApiKeysResourceConfiguration_InitializationFactory as appApiKeysFactory,\n appOAuthClientsResourceConfiguration_InitializationFactory as appOAuthClientsFactory,\n applicationAccessGrantsResourceConfiguration_InitializationFactory as appAccessGrantsFactory,\n ApplicationAccessGrants_Operations,\n ApplicationAccessGrantSchema,\n PlatformAccessGrantStatus,\n AppOAuthClients_Operations,\n OAuthClientApplicationSchema,\n OAuthClientStatus,\n applicationFeaturesResourceConfiguration_InitializationFactory as appFeaturesFactory,\n ApplicationSchema,\n ApplicationVersionSchema,\n ApplicationMetadataSchema,\n ApiKeyApplicationSchema,\n ScopeFeaturesWithOverridesSchema,\n} from '@wildo-ai/saas-models';\nimport { ApiKeyRotationWindowRows } from './api-key-rotation-window';\nimport { addressable, notAddressable, apiOnly, ROW_VERB_ON_RESOURCE_WITHOUT_UPDATE } from './resource.config.utils';\n\n/**\n * Application — Resource frontend presets\n *\n * **Main:** APPLICATION is read-only and non-addressable (accessible from a menu dropdown —\n * \"About this app\" type surface). End users never manage versions or metadata.\n *\n * **Admin:** Full APPLICATION management (CRUD, activate/suspend), plus\n * APPLICATION_VERSIONS, APPLICATION_METADATA, and APPLICATION_API_KEYS.\n *\n * Field-level `{primitive}UI` uses `showDescription` aligned with `billing.resource-presets.tsx`.\n */\n\nexport function buildApplicationMainPresets(): Partial<ResourceUIBehavior> {\n return {\n [R.APPLICATION]: resourceUIBehavior(appFactory, ApplicationSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: LayoutGrid,\n getFrontendResourceLabel: ({ currentObject }) => currentObject.appDisplayName,\n layout: {\n refs: {\n sections: ['overview'],\n },\n display: () => (\n <DisplayLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <DisplayField name=\"appDisplayName\" />\n <DisplayField name=\"appSlug\" />\n <DisplayField name=\"lastVersion\" />\n </Section>\n {/*\n This surface composes NO children. It renders EMBEDDED (its READ is\n `notAddressable`), where the application's nine owned children —\n versions, features, api-keys, SSO/SCIM/SIEM configuration — would be\n noise. `targets={[]}` states that as a decision; saying nothing would\n mean \"compose them all\", which is what nine `hidden: true` entries\n were working around one edge at a time.\n The ADMIN variant below extends this display and names the four it\n does want.\n */}\n <RelatedResourceSections config={{ mode: SectionMode.TABS }} targets={[]} />\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"appDisplayName\" />\n <SummaryMeta>\n <DisplayField name=\"appSlug\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <Section name=\"overview\" appearance={SectionMode.CARD}>\n <FormField name=\"appDisplayName\" />\n <FormField name=\"appSlug\" />\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n ],\n })),\n };\n}\n\nexport function buildApplicationAdminPresets(main: Partial<ResourceUIBehavior>): Partial<ResourceUIBehavior> {\n return {\n [R.APPLICATION]: resourceUIBehaviorFrom(appFactory, main[R.APPLICATION]!, ({ base, opsVariantResolver }) => ({\n icon: base.icon,\n getFrontendResourceLabel: base.getFrontendResourceLabel,\n // The admin surface EXTENDS the base display rather than reusing it: both\n // variants share one layout object, but they compose different children —\n // the base none, this one four. Extending is what lets a single shared\n // layout serve both without a per-variant relationship config.\n layout: {\n ...base.layout,\n display: () => {\n const BaseDisplay = base.layout!.display!;\n return (\n <>\n <BaseDisplay />\n {/* The four an operator manages here. The remaining five owned\n children — SSO / SCIM / SIEM configuration — stay out by not\n being named, which is what five `hidden: true` entries said. */}\n <RelatedResourceSections\n config={{ mode: SectionMode.TABS }}\n targets={[\n { resourceType: R.APPLICATION_METADATA, operationLike: Op.READ },\n R.APPLICATION_VERSIONS,\n R.APPLICATION_FEATURES,\n R.APPLICATION_API_KEYS,\n ]}\n />\n </>\n );\n },\n },\n views: [\n [opsVariantResolver(Op.READ, 'admin'), notAddressable()],\n [opsVariantResolver(Op.LIST, 'admin'), notAddressable()],\n [opsVariantResolver(Op.SEARCH, 'admin'), notAddressable()],\n [opsVariantResolver(Op.CREATE, 'admin'), notAddressable()],\n [opsVariantResolver(Op.UPDATE, 'admin'), notAddressable()],\n [opsVariantResolver(Op.DELETE, 'admin'), notAddressable()],\n ],\n })),\n\n [R.APPLICATION_VERSIONS]: resourceUIBehavior(appVersionsFactory, ApplicationVersionSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: GitBranch,\n // A release is named by its version string, so the page title IS the version and no row repeats it.\n getFrontendResourceLabel: ({ currentObject }) => currentObject.version,\n layout: {\n refs: {\n sections: ['overview', 'releaseNotes'],\n },\n // Settings rows on the read page, bare values on a card, and a STACKED form: a release is authored\n // content (a version string and a paragraph of notes), not a list of settings.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.HIDDEN, edit: EditChromeMode.STACKED },\n display: () => (\n <DisplayLayout>\n {/* The version is the page's name, so this card holds only the date and carries no heading: \"Overview\"\n over one row named the page, not a part of it. */}\n <Section name=\"overview\" appearance={SectionMode.CARD} hideTitle hideDescription>\n <DisplayField name=\"releaseDate\" />\n </Section>\n {/* The heading names the notes, so the notes carry no label and take the full width — as a settings\n row \"Release notes\" repeated the heading and squeezed a paragraph into half the card. */}\n <Section name=\"releaseNotes\" appearance={SectionMode.CARD} chromeMode={DisplayChromeMode.HIDDEN} hideDescription>\n <DisplayField name=\"releaseNotes\" />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n // One line: the version and the day it shipped, bare. TEMPLATE_OWNED with no title, because the card's\n // LABEL is the version string, which the first field already renders. At AUTO the row read\n // \"1.4.2 · Version: 1.4.2 · Released: …\".\n <SummaryLayout flow={SummaryFlow.ROW} titlePlacement={SummaryTitlePlacement.TEMPLATE_OWNED}>\n <DisplayField name=\"version\" className=\"w-auto\" />\n <DisplayField name=\"releaseDate\" className=\"w-auto\" />\n </SummaryLayout>\n ),\n // One flat form: three fields need no headings, and \"Release Notes\" over the only field in its section\n // said what the field's own label says.\n edit: () => (\n <FormLayout>\n <FormField name=\"version\" autoFocus />\n <FormField name=\"releaseDate\" />\n <FormField name=\"releaseNotes\" />\n </FormLayout>\n ),\n },\n fields: {\n // Release notes are a paragraph, not a line.\n releaseNotes: schemaShape.releaseNotes.stringUI({ edit: { editMode: StringEditMode.TEXTAREA } }),\n },\n views: [\n // Versions are created by the app-version system (API-driven) — headless (API-only).\n [Op.CREATE, apiOnly()],\n [Op.READ, notAddressable()],\n [Op.LIST, notAddressable()],\n [Op.SEARCH, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [Op.DELETE, notAddressable()],\n ],\n })),\n\n [R.APPLICATION_METADATA]: resourceUIBehavior(appMetadataFactory, ApplicationMetadataSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n // The header showed the registry's missing-icon placeholder: nothing had ever named one.\n icon: FileText,\n layout: {\n // No sections. The record is one field — the application's description — and an \"Overview\" card with a\n // \"Purpose, audience, and positioning\" description over it was a heading and a prompt per field.\n // Settings-page chrome (Settings Hub → Administration): label-left / value-right rows, bare on a card,\n // and a STACKED form, because the description is a paragraph someone writes.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.HIDDEN, edit: EditChromeMode.STACKED },\n // Application metadata — the application’s own description. A settings pane is a list of decisions an operator came to TAKE, so its\n // writable fields are offered in place rather than behind a whole-pane edit mode. The set is\n // DERIVED (not primary key, not excludeFromUpdate, not hidden, not opted out), so a field\n // added to this schema tomorrow is covered without anyone remembering to decorate it.\n defaultInlineEdit: ResourceLayoutInlineEditDefault.WRITABLE_FIELDS,\n // And its empty rows say WHICH emptiness they are — \"None yet\" for a list with no members,\n // \"Not available\" for a computed value, \"No value\" for a field awaiting input — instead of one\n // em dash standing for all three. Here the empty description IS the information: the seed writes\n // an empty one, and the pane is where somebody fills it in.\n defaultEmptyValue: 'placeholder',\n display: () => (\n <DisplayLayout>\n <DisplayField name=\"description\" />\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <DisplayField name=\"description\" />\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n <FormField name=\"description\" autoFocus />\n </FormLayout>\n ),\n },\n fields: {\n // A description is a paragraph, not a line.\n description: schemaShape.description.stringUI({ edit: { editMode: StringEditMode.TEXTAREA } }),\n },\n views: [\n // Metadata is system-managed, auto-initialized with the app — headless (API-only).\n [Op.CREATE, apiOnly()],\n [Op.READ, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [Op.DELETE, notAddressable()],\n ],\n })),\n\n [R.APPLICATION_FEATURES]: resourceUIBehavior(appFeaturesFactory, ScopeFeaturesWithOverridesSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n // The header showed the registry's missing-icon placeholder: nothing had ever named one. The same glyph as\n // the organization's entitlements, because it is the same record at another scope.\n icon: BadgeCheck,\n layout: {\n refs: { sections: ['overview', 'overrides'] },\n // Settings-page chrome (Settings Hub → Administration): label-left / value-right rows on read, bare\n // values on a card. The form STACKS, because every field it edits is a list or a map of entries, which\n // needs the full width a settings row gives to its label.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.HIDDEN, edit: EditChromeMode.STACKED },\n // An override list with nothing in it IS the answer on this pane — \"no feature was granted or withdrawn\n // by hand\" — so it says \"None yet\" rather than an em dash that reads as missing data.\n defaultEmptyValue: 'placeholder',\n display: () => (\n <DisplayLayout>\n {/* What the application HAS, as the engine evaluates it. The card carries no heading: it was titled\n \"Application Features\", exactly what the page header says above it. */}\n <Section name=\"overview\" appearance={SectionMode.CARD} hideTitle hideDescription>\n <DisplayField name=\"features\" />\n <DisplayField name=\"limits\" />\n </Section>\n {/* What an operator changed BY HAND. This heading stays: it is what separates a grant the configuration\n gave from one a person gave. Its description is an edit prompt and stays on the form. */}\n <Section name=\"overrides\" hideDescription>\n <ObjectScope name=\"manualOverrides\">\n <DisplayField name=\"addedFeatures\" />\n <DisplayField name=\"removedFeatures\" />\n <DisplayField name=\"limitOverrides\" />\n </ObjectScope>\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <DisplayField name=\"features\" />\n <DisplayField name=\"limits\" />\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n {/* The effective lists need no introduction on the form either. */}\n <Section name=\"overview\" appearance={SectionMode.CARD} hideTitle hideDescription>\n <FormField name=\"features\" />\n <FormField name=\"limits\" />\n </Section>\n {/* The one description kept: that a hand-made override outlives configuration changes until it is\n reset is not something the field names can say, and it is the consequence of saving. */}\n <Section name=\"overrides\">\n <ObjectScope name=\"manualOverrides\">\n <FormField name=\"addedFeatures\" />\n <FormField name=\"removedFeatures\" />\n <FormField name=\"limitOverrides\" />\n </ObjectScope>\n </Section>\n </FormLayout>\n ),\n },\n views: [\n [Op.READ, notAddressable()],\n [Op.SEARCH, notAddressable()],\n [Op.UPDATE, notAddressable()],\n [ApplicationFeatures_Operations.ENABLE_FEATURE, notAddressable({ iconOverride: ToggleRight })],\n [ApplicationFeatures_Operations.DISABLE_FEATURE, notAddressable({ iconOverride: ToggleLeft })],\n [ApplicationFeatures_Operations.RESET_FEATURES, notAddressable({ iconOverride: RotateCcw })],\n ],\n })),\n\n [R.APPLICATION_API_KEYS]: resourceUIBehavior(appApiKeysFactory, ApiKeyApplicationSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: Key,\n layout: {\n refs: {\n sections: ['overview', 'lifecycle'],\n },\n // Settings-page chrome (Settings Hub → Administration): label-left / value-right rows on read and on the\n // form — a credential is configured, not written — and bare values on a card.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.HIDDEN, edit: EditChromeMode.SETTINGS_ROW },\n // The identity line: the key's name (the page title) and its status beside it. Neither is repeated below.\n header: () => (\n <div className=\"flex min-w-0 flex-wrap items-center gap-field\">\n <ResourceHeaderTitle />\n <DisplayField name=\"status\" hideLabel hideDescription className=\"w-auto\" />\n </div>\n ),\n display: () => (\n <DisplayLayout>\n {/* Name and status are the header's. `scope` is not laid out at all: on this screen it is always\n \"application\" (the schema pins it to that literal), so a row for it said nothing. The card has no\n heading, because \"Overview\" over the first group named the page rather than a part of it. */}\n {/* What the key is and what it may do, in one card: an \"Access\" section held `roles` alone, a heading\n over one row. */}\n <Section name=\"overview\" appearance={SectionMode.CARD} hideTitle hideDescription>\n <DisplayField name=\"keyPrefix\" />\n <DisplayField name=\"description\" />\n <DisplayField name=\"roles\" />\n </Section>\n <Section name=\"lifecycle\" appearance={SectionMode.CARD} hideDescription>\n <DisplayField name=\"expiresAt\" />\n <DisplayField name=\"lastUsedAt\" />\n <DisplayField name=\"createdAt\" />\n {/* While the previous secret still authenticates after a rotation: its prefix, and until when. */}\n <ApiKeyRotationWindowRows />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"name\" />\n <SummaryMeta>\n <DisplayField name=\"status\" />\n <DisplayField name=\"keyPrefix\" />\n <DisplayField name=\"expiresAt\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n // One flat form. The name first, because it is what the key is called everywhere; the description as a\n // paragraph. Headings over two or three fields of one short form separated nothing.\n edit: () => (\n <FormLayout>\n <FormField name=\"name\" autoFocus />\n <FormField name=\"description\" />\n <FormField name=\"status\" />\n <FormField name=\"expiresAt\" />\n <FormField name=\"roles\" />\n </FormLayout>\n ),\n },\n fields: {\n // The badge's colour carries the state; the state's description is a form hint, not a line under every\n // badge on a list.\n status: schemaShape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n edit: { showDescription: true },\n values: {\n [ApiKeyStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS },\n [ApiKeyStatus.INACTIVE]: { color: BadgeSemanticVariant.SECONDARY },\n [ApiKeyStatus.EXPIRED]: { color: BadgeSemanticVariant.WARNING },\n },\n }),\n description: schemaShape.description.stringUI({\n display: { hideWhenEmpty: true },\n edit: { editMode: StringEditMode.TEXTAREA },\n }),\n // A key with no expiry never expires, and one never used has no last use: an empty row says nothing.\n // On a card the expiry keeps its label — a bare date beside a name and a status could be any of the key's\n // dates.\n expiresAt: schemaShape.expiresAt.dateUI({\n display: { hideWhenEmpty: true },\n summaryOverride: { chromeMode: DisplayChromeMode.INLINE },\n }),\n lastUsedAt: schemaShape.lastUsedAt.dateUI({ display: { hideWhenEmpty: true } }),\n // The rotation window, rendered only while the previous secret still authenticates (`ApiKeyRotationWindowRows`).\n // The prefix row says what an empty end date means — after a regenerate the old secret has none and keeps\n // working — so it carries its description; the end-date row hides itself when there is no date.\n previousKeyPrefix: schemaShape.previousKeyPrefix.stringUI({ display: { hideWhenEmpty: true, showDescription: true } }),\n previousKeyInvalidationDate: schemaShape.previousKeyInvalidationDate.dateUI({ display: { hideWhenEmpty: true } }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.name,\n views: [\n [Op.READ, notAddressable()],\n [Op.LIST, notAddressable()],\n [Op.SEARCH, notAddressable()],\n [Op.CREATE, notAddressable()],\n [AppApiKeys_Operations.ROTATE, notAddressable({ iconOverride: RotateCw, ...ROW_VERB_ON_RESOURCE_WITHOUT_UPDATE })],\n [AppApiKeys_Operations.REGENERATE, notAddressable({ iconOverride: RefreshCw, ...ROW_VERB_ON_RESOURCE_WITHOUT_UPDATE })],\n [AppApiKeys_Operations.DEACTIVATE, notAddressable({ iconOverride: PowerOff, ...ROW_VERB_ON_RESOURCE_WITHOUT_UPDATE })],\n [AppApiKeys_Operations.REACTIVATE, notAddressable({ iconOverride: Power, ...ROW_VERB_ON_RESOURCE_WITHOUT_UPDATE })],\n [AppApiKeys_Operations.EXTEND_EXPIRY, notAddressable({ iconOverride: CalendarPlus, ...ROW_VERB_ON_RESOURCE_WITHOUT_UPDATE })],\n [AppApiKeys_Operations.USAGE_STATS, notAddressable({ iconOverride: ChartColumn })],\n ],\n })),\n\n /**\n * Application OAuth clients — the credential a machine presents to obtain a token.\n *\n * Shaped against the API-keys preset above on purpose: the resource's own specification calls\n * itself \"a FAITHFUL MIRROR of the api-keys resource\", and under client-credentials both\n * authenticate the SAME `APPLICATION_MACHINE` principal. An operator holding both screens is\n * looking at two credential TYPES for one identity, so making them look like siblings is the\n * honest rendering; giving them different shapes would suggest two different principals.\n *\n * Four sections rather than the api-keys three, because a client carries a concern a key does\n * not: `redirects` exists only for the authorization-code leg, and folding those URIs into\n * `access` would bury the one field whose exact value decides whether a sign-in round trip\n * lands. `EXTEND_EXPIRY` and `USAGE_STATS` are absent from the views for the reason the\n * specification gives — a client's validity is fixed at registration and no usage accounting is\n * recorded for clients, so naming either would name an operation this factory does not declare.\n *\n * The secret itself is never laid out. `hashedSecret` / `previousHashedSecret` are backend-only,\n * and `secretPrefix` is the part a human uses to recognise WHICH credential a log line names.\n */\n [R.OAUTH_CLIENTS_APPLICATION]: resourceUIBehavior(appOAuthClientsFactory, OAuthClientApplicationSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: KeyRound,\n layout: {\n refs: {\n sections: ['overview', 'access', 'redirects', 'lifecycle'],\n },\n // Settings-page chrome (Settings Hub → Administration): label-left / value-right rows on read and on the\n // form — a client is configured, not written — and bare values on a card.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.HIDDEN, edit: EditChromeMode.SETTINGS_ROW },\n // The identity line: the client's name (the page title) and its status beside it. Neither is repeated below.\n header: () => (\n <div className=\"flex min-w-0 flex-wrap items-center gap-field\">\n <ResourceHeaderTitle />\n <DisplayField name=\"status\" hideLabel hideDescription className=\"w-auto\" />\n </div>\n ),\n display: () => (\n <DisplayLayout>\n {/* Name and status are the header's, so the first card holds what remains of the client's identity and\n carries no heading — \"Overview\" over it named the page rather than a part of it. No section carries\n a description on read: they were prompts (\"Warn that these are matched exactly…\" belongs where the\n URIs are typed, not where they are read). */}\n <Section name=\"overview\" appearance={SectionMode.CARD} hideTitle hideDescription>\n <DisplayField name=\"secretPrefix\" />\n <DisplayField name=\"description\" />\n </Section>\n <Section name=\"access\" appearance={SectionMode.CARD} hideDescription>\n <DisplayField name=\"allowedGrants\" />\n <DisplayField name=\"allowedScopes\" />\n <DisplayField name=\"roles\" />\n <DisplayField name=\"tokenEndpointAuthMethod\" />\n <DisplayField name=\"requiresConsent\" />\n </Section>\n <Section name=\"redirects\" appearance={SectionMode.CARD} hideDescription>\n <DisplayField name=\"redirectUris\" />\n <DisplayField name=\"postLogoutRedirectUris\" />\n </Section>\n <Section name=\"lifecycle\" appearance={SectionMode.CARD} hideDescription>\n <DisplayField name=\"expiresAt\" />\n <DisplayField name=\"lastUsedAt\" />\n <DisplayField name=\"createdAt\" />\n </Section>\n </DisplayLayout>\n ),\n summary: () => (\n <SummaryLayout>\n <SummaryTitle name=\"name\" />\n <SummaryMeta>\n <DisplayField name=\"status\" />\n <DisplayField name=\"secretPrefix\" />\n <DisplayField name=\"expiresAt\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n edit: () => (\n <FormLayout>\n {/* The name first, focused: it is what the client is called on every screen and in every audit row. */}\n <Section name=\"overview\" appearance={SectionMode.CARD} hideTitle hideDescription>\n <FormField name=\"name\" autoFocus />\n <FormField name=\"description\" />\n <FormField name=\"expiresAt\" />\n </Section>\n <Section name=\"access\" hideDescription>\n <FormField name=\"allowedGrants\" />\n <FormField name=\"allowedScopes\" />\n <FormField name=\"roles\" />\n <FormField name=\"tokenEndpointAuthMethod\" />\n <FormField name=\"requiresConsent\" />\n </Section>\n {/* The one description the form keeps: that these URIs are matched EXACTLY is not something the field\n names say, and a trailing slash typed here is a failed sign-in later. */}\n <Section name=\"redirects\">\n <FormField name=\"redirectUris\" />\n <FormField name=\"postLogoutRedirectUris\" />\n </Section>\n </FormLayout>\n ),\n },\n fields: {\n // Same three states and the same colours as an API key, because they mean the same things.\n // EXPIRED is a WARNING rather than a DESTRUCTIVE: it is the end of a validity window, not a\n // failure, and it is the one state `reactivate` deliberately does NOT revive. The state's description\n // is a form hint; under every badge on a list it read \"Whether the client can obtain tokens…\" per row.\n status: schemaShape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n edit: { showDescription: true },\n values: {\n [OAuthClientStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS },\n [OAuthClientStatus.INACTIVE]: { color: BadgeSemanticVariant.SECONDARY },\n [OAuthClientStatus.EXPIRED]: { color: BadgeSemanticVariant.WARNING },\n },\n }),\n description: schemaShape.description.stringUI({\n display: { hideWhenEmpty: true },\n edit: { editMode: StringEditMode.TEXTAREA },\n }),\n // A client-credentials client has no sign-out redirect, a client with no expiry never expires, and one\n // never used has no last use: each empty row said nothing.\n postLogoutRedirectUris: schemaShape.postLogoutRedirectUris.arrayUI({ display: { hideWhenEmpty: true } }),\n // On a card the expiry keeps its label: a bare date beside a name and a status could be any of the\n // client's dates.\n expiresAt: schemaShape.expiresAt.dateUI({\n display: { hideWhenEmpty: true },\n summaryOverride: { chromeMode: DisplayChromeMode.INLINE },\n }),\n lastUsedAt: schemaShape.lastUsedAt.dateUI({ display: { hideWhenEmpty: true } }),\n },\n getFrontendResourceLabel: ({ currentObject }) => currentObject.name,\n views: [\n [Op.READ, notAddressable()],\n [Op.LIST, notAddressable()],\n [Op.SEARCH, notAddressable()],\n [Op.CREATE, notAddressable()],\n [AppOAuthClients_Operations.ROTATE, notAddressable({ iconOverride: RotateCw, ...ROW_VERB_ON_RESOURCE_WITHOUT_UPDATE })],\n [AppOAuthClients_Operations.REGENERATE, notAddressable({ iconOverride: RefreshCw, ...ROW_VERB_ON_RESOURCE_WITHOUT_UPDATE })],\n [AppOAuthClients_Operations.DEACTIVATE, notAddressable({ iconOverride: PowerOff, ...ROW_VERB_ON_RESOURCE_WITHOUT_UPDATE })],\n [AppOAuthClients_Operations.REACTIVATE, notAddressable({ iconOverride: Power, ...ROW_VERB_ON_RESOURCE_WITHOUT_UPDATE })],\n // Dispatched by the expiry sweep rather than by a person — headless, so it must carry no\n // view fields at all. An operator ends a client early with DEACTIVATE.\n [AppOAuthClients_Operations.EXPIRE, apiOnly()],\n ],\n })),\n\n /**\n * Application-wide access grants — the two-person rule, made visible.\n *\n * This is the record of an ELEVATION, not of a permission: one administrator requests a\n * time-bound window over an application-wide read, and a DIFFERENT administrator signs it.\n * Until this preset existed the mechanism ran with no surface at all, which is the worst shape\n * for a control of this kind — its entire justification is that the consequence becomes VISIBLE\n * rather than prevented, and nothing that cannot be read can make anything visible.\n *\n * Three sections, each answering one of the questions a reviewer actually asks:\n * `request` (who asked, and for what stated reason), `decision` (who signed, when, and why),\n * and `window` (how long it lasts, and which credential it admits). Merging decision into\n * request would put the requester and the approver in one block — the two identities the\n * control exists to keep apart.\n *\n * `justification` and `decisionReason` are laid out as first-class fields rather than metadata.\n * A grant whose reason is unreadable is a grant nobody can review, and the reason is the only\n * part of the row a human wrote.\n */\n [R.APPLICATION_ACCESS_GRANTS]: resourceUIBehavior(appAccessGrantsFactory, ApplicationAccessGrantSchema, ({ schema, schemaShape, opsVariantResolver }) => ({\n icon: ShieldCheck,\n // A request is named by the instant it was made, in the viewer's date-time format. It was named by the\n // requesting operator's user id, which put a raw `6aa25215267f7e7758312323` at the top of the page and as the\n // title of every card: this callback is synchronous over the record, and the record carries the operator's id\n // alone, never their name. WHO asked is still the first thing the body and the card show, resolved to the\n // person by the foreign-key renderer (see `operatorUserId` below). `createdAt` is optional on the row, so a\n // row without it falls back to its id rather than to nothing.\n //\n // (History: this preset once declared no label strategy at all while the specification documented\n // `frontend.label`, and that pair THROWS at module scope in `resourceSpecificationFromFrontendConfiguration`,\n // taking the whole `@wildo-ai/saas-specifications` package down. Keep the two declared together.)\n getFrontendResourceLabel: ({ currentObject, formatDateTime }) =>\n currentObject.createdAt ? formatDateTime(currentObject.createdAt) : currentObject._id,\n layout: {\n refs: {\n sections: ['request', 'decision', 'window'],\n },\n // Settings rows on the read page, bare values on a card. There is no form: every state change is a named verb.\n defaultChromeMode: { display: DisplayChromeMode.SETTINGS_ROW, summary: DisplayChromeMode.HIDDEN, edit: EditChromeMode.SETTINGS_ROW },\n // The identity line: when it was asked (the title) and where it stands. Neither is repeated below.\n header: () => (\n <div className=\"flex min-w-0 flex-wrap items-center gap-field\">\n <ResourceHeaderTitle />\n <DisplayField name=\"status\" hideLabel hideDescription className=\"w-auto\" />\n </div>\n ),\n // The three headings stay — they are what keeps the requester and the approver in separate blocks, which is\n // the distinction this control exists for. Their descriptions do not: each explained the control to a\n // reader who is looking at one of its records.\n display: () => (\n <DisplayLayout>\n <Section name=\"request\" appearance={SectionMode.CARD} hideDescription>\n <DisplayField name=\"operatorUserId\" />\n <DisplayField name=\"justification\" />\n </Section>\n <Section name=\"decision\" appearance={SectionMode.CARD} hideDescription>\n <DisplayField name=\"approvedByUserId\" />\n <DisplayField name=\"approvedAt\" />\n <DisplayField name=\"decisionReason\" />\n </Section>\n <Section name=\"window\" appearance={SectionMode.CARD} hideDescription>\n <DisplayField name=\"expiresAt\" />\n <DisplayField name=\"grantedMachineCredential\" />\n </Section>\n </DisplayLayout>\n ),\n // The instant is the card's title (AUTO); below it, who asked, where it stands, and when the window ends.\n summary: () => (\n <SummaryLayout>\n <SummaryMeta>\n <DisplayField name=\"operatorUserId\" />\n <DisplayField name=\"status\" />\n <DisplayField name=\"expiresAt\" />\n </SummaryMeta>\n </SummaryLayout>\n ),\n },\n fields: {\n // PENDING_APPROVAL is a WARNING rather than a neutral secondary: an unsigned request is the\n // state a reviewer must act on, and the one state where the window does not yet exist.\n // DENIED and REVOKED are both DESTRUCTIVE because both are a refusal; EXPIRED is not — it is\n // the control working, a window closing on its own. The state's description (\"Active status requires a\n // valid, unexpired access window.\") read under every badge on the queue, so it is not shown.\n status: schemaShape.status.enumUI({\n display: { displayMode: EnumDisplayMode.BADGE },\n values: {\n [PlatformAccessGrantStatus.PENDING_APPROVAL]: { color: BadgeSemanticVariant.WARNING },\n [PlatformAccessGrantStatus.ACTIVE]: { color: BadgeSemanticVariant.SUCCESS },\n [PlatformAccessGrantStatus.DENIED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n [PlatformAccessGrantStatus.REVOKED]: { color: BadgeSemanticVariant.DESTRUCTIVE },\n [PlatformAccessGrantStatus.EXPIRED]: { color: BadgeSemanticVariant.SECONDARY },\n },\n }),\n // Both identities resolve to the PERSON, never an id: a reviewer is asking \"who\", and a hex id answers\n // nobody.\n operatorUserId: schemaShape.operatorUserId.foreignKeyUI({ display: { mode: ForeignKeyDisplayMode.LABEL } }),\n // Empty until somebody signs, and on a PENDING request that emptiness is the answer (\"not signed yet\"), so\n // the approver row stays; the reason is optional even on a decision, and hides.\n approvedByUserId: schemaShape.approvedByUserId.foreignKeyUI({ display: { mode: ForeignKeyDisplayMode.LABEL } }),\n decisionReason: schemaShape.decisionReason.stringUI({ display: { hideWhenEmpty: true } }),\n // Present only when the grant was requested for a machine credential.\n grantedMachineCredential: schemaShape.grantedMachineCredential.objectUI({ display: { hideWhenEmpty: true } }),\n // On a card the expiry keeps its label: a bare date beside a name and a status could be the request's.\n expiresAt: schemaShape.expiresAt.dateUI({ summaryOverride: { chromeMode: DisplayChromeMode.INLINE } }),\n },\n views: [\n [Op.READ, notAddressable()],\n // The review queue. `status` is the axis a reviewer sorts by — an unsigned request is the\n // only row that needs anybody — so it is the quick filter.\n [Op.LIST, addressable({\n collectionDisplayConfig: {\n quickFilterField: 'status',\n temporalGroupField: 'createdAt',\n },\n })],\n [ApplicationAccessGrants_Operations.REQUEST_ACCESS, notAddressable({ iconOverride: Hourglass })],\n [ApplicationAccessGrants_Operations.APPROVE, notAddressable({ iconOverride: ShieldCheck })],\n [ApplicationAccessGrants_Operations.DENY, notAddressable({ iconOverride: ShieldX })],\n [ApplicationAccessGrants_Operations.REVOKE, notAddressable({ iconOverride: Ban })],\n // Dispatched by the credential-expiry sweep and by nothing else, so it is headless.\n [ApplicationAccessGrants_Operations.EXPIRE, apiOnly()],\n ],\n })),\n };\n}\n\nexport const applicationMainPresets = buildApplicationMainPresets();\nexport const applicationAdminPresets = buildApplicationAdminPresets(applicationMainPresets);\n\nexport const applicationMainApplicationResourceUIBehavior = applicationMainPresets[R.APPLICATION]!;\nexport const applicationAdminApplicationResourceUIBehavior = applicationAdminPresets[R.APPLICATION]!;\nexport const applicationVersionsAdminResourceUIBehavior = applicationAdminPresets[R.APPLICATION_VERSIONS]!;\nexport const applicationMetadataAdminResourceUIBehavior = applicationAdminPresets[R.APPLICATION_METADATA]!;\nexport const applicationFeaturesAdminResourceUIBehavior = applicationAdminPresets[R.APPLICATION_FEATURES]!;\nexport const appApiKeysApplicationAdminResourceUIBehavior = applicationAdminPresets[R.APPLICATION_API_KEYS]!;\nexport const appOAuthClientsApplicationAdminResourceUIBehavior = applicationAdminPresets[R.OAUTH_CLIENTS_APPLICATION]!;\nexport const applicationAccessGrantsAdminResourceUIBehavior = applicationAdminPresets[R.APPLICATION_ACCESS_GRANTS]!;\n"]}
@@ -12,9 +12,10 @@
12
12
  * **Admin:** Full catalog (PRODUCTS, PRICES, REFERRALS, PROMOTIONS with LIST+READ+DEACTIVATE),
13
13
  * plus admin variants of all polymorphic resources.
14
14
  *
15
- * Layout JSX is inline. `layout.defaultChromeMode.edit` matches the dominant edit `<Section>`
16
- * chrome (`SETTINGS_ROW`); only override `chromeMode` on a section when it differs. Admin
17
- * deltas use `resourceUIBehaviorFrom` with `({ base })` when `views` are a subset of main.
15
+ * Layout JSX is inline. The catalogue resources (PRODUCTS, PRICES, REFERRALS, PROMOTIONS) follow the
16
+ * display pass: the header owns identity and state (`layout.header`), read pages are settings rows with
17
+ * no section descriptions, cards show bare values (`summary: HIDDEN`), and optional rows hide when
18
+ * empty. Admin deltas use `resourceUIBehaviorFrom` with `({ base })` when `views` are a subset of main.
18
19
  *
19
20
  * All three template types (`edit`, `display`, `summary`) are `() => { ... }` arrow functions
20
21
  * so they can call context hooks. Edit templates use `useFormTemplateContext()` for operation
@@ -1 +1 @@
1
- {"version":3,"file":"billing.resource-presets.d.ts","sourceRoot":"","sources":["../../../../../src/config/resources/billing.resource-presets.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AA4HtE,wBAAgB,uBAAuB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAuyBrE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAsEvG;AAED,eAAO,MAAM,kBAAkB,6BAA4B,CAAC;AAC5D,eAAO,MAAM,mBAAmB,6BAA+C,CAAC;AAEhF,eAAO,MAAM,8BAA8B,gGAAkC,CAAC;AAC9E,eAAO,MAAM,+BAA+B,gGAAmC,CAAC;AAChF,eAAO,MAAM,4BAA4B,gGAAgC,CAAC;AAC1E,eAAO,MAAM,6BAA6B,gGAAiC,CAAC;AAC5E,eAAO,MAAM,+BAA+B,gGAAmC,CAAC;AAChF,eAAO,MAAM,gCAAgC,gGAAoC,CAAC;AAClF,eAAO,MAAM,gCAAgC,gGAAoC,CAAC;AAClF,eAAO,MAAM,iCAAiC,gGAAqC,CAAC"}
1
+ {"version":3,"file":"billing.resource-presets.d.ts","sourceRoot":"","sources":["../../../../../src/config/resources/billing.resource-presets.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAkItE,wBAAgB,uBAAuB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAq8BrE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAwEvG;AAED,eAAO,MAAM,kBAAkB,6BAA4B,CAAC;AAC5D,eAAO,MAAM,mBAAmB,6BAA+C,CAAC;AAEhF,eAAO,MAAM,8BAA8B,gGAAkC,CAAC;AAC9E,eAAO,MAAM,+BAA+B,gGAAmC,CAAC;AAChF,eAAO,MAAM,4BAA4B,gGAAgC,CAAC;AAC1E,eAAO,MAAM,6BAA6B,gGAAiC,CAAC;AAC5E,eAAO,MAAM,+BAA+B,gGAAmC,CAAC;AAChF,eAAO,MAAM,gCAAgC,gGAAoC,CAAC;AAClF,eAAO,MAAM,gCAAgC,gGAAoC,CAAC;AAClF,eAAO,MAAM,iCAAiC,gGAAqC,CAAC"}