@octaviaflow/core 3.1.0-beta.78 → 3.1.0-beta.80

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
@@ -4304,6 +4304,9 @@ var PasswordInput = (0, import_react31.forwardRef)(
4304
4304
  );
4305
4305
  PasswordInput.displayName = "PasswordInput";
4306
4306
 
4307
+ // src/components/AuthScreen/AuthScreen.tsx
4308
+ var import_icons5 = require("@octaviaflow/icons");
4309
+
4307
4310
  // src/components/SocialButton/SocialButton.tsx
4308
4311
  var import_icons4 = require("@octaviaflow/icons");
4309
4312
  var import_react32 = require("react");
@@ -4675,19 +4678,23 @@ function AuthFormHeader({ logo, title, titleId, description, headingLevel }) {
4675
4678
  description && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { className: "ods-auth-form__desc", children: description })
4676
4679
  ] });
4677
4680
  }
4678
- function AuthFormSocial({ providers, onSocialClick, dividerLabel, disabled }) {
4681
+ function AuthFormSocial({ providers, onSocialClick, dividerLabel, disabled, position = "bottom" }) {
4679
4682
  if (!providers || providers.length === 0) return null;
4680
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
4683
+ const row = /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "ods-auth-form__social", children: providers.map((provider) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4684
+ SocialButton,
4685
+ {
4686
+ provider,
4687
+ disabled,
4688
+ onClick: () => onSocialClick?.(provider)
4689
+ },
4690
+ provider
4691
+ )) });
4692
+ return position === "top" ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
4693
+ row,
4694
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(AuthDivider, { children: dividerLabel })
4695
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
4681
4696
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(AuthDivider, { children: dividerLabel }),
4682
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "ods-auth-form__social", children: providers.map((provider) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4683
- SocialButton,
4684
- {
4685
- provider,
4686
- disabled,
4687
- onClick: () => onSocialClick?.(provider)
4688
- },
4689
- provider
4690
- )) })
4697
+ row
4691
4698
  ] });
4692
4699
  }
4693
4700
  function AuthFormFooterLink({ prompt, label, href, onClick }) {
@@ -4720,6 +4727,7 @@ function AuthLoginForm({
4720
4727
  forgotLabel = "Forgot your password?",
4721
4728
  socialProviders = ["google"],
4722
4729
  onSocialClick,
4730
+ socialPosition = "bottom",
4723
4731
  socialDividerLabel = "Or, log in with",
4724
4732
  registerHref,
4725
4733
  onRegisterClick,
@@ -4761,6 +4769,16 @@ function AuthLoginForm({
4761
4769
  error && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Banner, { variant: "error", children: error }),
4762
4770
  success && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Banner, { variant: "success", children: success })
4763
4771
  ] }),
4772
+ socialPosition === "top" && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4773
+ AuthFormSocial,
4774
+ {
4775
+ providers: socialProviders,
4776
+ onSocialClick,
4777
+ dividerLabel: socialDividerLabel,
4778
+ disabled: loading,
4779
+ position: "top"
4780
+ }
4781
+ ),
4764
4782
  /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ods-auth-form__fields", children: [
4765
4783
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4766
4784
  Input,
@@ -4803,7 +4821,7 @@ function AuthLoginForm({
4803
4821
  hasForgot && (forgotHref ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("a", { className: "ods-auth-form__link", href: forgotHref, onClick: onForgotClick, children: forgotLabel }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("button", { type: "button", className: "ods-auth-form__link", onClick: onForgotClick, children: forgotLabel }))
4804
4822
  ] }),
4805
4823
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Button, { type: "submit", variant: "primary", fullWidth: true, loading, children: submitLabel }),
4806
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4824
+ socialPosition === "bottom" && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4807
4825
  AuthFormSocial,
4808
4826
  {
4809
4827
  providers: socialProviders,
@@ -4857,6 +4875,10 @@ function AuthSignupForm({
4857
4875
  socialProviders = ["google"],
4858
4876
  onSocialClick,
4859
4877
  socialDividerLabel = "Or, sign up with",
4878
+ layout = "form-first",
4879
+ emailCtaLabel = "Sign up with email",
4880
+ backLabel = "Back to all options",
4881
+ highlights,
4860
4882
  signInHref,
4861
4883
  onSignInClick,
4862
4884
  signInPrompt = "Already have an account?",
@@ -4876,6 +4898,8 @@ function AuthSignupForm({
4876
4898
  const [isCompanyAccount, setIsCompanyAccount] = (0, import_react33.useState)(false);
4877
4899
  const [companyName, setCompanyName] = (0, import_react33.useState)("");
4878
4900
  const [domain, setDomain] = (0, import_react33.useState)("");
4901
+ const [entryMode, setEntryMode] = (0, import_react33.useState)("choice");
4902
+ const choiceScreen = layout === "choice-first" && entryMode === "choice";
4879
4903
  (0, import_react33.useEffect)(() => {
4880
4904
  if (!showCompanyToggle || !isCompanyAccount || domain) return;
4881
4905
  const at = email.indexOf("@");
@@ -4916,138 +4940,180 @@ function AuthSignupForm({
4916
4940
  error && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Banner, { variant: "error", children: error }),
4917
4941
  success && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Banner, { variant: "success", children: success })
4918
4942
  ] }),
4919
- /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ods-auth-form__fields", children: [
4920
- nameLayout === "split" ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ods-auth-form__grid2", children: [
4921
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4943
+ choiceScreen && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ods-auth-form__choice", children: [
4944
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "ods-auth-form__social", children: (socialProviders ?? []).map((provider) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4945
+ SocialButton,
4946
+ {
4947
+ provider,
4948
+ disabled: loading,
4949
+ onClick: () => onSocialClick?.(provider)
4950
+ },
4951
+ provider
4952
+ )) }),
4953
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(AuthDivider, { children: "or" }),
4954
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4955
+ Button,
4956
+ {
4957
+ type: "button",
4958
+ variant: "secondary",
4959
+ fullWidth: true,
4960
+ disabled: loading,
4961
+ onClick: () => setEntryMode("email"),
4962
+ children: emailCtaLabel
4963
+ }
4964
+ ),
4965
+ highlights && highlights.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("ul", { className: "ods-auth-form__highlights", children: highlights.map((item, i) => (
4966
+ // biome-ignore lint/suspicious/noArrayIndexKey: static copy row
4967
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("li", { children: [
4968
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_icons5.CheckmarkFilledIcon, { size: "sm", "aria-hidden": "true" }),
4969
+ item
4970
+ ] }, i)
4971
+ )) })
4972
+ ] }),
4973
+ !choiceScreen && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
4974
+ layout === "choice-first" && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4975
+ "button",
4976
+ {
4977
+ type: "button",
4978
+ className: "ods-auth-form__back",
4979
+ onClick: () => setEntryMode("choice"),
4980
+ disabled: loading,
4981
+ children: backLabel
4982
+ }
4983
+ ),
4984
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ods-auth-form__fields", children: [
4985
+ nameLayout === "split" ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ods-auth-form__grid2", children: [
4986
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4987
+ Input,
4988
+ {
4989
+ label: firstNameLabel,
4990
+ type: "text",
4991
+ name: "firstName",
4992
+ autoComplete: "given-name",
4993
+ required: true,
4994
+ placeholder: firstNamePlaceholder,
4995
+ value: firstName,
4996
+ onChange: (e) => setFirstName(e.target.value),
4997
+ disabled: loading
4998
+ }
4999
+ ),
5000
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5001
+ Input,
5002
+ {
5003
+ label: lastNameLabel,
5004
+ type: "text",
5005
+ name: "lastName",
5006
+ autoComplete: "family-name",
5007
+ required: true,
5008
+ placeholder: lastNamePlaceholder,
5009
+ value: lastName,
5010
+ onChange: (e) => setLastName(e.target.value),
5011
+ disabled: loading
5012
+ }
5013
+ )
5014
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4922
5015
  Input,
4923
5016
  {
4924
- label: firstNameLabel,
5017
+ label: nameLabel,
4925
5018
  type: "text",
4926
- name: "firstName",
4927
- autoComplete: "given-name",
5019
+ name: "name",
5020
+ autoComplete: "name",
4928
5021
  required: true,
4929
- placeholder: firstNamePlaceholder,
4930
- value: firstName,
4931
- onChange: (e) => setFirstName(e.target.value),
5022
+ placeholder: namePlaceholder,
5023
+ value: name,
5024
+ onChange: (e) => setName(e.target.value),
4932
5025
  disabled: loading
4933
5026
  }
4934
5027
  ),
4935
5028
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4936
5029
  Input,
4937
5030
  {
4938
- label: lastNameLabel,
4939
- type: "text",
4940
- name: "lastName",
4941
- autoComplete: "family-name",
5031
+ label: emailLabel,
5032
+ type: "email",
5033
+ name: "email",
5034
+ autoComplete: "email",
4942
5035
  required: true,
4943
- placeholder: lastNamePlaceholder,
4944
- value: lastName,
4945
- onChange: (e) => setLastName(e.target.value),
5036
+ placeholder: emailPlaceholder,
5037
+ value: email,
5038
+ onChange: (e) => setEmail(e.target.value),
5039
+ disabled: loading
5040
+ }
5041
+ ),
5042
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5043
+ PasswordInput,
5044
+ {
5045
+ label: passwordLabel,
5046
+ name: "password",
5047
+ autoComplete: "new-password",
5048
+ required: true,
5049
+ placeholder: passwordPlaceholder,
5050
+ value: password,
5051
+ onChange: setPassword,
5052
+ strengthRules: passwordStrengthRules,
4946
5053
  disabled: loading
4947
5054
  }
4948
5055
  )
4949
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4950
- Input,
4951
- {
4952
- label: nameLabel,
4953
- type: "text",
4954
- name: "name",
4955
- autoComplete: "name",
4956
- required: true,
4957
- placeholder: namePlaceholder,
4958
- value: name,
4959
- onChange: (e) => setName(e.target.value),
4960
- disabled: loading
4961
- }
4962
- ),
4963
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4964
- Input,
5056
+ ] }),
5057
+ showCompanyToggle && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
5058
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5059
+ Checkbox,
5060
+ {
5061
+ label: companyToggleLabel,
5062
+ checked: isCompanyAccount,
5063
+ onChange: setIsCompanyAccount,
5064
+ disabled: loading
5065
+ }
5066
+ ),
5067
+ isCompanyAccount && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ods-auth-form__grid2", children: [
5068
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5069
+ Input,
5070
+ {
5071
+ label: companyNameLabel,
5072
+ type: "text",
5073
+ name: "companyName",
5074
+ autoComplete: "organization",
5075
+ required: true,
5076
+ placeholder: companyNamePlaceholder,
5077
+ value: companyName,
5078
+ onChange: (e) => setCompanyName(e.target.value),
5079
+ disabled: loading
5080
+ }
5081
+ ),
5082
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5083
+ Input,
5084
+ {
5085
+ label: domainLabel,
5086
+ type: "text",
5087
+ name: "domain",
5088
+ placeholder: domainPlaceholder,
5089
+ value: domain,
5090
+ onChange: (e) => setDomain(e.target.value),
5091
+ disabled: loading
5092
+ }
5093
+ )
5094
+ ] })
5095
+ ] }),
5096
+ showTerms && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5097
+ Checkbox,
4965
5098
  {
4966
- label: emailLabel,
4967
- type: "email",
4968
- name: "email",
4969
- autoComplete: "email",
5099
+ label: termsLabel,
5100
+ checked: acceptTerms,
5101
+ onChange: setAcceptTerms,
4970
5102
  required: true,
4971
- placeholder: emailPlaceholder,
4972
- value: email,
4973
- onChange: (e) => setEmail(e.target.value),
4974
5103
  disabled: loading
4975
5104
  }
4976
5105
  ),
4977
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4978
- PasswordInput,
5106
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Button, { type: "submit", variant: "primary", fullWidth: true, loading, children: submitLabel }),
5107
+ layout === "form-first" && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5108
+ AuthFormSocial,
4979
5109
  {
4980
- label: passwordLabel,
4981
- name: "password",
4982
- autoComplete: "new-password",
4983
- required: true,
4984
- placeholder: passwordPlaceholder,
4985
- value: password,
4986
- onChange: setPassword,
4987
- strengthRules: passwordStrengthRules,
5110
+ providers: socialProviders,
5111
+ onSocialClick,
5112
+ dividerLabel: socialDividerLabel,
4988
5113
  disabled: loading
4989
5114
  }
4990
5115
  )
4991
5116
  ] }),
4992
- showCompanyToggle && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
4993
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
4994
- Checkbox,
4995
- {
4996
- label: companyToggleLabel,
4997
- checked: isCompanyAccount,
4998
- onChange: setIsCompanyAccount,
4999
- disabled: loading
5000
- }
5001
- ),
5002
- isCompanyAccount && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "ods-auth-form__grid2", children: [
5003
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5004
- Input,
5005
- {
5006
- label: companyNameLabel,
5007
- type: "text",
5008
- name: "companyName",
5009
- autoComplete: "organization",
5010
- required: true,
5011
- placeholder: companyNamePlaceholder,
5012
- value: companyName,
5013
- onChange: (e) => setCompanyName(e.target.value),
5014
- disabled: loading
5015
- }
5016
- ),
5017
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5018
- Input,
5019
- {
5020
- label: domainLabel,
5021
- type: "text",
5022
- name: "domain",
5023
- placeholder: domainPlaceholder,
5024
- value: domain,
5025
- onChange: (e) => setDomain(e.target.value),
5026
- disabled: loading
5027
- }
5028
- )
5029
- ] })
5030
- ] }),
5031
- showTerms && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5032
- Checkbox,
5033
- {
5034
- label: termsLabel,
5035
- checked: acceptTerms,
5036
- onChange: setAcceptTerms,
5037
- required: true,
5038
- disabled: loading
5039
- }
5040
- ),
5041
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Button, { type: "submit", variant: "primary", fullWidth: true, loading, children: submitLabel }),
5042
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5043
- AuthFormSocial,
5044
- {
5045
- providers: socialProviders,
5046
- onSocialClick,
5047
- dividerLabel: socialDividerLabel,
5048
- disabled: loading
5049
- }
5050
- ),
5051
5117
  footer ?? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5052
5118
  AuthFormFooterLink,
5053
5119
  {
@@ -5762,7 +5828,7 @@ function Breadcrumb({
5762
5828
  }
5763
5829
 
5764
5830
  // src/components/Calendar/Calendar.tsx
5765
- var import_icons6 = require("@octaviaflow/icons");
5831
+ var import_icons7 = require("@octaviaflow/icons");
5766
5832
  var import_react40 = require("react");
5767
5833
 
5768
5834
  // src/components/Select/Select.tsx
@@ -5770,7 +5836,7 @@ var import_framer_motion8 = require("framer-motion");
5770
5836
  var import_react39 = require("react");
5771
5837
  var import_react_aria5 = require("react-aria");
5772
5838
  var import_react_dom2 = require("react-dom");
5773
- var import_icons5 = require("@octaviaflow/icons");
5839
+ var import_icons6 = require("@octaviaflow/icons");
5774
5840
 
5775
5841
  // src/components/Tooltip/Tooltip.tsx
5776
5842
  var import_framer_motion7 = require("framer-motion");
@@ -6058,7 +6124,7 @@ function Option({
6058
6124
  /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ods-select__option-label", children: item.rendered }),
6059
6125
  option?.description && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ods-select__option-desc", children: option.description })
6060
6126
  ] }),
6061
- isSelected && showCheckmark && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ods-select__check", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_icons5.CheckmarkIcon, { size: "xs", tone: "accent" }) })
6127
+ isSelected && showCheckmark && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: "ods-select__check", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_icons6.CheckmarkIcon, { size: "xs", tone: "accent" }) })
6062
6128
  ]
6063
6129
  }
6064
6130
  )
@@ -6268,7 +6334,7 @@ var Select = (0, import_react39.forwardRef)(function Select2({
6268
6334
  state.isOpen && "ods-select__chevron--open"
6269
6335
  ),
6270
6336
  "aria-hidden": "true",
6271
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_icons5.ChevronDownIcon, { size: "xs" })
6337
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_icons6.ChevronDownIcon, { size: "xs" })
6272
6338
  }
6273
6339
  )
6274
6340
  ]
@@ -6279,6 +6345,7 @@ var Select = (0, import_react39.forwardRef)(function Select2({
6279
6345
  import_framer_motion8.motion.div,
6280
6346
  {
6281
6347
  ref: dropdownRef,
6348
+ "data-ods-floating": "",
6282
6349
  className: "ods-select__dropdown",
6283
6350
  style: {
6284
6351
  position: "fixed",
@@ -6595,7 +6662,7 @@ var Calendar = (0, import_react40.forwardRef)(function Calendar2({
6595
6662
  className: "ods-calendar__nav",
6596
6663
  onClick: () => setMonth(addMonths(visibleMonth, -1)),
6597
6664
  "aria-label": "Previous month",
6598
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_icons6.ChevronLeftIcon, { "aria-hidden": "true" })
6665
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_icons7.ChevronLeftIcon, { "aria-hidden": "true" })
6599
6666
  }
6600
6667
  ) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "ods-calendar__nav ods-calendar__nav--placeholder", "aria-hidden": "true" }),
6601
6668
  captionLayout === "dropdowns" ? (
@@ -6666,7 +6733,7 @@ var Calendar = (0, import_react40.forwardRef)(function Calendar2({
6666
6733
  className: "ods-calendar__nav",
6667
6734
  onClick: () => setMonth(addMonths(visibleMonth, 1)),
6668
6735
  "aria-label": "Next month",
6669
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_icons6.ChevronRightIcon, { "aria-hidden": "true" })
6736
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_icons7.ChevronRightIcon, { "aria-hidden": "true" })
6670
6737
  }
6671
6738
  ) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: "ods-calendar__nav ods-calendar__nav--placeholder", "aria-hidden": "true" })
6672
6739
  ] }),
@@ -8711,7 +8778,7 @@ Chip.displayName = "Chip";
8711
8778
 
8712
8779
  // src/components/ChoiceCard/ChoiceCard.tsx
8713
8780
  var import_framer_motion11 = require("framer-motion");
8714
- var import_icons7 = require("@octaviaflow/icons");
8781
+ var import_icons8 = require("@octaviaflow/icons");
8715
8782
  var import_react59 = require("react");
8716
8783
  var import_jsx_runtime42 = require("react/jsx-runtime");
8717
8784
  var ChoiceCard = (0, import_react59.forwardRef)(
@@ -8779,7 +8846,7 @@ var ChoiceCard = (0, import_react59.forwardRef)(
8779
8846
  duration: 0.18,
8780
8847
  ease: [0.34, 1.2, 0.64, 1]
8781
8848
  },
8782
- children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_icons7.CheckmarkIcon, { size: "xs" })
8849
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_icons8.CheckmarkIcon, { size: "xs" })
8783
8850
  },
8784
8851
  "check"
8785
8852
  ) })
@@ -8981,7 +9048,7 @@ var ConnectorCard = (0, import_react60.forwardRef)(
8981
9048
  ConnectorCard.displayName = "ConnectorCard";
8982
9049
 
8983
9050
  // src/components/CodeEditor/CodeEditor.tsx
8984
- var import_icons8 = require("@octaviaflow/icons");
9051
+ var import_icons9 = require("@octaviaflow/icons");
8985
9052
  var import_react61 = require("react");
8986
9053
  var import_jsx_runtime44 = require("react/jsx-runtime");
8987
9054
  var COMMENT_PREFIX = {
@@ -9362,7 +9429,7 @@ ${indent}`;
9362
9429
  "aria-pressed": wordWrap,
9363
9430
  "aria-label": "Toggle word wrap",
9364
9431
  title: "Word wrap",
9365
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons8.TextWrapIcon, { "aria-hidden": "true" })
9432
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons9.TextWrapIcon, { "aria-hidden": "true" })
9366
9433
  }
9367
9434
  ),
9368
9435
  showFormatBtn && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
@@ -9373,7 +9440,7 @@ ${indent}`;
9373
9440
  onClick: handleFormat,
9374
9441
  "aria-label": "Format",
9375
9442
  title: "Format (JSON)",
9376
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons8.MagicWandIcon, { "aria-hidden": "true" })
9443
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons9.MagicWandIcon, { "aria-hidden": "true" })
9377
9444
  }
9378
9445
  ),
9379
9446
  showCopy && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
@@ -9384,13 +9451,13 @@ ${indent}`;
9384
9451
  onClick: handleCopy,
9385
9452
  "aria-label": "Copy",
9386
9453
  title: "Copy",
9387
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons8.CheckmarkIcon, { "aria-hidden": "true" }) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons8.CopyIcon, { "aria-hidden": "true" })
9454
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons9.CheckmarkIcon, { "aria-hidden": "true" }) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons9.CopyIcon, { "aria-hidden": "true" })
9388
9455
  }
9389
9456
  )
9390
9457
  ] })
9391
9458
  ] }),
9392
9459
  findOpen && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "ods-code-editor__find", role: "search", children: [
9393
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons8.SearchIcon, { "aria-hidden": "true" }),
9460
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_icons9.SearchIcon, { "aria-hidden": "true" }),
9394
9461
  /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9395
9462
  "input",
9396
9463
  {
@@ -9552,7 +9619,7 @@ ${indent}`;
9552
9619
  CodeEditor.displayName = "CodeEditor";
9553
9620
 
