@cogentic-co/ds 0.5.5 → 0.6.1

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 +39 -53
  56. package/dist/index.js +148 -175
  57. package/dist/index.js.map +1 -1
  58. package/package.json +24 -34
  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,22 @@ 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(
940
+ "flex items-start gap-3 px-4 py-3 text-sm transition-colors hover:bg-muted/50",
941
+ className
942
+ )
973
943
  }, props)
974
944
  );
975
945
  }
@@ -1123,7 +1093,7 @@ var badgeVariants = cva(
1123
1093
  outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
1124
1094
  ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
1125
1095
  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"
1096
+ 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
1097
  }
1128
1098
  },
1129
1099
  defaultVariants: {
@@ -1178,32 +1148,16 @@ var BAYER = [
1178
1148
  ];
1179
1149
  var BAYER_SCALE = 4;
1180
1150
  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 }) {
1151
+ var DEFAULT_COLORS = {
1152
+ light: { fg: [220, 223, 227], bg: [250, 250, 250] },
1153
+ dark: { fg: [26, 35, 52], bg: [58, 74, 92] }
1154
+ };
1155
+ function isDark2() {
1156
+ return document.documentElement.classList.contains("dark");
1157
+ }
1158
+ function BgShader({ className, colors = DEFAULT_COLORS }) {
1159
+ const colorsRef = useRef(colors);
1160
+ colorsRef.current = colors;
1207
1161
  const canvasRef = useRef(null);
1208
1162
  const rafRef = useRef(0);
1209
1163
  const visibleRef = useRef(false);
@@ -1212,12 +1166,20 @@ function BgShader({ className }) {
1212
1166
  const canvas = canvasRef.current;
1213
1167
  if (!canvas) return;
1214
1168
  const mq = window.matchMedia("(prefers-reduced-motion: reduce)");
1215
- const reducedMotion = mq.matches;
1169
+ let reducedMotion = mq.matches;
1170
+ const onMotionChange = (e) => {
1171
+ reducedMotion = e.matches;
1172
+ };
1173
+ mq.addEventListener("change", onMotionChange);
1216
1174
  const ctx = canvas.getContext("2d");
1217
1175
  if (!ctx) return;
1218
- let { fg, bg } = resolveColors();
1176
+ const resolve = () => {
1177
+ const c = colorsRef.current;
1178
+ return isDark2() ? c.dark : c.light;
1179
+ };
1180
+ let { fg, bg } = resolve();
1219
1181
  const updateColors = () => {
1220
- const resolved = resolveColors();
1182
+ const resolved = resolve();
1221
1183
  fg = resolved.fg;
1222
1184
  bg = resolved.bg;
1223
1185
  };
@@ -1239,6 +1201,9 @@ function BgShader({ className }) {
1239
1201
  );
1240
1202
  ioObs.observe(canvas);
1241
1203
  const startTime = performance.now();
1204
+ let cachedImageData = null;
1205
+ let cachedW = 0;
1206
+ let cachedH = 0;
1242
1207
  const render = (now) => {
1243
1208
  if (!visibleRef.current || reducedMotion) return;
1244
1209
  frameCount.current++;
@@ -1258,8 +1223,12 @@ function BgShader({ className }) {
1258
1223
  canvas.width = cw;
1259
1224
  canvas.height = ch;
1260
1225
  }
1261
- const imageData = ctx.createImageData(cw, ch);
1262
- const data = imageData.data;
1226
+ if (!cachedImageData || cachedW !== cw || cachedH !== ch) {
1227
+ cachedImageData = ctx.createImageData(cw, ch);
1228
+ cachedW = cw;
1229
+ cachedH = ch;
1230
+ }
1231
+ const data = cachedImageData.data;
1263
1232
  const time = (now - startTime) / 1e3 * 0.5;
1264
1233
  const t3 = time / 3;
1265
1234
  const aspect = w / h;
@@ -1281,23 +1250,18 @@ function BgShader({ className }) {
1281
1250
  const by = Math.floor(oy / BAYER_SCALE) & 3;
1282
1251
  const threshold = BAYER[bx + by * 4];
1283
1252
  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
- }
1253
+ const c = gray > threshold ? fg : bg;
1254
+ data[idx] = c[0];
1255
+ data[idx + 1] = c[1];
1256
+ data[idx + 2] = c[2];
1293
1257
  data[idx + 3] = 255;
1294
1258
  }
1295
1259
  }
1296
- ctx.putImageData(imageData, 0, 0);
1260
+ ctx.putImageData(cachedImageData, 0, 0);
1297
1261
  rafRef.current = requestAnimationFrame(render);
1298
1262
  };
1299
1263
  if (reducedMotion) {
1300
- requestAnimationFrame(() => {
1264
+ rafRef.current = requestAnimationFrame(() => {
1301
1265
  visibleRef.current = true;
1302
1266
  frameCount.current = 1;
1303
1267
  const w = canvas.clientWidth;
@@ -1340,21 +1304,30 @@ function BgShader({ className }) {
1340
1304
  ioObs.disconnect();
1341
1305
  mutObs.disconnect();
1342
1306
  darkMq.removeEventListener("change", updateColors);
1307
+ mq.removeEventListener("change", onMotionChange);
1343
1308
  };
1344
1309
  }, []);
1345
- return /* @__PURE__ */ jsx("section", { className: cn("absolute inset-0 opacity-50", className), "data-slot": "bg-shader", children: /* @__PURE__ */ jsx(
1346
- "canvas",
1310
+ return /* @__PURE__ */ jsx(
1311
+ "div",
1347
1312
  {
1348
- ref: canvasRef,
1349
- className: "block h-full w-full",
1350
- style: { imageRendering: "pixelated" }
1313
+ "aria-hidden": "true",
1314
+ className: cn("absolute inset-0 opacity-50", className),
1315
+ "data-slot": "bg-shader",
1316
+ children: /* @__PURE__ */ jsx(
1317
+ "canvas",
1318
+ {
1319
+ ref: canvasRef,
1320
+ className: "block h-full w-full",
1321
+ style: { imageRendering: "pixelated" }
1322
+ }
1323
+ )
1351
1324
  }
1352
- ) });
1325
+ );
1353
1326
  }
1354
1327
  var CHARS2 = " .:-=+*#%@";
1355
1328
  var CELL2 = 14;
1356
1329
  var FONT_SIZE2 = 12;
1357
- function isDark2() {
1330
+ function isDark3() {
1358
1331
  return document.documentElement.classList.contains("dark");
1359
1332
  }
1360
1333
  function BlockyShader(_a) {
@@ -1373,9 +1346,9 @@ function BlockyShader(_a) {
1373
1346
  if (!ctx) return;
1374
1347
  const mq = window.matchMedia("(prefers-reduced-motion: reduce)");
1375
1348
  if (mq.matches) return;
1376
- let fg = isDark2() ? "rgba(255,255,255,0.12)" : "rgba(0,0,0,0.07)";
1349
+ let fg = isDark3() ? "rgba(255,255,255,0.12)" : "rgba(0,0,0,0.07)";
1377
1350
  const updateColors = () => {
1378
- fg = isDark2() ? "rgba(255,255,255,0.12)" : "rgba(0,0,0,0.07)";
1351
+ fg = isDark3() ? "rgba(255,255,255,0.12)" : "rgba(0,0,0,0.07)";
1379
1352
  };
1380
1353
  const darkMq = window.matchMedia("(prefers-color-scheme: dark)");
1381
1354
  darkMq.addEventListener("change", updateColors);
@@ -1453,6 +1426,7 @@ function BlockyShader(_a) {
1453
1426
  "canvas",
1454
1427
  __spreadValues({
1455
1428
  ref: canvasRef,
1429
+ "aria-hidden": "true",
1456
1430
  "data-slot": "blocky-shader",
1457
1431
  className: cn("absolute inset-0 h-full w-full", className)
1458
1432
  }, props)
@@ -3164,6 +3138,7 @@ function ComplianceScore(_a) {
3164
3138
  setAnimatedScore(clampedScore);
3165
3139
  return;
3166
3140
  }
3141
+ let rafId;
3167
3142
  const observer = new IntersectionObserver(
3168
3143
  ([entry]) => {
3169
3144
  if (!entry.isIntersecting || hasAnimated.current) return;
@@ -3174,14 +3149,17 @@ function ComplianceScore(_a) {
3174
3149
  const progress = Math.min((now - start) / duration, 1);
3175
3150
  const eased = 1 - (1 - progress) ** 3;
3176
3151
  setAnimatedScore(Math.round(clampedScore * eased));
3177
- if (progress < 1) requestAnimationFrame(tick);
3152
+ if (progress < 1) rafId = requestAnimationFrame(tick);
3178
3153
  }
3179
- requestAnimationFrame(tick);
3154
+ rafId = requestAnimationFrame(tick);
3180
3155
  },
3181
3156
  { threshold: 0.5 }
3182
3157
  );
3183
3158
  observer.observe(el);
3184
- return () => observer.disconnect();
3159
+ return () => {
3160
+ observer.disconnect();
3161
+ cancelAnimationFrame(rafId);
3162
+ };
3185
3163
  }, [clampedScore]);
3186
3164
  const dashOffset = circumference - animatedScore / 100 * circumference;
3187
3165
  const scoreColor = color != null ? color : getScoreColor(clampedScore);
@@ -3191,6 +3169,11 @@ function ComplianceScore(_a) {
3191
3169
  __spreadProps(__spreadValues({
3192
3170
  ref,
3193
3171
  "data-slot": "compliance-score",
3172
+ role: "meter",
3173
+ "aria-valuenow": score,
3174
+ "aria-valuemin": 0,
3175
+ "aria-valuemax": 100,
3176
+ "aria-label": label ? `${label}: ${score}%` : `Compliance score: ${score}%`,
3194
3177
  className: cn(complianceScoreVariants({ size }), className)
3195
3178
  }, props), {
3196
3179
  children: [
@@ -4743,12 +4726,19 @@ function DeadlineCountdown(_a) {
4743
4726
  "showDot",
4744
4727
  "className"
4745
4728
  ]);
4729
+ const [, setTick] = React4.useState(0);
4730
+ React4.useEffect(() => {
4731
+ const id = setInterval(() => setTick((t) => t + 1), 6e4);
4732
+ return () => clearInterval(id);
4733
+ }, []);
4746
4734
  const urgency = urgencyOverride != null ? urgencyOverride : getAutoUrgency(deadline, warningDays, criticalDays);
4747
4735
  const timeText = formatTimeRemaining(deadline);
4748
4736
  return /* @__PURE__ */ jsxs(
4749
4737
  "span",
4750
4738
  __spreadProps(__spreadValues({
4751
4739
  "data-slot": "deadline-countdown",
4740
+ "aria-live": "polite",
4741
+ "aria-atomic": "true",
4752
4742
  className: cn(deadlineCountdownVariants({ urgency }), className)
4753
4743
  }, props), {
4754
4744
  children: [
@@ -5455,7 +5445,7 @@ function FilterChip(_a) {
5455
5445
  )
5456
5446
  }, props), {
5457
5447
  children: [
5458
- /* @__PURE__ */ jsx(PlusCircleIcon, { className: "size-3.5 text-muted-foreground" }),
5448
+ !value && /* @__PURE__ */ jsx(PlusCircleIcon, { className: "size-3.5 text-muted-foreground" }),
5459
5449
  /* @__PURE__ */ jsx("span", { className: "font-medium", children: label }),
5460
5450
  value && /* @__PURE__ */ jsxs(Fragment, { children: [
5461
5451
  /* @__PURE__ */ jsx("span", { className: "mx-0.5 h-4 w-px bg-border" }),
@@ -5958,10 +5948,27 @@ function KbdGroup(_a) {
5958
5948
  }, props)
5959
5949
  );
5960
5950
  }
5951
+ function LinesSpinner(props) {
5952
+ return /* @__PURE__ */ jsx(
5953
+ "svg",
5954
+ __spreadProps(__spreadValues({
5955
+ xmlns: "http://www.w3.org/2000/svg",
5956
+ viewBox: "0 0 24 24",
5957
+ fill: "none",
5958
+ stroke: "currentColor",
5959
+ strokeWidth: "2",
5960
+ strokeLinecap: "round",
5961
+ strokeLinejoin: "round"
5962
+ }, props), {
5963
+ children: /* @__PURE__ */ jsx("path", { d: "M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48 2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48 2.83-2.83" })
5964
+ })
5965
+ );
5966
+ }
5961
5967
  function Spinner(_a) {
5962
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
5968
+ var _b = _a, { variant = "circle", className } = _b, props = __objRest(_b, ["variant", "className"]);
5969
+ const Icon = variant === "lines" ? LinesSpinner : Loader2Icon;
5963
5970
  return /* @__PURE__ */ jsx(
5964
- Loader2Icon,
5971
+ Icon,
5965
5972
  __spreadValues({
5966
5973
  role: "status",
5967
5974
  "aria-label": "Loading",
@@ -6743,7 +6750,7 @@ function Progress(_a) {
6743
6750
  const id = requestAnimationFrame(() => setMountedValue(value));
6744
6751
  return () => cancelAnimationFrame(id);
6745
6752
  }
6746
- setMountedValue(value);
6753
+ setMountedValue((prev) => prev === value ? prev : value);
6747
6754
  }, [animate, value]);
6748
6755
  return /* @__PURE__ */ jsxs(
6749
6756
  Progress$1.Root,
@@ -6977,6 +6984,11 @@ function RiskGauge(_a) {
6977
6984
  __spreadProps(__spreadValues({
6978
6985
  ref,
6979
6986
  "data-slot": "risk-gauge",
6987
+ role: "meter",
6988
+ "aria-valuenow": score,
6989
+ "aria-valuemin": 0,
6990
+ "aria-valuemax": 100,
6991
+ "aria-label": label != null ? label : `Risk score: ${score}/100`,
6980
6992
  className: cn("flex flex-col gap-1.5", className)
6981
6993
  }, props), {
6982
6994
  children: [
@@ -8333,6 +8345,7 @@ function StepProgress(_a) {
8333
8345
  __spreadValues({
8334
8346
  "data-slot": "step-progress",
8335
8347
  "data-orientation": orientation != null ? orientation : "vertical",
8348
+ role: "list",
8336
8349
  className: cn(stepProgressVariants({ orientation }), className)
8337
8350
  }, props)
8338
8351
  );
@@ -8344,6 +8357,8 @@ function StepProgressItem(_a) {
8344
8357
  __spreadValues({
8345
8358
  "data-slot": "step-progress-item",
8346
8359
  "data-status": status,
8360
+ role: "listitem",
8361
+ "aria-current": status === "current" ? "step" : void 0,
8347
8362
  className: cn(
8348
8363
  "relative flex",
8349
8364
  // Vertical: row layout, bottom padding
@@ -8437,60 +8452,6 @@ function StepProgressDescription(_a) {
8437
8452
  }, props)
8438
8453
  );
8439
8454
  }
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
8455
  var waffleChartVariants = cva("w-full text-foreground", {
8495
8456
  variants: {
8496
8457
  mode: {
@@ -8572,9 +8533,13 @@ function WaffleChart(_a) {
8572
8533
  }
8573
8534
  return cells;
8574
8535
  }, [segments, totalCells, mode]);
8575
- const barBlockData = React4.useMemo(() => {
8536
+ const { barBlocks: barBlockData, barDividerCount } = React4.useMemo(() => {
8576
8537
  var _a2;
8577
- if (mode !== "bar") return [];
8538
+ if (mode !== "bar")
8539
+ return {
8540
+ barBlocks: [],
8541
+ barDividerCount: 0
8542
+ };
8578
8543
  const blocks = [];
8579
8544
  for (const seg of segments) {
8580
8545
  const count = Math.round(seg.value / 100 * stripes);
@@ -8597,7 +8562,7 @@ function WaffleChart(_a) {
8597
8562
  if (blocks.length > 0) {
8598
8563
  blocks[blocks.length - 1].dividerAfter = false;
8599
8564
  }
8600
- return blocks;
8565
+ return { barBlocks: blocks, barDividerCount: blocks.filter((b) => b.dividerAfter).length };
8601
8566
  }, [segments, stripes, dividers, mode]);
8602
8567
  React4.useEffect(() => {
8603
8568
  const container = containerRef.current;
@@ -8660,7 +8625,7 @@ function WaffleChart(_a) {
8660
8625
  const rowGap = gap;
8661
8626
  const colGap = gap;
8662
8627
  const dividerGap = 10;
8663
- const dividerCount = barBlockData.filter((b) => b.dividerAfter).length;
8628
+ const dividerCount = barDividerCount;
8664
8629
  const targetSize = 4;
8665
8630
  const barRows = Math.max(1, Math.floor((h + rowGap) / (targetSize + rowGap)));
8666
8631
  const blockH = (h - (barRows - 1) * rowGap) / barRows;
@@ -8719,13 +8684,17 @@ function WaffleChart(_a) {
8719
8684
  const w = rect.width;
8720
8685
  const h = rect.height;
8721
8686
  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`;
8687
+ const newW = Math.round(w * dpr);
8688
+ const newH = Math.round(h * dpr);
8689
+ if (canvas.width !== newW || canvas.height !== newH) {
8690
+ canvas.width = newW;
8691
+ canvas.height = newH;
8692
+ canvas.style.width = `${w}px`;
8693
+ canvas.style.height = `${h}px`;
8694
+ }
8726
8695
  const ctx = canvas.getContext("2d");
8727
8696
  if (!ctx) return;
8728
- ctx.scale(dpr, dpr);
8697
+ ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
8729
8698
  ctx.clearRect(0, 0, w, h);
8730
8699
  if (mode === "grid") {
8731
8700
  drawGrid(ctx, w, h);
@@ -8769,11 +8738,14 @@ function WaffleChart(_a) {
8769
8738
  clearTimeout(timeout);
8770
8739
  };
8771
8740
  }, [draw]);
8741
+ const ariaLabel = segments.filter((s) => s.label).map((s) => `${s.label} ${s.value}%`).join(", ") || "Chart";
8772
8742
  return /* @__PURE__ */ jsx(
8773
8743
  "div",
8774
8744
  __spreadProps(__spreadValues({
8775
8745
  ref: containerRef,
8776
8746
  "data-slot": "waffle-chart",
8747
+ role: "img",
8748
+ "aria-label": ariaLabel,
8777
8749
  className: cn(waffleChartVariants({ mode, size }), className)
8778
8750
  }, props), {
8779
8751
  children: /* @__PURE__ */ jsx("canvas", { ref: canvasRef, className: "block size-full" })
@@ -8862,9 +8834,9 @@ function SubtleShader(_a) {
8862
8834
  return;
8863
8835
  }
8864
8836
  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;
8837
+ const isDark4 = document.documentElement.classList.contains("dark");
8838
+ const baseAlpha = isDark4 ? 0.06 : 0.04;
8839
+ const colors = isDark4 ? PALETTES[palette].dark : PALETTES[palette].light;
8868
8840
  ctx.clearRect(0, 0, w, h);
8869
8841
  const blobs = [
8870
8842
  {
@@ -8905,6 +8877,7 @@ function SubtleShader(_a) {
8905
8877
  "canvas",
8906
8878
  __spreadValues({
8907
8879
  ref: canvasRef,
8880
+ "aria-hidden": "true",
8908
8881
  "data-slot": "subtle-shader",
8909
8882
  className: cn("absolute inset-0 h-full w-full", className),
8910
8883
  style: { imageRendering: "auto", filter: "blur(40px)" }
@@ -9664,6 +9637,6 @@ function AppShell({
9664
9637
  ] });
9665
9638
  }
9666
9639
 
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 };
9640
+ 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
9641
  //# sourceMappingURL=index.js.map
9669
9642
  //# sourceMappingURL=index.js.map