@octaviaflow/core 3.1.0-beta.54 → 3.1.0-beta.55

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.
package/dist/index.js CHANGED
@@ -24802,12 +24802,93 @@ function VersionHistory({
24802
24802
  }
24803
24803
  VersionHistory.displayName = "VersionHistory";
24804
24804
 
24805
+ // src/components/StatusList/StatusList.tsx
24806
+ import { Fragment as Fragment42, jsx as jsx112, jsxs as jsxs107 } from "react/jsx-runtime";
24807
+ var TONE_TO_CHIP2 = {
24808
+ success: "success",
24809
+ running: "primary",
24810
+ warning: "warning",
24811
+ danger: "error",
24812
+ neutral: "default",
24813
+ info: "primary"
24814
+ };
24815
+ function StatusList({
24816
+ items,
24817
+ title,
24818
+ action,
24819
+ dense = false,
24820
+ max,
24821
+ emptyLabel = "Nothing to show",
24822
+ onItemClick,
24823
+ className,
24824
+ ...rest
24825
+ }) {
24826
+ const visible = typeof max === "number" ? items.slice(0, max) : items;
24827
+ const overflow = items.length - visible.length;
24828
+ const renderRowInner = (item) => /* @__PURE__ */ jsxs107(Fragment42, { children: [
24829
+ /* @__PURE__ */ jsx112(
24830
+ "span",
24831
+ {
24832
+ className: "ods-status-list__lead",
24833
+ "data-tone": item.tone ?? "neutral",
24834
+ "aria-hidden": "true",
24835
+ children: item.icon ?? /* @__PURE__ */ jsx112("span", { className: "ods-status-list__dot" })
24836
+ }
24837
+ ),
24838
+ /* @__PURE__ */ jsxs107("span", { className: "ods-status-list__text", children: [
24839
+ /* @__PURE__ */ jsx112("span", { className: "ods-status-list__name", children: item.name }),
24840
+ item.meta != null && /* @__PURE__ */ jsx112("span", { className: "ods-status-list__meta", children: item.meta })
24841
+ ] }),
24842
+ item.sparkline && item.sparkline.length > 1 && /* @__PURE__ */ jsx112("span", { className: "ods-status-list__spark", children: /* @__PURE__ */ jsx112(Sparkline, { data: item.sparkline, width: 72, height: 22 }) }),
24843
+ item.status != null && /* @__PURE__ */ jsx112(Chip, { size: "sm", variant: TONE_TO_CHIP2[item.tone ?? "neutral"], children: item.status }),
24844
+ item.trailing != null && /* @__PURE__ */ jsx112("span", { className: "ods-status-list__trailing", children: item.trailing })
24845
+ ] });
24846
+ return /* @__PURE__ */ jsxs107("div", { className: cn("ods-status-list", className), ...rest, children: [
24847
+ (title != null || action != null) && /* @__PURE__ */ jsxs107("div", { className: "ods-status-list__header", children: [
24848
+ title != null && /* @__PURE__ */ jsx112("h3", { className: "ods-status-list__title", children: title }),
24849
+ action != null && /* @__PURE__ */ jsx112("div", { className: "ods-status-list__action", children: action })
24850
+ ] }),
24851
+ visible.length === 0 ? /* @__PURE__ */ jsx112("div", { className: "ods-status-list__empty", children: emptyLabel }) : /* @__PURE__ */ jsx112(
24852
+ "ul",
24853
+ {
24854
+ className: cn(
24855
+ "ods-status-list__rows",
24856
+ dense && "ods-status-list__rows--dense"
24857
+ ),
24858
+ children: visible.map((item) => {
24859
+ const interactive = Boolean(item.href || onItemClick);
24860
+ const rowClass = cn(
24861
+ "ods-status-list__row",
24862
+ interactive && "ods-status-list__row--interactive",
24863
+ item.muted && "ods-status-list__row--muted"
24864
+ );
24865
+ return /* @__PURE__ */ jsx112("li", { className: "ods-status-list__item", children: item.href ? /* @__PURE__ */ jsx112("a", { className: rowClass, href: item.href, children: renderRowInner(item) }) : onItemClick ? /* @__PURE__ */ jsx112(
24866
+ "button",
24867
+ {
24868
+ type: "button",
24869
+ className: rowClass,
24870
+ onClick: () => onItemClick(item),
24871
+ children: renderRowInner(item)
24872
+ }
24873
+ ) : /* @__PURE__ */ jsx112("div", { className: rowClass, children: renderRowInner(item) }) }, item.id);
24874
+ })
24875
+ }
24876
+ ),
24877
+ overflow > 0 && /* @__PURE__ */ jsxs107("div", { className: "ods-status-list__more", children: [
24878
+ "+",
24879
+ overflow,
24880
+ " more"
24881
+ ] })
24882
+ ] });
24883
+ }
24884
+ StatusList.displayName = "StatusList";
24885
+
24805
24886
  // src/components/Slider/Slider.tsx
24806
24887
  import {
24807
24888
  forwardRef as forwardRef94,
24808
24889
  useId as useId51
24809
24890
  } from "react";
24810
- import { jsx as jsx112, jsxs as jsxs107 } from "react/jsx-runtime";
24891
+ import { jsx as jsx113, jsxs as jsxs108 } from "react/jsx-runtime";
24811
24892
  var Slider = forwardRef94(function Slider2({
24812
24893
  label,
24813
24894
  value,
@@ -24841,7 +24922,7 @@ var Slider = forwardRef94(function Slider2({
24841
24922
  const valueText = String(display);
24842
24923
  const handle = (e) => onChange?.(Number(e.target.value));
24843
24924
  const describedBy = [consumerDescribedBy, hintId].filter(Boolean).join(" ") || void 0;
24844
- return /* @__PURE__ */ jsxs107(
24925
+ return /* @__PURE__ */ jsxs108(
24845
24926
  "div",
24846
24927
  {
24847
24928
  className: cn(
@@ -24853,8 +24934,8 @@ var Slider = forwardRef94(function Slider2({
24853
24934
  className
24854
24935
  ),
24855
24936
  children: [
24856
- (label || showValue) && /* @__PURE__ */ jsxs107("div", { className: "ods-slider__head", children: [
24857
- label && /* @__PURE__ */ jsx112(
24937
+ (label || showValue) && /* @__PURE__ */ jsxs108("div", { className: "ods-slider__head", children: [
24938
+ label && /* @__PURE__ */ jsx113(
24858
24939
  "label",
24859
24940
  {
24860
24941
  id: labelId,
@@ -24863,17 +24944,17 @@ var Slider = forwardRef94(function Slider2({
24863
24944
  children: label
24864
24945
  }
24865
24946
  ),
24866
- showValue && /* @__PURE__ */ jsx112("span", { className: "ods-slider__value", "aria-hidden": "true", children: display })
24947
+ showValue && /* @__PURE__ */ jsx113("span", { className: "ods-slider__value", "aria-hidden": "true", children: display })
24867
24948
  ] }),
24868
- /* @__PURE__ */ jsxs107("div", { className: "ods-slider__track", children: [
24869
- /* @__PURE__ */ jsx112(
24949
+ /* @__PURE__ */ jsxs108("div", { className: "ods-slider__track", children: [
24950
+ /* @__PURE__ */ jsx113(
24870
24951
  "span",
24871
24952
  {
24872
24953
  className: "ods-slider__fill",
24873
24954
  style: { width: `${pct}%` }
24874
24955
  }
24875
24956
  ),
24876
- /* @__PURE__ */ jsx112(
24957
+ /* @__PURE__ */ jsx113(
24877
24958
  "input",
24878
24959
  {
24879
24960
  ...rest,
@@ -24897,22 +24978,22 @@ var Slider = forwardRef94(function Slider2({
24897
24978
  ] }),
24898
24979
  marks && marks.length > 0 && // Marks are decorative — aria-hidden so the screen reader hears
24899
24980
  // the formatted value, not "tick mark, tick mark, …".
24900
- /* @__PURE__ */ jsx112("div", { className: "ods-slider__marks", "aria-hidden": "true", children: marks.map((m) => {
24981
+ /* @__PURE__ */ jsx113("div", { className: "ods-slider__marks", "aria-hidden": "true", children: marks.map((m) => {
24901
24982
  const left = (m.value - min) / span * 100;
24902
- return /* @__PURE__ */ jsxs107(
24983
+ return /* @__PURE__ */ jsxs108(
24903
24984
  "div",
24904
24985
  {
24905
24986
  className: "ods-slider__mark",
24906
24987
  style: { left: `${left}%` },
24907
24988
  children: [
24908
- /* @__PURE__ */ jsx112("span", { className: "ods-slider__mark-tick" }),
24909
- m.label && /* @__PURE__ */ jsx112("span", { className: "ods-slider__mark-label", children: m.label })
24989
+ /* @__PURE__ */ jsx113("span", { className: "ods-slider__mark-tick" }),
24990
+ m.label && /* @__PURE__ */ jsx113("span", { className: "ods-slider__mark-label", children: m.label })
24910
24991
  ]
24911
24992
  },
24912
24993
  m.value
24913
24994
  );
24914
24995
  }) }),
24915
- error ? /* @__PURE__ */ jsx112(
24996
+ error ? /* @__PURE__ */ jsx113(
24916
24997
  "div",
24917
24998
  {
24918
24999
  id: hintId,
@@ -24920,7 +25001,7 @@ var Slider = forwardRef94(function Slider2({
24920
25001
  role: "alert",
24921
25002
  children: error
24922
25003
  }
24923
- ) : helperText ? /* @__PURE__ */ jsx112("div", { id: hintId, className: "ods-slider__hint", children: helperText }) : null
25004
+ ) : helperText ? /* @__PURE__ */ jsx113("div", { id: hintId, className: "ods-slider__hint", children: helperText }) : null
24924
25005
  ]
24925
25006
  }
24926
25007
  );
@@ -24932,7 +25013,7 @@ import { LogoGithubIcon, LogoLinkedinIcon, LogoXIcon } from "@octaviaflow/icons"
24932
25013
  import {
24933
25014
  forwardRef as forwardRef95
24934
25015
  } from "react";
24935
- import { jsx as jsx113, jsxs as jsxs108 } from "react/jsx-runtime";
25016
+ import { jsx as jsx114, jsxs as jsxs109 } from "react/jsx-runtime";
24936
25017
  var DEFAULT_LABELS = {
24937
25018
  google: "Continue with Google",
24938
25019
  github: "Continue with GitHub",
@@ -24942,29 +25023,29 @@ var DEFAULT_LABELS = {
24942
25023
  microsoft: "Continue with Microsoft",
24943
25024
  linkedin: "Continue with LinkedIn"
24944
25025
  };
24945
- var GoogleIcon = () => /* @__PURE__ */ jsxs108("svg", { width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", "aria-hidden": "true", children: [
24946
- /* @__PURE__ */ jsx113(
25026
+ var GoogleIcon = () => /* @__PURE__ */ jsxs109("svg", { width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", "aria-hidden": "true", children: [
25027
+ /* @__PURE__ */ jsx114(
24947
25028
  "path",
24948
25029
  {
24949
25030
  d: "M17.64 9.2c0-.64-.06-1.25-.16-1.84H9v3.48h4.84a4.14 4.14 0 0 1-1.79 2.72v2.26h2.9c1.69-1.56 2.69-3.85 2.69-6.62z",
24950
25031
  fill: "#4285F4"
24951
25032
  }
24952
25033
  ),
24953
- /* @__PURE__ */ jsx113(
25034
+ /* @__PURE__ */ jsx114(
24954
25035
  "path",
24955
25036
  {
24956
25037
  d: "M9 18c2.43 0 4.47-.8 5.96-2.18l-2.9-2.26c-.8.54-1.84.86-3.06.86-2.34 0-4.33-1.58-5.04-3.71H.96v2.33A9 9 0 0 0 9 18z",
24957
25038
  fill: "#34A853"
24958
25039
  }
24959
25040
  ),
24960
- /* @__PURE__ */ jsx113(
25041
+ /* @__PURE__ */ jsx114(
24961
25042
  "path",
24962
25043
  {
24963
25044
  d: "M3.96 10.71A5.38 5.38 0 0 1 3.68 9c0-.6.1-1.18.28-1.71V4.96H.96A9 9 0 0 0 0 9c0 1.45.35 2.82.96 4.04l3-2.33z",
24964
25045
  fill: "#FBBC05"
24965
25046
  }
24966
25047
  ),
24967
- /* @__PURE__ */ jsx113(
25048
+ /* @__PURE__ */ jsx114(
24968
25049
  "path",
24969
25050
  {
24970
25051
  d: "M9 3.58c1.32 0 2.5.45 3.44 1.35l2.58-2.58A9 9 0 0 0 9 0 9 9 0 0 0 .96 4.96l3 2.33C4.67 5.16 6.66 3.58 9 3.58z",
@@ -24972,34 +25053,34 @@ var GoogleIcon = () => /* @__PURE__ */ jsxs108("svg", { width: "18", height: "18
24972
25053
  }
24973
25054
  )
24974
25055
  ] });
24975
- var AppleIcon = () => /* @__PURE__ */ jsx113("svg", { width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx113(
25056
+ var AppleIcon = () => /* @__PURE__ */ jsx114("svg", { width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx114(
24976
25057
  "path",
24977
25058
  {
24978
25059
  d: "M13.4 9.5c0-1.7 1.4-2.5 1.5-2.6-.8-1.2-2.1-1.3-2.5-1.3-1.1-.1-2.1.6-2.6.6-.6 0-1.4-.6-2.3-.6-1.2 0-2.3.7-2.9 1.8-1.2 2.1-.3 5.3.9 7 .6.9 1.3 1.8 2.2 1.8.9 0 1.2-.6 2.3-.6s1.4.6 2.3.6 1.5-.9 2.1-1.8c.7-1 1-2 1-2.1 0 0-1.9-.7-2-2.8zM11.5 4.5c.5-.6.8-1.4.7-2.2-.7 0-1.5.5-2 1.1-.4.5-.8 1.3-.7 2.1.8.1 1.6-.4 2-1z",
24979
25060
  fill: "currentColor"
24980
25061
  }
24981
25062
  ) });
24982
- var MicrosoftIcon = () => /* @__PURE__ */ jsxs108("svg", { width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", "aria-hidden": "true", children: [
24983
- /* @__PURE__ */ jsx113("rect", { x: "1", y: "1", width: "7.5", height: "7.5", fill: "#F25022" }),
24984
- /* @__PURE__ */ jsx113("rect", { x: "9.5", y: "1", width: "7.5", height: "7.5", fill: "#7FBA00" }),
24985
- /* @__PURE__ */ jsx113("rect", { x: "1", y: "9.5", width: "7.5", height: "7.5", fill: "#00A4EF" }),
24986
- /* @__PURE__ */ jsx113("rect", { x: "9.5", y: "9.5", width: "7.5", height: "7.5", fill: "#FFB900" })
25063
+ var MicrosoftIcon = () => /* @__PURE__ */ jsxs109("svg", { width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", "aria-hidden": "true", children: [
25064
+ /* @__PURE__ */ jsx114("rect", { x: "1", y: "1", width: "7.5", height: "7.5", fill: "#F25022" }),
25065
+ /* @__PURE__ */ jsx114("rect", { x: "9.5", y: "1", width: "7.5", height: "7.5", fill: "#7FBA00" }),
25066
+ /* @__PURE__ */ jsx114("rect", { x: "1", y: "9.5", width: "7.5", height: "7.5", fill: "#00A4EF" }),
25067
+ /* @__PURE__ */ jsx114("rect", { x: "9.5", y: "9.5", width: "7.5", height: "7.5", fill: "#FFB900" })
24987
25068
  ] });
24988
25069
  function resolveIcon2(provider) {
24989
25070
  switch (provider) {
24990
25071
  case "google":
24991
- return /* @__PURE__ */ jsx113(GoogleIcon, {});
25072
+ return /* @__PURE__ */ jsx114(GoogleIcon, {});
24992
25073
  case "apple":
24993
- return /* @__PURE__ */ jsx113(AppleIcon, {});
25074
+ return /* @__PURE__ */ jsx114(AppleIcon, {});
24994
25075
  case "microsoft":
24995
- return /* @__PURE__ */ jsx113(MicrosoftIcon, {});
25076
+ return /* @__PURE__ */ jsx114(MicrosoftIcon, {});
24996
25077
  case "github":
24997
- return /* @__PURE__ */ jsx113(LogoGithubIcon, { size: "sm" });
25078
+ return /* @__PURE__ */ jsx114(LogoGithubIcon, { size: "sm" });
24998
25079
  case "x":
24999
25080
  case "twitter":
25000
- return /* @__PURE__ */ jsx113(LogoXIcon, { size: "sm" });
25081
+ return /* @__PURE__ */ jsx114(LogoXIcon, { size: "sm" });
25001
25082
  case "linkedin":
25002
- return /* @__PURE__ */ jsx113(LogoLinkedinIcon, { size: "sm" });
25083
+ return /* @__PURE__ */ jsx114(LogoLinkedinIcon, { size: "sm" });
25003
25084
  case "custom":
25004
25085
  return null;
25005
25086
  }
@@ -25021,7 +25102,7 @@ var SocialButton = forwardRef95(
25021
25102
  const resolvedIcon = icon ?? resolveIcon2(provider);
25022
25103
  const resolvedLabel = label ?? children ?? (provider !== "custom" ? DEFAULT_LABELS[provider] : null);
25023
25104
  const providerClass = provider === "twitter" ? "x" : provider;
25024
- return /* @__PURE__ */ jsx113(
25105
+ return /* @__PURE__ */ jsx114(
25025
25106
  Button,
25026
25107
  {
25027
25108
  ...rest,
@@ -25055,7 +25136,7 @@ import {
25055
25136
  useState as useState52
25056
25137
  } from "react";
25057
25138
  import { DraggableIcon } from "@octaviaflow/icons";
25058
- import { jsx as jsx114, jsxs as jsxs109 } from "react/jsx-runtime";
25139
+ import { jsx as jsx115, jsxs as jsxs110 } from "react/jsx-runtime";
25059
25140
  var DT_TYPE = "application/x-ods-sortable";
25060
25141
  function Sortable({
25061
25142
  items,
@@ -25235,7 +25316,7 @@ function Sortable({
25235
25316
  if (e.key === "ArrowRight") return moveBy(1);
25236
25317
  }
25237
25318
  };
25238
- return /* @__PURE__ */ jsxs109(
25319
+ return /* @__PURE__ */ jsxs110(
25239
25320
  "div",
25240
25321
  {
25241
25322
  ...rest,
@@ -25272,7 +25353,7 @@ function Sortable({
25272
25353
  isDragging,
25273
25354
  isKeyboardActive: isKbActive
25274
25355
  };
25275
- return /* @__PURE__ */ jsxs109(
25356
+ return /* @__PURE__ */ jsxs110(
25276
25357
  "div",
25277
25358
  {
25278
25359
  ref: (el) => {
@@ -25288,7 +25369,7 @@ function Sortable({
25288
25369
  ),
25289
25370
  onDragOver: onItemDragOver(item.id),
25290
25371
  children: [
25291
- /* @__PURE__ */ jsx114(
25372
+ /* @__PURE__ */ jsx115(
25292
25373
  "span",
25293
25374
  {
25294
25375
  className: "ods-sortable__indicator ods-sortable__indicator--before",
@@ -25296,7 +25377,7 @@ function Sortable({
25296
25377
  }
25297
25378
  ),
25298
25379
  renderItem(item, idx, dragProps),
25299
- /* @__PURE__ */ jsx114(
25380
+ /* @__PURE__ */ jsx115(
25300
25381
  "span",
25301
25382
  {
25302
25383
  className: "ods-sortable__indicator ods-sortable__indicator--after",
@@ -25308,7 +25389,7 @@ function Sortable({
25308
25389
  item.id
25309
25390
  );
25310
25391
  }),
25311
- /* @__PURE__ */ jsx114("span", { className: "ods-sortable__sr", "aria-live": "polite", "aria-atomic": "true", children: kbActiveId ? `Item picked up. Use arrow keys to reorder, Space or Enter to drop, Escape to cancel.` : "" })
25392
+ /* @__PURE__ */ jsx115("span", { className: "ods-sortable__sr", "aria-live": "polite", "aria-atomic": "true", children: kbActiveId ? `Item picked up. Use arrow keys to reorder, Space or Enter to drop, Escape to cancel.` : "" })
25312
25393
  ]
25313
25394
  }
25314
25395
  );
@@ -25321,7 +25402,7 @@ var DragHandle = forwardRef96(
25321
25402
  ariaLabel: legacyAriaLabel,
25322
25403
  dragProps
25323
25404
  }, ref) {
25324
- return /* @__PURE__ */ jsx114(
25405
+ return /* @__PURE__ */ jsx115(
25325
25406
  "span",
25326
25407
  {
25327
25408
  ref,
@@ -25330,7 +25411,7 @@ var DragHandle = forwardRef96(
25330
25411
  className: cn("ods-sortable-handle", className),
25331
25412
  style,
25332
25413
  ...dragProps,
25333
- children: /* @__PURE__ */ jsx114(DraggableIcon, { size: "xs" })
25414
+ children: /* @__PURE__ */ jsx115(DraggableIcon, { size: "xs" })
25334
25415
  }
25335
25416
  );
25336
25417
  }
@@ -25341,9 +25422,9 @@ DragHandle.displayName = "DragHandle";
25341
25422
  import {
25342
25423
  Children as Children3,
25343
25424
  forwardRef as forwardRef97,
25344
- Fragment as Fragment42
25425
+ Fragment as Fragment43
25345
25426
  } from "react";
25346
- import { jsx as jsx115 } from "react/jsx-runtime";
25427
+ import { jsx as jsx116 } from "react/jsx-runtime";
25347
25428
  function resolveGap2(gap) {
25348
25429
  if (typeof gap === "string") return gap;
25349
25430
  if (gap === 0) return "0";
@@ -25382,11 +25463,11 @@ var Stack = forwardRef97(function Stack2({
25382
25463
  const Component = as ?? "div";
25383
25464
  const items = divider ? Children3.toArray(children).flatMap(
25384
25465
  (child, i, arr) => i < arr.length - 1 ? [
25385
- /* @__PURE__ */ jsx115(Fragment42, { children: child }, `item-${i}`),
25386
- /* @__PURE__ */ jsx115(Fragment42, { children: divider }, `divider-${i}`)
25387
- ] : [/* @__PURE__ */ jsx115(Fragment42, { children: child }, `item-${i}`)]
25466
+ /* @__PURE__ */ jsx116(Fragment43, { children: child }, `item-${i}`),
25467
+ /* @__PURE__ */ jsx116(Fragment43, { children: divider }, `divider-${i}`)
25468
+ ] : [/* @__PURE__ */ jsx116(Fragment43, { children: child }, `item-${i}`)]
25388
25469
  ) : children;
25389
- return /* @__PURE__ */ jsx115(
25470
+ return /* @__PURE__ */ jsx116(
25390
25471
  Component,
25391
25472
  {
25392
25473
  ...rest,
@@ -25414,13 +25495,13 @@ var Stack = forwardRef97(function Stack2({
25414
25495
  Stack.displayName = "Stack";
25415
25496
  var HStack = forwardRef97(
25416
25497
  function HStack2(props, ref) {
25417
- return /* @__PURE__ */ jsx115(Stack, { ref, direction: "row", ...props });
25498
+ return /* @__PURE__ */ jsx116(Stack, { ref, direction: "row", ...props });
25418
25499
  }
25419
25500
  );
25420
25501
  HStack.displayName = "HStack";
25421
25502
  var VStack = forwardRef97(
25422
25503
  function VStack2(props, ref) {
25423
- return /* @__PURE__ */ jsx115(Stack, { ref, direction: "column", ...props });
25504
+ return /* @__PURE__ */ jsx116(Stack, { ref, direction: "column", ...props });
25424
25505
  }
25425
25506
  );
25426
25507
  VStack.displayName = "VStack";
@@ -25436,7 +25517,7 @@ import {
25436
25517
  useState as useState53
25437
25518
  } from "react";
25438
25519
  import { createPortal as createPortal16 } from "react-dom";
25439
- import { jsx as jsx116, jsxs as jsxs110 } from "react/jsx-runtime";
25520
+ import { jsx as jsx117, jsxs as jsxs111 } from "react/jsx-runtime";
25440
25521
  var Spotlight = forwardRef98(
25441
25522
  function Spotlight2({
25442
25523
  open,
@@ -25503,7 +25584,7 @@ var Spotlight = forwardRef98(
25503
25584
  height: rect.height + padding * 2
25504
25585
  } : null;
25505
25586
  return createPortal16(
25506
- /* @__PURE__ */ jsx116(AnimatePresence20, { children: open && /* @__PURE__ */ jsxs110(
25587
+ /* @__PURE__ */ jsx117(AnimatePresence20, { children: open && /* @__PURE__ */ jsxs111(
25507
25588
  motion30.div,
25508
25589
  {
25509
25590
  ...rest,
@@ -25515,7 +25596,7 @@ var Spotlight = forwardRef98(
25515
25596
  exit: disableAnimation || reducedMotion ? void 0 : { opacity: 0 },
25516
25597
  transition: { duration: 0.18 },
25517
25598
  children: [
25518
- /* @__PURE__ */ jsxs110(
25599
+ /* @__PURE__ */ jsxs111(
25519
25600
  "svg",
25520
25601
  {
25521
25602
  className: cn(
@@ -25529,8 +25610,8 @@ var Spotlight = forwardRef98(
25529
25610
  "aria-hidden": "true",
25530
25611
  onClick: onDismiss,
25531
25612
  children: [
25532
- /* @__PURE__ */ jsx116("defs", { children: /* @__PURE__ */ jsxs110("mask", { id: maskId, children: [
25533
- /* @__PURE__ */ jsx116(
25613
+ /* @__PURE__ */ jsx117("defs", { children: /* @__PURE__ */ jsxs111("mask", { id: maskId, children: [
25614
+ /* @__PURE__ */ jsx117(
25534
25615
  "rect",
25535
25616
  {
25536
25617
  x: 0,
@@ -25540,7 +25621,7 @@ var Spotlight = forwardRef98(
25540
25621
  fill: "white"
25541
25622
  }
25542
25623
  ),
25543
- cutout && shape === "rect" && /* @__PURE__ */ jsx116(
25624
+ cutout && shape === "rect" && /* @__PURE__ */ jsx117(
25544
25625
  "rect",
25545
25626
  {
25546
25627
  x: cutout.x,
@@ -25552,7 +25633,7 @@ var Spotlight = forwardRef98(
25552
25633
  fill: "black"
25553
25634
  }
25554
25635
  ),
25555
- cutout && shape === "circle" && /* @__PURE__ */ jsx116(
25636
+ cutout && shape === "circle" && /* @__PURE__ */ jsx117(
25556
25637
  "ellipse",
25557
25638
  {
25558
25639
  cx: cutout.x + cutout.width / 2,
@@ -25563,7 +25644,7 @@ var Spotlight = forwardRef98(
25563
25644
  }
25564
25645
  )
25565
25646
  ] }) }),
25566
- /* @__PURE__ */ jsx116(
25647
+ /* @__PURE__ */ jsx117(
25567
25648
  "rect",
25568
25649
  {
25569
25650
  x: 0,
@@ -25577,7 +25658,7 @@ var Spotlight = forwardRef98(
25577
25658
  ]
25578
25659
  }
25579
25660
  ),
25580
- children && /* @__PURE__ */ jsx116("div", { className: "ods-spotlight__content", children })
25661
+ children && /* @__PURE__ */ jsx117("div", { className: "ods-spotlight__content", children })
25581
25662
  ]
25582
25663
  }
25583
25664
  ) }),
@@ -25592,7 +25673,7 @@ import {
25592
25673
  forwardRef as forwardRef99
25593
25674
  } from "react";
25594
25675
  import { ArrowDownIcon as ArrowDownIcon2, ArrowUpIcon as ArrowUpIcon2, SubtractIcon as SubtractIcon3 } from "@octaviaflow/icons";
25595
- import { jsx as jsx117, jsxs as jsxs111 } from "react/jsx-runtime";
25676
+ import { jsx as jsx118, jsxs as jsxs112 } from "react/jsx-runtime";
25596
25677
  var Stat = forwardRef99(function Stat2({
25597
25678
  label,
25598
25679
  value,
@@ -25606,23 +25687,23 @@ var Stat = forwardRef99(function Stat2({
25606
25687
  ...rest
25607
25688
  }, ref) {
25608
25689
  const TrendIcon = deltaTrend === "up" ? ArrowUpIcon2 : deltaTrend === "down" ? ArrowDownIcon2 : SubtractIcon3;
25609
- return /* @__PURE__ */ jsxs111(
25690
+ return /* @__PURE__ */ jsxs112(
25610
25691
  "div",
25611
25692
  {
25612
25693
  ...rest,
25613
25694
  ref,
25614
25695
  className: cn("ods-stat", `ods-stat--${size}`, className),
25615
25696
  children: [
25616
- /* @__PURE__ */ jsxs111("div", { className: "ods-stat__head", children: [
25617
- /* @__PURE__ */ jsx117("div", { className: "ods-stat__label", children: label }),
25618
- icon && /* @__PURE__ */ jsx117("span", { className: "ods-stat__icon", "aria-hidden": "true", children: icon })
25697
+ /* @__PURE__ */ jsxs112("div", { className: "ods-stat__head", children: [
25698
+ /* @__PURE__ */ jsx118("div", { className: "ods-stat__label", children: label }),
25699
+ icon && /* @__PURE__ */ jsx118("span", { className: "ods-stat__icon", "aria-hidden": "true", children: icon })
25619
25700
  ] }),
25620
- /* @__PURE__ */ jsx117("div", { className: "ods-stat__value", children: value }),
25621
- description && /* @__PURE__ */ jsx117("div", { className: "ods-stat__description", children: description }),
25622
- delta && /* @__PURE__ */ jsxs111("div", { className: cn("ods-stat__delta", `ods-stat__delta--${deltaTrend}`), children: [
25623
- /* @__PURE__ */ jsx117("span", { className: "ods-stat__delta-arrow", "aria-hidden": "true", children: /* @__PURE__ */ jsx117(TrendIcon, { size: "xs" }) }),
25624
- /* @__PURE__ */ jsx117("span", { className: "ods-stat__delta-value", children: delta }),
25625
- deltaSuffix && /* @__PURE__ */ jsx117("span", { className: "ods-stat__delta-suffix", children: deltaSuffix })
25701
+ /* @__PURE__ */ jsx118("div", { className: "ods-stat__value", children: value }),
25702
+ description && /* @__PURE__ */ jsx118("div", { className: "ods-stat__description", children: description }),
25703
+ delta && /* @__PURE__ */ jsxs112("div", { className: cn("ods-stat__delta", `ods-stat__delta--${deltaTrend}`), children: [
25704
+ /* @__PURE__ */ jsx118("span", { className: "ods-stat__delta-arrow", "aria-hidden": "true", children: /* @__PURE__ */ jsx118(TrendIcon, { size: "xs" }) }),
25705
+ /* @__PURE__ */ jsx118("span", { className: "ods-stat__delta-value", children: delta }),
25706
+ deltaSuffix && /* @__PURE__ */ jsx118("span", { className: "ods-stat__delta-suffix", children: deltaSuffix })
25626
25707
  ] })
25627
25708
  ]
25628
25709
  }
@@ -25639,7 +25720,7 @@ import {
25639
25720
  useMemo as useMemo26,
25640
25721
  useState as useState54
25641
25722
  } from "react";
25642
- import { jsx as jsx118, jsxs as jsxs112 } from "react/jsx-runtime";
25723
+ import { jsx as jsx119, jsxs as jsxs113 } from "react/jsx-runtime";
25643
25724
  var STATUS_COLORS = {
25644
25725
  success: "var(--ods-status-success)",
25645
25726
  failed: "var(--ods-status-failed)",
@@ -25711,7 +25792,7 @@ var StatusTiles = forwardRef100(
25711
25792
  return `${t} \u2014 ${visible.length} runs (${summaryText})`;
25712
25793
  }, [ariaLabel, title, visible]);
25713
25794
  const interactive = Boolean(onTileHover || onTileClick);
25714
- return /* @__PURE__ */ jsxs112(
25795
+ return /* @__PURE__ */ jsxs113(
25715
25796
  "div",
25716
25797
  {
25717
25798
  ...rest,
@@ -25720,14 +25801,14 @@ var StatusTiles = forwardRef100(
25720
25801
  role: "group",
25721
25802
  "aria-label": resolvedAriaLabel,
25722
25803
  children: [
25723
- (title || summary) && /* @__PURE__ */ jsxs112("div", { className: "ods-status-tiles__head", children: [
25724
- title && /* @__PURE__ */ jsx118("span", { className: "ods-status-tiles__title", children: title }),
25725
- summary && /* @__PURE__ */ jsx118("span", { className: "ods-status-tiles__summary", children: summary })
25804
+ (title || summary) && /* @__PURE__ */ jsxs113("div", { className: "ods-status-tiles__head", children: [
25805
+ title && /* @__PURE__ */ jsx119("span", { className: "ods-status-tiles__title", children: title }),
25806
+ summary && /* @__PURE__ */ jsx119("span", { className: "ods-status-tiles__summary", children: summary })
25726
25807
  ] }),
25727
- /* @__PURE__ */ jsx118("div", { className: "ods-status-tiles__row", style: { gap }, children: visible.map((tile, i) => {
25808
+ /* @__PURE__ */ jsx119("div", { className: "ods-status-tiles__row", style: { gap }, children: visible.map((tile, i) => {
25728
25809
  const fill = tile.color ?? STATUS_COLORS[tile.status];
25729
25810
  const tooltipText = tile.label !== void 0 ? typeof tile.label === "string" ? tile.label : void 0 : STATUS_TEXT[tile.status];
25730
- return /* @__PURE__ */ jsx118(
25811
+ return /* @__PURE__ */ jsx119(
25731
25812
  motion31.button,
25732
25813
  {
25733
25814
  type: "button",
@@ -25779,7 +25860,7 @@ import {
25779
25860
  forwardRef as forwardRef101,
25780
25861
  useId as useId53
25781
25862
  } from "react";
25782
- import { jsx as jsx119, jsxs as jsxs113 } from "react/jsx-runtime";
25863
+ import { jsx as jsx120, jsxs as jsxs114 } from "react/jsx-runtime";
25783
25864
  function deriveStatus(step, index, active) {
25784
25865
  if (step.status) return step.status;
25785
25866
  if (index < active) return "complete";
@@ -25847,7 +25928,7 @@ var Stepper = forwardRef101(
25847
25928
  e.preventDefault();
25848
25929
  goTo(i);
25849
25930
  };
25850
- return /* @__PURE__ */ jsx119(
25931
+ return /* @__PURE__ */ jsx120(
25851
25932
  "ol",
25852
25933
  {
25853
25934
  ...rest,
@@ -25866,13 +25947,13 @@ var Stepper = forwardRef101(
25866
25947
  const status = deriveStatus(step, i, activeIndex);
25867
25948
  const isLast = i === steps.length - 1;
25868
25949
  const segmentCompleted = showProgressTrail && i < activeIndex && status !== "error";
25869
- const indicatorContent = step.indicator ?? (status === "complete" ? /* @__PURE__ */ jsx119(CheckmarkIcon11, { size: "sm", "aria-hidden": true }) : status === "error" ? /* @__PURE__ */ jsx119(ErrorIcon2, { size: "sm", "aria-hidden": true }) : /* @__PURE__ */ jsx119("span", { className: "ods-stepper__indicator-num", children: i + 1 }));
25870
- const labelText = /* @__PURE__ */ jsxs113("span", { className: "ods-stepper__label-text", children: [
25871
- /* @__PURE__ */ jsx119("span", { className: "ods-stepper__label-title", children: step.label }),
25872
- step.optional && /* @__PURE__ */ jsx119("span", { className: "ods-stepper__label-optional", children: "Optional" }),
25873
- step.description && /* @__PURE__ */ jsx119("span", { className: "ods-stepper__label-desc", children: step.description })
25950
+ const indicatorContent = step.indicator ?? (status === "complete" ? /* @__PURE__ */ jsx120(CheckmarkIcon11, { size: "sm", "aria-hidden": true }) : status === "error" ? /* @__PURE__ */ jsx120(ErrorIcon2, { size: "sm", "aria-hidden": true }) : /* @__PURE__ */ jsx120("span", { className: "ods-stepper__indicator-num", children: i + 1 }));
25951
+ const labelText = /* @__PURE__ */ jsxs114("span", { className: "ods-stepper__label-text", children: [
25952
+ /* @__PURE__ */ jsx120("span", { className: "ods-stepper__label-title", children: step.label }),
25953
+ step.optional && /* @__PURE__ */ jsx120("span", { className: "ods-stepper__label-optional", children: "Optional" }),
25954
+ step.description && /* @__PURE__ */ jsx120("span", { className: "ods-stepper__label-desc", children: step.description })
25874
25955
  ] });
25875
- const stepInner = isInteractive ? /* @__PURE__ */ jsxs113(
25956
+ const stepInner = isInteractive ? /* @__PURE__ */ jsxs114(
25876
25957
  "button",
25877
25958
  {
25878
25959
  type: "button",
@@ -25884,7 +25965,7 @@ var Stepper = forwardRef101(
25884
25965
  onClick: handleClick(i),
25885
25966
  onKeyDown: (e) => handleKeyDown(e, i),
25886
25967
  children: [
25887
- /* @__PURE__ */ jsx119(
25968
+ /* @__PURE__ */ jsx120(
25888
25969
  "span",
25889
25970
  {
25890
25971
  className: cn(
@@ -25898,13 +25979,13 @@ var Stepper = forwardRef101(
25898
25979
  labelText
25899
25980
  ]
25900
25981
  }
25901
- ) : /* @__PURE__ */ jsxs113(
25982
+ ) : /* @__PURE__ */ jsxs114(
25902
25983
  "span",
25903
25984
  {
25904
25985
  className: "ods-stepper__step-static",
25905
25986
  "aria-current": status === "active" ? "step" : void 0,
25906
25987
  children: [
25907
- /* @__PURE__ */ jsx119(
25988
+ /* @__PURE__ */ jsx120(
25908
25989
  "span",
25909
25990
  {
25910
25991
  className: cn(
@@ -25919,7 +26000,7 @@ var Stepper = forwardRef101(
25919
26000
  ]
25920
26001
  }
25921
26002
  );
25922
- return /* @__PURE__ */ jsxs113(
26003
+ return /* @__PURE__ */ jsxs114(
25923
26004
  "li",
25924
26005
  {
25925
26006
  className: cn(
@@ -25929,7 +26010,7 @@ var Stepper = forwardRef101(
25929
26010
  ),
25930
26011
  children: [
25931
26012
  stepInner,
25932
- !isLast && /* @__PURE__ */ jsx119(
26013
+ !isLast && /* @__PURE__ */ jsx120(
25933
26014
  "span",
25934
26015
  {
25935
26016
  className: cn(
@@ -25959,7 +26040,7 @@ import {
25959
26040
  useMemo as useMemo27,
25960
26041
  useState as useState55
25961
26042
  } from "react";
25962
- import { jsx as jsx120, jsxs as jsxs114 } from "react/jsx-runtime";
26043
+ import { jsx as jsx121, jsxs as jsxs115 } from "react/jsx-runtime";
25963
26044
  var defaultFormat7 = (n) => {
25964
26045
  if (Math.abs(n) >= 1e6) return `${(n / 1e6).toFixed(1)}M`;
25965
26046
  if (Math.abs(n) >= 1e3) return `${(n / 1e3).toFixed(1)}k`;
@@ -26183,7 +26264,7 @@ var Sankey = forwardRef102(function Sankey2({
26183
26264
  const t = typeof title === "string" ? title : "Sankey";
26184
26265
  return `${t} \u2014 ${nodes.length} nodes, ${links.length} flows`;
26185
26266
  }, [ariaLabel, title, nodes.length, links.length]);
26186
- return /* @__PURE__ */ jsxs114(
26267
+ return /* @__PURE__ */ jsxs115(
26187
26268
  "div",
26188
26269
  {
26189
26270
  ...rest,
@@ -26192,11 +26273,11 @@ var Sankey = forwardRef102(function Sankey2({
26192
26273
  role: "group",
26193
26274
  "aria-label": resolvedAriaLabel,
26194
26275
  children: [
26195
- (title || total) && /* @__PURE__ */ jsxs114("div", { className: "ods-sankey__head", children: [
26196
- title && /* @__PURE__ */ jsx120("div", { className: "ods-sankey__title", children: title }),
26197
- total && /* @__PURE__ */ jsx120("div", { className: "ods-sankey__total", children: total })
26276
+ (title || total) && /* @__PURE__ */ jsxs115("div", { className: "ods-sankey__head", children: [
26277
+ title && /* @__PURE__ */ jsx121("div", { className: "ods-sankey__title", children: title }),
26278
+ total && /* @__PURE__ */ jsx121("div", { className: "ods-sankey__total", children: total })
26198
26279
  ] }),
26199
- /* @__PURE__ */ jsx120("div", { className: "ods-sankey__plot", style: { width, height }, children: /* @__PURE__ */ jsxs114(
26280
+ /* @__PURE__ */ jsx121("div", { className: "ods-sankey__plot", style: { width, height }, children: /* @__PURE__ */ jsxs115(
26200
26281
  "svg",
26201
26282
  {
26202
26283
  className: "ods-sankey__svg",
@@ -26206,7 +26287,7 @@ var Sankey = forwardRef102(function Sankey2({
26206
26287
  layoutLinks.map((l) => {
26207
26288
  const color = l.color ?? linkColor ?? l.sourceNode.color ?? nodeColor;
26208
26289
  const active = hoveredLink === l || hoveredNode?.id === l.source || hoveredNode?.id === l.target;
26209
- return /* @__PURE__ */ jsx120(
26290
+ return /* @__PURE__ */ jsx121(
26210
26291
  motion32.path,
26211
26292
  {
26212
26293
  d: l.path,
@@ -26234,7 +26315,7 @@ var Sankey = forwardRef102(function Sankey2({
26234
26315
  duration: 0.6,
26235
26316
  ease: [0.16, 1, 0.3, 1]
26236
26317
  },
26237
- children: /* @__PURE__ */ jsx120("title", { children: `${l.sourceNode.label} \u2192 ${l.targetNode.label}: ${formatValue(l.value)}` })
26318
+ children: /* @__PURE__ */ jsx121("title", { children: `${l.sourceNode.label} \u2192 ${l.targetNode.label}: ${formatValue(l.value)}` })
26238
26319
  },
26239
26320
  `${reactId}-link-${l.source}-${l.target}`
26240
26321
  );
@@ -26245,7 +26326,7 @@ var Sankey = forwardRef102(function Sankey2({
26245
26326
  const isFirst = n.column === 0;
26246
26327
  const isLast = n.column === columnCount - 1;
26247
26328
  const active = hoveredNode === n;
26248
- return /* @__PURE__ */ jsxs114(
26329
+ return /* @__PURE__ */ jsxs115(
26249
26330
  "g",
26250
26331
  {
26251
26332
  className: "ods-sankey__node-group",
@@ -26253,7 +26334,7 @@ var Sankey = forwardRef102(function Sankey2({
26253
26334
  onMouseLeave: () => fireNode(null),
26254
26335
  onClick: onNodeClick ? () => onNodeClick(n) : void 0,
26255
26336
  children: [
26256
- /* @__PURE__ */ jsx120(
26337
+ /* @__PURE__ */ jsx121(
26257
26338
  motion32.rect,
26258
26339
  {
26259
26340
  x: n.x,
@@ -26282,10 +26363,10 @@ var Sankey = forwardRef102(function Sankey2({
26282
26363
  delay: disableAnimation ? 0 : 0.2 + n.column * 0.05,
26283
26364
  ease: [0.16, 1, 0.3, 1]
26284
26365
  },
26285
- children: /* @__PURE__ */ jsx120("title", { children: `${n.label} \u2014 in ${formatValue(n.inFlow)} \xB7 out ${formatValue(n.outFlow)}` })
26366
+ children: /* @__PURE__ */ jsx121("title", { children: `${n.label} \u2014 in ${formatValue(n.inFlow)} \xB7 out ${formatValue(n.outFlow)}` })
26286
26367
  }
26287
26368
  ),
26288
- /* @__PURE__ */ jsx120(
26369
+ /* @__PURE__ */ jsx121(
26289
26370
  "text",
26290
26371
  {
26291
26372
  x: isFirst ? n.x - 6 : isLast ? n.x + nodeWidth + 6 : n.x + nodeWidth + 6,
@@ -26316,7 +26397,7 @@ import {
26316
26397
  useRef as useRef47
26317
26398
  } from "react";
26318
26399
  import { useSwitch } from "react-aria";
26319
- import { jsx as jsx121, jsxs as jsxs115 } from "react/jsx-runtime";
26400
+ import { jsx as jsx122, jsxs as jsxs116 } from "react/jsx-runtime";
26320
26401
  var Switch = forwardRef103(function Switch2({
26321
26402
  checked,
26322
26403
  defaultChecked,
@@ -26365,7 +26446,7 @@ var Switch = forwardRef103(function Switch2({
26365
26446
  onBlur: _onBlur,
26366
26447
  ...passthroughProps
26367
26448
  } = props;
26368
- return /* @__PURE__ */ jsxs115(
26449
+ return /* @__PURE__ */ jsxs116(
26369
26450
  "label",
26370
26451
  {
26371
26452
  className: cn(
@@ -26376,7 +26457,7 @@ var Switch = forwardRef103(function Switch2({
26376
26457
  className
26377
26458
  ),
26378
26459
  children: [
26379
- /* @__PURE__ */ jsx121(
26460
+ /* @__PURE__ */ jsx122(
26380
26461
  "input",
26381
26462
  {
26382
26463
  ...passthroughProps,
@@ -26385,17 +26466,17 @@ var Switch = forwardRef103(function Switch2({
26385
26466
  className: "ods-switch__input"
26386
26467
  }
26387
26468
  ),
26388
- /* @__PURE__ */ jsx121(
26469
+ /* @__PURE__ */ jsx122(
26389
26470
  "div",
26390
26471
  {
26391
26472
  className: cn("ods-switch__track", isOn && "ods-switch__track--on"),
26392
26473
  "aria-hidden": "true",
26393
- children: /* @__PURE__ */ jsx121("div", { className: "ods-switch__thumb" })
26474
+ children: /* @__PURE__ */ jsx122("div", { className: "ods-switch__thumb" })
26394
26475
  }
26395
26476
  ),
26396
- (label || description) && /* @__PURE__ */ jsxs115("div", { className: "ods-switch__text", children: [
26397
- label && /* @__PURE__ */ jsx121("span", { className: "ods-switch__label", children: label }),
26398
- description && /* @__PURE__ */ jsx121("span", { className: "ods-switch__description", children: description })
26477
+ (label || description) && /* @__PURE__ */ jsxs116("div", { className: "ods-switch__text", children: [
26478
+ label && /* @__PURE__ */ jsx122("span", { className: "ods-switch__label", children: label }),
26479
+ description && /* @__PURE__ */ jsx122("span", { className: "ods-switch__description", children: description })
26399
26480
  ] })
26400
26481
  ]
26401
26482
  }
@@ -26415,7 +26496,7 @@ import {
26415
26496
  CaretSortIcon as CaretSortIcon2,
26416
26497
  CaretUpIcon as CaretUpIcon2
26417
26498
  } from "@octaviaflow/icons";
26418
- import { Fragment as Fragment43, jsx as jsx122, jsxs as jsxs116 } from "react/jsx-runtime";
26499
+ import { Fragment as Fragment44, jsx as jsx123, jsxs as jsxs117 } from "react/jsx-runtime";
26419
26500
  function TableInner({
26420
26501
  columns,
26421
26502
  data,
@@ -26466,7 +26547,7 @@ function TableInner({
26466
26547
  [onSelectionChange, selectedRows]
26467
26548
  );
26468
26549
  const totalCols = columns.length + (selectable ? 1 : 0) + (expandable ? 1 : 0);
26469
- return /* @__PURE__ */ jsx122(
26550
+ return /* @__PURE__ */ jsx123(
26470
26551
  "div",
26471
26552
  {
26472
26553
  ...rest,
@@ -26474,9 +26555,9 @@ function TableInner({
26474
26555
  className: cn("ods-table-wrapper", className),
26475
26556
  role: "region",
26476
26557
  "aria-label": ariaLabel,
26477
- children: /* @__PURE__ */ jsxs116("table", { className: "ods-table", children: [
26478
- /* @__PURE__ */ jsx122("thead", { className: "ods-table__header", children: /* @__PURE__ */ jsxs116("tr", { children: [
26479
- selectable && /* @__PURE__ */ jsx122("th", { className: "ods-table__cell--checkbox", scope: "col", children: /* @__PURE__ */ jsx122(
26558
+ children: /* @__PURE__ */ jsxs117("table", { className: "ods-table", children: [
26559
+ /* @__PURE__ */ jsx123("thead", { className: "ods-table__header", children: /* @__PURE__ */ jsxs117("tr", { children: [
26560
+ selectable && /* @__PURE__ */ jsx123("th", { className: "ods-table__cell--checkbox", scope: "col", children: /* @__PURE__ */ jsx123(
26480
26561
  "input",
26481
26562
  {
26482
26563
  type: "checkbox",
@@ -26485,8 +26566,8 @@ function TableInner({
26485
26566
  onChange: handleSelectAll
26486
26567
  }
26487
26568
  ) }),
26488
- expandable && /* @__PURE__ */ jsx122("th", { className: "ods-table__cell--expand", scope: "col", "aria-label": "Expand" }),
26489
- columns.map((col) => /* @__PURE__ */ jsx122(
26569
+ expandable && /* @__PURE__ */ jsx123("th", { className: "ods-table__cell--expand", scope: "col", "aria-label": "Expand" }),
26570
+ columns.map((col) => /* @__PURE__ */ jsx123(
26490
26571
  "th",
26491
26572
  {
26492
26573
  className: cn("ods-table__cell", col.sortable && "ods-table__cell--sortable"),
@@ -26494,9 +26575,9 @@ function TableInner({
26494
26575
  scope: "col",
26495
26576
  "aria-sort": sortKey === col.key ? sortDirection === "asc" ? "ascending" : "descending" : void 0,
26496
26577
  onClick: col.sortable ? () => handleSort(col.key) : void 0,
26497
- children: /* @__PURE__ */ jsxs116("span", { className: "ods-table__header-content", children: [
26578
+ children: /* @__PURE__ */ jsxs117("span", { className: "ods-table__header-content", children: [
26498
26579
  col.header,
26499
- col.sortable && /* @__PURE__ */ jsx122(
26580
+ col.sortable && /* @__PURE__ */ jsx123(
26500
26581
  "span",
26501
26582
  {
26502
26583
  className: cn(
@@ -26504,7 +26585,7 @@ function TableInner({
26504
26585
  sortKey === col.key && "ods-table__sort-icon--active"
26505
26586
  ),
26506
26587
  "aria-hidden": "true",
26507
- children: sortKey === col.key ? sortDirection === "desc" ? /* @__PURE__ */ jsx122(CaretDownIcon2, { size: "xs" }) : /* @__PURE__ */ jsx122(CaretUpIcon2, { size: "xs" }) : /* @__PURE__ */ jsx122(CaretSortIcon2, { size: "xs" })
26588
+ children: sortKey === col.key ? sortDirection === "desc" ? /* @__PURE__ */ jsx123(CaretDownIcon2, { size: "xs" }) : /* @__PURE__ */ jsx123(CaretUpIcon2, { size: "xs" }) : /* @__PURE__ */ jsx123(CaretSortIcon2, { size: "xs" })
26508
26589
  }
26509
26590
  )
26510
26591
  ] })
@@ -26512,10 +26593,10 @@ function TableInner({
26512
26593
  col.key
26513
26594
  ))
26514
26595
  ] }) }),
26515
- /* @__PURE__ */ jsxs116("tbody", { children: [
26516
- loading && /* @__PURE__ */ jsx122("tr", { children: /* @__PURE__ */ jsx122("td", { colSpan: totalCols, className: "ods-table__loading", children: /* @__PURE__ */ jsx122("div", { className: "ods-table__loading-bar" }) }) }),
26517
- !loading && data.length === 0 && /* @__PURE__ */ jsx122("tr", { children: /* @__PURE__ */ jsx122("td", { colSpan: totalCols, className: "ods-table__empty", children: emptyMessage }) }),
26518
- data.map((row, rowIndex) => /* @__PURE__ */ jsx122(
26596
+ /* @__PURE__ */ jsxs117("tbody", { children: [
26597
+ loading && /* @__PURE__ */ jsx123("tr", { children: /* @__PURE__ */ jsx123("td", { colSpan: totalCols, className: "ods-table__loading", children: /* @__PURE__ */ jsx123("div", { className: "ods-table__loading-bar" }) }) }),
26598
+ !loading && data.length === 0 && /* @__PURE__ */ jsx123("tr", { children: /* @__PURE__ */ jsx123("td", { colSpan: totalCols, className: "ods-table__empty", children: emptyMessage }) }),
26599
+ data.map((row, rowIndex) => /* @__PURE__ */ jsx123(
26519
26600
  TableRow,
26520
26601
  {
26521
26602
  row,
@@ -26549,14 +26630,14 @@ function TableRow({
26549
26630
  }) {
26550
26631
  const isSelected = selectedRows?.has(rowIndex) ?? false;
26551
26632
  const [expanded, setExpanded] = useState56(false);
26552
- return /* @__PURE__ */ jsxs116(Fragment43, { children: [
26553
- /* @__PURE__ */ jsxs116(
26633
+ return /* @__PURE__ */ jsxs117(Fragment44, { children: [
26634
+ /* @__PURE__ */ jsxs117(
26554
26635
  "tr",
26555
26636
  {
26556
26637
  className: cn("ods-table__row", isSelected && "ods-table__row--selected"),
26557
26638
  "data-row-index": rowIndex,
26558
26639
  children: [
26559
- selectable && /* @__PURE__ */ jsx122("td", { className: "ods-table__cell--checkbox", children: /* @__PURE__ */ jsx122(
26640
+ selectable && /* @__PURE__ */ jsx123("td", { className: "ods-table__cell--checkbox", children: /* @__PURE__ */ jsx123(
26560
26641
  "input",
26561
26642
  {
26562
26643
  type: "checkbox",
@@ -26565,7 +26646,7 @@ function TableRow({
26565
26646
  onChange: () => onSelectRow(rowIndex)
26566
26647
  }
26567
26648
  ) }),
26568
- expandable && /* @__PURE__ */ jsx122("td", { className: "ods-table__cell--expand", children: /* @__PURE__ */ jsx122(
26649
+ expandable && /* @__PURE__ */ jsx123("td", { className: "ods-table__cell--expand", children: /* @__PURE__ */ jsx123(
26569
26650
  "button",
26570
26651
  {
26571
26652
  type: "button",
@@ -26573,14 +26654,14 @@ function TableRow({
26573
26654
  "aria-label": expanded ? "Collapse row" : "Expand row",
26574
26655
  "aria-expanded": expanded,
26575
26656
  onClick: () => setExpanded(!expanded),
26576
- children: /* @__PURE__ */ jsx122(CaretRightIcon, { size: "xs" })
26657
+ children: /* @__PURE__ */ jsx123(CaretRightIcon, { size: "xs" })
26577
26658
  }
26578
26659
  ) }),
26579
- columns.map((col) => /* @__PURE__ */ jsx122("td", { className: "ods-table__cell", children: col.render ? col.render(row[col.key], row, rowIndex) : row[col.key] }, col.key))
26660
+ columns.map((col) => /* @__PURE__ */ jsx123("td", { className: "ods-table__cell", children: col.render ? col.render(row[col.key], row, rowIndex) : row[col.key] }, col.key))
26580
26661
  ]
26581
26662
  }
26582
26663
  ),
26583
- expandable && expanded && renderExpanded && /* @__PURE__ */ jsx122("tr", { className: "ods-table__row--expanded", children: /* @__PURE__ */ jsx122("td", { colSpan: totalCols, className: "ods-table__expanded-cell", children: renderExpanded(row, rowIndex) }) })
26664
+ expandable && expanded && renderExpanded && /* @__PURE__ */ jsx123("tr", { className: "ods-table__row--expanded", children: /* @__PURE__ */ jsx123("td", { colSpan: totalCols, className: "ods-table__expanded-cell", children: renderExpanded(row, rowIndex) }) })
26584
26665
  ] });
26585
26666
  }
26586
26667
 
@@ -26588,7 +26669,7 @@ function TableRow({
26588
26669
  import { motion as motion33 } from "framer-motion";
26589
26670
  import { useCallback as useCallback42, useEffect as useEffect43, useId as useId55, useMemo as useMemo28, useRef as useRef48, useState as useState57 } from "react";
26590
26671
  import { useTab, useTabList, useTabPanel } from "react-aria";
26591
- import { jsx as jsx123, jsxs as jsxs117 } from "react/jsx-runtime";
26672
+ import { jsx as jsx124, jsxs as jsxs118 } from "react/jsx-runtime";
26592
26673
  function TabButton({
26593
26674
  item,
26594
26675
  state,
@@ -26599,7 +26680,7 @@ function TabButton({
26599
26680
  const isSelected = state.selectedKey === item.key;
26600
26681
  const isDisabled = state.disabledKeys.has(item.key);
26601
26682
  const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...safeTabProps } = tabProps;
26602
- return /* @__PURE__ */ jsxs117(
26683
+ return /* @__PURE__ */ jsxs118(
26603
26684
  motion33.div,
26604
26685
  {
26605
26686
  ...safeTabProps,
@@ -26611,7 +26692,7 @@ function TabButton({
26611
26692
  ),
26612
26693
  children: [
26613
26694
  item.rendered,
26614
- isSelected && /* @__PURE__ */ jsx123(
26695
+ isSelected && /* @__PURE__ */ jsx124(
26615
26696
  motion33.div,
26616
26697
  {
26617
26698
  className: "ods-tabs__indicator",
@@ -26626,7 +26707,7 @@ function TabButton({
26626
26707
  function TabPanelContent({ state, panelContent, ...props }) {
26627
26708
  const ref = useRef48(null);
26628
26709
  const { tabPanelProps } = useTabPanel(props, state, ref);
26629
- return /* @__PURE__ */ jsx123("div", { ...tabPanelProps, ref, className: "ods-tabs__panel", children: panelContent });
26710
+ return /* @__PURE__ */ jsx124("div", { ...tabPanelProps, ref, className: "ods-tabs__panel", children: panelContent });
26630
26711
  }
26631
26712
  var SCROLL_EDGE_EPSILON = 1;
26632
26713
  var SCROLL_STEP_PX = 200;
@@ -26655,9 +26736,9 @@ function Tabs({
26655
26736
  return map;
26656
26737
  }, [items]);
26657
26738
  const stateProps = {
26658
- children: items.map((item) => /* @__PURE__ */ jsxs117($05678f3aee5e7d1a$export$6d08773d2e66f8f2, { textValue: item.label, children: [
26659
- item.icon && /* @__PURE__ */ jsx123("span", { className: "ods-tabs__icon", children: item.icon }),
26660
- /* @__PURE__ */ jsx123("span", { children: item.label })
26739
+ children: items.map((item) => /* @__PURE__ */ jsxs118($05678f3aee5e7d1a$export$6d08773d2e66f8f2, { textValue: item.label, children: [
26740
+ item.icon && /* @__PURE__ */ jsx124("span", { className: "ods-tabs__icon", children: item.icon }),
26741
+ /* @__PURE__ */ jsx124("span", { children: item.label })
26661
26742
  ] }, item.value)),
26662
26743
  selectedKey,
26663
26744
  onSelectionChange: handleSelectionChange,
@@ -26695,9 +26776,9 @@ function Tabs({
26695
26776
  el.scrollBy({ left: dir * SCROLL_STEP_PX, behavior: "smooth" });
26696
26777
  };
26697
26778
  const currentPanelContent = panelContentMap.get(String(selectedKey));
26698
- return /* @__PURE__ */ jsxs117("div", { className: cn("ods-tabs", `ods-tabs--${orientation}`, className), children: [
26699
- /* @__PURE__ */ jsxs117("div", { className: "ods-tabs__list-wrap", children: [
26700
- orientation === "horizontal" && canScrollLeft && /* @__PURE__ */ jsx123(
26779
+ return /* @__PURE__ */ jsxs118("div", { className: cn("ods-tabs", `ods-tabs--${orientation}`, className), children: [
26780
+ /* @__PURE__ */ jsxs118("div", { className: "ods-tabs__list-wrap", children: [
26781
+ orientation === "horizontal" && canScrollLeft && /* @__PURE__ */ jsx124(
26701
26782
  "button",
26702
26783
  {
26703
26784
  type: "button",
@@ -26705,16 +26786,16 @@ function Tabs({
26705
26786
  onClick: () => scrollBy(-1),
26706
26787
  "aria-label": "Scroll tabs left",
26707
26788
  tabIndex: -1,
26708
- children: /* @__PURE__ */ jsx123(ChevronSvg, { dir: "left" })
26789
+ children: /* @__PURE__ */ jsx124(ChevronSvg, { dir: "left" })
26709
26790
  }
26710
26791
  ),
26711
- /* @__PURE__ */ jsx123(
26792
+ /* @__PURE__ */ jsx124(
26712
26793
  "div",
26713
26794
  {
26714
26795
  className: "ods-tabs__scroller",
26715
26796
  ref: scrollContainerRef,
26716
26797
  onScroll: orientation === "horizontal" ? onScroll : void 0,
26717
- children: /* @__PURE__ */ jsx123("div", { ...tabListProps, ref, className: "ods-tabs__list", children: [...state.collection].map((item) => /* @__PURE__ */ jsx123(
26798
+ children: /* @__PURE__ */ jsx124("div", { ...tabListProps, ref, className: "ods-tabs__list", children: [...state.collection].map((item) => /* @__PURE__ */ jsx124(
26718
26799
  TabButton,
26719
26800
  {
26720
26801
  item,
@@ -26725,7 +26806,7 @@ function Tabs({
26725
26806
  )) })
26726
26807
  }
26727
26808
  ),
26728
- orientation === "horizontal" && canScrollRight && /* @__PURE__ */ jsx123(
26809
+ orientation === "horizontal" && canScrollRight && /* @__PURE__ */ jsx124(
26729
26810
  "button",
26730
26811
  {
26731
26812
  type: "button",
@@ -26733,16 +26814,16 @@ function Tabs({
26733
26814
  onClick: () => scrollBy(1),
26734
26815
  "aria-label": "Scroll tabs right",
26735
26816
  tabIndex: -1,
26736
- children: /* @__PURE__ */ jsx123(ChevronSvg, { dir: "right" })
26817
+ children: /* @__PURE__ */ jsx124(ChevronSvg, { dir: "right" })
26737
26818
  }
26738
26819
  )
26739
26820
  ] }),
26740
- /* @__PURE__ */ jsx123(TabPanelContent, { state, panelContent: currentPanelContent }, state.selectedKey)
26821
+ /* @__PURE__ */ jsx124(TabPanelContent, { state, panelContent: currentPanelContent }, state.selectedKey)
26741
26822
  ] });
26742
26823
  }
26743
26824
  function ChevronSvg({ dir }) {
26744
26825
  const d = dir === "left" ? "M11 4L5 10l6 6" : "M9 4l6 6-6 6";
26745
- return /* @__PURE__ */ jsx123(
26826
+ return /* @__PURE__ */ jsx124(
26746
26827
  "svg",
26747
26828
  {
26748
26829
  width: "14",
@@ -26754,7 +26835,7 @@ function ChevronSvg({ dir }) {
26754
26835
  strokeLinecap: "round",
26755
26836
  strokeLinejoin: "round",
26756
26837
  "aria-hidden": "true",
26757
- children: /* @__PURE__ */ jsx123("path", { d })
26838
+ children: /* @__PURE__ */ jsx124("path", { d })
26758
26839
  }
26759
26840
  );
26760
26841
  }
@@ -26766,7 +26847,7 @@ import {
26766
26847
  useState as useState58
26767
26848
  } from "react";
26768
26849
  import { CloseIcon as CloseIcon14 } from "@octaviaflow/icons";
26769
- import { jsx as jsx124, jsxs as jsxs118 } from "react/jsx-runtime";
26850
+ import { jsx as jsx125, jsxs as jsxs119 } from "react/jsx-runtime";
26770
26851
  var TagsInput = forwardRef105(
26771
26852
  function TagsInput2({
26772
26853
  label,
@@ -26817,7 +26898,7 @@ var TagsInput = forwardRef105(
26817
26898
  }
26818
26899
  };
26819
26900
  const describedBy = [consumerDescribedBy, hintId].filter(Boolean).join(" ") || void 0;
26820
- return /* @__PURE__ */ jsxs118(
26901
+ return /* @__PURE__ */ jsxs119(
26821
26902
  "div",
26822
26903
  {
26823
26904
  className: cn(
@@ -26828,7 +26909,7 @@ var TagsInput = forwardRef105(
26828
26909
  wrapperClassName
26829
26910
  ),
26830
26911
  children: [
26831
- label && /* @__PURE__ */ jsx124(
26912
+ label && /* @__PURE__ */ jsx125(
26832
26913
  "label",
26833
26914
  {
26834
26915
  id: labelId,
@@ -26837,10 +26918,10 @@ var TagsInput = forwardRef105(
26837
26918
  children: label
26838
26919
  }
26839
26920
  ),
26840
- /* @__PURE__ */ jsxs118("div", { className: "ods-tags__field", children: [
26841
- value.map((tag, i) => /* @__PURE__ */ jsxs118("span", { className: "ods-tags__chip", children: [
26842
- /* @__PURE__ */ jsx124("span", { className: "ods-tags__chip-text", children: tag }),
26843
- /* @__PURE__ */ jsx124(
26921
+ /* @__PURE__ */ jsxs119("div", { className: "ods-tags__field", children: [
26922
+ value.map((tag, i) => /* @__PURE__ */ jsxs119("span", { className: "ods-tags__chip", children: [
26923
+ /* @__PURE__ */ jsx125("span", { className: "ods-tags__chip-text", children: tag }),
26924
+ /* @__PURE__ */ jsx125(
26844
26925
  "button",
26845
26926
  {
26846
26927
  type: "button",
@@ -26848,11 +26929,11 @@ var TagsInput = forwardRef105(
26848
26929
  onClick: () => removeTag(i),
26849
26930
  "aria-label": `Remove ${tag}`,
26850
26931
  disabled,
26851
- children: /* @__PURE__ */ jsx124(CloseIcon14, { size: "xs" })
26932
+ children: /* @__PURE__ */ jsx125(CloseIcon14, { size: "xs" })
26852
26933
  }
26853
26934
  )
26854
26935
  ] }, `${tag}-${i}`)),
26855
- /* @__PURE__ */ jsx124(
26936
+ /* @__PURE__ */ jsx125(
26856
26937
  "input",
26857
26938
  {
26858
26939
  ...rest,
@@ -26872,7 +26953,7 @@ var TagsInput = forwardRef105(
26872
26953
  }
26873
26954
  )
26874
26955
  ] }),
26875
- error ? /* @__PURE__ */ jsx124(
26956
+ error ? /* @__PURE__ */ jsx125(
26876
26957
  "div",
26877
26958
  {
26878
26959
  id: hintId,
@@ -26880,7 +26961,7 @@ var TagsInput = forwardRef105(
26880
26961
  role: "alert",
26881
26962
  children: error
26882
26963
  }
26883
- ) : helperText ? /* @__PURE__ */ jsx124("div", { id: hintId, className: "ods-tags__hint", children: helperText }) : null
26964
+ ) : helperText ? /* @__PURE__ */ jsx125("div", { id: hintId, className: "ods-tags__hint", children: helperText }) : null
26884
26965
  ]
26885
26966
  }
26886
26967
  );
@@ -26893,7 +26974,7 @@ import {
26893
26974
  forwardRef as forwardRef106,
26894
26975
  useId as useId57
26895
26976
  } from "react";
26896
- import { Fragment as Fragment44, jsx as jsx125, jsxs as jsxs119 } from "react/jsx-runtime";
26977
+ import { Fragment as Fragment45, jsx as jsx126, jsxs as jsxs120 } from "react/jsx-runtime";
26897
26978
  var TemplateCard = forwardRef106(
26898
26979
  function TemplateCard2({
26899
26980
  name,
@@ -26929,7 +27010,7 @@ var TemplateCard = forwardRef106(
26929
27010
  const isInteractive = Boolean(href || onClick) && !disabled;
26930
27011
  const hasInternalInteractive = Boolean(cta || footer);
26931
27012
  const useStretchedLink = Boolean(href) && !disabled && hasInternalInteractive;
26932
- const titleContent = useStretchedLink ? /* @__PURE__ */ jsx125(
27013
+ const titleContent = useStretchedLink ? /* @__PURE__ */ jsx126(
26933
27014
  "a",
26934
27015
  {
26935
27016
  className: "ods-template-card__stretched-link",
@@ -26941,8 +27022,8 @@ var TemplateCard = forwardRef106(
26941
27022
  const renderAuthor = () => {
26942
27023
  if (!author) return null;
26943
27024
  const derivedInitials = author.avatar?.initials ?? (typeof author.name === "string" ? author.name.charAt(0).toUpperCase() : void 0);
26944
- return /* @__PURE__ */ jsxs119("div", { className: "ods-template-card__author", children: [
26945
- (author.avatar || derivedInitials) && /* @__PURE__ */ jsx125(
27025
+ return /* @__PURE__ */ jsxs120("div", { className: "ods-template-card__author", children: [
27026
+ (author.avatar || derivedInitials) && /* @__PURE__ */ jsx126(
26946
27027
  Avatar,
26947
27028
  {
26948
27029
  size: "xs",
@@ -26952,8 +27033,8 @@ var TemplateCard = forwardRef106(
26952
27033
  className: "ods-template-card__author-avatar"
26953
27034
  }
26954
27035
  ),
26955
- /* @__PURE__ */ jsx125("span", { className: "ods-template-card__author-name", children: author.name }),
26956
- author.byline && /* @__PURE__ */ jsx125("span", { className: "ods-template-card__author-byline", children: author.byline })
27036
+ /* @__PURE__ */ jsx126("span", { className: "ods-template-card__author-name", children: author.name }),
27037
+ author.byline && /* @__PURE__ */ jsx126("span", { className: "ods-template-card__author-byline", children: author.byline })
26957
27038
  ] });
26958
27039
  };
26959
27040
  const hasImage = Boolean(image);
@@ -26967,8 +27048,8 @@ var TemplateCard = forwardRef106(
26967
27048
  if (iconConnector === "plus") return "+";
26968
27049
  return iconConnector;
26969
27050
  };
26970
- const body = /* @__PURE__ */ jsxs119(Fragment44, { children: [
26971
- showMedia && /* @__PURE__ */ jsxs119(
27051
+ const body = /* @__PURE__ */ jsxs120(Fragment45, { children: [
27052
+ showMedia && /* @__PURE__ */ jsxs120(
26972
27053
  "div",
26973
27054
  {
26974
27055
  className: cn(
@@ -26981,9 +27062,9 @@ var TemplateCard = forwardRef106(
26981
27062
  "aria-hidden": "true",
26982
27063
  children: [
26983
27064
  hasImage && image,
26984
- hasIcon && /* @__PURE__ */ jsx125("span", { className: "ods-template-card__icon", children: icon }),
26985
- hasIconFlow && /* @__PURE__ */ jsx125("span", { className: "ods-template-card__icon-flow", children: icons.map((step, i) => /* @__PURE__ */ jsxs119("span", { className: "ods-template-card__icon-flow-item", children: [
26986
- i > 0 && /* @__PURE__ */ jsx125(
27065
+ hasIcon && /* @__PURE__ */ jsx126("span", { className: "ods-template-card__icon", children: icon }),
27066
+ hasIconFlow && /* @__PURE__ */ jsx126("span", { className: "ods-template-card__icon-flow", children: icons.map((step, i) => /* @__PURE__ */ jsxs120("span", { className: "ods-template-card__icon-flow-item", children: [
27067
+ i > 0 && /* @__PURE__ */ jsx126(
26987
27068
  "span",
26988
27069
  {
26989
27070
  className: "ods-template-card__icon-connector",
@@ -26991,7 +27072,7 @@ var TemplateCard = forwardRef106(
26991
27072
  children: renderConnector()
26992
27073
  }
26993
27074
  ),
26994
- /* @__PURE__ */ jsx125(
27075
+ /* @__PURE__ */ jsx126(
26995
27076
  "span",
26996
27077
  {
26997
27078
  className: cn(
@@ -27004,13 +27085,13 @@ var TemplateCard = forwardRef106(
27004
27085
  }
27005
27086
  )
27006
27087
  ] }, i)) }),
27007
- badge && /* @__PURE__ */ jsx125("span", { className: "ods-template-card__badge", children: badge })
27088
+ badge && /* @__PURE__ */ jsx126("span", { className: "ods-template-card__badge", children: badge })
27008
27089
  ]
27009
27090
  }
27010
27091
  ),
27011
- /* @__PURE__ */ jsxs119("div", { className: "ods-template-card__content", children: [
27012
- category && /* @__PURE__ */ jsx125("div", { className: "ods-template-card__category", children: category }),
27013
- /* @__PURE__ */ jsx125(
27092
+ /* @__PURE__ */ jsxs120("div", { className: "ods-template-card__content", children: [
27093
+ category && /* @__PURE__ */ jsx126("div", { className: "ods-template-card__category", children: category }),
27094
+ /* @__PURE__ */ jsx126(
27014
27095
  Card.Title,
27015
27096
  {
27016
27097
  as: nameAs,
@@ -27019,7 +27100,7 @@ var TemplateCard = forwardRef106(
27019
27100
  children: titleContent
27020
27101
  }
27021
27102
  ),
27022
- description && /* @__PURE__ */ jsx125(
27103
+ description && /* @__PURE__ */ jsx126(
27023
27104
  Card.Description,
27024
27105
  {
27025
27106
  id: descId,
@@ -27027,18 +27108,18 @@ var TemplateCard = forwardRef106(
27027
27108
  children: description
27028
27109
  }
27029
27110
  ),
27030
- requirements && requirements.length > 0 && /* @__PURE__ */ jsx125(
27111
+ requirements && requirements.length > 0 && /* @__PURE__ */ jsx126(
27031
27112
  "div",
27032
27113
  {
27033
27114
  className: "ods-template-card__requirements",
27034
27115
  "aria-label": "Requirements",
27035
- children: requirements.map((r, i) => /* @__PURE__ */ jsx125("span", { className: "ods-template-card__requirement", children: r }, i))
27116
+ children: requirements.map((r, i) => /* @__PURE__ */ jsx126("span", { className: "ods-template-card__requirement", children: r }, i))
27036
27117
  }
27037
27118
  ),
27038
- stats && stats.length > 0 && /* @__PURE__ */ jsx125("dl", { className: "ods-template-card__stats", children: stats.map((s, i) => /* @__PURE__ */ jsxs119("div", { className: "ods-template-card__stat", children: [
27039
- /* @__PURE__ */ jsx125("dt", { className: "ods-template-card__stat-label", children: s.label }),
27040
- /* @__PURE__ */ jsxs119("dd", { className: "ods-template-card__stat-value", children: [
27041
- s.icon && /* @__PURE__ */ jsx125(
27119
+ stats && stats.length > 0 && /* @__PURE__ */ jsx126("dl", { className: "ods-template-card__stats", children: stats.map((s, i) => /* @__PURE__ */ jsxs120("div", { className: "ods-template-card__stat", children: [
27120
+ /* @__PURE__ */ jsx126("dt", { className: "ods-template-card__stat-label", children: s.label }),
27121
+ /* @__PURE__ */ jsxs120("dd", { className: "ods-template-card__stat-value", children: [
27122
+ s.icon && /* @__PURE__ */ jsx126(
27042
27123
  "span",
27043
27124
  {
27044
27125
  className: "ods-template-card__stat-icon",
@@ -27049,12 +27130,12 @@ var TemplateCard = forwardRef106(
27049
27130
  s.value
27050
27131
  ] })
27051
27132
  ] }, i)) }),
27052
- tags && tags.length > 0 && /* @__PURE__ */ jsx125("div", { className: "ods-template-card__tags", children: tags.map((t, i) => /* @__PURE__ */ jsx125("span", { className: "ods-template-card__tag", children: t }, i)) }),
27053
- (author || cta || footer) && /* @__PURE__ */ jsxs119("div", { className: "ods-template-card__footer-row", children: [
27133
+ tags && tags.length > 0 && /* @__PURE__ */ jsx126("div", { className: "ods-template-card__tags", children: tags.map((t, i) => /* @__PURE__ */ jsx126("span", { className: "ods-template-card__tag", children: t }, i)) }),
27134
+ (author || cta || footer) && /* @__PURE__ */ jsxs120("div", { className: "ods-template-card__footer-row", children: [
27054
27135
  renderAuthor(),
27055
- (cta || footer) && /* @__PURE__ */ jsxs119("div", { className: "ods-template-card__footer-actions", children: [
27056
- cta && /* @__PURE__ */ jsx125("div", { className: "ods-template-card__cta", children: cta }),
27057
- footer && /* @__PURE__ */ jsx125("div", { className: "ods-template-card__footer", children: footer })
27136
+ (cta || footer) && /* @__PURE__ */ jsxs120("div", { className: "ods-template-card__footer-actions", children: [
27137
+ cta && /* @__PURE__ */ jsx126("div", { className: "ods-template-card__cta", children: cta }),
27138
+ footer && /* @__PURE__ */ jsx126("div", { className: "ods-template-card__footer", children: footer })
27058
27139
  ] })
27059
27140
  ] })
27060
27141
  ] })
@@ -27068,7 +27149,7 @@ var TemplateCard = forwardRef106(
27068
27149
  className
27069
27150
  );
27070
27151
  if (href && !disabled && !useStretchedLink) {
27071
- return /* @__PURE__ */ jsx125(
27152
+ return /* @__PURE__ */ jsx126(
27072
27153
  Card,
27073
27154
  {
27074
27155
  asChild: true,
@@ -27077,7 +27158,7 @@ var TemplateCard = forwardRef106(
27077
27158
  className: sharedClass,
27078
27159
  "aria-labelledby": nameId,
27079
27160
  "aria-describedby": descId,
27080
- children: /* @__PURE__ */ jsx125(
27161
+ children: /* @__PURE__ */ jsx126(
27081
27162
  "a",
27082
27163
  {
27083
27164
  ...rest,
@@ -27091,7 +27172,7 @@ var TemplateCard = forwardRef106(
27091
27172
  }
27092
27173
  );
27093
27174
  }
27094
- return /* @__PURE__ */ jsx125(
27175
+ return /* @__PURE__ */ jsx126(
27095
27176
  Card,
27096
27177
  {
27097
27178
  ...rest,
@@ -27121,7 +27202,7 @@ import {
27121
27202
  forwardRef as forwardRef107,
27122
27203
  useId as useId58
27123
27204
  } from "react";
27124
- import { jsx as jsx126, jsxs as jsxs120 } from "react/jsx-runtime";
27205
+ import { jsx as jsx127, jsxs as jsxs121 } from "react/jsx-runtime";
27125
27206
  function isAuthorObject(v) {
27126
27207
  return typeof v === "object" && v !== null && !("type" in v) && // exclude React elements
27127
27208
  "name" in v;
@@ -27153,7 +27234,7 @@ var TestimonialCard = forwardRef107(function TestimonialCard2({
27153
27234
  };
27154
27235
  const renderAvatar = () => {
27155
27236
  if (!isAuthorObject(author) && legacyAvatar) {
27156
- return /* @__PURE__ */ jsx126(
27237
+ return /* @__PURE__ */ jsx127(
27157
27238
  "span",
27158
27239
  {
27159
27240
  className: "ods-testimonial__avatar ods-testimonial__avatar--legacy",
@@ -27162,7 +27243,7 @@ var TestimonialCard = forwardRef107(function TestimonialCard2({
27162
27243
  }
27163
27244
  );
27164
27245
  }
27165
- return /* @__PURE__ */ jsx126(
27246
+ return /* @__PURE__ */ jsx127(
27166
27247
  Avatar,
27167
27248
  {
27168
27249
  size: size === "sm" ? "xs" : size === "lg" ? "md" : "sm",
@@ -27173,7 +27254,7 @@ var TestimonialCard = forwardRef107(function TestimonialCard2({
27173
27254
  }
27174
27255
  );
27175
27256
  };
27176
- return /* @__PURE__ */ jsxs120(
27257
+ return /* @__PURE__ */ jsxs121(
27177
27258
  Card,
27178
27259
  {
27179
27260
  ...rest,
@@ -27190,26 +27271,26 @@ var TestimonialCard = forwardRef107(function TestimonialCard2({
27190
27271
  "aria-labelledby": authorId,
27191
27272
  "aria-describedby": quoteId,
27192
27273
  children: [
27193
- /* @__PURE__ */ jsxs120("div", { className: "ods-testimonial__head", children: [
27194
- /* @__PURE__ */ jsx126("span", { className: "ods-testimonial__quote", "aria-hidden": "true", children: /* @__PURE__ */ jsx126(QuotesIcon, { size: "md" }) }),
27195
- logo && /* @__PURE__ */ jsx126("span", { className: "ods-testimonial__logo", "aria-hidden": "true", children: logo })
27274
+ /* @__PURE__ */ jsxs121("div", { className: "ods-testimonial__head", children: [
27275
+ /* @__PURE__ */ jsx127("span", { className: "ods-testimonial__quote", "aria-hidden": "true", children: /* @__PURE__ */ jsx127(QuotesIcon, { size: "md" }) }),
27276
+ logo && /* @__PURE__ */ jsx127("span", { className: "ods-testimonial__logo", "aria-hidden": "true", children: logo })
27196
27277
  ] }),
27197
- /* @__PURE__ */ jsx126("blockquote", { id: quoteId, className: "ods-testimonial__text", children: quote }),
27198
- typeof rating === "number" && /* @__PURE__ */ jsx126(
27278
+ /* @__PURE__ */ jsx127("blockquote", { id: quoteId, className: "ods-testimonial__text", children: quote }),
27279
+ typeof rating === "number" && /* @__PURE__ */ jsx127(
27199
27280
  "div",
27200
27281
  {
27201
27282
  className: "ods-testimonial__rating",
27202
27283
  role: "img",
27203
27284
  "aria-label": `${rating} out of 5 stars`,
27204
27285
  children: Array.from({ length: 5 }).map(
27205
- (_, i) => i < Math.round(rating) ? /* @__PURE__ */ jsx126(
27286
+ (_, i) => i < Math.round(rating) ? /* @__PURE__ */ jsx127(
27206
27287
  StarFilledIcon3,
27207
27288
  {
27208
27289
  size: "xs",
27209
27290
  className: "ods-testimonial__star ods-testimonial__star--on"
27210
27291
  },
27211
27292
  i
27212
- ) : /* @__PURE__ */ jsx126(
27293
+ ) : /* @__PURE__ */ jsx127(
27213
27294
  StarIcon3,
27214
27295
  {
27215
27296
  size: "xs",
@@ -27220,11 +27301,11 @@ var TestimonialCard = forwardRef107(function TestimonialCard2({
27220
27301
  )
27221
27302
  }
27222
27303
  ),
27223
- /* @__PURE__ */ jsxs120("figcaption", { className: "ods-testimonial__author", id: authorId, children: [
27304
+ /* @__PURE__ */ jsxs121("figcaption", { className: "ods-testimonial__author", id: authorId, children: [
27224
27305
  renderAvatar(),
27225
- /* @__PURE__ */ jsxs120("span", { className: "ods-testimonial__author-info", children: [
27226
- /* @__PURE__ */ jsx126("span", { className: "ods-testimonial__author-name", children: resolved.name }),
27227
- resolved.role && /* @__PURE__ */ jsx126("span", { className: "ods-testimonial__author-role", children: resolved.role })
27306
+ /* @__PURE__ */ jsxs121("span", { className: "ods-testimonial__author-info", children: [
27307
+ /* @__PURE__ */ jsx127("span", { className: "ods-testimonial__author-name", children: resolved.name }),
27308
+ resolved.role && /* @__PURE__ */ jsx127("span", { className: "ods-testimonial__author-role", children: resolved.role })
27228
27309
  ] })
27229
27310
  ] })
27230
27311
  ]
@@ -27632,7 +27713,7 @@ import {
27632
27713
  UndoIcon as UndoIcon2
27633
27714
  } from "@octaviaflow/icons";
27634
27715
  import { useCallback as useCallback45, useMemo as useMemo30, useRef as useRef50 } from "react";
27635
- import { jsx as jsx127 } from "react/jsx-runtime";
27716
+ import { jsx as jsx128 } from "react/jsx-runtime";
27636
27717
  function useTextareaTools({
27637
27718
  textareaRef,
27638
27719
  value,
@@ -27768,28 +27849,28 @@ var prependLineTool = (id, prefix, label, icon, title) => ({
27768
27849
  onAction: (h) => h.prependLines(prefix)
27769
27850
  });
27770
27851
  var textareaTools = {
27771
- bold: () => wrapTool("bold", "**", "**", "Bold", /* @__PURE__ */ jsx127(TextBoldIcon, {}), "Bold (\u2318B)"),
27772
- italic: () => wrapTool("italic", "*", "*", "Italic", /* @__PURE__ */ jsx127(TextItalicIcon, {}), "Italic (\u2318I)"),
27852
+ bold: () => wrapTool("bold", "**", "**", "Bold", /* @__PURE__ */ jsx128(TextBoldIcon, {}), "Bold (\u2318B)"),
27853
+ italic: () => wrapTool("italic", "*", "*", "Italic", /* @__PURE__ */ jsx128(TextItalicIcon, {}), "Italic (\u2318I)"),
27773
27854
  strikethrough: () => wrapTool(
27774
27855
  "strike",
27775
27856
  "~~",
27776
27857
  "~~",
27777
27858
  "Strikethrough",
27778
- /* @__PURE__ */ jsx127(TextStrikethroughIcon, {}),
27859
+ /* @__PURE__ */ jsx128(TextStrikethroughIcon, {}),
27779
27860
  "Strikethrough"
27780
27861
  ),
27781
- code: () => wrapTool("code", "`", "`", "Code", /* @__PURE__ */ jsx127(CodeIcon, {}), "Inline code"),
27862
+ code: () => wrapTool("code", "`", "`", "Code", /* @__PURE__ */ jsx128(CodeIcon, {}), "Inline code"),
27782
27863
  codeBlock: () => ({
27783
27864
  id: "code-block",
27784
27865
  label: "Code block",
27785
- icon: /* @__PURE__ */ jsx127(CodeIcon, {}),
27866
+ icon: /* @__PURE__ */ jsx128(CodeIcon, {}),
27786
27867
  title: "Code block",
27787
27868
  onAction: (h) => h.wrap("```\n", "\n```")
27788
27869
  }),
27789
27870
  link: () => ({
27790
27871
  id: "link",
27791
27872
  label: "Link",
27792
- icon: /* @__PURE__ */ jsx127(TextLinkIcon, {}),
27873
+ icon: /* @__PURE__ */ jsx128(TextLinkIcon, {}),
27793
27874
  title: "Insert link",
27794
27875
  onAction: (h) => {
27795
27876
  const sel = h.selection;
@@ -27802,41 +27883,41 @@ var textareaTools = {
27802
27883
  `heading-${level}`,
27803
27884
  `${"#".repeat(level)} `,
27804
27885
  `H${level}`,
27805
- /* @__PURE__ */ jsx127(HeadingIcon, {}),
27886
+ /* @__PURE__ */ jsx128(HeadingIcon, {}),
27806
27887
  `Heading ${level}`
27807
27888
  ),
27808
27889
  bulletList: () => prependLineTool(
27809
27890
  "ul",
27810
27891
  "- ",
27811
27892
  "Bullet list",
27812
- /* @__PURE__ */ jsx127(ListBulletedIcon, {}),
27893
+ /* @__PURE__ */ jsx128(ListBulletedIcon, {}),
27813
27894
  "Bullet list"
27814
27895
  ),
27815
27896
  numberedList: () => prependLineTool(
27816
27897
  "ol",
27817
27898
  "1. ",
27818
27899
  "Numbered list",
27819
- /* @__PURE__ */ jsx127(ListNumberedIcon, {}),
27900
+ /* @__PURE__ */ jsx128(ListNumberedIcon, {}),
27820
27901
  "Numbered list"
27821
27902
  ),
27822
27903
  quote: () => prependLineTool(
27823
27904
  "quote",
27824
27905
  "> ",
27825
27906
  "Quote",
27826
- /* @__PURE__ */ jsx127(QuotesIcon2, {}),
27907
+ /* @__PURE__ */ jsx128(QuotesIcon2, {}),
27827
27908
  "Quote"
27828
27909
  ),
27829
27910
  undo: () => ({
27830
27911
  id: "undo",
27831
27912
  label: "Undo",
27832
- icon: /* @__PURE__ */ jsx127(UndoIcon2, {}),
27913
+ icon: /* @__PURE__ */ jsx128(UndoIcon2, {}),
27833
27914
  title: "Undo (\u2318Z)",
27834
27915
  onAction: (h) => h.undo()
27835
27916
  }),
27836
27917
  redo: () => ({
27837
27918
  id: "redo",
27838
27919
  label: "Redo",
27839
- icon: /* @__PURE__ */ jsx127(RedoIcon2, {}),
27920
+ icon: /* @__PURE__ */ jsx128(RedoIcon2, {}),
27840
27921
  title: "Redo (\u2318\u21E7Z)",
27841
27922
  onAction: (h) => h.redo()
27842
27923
  }),
@@ -27848,7 +27929,7 @@ var textareaTools = {
27848
27929
  };
27849
27930
 
27850
27931
  // src/components/Textarea/Textarea.tsx
27851
- import { jsx as jsx128, jsxs as jsxs121 } from "react/jsx-runtime";
27932
+ import { jsx as jsx129, jsxs as jsxs122 } from "react/jsx-runtime";
27852
27933
  var Textarea = forwardRef108(
27853
27934
  function Textarea2({
27854
27935
  label,
@@ -27997,7 +28078,7 @@ var Textarea = forwardRef108(
27997
28078
  minWidth: toCss2(minWidth),
27998
28079
  resize: resolvedResize
27999
28080
  };
28000
- return /* @__PURE__ */ jsxs121(
28081
+ return /* @__PURE__ */ jsxs122(
28001
28082
  "div",
28002
28083
  {
28003
28084
  className: cn(
@@ -28011,7 +28092,7 @@ var Textarea = forwardRef108(
28011
28092
  ),
28012
28093
  style: consumerStyle,
28013
28094
  children: [
28014
- label && /* @__PURE__ */ jsx128(
28095
+ label && /* @__PURE__ */ jsx129(
28015
28096
  "label",
28016
28097
  {
28017
28098
  ...labelProps,
@@ -28020,15 +28101,15 @@ var Textarea = forwardRef108(
28020
28101
  children: label
28021
28102
  }
28022
28103
  ),
28023
- toolbarEnabled && toolbarPosition === "top" && /* @__PURE__ */ jsx128(
28104
+ toolbarEnabled && toolbarPosition === "top" && /* @__PURE__ */ jsx129(
28024
28105
  TextareaToolbar,
28025
28106
  {
28026
28107
  tools: toolbar.tools,
28027
28108
  onRun: toolbar.runTool
28028
28109
  }
28029
28110
  ),
28030
- /* @__PURE__ */ jsxs121("div", { className: "ods-textarea__wrapper", children: [
28031
- /* @__PURE__ */ jsx128(
28111
+ /* @__PURE__ */ jsxs122("div", { className: "ods-textarea__wrapper", children: [
28112
+ /* @__PURE__ */ jsx129(
28032
28113
  "textarea",
28033
28114
  {
28034
28115
  ...props,
@@ -28053,7 +28134,7 @@ var Textarea = forwardRef108(
28053
28134
  }
28054
28135
  ),
28055
28136
  cmdEnabled && cmdPalette.isOpen && cmdPalette.items.length > 0 && typeof document !== "undefined" && createPortal17(
28056
- /* @__PURE__ */ jsx128(
28137
+ /* @__PURE__ */ jsx129(
28057
28138
  "ul",
28058
28139
  {
28059
28140
  id: `${baseId}-cmd-list`,
@@ -28065,7 +28146,7 @@ var Textarea = forwardRef108(
28065
28146
  top: (cmdPalette.caretRect?.bottom ?? 0) + 6,
28066
28147
  left: cmdPalette.caretRect?.left ?? 0
28067
28148
  },
28068
- children: cmdPalette.items.map((c, i) => /* @__PURE__ */ jsxs121(
28149
+ children: cmdPalette.items.map((c, i) => /* @__PURE__ */ jsxs122(
28069
28150
  "li",
28070
28151
  {
28071
28152
  id: `${baseId}-cmd-${c.id}`,
@@ -28082,10 +28163,10 @@ var Textarea = forwardRef108(
28082
28163
  onMouseEnter: () => {
28083
28164
  },
28084
28165
  children: [
28085
- c.icon && /* @__PURE__ */ jsx128("span", { className: "ods-textarea__cmd-icon", children: c.icon }),
28086
- /* @__PURE__ */ jsxs121("span", { className: "ods-textarea__cmd-text", children: [
28087
- /* @__PURE__ */ jsx128("span", { className: "ods-textarea__cmd-label", children: c.label }),
28088
- c.description && /* @__PURE__ */ jsx128("span", { className: "ods-textarea__cmd-desc", children: c.description })
28166
+ c.icon && /* @__PURE__ */ jsx129("span", { className: "ods-textarea__cmd-icon", children: c.icon }),
28167
+ /* @__PURE__ */ jsxs122("span", { className: "ods-textarea__cmd-text", children: [
28168
+ /* @__PURE__ */ jsx129("span", { className: "ods-textarea__cmd-label", children: c.label }),
28169
+ c.description && /* @__PURE__ */ jsx129("span", { className: "ods-textarea__cmd-desc", children: c.description })
28089
28170
  ] })
28090
28171
  ]
28091
28172
  },
@@ -28096,7 +28177,7 @@ var Textarea = forwardRef108(
28096
28177
  document.body
28097
28178
  ),
28098
28179
  selectionToolbar && sel.active && sel.rect && typeof document !== "undefined" && createPortal17(
28099
- /* @__PURE__ */ jsxs121(
28180
+ /* @__PURE__ */ jsxs122(
28100
28181
  "div",
28101
28182
  {
28102
28183
  role: "toolbar",
@@ -28109,7 +28190,7 @@ var Textarea = forwardRef108(
28109
28190
  },
28110
28191
  onMouseDown: (e) => e.preventDefault(),
28111
28192
  children: [
28112
- /* @__PURE__ */ jsx128(
28193
+ /* @__PURE__ */ jsx129(
28113
28194
  "button",
28114
28195
  {
28115
28196
  type: "button",
@@ -28117,10 +28198,10 @@ var Textarea = forwardRef108(
28117
28198
  onClick: () => sel.copy(),
28118
28199
  "aria-label": "Copy selection",
28119
28200
  title: "Copy",
28120
- children: /* @__PURE__ */ jsx128(CopyIcon5, { size: "xs" })
28201
+ children: /* @__PURE__ */ jsx129(CopyIcon5, { size: "xs" })
28121
28202
  }
28122
28203
  ),
28123
- /* @__PURE__ */ jsx128(
28204
+ /* @__PURE__ */ jsx129(
28124
28205
  "button",
28125
28206
  {
28126
28207
  type: "button",
@@ -28128,10 +28209,10 @@ var Textarea = forwardRef108(
28128
28209
  onClick: () => sel.cut(),
28129
28210
  "aria-label": "Cut selection",
28130
28211
  title: "Cut",
28131
- children: /* @__PURE__ */ jsx128(CutIcon, { size: "xs" })
28212
+ children: /* @__PURE__ */ jsx129(CutIcon, { size: "xs" })
28132
28213
  }
28133
28214
  ),
28134
- selectionActions?.map((a) => /* @__PURE__ */ jsxs121(
28215
+ selectionActions?.map((a) => /* @__PURE__ */ jsxs122(
28135
28216
  "button",
28136
28217
  {
28137
28218
  type: "button",
@@ -28145,7 +28226,7 @@ var Textarea = forwardRef108(
28145
28226
  title: typeof a.label === "string" ? a.label : void 0,
28146
28227
  children: [
28147
28228
  a.icon,
28148
- a.label && /* @__PURE__ */ jsx128("span", { className: "ods-textarea__sel-btn-label", children: a.label })
28229
+ a.label && /* @__PURE__ */ jsx129("span", { className: "ods-textarea__sel-btn-label", children: a.label })
28149
28230
  ]
28150
28231
  },
28151
28232
  a.id
@@ -28155,7 +28236,7 @@ var Textarea = forwardRef108(
28155
28236
  ),
28156
28237
  document.body
28157
28238
  ),
28158
- maxLength != null && /* @__PURE__ */ jsxs121(
28239
+ maxLength != null && /* @__PURE__ */ jsxs122(
28159
28240
  "span",
28160
28241
  {
28161
28242
  className: "ods-textarea__count",
@@ -28168,14 +28249,14 @@ var Textarea = forwardRef108(
28168
28249
  }
28169
28250
  )
28170
28251
  ] }),
28171
- toolbarEnabled && toolbarPosition === "bottom" && /* @__PURE__ */ jsx128(
28252
+ toolbarEnabled && toolbarPosition === "bottom" && /* @__PURE__ */ jsx129(
28172
28253
  TextareaToolbar,
28173
28254
  {
28174
28255
  tools: toolbar.tools,
28175
28256
  onRun: toolbar.runTool
28176
28257
  }
28177
28258
  ),
28178
- error && errorMessage ? /* @__PURE__ */ jsx128(
28259
+ error && errorMessage ? /* @__PURE__ */ jsx129(
28179
28260
  "div",
28180
28261
  {
28181
28262
  id: hintId,
@@ -28183,7 +28264,7 @@ var Textarea = forwardRef108(
28183
28264
  role: "alert",
28184
28265
  children: errorMessage
28185
28266
  }
28186
- ) : helperText ? /* @__PURE__ */ jsx128("div", { id: hintId, className: "ods-textarea__hint", children: helperText }) : null
28267
+ ) : helperText ? /* @__PURE__ */ jsx129("div", { id: hintId, className: "ods-textarea__hint", children: helperText }) : null
28187
28268
  ]
28188
28269
  }
28189
28270
  );
@@ -28194,7 +28275,7 @@ function TextareaToolbar({
28194
28275
  tools,
28195
28276
  onRun
28196
28277
  }) {
28197
- return /* @__PURE__ */ jsx128(
28278
+ return /* @__PURE__ */ jsx129(
28198
28279
  "div",
28199
28280
  {
28200
28281
  role: "toolbar",
@@ -28207,7 +28288,7 @@ function TextareaToolbar({
28207
28288
  },
28208
28289
  children: tools.map((t) => {
28209
28290
  if (t.kind === "divider") {
28210
- return /* @__PURE__ */ jsx128(
28291
+ return /* @__PURE__ */ jsx129(
28211
28292
  "span",
28212
28293
  {
28213
28294
  className: "ods-textarea__toolbar-divider",
@@ -28216,7 +28297,7 @@ function TextareaToolbar({
28216
28297
  t.id
28217
28298
  );
28218
28299
  }
28219
- return /* @__PURE__ */ jsx128(
28300
+ return /* @__PURE__ */ jsx129(
28220
28301
  "button",
28221
28302
  {
28222
28303
  type: "button",
@@ -28224,7 +28305,7 @@ function TextareaToolbar({
28224
28305
  title: t.title ?? (typeof t.label === "string" ? t.label : void 0),
28225
28306
  "aria-label": typeof t.label === "string" ? t.label : t.id,
28226
28307
  onClick: () => onRun(t.id),
28227
- children: t.icon ? /* @__PURE__ */ jsx128("span", { className: "ods-textarea__toolbar-icon", children: t.icon }) : /* @__PURE__ */ jsx128("span", { className: "ods-textarea__toolbar-text", children: t.label })
28308
+ children: t.icon ? /* @__PURE__ */ jsx129("span", { className: "ods-textarea__toolbar-icon", children: t.icon }) : /* @__PURE__ */ jsx129("span", { className: "ods-textarea__toolbar-text", children: t.label })
28228
28309
  },
28229
28310
  t.id
28230
28311
  );
@@ -28238,7 +28319,7 @@ import { AnimatePresence as AnimatePresence21, motion as motion34 } from "framer
28238
28319
  import {
28239
28320
  forwardRef as forwardRef109
28240
28321
  } from "react";
28241
- import { jsx as jsx129, jsxs as jsxs122 } from "react/jsx-runtime";
28322
+ import { jsx as jsx130, jsxs as jsxs123 } from "react/jsx-runtime";
28242
28323
  var Timeline = forwardRef109(
28243
28324
  function Timeline2({
28244
28325
  items,
@@ -28248,16 +28329,16 @@ var Timeline = forwardRef109(
28248
28329
  className,
28249
28330
  ...rest
28250
28331
  }, ref) {
28251
- return /* @__PURE__ */ jsx129(
28332
+ return /* @__PURE__ */ jsx130(
28252
28333
  "ol",
28253
28334
  {
28254
28335
  ...rest,
28255
28336
  ref,
28256
28337
  className: cn("ods-timeline", `ods-timeline--${size}`, className),
28257
- children: /* @__PURE__ */ jsx129(AnimatePresence21, { initial: false, children: items.map((item, idx) => {
28338
+ children: /* @__PURE__ */ jsx130(AnimatePresence21, { initial: false, children: items.map((item, idx) => {
28258
28339
  const last = idx === items.length - 1;
28259
28340
  const status = item.status ?? "default";
28260
- return /* @__PURE__ */ jsxs122(
28341
+ return /* @__PURE__ */ jsxs123(
28261
28342
  motion34.li,
28262
28343
  {
28263
28344
  layout: animated,
@@ -28274,8 +28355,8 @@ var Timeline = forwardRef109(
28274
28355
  delay: animated ? idx * staggerDelay / 1e3 : 0
28275
28356
  },
28276
28357
  children: [
28277
- /* @__PURE__ */ jsxs122("div", { className: "ods-timeline__rail", children: [
28278
- /* @__PURE__ */ jsx129(
28358
+ /* @__PURE__ */ jsxs123("div", { className: "ods-timeline__rail", children: [
28359
+ /* @__PURE__ */ jsx130(
28279
28360
  "span",
28280
28361
  {
28281
28362
  className: cn(
@@ -28286,12 +28367,12 @@ var Timeline = forwardRef109(
28286
28367
  children: item.icon
28287
28368
  }
28288
28369
  ),
28289
- !last && /* @__PURE__ */ jsx129("span", { className: "ods-timeline__line", "aria-hidden": "true" })
28370
+ !last && /* @__PURE__ */ jsx130("span", { className: "ods-timeline__line", "aria-hidden": "true" })
28290
28371
  ] }),
28291
- /* @__PURE__ */ jsxs122("div", { className: "ods-timeline__body", children: [
28292
- /* @__PURE__ */ jsx129("div", { className: "ods-timeline__title", children: item.title }),
28293
- item.description && /* @__PURE__ */ jsx129("div", { className: "ods-timeline__desc", children: item.description }),
28294
- item.meta && /* @__PURE__ */ jsx129("div", { className: "ods-timeline__meta", children: item.meta })
28372
+ /* @__PURE__ */ jsxs123("div", { className: "ods-timeline__body", children: [
28373
+ /* @__PURE__ */ jsx130("div", { className: "ods-timeline__title", children: item.title }),
28374
+ item.description && /* @__PURE__ */ jsx130("div", { className: "ods-timeline__desc", children: item.description }),
28375
+ item.meta && /* @__PURE__ */ jsx130("div", { className: "ods-timeline__meta", children: item.meta })
28295
28376
  ] })
28296
28377
  ]
28297
28378
  },
@@ -28307,7 +28388,7 @@ Timeline.displayName = "Timeline";
28307
28388
  // src/components/TimePicker/TimePicker.tsx
28308
28389
  import {
28309
28390
  forwardRef as forwardRef110,
28310
- Fragment as Fragment45,
28391
+ Fragment as Fragment46,
28311
28392
  useCallback as useCallback46,
28312
28393
  useEffect as useEffect47,
28313
28394
  useId as useId60,
@@ -28321,7 +28402,7 @@ import {
28321
28402
  ChevronDownIcon as ChevronDownIcon8,
28322
28403
  TimeIcon as TimeIcon2
28323
28404
  } from "@octaviaflow/icons";
28324
- import { Fragment as Fragment46, jsx as jsx130, jsxs as jsxs123 } from "react/jsx-runtime";
28405
+ import { Fragment as Fragment47, jsx as jsx131, jsxs as jsxs124 } from "react/jsx-runtime";
28325
28406
  var pad = (n) => n.toString().padStart(2, "0");
28326
28407
  function format(v, use24h, showSeconds) {
28327
28408
  const base = `${pad(v.hours)}:${pad(v.minutes)}${showSeconds ? `:${pad(v.seconds ?? 0)}` : ""}`;
@@ -28553,7 +28634,7 @@ var TimePicker = forwardRef110(
28553
28634
  if (draft && draft.seg === seg) return draft.digits.padStart(2, "0");
28554
28635
  return pad(val);
28555
28636
  };
28556
- const segButton = (seg, val) => /* @__PURE__ */ jsx130(
28637
+ const segButton = (seg, val) => /* @__PURE__ */ jsx131(
28557
28638
  "button",
28558
28639
  {
28559
28640
  ref: refOf(seg),
@@ -28573,7 +28654,7 @@ var TimePicker = forwardRef110(
28573
28654
  children: segDisplay(seg, val)
28574
28655
  }
28575
28656
  );
28576
- return /* @__PURE__ */ jsxs123(
28657
+ return /* @__PURE__ */ jsxs124(
28577
28658
  "div",
28578
28659
  {
28579
28660
  ...rest,
@@ -28586,7 +28667,7 @@ var TimePicker = forwardRef110(
28586
28667
  className
28587
28668
  ),
28588
28669
  children: [
28589
- label && /* @__PURE__ */ jsx130(
28670
+ label && /* @__PURE__ */ jsx131(
28590
28671
  "label",
28591
28672
  {
28592
28673
  id: labelId,
@@ -28595,7 +28676,7 @@ var TimePicker = forwardRef110(
28595
28676
  children: label
28596
28677
  }
28597
28678
  ),
28598
- /* @__PURE__ */ jsxs123(
28679
+ /* @__PURE__ */ jsxs124(
28599
28680
  "button",
28600
28681
  {
28601
28682
  type: "button",
@@ -28611,9 +28692,9 @@ var TimePicker = forwardRef110(
28611
28692
  "aria-describedby": describedBy,
28612
28693
  "aria-invalid": error ? true : void 0,
28613
28694
  children: [
28614
- /* @__PURE__ */ jsx130("span", { className: "ods-timepicker__trigger-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx130(TimeIcon2, { size: "xs" }) }),
28615
- /* @__PURE__ */ jsx130("span", { className: "ods-timepicker__value", children: format(value, use24h, showSeconds) }),
28616
- /* @__PURE__ */ jsx130(
28695
+ /* @__PURE__ */ jsx131("span", { className: "ods-timepicker__trigger-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx131(TimeIcon2, { size: "xs" }) }),
28696
+ /* @__PURE__ */ jsx131("span", { className: "ods-timepicker__value", children: format(value, use24h, showSeconds) }),
28697
+ /* @__PURE__ */ jsx131(
28617
28698
  "span",
28618
28699
  {
28619
28700
  className: cn(
@@ -28621,14 +28702,14 @@ var TimePicker = forwardRef110(
28621
28702
  open && "ods-timepicker__chev--open"
28622
28703
  ),
28623
28704
  "aria-hidden": "true",
28624
- children: /* @__PURE__ */ jsx130(ChevronDownIcon8, { size: "xs" })
28705
+ children: /* @__PURE__ */ jsx131(ChevronDownIcon8, { size: "xs" })
28625
28706
  }
28626
28707
  )
28627
28708
  ]
28628
28709
  }
28629
28710
  ),
28630
28711
  open && typeof document !== "undefined" && createPortal18(
28631
- /* @__PURE__ */ jsxs123(
28712
+ /* @__PURE__ */ jsxs124(
28632
28713
  "div",
28633
28714
  {
28634
28715
  ref: popoverRef,
@@ -28637,18 +28718,18 @@ var TimePicker = forwardRef110(
28637
28718
  "aria-label": "Select time",
28638
28719
  style: anchoredPopoverStyle(popoverPos),
28639
28720
  children: [
28640
- /* @__PURE__ */ jsxs123("div", { className: "ods-timepicker__head", children: [
28641
- /* @__PURE__ */ jsxs123("div", { className: "ods-timepicker__display", children: [
28721
+ /* @__PURE__ */ jsxs124("div", { className: "ods-timepicker__head", children: [
28722
+ /* @__PURE__ */ jsxs124("div", { className: "ods-timepicker__display", children: [
28642
28723
  segButton("hours", value.hours),
28643
- /* @__PURE__ */ jsx130("span", { className: "ods-timepicker__display-sep", children: ":" }),
28724
+ /* @__PURE__ */ jsx131("span", { className: "ods-timepicker__display-sep", children: ":" }),
28644
28725
  segButton("minutes", value.minutes),
28645
- showSeconds && /* @__PURE__ */ jsxs123(Fragment46, { children: [
28646
- /* @__PURE__ */ jsx130("span", { className: "ods-timepicker__display-sep", children: ":" }),
28726
+ showSeconds && /* @__PURE__ */ jsxs124(Fragment47, { children: [
28727
+ /* @__PURE__ */ jsx131("span", { className: "ods-timepicker__display-sep", children: ":" }),
28647
28728
  segButton("seconds", value.seconds ?? 0)
28648
28729
  ] })
28649
28730
  ] }),
28650
- !use24h && /* @__PURE__ */ jsxs123("div", { className: "ods-timepicker__period", children: [
28651
- /* @__PURE__ */ jsx130(
28731
+ !use24h && /* @__PURE__ */ jsxs124("div", { className: "ods-timepicker__period", children: [
28732
+ /* @__PURE__ */ jsx131(
28652
28733
  "button",
28653
28734
  {
28654
28735
  type: "button",
@@ -28660,7 +28741,7 @@ var TimePicker = forwardRef110(
28660
28741
  children: "AM"
28661
28742
  }
28662
28743
  ),
28663
- /* @__PURE__ */ jsx130(
28744
+ /* @__PURE__ */ jsx131(
28664
28745
  "button",
28665
28746
  {
28666
28747
  type: "button",
@@ -28674,41 +28755,41 @@ var TimePicker = forwardRef110(
28674
28755
  )
28675
28756
  ] })
28676
28757
  ] }),
28677
- /* @__PURE__ */ jsx130("div", { className: "ods-timepicker__body", children: segOrder().map((seg, i, arr) => /* @__PURE__ */ jsxs123(Fragment45, { children: [
28678
- /* @__PURE__ */ jsxs123("div", { className: "ods-timepicker__col", children: [
28679
- /* @__PURE__ */ jsx130("span", { className: "ods-timepicker__col-lbl", children: seg === "hours" ? "HOUR" : seg === "minutes" ? "MIN" : "SEC" }),
28680
- /* @__PURE__ */ jsx130(
28758
+ /* @__PURE__ */ jsx131("div", { className: "ods-timepicker__body", children: segOrder().map((seg, i, arr) => /* @__PURE__ */ jsxs124(Fragment46, { children: [
28759
+ /* @__PURE__ */ jsxs124("div", { className: "ods-timepicker__col", children: [
28760
+ /* @__PURE__ */ jsx131("span", { className: "ods-timepicker__col-lbl", children: seg === "hours" ? "HOUR" : seg === "minutes" ? "MIN" : "SEC" }),
28761
+ /* @__PURE__ */ jsx131(
28681
28762
  "button",
28682
28763
  {
28683
28764
  type: "button",
28684
28765
  className: "ods-timepicker__step",
28685
28766
  onClick: () => stepBy(seg, 1),
28686
28767
  "aria-label": `${seg} up`,
28687
- children: /* @__PURE__ */ jsx130(CaretUpIcon3, { size: "xs" })
28768
+ children: /* @__PURE__ */ jsx131(CaretUpIcon3, { size: "xs" })
28688
28769
  }
28689
28770
  ),
28690
- /* @__PURE__ */ jsx130("span", { className: "ods-timepicker__col-val", children: pad(
28771
+ /* @__PURE__ */ jsx131("span", { className: "ods-timepicker__col-val", children: pad(
28691
28772
  seg === "hours" ? value.hours : seg === "minutes" ? value.minutes : value.seconds ?? 0
28692
28773
  ) }),
28693
- /* @__PURE__ */ jsx130(
28774
+ /* @__PURE__ */ jsx131(
28694
28775
  "button",
28695
28776
  {
28696
28777
  type: "button",
28697
28778
  className: "ods-timepicker__step",
28698
28779
  onClick: () => stepBy(seg, -1),
28699
28780
  "aria-label": `${seg} down`,
28700
- children: /* @__PURE__ */ jsx130(CaretDownIcon3, { size: "xs" })
28781
+ children: /* @__PURE__ */ jsx131(CaretDownIcon3, { size: "xs" })
28701
28782
  }
28702
28783
  )
28703
28784
  ] }),
28704
- i < arr.length - 1 && /* @__PURE__ */ jsx130("span", { className: "ods-timepicker__sep", children: ":" })
28785
+ i < arr.length - 1 && /* @__PURE__ */ jsx131("span", { className: "ods-timepicker__sep", children: ":" })
28705
28786
  ] }, seg)) })
28706
28787
  ]
28707
28788
  }
28708
28789
  ),
28709
28790
  document.body
28710
28791
  ),
28711
- error ? /* @__PURE__ */ jsx130(
28792
+ error ? /* @__PURE__ */ jsx131(
28712
28793
  "div",
28713
28794
  {
28714
28795
  id: hintId,
@@ -28716,7 +28797,7 @@ var TimePicker = forwardRef110(
28716
28797
  role: "alert",
28717
28798
  children: error
28718
28799
  }
28719
- ) : helperText ? /* @__PURE__ */ jsx130("div", { id: hintId, className: "ods-timepicker__hint", children: helperText }) : null
28800
+ ) : helperText ? /* @__PURE__ */ jsx131("div", { id: hintId, className: "ods-timepicker__hint", children: helperText }) : null
28720
28801
  ]
28721
28802
  }
28722
28803
  );
@@ -28740,7 +28821,7 @@ import {
28740
28821
  GlobeIcon,
28741
28822
  SearchIcon as SearchIcon10
28742
28823
  } from "@octaviaflow/icons";
28743
- import { Fragment as Fragment47, jsx as jsx131, jsxs as jsxs124 } from "react/jsx-runtime";
28824
+ import { Fragment as Fragment48, jsx as jsx132, jsxs as jsxs125 } from "react/jsx-runtime";
28744
28825
  var DEFAULT_TZS = [
28745
28826
  { iana: "America/Los_Angeles", label: "Pacific Time", offset: "UTC\u22128" },
28746
28827
  { iana: "America/Denver", label: "Mountain Time", offset: "UTC\u22127" },
@@ -28875,7 +28956,7 @@ var TimezonePicker = forwardRef111(
28875
28956
  const setTriggerRef = (node) => {
28876
28957
  triggerRef.current = node;
28877
28958
  };
28878
- return /* @__PURE__ */ jsxs124(
28959
+ return /* @__PURE__ */ jsxs125(
28879
28960
  "div",
28880
28961
  {
28881
28962
  ...rest,
@@ -28888,7 +28969,7 @@ var TimezonePicker = forwardRef111(
28888
28969
  className
28889
28970
  ),
28890
28971
  children: [
28891
- label && /* @__PURE__ */ jsx131(
28972
+ label && /* @__PURE__ */ jsx132(
28892
28973
  "label",
28893
28974
  {
28894
28975
  id: labelId,
@@ -28897,7 +28978,7 @@ var TimezonePicker = forwardRef111(
28897
28978
  children: label
28898
28979
  }
28899
28980
  ),
28900
- /* @__PURE__ */ jsxs124(
28981
+ /* @__PURE__ */ jsxs125(
28901
28982
  "button",
28902
28983
  {
28903
28984
  ref: setTriggerRef,
@@ -28914,17 +28995,17 @@ var TimezonePicker = forwardRef111(
28914
28995
  "aria-describedby": describedBy,
28915
28996
  "aria-invalid": error ? true : void 0,
28916
28997
  children: [
28917
- /* @__PURE__ */ jsx131("span", { className: "ods-tzpicker__trigger-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx131(GlobeIcon, { size: "xs" }) }),
28918
- /* @__PURE__ */ jsx131("span", { className: "ods-tzpicker__info", children: selected ? /* @__PURE__ */ jsxs124(Fragment47, { children: [
28919
- /* @__PURE__ */ jsx131("span", { className: "ods-tzpicker__name", children: selected.label }),
28920
- /* @__PURE__ */ jsxs124("span", { className: "ods-tzpicker__meta", children: [
28998
+ /* @__PURE__ */ jsx132("span", { className: "ods-tzpicker__trigger-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx132(GlobeIcon, { size: "xs" }) }),
28999
+ /* @__PURE__ */ jsx132("span", { className: "ods-tzpicker__info", children: selected ? /* @__PURE__ */ jsxs125(Fragment48, { children: [
29000
+ /* @__PURE__ */ jsx132("span", { className: "ods-tzpicker__name", children: selected.label }),
29001
+ /* @__PURE__ */ jsxs125("span", { className: "ods-tzpicker__meta", children: [
28921
29002
  selected.iana.split("/").pop()?.replace(/_/g, " "),
28922
29003
  " \xB7",
28923
29004
  " ",
28924
29005
  selected.offset
28925
29006
  ] })
28926
- ] }) : /* @__PURE__ */ jsx131("span", { className: "ods-tzpicker__name ods-tzpicker__name--placeholder", children: placeholder }) }),
28927
- /* @__PURE__ */ jsx131(
29007
+ ] }) : /* @__PURE__ */ jsx132("span", { className: "ods-tzpicker__name ods-tzpicker__name--placeholder", children: placeholder }) }),
29008
+ /* @__PURE__ */ jsx132(
28928
29009
  "span",
28929
29010
  {
28930
29011
  className: cn(
@@ -28932,13 +29013,13 @@ var TimezonePicker = forwardRef111(
28932
29013
  open && "ods-tzpicker__chev--open"
28933
29014
  ),
28934
29015
  "aria-hidden": "true",
28935
- children: /* @__PURE__ */ jsx131(ChevronDownIcon9, { size: "xs" })
29016
+ children: /* @__PURE__ */ jsx132(ChevronDownIcon9, { size: "xs" })
28936
29017
  }
28937
29018
  )
28938
29019
  ]
28939
29020
  }
28940
29021
  ),
28941
- open && /* @__PURE__ */ jsxs124(
29022
+ open && /* @__PURE__ */ jsxs125(
28942
29023
  "div",
28943
29024
  {
28944
29025
  className: "ods-tzpicker__popover",
@@ -28946,9 +29027,9 @@ var TimezonePicker = forwardRef111(
28946
29027
  "aria-label": "Select timezone",
28947
29028
  onKeyDown: handlePopoverKey,
28948
29029
  children: [
28949
- /* @__PURE__ */ jsxs124("div", { className: "ods-tzpicker__search", children: [
28950
- /* @__PURE__ */ jsx131("span", { className: "ods-tzpicker__search-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx131(SearchIcon10, { size: "xs" }) }),
28951
- /* @__PURE__ */ jsx131(
29030
+ /* @__PURE__ */ jsxs125("div", { className: "ods-tzpicker__search", children: [
29031
+ /* @__PURE__ */ jsx132("span", { className: "ods-tzpicker__search-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx132(SearchIcon10, { size: "xs" }) }),
29032
+ /* @__PURE__ */ jsx132(
28952
29033
  "input",
28953
29034
  {
28954
29035
  ref: inputRef,
@@ -28964,7 +29045,7 @@ var TimezonePicker = forwardRef111(
28964
29045
  }
28965
29046
  )
28966
29047
  ] }),
28967
- /* @__PURE__ */ jsxs124(
29048
+ /* @__PURE__ */ jsxs125(
28968
29049
  "ul",
28969
29050
  {
28970
29051
  ref: listRef,
@@ -28973,11 +29054,11 @@ var TimezonePicker = forwardRef111(
28973
29054
  role: "listbox",
28974
29055
  "aria-labelledby": labelId,
28975
29056
  children: [
28976
- filtered.length === 0 && /* @__PURE__ */ jsx131("li", { className: "ods-tzpicker__empty", role: "presentation", children: "No timezones found" }),
29057
+ filtered.length === 0 && /* @__PURE__ */ jsx132("li", { className: "ods-tzpicker__empty", role: "presentation", children: "No timezones found" }),
28977
29058
  filtered.map((opt, i) => {
28978
29059
  const isSelected = opt.iana === value;
28979
29060
  const isActive2 = i === activeIndex;
28980
- return /* @__PURE__ */ jsx131("li", { role: "presentation", children: /* @__PURE__ */ jsxs124(
29061
+ return /* @__PURE__ */ jsx132("li", { role: "presentation", children: /* @__PURE__ */ jsxs125(
28981
29062
  "button",
28982
29063
  {
28983
29064
  type: "button",
@@ -28994,17 +29075,17 @@ var TimezonePicker = forwardRef111(
28994
29075
  onClick: () => select(opt.iana),
28995
29076
  onMouseEnter: () => setActiveIndex(i),
28996
29077
  children: [
28997
- /* @__PURE__ */ jsxs124("span", { className: "ods-tzpicker__opt-text", children: [
28998
- /* @__PURE__ */ jsx131("span", { className: "ods-tzpicker__opt-name", children: opt.label }),
28999
- /* @__PURE__ */ jsx131("span", { className: "ods-tzpicker__opt-iana", children: opt.iana })
29078
+ /* @__PURE__ */ jsxs125("span", { className: "ods-tzpicker__opt-text", children: [
29079
+ /* @__PURE__ */ jsx132("span", { className: "ods-tzpicker__opt-name", children: opt.label }),
29080
+ /* @__PURE__ */ jsx132("span", { className: "ods-tzpicker__opt-iana", children: opt.iana })
29000
29081
  ] }),
29001
- /* @__PURE__ */ jsx131("span", { className: "ods-tzpicker__opt-off", children: opt.offset }),
29002
- isSelected && /* @__PURE__ */ jsx131(
29082
+ /* @__PURE__ */ jsx132("span", { className: "ods-tzpicker__opt-off", children: opt.offset }),
29083
+ isSelected && /* @__PURE__ */ jsx132(
29003
29084
  "span",
29004
29085
  {
29005
29086
  className: "ods-tzpicker__opt-check",
29006
29087
  "aria-hidden": "true",
29007
- children: /* @__PURE__ */ jsx131(CheckmarkIcon12, { size: "xs" })
29088
+ children: /* @__PURE__ */ jsx132(CheckmarkIcon12, { size: "xs" })
29008
29089
  }
29009
29090
  )
29010
29091
  ]
@@ -29017,7 +29098,7 @@ var TimezonePicker = forwardRef111(
29017
29098
  ]
29018
29099
  }
29019
29100
  ),
29020
- error ? /* @__PURE__ */ jsx131(
29101
+ error ? /* @__PURE__ */ jsx132(
29021
29102
  "div",
29022
29103
  {
29023
29104
  id: hintId,
@@ -29025,7 +29106,7 @@ var TimezonePicker = forwardRef111(
29025
29106
  role: "alert",
29026
29107
  children: error
29027
29108
  }
29028
- ) : helperText ? /* @__PURE__ */ jsx131("div", { id: hintId, className: "ods-tzpicker__hint", children: helperText }) : null
29109
+ ) : helperText ? /* @__PURE__ */ jsx132("div", { id: hintId, className: "ods-tzpicker__hint", children: helperText }) : null
29029
29110
  ]
29030
29111
  }
29031
29112
  );
@@ -29044,10 +29125,10 @@ import {
29044
29125
  useState as useState64
29045
29126
  } from "react";
29046
29127
  import { createPortal as createPortal19 } from "react-dom";
29047
- import { Fragment as Fragment48, jsx as jsx132, jsxs as jsxs125 } from "react/jsx-runtime";
29128
+ import { Fragment as Fragment49, jsx as jsx133, jsxs as jsxs126 } from "react/jsx-runtime";
29048
29129
  var defaultIcons = {
29049
- success: /* @__PURE__ */ jsxs125("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
29050
- /* @__PURE__ */ jsx132(
29130
+ success: /* @__PURE__ */ jsxs126("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
29131
+ /* @__PURE__ */ jsx133(
29051
29132
  "circle",
29052
29133
  {
29053
29134
  cx: "8",
@@ -29057,7 +29138,7 @@ var defaultIcons = {
29057
29138
  stroke: "var(--ods-status-success-bd)"
29058
29139
  }
29059
29140
  ),
29060
- /* @__PURE__ */ jsx132(
29141
+ /* @__PURE__ */ jsx133(
29061
29142
  "path",
29062
29143
  {
29063
29144
  d: "m5 8 2 2 4-4.5",
@@ -29068,8 +29149,8 @@ var defaultIcons = {
29068
29149
  }
29069
29150
  )
29070
29151
  ] }),
29071
- error: /* @__PURE__ */ jsxs125("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
29072
- /* @__PURE__ */ jsx132(
29152
+ error: /* @__PURE__ */ jsxs126("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
29153
+ /* @__PURE__ */ jsx133(
29073
29154
  "circle",
29074
29155
  {
29075
29156
  cx: "8",
@@ -29079,7 +29160,7 @@ var defaultIcons = {
29079
29160
  stroke: "var(--ods-status-failed-bd)"
29080
29161
  }
29081
29162
  ),
29082
- /* @__PURE__ */ jsx132(
29163
+ /* @__PURE__ */ jsx133(
29083
29164
  "path",
29084
29165
  {
29085
29166
  d: "M5.5 5.5l5 5M10.5 5.5l-5 5",
@@ -29089,8 +29170,8 @@ var defaultIcons = {
29089
29170
  }
29090
29171
  )
29091
29172
  ] }),
29092
- warning: /* @__PURE__ */ jsxs125("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
29093
- /* @__PURE__ */ jsx132(
29173
+ warning: /* @__PURE__ */ jsxs126("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
29174
+ /* @__PURE__ */ jsx133(
29094
29175
  "circle",
29095
29176
  {
29096
29177
  cx: "8",
@@ -29100,7 +29181,7 @@ var defaultIcons = {
29100
29181
  stroke: "var(--ods-status-pending-bd)"
29101
29182
  }
29102
29183
  ),
29103
- /* @__PURE__ */ jsx132(
29184
+ /* @__PURE__ */ jsx133(
29104
29185
  "path",
29105
29186
  {
29106
29187
  d: "M8 4.5v4.2M8 11v.5",
@@ -29110,8 +29191,8 @@ var defaultIcons = {
29110
29191
  }
29111
29192
  )
29112
29193
  ] }),
29113
- info: /* @__PURE__ */ jsxs125("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
29114
- /* @__PURE__ */ jsx132(
29194
+ info: /* @__PURE__ */ jsxs126("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", "aria-hidden": "true", children: [
29195
+ /* @__PURE__ */ jsx133(
29115
29196
  "circle",
29116
29197
  {
29117
29198
  cx: "8",
@@ -29121,7 +29202,7 @@ var defaultIcons = {
29121
29202
  stroke: "var(--ods-status-running-bd)"
29122
29203
  }
29123
29204
  ),
29124
- /* @__PURE__ */ jsx132(
29205
+ /* @__PURE__ */ jsx133(
29125
29206
  "path",
29126
29207
  {
29127
29208
  d: "M8 7.5v4M8 4.5v.5",
@@ -29135,19 +29216,19 @@ var defaultIcons = {
29135
29216
  var ToastContext = createContext2(null);
29136
29217
  function ToastBody({ item, onDismiss }) {
29137
29218
  const dismiss = () => onDismiss(item.id);
29138
- if (item.render) return /* @__PURE__ */ jsx132(Fragment48, { children: item.render({ id: item.id, dismiss }) });
29219
+ if (item.render) return /* @__PURE__ */ jsx133(Fragment49, { children: item.render({ id: item.id, dismiss }) });
29139
29220
  const title = item.title ?? item.message;
29140
- return /* @__PURE__ */ jsxs125(Fragment48, { children: [
29141
- /* @__PURE__ */ jsx132("span", { className: "ods-toast__icon", "aria-hidden": "true", children: item.icon ?? defaultIcons[item.variant] }),
29142
- /* @__PURE__ */ jsxs125("div", { className: "ods-toast__body", children: [
29143
- title && /* @__PURE__ */ jsx132("div", { className: "ods-toast__title", children: title }),
29144
- item.description && /* @__PURE__ */ jsx132("div", { className: "ods-toast__desc", children: item.description })
29221
+ return /* @__PURE__ */ jsxs126(Fragment49, { children: [
29222
+ /* @__PURE__ */ jsx133("span", { className: "ods-toast__icon", "aria-hidden": "true", children: item.icon ?? defaultIcons[item.variant] }),
29223
+ /* @__PURE__ */ jsxs126("div", { className: "ods-toast__body", children: [
29224
+ title && /* @__PURE__ */ jsx133("div", { className: "ods-toast__title", children: title }),
29225
+ item.description && /* @__PURE__ */ jsx133("div", { className: "ods-toast__desc", children: item.description })
29145
29226
  ] }),
29146
- (item.actionLabel || item.action) && /* @__PURE__ */ jsx132("div", { className: "ods-toast__action", children: item.actionLabel ? (
29227
+ (item.actionLabel || item.action) && /* @__PURE__ */ jsx133("div", { className: "ods-toast__action", children: item.actionLabel ? (
29147
29228
  // First-class action chip — consistent styling, auto-dismiss
29148
29229
  // after the consumer's onAction runs. This is the path most
29149
29230
  // consumers should use ("Undo", "Retry", "View").
29150
- /* @__PURE__ */ jsx132(
29231
+ /* @__PURE__ */ jsx133(
29151
29232
  "button",
29152
29233
  {
29153
29234
  type: "button",
@@ -29166,7 +29247,7 @@ function ToastBody({ item, onDismiss }) {
29166
29247
  // (including any explicit dismiss() they want to call).
29167
29248
  item.action
29168
29249
  ) }),
29169
- item.closeable && /* @__PURE__ */ jsx132(
29250
+ item.closeable && /* @__PURE__ */ jsx133(
29170
29251
  "button",
29171
29252
  {
29172
29253
  type: "button",
@@ -29176,7 +29257,7 @@ function ToastBody({ item, onDismiss }) {
29176
29257
  e.stopPropagation();
29177
29258
  dismiss();
29178
29259
  },
29179
- children: /* @__PURE__ */ jsx132("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx132(
29260
+ children: /* @__PURE__ */ jsx133("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx133(
29180
29261
  "path",
29181
29262
  {
29182
29263
  d: "M3 3l8 8M11 3l-8 8",
@@ -29209,7 +29290,7 @@ function PositionStack({ items, position, onDismiss, maxStack }) {
29209
29290
  }
29210
29291
  return { y: maxStack * 10 * dir, scale: 1 - maxStack * 0.05, opacity: 0 };
29211
29292
  };
29212
- return /* @__PURE__ */ jsxs125(
29293
+ return /* @__PURE__ */ jsxs126(
29213
29294
  "div",
29214
29295
  {
29215
29296
  className: cn(
@@ -29222,7 +29303,7 @@ function PositionStack({ items, position, onDismiss, maxStack }) {
29222
29303
  onMouseLeave: () => setHovered(false),
29223
29304
  "aria-live": "polite",
29224
29305
  children: [
29225
- /* @__PURE__ */ jsx132(
29306
+ /* @__PURE__ */ jsx133(
29226
29307
  "div",
29227
29308
  {
29228
29309
  className: cn("ods-toast-stack__scroll", expanded && "ods-toast-stack__scroll--expanded"),
@@ -29232,9 +29313,9 @@ function PositionStack({ items, position, onDismiss, maxStack }) {
29232
29313
  setPinned((p) => !p);
29233
29314
  }
29234
29315
  },
29235
- children: /* @__PURE__ */ jsx132(AnimatePresence22, { mode: "popLayout", children: ordered.map((item, idx) => {
29316
+ children: /* @__PURE__ */ jsx133(AnimatePresence22, { mode: "popLayout", children: ordered.map((item, idx) => {
29236
29317
  const s = stackedStyle(idx);
29237
- return /* @__PURE__ */ jsx132(
29318
+ return /* @__PURE__ */ jsx133(
29238
29319
  motion35.div,
29239
29320
  {
29240
29321
  layout: true,
@@ -29257,14 +29338,14 @@ function PositionStack({ items, position, onDismiss, maxStack }) {
29257
29338
  setPinned(true);
29258
29339
  }
29259
29340
  },
29260
- children: /* @__PURE__ */ jsx132(ToastBody, { item, onDismiss })
29341
+ children: /* @__PURE__ */ jsx133(ToastBody, { item, onDismiss })
29261
29342
  },
29262
29343
  item.id
29263
29344
  );
29264
29345
  }) })
29265
29346
  }
29266
29347
  ),
29267
- expanded && items.length > 1 && pinned && /* @__PURE__ */ jsx132(
29348
+ expanded && items.length > 1 && pinned && /* @__PURE__ */ jsx133(
29268
29349
  "button",
29269
29350
  {
29270
29351
  type: "button",
@@ -29357,10 +29438,10 @@ function ToastProvider({
29357
29438
  return out;
29358
29439
  }, [toasts]);
29359
29440
  const ctx = { toast, dismiss, dismissAll };
29360
- const containers = /* @__PURE__ */ jsx132(Fragment48, { children: POSITIONS.map((pos) => {
29441
+ const containers = /* @__PURE__ */ jsx133(Fragment49, { children: POSITIONS.map((pos) => {
29361
29442
  const list = groups[pos];
29362
29443
  if (list.length === 0) return null;
29363
- return /* @__PURE__ */ jsx132(
29444
+ return /* @__PURE__ */ jsx133(
29364
29445
  PositionStack,
29365
29446
  {
29366
29447
  items: list,
@@ -29371,7 +29452,7 @@ function ToastProvider({
29371
29452
  pos
29372
29453
  );
29373
29454
  }) });
29374
- return /* @__PURE__ */ jsxs125(ToastContext.Provider, { value: ctx, children: [
29455
+ return /* @__PURE__ */ jsxs126(ToastContext.Provider, { value: ctx, children: [
29375
29456
  children,
29376
29457
  typeof document !== "undefined" && createPortal19(containers, document.body)
29377
29458
  ] });
@@ -29396,7 +29477,7 @@ import {
29396
29477
  useId as useId62,
29397
29478
  useRef as useRef55
29398
29479
  } from "react";
29399
- import { jsx as jsx133, jsxs as jsxs126 } from "react/jsx-runtime";
29480
+ import { jsx as jsx134, jsxs as jsxs127 } from "react/jsx-runtime";
29400
29481
  function Toggle({
29401
29482
  label,
29402
29483
  options,
@@ -29477,7 +29558,7 @@ function Toggle({
29477
29558
  );
29478
29559
  const selectedIdx = options.findIndex((o) => o.value === value);
29479
29560
  const fallbackTabIdx = selectedIdx >= 0 ? selectedIdx : findNextEnabled(-1, 1);
29480
- return /* @__PURE__ */ jsxs126(
29561
+ return /* @__PURE__ */ jsxs127(
29481
29562
  "div",
29482
29563
  {
29483
29564
  ...rest,
@@ -29489,8 +29570,8 @@ function Toggle({
29489
29570
  className
29490
29571
  ),
29491
29572
  children: [
29492
- label && /* @__PURE__ */ jsx133("span", { id: labelId, className: "ods-toggle-field__label", children: label }),
29493
- /* @__PURE__ */ jsx133(
29573
+ label && /* @__PURE__ */ jsx134("span", { id: labelId, className: "ods-toggle-field__label", children: label }),
29574
+ /* @__PURE__ */ jsx134(
29494
29575
  "div",
29495
29576
  {
29496
29577
  role: "radiogroup",
@@ -29507,7 +29588,7 @@ function Toggle({
29507
29588
  children: options.map((opt, i) => {
29508
29589
  const active = opt.value === value;
29509
29590
  const isDisabled = disabled || opt.disabled;
29510
- return /* @__PURE__ */ jsxs126(
29591
+ return /* @__PURE__ */ jsxs127(
29511
29592
  "button",
29512
29593
  {
29513
29594
  ref: (el) => {
@@ -29525,8 +29606,8 @@ function Toggle({
29525
29606
  active && "ods-toggle__opt--active"
29526
29607
  ),
29527
29608
  children: [
29528
- opt.icon && /* @__PURE__ */ jsx133("span", { className: "ods-toggle__icon", "aria-hidden": "true", children: opt.icon }),
29529
- /* @__PURE__ */ jsx133("span", { className: "ods-toggle__label", children: opt.label })
29609
+ opt.icon && /* @__PURE__ */ jsx134("span", { className: "ods-toggle__icon", "aria-hidden": "true", children: opt.icon }),
29610
+ /* @__PURE__ */ jsx134("span", { className: "ods-toggle__label", children: opt.label })
29530
29611
  ]
29531
29612
  },
29532
29613
  opt.value
@@ -29534,7 +29615,7 @@ function Toggle({
29534
29615
  })
29535
29616
  }
29536
29617
  ),
29537
- error ? /* @__PURE__ */ jsx133(
29618
+ error ? /* @__PURE__ */ jsx134(
29538
29619
  "div",
29539
29620
  {
29540
29621
  id: hintId,
@@ -29542,7 +29623,7 @@ function Toggle({
29542
29623
  role: "alert",
29543
29624
  children: error
29544
29625
  }
29545
- ) : helperText ? /* @__PURE__ */ jsx133("div", { id: hintId, className: "ods-toggle-field__hint", children: helperText }) : null
29626
+ ) : helperText ? /* @__PURE__ */ jsx134("div", { id: hintId, className: "ods-toggle-field__hint", children: helperText }) : null
29546
29627
  ]
29547
29628
  }
29548
29629
  );
@@ -29550,9 +29631,9 @@ function Toggle({
29550
29631
  Toggle.displayName = "Toggle";
29551
29632
 
29552
29633
  // src/components/Toolbar/Toolbar.tsx
29553
- import { jsx as jsx134, jsxs as jsxs127 } from "react/jsx-runtime";
29634
+ import { jsx as jsx135, jsxs as jsxs128 } from "react/jsx-runtime";
29554
29635
  function Toolbar({ children, className }) {
29555
- return /* @__PURE__ */ jsx134("div", { role: "toolbar", className: cn("ods-toolbar", className), children });
29636
+ return /* @__PURE__ */ jsx135("div", { role: "toolbar", className: cn("ods-toolbar", className), children });
29556
29637
  }
29557
29638
  function ToolbarButton({
29558
29639
  icon,
@@ -29564,7 +29645,7 @@ function ToolbarButton({
29564
29645
  className,
29565
29646
  children
29566
29647
  }) {
29567
- return /* @__PURE__ */ jsxs127(
29648
+ return /* @__PURE__ */ jsxs128(
29568
29649
  "button",
29569
29650
  {
29570
29651
  type: "button",
@@ -29574,18 +29655,18 @@ function ToolbarButton({
29574
29655
  "aria-pressed": active,
29575
29656
  "aria-label": ariaLabel ?? (typeof label === "string" ? label : void 0),
29576
29657
  children: [
29577
- icon && /* @__PURE__ */ jsx134("span", { className: "ods-toolbar__btn-icon", "aria-hidden": "true", children: icon }),
29578
- label && /* @__PURE__ */ jsx134("span", { className: "ods-toolbar__btn-label", children: label }),
29658
+ icon && /* @__PURE__ */ jsx135("span", { className: "ods-toolbar__btn-icon", "aria-hidden": "true", children: icon }),
29659
+ label && /* @__PURE__ */ jsx135("span", { className: "ods-toolbar__btn-label", children: label }),
29579
29660
  children
29580
29661
  ]
29581
29662
  }
29582
29663
  );
29583
29664
  }
29584
29665
  function ToolbarDivider() {
29585
- return /* @__PURE__ */ jsx134("span", { className: "ods-toolbar__divider", "aria-hidden": "true" });
29666
+ return /* @__PURE__ */ jsx135("span", { className: "ods-toolbar__divider", "aria-hidden": "true" });
29586
29667
  }
29587
29668
  function ToolbarSpacer() {
29588
- return /* @__PURE__ */ jsx134("span", { className: "ods-toolbar__spacer" });
29669
+ return /* @__PURE__ */ jsx135("span", { className: "ods-toolbar__spacer" });
29589
29670
  }
29590
29671
 
29591
29672
  // src/components/ToolCard/ToolCard.tsx
@@ -29603,16 +29684,16 @@ import {
29603
29684
  MagicWandIcon as MagicWandIcon2,
29604
29685
  SearchIcon as SearchIcon11
29605
29686
  } from "@octaviaflow/icons";
29606
- import { jsx as jsx135, jsxs as jsxs128 } from "react/jsx-runtime";
29687
+ import { jsx as jsx136, jsxs as jsxs129 } from "react/jsx-runtime";
29607
29688
  var CATEGORY_GLYPH = {
29608
- search: /* @__PURE__ */ jsx135(SearchIcon11, { size: "xs" }),
29609
- database: /* @__PURE__ */ jsx135(DataBaseIcon, { size: "xs" }),
29610
- web: /* @__PURE__ */ jsx135(GlobeIcon2, { size: "xs" }),
29611
- code: /* @__PURE__ */ jsx135(CodeIcon2, { size: "xs" }),
29612
- file: /* @__PURE__ */ jsx135(DocumentIcon2, { size: "xs" }),
29613
- api: /* @__PURE__ */ jsx135(ApiIcon, { size: "xs" }),
29614
- ai: /* @__PURE__ */ jsx135(MagicWandIcon2, { size: "xs" }),
29615
- custom: /* @__PURE__ */ jsx135(ExtensionsIcon, { size: "xs" })
29689
+ search: /* @__PURE__ */ jsx136(SearchIcon11, { size: "xs" }),
29690
+ database: /* @__PURE__ */ jsx136(DataBaseIcon, { size: "xs" }),
29691
+ web: /* @__PURE__ */ jsx136(GlobeIcon2, { size: "xs" }),
29692
+ code: /* @__PURE__ */ jsx136(CodeIcon2, { size: "xs" }),
29693
+ file: /* @__PURE__ */ jsx136(DocumentIcon2, { size: "xs" }),
29694
+ api: /* @__PURE__ */ jsx136(ApiIcon, { size: "xs" }),
29695
+ ai: /* @__PURE__ */ jsx136(MagicWandIcon2, { size: "xs" }),
29696
+ custom: /* @__PURE__ */ jsx136(ExtensionsIcon, { size: "xs" })
29616
29697
  };
29617
29698
  var ToolCard = forwardRef112(
29618
29699
  function ToolCard2({
@@ -29650,7 +29731,7 @@ var ToolCard = forwardRef112(
29650
29731
  }
29651
29732
  };
29652
29733
  const showSwitch = !hideToggle && onToggle !== void 0;
29653
- return /* @__PURE__ */ jsxs128(
29734
+ return /* @__PURE__ */ jsxs129(
29654
29735
  "div",
29655
29736
  {
29656
29737
  ...rest,
@@ -29673,7 +29754,7 @@ var ToolCard = forwardRef112(
29673
29754
  "aria-label": ariaLabel,
29674
29755
  "aria-describedby": descId,
29675
29756
  children: [
29676
- /* @__PURE__ */ jsx135(
29757
+ /* @__PURE__ */ jsx136(
29677
29758
  "span",
29678
29759
  {
29679
29760
  className: cn(
@@ -29684,15 +29765,15 @@ var ToolCard = forwardRef112(
29684
29765
  children: icon ?? CATEGORY_GLYPH[category]
29685
29766
  }
29686
29767
  ),
29687
- /* @__PURE__ */ jsxs128("div", { className: "ods-tool-card__body", children: [
29688
- /* @__PURE__ */ jsxs128("div", { className: "ods-tool-card__head", children: [
29689
- /* @__PURE__ */ jsx135("span", { id: nameId, className: "ods-tool-card__name", children: name }),
29690
- isNew && /* @__PURE__ */ jsx135("span", { className: "ods-tool-card__new", "aria-label": "New", children: "NEW" }),
29691
- badge && /* @__PURE__ */ jsx135("span", { className: "ods-tool-card__badge", children: badge })
29768
+ /* @__PURE__ */ jsxs129("div", { className: "ods-tool-card__body", children: [
29769
+ /* @__PURE__ */ jsxs129("div", { className: "ods-tool-card__head", children: [
29770
+ /* @__PURE__ */ jsx136("span", { id: nameId, className: "ods-tool-card__name", children: name }),
29771
+ isNew && /* @__PURE__ */ jsx136("span", { className: "ods-tool-card__new", "aria-label": "New", children: "NEW" }),
29772
+ badge && /* @__PURE__ */ jsx136("span", { className: "ods-tool-card__badge", children: badge })
29692
29773
  ] }),
29693
- description && /* @__PURE__ */ jsx135("div", { id: descId, className: "ods-tool-card__desc", children: description })
29774
+ description && /* @__PURE__ */ jsx136("div", { id: descId, className: "ods-tool-card__desc", children: description })
29694
29775
  ] }),
29695
- showSwitch && /* @__PURE__ */ jsx135(
29776
+ showSwitch && /* @__PURE__ */ jsx136(
29696
29777
  "button",
29697
29778
  {
29698
29779
  type: "button",
@@ -29713,7 +29794,7 @@ var ToolCard = forwardRef112(
29713
29794
  e.stopPropagation();
29714
29795
  }
29715
29796
  },
29716
- children: /* @__PURE__ */ jsx135("span", { className: "ods-tool-card__switch-thumb", "aria-hidden": "true" })
29797
+ children: /* @__PURE__ */ jsx136("span", { className: "ods-tool-card__switch-thumb", "aria-hidden": "true" })
29717
29798
  }
29718
29799
  )
29719
29800
  ]
@@ -29724,7 +29805,7 @@ var ToolCard = forwardRef112(
29724
29805
  ToolCard.displayName = "ToolCard";
29725
29806
 
29726
29807
  // src/components/TopBar/TopBar.tsx
29727
- import { jsx as jsx136, jsxs as jsxs129 } from "react/jsx-runtime";
29808
+ import { jsx as jsx137, jsxs as jsxs130 } from "react/jsx-runtime";
29728
29809
  function TopBar({
29729
29810
  brand,
29730
29811
  workspaceSwitcher,
@@ -29744,32 +29825,32 @@ function TopBar({
29744
29825
  const showDividerAfterBrand = hasBrandBlock && (hasWorkspace || hasCrumbs || hasTitle);
29745
29826
  const showDividerAfterWorkspace = hasWorkspace && (hasCrumbs || hasTitle);
29746
29827
  const BrandRoot = brand?.href ? "a" : "div";
29747
- return /* @__PURE__ */ jsxs129("header", { ...props, className: cn("ods-topbar", className), children: [
29748
- /* @__PURE__ */ jsxs129("div", { className: "ods-topbar__left", children: [
29749
- brand && /* @__PURE__ */ jsxs129(
29828
+ return /* @__PURE__ */ jsxs130("header", { ...props, className: cn("ods-topbar", className), children: [
29829
+ /* @__PURE__ */ jsxs130("div", { className: "ods-topbar__left", children: [
29830
+ brand && /* @__PURE__ */ jsxs130(
29750
29831
  BrandRoot,
29751
29832
  {
29752
29833
  href: brand.href,
29753
29834
  className: cn("ods-topbar__brand", brand.href && "ods-topbar__brand--link"),
29754
29835
  children: [
29755
- brand.logo && /* @__PURE__ */ jsx136("span", { className: "ods-topbar__brand-mark", children: brand.logo }),
29756
- /* @__PURE__ */ jsx136("span", { className: "ods-topbar__brand-name", children: brand.name })
29836
+ brand.logo && /* @__PURE__ */ jsx137("span", { className: "ods-topbar__brand-mark", children: brand.logo }),
29837
+ /* @__PURE__ */ jsx137("span", { className: "ods-topbar__brand-name", children: brand.name })
29757
29838
  ]
29758
29839
  }
29759
29840
  ),
29760
- showDividerAfterBrand && /* @__PURE__ */ jsx136("span", { className: "ods-topbar__divider", "aria-hidden": "true" }),
29761
- workspaceSwitcher && /* @__PURE__ */ jsx136("div", { className: "ods-topbar__workspace", children: workspaceSwitcher }),
29762
- showDividerAfterWorkspace && /* @__PURE__ */ jsx136("span", { className: "ods-topbar__divider", "aria-hidden": "true" }),
29763
- hasCrumbs && /* @__PURE__ */ jsx136("nav", { className: "ods-topbar__breadcrumbs", "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx136("ol", { children: breadcrumbs.map((crumb, idx) => /* @__PURE__ */ jsxs129("li", { className: "ods-topbar__crumb", children: [
29764
- idx > 0 && /* @__PURE__ */ jsx136("span", { className: "ods-topbar__separator", "aria-hidden": "true", children: "/" }),
29765
- crumb.href ? /* @__PURE__ */ jsx136("a", { href: crumb.href, children: crumb.label }) : /* @__PURE__ */ jsx136("span", { "aria-current": idx === breadcrumbs.length - 1 ? "page" : void 0, children: crumb.label })
29841
+ showDividerAfterBrand && /* @__PURE__ */ jsx137("span", { className: "ods-topbar__divider", "aria-hidden": "true" }),
29842
+ workspaceSwitcher && /* @__PURE__ */ jsx137("div", { className: "ods-topbar__workspace", children: workspaceSwitcher }),
29843
+ showDividerAfterWorkspace && /* @__PURE__ */ jsx137("span", { className: "ods-topbar__divider", "aria-hidden": "true" }),
29844
+ hasCrumbs && /* @__PURE__ */ jsx137("nav", { className: "ods-topbar__breadcrumbs", "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsx137("ol", { children: breadcrumbs.map((crumb, idx) => /* @__PURE__ */ jsxs130("li", { className: "ods-topbar__crumb", children: [
29845
+ idx > 0 && /* @__PURE__ */ jsx137("span", { className: "ods-topbar__separator", "aria-hidden": "true", children: "/" }),
29846
+ crumb.href ? /* @__PURE__ */ jsx137("a", { href: crumb.href, children: crumb.label }) : /* @__PURE__ */ jsx137("span", { "aria-current": idx === breadcrumbs.length - 1 ? "page" : void 0, children: crumb.label })
29766
29847
  ] }, idx)) }) }),
29767
- hasTitle && /* @__PURE__ */ jsx136("h1", { className: "ods-topbar__title", children: title })
29848
+ hasTitle && /* @__PURE__ */ jsx137("h1", { className: "ods-topbar__title", children: title })
29768
29849
  ] }),
29769
- children && /* @__PURE__ */ jsx136("div", { className: "ods-topbar__center", children }),
29770
- /* @__PURE__ */ jsxs129("div", { className: "ods-topbar__right", children: [
29771
- onSearch && /* @__PURE__ */ jsxs129("div", { className: "ods-topbar__search", children: [
29772
- /* @__PURE__ */ jsx136(
29850
+ children && /* @__PURE__ */ jsx137("div", { className: "ods-topbar__center", children }),
29851
+ /* @__PURE__ */ jsxs130("div", { className: "ods-topbar__right", children: [
29852
+ onSearch && /* @__PURE__ */ jsxs130("div", { className: "ods-topbar__search", children: [
29853
+ /* @__PURE__ */ jsx137(
29773
29854
  "svg",
29774
29855
  {
29775
29856
  className: "ods-topbar__search-icon",
@@ -29778,7 +29859,7 @@ function TopBar({
29778
29859
  viewBox: "0 0 20 20",
29779
29860
  fill: "currentColor",
29780
29861
  "aria-hidden": "true",
29781
- children: /* @__PURE__ */ jsx136(
29862
+ children: /* @__PURE__ */ jsx137(
29782
29863
  "path",
29783
29864
  {
29784
29865
  fillRule: "evenodd",
@@ -29788,7 +29869,7 @@ function TopBar({
29788
29869
  )
29789
29870
  }
29790
29871
  ),
29791
- /* @__PURE__ */ jsx136(
29872
+ /* @__PURE__ */ jsx137(
29792
29873
  "input",
29793
29874
  {
29794
29875
  type: "search",
@@ -29799,7 +29880,7 @@ function TopBar({
29799
29880
  }
29800
29881
  )
29801
29882
  ] }),
29802
- actions && /* @__PURE__ */ jsx136("div", { className: "ods-topbar__actions", children: actions })
29883
+ actions && /* @__PURE__ */ jsx137("div", { className: "ods-topbar__actions", children: actions })
29803
29884
  ] })
29804
29885
  ] });
29805
29886
  }
@@ -29821,13 +29902,13 @@ import {
29821
29902
  IdeaIcon,
29822
29903
  WarningAltIcon as WarningAltIcon2
29823
29904
  } from "@octaviaflow/icons";
29824
- import { jsx as jsx137, jsxs as jsxs130 } from "react/jsx-runtime";
29905
+ import { jsx as jsx138, jsxs as jsxs131 } from "react/jsx-runtime";
29825
29906
  var DEFAULT_KIND_GLYPH = {
29826
- thought: /* @__PURE__ */ jsx137(IdeaIcon, { size: "xs" }),
29827
- tool: /* @__PURE__ */ jsx137(BuildToolIcon, { size: "xs" }),
29828
- input: /* @__PURE__ */ jsx137(ConnectionReceiveIcon, { size: "xs" }),
29829
- output: /* @__PURE__ */ jsx137(ConnectionSendIcon, { size: "xs" }),
29830
- error: /* @__PURE__ */ jsx137(WarningAltIcon2, { size: "xs" })
29907
+ thought: /* @__PURE__ */ jsx138(IdeaIcon, { size: "xs" }),
29908
+ tool: /* @__PURE__ */ jsx138(BuildToolIcon, { size: "xs" }),
29909
+ input: /* @__PURE__ */ jsx138(ConnectionReceiveIcon, { size: "xs" }),
29910
+ output: /* @__PURE__ */ jsx138(ConnectionSendIcon, { size: "xs" }),
29911
+ error: /* @__PURE__ */ jsx138(WarningAltIcon2, { size: "xs" })
29831
29912
  };
29832
29913
  var FALLBACK_GLYPH = DEFAULT_KIND_GLYPH.thought;
29833
29914
  var TraceStep = forwardRef113(
@@ -29867,7 +29948,7 @@ var TraceStep = forwardRef113(
29867
29948
  onOpenChange?.(next);
29868
29949
  }, [canExpand, open, isControlled, onOpenChange]);
29869
29950
  const resolvedGlyph = icon ?? kindIcons?.[kind] ?? DEFAULT_KIND_GLYPH[kind] ?? FALLBACK_GLYPH;
29870
- return /* @__PURE__ */ jsxs130(
29951
+ return /* @__PURE__ */ jsxs131(
29871
29952
  "div",
29872
29953
  {
29873
29954
  ...rest,
@@ -29883,18 +29964,18 @@ var TraceStep = forwardRef113(
29883
29964
  className
29884
29965
  ),
29885
29966
  children: [
29886
- /* @__PURE__ */ jsxs130("div", { className: "ods-trace-step__rail", "aria-hidden": "true", children: [
29887
- /* @__PURE__ */ jsx137(
29967
+ /* @__PURE__ */ jsxs131("div", { className: "ods-trace-step__rail", "aria-hidden": "true", children: [
29968
+ /* @__PURE__ */ jsx138(
29888
29969
  motion36.span,
29889
29970
  {
29890
29971
  className: "ods-trace-step__icon",
29891
29972
  initial: disableAnimation ? false : { scale: 0.6, opacity: 0 },
29892
29973
  animate: { scale: 1, opacity: 1 },
29893
29974
  transition: { duration: 0.2, ease: [0.16, 1, 0.3, 1] },
29894
- children: status === "running" ? /* @__PURE__ */ jsx137("span", { className: "ods-trace-step__spin", children: /* @__PURE__ */ jsx137(CircleDashIcon, { size: "xs" }) }) : resolvedGlyph
29975
+ children: status === "running" ? /* @__PURE__ */ jsx138("span", { className: "ods-trace-step__spin", children: /* @__PURE__ */ jsx138(CircleDashIcon, { size: "xs" }) }) : resolvedGlyph
29895
29976
  }
29896
29977
  ),
29897
- !isLast && /* @__PURE__ */ jsx137(
29978
+ !isLast && /* @__PURE__ */ jsx138(
29898
29979
  motion36.span,
29899
29980
  {
29900
29981
  className: "ods-trace-step__line",
@@ -29904,8 +29985,8 @@ var TraceStep = forwardRef113(
29904
29985
  }
29905
29986
  )
29906
29987
  ] }),
29907
- /* @__PURE__ */ jsxs130("div", { className: "ods-trace-step__body", children: [
29908
- /* @__PURE__ */ jsxs130(
29988
+ /* @__PURE__ */ jsxs131("div", { className: "ods-trace-step__body", children: [
29989
+ /* @__PURE__ */ jsxs131(
29909
29990
  "button",
29910
29991
  {
29911
29992
  id: headId,
@@ -29916,7 +29997,7 @@ var TraceStep = forwardRef113(
29916
29997
  "aria-controls": canExpand ? contentId : void 0,
29917
29998
  disabled: !canExpand,
29918
29999
  children: [
29919
- index != null && /* @__PURE__ */ jsx137(
30000
+ index != null && /* @__PURE__ */ jsx138(
29920
30001
  "span",
29921
30002
  {
29922
30003
  className: cn(
@@ -29926,32 +30007,32 @@ var TraceStep = forwardRef113(
29926
30007
  children: index
29927
30008
  }
29928
30009
  ),
29929
- /* @__PURE__ */ jsx137("span", { className: "ods-trace-step__title", children: title }),
29930
- tool && /* @__PURE__ */ jsxs130(
30010
+ /* @__PURE__ */ jsx138("span", { className: "ods-trace-step__title", children: title }),
30011
+ tool && /* @__PURE__ */ jsxs131(
29931
30012
  "span",
29932
30013
  {
29933
30014
  className: "ods-trace-step__tool",
29934
30015
  title: tool,
29935
30016
  "aria-label": `Tool: ${tool}`,
29936
30017
  children: [
29937
- /* @__PURE__ */ jsx137("span", { className: "ods-trace-step__tool-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx137(BuildToolIcon, { size: "xs" }) }),
30018
+ /* @__PURE__ */ jsx138("span", { className: "ods-trace-step__tool-icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx138(BuildToolIcon, { size: "xs" }) }),
29938
30019
  tool
29939
30020
  ]
29940
30021
  }
29941
30022
  ),
29942
- /* @__PURE__ */ jsxs130("span", { className: "ods-trace-step__meta", children: [
29943
- tokens != null && /* @__PURE__ */ jsxs130(
30023
+ /* @__PURE__ */ jsxs131("span", { className: "ods-trace-step__meta", children: [
30024
+ tokens != null && /* @__PURE__ */ jsxs131(
29944
30025
  "span",
29945
30026
  {
29946
30027
  className: "ods-trace-step__tokens",
29947
30028
  "aria-label": `${tokens} tokens`,
29948
30029
  children: [
29949
- /* @__PURE__ */ jsx137("span", { children: tokens.toLocaleString() }),
30030
+ /* @__PURE__ */ jsx138("span", { children: tokens.toLocaleString() }),
29950
30031
  " tok"
29951
30032
  ]
29952
30033
  }
29953
30034
  ),
29954
- duration && /* @__PURE__ */ jsx137(
30035
+ duration && /* @__PURE__ */ jsx138(
29955
30036
  "span",
29956
30037
  {
29957
30038
  className: "ods-trace-step__duration",
@@ -29960,20 +30041,20 @@ var TraceStep = forwardRef113(
29960
30041
  }
29961
30042
  )
29962
30043
  ] }),
29963
- canExpand && /* @__PURE__ */ jsx137(
30044
+ canExpand && /* @__PURE__ */ jsx138(
29964
30045
  motion36.span,
29965
30046
  {
29966
30047
  className: "ods-trace-step__chev",
29967
30048
  "aria-hidden": "true",
29968
30049
  animate: { rotate: open ? 180 : 0 },
29969
30050
  transition: { duration: 0.18, ease: [0.16, 1, 0.3, 1] },
29970
- children: /* @__PURE__ */ jsx137(CaretDownIcon4, { size: "xs" })
30051
+ children: /* @__PURE__ */ jsx138(CaretDownIcon4, { size: "xs" })
29971
30052
  }
29972
30053
  )
29973
30054
  ]
29974
30055
  }
29975
30056
  ),
29976
- /* @__PURE__ */ jsx137(AnimatePresence23, { initial: false, children: canExpand && open && /* @__PURE__ */ jsx137(
30057
+ /* @__PURE__ */ jsx138(AnimatePresence23, { initial: false, children: canExpand && open && /* @__PURE__ */ jsx138(
29977
30058
  motion36.div,
29978
30059
  {
29979
30060
  id: contentId,
@@ -29985,7 +30066,7 @@ var TraceStep = forwardRef113(
29985
30066
  exit: disableAnimation ? void 0 : { height: 0, opacity: 0 },
29986
30067
  transition: { duration: 0.2, ease: [0.16, 1, 0.3, 1] },
29987
30068
  style: { overflow: "hidden" },
29988
- children: /* @__PURE__ */ jsx137("div", { className: "ods-trace-step__content-inner", children })
30069
+ children: /* @__PURE__ */ jsx138("div", { className: "ods-trace-step__content-inner", children })
29989
30070
  },
29990
30071
  "content"
29991
30072
  ) })
@@ -30008,7 +30089,7 @@ import {
30008
30089
  useMemo as useMemo33,
30009
30090
  useState as useState66
30010
30091
  } from "react";
30011
- import { jsx as jsx138, jsxs as jsxs131 } from "react/jsx-runtime";
30092
+ import { jsx as jsx139, jsxs as jsxs132 } from "react/jsx-runtime";
30012
30093
  function buildVisibleList(nodes, expanded, out = [], level = 0, parentId = null) {
30013
30094
  for (const n of nodes) {
30014
30095
  out.push({ node: n, level, parentId });
@@ -30171,7 +30252,7 @@ var TreeView = forwardRef114(
30171
30252
  const myIdx = visibleIdx.value;
30172
30253
  visibleIdx.value += 1;
30173
30254
  const showLoadingChild = isExpanded && isLoading && !kids;
30174
- return /* @__PURE__ */ jsxs131(
30255
+ return /* @__PURE__ */ jsxs132(
30175
30256
  "li",
30176
30257
  {
30177
30258
  id: `${baseId}-node-${node.id}`,
@@ -30191,7 +30272,7 @@ var TreeView = forwardRef114(
30191
30272
  handleKeyDown(e, myIdx);
30192
30273
  },
30193
30274
  children: [
30194
- /* @__PURE__ */ jsxs131(
30275
+ /* @__PURE__ */ jsxs132(
30195
30276
  "div",
30196
30277
  {
30197
30278
  className: "ods-tree__row",
@@ -30204,7 +30285,7 @@ var TreeView = forwardRef114(
30204
30285
  handleSelect(node);
30205
30286
  },
30206
30287
  children: [
30207
- /* @__PURE__ */ jsx138(
30288
+ /* @__PURE__ */ jsx139(
30208
30289
  "button",
30209
30290
  {
30210
30291
  type: "button",
@@ -30219,12 +30300,12 @@ var TreeView = forwardRef114(
30219
30300
  e.stopPropagation();
30220
30301
  if (isBranch && !node.disabled) void toggleExpand(node);
30221
30302
  },
30222
- children: isBranch && /* @__PURE__ */ jsx138(ChevronRightIcon5, { size: "xs", "aria-hidden": true })
30303
+ children: isBranch && /* @__PURE__ */ jsx139(ChevronRightIcon5, { size: "xs", "aria-hidden": true })
30223
30304
  }
30224
30305
  ),
30225
- (node.icon || node.iconExpanded) && /* @__PURE__ */ jsx138("span", { className: "ods-tree__icon", "aria-hidden": "true", children: isExpanded && node.iconExpanded ? node.iconExpanded : node.icon }),
30226
- /* @__PURE__ */ jsx138("span", { className: "ods-tree__label", children: node.label }),
30227
- node.trailing && /* @__PURE__ */ jsx138(
30306
+ (node.icon || node.iconExpanded) && /* @__PURE__ */ jsx139("span", { className: "ods-tree__icon", "aria-hidden": "true", children: isExpanded && node.iconExpanded ? node.iconExpanded : node.icon }),
30307
+ /* @__PURE__ */ jsx139("span", { className: "ods-tree__label", children: node.label }),
30308
+ node.trailing && /* @__PURE__ */ jsx139(
30228
30309
  "span",
30229
30310
  {
30230
30311
  className: "ods-tree__trailing",
@@ -30235,7 +30316,7 @@ var TreeView = forwardRef114(
30235
30316
  ]
30236
30317
  }
30237
30318
  ),
30238
- isBranch && isExpanded && /* @__PURE__ */ jsx138(
30319
+ isBranch && isExpanded && /* @__PURE__ */ jsx139(
30239
30320
  motion37.ul,
30240
30321
  {
30241
30322
  role: "group",
@@ -30243,7 +30324,7 @@ var TreeView = forwardRef114(
30243
30324
  initial: reducedMotion ? false : { height: 0, opacity: 0 },
30244
30325
  animate: reducedMotion ? void 0 : { height: "auto", opacity: 1 },
30245
30326
  transition: reducedMotion ? { duration: 0 } : { duration: 0.14 },
30246
- children: showLoadingChild ? /* @__PURE__ */ jsx138(
30327
+ children: showLoadingChild ? /* @__PURE__ */ jsx139(
30247
30328
  "li",
30248
30329
  {
30249
30330
  className: "ods-tree__loading",
@@ -30255,7 +30336,7 @@ var TreeView = forwardRef114(
30255
30336
  "aria-busy": "true",
30256
30337
  children: "Loading\u2026"
30257
30338
  }
30258
- ) : kids && kids.length > 0 ? kids.map((c) => renderNode(c, level + 1, visibleIdx)) : /* @__PURE__ */ jsx138(
30339
+ ) : kids && kids.length > 0 ? kids.map((c) => renderNode(c, level + 1, visibleIdx)) : /* @__PURE__ */ jsx139(
30259
30340
  "li",
30260
30341
  {
30261
30342
  className: "ods-tree__empty",
@@ -30277,7 +30358,7 @@ var TreeView = forwardRef114(
30277
30358
  const visibleIdxCursor = { value: 0 };
30278
30359
  useEffect49(() => {
30279
30360
  }, [tabStopId]);
30280
- return /* @__PURE__ */ jsx138(
30361
+ return /* @__PURE__ */ jsx139(
30281
30362
  "ul",
30282
30363
  {
30283
30364
  ...rest,
@@ -30304,7 +30385,7 @@ import {
30304
30385
  forwardRef as forwardRef115,
30305
30386
  useId as useId66
30306
30387
  } from "react";
30307
- import { Fragment as Fragment49, jsx as jsx139, jsxs as jsxs132 } from "react/jsx-runtime";
30388
+ import { Fragment as Fragment50, jsx as jsx140, jsxs as jsxs133 } from "react/jsx-runtime";
30308
30389
  var UserCard = forwardRef115(
30309
30390
  function UserCard2({
30310
30391
  name,
@@ -30332,7 +30413,7 @@ var UserCard = forwardRef115(
30332
30413
  const isInteractive = Boolean(href || onClick) && !disabled;
30333
30414
  const renderAvatar = () => {
30334
30415
  if (avatarNode) {
30335
- return /* @__PURE__ */ jsx139(
30416
+ return /* @__PURE__ */ jsx140(
30336
30417
  "span",
30337
30418
  {
30338
30419
  className: "ods-user-card__avatar ods-user-card__avatar--legacy",
@@ -30342,7 +30423,7 @@ var UserCard = forwardRef115(
30342
30423
  );
30343
30424
  }
30344
30425
  const derivedInitials = avatar?.initials ?? (typeof initial === "string" ? initial : typeof name === "string" ? name.charAt(0).toUpperCase() : void 0);
30345
- return /* @__PURE__ */ jsx139(
30426
+ return /* @__PURE__ */ jsx140(
30346
30427
  Avatar,
30347
30428
  {
30348
30429
  size: orientation === "horizontal" ? "md" : "lg",
@@ -30354,10 +30435,10 @@ var UserCard = forwardRef115(
30354
30435
  }
30355
30436
  );
30356
30437
  };
30357
- const body = /* @__PURE__ */ jsxs132(Fragment49, { children: [
30438
+ const body = /* @__PURE__ */ jsxs133(Fragment50, { children: [
30358
30439
  renderAvatar(),
30359
- /* @__PURE__ */ jsxs132("div", { className: "ods-user-card__body", children: [
30360
- /* @__PURE__ */ jsx139(
30440
+ /* @__PURE__ */ jsxs133("div", { className: "ods-user-card__body", children: [
30441
+ /* @__PURE__ */ jsx140(
30361
30442
  Card.Title,
30362
30443
  {
30363
30444
  as: nameAs,
@@ -30366,14 +30447,14 @@ var UserCard = forwardRef115(
30366
30447
  children: name
30367
30448
  }
30368
30449
  ),
30369
- role && /* @__PURE__ */ jsx139("div", { className: "ods-user-card__role", children: role }),
30370
- meta && /* @__PURE__ */ jsx139("div", { className: "ods-user-card__meta", children: meta })
30450
+ role && /* @__PURE__ */ jsx140("div", { className: "ods-user-card__role", children: role }),
30451
+ meta && /* @__PURE__ */ jsx140("div", { className: "ods-user-card__meta", children: meta })
30371
30452
  ] }),
30372
- stats && stats.length > 0 && /* @__PURE__ */ jsx139("div", { className: "ods-user-card__stats", children: stats.map((s, i) => /* @__PURE__ */ jsxs132("div", { className: "ods-user-card__stat", children: [
30373
- /* @__PURE__ */ jsx139("div", { className: "ods-user-card__stat-value", children: s.value }),
30374
- /* @__PURE__ */ jsx139("div", { className: "ods-user-card__stat-label", children: s.label })
30453
+ stats && stats.length > 0 && /* @__PURE__ */ jsx140("div", { className: "ods-user-card__stats", children: stats.map((s, i) => /* @__PURE__ */ jsxs133("div", { className: "ods-user-card__stat", children: [
30454
+ /* @__PURE__ */ jsx140("div", { className: "ods-user-card__stat-value", children: s.value }),
30455
+ /* @__PURE__ */ jsx140("div", { className: "ods-user-card__stat-label", children: s.label })
30375
30456
  ] }, i)) }),
30376
- action && /* @__PURE__ */ jsx139("div", { className: "ods-user-card__action", children: action })
30457
+ action && /* @__PURE__ */ jsx140("div", { className: "ods-user-card__action", children: action })
30377
30458
  ] });
30378
30459
  const sharedClass = cn(
30379
30460
  "ods-user-card",
@@ -30383,7 +30464,7 @@ var UserCard = forwardRef115(
30383
30464
  className
30384
30465
  );
30385
30466
  if (href && !disabled) {
30386
- return /* @__PURE__ */ jsx139(
30467
+ return /* @__PURE__ */ jsx140(
30387
30468
  Card,
30388
30469
  {
30389
30470
  asChild: true,
@@ -30391,7 +30472,7 @@ var UserCard = forwardRef115(
30391
30472
  padding: "none",
30392
30473
  className: sharedClass,
30393
30474
  "aria-labelledby": nameId,
30394
- children: /* @__PURE__ */ jsx139(
30475
+ children: /* @__PURE__ */ jsx140(
30395
30476
  "a",
30396
30477
  {
30397
30478
  ...rest,
@@ -30405,7 +30486,7 @@ var UserCard = forwardRef115(
30405
30486
  }
30406
30487
  );
30407
30488
  }
30408
- return /* @__PURE__ */ jsx139(
30489
+ return /* @__PURE__ */ jsx140(
30409
30490
  Card,
30410
30491
  {
30411
30492
  ...rest,
@@ -31120,7 +31201,7 @@ function useWorkflow(options = {}) {
31120
31201
  }
31121
31202
 
31122
31203
  // src/components/WorkflowEditor/WorkflowEditor.tsx
31123
- import { jsx as jsx140, jsxs as jsxs133 } from "react/jsx-runtime";
31204
+ import { jsx as jsx141, jsxs as jsxs134 } from "react/jsx-runtime";
31124
31205
  var NODE_KIND_MAP = {
31125
31206
  trigger: "trigger",
31126
31207
  action: "action",
@@ -31165,7 +31246,7 @@ function WorkflowEditor({
31165
31246
  drawer,
31166
31247
  console: consoleSlot,
31167
31248
  minimap,
31168
- emptyState = /* @__PURE__ */ jsx140(DefaultEmptyState, {}),
31249
+ emptyState = /* @__PURE__ */ jsx141(DefaultEmptyState, {}),
31169
31250
  children,
31170
31251
  background = "dots",
31171
31252
  snapToGrid = true,
@@ -31321,8 +31402,8 @@ function WorkflowEditor({
31321
31402
  wf.setViewport({ x: cw / 2 - cx * zoom, y: ch / 2 - cy * zoom, zoom });
31322
31403
  }, [workflow.canvas.nodes, canvasSize, wf]);
31323
31404
  const defaultToolbar = useMemo35(
31324
- () => /* @__PURE__ */ jsxs133(FlowToolbar, { placement: "left", children: [
31325
- onSave && /* @__PURE__ */ jsx140(
31405
+ () => /* @__PURE__ */ jsxs134(FlowToolbar, { placement: "left", children: [
31406
+ onSave && /* @__PURE__ */ jsx141(
31326
31407
  FlowToolbarButton,
31327
31408
  {
31328
31409
  icon: FlowToolbarIcons.save,
@@ -31331,7 +31412,7 @@ function WorkflowEditor({
31331
31412
  onClick: () => onSave(workflow)
31332
31413
  }
31333
31414
  ),
31334
- onRun && /* @__PURE__ */ jsx140(
31415
+ onRun && /* @__PURE__ */ jsx141(
31335
31416
  FlowToolbarButton,
31336
31417
  {
31337
31418
  icon: isExecuting ? FlowToolbarIcons.stop : FlowToolbarIcons.run,
@@ -31342,7 +31423,7 @@ function WorkflowEditor({
31342
31423
  onClick: isExecuting ? onStop : onRun
31343
31424
  }
31344
31425
  ),
31345
- /* @__PURE__ */ jsx140(
31426
+ /* @__PURE__ */ jsx141(
31346
31427
  FlowToolbarButton,
31347
31428
  {
31348
31429
  icon: isLockMode ? FlowToolbarIcons.lock : FlowToolbarIcons.unlock,
@@ -31352,7 +31433,7 @@ function WorkflowEditor({
31352
31433
  onClick: toggleLock
31353
31434
  }
31354
31435
  ),
31355
- /* @__PURE__ */ jsx140(
31436
+ /* @__PURE__ */ jsx141(
31356
31437
  FlowToolbarButton,
31357
31438
  {
31358
31439
  icon: FlowToolbarIcons.reset,
@@ -31360,7 +31441,7 @@ function WorkflowEditor({
31360
31441
  onClick: handleReset
31361
31442
  }
31362
31443
  ),
31363
- drawer && /* @__PURE__ */ jsx140(
31444
+ drawer && /* @__PURE__ */ jsx141(
31364
31445
  FlowToolbarButton,
31365
31446
  {
31366
31447
  icon: isDrawerOpen ? FlowToolbarIcons.drawerClose : FlowToolbarIcons.drawerOpen,
@@ -31369,8 +31450,8 @@ function WorkflowEditor({
31369
31450
  onClick: toggleDrawer
31370
31451
  }
31371
31452
  ),
31372
- /* @__PURE__ */ jsx140(FlowToolbarDivider, {}),
31373
- onSettings && /* @__PURE__ */ jsx140(
31453
+ /* @__PURE__ */ jsx141(FlowToolbarDivider, {}),
31454
+ onSettings && /* @__PURE__ */ jsx141(
31374
31455
  FlowToolbarButton,
31375
31456
  {
31376
31457
  icon: FlowToolbarIcons.settings,
@@ -31378,7 +31459,7 @@ function WorkflowEditor({
31378
31459
  onClick: onSettings
31379
31460
  }
31380
31461
  ),
31381
- /* @__PURE__ */ jsx140(
31462
+ /* @__PURE__ */ jsx141(
31382
31463
  FlowToolbarButton,
31383
31464
  {
31384
31465
  icon: FlowToolbarIcons.history,
@@ -31387,7 +31468,7 @@ function WorkflowEditor({
31387
31468
  onClick: toggleHistory
31388
31469
  }
31389
31470
  ),
31390
- isDebugModeEnabled && /* @__PURE__ */ jsx140(
31471
+ isDebugModeEnabled && /* @__PURE__ */ jsx141(
31391
31472
  FlowToolbarButton,
31392
31473
  {
31393
31474
  icon: FlowToolbarIcons.debug,
@@ -31396,8 +31477,8 @@ function WorkflowEditor({
31396
31477
  onClick: toggleDebug
31397
31478
  }
31398
31479
  ),
31399
- /* @__PURE__ */ jsx140(FlowToolbarDivider, {}),
31400
- /* @__PURE__ */ jsx140(
31480
+ /* @__PURE__ */ jsx141(FlowToolbarDivider, {}),
31481
+ /* @__PURE__ */ jsx141(
31401
31482
  FlowToolbarButton,
31402
31483
  {
31403
31484
  icon: FlowToolbarIcons.undo,
@@ -31407,7 +31488,7 @@ function WorkflowEditor({
31407
31488
  onClick: undo
31408
31489
  }
31409
31490
  ),
31410
- /* @__PURE__ */ jsx140(
31491
+ /* @__PURE__ */ jsx141(
31411
31492
  FlowToolbarButton,
31412
31493
  {
31413
31494
  icon: FlowToolbarIcons.redo,
@@ -31417,8 +31498,8 @@ function WorkflowEditor({
31417
31498
  onClick: redo
31418
31499
  }
31419
31500
  ),
31420
- /* @__PURE__ */ jsx140(FlowToolbarDivider, {}),
31421
- /* @__PURE__ */ jsx140(
31501
+ /* @__PURE__ */ jsx141(FlowToolbarDivider, {}),
31502
+ /* @__PURE__ */ jsx141(
31422
31503
  FlowToolbarZoom,
31423
31504
  {
31424
31505
  zoom: workflow.canvas.viewport.zoom,
@@ -31457,21 +31538,21 @@ function WorkflowEditor({
31457
31538
  );
31458
31539
  const resolvedToolbar = toolbar === "default" ? defaultToolbar : toolbar === null ? null : toolbar;
31459
31540
  const isEmpty = workflow.canvas.nodes.length === 0 && workflow.canvas.edges.length === 0;
31460
- return /* @__PURE__ */ jsxs133(
31541
+ return /* @__PURE__ */ jsxs134(
31461
31542
  "div",
31462
31543
  {
31463
31544
  className: cn("ods-workflow-editor", className),
31464
31545
  style: { width, height, position: "relative", display: "flex", overflow: "hidden" },
31465
31546
  children: [
31466
- drawer && isDrawerOpen && /* @__PURE__ */ jsx140("div", { className: "ods-workflow-editor__drawer", children: drawer }),
31467
- /* @__PURE__ */ jsxs133(
31547
+ drawer && isDrawerOpen && /* @__PURE__ */ jsx141("div", { className: "ods-workflow-editor__drawer", children: drawer }),
31548
+ /* @__PURE__ */ jsxs134(
31468
31549
  "div",
31469
31550
  {
31470
31551
  ref: handleCanvasRef,
31471
31552
  className: "ods-workflow-editor__canvas-wrapper",
31472
31553
  style: { position: "relative", flex: 1, minWidth: 0 },
31473
31554
  children: [
31474
- /* @__PURE__ */ jsx140(
31555
+ /* @__PURE__ */ jsx141(
31475
31556
  FlowCanvas,
31476
31557
  {
31477
31558
  nodes: nextNodes,
@@ -31485,9 +31566,9 @@ function WorkflowEditor({
31485
31566
  children: resolvedToolbar
31486
31567
  }
31487
31568
  ),
31488
- minimap && /* @__PURE__ */ jsx140("div", { className: "ods-workflow-editor__minimap", children: minimap }),
31489
- consoleSlot && /* @__PURE__ */ jsx140("div", { className: "ods-workflow-editor__console", children: consoleSlot }),
31490
- isEmpty && emptyState && /* @__PURE__ */ jsx140("div", { className: "ods-workflow-editor__empty", children: emptyState }),
31569
+ minimap && /* @__PURE__ */ jsx141("div", { className: "ods-workflow-editor__minimap", children: minimap }),
31570
+ consoleSlot && /* @__PURE__ */ jsx141("div", { className: "ods-workflow-editor__console", children: consoleSlot }),
31571
+ isEmpty && emptyState && /* @__PURE__ */ jsx141("div", { className: "ods-workflow-editor__empty", children: emptyState }),
31491
31572
  children
31492
31573
  ]
31493
31574
  }
@@ -31497,7 +31578,7 @@ function WorkflowEditor({
31497
31578
  );
31498
31579
  }
31499
31580
  function DefaultEmptyState() {
31500
- return /* @__PURE__ */ jsxs133(
31581
+ return /* @__PURE__ */ jsxs134(
31501
31582
  "div",
31502
31583
  {
31503
31584
  style: {
@@ -31512,14 +31593,14 @@ function DefaultEmptyState() {
31512
31593
  pointerEvents: "none"
31513
31594
  },
31514
31595
  children: [
31515
- /* @__PURE__ */ jsx140(
31596
+ /* @__PURE__ */ jsx141(
31516
31597
  "div",
31517
31598
  {
31518
31599
  style: { fontSize: 14, fontWeight: 600, color: "var(--ods-text-primary)", marginBottom: 4 },
31519
31600
  children: "Start with a trigger"
31520
31601
  }
31521
31602
  ),
31522
- /* @__PURE__ */ jsx140("div", { style: { fontSize: 12 }, children: "Drop an action here, or use the drawer to add your first node." })
31603
+ /* @__PURE__ */ jsx141("div", { style: { fontSize: 12 }, children: "Drop an action here, or use the drawer to add your first node." })
31523
31604
  ]
31524
31605
  }
31525
31606
  );
@@ -31562,7 +31643,7 @@ function useWorkflowRuntime(startedAt, active) {
31562
31643
  }
31563
31644
 
31564
31645
  // src/components/WorkflowHeader/WorkflowHeader.tsx
31565
- import { Fragment as Fragment50, jsx as jsx141, jsxs as jsxs134 } from "react/jsx-runtime";
31646
+ import { Fragment as Fragment51, jsx as jsx142, jsxs as jsxs135 } from "react/jsx-runtime";
31566
31647
  function WorkflowHeader({
31567
31648
  name,
31568
31649
  statusTone,
@@ -31605,21 +31686,21 @@ function WorkflowHeader({
31605
31686
  className
31606
31687
  );
31607
31688
  if (loading) {
31608
- return /* @__PURE__ */ jsxs134("header", { className: rootCls, "data-loading": "true", children: [
31609
- /* @__PURE__ */ jsxs134("div", { className: "ods-workflow-header__left", children: [
31610
- /* @__PURE__ */ jsx141(Skeleton, { variant: "text", width: "120px" }),
31611
- /* @__PURE__ */ jsx141(Skeleton, { variant: "text", width: "180px" })
31689
+ return /* @__PURE__ */ jsxs135("header", { className: rootCls, "data-loading": "true", children: [
31690
+ /* @__PURE__ */ jsxs135("div", { className: "ods-workflow-header__left", children: [
31691
+ /* @__PURE__ */ jsx142(Skeleton, { variant: "text", width: "120px" }),
31692
+ /* @__PURE__ */ jsx142(Skeleton, { variant: "text", width: "180px" })
31612
31693
  ] }),
31613
- /* @__PURE__ */ jsxs134("div", { className: "ods-workflow-header__right", children: [
31614
- /* @__PURE__ */ jsx141(Skeleton, { variant: "circular", width: "28px", height: "28px" }),
31615
- /* @__PURE__ */ jsx141(Skeleton, { variant: "circular", width: "28px", height: "28px" })
31694
+ /* @__PURE__ */ jsxs135("div", { className: "ods-workflow-header__right", children: [
31695
+ /* @__PURE__ */ jsx142(Skeleton, { variant: "circular", width: "28px", height: "28px" }),
31696
+ /* @__PURE__ */ jsx142(Skeleton, { variant: "circular", width: "28px", height: "28px" })
31616
31697
  ] })
31617
31698
  ] });
31618
31699
  }
31619
31700
  const envAccentStyle = environment?.accent ? { borderLeftColor: environment.accent } : void 0;
31620
- return /* @__PURE__ */ jsxs134("header", { className: rootCls, "data-running": isRunning ? "true" : void 0, children: [
31621
- /* @__PURE__ */ jsxs134("div", { className: "ods-workflow-header__left", children: [
31622
- onBack && /* @__PURE__ */ jsxs134(
31701
+ return /* @__PURE__ */ jsxs135("header", { className: rootCls, "data-running": isRunning ? "true" : void 0, children: [
31702
+ /* @__PURE__ */ jsxs135("div", { className: "ods-workflow-header__left", children: [
31703
+ onBack && /* @__PURE__ */ jsxs135(
31623
31704
  "button",
31624
31705
  {
31625
31706
  type: "button",
@@ -31627,13 +31708,13 @@ function WorkflowHeader({
31627
31708
  onClick: onBack,
31628
31709
  "aria-label": `Back to ${typeof parentLabel === "string" ? parentLabel : "previous"}`,
31629
31710
  children: [
31630
- /* @__PURE__ */ jsx141(ChevronLeftIcon3, { size: "sm" }),
31631
- /* @__PURE__ */ jsx141("span", { className: "ods-workflow-header__back-label", children: parentLabel }),
31632
- /* @__PURE__ */ jsx141("span", { className: "ods-workflow-header__back-separator", "aria-hidden": "true", children: "/" })
31711
+ /* @__PURE__ */ jsx142(ChevronLeftIcon3, { size: "sm" }),
31712
+ /* @__PURE__ */ jsx142("span", { className: "ods-workflow-header__back-label", children: parentLabel }),
31713
+ /* @__PURE__ */ jsx142("span", { className: "ods-workflow-header__back-separator", "aria-hidden": "true", children: "/" })
31633
31714
  ]
31634
31715
  }
31635
31716
  ),
31636
- /* @__PURE__ */ jsx141(
31717
+ /* @__PURE__ */ jsx142(
31637
31718
  "span",
31638
31719
  {
31639
31720
  className: cn(
@@ -31644,10 +31725,10 @@ function WorkflowHeader({
31644
31725
  role: "img"
31645
31726
  }
31646
31727
  ),
31647
- /* @__PURE__ */ jsx141("h1", { className: "ods-workflow-header__title", title: typeof name === "string" ? name : void 0, children: name }),
31648
- saveIndicator && /* @__PURE__ */ jsxs134(Fragment50, { children: [
31649
- /* @__PURE__ */ jsx141("span", { className: "ods-workflow-header__sep", "aria-hidden": "true" }),
31650
- /* @__PURE__ */ jsx141(
31728
+ /* @__PURE__ */ jsx142("h1", { className: "ods-workflow-header__title", title: typeof name === "string" ? name : void 0, children: name }),
31729
+ saveIndicator && /* @__PURE__ */ jsxs135(Fragment51, { children: [
31730
+ /* @__PURE__ */ jsx142("span", { className: "ods-workflow-header__sep", "aria-hidden": "true" }),
31731
+ /* @__PURE__ */ jsx142(
31651
31732
  "span",
31652
31733
  {
31653
31734
  className: cn(
@@ -31663,11 +31744,11 @@ function WorkflowHeader({
31663
31744
  ] }),
31664
31745
  leftSlot
31665
31746
  ] }),
31666
- /* @__PURE__ */ jsxs134("div", { className: "ods-workflow-header__right", children: [
31747
+ /* @__PURE__ */ jsxs135("div", { className: "ods-workflow-header__right", children: [
31667
31748
  rightSlot,
31668
31749
  environment && // Consumer-driven env chip. Accent (left border colour) comes
31669
31750
  // from the consumer — we don't bake in environment names.
31670
- /* @__PURE__ */ jsx141(
31751
+ /* @__PURE__ */ jsx142(
31671
31752
  Chip,
31672
31753
  {
31673
31754
  size: "sm",
@@ -31683,66 +31764,66 @@ function WorkflowHeader({
31683
31764
  children: environment.label
31684
31765
  }
31685
31766
  ),
31686
- onToggleConsole && (isRunning || consoleHasLogs) && /* @__PURE__ */ jsx141(
31767
+ onToggleConsole && (isRunning || consoleHasLogs) && /* @__PURE__ */ jsx142(
31687
31768
  Button,
31688
31769
  {
31689
31770
  variant: "ghost",
31690
31771
  size: "sm",
31691
31772
  pressed: !!isConsoleOpen,
31692
31773
  "aria-label": isConsoleOpen ? "Hide execution console" : "Show execution console",
31693
- leftIcon: /* @__PURE__ */ jsx141(TerminalIcon, { size: "sm" }),
31774
+ leftIcon: /* @__PURE__ */ jsx142(TerminalIcon, { size: "sm" }),
31694
31775
  onClick: onToggleConsole,
31695
31776
  children: "Console"
31696
31777
  }
31697
31778
  ),
31698
- (environment || onToggleConsole && (isRunning || consoleHasLogs)) && (isRunning || onRun || menuItems && menuItems.length > 0) && /* @__PURE__ */ jsx141("span", { className: "ods-workflow-header__micro-divider", "aria-hidden": "true" }),
31699
- isRunning ? onStop && /* @__PURE__ */ jsx141(
31779
+ (environment || onToggleConsole && (isRunning || consoleHasLogs)) && (isRunning || onRun || menuItems && menuItems.length > 0) && /* @__PURE__ */ jsx142("span", { className: "ods-workflow-header__micro-divider", "aria-hidden": "true" }),
31780
+ isRunning ? onStop && /* @__PURE__ */ jsx142(
31700
31781
  Button,
31701
31782
  {
31702
31783
  variant: "ghost",
31703
31784
  size: "sm",
31704
31785
  "aria-label": runtime ? `Stop execution (running ${runtime})` : "Stop execution",
31705
- leftIcon: /* @__PURE__ */ jsx141(StopFilledAltIcon2, { size: "sm", className: "ods-workflow-header__stop-glyph" }),
31786
+ leftIcon: /* @__PURE__ */ jsx142(StopFilledAltIcon2, { size: "sm", className: "ods-workflow-header__stop-glyph" }),
31706
31787
  onClick: onStop,
31707
- children: /* @__PURE__ */ jsxs134("span", { className: "ods-workflow-header__stop-label", children: [
31708
- /* @__PURE__ */ jsx141("span", { children: "Stop" }),
31709
- runtime && /* @__PURE__ */ jsxs134(Fragment50, { children: [
31710
- /* @__PURE__ */ jsx141("span", { className: "ods-workflow-header__stop-dot", "aria-hidden": "true", children: "\xB7" }),
31711
- /* @__PURE__ */ jsx141("span", { className: "ods-workflow-header__runtime", children: runtime })
31788
+ children: /* @__PURE__ */ jsxs135("span", { className: "ods-workflow-header__stop-label", children: [
31789
+ /* @__PURE__ */ jsx142("span", { children: "Stop" }),
31790
+ runtime && /* @__PURE__ */ jsxs135(Fragment51, { children: [
31791
+ /* @__PURE__ */ jsx142("span", { className: "ods-workflow-header__stop-dot", "aria-hidden": "true", children: "\xB7" }),
31792
+ /* @__PURE__ */ jsx142("span", { className: "ods-workflow-header__runtime", children: runtime })
31712
31793
  ] })
31713
31794
  ] })
31714
31795
  }
31715
- ) : onRun && /* @__PURE__ */ jsx141(
31796
+ ) : onRun && /* @__PURE__ */ jsx142(
31716
31797
  Button,
31717
31798
  {
31718
31799
  variant: "primary",
31719
31800
  size: "sm",
31720
31801
  "aria-label": "Run workflow",
31721
- leftIcon: /* @__PURE__ */ jsx141(PlayFilledAltIcon2, { size: "sm" }),
31802
+ leftIcon: /* @__PURE__ */ jsx142(PlayFilledAltIcon2, { size: "sm" }),
31722
31803
  onClick: onRun,
31723
31804
  children: "Run"
31724
31805
  }
31725
31806
  ),
31726
- menu ?? (menuItems && menuItems.length > 0 && /* @__PURE__ */ jsx141(
31807
+ menu ?? (menuItems && menuItems.length > 0 && /* @__PURE__ */ jsx142(
31727
31808
  DropdownMenu,
31728
31809
  {
31729
31810
  "aria-label": menuLabel,
31730
31811
  align: "end",
31731
31812
  triggerClassName: "ods-workflow-header__menu-trigger",
31732
31813
  ...menuProps,
31733
- trigger: menuTrigger ?? /* @__PURE__ */ jsx141(
31814
+ trigger: menuTrigger ?? /* @__PURE__ */ jsx142(
31734
31815
  "span",
31735
31816
  {
31736
31817
  "aria-hidden": "true",
31737
31818
  className: "ods-workflow-header__menu-icon",
31738
- children: /* @__PURE__ */ jsx141(OverflowMenuVerticalIcon, { size: "sm" })
31819
+ children: /* @__PURE__ */ jsx142(OverflowMenuVerticalIcon, { size: "sm" })
31739
31820
  }
31740
31821
  ),
31741
31822
  items: menuItems
31742
31823
  }
31743
31824
  ))
31744
31825
  ] }),
31745
- /* @__PURE__ */ jsx141("span", { className: "ods-workflow-header__progress", "aria-hidden": "true" })
31826
+ /* @__PURE__ */ jsx142("span", { className: "ods-workflow-header__progress", "aria-hidden": "true" })
31746
31827
  ] });
31747
31828
  }
31748
31829
 
@@ -31754,7 +31835,7 @@ import {
31754
31835
  StopFilledAltIcon as StopFilledAltIcon3,
31755
31836
  TerminalIcon as TerminalIcon2
31756
31837
  } from "@octaviaflow/icons";
31757
- import { Fragment as Fragment51, jsx as jsx142, jsxs as jsxs135 } from "react/jsx-runtime";
31838
+ import { Fragment as Fragment52, jsx as jsx143, jsxs as jsxs136 } from "react/jsx-runtime";
31758
31839
  function WorkflowHeaderExpanded({
31759
31840
  name,
31760
31841
  statusTone = "draft",
@@ -31782,15 +31863,15 @@ function WorkflowHeaderExpanded({
31782
31863
  const tickedRuntime = useWorkflowRuntime(runStartedAt, !!isRunning);
31783
31864
  const runtime = runtimeOverride ?? tickedRuntime ?? void 0;
31784
31865
  const effectiveTone = statusTone === "draft" && isRunning ? "running" : statusTone;
31785
- return /* @__PURE__ */ jsxs135(
31866
+ return /* @__PURE__ */ jsxs136(
31786
31867
  "header",
31787
31868
  {
31788
31869
  className: cn("ods-workflow-header-expanded", className),
31789
31870
  "data-running": isRunning ? "true" : void 0,
31790
31871
  children: [
31791
- /* @__PURE__ */ jsxs135("div", { className: "ods-workflow-header-expanded__row ods-workflow-header-expanded__row--top", children: [
31792
- /* @__PURE__ */ jsxs135("div", { className: "ods-workflow-header-expanded__left", children: [
31793
- onBack && /* @__PURE__ */ jsxs135(
31872
+ /* @__PURE__ */ jsxs136("div", { className: "ods-workflow-header-expanded__row ods-workflow-header-expanded__row--top", children: [
31873
+ /* @__PURE__ */ jsxs136("div", { className: "ods-workflow-header-expanded__left", children: [
31874
+ onBack && /* @__PURE__ */ jsxs136(
31794
31875
  "button",
31795
31876
  {
31796
31877
  type: "button",
@@ -31798,13 +31879,13 @@ function WorkflowHeaderExpanded({
31798
31879
  onClick: onBack,
31799
31880
  "aria-label": `Back to ${typeof parentLabel === "string" ? parentLabel : "previous"}`,
31800
31881
  children: [
31801
- /* @__PURE__ */ jsx142(ChevronLeftIcon4, { size: "sm" }),
31802
- /* @__PURE__ */ jsx142("span", { children: parentLabel }),
31803
- /* @__PURE__ */ jsx142("span", { "aria-hidden": "true", className: "ods-workflow-header-expanded__back-sep", children: "/" })
31882
+ /* @__PURE__ */ jsx143(ChevronLeftIcon4, { size: "sm" }),
31883
+ /* @__PURE__ */ jsx143("span", { children: parentLabel }),
31884
+ /* @__PURE__ */ jsx143("span", { "aria-hidden": "true", className: "ods-workflow-header-expanded__back-sep", children: "/" })
31804
31885
  ]
31805
31886
  }
31806
31887
  ),
31807
- /* @__PURE__ */ jsx142(
31888
+ /* @__PURE__ */ jsx143(
31808
31889
  "span",
31809
31890
  {
31810
31891
  className: cn(
@@ -31815,10 +31896,10 @@ function WorkflowHeaderExpanded({
31815
31896
  role: "img"
31816
31897
  }
31817
31898
  ),
31818
- /* @__PURE__ */ jsx142("h1", { className: "ods-workflow-header-expanded__title", children: name })
31899
+ /* @__PURE__ */ jsx143("h1", { className: "ods-workflow-header-expanded__title", children: name })
31819
31900
  ] }),
31820
- /* @__PURE__ */ jsxs135("div", { className: "ods-workflow-header-expanded__right", children: [
31821
- environment && /* @__PURE__ */ jsx142(
31901
+ /* @__PURE__ */ jsxs136("div", { className: "ods-workflow-header-expanded__right", children: [
31902
+ environment && /* @__PURE__ */ jsx143(
31822
31903
  Chip,
31823
31904
  {
31824
31905
  size: "sm",
@@ -31830,58 +31911,58 @@ function WorkflowHeaderExpanded({
31830
31911
  children: environment.label
31831
31912
  }
31832
31913
  ),
31833
- onToggleConsole && (isRunning || consoleHasLogs) && /* @__PURE__ */ jsx142(
31914
+ onToggleConsole && (isRunning || consoleHasLogs) && /* @__PURE__ */ jsx143(
31834
31915
  Button,
31835
31916
  {
31836
31917
  variant: "ghost",
31837
31918
  size: "sm",
31838
31919
  pressed: !!isConsoleOpen,
31839
31920
  "aria-label": isConsoleOpen ? "Hide execution console" : "Show execution console",
31840
- leftIcon: /* @__PURE__ */ jsx142(TerminalIcon2, { size: "sm" }),
31921
+ leftIcon: /* @__PURE__ */ jsx143(TerminalIcon2, { size: "sm" }),
31841
31922
  onClick: onToggleConsole,
31842
31923
  children: "Console"
31843
31924
  }
31844
31925
  ),
31845
- (environment || onToggleConsole && (isRunning || consoleHasLogs)) && (isRunning || onRun || menuItems && menuItems.length > 0) && /* @__PURE__ */ jsx142("span", { className: "ods-workflow-header-expanded__micro-divider", "aria-hidden": "true" }),
31846
- isRunning ? onStop && /* @__PURE__ */ jsx142(
31926
+ (environment || onToggleConsole && (isRunning || consoleHasLogs)) && (isRunning || onRun || menuItems && menuItems.length > 0) && /* @__PURE__ */ jsx143("span", { className: "ods-workflow-header-expanded__micro-divider", "aria-hidden": "true" }),
31927
+ isRunning ? onStop && /* @__PURE__ */ jsx143(
31847
31928
  Button,
31848
31929
  {
31849
31930
  variant: "ghost",
31850
31931
  size: "sm",
31851
31932
  "aria-label": runtime ? `Stop execution (running ${runtime})` : "Stop execution",
31852
- leftIcon: /* @__PURE__ */ jsx142(StopFilledAltIcon3, { size: "sm", className: "ods-workflow-header-expanded__stop-glyph" }),
31933
+ leftIcon: /* @__PURE__ */ jsx143(StopFilledAltIcon3, { size: "sm", className: "ods-workflow-header-expanded__stop-glyph" }),
31853
31934
  onClick: onStop,
31854
- children: /* @__PURE__ */ jsxs135("span", { style: { display: "inline-flex", gap: 4, alignItems: "center" }, children: [
31855
- /* @__PURE__ */ jsx142("span", { children: "Stop" }),
31856
- runtime && /* @__PURE__ */ jsxs135(Fragment51, { children: [
31857
- /* @__PURE__ */ jsx142("span", { "aria-hidden": "true", style: { opacity: 0.6 }, children: "\xB7" }),
31858
- /* @__PURE__ */ jsx142("span", { className: "ods-workflow-header-expanded__runtime", children: runtime })
31935
+ children: /* @__PURE__ */ jsxs136("span", { style: { display: "inline-flex", gap: 4, alignItems: "center" }, children: [
31936
+ /* @__PURE__ */ jsx143("span", { children: "Stop" }),
31937
+ runtime && /* @__PURE__ */ jsxs136(Fragment52, { children: [
31938
+ /* @__PURE__ */ jsx143("span", { "aria-hidden": "true", style: { opacity: 0.6 }, children: "\xB7" }),
31939
+ /* @__PURE__ */ jsx143("span", { className: "ods-workflow-header-expanded__runtime", children: runtime })
31859
31940
  ] })
31860
31941
  ] })
31861
31942
  }
31862
- ) : onRun && /* @__PURE__ */ jsx142(
31943
+ ) : onRun && /* @__PURE__ */ jsx143(
31863
31944
  Button,
31864
31945
  {
31865
31946
  variant: "primary",
31866
31947
  size: "sm",
31867
31948
  "aria-label": "Run workflow",
31868
- leftIcon: /* @__PURE__ */ jsx142(PlayFilledAltIcon3, { size: "sm" }),
31949
+ leftIcon: /* @__PURE__ */ jsx143(PlayFilledAltIcon3, { size: "sm" }),
31869
31950
  onClick: onRun,
31870
31951
  children: "Run"
31871
31952
  }
31872
31953
  ),
31873
- menu ?? (menuItems && menuItems.length > 0 && /* @__PURE__ */ jsx142(
31954
+ menu ?? (menuItems && menuItems.length > 0 && /* @__PURE__ */ jsx143(
31874
31955
  DropdownMenu,
31875
31956
  {
31876
31957
  "aria-label": menuLabel,
31877
31958
  align: "end",
31878
31959
  ...menuProps,
31879
- trigger: menuTrigger ?? /* @__PURE__ */ jsx142(
31960
+ trigger: menuTrigger ?? /* @__PURE__ */ jsx143(
31880
31961
  Button,
31881
31962
  {
31882
31963
  variant: "ghost",
31883
31964
  size: "sm",
31884
- leftIcon: /* @__PURE__ */ jsx142(OverflowMenuVerticalIcon2, { size: "sm" })
31965
+ leftIcon: /* @__PURE__ */ jsx143(OverflowMenuVerticalIcon2, { size: "sm" })
31885
31966
  }
31886
31967
  ),
31887
31968
  items: menuItems
@@ -31889,10 +31970,10 @@ function WorkflowHeaderExpanded({
31889
31970
  ))
31890
31971
  ] })
31891
31972
  ] }),
31892
- (meta || saveLabel) && /* @__PURE__ */ jsx142("div", { className: "ods-workflow-header-expanded__row ods-workflow-header-expanded__row--bottom", children: /* @__PURE__ */ jsxs135("span", { className: "ods-workflow-header-expanded__meta", children: [
31973
+ (meta || saveLabel) && /* @__PURE__ */ jsx143("div", { className: "ods-workflow-header-expanded__row ods-workflow-header-expanded__row--bottom", children: /* @__PURE__ */ jsxs136("span", { className: "ods-workflow-header-expanded__meta", children: [
31893
31974
  meta,
31894
- meta && saveLabel && /* @__PURE__ */ jsx142("span", { "aria-hidden": "true", style: { margin: "0 6px", opacity: 0.4 }, children: "\xB7" }),
31895
- saveLabel && /* @__PURE__ */ jsx142(
31975
+ meta && saveLabel && /* @__PURE__ */ jsx143("span", { "aria-hidden": "true", style: { margin: "0 6px", opacity: 0.4 }, children: "\xB7" }),
31976
+ saveLabel && /* @__PURE__ */ jsx143(
31896
31977
  "span",
31897
31978
  {
31898
31979
  className: cn(
@@ -31904,7 +31985,7 @@ function WorkflowHeaderExpanded({
31904
31985
  }
31905
31986
  )
31906
31987
  ] }) }),
31907
- /* @__PURE__ */ jsx142("span", { className: "ods-workflow-header-expanded__progress", "aria-hidden": "true" })
31988
+ /* @__PURE__ */ jsx143("span", { className: "ods-workflow-header-expanded__progress", "aria-hidden": "true" })
31908
31989
  ]
31909
31990
  }
31910
31991
  );
@@ -31925,7 +32006,7 @@ import {
31925
32006
  useMemo as useMemo36,
31926
32007
  useState as useState69
31927
32008
  } from "react";
31928
- import { Fragment as Fragment52, jsx as jsx143, jsxs as jsxs136 } from "react/jsx-runtime";
32009
+ import { Fragment as Fragment53, jsx as jsx144, jsxs as jsxs137 } from "react/jsx-runtime";
31929
32010
  function parseXml(src) {
31930
32011
  if (typeof window !== "undefined" && typeof window.DOMParser !== "undefined") {
31931
32012
  try {
@@ -32016,7 +32097,7 @@ var XmlViewer = forwardRef116(
32016
32097
  const bodyStyle = height !== void 0 ? { height: typeof height === "number" ? `${height}px` : height } : maxHeight !== void 0 ? {
32017
32098
  maxHeight: typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight
32018
32099
  } : void 0;
32019
- return /* @__PURE__ */ jsxs136(
32100
+ return /* @__PURE__ */ jsxs137(
32020
32101
  "div",
32021
32102
  {
32022
32103
  ...rest,
@@ -32024,9 +32105,9 @@ var XmlViewer = forwardRef116(
32024
32105
  id: baseId,
32025
32106
  className: cn("ods-xml-viewer", className),
32026
32107
  children: [
32027
- (title || status || parsed.error) && /* @__PURE__ */ jsxs136("div", { className: "ods-xml-viewer__head", children: [
32028
- title && /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__title", children: title }),
32029
- parsed.error && /* @__PURE__ */ jsx143(
32108
+ (title || status || parsed.error) && /* @__PURE__ */ jsxs137("div", { className: "ods-xml-viewer__head", children: [
32109
+ title && /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__title", children: title }),
32110
+ parsed.error && /* @__PURE__ */ jsx144(
32030
32111
  "span",
32031
32112
  {
32032
32113
  className: "ods-xml-viewer__status ods-xml-viewer__status--error",
@@ -32034,9 +32115,9 @@ var XmlViewer = forwardRef116(
32034
32115
  children: "Invalid XML"
32035
32116
  }
32036
32117
  ),
32037
- status && !parsed.error && /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__status", children: status })
32118
+ status && !parsed.error && /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__status", children: status })
32038
32119
  ] }),
32039
- /* @__PURE__ */ jsx143("div", { className: "ods-xml-viewer__body", style: bodyStyle, "data-mode": mode, children: mode === "edit" ? /* @__PURE__ */ jsx143(XmlEditBody, { text: data, onChange, onValidate }) : parsed.error ? /* @__PURE__ */ jsx143("pre", { className: "ods-xml-viewer__raw", children: data }) : parsed.root ? /* @__PURE__ */ jsx143(
32120
+ /* @__PURE__ */ jsx144("div", { className: "ods-xml-viewer__body", style: bodyStyle, "data-mode": mode, children: mode === "edit" ? /* @__PURE__ */ jsx144(XmlEditBody, { text: data, onChange, onValidate }) : parsed.error ? /* @__PURE__ */ jsx144("pre", { className: "ods-xml-viewer__raw", children: data }) : parsed.root ? /* @__PURE__ */ jsx144(
32040
32121
  XmlNodeRow,
32041
32122
  {
32042
32123
  node: parsed.root,
@@ -32080,8 +32161,8 @@ function XmlEditBody({ text: initial, onChange, onValidate }) {
32080
32161
  useEffect51(() => {
32081
32162
  validate(initial);
32082
32163
  }, []);
32083
- return /* @__PURE__ */ jsxs136("div", { className: "ods-xml-viewer__edit", children: [
32084
- parseError && /* @__PURE__ */ jsxs136(
32164
+ return /* @__PURE__ */ jsxs137("div", { className: "ods-xml-viewer__edit", children: [
32165
+ parseError && /* @__PURE__ */ jsxs137(
32085
32166
  InlineMessage,
32086
32167
  {
32087
32168
  tone: "danger",
@@ -32098,7 +32179,7 @@ function XmlEditBody({ text: initial, onChange, onValidate }) {
32098
32179
  ]
32099
32180
  }
32100
32181
  ),
32101
- /* @__PURE__ */ jsx143(
32182
+ /* @__PURE__ */ jsx144(
32102
32183
  CodeEditor,
32103
32184
  {
32104
32185
  value: text,
@@ -32141,27 +32222,27 @@ function XmlNodeRow({
32141
32222
  if (node.type === "text") {
32142
32223
  const t = (node.text ?? "").trim();
32143
32224
  const truncated = t.length > truncateAt ? `${t.slice(0, truncateAt)}\u2026` : t;
32144
- return /* @__PURE__ */ jsxs136("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32145
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__caret-spacer" }),
32146
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__text", children: truncated })
32225
+ return /* @__PURE__ */ jsxs137("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32226
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__caret-spacer" }),
32227
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__text", children: truncated })
32147
32228
  ] });
32148
32229
  }
32149
32230
  if (node.type === "comment") {
32150
- return /* @__PURE__ */ jsxs136("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32151
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__caret-spacer" }),
32152
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__comment", children: `<!-- ${node.text} -->` })
32231
+ return /* @__PURE__ */ jsxs137("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32232
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__caret-spacer" }),
32233
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__comment", children: `<!-- ${node.text} -->` })
32153
32234
  ] });
32154
32235
  }
32155
32236
  if (node.type === "cdata") {
32156
- return /* @__PURE__ */ jsxs136("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32157
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__caret-spacer" }),
32158
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__cdata", children: `<![CDATA[${node.text}]]>` })
32237
+ return /* @__PURE__ */ jsxs137("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32238
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__caret-spacer" }),
32239
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__cdata", children: `<![CDATA[${node.text}]]>` })
32159
32240
  ] });
32160
32241
  }
32161
32242
  if (node.type === "pi") {
32162
- return /* @__PURE__ */ jsxs136("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32163
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__caret-spacer" }),
32164
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__pi", children: `<?${node.text}?>` })
32243
+ return /* @__PURE__ */ jsxs137("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32244
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__caret-spacer" }),
32245
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__pi", children: `<?${node.text}?>` })
32165
32246
  ] });
32166
32247
  }
32167
32248
  const children = node.children ?? [];
@@ -32170,58 +32251,58 @@ function XmlNodeRow({
32170
32251
  const inlineTextChild = children.length === 1 && children[0].type === "text" ? children[0].text ?? "" : null;
32171
32252
  if (inlineTextChild !== null) {
32172
32253
  const isMultiLine = inlineTextChild.includes("\n");
32173
- const openTag = /* @__PURE__ */ jsxs136(Fragment52, { children: [
32174
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__bracket", children: "<" }),
32175
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__tag", children: node.name }),
32176
- showAttributes && attrs.map(([k, v]) => /* @__PURE__ */ jsxs136("span", { className: "ods-xml-viewer__attr", children: [
32177
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__attr-name", children: k }),
32178
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__attr-eq", children: "=" }),
32179
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__attr-value", children: `"${v}"` })
32254
+ const openTag = /* @__PURE__ */ jsxs137(Fragment53, { children: [
32255
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__bracket", children: "<" }),
32256
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__tag", children: node.name }),
32257
+ showAttributes && attrs.map(([k, v]) => /* @__PURE__ */ jsxs137("span", { className: "ods-xml-viewer__attr", children: [
32258
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__attr-name", children: k }),
32259
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__attr-eq", children: "=" }),
32260
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__attr-value", children: `"${v}"` })
32180
32261
  ] }, k)),
32181
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__bracket", children: ">" })
32262
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__bracket", children: ">" })
32182
32263
  ] });
32183
- const closeTag = /* @__PURE__ */ jsxs136(Fragment52, { children: [
32184
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__bracket", children: "</" }),
32185
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__tag", children: node.name }),
32186
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__bracket", children: ">" })
32264
+ const closeTag = /* @__PURE__ */ jsxs137(Fragment53, { children: [
32265
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__bracket", children: "</" }),
32266
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__tag", children: node.name }),
32267
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__bracket", children: ">" })
32187
32268
  ] });
32188
32269
  if (isMultiLine) {
32189
32270
  const innerPad = pad2 + 12;
32190
- return /* @__PURE__ */ jsxs136("div", { children: [
32191
- /* @__PURE__ */ jsxs136("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32192
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__caret-spacer" }),
32271
+ return /* @__PURE__ */ jsxs137("div", { children: [
32272
+ /* @__PURE__ */ jsxs137("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32273
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__caret-spacer" }),
32193
32274
  openTag
32194
32275
  ] }),
32195
- /* @__PURE__ */ jsx143(
32276
+ /* @__PURE__ */ jsx144(
32196
32277
  "div",
32197
32278
  {
32198
32279
  className: "ods-xml-viewer__row ods-xml-viewer__row--multiline",
32199
32280
  style: { paddingLeft: innerPad },
32200
- children: /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__text", children: inlineTextChild })
32281
+ children: /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__text", children: inlineTextChild })
32201
32282
  }
32202
32283
  ),
32203
- /* @__PURE__ */ jsxs136("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32204
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__caret-spacer" }),
32284
+ /* @__PURE__ */ jsxs137("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32285
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__caret-spacer" }),
32205
32286
  closeTag
32206
32287
  ] })
32207
32288
  ] });
32208
32289
  }
32209
- return /* @__PURE__ */ jsxs136("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32210
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__caret-spacer" }),
32290
+ return /* @__PURE__ */ jsxs137("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32291
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__caret-spacer" }),
32211
32292
  openTag,
32212
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__text", children: inlineTextChild }),
32293
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__text", children: inlineTextChild }),
32213
32294
  closeTag
32214
32295
  ] });
32215
32296
  }
32216
- return /* @__PURE__ */ jsxs136("div", { children: [
32217
- /* @__PURE__ */ jsxs136(
32297
+ return /* @__PURE__ */ jsxs137("div", { children: [
32298
+ /* @__PURE__ */ jsxs137(
32218
32299
  "div",
32219
32300
  {
32220
32301
  className: "ods-xml-viewer__row ods-xml-viewer__row--element",
32221
32302
  style: { paddingLeft: pad2 },
32222
32303
  onClick: () => !isSelfClosing && setOpen((o) => !o),
32223
32304
  children: [
32224
- isSelfClosing ? /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__caret-spacer" }) : /* @__PURE__ */ jsx143(
32305
+ isSelfClosing ? /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__caret-spacer" }) : /* @__PURE__ */ jsx144(
32225
32306
  "button",
32226
32307
  {
32227
32308
  type: "button",
@@ -32235,30 +32316,30 @@ function XmlNodeRow({
32235
32316
  e.stopPropagation();
32236
32317
  setOpen((o) => !o);
32237
32318
  },
32238
- children: /* @__PURE__ */ jsx143(ChevronRightIcon6, { size: "xs" })
32319
+ children: /* @__PURE__ */ jsx144(ChevronRightIcon6, { size: "xs" })
32239
32320
  }
32240
32321
  ),
32241
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__bracket", children: "<" }),
32242
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__tag", children: node.name }),
32243
- showAttributes && attrs.map(([k, v]) => /* @__PURE__ */ jsxs136("span", { className: "ods-xml-viewer__attr", children: [
32244
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__attr-name", children: k }),
32245
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__attr-eq", children: "=" }),
32246
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__attr-value", children: `"${v}"` })
32322
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__bracket", children: "<" }),
32323
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__tag", children: node.name }),
32324
+ showAttributes && attrs.map(([k, v]) => /* @__PURE__ */ jsxs137("span", { className: "ods-xml-viewer__attr", children: [
32325
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__attr-name", children: k }),
32326
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__attr-eq", children: "=" }),
32327
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__attr-value", children: `"${v}"` })
32247
32328
  ] }, k)),
32248
- isSelfClosing ? /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__bracket", children: " />" }) : /* @__PURE__ */ jsxs136(Fragment52, { children: [
32249
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__bracket", children: ">" }),
32250
- !open && /* @__PURE__ */ jsxs136(Fragment52, { children: [
32251
- /* @__PURE__ */ jsxs136("span", { className: "ods-xml-viewer__preview", children: [
32329
+ isSelfClosing ? /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__bracket", children: " />" }) : /* @__PURE__ */ jsxs137(Fragment53, { children: [
32330
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__bracket", children: ">" }),
32331
+ !open && /* @__PURE__ */ jsxs137(Fragment53, { children: [
32332
+ /* @__PURE__ */ jsxs137("span", { className: "ods-xml-viewer__preview", children: [
32252
32333
  children.length,
32253
32334
  " child",
32254
32335
  children.length === 1 ? "" : "ren"
32255
32336
  ] }),
32256
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__bracket", children: "</" }),
32257
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__tag", children: node.name }),
32258
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__bracket", children: ">" })
32337
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__bracket", children: "</" }),
32338
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__tag", children: node.name }),
32339
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__bracket", children: ">" })
32259
32340
  ] })
32260
32341
  ] }),
32261
- copyable && /* @__PURE__ */ jsx143(
32342
+ copyable && /* @__PURE__ */ jsx144(
32262
32343
  "button",
32263
32344
  {
32264
32345
  type: "button",
@@ -32268,14 +32349,14 @@ function XmlNodeRow({
32268
32349
  ),
32269
32350
  "aria-label": copied ? "Copied" : `Copy ${node.name} subtree`,
32270
32351
  onClick: onCopy,
32271
- children: copied ? /* @__PURE__ */ jsx143(CheckmarkIcon13, { size: "xs" }) : /* @__PURE__ */ jsx143(CopyIcon6, { size: "xs" })
32352
+ children: copied ? /* @__PURE__ */ jsx144(CheckmarkIcon13, { size: "xs" }) : /* @__PURE__ */ jsx144(CopyIcon6, { size: "xs" })
32272
32353
  }
32273
32354
  )
32274
32355
  ]
32275
32356
  }
32276
32357
  ),
32277
- !isSelfClosing && open && /* @__PURE__ */ jsxs136(Fragment52, { children: [
32278
- children.map((c, i) => /* @__PURE__ */ jsx143(
32358
+ !isSelfClosing && open && /* @__PURE__ */ jsxs137(Fragment53, { children: [
32359
+ children.map((c, i) => /* @__PURE__ */ jsx144(
32279
32360
  XmlNodeRow,
32280
32361
  {
32281
32362
  node: c,
@@ -32287,11 +32368,11 @@ function XmlNodeRow({
32287
32368
  },
32288
32369
  i
32289
32370
  )),
32290
- /* @__PURE__ */ jsxs136("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32291
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__caret-spacer" }),
32292
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__bracket", children: "</" }),
32293
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__tag", children: node.name }),
32294
- /* @__PURE__ */ jsx143("span", { className: "ods-xml-viewer__bracket", children: ">" })
32371
+ /* @__PURE__ */ jsxs137("div", { className: "ods-xml-viewer__row", style: { paddingLeft: pad2 }, children: [
32372
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__caret-spacer" }),
32373
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__bracket", children: "</" }),
32374
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__tag", children: node.name }),
32375
+ /* @__PURE__ */ jsx144("span", { className: "ods-xml-viewer__bracket", children: ">" })
32295
32376
  ] })
32296
32377
  ] })
32297
32378
  ] });
@@ -32312,7 +32393,7 @@ import {
32312
32393
  useState as useState70
32313
32394
  } from "react";
32314
32395
  import YAML from "yaml";
32315
- import { Fragment as Fragment53, jsx as jsx144, jsxs as jsxs137 } from "react/jsx-runtime";
32396
+ import { Fragment as Fragment54, jsx as jsx145, jsxs as jsxs138 } from "react/jsx-runtime";
32316
32397
  function toYaml(value, indent = 0) {
32317
32398
  const pad2 = " ".repeat(indent);
32318
32399
  if (value === null) return "null";
@@ -32511,7 +32592,7 @@ var YamlViewer = forwardRef117(
32511
32592
  const bodyStyle = height !== void 0 ? { height: typeof height === "number" ? `${height}px` : height } : maxHeight !== void 0 ? {
32512
32593
  maxHeight: typeof maxHeight === "number" ? `${maxHeight}px` : maxHeight
32513
32594
  } : void 0;
32514
- return /* @__PURE__ */ jsxs137(
32595
+ return /* @__PURE__ */ jsxs138(
32515
32596
  "div",
32516
32597
  {
32517
32598
  ...rest,
@@ -32523,11 +32604,11 @@ var YamlViewer = forwardRef117(
32523
32604
  className
32524
32605
  ),
32525
32606
  children: [
32526
- (title || status || copyable) && /* @__PURE__ */ jsxs137("div", { className: "ods-yaml-viewer__head", children: [
32527
- title && /* @__PURE__ */ jsx144("span", { className: "ods-yaml-viewer__title", children: title }),
32528
- /* @__PURE__ */ jsxs137("span", { className: "ods-yaml-viewer__head-right", children: [
32529
- status && /* @__PURE__ */ jsx144("span", { className: "ods-yaml-viewer__status", children: status }),
32530
- copyable && /* @__PURE__ */ jsx144(
32607
+ (title || status || copyable) && /* @__PURE__ */ jsxs138("div", { className: "ods-yaml-viewer__head", children: [
32608
+ title && /* @__PURE__ */ jsx145("span", { className: "ods-yaml-viewer__title", children: title }),
32609
+ /* @__PURE__ */ jsxs138("span", { className: "ods-yaml-viewer__head-right", children: [
32610
+ status && /* @__PURE__ */ jsx145("span", { className: "ods-yaml-viewer__status", children: status }),
32611
+ copyable && /* @__PURE__ */ jsx145(
32531
32612
  "button",
32532
32613
  {
32533
32614
  type: "button",
@@ -32537,16 +32618,16 @@ var YamlViewer = forwardRef117(
32537
32618
  ),
32538
32619
  "aria-label": copied ? "Copied" : "Copy YAML",
32539
32620
  onClick: onCopy,
32540
- children: copied ? /* @__PURE__ */ jsx144(CheckmarkIcon14, { size: "xs" }) : /* @__PURE__ */ jsx144(CopyIcon7, { size: "xs" })
32621
+ children: copied ? /* @__PURE__ */ jsx145(CheckmarkIcon14, { size: "xs" }) : /* @__PURE__ */ jsx145(CopyIcon7, { size: "xs" })
32541
32622
  }
32542
32623
  )
32543
32624
  ] })
32544
32625
  ] }),
32545
- /* @__PURE__ */ jsx144("div", { className: "ods-yaml-viewer__body", style: bodyStyle, "data-mode": mode, children: mode === "edit" ? /* @__PURE__ */ jsx144(YamlEditBody, { text, onChange, onValidate }) : tokens.map((t) => {
32626
+ /* @__PURE__ */ jsx145("div", { className: "ods-yaml-viewer__body", style: bodyStyle, "data-mode": mode, children: mode === "edit" ? /* @__PURE__ */ jsx145(YamlEditBody, { text, onChange, onValidate }) : tokens.map((t) => {
32546
32627
  if (hidden.has(t.index)) return null;
32547
32628
  const lineNo = t.index + 1;
32548
32629
  const isCollapsed = collapsed.has(t.index);
32549
- return /* @__PURE__ */ jsxs137(
32630
+ return /* @__PURE__ */ jsxs138(
32550
32631
  "div",
32551
32632
  {
32552
32633
  className: cn(
@@ -32555,7 +32636,7 @@ var YamlViewer = forwardRef117(
32555
32636
  isCollapsed && "ods-yaml-viewer__line--collapsed"
32556
32637
  ),
32557
32638
  children: [
32558
- showLineNumbers && /* @__PURE__ */ jsx144(
32639
+ showLineNumbers && /* @__PURE__ */ jsx145(
32559
32640
  "span",
32560
32641
  {
32561
32642
  className: "ods-yaml-viewer__line-no",
@@ -32563,7 +32644,7 @@ var YamlViewer = forwardRef117(
32563
32644
  children: lineNo
32564
32645
  }
32565
32646
  ),
32566
- /* @__PURE__ */ jsx144(
32647
+ /* @__PURE__ */ jsx145(
32567
32648
  "span",
32568
32649
  {
32569
32650
  className: "ods-yaml-viewer__indent",
@@ -32571,7 +32652,7 @@ var YamlViewer = forwardRef117(
32571
32652
  "aria-hidden": "true"
32572
32653
  }
32573
32654
  ),
32574
- t.hasChildren ? /* @__PURE__ */ jsx144(
32655
+ t.hasChildren ? /* @__PURE__ */ jsx145(
32575
32656
  "button",
32576
32657
  {
32577
32658
  type: "button",
@@ -32582,15 +32663,15 @@ var YamlViewer = forwardRef117(
32582
32663
  onClick: () => toggle(t.index),
32583
32664
  "aria-expanded": !isCollapsed,
32584
32665
  "aria-label": isCollapsed ? "Expand" : "Collapse",
32585
- children: /* @__PURE__ */ jsx144(ChevronRightIcon7, { size: "xs" })
32666
+ children: /* @__PURE__ */ jsx145(ChevronRightIcon7, { size: "xs" })
32586
32667
  }
32587
- ) : /* @__PURE__ */ jsx144("span", { className: "ods-yaml-viewer__caret-spacer" }),
32588
- t.kind === "comment" && /* @__PURE__ */ jsx144("span", { className: "ods-yaml-viewer__comment", children: t.raw.trim() }),
32589
- t.kind === "key" && /* @__PURE__ */ jsxs137(Fragment53, { children: [
32590
- t.raw.trim().startsWith("-") && /* @__PURE__ */ jsx144("span", { className: "ods-yaml-viewer__dash", children: "- " }),
32591
- /* @__PURE__ */ jsx144("span", { className: "ods-yaml-viewer__key", children: t.key }),
32592
- /* @__PURE__ */ jsx144("span", { className: "ods-yaml-viewer__colon", children: ":" }),
32593
- t.inlineValue && /* @__PURE__ */ jsxs137(
32668
+ ) : /* @__PURE__ */ jsx145("span", { className: "ods-yaml-viewer__caret-spacer" }),
32669
+ t.kind === "comment" && /* @__PURE__ */ jsx145("span", { className: "ods-yaml-viewer__comment", children: t.raw.trim() }),
32670
+ t.kind === "key" && /* @__PURE__ */ jsxs138(Fragment54, { children: [
32671
+ t.raw.trim().startsWith("-") && /* @__PURE__ */ jsx145("span", { className: "ods-yaml-viewer__dash", children: "- " }),
32672
+ /* @__PURE__ */ jsx145("span", { className: "ods-yaml-viewer__key", children: t.key }),
32673
+ /* @__PURE__ */ jsx145("span", { className: "ods-yaml-viewer__colon", children: ":" }),
32674
+ t.inlineValue && /* @__PURE__ */ jsxs138(
32594
32675
  "span",
32595
32676
  {
32596
32677
  className: cn(
@@ -32603,11 +32684,11 @@ var YamlViewer = forwardRef117(
32603
32684
  ]
32604
32685
  }
32605
32686
  ),
32606
- isCollapsed && /* @__PURE__ */ jsx144("span", { className: "ods-yaml-viewer__preview", children: " \u2026" })
32687
+ isCollapsed && /* @__PURE__ */ jsx145("span", { className: "ods-yaml-viewer__preview", children: " \u2026" })
32607
32688
  ] }),
32608
- t.kind === "sequence" && /* @__PURE__ */ jsxs137(Fragment53, { children: [
32609
- /* @__PURE__ */ jsx144("span", { className: "ods-yaml-viewer__dash", children: "- " }),
32610
- /* @__PURE__ */ jsx144(
32689
+ t.kind === "sequence" && /* @__PURE__ */ jsxs138(Fragment54, { children: [
32690
+ /* @__PURE__ */ jsx145("span", { className: "ods-yaml-viewer__dash", children: "- " }),
32691
+ /* @__PURE__ */ jsx145(
32611
32692
  "span",
32612
32693
  {
32613
32694
  className: cn(
@@ -32618,7 +32699,7 @@ var YamlViewer = forwardRef117(
32618
32699
  }
32619
32700
  )
32620
32701
  ] }),
32621
- t.kind === "scalar" && /* @__PURE__ */ jsx144(
32702
+ t.kind === "scalar" && /* @__PURE__ */ jsx145(
32622
32703
  "span",
32623
32704
  {
32624
32705
  className: cn(
@@ -32628,7 +32709,7 @@ var YamlViewer = forwardRef117(
32628
32709
  children: t.raw.trim()
32629
32710
  }
32630
32711
  ),
32631
- t.kind === "blank" && /* @__PURE__ */ jsx144("span", { children: "\xA0" })
32712
+ t.kind === "blank" && /* @__PURE__ */ jsx145("span", { children: "\xA0" })
32632
32713
  ]
32633
32714
  },
32634
32715
  t.index
@@ -32684,8 +32765,8 @@ function YamlEditBody({ text: initial, onChange, onValidate }) {
32684
32765
  useEffect52(() => {
32685
32766
  validate(initial);
32686
32767
  }, []);
32687
- return /* @__PURE__ */ jsxs137("div", { className: "ods-yaml-viewer__edit", children: [
32688
- parseError && /* @__PURE__ */ jsxs137(
32768
+ return /* @__PURE__ */ jsxs138("div", { className: "ods-yaml-viewer__edit", children: [
32769
+ parseError && /* @__PURE__ */ jsxs138(
32689
32770
  InlineMessage,
32690
32771
  {
32691
32772
  tone: "danger",
@@ -32702,7 +32783,7 @@ function YamlEditBody({ text: initial, onChange, onValidate }) {
32702
32783
  ]
32703
32784
  }
32704
32785
  ),
32705
- /* @__PURE__ */ jsx144(
32786
+ /* @__PURE__ */ jsx145(
32706
32787
  CodeEditor,
32707
32788
  {
32708
32789
  value: text,
@@ -33106,7 +33187,7 @@ function useTraceTimeline({
33106
33187
  import { generateCssVars, resolveConfig } from "@octaviaflow/config";
33107
33188
  import { createContext as createContext3, useContext as useContext4, useEffect as useEffect55, useMemo as useMemo38 } from "react";
33108
33189
  import { OverlayProvider as OverlayProvider3 } from "react-aria";
33109
- import { jsx as jsx145 } from "react/jsx-runtime";
33190
+ import { jsx as jsx146 } from "react/jsx-runtime";
33110
33191
  var OdsContext = createContext3(null);
33111
33192
  function OdsProvider({ config: userConfig, children }) {
33112
33193
  const resolved = useMemo38(() => resolveConfig(userConfig), [userConfig]);
@@ -33127,7 +33208,7 @@ function OdsProvider({ config: userConfig, children }) {
33127
33208
  }
33128
33209
  }, [resolved]);
33129
33210
  const contextValue = useMemo38(() => ({ config: resolved }), [resolved]);
33130
- return /* @__PURE__ */ jsx145(OdsContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx145(OverlayProvider3, { children }) });
33211
+ return /* @__PURE__ */ jsx146(OdsContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx146(OverlayProvider3, { children }) });
33131
33212
  }
33132
33213
  function useOds() {
33133
33214
  const ctx = useContext4(OdsContext);
@@ -33587,6 +33668,7 @@ export {
33587
33668
  Spotlight,
33588
33669
  Stack,
33589
33670
  Stat,
33671
+ StatusList,
33590
33672
  StatusTiles,
33591
33673
  Stepper,
33592
33674
  Switch,