9554
9621
  // src/components/Coachmark/Coachmark.tsx
9555
- var import_icons9 = require("@octaviaflow/icons");
9622
+ var import_icons10 = require("@octaviaflow/icons");
9556
9623
  var import_framer_motion12 = require("framer-motion");
9557
9624
  var import_react62 = require("react");
9558
9625
  var import_react_dom3 = require("react-dom");
@@ -9725,7 +9792,7 @@ var Coachmark = (0, import_react62.forwardRef)(
9725
9792
  className: "ods-coachmark__close",
9726
9793
  "aria-label": "Dismiss",
9727
9794
  onClick: onDismiss,
9728
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_icons9.CloseIcon, { size: "xs", "aria-hidden": true })
9795
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_icons10.CloseIcon, { size: "xs", "aria-hidden": true })
9729
9796
  }
9730
9797
  ),
9731
9798
  /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "ods-coachmark__header", children: [
@@ -9817,7 +9884,7 @@ function useCoachmarkSeen(key, storagePrefix = "ods-coachmark:") {
9817
9884
  }
9818
9885
 
9819
9886
  // src/components/ColorPicker/ColorPicker.tsx
9820
- var import_icons10 = require("@octaviaflow/icons");
9887
+ var import_icons11 = require("@octaviaflow/icons");
9821
9888
  var import_react63 = require("react");
9822
9889
  var import_jsx_runtime46 = require("react/jsx-runtime");
9823
9890
  function isValidHex(v) {
@@ -9967,7 +10034,7 @@ var ColorPicker = (0, import_react63.forwardRef)(
9967
10034
  tabIndex: -1
9968
10035
  }
9969
10036
  ),
9970
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_icons10.EyedropperIcon, { "aria-hidden": "true" })
10037
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_icons11.EyedropperIcon, { "aria-hidden": "true" })
9971
10038
  ]
9972
10039
  }
9973
10040
  )
@@ -10015,7 +10082,7 @@ var ColorPicker = (0, import_react63.forwardRef)(
10015
10082
  ColorPicker.displayName = "ColorPicker";
10016
10083
 
10017
10084
  // src/components/CommandPalette/CommandPalette.tsx
10018
- var import_icons11 = require("@octaviaflow/icons");
10085
+ var import_icons12 = require("@octaviaflow/icons");
10019
10086
  var import_framer_motion13 = require("framer-motion");
10020
10087
  var import_react64 = require("react");
10021
10088
  var import_react_dom4 = require("react-dom");
@@ -10135,7 +10202,7 @@ var CommandPalette = (0, import_react64.forwardRef)(
10135
10202
  id: baseId,
10136
10203
  children: [
10137
10204
  /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "ods-cmdk__searchbar", children: [
10138
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_icons11.SearchIcon, { size: "sm", "aria-hidden": true, className: "ods-cmdk__search-icon" }),
10205
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_icons12.SearchIcon, { size: "sm", "aria-hidden": true, className: "ods-cmdk__search-icon" }),
10139
10206
  /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10140
10207
  "input",
10141
10208
  {
@@ -10278,12 +10345,12 @@ function useCommandPaletteShortcut(toggle, options2 = {}) {
10278
10345
  }
10279
10346
 
10280
10347
  // src/components/ConditionBuilder/ConditionBuilder.tsx
10281
- var import_icons13 = require("@octaviaflow/icons");
10348
+ var import_icons14 = require("@octaviaflow/icons");
10282
10349
  var import_react66 = require("react");
10283
10350
  var import_react_dom6 = require("react-dom");
10284
10351
 
10285
10352
  // src/components/Combobox/Combobox.tsx
10286
- var import_icons12 = require("@octaviaflow/icons");
10353
+ var import_icons13 = require("@octaviaflow/icons");
10287
10354
  var import_react65 = require("react");
10288
10355
  var import_react_dom5 = require("react-dom");
10289
10356
  var import_jsx_runtime48 = require("react/jsx-runtime");
@@ -10468,7 +10535,7 @@ function Combobox({
10468
10535
  "aria-expanded": open,
10469
10536
  disabled,
10470
10537
  tabIndex: -1,
10471
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_icons12.ChevronDownIcon, { "aria-hidden": "true", className: "ods-combobox__chev" })
10538
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_icons13.ChevronDownIcon, { "aria-hidden": "true", className: "ods-combobox__chev" })
10472
10539
  }
10473
10540
  )
10474
10541
  ] }),
@@ -10477,6 +10544,7 @@ function Combobox({
10477
10544
  "div",
10478
10545
  {
10479
10546
  ref: panelRef,
10547
+ "data-ods-floating": "",
10480
10548
  className: "ods-combobox__panel",
10481
10549
  role: "presentation",
10482
10550
  style: {
@@ -10667,7 +10735,7 @@ function OptionDropdown({
10667
10735
  selected?.icon && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "ods-cb-dd__icon", "aria-hidden": "true", children: selected.icon }),
10668
10736
  selected?.symbol && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "ods-cb-dd__symbol", children: selected.symbol }),
10669
10737
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: cn("ods-cb-dd__label", !selected && "ods-cb-dd__label--placeholder"), children: selected?.label ?? placeholder }),
10670
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_icons13.ChevronDownIcon, { "aria-hidden": "true", className: "ods-cb-dd__chev" })
10738
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_icons14.ChevronDownIcon, { "aria-hidden": "true", className: "ods-cb-dd__chev" })
10671
10739
  ]
10672
10740
  }
10673
10741
  ),
@@ -10686,7 +10754,7 @@ function OptionDropdown({
10686
10754
  },
10687
10755
  children: [
10688
10756
  showSearch && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "ods-cb-dd__search", children: [
10689
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_icons13.SearchIcon, { "aria-hidden": "true" }),
10757
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_icons14.SearchIcon, { "aria-hidden": "true" }),
10690
10758
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10691
10759
  "input",
10692
10760
  {
@@ -10721,7 +10789,7 @@ function OptionDropdown({
10721
10789
  opt.description && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "ods-cb-dd__opt-desc", children: opt.description })
10722
10790
  ] }),
10723
10791
  opt.value === value && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10724
- import_icons13.CheckmarkIcon,
10792
+ import_icons14.CheckmarkIcon,
10725
10793
  {
10726
10794
  "aria-hidden": "true",
10727
10795
  className: "ods-cb-dd__opt-check"
@@ -10906,7 +10974,7 @@ var ConditionBuilder = (0, import_react66.forwardRef)(function ConditionBuilder2
10906
10974
  className: "ods-condition-row__remove",
10907
10975
  onClick: () => handleRemove(index),
10908
10976
  "aria-label": removeLabel,
10909
- children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_icons13.CloseIcon, { "aria-hidden": "true" })
10977
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_icons14.CloseIcon, { "aria-hidden": "true" })
10910
10978
  }
10911
10979
  )
10912
10980
  ] }, index)) }),
@@ -10917,7 +10985,7 @@ var ConditionBuilder = (0, import_react66.forwardRef)(function ConditionBuilder2
10917
10985
  className: "ods-condition-builder__add",
10918
10986
  onClick: handleAdd,
10919
10987
  children: [
10920
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_icons13.AddIcon, { "aria-hidden": "true" }),
10988
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_icons14.AddIcon, { "aria-hidden": "true" }),
10921
10989
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { children: addLabel })
10922
10990
  ]
10923
10991
  }
@@ -10929,7 +10997,7 @@ var ConditionBuilder = (0, import_react66.forwardRef)(function ConditionBuilder2
10929
10997
  ConditionBuilder.displayName = "ConditionBuilder";
10930
10998
 
10931
10999
  // src/components/FieldPicker/FieldPicker.tsx
10932
- var import_icons14 = require("@octaviaflow/icons");
11000
+ var import_icons15 = require("@octaviaflow/icons");
10933
11001
  var import_react67 = require("react");
10934
11002
  var import_react_dom7 = require("react-dom");
10935
11003
  var import_jsx_runtime50 = require("react/jsx-runtime");
@@ -11127,7 +11195,7 @@ function FieldPicker({
11127
11195
  e.stopPropagation();
11128
11196
  if (!disabled) removeTag(v);
11129
11197
  },
11130
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons14.CloseIcon, { width: 10, height: 10, "aria-hidden": "true" })
11198
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons15.CloseIcon, { width: 10, height: 10, "aria-hidden": "true" })
11131
11199
  }
11132
11200
  )
11133
11201
  ] }, v)),
@@ -11136,7 +11204,7 @@ function FieldPicker({
11136
11204
  overflow
11137
11205
  ] })
11138
11206
  ] }),
11139
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons14.ChevronDownIcon, { "aria-hidden": "true", className: "ods-field-picker__chev" })
11207
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons15.ChevronDownIcon, { "aria-hidden": "true", className: "ods-field-picker__chev" })
11140
11208
  ]
11141
11209
  }
11142
11210
  ),
@@ -11155,7 +11223,7 @@ function FieldPicker({
11155
11223
  },
11156
11224
  children: [
11157
11225
  searchable && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "ods-field-picker__search", children: [
11158
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons14.SearchIcon, { "aria-hidden": "true" }),
11226
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons15.SearchIcon, { "aria-hidden": "true" }),
11159
11227
  /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
11160
11228
  "input",
11161
11229
  {
@@ -11201,7 +11269,7 @@ function FieldPicker({
11201
11269
  ),
11202
11270
  "aria-hidden": "true",
11203
11271
  children: [
11204
- allFilteredSelected && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons14.CheckmarkIcon, { width: 12, height: 12 }),
11272
+ allFilteredSelected && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons15.CheckmarkIcon, { width: 12, height: 12 }),
11205
11273
  !allFilteredSelected && someFilteredSelected && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "ods-field-picker__dash" })
11206
11274
  ]
11207
11275
  }
@@ -11249,7 +11317,7 @@ function FieldPicker({
11249
11317
  checked && "ods-field-picker__check--checked"
11250
11318
  ),
11251
11319
  "aria-hidden": "true",
11252
- children: checked && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons14.CheckmarkIcon, { width: 12, height: 12 })
11320
+ children: checked && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_icons15.CheckmarkIcon, { width: 12, height: 12 })
11253
11321
  }
11254
11322
  ),
11255
11323
  /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "ods-field-picker__opt-label", children: f.label }),
@@ -11278,7 +11346,7 @@ function FieldPicker({
11278
11346
  FieldPicker.displayName = "FieldPicker";
11279
11347
 
11280
11348
  // src/components/KeyValueEditor/KeyValueEditor.tsx
11281
- var import_icons15 = require("@octaviaflow/icons");
11349
+ var import_icons16 = require("@octaviaflow/icons");
11282
11350
  var import_jsx_runtime51 = require("react/jsx-runtime");
11283
11351
  var isRowEnabled = (pair) => pair.enabled !== false;
11284
11352
  function KeyValueEditor({
@@ -11400,7 +11468,7 @@ function KeyValueEditor({
11400
11468
  "aria-label": "Remove row",
11401
11469
  onClick: () => removeAt(i),
11402
11470
  disabled,
11403
- children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_icons15.CloseIcon, { width: 14, height: 14, "aria-hidden": "true" })
11471
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_icons16.CloseIcon, { width: 14, height: 14, "aria-hidden": "true" })
11404
11472
  }
11405
11473
  )
11406
11474
  ]
@@ -11409,7 +11477,7 @@ function KeyValueEditor({
11409
11477
  );
11410
11478
  }),
11411
11479
  canAdd && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("button", { type: "button", className: "ods-kv-editor__add", onClick: add, children: [
11412
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_icons15.AddIcon, { width: 14, height: 14, "aria-hidden": "true" }),
11480
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_icons16.AddIcon, { width: 14, height: 14, "aria-hidden": "true" }),
11413
11481
  addLabel
11414
11482
  ] }),
11415
11483
  error && errorMessage && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "ods-kv-editor__error-message", role: "alert", children: errorMessage }),
@@ -11421,7 +11489,7 @@ function KeyValueEditor({
11421
11489
  KeyValueEditor.displayName = "KeyValueEditor";
11422
11490
 
11423
11491
  // src/components/SortBuilder/SortBuilder.tsx
11424
- var import_icons16 = require("@octaviaflow/icons");
11492
+ var import_icons17 = require("@octaviaflow/icons");
11425
11493
  var import_jsx_runtime52 = require("react/jsx-runtime");
11426
11494
  function SortBuilder({
11427
11495
  sorts,
@@ -11469,7 +11537,7 @@ function SortBuilder({
11469
11537
  onClick: () => setAt(i, { direction: rule.direction === "asc" ? "desc" : "asc" }),
11470
11538
  disabled,
11471
11539
  children: [
11472
- rule.direction === "asc" ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_icons16.ArrowUpIcon, { width: 14, height: 14, "aria-hidden": "true" }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_icons16.ArrowDownIcon, { width: 14, height: 14, "aria-hidden": "true" }),
11540
+ rule.direction === "asc" ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_icons17.ArrowUpIcon, { width: 14, height: 14, "aria-hidden": "true" }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_icons17.ArrowDownIcon, { width: 14, height: 14, "aria-hidden": "true" }),
11473
11541
  /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "ods-sort-builder__dir-label", children: rule.direction === "asc" ? "Asc" : "Desc" })
11474
11542
  ]
11475
11543
  }
@@ -11482,12 +11550,12 @@ function SortBuilder({
11482
11550
  "aria-label": "Remove sort",
11483
11551
  onClick: () => removeAt(i),
11484
11552
  disabled,
11485
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_icons16.CloseIcon, { width: 14, height: 14, "aria-hidden": "true" })
11553
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_icons17.CloseIcon, { width: 14, height: 14, "aria-hidden": "true" })
11486
11554
  }
11487
11555
  )
11488
11556
  ] }, i)),
11489
11557
  canAdd && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("button", { type: "button", className: "ods-sort-builder__add", onClick: add, children: [
11490
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_icons16.AddIcon, { width: 14, height: 14, "aria-hidden": "true" }),
11558
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_icons17.AddIcon, { width: 14, height: 14, "aria-hidden": "true" }),
11491
11559
  addLabel
11492
11560
  ] }),
11493
11561
  helperText && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "ods-sort-builder__helper", children: helperText })
@@ -11496,7 +11564,7 @@ function SortBuilder({
11496
11564
  SortBuilder.displayName = "SortBuilder";
11497
11565
 
11498
11566
  // src/components/GroupByBuilder/GroupByBuilder.tsx
11499
- var import_icons17 = require("@octaviaflow/icons");
11567
+ var import_icons18 = require("@octaviaflow/icons");
11500
11568
  var import_jsx_runtime53 = require("react/jsx-runtime");
11501
11569
  var DEFAULT_FNS = ["count", "sum", "avg", "min", "max"];
11502
11570
  var FN_LABEL = {
@@ -11593,12 +11661,12 @@ function GroupByBuilder({
11593
11661
  "aria-label": "Remove aggregate",
11594
11662
  onClick: () => removeAggAt(i),
11595
11663
  disabled,
11596
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_icons17.CloseIcon, { width: 14, height: 14, "aria-hidden": "true" })
11664
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_icons18.CloseIcon, { width: 14, height: 14, "aria-hidden": "true" })
11597
11665
  }
11598
11666
  )
11599
11667
  ] }, i)),
11600
11668
  !disabled && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("button", { type: "button", className: "ods-groupby-builder__add", onClick: addAgg, children: [
11601
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_icons17.AddIcon, { width: 14, height: 14, "aria-hidden": "true" }),
11669
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_icons18.AddIcon, { width: 14, height: 14, "aria-hidden": "true" }),
11602
11670
  "Add aggregate"
11603
11671
  ] })
11604
11672
  ] }),
@@ -11608,7 +11676,7 @@ function GroupByBuilder({
11608
11676
  GroupByBuilder.displayName = "GroupByBuilder";
11609
11677
 
11610
11678
  // src/components/Disclosure/Disclosure.tsx
11611
- var import_icons18 = require("@octaviaflow/icons");
11679
+ var import_icons19 = require("@octaviaflow/icons");
11612
11680
  var import_react68 = require("react");
11613
11681
  var import_jsx_runtime54 = require("react/jsx-runtime");
11614
11682
  function Disclosure({
@@ -11656,7 +11724,7 @@ function Disclosure({
11656
11724
  "aria-expanded": open,
11657
11725
  "aria-controls": regionId,
11658
11726
  children: [
11659
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_icons18.ChevronRightIcon, { "aria-hidden": "true", className: "ods-disclosure__chev" }),
11727
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_icons19.ChevronRightIcon, { "aria-hidden": "true", className: "ods-disclosure__chev" }),
11660
11728
  icon && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "ods-disclosure__icon", "aria-hidden": "true", children: icon }),
11661
11729
  /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("span", { className: "ods-disclosure__head", children: [
11662
11730
  /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "ods-disclosure__title", children: title }),
@@ -11674,7 +11742,7 @@ function Disclosure({
11674
11742
  Disclosure.displayName = "Disclosure";
11675
11743
 
11676
11744
  // src/components/ConfigPanel/ConfigPanel.tsx
11677
- var import_icons19 = require("@octaviaflow/icons");
11745
+ var import_icons20 = require("@octaviaflow/icons");
11678
11746
  var import_framer_motion14 = require("framer-motion");
11679
11747
  var import_react69 = require("react");
11680
11748
  var import_react_aria6 = require("react-aria");
@@ -11769,7 +11837,7 @@ var ConfigPanel = (0, import_react69.forwardRef)(
11769
11837
  ref: closeRef,
11770
11838
  className: "ods-config-panel__close",
11771
11839
  "data-testid": "config-panel-close",
11772
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_icons19.CloseIcon, { "aria-hidden": "true" })
11840
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_icons20.CloseIcon, { "aria-hidden": "true" })
11773
11841
  }
11774
11842
  )
11775
11843
  ] }),
@@ -11837,7 +11905,7 @@ function stripMotionConflicts(props) {
11837
11905
  var import_react71 = require("react");
11838
11906
 
11839
11907
  // src/components/Dialog/Dialog.tsx
11840
- var import_icons20 = require("@octaviaflow/icons");
11908
+ var import_icons21 = require("@octaviaflow/icons");
11841
11909
  var import_framer_motion15 = require("framer-motion");
11842
11910
  var import_react70 = require("react");
11843
11911
  var import_react_aria7 = require("react-aria");
@@ -11936,7 +12004,11 @@ var DialogContent = (0, import_react70.forwardRef)(function DialogContent2({
11936
12004
  isOpen: open,
11937
12005
  onClose,
11938
12006
  isDismissable: closeOnOverlayClick,
11939
- isKeyboardDismissDisabled: !closeOnEsc
12007
+ isKeyboardDismissDisabled: !closeOnEsc,
12008
+ // Floating layers (Select/Combobox/DropdownMenu/DatePicker dropdowns)
12009
+ // portal to <body>, OUTSIDE the dialog subtree — without this, picking
12010
+ // an option counted as an outside click and closed the dialog.
12011
+ shouldCloseOnInteractOutside: (element) => !(element instanceof Element && element.closest("[data-ods-floating]"))
11940
12012
  },
11941
12013
  overlayRef
11942
12014
  );
@@ -11999,7 +12071,7 @@ var DialogContent = (0, import_react70.forwardRef)(function DialogContent2({
11999
12071
  onClick: onClose,
12000
12072
  "aria-label": closeLabel,
12001
12073
  type: "button",
12002
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_icons20.CloseIcon, { "aria-hidden": "true" })
12074
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_icons21.CloseIcon, { "aria-hidden": "true" })
12003
12075
  }
12004
12076
  )
12005
12077
  ] }),
@@ -12193,19 +12265,19 @@ var ConfirmDialog = (0, import_react71.forwardRef)(
12193
12265
  ConfirmDialog.displayName = "ConfirmDialog";
12194
12266
 
12195
12267
  // src/components/CsvViewer/CsvViewer.tsx
12196
- var import_icons22 = require("@octaviaflow/icons");
12268
+ var import_icons23 = require("@octaviaflow/icons");
12197
12269
  var import_papaparse = __toESM(require("papaparse"), 1);
12198
12270
  var import_react74 = require("react");
12199
12271
 
12200
12272
  // src/components/InlineMessage/InlineMessage.tsx
12201
- var import_icons21 = require("@octaviaflow/icons");
12273
+ var import_icons22 = require("@octaviaflow/icons");
12202
12274
  var import_react72 = require("react");
12203
12275
  var import_jsx_runtime58 = require("react/jsx-runtime");
12204
12276
  var TONE_ICON = {
12205
- info: import_icons21.InformationFilledIcon,
12206
- success: import_icons21.CheckmarkFilledIcon,
12207
- warning: import_icons21.WarningFilledIcon,
12208
- danger: import_icons21.ErrorFilledIcon
12277
+ info: import_icons22.InformationFilledIcon,
12278
+ success: import_icons22.CheckmarkFilledIcon,
12279
+ warning: import_icons22.WarningFilledIcon,
12280
+ danger: import_icons22.ErrorFilledIcon
12209
12281
  };
12210
12282
  var InlineMessage = (0, import_react72.forwardRef)(
12211
12283
  function InlineMessage2({
@@ -12483,7 +12555,7 @@ var CsvViewer = (0, import_react74.forwardRef)(
12483
12555
  ),
12484
12556
  "aria-label": copied ? "Copied" : "Copy CSV",
12485
12557
  onClick: onCopy,
12486
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_icons22.CheckmarkIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_icons22.CopyIcon, { size: "xs" })
12558
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_icons23.CheckmarkIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_icons23.CopyIcon, { size: "xs" })
12487
12559
  }
12488
12560
  )
