@octaviaflow/core 3.1.0-beta.107 → 3.1.0-beta.108

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.cjs CHANGED
@@ -5887,14 +5887,32 @@ var import_react_aria3 = require("react-aria");
5887
5887
  var import_jsx_runtime18 = require("react/jsx-runtime");
5888
5888
  function BreadcrumbItem({ item, isCurrent }) {
5889
5889
  const ref = (0, import_react37.useRef)(null);
5890
+ const interactive = !isCurrent && (!!item.href || !!item.onClick);
5890
5891
  const { itemProps } = (0, import_react_aria3.useBreadcrumbItem)(
5891
- { children: item.label, isCurrent, elementType: item.href ? "a" : "span" },
5892
+ {
5893
+ children: item.label,
5894
+ isCurrent,
5895
+ elementType: item.href ? "a" : item.onClick && !isCurrent ? "button" : "span"
5896
+ },
5892
5897
  ref
5893
5898
  );
5894
5899
  const content = /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
5895
5900
  item.icon && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ods-breadcrumb__icon", children: item.icon }),
5896
5901
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { children: item.label })
5897
5902
  ] });
5903
+ if (item.onClick && !item.href && interactive) {
5904
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
5905
+ "button",
5906
+ {
5907
+ ...itemProps,
5908
+ ref,
5909
+ type: "button",
5910
+ onClick: item.onClick,
5911
+ className: cn("ods-breadcrumb__link", "ods-breadcrumb__link--button"),
5912
+ children: content
5913
+ }
5914
+ );
5915
+ }
5898
5916
  if (item.href && !isCurrent) {
5899
5917
  return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
5900
5918
  "a",
@@ -41339,6 +41357,7 @@ ToolCard.displayName = "ToolCard";
41339
41357
 
41340
41358
  // src/components/ExpressionField/ExpressionField.tsx
41341
41359
  var import_react188 = require("react");
41360
+ var import_icons68 = require("@octaviaflow/icons");
41342
41361
 
41343
41362
  // src/components/ExpressionField/parseExpression.ts
41344
41363
  var CALL_NAME_SOURCE = "(?:[A-Z_][A-Z0-9_]*|user\\.[A-Za-z_][A-Za-z0-9_]*)";
@@ -41992,27 +42011,17 @@ function CallEditor({
41992
42011
  "aria-label": `Edit ${crumbs[0]?.label ?? "function"}`,
41993
42012
  children: [
41994
42013
  /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "ods-expression-field__editor-head", children: [
41995
- /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("nav", { className: "ods-expression-field__editor-crumbs", "aria-label": "Nested functions", children: crumbs.map((crumb, i) => /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("span", { children: [
41996
- i > 0 && /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { "aria-hidden": "true", children: " \u203A " }),
41997
- /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
41998
- "button",
41999
- {
42000
- type: "button",
42001
- disabled: i === crumbs.length - 1,
42002
- onClick: () => setPath(crumb.path),
42003
- children: crumb.label
42004
- }
42005
- )
42006
- ] }, crumb.path.join(".") || "root")) }),
42007
42014
  /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
42008
- "button",
42015
+ Breadcrumb,
42009
42016
  {
42010
- type: "button",
42011
- className: "ods-expression-field__editor-link",
42012
- onClick: () => setRawMode((r) => !r),
42013
- children: rawMode ? "Back to fields" : "Edit as text"
42017
+ className: "ods-expression-field__editor-crumbs",
42018
+ items: crumbs.map((crumb) => ({
42019
+ label: crumb.label,
42020
+ onClick: () => setPath(crumb.path)
42021
+ }))
42014
42022
  }
42015
- )
42023
+ ),
42024
+ /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(Button, { variant: "ghost", size: "sm", onClick: () => setRawMode((r) => !r), children: rawMode ? "Back to fields" : "Edit as text" })
42016
42025
  ] }),
42017
42026
  rawMode ? /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
42018
42027
  "textarea",
@@ -42032,16 +42041,16 @@ function CallEditor({
42032
42041
  // eslint-disable-next-line react/no-array-index-key
42033
42042
  /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "ods-expression-field__editor-row", children: [
42034
42043
  /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("span", { className: "ods-expression-field__editor-row-head", children: [
42035
- /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { id: `arg-${index}-label`, children: rowLabel }),
42044
+ /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "ods-expression-field__editor-row-name", id: `arg-${index}-label`, children: rowLabel }),
42036
42045
  /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
42037
- "button",
42046
+ Button,
42038
42047
  {
42039
- type: "button",
42040
- className: "ods-expression-field__editor-remove",
42048
+ variant: "icon",
42049
+ size: "sm",
42041
42050
  "aria-label": `Remove ${rowLabel}`,
42042
42051
  title: "Remove this argument",
42043
42052
  onClick: () => removeArg(index),
42044
- children: "\u2715"
42053
+ children: /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(import_icons68.CloseIcon, { size: "sm" })
42045
42054
  }
42046
42055
  )
42047
42056
  ] }),
@@ -42056,8 +42065,17 @@ function CallEditor({
42056
42065
  children: [
42057
42066
  /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("code", { children: argSummary(arg, nameOf) }),
42058
42067
  /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("span", { children: [
42059
- /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("button", { type: "button", onClick: () => setPath([...path, index]), children: "Open" }),
42060
- /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("button", { type: "button", onClick: () => setArg(index, ""), "aria-label": `Clear ${rowLabel}`, children: "Clear" })
42068
+ /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(Button, { variant: "secondary", size: "sm", onClick: () => setPath([...path, index]), children: "Open" }),
42069
+ /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
42070
+ Button,
42071
+ {
42072
+ variant: "ghost",
42073
+ size: "sm",
42074
+ "aria-label": `Clear ${rowLabel}`,
42075
+ onClick: () => setArg(index, ""),
42076
+ children: "Clear"
42077
+ }
42078
+ )
42061
42079
  ] })
42062
42080
  ]
42063
42081
  }
@@ -42082,7 +42100,16 @@ function CallEditor({
42082
42100
  children: labelFor(arg.startsWith("ods://") ? `{{${arg}}}` : arg)
42083
42101
  }
42084
42102
  ),
