@flamingo-stack/openframe-frontend-core 0.0.850 → 0.0.852

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 (154) hide show
  1. package/dist/build/export-map.json +1 -1
  2. package/dist/{case-study-card-X2HKPKT7.cjs → case-study-card-WP5Z234Q.cjs} +5 -5
  3. package/dist/chat-protocol/events.d.ts +4 -1
  4. package/dist/chat-protocol/events.d.ts.map +1 -1
  5. package/dist/chat-protocol/index.cjs +90 -40
  6. package/dist/chat-protocol/nats-decoder.d.ts.map +1 -1
  7. package/dist/chat-protocol/nats-decoder.js +5 -1
  8. package/dist/chat-protocol/policy-review.d.ts +18 -0
  9. package/dist/chat-protocol/policy-review.d.ts.map +1 -0
  10. package/dist/chat-protocol/policy-review.js +55 -0
  11. package/dist/{chunk-BU2PSRAS.cjs → chunk-2W22LY3W.cjs} +11 -11
  12. package/dist/{chunk-ZDSC3GFX.cjs → chunk-3SJVF3HW.cjs} +6 -6
  13. package/dist/{chunk-GAYLAA3L.cjs → chunk-3ZQESOPJ.cjs} +79 -79
  14. package/dist/{chunk-IPGGSFR7.cjs → chunk-477P6AQH.cjs} +6 -6
  15. package/dist/{chunk-5CBI2ZYV.cjs → chunk-5RMBLOJ5.cjs} +12 -12
  16. package/dist/{chunk-36DUCHI7.cjs → chunk-6GWRPW6B.cjs} +4 -4
  17. package/dist/{chunk-SOSIXRQ3.cjs → chunk-AZEO7HBB.cjs} +2 -2
  18. package/dist/{chunk-FRG724DU.cjs → chunk-BNHTBLAG.cjs} +17 -17
  19. package/dist/{chunk-VRWBJL7B.cjs → chunk-CHGIACIP.cjs} +91 -91
  20. package/dist/{chunk-CAGNWDVJ.cjs → chunk-COJG2ATY.cjs} +45 -45
  21. package/dist/{chunk-XKOL5CNU.cjs → chunk-D3H6AI7O.cjs} +956 -1077
  22. package/dist/{chunk-ALRYVZ3E.cjs → chunk-DLTPSP5F.cjs} +2 -2
  23. package/dist/{chunk-3W4ASAXN.cjs → chunk-EIACEY2L.cjs} +4 -4
  24. package/dist/{chunk-TIVPOVIM.cjs → chunk-ETZFBB7O.cjs} +2 -2
  25. package/dist/{chunk-GRCOEICK.cjs → chunk-G7GF4PWA.cjs} +6 -6
  26. package/dist/{chunk-7ICHJVAT.cjs → chunk-GEZ3UXCA.cjs} +25 -25
  27. package/dist/chunk-GGUFVIJ6.cjs +28 -0
  28. package/dist/{chunk-ZGEWT3SF.cjs → chunk-HXURNKXI.cjs} +3 -3
  29. package/dist/{chunk-TX4NTH22.cjs → chunk-IC4IJJB2.cjs} +102 -102
  30. package/dist/{chunk-BUEEQD3G.cjs → chunk-IGVAPIEW.cjs} +2 -2
  31. package/dist/{chunk-IG6ROHPS.cjs → chunk-IO6NN3SL.cjs} +54 -54
  32. package/dist/{chunk-5PIR77V5.cjs → chunk-KHOB3TES.cjs} +4 -4
  33. package/dist/{chunk-JQCQCE6U.cjs → chunk-KKFDRCQF.cjs} +2 -2
  34. package/dist/{chunk-6AJYGXXS.cjs → chunk-KNN2GCMW.cjs} +21 -21
  35. package/dist/{chunk-YJZ7R3W5.cjs → chunk-KXFIYO4O.cjs} +8 -8
  36. package/dist/{chunk-FXLROQUT.cjs → chunk-LFEURIZN.cjs} +590 -607
  37. package/dist/{chunk-JWIITCVB.cjs → chunk-MFDRCTM3.cjs} +47 -47
  38. package/dist/{chunk-OHHDX3Z4.cjs → chunk-MXY2OGEV.cjs} +42 -42
  39. package/dist/{chunk-533QK4R6.cjs → chunk-NMWLXHFH.cjs} +130 -130
  40. package/dist/{chunk-MDLT6D46.cjs → chunk-O3EKOXFZ.cjs} +20 -20
  41. package/dist/{chunk-HLJXCOMA.cjs → chunk-OH5TXFRR.cjs} +4 -4
  42. package/dist/{chunk-SA2NNWIJ.cjs → chunk-P63CRPWI.cjs} +19 -64
  43. package/dist/{chunk-R5JPZ6TY.cjs → chunk-QOW2GP3V.cjs} +21 -21
  44. package/dist/{chunk-JBTH3O2C.cjs → chunk-SSKMGH5O.cjs} +4 -4
  45. package/dist/{chunk-4YBS4HIO.cjs → chunk-U767P4JU.cjs} +455 -38
  46. package/dist/{chunk-FNQWL4W4.cjs → chunk-UO2EJGRJ.cjs} +45 -45
  47. package/dist/{chunk-IHY7E4EX.cjs → chunk-USPUZO53.cjs} +4 -4
  48. package/dist/{chunk-IN3LA2FU.cjs → chunk-UV45EPXN.cjs} +2 -2
  49. package/dist/{chunk-S3QXLD4X.cjs → chunk-VCFQHPOO.cjs} +37 -3
  50. package/dist/{chunk-2QZUTNL3.cjs → chunk-VUHHLRAY.cjs} +92 -92
  51. package/dist/{chunk-QJER2ZNA.cjs → chunk-WFAZMASF.cjs} +3 -3
  52. package/dist/{chunk-LGYPCUHO.cjs → chunk-X3WIOMEE.cjs} +36 -36
  53. package/dist/{cloud-tenants-TVB3DT3J.cjs → cloud-tenants-O33HCUYB.cjs} +50 -50
  54. package/dist/components/case-studies/index.cjs +69 -69
  55. package/dist/components/chat/approval-batch-message.d.ts +5 -0
  56. package/dist/components/chat/approval-batch-message.d.ts.map +1 -1
  57. package/dist/components/chat/approval-batch-message.js +36 -10
  58. package/dist/components/chat/index.cjs +45 -45
  59. package/dist/components/chat/policy-review.d.ts +27 -0
  60. package/dist/components/chat/policy-review.d.ts.map +1 -0
  61. package/dist/components/chat/policy-review.js +67 -0
  62. package/dist/components/chat/stream/message-mutations.d.ts.map +1 -1
  63. package/dist/components/chat/stream/message-mutations.js +4 -1
  64. package/dist/components/chat/tool-execution-display.d.ts.map +1 -1
  65. package/dist/components/chat/tool-execution-display.js +16 -5
  66. package/dist/components/chat/types/message.types.d.ts +40 -2
  67. package/dist/components/chat/types/message.types.d.ts.map +1 -1
  68. package/dist/components/chat/utils/extract-incomplete-message-state.d.ts.map +1 -1
  69. package/dist/components/chat/utils/extract-incomplete-message-state.js +2 -0
  70. package/dist/components/chat/utils/message-segment-accumulator.d.ts.map +1 -1
  71. package/dist/components/chat/utils/message-segment-accumulator.js +3 -0
  72. package/dist/components/chat/utils/process-historical-messages.d.ts +2 -2
  73. package/dist/components/chat/utils/process-historical-messages.d.ts.map +1 -1
  74. package/dist/components/chat/utils/process-historical-messages.js +7 -1
  75. package/dist/components/contact/index.cjs +51 -51
  76. package/dist/components/docs/index.cjs +54 -54
  77. package/dist/components/embeds/index.cjs +51 -51
  78. package/dist/components/faq/index.cjs +52 -52
  79. package/dist/components/features/approval-level.d.ts +6 -12
  80. package/dist/components/features/approval-level.d.ts.map +1 -1
  81. package/dist/components/features/approval-level.js +45 -55
  82. package/dist/components/features/index.cjs +55 -54
  83. package/dist/components/features/notifications/approval-request-notification-tile.d.ts.map +1 -1
  84. package/dist/components/features/notifications/approval-request-notification-tile.js +71 -48
  85. package/dist/components/features/notifications/types.d.ts +2 -0
  86. package/dist/components/features/notifications/types.d.ts.map +1 -1
  87. package/dist/components/features/notifications/types.js +3 -1
  88. package/dist/components/features/policy-configuration-panel.d.ts.map +1 -1
  89. package/dist/components/features/policy-configuration-panel.js +75 -64
  90. package/dist/components/help-center-pages/index.cjs +156 -156
  91. package/dist/components/icons-v2-generated/brand-logos/index.d.ts +1 -0
  92. package/dist/components/icons-v2-generated/brand-logos/index.d.ts.map +1 -1
  93. package/dist/components/icons-v2-generated/brand-logos/index.js +2 -0
  94. package/dist/components/icons-v2-generated/brand-logos/stripe-icon.d.ts +8 -0
  95. package/dist/components/icons-v2-generated/brand-logos/stripe-icon.d.ts.map +1 -0
  96. package/dist/components/icons-v2-generated/brand-logos/stripe-icon.js +24 -0
  97. package/dist/components/icons-v2-generated/icon-loaders.d.ts.map +1 -1
  98. package/dist/components/icons-v2-generated/icon-loaders.js +1 -0
  99. package/dist/components/icons-v2-generated/icon-names.js +1 -1
  100. package/dist/components/icons-v2-generated/index.cjs +33 -29
  101. package/dist/components/index.cjs +122 -123
  102. package/dist/components/meeting-scheduler/index.cjs +113 -112
  103. package/dist/components/navigation/index.cjs +54 -54
  104. package/dist/components/onboarding-guides/index.cjs +53 -53
  105. package/dist/components/product-demo/index.cjs +61 -61
  106. package/dist/components/related-content/index.cjs +9 -9
  107. package/dist/components/tickets/index.cjs +57 -57
  108. package/dist/components/ui/file-manager/index.cjs +8 -9
  109. package/dist/components/ui/index.cjs +55 -56
  110. package/dist/components/ui/radio-group.d.ts.map +1 -1
  111. package/dist/components/ui/radio-group.js +8 -2
  112. package/dist/components/ui/tab-selector.d.ts +7 -1
  113. package/dist/components/ui/tab-selector.d.ts.map +1 -1
  114. package/dist/components/ui/tab-selector.js +22 -3
  115. package/dist/{devices-NGCTSXIU.cjs → devices-2RGGMC2B.cjs} +51 -51
  116. package/dist/{embeddable-chat-322NDFP5.cjs → embeddable-chat-SJEEJI4N.cjs} +122 -122
  117. package/dist/hooks/index.cjs +9 -9
  118. package/dist/{icon-loaders-SUPEKMBJ.cjs → icon-loaders-CTH6E7OP.cjs} +1 -0
  119. package/dist/index.cjs +61 -62
  120. package/dist/{knowledge-75PO5DYS.cjs → knowledge-5TJIXVMD.cjs} +52 -52
  121. package/dist/{logs-PZESOAIG.cjs → logs-HGQOTRKZ.cjs} +57 -57
  122. package/dist/{policies-6XNMBFWO.cjs → policies-GWFSLVSM.cjs} +54 -54
  123. package/dist/{remote-session-Q2FIBCGT.cjs → remote-session-SG44CNOK.cjs} +36 -36
  124. package/dist/{scripts-B3JW6TPF.cjs → scripts-PGJNAZF4.cjs} +57 -57
  125. package/dist/{software-update-NWP542J7.cjs → software-update-KKLSYHDI.cjs} +54 -54
  126. package/dist/stripe-icon-YKVABTNI.cjs +7 -0
  127. package/dist/{tickets-board-7FLGQEHF.cjs → tickets-board-SQY2Y6QV.cjs} +39 -38
  128. package/dist/utils/index.cjs +32 -1
  129. package/package.json +1 -1
  130. package/src/chat-protocol/events.ts +4 -1
  131. package/src/chat-protocol/nats-decoder.ts +4 -0
  132. package/src/chat-protocol/policy-review.ts +71 -0
  133. package/src/components/chat/approval-batch-message.tsx +47 -10
  134. package/src/components/chat/policy-review.tsx +90 -0
  135. package/src/components/chat/stream/message-mutations.ts +4 -0
  136. package/src/components/chat/tool-execution-display.tsx +23 -4
  137. package/src/components/chat/types/message.types.ts +42 -2
  138. package/src/components/chat/utils/extract-incomplete-message-state.ts +2 -0
  139. package/src/components/chat/utils/message-segment-accumulator.ts +3 -0
  140. package/src/components/chat/utils/process-historical-messages.ts +14 -3
  141. package/src/components/features/approval-level.tsx +74 -78
  142. package/src/components/features/notifications/approval-request-notification-tile.tsx +75 -50
  143. package/src/components/features/notifications/types.ts +4 -0
  144. package/src/components/features/policy-configuration-panel.tsx +100 -83
  145. package/src/components/icons-v2/icon-colors.json +3 -0
  146. package/src/components/icons-v2-generated/brand-logos/index.ts +1 -0
  147. package/src/components/icons-v2-generated/brand-logos/stripe-icon.tsx +27 -0
  148. package/src/components/icons-v2-generated/icon-loaders.ts +1 -0
  149. package/src/components/icons-v2-generated/icon-names.ts +1 -1
  150. package/src/components/ui/radio-group.tsx +20 -2
  151. package/src/components/ui/tab-selector.tsx +26 -3
  152. package/src/styles/ods-colors.css +1 -0
  153. package/dist/chunk-N3MBQRCQ.cjs +0 -41
  154. /package/dist/{chunk-46547WQW.cjs → chunk-7HH4Y27U.cjs} +0 -0