12489
12561
  ] })
@@ -12767,76 +12839,82 @@ var ContextMenu = (0, import_react75.forwardRef)(
12767
12839
  );
12768
12840
  }
12769
12841
  const portalTarget = container ?? document.body;
12770
- const panel = /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_framer_motion17.AnimatePresence, { children: open && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12771
- import_framer_motion17.motion.div,
12842
+ const panel = /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12843
+ import_framer_motion17.AnimatePresence,
12772
12844
  {
12773
- ...rest,
12774
- ref: (el) => {
12775
- panelRef.current = el;
12776
- if (typeof ref === "function") ref(el);
12777
- else if (ref) {
12778
- ref.current = el;
12779
- }
12780
- },
12781
- id: baseId,
12782
- role: "menu",
12783
- "aria-label": ariaLabel,
12784
- tabIndex: -1,
12785
- className: cn("ods-ctxmenu", className),
12786
- style: {
12787
- top: adjustedPosition.y,
12788
- left: adjustedPosition.x
12789
- },
12790
- initial: reducedMotion ? void 0 : { opacity: 0, scale: 0.96 },
12791
- animate: reducedMotion ? void 0 : { opacity: 1, scale: 1 },
12792
- exit: reducedMotion ? void 0 : { opacity: 0, scale: 0.96 },
12793
- transition: { duration: 0.12 },
12794
- onKeyDown: handleKeyDown,
12795
- onContextMenu: (e) => e.preventDefault(),
12796
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("ul", { className: "ods-ctxmenu__list", children: items.map((item, i) => {
12797
- if (item.separator) {
12798
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12799
- "li",
12800
- {
12801
- role: "separator",
12802
- className: "ods-ctxmenu__separator"
12803
- },
12804
- `sep-${i}`
12805
- );
12806
- }
12807
- const isActive2 = i === activeIndex;
12808
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
12809
- "li",
12810
- {
12811
- role: "menuitem",
12812
- "aria-disabled": item.disabled || void 0,
12813
- tabIndex: -1,
12814
- className: cn(
12815
- "ods-ctxmenu__item",
12816
- isActive2 && "ods-ctxmenu__item--active",
12817
- item.danger && "ods-ctxmenu__item--danger",
12818
- item.disabled && "ods-ctxmenu__item--disabled"
12819
- ),
12820
- onMouseEnter: () => !item.disabled && setActiveIndex(i),
12821
- onClick: () => handleItemClick(item),
12822
- children: [
12823
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12824
- "span",
12825
- {
12826
- className: "ods-ctxmenu__icon",
12827
- "aria-hidden": "true",
12828
- children: item.icon
12829
- }
12830
- ),
12831
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "ods-ctxmenu__label", children: item.label }),
12832
- item.shortcut && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("kbd", { className: "ods-ctxmenu__shortcut", children: item.shortcut })
12833
- ]
12845
+ "data-ods-floating": "",
12846
+ children: open && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12847
+ import_framer_motion17.motion.div,
12848
+ {
12849
+ ...rest,
12850
+ ref: (el) => {
12851
+ panelRef.current = el;
12852
+ if (typeof ref === "function") ref(el);
12853
+ else if (ref) {
12854
+ ref.current = el;
12855
+ }
12834
12856
  },
12835
- `${item.label}-${i}`
12836
- );
12837
- }) })
12857
+ id: baseId,
12858
+ role: "menu",
12859
+ "aria-label": ariaLabel,
12860
+ tabIndex: -1,
12861
+ className: cn("ods-ctxmenu", className),
12862
+ style: {
12863
+ top: adjustedPosition.y,
12864
+ left: adjustedPosition.x
12865
+ },
12866
+ initial: reducedMotion ? void 0 : { opacity: 0, scale: 0.96 },
12867
+ animate: reducedMotion ? void 0 : { opacity: 1, scale: 1 },
12868
+ exit: reducedMotion ? void 0 : { opacity: 0, scale: 0.96 },
12869
+ transition: { duration: 0.12 },
12870
+ onKeyDown: handleKeyDown,
12871
+ onContextMenu: (e) => e.preventDefault(),
12872
+ children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("ul", { className: "ods-ctxmenu__list", children: items.map((item, i) => {
12873
+ if (item.separator) {
12874
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12875
+ "li",
12876
+ {
12877
+ role: "separator",
12878
+ className: "ods-ctxmenu__separator"
12879
+ },
12880
+ `sep-${i}`
12881
+ );
12882
+ }
12883
+ const isActive2 = i === activeIndex;
12884
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
12885
+ "li",
12886
+ {
12887
+ role: "menuitem",
12888
+ "aria-disabled": item.disabled || void 0,
12889
+ tabIndex: -1,
12890
+ className: cn(
12891
+ "ods-ctxmenu__item",
12892
+ isActive2 && "ods-ctxmenu__item--active",
12893
+ item.danger && "ods-ctxmenu__item--danger",
12894
+ item.disabled && "ods-ctxmenu__item--disabled"
12895
+ ),
12896
+ onMouseEnter: () => !item.disabled && setActiveIndex(i),
12897
+ onClick: () => handleItemClick(item),
12898
+ children: [
12899
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12900
+ "span",
12901
+ {
12902
+ className: "ods-ctxmenu__icon",
12903
+ "aria-hidden": "true",
12904
+ children: item.icon
12905
+ }
12906
+ ),
12907
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("span", { className: "ods-ctxmenu__label", children: item.label }),
12908
+ item.shortcut && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("kbd", { className: "ods-ctxmenu__shortcut", children: item.shortcut })
12909
+ ]
12910
+ },
12911
+ `${item.label}-${i}`
12912
+ );
12913
+ }) })
12914
+ }
12915
+ )
12838
12916
  }
12839
- ) });
12917
+ );
12840
12918
  return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, { children: [
12841
12919
  /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12842
12920
  "span",
@@ -14496,7 +14574,7 @@ var DatasetCard = (0, import_react77.forwardRef)(
14496
14574
  DatasetCard.displayName = "DatasetCard";
14497
14575
 
14498
14576
  // src/components/DataTable/DataTable.tsx
14499
- var import_icons23 = require("@octaviaflow/icons");
14577
+ var import_icons24 = require("@octaviaflow/icons");
14500
14578
  var import_react78 = require("react");
14501
14579
  var import_react_dom10 = require("react-dom");
14502
14580
  var import_jsx_runtime64 = require("react/jsx-runtime");
@@ -14675,19 +14753,19 @@ var SR_ONLY_STYLE = {
14675
14753
  whiteSpace: "nowrap",
14676
14754
  border: 0
14677
14755
  };
14678
- var SearchIcon8 = () => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.SearchIcon, { width: 14, height: 14, "aria-hidden": "true" });
14679
- var ChevronDown = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.ChevronDownIcon, { width: 12, height: 12, "aria-hidden": "true" });
14680
- var ChevronLeft = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.ChevronLeftIcon, { width: 12, height: 12, "aria-hidden": "true" });
14681
- var ChevronRight = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.ChevronRightIcon, { width: 12, height: 12, "aria-hidden": "true" });
14682
- var SortAsc = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.CaretUpIcon, { width: 10, height: 10, "aria-hidden": "true" });
14683
- var SortDesc = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.CaretDownIcon, { width: 10, height: 10, "aria-hidden": "true" });
14684
- var SortIdle = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.CaretSortIcon, { width: 10, height: 10, "aria-hidden": "true", style: { opacity: 0.5 } });
14685
- var FilterIcon = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.FilterIcon, { width: 12, height: 12, "aria-hidden": "true" });
14686
- var ColumnsIcon = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.ColumnIcon, { width: 12, height: 12, "aria-hidden": "true" });
14687
- var MoreHIcon = () => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.OverflowMenuHorizontalIcon, { width: 12, height: 12, "aria-hidden": "true" });
14688
- var XIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.CloseIcon, { width: 12, height: 12, "aria-hidden": "true" });
14689
- var RefreshIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.RenewIcon, { width: 12, height: 12, ...props });
14690
- var ExportIcon = () => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.DownloadIcon, { width: 12, height: 12, "aria-hidden": "true" });
14756
+ var SearchIcon8 = () => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.SearchIcon, { width: 14, height: 14, "aria-hidden": "true" });
14757
+ var ChevronDown = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.ChevronDownIcon, { width: 12, height: 12, "aria-hidden": "true" });
14758
+ var ChevronLeft = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.ChevronLeftIcon, { width: 12, height: 12, "aria-hidden": "true" });
14759
+ var ChevronRight = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.ChevronRightIcon, { width: 12, height: 12, "aria-hidden": "true" });
14760
+ var SortAsc = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.CaretUpIcon, { width: 10, height: 10, "aria-hidden": "true" });
14761
+ var SortDesc = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.CaretDownIcon, { width: 10, height: 10, "aria-hidden": "true" });
14762
+ var SortIdle = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.CaretSortIcon, { width: 10, height: 10, "aria-hidden": "true", style: { opacity: 0.5 } });
14763
+ var FilterIcon = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.FilterIcon, { width: 12, height: 12, "aria-hidden": "true" });
14764
+ var ColumnsIcon = /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.ColumnIcon, { width: 12, height: 12, "aria-hidden": "true" });
14765
+ var MoreHIcon = () => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.OverflowMenuHorizontalIcon, { width: 12, height: 12, "aria-hidden": "true" });
14766
+ var XIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.CloseIcon, { width: 12, height: 12, "aria-hidden": "true" });
14767
+ var RefreshIcon = (props) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.RenewIcon, { width: 12, height: 12, ...props });
14768
+ var ExportIcon = () => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.DownloadIcon, { width: 12, height: 12, "aria-hidden": "true" });
14691
14769
  function ExportPopover({
14692
14770
  onExport
14693
14771
  }) {
@@ -15494,11 +15572,11 @@ function Row({
15494
15572
  ] });
15495
15573
  }
15496
15574
  function ChevronRightSmall() {
15497
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons23.ChevronRightIcon, { width: 10, height: 10, "aria-hidden": "true" });
15575
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_icons24.ChevronRightIcon, { width: 10, height: 10, "aria-hidden": "true" });
15498
15576
  }
15499
15577
 
15500
15578
  // src/components/DatePicker/DatePicker.tsx
15501
- var import_icons24 = require("@octaviaflow/icons");
15579
+ var import_icons25 = require("@octaviaflow/icons");
15502
15580
  var import_react80 = require("react");
15503
15581
  var import_react_dom11 = require("react-dom");
15504
15582
 
@@ -15697,7 +15775,7 @@ var DatePicker = (0, import_react80.forwardRef)(
15697
15775
  "aria-describedby": helperId,
15698
15776
  "aria-required": required || void 0,
15699
15777
  children: [
15700
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_icons24.CalendarIcon, { "aria-hidden": "true", className: "ods-datepicker__cal-icon" }),
15778
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_icons25.CalendarIcon, { "aria-hidden": "true", className: "ods-datepicker__cal-icon" }),
15701
15779
  /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
15702
15780
  "span",
15703
15781
  {
@@ -15708,7 +15786,7 @@ var DatePicker = (0, import_react80.forwardRef)(
15708
15786
  children: value ? format2(value) : placeholder
15709
15787
  }
15710
15788
  ),
15711
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_icons24.ChevronDownIcon, { "aria-hidden": "true", className: "ods-datepicker__chev" })
15789
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_icons25.ChevronDownIcon, { "aria-hidden": "true", className: "ods-datepicker__chev" })
15712
15790
  ]
15713
15791
  }
15714
15792
  ),
@@ -15727,6 +15805,7 @@ var DatePicker = (0, import_react80.forwardRef)(
15727
15805
  "div",
15728
15806
  {
15729
15807
  ref: popoverRef,
15808
+ "data-ods-floating": "",
15730
15809
  className: "ods-datepicker__popover",
15731
15810
  role: "dialog",
15732
15811
  "aria-modal": "false",
@@ -15999,7 +16078,7 @@ var Divider = (0, import_react82.forwardRef)(function Divider2({
15999
16078
  Divider.displayName = "Divider";
16000
16079
 
16001
16080
  // src/components/Drawer/Drawer.tsx
16002
- var import_icons25 = require("@octaviaflow/icons");
16081
+ var import_icons26 = require("@octaviaflow/icons");
16003
16082
  var import_react83 = require("react");
16004
16083
  var import_jsx_runtime68 = require("react/jsx-runtime");
16005
16084
  var SIZE_WIDTH = {
@@ -16045,7 +16124,7 @@ var Drawer = (0, import_react83.forwardRef)(function Drawer2({
16045
16124
  className: "ods-drawer__close",
16046
16125
  onClick: onClose,
16047
16126
  "aria-label": closeLabel,
16048
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_icons25.CloseIcon, { "aria-hidden": "true" })
16127
+ children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_icons26.CloseIcon, { "aria-hidden": "true" })
16049
16128
  }
16050
16129
  )
16051
16130
  ] }),
@@ -16210,6 +16289,7 @@ function MenuPopup({
16210
16289
  const portalContent = /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_framer_motion19.AnimatePresence, { children: state.isOpen && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
16211
16290
  import_framer_motion19.motion.ul,
16212
16291
  {
16292
+ "data-ods-floating": "",
16213
16293
  ...(() => {
16214
16294
  const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...safe } = menuProps;
16215
16295
  return safe;
@@ -16811,7 +16891,7 @@ function csvEscape(value) {
16811
16891
  }
16812
16892
 
16813
16893
  // src/components/FeatureCard/FeatureCard.tsx
16814
- var import_icons26 = require("@octaviaflow/icons");
16894
+ var import_icons27 = require("@octaviaflow/icons");
16815
16895
  var import_react87 = require("react");
16816
16896
  var import_jsx_runtime72 = require("react/jsx-runtime");
16817
16897
  var FeatureCard = (0, import_react87.forwardRef)(
@@ -16887,7 +16967,7 @@ var FeatureCard = (0, import_react87.forwardRef)(
16887
16967
  {
16888
16968
  className: "ods-feature-card__link-icon",
16889
16969
  "aria-hidden": "true",
16890
- children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_icons26.ArrowRightIcon, { size: "xs" })
16970
+ children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_icons27.ArrowRightIcon, { size: "xs" })
16891
16971
  }
16892
16972
  )
16893
16973
  ]
@@ -16902,7 +16982,7 @@ var FeatureCard = (0, import_react87.forwardRef)(
16902
16982
  FeatureCard.displayName = "FeatureCard";
16903
16983
 
16904
16984
  // src/components/FileDropzone/FileDropzone.tsx
16905
- var import_icons27 = require("@octaviaflow/icons");
16985
+ var import_icons28 = require("@octaviaflow/icons");
16906
16986
  var import_react88 = require("react");
16907
16987
 
16908
16988
  // src/utils/sanitizeUrl.ts
@@ -16973,7 +17053,7 @@ function sanitizeHref(url) {
16973
17053
 
16974
17054
  // src/components/FileDropzone/FileDropzone.tsx
16975
17055
  var import_jsx_runtime73 = require("react/jsx-runtime");
16976
- var UPLOAD_ICON = /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons27.UploadIcon, { width: 20, height: 20, "aria-hidden": "true" });
17056
+ var UPLOAD_ICON = /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons28.UploadIcon, { width: 20, height: 20, "aria-hidden": "true" });
16977
17057
  var SPIN_ICON = /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
16978
17058
  "circle",
16979
17059
  {
@@ -16986,9 +17066,9 @@ var SPIN_ICON = /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("svg", { width: "1
16986
17066
  strokeLinecap: "round"
16987
17067
  }
16988
17068
  ) });
16989
- var CHECK_ICON = /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons27.CheckmarkIcon, { width: 12, height: 12, "aria-hidden": "true" });
16990
- var ERROR_ICON = /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons27.WarningAltIcon, { width: 12, height: 12, "aria-hidden": "true" });
16991
- var RETRY_ICON = /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons27.RenewIcon, { width: 12, height: 12, "aria-hidden": "true" });
17069
+ var CHECK_ICON = /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons28.CheckmarkIcon, { width: 12, height: 12, "aria-hidden": "true" });
17070
+ var ERROR_ICON = /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons28.WarningAltIcon, { width: 12, height: 12, "aria-hidden": "true" });
17071
+ var RETRY_ICON = /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons28.RenewIcon, { width: 12, height: 12, "aria-hidden": "true" });
16992
17072
  var fmtSize = (size) => {
16993
17073
  if (size < 1024) return `${size} B`;
16994
17074
  const kb = size / 1024;
@@ -16999,12 +17079,12 @@ function iconForFile(file) {
16999
17079
  const type = file.type;
17000
17080
  const name = file.name.toLowerCase();
17001
17081
  if (type.startsWith("image/")) {
17002
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons27.ImageIcon, { width: 16, height: 16, "aria-hidden": "true" });
17082
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons28.ImageIcon, { width: 16, height: 16, "aria-hidden": "true" });
17003
17083
  }
17004
17084
  if (type === "application/pdf" || name.endsWith(".pdf")) {
17005
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons27.DocumentPdfIcon, { width: 16, height: 16, "aria-hidden": "true" });
17085
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons28.DocumentPdfIcon, { width: 16, height: 16, "aria-hidden": "true" });
17006
17086
  }
17007
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons27.DocumentIcon, { width: 16, height: 16, "aria-hidden": "true" });
17087
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons28.DocumentIcon, { width: 16, height: 16, "aria-hidden": "true" });
17008
17088
  }
17009
17089
  var FileDropzone = (0, import_react88.forwardRef)(
17010
17090
  function FileDropzone2({
@@ -17193,7 +17273,7 @@ var FileDropzone = (0, import_react88.forwardRef)(
17193
17273
  }
17194
17274
  },
17195
17275
  children: [
17196
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "ods-file-dropzone__icon", "aria-hidden": "true", children: isOver ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons27.UploadIcon, { width: 22, height: 22, "aria-hidden": "true" }) : icon }),
17276
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "ods-file-dropzone__icon", "aria-hidden": "true", children: isOver ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons28.UploadIcon, { width: 22, height: 22, "aria-hidden": "true" }) : icon }),
17197
17277
  /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "ods-file-dropzone__title", children: isOver ? showInternalList && itemCount > 0 ? "Drop to add more" : "Drop to upload" : title }),
17198
17278
  hint && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { id: `${inputId}-hint`, className: "ods-file-dropzone__hint", children: isOver ? "Release to add files" : hint }),
17199
17279
  !isOver && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "ods-file-dropzone__cta-row", children: [
@@ -17327,7 +17407,7 @@ var FileDropzone = (0, import_react88.forwardRef)(
17327
17407
  className: "ods-file-dropzone__item-btn",
17328
17408
  onClick: () => onRemove(f.id),
17329
17409
  "aria-label": `Remove ${f.file.name}`,
17330
- children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons27.CloseIcon, { width: 12, height: 12, "aria-hidden": "true" })
17410
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_icons28.CloseIcon, { width: 12, height: 12, "aria-hidden": "true" })
17331
17411
  }
17332
17412
  )
17333
17413
  ] })
