@cogentic-co/ds 0.5.3 → 0.6.0

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 (101) hide show
  1. package/dist/animations/animation-ai-analysis.js +99 -4
  2. package/dist/animations/animation-ai-analysis.js.map +1 -1
  3. package/dist/animations/animation-audit-trail.js +194 -2
  4. package/dist/animations/animation-audit-trail.js.map +1 -1
  5. package/dist/animations/animation-compliance-reports.js +108 -3
  6. package/dist/animations/animation-compliance-reports.js.map +1 -1
  7. package/dist/animations/animation-custom-rules.js +107 -3
  8. package/dist/animations/animation-custom-rules.js.map +1 -1
  9. package/dist/animations/animation-jira-ticket.js +114 -3
  10. package/dist/animations/animation-jira-ticket.js.map +1 -1
  11. package/dist/animations/animation-jurisdiction-detection.js +122 -3
  12. package/dist/animations/animation-jurisdiction-detection.js.map +1 -1
  13. package/dist/animations/animation-multi-protocol.js +63 -2
  14. package/dist/animations/animation-multi-protocol.js.map +1 -1
  15. package/dist/animations/animation-pricing-preview.js +169 -3
  16. package/dist/animations/animation-pricing-preview.js.map +1 -1
  17. package/dist/animations/animation-realtime-updates.js +140 -4
  18. package/dist/animations/animation-realtime-updates.js.map +1 -1
  19. package/dist/animations/animation-rest-api.js +121 -2
  20. package/dist/animations/animation-rest-api.js.map +1 -1
  21. package/dist/animations/animation-risk-scoring.js +158 -4
  22. package/dist/animations/animation-risk-scoring.js.map +1 -1
  23. package/dist/animations/animation-sandbox.js +107 -2
  24. package/dist/animations/animation-sandbox.js.map +1 -1
  25. package/dist/animations/animation-scheduled-reports.js +107 -3
  26. package/dist/animations/animation-scheduled-reports.js.map +1 -1
  27. package/dist/animations/animation-secure-messaging.js +99 -3
  28. package/dist/animations/animation-secure-messaging.js.map +1 -1
  29. package/dist/animations/animation-slack-notification.js +90 -3
  30. package/dist/animations/animation-slack-notification.js.map +1 -1
  31. package/dist/animations/animation-sop-mapping.js +158 -2
  32. package/dist/animations/animation-sop-mapping.js.map +1 -1
  33. package/dist/animations/animation-team-routing.js +118 -4
  34. package/dist/animations/animation-team-routing.js.map +1 -1
  35. package/dist/animations/animation-teams-notification.js +89 -3
  36. package/dist/animations/animation-teams-notification.js.map +1 -1
  37. package/dist/animations/animation-vasp-identification.js +142 -3
  38. package/dist/animations/animation-vasp-identification.js.map +1 -1
  39. package/dist/animations/animation-webhooks.js +105 -3
  40. package/dist/animations/animation-webhooks.js.map +1 -1
  41. package/dist/blocks/auth-form.js +0 -1
  42. package/dist/blocks/feature-section.js +0 -1
  43. package/dist/blocks/hero-section.js +0 -1
  44. package/dist/blocks/pricing-table.js +0 -1
  45. package/dist/blocks/stat-card.js +0 -1
  46. package/dist/chart-DkwdRX-i.d.ts +50 -0
  47. package/dist/charts.d.ts +73 -3
  48. package/dist/charts.js +287 -2
  49. package/dist/charts.js.map +1 -1
  50. package/dist/chunk-6RWCZUAD.js +0 -1
  51. package/dist/chunk-GJAWCIGE.js +237 -0
  52. package/dist/chunk-GJAWCIGE.js.map +1 -0
  53. package/dist/chunk-GZNLQE3I.js +0 -1
  54. package/dist/chunk-TAPJEVUA.js +0 -1
  55. package/dist/index.d.ts +34 -52
  56. package/dist/index.js +109 -168
  57. package/dist/index.js.map +1 -1
  58. package/package.json +6 -3
  59. package/dist/chunk-4YD3YS4B.js +0 -110
  60. package/dist/chunk-4YD3YS4B.js.map +0 -1
  61. package/dist/chunk-5JLZ42JT.js +0 -125
  62. package/dist/chunk-5JLZ42JT.js.map +0 -1
  63. package/dist/chunk-5OOO6TRA.js +0 -111
  64. package/dist/chunk-5OOO6TRA.js.map +0 -1
  65. package/dist/chunk-65Z2VEKG.js +0 -161
  66. package/dist/chunk-65Z2VEKG.js.map +0 -1
  67. package/dist/chunk-BTFYV3TI.js +0 -102
  68. package/dist/chunk-BTFYV3TI.js.map +0 -1
  69. package/dist/chunk-BTZB4JRC.js +0 -117
  70. package/dist/chunk-BTZB4JRC.js.map +0 -1
  71. package/dist/chunk-BZSA47MS.js +0 -121
  72. package/dist/chunk-BZSA47MS.js.map +0 -1
  73. package/dist/chunk-EFLWU2JP.js +0 -145
  74. package/dist/chunk-EFLWU2JP.js.map +0 -1
  75. package/dist/chunk-F7REPQOA.js +0 -93
  76. package/dist/chunk-F7REPQOA.js.map +0 -1
  77. package/dist/chunk-FKPK3CB7.js +0 -143
  78. package/dist/chunk-FKPK3CB7.js.map +0 -1
  79. package/dist/chunk-H7VUIMEL.js +0 -172
  80. package/dist/chunk-H7VUIMEL.js.map +0 -1
  81. package/dist/chunk-HTYR73ON.js +0 -161
  82. package/dist/chunk-HTYR73ON.js.map +0 -1
  83. package/dist/chunk-I26ZXVSY.js +0 -124
  84. package/dist/chunk-I26ZXVSY.js.map +0 -1
  85. package/dist/chunk-IKATDPHG.js +0 -92
  86. package/dist/chunk-IKATDPHG.js.map +0 -1
  87. package/dist/chunk-KUOF3XRZ.js +0 -108
  88. package/dist/chunk-KUOF3XRZ.js.map +0 -1
  89. package/dist/chunk-N7PBUY7G.js +0 -110
  90. package/dist/chunk-N7PBUY7G.js.map +0 -1
  91. package/dist/chunk-NAPDFVBI.js +0 -102
  92. package/dist/chunk-NAPDFVBI.js.map +0 -1
  93. package/dist/chunk-RTK7R4KZ.js +0 -66
  94. package/dist/chunk-RTK7R4KZ.js.map +0 -1
  95. package/dist/chunk-RZZTDJHG.js +0 -110
  96. package/dist/chunk-RZZTDJHG.js.map +0 -1
  97. package/dist/chunk-SNOJLZP4.js +0 -197
  98. package/dist/chunk-SNOJLZP4.js.map +0 -1
  99. package/dist/chunk-U4EPKN7G.js +0 -518
  100. package/dist/chunk-U4EPKN7G.js.map +0 -1
  101. package/dist/index-CcPuHWa-.d.ts +0 -118