42085
- /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("button", { type: "button", onClick: () => setArg(index, ""), "aria-label": `Clear ${rowLabel}`, children: "Clear" })
42103
+ /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
42104
+ Button,
42105
+ {
42106
+ variant: "ghost",
42107
+ size: "sm",
42108
+ "aria-label": `Clear ${rowLabel}`,
42109
+ onClick: () => setArg(index, ""),
42110
+ children: "Clear"
42111
+ }
42112
+ )
42086
42113
  ]
42087
42114
  }
42088
42115
  )
@@ -42104,31 +42131,25 @@ function CallEditor({
42104
42131
  );
42105
42132
  }),
42106
42133
  /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
42107
- "button",
42134
+ Button,
42108
42135
  {
42109
- type: "button",
42110
- className: "ods-expression-field__editor-add",
42136
+ variant: "ghost",
42137
+ size: "sm",
42138
+ fullWidth: true,
42139
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(import_icons68.AddIcon, { size: "sm" }),
42111
42140
  onClick: () => setDraft((d) => {
42112
42141
  const at = callAt(d, path);
42113
42142
  if (!at) return d;
42114
42143
  const next = [...at.args, '""'];
42115
42144
  return path.length === 0 ? formatCall(at.name, next) : replaceArgument(d, path, `${at.name}(${next.join(", ")})`);
42116
42145
  }),
42117
- children: "+ Add argument"
42146
+ children: "Add argument"
42118
42147
  }
42119
42148
  )
42120
42149
  ] }),
42121
42150
  /* @__PURE__ */ (0, import_jsx_runtime174.jsxs)("div", { className: "ods-expression-field__editor-foot", children: [
42122
- /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("button", { type: "button", onClick: onCancel, children: "Cancel" }),
42123
- /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
42124
- "button",
42125
- {
42126
- type: "button",
42127
- className: "ods-expression-field__editor-primary",
42128
- onClick: () => onApply(draft),
42129
- children: "Apply"
42130
- }
42131
- )
42151
+ /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(Button, { variant: "secondary", size: "sm", onClick: onCancel, children: "Cancel" }),
42152
+ /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(Button, { variant: "primary", size: "sm", onClick: () => onApply(draft), children: "Apply" })
42132
42153
  ] })
42133
42154
  ]
42134
42155
  }
@@ -42219,14 +42240,14 @@ function TopBar({
42219
42240
  // src/components/TraceStep/TraceStep.tsx
42220
42241
  var import_framer_motion38 = require("framer-motion");
42221
42242
  var import_react189 = require("react");
42222
- var import_icons68 = require("@octaviaflow/icons");
42243
+ var import_icons69 = require("@octaviaflow/icons");
42223
42244
  var import_jsx_runtime176 = require("react/jsx-runtime");
42224
42245
  var DEFAULT_KIND_GLYPH = {
42225
- thought: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons68.IdeaIcon, { size: "xs" }),
42226
- tool: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons68.BuildToolIcon, { size: "xs" }),
42227
- input: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons68.ConnectionReceiveIcon, { size: "xs" }),
42228
- output: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons68.ConnectionSendIcon, { size: "xs" }),
42229
- error: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons68.WarningAltIcon, { size: "xs" })
42246
+ thought: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons69.IdeaIcon, { size: "xs" }),
42247
+ tool: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons69.BuildToolIcon, { size: "xs" }),
42248
+ input: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons69.ConnectionReceiveIcon, { size: "xs" }),
42249
+ output: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons69.ConnectionSendIcon, { size: "xs" }),
42250
+ error: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons69.WarningAltIcon, { size: "xs" })
42230
42251
  };
42231
42252
  var FALLBACK_GLYPH = DEFAULT_KIND_GLYPH.thought;
42232
42253
  var TraceStep = (0, import_react189.forwardRef)(
@@ -42290,7 +42311,7 @@ var TraceStep = (0, import_react189.forwardRef)(
42290
42311
  initial: disableAnimation ? false : { scale: 0.6, opacity: 0 },
42291
42312
  animate: { scale: 1, opacity: 1 },
42292
42313
  transition: { duration: 0.2, ease: [0.16, 1, 0.3, 1] },
42293
- children: status === "running" ? /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("span", { className: "ods-trace-step__spin", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons68.CircleDashIcon, { size: "xs" }) }) : resolvedGlyph
42314
+ children: status === "running" ? /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("span", { className: "ods-trace-step__spin", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons69.CircleDashIcon, { size: "xs" }) }) : resolvedGlyph
42294
42315
  }
42295
42316
  ),
42296
42317
  !isLast && /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(
@@ -42333,7 +42354,7 @@ var TraceStep = (0, import_react189.forwardRef)(
42333
42354
  title: tool,
42334
42355
  "aria-label": `Tool: ${tool}`,
42335
42356
  children: [
42336
- /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("span", { className: "ods-trace-step__tool-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons68.BuildToolIcon, { size: "xs" }) }),
42357
+ /* @__PURE__ */ (0, import_jsx_runtime176.jsx)("span", { className: "ods-trace-step__tool-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons69.BuildToolIcon, { size: "xs" }) }),
42337
42358
  tool
42338
42359
  ]
42339
42360
  }
@@ -42366,7 +42387,7 @@ var TraceStep = (0, import_react189.forwardRef)(
42366
42387
  "aria-hidden": "true",
42367
42388
  animate: { rotate: open ? 180 : 0 },
42368
42389
  transition: { duration: 0.18, ease: [0.16, 1, 0.3, 1] },
42369
- children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons68.CaretDownIcon, { size: "xs" })
42390
+ children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons69.CaretDownIcon, { size: "xs" })
42370
42391
  }
42371
42392
  )
42372
42393
  ]
@@ -44267,7 +44288,7 @@ function cursorFor(corner) {
44267
44288
  }
44268
44289
 
44269
44290
  // src/workflow/components/kinds/BaseNode.tsx
44270
- var import_icons69 = require("@octaviaflow/icons");
44291
+ var import_icons70 = require("@octaviaflow/icons");
44271
44292
  var import_react199 = require("react");
44272
44293
  var import_jsx_runtime183 = require("react/jsx-runtime");
44273
44294
  function BaseNode({
@@ -44334,7 +44355,7 @@ function BaseNode({
44334
44355
  "aria-label": "Delete node",
44335
44356
  "data-flow-no-drag": "true",
44336
44357
  title: "Delete node",
44337
- children: /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(import_icons69.TrashCanIcon, { size: 16, "aria-hidden": true })
44358
+ children: /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(import_icons70.TrashCanIcon, { size: 16, "aria-hidden": true })
44338
44359
  }
44339
44360
  )
44340
44361
  ] }),