@@ -60,6 +60,8 @@ export interface ApprovalToolCallMeta {
60
60
  requiresApproval?: boolean;
61
61
  approvalType?: string | null;
62
62
  toolCallArguments?: Record<string, unknown> | null;
63
+ /** The guardrail review, as the wire sends it: normalized into the batch by `approvalMetaToBatchData`. */
64
+ policyReview?: unknown;
63
65
  }
64
66
  /** Approval payload stashed in `notification.meta` for an approval-request notification. */
65
67
  export interface ApprovalNotificationMeta {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/features/notifications/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/features/notifications/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ import { policyReviewField } from "../../../chat-protocol/policy-review.js";
2
3
  import { APPROVAL_STATUS } from "../../chat/types/index.js";
3
4
  const TICKET_APPROVAL_REQUEST_TYPE = "TICKET_APPROVAL_REQUEST";
4
5
  const MINGO_APPROVAL_REQUEST_TYPE = "MINGO_APPROVAL_REQUEST";
@@ -52,7 +53,8 @@ function approvalMetaToBatchData(approval) {
52
53
  toolType: tc.toolType ?? void 0,
53
54
  requiresApproval: tc.requiresApproval ?? true,
54
55
  approvalType: tc.approvalType ?? null,
55
- toolCallArguments: tc.toolCallArguments ?? null
56
+ toolCallArguments: tc.toolCallArguments ?? null,
57
+ ...policyReviewField(tc.policyReview)
56
58
  }))