@@ -17345,7 +17425,7 @@ var FileDropzone = (0, import_react88.forwardRef)(
17345
17425
  FileDropzone.displayName = "FileDropzone";
17346
17426
 
17347
17427
  // src/components/FileBrowser/FileBrowser.tsx
17348
- var import_icons34 = require("@octaviaflow/icons");
17428
+ var import_icons35 = require("@octaviaflow/icons");
17349
17429
  var import_react96 = require("react");
17350
17430
 
17351
17431
  // src/utils/filePath.ts
@@ -17371,7 +17451,7 @@ function baseName(path, sep) {
17371
17451
  }
17372
17452
 
17373
17453
  // src/components/FileList/FileList.tsx
17374
- var import_icons28 = require("@octaviaflow/icons");
17454
+ var import_icons29 = require("@octaviaflow/icons");
17375
17455
  var import_react90 = require("react");
17376
17456
 
17377
17457
  // src/components/Skeleton/Skeleton.tsx
@@ -17509,48 +17589,48 @@ SkeletonGroup.displayName = "SkeletonGroup";
17509
17589
  // src/components/FileList/FileList.tsx
17510
17590
  var import_jsx_runtime75 = require("react/jsx-runtime");
17511
17591
  var EXT_ICON = {
17512
- json: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.JsonIcon, { size: "sm" }),
17513
- csv: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.CsvIcon, { size: "sm" }),
17514
- tsv: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.CsvIcon, { size: "sm" }),
17515
- xml: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.XmlIcon, { size: "sm" }),
17516
- html: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.XmlIcon, { size: "sm" }),
17517
- htm: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.XmlIcon, { size: "sm" }),
17518
- yaml: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.CodeIcon, { size: "sm" }),
17519
- yml: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.CodeIcon, { size: "sm" }),
17520
- js: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.CodeIcon, { size: "sm" }),
17521
- ts: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.CodeIcon, { size: "sm" }),
17522
- sql: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.CodeIcon, { size: "sm" }),
17523
- sh: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.CodeIcon, { size: "sm" }),
17524
- pdf: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.PdfIcon, { size: "sm" }),
17525
- png: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ImageIcon, { size: "sm" }),
17526
- jpg: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ImageIcon, { size: "sm" }),
17527
- jpeg: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ImageIcon, { size: "sm" }),
17528
- gif: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ImageIcon, { size: "sm" }),
17529
- webp: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ImageIcon, { size: "sm" }),
17530
- svg: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ImageIcon, { size: "sm" }),
17531
- bmp: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ImageIcon, { size: "sm" }),
17532
- xls: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.TableIcon, { size: "sm" }),
17533
- xlsx: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.TableIcon, { size: "sm" }),
17534
- zip: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ArchiveIcon, { size: "sm" }),
17535
- gz: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ArchiveIcon, { size: "sm" }),
17536
- tar: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ArchiveIcon, { size: "sm" }),
17537
- rar: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ArchiveIcon, { size: "sm" }),
17538
- "7z": /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ArchiveIcon, { size: "sm" }),
17539
- mp3: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.DocumentAudioIcon, { size: "sm" }),
17540
- wav: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.DocumentAudioIcon, { size: "sm" }),
17541
- mp4: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.VideoIcon, { size: "sm" }),
17542
- mov: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.VideoIcon, { size: "sm" }),
17543
- webm: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.VideoIcon, { size: "sm" })
17592
+ json: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.JsonIcon, { size: "sm" }),
17593
+ csv: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.CsvIcon, { size: "sm" }),
17594
+ tsv: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.CsvIcon, { size: "sm" }),
17595
+ xml: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.XmlIcon, { size: "sm" }),
17596
+ html: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.XmlIcon, { size: "sm" }),
17597
+ htm: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.XmlIcon, { size: "sm" }),
17598
+ yaml: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.CodeIcon, { size: "sm" }),
17599
+ yml: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.CodeIcon, { size: "sm" }),
17600
+ js: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.CodeIcon, { size: "sm" }),
17601
+ ts: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.CodeIcon, { size: "sm" }),
17602
+ sql: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.CodeIcon, { size: "sm" }),
17603
+ sh: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.CodeIcon, { size: "sm" }),
17604
+ pdf: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.PdfIcon, { size: "sm" }),
17605
+ png: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ImageIcon, { size: "sm" }),
17606
+ jpg: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ImageIcon, { size: "sm" }),
17607
+ jpeg: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ImageIcon, { size: "sm" }),
17608
+ gif: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ImageIcon, { size: "sm" }),
17609
+ webp: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ImageIcon, { size: "sm" }),
17610
+ svg: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ImageIcon, { size: "sm" }),
17611
+ bmp: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ImageIcon, { size: "sm" }),
17612
+ xls: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.TableIcon, { size: "sm" }),
17613
+ xlsx: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.TableIcon, { size: "sm" }),
17614
+ zip: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ArchiveIcon, { size: "sm" }),
17615
+ gz: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ArchiveIcon, { size: "sm" }),
17616
+ tar: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ArchiveIcon, { size: "sm" }),
17617
+ rar: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ArchiveIcon, { size: "sm" }),
17618
+ "7z": /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ArchiveIcon, { size: "sm" }),
17619
+ mp3: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.DocumentAudioIcon, { size: "sm" }),
17620
+ wav: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.DocumentAudioIcon, { size: "sm" }),
17621
+ mp4: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.VideoIcon, { size: "sm" }),
17622
+ mov: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.VideoIcon, { size: "sm" }),
17623
+ webm: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.VideoIcon, { size: "sm" })
17544
17624
  };
17545
17625
  function fileIcon(item) {
17546
- if (item.isDirectory) return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.FolderIcon, { size: "sm" });
17626
+ if (item.isDirectory) return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.FolderIcon, { size: "sm" });
17547
17627
  const mt = (item.mimeType || "").toLowerCase();
17548
- if (mt.startsWith("image/")) return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ImageIcon, { size: "sm" });
17549
- if (mt.startsWith("video/")) return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.VideoIcon, { size: "sm" });
17550
- if (mt.startsWith("audio/")) return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.DocumentAudioIcon, { size: "sm" });
17551
- if (mt === "application/pdf") return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.PdfIcon, { size: "sm" });
17628
+ if (mt.startsWith("image/")) return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ImageIcon, { size: "sm" });
17629
+ if (mt.startsWith("video/")) return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.VideoIcon, { size: "sm" });
17630
+ if (mt.startsWith("audio/")) return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.DocumentAudioIcon, { size: "sm" });
17631
+ if (mt === "application/pdf") return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.PdfIcon, { size: "sm" });
17552
17632
  const ext = item.name.split(".").pop()?.toLowerCase() ?? "";
17553
- return EXT_ICON[ext] ?? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.DocumentIcon, { size: "sm" });
17633
+ return EXT_ICON[ext] ?? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.DocumentIcon, { size: "sm" });
17554
17634
  }
17555
17635
  function formatBytes(n) {
17556
17636
  if (n == null || !Number.isFinite(n)) return "\u2014";
@@ -17698,8 +17778,8 @@ function FileList({
17698
17778
  }
17699
17779
  };
17700
17780
  const viewOptions = [
17701
- { value: "list", label: "List", icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.ListIcon, { size: "sm" }) },
17702
- { value: "grid", label: "Grid", icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.GridIcon, { size: "sm" }) }
17781
+ { value: "list", label: "List", icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.ListIcon, { size: "sm" }) },
17782
+ { value: "grid", label: "Grid", icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.GridIcon, { size: "sm" }) }
17703
17783
  ];
17704
17784
  let body;
17705
17785
  if (loading) {
@@ -17714,7 +17794,7 @@ function FileList({
17714
17794
  body = /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "ods-file-list__state", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
17715
17795
  EmptyState,
17716
17796
  {
17717
- icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.FolderIcon, {}),
17797
+ icon: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.FolderIcon, {}),
17718
17798
  title: emptyTitle,
17719
17799
  description: emptyDescription
17720
17800
  }
@@ -17795,7 +17875,7 @@ function FileList({
17795
17875
  );
17796
17876
  }) });
17797
17877
  }
17798
- const sortIndicator = (key) => key === sortKey ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "ods-file-list__sort-caret", "aria-hidden": "true", children: sortDir === "asc" ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.CaretUpIcon, { size: "sm" }) : /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons28.CaretDownIcon, { size: "sm" }) }) : null;
17878
+ const sortIndicator = (key) => key === sortKey ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "ods-file-list__sort-caret", "aria-hidden": "true", children: sortDir === "asc" ? /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.CaretUpIcon, { size: "sm" }) : /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_icons29.CaretDownIcon, { size: "sm" }) }) : null;
17799
17879
  const sortLabel = (key, name) => key === sortKey ? `${name}, sorted ${sortDir === "asc" ? "ascending" : "descending"}` : `Sort by ${name.toLowerCase()}`;
17800
17880
  return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: cn("ods-file-list", className), children: [
17801
17881
  (showViewToggle || view === "list" && !loading && !error && sorted.length > 0) && /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "ods-file-list__header", children: [
@@ -17867,11 +17947,11 @@ function FileList({
17867
17947
  FileList.displayName = "FileList";
17868
17948
 
17869
17949
  // src/components/FileViewer/FileViewer.tsx
17870
- var import_icons32 = require("@octaviaflow/icons");
17950
+ var import_icons33 = require("@octaviaflow/icons");
17871
17951
  var import_react94 = require("react");
17872
17952
 
17873
17953
  // src/components/JsonViewer/JsonViewer.tsx
17874
- var import_icons29 = require("@octaviaflow/icons");
17954
+ var import_icons30 = require("@octaviaflow/icons");
17875
17955
  var import_react91 = require("react");
17876
17956
  var import_jsx_runtime76 = require("react/jsx-runtime");
17877
17957
  var JsonViewer = (0, import_react91.forwardRef)(
@@ -17964,7 +18044,7 @@ function JsonNode({
17964
18044
  e.stopPropagation();
17965
18045
  setOpen((o) => !o);
17966
18046
  },
17967
- children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_icons29.ChevronRightIcon, { "aria-hidden": "true" })
18047
+ children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_icons30.ChevronRightIcon, { "aria-hidden": "true" })
17968
18048
  }
17969
18049
  ),
17970
18050
  renderKey,
@@ -18059,7 +18139,7 @@ function Leaf({
18059
18139
  handleCopy();
18060
18140
  },
18061
18141
  "aria-label": copied ? "Copied" : "Copy value",
18062
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_icons29.CheckmarkIcon, { width: 10, height: 10, "aria-hidden": "true" }) : /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_icons29.CopyIcon, { width: 10, height: 10, "aria-hidden": "true" })
18142
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_icons30.CheckmarkIcon, { width: 10, height: 10, "aria-hidden": "true" }) : /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_icons30.CopyIcon, { width: 10, height: 10, "aria-hidden": "true" })
18063
18143
  }
18064
18144
  )
18065
18145
  ] });
@@ -18153,7 +18233,7 @@ function JsonEditBody({ data, onChange, onValidate }) {
18153
18233
  }
18154
18234
 
18155
18235
  // src/components/XmlViewer/XmlViewer.tsx
18156
- var import_icons30 = require("@octaviaflow/icons");
18236
+ var import_icons31 = require("@octaviaflow/icons");
18157
18237
  var import_fast_xml_parser = require("fast-xml-parser");
18158
18238
  var import_react92 = require("react");
18159
18239
  var import_jsx_runtime77 = require("react/jsx-runtime");
@@ -18466,7 +18546,7 @@ function XmlNodeRow({
18466
18546
  e.stopPropagation();
18467
18547
  setOpen((o) => !o);
18468
18548
  },
18469
- children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_icons30.ChevronRightIcon, { size: "xs" })
18549
+ children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_icons31.ChevronRightIcon, { size: "xs" })
18470
18550
  }
18471
18551
  ),
18472
18552
  /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("span", { className: "ods-xml-viewer__bracket", children: "<" }),
@@ -18499,7 +18579,7 @@ function XmlNodeRow({
18499
18579
  ),
18500
18580
  "aria-label": copied ? "Copied" : `Copy ${node.name} subtree`,
18501
18581
  onClick: onCopy,
18502
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_icons30.CheckmarkIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_icons30.CopyIcon, { size: "xs" })
18582
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_icons31.CheckmarkIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_icons31.CopyIcon, { size: "xs" })
18503
18583
  }
18504
18584
  )
18505
18585
  ]
@@ -18529,7 +18609,7 @@ function XmlNodeRow({
18529
18609
  }
18530
18610
 
18531
18611
  // src/components/YamlViewer/YamlViewer.tsx
18532
- var import_icons31 = require("@octaviaflow/icons");
18612
+ var import_icons32 = require("@octaviaflow/icons");
18533
18613
  var import_react93 = require("react");
18534
18614
  var import_yaml = __toESM(require("yaml"), 1);
18535
18615
  var import_jsx_runtime78 = require("react/jsx-runtime");
@@ -18757,7 +18837,7 @@ var YamlViewer = (0, import_react93.forwardRef)(
18757
18837
  ),
18758
18838
  "aria-label": copied ? "Copied" : "Copy YAML",
18759
18839
  onClick: onCopy,
18760
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_icons31.CheckmarkIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_icons31.CopyIcon, { size: "xs" })
18840
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_icons32.CheckmarkIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_icons32.CopyIcon, { size: "xs" })
18761
18841
  }
18762
18842
  )
18763
18843
  ] })
@@ -18802,7 +18882,7 @@ var YamlViewer = (0, import_react93.forwardRef)(
18802
18882
  onClick: () => toggle(t.index),
18803
18883
  "aria-expanded": !isCollapsed,
18804
18884
  "aria-label": isCollapsed ? "Expand" : "Collapse",
18805
- children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_icons31.ChevronRightIcon, { size: "xs" })
18885
+ children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_icons32.ChevronRightIcon, { size: "xs" })
18806
18886
  }
18807
18887
  ) : /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "ods-yaml-viewer__caret-spacer" }),
18808
18888
  t.kind === "comment" && /* @__PURE__ */ (0, import_jsx_runtime78.jsx)("span", { className: "ods-yaml-viewer__comment", children: t.raw.trim() }),
@@ -18981,15 +19061,15 @@ function detectKind(name, mimeType, override) {
18981
19061
  return "binary";
18982
19062
  }
18983
19063
  var KIND_ICON = {
18984
- json: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons32.JsonIcon, { size: "sm" }),
18985
- csv: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons32.CsvIcon, { size: "sm" }),
18986
- xml: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons32.XmlIcon, { size: "sm" }),
18987
- yaml: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons32.CodeIcon, { size: "sm" }),
18988
- markdown: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons32.DocumentIcon, { size: "sm" }),
18989
- text: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons32.DocumentIcon, { size: "sm" }),
18990
- image: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons32.ImageIcon, { size: "sm" }),
18991
- pdf: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons32.DocumentIcon, { size: "sm" }),
18992
- binary: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons32.DocumentIcon, { size: "sm" })
19064
+ json: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons33.JsonIcon, { size: "sm" }),
19065
+ csv: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons33.CsvIcon, { size: "sm" }),
19066
+ xml: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons33.XmlIcon, { size: "sm" }),
19067
+ yaml: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons33.CodeIcon, { size: "sm" }),
19068
+ markdown: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons33.DocumentIcon, { size: "sm" }),
19069
+ text: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons33.DocumentIcon, { size: "sm" }),
19070
+ image: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons33.ImageIcon, { size: "sm" }),
19071
+ pdf: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons33.DocumentIcon, { size: "sm" }),
19072
+ binary: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons33.DocumentIcon, { size: "sm" })
18993
19073
  };
18994
19074
  function formatBytes2(n) {
18995
19075
  if (n == null || !Number.isFinite(n)) return "";
@@ -19064,7 +19144,7 @@ function FileViewer({
19064
19144
  url,
19065
19145
  onDownload,
19066
19146
  children: [
19067
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons32.DownloadIcon, { size: "sm" }),
19147
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons33.DownloadIcon, { size: "sm" }),
19068
19148
  " Download"
19069
19149
  ]
19070
19150
  }
@@ -19095,11 +19175,11 @@ function DownloadFallback({
19095
19175
  return /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "ods-file-viewer__center", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
19096
19176
  EmptyState,
19097
19177
  {
19098
- icon: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons32.DocumentIcon, {}),
19178
+ icon: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons33.DocumentIcon, {}),
19099
19179
  title: "Preview not available",
19100
19180
  description: `"${name}" can't be previewed here.`,
19101
19181
  action: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(DownloadControl, { className: "ods-file-viewer__fallback-btn", url, onDownload, children: [
19102
- /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons32.DownloadIcon, { size: "sm" }),
19182
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_icons33.DownloadIcon, { size: "sm" }),
19103
19183
  " Download"
19104
19184
  ] })
19105
19185
  }
@@ -19108,7 +19188,7 @@ function DownloadFallback({
19108
19188
  FileViewer.displayName = "FileViewer";
19109
19189
 
19110
19190
  // src/components/TreeView/TreeView.tsx
19111
- var import_icons33 = require("@octaviaflow/icons");
19191
+ var import_icons34 = require("@octaviaflow/icons");
19112
19192
  var import_framer_motion21 = require("framer-motion");
19113
19193
  var import_react95 = require("react");
19114
19194
  var import_jsx_runtime80 = require("react/jsx-runtime");
@@ -19322,7 +19402,7 @@ var TreeView = (0, import_react95.forwardRef)(
19322
19402
  e.stopPropagation();
19323
19403
  if (isBranch && !node.disabled) void toggleExpand(node);
19324
19404
  },
19325
- children: isBranch && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_icons33.ChevronRightIcon, { size: "xs", "aria-hidden": true })
19405
+ children: isBranch && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(import_icons34.ChevronRightIcon, { size: "xs", "aria-hidden": true })
19326
19406
  }
19327
19407
  ),
19328
19408
  (node.icon || node.iconExpanded) && /* @__PURE__ */ (0, import_jsx_runtime80.jsx)("span", { className: "ods-tree__icon", "aria-hidden": "true", children: isExpanded && node.iconExpanded ? node.iconExpanded : node.icon }),
@@ -19539,8 +19619,8 @@ function FileBrowser({
19539
19619
  (it) => ({
19540
19620
  id: it.path,
19541
19621
  label: it.name,
19542
- icon: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons34.FolderIcon, { size: "sm" }),
19543
- iconExpanded: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons34.FolderOpenIcon, { size: "sm" }),
19622
+ icon: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons35.FolderIcon, { size: "sm" }),
19623
+ iconExpanded: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons35.FolderOpenIcon, { size: "sm" }),
19544
19624
  isBranch: true
19545
19625
  }),
19546
19626
  []
@@ -19557,8 +19637,8 @@ function FileBrowser({
19557
19637
  {
19558
19638
  id: rootPath,
19559
19639
  label: rootLabel,
19560
- icon: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons34.FolderIcon, { size: "sm" }),
19561
- iconExpanded: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons34.FolderOpenIcon, { size: "sm" }),
19640
+ icon: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons35.FolderIcon, { size: "sm" }),
19641
+ iconExpanded: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons35.FolderOpenIcon, { size: "sm" }),
19562
19642
  isBranch: true
19563
19643
  }
19564
19644
  ],
@@ -19589,7 +19669,7 @@ function FileBrowser({
19589
19669
  {
19590
19670
  variant: "icon",
19591
19671
  size: "sm",
19592
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons34.FolderParentIcon, { size: "sm" }),
19672
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons35.FolderParentIcon, { size: "sm" }),
19593
19673
  "aria-label": "Up one folder",
19594
19674
  disabled: !parent,
19595
19675
  onClick: () => parent && navigate(parent)
@@ -19622,7 +19702,7 @@ function FileBrowser({
19622
19702
  size: "sm",
19623
19703
  type: "search",
19624
19704
  placeholder: "Search this folder",
19625
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons34.SearchIcon, { size: "sm" }),
19705
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons35.SearchIcon, { size: "sm" }),
19626
19706
  value: query,
19627
19707
  onChange: (e) => setQuery(e.target.value),
19628
19708
  "aria-label": "Search this folder"
@@ -19633,7 +19713,7 @@ function FileBrowser({
19633
19713
  {
19634
19714
  variant: "icon",
19635
19715
  size: "sm",
19636
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons34.RenewIcon, { size: "sm" }),
19716
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_icons35.RenewIcon, { size: "sm" }),
19637
19717
  "aria-label": "Refresh",
19638
19718
  onClick: refresh
19639
19719
  }
@@ -19709,36 +19789,36 @@ function FileBrowser({
19709
19789
  FileBrowser.displayName = "FileBrowser";
19710
19790
 
19711
19791
  // src/components/FilePicker/FilePicker.tsx
19712
- var import_icons35 = require("@octaviaflow/icons");
19792
+ var import_icons36 = require("@octaviaflow/icons");
19713
19793
  var import_react97 = require("react");
19714
19794
  var import_react_dom13 = require("react-dom");
19715
19795
  var import_jsx_runtime82 = require("react/jsx-runtime");
19716
19796
  var EXT_ICON2 = {
19717
- json: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.JsonIcon, { size: "sm" }),
19718
- csv: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.CsvIcon, { size: "sm" }),
19719
- tsv: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.CsvIcon, { size: "sm" }),
19720
- xml: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.XmlIcon, { size: "sm" }),
19721
- html: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.XmlIcon, { size: "sm" }),
19722
- yaml: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.CodeIcon, { size: "sm" }),
19723
- yml: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.CodeIcon, { size: "sm" }),
19724
- js: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.CodeIcon, { size: "sm" }),
19725
- ts: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.CodeIcon, { size: "sm" }),
19726
- sql: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.CodeIcon, { size: "sm" }),
19727
- pdf: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.PdfIcon, { size: "sm" }),
19728
- png: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.ImageIcon, { size: "sm" }),
19729
- jpg: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.ImageIcon, { size: "sm" }),
19730
- jpeg: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.ImageIcon, { size: "sm" }),
19731
- gif: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.ImageIcon, { size: "sm" }),
19732
- webp: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.ImageIcon, { size: "sm" }),
19733
- svg: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.ImageIcon, { size: "sm" })
19797
+ json: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.JsonIcon, { size: "sm" }),
19798
+ csv: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.CsvIcon, { size: "sm" }),
19799
+ tsv: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.CsvIcon, { size: "sm" }),
19800
+ xml: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.XmlIcon, { size: "sm" }),
19801
+ html: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.XmlIcon, { size: "sm" }),
19802
+ yaml: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.CodeIcon, { size: "sm" }),
19803
+ yml: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.CodeIcon, { size: "sm" }),
19804
+ js: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.CodeIcon, { size: "sm" }),
19805
+ ts: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.CodeIcon, { size: "sm" }),
19806
+ sql: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.CodeIcon, { size: "sm" }),
19807
+ pdf: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.PdfIcon, { size: "sm" }),
19808
+ png: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.ImageIcon, { size: "sm" }),
19809
+ jpg: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.ImageIcon, { size: "sm" }),
19810
+ jpeg: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.ImageIcon, { size: "sm" }),
19811
+ gif: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.ImageIcon, { size: "sm" }),
19812
+ webp: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.ImageIcon, { size: "sm" }),
19813
+ svg: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.ImageIcon, { size: "sm" })
19734
19814
  };
19735
19815
  function rowIcon(item) {
19736
- if (item.isDirectory) return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.FolderIcon, { size: "sm" });
19816
+ if (item.isDirectory) return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.FolderIcon, { size: "sm" });
19737
19817
  const mt = (item.mimeType || "").toLowerCase();