@@ -46253,7 +46274,7 @@ function DefaultEmptyState() {
46253
46274
  }
46254
46275
 
46255
46276
  // src/components/WorkflowHeader/WorkflowHeader.tsx
46256
- var import_icons70 = require("@octaviaflow/icons");
46277
+ var import_icons71 = require("@octaviaflow/icons");
46257
46278
 
46258
46279
  // src/hooks/useWorkflowRuntime.ts
46259
46280
  var import_react202 = require("react");
@@ -46344,7 +46365,7 @@ function WorkflowHeader({
46344
46365
  onClick: onBack,
46345
46366
  "aria-label": `Back to ${typeof parentLabel === "string" ? parentLabel : "previous"}`,
46346
46367
  children: [
46347
- /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(import_icons70.ChevronLeftIcon, { size: "sm" }),
46368
+ /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(import_icons71.ChevronLeftIcon, { size: "sm" }),
46348
46369
  /* @__PURE__ */ (0, import_jsx_runtime187.jsx)("span", { className: "ods-workflow-header__back-label", children: parentLabel }),
46349
46370
  /* @__PURE__ */ (0, import_jsx_runtime187.jsx)("span", { className: "ods-workflow-header__back-separator", "aria-hidden": "true", children: "/" })
46350
46371
  ]
@@ -46383,14 +46404,14 @@ function WorkflowHeader({
46383
46404
  title: saveState === "error" ? saveError ?? void 0 : void 0,
46384
46405
  children: [
46385
46406
  saveState === "saving" ? /* @__PURE__ */ (0, import_jsx_runtime187.jsx)("span", { className: "ods-workflow-header__save-spinner", "aria-hidden": "true" }) : saveState === "error" ? /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
46386
- import_icons70.WarningAltIcon,
46407
+ import_icons71.WarningAltIcon,
46387
46408
  {
46388
46409
  size: "sm",
46389
46410
  className: "ods-workflow-header__save-icon",
46390
46411
  "aria-hidden": "true"
46391
46412
  }
46392
46413
  ) : /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(
46393
- import_icons70.CheckmarkIcon,
46414
+ import_icons71.CheckmarkIcon,
46394
46415
  {
46395
46416
  size: "sm",
46396
46417
  className: "ods-workflow-header__save-icon",
@@ -46431,7 +46452,7 @@ function WorkflowHeader({
46431
46452
  size: "sm",
46432
46453
  pressed: !!isConsoleOpen,
46433
46454
  "aria-label": isConsoleOpen ? "Hide execution console" : "Show execution console",
46434
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(import_icons70.TerminalIcon, { size: "sm" }),
46455
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(import_icons71.TerminalIcon, { size: "sm" }),
46435
46456
  onClick: onToggleConsole,
46436
46457
  children: "Console"
46437
46458
  }
@@ -46443,7 +46464,7 @@ function WorkflowHeader({
46443
46464
  variant: "ghost",
46444
46465
  size: "sm",
46445
46466
  "aria-label": runtime ? `Stop execution (running ${runtime})` : "Stop execution",
46446
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(import_icons70.StopFilledAltIcon, { size: "sm", className: "ods-workflow-header__stop-glyph" }),
46467
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(import_icons71.StopFilledAltIcon, { size: "sm", className: "ods-workflow-header__stop-glyph" }),
46447
46468
  onClick: onStop,
46448
46469
  children: /* @__PURE__ */ (0, import_jsx_runtime187.jsxs)("span", { className: "ods-workflow-header__stop-label", children: [
46449
46470
  /* @__PURE__ */ (0, import_jsx_runtime187.jsx)("span", { children: "Stop" }),
@@ -46459,7 +46480,7 @@ function WorkflowHeader({
46459
46480
  variant: "primary",
46460
46481
  size: "sm",
46461
46482
  "aria-label": "Run workflow",
46462
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(import_icons70.PlayFilledAltIcon, { size: "sm" }),
46483
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(import_icons71.PlayFilledAltIcon, { size: "sm" }),
46463
46484
  onClick: onRun,
46464
46485
  children: "Run"
46465
46486
  }
@@ -46471,7 +46492,7 @@ function WorkflowHeader({
46471
46492
  align: "end",
46472
46493
  triggerClassName: "ods-workflow-header__menu-trigger",
46473
46494
  ...menuProps,
46474
- trigger: menuTrigger ?? /* @__PURE__ */ (0, import_jsx_runtime187.jsx)("span", { "aria-hidden": "true", className: "ods-workflow-header__menu-icon", children: /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(import_icons70.OverflowMenuVerticalIcon, { size: "sm" }) }),
46495
+ trigger: menuTrigger ?? /* @__PURE__ */ (0, import_jsx_runtime187.jsx)("span", { "aria-hidden": "true", className: "ods-workflow-header__menu-icon", children: /* @__PURE__ */ (0, import_jsx_runtime187.jsx)(import_icons71.OverflowMenuVerticalIcon, { size: "sm" }) }),
46475
46496
  items: menuItems
46476
46497
  }
46477
46498
  ))
@@ -46481,7 +46502,7 @@ function WorkflowHeader({
46481
46502
  }
46482
46503
 
46483
46504
  // src/components/WorkflowHeader/WorkflowHeaderExpanded.tsx
46484
- var import_icons71 = require("@octaviaflow/icons");
46505
+ var import_icons72 = require("@octaviaflow/icons");
46485
46506
  var import_jsx_runtime188 = require("react/jsx-runtime");
46486
46507
  function WorkflowHeaderExpanded({
46487
46508
  name,
@@ -46526,7 +46547,7 @@ function WorkflowHeaderExpanded({
46526
46547
  onClick: onBack,
46527
46548
  "aria-label": `Back to ${typeof parentLabel === "string" ? parentLabel : "previous"}`,
46528
46549
  children: [
46529
- /* @__PURE__ */ (0, import_jsx_runtime188.jsx)(import_icons71.ChevronLeftIcon, { size: "sm" }),
46550
+ /* @__PURE__ */ (0, import_jsx_runtime188.jsx)(import_icons72.ChevronLeftIcon, { size: "sm" }),
46530
46551
  /* @__PURE__ */ (0, import_jsx_runtime188.jsx)("span", { children: parentLabel }),
46531
46552
  /* @__PURE__ */ (0, import_jsx_runtime188.jsx)("span", { "aria-hidden": "true", className: "ods-workflow-header-expanded__back-sep", children: "/" })
46532
46553
  ]
@@ -46565,7 +46586,7 @@ function WorkflowHeaderExpanded({
46565
46586
  size: "sm",
46566
46587
  pressed: !!isConsoleOpen,
46567
46588
  "aria-label": isConsoleOpen ? "Hide execution console" : "Show execution console",
46568
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime188.jsx)(import_icons71.TerminalIcon, { size: "sm" }),
46589
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime188.jsx)(import_icons72.TerminalIcon, { size: "sm" }),
46569
46590
  onClick: onToggleConsole,
46570
46591
  children: "Console"
46571
46592
  }
@@ -46578,7 +46599,7 @@ function WorkflowHeaderExpanded({
46578
46599
  size: "sm",
46579
46600
  "aria-label": runtime ? `Stop execution (running ${runtime})` : "Stop execution",
46580
46601
  leftIcon: /* @__PURE__ */ (0, import_jsx_runtime188.jsx)(
46581
- import_icons71.StopFilledAltIcon,
46602
+ import_icons72.StopFilledAltIcon,
46582
46603
  {
46583
46604
  size: "sm",
46584
46605
  className: "ods-workflow-header-expanded__stop-glyph"
@@ -46599,7 +46620,7 @@ function WorkflowHeaderExpanded({
46599
46620
  variant: "primary",
46600
46621
  size: "sm",
46601
46622
  "aria-label": "Run workflow",
46602
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime188.jsx)(import_icons71.PlayFilledAltIcon, { size: "sm" }),
46623
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime188.jsx)(import_icons72.PlayFilledAltIcon, { size: "sm" }),
46603
46624
  onClick: onRun,
46604
46625
  children: "Run"
46605
46626
  }
@@ -46615,7 +46636,7 @@ function WorkflowHeaderExpanded({
46615
46636
  {
46616
46637
  variant: "ghost",
46617
46638
  size: "sm",
46618
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime188.jsx)(import_icons71.OverflowMenuVerticalIcon, { size: "sm" })
46639
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime188.jsx)(import_icons72.OverflowMenuVerticalIcon, { size: "sm" })
46619
46640
  }
46620
46641
  ),
46621
46642
  items: menuItems
@@ -48112,60 +48133,60 @@ function DeliveryFrequencyControl({
48112
48133
  DeliveryFrequencyControl.displayName = "DeliveryFrequencyControl";
48113
48134
 
48114
48135
  // src/notifications/components/EventCatalogPicker/EventCatalogPicker.tsx
48115
- var import_icons73 = require("@octaviaflow/icons");
48136
+ var import_icons74 = require("@octaviaflow/icons");
48116
48137
  var import_react212 = require("react");
48117
48138
 
48118
48139
  // src/notifications/components/meta.tsx
48119
- var import_icons72 = require("@octaviaflow/icons");
48140
+ var import_icons73 = require("@octaviaflow/icons");
48120
48141
  var import_jsx_runtime192 = require("react/jsx-runtime");
48121
48142
  var CHANNEL_TYPE_META = {
48122
48143
  in_app: {
48123
48144
  label: "In-app",
48124
48145
  hint: "The bell in the top bar. Always on.",
48125
48146
  connected: false,
48126
- icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons72.NotificationIcon, { size: "sm", "aria-hidden": "true" })
48147
+ icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons73.NotificationIcon, { size: "sm", "aria-hidden": "true" })
48127
48148
  },
48128
48149
  email: {
48129
48150
  label: "Email",
48130
48151
  hint: "One or more addresses.",
48131
48152
  connected: false,
48132
- icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons72.EmailIcon, { size: "sm", "aria-hidden": "true" })
48153
+ icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons73.EmailIcon, { size: "sm", "aria-hidden": "true" })
48133
48154
  },
48134
48155
  slack: {
48135
48156
  label: "Slack",
48136
48157
  hint: "A channel in a connected workspace.",
48137
48158
  connected: true,
48138
- icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons72.LogoSlackIcon, { size: "sm", "aria-hidden": "true" })
48159
+ icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons73.LogoSlackIcon, { size: "sm", "aria-hidden": "true" })
48139
48160
  },
48140
48161
  teams: {
48141
48162
  label: "Microsoft Teams",
48142
48163
  hint: "A channel in a connected team.",
48143
48164
  connected: true,
48144
- icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons72.ChatOperationalIcon, { size: "sm", "aria-hidden": "true" })
48165
+ icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons73.ChatOperationalIcon, { size: "sm", "aria-hidden": "true" })
48145
48166
  },
48146
48167
  google_chat: {
48147
48168
  label: "Google Chat",
48148
48169
  hint: "A space in a connected account.",
48149
48170
  connected: true,
48150
- icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons72.ChatIcon, { size: "sm", "aria-hidden": "true" })
48171
+ icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons73.ChatIcon, { size: "sm", "aria-hidden": "true" })
48151
48172
  },
48152
48173
  whatsapp: {
48153
48174
  label: "WhatsApp",
48154
48175
  hint: "Template messages to a phone number.",
48155
48176
  connected: false,
48156
- icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons72.ChatLaunchIcon, { size: "sm", "aria-hidden": "true" })
48177
+ icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons73.ChatLaunchIcon, { size: "sm", "aria-hidden": "true" })
48157
48178
  },
48158
48179
  webhook: {
48159
48180
  label: "Webhook",
48160
48181
  hint: "Signed JSON to a URL you own.",
48161
48182
  connected: false,
48162
- icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons72.WebhookIcon, { size: "sm", "aria-hidden": "true" })
48183
+ icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons73.WebhookIcon, { size: "sm", "aria-hidden": "true" })
48163
48184
  }
48164
48185
  };
48165
48186
  var PERSONAL_CHANNEL_META = {
48166
- in_app: { label: "In-app", icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons72.NotificationIcon, { size: "sm", "aria-hidden": "true" }) },
48167
- email: { label: "Email", icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons72.EmailIcon, { size: "sm", "aria-hidden": "true" }) },
48168
- slack_dm: { label: "Slack DM", icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons72.LogoSlackIcon, { size: "sm", "aria-hidden": "true" }) }
48187
+ in_app: { label: "In-app", icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons73.NotificationIcon, { size: "sm", "aria-hidden": "true" }) },
48188
+ email: { label: "Email", icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons73.EmailIcon, { size: "sm", "aria-hidden": "true" }) },
48189
+ slack_dm: { label: "Slack DM", icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons73.LogoSlackIcon, { size: "sm", "aria-hidden": "true" }) }
48169
48190
  };