57
59
  };
58
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"policy-configuration-panel.d.ts","sourceRoot":"","sources":["../../../src/components/features/policy-configuration-panel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAIV,6BAA6B,EAC9B,MAAM,yBAAyB,CAAC;AAejC,yGAAyG;AACzG,eAAO,MAAM,8CAA8C,IAAI,CAAC;AAoRhE,eAAO,MAAM,wBAAwB,EAAE,EAAE,CAAC,6BAA6B,CA+DtE,CAAC"}
1
+ {"version":3,"file":"policy-configuration-panel.d.ts","sourceRoot":"","sources":["../../../src/components/features/policy-configuration-panel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,KAAK,EAIV,6BAA6B,EAC9B,MAAM,yBAAyB,CAAC;AAmBjC,yGAAyG;AACzG,eAAO,MAAM,8CAA8C,IAAI,CAAC;AAkShE,eAAO,MAAM,wBAAwB,EAAE,EAAE,CAAC,6BAA6B,CA+DtE,CAAC"}
@@ -1,18 +1,22 @@
1
1
  "use client";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
- import { ChevronDown, Shield } from "lucide-react";
4
3
  import { useState } from "react";
5
4
  import { cn } from "../../utils/cn.js";
6
5
  import { useCollapsible } from "../chat/hooks/use-collapsible.js";
6
+ import { Chevron02DownIcon, ShieldIcon } from "../icons-v2-generated/index.js";
7
7
  import { TextLineSkeleton } from "../loading/unified-skeleton.js";
8
8
  import { ToolIcon } from "../tool-icon.js";
9
9
  import { Button } from "../ui/button/index.js";
10
- import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "../ui/dropdown-menu.js";
10
+ import {
11
+ DropdownMenu,
12
+ DropdownMenuContent,
13
+ DropdownMenuItem,
14
+ DropdownMenuSeparator,
15
+ DropdownMenuTrigger
16
+ } from "../ui/dropdown-menu.js";
11
17
  import { loadingItemProps, useLoadingScope } from "../ui/loading-scope.js";
12
- import { APPROVAL_LEVEL_META, APPROVAL_LEVELS } from "./approval-level.js";
13
- const approvalLevelOptions = APPROVAL_LEVELS.map((value) => ({ value, label: APPROVAL_LEVEL_META[value].label }));
14
- const POLICY_LEVEL_WIDTH = "w-[180px]";
15
- const CATEGORY_LEVEL_WIDTH = "w-[256px]";
18
+ import { APPROVAL_LEVEL_META, APPROVAL_LEVELS, ApprovalLevelView } from "./approval-level.js";
19
+ const CATEGORY_LEVEL_WIDTH = "w-[296px]";
16
20
  const POLICY_CONFIGURATION_PANEL_SKELETON_CATEGORIES = 4;
17
21
  const CATEGORY_HEADER_CLASS = "flex items-center gap-[var(--spacing-system-m)] border-t border-ods-border bg-ods-card py-[var(--spacing-system-s)] pl-[var(--spacing-system-m)] pr-[var(--spacing-system-xsf)] first:border-t-0";
18
22
  const ICON_TILE_SIZE_CLASS = "h-8 w-8 shrink-0 rounded-md";
@@ -22,56 +26,59 @@ const CATEGORY_LEVEL_COLUMN_CLASS = cn(
22
26
  "hidden shrink-0 px-[var(--spacing-system-sf)] py-[var(--spacing-system-xsf)] content-md:block",
23
27
  CATEGORY_LEVEL_WIDTH
24
28
  );
25
- const CHEVRON_CLASS = "h-6 w-6 text-ods-text-primary transition-transform duration-300";
26
- const getApprovalLevelLabel = (level) => APPROVAL_LEVEL_META[level]?.label ?? level;
29
+ const CHEVRON_CLASS = "!h-6 !w-6 text-ods-text-primary transition-transform duration-300";
30
+ const LevelOption = ({ level }) => {
31
+ const { label, Icon, toneClassName } = APPROVAL_LEVEL_META[level];
32
+ return /* @__PURE__ */ jsxs("span", { className: "inline-flex min-w-0 items-center gap-[var(--spacing-system-xsf)]", children: [
33
+ /* @__PURE__ */ jsx(Icon, { size: 24, className: cn("shrink-0", toneClassName), "aria-hidden": true }),
34
+ /* @__PURE__ */ jsx("span", { className: "truncate", children: label })
35
+ ] });
36
+ };
37
+ const LEVEL_MENU_ITEM_CLASS = "p-[var(--spacing-system-sf)] text-h4 [&_svg]:size-4 md:[&_svg]:size-6";
27
38
  const ApprovalLevelDropdown = ({ value, onChange, allowClear = false, triggerClassName, contentClassName, disabled }) => /* @__PURE__ */ jsxs(DropdownMenu, { children: [
28
39
  /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx(
29
40
  Button,
30
41
  {
31
42
  variant: "outline",
32
43
  disabled,
33
- rightIcon: /* @__PURE__ */ jsx(ChevronDown, { className: "h-6 w-6 text-ods-text-secondary" }),
44
+ rightIcon: /* @__PURE__ */ jsx(Chevron02DownIcon, { className: "!h-6 !w-6 text-ods-text-secondary" }),
34
45
  className: cn(
35
- "flex h-auto items-center justify-between gap-[var(--spacing-system-xsf)] rounded-md border border-ods-border bg-ods-card !px-[var(--spacing-system-xsf)] py-[var(--spacing-system-xsf)] transition-colors !text-h6 hover:bg-ods-bg-hover",
46
+ "flex h-auto items-center justify-between gap-[var(--spacing-system-xsf)] rounded-md border border-ods-border bg-ods-card !p-[var(--spacing-system-sf)] transition-colors !text-h4 hover:bg-ods-bg-hover",
36
47
  value ? "text-ods-text-primary" : "text-ods-text-secondary",
37
48
  triggerClassName
38
49
  ),
39
- children: value ? getApprovalLevelLabel(value) : "Set Global Permission"
50
+ children: value ? /* @__PURE__ */ jsx(LevelOption, { level: value }) : "Set Global Permission"
40
51
  }
41
52
  ) }),
42
53
  /* @__PURE__ */ jsxs(DropdownMenuContent, { align: "end", className: contentClassName, children: [
43
- allowClear && /* @__PURE__ */ jsx(DropdownMenuItem, { onClick: () => onChange(void 0), className: "text-h6", children: "Clear Global Permission" }),
44
- approvalLevelOptions.map((option) => /* @__PURE__ */ jsx(DropdownMenuItem, { onClick: () => onChange(option.value), className: "text-h6", children: option.label }, option.value))
54
+ APPROVAL_LEVELS.map((level) => /* @__PURE__ */ jsx(DropdownMenuItem, { onClick: () => onChange(level), className: LEVEL_MENU_ITEM_CLASS, children: /* @__PURE__ */ jsx(LevelOption, { level }) }, level)),
55
+ allowClear && /* @__PURE__ */ jsxs(Fragment, { children: [
56
+ /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
57
+ /* @__PURE__ */ jsx(DropdownMenuItem, { onClick: () => onChange(void 0), className: LEVEL_MENU_ITEM_CLASS, children: "Clear Global Permission" })
58
+ ] })
45
59
  ] })
46
60
  ] });