package/dist/index.js CHANGED
@@ -2,12 +2,7 @@
2
2
  export { HeroSection, heroVariants } from './chunk-XQYFQ6PU.js';
3
3
  import { Input, Label } from './chunk-LW6GAWZM.js';
4
4
  export { AuthForm, Input, Label } from './chunk-LW6GAWZM.js';
5
- export { AreaChart, BarChart, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, LineChart, PieChart, RadialChart } from './chunk-U4EPKN7G.js';
6
- export { AnimationSopMapping } from './chunk-65Z2VEKG.js';
7
- export { AnimationTeamRouting } from './chunk-BZSA47MS.js';
8
- export { AnimationTeamsNotification } from './chunk-IKATDPHG.js';
9
- export { AnimationVaspIdentification } from './chunk-EFLWU2JP.js';
10
- export { AnimationWebhooks } from './chunk-KUOF3XRZ.js';
5
+ export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent } from './chunk-GJAWCIGE.js';
11
6
  export { FadeIn, PricingTable, Switch } from './chunk-VWSX75RB.js';
12
7
  import { Button, buttonVariants } from './chunk-BNFSXNP2.js';
13
8
  export { Button, buttonVariants } from './chunk-BNFSXNP2.js';
@@ -15,25 +10,9 @@ export { StatCard } from './chunk-7HRPF2N2.js';
15
10
  import { Card, CardContent, CardFooter } from './chunk-CG5JA7FM.js';
16
11
  export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './chunk-CG5JA7FM.js';
17
12
  export { FeatureSection } from './chunk-4NEQV6H2.js';
18
- export { AnimationPricingPreview } from './chunk-H7VUIMEL.js';
19
- export { AnimationRealtimeUpdates } from './chunk-FKPK3CB7.js';
20
- export { AnimationRestApi } from './chunk-I26ZXVSY.js';
21
- export { AnimationRiskScoring } from './chunk-HTYR73ON.js';
22
- export { AnimationSandbox } from './chunk-N7PBUY7G.js';
23
- export { AnimationScheduledReports } from './chunk-4YD3YS4B.js';
24
- export { AnimationSecureMessaging } from './chunk-NAPDFVBI.js';
25
- export { AnimationSlackNotification } from './chunk-F7REPQOA.js';
26
- export { AnimationAIAnalysis as AnimationAiAnalysis } from './chunk-BTFYV3TI.js';
27
- export { AnimationAuditTrail } from './chunk-SNOJLZP4.js';
28
- export { AnimationComplianceReports } from './chunk-5OOO6TRA.js';
29
- export { AnimationCustomRules } from './chunk-RZZTDJHG.js';
30
- export { AnimationJiraTicket } from './chunk-BTZB4JRC.js';
31
13
  export { EASE_OUT, FADE_UP, SLIDE_UP_VARIANT, STAGGER_CHILDREN, TRANSITION_DEFAULT, TRANSITION_FAST, VIEWPORT_ONCE } from './chunk-TAPJEVUA.js';
32
- export { AnimationJurisdictionDetection } from './chunk-5JLZ42JT.js';
33
14
  export { useCycleIndex } from './chunk-6RWCZUAD.js';
34
- import { useAnimationTimer } from './chunk-RXV2XUDZ.js';
35
15
  export { useAnimationTimer } from './chunk-RXV2XUDZ.js';
36
- export { AnimationMultiProtocol } from './chunk-RTK7R4KZ.js';
37
16
  import { cn, __objRest, __spreadValues, __spreadProps, timeAgo } from './chunk-GZNLQE3I.js';
38
17
  export { cn, timeAgo } from './chunk-GZNLQE3I.js';
39
18
  import { Calendar, ArrowUpRight, Linkedin, ChevronDownIcon, ChevronUpIcon, XIcon, ArrowUpIcon, CheckIcon, ChevronRightIcon, MoreHorizontalIcon, ChevronLeftIcon, LightbulbIcon, AlertCircleIcon, TriangleAlertIcon, InfoIcon, AlertTriangle, ArrowLeftRight, ClipboardIcon, SearchIcon, ArrowDown, ArrowUp, ChevronsUpDown, ChevronsLeft, ChevronLeft, ChevronRight, ChevronsRight, Settings2, PlusCircle, CalendarIcon, UploadIcon, PlusCircleIcon, X, PencilIcon, MinusIcon, Loader2Icon, PlusIcon, Search, PanelLeftIcon, OctagonXIcon, CircleCheckIcon, TrendingUpIcon, TrendingDownIcon, User, LogOut } from 'lucide-react';
