likec4 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10643,13 +10643,13 @@ function resolveStyle({ style: style2, theme: theme2 }) {
10643
10643
  {}
10644
10644
  ) : typeof style2 == "function" ? style2(theme2) : style2 ?? {};
10645
10645
  }
10646
- function mergeVars(vars2) {
10647
- return vars2.reduce((acc, current) => (current && Object.keys(current).forEach((key) => {
10646
+ function mergeVars(vars) {
10647
+ return vars.reduce((acc, current) => (current && Object.keys(current).forEach((key) => {
10648
10648
  acc[key] = { ...acc[key], ...filterProps$1(current[key]) };
10649
10649
  }), acc), {});
10650
10650
  }
10651
10651
  function resolveVars({
10652
- vars: vars2,
10652
+ vars,
10653
10653
  varsResolver: varsResolver2,
10654
10654
  theme: theme2,
10655
10655
  props,
@@ -10661,7 +10661,7 @@ function resolveVars({
10661
10661
  return mergeVars([
10662
10662
  headless ? {} : varsResolver2?.(theme2, props, stylesCtx),
10663
10663
  ...themeName.map((name) => theme2.components?.[name]?.vars?.(theme2, props, stylesCtx)),
10664
- vars2?.(theme2, props, stylesCtx)
10664
+ vars?.(theme2, props, stylesCtx)
10665
10665
  ])?.[selector2];
10666
10666
  }
10667
10667
  function getStyle({
@@ -10674,7 +10674,7 @@ function getStyle({
10674
10674
  rootSelector,
10675
10675
  styles,
10676
10676
  style: style2,
10677
- vars: vars2,
10677
+ vars,
10678
10678
  varsResolver: varsResolver2,
10679
10679
  headless,
10680
10680
  withStylesTransform
@@ -10683,7 +10683,7 @@ function getStyle({
10683
10683
  ...!withStylesTransform && getThemeStyles({ theme: theme2, themeName, props, stylesCtx, selector: selector2 }),
10684
10684
  ...!withStylesTransform && resolveStyles({ theme: theme2, styles, props, stylesCtx })[selector2],
10685
10685
  ...!withStylesTransform && resolveStyles({ theme: theme2, styles: options?.styles, props: options?.props || props, stylesCtx })[selector2],
10686
- ...resolveVars({ theme: theme2, props, stylesCtx, vars: vars2, varsResolver: varsResolver2, selector: selector2, themeName, headless }),
10686
+ ...resolveVars({ theme: theme2, props, stylesCtx, vars, varsResolver: varsResolver2, selector: selector2, themeName, headless }),
10687
10687
  ...rootSelector === selector2 ? resolveStyle({ style: style2, theme: theme2 }) : null,
10688
10688
  ...resolveStyle({ style: options?.style, theme: theme2 })
10689
10689
  };
@@ -10713,7 +10713,7 @@ function useStyles({
10713
10713
  unstyled,
10714
10714
  classNames,
10715
10715
  styles,
10716
- vars: vars2,
10716
+ vars,
10717
10717
  varsResolver: varsResolver2
10718
10718
  }) {
10719
10719
  const theme2 = useMantineTheme(), classNamesPrefix = useMantineClassNamesPrefix(), withStaticClasses = useMantineWithStaticClasses(), headless = useMantineIsHeadless(), themeName = (Array.isArray(name) ? name : [name]).filter((n2) => n2), { withStylesTransform, getTransformedStyles } = useStylesTransform({
@@ -10749,7 +10749,7 @@ function useStyles({
10749
10749
  rootSelector,
10750
10750
  styles,
10751
10751
  style: style2,
10752
- vars: vars2,
10752
+ vars,
10753
10753
  varsResolver: varsResolver2,
10754
10754
  headless,
10755
10755
  withStylesTransform
@@ -11136,10 +11136,10 @@ function mergeStyles(styles, theme2) {
11136
11136
  function getBoxStyle({
11137
11137
  theme: theme2,
11138
11138
  style: style2,
11139
- vars: vars2,
11139
+ vars,
11140
11140
  styleProps
11141
11141
  }) {
11142
- const _style = mergeStyles(style2, theme2), _vars = mergeStyles(vars2, theme2);
11142
+ const _style = mergeStyles(style2, theme2), _vars = mergeStyles(vars, theme2);
11143
11143
  return { ..._style, ..._vars, ...styleProps };
11144
11144
  }
11145
11145
  const _Box = reactExports.forwardRef(
@@ -11676,7 +11676,7 @@ const classes$u = __default__$w, defaultProps$1g = {
11676
11676
  styles,
11677
11677
  unstyled,
11678
11678
  scrollbarSize,
11679
- vars: vars2,
11679
+ vars,
11680
11680
  type,
11681
11681
  scrollHideDelay,
11682
11682
  viewportProps,
@@ -11695,7 +11695,7 @@ const classes$u = __default__$w, defaultProps$1g = {
11695
11695
  classNames,
11696
11696
  styles,
11697
11697
  unstyled,
11698
- vars: vars2,
11698
+ vars,
11699
11699
  varsResolver: varsResolver$x
11700
11700
  });
11701
11701
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -11776,7 +11776,7 @@ const ScrollAreaAutosize = factory((props, ref) => {
11776
11776
  viewportProps,
11777
11777
  scrollbars,
11778
11778
  style: style2,
11779
- vars: vars2,
11779
+ vars,
11780
11780
  ...others
11781
11781
  } = useProps("ScrollAreaAutosize", defaultProps$1g, props);
11782
11782
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Box$1, { ...others, ref, style: [{ display: "flex", overflow: "auto" }, style2], children: /* @__PURE__ */ jsxRuntimeExports.jsx(Box$1, { style: { display: "flex", flexDirection: "column", flex: 1 }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -11794,7 +11794,7 @@ const ScrollAreaAutosize = factory((props, ref) => {
11794
11794
  unstyled,
11795
11795
  variant,
11796
11796
  viewportProps,
11797
- vars: vars2,
11797
+ vars,
11798
11798
  scrollbars,
11799
11799
  children: children2
11800
11800
  }
@@ -11844,7 +11844,7 @@ UnstyledButton.classes = classes$t;
11844
11844
  UnstyledButton.displayName = "@mantine/core/UnstyledButton";
11845
11845
  var __default__$u = { root: "m_515a97f8" };
11846
11846
  const classes$s = __default__$u, defaultProps$1e = {}, VisuallyHidden = factory((_props, ref) => {
11847
- const props = useProps("VisuallyHidden", defaultProps$1e, _props), { classNames, className, style: style2, styles, unstyled, vars: vars2, ...others } = props, getStyles2 = useStyles({
11847
+ const props = useProps("VisuallyHidden", defaultProps$1e, _props), { classNames, className, style: style2, styles, unstyled, vars, ...others } = props, getStyles2 = useStyles({
11848
11848
  name: "VisuallyHidden",
11849
11849
  classes: classes$s,
11850
11850
  props,
@@ -11872,7 +11872,7 @@ const classes$r = __default__$t, defaultProps$1d = {}, varsResolver$w = (_2, { r
11872
11872
  styles,
11873
11873
  unstyled,
11874
11874
  withBorder,
11875
- vars: vars2,
11875
+ vars,
11876
11876
  radius,
11877
11877
  shadow,
11878
11878
  variant,
@@ -11887,7 +11887,7 @@ const classes$r = __default__$t, defaultProps$1d = {}, varsResolver$w = (_2, { r
11887
11887
  classNames,
11888
11888
  styles,
11889
11889
  unstyled,
11890
- vars: vars2,
11890
+ vars,
11891
11891
  varsResolver: varsResolver$w
11892
11892
  });
11893
11893
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -14317,7 +14317,7 @@ const classes$q = __default__$s, defaultProps$1b = {}, PopoverDropdown = factory
14317
14317
  const props = useProps("PopoverDropdown", defaultProps$1b, _props), {
14318
14318
  className,
14319
14319
  style: style2,
14320
- vars: vars2,
14320
+ vars,
14321
14321
  children: children2,
14322
14322
  onKeyDownCapture,
14323
14323
  variant,
@@ -14583,7 +14583,7 @@ function Popover(_props) {
14583
14583
  returnFocus,
14584
14584
  variant,
14585
14585
  keepMounted,
14586
- vars: vars2,
14586
+ vars,
14587
14587
  floatingStrategy,
14588
14588
  ...others
14589
14589
  } = props, getStyles2 = useStyles({
@@ -14594,7 +14594,7 @@ function Popover(_props) {
14594
14594
  styles,
14595
14595
  unstyled,
14596
14596
  rootSelector: "dropdown",
14597
- vars: vars2,
14597
+ vars,
14598
14598
  varsResolver: varsResolver$v
14599
14599
  }), arrowRef = reactExports.useRef(null), [targetNode, setTargetNode] = reactExports.useState(null), [dropdownNode, setDropdownNode] = reactExports.useState(null), { dir } = useDirection(), uid = useId$1(id2), popover = usePopover({
14600
14600
  middlewares,
@@ -14705,7 +14705,7 @@ const classes$p = __default__$r, Bars = reactExports.forwardRef(({ className, ..
14705
14705
  size: size2,
14706
14706
  color: color2,
14707
14707
  type,
14708
- vars: vars2,
14708
+ vars,
14709
14709
  className,
14710
14710
  style: style2,
14711
14711
  classNames,
@@ -14724,7 +14724,7 @@ const classes$p = __default__$r, Bars = reactExports.forwardRef(({ className, ..
14724
14724
  classNames,
14725
14725
  styles,
14726
14726
  unstyled,
14727
- vars: vars2,
14727
+ vars,
14728
14728
  varsResolver: varsResolver$u
14729
14729
  });
14730
14730
  return children2 ? /* @__PURE__ */ jsxRuntimeExports.jsx(Box$1, { ...getStyles2("root"), ref, ...others, children: children2 }) : /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -14755,7 +14755,7 @@ const classes$o = __default__$q, defaultProps$17 = {
14755
14755
  styles,
14756
14756
  unstyled,
14757
14757
  orientation,
14758
- vars: vars2,
14758
+ vars,
14759
14759
  borderWidth,
14760
14760
  variant,
14761
14761
  mod,
@@ -14769,7 +14769,7 @@ const classes$o = __default__$q, defaultProps$17 = {
14769
14769
  classNames,
14770
14770
  styles,
14771
14771
  unstyled,
14772
- vars: vars2,
14772
+ vars,
14773
14773
  varsResolver: varsResolver$t,
14774
14774
  rootSelector: "group"
14775
14775
  });
@@ -14821,7 +14821,7 @@ const defaultProps$16 = {}, varsResolver$s = (theme2, { size: size2, radius, var
14821
14821
  radius,
14822
14822
  __staticSelector,
14823
14823
  gradient,
14824
- vars: vars2,
14824
+ vars,
14825
14825
  children: children2,
14826
14826
  disabled,
14827
14827
  "data-disabled": dataDisabled,
@@ -14837,7 +14837,7 @@ const defaultProps$16 = {}, varsResolver$s = (theme2, { size: size2, radius, var
14837
14837
  classNames,
14838
14838
  styles,
14839
14839
  unstyled,
14840
- vars: vars2,
14840
+ vars,
14841
14841
  varsResolver: varsResolver$s
14842
14842
  });
14843
14843
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -14897,7 +14897,7 @@ const classes$n = __default__$p, defaultProps$15 = {
14897
14897
  const props = useProps("CloseButton", defaultProps$15, _props), {
14898
14898
  iconSize,
14899
14899
  children: children2,
14900
- vars: vars2,
14900
+ vars,
14901
14901
  radius,
14902
14902
  className,
14903
14903
  classNames,
@@ -14919,7 +14919,7 @@ const classes$n = __default__$p, defaultProps$15 = {
14919
14919
  classNames,
14920
14920
  styles,
14921
14921
  unstyled,
14922
- vars: vars2,
14922
+ vars,
14923
14923
  varsResolver: varsResolver$r
14924
14924
  });
14925
14925
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -14973,7 +14973,7 @@ const classes$m = __default__$o, defaultProps$14 = {
14973
14973
  wrap,
14974
14974
  grow,
14975
14975
  preventGrowOverflow,
14976
- vars: vars2,
14976
+ vars,
14977
14977
  variant,
14978
14978
  __size,
14979
14979
  mod,
@@ -14988,7 +14988,7 @@ const classes$m = __default__$o, defaultProps$14 = {
14988
14988
  classNames,
14989
14989
  styles,
14990
14990
  unstyled,
14991
- vars: vars2,
14991
+ vars,
14992
14992
  varsResolver: varsResolver$q
14993
14993
  });
14994
14994
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -15023,7 +15023,7 @@ const classes$l = __default__$n, defaultProps$13 = {
15023
15023
  style: style2,
15024
15024
  styles,
15025
15025
  unstyled,
15026
- vars: vars2,
15026
+ vars,
15027
15027
  fixed,
15028
15028
  center,
15029
15029
  children: children2,
@@ -15044,7 +15044,7 @@ const classes$l = __default__$n, defaultProps$13 = {
15044
15044
  classNames,
15045
15045
  styles,
15046
15046
  unstyled,
15047
- vars: vars2,
15047
+ vars,
15048
15048
  varsResolver: varsResolver$p
15049
15049
  });
15050
15050
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Box$1, { ref, ...getStyles2("root"), mod: [{ center, fixed }, mod], ...others, children: children2 });
@@ -15306,7 +15306,7 @@ const classes$k = __default__$l, defaultProps$12 = {}, varsResolver$o = (_2, { s
15306
15306
  style: style2,
15307
15307
  styles,
15308
15308
  unstyled,
15309
- vars: vars2,
15309
+ vars,
15310
15310
  size: size2,
15311
15311
  __staticSelector,
15312
15312
  __inheritStyles = !0,
@@ -15322,7 +15322,7 @@ const classes$k = __default__$l, defaultProps$12 = {}, varsResolver$o = (_2, { s
15322
15322
  styles,
15323
15323
  unstyled,
15324
15324
  rootSelector: "description",
15325
- vars: vars2,
15325
+ vars,
15326
15326
  varsResolver: varsResolver$o
15327
15327
  }), getStyles2 = __inheritStyles && ctx?.getStyles || _getStyles;
15328
15328
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -15350,7 +15350,7 @@ const defaultProps$11 = {}, varsResolver$n = (_2, { size: size2 }) => ({
15350
15350
  style: style2,
15351
15351
  styles,
15352
15352
  unstyled,
15353
- vars: vars2,
15353
+ vars,
15354
15354
  size: size2,
15355
15355
  __staticSelector,
15356
15356
  __inheritStyles = !0,
@@ -15366,7 +15366,7 @@ const defaultProps$11 = {}, varsResolver$n = (_2, { size: size2 }) => ({
15366
15366
  styles,
15367
15367
  unstyled,
15368
15368
  rootSelector: "error",
15369
- vars: vars2,
15369
+ vars,
15370
15370
  varsResolver: varsResolver$n
15371
15371
  }), ctx = useInputWrapperContext(), getStyles2 = __inheritStyles && ctx?.getStyles || _getStyles;
15372
15372
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -15397,7 +15397,7 @@ const defaultProps$10 = {
15397
15397
  style: style2,
15398
15398
  styles,
15399
15399
  unstyled,
15400
- vars: vars2,
15400
+ vars,
15401
15401
  labelElement,
15402
15402
  size: size2,
15403
15403
  required,
@@ -15418,7 +15418,7 @@ const defaultProps$10 = {
15418
15418
  styles,
15419
15419
  unstyled,
15420
15420
  rootSelector: "label",
15421
- vars: vars2,
15421
+ vars,
15422
15422
  varsResolver: varsResolver$m
15423
15423
  }), ctx = useInputWrapperContext(), getStyles2 = ctx?.getStyles || _getStyles;
15424
15424
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -15451,7 +15451,7 @@ const defaultProps$$ = {}, InputPlaceholder = factory((_props, ref) => {
15451
15451
  style: style2,
15452
15452
  styles,
15453
15453
  unstyled,
15454
- vars: vars2,
15454
+ vars,
15455
15455
  __staticSelector,
15456
15456
  variant,
15457
15457
  error,
@@ -15508,7 +15508,7 @@ const defaultProps$_ = {
15508
15508
  style: style2,
15509
15509
  styles,
15510
15510
  unstyled,
15511
- vars: vars2,
15511
+ vars,
15512
15512
  size: size2,
15513
15513
  variant,
15514
15514
  __staticSelector,
@@ -15537,7 +15537,7 @@ const defaultProps$_ = {
15537
15537
  classNames,
15538
15538
  styles,
15539
15539
  unstyled,
15540
- vars: vars2,
15540
+ vars,
15541
15541
  varsResolver: varsResolver$l
15542
15542
  }), sharedProps = {
15543
15543
  size: size2,
@@ -15658,7 +15658,7 @@ const defaultProps$Z = {
15658
15658
  rightSectionPointerEvents,
15659
15659
  leftSectionPointerEvents,
15660
15660
  variant,
15661
- vars: vars2,
15661
+ vars,
15662
15662
  pointer: pointer2,
15663
15663
  multiline,
15664
15664
  radius,
@@ -15678,7 +15678,7 @@ const defaultProps$Z = {
15678
15678
  unstyled,
15679
15679
  stylesCtx,
15680
15680
  rootSelector: "wrapper",
15681
- vars: vars2,
15681
+ vars,
15682
15682
  varsResolver: varsResolver$k
15683
15683
  }), ariaAttributes = withAria ? {
15684
15684
  required,
@@ -15778,7 +15778,7 @@ function useInputProps(component, defaultProps2, _props) {
15778
15778
  inputWrapperOrder,
15779
15779
  withAsterisk,
15780
15780
  variant,
15781
- vars: vars2,
15781
+ vars,
15782
15782
  mod,
15783
15783
  ...others
15784
15784
  } = props, { styleProps, rest } = extractStyleProps(others), wrapperProps = {
@@ -15851,7 +15851,7 @@ const classes$j = __default__$k, defaultProps$X = {}, Flex$1 = polymorphicFactor
15851
15851
  style: style2,
15852
15852
  styles,
15853
15853
  unstyled,
15854
- vars: vars2,
15854
+ vars,
15855
15855
  gap,
15856
15856
  rowGap,
15857
15857
  columnGap,
@@ -15869,7 +15869,7 @@ const classes$j = __default__$k, defaultProps$X = {}, Flex$1 = polymorphicFactor
15869
15869
  classNames,
15870
15870
  styles,
15871
15871
  unstyled,
15872
- vars: vars2
15872
+ vars
15873
15873
  }), theme2 = useMantineTheme(), responsiveClassName = useRandomClassName(), parsedStyleProps = parseStyleProps({
15874
15874
  styleProps: { gap, rowGap, columnGap, align, justify, wrap, direction },
15875
15875
  theme: theme2,
@@ -15922,7 +15922,7 @@ const classes$i = __default__$j, defaultProps$W = {}, varsResolver$j = (theme2,
15922
15922
  style: style2,
15923
15923
  styles,
15924
15924
  unstyled,
15925
- vars: vars2,
15925
+ vars,
15926
15926
  radius,
15927
15927
  color: color2,
15928
15928
  title: title2,
@@ -15944,7 +15944,7 @@ const classes$i = __default__$j, defaultProps$W = {}, varsResolver$j = (theme2,
15944
15944
  classNames,
15945
15945
  styles,
15946
15946
  unstyled,
15947
- vars: vars2,
15947
+ vars,
15948
15948
  varsResolver: varsResolver$j
15949
15949
  }), rootId = useId$1(id2), titleId = title2 && `${rootId}-title` || void 0, bodyId = `${rootId}-body`;
15950
15950
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -16009,7 +16009,7 @@ const defaultProps$V = {
16009
16009
  gradient,
16010
16010
  span,
16011
16011
  __staticSelector,
16012
- vars: vars2,
16012
+ vars,
16013
16013
  className,
16014
16014
  style: style2,
16015
16015
  classNames,
@@ -16028,7 +16028,7 @@ const defaultProps$V = {
16028
16028
  classNames,
16029
16029
  styles,
16030
16030
  unstyled,
16031
- vars: vars2,
16031
+ vars,
16032
16032
  varsResolver: varsResolver$i
16033
16033
  });
16034
16034
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -16098,7 +16098,7 @@ const classes$g = __default__$g, defaultProps$T = {
16098
16098
  "--combobox-chevron-size": getSize(size2, "combobox-chevron-size")
16099
16099
  }
16100
16100
  }), ComboboxChevron = factory((_props, ref) => {
16101
- const props = useProps("ComboboxChevron", defaultProps$T, _props), { size: size2, error, style: style2, className, classNames, styles, unstyled, vars: vars2, mod, ...others } = props, getStyles2 = useStyles({
16101
+ const props = useProps("ComboboxChevron", defaultProps$T, _props), { size: size2, error, style: style2, className, classNames, styles, unstyled, vars, mod, ...others } = props, getStyles2 = useStyles({
16102
16102
  name: "ComboboxChevron",
16103
16103
  classes: classes$g,
16104
16104
  props,
@@ -16107,7 +16107,7 @@ const classes$g = __default__$g, defaultProps$T = {
16107
16107
  classNames,
16108
16108
  styles,
16109
16109
  unstyled,
16110
- vars: vars2,
16110
+ vars,
16111
16111
  varsResolver: varsResolver$h,
16112
16112
  rootSelector: "chevron"
16113
16113
  });
@@ -16190,7 +16190,7 @@ const defaultProps$R = {
16190
16190
  });
16191
16191
  ComboboxDropdownTarget.displayName = "@mantine/core/ComboboxDropdownTarget";
16192
16192
  const defaultProps$Q = {}, ComboboxEmpty = factory((props, ref) => {
16193
- const { classNames, className, style: style2, styles, vars: vars2, ...others } = useProps(
16193
+ const { classNames, className, style: style2, styles, vars, ...others } = useProps(
16194
16194
  "ComboboxEmpty",
16195
16195
  defaultProps$Q,
16196
16196
  props
@@ -16278,7 +16278,7 @@ const defaultProps$P = {
16278
16278
  });
16279
16279
  ComboboxEventsTarget.displayName = "@mantine/core/ComboboxEventsTarget";
16280
16280
  const defaultProps$O = {}, ComboboxFooter = factory((props, ref) => {
16281
- const { classNames, className, style: style2, styles, vars: vars2, ...others } = useProps(
16281
+ const { classNames, className, style: style2, styles, vars, ...others } = useProps(
16282
16282
  "ComboboxFooter",
16283
16283
  defaultProps$O,
16284
16284
  props
@@ -16295,7 +16295,7 @@ const defaultProps$O = {}, ComboboxFooter = factory((props, ref) => {
16295
16295
  ComboboxFooter.classes = classes$g;
16296
16296
  ComboboxFooter.displayName = "@mantine/core/ComboboxFooter";
16297
16297
  const defaultProps$N = {}, ComboboxGroup = factory((props, ref) => {
16298
- const { classNames, className, style: style2, styles, vars: vars2, children: children2, label, ...others } = useProps(
16298
+ const { classNames, className, style: style2, styles, vars, children: children2, label, ...others } = useProps(
16299
16299
  "ComboboxGroup",
16300
16300
  defaultProps$N,
16301
16301
  props
@@ -16316,7 +16316,7 @@ const defaultProps$N = {}, ComboboxGroup = factory((props, ref) => {
16316
16316
  ComboboxGroup.classes = classes$g;
16317
16317
  ComboboxGroup.displayName = "@mantine/core/ComboboxGroup";
16318
16318
  const defaultProps$M = {}, ComboboxHeader = factory((props, ref) => {
16319
- const { classNames, className, style: style2, styles, vars: vars2, ...others } = useProps(
16319
+ const { classNames, className, style: style2, styles, vars, ...others } = useProps(
16320
16320
  "ComboboxHeader",
16321
16321
  defaultProps$M,
16322
16322
  props
@@ -16353,7 +16353,7 @@ const defaultProps$L = {}, ComboboxOption = factory((_props, ref) => {
16353
16353
  className,
16354
16354
  style: style2,
16355
16355
  styles,
16356
- vars: vars2,
16356
+ vars,
16357
16357
  onClick,
16358
16358
  id: id2,
16359
16359
  active,
@@ -16420,7 +16420,7 @@ const defaultProps$J = {
16420
16420
  classNames,
16421
16421
  styles,
16422
16422
  unstyled,
16423
- vars: vars2,
16423
+ vars,
16424
16424
  withAriaAttributes,
16425
16425
  onKeyDown,
16426
16426
  withKeyboardNavigation,
@@ -16667,7 +16667,7 @@ function Combobox(_props) {
16667
16667
  unstyled,
16668
16668
  children: children2,
16669
16669
  store: controlledStore,
16670
- vars: vars2,
16670
+ vars,
16671
16671
  onOptionSubmit,
16672
16672
  onClose,
16673
16673
  size: size2,
@@ -16683,7 +16683,7 @@ function Combobox(_props) {
16683
16683
  classNames,
16684
16684
  styles,
16685
16685
  unstyled,
16686
- vars: vars2,
16686
+ vars,
16687
16687
  varsResolver: varsResolver$g
16688
16688
  }), onDropdownClose = () => {
16689
16689
  onClose?.(), store.closeDropdown();
@@ -16930,7 +16930,7 @@ const classes$f = __default__$f, defaultProps$G = {}, varsResolver$f = (theme2,
16930
16930
  style: style2,
16931
16931
  styles,
16932
16932
  unstyled,
16933
- vars: vars2,
16933
+ vars,
16934
16934
  radius,
16935
16935
  color: color2,
16936
16936
  gradient,
@@ -16952,7 +16952,7 @@ const classes$f = __default__$f, defaultProps$G = {}, varsResolver$f = (theme2,
16952
16952
  classNames,
16953
16953
  styles,
16954
16954
  unstyled,
16955
- vars: vars2,
16955
+ vars,
16956
16956
  varsResolver: varsResolver$f
16957
16957
  });
16958
16958
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -16988,7 +16988,7 @@ const classes$e = __default__$e, defaultProps$F = {}, varsResolver$e = (theme2,
16988
16988
  style: style2,
16989
16989
  styles,
16990
16990
  unstyled,
16991
- vars: vars2,
16991
+ vars,
16992
16992
  opened,
16993
16993
  children: children2,
16994
16994
  transitionDuration,
@@ -17003,7 +17003,7 @@ const classes$e = __default__$e, defaultProps$F = {}, varsResolver$e = (theme2,
17003
17003
  classNames,
17004
17004
  styles,
17005
17005
  unstyled,
17006
- vars: vars2,
17006
+ vars,
17007
17007
  varsResolver: varsResolver$e
17008
17008
  });
17009
17009
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(UnstyledButton, { ...getStyles2("root"), ref, ...others, children: [
@@ -17026,7 +17026,7 @@ const classes$d = __default__$d, defaultProps$E = {
17026
17026
  styles,
17027
17027
  unstyled,
17028
17028
  orientation,
17029
- vars: vars2,
17029
+ vars,
17030
17030
  borderWidth,
17031
17031
  variant,
17032
17032
  mod,
@@ -17040,7 +17040,7 @@ const classes$d = __default__$d, defaultProps$E = {
17040
17040
  classNames,
17041
17041
  styles,
17042
17042
  unstyled,
17043
- vars: vars2,
17043
+ vars,
17044
17044
  varsResolver: varsResolver$d,
17045
17045
  rootSelector: "group"
17046
17046
  });
@@ -17088,7 +17088,7 @@ const loaderTransition = {
17088
17088
  }, Button = polymorphicFactory((_props, ref) => {
17089
17089
  const props = useProps("Button", defaultProps$D, _props), {
17090
17090
  style: style2,
17091
- vars: vars2,
17091
+ vars,
17092
17092
  className,
17093
17093
  color: color2,
17094
17094
  disabled,
@@ -17117,7 +17117,7 @@ const loaderTransition = {
17117
17117
  classNames,
17118
17118
  styles,
17119
17119
  unstyled,
17120
- vars: vars2,
17120
+ vars,
17121
17121
  varsResolver: varsResolver$c
17122
17122
  }), hasLeftSection = !!leftSection, hasRightSection = !!rightSection;
17123
17123
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -17165,7 +17165,7 @@ const [CardProvider, useCardContext] = createSafeContext(
17165
17165
  );
17166
17166
  var __default__$c = { root: "m_e615b15f", section: "m_599a2148" };
17167
17167
  const classes$c = __default__$c, defaultProps$C = {}, CardSection = polymorphicFactory((_props, ref) => {
17168
- const props = useProps("CardSection", defaultProps$C, _props), { classNames, className, style: style2, styles, vars: vars2, withBorder, inheritPadding, mod, ...others } = props, ctx = useCardContext();
17168
+ const props = useProps("CardSection", defaultProps$C, _props), { classNames, className, style: style2, styles, vars, withBorder, inheritPadding, mod, ...others } = props, ctx = useCardContext();
17169
17169
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
17170
17170
  Box$1,
17171
17171
  {
@@ -17183,7 +17183,7 @@ const defaultProps$B = {}, varsResolver$b = (_2, { padding }) => ({
17183
17183
  "--card-padding": getSpacing(padding)
17184
17184
  }
17185
17185
  }), Card$1 = polymorphicFactory((_props, ref) => {
17186
- const props = useProps("Card", defaultProps$B, _props), { classNames, className, style: style2, styles, unstyled, vars: vars2, children: children2, padding, ...others } = props, getStyles2 = useStyles({
17186
+ const props = useProps("Card", defaultProps$B, _props), { classNames, className, style: style2, styles, unstyled, vars, children: children2, padding, ...others } = props, getStyles2 = useStyles({
17187
17187
  name: "Card",
17188
17188
  props,
17189
17189
  classes: classes$c,
@@ -17192,7 +17192,7 @@ const defaultProps$B = {}, varsResolver$b = (_2, { padding }) => ({
17192
17192
  classNames,
17193
17193
  styles,
17194
17194
  unstyled,
17195
- vars: vars2,
17195
+ vars,
17196
17196
  varsResolver: varsResolver$b
17197
17197
  }), _children = reactExports.Children.toArray(children2), content2 = _children.map((child, index2) => typeof child == "object" && child && "type" in child && child.type === CardSection ? reactExports.cloneElement(child, {
17198
17198
  "data-first-section": index2 === 0 || void 0,
@@ -17205,7 +17205,7 @@ Card$1.displayName = "@mantine/core/Card";
17205
17205
  Card$1.Section = CardSection;
17206
17206
  var __default__$b = { root: "m_4451eb3a" };
17207
17207
  const classes$b = __default__$b, defaultProps$A = {}, Center = polymorphicFactory((_props, ref) => {
17208
- const props = useProps("Center", defaultProps$A, _props), { classNames, className, style: style2, styles, unstyled, vars: vars2, inline: inline2, mod, ...others } = props, getStyles2 = useStyles({
17208
+ const props = useProps("Center", defaultProps$A, _props), { classNames, className, style: style2, styles, unstyled, vars, inline: inline2, mod, ...others } = props, getStyles2 = useStyles({
17209
17209
  name: "Center",
17210
17210
  props,
17211
17211
  classes: classes$b,
@@ -17214,7 +17214,7 @@ const classes$b = __default__$b, defaultProps$A = {}, Center = polymorphicFactor
17214
17214
  classNames,
17215
17215
  styles,
17216
17216
  unstyled,
17217
- vars: vars2
17217
+ vars
17218
17218
  });
17219
17219
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Box$1, { ref, mod: [{ inline: inline2 }, mod], ...getStyles2("root"), ...others });
17220
17220
  });
@@ -17232,7 +17232,7 @@ const classes$a = __default__$a, defaultProps$z = {}, varsResolver$a = (theme2,
17232
17232
  style: style2,
17233
17233
  styles,
17234
17234
  unstyled,
17235
- vars: vars2,
17235
+ vars,
17236
17236
  color: color2,
17237
17237
  block,
17238
17238
  variant,
@@ -17247,7 +17247,7 @@ const classes$a = __default__$a, defaultProps$z = {}, varsResolver$a = (theme2,
17247
17247
  classNames,
17248
17248
  styles,
17249
17249
  unstyled,
17250
- vars: vars2,
17250
+ vars,
17251
17251
  varsResolver: varsResolver$a
17252
17252
  });
17253
17253
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -17280,7 +17280,7 @@ const classes$9 = __default__$9, defaultProps$y = {
17280
17280
  style: style2,
17281
17281
  styles,
17282
17282
  unstyled,
17283
- vars: vars2,
17283
+ vars,
17284
17284
  color: color2,
17285
17285
  size: size2,
17286
17286
  radius,
@@ -17297,7 +17297,7 @@ const classes$9 = __default__$9, defaultProps$y = {
17297
17297
  classNames,
17298
17298
  styles,
17299
17299
  unstyled,
17300
- vars: vars2,
17300
+ vars,
17301
17301
  varsResolver: varsResolver$9
17302
17302
  });
17303
17303
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -17325,7 +17325,7 @@ const classes$8 = __default__$8, defaultProps$x = {}, varsResolver$8 = (_2, { si
17325
17325
  "--container-size": fluid ? void 0 : getSize(size2, "container-size")
17326
17326
  }
17327
17327
  }), Container$1 = factory((_props, ref) => {
17328
- const props = useProps("Container", defaultProps$x, _props), { classNames, className, style: style2, styles, unstyled, vars: vars2, fluid, mod, ...others } = props, getStyles2 = useStyles({
17328
+ const props = useProps("Container", defaultProps$x, _props), { classNames, className, style: style2, styles, unstyled, vars, fluid, mod, ...others } = props, getStyles2 = useStyles({
17329
17329
  name: "Container",
17330
17330
  classes: classes$8,
17331
17331
  props,
@@ -17334,7 +17334,7 @@ const classes$8 = __default__$8, defaultProps$x = {}, varsResolver$8 = (_2, { si
17334
17334
  classNames,
17335
17335
  styles,
17336
17336
  unstyled,
17337
- vars: vars2,
17337
+ vars,
17338
17338
  varsResolver: varsResolver$8
17339
17339
  });
17340
17340
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Box$1, { ref, mod: [{ fluid }, mod], ...getStyles2("root"), ...others });
@@ -17365,7 +17365,7 @@ const classes$7 = __default__$7, defaultProps$v = {
17365
17365
  style: style2,
17366
17366
  styles,
17367
17367
  unstyled,
17368
- vars: vars2,
17368
+ vars,
17369
17369
  color: color2,
17370
17370
  orientation,
17371
17371
  label,
@@ -17381,7 +17381,7 @@ const classes$7 = __default__$7, defaultProps$v = {
17381
17381
  classNames,
17382
17382
  styles,
17383
17383
  unstyled,
17384
- vars: vars2,
17384
+ vars,
17385
17385
  varsResolver: varsResolver$7
17386
17386
  });
17387
17387
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -17403,7 +17403,7 @@ const [DrawerProvider, useDrawerContext] = createSafeContext(
17403
17403
  );
17404
17404
  var __default__$6 = { root: "m_f11b401e", header: "m_5a7c2c9", content: "m_b8a05bbd", inner: "m_31cd769a" };
17405
17405
  const classes$6 = __default__$6, defaultProps$u = {}, DrawerBody = factory((_props, ref) => {
17406
- const props = useProps("DrawerBody", defaultProps$u, _props), { classNames, className, style: style2, styles, vars: vars2, ...others } = props, ctx = useDrawerContext();
17406
+ const props = useProps("DrawerBody", defaultProps$u, _props), { classNames, className, style: style2, styles, vars, ...others } = props, ctx = useDrawerContext();
17407
17407
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
17408
17408
  ModalBaseBody,
17409
17409
  {
@@ -17416,7 +17416,7 @@ const classes$6 = __default__$6, defaultProps$u = {}, DrawerBody = factory((_pro
17416
17416
  DrawerBody.classes = classes$6;
17417
17417
  DrawerBody.displayName = "@mantine/core/DrawerBody";
17418
17418
  const defaultProps$t = {}, DrawerCloseButton = factory((_props, ref) => {
17419
- const props = useProps("DrawerCloseButton", defaultProps$t, _props), { classNames, className, style: style2, styles, vars: vars2, ...others } = props, ctx = useDrawerContext();
17419
+ const props = useProps("DrawerCloseButton", defaultProps$t, _props), { classNames, className, style: style2, styles, vars, ...others } = props, ctx = useDrawerContext();
17420
17420
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
17421
17421
  ModalBaseCloseButton,
17422
17422
  {
@@ -17429,7 +17429,7 @@ const defaultProps$t = {}, DrawerCloseButton = factory((_props, ref) => {
17429
17429
  DrawerCloseButton.classes = classes$6;
17430
17430
  DrawerCloseButton.displayName = "@mantine/core/DrawerCloseButton";
17431
17431
  const defaultProps$s = {}, DrawerContent = factory((_props, ref) => {
17432
- const props = useProps("DrawerContent", defaultProps$s, _props), { classNames, className, style: style2, styles, vars: vars2, children: children2, radius, ...others } = props, ctx = useDrawerContext(), Scroll = ctx.scrollAreaComponent || NativeScrollArea;
17432
+ const props = useProps("DrawerContent", defaultProps$s, _props), { classNames, className, style: style2, styles, vars, children: children2, radius, ...others } = props, ctx = useDrawerContext(), Scroll = ctx.scrollAreaComponent || NativeScrollArea;
17433
17433
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
17434
17434
  ModalBaseContent,
17435
17435
  {
@@ -17445,7 +17445,7 @@ const defaultProps$s = {}, DrawerContent = factory((_props, ref) => {
17445
17445
  DrawerContent.classes = classes$6;
17446
17446
  DrawerContent.displayName = "@mantine/core/DrawerContent";
17447
17447
  const defaultProps$r = {}, DrawerHeader = factory((_props, ref) => {
17448
- const props = useProps("DrawerHeader", defaultProps$r, _props), { classNames, className, style: style2, styles, vars: vars2, ...others } = props, ctx = useDrawerContext();
17448
+ const props = useProps("DrawerHeader", defaultProps$r, _props), { classNames, className, style: style2, styles, vars, ...others } = props, ctx = useDrawerContext();
17449
17449
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
17450
17450
  ModalBaseHeader,
17451
17451
  {
@@ -17458,7 +17458,7 @@ const defaultProps$r = {}, DrawerHeader = factory((_props, ref) => {
17458
17458
  DrawerHeader.classes = classes$6;
17459
17459
  DrawerHeader.displayName = "@mantine/core/DrawerHeader";
17460
17460
  const defaultProps$q = {}, DrawerOverlay = factory((_props, ref) => {
17461
- const props = useProps("DrawerOverlay", defaultProps$q, _props), { classNames, className, style: style2, styles, vars: vars2, ...others } = props, ctx = useDrawerContext();
17461
+ const props = useProps("DrawerOverlay", defaultProps$q, _props), { classNames, className, style: style2, styles, vars, ...others } = props, ctx = useDrawerContext();
17462
17462
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
17463
17463
  ModalBaseOverlay,
17464
17464
  {
@@ -17520,7 +17520,7 @@ const transitions = {
17520
17520
  style: style2,
17521
17521
  styles,
17522
17522
  unstyled,
17523
- vars: vars2,
17523
+ vars,
17524
17524
  scrollAreaComponent,
17525
17525
  position,
17526
17526
  transitionProps,
@@ -17535,7 +17535,7 @@ const transitions = {
17535
17535
  classNames,
17536
17536
  styles,
17537
17537
  unstyled,
17538
- vars: vars2,
17538
+ vars,
17539
17539
  varsResolver: varsResolver$6
17540
17540
  }), drawerTransition = (dir === "rtl" ? rtlTransitions : transitions)[position];
17541
17541
  return /* @__PURE__ */ jsxRuntimeExports.jsx(DrawerProvider, { value: { scrollAreaComponent, getStyles: getStyles2, radius }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -17552,7 +17552,7 @@ const transitions = {
17552
17552
  DrawerRoot.classes = classes$6;
17553
17553
  DrawerRoot.displayName = "@mantine/core/DrawerRoot";
17554
17554
  const defaultProps$o = {}, DrawerTitle = factory((_props, ref) => {
17555
- const props = useProps("DrawerTitle", defaultProps$o, _props), { classNames, className, style: style2, styles, vars: vars2, ...others } = props, ctx = useDrawerContext();
17555
+ const props = useProps("DrawerTitle", defaultProps$o, _props), { classNames, className, style: style2, styles, vars, ...others } = props, ctx = useDrawerContext();
17556
17556
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
17557
17557
  ModalBaseTitle,
17558
17558
  {
@@ -17678,7 +17678,7 @@ const [MenuContextProvider, useMenuContext] = createSafeContext(
17678
17678
  );
17679
17679
  var __default__$5 = { dropdown: "m_dc9b7c9f", label: "m_9bfac126", divider: "m_efdf90cb", item: "m_99ac2aa1", itemLabel: "m_5476e0d3", itemSection: "m_8b75e504" };
17680
17680
  const classes$5 = __default__$5, defaultProps$j = {}, MenuDivider = factory((props, ref) => {
17681
- const { classNames, className, style: style2, styles, vars: vars2, ...others } = useProps(
17681
+ const { classNames, className, style: style2, styles, vars, ...others } = useProps(
17682
17682
  "MenuDivider",
17683
17683
  defaultProps$j,
17684
17684
  props
@@ -17700,7 +17700,7 @@ const defaultProps$i = {}, MenuDropdown = factory((props, ref) => {
17700
17700
  className,
17701
17701
  style: style2,
17702
17702
  styles,
17703
- vars: vars2,
17703
+ vars,
17704
17704
  onMouseEnter,
17705
17705
  onMouseLeave,
17706
17706
  children: children2,
@@ -17748,7 +17748,7 @@ const defaultProps$h = {}, MenuItem = polymorphicFactory((props, ref) => {
17748
17748
  className,
17749
17749
  style: style2,
17750
17750
  styles,
17751
- vars: vars2,
17751
+ vars,
17752
17752
  color: color2,
17753
17753
  closeMenuOnClick,
17754
17754
  leftSection,
@@ -17806,7 +17806,7 @@ const defaultProps$h = {}, MenuItem = polymorphicFactory((props, ref) => {
17806
17806
  MenuItem.classes = classes$5;
17807
17807
  MenuItem.displayName = "@mantine/core/MenuItem";
17808
17808
  const defaultProps$g = {}, MenuLabel = factory((props, ref) => {
17809
- const { classNames, className, style: style2, styles, vars: vars2, ...others } = useProps(
17809
+ const { classNames, className, style: style2, styles, vars, ...others } = useProps(
17810
17810
  "MenuLabel",
17811
17811
  defaultProps$g,
17812
17812
  props
@@ -17875,7 +17875,7 @@ function Menu(_props) {
17875
17875
  styles,
17876
17876
  unstyled,
17877
17877
  variant,
17878
- vars: vars2,
17878
+ vars,
17879
17879
  menuItemTabIndex,
17880
17880
  keepMounted,
17881
17881
  ...others
@@ -17959,7 +17959,7 @@ const [ModalProvider, useModalContext] = createSafeContext(
17959
17959
  );
17960
17960
  var __default__$4 = { root: "m_9df02822", content: "m_54c44539", inner: "m_1f958f16", header: "m_d0e2b9cd" };
17961
17961
  const classes$4 = __default__$4, defaultProps$d = {}, ModalBody = factory((_props, ref) => {
17962
- const props = useProps("ModalBody", defaultProps$d, _props), { classNames, className, style: style2, styles, vars: vars2, ...others } = props, ctx = useModalContext();
17962
+ const props = useProps("ModalBody", defaultProps$d, _props), { classNames, className, style: style2, styles, vars, ...others } = props, ctx = useModalContext();
17963
17963
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
17964
17964
  ModalBaseBody,
17965
17965
  {
@@ -17972,7 +17972,7 @@ const classes$4 = __default__$4, defaultProps$d = {}, ModalBody = factory((_prop
17972
17972
  ModalBody.classes = classes$4;
17973
17973
  ModalBody.displayName = "@mantine/core/ModalBody";
17974
17974
  const defaultProps$c = {}, ModalContent = factory((_props, ref) => {
17975
- const props = useProps("ModalContent", defaultProps$c, _props), { classNames, className, style: style2, styles, vars: vars2, children: children2, ...others } = props, ctx = useModalContext(), Scroll = ctx.scrollAreaComponent || NativeScrollArea;
17975
+ const props = useProps("ModalContent", defaultProps$c, _props), { classNames, className, style: style2, styles, vars, children: children2, ...others } = props, ctx = useModalContext(), Scroll = ctx.scrollAreaComponent || NativeScrollArea;
17976
17976
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
17977
17977
  ModalBaseContent,
17978
17978
  {
@@ -17997,7 +17997,7 @@ const defaultProps$c = {}, ModalContent = factory((_props, ref) => {
17997
17997
  ModalContent.classes = classes$4;
17998
17998
  ModalContent.displayName = "@mantine/core/ModalContent";
17999
17999
  const defaultProps$b = {}, ModalOverlay = factory((_props, ref) => {
18000
- const props = useProps("ModalOverlay", defaultProps$b, _props), { classNames, className, style: style2, styles, vars: vars2, ...others } = props, ctx = useModalContext();
18000
+ const props = useProps("ModalOverlay", defaultProps$b, _props), { classNames, className, style: style2, styles, vars, ...others } = props, ctx = useModalContext();
18001
18001
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
18002
18002
  ModalBaseOverlay,
18003
18003
  {
@@ -18035,7 +18035,7 @@ const defaultProps$a = {
18035
18035
  style: style2,
18036
18036
  styles,
18037
18037
  unstyled,
18038
- vars: vars2,
18038
+ vars,
18039
18039
  yOffset,
18040
18040
  scrollAreaComponent,
18041
18041
  radius,
@@ -18053,7 +18053,7 @@ const defaultProps$a = {
18053
18053
  classNames,
18054
18054
  styles,
18055
18055
  unstyled,
18056
- vars: vars2,
18056
+ vars,
18057
18057
  varsResolver: varsResolver$5
18058
18058
  });
18059
18059
  return /* @__PURE__ */ jsxRuntimeExports.jsx(ModalProvider, { value: { yOffset, scrollAreaComponent, getStyles: getStyles2, fullScreen }, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -18156,7 +18156,7 @@ const classes$3 = __default__$3, defaultProps$9 = {
18156
18156
  zIndex,
18157
18157
  disabled,
18158
18158
  variant,
18159
- vars: vars2,
18159
+ vars,
18160
18160
  portalProps,
18161
18161
  ...others
18162
18162
  } = props, theme2 = useMantineTheme(), getStyles2 = useStyles({
@@ -18169,7 +18169,7 @@ const classes$3 = __default__$3, defaultProps$9 = {
18169
18169
  styles,
18170
18170
  unstyled,
18171
18171
  rootSelector: "tooltip",
18172
- vars: vars2,
18172
+ vars,
18173
18173
  varsResolver: varsResolver$4
18174
18174
  }), { handleMouseMove, x: x2, y: y2, opened, boundaryRef, floating, setOpened } = useFloatingTooltip({
18175
18175
  offset: offset2,
@@ -18340,7 +18340,7 @@ const defaultProps$7 = {
18340
18340
  inline: inline2,
18341
18341
  variant,
18342
18342
  keepMounted,
18343
- vars: vars2,
18343
+ vars,
18344
18344
  portalProps,
18345
18345
  mod,
18346
18346
  floatingStrategy,
@@ -18368,7 +18368,7 @@ const defaultProps$7 = {
18368
18368
  styles,
18369
18369
  unstyled,
18370
18370
  rootSelector: "tooltip",
18371
- vars: vars2,
18371
+ vars,
18372
18372
  varsResolver: varsResolver$3
18373
18373
  });
18374
18374
  if (!isElement$1(children2))
@@ -18453,7 +18453,7 @@ const defaultProps$6 = {
18453
18453
  classNames,
18454
18454
  styles,
18455
18455
  unstyled,
18456
- vars: vars2,
18456
+ vars,
18457
18457
  dropdownOpened,
18458
18458
  defaultDropdownOpened,
18459
18459
  onDropdownClose,
@@ -18644,7 +18644,7 @@ const classes$2 = __default__$2, defaultProps$5 = {
18644
18644
  style: style2,
18645
18645
  styles,
18646
18646
  unstyled,
18647
- vars: vars2,
18647
+ vars,
18648
18648
  align,
18649
18649
  justify,
18650
18650
  gap,
@@ -18659,7 +18659,7 @@ const classes$2 = __default__$2, defaultProps$5 = {
18659
18659
  classNames,
18660
18660
  styles,
18661
18661
  unstyled,
18662
- vars: vars2,
18662
+ vars,
18663
18663
  varsResolver: varsResolver$2
18664
18664
  });
18665
18665
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Box$1, { ref, ...getStyles2("root"), variant, ...others });
@@ -18742,7 +18742,7 @@ const defaultProps$2 = {}, TabsTab = factory((_props, ref) => {
18742
18742
  style: style2,
18743
18743
  classNames,
18744
18744
  styles,
18745
- vars: vars2,
18745
+ vars,
18746
18746
  mod,
18747
18747
  ...others
18748
18748
  } = props, theme2 = useMantineTheme(), { dir } = useDirection(), ctx = useTabsContext(), active = value === ctx.value, activateTab = (event) => {
@@ -18831,7 +18831,7 @@ const VALUE_ERROR = "Tabs.Tab or Tabs.Panel component was rendered with invalid
18831
18831
  unstyled,
18832
18832
  className,
18833
18833
  style: style2,
18834
- vars: vars2,
18834
+ vars,
18835
18835
  autoContrast,
18836
18836
  mod,
18837
18837
  ...others
@@ -18849,7 +18849,7 @@ const VALUE_ERROR = "Tabs.Tab or Tabs.Panel component was rendered with invalid
18849
18849
  classNames,
18850
18850
  styles,
18851
18851
  unstyled,
18852
- vars: vars2,
18852
+ vars,
18853
18853
  varsResolver: varsResolver$1
18854
18854
  });
18855
18855
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -18936,7 +18936,7 @@ const classes = __default__, defaultProps = {
18936
18936
  styles,
18937
18937
  unstyled,
18938
18938
  order,
18939
- vars: vars2,
18939
+ vars,
18940
18940
  size: size2,
18941
18941
  variant,
18942
18942
  lineClamp,
@@ -18952,7 +18952,7 @@ const classes = __default__, defaultProps = {
18952
18952
  classNames,
18953
18953
  styles,
18954
18954
  unstyled,
18955
- vars: vars2,
18955
+ vars,
18956
18956
  varsResolver
18957
18957
  });
18958
18958
  return [1, 2, 3, 4, 5, 6].includes(order) ? /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -18970,7 +18970,7 @@ const classes = __default__, defaultProps = {
18970
18970
  });
18971
18971
  Title.classes = classes;
18972
18972
  Title.displayName = "@mantine/core/Title";
18973
- var content = "_1u4wf800", image = "_1u4wf801", inner = "_1u4wf802", root$1 = "_1u4wf803", description$1 = "_1u4wf804", title$1 = "_1u4wf805";
18973
+ var content = "_1u4wf800", image = "_1u4wf801", inner = "_1u4wf802", root$1 = "_1u4wf803", description$1 = "_1u4wf804", title$2 = "_1u4wf805";
18974
18974
  function NotFound() {
18975
18975
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Container$1, { className: root$1, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: inner, children: [
18976
18976
  /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 362 145", className: image, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -18981,7 +18981,7 @@ function NotFound() {
18981
18981
  }
18982
18982
  ) }),
18983
18983
  /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: content, children: [
18984
- /* @__PURE__ */ jsxRuntimeExports.jsx(Title, { className: title$1, children: "Nothing to see here" }),
18984
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Title, { className: title$2, children: "Nothing to see here" }),
18985
18985
  /* @__PURE__ */ jsxRuntimeExports.jsx(Text$1, { c: "dimmed", size: "lg", ta: "center", className: description$1, children: "Page you are trying to open does not exist. You may have mistyped the address, or the page has been moved to another URL. If you think this is an error contact support." }),
18986
18986
  /* @__PURE__ */ jsxRuntimeExports.jsx(Group, { justify: "center", children: /* @__PURE__ */ jsxRuntimeExports.jsx(Button, { component: Link$1, to: "/", search: !0, startTransition: !0, size: "md", children: "Take me back to home page" }) })
18987
18987
  ] })
@@ -20641,7 +20641,7 @@ function extend(parent, definition) {
20641
20641
  prototype[key] = definition[key];
20642
20642
  return prototype;
20643
20643
  }
20644
- function Color$1() {
20644
+ function Color() {
20645
20645
  }
20646
20646
  var darker = 0.7, brighter = 1 / darker, reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`), named = {
20647
20647
  aliceblue: 15792383,
@@ -20793,9 +20793,9 @@ var darker = 0.7, brighter = 1 / darker, reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s
20793
20793
  yellow: 16776960,
20794
20794
  yellowgreen: 10145074
20795
20795
  };
20796
- define(Color$1, color$1, {
20797
- copy(channels2) {
20798
- return Object.assign(new this.constructor(), this, channels2);
20796
+ define(Color, color$1, {
20797
+ copy(channels) {
20798
+ return Object.assign(new this.constructor(), this, channels);
20799
20799
  },
20800
20800
  displayable() {
20801
20801
  return this.rgb().displayable();
@@ -20831,7 +20831,7 @@ function rgba$1(r2, g2, b2, a) {
20831
20831
  return a <= 0 && (r2 = g2 = b2 = NaN), new Rgb(r2, g2, b2, a);
20832
20832
  }
20833
20833
  function rgbConvert(o2) {
20834
- return o2 instanceof Color$1 || (o2 = color$1(o2)), o2 ? (o2 = o2.rgb(), new Rgb(o2.r, o2.g, o2.b, o2.opacity)) : new Rgb();
20834
+ return o2 instanceof Color || (o2 = color$1(o2)), o2 ? (o2 = o2.rgb(), new Rgb(o2.r, o2.g, o2.b, o2.opacity)) : new Rgb();
20835
20835
  }
20836
20836
  function rgb(r2, g2, b2, opacity) {
20837
20837
  return arguments.length === 1 ? rgbConvert(r2) : new Rgb(r2, g2, b2, opacity ?? 1);
@@ -20839,7 +20839,7 @@ function rgb(r2, g2, b2, opacity) {
20839
20839
  function Rgb(r2, g2, b2, opacity) {
20840
20840
  this.r = +r2, this.g = +g2, this.b = +b2, this.opacity = +opacity;
20841
20841
  }
20842
- define(Rgb, rgb, extend(Color$1, {
20842
+ define(Rgb, rgb, extend(Color, {
20843
20843
  brighter(k2) {
20844
20844
  return k2 = k2 == null ? brighter : Math.pow(brighter, k2), new Rgb(this.r * k2, this.g * k2, this.b * k2, this.opacity);
20845
20845
  },
@@ -20887,7 +20887,7 @@ function hsla$1(h2, s2, l2, a) {
20887
20887
  function hslConvert(o2) {
20888
20888
  if (o2 instanceof Hsl)
20889
20889
  return new Hsl(o2.h, o2.s, o2.l, o2.opacity);
20890
- if (o2 instanceof Color$1 || (o2 = color$1(o2)), !o2)
20890
+ if (o2 instanceof Color || (o2 = color$1(o2)), !o2)
20891
20891
  return new Hsl();
20892
20892
  if (o2 instanceof Hsl)
20893
20893
  return o2;
@@ -20901,7 +20901,7 @@ function hsl(h2, s2, l2, opacity) {
20901
20901
  function Hsl(h2, s2, l2, opacity) {
20902
20902
  this.h = +h2, this.s = +s2, this.l = +l2, this.opacity = +opacity;
20903
20903
  }
20904
- define(Hsl, hsl, extend(Color$1, {
20904
+ define(Hsl, hsl, extend(Color, {
20905
20905
  brighter(k2) {
20906
20906
  return k2 = k2 == null ? brighter : Math.pow(brighter, k2), new Hsl(this.h, this.s, this.l * k2, this.opacity);
20907
20907
  },
@@ -23364,10 +23364,10 @@ function XYResizer({ domNode, nodeId, getStoreItems, onChange, onEnd }) {
23364
23364
  const { transform: transform2, snapGrid, snapToGrid, nodeOrigin: storeNodeOrigin } = getStoreItems(), pointerPosition = getPointerPosition(event.sourceEvent, { transform: transform2, snapGrid, snapToGrid }), childChanges = [];
23365
23365
  if (!node)
23366
23366
  return;
23367
- const { x: prevX, y: prevY, width: prevWidth, height: prevHeight } = prevValues, change2 = {}, nodeOrigin = node.origin ?? storeNodeOrigin, { width, height, x: x2, y: y2 } = getDimensionsAfterResize(startValues, controlDirection, pointerPosition, boundaries, keepAspectRatio, nodeOrigin, parentExtent, childExtent), isWidthChange = width !== prevWidth, isHeightChange = height !== prevHeight, isXPosChange = x2 !== prevX && isWidthChange, isYPosChange = y2 !== prevY && isHeightChange;
23367
+ const { x: prevX, y: prevY, width: prevWidth, height: prevHeight } = prevValues, change = {}, nodeOrigin = node.origin ?? storeNodeOrigin, { width, height, x: x2, y: y2 } = getDimensionsAfterResize(startValues, controlDirection, pointerPosition, boundaries, keepAspectRatio, nodeOrigin, parentExtent, childExtent), isWidthChange = width !== prevWidth, isHeightChange = height !== prevHeight, isXPosChange = x2 !== prevX && isWidthChange, isYPosChange = y2 !== prevY && isHeightChange;
23368
23368
  if (!isXPosChange && !isYPosChange && !isWidthChange && !isHeightChange)
23369
23369
  return;
23370
- if ((isXPosChange || isYPosChange || nodeOrigin[0] === 1 || nodeOrigin[1] == 1) && (change2.x = isXPosChange ? x2 : prevValues.x, change2.y = isYPosChange ? y2 : prevValues.y, prevValues.x = change2.x, prevValues.y = change2.y, parentNode && node.expandParent && (change2.x && change2.x < 0 && (prevValues.x = 0, startValues.x = startValues.x - change2.x), change2.y && change2.y < 0 && (prevValues.y = 0, startValues.y = startValues.y - change2.y)), childNodes.length > 0)) {
23370
+ if ((isXPosChange || isYPosChange || nodeOrigin[0] === 1 || nodeOrigin[1] == 1) && (change.x = isXPosChange ? x2 : prevValues.x, change.y = isYPosChange ? y2 : prevValues.y, prevValues.x = change.x, prevValues.y = change.y, parentNode && node.expandParent && (change.x && change.x < 0 && (prevValues.x = 0, startValues.x = startValues.x - change.x), change.y && change.y < 0 && (prevValues.y = 0, startValues.y = startValues.y - change.y)), childNodes.length > 0)) {
23371
23371
  const xChange = x2 - prevX, yChange = y2 - prevY;
23372
23372
  for (const childNode of childNodes)
23373
23373
  childNode.position = {
@@ -23375,7 +23375,7 @@ function XYResizer({ domNode, nodeId, getStoreItems, onChange, onEnd }) {
23375
23375
  y: childNode.position.y - yChange + nodeOrigin[1] * (height - prevHeight)
23376
23376
  }, childChanges.push(childNode);
23377
23377
  }
23378
- (isWidthChange || isHeightChange) && (change2.width = isWidthChange ? width : prevValues.width, change2.height = isHeightChange ? height : prevValues.height, prevValues.width = change2.width, prevValues.height = change2.height);
23378
+ (isWidthChange || isHeightChange) && (change.width = isWidthChange ? width : prevValues.width, change.height = isHeightChange ? height : prevValues.height, prevValues.width = change.width, prevValues.height = change.height);
23379
23379
  const direction = getResizeDirection({
23380
23380
  width: prevValues.width,
23381
23381
  prevWidth,
@@ -23384,7 +23384,7 @@ function XYResizer({ domNode, nodeId, getStoreItems, onChange, onEnd }) {
23384
23384
  affectsX: controlDirection.affectsX,
23385
23385
  affectsY: controlDirection.affectsY
23386
23386
  }), nextValues = { ...prevValues, direction };
23387
- shouldResize?.(event, nextValues) !== !1 && (onResize?.(event, nextValues), onChange(change2, childChanges));
23387
+ shouldResize?.(event, nextValues) !== !1 && (onResize?.(event, nextValues), onChange(change, childChanges));
23388
23388
  }).on("end", (event) => {
23389
23389
  onResizeEnd?.(event, { ...prevValues }), onEnd?.();
23390
23390
  });
@@ -23736,15 +23736,15 @@ const useViewportHelper = () => {
23736
23736
  };
23737
23737
  function applyChanges(changes, elements) {
23738
23738
  const updatedElements = [], changesMap = /* @__PURE__ */ new Map();
23739
- for (const change2 of changes)
23740
- if (change2.type === "add") {
23741
- updatedElements.push(change2.item);
23739
+ for (const change of changes)
23740
+ if (change.type === "add") {
23741
+ updatedElements.push(change.item);
23742
23742
  continue;
23743
- } else if (change2.type === "remove" || change2.type === "replace")
23744
- changesMap.set(change2.id, [change2]);
23743
+ } else if (change.type === "remove" || change.type === "replace")
23744
+ changesMap.set(change.id, [change]);
23745
23745
  else {
23746
- const elementChanges = changesMap.get(change2.id);
23747
- elementChanges ? elementChanges.push(change2) : changesMap.set(change2.id, [change2]);
23746
+ const elementChanges = changesMap.get(change.id);
23747
+ elementChanges ? elementChanges.push(change) : changesMap.set(change.id, [change]);
23748
23748
  }
23749
23749
  for (const element of elements) {
23750
23750
  const changes2 = changesMap.get(element.id);
@@ -23759,24 +23759,24 @@ function applyChanges(changes, elements) {
23759
23759
  continue;
23760
23760
  }
23761
23761
  const updatedElement = { ...element };
23762
- for (const change2 of changes2)
23763
- applyChange(change2, updatedElement);
23762
+ for (const change of changes2)
23763
+ applyChange(change, updatedElement);
23764
23764
  updatedElements.push(updatedElement);
23765
23765
  }
23766
23766
  return updatedElements;
23767
23767
  }
23768
- function applyChange(change2, element) {
23769
- switch (change2.type) {
23768
+ function applyChange(change, element) {
23769
+ switch (change.type) {
23770
23770
  case "select": {
23771
- element.selected = change2.selected;
23771
+ element.selected = change.selected;
23772
23772
  break;
23773
23773
  }
23774
23774
  case "position": {
23775
- typeof change2.position < "u" && (element.position = change2.position), typeof change2.dragging < "u" && (element.dragging = change2.dragging);
23775
+ typeof change.position < "u" && (element.position = change.position), typeof change.dragging < "u" && (element.dragging = change.dragging);
23776
23776
  break;
23777
23777
  }
23778
23778
  case "dimensions": {
23779
- typeof change2.dimensions < "u" && (element.measured ??= {}, element.measured.width = change2.dimensions.width, element.measured.height = change2.dimensions.height, change2.setAttributes && (element.width = change2.dimensions.width, element.height = change2.dimensions.height)), typeof change2.resizing == "boolean" && (element.resizing = change2.resizing);
23779
+ typeof change.dimensions < "u" && (element.measured ??= {}, element.measured.width = change.dimensions.width, element.measured.height = change.dimensions.height, change.setAttributes && (element.width = change.dimensions.width, element.height = change.dimensions.height)), typeof change.resizing == "boolean" && (element.resizing = change.resizing);
23780
23780
  break;
23781
23781
  }
23782
23782
  }
@@ -25073,13 +25073,13 @@ const GraphView = reactExports.memo(GraphViewComponent), getInitialState = ({ no
25073
25073
  updateNodePositions: (nodeDragItems, dragging = !1) => {
25074
25074
  const parentExpandChildren = [], changes = [];
25075
25075
  for (const [id2, dragItem] of nodeDragItems) {
25076
- const change2 = {
25076
+ const change = {
25077
25077
  id: id2,
25078
25078
  type: "position",
25079
25079
  position: dragItem.position,
25080
25080
  dragging
25081
25081
  };
25082
- dragItem?.expandParent && dragItem?.parentId && change2.position && (parentExpandChildren.push({
25082
+ dragItem?.expandParent && dragItem?.parentId && change.position && (parentExpandChildren.push({
25083
25083
  id: id2,
25084
25084
  parentId: dragItem.parentId,
25085
25085
  rect: {
@@ -25087,7 +25087,7 @@ const GraphView = reactExports.memo(GraphViewComponent), getInitialState = ({ no
25087
25087
  width: dragItem.measured.width,
25088
25088
  height: dragItem.measured.height
25089
25089
  }
25090
- }), change2.position.x = Math.max(0, change2.position.x), change2.position.y = Math.max(0, change2.position.y)), changes.push(change2);
25090
+ }), change.position.x = Math.max(0, change.position.x), change.position.y = Math.max(0, change.position.y)), changes.push(change);
25091
25091
  }
25092
25092
  if (parentExpandChildren.length > 0) {
25093
25093
  const { nodeLookup, parentLookup } = get2(), parentExpandChanges = handleExpandParent(parentExpandChildren, nodeLookup, parentLookup);
@@ -25497,22 +25497,22 @@ function ResizeControl({ nodeId, position, variant = ResizeControlVariant.Handle
25497
25497
  nodeOrigin
25498
25498
  };
25499
25499
  },
25500
- onChange: (change2, childChanges) => {
25501
- const { triggerNodeChanges, nodeLookup, parentLookup, nodeOrigin } = store.getState(), changes = [], nextPosition = { x: change2.x, y: change2.y }, node = nodeLookup.get(id2);
25500
+ onChange: (change, childChanges) => {
25501
+ const { triggerNodeChanges, nodeLookup, parentLookup, nodeOrigin } = store.getState(), changes = [], nextPosition = { x: change.x, y: change.y }, node = nodeLookup.get(id2);
25502
25502
  if (node && node.expandParent && node.parentId) {
25503
25503
  const child = {
25504
25504
  id: node.id,
25505
25505
  parentId: node.parentId,
25506
25506
  rect: {
25507
- width: change2.width ?? node.measured.width,
25508
- height: change2.height ?? node.measured.height,
25507
+ width: change.width ?? node.measured.width,
25508
+ height: change.height ?? node.measured.height,
25509
25509
  ...evaluateAbsolutePosition({
25510
- x: change2.x ?? node.position.x,
25511
- y: change2.y ?? node.position.y
25510
+ x: change.x ?? node.position.x,
25511
+ y: change.y ?? node.position.y
25512
25512
  }, node.parentId, nodeLookup, node.origin ?? nodeOrigin)
25513
25513
  }
25514
25514
  }, parentExpandChanges = handleExpandParent([child], nodeLookup, parentLookup, nodeOrigin);
25515
- changes.push(...parentExpandChanges), nextPosition.x = change2.x ? Math.max(0, change2.x) : void 0, nextPosition.y = change2.y ? Math.max(0, change2.y) : void 0;
25515
+ changes.push(...parentExpandChanges), nextPosition.x = change.x ? Math.max(0, change.x) : void 0, nextPosition.y = change.y ? Math.max(0, change.y) : void 0;
25516
25516
  }
25517
25517
  if (nextPosition.x !== void 0 && nextPosition.y !== void 0) {
25518
25518
  const positionChange = {
@@ -25522,15 +25522,15 @@ function ResizeControl({ nodeId, position, variant = ResizeControlVariant.Handle
25522
25522
  };
25523
25523
  changes.push(positionChange);
25524
25524
  }
25525
- if (change2.width !== void 0 && change2.height !== void 0) {
25525
+ if (change.width !== void 0 && change.height !== void 0) {
25526
25526
  const dimensionChange = {
25527
25527
  id: id2,
25528
25528
  type: "dimensions",
25529
25529
  resizing: !0,
25530
25530
  setAttributes: !0,
25531
25531
  dimensions: {
25532
- width: change2.width,
25533
- height: change2.height
25532
+ width: change.width,
25533
+ height: change.height
25534
25534
  }
25535
25535
  };
25536
25536
  changes.push(dimensionChange);
@@ -25603,7 +25603,30 @@ function clsx() {
25603
25603
  (e2 = arguments[f2]) && (t2 = r(e2)) && (n2 && (n2 += " "), n2 += t2);
25604
25604
  return n2;
25605
25605
  }
25606
- var cssReactFlow = "_17jps3v0", cssDisablePan = "_17jps3v1", cssTransparentBg = "_17jps3v2", cssNoControls = "_17jps3v3";
25606
+ var keepAspectRatioContainer = "_17jps3v0", cssReactFlow = "_17jps3v1", cssDisablePan = "_17jps3v2", cssTransparentBg = "_17jps3v3", cssNoControls = "_17jps3v4";
25607
+ function KeepAspectRatioContainer({
25608
+ children: children2,
25609
+ width,
25610
+ height,
25611
+ enabled,
25612
+ className,
25613
+ style: style2,
25614
+ ...rest
25615
+ }) {
25616
+ return /* @__PURE__ */ jsxRuntimeExports.jsx(
25617
+ Box$1,
25618
+ {
25619
+ ...rest,
25620
+ className: clsx(keepAspectRatioContainer, className),
25621
+ style: enabled ? {
25622
+ ...style2,
25623
+ aspectRatio: `${Math.ceil(width)}/${Math.ceil(height)}`,
25624
+ maxHeight: Math.ceil(height)
25625
+ } : style2,
25626
+ children: children2
25627
+ }
25628
+ );
25629
+ }
25607
25630
  function EnsureMantine({ children: children2 }) {
25608
25631
  if (!reactExports.useContext(MantineContext))
25609
25632
  throw new Error("LikeC4Diagram must be a child of MantineProvider");
@@ -25918,10 +25941,6 @@ function useUpdateEffect$1(effect, deps) {
25918
25941
  const isFirstMount = useFirstMountState();
25919
25942
  reactExports.useEffect(isFirstMount ? noop$2 : effect, deps);
25920
25943
  }
25921
- function useDebouncedState(initialState2, delay2, maxWait = 0) {
25922
- const [state, setState] = reactExports.useState(initialState2);
25923
- return [state, useDebouncedCallback(setState, [], delay2, maxWait)];
25924
- }
25925
25944
  const noop$1 = () => {
25926
25945
  };
25927
25946
  function useUpdateEffect(callback, deps, equalityFn, effectHook) {
@@ -26069,396 +26088,6 @@ const blue$1 = {
26069
26088
  font: "Helvetica",
26070
26089
  shadow: "#0a0a0a"
26071
26090
  };
26072
- var safeStableStringify = { exports: {} };
26073
- (function(module, exports) {
26074
- const { hasOwnProperty: hasOwnProperty2 } = Object.prototype, stringify = configure();
26075
- stringify.configure = configure, stringify.stringify = stringify, stringify.default = stringify, exports.stringify = stringify, exports.configure = configure, module.exports = stringify;
26076
- const strEscapeSequencesRegExp = /[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/;
26077
- function strEscape(str) {
26078
- return str.length < 5e3 && !strEscapeSequencesRegExp.test(str) ? `"${str}"` : JSON.stringify(str);
26079
- }
26080
- function insertSort(array2) {
26081
- if (array2.length > 200)
26082
- return array2.sort();
26083
- for (let i2 = 1; i2 < array2.length; i2++) {
26084
- const currentValue = array2[i2];
26085
- let position = i2;
26086
- for (; position !== 0 && array2[position - 1] > currentValue; )
26087
- array2[position] = array2[position - 1], position--;
26088
- array2[position] = currentValue;
26089
- }
26090
- return array2;
26091
- }
26092
- const typedArrayPrototypeGetSymbolToStringTag = Object.getOwnPropertyDescriptor(
26093
- Object.getPrototypeOf(
26094
- Object.getPrototypeOf(
26095
- new Int8Array()
26096
- )
26097
- ),
26098
- Symbol.toStringTag
26099
- ).get;
26100
- function isTypedArrayWithEntries(value) {
26101
- return typedArrayPrototypeGetSymbolToStringTag.call(value) !== void 0 && value.length !== 0;
26102
- }
26103
- function stringifyTypedArray(array2, separator, maximumBreadth) {
26104
- array2.length < maximumBreadth && (maximumBreadth = array2.length);
26105
- const whitespace = separator === "," ? "" : " ";
26106
- let res = `"0":${whitespace}${array2[0]}`;
26107
- for (let i2 = 1; i2 < maximumBreadth; i2++)
26108
- res += `${separator}"${i2}":${whitespace}${array2[i2]}`;
26109
- return res;
26110
- }
26111
- function getCircularValueOption(options) {
26112
- if (hasOwnProperty2.call(options, "circularValue")) {
26113
- const circularValue = options.circularValue;
26114
- if (typeof circularValue == "string")
26115
- return `"${circularValue}"`;
26116
- if (circularValue == null)
26117
- return circularValue;
26118
- if (circularValue === Error || circularValue === TypeError)
26119
- return {
26120
- toString() {
26121
- throw new TypeError("Converting circular structure to JSON");
26122
- }
26123
- };
26124
- throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined');
26125
- }
26126
- return '"[Circular]"';
26127
- }
26128
- function getBooleanOption(options, key) {
26129
- let value;
26130
- if (hasOwnProperty2.call(options, key) && (value = options[key], typeof value != "boolean"))
26131
- throw new TypeError(`The "${key}" argument must be of type boolean`);
26132
- return value === void 0 ? !0 : value;
26133
- }
26134
- function getPositiveIntegerOption(options, key) {
26135
- let value;
26136
- if (hasOwnProperty2.call(options, key)) {
26137
- if (value = options[key], typeof value != "number")
26138
- throw new TypeError(`The "${key}" argument must be of type number`);
26139
- if (!Number.isInteger(value))
26140
- throw new TypeError(`The "${key}" argument must be an integer`);
26141
- if (value < 1)
26142
- throw new RangeError(`The "${key}" argument must be >= 1`);
26143
- }
26144
- return value === void 0 ? 1 / 0 : value;
26145
- }
26146
- function getItemCount(number2) {
26147
- return number2 === 1 ? "1 item" : `${number2} items`;
26148
- }
26149
- function getUniqueReplacerSet(replacerArray) {
26150
- const replacerSet = /* @__PURE__ */ new Set();
26151
- for (const value of replacerArray)
26152
- (typeof value == "string" || typeof value == "number") && replacerSet.add(String(value));
26153
- return replacerSet;
26154
- }
26155
- function getStrictOption(options) {
26156
- if (hasOwnProperty2.call(options, "strict")) {
26157
- const value = options.strict;
26158
- if (typeof value != "boolean")
26159
- throw new TypeError('The "strict" argument must be of type boolean');
26160
- if (value)
26161
- return (value2) => {
26162
- let message = `Object can not safely be stringified. Received type ${typeof value2}`;
26163
- throw typeof value2 != "function" && (message += ` (${value2.toString()})`), new Error(message);
26164
- };
26165
- }
26166
- }
26167
- function configure(options) {
26168
- options = { ...options };
26169
- const fail = getStrictOption(options);
26170
- fail && (options.bigint === void 0 && (options.bigint = !1), "circularValue" in options || (options.circularValue = Error));
26171
- const circularValue = getCircularValueOption(options), bigint = getBooleanOption(options, "bigint"), deterministic = getBooleanOption(options, "deterministic"), maximumDepth = getPositiveIntegerOption(options, "maximumDepth"), maximumBreadth = getPositiveIntegerOption(options, "maximumBreadth");
26172
- function stringifyFnReplacer(key, parent, stack, replacer, spacer, indentation) {
26173
- let value = parent[key];
26174
- switch (typeof value == "object" && value !== null && typeof value.toJSON == "function" && (value = value.toJSON(key)), value = replacer.call(parent, key, value), typeof value) {
26175
- case "string":
26176
- return strEscape(value);
26177
- case "object": {
26178
- if (value === null)
26179
- return "null";
26180
- if (stack.indexOf(value) !== -1)
26181
- return circularValue;
26182
- let res = "", join = ",";
26183
- const originalIndentation = indentation;
26184
- if (Array.isArray(value)) {
26185
- if (value.length === 0)
26186
- return "[]";
26187
- if (maximumDepth < stack.length + 1)
26188
- return '"[Array]"';
26189
- stack.push(value), spacer !== "" && (indentation += spacer, res += `
26190
- ${indentation}`, join = `,
26191
- ${indentation}`);
26192
- const maximumValuesToStringify = Math.min(value.length, maximumBreadth);
26193
- let i2 = 0;
26194
- for (; i2 < maximumValuesToStringify - 1; i2++) {
26195
- const tmp2 = stringifyFnReplacer(String(i2), value, stack, replacer, spacer, indentation);
26196
- res += tmp2 !== void 0 ? tmp2 : "null", res += join;
26197
- }
26198
- const tmp = stringifyFnReplacer(String(i2), value, stack, replacer, spacer, indentation);
26199
- if (res += tmp !== void 0 ? tmp : "null", value.length - 1 > maximumBreadth) {
26200
- const removedKeys = value.length - maximumBreadth - 1;
26201
- res += `${join}"... ${getItemCount(removedKeys)} not stringified"`;
26202
- }
26203
- return spacer !== "" && (res += `
26204
- ${originalIndentation}`), stack.pop(), `[${res}]`;
26205
- }
26206
- let keys2 = Object.keys(value);
26207
- const keyLength = keys2.length;
26208
- if (keyLength === 0)
26209
- return "{}";
26210
- if (maximumDepth < stack.length + 1)
26211
- return '"[Object]"';
26212
- let whitespace = "", separator = "";
26213
- spacer !== "" && (indentation += spacer, join = `,
26214
- ${indentation}`, whitespace = " ");
26215
- const maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth);
26216
- deterministic && !isTypedArrayWithEntries(value) && (keys2 = insertSort(keys2)), stack.push(value);
26217
- for (let i2 = 0; i2 < maximumPropertiesToStringify; i2++) {
26218
- const key2 = keys2[i2], tmp = stringifyFnReplacer(key2, value, stack, replacer, spacer, indentation);
26219
- tmp !== void 0 && (res += `${separator}${strEscape(key2)}:${whitespace}${tmp}`, separator = join);
26220
- }
26221
- if (keyLength > maximumBreadth) {
26222
- const removedKeys = keyLength - maximumBreadth;
26223
- res += `${separator}"...":${whitespace}"${getItemCount(removedKeys)} not stringified"`, separator = join;
26224
- }
26225
- return spacer !== "" && separator.length > 1 && (res = `
26226
- ${indentation}${res}
26227
- ${originalIndentation}`), stack.pop(), `{${res}}`;
26228
- }
26229
- case "number":
26230
- return isFinite(value) ? String(value) : fail ? fail(value) : "null";
26231
- case "boolean":
26232
- return value === !0 ? "true" : "false";
26233
- case "undefined":
26234
- return;
26235
- case "bigint":
26236
- if (bigint)
26237
- return String(value);
26238
- default:
26239
- return fail ? fail(value) : void 0;
26240
- }
26241
- }
26242
- function stringifyArrayReplacer(key, value, stack, replacer, spacer, indentation) {
26243
- switch (typeof value == "object" && value !== null && typeof value.toJSON == "function" && (value = value.toJSON(key)), typeof value) {
26244
- case "string":
26245
- return strEscape(value);
26246
- case "object": {
26247
- if (value === null)
26248
- return "null";
26249
- if (stack.indexOf(value) !== -1)
26250
- return circularValue;
26251
- const originalIndentation = indentation;
26252
- let res = "", join = ",";
26253
- if (Array.isArray(value)) {
26254
- if (value.length === 0)
26255
- return "[]";
26256
- if (maximumDepth < stack.length + 1)
26257
- return '"[Array]"';
26258
- stack.push(value), spacer !== "" && (indentation += spacer, res += `
26259
- ${indentation}`, join = `,
26260
- ${indentation}`);
26261
- const maximumValuesToStringify = Math.min(value.length, maximumBreadth);
26262
- let i2 = 0;
26263
- for (; i2 < maximumValuesToStringify - 1; i2++) {
26264
- const tmp2 = stringifyArrayReplacer(String(i2), value[i2], stack, replacer, spacer, indentation);
26265
- res += tmp2 !== void 0 ? tmp2 : "null", res += join;
26266
- }
26267
- const tmp = stringifyArrayReplacer(String(i2), value[i2], stack, replacer, spacer, indentation);
26268
- if (res += tmp !== void 0 ? tmp : "null", value.length - 1 > maximumBreadth) {
26269
- const removedKeys = value.length - maximumBreadth - 1;
26270
- res += `${join}"... ${getItemCount(removedKeys)} not stringified"`;
26271
- }
26272
- return spacer !== "" && (res += `
26273
- ${originalIndentation}`), stack.pop(), `[${res}]`;
26274
- }
26275
- stack.push(value);
26276
- let whitespace = "";
26277
- spacer !== "" && (indentation += spacer, join = `,
26278
- ${indentation}`, whitespace = " ");
26279
- let separator = "";
26280
- for (const key2 of replacer) {
26281
- const tmp = stringifyArrayReplacer(key2, value[key2], stack, replacer, spacer, indentation);
26282
- tmp !== void 0 && (res += `${separator}${strEscape(key2)}:${whitespace}${tmp}`, separator = join);
26283
- }
26284
- return spacer !== "" && separator.length > 1 && (res = `
26285
- ${indentation}${res}
26286
- ${originalIndentation}`), stack.pop(), `{${res}}`;
26287
- }
26288
- case "number":
26289
- return isFinite(value) ? String(value) : fail ? fail(value) : "null";
26290
- case "boolean":
26291
- return value === !0 ? "true" : "false";
26292
- case "undefined":
26293
- return;
26294
- case "bigint":
26295
- if (bigint)
26296
- return String(value);
26297
- default:
26298
- return fail ? fail(value) : void 0;
26299
- }
26300
- }
26301
- function stringifyIndent(key, value, stack, spacer, indentation) {
26302
- switch (typeof value) {
26303
- case "string":
26304
- return strEscape(value);
26305
- case "object": {
26306
- if (value === null)
26307
- return "null";
26308
- if (typeof value.toJSON == "function") {
26309
- if (value = value.toJSON(key), typeof value != "object")
26310
- return stringifyIndent(key, value, stack, spacer, indentation);
26311
- if (value === null)
26312
- return "null";
26313
- }
26314
- if (stack.indexOf(value) !== -1)
26315
- return circularValue;
26316
- const originalIndentation = indentation;
26317
- if (Array.isArray(value)) {
26318
- if (value.length === 0)
26319
- return "[]";
26320
- if (maximumDepth < stack.length + 1)
26321
- return '"[Array]"';
26322
- stack.push(value), indentation += spacer;
26323
- let res2 = `
26324
- ${indentation}`;
26325
- const join2 = `,
26326
- ${indentation}`, maximumValuesToStringify = Math.min(value.length, maximumBreadth);
26327
- let i2 = 0;
26328
- for (; i2 < maximumValuesToStringify - 1; i2++) {
26329
- const tmp2 = stringifyIndent(String(i2), value[i2], stack, spacer, indentation);
26330
- res2 += tmp2 !== void 0 ? tmp2 : "null", res2 += join2;
26331
- }
26332
- const tmp = stringifyIndent(String(i2), value[i2], stack, spacer, indentation);
26333
- if (res2 += tmp !== void 0 ? tmp : "null", value.length - 1 > maximumBreadth) {
26334
- const removedKeys = value.length - maximumBreadth - 1;
26335
- res2 += `${join2}"... ${getItemCount(removedKeys)} not stringified"`;
26336
- }
26337
- return res2 += `
26338
- ${originalIndentation}`, stack.pop(), `[${res2}]`;
26339
- }
26340
- let keys2 = Object.keys(value);
26341
- const keyLength = keys2.length;
26342
- if (keyLength === 0)
26343
- return "{}";
26344
- if (maximumDepth < stack.length + 1)
26345
- return '"[Object]"';
26346
- indentation += spacer;
26347
- const join = `,
26348
- ${indentation}`;
26349
- let res = "", separator = "", maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth);
26350
- isTypedArrayWithEntries(value) && (res += stringifyTypedArray(value, join, maximumBreadth), keys2 = keys2.slice(value.length), maximumPropertiesToStringify -= value.length, separator = join), deterministic && (keys2 = insertSort(keys2)), stack.push(value);
26351
- for (let i2 = 0; i2 < maximumPropertiesToStringify; i2++) {
26352
- const key2 = keys2[i2], tmp = stringifyIndent(key2, value[key2], stack, spacer, indentation);
26353
- tmp !== void 0 && (res += `${separator}${strEscape(key2)}: ${tmp}`, separator = join);
26354
- }
26355
- if (keyLength > maximumBreadth) {
26356
- const removedKeys = keyLength - maximumBreadth;
26357
- res += `${separator}"...": "${getItemCount(removedKeys)} not stringified"`, separator = join;
26358
- }
26359
- return separator !== "" && (res = `
26360
- ${indentation}${res}
26361
- ${originalIndentation}`), stack.pop(), `{${res}}`;
26362
- }
26363
- case "number":
26364
- return isFinite(value) ? String(value) : fail ? fail(value) : "null";
26365
- case "boolean":
26366
- return value === !0 ? "true" : "false";
26367
- case "undefined":
26368
- return;
26369
- case "bigint":
26370
- if (bigint)
26371
- return String(value);
26372
- default:
26373
- return fail ? fail(value) : void 0;
26374
- }
26375
- }
26376
- function stringifySimple(key, value, stack) {
26377
- switch (typeof value) {
26378
- case "string":
26379
- return strEscape(value);
26380
- case "object": {
26381
- if (value === null)
26382
- return "null";
26383
- if (typeof value.toJSON == "function") {
26384
- if (value = value.toJSON(key), typeof value != "object")
26385
- return stringifySimple(key, value, stack);
26386
- if (value === null)
26387
- return "null";
26388
- }
26389
- if (stack.indexOf(value) !== -1)
26390
- return circularValue;
26391
- let res = "";
26392
- if (Array.isArray(value)) {
26393
- if (value.length === 0)
26394
- return "[]";
26395
- if (maximumDepth < stack.length + 1)
26396
- return '"[Array]"';
26397
- stack.push(value);
26398
- const maximumValuesToStringify = Math.min(value.length, maximumBreadth);
26399
- let i2 = 0;
26400
- for (; i2 < maximumValuesToStringify - 1; i2++) {
26401
- const tmp2 = stringifySimple(String(i2), value[i2], stack);
26402
- res += tmp2 !== void 0 ? tmp2 : "null", res += ",";
26403
- }
26404
- const tmp = stringifySimple(String(i2), value[i2], stack);
26405
- if (res += tmp !== void 0 ? tmp : "null", value.length - 1 > maximumBreadth) {
26406
- const removedKeys = value.length - maximumBreadth - 1;
26407
- res += `,"... ${getItemCount(removedKeys)} not stringified"`;
26408
- }
26409
- return stack.pop(), `[${res}]`;
26410
- }
26411
- let keys2 = Object.keys(value);
26412
- const keyLength = keys2.length;
26413
- if (keyLength === 0)
26414
- return "{}";
26415
- if (maximumDepth < stack.length + 1)
26416
- return '"[Object]"';
26417
- let separator = "", maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth);
26418
- isTypedArrayWithEntries(value) && (res += stringifyTypedArray(value, ",", maximumBreadth), keys2 = keys2.slice(value.length), maximumPropertiesToStringify -= value.length, separator = ","), deterministic && (keys2 = insertSort(keys2)), stack.push(value);
26419
- for (let i2 = 0; i2 < maximumPropertiesToStringify; i2++) {
26420
- const key2 = keys2[i2], tmp = stringifySimple(key2, value[key2], stack);
26421
- tmp !== void 0 && (res += `${separator}${strEscape(key2)}:${tmp}`, separator = ",");
26422
- }
26423
- if (keyLength > maximumBreadth) {
26424
- const removedKeys = keyLength - maximumBreadth;
26425
- res += `${separator}"...":"${getItemCount(removedKeys)} not stringified"`;
26426
- }
26427
- return stack.pop(), `{${res}}`;
26428
- }
26429
- case "number":
26430
- return isFinite(value) ? String(value) : fail ? fail(value) : "null";
26431
- case "boolean":
26432
- return value === !0 ? "true" : "false";
26433
- case "undefined":
26434
- return;
26435
- case "bigint":
26436
- if (bigint)
26437
- return String(value);
26438
- default:
26439
- return fail ? fail(value) : void 0;
26440
- }
26441
- }
26442
- function stringify2(value, replacer, space) {
26443
- if (arguments.length > 1) {
26444
- let spacer = "";
26445
- if (typeof space == "number" ? spacer = " ".repeat(Math.min(space, 10)) : typeof space == "string" && (spacer = space.slice(0, 10)), replacer != null) {
26446
- if (typeof replacer == "function")
26447
- return stringifyFnReplacer("", { "": value }, [], replacer, spacer, "");
26448
- if (Array.isArray(replacer))
26449
- return stringifyArrayReplacer("", value, [], getUniqueReplacerSet(replacer), spacer, "");
26450
- }
26451
- if (spacer.length !== 0)
26452
- return stringifyIndent("", value, [], spacer, "");
26453
- }
26454
- return stringifySimple("", value, []);
26455
- }
26456
- return stringify2;
26457
- }
26458
- })(safeStableStringify, safeStableStringify.exports);
26459
- var safeStableStringifyExports = safeStableStringify.exports;
26460
- const cjsModule = /* @__PURE__ */ getDefaultExportFromCjs(safeStableStringifyExports);
26461
- cjsModule.configure;
26462
26091
  function fixProto(target, prototype) {
26463
26092
  var setPrototypeOf = Object.setPrototypeOf;
26464
26093
  setPrototypeOf ? setPrototypeOf(target, prototype) : target.__proto__ = prototype;
@@ -26667,8 +26296,7 @@ class NonExhaustiveError extends BaseError {
26667
26296
  }
26668
26297
  }
26669
26298
  function nonexhaustive(value) {
26670
- const val = typeof value == "string" ? value : cjsModule(value);
26671
- throw new NonExhaustiveError(`NonExhaustive value: ${val}`);
26299
+ throw new NonExhaustiveError(`NonExhaustive value: ${value}`);
26672
26300
  }
26673
26301
  const ElementShapes = [
26674
26302
  "rectangle",
@@ -27268,9 +26896,9 @@ class Solver {
27268
26896
  * Update the values of the variables.
27269
26897
  */
27270
26898
  updateVariables() {
27271
- let vars2 = this._varMap, rows = this._rowMap;
27272
- for (let i2 = 0, n2 = vars2.size(); i2 < n2; ++i2) {
27273
- let pair = vars2.itemAt(i2), rowPair = rows.find(pair.second);
26899
+ let vars = this._varMap, rows = this._rowMap;
26900
+ for (let i2 = 0, n2 = vars.size(); i2 < n2; ++i2) {
26901
+ let pair = vars.itemAt(i2), rowPair = rows.find(pair.second);
27274
26902
  rowPair !== void 0 ? pair.first.setValue(rowPair.second.constant()) : pair.first.setValue(0);
27275
26903
  }
27276
26904
  }
@@ -28167,6 +27795,7 @@ const trackedConnections = /* @__PURE__ */ new Map(), getTrackedConnectionState
28167
27795
  initialized: !1,
28168
27796
  previousViews: [],
28169
27797
  viewportChanged: !1,
27798
+ focusedNodeId: null,
28170
27799
  hoveredNodeId: null,
28171
27800
  hoveredEdgeId: null,
28172
27801
  lastClickedNodeId: null,
@@ -28196,6 +27825,7 @@ function createDiagramStore(props) {
28196
27825
  view: currentView,
28197
27826
  lastOnNavigate,
28198
27827
  previousViews,
27828
+ focusedNodeId,
28199
27829
  lastClickedNodeId,
28200
27830
  lastClickedEdgeId,
28201
27831
  hoveredEdgeId,
@@ -28203,7 +27833,7 @@ function createDiagramStore(props) {
28203
27833
  } = get2();
28204
27834
  if (shallowEqual(currentView, view))
28205
27835
  return;
28206
- lastOnNavigate && lastOnNavigate.toView !== view.id && lastOnNavigate.fromView !== view.id && (lastOnNavigate = null), currentView.id === view.id ? (lastClickedNodeId && !containsWithId(view.nodes, lastClickedNodeId) && (lastClickedNodeId = null), hoveredNodeId && !containsWithId(view.nodes, hoveredNodeId) && (hoveredNodeId = null), lastClickedEdgeId && !containsWithId(view.edges, lastClickedEdgeId) && (lastClickedEdgeId = null), hoveredEdgeId && !containsWithId(view.edges, hoveredEdgeId) && (hoveredEdgeId = null)) : (lastClickedEdgeId = null, lastClickedNodeId = null, hoveredEdgeId = null, hoveredNodeId = null, previousViews = [
27836
+ lastOnNavigate && lastOnNavigate.toView !== view.id && lastOnNavigate.fromView !== view.id && (lastOnNavigate = null), currentView.id === view.id ? (lastClickedNodeId && !containsWithId(view.nodes, lastClickedNodeId) && (lastClickedNodeId = null), hoveredNodeId && !containsWithId(view.nodes, hoveredNodeId) && (hoveredNodeId = null), focusedNodeId && !containsWithId(view.nodes, focusedNodeId) && (focusedNodeId = null), lastClickedEdgeId && !containsWithId(view.edges, lastClickedEdgeId) && (lastClickedEdgeId = null), hoveredEdgeId && !containsWithId(view.edges, hoveredEdgeId) && (hoveredEdgeId = null)) : (lastClickedEdgeId = null, lastClickedNodeId = null, hoveredEdgeId = null, hoveredNodeId = null, focusedNodeId = null, previousViews = [
28207
27837
  currentView,
28208
27838
  ...previousViews.filter((v2) => v2.id !== view.id && v2.id !== currentView.id)
28209
27839
  ]), set2(
@@ -28213,6 +27843,7 @@ function createDiagramStore(props) {
28213
27843
  previousViews,
28214
27844
  lastClickedNodeId,
28215
27845
  lastClickedEdgeId,
27846
+ focusedNodeId,
28216
27847
  hoveredEdgeId,
28217
27848
  hoveredNodeId
28218
27849
  },
@@ -28238,18 +27869,18 @@ function createDiagramStore(props) {
28238
27869
  },
28239
27870
  triggerOnChange: (changes) => {
28240
27871
  const newShapes = /* @__PURE__ */ new Map(), newColor = /* @__PURE__ */ new Map();
28241
- for (const change2 of changes) {
28242
- if (change2.op === "change-shape") {
28243
- for (const target of change2.targets)
28244
- newShapes.set(target, change2.shape);
27872
+ for (const change of changes) {
27873
+ if (change.op === "change-shape") {
27874
+ for (const target of change.targets)
27875
+ newShapes.set(target, change.shape);
28245
27876
  continue;
28246
27877
  }
28247
- if (change2.op === "change-color") {
28248
- for (const target of change2.targets)
28249
- newColor.set(target, change2.color);
27878
+ if (change.op === "change-color") {
27879
+ for (const target of change.targets)
27880
+ newColor.set(target, change.color);
28250
27881
  continue;
28251
27882
  }
28252
- nonexhaustive(change2);
27883
+ nonexhaustive(change);
28253
27884
  }
28254
27885
  get2().xyflow.setNodes(
28255
27886
  (nodes) => nodes.map((node) => {
@@ -28306,15 +27937,16 @@ function createDiagramStore(props) {
28306
27937
  xynode.internals.userNode
28307
27938
  );
28308
27939
  },
28309
- fitDiagram: () => {
28310
- const { fitViewPadding, xyflow } = get2();
27940
+ fitDiagram: (centerNode) => {
27941
+ const { fitViewPadding, xyflow, focusedNodeId } = get2();
28311
27942
  xyflow.fitView({
28312
27943
  includeHiddenNodes: !0,
28313
- duration: 400,
28314
- padding: fitViewPadding,
27944
+ duration: centerNode && focusedNodeId ? 300 : 400,
27945
+ padding: centerNode ? 0 : fitViewPadding,
28315
27946
  minZoom: MinZoom,
28316
- maxZoom: 1
28317
- });
27947
+ maxZoom: 1,
27948
+ ...centerNode && { nodes: [centerNode] }
27949
+ }), centerNode && focusedNodeId !== centerNode.id && set2({ focusedNodeId: centerNode.id }, noReplace, "focus node"), !centerNode && focusedNodeId && set2({ focusedNodeId: null }, noReplace, "unfocus");
28318
27950
  }
28319
27951
  }),
28320
27952
  {
@@ -28345,30 +27977,6 @@ function DiagramContextProvider({ children: children2, view, ...props }) {
28345
27977
  [props]
28346
27978
  ), /* @__PURE__ */ jsxRuntimeExports.jsx(DiagramContext.Provider, { value: store.current, children: children2 });
28347
27979
  }
28348
- var wrapper = "fe2aoi0";
28349
- function KeepAspectRatio({
28350
- children: children2,
28351
- width,
28352
- height,
28353
- enabled,
28354
- className,
28355
- style: style2,
28356
- ...rest
28357
- }) {
28358
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
28359
- Box$1,
28360
- {
28361
- ...rest,
28362
- className: clsx(wrapper, className),
28363
- style: enabled ? {
28364
- ...style2,
28365
- aspectRatio: `${Math.ceil(width)}/${Math.ceil(height)}`,
28366
- maxHeight: Math.ceil(height)
28367
- } : style2,
28368
- children: children2
28369
- }
28370
- );
28371
- }
28372
27980
  const MotionConfigContext = reactExports.createContext({
28373
27981
  transformPagePoint: (p2) => p2,
28374
27982
  isStatic: !1,
@@ -28710,17 +28318,17 @@ const checkStringStartsWith = (token) => (key) => typeof key == "string" && key.
28710
28318
  }, alpha = {
28711
28319
  ...number,
28712
28320
  transform: (v2) => clamp(0, 1, v2)
28713
- }, scale$2 = {
28321
+ }, scale = {
28714
28322
  ...number,
28715
28323
  default: 1
28716
28324
  }, sanitize = (v2) => Math.round(v2 * 1e5) / 1e5, floatRegex = /-?(?:\d+(?:\.\d+)?|\.\d+)/gu, colorRegex = /(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu, singleColorRegex = /^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu;
28717
28325
  function isString(v2) {
28718
28326
  return typeof v2 == "string";
28719
28327
  }
28720
- const createUnitType = (unit2) => ({
28721
- test: (v2) => isString(v2) && v2.endsWith(unit2) && v2.split(" ").length === 1,
28328
+ const createUnitType = (unit) => ({
28329
+ test: (v2) => isString(v2) && v2.endsWith(unit) && v2.split(" ").length === 1,
28722
28330
  parse: parseFloat,
28723
- transform: (v2) => `${v2}${unit2}`
28331
+ transform: (v2) => `${v2}${unit}`
28724
28332
  }), degrees = createUnitType("deg"), percent = createUnitType("%"), px = createUnitType("px"), vh = createUnitType("vh"), vw = createUnitType("vw"), progressPercentage = {
28725
28333
  ...percent,
28726
28334
  parse: (v2) => percent.parse(v2) / 100,
@@ -28767,10 +28375,10 @@ const createUnitType = (unit2) => ({
28767
28375
  rotateX: degrees,
28768
28376
  rotateY: degrees,
28769
28377
  rotateZ: degrees,
28770
- scale: scale$2,
28771
- scaleX: scale$2,
28772
- scaleY: scale$2,
28773
- scaleZ: scale$2,
28378
+ scale,
28379
+ scaleX: scale,
28380
+ scaleY: scale,
28381
+ scaleZ: scale,
28774
28382
  skew: degrees,
28775
28383
  skewX: degrees,
28776
28384
  skewY: degrees,
@@ -28797,12 +28405,12 @@ const createUnitType = (unit2) => ({
28797
28405
  numOctaves: int
28798
28406
  };
28799
28407
  function buildHTMLStyles(state, latestValues, options, transformTemplate) {
28800
- const { style: style2, vars: vars2, transform: transform2, transformOrigin } = state;
28408
+ const { style: style2, vars, transform: transform2, transformOrigin } = state;
28801
28409
  let hasTransform2 = !1, hasTransformOrigin = !1, transformIsNone = !0;
28802
28410
  for (const key in latestValues) {
28803
28411
  const value = latestValues[key];
28804
28412
  if (isCSSVariableName(key)) {
28805
- vars2[key] = value;
28413
+ vars[key] = value;
28806
28414
  continue;
28807
28415
  }
28808
28416
  const valueType = numberValueTypes[key], valueAsType = getValueAsType(value, valueType);
@@ -28960,10 +28568,10 @@ function createUseRender(forwardMotionProps = !1) {
28960
28568
  });
28961
28569
  };
28962
28570
  }
28963
- function renderHTML(element, { style: style2, vars: vars2 }, styleProp, projection) {
28571
+ function renderHTML(element, { style: style2, vars }, styleProp, projection) {
28964
28572
  Object.assign(element.style, style2, projection && projection.getProjectionStyles(styleProp));
28965
- for (const key in vars2)
28966
- element.style.setProperty(key, vars2[key]);
28573
+ for (const key in vars)
28574
+ element.style.setProperty(key, vars[key]);
28967
28575
  }
28968
28576
  const camelCaseAttributes = /* @__PURE__ */ new Set([
28969
28577
  "baseFrequency",
@@ -29627,9 +29235,9 @@ function applyDefaultFilter(v2) {
29627
29235
  const [number2] = value.match(floatRegex) || [];
29628
29236
  if (!number2)
29629
29237
  return v2;
29630
- const unit2 = value.replace(number2, "");
29238
+ const unit = value.replace(number2, "");
29631
29239
  let defaultValue = maxDefaults.has(name) ? 1 : 0;
29632
- return number2 !== value && (defaultValue *= 100), name + "(" + defaultValue + unit2 + ")";
29240
+ return number2 !== value && (defaultValue *= 100), name + "(" + defaultValue + unit + ")";
29633
29241
  }
29634
29242
  const functionRegex = /\b([a-z-]*)\(.*?\)/gu, filter = {
29635
29243
  ...complex,
@@ -32668,8 +32276,8 @@ class DOMVisualElement extends VisualElement {
32668
32276
  getBaseTargetFromProps(props, key) {
32669
32277
  return props.style ? props.style[key] : void 0;
32670
32278
  }
32671
- removeValueFromRenderState(key, { vars: vars2, style: style2 }) {
32672
- delete vars2[key], delete style2[key];
32279
+ removeValueFromRenderState(key, { vars, style: style2 }) {
32280
+ delete vars[key], delete style2[key];
32673
32281
  }
32674
32282
  }
32675
32283
  function getComputedStyle$1(element) {
@@ -33147,10 +32755,10 @@ function diagramViewToXYFlowData(view, opts) {
33147
32755
  initialHeight: node.height, */
33148
32756
  width: node.width,
33149
32757
  height: node.height,
33150
- measured: {
33151
- width: node.width,
33152
- height: node.height
33153
- },
32758
+ // measured: {
32759
+ // width: node.width,
32760
+ // height: node.height
32761
+ // },
33154
32762
  ...parent && {
33155
32763
  parentId: ns + parent.id
33156
32764
  }
@@ -33222,21 +32830,25 @@ function FitViewOnViewportResize({ diagramApi }) {
33222
32830
  }
33223
32831
  const diagramChangeId = (s2) => s2.view.id + "_" + s2.view.autoLayout + "_" + s2.fitViewPadding;
33224
32832
  function FitViewOnDiagramChanges() {
33225
- const diagramApi = useDiagramStoreApi(), [viewportMoved, setViewportMoved] = reactExports.useState(diagramApi.getState().viewportChanged), [processedChangeId, setProcessed] = reactExports.useState(diagramChangeId(diagramApi.getState())), [pendingChangeId, setPending] = useDebouncedState(processedChangeId, 100), isReady = useNodesInitialized({
32833
+ const diagramApi = useDiagramStoreApi(), [viewportMoved, setViewportMoved] = reactExports.useState(diagramApi.getState().viewportChanged), [processedChangeId, setProcessed] = reactExports.useState(diagramChangeId(diagramApi.getState())), [pendingChangeId, setPending] = reactExports.useState(processedChangeId), isReady = useNodesInitialized({
33226
32834
  includeHiddenNodes: !0
33227
- });
32835
+ }), schedulePending = useDebouncedCallback(
32836
+ (pendingChangeId2) => {
32837
+ setPending(pendingChangeId2);
32838
+ },
32839
+ [setPending],
32840
+ 75
32841
+ );
33228
32842
  return reactExports.useEffect(
33229
32843
  () => diagramApi.subscribe(
33230
- (s2) => ({
33231
- viewportMoved: s2.viewportChanged,
33232
- changeid: diagramChangeId(s2)
33233
- }),
33234
- ({ viewportMoved: viewportMoved2, changeid }) => {
33235
- setPending(changeid), setViewportMoved(viewportMoved2);
33236
- },
33237
- {
33238
- equalityFn: shallowEqual
33239
- }
32844
+ (s2) => diagramChangeId(s2),
32845
+ schedulePending
32846
+ ),
32847
+ [diagramApi, schedulePending]
32848
+ ), reactExports.useEffect(
32849
+ () => diagramApi.subscribe(
32850
+ (s2) => s2.viewportChanged,
32851
+ setViewportMoved
33240
32852
  ),
33241
32853
  [diagramApi]
33242
32854
  ), useRafEffect(
@@ -33282,25 +32894,28 @@ const isSameNode = (a) => (b2) => a.id === b2.id && a.type === b2.type && Object
33282
32894
  ...update
33283
32895
  } : update;
33284
32896
  })
33285
- ), lastOnNavigate?.toView === viewId && !lastOnNavigate.positionCorrected) {
32897
+ ), lastOnNavigate?.toView === viewId && lastOnNavigate.positionCorrected !== !0) {
33286
32898
  const elFrom = lastOnNavigate.element, elTo = nodes.find((n2) => n2.id === elFrom.id);
33287
32899
  if (elTo) {
33288
- const centerFrom = lastOnNavigate.elementCenterScreenPosition, nextZoom = Math.min(elFrom.width / elTo.width, elFrom.height / elTo.height);
32900
+ const centerFrom = lastOnNavigate.elementCenterScreenPosition;
32901
+ let nextZoom = Math.min(elFrom.width / elTo.width, elFrom.height / elTo.height);
33289
32902
  requestAnimationFrame(() => {
33290
- const v2 = xyflowRef.current.getViewport();
33291
- nextZoom < v2.zoom && xyflowRef.current.setViewport({
33292
- x: v2.x,
33293
- y: v2.y,
33294
- zoom: nextZoom
32903
+ requestAnimationFrame(() => {
32904
+ const v2 = xyflowRef.current.getViewport();
32905
+ nextZoom < v2.zoom && (nextZoom = Math.max(nextZoom, v2.zoom * 0.5), xyflowRef.current.setViewport({
32906
+ x: v2.x,
32907
+ y: v2.y,
32908
+ zoom: nextZoom
32909
+ }));
32910
+ const centerTo = xyflowRef.current.flowToScreenPosition({
32911
+ x: elTo.position[0] + elTo.width / 2,
32912
+ y: elTo.position[1] + elTo.height / 2
32913
+ }), diff = {
32914
+ x: toDomPrecision(centerFrom.x - centerTo.x),
32915
+ y: toDomPrecision(centerFrom.y - centerTo.y)
32916
+ };
32917
+ xyflowApi.getState().panBy(diff);
33295
32918
  });
33296
- const centerTo = xyflowRef.current.flowToScreenPosition({
33297
- x: elTo.position[0] + elTo.width / 2,
33298
- y: elTo.position[1] + elTo.height / 2
33299
- }), diff = {
33300
- x: toDomPrecision(centerFrom.x - centerTo.x),
33301
- y: toDomPrecision(centerFrom.y - centerTo.y)
33302
- };
33303
- xyflowApi.getState().panBy(diff);
33304
32919
  });
33305
32920
  }
33306
32921
  diagramStoreApi.setState(
@@ -33365,7 +32980,7 @@ function assignInlineVars(varsOrContract, tokens) {
33365
32980
  writable: !1
33366
32981
  }), styles;
33367
32982
  }
33368
- var container$1 = "yi2p6v0", edgePathBg = "yi2p6v1", fillStrokeCtx = "yi2p6v2", cssEdgePath = "yi2p6v3", varLabelX = "var(--yi2p6v4)", varLabelY = "var(--yi2p6v5)", edgeLabel = "yi2p6v7", edgeLabelBody = "yi2p6v8";
32983
+ var container$2 = "yi2p6v0", edgePathBg = "yi2p6v1", fillStrokeCtx = "yi2p6v2", cssEdgePath = "yi2p6v3", varLabelX = "var(--yi2p6v4)", varLabelY = "var(--yi2p6v5)", edgeLabel = "yi2p6v7", edgeLabelBody = "yi2p6v8";
33369
32984
  function getNodeIntersection(intersectionNode, targetNode) {
33370
32985
  const {
33371
32986
  width: intersectionNodeWidth,
@@ -33459,7 +33074,7 @@ const isSamePoint = (a, b2) => Math.abs(a - b2) < 2.1, isSamePosition = (a, [bx,
33459
33074
  });
33460
33075
  edgePath = _edgePath, labelX = _labelX, labelY = _labelY;
33461
33076
  }
33462
- return /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { className: clsx(container$1), "data-likec4-color": color2, "data-edge-hovered": isHovered, children: [
33077
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("g", { className: clsx(container$2), "data-likec4-color": color2, "data-edge-hovered": isHovered, children: [
33463
33078
  /* @__PURE__ */ jsxRuntimeExports.jsx("g", { className: clsx(fillStrokeCtx), children: /* @__PURE__ */ jsxRuntimeExports.jsx("defs", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
33464
33079
  "marker",
33465
33080
  {
@@ -33489,7 +33104,7 @@ const isSamePoint = (a, b2) => Math.abs(a - b2) < 2.1, isSamePosition = (a, [bx,
33489
33104
  data.label && /* @__PURE__ */ jsxRuntimeExports.jsx(EdgeLabelRenderer, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
33490
33105
  Box$1,
33491
33106
  {
33492
- className: clsx(container$1, edgeLabel),
33107
+ className: clsx(container$2, edgeLabel),
33493
33108
  "data-likec4-color": color2,
33494
33109
  style: {
33495
33110
  ...assignInlineVars({
@@ -33545,475 +33160,7 @@ const isSamePoint = (a, b2) => Math.abs(a - b2) < 2.1, isSamePosition = (a, [bx,
33545
33160
  strokeWidth: interactionWidth
33546
33161
  }
33547
33162
  )
33548
- ] })), Channel = {
33549
- /* CLAMP */
33550
- min: {
33551
- r: 0,
33552
- g: 0,
33553
- b: 0,
33554
- s: 0,
33555
- l: 0,
33556
- a: 0
33557
- },
33558
- max: {
33559
- r: 255,
33560
- g: 255,
33561
- b: 255,
33562
- h: 360,
33563
- s: 100,
33564
- l: 100,
33565
- a: 1
33566
- },
33567
- clamp: {
33568
- r: (r2) => r2 >= 255 ? 255 : r2 < 0 ? 0 : r2,
33569
- g: (g2) => g2 >= 255 ? 255 : g2 < 0 ? 0 : g2,
33570
- b: (b2) => b2 >= 255 ? 255 : b2 < 0 ? 0 : b2,
33571
- h: (h2) => h2 % 360,
33572
- s: (s2) => s2 >= 100 ? 100 : s2 < 0 ? 0 : s2,
33573
- l: (l2) => l2 >= 100 ? 100 : l2 < 0 ? 0 : l2,
33574
- a: (a) => a >= 1 ? 1 : a < 0 ? 0 : a
33575
- },
33576
- /* CONVERSION */
33577
- //SOURCE: https://planetcalc.com/7779
33578
- toLinear: (c2) => {
33579
- const n2 = c2 / 255;
33580
- return c2 > 0.03928 ? Math.pow((n2 + 0.055) / 1.055, 2.4) : n2 / 12.92;
33581
- },
33582
- //SOURCE: https://gist.github.com/mjackson/5311256
33583
- hue2rgb: (p2, q2, t2) => (t2 < 0 && (t2 += 1), t2 > 1 && (t2 -= 1), t2 < 1 / 6 ? p2 + (q2 - p2) * 6 * t2 : t2 < 1 / 2 ? q2 : t2 < 2 / 3 ? p2 + (q2 - p2) * (2 / 3 - t2) * 6 : p2),
33584
- hsl2rgb: ({ h: h2, s: s2, l: l2 }, channel) => {
33585
- if (!s2)
33586
- return l2 * 2.55;
33587
- h2 /= 360, s2 /= 100, l2 /= 100;
33588
- const q2 = l2 < 0.5 ? l2 * (1 + s2) : l2 + s2 - l2 * s2, p2 = 2 * l2 - q2;
33589
- switch (channel) {
33590
- case "r":
33591
- return Channel.hue2rgb(p2, q2, h2 + 1 / 3) * 255;
33592
- case "g":
33593
- return Channel.hue2rgb(p2, q2, h2) * 255;
33594
- case "b":
33595
- return Channel.hue2rgb(p2, q2, h2 - 1 / 3) * 255;
33596
- }
33597
- },
33598
- rgb2hsl: ({ r: r2, g: g2, b: b2 }, channel) => {
33599
- r2 /= 255, g2 /= 255, b2 /= 255;
33600
- const max2 = Math.max(r2, g2, b2), min2 = Math.min(r2, g2, b2), l2 = (max2 + min2) / 2;
33601
- if (channel === "l")
33602
- return l2 * 100;
33603
- if (max2 === min2)
33604
- return 0;
33605
- const d2 = max2 - min2, s2 = l2 > 0.5 ? d2 / (2 - max2 - min2) : d2 / (max2 + min2);
33606
- if (channel === "s")
33607
- return s2 * 100;
33608
- switch (max2) {
33609
- case r2:
33610
- return ((g2 - b2) / d2 + (g2 < b2 ? 6 : 0)) * 60;
33611
- case g2:
33612
- return ((b2 - r2) / d2 + 2) * 60;
33613
- case b2:
33614
- return ((r2 - g2) / d2 + 4) * 60;
33615
- default:
33616
- return -1;
33617
- }
33618
- }
33619
- }, Lang = {
33620
- /* API */
33621
- clamp: (number2, lower2, upper) => lower2 > upper ? Math.min(lower2, Math.max(upper, number2)) : Math.min(upper, Math.max(lower2, number2)),
33622
- round: (number2) => Math.round(number2 * 1e10) / 1e10
33623
- }, lang = Lang, Unit = {
33624
- /* API */
33625
- dec2hex: (dec) => {
33626
- const hex2 = Math.round(dec).toString(16);
33627
- return hex2.length > 1 ? hex2 : `0${hex2}`;
33628
- }
33629
- }, unit = Unit, Utils = {
33630
- channel: Channel,
33631
- lang,
33632
- unit
33633
- }, DEC2HEX = {};
33634
- for (let i2 = 0; i2 <= 255; i2++)
33635
- DEC2HEX[i2] = Utils.unit.dec2hex(i2);
33636
- const TYPE = {
33637
- ALL: 0,
33638
- RGB: 1,
33639
- HSL: 2
33640
- };
33641
- class Type {
33642
- constructor() {
33643
- this.type = TYPE.ALL;
33644
- }
33645
- /* API */
33646
- get() {
33647
- return this.type;
33648
- }
33649
- set(type) {
33650
- if (this.type && this.type !== type)
33651
- throw new Error("Cannot change both RGB and HSL channels at the same time");
33652
- this.type = type;
33653
- }
33654
- reset() {
33655
- this.type = TYPE.ALL;
33656
- }
33657
- is(type) {
33658
- return this.type === type;
33659
- }
33660
- }
33661
- class Channels {
33662
- /* CONSTRUCTOR */
33663
- constructor(data, color2) {
33664
- this.color = color2, this.changed = !1, this.data = data, this.type = new Type();
33665
- }
33666
- /* API */
33667
- set(data, color2) {
33668
- return this.color = color2, this.changed = !1, this.data = data, this.type.type = TYPE.ALL, this;
33669
- }
33670
- /* HELPERS */
33671
- _ensureHSL() {
33672
- const data = this.data, { h: h2, s: s2, l: l2 } = data;
33673
- h2 === void 0 && (data.h = Utils.channel.rgb2hsl(data, "h")), s2 === void 0 && (data.s = Utils.channel.rgb2hsl(data, "s")), l2 === void 0 && (data.l = Utils.channel.rgb2hsl(data, "l"));
33674
- }
33675
- _ensureRGB() {
33676
- const data = this.data, { r: r2, g: g2, b: b2 } = data;
33677
- r2 === void 0 && (data.r = Utils.channel.hsl2rgb(data, "r")), g2 === void 0 && (data.g = Utils.channel.hsl2rgb(data, "g")), b2 === void 0 && (data.b = Utils.channel.hsl2rgb(data, "b"));
33678
- }
33679
- /* GETTERS */
33680
- get r() {
33681
- const data = this.data, r2 = data.r;
33682
- return !this.type.is(TYPE.HSL) && r2 !== void 0 ? r2 : (this._ensureHSL(), Utils.channel.hsl2rgb(data, "r"));
33683
- }
33684
- get g() {
33685
- const data = this.data, g2 = data.g;
33686
- return !this.type.is(TYPE.HSL) && g2 !== void 0 ? g2 : (this._ensureHSL(), Utils.channel.hsl2rgb(data, "g"));
33687
- }
33688
- get b() {
33689
- const data = this.data, b2 = data.b;
33690
- return !this.type.is(TYPE.HSL) && b2 !== void 0 ? b2 : (this._ensureHSL(), Utils.channel.hsl2rgb(data, "b"));
33691
- }
33692
- get h() {
33693
- const data = this.data, h2 = data.h;
33694
- return !this.type.is(TYPE.RGB) && h2 !== void 0 ? h2 : (this._ensureRGB(), Utils.channel.rgb2hsl(data, "h"));
33695
- }
33696
- get s() {
33697
- const data = this.data, s2 = data.s;
33698
- return !this.type.is(TYPE.RGB) && s2 !== void 0 ? s2 : (this._ensureRGB(), Utils.channel.rgb2hsl(data, "s"));
33699
- }
33700
- get l() {
33701
- const data = this.data, l2 = data.l;
33702
- return !this.type.is(TYPE.RGB) && l2 !== void 0 ? l2 : (this._ensureRGB(), Utils.channel.rgb2hsl(data, "l"));
33703
- }
33704
- get a() {
33705
- return this.data.a;
33706
- }
33707
- /* SETTERS */
33708
- set r(r2) {
33709
- this.type.set(TYPE.RGB), this.changed = !0, this.data.r = r2;
33710
- }
33711
- set g(g2) {
33712
- this.type.set(TYPE.RGB), this.changed = !0, this.data.g = g2;
33713
- }
33714
- set b(b2) {
33715
- this.type.set(TYPE.RGB), this.changed = !0, this.data.b = b2;
33716
- }
33717
- set h(h2) {
33718
- this.type.set(TYPE.HSL), this.changed = !0, this.data.h = h2;
33719
- }
33720
- set s(s2) {
33721
- this.type.set(TYPE.HSL), this.changed = !0, this.data.s = s2;
33722
- }
33723
- set l(l2) {
33724
- this.type.set(TYPE.HSL), this.changed = !0, this.data.l = l2;
33725
- }
33726
- set a(a) {
33727
- this.changed = !0, this.data.a = a;
33728
- }
33729
- }
33730
- const Channels$1 = Channels, channels = new Channels$1({ r: 0, g: 0, b: 0, a: 0 }, "transparent"), Hex = {
33731
- /* VARIABLES */
33732
- re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,
33733
- /* API */
33734
- parse: (color2) => {
33735
- if (color2.charCodeAt(0) !== 35)
33736
- return;
33737
- const match = color2.match(Hex.re);
33738
- if (!match)
33739
- return;
33740
- const hex2 = match[1], dec = parseInt(hex2, 16), length = hex2.length, hasAlpha = length % 4 === 0, isFullLength = length > 4, multiplier = isFullLength ? 1 : 17, bits = isFullLength ? 8 : 4, bitsOffset = hasAlpha ? 0 : -1, mask = isFullLength ? 255 : 15;
33741
- return channels.set({
33742
- r: (dec >> bits * (bitsOffset + 3) & mask) * multiplier,
33743
- g: (dec >> bits * (bitsOffset + 2) & mask) * multiplier,
33744
- b: (dec >> bits * (bitsOffset + 1) & mask) * multiplier,
33745
- a: hasAlpha ? (dec & mask) * multiplier / 255 : 1
33746
- }, color2);
33747
- },
33748
- stringify: (channels2) => {
33749
- const { r: r2, g: g2, b: b2, a } = channels2;
33750
- return a < 1 ? `#${DEC2HEX[Math.round(r2)]}${DEC2HEX[Math.round(g2)]}${DEC2HEX[Math.round(b2)]}${DEC2HEX[Math.round(a * 255)]}` : `#${DEC2HEX[Math.round(r2)]}${DEC2HEX[Math.round(g2)]}${DEC2HEX[Math.round(b2)]}`;
33751
- }
33752
- }, HSL = {
33753
- /* VARIABLES */
33754
- re: /^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,
33755
- hueRe: /^(.+?)(deg|grad|rad|turn)$/i,
33756
- /* HELPERS */
33757
- _hue2deg: (hue) => {
33758
- const match = hue.match(HSL.hueRe);
33759
- if (match) {
33760
- const [, number2, unit2] = match;
33761
- switch (unit2) {
33762
- case "grad":
33763
- return Utils.channel.clamp.h(parseFloat(number2) * 0.9);
33764
- case "rad":
33765
- return Utils.channel.clamp.h(parseFloat(number2) * 180 / Math.PI);
33766
- case "turn":
33767
- return Utils.channel.clamp.h(parseFloat(number2) * 360);
33768
- }
33769
- }
33770
- return Utils.channel.clamp.h(parseFloat(hue));
33771
- },
33772
- /* API */
33773
- parse: (color2) => {
33774
- const charCode = color2.charCodeAt(0);
33775
- if (charCode !== 104 && charCode !== 72)
33776
- return;
33777
- const match = color2.match(HSL.re);
33778
- if (!match)
33779
- return;
33780
- const [, h2, s2, l2, a, isAlphaPercentage] = match;
33781
- return channels.set({
33782
- h: HSL._hue2deg(h2),
33783
- s: Utils.channel.clamp.s(parseFloat(s2)),
33784
- l: Utils.channel.clamp.l(parseFloat(l2)),
33785
- a: a ? Utils.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1
33786
- }, color2);
33787
- },
33788
- stringify: (channels2) => {
33789
- const { h: h2, s: s2, l: l2, a } = channels2;
33790
- return a < 1 ? `hsla(${Utils.lang.round(h2)}, ${Utils.lang.round(s2)}%, ${Utils.lang.round(l2)}%, ${a})` : `hsl(${Utils.lang.round(h2)}, ${Utils.lang.round(s2)}%, ${Utils.lang.round(l2)}%)`;
33791
- }
33792
- }, Keyword = {
33793
- /* VARIABLES */
33794
- colors: {
33795
- aliceblue: "#f0f8ff",
33796
- antiquewhite: "#faebd7",
33797
- aqua: "#00ffff",
33798
- aquamarine: "#7fffd4",
33799
- azure: "#f0ffff",
33800
- beige: "#f5f5dc",
33801
- bisque: "#ffe4c4",
33802
- black: "#000000",
33803
- blanchedalmond: "#ffebcd",
33804
- blue: "#0000ff",
33805
- blueviolet: "#8a2be2",
33806
- brown: "#a52a2a",
33807
- burlywood: "#deb887",
33808
- cadetblue: "#5f9ea0",
33809
- chartreuse: "#7fff00",
33810
- chocolate: "#d2691e",
33811
- coral: "#ff7f50",
33812
- cornflowerblue: "#6495ed",
33813
- cornsilk: "#fff8dc",
33814
- crimson: "#dc143c",
33815
- cyanaqua: "#00ffff",
33816
- darkblue: "#00008b",
33817
- darkcyan: "#008b8b",
33818
- darkgoldenrod: "#b8860b",
33819
- darkgray: "#a9a9a9",
33820
- darkgreen: "#006400",
33821
- darkgrey: "#a9a9a9",
33822
- darkkhaki: "#bdb76b",
33823
- darkmagenta: "#8b008b",
33824
- darkolivegreen: "#556b2f",
33825
- darkorange: "#ff8c00",
33826
- darkorchid: "#9932cc",
33827
- darkred: "#8b0000",
33828
- darksalmon: "#e9967a",
33829
- darkseagreen: "#8fbc8f",
33830
- darkslateblue: "#483d8b",
33831
- darkslategray: "#2f4f4f",
33832
- darkslategrey: "#2f4f4f",
33833
- darkturquoise: "#00ced1",
33834
- darkviolet: "#9400d3",
33835
- deeppink: "#ff1493",
33836
- deepskyblue: "#00bfff",
33837
- dimgray: "#696969",
33838
- dimgrey: "#696969",
33839
- dodgerblue: "#1e90ff",
33840
- firebrick: "#b22222",
33841
- floralwhite: "#fffaf0",
33842
- forestgreen: "#228b22",
33843
- fuchsia: "#ff00ff",
33844
- gainsboro: "#dcdcdc",
33845
- ghostwhite: "#f8f8ff",
33846
- gold: "#ffd700",
33847
- goldenrod: "#daa520",
33848
- gray: "#808080",
33849
- green: "#008000",
33850
- greenyellow: "#adff2f",
33851
- grey: "#808080",
33852
- honeydew: "#f0fff0",
33853
- hotpink: "#ff69b4",
33854
- indianred: "#cd5c5c",
33855
- indigo: "#4b0082",
33856
- ivory: "#fffff0",
33857
- khaki: "#f0e68c",
33858
- lavender: "#e6e6fa",
33859
- lavenderblush: "#fff0f5",
33860
- lawngreen: "#7cfc00",
33861
- lemonchiffon: "#fffacd",
33862
- lightblue: "#add8e6",
33863
- lightcoral: "#f08080",
33864
- lightcyan: "#e0ffff",
33865
- lightgoldenrodyellow: "#fafad2",
33866
- lightgray: "#d3d3d3",
33867
- lightgreen: "#90ee90",
33868
- lightgrey: "#d3d3d3",
33869
- lightpink: "#ffb6c1",
33870
- lightsalmon: "#ffa07a",
33871
- lightseagreen: "#20b2aa",
33872
- lightskyblue: "#87cefa",
33873
- lightslategray: "#778899",
33874
- lightslategrey: "#778899",
33875
- lightsteelblue: "#b0c4de",
33876
- lightyellow: "#ffffe0",
33877
- lime: "#00ff00",
33878
- limegreen: "#32cd32",
33879
- linen: "#faf0e6",
33880
- magenta: "#ff00ff",
33881
- maroon: "#800000",
33882
- mediumaquamarine: "#66cdaa",
33883
- mediumblue: "#0000cd",
33884
- mediumorchid: "#ba55d3",
33885
- mediumpurple: "#9370db",
33886
- mediumseagreen: "#3cb371",
33887
- mediumslateblue: "#7b68ee",
33888
- mediumspringgreen: "#00fa9a",
33889
- mediumturquoise: "#48d1cc",
33890
- mediumvioletred: "#c71585",
33891
- midnightblue: "#191970",
33892
- mintcream: "#f5fffa",
33893
- mistyrose: "#ffe4e1",
33894
- moccasin: "#ffe4b5",
33895
- navajowhite: "#ffdead",
33896
- navy: "#000080",
33897
- oldlace: "#fdf5e6",
33898
- olive: "#808000",
33899
- olivedrab: "#6b8e23",
33900
- orange: "#ffa500",
33901
- orangered: "#ff4500",
33902
- orchid: "#da70d6",
33903
- palegoldenrod: "#eee8aa",
33904
- palegreen: "#98fb98",
33905
- paleturquoise: "#afeeee",
33906
- palevioletred: "#db7093",
33907
- papayawhip: "#ffefd5",
33908
- peachpuff: "#ffdab9",
33909
- peru: "#cd853f",
33910
- pink: "#ffc0cb",
33911
- plum: "#dda0dd",
33912
- powderblue: "#b0e0e6",
33913
- purple: "#800080",
33914
- rebeccapurple: "#663399",
33915
- red: "#ff0000",
33916
- rosybrown: "#bc8f8f",
33917
- royalblue: "#4169e1",
33918
- saddlebrown: "#8b4513",
33919
- salmon: "#fa8072",
33920
- sandybrown: "#f4a460",
33921
- seagreen: "#2e8b57",
33922
- seashell: "#fff5ee",
33923
- sienna: "#a0522d",
33924
- silver: "#c0c0c0",
33925
- skyblue: "#87ceeb",
33926
- slateblue: "#6a5acd",
33927
- slategray: "#708090",
33928
- slategrey: "#708090",
33929
- snow: "#fffafa",
33930
- springgreen: "#00ff7f",
33931
- tan: "#d2b48c",
33932
- teal: "#008080",
33933
- thistle: "#d8bfd8",
33934
- transparent: "#00000000",
33935
- turquoise: "#40e0d0",
33936
- violet: "#ee82ee",
33937
- wheat: "#f5deb3",
33938
- white: "#ffffff",
33939
- whitesmoke: "#f5f5f5",
33940
- yellow: "#ffff00",
33941
- yellowgreen: "#9acd32"
33942
- },
33943
- /* API */
33944
- parse: (color2) => {
33945
- color2 = color2.toLowerCase();
33946
- const hex2 = Keyword.colors[color2];
33947
- if (hex2)
33948
- return Hex.parse(hex2);
33949
- },
33950
- stringify: (channels2) => {
33951
- const hex2 = Hex.stringify(channels2);
33952
- for (const name in Keyword.colors)
33953
- if (Keyword.colors[name] === hex2)
33954
- return name;
33955
- }
33956
- }, RGB = {
33957
- /* VARIABLES */
33958
- re: /^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,
33959
- /* API */
33960
- parse: (color2) => {
33961
- const charCode = color2.charCodeAt(0);
33962
- if (charCode !== 114 && charCode !== 82)
33963
- return;
33964
- const match = color2.match(RGB.re);
33965
- if (!match)
33966
- return;
33967
- const [, r2, isRedPercentage, g2, isGreenPercentage, b2, isBluePercentage, a, isAlphaPercentage] = match;
33968
- return channels.set({
33969
- r: Utils.channel.clamp.r(isRedPercentage ? parseFloat(r2) * 2.55 : parseFloat(r2)),
33970
- g: Utils.channel.clamp.g(isGreenPercentage ? parseFloat(g2) * 2.55 : parseFloat(g2)),
33971
- b: Utils.channel.clamp.b(isBluePercentage ? parseFloat(b2) * 2.55 : parseFloat(b2)),
33972
- a: a ? Utils.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1
33973
- }, color2);
33974
- },
33975
- stringify: (channels2) => {
33976
- const { r: r2, g: g2, b: b2, a } = channels2;
33977
- return a < 1 ? `rgba(${Utils.lang.round(r2)}, ${Utils.lang.round(g2)}, ${Utils.lang.round(b2)}, ${Utils.lang.round(a)})` : `rgb(${Utils.lang.round(r2)}, ${Utils.lang.round(g2)}, ${Utils.lang.round(b2)})`;
33978
- }
33979
- }, Color = {
33980
- /* VARIABLES */
33981
- format: {
33982
- keyword: Keyword,
33983
- hex: Hex,
33984
- rgb: RGB,
33985
- rgba: RGB,
33986
- hsl: HSL,
33987
- hsla: HSL
33988
- },
33989
- /* API */
33990
- parse: (color2) => {
33991
- if (typeof color2 != "string")
33992
- return color2;
33993
- const channels2 = Hex.parse(color2) || RGB.parse(color2) || HSL.parse(color2) || Keyword.parse(color2);
33994
- if (channels2)
33995
- return channels2;
33996
- throw new Error(`Unsupported color format: "${color2}"`);
33997
- },
33998
- stringify: (channels2) => !channels2.changed && channels2.color ? channels2.color : channels2.type.is(TYPE.HSL) || channels2.data.r === void 0 ? HSL.stringify(channels2) : channels2.a < 1 || !Number.isInteger(channels2.r) || !Number.isInteger(channels2.g) || !Number.isInteger(channels2.b) ? RGB.stringify(channels2) : Hex.stringify(channels2)
33999
- }, change = (color2, channels2) => {
34000
- const ch2 = Color.parse(color2);
34001
- for (const c2 in channels2)
34002
- ch2[c2] = Utils.channel.clamp[c2](channels2[c2]);
34003
- return Color.stringify(ch2);
34004
- }, change$1 = change, toHex = (color2) => Color.format.hex.stringify(Color.parse(color2)), adjust = (color2, channels2) => {
34005
- const ch2 = Color.parse(color2), changes = {};
34006
- for (const c2 in channels2)
34007
- channels2[c2] && (changes[c2] = ch2[c2] + channels2[c2]);
34008
- return change$1(color2, changes);
34009
- }, adjust$1 = adjust, scale = (color2, channels2) => {
34010
- const ch2 = Color.parse(color2), adjustments = {}, delta = (amount, weight, max2) => weight > 0 ? (max2 - amount) * weight / 100 : amount * weight / 100;
34011
- for (const c2 in channels2)
34012
- adjustments[c2] = delta(ch2[c2], channels2[c2], Utils.channel.max[c2]);
34013
- return adjust$1(color2, adjustments);
34014
- }, scale$1 = scale;
34015
- var vars = { default: { font: "var(--likec4-default-font-family)" }, likec4: { font: "var(--likec4-font-family)", background: { color: "var(--likec4-background-color)", pattern: { color: "var(--likec4-background-pattern-color)" } } }, compound: { font: "var(--likec4-compound-font-family)", titleColor: "var(--likec4-compound-title-color)" }, element: { font: "var(--likec4-element-font-family)", fill: "var(--likec4-element-fill)", stroke: "var(--likec4-element-stroke)", hiContrast: "var(--likec4-element-hiContrast)", loContrast: "var(--likec4-element-loContrast)" }, relation: { lineColor: "var(--likec4-relation-lineColor)", labelColor: "var(--likec4-relation-labelColor)", labelBgColor: "var(--likec4-relation-labelBg)" }, optionsPanel: { top: "var(--likec4-options-panel-top)", right: "var(--likec4-options-panel-right)" } };
34016
- const Link = reactExports.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntimeExports.jsx(
33163
+ ] })), Link = reactExports.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntimeExports.jsx(
34017
33164
  "svg",
34018
33165
  {
34019
33166
  ref,
@@ -34067,48 +33214,45 @@ function NavigateToBtn({ xynodeId, className }) {
34067
33214
  className: clsx("nodrag nopan", className),
34068
33215
  radius: "xl",
34069
33216
  onClick: (event) => {
34070
- diagramApi.getState().triggerOnNavigateTo(xynodeId, event), event.stopPropagation();
33217
+ event.stopPropagation(), diagramApi.getState().triggerOnNavigateTo(xynodeId, event);
34071
33218
  },
33219
+ onDoubleClick: (event) => event.stopPropagation(),
34072
33220
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(ZoomIn, {})
34073
33221
  }
34074
33222
  );
34075
33223
  }
34076
- var cssContainer = "c3cfh00", cssCompound = "c3cfh02", cssTitle = "c3cfh04", cssIndicator = "c3cfh06", cssNavigateBtn$1 = "c3cfh07";
34077
- const compoundColor = (color2, depth) => toHex(
34078
- scale$1(color2, {
34079
- l: -35 - 5 * depth,
34080
- s: -15 - 5 * depth
34081
- })
34082
- ), CompoundNodeMemo = /* @__PURE__ */ reactExports.memo(function({
33224
+ var container$1 = "c3cfh00", varTransparency = "var(--c3cfh01)", compoundBody = "c3cfh02", transparent = "c3cfh05", title$1 = "c3cfh06", indicator$1 = "c3cfh0a", navigateBtn = "c3cfh0c";
33225
+ const CompoundNodeMemo = /* @__PURE__ */ reactExports.memo(function({
34083
33226
  id: id2,
34084
33227
  data: {
34085
33228
  element
34086
33229
  }
34087
33230
  }) {
34088
- const { color: color2, depth = 0, ...compound } = element, colors2 = reactExports.useMemo(() => {
34089
- const colors22 = defaultTheme.elements[color2];
34090
- return {
34091
- fill: compoundColor(colors22.fill, depth),
34092
- stroke: compoundColor(colors22.stroke, depth)
34093
- };
34094
- }, [color2, depth]), { isHovered, hasOnNavigateTo } = useDiagramState((s2) => ({
33231
+ const { color: color2, style: style2, depth = 1, ...compound } = element, opacity = style2.opacity ?? 100, { isHovered, hasOnNavigateTo } = useDiagramState((s2) => ({
34095
33232
  isHovered: s2.hoveredNodeId === id2,
34096
33233
  hasOnNavigateTo: !!s2.onNavigateTo
34097
- })), isnavigable = !!compound.navigateTo && hasOnNavigateTo;
33234
+ })), isnavigable = !!compound.navigateTo && hasOnNavigateTo, transparency = clamp$1(100 - opacity, {
33235
+ min: 0,
33236
+ max: 98
33237
+ });
34098
33238
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
34099
33239
  Box$1,
34100
33240
  {
34101
- className: clsx(cssContainer, "likec4-compound-node"),
34102
- style: assignInlineVars({ fill: vars.element.fill, stroke: vars.element.stroke }, {
34103
- fill: colors2.fill,
34104
- stroke: colors2.stroke
34105
- }),
33241
+ className: clsx(
33242
+ container$1,
33243
+ "likec4-compound-node",
33244
+ opacity < 100 && "likec4-compound-transparent"
33245
+ ),
34106
33246
  mod: {
33247
+ "compound-depth": depth,
34107
33248
  "likec4-color": color2,
34108
33249
  "likec4-shape": compound.shape,
34109
33250
  "likec4-navigable": isnavigable,
34110
33251
  hovered: isHovered
34111
33252
  },
33253
+ style: assignInlineVars({
33254
+ [varTransparency]: transparency + "%"
33255
+ }),
34112
33256
  children: [
34113
33257
  /* @__PURE__ */ jsxRuntimeExports.jsx(
34114
33258
  Handle,
@@ -34118,7 +33262,7 @@ const compoundColor = (color2, depth) => toHex(
34118
33262
  style: { visibility: "hidden" }
34119
33263
  }
34120
33264
  ),
34121
- /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { className: cssIndicator, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
33265
+ /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { className: indicator$1, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
34122
33266
  "rect",
34123
33267
  {
34124
33268
  x: 0,
@@ -34128,15 +33272,24 @@ const compoundColor = (color2, depth) => toHex(
34128
33272
  rx: 6
34129
33273
  }
34130
33274
  ) }),
34131
- /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: clsx(cssCompound, "likec4-compound"), children: /* @__PURE__ */ jsxRuntimeExports.jsx(
34132
- Text$1,
33275
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
33276
+ "div",
34133
33277
  {
34134
- component: "div",
34135
- className: clsx(cssTitle, "likec4-compound-title"),
34136
- children: compound.title
33278
+ className: clsx(compoundBody, opacity < 100 && transparent, "likec4-compound"),
33279
+ style: {
33280
+ borderStyle: opacity < 100 ? style2.border : void 0
33281
+ },
33282
+ children: /* @__PURE__ */ jsxRuntimeExports.jsx(
33283
+ Text$1,
33284
+ {
33285
+ component: "div",
33286
+ className: clsx(title$1, "likec4-compound-title"),
33287
+ children: compound.title
33288
+ }
33289
+ )
34137
33290
  }
34138
- ) }),
34139
- isnavigable && /* @__PURE__ */ jsxRuntimeExports.jsx(NavigateToBtn, { xynodeId: id2, className: cssNavigateBtn$1 }),
33291
+ ),
33292
+ isnavigable && /* @__PURE__ */ jsxRuntimeExports.jsx(NavigateToBtn, { xynodeId: id2, className: navigateBtn }),
34140
33293
  /* @__PURE__ */ jsxRuntimeExports.jsx(
34141
33294
  Handle,
34142
33295
  {
@@ -34425,7 +33578,7 @@ function ElementNode({
34425
33578
  }) {
34426
33579
  const { isHovered, hasOnNavigateTo, isHovercards, isInteractive } = useDiagramState((s2) => ({
34427
33580
  isHovered: s2.hoveredNodeId === id2,
34428
- isInteractive: s2.nodesDraggable || s2.nodesSelectable,
33581
+ isInteractive: s2.nodesDraggable || s2.nodesSelectable || !!s2.onNavigateTo,
34429
33582
  isHovercards: s2.showElementLinks,
34430
33583
  hasOnNavigateTo: !!s2.onNavigateTo
34431
33584
  })), isNavigable = hasOnNavigateTo && !!element.navigateTo, w2 = toDomPrecision(width ?? element.width), h2 = toDomPrecision(height ?? element.height);
@@ -34437,7 +33590,7 @@ function ElementNode({
34437
33590
  case dragging:
34438
33591
  animate = "idle";
34439
33592
  break;
34440
- case ((isInteractive || hasOnNavigateTo) && isHovered):
33593
+ case (isInteractive && isHovered):
34441
33594
  animate = "hovered";
34442
33595
  break;
34443
33596
  case selected2:
@@ -34553,29 +33706,32 @@ const XYFlowBackground = reactExports.memo(({ background }) => {
34553
33706
  return /* @__PURE__ */ jsxRuntimeExports.jsx(Background, { variant: literalToEnum(variant), ...rest });
34554
33707
  }, deepEqual);
34555
33708
  function useXYFlowEvents() {
34556
- const diagramApi = useDiagramStoreApi(), xyflowApi = useXYStoreApi(), dblclickTimeout = reactExports.useRef();
33709
+ const diagramApi = useDiagramStoreApi(), xyflowApi = useXYStoreApi(), dblclickTimeout = reactExports.useRef(), dbclickGuarg = () => dblclickTimeout.current !== void 0 ? !0 : (dblclickTimeout.current = window.setTimeout(() => {
33710
+ dblclickTimeout.current = void 0;
33711
+ }, 250), !1);
34557
33712
  return reactExports.useMemo(() => ({
34558
- onPaneClick: (event) => {
34559
- diagramApi.setState(
34560
- {
34561
- lastClickedNodeId: null,
34562
- lastClickedEdgeId: null
34563
- },
34564
- !1,
34565
- "onPaneClick"
34566
- );
33713
+ onDoubleClick: (event) => {
33714
+ diagramApi.getState().setLastClickedNode(null), diagramApi.getState().setLastClickedEdge(null);
34567
33715
  const diagramState = diagramApi.getState();
34568
- if (dblclickTimeout.current) {
34569
- if (window.clearTimeout(dblclickTimeout.current), dblclickTimeout.current = void 0, diagramState.onCanvasDblClick) {
34570
- diagramState.onCanvasDblClick(event);
34571
- return;
34572
- }
34573
- diagramState.onCanvasClick?.(event), diagramState.fitViewEnabled && diagramState.viewportChanged && diagramState.fitDiagram();
33716
+ if (diagramState.onCanvasDblClick) {
33717
+ diagramState.onCanvasDblClick(event);
34574
33718
  return;
34575
33719
  }
34576
- dblclickTimeout.current = window.setTimeout(() => {
34577
- dblclickTimeout.current = void 0, diagramApi.getState().onCanvasClick?.(event);
34578
- }, 300);
33720
+ if (diagramState.fitViewEnabled && diagramState.zoomable) {
33721
+ diagramState.fitDiagram(), event.stopPropagation();
33722
+ return;
33723
+ }
33724
+ },
33725
+ onPaneClick: (event) => {
33726
+ if (dbclickGuarg())
33727
+ return;
33728
+ diagramApi.getState().setLastClickedNode(null), diagramApi.getState().setLastClickedEdge(null);
33729
+ const { focusedNodeId, fitDiagram, onCanvasClick } = diagramApi.getState();
33730
+ if (onCanvasClick) {
33731
+ onCanvasClick(event);
33732
+ return;
33733
+ }
33734
+ focusedNodeId && (fitDiagram(), event.stopPropagation());
34579
33735
  },
34580
33736
  onNodeContextMenu: (event, xynode) => {
34581
33737
  diagramApi.getState().setLastClickedNode(xynode.id), diagramApi.getState().onNodeContextMenu?.({
@@ -34595,11 +33751,21 @@ function useXYFlowEvents() {
34595
33751
  });
34596
33752
  },
34597
33753
  onNodeClick: (event, xynode) => {
34598
- diagramApi.getState().setLastClickedNode(xynode.id), diagramApi.getState().onNodeClick?.({
34599
- element: xynode.data.element,
34600
- xynode,
34601
- event
34602
- });
33754
+ diagramApi.getState().setLastClickedNode(xynode.id);
33755
+ const { focusedNodeId, fitDiagram, onNodeClick } = diagramApi.getState();
33756
+ if (onNodeClick) {
33757
+ onNodeClick({
33758
+ element: xynode.data.element,
33759
+ xynode,
33760
+ event
33761
+ });
33762
+ return;
33763
+ }
33764
+ focusedNodeId && focusedNodeId !== xynode.id && (fitDiagram(xynode), event.stopPropagation());
33765
+ },
33766
+ onNodeDoubleClick: (event, xynode) => {
33767
+ const { zoomable, fitDiagram, onNodeClick } = diagramApi.getState();
33768
+ onNodeClick || zoomable && (fitDiagram(xynode), event.stopPropagation());
34603
33769
  },
34604
33770
  onEdgeClick: (event, xyedge) => {
34605
33771
  diagramApi.getState().setLastClickedEdge(xyedge.id), diagramApi.getState().onEdgeClick?.({
@@ -34611,6 +33777,18 @@ function useXYFlowEvents() {
34611
33777
  onMoveEnd: (event, _viewport) => {
34612
33778
  const viewportChanged = !!event;
34613
33779
  viewportChanged !== diagramApi.getState().viewportChanged && diagramApi.setState({ viewportChanged }, !1, `viewport-changed: ${viewportChanged}`);
33780
+ },
33781
+ onNodeMouseEnter: (event, xynode) => {
33782
+ diagramApi.getState().setHoveredNode(xynode.id);
33783
+ },
33784
+ onNodeMouseLeave: (event, xynode) => {
33785
+ diagramApi.getState().setHoveredNode(null);
33786
+ },
33787
+ onEdgeMouseEnter: (event, xyedge) => {
33788
+ diagramApi.getState().setHoveredEdge(xyedge.id);
33789
+ },
33790
+ onEdgeMouseLeave: (event, xyedge) => {
33791
+ diagramApi.getState().setHoveredEdge(null);
34614
33792
  }
34615
33793
  }), [diagramApi, xyflowApi]);
34616
33794
  }
@@ -34630,15 +33808,14 @@ const nodeTypes = {
34630
33808
  hasOnCanvasContextMenu: !!s2.onCanvasContextMenu,
34631
33809
  hasOnEdgeContextMenu: !!s2.onEdgeContextMenu,
34632
33810
  hasOnEdgeClick: !!s2.onEdgeClick,
34633
- hasOnCanvasClick: !!s2.onCanvasClick || !!s2.onCanvasDblClick
33811
+ zoomable: s2.zoomable,
33812
+ pannable: s2.pannable
34634
33813
  });
34635
33814
  function XYFlowWrapper({
34636
33815
  className,
34637
33816
  children: children2,
34638
33817
  defaultNodes,
34639
33818
  defaultEdges,
34640
- pannable,
34641
- zoomable,
34642
33819
  controls,
34643
33820
  background,
34644
33821
  style: style2
@@ -34648,6 +33825,8 @@ function XYFlowWrapper({
34648
33825
  nodesDraggable,
34649
33826
  fitView: fitView2,
34650
33827
  fitViewPadding,
33828
+ pannable,
33829
+ zoomable,
34651
33830
  ...editor
34652
33831
  } = useDiagramState(selector), layoutConstraints = useLayoutConstraints(), handlers = useXYFlowEvents(), isBgWithPattern = background !== "transparent" && background !== "solid", { colorScheme } = useMantineColorScheme(), colorMode = colorScheme !== "auto" ? colorScheme : void 0;
34653
33832
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(
@@ -34687,33 +33866,27 @@ function XYFlowWrapper({
34687
33866
  selectionKeyCode: null
34688
33867
  },
34689
33868
  nodesDraggable,
34690
- ...nodesDraggable && layoutConstraints,
33869
+ ...nodesDraggable && {
33870
+ onNodeDragStart: layoutConstraints.onNodeDragStart,
33871
+ onNodeDrag: layoutConstraints.onNodeDrag,
33872
+ onNodeDragStop: layoutConstraints.onNodeDragStop
33873
+ },
34691
33874
  zoomOnDoubleClick: !1,
34692
33875
  elevateNodesOnSelect: !1,
34693
33876
  selectNodesOnDrag: !1,
33877
+ onDoubleClick: handlers.onDoubleClick,
34694
33878
  onPaneClick: handlers.onPaneClick,
34695
- ...editor.hasOnNodeClick && {
34696
- onNodeClick: handlers.onNodeClick
34697
- },
34698
- ...editor.hasOnEdgeClick && {
34699
- onEdgeClick: handlers.onEdgeClick
34700
- },
34701
33879
  onMoveEnd: handlers.onMoveEnd,
33880
+ onNodeMouseEnter: handlers.onNodeMouseEnter,
33881
+ onNodeMouseLeave: handlers.onNodeMouseLeave,
33882
+ onEdgeMouseEnter: handlers.onEdgeMouseEnter,
33883
+ onEdgeMouseLeave: handlers.onEdgeMouseLeave,
33884
+ onNodeClick: handlers.onNodeClick,
33885
+ onNodeDoubleClick: handlers.onNodeDoubleClick,
33886
+ onEdgeClick: handlers.onEdgeClick,
34702
33887
  onInit: () => {
34703
33888
  diagramApi.setState({ initialized: !0 }, !1, "initialized");
34704
33889
  },
34705
- onNodeMouseEnter: (_event, node) => {
34706
- diagramApi.getState().setHoveredNode(node.id);
34707
- },
34708
- onNodeMouseLeave: () => {
34709
- diagramApi.getState().setHoveredNode(null);
34710
- },
34711
- onEdgeMouseEnter: (_event, edge) => {
34712
- diagramApi.getState().setHoveredEdge(edge.id);
34713
- },
34714
- onEdgeMouseLeave: () => {
34715
- diagramApi.getState().setHoveredEdge(null);
34716
- },
34717
33890
  ...editor.hasOnNodeContextMenu && {
34718
33891
  onNodeContextMenu: handlers.onNodeContextMenu
34719
33892
  },
@@ -34781,6 +33954,8 @@ function LikeC4Diagram({
34781
33954
  {
34782
33955
  view,
34783
33956
  readonly,
33957
+ pannable,
33958
+ zoomable,
34784
33959
  fitViewEnabled: fitView2,
34785
33960
  fitViewPadding,
34786
33961
  showElementLinks,
@@ -34797,7 +33972,7 @@ function LikeC4Diagram({
34797
33972
  onCanvasDblClick,
34798
33973
  children: [
34799
33974
  /* @__PURE__ */ jsxRuntimeExports.jsx(
34800
- KeepAspectRatio,
33975
+ KeepAspectRatioContainer,
34801
33976
  {
34802
33977
  className: clsx(rootClassName, className),
34803
33978
  enabled: keepAspectRatio,
@@ -34817,8 +33992,6 @@ function LikeC4Diagram({
34817
33992
  controls,
34818
33993
  defaultNodes: initialRef.current.defaultNodes,
34819
33994
  defaultEdges: initialRef.current.defaultEdges,
34820
- pannable,
34821
- zoomable,
34822
33995
  children: readonly !== !0 && /* @__PURE__ */ jsxRuntimeExports.jsx(OptionsPanel2, {})
34823
33996
  }
34824
33997
  )
@@ -37053,22 +36226,22 @@ const ViewViewIdReactLegacyLazyImport = createFileRoute(
37053
36226
  path: "/react-legacy",
37054
36227
  getParentRoute: () => ViewViewIdRoute
37055
36228
  }).lazy(
37056
- () => import("./view._viewId.react-legacy.lazy-D82hW8RW.js").then((d2) => d2.Route)
36229
+ () => import("./view._viewId.react-legacy.lazy-DvQqUilU.js").then((d2) => d2.Route)
37057
36230
  ), ViewViewIdMmdLazyRoute = ViewViewIdMmdLazyImport.update({
37058
36231
  path: "/mmd",
37059
36232
  getParentRoute: () => ViewViewIdRoute
37060
36233
  }).lazy(
37061
- () => import("./view._viewId.mmd.lazy-CkKTxoM5.js").then((d2) => d2.Route)
36234
+ () => import("./view._viewId.mmd.lazy-o20hkhat.js").then((d2) => d2.Route)
37062
36235
  ), ViewViewIdDotLazyRoute = ViewViewIdDotLazyImport.update({
37063
36236
  path: "/dot",
37064
36237
  getParentRoute: () => ViewViewIdRoute
37065
36238
  }).lazy(
37066
- () => import("./view._viewId.dot.lazy-DC6I8DnA.js").then((d2) => d2.Route)
36239
+ () => import("./view._viewId.dot.lazy-_gnghLVA.js").then((d2) => d2.Route)
37067
36240
  ), ViewViewIdD2LazyRoute = ViewViewIdD2LazyImport.update({
37068
36241
  path: "/d2",
37069
36242
  getParentRoute: () => ViewViewIdRoute
37070
36243
  }).lazy(
37071
- () => import("./view._viewId.d2.lazy-DTd-VfOz.js").then((d2) => d2.Route)
36244
+ () => import("./view._viewId.d2.lazy-BX8VfXLS.js").then((d2) => d2.Route)
37072
36245
  ), ViewViewIdEditorRoute = Route2.update({
37073
36246
  path: "/editor",
37074
36247
  getParentRoute: () => ViewViewIdRoute
@@ -37119,41 +36292,35 @@ client.createRoot(document.getElementById("like4-root")).render(
37119
36292
  /* @__PURE__ */ jsxRuntimeExports.jsx(Routes, {})
37120
36293
  );
37121
36294
  export {
37122
- CopyButton as A,
36295
+ ActionIcon as A,
37123
36296
  Box$1 as B,
37124
- Color as C,
37125
- ActionIcon as D,
37126
- rem as E,
37127
- IconCopy as F,
36297
+ Code as C,
37128
36298
  IconCheck as I,
37129
36299
  React as R,
37130
36300
  ScrollArea as S,
37131
36301
  Tooltip as T,
37132
- Utils as U,
37133
36302
  useUnmountEffect$1 as a,
37134
36303
  useSyncedRef as b,
37135
36304
  useFirstMountState as c,
37136
- change$1 as d,
37137
- channels as e,
37138
- commonjsGlobal as f,
36305
+ commonjsGlobal as d,
36306
+ invariant$1 as e,
36307
+ useUpdateEffect$1 as f,
37139
36308
  getDefaultExportFromCjs as g,
37140
- scale$1 as h,
36309
+ nonNullable as h,
37141
36310
  isBrowser$1 as i,
37142
36311
  jsxRuntimeExports as j,
37143
- invariant$1 as k,
37144
- useUpdateEffect$1 as l,
37145
- nonNullable as m,
36312
+ defaultTheme as k,
36313
+ createLazyFileRoute as l,
36314
+ useRouter as m,
37146
36315
  nonexhaustive as n,
37147
- defaultTheme as o,
37148
- createLazyFileRoute as p,
37149
- useRouter as q,
36316
+ useLikeC4View as o,
36317
+ notFound as p,
36318
+ svgContainer as q,
37150
36319
  reactExports as r,
37151
36320
  schedulerExports as s,
37152
- toHex as t,
36321
+ React$1 as t,
37153
36322
  useRafCallback as u,
37154
- useLikeC4View as v,
37155
- notFound as w,
37156
- Code as x,
37157
- svgContainer as y,
37158
- React$1 as z
36323
+ CopyButton as v,
36324
+ rem as w,
36325
+ IconCopy as x
37159
36326
  };