47
61
  const PolicyRow = ({ policy, categoryId, editMode, onPermissionChange }) => {
48
- const handleChange = (level) => {
49
- if (level) onPermissionChange(categoryId, policy.id, level);
50
- };
62
+ const nameId = `policy-${categoryId}-${policy.id}`;
63
+ const level = policy.approvalLevel ? /* @__PURE__ */ jsx(
64
+ ApprovalLevelView,
65
+ {
66
+ value: policy.approvalLevel,
67
+ editable: editMode,
68
+ onChange: (next) => onPermissionChange(categoryId, policy.id, next),
69
+ "aria-labelledby": nameId
70
+ }
71
+ ) : null;
51
72
  return /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-[var(--spacing-system-m)] border-b border-ods-border bg-ods-bg px-[var(--spacing-system-m)] py-[var(--spacing-system-sf)] last:border-b-0 content-md:items-center", children: [
52
- /* @__PURE__ */ jsx("div", { className: ICON_TILE_CLASS, children: /* @__PURE__ */ jsx(ToolIcon, { toolType: policy.toolName, size: 16 }) }),
73
+ /* @__PURE__ */ jsx("div", { className: cn(ICON_TILE_CLASS, "text-ods-text-secondary", editMode && "hidden content-md:flex"), children: /* @__PURE__ */ jsx(ToolIcon, { toolType: policy.toolName, size: 16 }) }),
53
74
  /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [
54
- /* @__PURE__ */ jsx("p", { className: "truncate text-ods-text-primary text-h4", title: policy.name, children: policy.name }),
55
- /* @__PURE__ */ jsx("p", { className: "break-all text-ods-text-secondary text-h6", children: policy.commandPattern }),
56
- editMode ? /* @__PURE__ */ jsx("div", { className: "mt-[var(--spacing-system-xsf)] content-md:hidden", children: /* @__PURE__ */ jsx(
57
- ApprovalLevelDropdown,
58
- {
59
- value: policy.approvalLevel,
60
- onChange: handleChange,
61
- triggerClassName: "w-full",
62
- contentClassName: POLICY_LEVEL_WIDTH
63
- }
64
- ) }) : policy.approvalLevel ? /* @__PURE__ */ jsx("span", { className: "text-ods-text-primary text-h4 content-md:hidden", children: getApprovalLevelLabel(policy.approvalLevel) }) : null
75
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center gap-[var(--spacing-system-sf)]", children: [
76
+ /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1 flex-col", children: /* @__PURE__ */ jsx("p", { id: nameId, className: "truncate text-ods-text-primary text-h4", title: policy.name, children: policy.name }) }),
77
+ editMode && /* @__PURE__ */ jsx("span", { className: "flex shrink-0 text-ods-text-secondary content-md:hidden", children: /* @__PURE__ */ jsx(ToolIcon, { toolType: policy.toolName, size: 16 }) })
78
+ ] }),
79
+ level && /* @__PURE__ */ jsx("div", { className: cn("flex content-md:hidden", editMode && "mt-[var(--spacing-system-sf)]"), children: level })
65
80
  ] }),