19738
- if (mt.startsWith("image/")) return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.ImageIcon, { size: "sm" });
19739
- if (mt === "application/pdf") return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.PdfIcon, { size: "sm" });
19818
+ if (mt.startsWith("image/")) return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.ImageIcon, { size: "sm" });
19819
+ if (mt === "application/pdf") return /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.PdfIcon, { size: "sm" });
19740
19820
  const ext = item.name.split(".").pop()?.toLowerCase() ?? "";
19741
- return EXT_ICON2[ext] ?? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.DocumentIcon, { size: "sm" });
19821
+ return EXT_ICON2[ext] ?? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.DocumentIcon, { size: "sm" });
19742
19822
  }
19743
19823
  function parentDir(path, sep, rootPath) {
19744
19824
  const segs = path.split(sep).filter(Boolean);
@@ -20011,7 +20091,7 @@ function FilePicker({
20011
20091
  "aria-describedby": helperId,
20012
20092
  "aria-label": ariaLabel,
20013
20093
  children: [
20014
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "ods-file-picker__lead", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.FolderIcon, { size: "sm" }) }),
20094
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "ods-file-picker__lead", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.FolderIcon, { size: "sm" }) }),
20015
20095
  /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
20016
20096
  "span",
20017
20097
  {
@@ -20023,7 +20103,7 @@ function FilePicker({
20023
20103
  children: value || placeholder
20024
20104
  }
20025
20105
  ),
20026
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.ChevronDownIcon, { "aria-hidden": "true", className: "ods-file-picker__chev" })
20106
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.ChevronDownIcon, { "aria-hidden": "true", className: "ods-file-picker__chev" })
20027
20107
  ]
20028
20108
  }
20029
20109
  ),
@@ -20059,7 +20139,7 @@ function FilePicker({
20059
20139
  "aria-label": "Up one folder",
20060
20140
  disabled: !parent,
20061
20141
  onClick: () => parent && navigate(parent),
20062
- children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.FolderParentIcon, { size: "sm" })
20142
+ children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.FolderParentIcon, { size: "sm" })
20063
20143
  }
20064
20144
  ),
20065
20145
  /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("nav", { className: "ods-file-picker__crumbs", "aria-label": "Current path", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("ol", { children: crumbs.map((c, i) => {
@@ -20080,7 +20160,7 @@ function FilePicker({
20080
20160
  }
20081
20161
  ),
20082
20162
  !isLast && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
20083
- import_icons35.ChevronRightIcon,
20163
+ import_icons36.ChevronRightIcon,
20084
20164
  {
20085
20165
  size: "sm",
20086
20166
  className: "ods-file-picker__crumb-sep",
@@ -20091,7 +20171,7 @@ function FilePicker({
20091
20171
  }) }) })
20092
20172
  ] }),
20093
20173
  searchable && /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)("div", { className: "ods-file-picker__search", children: [
20094
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.SearchIcon, { size: "sm", className: "ods-file-picker__search-icon", "aria-hidden": "true" }),
20174
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.SearchIcon, { size: "sm", className: "ods-file-picker__search-icon", "aria-hidden": "true" }),
20095
20175
  /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
20096
20176
  "input",
20097
20177
  {
@@ -20125,7 +20205,7 @@ function FilePicker({
20125
20205
  ) }) : items.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("div", { className: "ods-file-picker__state", children: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
20126
20206
  EmptyState,
20127
20207
  {
20128
- icon: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.FolderIcon, {}),
20208
+ icon: /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.FolderIcon, {}),
20129
20209
  title: isSearching ? "No matches" : emptyTitle,
20130
20210
  description: isSearching ? `Nothing under \u201C${baseName(navPath, separator) || rootLabel}\u201D matches \u201C${query.trim()}\u201D.` : void 0
20131
20211
  }
@@ -20155,7 +20235,7 @@ function FilePicker({
20155
20235
  subtitle && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("span", { className: "ods-file-picker__row-path", title: subtitle, children: subtitle })
20156
20236
  ] }),
20157
20237
  it.isDirectory && /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
20158
- import_icons35.ChevronRightIcon,
20238
+ import_icons36.ChevronRightIcon,
20159
20239
  {
20160
20240
  size: "sm",
20161
20241
  className: "ods-file-picker__row-chev",
@@ -20182,7 +20262,7 @@ function FilePicker({
20182
20262
  onClick: () => commit(navPath, { name: baseName(navPath, separator), path: navPath, isDirectory: true }),
20183
20263
  children: [
20184
20264
  "Use this folder",
20185
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons35.ChevronRightIcon, { size: "sm", "aria-hidden": "true" })
20265
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(import_icons36.ChevronRightIcon, { size: "sm", "aria-hidden": "true" })
20186
20266
  ]
20187
20267
  }
20188
20268
  )
@@ -21053,7 +21133,7 @@ function FlowCanvas({
21053
21133
  }
21054
21134
 
21055
21135
  // src/components/FlowDoctor/FlowDoctor.tsx
21056
- var import_icons36 = require("@octaviaflow/icons");
21136
+ var import_icons37 = require("@octaviaflow/icons");
21057
21137
  var import_jsx_runtime86 = require("react/jsx-runtime");
21058
21138
  function flowDoctorTone(issues) {
21059
21139
  if (issues.some((i) => i.severity === "error")) return "error";
@@ -21070,9 +21150,9 @@ function flowDoctorSummary(issues) {
21070
21150
  ].filter(Boolean).join(", ");
21071
21151
  }
21072
21152
  var VERDICT_ICON = {
21073
- clean: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons36.CheckmarkFilledIcon, { size: "md", "aria-hidden": "true" }),
21074
- warning: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons36.WarningFilledIcon, { size: "md", "aria-hidden": "true" }),
21075
- error: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons36.ErrorFilledIcon, { size: "md", "aria-hidden": "true" })
21153
+ clean: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons37.CheckmarkFilledIcon, { size: "md", "aria-hidden": "true" }),
21154
+ warning: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons37.WarningFilledIcon, { size: "md", "aria-hidden": "true" }),
21155
+ error: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons37.ErrorFilledIcon, { size: "md", "aria-hidden": "true" })
21076
21156
  };
21077
21157
  var VERDICT_TITLE = {
21078
21158
  clean: "Flow looks healthy",
@@ -21088,7 +21168,7 @@ function IssueRow({
21088
21168
  issue,
21089
21169
  onIssueClick
21090
21170
  }) {
21091
- const icon = issue.severity === "error" ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons36.ErrorFilledIcon, { size: "sm", "aria-hidden": "true" }) : /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons36.WarningFilledIcon, { size: "sm", "aria-hidden": "true" });
21171
+ const icon = issue.severity === "error" ? /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons37.ErrorFilledIcon, { size: "sm", "aria-hidden": "true" }) : /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons37.WarningFilledIcon, { size: "sm", "aria-hidden": "true" });
21092
21172
  const body = /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(import_jsx_runtime86.Fragment, { children: [
21093
21173
  /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
21094
21174
  "span",
@@ -21105,7 +21185,7 @@ function IssueRow({
21105
21185
  /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__row-msg", children: issue.message }),
21106
21186
  issue.hint && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__row-hint", children: issue.hint })
21107
21187
  ] }),
21108
- onIssueClick && (issue.nodeId || issue.edgeId) && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__row-go", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons36.ArrowRightIcon, { size: "sm", "aria-hidden": "true" }) })
21188
+ onIssueClick && (issue.nodeId || issue.edgeId) && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__row-go", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons37.ArrowRightIcon, { size: "sm", "aria-hidden": "true" }) })
21109
21189
  ] });
21110
21190
  if (onIssueClick) {
21111
21191
  return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("li", { className: "ods-flow-doctor__item", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
@@ -21164,7 +21244,7 @@ function FlowDoctor({
21164
21244
  ...rest,
21165
21245
  children: [
21166
21246
  /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("header", { className: "ods-flow-doctor__head", children: [
21167
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__head-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons36.StethoscopeIcon, { size: "sm", "aria-hidden": "true" }) }),
21247
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__head-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons37.StethoscopeIcon, { size: "sm", "aria-hidden": "true" }) }),
21168
21248
  /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__title", children: title }),
21169
21249
  headerExtra && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__head-extra", children: headerExtra })
21170
21250
  ] }),
@@ -21187,13 +21267,13 @@ function FlowDoctor({
21187
21267
  ] }),
21188
21268
  checks && checks.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("details", { className: "ods-flow-doctor__passed", children: [
21189
21269
  /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("summary", { className: "ods-flow-doctor__passed-summary", children: [
21190
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__passed-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons36.CheckmarkIcon, { size: "sm", "aria-hidden": "true" }) }),
21270
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__passed-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons37.CheckmarkIcon, { size: "sm", "aria-hidden": "true" }) }),
21191
21271
  "Passed checks (",
21192
21272
  checks.length,
21193
21273
  ")"
21194
21274
  ] }),
21195
21275
  /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("ul", { className: "ods-flow-doctor__list ods-flow-doctor__list--passed", children: checks.map((check) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("li", { className: "ods-flow-doctor__item", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("div", { className: "ods-flow-doctor__row ods-flow-doctor__row--passed", children: [
21196
- /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__row-icon ods-flow-doctor__row-icon--passed", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons36.CheckmarkIcon, { size: "sm", "aria-hidden": "true" }) }),
21276
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__row-icon ods-flow-doctor__row-icon--passed", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_icons37.CheckmarkIcon, { size: "sm", "aria-hidden": "true" }) }),
21197
21277
  /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("span", { className: "ods-flow-doctor__row-main", children: [
21198
21278
  /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__row-head", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__row-source", children: check.label }) }),
21199
21279
  check.description && /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { className: "ods-flow-doctor__row-msg", children: check.description })
@@ -21816,7 +21896,7 @@ Switch.displayName = "Switch";
21816
21896
  var import_react109 = require("react");
21817
21897
  var import_react_aria10 = require("react-aria");
21818
21898
  var import_react_dom14 = require("react-dom");
21819
- var import_icons38 = require("@octaviaflow/icons");
21899
+ var import_icons39 = require("@octaviaflow/icons");
21820
21900
 
21821
21901
  // src/hooks/useTextareaCommands.ts
21822
21902
  var import_react106 = require("react");
@@ -22185,7 +22265,7 @@ function useTextareaSelection({
22185
22265
  }
22186
22266
 
22187
22267
  // src/hooks/useTextareaTools.tsx
22188
- var import_icons37 = require("@octaviaflow/icons");
22268
+ var import_icons38 = require("@octaviaflow/icons");
22189
22269
  var import_react108 = require("react");
22190
22270
  var import_jsx_runtime90 = require("react/jsx-runtime");
22191
22271
  function useTextareaTools({
@@ -22323,28 +22403,28 @@ var prependLineTool = (id, prefix, label, icon, title) => ({
22323
22403
  onAction: (h) => h.prependLines(prefix)
22324
22404
  });
22325
22405
  var textareaTools = {
22326
- bold: () => wrapTool("bold", "**", "**", "Bold", /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons37.TextBoldIcon, {}), "Bold (\u2318B)"),
22327
- italic: () => wrapTool("italic", "*", "*", "Italic", /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons37.TextItalicIcon, {}), "Italic (\u2318I)"),
22406
+ bold: () => wrapTool("bold", "**", "**", "Bold", /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons38.TextBoldIcon, {}), "Bold (\u2318B)"),
22407
+ italic: () => wrapTool("italic", "*", "*", "Italic", /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons38.TextItalicIcon, {}), "Italic (\u2318I)"),
22328
22408
  strikethrough: () => wrapTool(
22329
22409
  "strike",
22330
22410
  "~~",
22331
22411
  "~~",
22332
22412
  "Strikethrough",
22333
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons37.TextStrikethroughIcon, {}),
22413
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons38.TextStrikethroughIcon, {}),
22334
22414
  "Strikethrough"
22335
22415
  ),
22336
- code: () => wrapTool("code", "`", "`", "Code", /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons37.CodeIcon, {}), "Inline code"),
22416
+ code: () => wrapTool("code", "`", "`", "Code", /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons38.CodeIcon, {}), "Inline code"),
22337
22417
  codeBlock: () => ({
22338
22418
  id: "code-block",
22339
22419
  label: "Code block",
22340
- icon: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons37.CodeIcon, {}),
22420
+ icon: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons38.CodeIcon, {}),
22341
22421
  title: "Code block",
22342
22422
  onAction: (h) => h.wrap("```\n", "\n```")
22343
22423
  }),
22344
22424
  link: () => ({
22345
22425
  id: "link",
22346
22426
  label: "Link",
22347
- icon: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons37.TextLinkIcon, {}),
22427
+ icon: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons38.TextLinkIcon, {}),
22348
22428
  title: "Insert link",
22349
22429
  onAction: (h) => {
22350
22430
  const sel = h.selection;
@@ -22357,41 +22437,41 @@ var textareaTools = {
22357
22437
  `heading-${level}`,
22358
22438
  `${"#".repeat(level)} `,
22359
22439
  `H${level}`,
22360
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons37.HeadingIcon, {}),
22440
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons38.HeadingIcon, {}),
22361
22441
  `Heading ${level}`
22362
22442
  ),
22363
22443
  bulletList: () => prependLineTool(
22364
22444
  "ul",
22365
22445
  "- ",
22366
22446
  "Bullet list",
22367
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons37.ListBulletedIcon, {}),
22447
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons38.ListBulletedIcon, {}),
22368
22448
  "Bullet list"
22369
22449
  ),
22370
22450
  numberedList: () => prependLineTool(
22371
22451
  "ol",
22372
22452
  "1. ",
22373
22453
  "Numbered list",
22374
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons37.ListNumberedIcon, {}),
22454
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons38.ListNumberedIcon, {}),
22375
22455
  "Numbered list"
22376
22456
  ),
22377
22457
  quote: () => prependLineTool(
22378
22458
  "quote",
22379
22459
  "> ",
22380
22460
  "Quote",
22381
- /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons37.QuotesIcon, {}),
22461
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons38.QuotesIcon, {}),
22382
22462
  "Quote"
22383
22463
  ),
22384
22464
  undo: () => ({
22385
22465
  id: "undo",
22386
22466
  label: "Undo",
22387
- icon: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons37.UndoIcon, {}),
22467
+ icon: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons38.UndoIcon, {}),
22388
22468
  title: "Undo (\u2318Z)",
22389
22469
  onAction: (h) => h.undo()
22390
22470
  }),
22391
22471
  redo: () => ({
22392
22472
  id: "redo",
22393
22473
  label: "Redo",
22394
- icon: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons37.RedoIcon, {}),
22474
+ icon: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_icons38.RedoIcon, {}),
22395
22475
  title: "Redo (\u2318\u21E7Z)",
22396
22476
  onAction: (h) => h.redo()
22397
22477
  }),
@@ -22672,7 +22752,7 @@ var Textarea = (0, import_react109.forwardRef)(
22672
22752
  onClick: () => sel.copy(),
22673
22753
  "aria-label": "Copy selection",
22674
22754
  title: "Copy",
22675
- children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_icons38.CopyIcon, { size: "xs" })
22755
+ children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_icons39.CopyIcon, { size: "xs" })
22676
22756
  }
22677
22757
  ),
22678
22758
  /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
@@ -22683,7 +22763,7 @@ var Textarea = (0, import_react109.forwardRef)(
22683
22763
  onClick: () => sel.cut(),
22684
22764
  "aria-label": "Cut selection",
22685
22765
  title: "Cut",
22686
- children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_icons38.CutIcon, { size: "xs" })
22766
+ children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_icons39.CutIcon, { size: "xs" })
22687
22767
  }
22688
22768
  ),
22689
22769
  selectionActions?.map((a) => /* @__PURE__ */ (0, import_jsx_runtime91.jsxs)(
@@ -22990,7 +23070,7 @@ function FlowSettingsDialog({
22990
23070
  }
22991
23071
 
22992
23072
  // src/components/FlowToolbar/FlowToolbar.tsx
22993
- var import_icons39 = require("@octaviaflow/icons");
23073
+ var import_icons40 = require("@octaviaflow/icons");
22994
23074
  var import_react113 = require("react");
22995
23075
 
22996
23076
  // src/workflow/store/selectors.ts
@@ -23188,40 +23268,40 @@ function FlowToolbarDivider({ className }) {
23188
23268
  }
23189
23269
  var ICON_SIZE = "sm";
23190
23270
  var FlowToolbarIcons = {
23191
- save: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.SaveIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23271
+ save: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.SaveIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23192
23272
  // `*FilledAlt` variants — clean play triangle + filled square with no
23193
23273
  // circle backdrop. The plain `*Filled` variants are pre-wrapped in a
23194
23274
  // round button shape that conflicts with our toolbar button container
23195
23275
  // (reads as a button-in-button).
23196
- run: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.PlayFilledAltIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23197
- stop: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.StopFilledAltIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23198
- lock: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.LockedIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23199
- unlock: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.UnlockedIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23200
- reset: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.ResetIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23201
- undo: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.UndoIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23202
- redo: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.RedoIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23203
- drawerOpen: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.OpenPanelLeftIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23204
- drawerClose: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.OpenPanelRightIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23276
+ run: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.PlayFilledAltIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23277
+ stop: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.StopFilledAltIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23278
+ lock: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.LockedIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23279
+ unlock: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.UnlockedIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23280
+ reset: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.ResetIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23281
+ undo: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.UndoIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23282
+ redo: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.RedoIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23283
+ drawerOpen: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.OpenPanelLeftIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23284
+ drawerClose: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.OpenPanelRightIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23205
23285
  // `SettingsAdjustIcon` (sliders) instead of `SettingsIcon` (12-tooth
23206
23286
  // gear). The gear is unreadable at 16 px — the teeth blur into a
23207
23287
  // blob. The sliders glyph reads cleanly at any size and feels more
23208
23288
  // contemporary for a "view / display settings" affordance.
23209
- settings: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.SettingsAdjustIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23210
- history: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.TimeIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23211
- debug: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.DebugIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23212
- zoomIn: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.ZoomInIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23213
- zoomOut: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.ZoomOutIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23214
- zoomReset: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.RestartIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23215
- fit: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.FitToScreenIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23216
- autoLayout: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.TreeViewIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23289
+ settings: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.SettingsAdjustIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23290
+ history: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.TimeIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23291
+ debug: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.DebugIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23292
+ zoomIn: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.ZoomInIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23293
+ zoomOut: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.ZoomOutIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23294
+ zoomReset: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.RestartIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23295
+ fit: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.FitToScreenIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23296
+ autoLayout: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.TreeViewIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23217
23297
  /** Centre-to-fit — alternate when consumers want the centring glyph
23218
23298
  * rather than the fit-to-screen rectangle. Exposed so power users can
23219
23299
  * swap via `icon={FlowToolbarIcons.center}`. */
23220
- center: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.CenterToFitIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23300
+ center: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.CenterToFitIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23221
23301
  /** Checkmark — short-lived success indicator on the save button. */
23222
- check: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.CheckmarkIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23302
+ check: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.CheckmarkIcon, { size: ICON_SIZE, "aria-hidden": "true" }),
23223
23303
  /** Filled warning — error indicator on the save button. */
23224
- error: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.WarningFilledIcon, { size: ICON_SIZE, "aria-hidden": "true" })
23304
+ error: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.WarningFilledIcon, { size: ICON_SIZE, "aria-hidden": "true" })
23225
23305
  };