48170
48191
  var CHANNEL_STATUS_META = {
48171
48192
  verified: { label: "Verified", variant: "success" },
@@ -48177,17 +48198,17 @@ var SEVERITY_META = {
48177
48198
  info: {
48178
48199
  label: "Info",
48179
48200
  variant: "info",
48180
- icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons72.InformationFilledIcon, { size: "sm", "aria-hidden": "true" })
48201
+ icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons73.InformationFilledIcon, { size: "sm", "aria-hidden": "true" })
48181
48202
  },
48182
48203
  warning: {
48183
48204
  label: "Warning",
48184
48205
  variant: "warning",
48185
- icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons72.WarningFilledIcon, { size: "sm", "aria-hidden": "true" })
48206
+ icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons73.WarningFilledIcon, { size: "sm", "aria-hidden": "true" })
48186
48207
  },
48187
48208
  error: {
48188
48209
  label: "Error",
48189
48210
  variant: "error",
48190
- icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons72.ErrorFilledIcon, { size: "sm", "aria-hidden": "true" })
48211
+ icon: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(import_icons73.ErrorFilledIcon, { size: "sm", "aria-hidden": "true" })
48191
48212
  }
48192
48213
  };
48193
48214
 
@@ -48262,7 +48283,7 @@ function EventCatalogPicker({
48262
48283
  type: "search",
48263
48284
  "aria-label": "Search events",
48264
48285
  placeholder: "Search events",
48265
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(import_icons73.SearchIcon, { size: "sm", "aria-hidden": "true" }),
48286
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(import_icons74.SearchIcon, { size: "sm", "aria-hidden": "true" }),
48266
48287
  value: query,
48267
48288
  onChange: (e) => setQuery(e.target.value),
48268
48289
  clearable: true,
@@ -48354,7 +48375,7 @@ function EventCatalogPicker({
48354
48375
  EventCatalogPicker.displayName = "EventCatalogPicker";
48355
48376
 
48356
48377
  // src/notifications/components/NotificationBell/NotificationBell.tsx
48357
- var import_icons76 = require("@octaviaflow/icons");
48378
+ var import_icons77 = require("@octaviaflow/icons");
48358
48379
  var import_react214 = require("react");
48359
48380
 
48360
48381
  // src/notifications/engine/inbox.ts
@@ -48425,7 +48446,7 @@ function groupInboxByDay(items, now2 = Date.now()) {
48425
48446
  }
48426
48447
 
48427
48448
  // src/notifications/components/NotificationDetailDialog/NotificationDetailDialog.tsx
48428
- var import_icons74 = require("@octaviaflow/icons");
48449
+ var import_icons75 = require("@octaviaflow/icons");
48429
48450
  var import_jsx_runtime194 = require("react/jsx-runtime");
48430
48451
  function NotificationDetailDialog({
48431
48452
  item,
@@ -48456,7 +48477,7 @@ function NotificationDetailDialog({
48456
48477
  Button,
48457
48478
  {
48458
48479
  variant: "ghost",
48459
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(import_icons74.ArchiveIcon, { size: "sm", "aria-hidden": "true" }),
48480
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(import_icons75.ArchiveIcon, { size: "sm", "aria-hidden": "true" }),
48460
48481
  onClick: () => {
48461
48482
  onArchive(item);
48462
48483
  onClose();
@@ -48481,7 +48502,7 @@ function NotificationDetailDialog({
48481
48502
  },
48482
48503
  children: [
48483
48504
  resolved.label ?? "Open",
48484
- /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(import_icons74.LaunchIcon, { size: "sm", "aria-hidden": "true" })
48505
+ /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(import_icons75.LaunchIcon, { size: "sm", "aria-hidden": "true" })
48485
48506
  ]
48486
48507
  }
48487
48508
  ) })
@@ -48509,7 +48530,7 @@ function NotificationDetailDialog({
48509
48530
  NotificationDetailDialog.displayName = "NotificationDetailDialog";
48510
48531
 
48511
48532
  // src/notifications/components/NotificationInbox/NotificationInbox.tsx
48512
- var import_icons75 = require("@octaviaflow/icons");
48533
+ var import_icons76 = require("@octaviaflow/icons");
48513
48534
  var import_react213 = require("react");
48514
48535
  var import_jsx_runtime195 = require("react/jsx-runtime");
48515
48536
  var FILTER_OPTIONS = [
@@ -48624,7 +48645,7 @@ function NotificationInbox({
48624
48645
  variant: "ghost",
48625
48646
  "aria-label": "Mark as read",
48626
48647
  onClick: () => onMarkRead([item.id]),
48627
- children: /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(import_icons75.CheckmarkIcon, { size: "sm", "aria-hidden": "true" })
48648
+ children: /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(import_icons76.CheckmarkIcon, { size: "sm", "aria-hidden": "true" })
48628
48649
  }
48629
48650
  ),
48630
48651
  onArchive && /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(
@@ -48634,7 +48655,7 @@ function NotificationInbox({
48634
48655
  variant: "ghost",
48635
48656
  "aria-label": "Archive",
48636
48657
  onClick: () => onArchive([item.id]),
48637
- children: /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(import_icons75.ArchiveIcon, { size: "sm", "aria-hidden": "true" })
48658
+ children: /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(import_icons76.ArchiveIcon, { size: "sm", "aria-hidden": "true" })
48638
48659
  }
48639
48660
  )
48640
48661
  ] })
@@ -48662,7 +48683,7 @@ function NotificationInbox({
48662
48683
  EmptyState,
48663
48684
  {
48664
48685
  size: compact ? "sm" : "md",
48665
- icon: /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(import_icons75.NotificationOffIcon, { "aria-hidden": "true" }),
48686
+ icon: /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(import_icons76.NotificationOffIcon, { "aria-hidden": "true" }),
48666
48687
  title: emptyTitle ?? (activeFilter === "unread" ? "You're all caught up" : activeFilter === "archived" ? "Nothing archived" : "No notifications yet"),
48667
48688
  description: emptyDescription ?? (activeFilter === "all" ? "Run failures, apps that need re-authentication and account activity will show up here." : void 0)
48668
48689
  }
@@ -48790,7 +48811,7 @@ function NotificationBell({
48790
48811
  size: "md",
48791
48812
  className: "ods-notif-bell__trigger",
48792
48813
  "aria-label": hasUnread ? `${label}, ${countLabel} unread` : label,
48793
- children: /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(import_icons76.NotificationIcon, { size: "sm", "aria-hidden": "true" })
48814
+ children: /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(import_icons77.NotificationIcon, { size: "sm", "aria-hidden": "true" })
48794
48815
  }
48795
48816
  ),
48796
48817
  hasUnread && /* @__PURE__ */ (0, import_jsx_runtime196.jsx)("span", { className: "ods-notif-bell__count", "aria-hidden": "true", children: countLabel })
@@ -48814,7 +48835,7 @@ function NotificationBell({
48814
48835
  NotificationBell.displayName = "NotificationBell";
48815
48836
 
48816
48837
  // src/notifications/components/NotificationChannelCard/NotificationChannelCard.tsx
48817
- var import_icons77 = require("@octaviaflow/icons");
48838
+ var import_icons78 = require("@octaviaflow/icons");
48818
48839
  var import_jsx_runtime197 = require("react/jsx-runtime");
48819
48840
  function NotificationChannelCard({
48820
48841
  channel,
@@ -48871,7 +48892,7 @@ function NotificationChannelCard({
48871
48892
  {
48872
48893
  size: "sm",
48873
48894
  variant: "secondary",
48874
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(import_icons77.SendIcon, { size: "sm", "aria-hidden": "true" }),
48895
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(import_icons78.SendIcon, { size: "sm", "aria-hidden": "true" }),
48875
48896
  loading: testing,
48876
48897
  loadingText: "Sending\u2026",
48877
48898
  disabled: !channel.enabled,
@@ -48887,7 +48908,7 @@ function NotificationChannelCard({
48887
48908
  variant: "ghost",
48888
48909
  "aria-label": `Edit ${channel.label}`,
48889
48910
  onClick: () => onEdit(channel),
48890
- children: /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(import_icons77.EditIcon, { size: "sm", "aria-hidden": "true" })
48911
+ children: /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(import_icons78.EditIcon, { size: "sm", "aria-hidden": "true" })
48891
48912
  }
48892
48913
  ),
48893
48914
  onRemove && /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(
@@ -48898,7 +48919,7 @@ function NotificationChannelCard({
48898
48919
  "aria-label": `Remove ${channel.label}`,
48899
48920
  className: "ods-notif-channel__remove",
48900
48921
  onClick: () => onRemove(channel),
48901
- children: /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(import_icons77.TrashCanIcon, { size: "sm", "aria-hidden": "true" })
48922
+ children: /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(import_icons78.TrashCanIcon, { size: "sm", "aria-hidden": "true" })
48902
48923
  }
48903
48924
  ),
48904
48925
  onToggle && /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(
@@ -48918,7 +48939,7 @@ function NotificationChannelCard({
48918
48939
  NotificationChannelCard.displayName = "NotificationChannelCard";
48919
48940
 
48920
48941
  // src/notifications/components/NotificationChannelDialog/NotificationChannelDialog.tsx
48921
- var import_icons79 = require("@octaviaflow/icons");
48942
+ var import_icons80 = require("@octaviaflow/icons");
48922
48943
  var import_react216 = require("react");
48923
48944
 
48924
48945
  // src/notifications/engine/channels.ts
@@ -49024,7 +49045,7 @@ function draftFromChannel(channel, fallbackType = "slack") {
49024
49045
  }
49025
49046
 
49026
49047
  // src/notifications/components/NotificationChannelForm/NotificationChannelForm.tsx
49027
- var import_icons78 = require("@octaviaflow/icons");
49048
+ var import_icons79 = require("@octaviaflow/icons");
49028
49049
  var import_react215 = require("react");
49029
49050
  var import_jsx_runtime198 = require("react/jsx-runtime");
49030
49051
  var DEFAULT_TYPES = [
@@ -49140,7 +49161,7 @@ function NotificationChannelForm({
49140
49161
  /* @__PURE__ */ (0, import_jsx_runtime198.jsx)("span", { className: "ods-notif-channel-form__type-label", children: meta2.label }),
49141
49162
  /* @__PURE__ */ (0, import_jsx_runtime198.jsx)("span", { className: "ods-notif-channel-form__type-hint", children: meta2.connected && hasApp ? "Connected" : meta2.hint })
49142
49163
  ] }),
49143
- selected && /* @__PURE__ */ (0, import_jsx_runtime198.jsx)("span", { className: "ods-notif-channel-form__type-check", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(import_icons78.CheckmarkFilledIcon, { size: "sm" }) })
49164
+ selected && /* @__PURE__ */ (0, import_jsx_runtime198.jsx)("span", { className: "ods-notif-channel-form__type-check", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(import_icons79.CheckmarkFilledIcon, { size: "sm" }) })
49144
49165
  ]
49145
49166
  },
49146
49167
  type
@@ -49156,7 +49177,7 @@ function NotificationChannelForm({
49156
49177
  {
49157
49178
  size: "sm",
49158
49179
  variant: "primary",
49159
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(import_icons78.LaunchIcon, { size: "sm", "aria-hidden": "true" }),
49180
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(import_icons79.LaunchIcon, { size: "sm", "aria-hidden": "true" }),
49160
49181
  onClick: () => onConnectNew(value.type),
49161
49182
  children: [
49162
49183
  "Connect ",
@@ -49190,7 +49211,7 @@ function NotificationChannelForm({
49190
49211
  {
49191
49212
  size,
49192
49213
  variant: "ghost",
49193
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(import_icons78.AddIcon, { size: "sm", "aria-hidden": "true" }),
49214
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(import_icons79.AddIcon, { size: "sm", "aria-hidden": "true" }),
49194
49215
  onClick: () => onConnectNew(value.type),
49195
49216
  className: "ods-notif-channel-form__connect",
49196
49217
  children: "Connect new"
@@ -49341,7 +49362,7 @@ function NotificationChannelForm({
49341
49362
  )
49342
49363
  ] }),
49343
49364
  showSummary && summary && /* @__PURE__ */ (0, import_jsx_runtime198.jsxs)("div", { className: "ods-notif-channel-form__summary", "aria-live": "polite", children: [
49344
- /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(import_icons78.CheckmarkFilledIcon, { size: "sm", "aria-hidden": "true" }),
49365
+ /* @__PURE__ */ (0, import_jsx_runtime198.jsx)(import_icons79.CheckmarkFilledIcon, { size: "sm", "aria-hidden": "true" }),
49345
49366
  /* @__PURE__ */ (0, import_jsx_runtime198.jsx)("span", { children: summary })
49346
49367
  ] })
49347
49368
  ] });
@@ -49435,7 +49456,7 @@ function NotificationChannelDialog({
49435
49456
  Button,
49436
49457
  {
49437
49458
  variant: "secondary",
49438
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime199.jsx)(import_icons79.SendIcon, { size: "sm", "aria-hidden": "true" }),
49459
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime199.jsx)(import_icons80.SendIcon, { size: "sm", "aria-hidden": "true" }),
49439
49460
  loading: testing,
49440
49461
  loadingText: "Sending\u2026",
49441
49462
  disabled: !complete || saving,
@@ -49480,7 +49501,7 @@ function NotificationChannelDialog({
49480
49501
  NotificationChannelDialog.displayName = "NotificationChannelDialog";
49481
49502
 
49482
49503
  // src/notifications/components/NotificationChannelList/NotificationChannelList.tsx
49483
- var import_icons80 = require("@octaviaflow/icons");
49504
+ var import_icons81 = require("@octaviaflow/icons");
49484
49505
  var import_jsx_runtime200 = require("react/jsx-runtime");
49485
49506
  function NotificationChannelList({
49486
49507
  channels,
@@ -49509,7 +49530,7 @@ function NotificationChannelList({
49509
49530
  {
49510
49531
  size: "sm",
49511
49532
  variant: "secondary",
49512
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_icons80.AddIcon, { size: "sm", "aria-hidden": "true" }),
49533
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_icons81.AddIcon, { size: "sm", "aria-hidden": "true" }),
49513
49534
  onClick: onAdd,
49514
49535
  children: "Add channel"
49515
49536
  }
@@ -49518,14 +49539,14 @@ function NotificationChannelList({
49518
49539
  channels.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(
49519
49540
  EmptyState,
49520
49541
  {
49521
- icon: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_icons80.ConnectIcon, { "aria-hidden": "true" }),
49542
+ icon: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_icons81.ConnectIcon, { "aria-hidden": "true" }),
49522
49543
  title: "No channels yet",
49523
49544
  description: "A channel is somewhere alerts go besides the in-app inbox \u2014 a Slack channel, an email address, a webhook. Add one, then point rules at it.",
49524
49545
  action: canAdd ? /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(
49525
49546
  Button,
49526
49547
  {
49527
49548
  variant: "primary",
49528
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_icons80.AddIcon, { size: "sm", "aria-hidden": "true" }),
49549
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_icons81.AddIcon, { size: "sm", "aria-hidden": "true" }),
49529
49550
  onClick: onAdd,
49530
49551
  children: "Add channel"
49531
49552
  }
@@ -49549,7 +49570,7 @@ function NotificationChannelList({
49549
49570
  channel.id
49550
49571
  )),
49551
49572
  canAdd && /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)("button", { type: "button", className: "ods-notif-channels__add", onClick: onAdd, children: [
49552
- /* @__PURE__ */ (0, import_jsx_runtime200.jsx)("span", { className: "ods-notif-channels__add-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_icons80.AddIcon, { size: "sm" }) }),
49573
+ /* @__PURE__ */ (0, import_jsx_runtime200.jsx)("span", { className: "ods-notif-channels__add-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(import_icons81.AddIcon, { size: "sm" }) }),
49553
49574
  "Add channel"
49554
49575
  ] })
49555
49576
  ] })
@@ -49558,7 +49579,7 @@ function NotificationChannelList({
49558
49579
  NotificationChannelList.displayName = "NotificationChannelList";
49559
49580
 
49560
49581
  // src/notifications/components/NotificationPreferenceMatrix/NotificationPreferenceMatrix.tsx
49561
- var import_icons81 = require("@octaviaflow/icons");
49582
+ var import_icons82 = require("@octaviaflow/icons");
49562
49583
  var import_react217 = require("react");
49563
49584
 
49564
49585
  // src/notifications/engine/preferences.ts
@@ -49800,7 +49821,7 @@ function NotificationPreferenceMatrix({
49800
49821
  "aria-label": `${event.label} via ${colLabel}`
49801
49822
  }
49802
49823
  ),
49803
- locked && /* @__PURE__ */ (0, import_jsx_runtime201.jsx)("span", { className: "ods-pref-matrix__lock", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(import_icons81.LockedIcon, { size: "sm" }) })
49824
+ locked && /* @__PURE__ */ (0, import_jsx_runtime201.jsx)("span", { className: "ods-pref-matrix__lock", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(import_icons82.LockedIcon, { size: "sm" }) })
49804
49825
  ] });
49805
49826
  return /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(
49806
49827
  "div",
@@ -49831,7 +49852,7 @@ function NotificationPreferenceMatrix({
49831
49852
  NotificationPreferenceMatrix.displayName = "NotificationPreferenceMatrix";
49832
49853
 
49833
49854
  // src/notifications/components/NotificationRuleEditor/NotificationRuleEditor.tsx
49834
- var import_icons82 = require("@octaviaflow/icons");
49855
+ var import_icons83 = require("@octaviaflow/icons");
49835
49856
  var import_react218 = require("react");
49836
49857
  var import_jsx_runtime202 = require("react/jsx-runtime");
49837
49858
  var COOLDOWN_OPTIONS = [
@@ -49917,7 +49938,7 @@ function NotificationRuleEditor({
49917
49938
  const canSave = value.events.length > 0 && value.channelIds.length > 0 && !saving && !readOnly;
49918
49939
  return /* @__PURE__ */ (0, import_jsx_runtime202.jsxs)("div", { className: cn("ods-rule-editor", className), id: baseId, children: [
49919
49940
  /* @__PURE__ */ (0, import_jsx_runtime202.jsxs)("div", { className: "ods-rule-editor__summary", "aria-live": "polite", children: [
49920
- /* @__PURE__ */ (0, import_jsx_runtime202.jsx)("span", { className: "ods-rule-editor__summary-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime202.jsx)(import_icons82.RuleIcon, { size: "sm" }) }),
49941
+ /* @__PURE__ */ (0, import_jsx_runtime202.jsx)("span", { className: "ods-rule-editor__summary-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime202.jsx)(import_icons83.RuleIcon, { size: "sm" }) }),
49921
49942
  /* @__PURE__ */ (0, import_jsx_runtime202.jsx)("span", { children: sentence })
49922
49943
  ] }),
49923
49944
  /* @__PURE__ */ (0, import_jsx_runtime202.jsx)(
@@ -49982,7 +50003,7 @@ function NotificationRuleEditor({
49982
50003
  {
49983
50004
  size: "sm",
49984
50005
  variant: "ghost",
49985
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime202.jsx)(import_icons82.AddIcon, { size: "sm", "aria-hidden": "true" }),
50006
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime202.jsx)(import_icons83.AddIcon, { size: "sm", "aria-hidden": "true" }),
49986
50007
  onClick: onAddChannel,
49987
50008
  children: "Add channel"
49988
50009
  }
@@ -50176,7 +50197,7 @@ function NotificationRuleEditor({
50176
50197
  NotificationRuleEditor.displayName = "NotificationRuleEditor";
50177
50198
 
50178
50199
  // src/notifications/components/NotificationRuleList/NotificationRuleList.tsx
50179
- var import_icons83 = require("@octaviaflow/icons");
50200
+ var import_icons84 = require("@octaviaflow/icons");
50180
50201
  var import_jsx_runtime203 = require("react/jsx-runtime");
50181
50202
  function NotificationRuleList({
50182
50203
  rules,
@@ -50206,7 +50227,7 @@ function NotificationRuleList({
50206
50227
  {
50207
50228
  size: "sm",
50208
50229
  variant: "secondary",
50209
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_icons83.AddIcon, { size: "sm", "aria-hidden": "true" }),
50230
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_icons84.AddIcon, { size: "sm", "aria-hidden": "true" }),
50210
50231
  onClick: onCreate,
50211
50232
  children: "New rule"
50212
50233
  }
@@ -50216,14 +50237,14 @@ function NotificationRuleList({
50216
50237
  /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(
50217
50238
  EmptyState,
50218
50239
  {
50219
- icon: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_icons83.RuleIcon, { "aria-hidden": "true" }),
50240
+ icon: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_icons84.RuleIcon, { "aria-hidden": "true" }),
50220
50241
  title: "No rules yet",
50221
50242
  description: "Rules route events to shared channels \u2014 a Slack channel, an ops mailbox, a webhook \u2014 with thresholds and timing you choose. Everyone still gets their personal inbox and email without a rule.",
50222
50243
  action: canCreate ? /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(
50223
50244
  Button,
50224
50245
  {
50225
50246
  variant: "primary",
50226
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_icons83.AddIcon, { size: "sm", "aria-hidden": "true" }),
50247
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_icons84.AddIcon, { size: "sm", "aria-hidden": "true" }),
50227
50248
  onClick: onCreate,
50228
50249
  children: "New rule"
50229
50250
  }
@@ -50283,7 +50304,7 @@ function NotificationRuleList({
50283
50304
  variant: "ghost",
50284
50305
  "aria-label": `Edit ${rule.name || "rule"}`,
50285
50306
  onClick: () => onEdit(rule),
50286
- children: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_icons83.EditIcon, { size: "sm", "aria-hidden": "true" })
50307
+ children: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_icons84.EditIcon, { size: "sm", "aria-hidden": "true" })
50287
50308
  }
50288
50309
  ),
50289
50310
  onDuplicate && /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(
@@ -50293,7 +50314,7 @@ function NotificationRuleList({
50293
50314
  variant: "ghost",
50294
50315
  "aria-label": `Duplicate ${rule.name || "rule"}`,
50295
50316
  onClick: () => onDuplicate(rule),
50296
- children: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_icons83.CopyIcon, { size: "sm", "aria-hidden": "true" })
50317
+ children: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_icons84.CopyIcon, { size: "sm", "aria-hidden": "true" })
50297
50318
  }
50298
50319
  ),
50299
50320
  onDelete && /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(
@@ -50303,7 +50324,7 @@ function NotificationRuleList({
50303
50324
  variant: "ghost",
50304
50325
  "aria-label": `Delete ${rule.name || "rule"}`,
50305
50326
  onClick: () => onDelete(rule),
50306
- children: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_icons83.TrashCanIcon, { size: "sm", "aria-hidden": "true" })
50327
+ children: /* @__PURE__ */ (0, import_jsx_runtime203.jsx)(import_icons84.TrashCanIcon, { size: "sm", "aria-hidden": "true" })
50307
50328
  }
50308
50329
  )
50309
50330
  ] })