66
- /* @__PURE__ */ jsx("div", { className: "hidden shrink-0 content-md:block", children: editMode ? /* @__PURE__ */ jsx(
67
- ApprovalLevelDropdown,
68
- {
69
- value: policy.approvalLevel,
70
- onChange: handleChange,
71
- triggerClassName: POLICY_LEVEL_WIDTH,
72
- contentClassName: POLICY_LEVEL_WIDTH
73
- }
74
- ) : /* @__PURE__ */ jsx("div", { className: cn("px-[var(--spacing-system-sf)] py-[var(--spacing-system-xsf)]", POLICY_LEVEL_WIDTH), children: policy.approvalLevel && /* @__PURE__ */ jsx("span", { className: "text-ods-text-primary text-h4", children: getApprovalLevelLabel(policy.approvalLevel) }) }) })
81
+ level && /* @__PURE__ */ jsx("div", { className: "hidden shrink-0 items-center content-md:flex", children: level })
75
82
  ] });
76
83
  };
77
84
  const LOADING_CATEGORY = { id: "", name: "", policies: [] };
@@ -95,29 +102,22 @@ const CategorySection = ({
95
102
  "div",
96
103
  {
97
104
  ...loadingItemProps(props),
98
- className: cn(CATEGORY_HEADER_CLASS, !loading && "cursor-pointer transition-colors hover:bg-ods-bg-hover"),
105
+ className: cn(
106
+ CATEGORY_HEADER_CLASS,
107
+ !loading && "cursor-pointer transition-colors hover:bg-ods-bg-hover [&:has([data-bulk-level]:hover)]:bg-ods-card"
108
+ ),
99
109
  onClick: loading ? void 0 : () => onToggle(category.id),
100
110
  children: [
101
- /* @__PURE__ */ jsx("div", { className: ICON_TILE_CLASS, children: /* @__PURE__ */ jsx("div", { className: "text-ods-text-secondary", children: category.icon ?? /* @__PURE__ */ jsx(Shield, { className: "h-4 w-4" }) }) }),
111
+ /* @__PURE__ */ jsx("div", { className: ICON_TILE_CLASS, children: /* @__PURE__ */ jsx("div", { className: "text-ods-text-secondary", children: category.icon ?? /* @__PURE__ */ jsx(ShieldIcon, { size: 16 }) }) }),
102
112
  /* @__PURE__ */ jsxs("div", { className: CATEGORY_TEXT_CLASS, children: [
103
113
  category.name ? /* @__PURE__ */ jsx("p", { className: "truncate text-ods-text-primary text-h4", title: category.name, children: category.name }) : /* @__PURE__ */ jsx(TextLineSkeleton, { type: "h4", className: "w-40 max-w-full" }),
104
114
  loading ? /* @__PURE__ */ jsx(TextLineSkeleton, { type: "h6", className: "w-24" }) : /* @__PURE__ */ jsxs("p", { className: "text-ods-text-secondary text-h6", children: [
105
115
  category.policies.length,
106
- " Configurations"
107
- ] }),
108
- editMode && /* @__PURE__ */ jsx("div", { className: "mt-[var(--spacing-system-xsf)] content-md:hidden", onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx(
109
- ApprovalLevelDropdown,
110
- {
111
- value: bulkLevel,
112
- onChange: handleBulkChange,
113
- allowClear: true,
114
- triggerClassName: "w-full",
115
- contentClassName: CATEGORY_LEVEL_WIDTH,
116
- disabled: loading
117
- }
118
- ) })
116
+ " ",
117
+ category.policies.length === 1 ? "Configuration" : "Configurations"
118
+ ] })
119
119
  ] }),
120
- editMode ? /* @__PURE__ */ jsx("div", { className: "hidden shrink-0 content-md:block", onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx(
120
+ editMode ? /* @__PURE__ */ jsx("div", { "data-bulk-level": true, className: "hidden shrink-0 content-md:block", onClick: (e) => e.stopPropagation(), children: /* @__PURE__ */ jsx(
121
121
  ApprovalLevelDropdown,
122
122
  {
123
123
  value: bulkLevel,
@@ -138,8 +138,12 @@ const CategorySection = ({
138
138
  e.stopPropagation();
139
139
  onToggle(category.id);
140
140
  },
141
- leftIcon: /* @__PURE__ */ jsx(ChevronDown, { className: cn(CHEVRON_CLASS, isExpanded && "rotate-180") }),
142
- className: "h-auto w-auto shrink-0 rounded-md",
141
+ leftIcon: /* @__PURE__ */ jsx(Chevron02DownIcon, { className: cn(CHEVRON_CLASS, isExpanded && "rotate-180") }),
142
+ className: cn(
143
+ "h-auto w-auto shrink-0 rounded-md !p-[var(--spacing-system-xsf)] content-md:!p-[var(--spacing-system-sf)]",
144
+ // The row is the hover; the chevron adds none of its own.
145
+ "hover:bg-transparent active:bg-transparent"
146
+ ),
143
147
  "aria-label": isExpanded ? "Collapse" : "Expand"
144
148
  }
145
149
  )
@@ -157,16 +161,23 @@ const CategorySection = ({
157
161
  visibility: isExpanded ? "visible" : "hidden"
158
162
  },
159
163
  className: isExpanded ? "opacity-100" : "opacity-0",
160
- children: /* @__PURE__ */ jsx("div", { ref: innerRef, className: "px-[var(--spacing-system-mf)] pb-[var(--spacing-system-mf)] pt-0", children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-md border border-ods-border", children: (loading ? [] : category.policies).map((policy) => /* @__PURE__ */ jsx(
161
- PolicyRow,
164
+ children: /* @__PURE__ */ jsx(
165
+ "div",
162
166
  {
163
- policy,
164
- categoryId: category.id,
165
- editMode,
166
- onPermissionChange: onPolicyPermissionChange
167
- },
168
- policy.id
169
- )) }) })
167
+ ref: innerRef,
168
+ className: "border-t border-ods-border px-[var(--spacing-system-mf)] pb-[var(--spacing-system-mf)] pt-[var(--spacing-system-mf)]",
169
+ children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-md border border-ods-border", children: (loading ? [] : category.policies).map((policy) => /* @__PURE__ */ jsx(
170
+ PolicyRow,
171
+ {
172
+ policy,
173
+ categoryId: category.id,
174
+ editMode,
175
+ onPermissionChange: onPolicyPermissionChange
176
+ },
177
+ policy.id
178
+ )) })
179
+ }
180
+ )
170
181
  }
171
182
  )
172
183
  ] });