23226
23306
  function FlowToolbarSave({
23227
23307
  state,
@@ -23500,7 +23580,7 @@ function FlowToolbarIssues({
23500
23580
  className: cn("ods-flow-toolbar__btn", `ods-flow-toolbar__btn--issues-${tone}`),
23501
23581
  "aria-label": `${label}: ${summary}`,
23502
23582
  children: [
23503
- /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { className: "ods-flow-toolbar__btn-icon", children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.StethoscopeIcon, { size: "sm", "aria-hidden": "true" }) }),
23583
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { className: "ods-flow-toolbar__btn-icon", children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.StethoscopeIcon, { size: "sm", "aria-hidden": "true" }) }),
23504
23584
  count > 0 && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
23505
23585
  "span",
23506
23586
  {
@@ -23550,7 +23630,7 @@ function FlowToolbarStatus({
23550
23630
  if (status === "draft" || status === "paused") {
23551
23631
  items.push({
23552
23632
  label: status === "draft" ? "Activate flow" : "Resume flow",
23553
- icon: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.PlayFilledAltIcon, { size: "sm", "aria-hidden": "true" }),
23633
+ icon: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.PlayFilledAltIcon, { size: "sm", "aria-hidden": "true" }),
23554
23634
  disabled: busy || !canActivate,
23555
23635
  onClick: () => onAction?.(status === "draft" ? "activate" : "resume")
23556
23636
  });
@@ -23564,7 +23644,7 @@ function FlowToolbarStatus({
23564
23644
  if (status === "active") {
23565
23645
  items.push({
23566
23646
  label: "Pause flow",
23567
- icon: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.PauseFilledIcon, { size: "sm", "aria-hidden": "true" }),
23647
+ icon: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.PauseFilledIcon, { size: "sm", "aria-hidden": "true" }),
23568
23648
  disabled: busy,
23569
23649
  onClick: () => onAction?.("pause")
23570
23650
  });
@@ -23572,7 +23652,7 @@ function FlowToolbarStatus({
23572
23652
  if (status === "archived" && showDisable) {
23573
23653
  items.push({
23574
23654
  label: "Restore flow",
23575
- icon: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.ResetIcon, { size: "sm", "aria-hidden": "true" }),
23655
+ icon: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.ResetIcon, { size: "sm", "aria-hidden": "true" }),
23576
23656
  disabled: busy,
23577
23657
  onClick: () => onAction?.("restore")
23578
23658
  });
@@ -23580,7 +23660,7 @@ function FlowToolbarStatus({
23580
23660
  if (showDisable && status !== "archived") {
23581
23661
  items.push({
23582
23662
  label: "Disable flow",
23583
- icon: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.StopFilledAltIcon, { size: "sm", "aria-hidden": "true" }),
23663
+ icon: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.StopFilledAltIcon, { size: "sm", "aria-hidden": "true" }),
23584
23664
  danger: true,
23585
23665
  disabled: busy,
23586
23666
  onClick: () => onAction?.("disable")
@@ -23590,7 +23670,7 @@ function FlowToolbarStatus({
23590
23670
  if (items.length > 0) items.push({ label: "", separator: true });
23591
23671
  items.push({
23592
23672
  label: "Flow settings\u2026",
23593
- icon: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.SettingsAdjustIcon, { size: "sm", "aria-hidden": "true" }),
23673
+ icon: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.SettingsAdjustIcon, { size: "sm", "aria-hidden": "true" }),
23594
23674
  disabled: busy,
23595
23675
  onClick: onOpenSettings
23596
23676
  });
@@ -23608,7 +23688,7 @@ function FlowToolbarStatus({
23608
23688
  trigger: /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(import_jsx_runtime94.Fragment, { children: [
23609
23689
  busy ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(Spinner, { size: 12, label: "Updating flow status" }) : /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { className: "ods-flow-toolbar__status-dot", "aria-hidden": "true" }),
23610
23690
  /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { className: "ods-flow-toolbar__status-label", children: label }),
23611
- /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { className: "ods-flow-toolbar__status-caret", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons39.ChevronDownIcon, { size: "sm", "aria-hidden": "true" }) })
23691
+ /* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { className: "ods-flow-toolbar__status-caret", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_icons40.ChevronDownIcon, { size: "sm", "aria-hidden": "true" }) })
23612
23692
  ] }),
23613
23693
  items
23614
23694
  }
@@ -23746,7 +23826,7 @@ OTPInput.displayName = "OTPInput";
23746
23826
 
23747
23827
  // src/components/PhoneInput/PhoneInput.tsx
23748
23828
  var import_react115 = require("react");
23749
- var import_icons40 = require("@octaviaflow/icons");
23829
+ var import_icons41 = require("@octaviaflow/icons");
23750
23830
  var import_jsx_runtime96 = require("react/jsx-runtime");
23751
23831
  var DEFAULT_COUNTRIES = [
23752
23832
  { code: "US", name: "United States", dialCode: "+1", flag: "\u{1F1FA}\u{1F1F8}" },
@@ -23923,7 +24003,7 @@ var PhoneInput = (0, import_react115.forwardRef)(
23923
24003
  open && "ods-phone__chevron--open"
23924
24004
  ),
23925
24005
  "aria-hidden": "true",
23926
- children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_icons40.ChevronDownIcon, { size: "xs" })
24006
+ children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_icons41.ChevronDownIcon, { size: "xs" })
23927
24007
  }
23928
24008
  )
23929
24009
  ]
@@ -23955,7 +24035,7 @@ var PhoneInput = (0, import_react115.forwardRef)(
23955
24035
  // isn't trapped inside listbox semantics.
23956
24036
  /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "ods-phone__menu", ref: menuRef, children: [
23957
24037
  showSearch && /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "ods-phone__search", children: [
23958
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_icons40.SearchIcon, { size: "xs", "aria-hidden": "true" }),
24038
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_icons41.SearchIcon, { size: "xs", "aria-hidden": "true" }),
23959
24039
  /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
23960
24040
  "input",
23961
24041
  {
@@ -24440,7 +24520,7 @@ function SettingsRow({
24440
24520
  }
24441
24521
 
24442
24522
  // src/components/Stepper/Stepper.tsx
24443
- var import_icons41 = require("@octaviaflow/icons");
24523
+ var import_icons42 = require("@octaviaflow/icons");
24444
24524
  var import_react117 = require("react");
24445
24525
  var import_jsx_runtime99 = require("react/jsx-runtime");
24446
24526
  function deriveStatus(step, index, active) {
@@ -24529,7 +24609,7 @@ var Stepper = (0, import_react117.forwardRef)(
24529
24609
  const status = deriveStatus(step, i, activeIndex);
24530
24610
  const isLast = i === steps.length - 1;
24531
24611
  const segmentCompleted = showProgressTrail && i < activeIndex && status !== "error";
24532
- const indicatorContent = step.indicator ?? (status === "complete" ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_icons41.CheckmarkIcon, { size: "sm", "aria-hidden": true }) : status === "error" ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_icons41.ErrorIcon, { size: "sm", "aria-hidden": true }) : /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("span", { className: "ods-stepper__indicator-num", children: i + 1 }));
24612
+ const indicatorContent = step.indicator ?? (status === "complete" ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_icons42.CheckmarkIcon, { size: "sm", "aria-hidden": true }) : status === "error" ? /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_icons42.ErrorIcon, { size: "sm", "aria-hidden": true }) : /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("span", { className: "ods-stepper__indicator-num", children: i + 1 }));
24533
24613
  const labelText = /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)("span", { className: "ods-stepper__label-text", children: [
24534
24614
  /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("span", { className: "ods-stepper__label-title", children: step.label }),
24535
24615
  step.optional && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)("span", { className: "ods-stepper__label-optional", children: "Optional" }),
@@ -26612,7 +26692,7 @@ var IntegrationCard = (0, import_react126.forwardRef)(function IntegrationCard2(
26612
26692
  IntegrationCard.displayName = "IntegrationCard";
26613
26693
 
26614
26694
  // src/components/KanbanCard/KanbanCard.tsx
26615
- var import_icons42 = require("@octaviaflow/icons");
26695
+ var import_icons43 = require("@octaviaflow/icons");
26616
26696
  var import_react127 = require("react");
26617
26697
  var import_jsx_runtime109 = require("react/jsx-runtime");
26618
26698
  function isAssigneeObject(v) {
@@ -26683,7 +26763,7 @@ var KanbanCard = (0, import_react127.forwardRef)(function KanbanCard2({
26683
26763
  e.stopPropagation();
26684
26764
  onMore(e);
26685
26765
  },
26686
- children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_icons42.OverflowMenuHorizontalIcon, { size: "xs" })
26766
+ children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_icons43.OverflowMenuHorizontalIcon, { size: "xs" })
26687
26767
  }
26688
26768
  )
26689
26769
  ] }),
@@ -26691,11 +26771,11 @@ var KanbanCard = (0, import_react127.forwardRef)(function KanbanCard2({
26691
26771
  (date || typeof comments === "number" || assignee) && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)("div", { className: "ods-kanban-card__footer", children: [
26692
26772
  /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)("div", { className: "ods-kanban-card__meta", children: [
26693
26773
  date && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)("span", { className: "ods-kanban-card__date", children: [
26694
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_icons42.CalendarIcon, { size: "xs" }),
26774
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_icons43.CalendarIcon, { size: "xs" }),
26695
26775
  date
26696
26776
  ] }),
26697
26777
  typeof comments === "number" && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)("span", { className: "ods-kanban-card__comments", children: [
26698
- /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_icons42.ChatIcon, { size: "xs" }),
26778
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_icons43.ChatIcon, { size: "xs" }),
26699
26779
  comments
26700
26780
  ] })
26701
26781
  ] }),
@@ -27399,12 +27479,12 @@ var LinkButton = (0, import_react130.forwardRef)(
27399
27479
  LinkButton.displayName = "LinkButton";
27400
27480
 
27401
27481
  // src/components/MessageBlockBuilder/MessageBlockBuilder.tsx
27402
- var import_icons46 = require("@octaviaflow/icons");
27482
+ var import_icons47 = require("@octaviaflow/icons");
27403
27483
  var import_react135 = require("react");
27404
27484
 
27405
27485
  // src/components/Sortable/Sortable.tsx
27406
27486
  var import_react131 = require("react");
27407
- var import_icons43 = require("@octaviaflow/icons");
27487
+ var import_icons44 = require("@octaviaflow/icons");
27408
27488
  var import_jsx_runtime113 = require("react/jsx-runtime");
27409
27489
  var DT_TYPE = "application/x-ods-sortable";
27410
27490
  function Sortable({
@@ -27680,7 +27760,7 @@ var DragHandle = (0, import_react131.forwardRef)(
27680
27760
  className: cn("ods-sortable-handle", className),
27681
27761
  style,
27682
27762
  ...dragProps,
27683
- children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(import_icons43.DraggableIcon, { size: "xs" })
27763
+ children: /* @__PURE__ */ (0, import_jsx_runtime113.jsx)(import_icons44.DraggableIcon, { size: "xs" })
27684
27764
  }
27685
27765
  );
27686
27766
  }
@@ -27688,7 +27768,7 @@ var DragHandle = (0, import_react131.forwardRef)(
27688
27768
  DragHandle.displayName = "DragHandle";
27689
27769
 
27690
27770
  // src/components/MessageBlockBuilder/BlockFieldsEditor.tsx
27691
- var import_icons44 = require("@octaviaflow/icons");
27771
+ var import_icons45 = require("@octaviaflow/icons");
27692
27772
  var import_react132 = require("react");
27693
27773
 
27694
27774
  // src/components/MessageBlockBuilder/internal.ts
@@ -27955,7 +28035,7 @@ function ItemsEditor({ field, items, onChange, scopeId, tokenRegistry }) {
27955
28035
  {
27956
28036
  variant: "ghost",
27957
28037
  size: "sm",
27958
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(import_icons44.AddIcon, { size: "xs" }),
28038
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(import_icons45.AddIcon, { size: "xs" }),
27959
28039
  disabled: atMax,
27960
28040
  onClick: () => onChange([...items, JSON.parse(JSON.stringify(field.itemDefaults))]),
27961
28041
  children: [
@@ -27990,7 +28070,7 @@ function ItemsEditor({ field, items, onChange, scopeId, tokenRegistry }) {
27990
28070
  "aria-label": `Move ${field.itemLabel} ${index + 1} up`,
27991
28071
  disabled: index === 0,
27992
28072
  onClick: () => move(index, -1),
27993
- children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(import_icons44.ArrowUpIcon, { size: "xs", "aria-hidden": "true" })
28073
+ children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(import_icons45.ArrowUpIcon, { size: "xs", "aria-hidden": "true" })
27994
28074
  }
27995
28075
  ) }),
27996
28076
  /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Tooltip, { content: `Move ${field.itemLabel.toLowerCase()} down`, children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
@@ -28001,7 +28081,7 @@ function ItemsEditor({ field, items, onChange, scopeId, tokenRegistry }) {
28001
28081
  "aria-label": `Move ${field.itemLabel} ${index + 1} down`,
28002
28082
  disabled: index === items.length - 1,
28003
28083
  onClick: () => move(index, 1),
28004
- children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(import_icons44.ArrowDownIcon, { size: "xs", "aria-hidden": "true" })
28084
+ children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(import_icons45.ArrowDownIcon, { size: "xs", "aria-hidden": "true" })
28005
28085
  }
28006
28086
  ) }),
28007
28087
  /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(Tooltip, { content: `Remove ${field.itemLabel.toLowerCase()}`, children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(
@@ -28012,7 +28092,7 @@ function ItemsEditor({ field, items, onChange, scopeId, tokenRegistry }) {
28012
28092
  "aria-label": `Remove ${field.itemLabel} ${index + 1}`,
28013
28093
  disabled: atMin,
28014
28094
  onClick: () => onChange(items.filter((_, i) => i !== index)),
28015
- children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(import_icons44.TrashCanIcon, { size: "xs", "aria-hidden": "true" })
28095
+ children: /* @__PURE__ */ (0, import_jsx_runtime114.jsx)(import_icons45.TrashCanIcon, { size: "xs", "aria-hidden": "true" })
28016
28096
  }
28017
28097
  ) })
28018
28098
  ] })
@@ -30617,7 +30697,7 @@ var messagePlatformAdapters = {
30617
30697
  };
30618
30698
 
30619
30699
  // src/components/MessageBlockBuilder/TokenPanel.tsx
30620
- var import_icons45 = require("@octaviaflow/icons");
30700
+ var import_icons46 = require("@octaviaflow/icons");
30621
30701
  var import_react134 = require("react");
30622
30702
  var import_jsx_runtime117 = require("react/jsx-runtime");
30623
30703
  function TokenPanel({
@@ -30658,7 +30738,7 @@ function TokenPanel({
30658
30738
  className: "ods-message-block-builder__tokens-close",
30659
30739
  "aria-label": "Close data references",
30660
30740
  onClick: onClose,
30661
- children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_icons45.CloseIcon, { size: "xs", "aria-hidden": "true" })
30741
+ children: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_icons46.CloseIcon, { size: "xs", "aria-hidden": "true" })
30662
30742
  }
30663
30743
  )
30664
30744
  ] }),
@@ -31056,12 +31136,12 @@ function MessageBlockBuilder({
31056
31136
  setPaletteDropIndex(null);
31057
31137
  },
31058
31138
  children: [
31059
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("span", { className: `${CLS2}__palette-item-icon`, children: def.icon ?? /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons46.AddIcon, { size: "xs" }) }),
31139
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("span", { className: `${CLS2}__palette-item-icon`, children: def.icon ?? /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons47.AddIcon, { size: "xs" }) }),
31060
31140
  /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("span", { className: `${CLS2}__palette-item-text`, children: [
31061
31141
  /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("span", { className: `${CLS2}__palette-item-label`, children: def.label }),
31062
31142
  def.description && /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("span", { className: `${CLS2}__palette-item-desc`, children: def.description })
31063
31143
  ] }),
31064
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons46.AddIcon, { size: "xs", "aria-hidden": "true", className: `${CLS2}__palette-item-add` })
31144
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons47.AddIcon, { size: "xs", "aria-hidden": "true", className: `${CLS2}__palette-item-add` })
31065
31145
  ]
31066
31146
  },
31067
31147
  def.kind
@@ -31078,7 +31158,7 @@ function MessageBlockBuilder({
31078
31158
  disabled: boundRef !== null,
31079
31159
  options: [
31080
31160
  { value: "form", label: "Form" },
31081
- { value: "json", label: "JSON", icon: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons46.CodeIcon, { size: "xs" }) }
31161
+ { value: "json", label: "JSON", icon: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons47.CodeIcon, { size: "xs" }) }
31082
31162
  ],
31083
31163
  value: draft.mode,
31084
31164
  onChange: switchMode
@@ -31091,7 +31171,7 @@ function MessageBlockBuilder({
31091
31171
  variant: "secondary",
31092
31172
  size: "sm",
31093
31173
  pressed: tokensOpen,
31094
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons46.DataConnectedIcon, { size: "xs" }),
31174
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons47.DataConnectedIcon, { size: "xs" }),
31095
31175
  onClick: () => setTokensOpen((prev) => !prev),
31096
31176
  children: "Data refs"
31097
31177
  }
@@ -31140,7 +31220,7 @@ function MessageBlockBuilder({
31140
31220
  }
31141
31221
  ),
31142
31222
  boundRef !== null ? /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { className: `${CLS2}__refbound`, children: [
31143
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("span", { className: `${CLS2}__refbound-icon`, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons46.DataConnectedIcon, { "aria-hidden": "true" }) }),
31223
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("span", { className: `${CLS2}__refbound-icon`, children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons47.DataConnectedIcon, { "aria-hidden": "true" }) }),
31144
31224
  /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { className: `${CLS2}__refbound-body`, children: [
31145
31225
  /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("p", { className: `${CLS2}__refbound-title`, children: "Entire message supplied by a data ref" }),
31146
31226
  /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("span", { className: `${CLS2}__pill`, title: boundRef, children: resolveTokenLabel?.(boundRef) ?? compactTokenLabel(boundRef) }),
@@ -31247,7 +31327,7 @@ function MessageBlockBuilder({
31247
31327
  next.splice(index + 1, 0, cloneBlock(block));
31248
31328
  setBlocks(next);
31249
31329
  },
31250
- children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons46.CopyIcon, { size: "xs", "aria-hidden": "true" })
31330
+ children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons47.CopyIcon, { size: "xs", "aria-hidden": "true" })
31251
31331
  }
31252
31332
  ) }),
31253
31333
  /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(Tooltip, { content: "Remove block", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(
@@ -31257,7 +31337,7 @@ function MessageBlockBuilder({
31257
31337
  size: "sm",
31258
31338
  "aria-label": `Remove ${def?.label ?? block.kind} block`,
31259
31339
  onClick: () => setBlocks(draft.blocks.filter((b) => b.id !== block.id)),
31260
- children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons46.TrashCanIcon, { size: "xs", "aria-hidden": "true" })
31340
+ children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_icons47.TrashCanIcon, { size: "xs", "aria-hidden": "true" })
31261
31341
  }
31262
31342
  ) })
31263
31343
  ] })
@@ -31352,7 +31432,7 @@ function MessageBlockBuilder({
31352
31432
  MessageBlockBuilder.displayName = "MessageBlockBuilder";
31353
31433
 
31354
31434
  // src/components/MetricCard/MetricCard.tsx
31355
- var import_icons47 = require("@octaviaflow/icons");
31435
+ var import_icons48 = require("@octaviaflow/icons");
31356
31436
  var import_react138 = require("react");
31357
31437
 
31358
31438
  // src/components/CountUp/CountUp.tsx
@@ -31856,7 +31936,7 @@ var MetricCard = (0, import_react138.forwardRef)(
31856
31936
  const trend = delta.trend ?? "neutral";
31857
31937
  const direction = delta.direction ?? "positive";
31858
31938
  const tone = resolveDeltaTone(trend, direction);
31859
- const TrendIcon = trend === "up" ? import_icons47.ArrowUpIcon : trend === "down" ? import_icons47.ArrowDownIcon : import_icons47.SubtractIcon;
31939
+ const TrendIcon = trend === "up" ? import_icons48.ArrowUpIcon : trend === "down" ? import_icons48.ArrowDownIcon : import_icons48.SubtractIcon;
31860
31940
  const trendLabel = trend === "up" ? "Up" : trend === "down" ? "Down" : "No change";
31861
31941
  return /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)(
31862
31942
  "div",
@@ -31982,7 +32062,7 @@ MetricCard.displayName = "MetricCard";
31982
32062
  var import_framer_motion28 = require("framer-motion");
31983
32063
  var import_react139 = require("react");
31984
32064
  var import_react_dom16 = require("react-dom");
31985
- var import_icons48 = require("@octaviaflow/icons");
32065
+ var import_icons49 = require("@octaviaflow/icons");
31986
32066
  var import_jsx_runtime122 = require("react/jsx-runtime");
31987
32067
  var RESERVED_TAIL_PX = 64;
31988
32068
  var TAGS_GAP = 6;
@@ -32301,7 +32381,7 @@ var MultiSelect = (0, import_react139.forwardRef)(
32301
32381
  removeValue(val);
32302
32382
  },
32303
32383
  "aria-label": `Remove ${fullLabel}`,
32304
- children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_icons48.CloseIcon, {})
32384
+ children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_icons49.CloseIcon, {})
32305
32385
  }
32306
32386
  )
32307
32387
  ] })
@@ -32330,7 +32410,7 @@ var MultiSelect = (0, import_react139.forwardRef)(
32330
32410
  open && "ods-multiselect__chevron--open"
32331
32411
  ),
32332
32412
  "aria-hidden": "true",
32333
- children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_icons48.ChevronDownIcon, {})
32413
+ children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_icons49.ChevronDownIcon, {})
32334
32414
  }
32335
32415
  ),
32336
32416
  selectedValues.length > 0 && !disabled && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
@@ -32354,6 +32434,7 @@ var MultiSelect = (0, import_react139.forwardRef)(
32354
32434
  import_framer_motion28.motion.div,
32355
32435
  {
32356
32436
  ref: dropdownRef,
32437
+ "data-ods-floating": "",
32357
32438
  className: "ods-multiselect__dropdown",
32358
32439
  style: {
32359
32440
  position: "fixed",
@@ -32367,7 +32448,7 @@ var MultiSelect = (0, import_react139.forwardRef)(
32367
32448
  transition: { duration: 0.15, ease: "easeOut" },
32368
32449
  children: [
32369
32450
  showSearch && /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)("div", { className: "ods-multiselect__search", children: [
32370
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_icons48.SearchIcon, { "aria-hidden": "true" }),
32451
+ /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_icons49.SearchIcon, { "aria-hidden": "true" }),
32371
32452
  /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
32372
32453
  "input",
32373
32454
  {
@@ -32528,7 +32609,7 @@ MultiSelect.displayName = "MultiSelect";
32528
32609
 
32529
32610
  // src/components/NumberInput/NumberInput.tsx
32530
32611
  var import_react140 = require("react");
32531
- var import_icons49 = require("@octaviaflow/icons");
32612
+ var import_icons50 = require("@octaviaflow/icons");
32532
32613
  var import_jsx_runtime123 = require("react/jsx-runtime");
32533
32614
  var NumberInput = (0, import_react140.forwardRef)(
32534
32615
  function NumberInput2({
@@ -32608,7 +32689,7 @@ var NumberInput = (0, import_react140.forwardRef)(
32608
32689
  disabled: disabled || typeof min === "number" && value <= min,
32609
32690
  "aria-label": "Decrease",
32610
32691
  tabIndex: -1,
32611
- children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_icons49.SubtractIcon, {})
32692
+ children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_icons50.SubtractIcon, {})
32612
32693
  }
32613
32694
  ),
32614
32695
  prefix && /* @__PURE__ */ (0, import_jsx_runtime123.jsx)("span", { className: "ods-num__prefix", "aria-hidden": "true", children: prefix }),
@@ -32642,7 +32723,7 @@ var NumberInput = (0, import_react140.forwardRef)(
32642
32723
  disabled: disabled || typeof max === "number" && value >= max,
32643
32724
  "aria-label": "Increase",
32644
32725
  tabIndex: -1,
32645
- children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_icons49.AddIcon, {})
32726
+ children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_icons50.AddIcon, {})
32646
32727
  }
32647
32728
  )
32648
32729
  ] }),