@@ -78,7 +57,6 @@ import { ScrollArea as ScrollArea$1 } from '@base-ui/react/scroll-area';
78
57
  import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
79
58
  import { Slider as Slider$1 } from '@base-ui/react/slider';
80
59
  import { Toaster as Toaster$1 } from 'sonner';
81
- import { LazyMotion, domAnimation, AnimatePresence, m } from 'motion/react';
82
60
  import { Tabs as Tabs$1 } from '@base-ui/react/tabs';
83
61
  import { Toggle as Toggle$1 } from '@base-ui/react/toggle';
84
62
  import { ToggleGroup as ToggleGroup$1 } from '@base-ui/react/toggle-group';
@@ -191,7 +169,7 @@ function AspectRatio(_a) {
191
169
  }, props)
192
170
  );
193
171
  }
194
- function TeamCard({ name, role, imageUrl, linkedinUrl, className }) {
172
+ function TeamCard({ name, role, imageUrl, linkedinUrl, className, children }) {
195
173
  const initials = name.split(" ").map((n) => n[0]).join("");
196
174
  return /* @__PURE__ */ jsxs(
197
175
  Card,
@@ -224,7 +202,8 @@ function TeamCard({ name, role, imageUrl, linkedinUrl, className }) {
224
202
  /* @__PURE__ */ jsx("div", { className: "text-muted-foreground text-xs", children: role })
225
203
  ] }),
226
204
  linkedinUrl && /* @__PURE__ */ jsx("div", { className: "shrink-0", children: /* @__PURE__ */ jsx(Linkedin, { className: "size-4 text-muted-foreground" }) })
227
- ] })
205
+ ] }),
206
+ children
228
207
  ]
229
208
  }
230
209
  );