@@ -32707,7 +32788,7 @@ function PageHeader({
32707
32788
  }
32708
32789
 
32709
32790
  // src/components/Pagination/Pagination.tsx
32710
- var import_icons50 = require("@octaviaflow/icons");
32791
+ var import_icons51 = require("@octaviaflow/icons");
32711
32792
  var import_react141 = require("react");
32712
32793
  var import_jsx_runtime125 = require("react/jsx-runtime");
32713
32794
  function buildPageRange(totalPages, current, siblingCount, boundaryCount) {
@@ -32845,7 +32926,7 @@ var Pagination = (0, import_react141.forwardRef)(
32845
32926
  "aria-label": "First page",
32846
32927
  disabled: disabled || isFirst,
32847
32928
  onClick: handlePageBtn(1),
32848
- children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons50.PageFirstIcon, { size: "sm", "aria-hidden": true })
32929
+ children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons51.PageFirstIcon, { size: "sm", "aria-hidden": true })
32849
32930
  }
32850
32931
  ),
32851
32932
  showPrevNext && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
@@ -32856,7 +32937,7 @@ var Pagination = (0, import_react141.forwardRef)(
32856
32937
  "aria-label": "Previous page",
32857
32938
  disabled: disabled || isFirst,
32858
32939
  onClick: handlePageBtn(currentPage - 1),
32859
- children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons50.ChevronLeftIcon, { size: "sm", "aria-hidden": true })
32940
+ children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons51.ChevronLeftIcon, { size: "sm", "aria-hidden": true })
32860
32941
  }
32861
32942
  ),
32862
32943
  compact ? /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(
@@ -32909,7 +32990,7 @@ var Pagination = (0, import_react141.forwardRef)(
32909
32990
  "aria-label": "Next page",
32910
32991
  disabled: disabled || isLast,
32911
32992
  onClick: handlePageBtn(currentPage + 1),
32912
- children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons50.ChevronRightIcon, { size: "sm", "aria-hidden": true })
32993
+ children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons51.ChevronRightIcon, { size: "sm", "aria-hidden": true })
32913
32994
  }
32914
32995
  ),
32915
32996
  showFirstLast && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
@@ -32920,7 +33001,7 @@ var Pagination = (0, import_react141.forwardRef)(
32920
33001
  "aria-label": "Last page",
32921
33002
  disabled: disabled || isLast,
32922
33003
  onClick: handlePageBtn(totalPages),
32923
- children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons50.PageLastIcon, { size: "sm", "aria-hidden": true })
33004
+ children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons51.PageLastIcon, { size: "sm", "aria-hidden": true })
32924
33005
  }
32925
33006
  )
32926
33007
  ] }),
@@ -32988,7 +33069,7 @@ var Pagination = (0, import_react141.forwardRef)(
32988
33069
  Pagination.displayName = "Pagination";
32989
33070
 
32990
33071
  // src/components/PipelineCard/PipelineCard.tsx
32991
- var import_icons51 = require("@octaviaflow/icons");
33072
+ var import_icons52 = require("@octaviaflow/icons");
32992
33073
  var import_framer_motion29 = require("framer-motion");
32993
33074
  var import_react142 = require("react");
32994
33075
  var import_jsx_runtime126 = require("react/jsx-runtime");
@@ -33287,7 +33368,7 @@ var PipelineCard = (0, import_react142.forwardRef)(
33287
33368
  triggerClassName: "ods-pipeline-card__action-btn ods-pipeline-card__action-btn--icon",
33288
33369
  align: overflowAlign,
33289
33370
  "aria-label": overflowLabel,
33290
- trigger: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)("span", { "aria-hidden": "true", children: overflowIcon ?? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons51.OverflowMenuHorizontalIcon, { size: "sm" }) }),
33371
+ trigger: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)("span", { "aria-hidden": "true", children: overflowIcon ?? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons52.OverflowMenuHorizontalIcon, { size: "sm" }) }),
33291
33372
  items: overflowItems
33292
33373
  }
33293
33374
  ) : onOverflow && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
@@ -33300,7 +33381,7 @@ var PipelineCard = (0, import_react142.forwardRef)(
33300
33381
  stop(e);
33301
33382
  onOverflow(e);
33302
33383
  },
33303
- children: overflowIcon ?? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons51.OverflowMenuHorizontalIcon, { size: "sm", "aria-hidden": true })
33384
+ children: overflowIcon ?? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons52.OverflowMenuHorizontalIcon, { size: "sm", "aria-hidden": true })
33304
33385
  }
33305
33386
  )
33306
33387
  ]
@@ -33379,7 +33460,7 @@ var PipelineCard = (0, import_react142.forwardRef)(
33379
33460
  PipelineCard.displayName = "PipelineCard";
33380
33461
 
33381
33462
  // src/components/PlanCard/PlanCard.tsx
33382
- var import_icons52 = require("@octaviaflow/icons");
33463
+ var import_icons53 = require("@octaviaflow/icons");
33383
33464
  var import_react144 = require("react");
33384
33465
 
33385
33466
  // src/components/PlanPicker/context.ts
@@ -33455,7 +33536,7 @@ var PlanCard = (0, import_react144.forwardRef)(
33455
33536
  selected && "ods-plan-card__check--on"
33456
33537
  ),
33457
33538
  "aria-hidden": "true",
33458
- children: selected && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons52.CheckmarkIcon, { size: "xs" })
33539
+ children: selected && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons53.CheckmarkIcon, { size: "xs" })
33459
33540
  }
33460
33541
  )
33461
33542
  ] })
@@ -33487,7 +33568,7 @@ var PlanCard = (0, import_react144.forwardRef)(
33487
33568
  {
33488
33569
  className: "ods-plan-card__feature-icon",
33489
33570
  "aria-hidden": "true",
33490
- children: customIcon ?? (included ? /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons52.CheckmarkIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons52.CloseIcon, { size: "xs" }))
33571
+ children: customIcon ?? (included ? /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons53.CheckmarkIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons53.CloseIcon, { size: "xs" }))
33491
33572
  }
33492
33573
  ),
33493
33574
  /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("span", { className: "ods-plan-card__feature-text", children: text })
@@ -33700,7 +33781,7 @@ function Popover({
33700
33781
  }
33701
33782
 
33702
33783
  // src/components/PricingCard/PricingCard.tsx
33703
- var import_icons53 = require("@octaviaflow/icons");
33784
+ var import_icons54 = require("@octaviaflow/icons");
33704
33785
  var import_react147 = require("react");
33705
33786
  var import_jsx_runtime130 = require("react/jsx-runtime");
33706
33787
  function isStructuredFeature2(f) {
@@ -33789,7 +33870,7 @@ var PricingCard = (0, import_react147.forwardRef)(
33789
33870
  included ? "ods-pricing__feature-icon--included" : "ods-pricing__feature-icon--excluded"
33790
33871
  ),
33791
33872
  "aria-hidden": "true",
33792
- children: customIcon ?? (included ? /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_icons53.CheckmarkIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_icons53.CloseIcon, { size: "xs" }))
33873
+ children: customIcon ?? (included ? /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_icons54.CheckmarkIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_icons54.CloseIcon, { size: "xs" }))
33793
33874
  }
33794
33875
  ),
33795
33876
  /* @__PURE__ */ (0, import_jsx_runtime130.jsx)("span", { className: "ods-pricing__feature-text", children: text })
@@ -33807,7 +33888,7 @@ var PricingCard = (0, import_react147.forwardRef)(
33807
33888
  PricingCard.displayName = "PricingCard";
33808
33889
 
33809
33890
  // src/components/ProductCard/ProductCard.tsx
33810
- var import_icons54 = require("@octaviaflow/icons");
33891
+ var import_icons55 = require("@octaviaflow/icons");
33811
33892
  var import_react148 = require("react");
33812
33893
  var import_jsx_runtime131 = require("react/jsx-runtime");
33813
33894
  function Stars({ value, max = 5, count }) {
@@ -33819,7 +33900,7 @@ function Stars({ value, max = 5, count }) {
33819
33900
  children: [
33820
33901
  /* @__PURE__ */ (0, import_jsx_runtime131.jsx)("span", { className: "ods-product-card__stars", "aria-hidden": "true", children: Array.from({ length: max }, (_, i) => {
33821
33902
  const filled = i < Math.round(value);
33822
- return filled ? /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_icons54.StarFilledIcon, { size: "xs" }, i) : /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_icons54.StarIcon, { size: "xs" }, i);
33903
+ return filled ? /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_icons55.StarFilledIcon, { size: "xs" }, i) : /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_icons55.StarIcon, { size: "xs" }, i);
33823
33904
  }) }),
33824
33905
  /* @__PURE__ */ (0, import_jsx_runtime131.jsx)("span", { className: "ods-product-card__rating-value", children: value.toFixed(1) }),
33825
33906
  count !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime131.jsxs)("span", { className: "ods-product-card__rating-count", children: [
@@ -34038,7 +34119,7 @@ ProgressRing.displayName = "ProgressRing";
34038
34119
 
34039
34120
  // src/components/PromptInput/PromptInput.tsx
34040
34121
  var import_react150 = require("react");
34041
- var import_icons55 = require("@octaviaflow/icons");
34122
+ var import_icons56 = require("@octaviaflow/icons");
34042
34123
  var import_jsx_runtime133 = require("react/jsx-runtime");
34043
34124
  var PromptInput = (0, import_react150.forwardRef)(
34044
34125
  function PromptInput2({
@@ -34316,7 +34397,7 @@ var PromptInput = (0, import_react150.forwardRef)(
34316
34397
  }
34317
34398
  ),
34318
34399
  isDragOver && /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: "ods-prompt-input__drop-overlay", "aria-hidden": "true", children: [
34319
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons55.CloudUploadIcon, { size: "sm" }),
34400
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons56.CloudUploadIcon, { size: "sm" }),
34320
34401
  /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("span", { children: dropOverlayLabel })
34321
34402
  ] }),
34322
34403
  attachments.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { className: "ods-prompt-input__attachments", children: attachments.map((a) => {
@@ -34339,7 +34420,7 @@ var PromptInput = (0, import_react150.forwardRef)(
34339
34420
  alt: "",
34340
34421
  className: "ods-prompt-input__chip-thumb"
34341
34422
  }
34342
- ) : /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons55.AttachmentIcon, { size: "xs" })
34423
+ ) : /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons56.AttachmentIcon, { size: "xs" })
34343
34424
  }
34344
34425
  ),
34345
34426
  /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("span", { className: "ods-prompt-input__chip-label", children: a.name }),
@@ -34351,7 +34432,7 @@ var PromptInput = (0, import_react150.forwardRef)(
34351
34432
  className: "ods-prompt-input__chip-remove",
34352
34433
  onClick: () => onRemoveAttachment(a.id),
34353
34434
  "aria-label": `Remove ${a.name}`,
34354
- children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons55.CloseIcon, { size: "xs" })
34435
+ children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons56.CloseIcon, { size: "xs" })
34355
34436
  }
34356
34437
  )
34357
34438
  ]
@@ -34450,7 +34531,7 @@ var PromptInput = (0, import_react150.forwardRef)(
34450
34531
  onClick: onStop,
34451
34532
  "aria-label": "Stop generating",
34452
34533
  children: [
34453
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons55.StopFilledIcon, { size: "xs", tone: "inverse" }),
34534
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons56.StopFilledIcon, { size: "xs", tone: "inverse" }),
34454
34535
  /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("span", { children: "Stop" })
34455
34536
  ]
34456
34537
  }