@@ -754,6 +733,7 @@ function ApprovalDialog({
754
733
  }
755
734
  function ApprovalButton({
756
735
  action,
736
+ showDialog = false,
757
737
  requireReason = false,
758
738
  onAction,
759
739
  disabled
@@ -766,7 +746,7 @@ function ApprovalButton({
766
746
  config.label
767
747
  ] });
768
748
  }
769
- if (!requireReason) {
749
+ if (!showDialog) {
770
750
  return /* @__PURE__ */ jsxs(Button, { className: config.triggerClassName, disabled, onClick: () => onAction(), children: [
771
751
  /* @__PURE__ */ jsx(Icon, { className: "size-4" }),
772
752
  config.label
@@ -786,15 +766,18 @@ function ApprovalActions({
786
766
  onApprove,
787
767
  onReject,
788
768
  onEscalate,
769
+ confirm: confirmProp,
789
770
  requireReason = false,
790
771
  disabled,
791
772
  className
792
773
  }) {
774
+ const showDialog = confirmProp != null ? confirmProp : requireReason;
793
775
  return /* @__PURE__ */ jsxs("div", { "data-slot": "approval-actions", className: cn("flex items-center gap-2", className), children: [
794
776
  /* @__PURE__ */ jsx(
795
777
  ApprovalButton,
796
778
  {
797
779
  action: "approve",
780
+ showDialog,
798
781
  requireReason,
799
782
  onAction: onApprove,
800
783
  disabled
@@ -804,6 +787,7 @@ function ApprovalActions({
804
787
  ApprovalButton,
805
788
  {
806
789
  action: "reject",
790
+ showDialog,
807
791
  requireReason,
808
792
  onAction: onReject,
809
793
  disabled
@@ -813,6 +797,7 @@ function ApprovalActions({
813
797
  ApprovalButton,
814
798
  {
815
799
  action: "escalate",
800
+ showDialog,
816
801
  requireReason,
817
802
  onAction: onEscalate,
818
803
  disabled
@@ -926,6 +911,7 @@ function AsciiShader(_a) {
926
911
  "canvas",
927
912
  __spreadValues({
928
913
  ref: canvasRef,
914
+ "aria-hidden": "true",
929
915
  "data-slot": "ascii-shader",
930
916
  className: cn("absolute inset-0 h-full w-full", className)
931
917
  }, props)
@@ -938,38 +924,19 @@ function AuditLog(_a) {
938
924
  __spreadValues({
939
925
  "data-slot": "audit-log",
940
926
  role: "log",
927
+ "aria-live": "polite",
941
928
  className: cn("space-y-0 divide-y divide-border", className)
942
929
  }, props)
943
930
  );
944
931
  }
945
- var auditLogEntryVariants = cva(
946
- "flex items-start gap-3 px-4 py-3 text-sm transition-colors hover:bg-muted/50",
947
- {
948
- variants: {
949
- action: {
950
- create: "",
951
- update: "",
952
- delete: "",
953
- approve: "",
954
- reject: "",
955
- login: "",
956
- export: "",
957
- default: ""
958
- }
959
- },
960
- defaultVariants: {
961
- action: "default"
962
- }
963
- }
964
- );
965
932
  function AuditLogEntry(_a) {
966
- var _b = _a, { action, className } = _b, props = __objRest(_b, ["action", "className"]);
933
+ var _b = _a, { action = "default", className } = _b, props = __objRest(_b, ["action", "className"]);
967
934
  return /* @__PURE__ */ jsx(
968
935
  "div",
969
936
  __spreadValues({
970
937
  "data-slot": "audit-log-entry",
971
- "data-action": action != null ? action : "default",
972
- className: cn(auditLogEntryVariants({ action }), className)
938
+ "data-action": action,
939
+ className: cn("flex items-start gap-3 px-4 py-3 text-sm transition-colors hover:bg-muted/50", className)
973
940
  }, props)
974
941
  );
975
942
  }
@@ -1123,7 +1090,7 @@ var badgeVariants = cva(
1123
1090
  outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
1124
1091
  ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
1125
1092
  link: "text-primary underline-offset-4 hover:underline",
1126
- tagline: "h-auto rounded-full border-border text-foreground [a]:hover:bg-accent [a]:hover:text-accent-foreground font-semibold text-base px-3 mx-auto flex mb-2"
1093
+ tagline: "h-auto rounded-full border-border bg-background text-foreground [a]:hover:bg-accent [a]:hover:text-accent-foreground font-semibold text-base px-3 mx-auto flex mb-2"
1127
1094
  }
1128
1095
  },
1129
1096
  defaultVariants: {
@@ -1178,32 +1145,16 @@ var BAYER = [
1178
1145
  ];
1179
1146
  var BAYER_SCALE = 4;
1180
1147
  var DOWNSAMPLE = 4;
1181
- function parseCssColor(value) {
1182
- const match = value.match(/[\d.]+/g);
1183
- if (match && match.length >= 3) {
1184
- return [
1185
- Math.round(Number(match[0])),
1186
- Math.round(Number(match[1])),
1187
- Math.round(Number(match[2]))
1188
- ];
1189
- }
1190
- return null;
1191
- }
1192
- function resolveColors() {
1193
- const probe = document.createElement("div");
1194
- probe.style.display = "none";
1195
- probe.style.color = "var(--foreground)";
1196
- probe.style.backgroundColor = "var(--background)";
1197
- document.body.appendChild(probe);
1198
- const probeStyle = getComputedStyle(probe);
1199
- const fgRgb = parseCssColor(probeStyle.color);
1200
- const bgRgb = parseCssColor(probeStyle.backgroundColor);
1201
- document.body.removeChild(probe);
1202
- const fg = fgRgb != null ? fgRgb : [220, 223, 227];
1203
- const bg = bgRgb != null ? bgRgb : [250, 250, 250];
1204
- return { fg, bg };
1205
- }
1206
- function BgShader({ className }) {
1148
+ var DEFAULT_COLORS = {
1149
+ light: { fg: [220, 223, 227], bg: [250, 250, 250] },
1150
+ dark: { fg: [26, 35, 52], bg: [58, 74, 92] }
1151
+ };
1152
+ function isDark2() {
1153
+ return document.documentElement.classList.contains("dark");
1154
+ }
1155
+ function BgShader({ className, colors = DEFAULT_COLORS }) {
1156
+ const colorsRef = useRef(colors);
1157
+ colorsRef.current = colors;
1207
1158
  const canvasRef = useRef(null);
1208
1159
  const rafRef = useRef(0);
1209
1160
  const visibleRef = useRef(false);
@@ -1212,12 +1163,20 @@ function BgShader({ className }) {
1212
1163
  const canvas = canvasRef.current;
1213
1164
  if (!canvas) return;
1214
1165
  const mq = window.matchMedia("(prefers-reduced-motion: reduce)");
1215
- const reducedMotion = mq.matches;
1166
+ let reducedMotion = mq.matches;
1167
+ const onMotionChange = (e) => {
1168
+ reducedMotion = e.matches;
1169
+ };
1170
+ mq.addEventListener("change", onMotionChange);
1216
1171
  const ctx = canvas.getContext("2d");
1217
1172
  if (!ctx) return;
1218
- let { fg, bg } = resolveColors();
1173
+ const resolve = () => {
1174
+ const c = colorsRef.current;
1175
+ return isDark2() ? c.dark : c.light;
1176
+ };
1177
+ let { fg, bg } = resolve();
1219
1178
  const updateColors = () => {
1220
- const resolved = resolveColors();
1179
+ const resolved = resolve();
1221
1180
  fg = resolved.fg;
1222
1181
  bg = resolved.bg;
1223
1182
  };
@@ -1239,6 +1198,9 @@ function BgShader({ className }) {
1239
1198
  );
1240
1199
  ioObs.observe(canvas);
1241
1200
  const startTime = performance.now();
1201
+ let cachedImageData = null;
1202
+ let cachedW = 0;
1203
+ let cachedH = 0;
1242
1204
  const render = (now) => {
1243
1205
  if (!visibleRef.current || reducedMotion) return;
1244
1206
  frameCount.current++;
@@ -1258,8 +1220,12 @@ function BgShader({ className }) {
1258
1220
  canvas.width = cw;
1259
1221
  canvas.height = ch;
1260
1222
  }
1261
- const imageData = ctx.createImageData(cw, ch);
1262
- const data = imageData.data;
1223
+ if (!cachedImageData || cachedW !== cw || cachedH !== ch) {
1224
+ cachedImageData = ctx.createImageData(cw, ch);
1225
+ cachedW = cw;
1226
+ cachedH = ch;
1227
+ }
1228
+ const data = cachedImageData.data;
1263
1229
  const time = (now - startTime) / 1e3 * 0.5;
1264
1230
  const t3 = time / 3;
1265
1231
  const aspect = w / h;
@@ -1281,23 +1247,18 @@ function BgShader({ className }) {
1281
1247
  const by = Math.floor(oy / BAYER_SCALE) & 3;
1282
1248
  const threshold = BAYER[bx + by * 4];
1283
1249
  const idx = (py * cw + px) * 4;
1284
- if (gray > threshold) {
1285
- data[idx] = fg[0];
1286
- data[idx + 1] = fg[1];
1287
- data[idx + 2] = fg[2];
1288
- } else {
1289
- data[idx] = bg[0];
1290
- data[idx + 1] = bg[1];
1291
- data[idx + 2] = bg[2];
1292
- }
1250
+ const c = gray > threshold ? fg : bg;
1251
+ data[idx] = c[0];
1252
+ data[idx + 1] = c[1];
1253
+ data[idx + 2] = c[2];
1293
1254
  data[idx + 3] = 255;
1294
1255
  }
1295
1256
  }
1296
- ctx.putImageData(imageData, 0, 0);
1257
+ ctx.putImageData(cachedImageData, 0, 0);
1297
1258
  rafRef.current = requestAnimationFrame(render);
1298
1259
  };
1299
1260
  if (reducedMotion) {
1300
- requestAnimationFrame(() => {
1261
+ rafRef.current = requestAnimationFrame(() => {
1301
1262
  visibleRef.current = true;
1302
1263
  frameCount.current = 1;
1303
1264
  const w = canvas.clientWidth;
@@ -1340,9 +1301,10 @@ function BgShader({ className }) {
1340
1301
  ioObs.disconnect();
1341
1302
  mutObs.disconnect();
1342
1303
  darkMq.removeEventListener("change", updateColors);
1304
+ mq.removeEventListener("change", onMotionChange);
1343
1305
  };
1344
1306
  }, []);
1345
- return /* @__PURE__ */ jsx("section", { className: cn("absolute inset-0 opacity-50", className), "data-slot": "bg-shader", children: /* @__PURE__ */ jsx(
1307
+ return /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: cn("absolute inset-0 opacity-50", className), "data-slot": "bg-shader", children: /* @__PURE__ */ jsx(
1346
1308
  "canvas",
1347
1309
  {
1348
1310
  ref: canvasRef,
@@ -1354,7 +1316,7 @@ function BgShader({ className }) {
1354
1316
  var CHARS2 = " .:-=+*#%@";
1355
1317
  var CELL2 = 14;
1356
1318
  var FONT_SIZE2 = 12;
1357
- function isDark2() {
1319
+ function isDark3() {
1358
1320
  return document.documentElement.classList.contains("dark");
1359
1321
  }
1360
1322
  function BlockyShader(_a) {
@@ -1373,9 +1335,9 @@ function BlockyShader(_a) {
1373
1335
  if (!ctx) return;
1374
1336
  const mq = window.matchMedia("(prefers-reduced-motion: reduce)");
1375
1337
  if (mq.matches) return;
1376
- let fg = isDark2() ? "rgba(255,255,255,0.12)" : "rgba(0,0,0,0.07)";
1338
+ let fg = isDark3() ? "rgba(255,255,255,0.12)" : "rgba(0,0,0,0.07)";
1377
1339
  const updateColors = () => {
1378
- fg = isDark2() ? "rgba(255,255,255,0.12)" : "rgba(0,0,0,0.07)";
1340
+ fg = isDark3() ? "rgba(255,255,255,0.12)" : "rgba(0,0,0,0.07)";
1379
1341
  };
1380
1342
  const darkMq = window.matchMedia("(prefers-color-scheme: dark)");
1381
1343
  darkMq.addEventListener("change", updateColors);
@@ -1453,6 +1415,7 @@ function BlockyShader(_a) {
1453
1415
  "canvas",
1454
1416
  __spreadValues({
1455
1417
  ref: canvasRef,
1418
+ "aria-hidden": "true",
1456
1419
  "data-slot": "blocky-shader",
1457
1420
  className: cn("absolute inset-0 h-full w-full", className)
1458
1421
  }, props)
@@ -3164,6 +3127,7 @@ function ComplianceScore(_a) {
3164
3127
  setAnimatedScore(clampedScore);
3165
3128
  return;
3166
3129
  }
3130
+ let rafId;
3167
3131
  const observer = new IntersectionObserver(
3168
3132
  ([entry]) => {
3169
3133
  if (!entry.isIntersecting || hasAnimated.current) return;
@@ -3174,14 +3138,17 @@ function ComplianceScore(_a) {
3174
3138
  const progress = Math.min((now - start) / duration, 1);
3175
3139
  const eased = 1 - (1 - progress) ** 3;
3176
3140
  setAnimatedScore(Math.round(clampedScore * eased));
3177
- if (progress < 1) requestAnimationFrame(tick);
3141
+ if (progress < 1) rafId = requestAnimationFrame(tick);
3178
3142
  }
3179
- requestAnimationFrame(tick);
3143
+ rafId = requestAnimationFrame(tick);
3180
3144
  },
3181
3145
  { threshold: 0.5 }
3182
3146
  );
3183
3147
  observer.observe(el);
3184
- return () => observer.disconnect();
3148
+ return () => {
3149
+ observer.disconnect();
3150
+ cancelAnimationFrame(rafId);
3151
+ };
3185
3152
  }, [clampedScore]);
3186
3153
  const dashOffset = circumference - animatedScore / 100 * circumference;
3187
3154
  const scoreColor = color != null ? color : getScoreColor(clampedScore);
@@ -3191,6 +3158,11 @@ function ComplianceScore(_a) {
3191
3158
  __spreadProps(__spreadValues({
3192
3159
  ref,
3193
3160
  "data-slot": "compliance-score",
3161
+ role: "meter",
3162
+ "aria-valuenow": score,
3163
+ "aria-valuemin": 0,
3164
+ "aria-valuemax": 100,
3165
+ "aria-label": label ? `${label}: ${score}%` : `Compliance score: ${score}%`,
3194
3166
  className: cn(complianceScoreVariants({ size }), className)
3195
3167
  }, props), {
3196
3168
  children: [
@@ -4743,12 +4715,19 @@ function DeadlineCountdown(_a) {
4743
4715
  "showDot",
4744
4716
  "className"
4745
4717
  ]);
4718
+ const [, setTick] = React4.useState(0);
4719
+ React4.useEffect(() => {
4720
+ const id = setInterval(() => setTick((t) => t + 1), 6e4);
4721
+ return () => clearInterval(id);
4722
+ }, []);
4746
4723
  const urgency = urgencyOverride != null ? urgencyOverride : getAutoUrgency(deadline, warningDays, criticalDays);
4747
4724
  const timeText = formatTimeRemaining(deadline);
4748
4725
  return /* @__PURE__ */ jsxs(
4749
4726
  "span",
4750
4727
  __spreadProps(__spreadValues({
4751
4728
  "data-slot": "deadline-countdown",
4729
+ "aria-live": "polite",
4730
+ "aria-atomic": "true",
4752
4731
  className: cn(deadlineCountdownVariants({ urgency }), className)
4753
4732
  }, props), {
4754
4733
  children: [
@@ -5455,7 +5434,7 @@ function FilterChip(_a) {
5455
5434
  )
5456
5435
  }, props), {
5457
5436
  children: [
5458
- /* @__PURE__ */ jsx(PlusCircleIcon, { className: "size-3.5 text-muted-foreground" }),
5437
+ !value && /* @__PURE__ */ jsx(PlusCircleIcon, { className: "size-3.5 text-muted-foreground" }),
5459
5438
  /* @__PURE__ */ jsx("span", { className: "font-medium", children: label }),
5460
5439
  value && /* @__PURE__ */ jsxs(Fragment, { children: [
5461
5440
  /* @__PURE__ */ jsx("span", { className: "mx-0.5 h-4 w-px bg-border" }),
@@ -6743,7 +6722,7 @@ function Progress(_a) {
6743
6722
  const id = requestAnimationFrame(() => setMountedValue(value));
6744
6723
  return () => cancelAnimationFrame(id);
6745
6724
  }
6746
- setMountedValue(value);
6725
+ setMountedValue((prev) => prev === value ? prev : value);
6747
6726
  }, [animate, value]);
6748
6727
  return /* @__PURE__ */ jsxs(
6749
6728
  Progress$1.Root,
@@ -6977,6 +6956,11 @@ function RiskGauge(_a) {
6977
6956
  __spreadProps(__spreadValues({
6978
6957
  ref,
6979
6958
  "data-slot": "risk-gauge",
6959
+ role: "meter",
6960
+ "aria-valuenow": score,
6961
+ "aria-valuemin": 0,
6962
+ "aria-valuemax": 100,
6963
+ "aria-label": label != null ? label : `Risk score: ${score}/100`,
6980
6964
  className: cn("flex flex-col gap-1.5", className)
6981
6965
  }, props), {
6982
6966
  children: [
@@ -8333,6 +8317,7 @@ function StepProgress(_a) {
8333
8317
  __spreadValues({
8334
8318
  "data-slot": "step-progress",
8335
8319
  "data-orientation": orientation != null ? orientation : "vertical",
8320
+ role: "list",
8336
8321
  className: cn(stepProgressVariants({ orientation }), className)
8337
8322
  }, props)
8338
8323
  );
@@ -8344,6 +8329,8 @@ function StepProgressItem(_a) {
8344
8329
  __spreadValues({
8345
8330
  "data-slot": "step-progress-item",
8346
8331
  "data-status": status,
8332
+ role: "listitem",
8333
+ "aria-current": status === "current" ? "step" : void 0,
8347
8334
  className: cn(
8348
8335
  "relative flex",
8349
8336
  // Vertical: row layout, bottom padding
@@ -8437,60 +8424,6 @@ function StepProgressDescription(_a) {
8437
8424
  }, props)
8438
8425
  );
8439
8426
  }
8440
- var EASE_OUT2 = [0.22, 0.61, 0.36, 1];
8441
- function StreamingCards({
8442
- children,
8443
- maxVisible = 3,
8444
- interval = 2800,
8445
- fadeOlder = true,
8446
- className
8447
- }) {
8448
- const [timerRef, tick] = useAnimationTimer(interval);
8449
- const count = Math.min(tick + 1, maxVisible);
8450
- const startIdx = Math.max(0, tick + 1 - count);
8451
- const visibleIndices = Array.from({ length: count }, (_, i) => (startIdx + i) % children.length);
8452
- const scrollRef = useRef(null);
8453
- useEffect(() => {
8454
- if (scrollRef.current) {
8455
- scrollRef.current.scrollTo({
8456
- top: scrollRef.current.scrollHeight,
8457
- behavior: "smooth"
8458
- });
8459
- }
8460
- }, []);
8461
- return /* @__PURE__ */ jsx(LazyMotion, { features: domAnimation, children: /* @__PURE__ */ jsx(
8462
- "div",
8463
- {
8464
- ref: timerRef,
8465
- "data-slot": "streaming-cards",
8466
- className: cn("flex flex-col overflow-hidden", className),
8467
- children: /* @__PURE__ */ jsx(
8468
- "div",
8469
- {
8470
- ref: scrollRef,
8471
- className: "scrollbar-none flex flex-1 flex-col gap-2.5 overflow-y-auto",
8472
- children: /* @__PURE__ */ jsx(AnimatePresence, { initial: false, children: visibleIndices.map((childIdx, i) => {
8473
- const isLatest = i === visibleIndices.length - 1;
8474
- return /* @__PURE__ */ jsx(
8475
- m.div,
8476
- {
8477
- initial: { opacity: 0, y: 16 },
8478
- animate: {
8479
- opacity: fadeOlder ? isLatest ? 1 : 0.5 : 1,
8480
- y: 0
8481
- },
8482
- exit: { opacity: 0, y: -8 },
8483
- transition: { duration: 0.4, ease: EASE_OUT2 },
8484
- children: children[childIdx]
8485
- },
8486
- `${i}-${childIdx}`
8487
- );
8488
- }) })
8489
- }
8490
- )
8491
- }
8492
- ) });
8493
- }
8494
8427
  var waffleChartVariants = cva("w-full text-foreground", {
8495
8428
  variants: {
8496
8429
  mode: {
@@ -8572,9 +8505,9 @@ function WaffleChart(_a) {
8572
8505
  }
8573
8506
  return cells;
8574
8507
  }, [segments, totalCells, mode]);
8575
- const barBlockData = React4.useMemo(() => {
8508
+ const { barBlocks: barBlockData, barDividerCount } = React4.useMemo(() => {
8576
8509
  var _a2;
8577
- if (mode !== "bar") return [];
8510
+ if (mode !== "bar") return { barBlocks: [], barDividerCount: 0 };
8578
8511
  const blocks = [];
8579
8512
  for (const seg of segments) {
8580
8513
  const count = Math.round(seg.value / 100 * stripes);
@@ -8597,7 +8530,7 @@ function WaffleChart(_a) {
8597
8530
  if (blocks.length > 0) {
8598
8531
  blocks[blocks.length - 1].dividerAfter = false;
8599
8532
  }
8600
- return blocks;
8533
+ return { barBlocks: blocks, barDividerCount: blocks.filter((b) => b.dividerAfter).length };
8601
8534
  }, [segments, stripes, dividers, mode]);
8602
8535
  React4.useEffect(() => {
8603
8536
  const container = containerRef.current;
@@ -8660,7 +8593,7 @@ function WaffleChart(_a) {
8660
8593
  const rowGap = gap;
8661
8594
  const colGap = gap;
8662
8595
  const dividerGap = 10;
8663
- const dividerCount = barBlockData.filter((b) => b.dividerAfter).length;
8596
+ const dividerCount = barDividerCount;
8664
8597
  const targetSize = 4;
8665
8598
  const barRows = Math.max(1, Math.floor((h + rowGap) / (targetSize + rowGap)));
8666
8599
  const blockH = (h - (barRows - 1) * rowGap) / barRows;
@@ -8719,13 +8652,17 @@ function WaffleChart(_a) {
8719
8652
  const w = rect.width;
8720
8653
  const h = rect.height;
8721
8654
  if (w === 0 || h === 0) return;
8722
- canvas.width = w * dpr;
8723
- canvas.height = h * dpr;
8724
- canvas.style.width = `${w}px`;
8725
- canvas.style.height = `${h}px`;
8655
+ const newW = Math.round(w * dpr);
8656
+ const newH = Math.round(h * dpr);
8657
+ if (canvas.width !== newW || canvas.height !== newH) {
8658
+ canvas.width = newW;
8659
+ canvas.height = newH;
8660
+ canvas.style.width = `${w}px`;
8661
+ canvas.style.height = `${h}px`;
8662
+ }
8726
8663
  const ctx = canvas.getContext("2d");
8727
8664
  if (!ctx) return;
8728
- ctx.scale(dpr, dpr);
8665
+ ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
8729
8666
  ctx.clearRect(0, 0, w, h);
8730
8667
  if (mode === "grid") {
8731
8668
  drawGrid(ctx, w, h);
@@ -8769,11 +8706,14 @@ function WaffleChart(_a) {
8769
8706
  clearTimeout(timeout);
8770
8707
  };
8771
8708
  }, [draw]);
8709
+ const ariaLabel = segments.filter((s) => s.label).map((s) => `${s.label} ${s.value}%`).join(", ") || "Chart";
8772
8710
  return /* @__PURE__ */ jsx(
8773
8711
  "div",
8774
8712
  __spreadProps(__spreadValues({
8775
8713
  ref: containerRef,
8776
8714
  "data-slot": "waffle-chart",
8715
+ role: "img",
8716
+ "aria-label": ariaLabel,
8777
8717
  className: cn(waffleChartVariants({ mode, size }), className)
8778
8718
  }, props), {
8779
8719
  children: /* @__PURE__ */ jsx("canvas", { ref: canvasRef, className: "block size-full" })
@@ -8862,9 +8802,9 @@ function SubtleShader(_a) {
8862
8802
  return;
8863
8803
  }
8864
8804
  const t = (now - startTime) * 8e-5;
8865
- const isDark3 = document.documentElement.classList.contains("dark");
8866
- const baseAlpha = isDark3 ? 0.06 : 0.04;
8867
- const colors = isDark3 ? PALETTES[palette].dark : PALETTES[palette].light;
8805
+ const isDark4 = document.documentElement.classList.contains("dark");
8806
+ const baseAlpha = isDark4 ? 0.06 : 0.04;
8807
+ const colors = isDark4 ? PALETTES[palette].dark : PALETTES[palette].light;
8868
8808
  ctx.clearRect(0, 0, w, h);
8869
8809
  const blobs = [
8870
8810
  {
@@ -8905,6 +8845,7 @@ function SubtleShader(_a) {
8905
8845
  "canvas",
8906
8846
  __spreadValues({
8907
8847
  ref: canvasRef,
8848
+ "aria-hidden": "true",
8908
8849
  "data-slot": "subtle-shader",
8909
8850
  className: cn("absolute inset-0 h-full w-full", className),
8910
8851
  style: { imageRendering: "auto", filter: "blur(40px)" }
@@ -9664,6 +9605,6 @@ function AppShell({
9664
9605
  ] });
9665
9606
  }
9666
9607
 
9667
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnimatedCounter, AppShell, ApprovalActions, ApprovalButton, ApprovalDialog, ArticleCard, AsciiShader, AspectRatio, AuditLog, AuditLogContent, AuditLogDetail, AuditLogEntry, AuditLogIcon, AuditLogMessage, AuditLogMeta, AuditLogTime, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, BgShader, Blockquote, BlockyShader, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar2 as Calendar, CalendarDayButton, Callout, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CaseCard, Checkbox, CodeBlock, Col, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Comment, CommentActions, CommentAuthor, CommentAvatar, CommentBody, CommentContent, CommentHeader, CommentThread, CommentTime, ComplianceScore, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, DataTable, DataTableColumnHeader, DataTableFacetedFilter, DataTablePagination, DataTableToolbar, DataTableViewOptions, DatePicker, DateRangePicker, DeadlineCountdown, DescriptionList, DescriptionListDetail, DescriptionListItem, DescriptionListTerm, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, EntityHeader, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FileUpload, FilterBar, FilterChip, FilterClear, Grid, H1, H2, H3, H4, HoverCard, HoverCardContent, HoverCardTrigger, InlineCode, InlineEdit, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Large, Lead, List, LoadingOverlay, LogoVasp, Marquee, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Muted, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, NumberInput, P, PageCta, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PolicyBanner, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, Prose, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, RiskGauge, ScrollArea, ScrollBar, SearchInput, SegmentedControl, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Small, Spinner, SplitPane, SplitPaneDivider, SplitPanePanel, Stat, StatLabel, StatTrend, StatValue, StatusIndicator, StepProgress, StepProgressConnector, StepProgressContent, StepProgressDescription, StepProgressIndicator, StepProgressItem, StepProgressTitle, StreamingCards, StripedBar, SubtleShader, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tag, TeamCard, Textarea, ThemeScript, Timeline, TimelineContent, TimelineDot, TimelineItem, TimelineTime, TimelineTitle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Typewriter, VisuallyHidden, WaffleChart, auditLogEntryVariants, badgeVariants, buttonGroupVariants, calloutVariants, complianceScoreVariants, deadlineCountdownVariants, headerVariants as entityHeaderVariants, logoVaspVariants, navigationMenuTriggerStyle, policyBannerVariants, TIER_COLORS as riskGaugeTierColors, statusIndicatorVariants, stepProgressVariants, tabsListVariants, tagVariants, toggleVariants, trendVariants, useCarousel, useCarouselState, useClipboard, useComboboxAnchor, useDataTable, useDebounce, useDisclosure, useIntersectionObserver, useIsMobile, useLocalStorage, useMediaQuery, useSidebar, waffleChartVariants };
9608
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertAction, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnimatedCounter, AppShell, ApprovalActions, ApprovalButton, ApprovalDialog, ArticleCard, AsciiShader, AspectRatio, AuditLog, AuditLogContent, AuditLogDetail, AuditLogEntry, AuditLogIcon, AuditLogMessage, AuditLogMeta, AuditLogTime, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, BgShader, Blockquote, BlockyShader, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar2 as Calendar, CalendarDayButton, Callout, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, CaseCard, Checkbox, CodeBlock, Col, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxCollection, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxLabel, ComboboxList, ComboboxSeparator, ComboboxTrigger, ComboboxValue, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, Comment, CommentActions, CommentAuthor, CommentAvatar, CommentBody, CommentContent, CommentHeader, CommentThread, CommentTime, ComplianceScore, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CopyButton, DataTable, DataTableColumnHeader, DataTableFacetedFilter, DataTablePagination, DataTableToolbar, DataTableViewOptions, DatePicker, DateRangePicker, DeadlineCountdown, DescriptionList, DescriptionListDetail, DescriptionListItem, DescriptionListTerm, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, EntityHeader, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FileUpload, FilterBar, FilterChip, FilterClear, Grid, H1, H2, H3, H4, HoverCard, HoverCardContent, HoverCardTrigger, InlineCode, InlineEdit, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Kbd, KbdGroup, Large, Lead, List, LoadingOverlay, LogoVasp, Marquee, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, Muted, NativeSelect, NativeSelectOptGroup, NativeSelectOption, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, NumberInput, P, PageCta, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PolicyBanner, Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, Prose, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, RiskGauge, ScrollArea, ScrollBar, SearchInput, SegmentedControl, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Small, Spinner, SplitPane, SplitPaneDivider, SplitPanePanel, Stat, StatLabel, StatTrend, StatValue, StatusIndicator, StepProgress, StepProgressConnector, StepProgressContent, StepProgressDescription, StepProgressIndicator, StepProgressItem, StepProgressTitle, StripedBar, SubtleShader, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tag, TeamCard, Textarea, ThemeScript, Timeline, TimelineContent, TimelineDot, TimelineItem, TimelineTime, TimelineTitle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Typewriter, VisuallyHidden, WaffleChart, badgeVariants, buttonGroupVariants, calloutVariants, complianceScoreVariants, deadlineCountdownVariants, headerVariants as entityHeaderVariants, logoVaspVariants, navigationMenuTriggerStyle, policyBannerVariants, TIER_COLORS as riskGaugeTierColors, statusIndicatorVariants, stepProgressVariants, tabsListVariants, tagVariants, toggleVariants, trendVariants, useCarousel, useCarouselState, useClipboard, useComboboxAnchor, useDataTable, useDebounce, useDisclosure, useIntersectionObserver, useIsMobile, useLocalStorage, useMediaQuery, useSidebar, waffleChartVariants };
9668
9609
  //# sourceMappingURL=index.js.map
9669
9610
  //# sourceMappingURL=index.js.map