@@ -34466,7 +34547,7 @@ var PromptInput = (0, import_react150.forwardRef)(
34466
34547
  disabled: !canSubmit,
34467
34548
  "aria-label": "Send",
34468
34549
  children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
34469
- import_icons55.SendAltIcon,
34550
+ import_icons56.SendAltIcon,
34470
34551
  {
34471
34552
  size: "xs",
34472
34553
  tone: canSubmit ? "inverse" : "muted"
@@ -34874,7 +34955,7 @@ RangeSlider.displayName = "RangeSlider";
34874
34955
 
34875
34956
  // src/components/Rating/Rating.tsx
34876
34957
  var import_react155 = require("react");
34877
- var import_icons56 = require("@octaviaflow/icons");
34958
+ var import_icons57 = require("@octaviaflow/icons");
34878
34959
  var import_jsx_runtime138 = require("react/jsx-runtime");
34879
34960
  var Rating = (0, import_react155.forwardRef)(function Rating2({
34880
34961
  value,
@@ -34895,9 +34976,9 @@ var Rating = (0, import_react155.forwardRef)(function Rating2({
34895
34976
  const [hover, setHover] = (0, import_react155.useState)(null);
34896
34977
  const display = hover ?? value;
34897
34978
  const interactive = !readOnly && !disabled;
34898
- const Empty = icon === "heart" ? import_icons56.FavoriteIcon : import_icons56.StarIcon;
34899
- const Half = icon === "heart" ? import_icons56.FavoriteHalfIcon : import_icons56.StarHalfIcon;
34900
- const Full = icon === "heart" ? import_icons56.FavoriteFilledIcon : import_icons56.StarFilledIcon;
34979
+ const Empty = icon === "heart" ? import_icons57.FavoriteIcon : import_icons57.StarIcon;
34980
+ const Half = icon === "heart" ? import_icons57.FavoriteHalfIcon : import_icons57.StarHalfIcon;
34981
+ const Full = icon === "heart" ? import_icons57.FavoriteFilledIcon : import_icons57.StarFilledIcon;
34901
34982
  const setValueClamped = (next) => {
34902
34983
  if (!interactive) return;
34903
34984
  const clamped = Math.max(0, Math.min(max, next));
@@ -35001,7 +35082,7 @@ Rating.displayName = "Rating";
35001
35082
 
35002
35083
  // src/components/Rating/BinaryRating.tsx
35003
35084
  var import_react156 = require("react");
35004
- var import_icons57 = require("@octaviaflow/icons");
35085
+ var import_icons58 = require("@octaviaflow/icons");
35005
35086
  var import_jsx_runtime139 = require("react/jsx-runtime");
35006
35087
  var BinaryRating = (0, import_react156.forwardRef)(
35007
35088
  function BinaryRating2({
@@ -35012,10 +35093,10 @@ var BinaryRating = (0, import_react156.forwardRef)(
35012
35093
  disabled = false,
35013
35094
  readOnly = false,
35014
35095
  toggleable = true,
35015
- upIcon = /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_icons57.ThumbsUpIcon, {}),
35016
- upIconFilled = /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_icons57.ThumbsUpFilledIcon, {}),
35017
- downIcon = /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_icons57.ThumbsDownIcon, {}),
35018
- downIconFilled = /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_icons57.ThumbsDownFilledIcon, {}),
35096
+ upIcon = /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_icons58.ThumbsUpIcon, {}),
35097
+ upIconFilled = /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_icons58.ThumbsUpFilledIcon, {}),
35098
+ downIcon = /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_icons58.ThumbsDownIcon, {}),
35099
+ downIconFilled = /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_icons58.ThumbsDownFilledIcon, {}),
35019
35100
  upLabel = "Like",
35020
35101
  downLabel = "Dislike",
35021
35102
  className,
@@ -36943,7 +37024,7 @@ Spotlight.displayName = "Spotlight";
36943
37024
 
36944
37025
  // src/components/Stat/Stat.tsx
36945
37026
  var import_react168 = require("react");
36946
- var import_icons58 = require("@octaviaflow/icons");
37027
+ var import_icons59 = require("@octaviaflow/icons");
36947
37028
  var import_jsx_runtime153 = require("react/jsx-runtime");
36948
37029
  var Stat = (0, import_react168.forwardRef)(function Stat2({
36949
37030
  label,
@@ -36957,7 +37038,7 @@ var Stat = (0, import_react168.forwardRef)(function Stat2({
36957
37038
  className,
36958
37039
  ...rest
36959
37040
  }, ref) {
36960
- const TrendIcon = deltaTrend === "up" ? import_icons58.ArrowUpIcon : deltaTrend === "down" ? import_icons58.ArrowDownIcon : import_icons58.SubtractIcon;
37041
+ const TrendIcon = deltaTrend === "up" ? import_icons59.ArrowUpIcon : deltaTrend === "down" ? import_icons59.ArrowDownIcon : import_icons59.SubtractIcon;
36961
37042
  return /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)(
36962
37043
  "div",
36963
37044
  {
@@ -37475,7 +37556,7 @@ Sankey.displayName = "Sankey";
37475
37556
 
37476
37557
  // src/components/Table/Table.tsx
37477
37558
  var import_react171 = require("react");
37478
- var import_icons59 = require("@octaviaflow/icons");
37559
+ var import_icons60 = require("@octaviaflow/icons");
37479
37560
  var import_jsx_runtime156 = require("react/jsx-runtime");
37480
37561
  function TableInner({
37481
37562
  columns,
@@ -37565,7 +37646,7 @@ function TableInner({
37565
37646
  sortKey === col.key && "ods-table__sort-icon--active"
37566
37647
  ),
37567
37648
  "aria-hidden": "true",
37568
- children: sortKey === col.key ? sortDirection === "desc" ? /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(import_icons59.CaretDownIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(import_icons59.CaretUpIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(import_icons59.CaretSortIcon, { size: "xs" })
37649
+ children: sortKey === col.key ? sortDirection === "desc" ? /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(import_icons60.CaretDownIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(import_icons60.CaretUpIcon, { size: "xs" }) : /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(import_icons60.CaretSortIcon, { size: "xs" })
37569
37650
  }
37570
37651
  )
37571
37652
  ] })
@@ -37634,7 +37715,7 @@ function TableRow({
37634
37715
  "aria-label": expanded ? "Collapse row" : "Expand row",
37635
37716
  "aria-expanded": expanded,
37636
37717
  onClick: () => setExpanded(!expanded),
37637
- children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(import_icons59.CaretRightIcon, { size: "xs" })
37718
+ children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(import_icons60.CaretRightIcon, { size: "xs" })
37638
37719
  }
37639
37720
  ) }),
37640
37721
  columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("td", { className: "ods-table__cell", children: col.render ? col.render(row[col.key], row, rowIndex) : row[col.key] }, col.key))
@@ -37827,7 +37908,7 @@ function ChevronSvg({ dir }) {
37827
37908
 
37828
37909
  // src/components/TagsInput/TagsInput.tsx
37829
37910
  var import_react173 = require("react");
37830
- var import_icons60 = require("@octaviaflow/icons");
37911
+ var import_icons61 = require("@octaviaflow/icons");
37831
37912
  var import_jsx_runtime158 = require("react/jsx-runtime");
37832
37913
  var TagsInput = (0, import_react173.forwardRef)(
37833
37914
  function TagsInput2({
@@ -37910,7 +37991,7 @@ var TagsInput = (0, import_react173.forwardRef)(
37910
37991
  onClick: () => removeTag(i),
37911
37992
  "aria-label": `Remove ${tag}`,
37912
37993
  disabled,
37913
- children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(import_icons60.CloseIcon, { size: "xs" })
37994
+ children: /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(import_icons61.CloseIcon, { size: "xs" })
37914
37995
  }
37915
37996
  )
37916
37997
  ] }, `${tag}-${i}`)),
@@ -38185,7 +38266,7 @@ var TemplateCard = (0, import_react174.forwardRef)(function TemplateCard2({
38185
38266
  TemplateCard.displayName = "TemplateCard";
38186
38267
 
38187
38268
  // src/components/TestimonialCard/TestimonialCard.tsx
38188
- var import_icons61 = require("@octaviaflow/icons");
38269
+ var import_icons62 = require("@octaviaflow/icons");
38189
38270
  var import_react175 = require("react");
38190
38271
  var import_jsx_runtime160 = require("react/jsx-runtime");
38191
38272
  function isAuthorObject(v) {
@@ -38256,7 +38337,7 @@ var TestimonialCard = (0, import_react175.forwardRef)(
38256
38337
  "aria-describedby": quoteId,
38257
38338
  children: [
38258
38339
  /* @__PURE__ */ (0, import_jsx_runtime160.jsxs)("div", { className: "ods-testimonial__head", children: [
38259
- /* @__PURE__ */ (0, import_jsx_runtime160.jsx)("span", { className: "ods-testimonial__quote", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(import_icons61.QuotesIcon, { size: "md" }) }),
38340
+ /* @__PURE__ */ (0, import_jsx_runtime160.jsx)("span", { className: "ods-testimonial__quote", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(import_icons62.QuotesIcon, { size: "md" }) }),
38260
38341
  logo && /* @__PURE__ */ (0, import_jsx_runtime160.jsx)("span", { className: "ods-testimonial__logo", "aria-hidden": "true", children: logo })
38261
38342
  ] }),
38262
38343
  /* @__PURE__ */ (0, import_jsx_runtime160.jsx)("blockquote", { id: quoteId, className: "ods-testimonial__text", children: quote }),
@@ -38268,13 +38349,13 @@ var TestimonialCard = (0, import_react175.forwardRef)(
38268
38349
  "aria-label": `${rating} out of 5 stars`,
38269
38350
  children: Array.from({ length: 5 }).map(
38270
38351
  (_, i) => i < Math.round(rating) ? /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(
38271
- import_icons61.StarFilledIcon,
38352
+ import_icons62.StarFilledIcon,
38272
38353
  {
38273
38354
  size: "xs",
38274
38355
  className: "ods-testimonial__star ods-testimonial__star--on"
38275
38356
  },
38276
38357
  i
38277
- ) : /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(import_icons61.StarIcon, { size: "xs", className: "ods-testimonial__star" }, i)
38358
+ ) : /* @__PURE__ */ (0, import_jsx_runtime160.jsx)(import_icons62.StarIcon, { size: "xs", className: "ods-testimonial__star" }, i)
38278
38359
  )
38279
38360
  }
38280
38361
  ),
@@ -38364,7 +38445,7 @@ Timeline.displayName = "Timeline";
38364
38445
  // src/components/TimePicker/TimePicker.tsx
38365
38446
  var import_react177 = require("react");
38366
38447
  var import_react_dom21 = require("react-dom");
38367
- var import_icons62 = require("@octaviaflow/icons");
38448
+ var import_icons63 = require("@octaviaflow/icons");
38368
38449
  var import_jsx_runtime162 = require("react/jsx-runtime");
38369
38450
  var pad = (n) => n.toString().padStart(2, "0");
38370
38451
  function format(v, use24h, showSeconds) {
@@ -38655,7 +38736,7 @@ var TimePicker = (0, import_react177.forwardRef)(
38655
38736
  "aria-describedby": describedBy,
38656
38737
  "aria-invalid": error ? true : void 0,
38657
38738
  children: [
38658
- /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "ods-timepicker__trigger-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(import_icons62.TimeIcon, { size: "xs" }) }),
38739
+ /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "ods-timepicker__trigger-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(import_icons63.TimeIcon, { size: "xs" }) }),
38659
38740
  /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "ods-timepicker__value", children: format(value, use24h, showSeconds) }),
38660
38741
  /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(
38661
38742
  "span",
@@ -38665,7 +38746,7 @@ var TimePicker = (0, import_react177.forwardRef)(
38665
38746
  open && "ods-timepicker__chev--open"
38666
38747
  ),
38667
38748
  "aria-hidden": "true",
38668
- children: /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(import_icons62.ChevronDownIcon, { size: "xs" })
38749
+ children: /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(import_icons63.ChevronDownIcon, { size: "xs" })
38669
38750
  }
38670
38751
  )
38671
38752
  ]
@@ -38728,7 +38809,7 @@ var TimePicker = (0, import_react177.forwardRef)(
38728
38809
  className: "ods-timepicker__step",
38729
38810
  onClick: () => stepBy(seg, 1),
38730
38811
  "aria-label": `${seg} up`,
38731
- children: /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(import_icons62.CaretUpIcon, { size: "xs" })
38812
+ children: /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(import_icons63.CaretUpIcon, { size: "xs" })
38732
38813
  }
38733
38814
  ),
38734
38815
  /* @__PURE__ */ (0, import_jsx_runtime162.jsx)("span", { className: "ods-timepicker__col-val", children: pad(
@@ -38741,7 +38822,7 @@ var TimePicker = (0, import_react177.forwardRef)(
38741
38822
  className: "ods-timepicker__step",
38742
38823
  onClick: () => stepBy(seg, -1),
38743
38824
  "aria-label": `${seg} down`,
38744
- children: /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(import_icons62.CaretDownIcon, { size: "xs" })
38825
+ children: /* @__PURE__ */ (0, import_jsx_runtime162.jsx)(import_icons63.CaretDownIcon, { size: "xs" })
38745
38826
  }
38746
38827
  )
38747
38828
  ] }),
@@ -38770,7 +38851,7 @@ TimePicker.displayName = "TimePicker";
38770
38851
 
38771
38852
  // src/components/TimezonePicker/TimezonePicker.tsx
38772
38853
  var import_react178 = require("react");
38773
- var import_icons63 = require("@octaviaflow/icons");
38854
+ var import_icons64 = require("@octaviaflow/icons");
38774
38855
  var import_jsx_runtime163 = require("react/jsx-runtime");
38775
38856
  var DEFAULT_TZS = [
38776
38857
  { iana: "America/Los_Angeles", label: "Pacific Time", offset: "UTC\u22128" },
@@ -38945,7 +39026,7 @@ var TimezonePicker = (0, import_react178.forwardRef)(
38945
39026
  "aria-describedby": describedBy,
38946
39027
  "aria-invalid": error ? true : void 0,
38947
39028
  children: [
38948
- /* @__PURE__ */ (0, import_jsx_runtime163.jsx)("span", { className: "ods-tzpicker__trigger-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(import_icons63.GlobeIcon, { size: "xs" }) }),
39029
+ /* @__PURE__ */ (0, import_jsx_runtime163.jsx)("span", { className: "ods-tzpicker__trigger-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(import_icons64.GlobeIcon, { size: "xs" }) }),
38949
39030
  /* @__PURE__ */ (0, import_jsx_runtime163.jsx)("span", { className: "ods-tzpicker__info", children: selected ? /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)(import_jsx_runtime163.Fragment, { children: [
38950
39031
  /* @__PURE__ */ (0, import_jsx_runtime163.jsx)("span", { className: "ods-tzpicker__name", children: selected.label }),
38951
39032
  /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)("span", { className: "ods-tzpicker__meta", children: [
@@ -38963,7 +39044,7 @@ var TimezonePicker = (0, import_react178.forwardRef)(
38963
39044
  open && "ods-tzpicker__chev--open"
38964
39045
  ),
38965
39046
  "aria-hidden": "true",
38966
- children: /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(import_icons63.ChevronDownIcon, { size: "xs" })
39047
+ children: /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(import_icons64.ChevronDownIcon, { size: "xs" })
38967
39048
  }
38968
39049
  )
38969
39050
  ]
@@ -38978,7 +39059,7 @@ var TimezonePicker = (0, import_react178.forwardRef)(
38978
39059
  onKeyDown: handlePopoverKey,
38979
39060
  children: [
38980
39061
  /* @__PURE__ */ (0, import_jsx_runtime163.jsxs)("div", { className: "ods-tzpicker__search", children: [
38981
- /* @__PURE__ */ (0, import_jsx_runtime163.jsx)("span", { className: "ods-tzpicker__search-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(import_icons63.SearchIcon, { size: "xs" }) }),
39062
+ /* @__PURE__ */ (0, import_jsx_runtime163.jsx)("span", { className: "ods-tzpicker__search-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(import_icons64.SearchIcon, { size: "xs" }) }),
38982
39063
  /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(
38983
39064
  "input",
38984
39065
  {
@@ -39035,7 +39116,7 @@ var TimezonePicker = (0, import_react178.forwardRef)(
39035
39116
  {
39036
39117
  className: "ods-tzpicker__opt-check",
39037
39118
  "aria-hidden": "true",
39038
- children: /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(import_icons63.CheckmarkIcon, { size: "xs" })
39119
+ children: /* @__PURE__ */ (0, import_jsx_runtime163.jsx)(import_icons64.CheckmarkIcon, { size: "xs" })
39039
39120
  }
39040
39121
  )
39041
39122
  ]
@@ -39610,17 +39691,17 @@ function ToolbarSpacer() {
39610
39691
 
39611
39692
  // src/components/ToolCard/ToolCard.tsx
39612
39693
  var import_react181 = require("react");
39613
- var import_icons64 = require("@octaviaflow/icons");
39694
+ var import_icons65 = require("@octaviaflow/icons");
39614
39695
  var import_jsx_runtime167 = require("react/jsx-runtime");
39615
39696
  var CATEGORY_GLYPH = {
39616
- search: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons64.SearchIcon, { size: "xs" }),
39617
- database: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons64.DataBaseIcon, { size: "xs" }),
39618
- web: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons64.GlobeIcon, { size: "xs" }),
39619
- code: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons64.CodeIcon, { size: "xs" }),
39620
- file: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons64.DocumentIcon, { size: "xs" }),
39621
- api: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons64.ApiIcon, { size: "xs" }),
39622
- ai: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons64.MagicWandIcon, { size: "xs" }),
39623
- custom: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons64.ExtensionsIcon, { size: "xs" })
39697
+ search: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons65.SearchIcon, { size: "xs" }),
39698
+ database: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons65.DataBaseIcon, { size: "xs" }),
39699
+ web: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons65.GlobeIcon, { size: "xs" }),
39700
+ code: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons65.CodeIcon, { size: "xs" }),
39701
+ file: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons65.DocumentIcon, { size: "xs" }),
39702
+ api: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons65.ApiIcon, { size: "xs" }),
39703
+ ai: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons65.MagicWandIcon, { size: "xs" }),
39704
+ custom: /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(import_icons65.ExtensionsIcon, { size: "xs" })
39624
39705
  };
39625
39706
  var ToolCard = (0, import_react181.forwardRef)(
39626
39707
  function ToolCard2({
@@ -39815,14 +39896,14 @@ function TopBar({
39815
39896
  // src/components/TraceStep/TraceStep.tsx
39816
39897
  var import_framer_motion38 = require("framer-motion");
39817
39898
  var import_react182 = require("react");
39818
- var import_icons65 = require("@octaviaflow/icons");
39899
+ var import_icons66 = require("@octaviaflow/icons");
39819
39900
  var import_jsx_runtime169 = require("react/jsx-runtime");
39820
39901
  var DEFAULT_KIND_GLYPH = {
39821
- thought: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons65.IdeaIcon, { size: "xs" }),
39822
- tool: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons65.BuildToolIcon, { size: "xs" }),
39823
- input: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons65.ConnectionReceiveIcon, { size: "xs" }),
39824
- output: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons65.ConnectionSendIcon, { size: "xs" }),
39825
- error: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons65.WarningAltIcon, { size: "xs" })
39902
+ thought: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons66.IdeaIcon, { size: "xs" }),
39903
+ tool: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons66.BuildToolIcon, { size: "xs" }),
39904
+ input: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons66.ConnectionReceiveIcon, { size: "xs" }),
39905
+ output: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons66.ConnectionSendIcon, { size: "xs" }),
39906
+ error: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons66.WarningAltIcon, { size: "xs" })
39826
39907
  };
39827
39908
  var FALLBACK_GLYPH = DEFAULT_KIND_GLYPH.thought;
39828
39909
  var TraceStep = (0, import_react182.forwardRef)(
@@ -39886,7 +39967,7 @@ var TraceStep = (0, import_react182.forwardRef)(
39886
39967
  initial: disableAnimation ? false : { scale: 0.6, opacity: 0 },
39887
39968
  animate: { scale: 1, opacity: 1 },
39888
39969
  transition: { duration: 0.2, ease: [0.16, 1, 0.3, 1] },
39889
- children: status === "running" ? /* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { className: "ods-trace-step__spin", children: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons65.CircleDashIcon, { size: "xs" }) }) : resolvedGlyph
39970
+ children: status === "running" ? /* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { className: "ods-trace-step__spin", children: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons66.CircleDashIcon, { size: "xs" }) }) : resolvedGlyph
39890
39971
  }
39891
39972
  ),
39892
39973
  !isLast && /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(
@@ -39929,7 +40010,7 @@ var TraceStep = (0, import_react182.forwardRef)(
39929
40010
  title: tool,
39930
40011
  "aria-label": `Tool: ${tool}`,
39931
40012
  children: [
39932
- /* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { className: "ods-trace-step__tool-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons65.BuildToolIcon, { size: "xs" }) }),
40013
+ /* @__PURE__ */ (0, import_jsx_runtime169.jsx)("span", { className: "ods-trace-step__tool-icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons66.BuildToolIcon, { size: "xs" }) }),
39933
40014
  tool
39934
40015
  ]
39935
40016
  }
@@ -39962,7 +40043,7 @@ var TraceStep = (0, import_react182.forwardRef)(
39962
40043
  "aria-hidden": "true",
39963
40044
  animate: { rotate: open ? 180 : 0 },
39964
40045
  transition: { duration: 0.18, ease: [0.16, 1, 0.3, 1] },
39965
- children: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons65.CaretDownIcon, { size: "xs" })
40046
+ children: /* @__PURE__ */ (0, import_jsx_runtime169.jsx)(import_icons66.CaretDownIcon, { size: "xs" })
39966
40047
  }
39967
40048
  )
39968
40049
  ]
@@ -41863,7 +41944,7 @@ function cursorFor(corner) {
41863
41944
  }
41864
41945
 
41865
41946
  // src/workflow/components/kinds/BaseNode.tsx
41866
- var import_icons66 = require("@octaviaflow/icons");
41947
+ var import_icons67 = require("@octaviaflow/icons");
41867
41948
  var import_react192 = require("react");
41868
41949
  var import_jsx_runtime176 = require("react/jsx-runtime");
41869
41950
  function BaseNode({
@@ -41930,7 +42011,7 @@ function BaseNode({
41930
42011
  "aria-label": "Delete node",
41931
42012
  "data-flow-no-drag": "true",
41932
42013
  title: "Delete node",
41933
- children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons66.TrashCanIcon, { size: 16, "aria-hidden": true })
42014
+ children: /* @__PURE__ */ (0, import_jsx_runtime176.jsx)(import_icons67.TrashCanIcon, { size: 16, "aria-hidden": true })
41934
42015
  }
41935
42016
  )
41936
42017
  ] }),
@@ -43849,7 +43930,7 @@ function DefaultEmptyState() {
43849
43930
  }
43850
43931
 
43851
43932
  // src/components/WorkflowHeader/WorkflowHeader.tsx
43852
- var import_icons67 = require("@octaviaflow/icons");
43933
+ var import_icons68 = require("@octaviaflow/icons");
43853
43934
 
43854
43935
  // src/hooks/useWorkflowRuntime.ts
43855
43936
  var import_react195 = require("react");
@@ -43940,7 +44021,7 @@ function WorkflowHeader({
43940
44021
  onClick: onBack,
43941
44022
  "aria-label": `Back to ${typeof parentLabel === "string" ? parentLabel : "previous"}`,
43942
44023
  children: [
43943
- /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_icons67.ChevronLeftIcon, { size: "sm" }),
44024
+ /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_icons68.ChevronLeftIcon, { size: "sm" }),
43944
44025
  /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("span", { className: "ods-workflow-header__back-label", children: parentLabel }),
43945
44026
  /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("span", { className: "ods-workflow-header__back-separator", "aria-hidden": "true", children: "/" })
43946
44027
  ]
@@ -43979,14 +44060,14 @@ function WorkflowHeader({
43979
44060
  title: saveState === "error" ? saveError ?? void 0 : void 0,
43980
44061
  children: [
43981
44062
  saveState === "saving" ? /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("span", { className: "ods-workflow-header__save-spinner", "aria-hidden": "true" }) : saveState === "error" ? /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
43982
- import_icons67.WarningAltIcon,
44063
+ import_icons68.WarningAltIcon,
43983
44064
  {
43984
44065
  size: "sm",
43985
44066
  className: "ods-workflow-header__save-icon",
43986
44067
  "aria-hidden": "true"
43987
44068
  }
43988
44069
  ) : /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
43989
- import_icons67.CheckmarkIcon,
44070
+ import_icons68.CheckmarkIcon,
43990
44071
  {
43991
44072
  size: "sm",
43992
44073
  className: "ods-workflow-header__save-icon",
@@ -44027,7 +44108,7 @@ function WorkflowHeader({
44027
44108
  size: "sm",
44028
44109
  pressed: !!isConsoleOpen,
44029
44110
  "aria-label": isConsoleOpen ? "Hide execution console" : "Show execution console",
44030
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_icons67.TerminalIcon, { size: "sm" }),
44111
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_icons68.TerminalIcon, { size: "sm" }),
44031
44112
  onClick: onToggleConsole,
44032
44113
  children: "Console"
44033
44114
  }
@@ -44039,7 +44120,7 @@ function WorkflowHeader({
44039
44120
  variant: "ghost",
44040
44121
  size: "sm",
44041
44122
  "aria-label": runtime ? `Stop execution (running ${runtime})` : "Stop execution",
44042
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_icons67.StopFilledAltIcon, { size: "sm", className: "ods-workflow-header__stop-glyph" }),
44123
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_icons68.StopFilledAltIcon, { size: "sm", className: "ods-workflow-header__stop-glyph" }),
44043
44124
  onClick: onStop,
44044
44125
  children: /* @__PURE__ */ (0, import_jsx_runtime180.jsxs)("span", { className: "ods-workflow-header__stop-label", children: [
44045
44126
  /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("span", { children: "Stop" }),
@@ -44055,7 +44136,7 @@ function WorkflowHeader({
44055
44136
  variant: "primary",
44056
44137
  size: "sm",
44057
44138
  "aria-label": "Run workflow",
44058
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_icons67.PlayFilledAltIcon, { size: "sm" }),
44139
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_icons68.PlayFilledAltIcon, { size: "sm" }),
44059
44140
  onClick: onRun,
44060
44141
  children: "Run"
44061
44142
  }
@@ -44067,7 +44148,7 @@ function WorkflowHeader({
44067
44148
  align: "end",
44068
44149
  triggerClassName: "ods-workflow-header__menu-trigger",
44069
44150
  ...menuProps,
44070
- trigger: menuTrigger ?? /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("span", { "aria-hidden": "true", className: "ods-workflow-header__menu-icon", children: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_icons67.OverflowMenuVerticalIcon, { size: "sm" }) }),
44151
+ trigger: menuTrigger ?? /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("span", { "aria-hidden": "true", className: "ods-workflow-header__menu-icon", children: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_icons68.OverflowMenuVerticalIcon, { size: "sm" }) }),
44071
44152
  items: menuItems
44072
44153
  }
44073
44154
  ))
@@ -44077,7 +44158,7 @@ function WorkflowHeader({
44077
44158
  }
44078
44159
 
44079
44160
  // src/components/WorkflowHeader/WorkflowHeaderExpanded.tsx
44080
- var import_icons68 = require("@octaviaflow/icons");
44161
+ var import_icons69 = require("@octaviaflow/icons");
44081
44162
  var import_jsx_runtime181 = require("react/jsx-runtime");
44082
44163
  function WorkflowHeaderExpanded({
44083
44164
  name,
@@ -44122,7 +44203,7 @@ function WorkflowHeaderExpanded({
44122
44203
  onClick: onBack,
44123
44204
  "aria-label": `Back to ${typeof parentLabel === "string" ? parentLabel : "previous"}`,
44124
44205
  children: [
44125
- /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(import_icons68.ChevronLeftIcon, { size: "sm" }),
44206
+ /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(import_icons69.ChevronLeftIcon, { size: "sm" }),
44126
44207
  /* @__PURE__ */ (0, import_jsx_runtime181.jsx)("span", { children: parentLabel }),
44127
44208
  /* @__PURE__ */ (0, import_jsx_runtime181.jsx)("span", { "aria-hidden": "true", className: "ods-workflow-header-expanded__back-sep", children: "/" })
44128
44209
  ]
@@ -44161,7 +44242,7 @@ function WorkflowHeaderExpanded({
44161
44242
  size: "sm",
44162
44243
  pressed: !!isConsoleOpen,
44163
44244
  "aria-label": isConsoleOpen ? "Hide execution console" : "Show execution console",
44164
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(import_icons68.TerminalIcon, { size: "sm" }),
44245
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(import_icons69.TerminalIcon, { size: "sm" }),
44165
44246
  onClick: onToggleConsole,
44166
44247
  children: "Console"
44167
44248
  }
@@ -44174,7 +44255,7 @@ function WorkflowHeaderExpanded({
44174
44255
  size: "sm",
44175
44256
  "aria-label": runtime ? `Stop execution (running ${runtime})` : "Stop execution",
44176
44257
  leftIcon: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
44177
- import_icons68.StopFilledAltIcon,
44258
+ import_icons69.StopFilledAltIcon,
44178
44259
  {
44179
44260
  size: "sm",
44180
44261
  className: "ods-workflow-header-expanded__stop-glyph"
@@ -44195,7 +44276,7 @@ function WorkflowHeaderExpanded({
44195
44276
  variant: "primary",
44196
44277
  size: "sm",
44197
44278
  "aria-label": "Run workflow",
44198
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(import_icons68.PlayFilledAltIcon, { size: "sm" }),
44279
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(import_icons69.PlayFilledAltIcon, { size: "sm" }),
44199
44280
  onClick: onRun,
44200
44281
  children: "Run"
44201
44282
  }
@@ -44211,7 +44292,7 @@ function WorkflowHeaderExpanded({
44211
44292
  {
44212
44293
  variant: "ghost",
44213
44294
  size: "sm",
44214
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(import_icons68.OverflowMenuVerticalIcon, { size: "sm" })
44295
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(import_icons69.OverflowMenuVerticalIcon, { size: "sm" })
44215
44296
  }
44216
44297
  ),
44217
44298
  items: menuItems