@noya-app/noya-designsystem 0.1.20 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -86,6 +86,7 @@ __export(src_exports, {
86
86
  SUPPORTED_IMAGE_UPLOAD_TYPES: () => SUPPORTED_IMAGE_UPLOAD_TYPES,
87
87
  ScrollArea: () => ScrollArea,
88
88
  Select: () => Select,
89
+ SelectMenu: () => SelectMenu,
89
90
  SelectOption: () => SelectOption,
90
91
  Slider: () => Slider,
91
92
  Small: () => Small,
@@ -182,7 +183,7 @@ function mergeBreakpoints(breakpoints, transform) {
182
183
  ) : breakpoints;
183
184
  const breakpointList = Object.entries(breakpointMap);
184
185
  const transformedList = breakpointList.sort((a, b) => Number(b[0]) - Number(a[0])).map(([width, value]) => [
185
- `@media screen and (max-width: ${width}px)`,
186
+ `@media (min-width: ${width}px)`,
186
187
  transform?.(value) ?? value
187
188
  ]);
188
189
  return Object.fromEntries(transformedList);
@@ -212,7 +213,17 @@ var Element = import_styled_components2.default.div(({ $styleProps, $breakpoints
212
213
  ...$styleProps,
213
214
  ...mergeBreakpoints($breakpoints || [])
214
215
  }));
215
- var StackBase = (0, import_react3.forwardRef)(function StackBase2({ id, as, children, separator, breakpoints, tabIndex, href, ...rest }, forwardedRef) {
216
+ var StackBase = (0, import_react3.forwardRef)(function StackBase2({
217
+ id,
218
+ className,
219
+ as,
220
+ children,
221
+ separator,
222
+ breakpoints,
223
+ tabIndex,
224
+ href,
225
+ ...rest
226
+ }, forwardedRef) {
216
227
  const elements2 = separator ? withSeparatorElements(import_react3.Children.toArray(children), separator) : children;
217
228
  const styleProps = {
218
229
  display: "flex",
@@ -225,6 +236,7 @@ var StackBase = (0, import_react3.forwardRef)(function StackBase2({ id, as, chil
225
236
  {
226
237
  ref: forwardedRef,
227
238
  id,
239
+ className,
228
240
  as,
229
241
  $styleProps: styleProps,
230
242
  $breakpoints: breakpoints,
@@ -788,7 +800,8 @@ var textStyles = {
788
800
  fontFamily: fonts.normal,
789
801
  fontSize: `${typeScale[6]}rem`,
790
802
  fontWeight: 400,
791
- lineHeight: "1.4"
803
+ lineHeight: "19px"
804
+ // lineHeight: "1.4",
792
805
  },
793
806
  button: {
794
807
  fontFamily: fonts.normal,
@@ -806,7 +819,8 @@ var textStyles = {
806
819
  fontFamily: fonts.normal,
807
820
  fontSize: "0.62rem",
808
821
  fontWeight: 400,
809
- lineHeight: "1.4",
822
+ lineHeight: "19px",
823
+ // lineHeight: "1.4",
810
824
  textTransform: "uppercase",
811
825
  letterSpacing: "-0.3px"
812
826
  }
@@ -1855,13 +1869,7 @@ function Popover({
1855
1869
  onFocusOutside,
1856
1870
  onPointerDownOutside,
1857
1871
  collisionPadding: 8,
1858
- arrowPadding: 2,
1859
- onPointerDown: (event) => {
1860
- event.stopPropagation();
1861
- },
1862
- onWheel: (event) => {
1863
- event.stopPropagation();
1864
- }
1872
+ arrowPadding: 2
1865
1873
  },
1866
1874
  children,
1867
1875
  showArrow && /* @__PURE__ */ import_react31.default.createElement(ArrowElement, null),
@@ -2043,7 +2051,11 @@ var InputElement = (0, import_styled_components13.default)(TextInput_default)(({
2043
2051
  // },
2044
2052
  };
2045
2053
  });
2046
- var InputFieldInput = (0, import_react32.forwardRef)(function InputFieldInput2(props, forwardedRef) {
2054
+ var InputFieldInput = (0, import_react32.forwardRef)(function InputFieldInput2({
2055
+ textAlign,
2056
+ variant,
2057
+ ...rest
2058
+ }, forwardedRef) {
2047
2059
  const {
2048
2060
  labelPosition,
2049
2061
  labelSize,
@@ -2071,8 +2083,10 @@ var InputFieldInput = (0, import_react32.forwardRef)(function InputFieldInput2(p
2071
2083
  $hasLabel: hasLabel,
2072
2084
  $hasDropdown: hasDropdown,
2073
2085
  $size: size2,
2086
+ $variant: variant,
2087
+ $textAlign: textAlign,
2074
2088
  onFocusChange: handleFocusChange,
2075
- ...props
2089
+ ...rest
2076
2090
  }
2077
2091
  );
2078
2092
  });
@@ -2116,9 +2130,10 @@ function parseNumber(value) {
2116
2130
  return value ? Number(value) : NaN;
2117
2131
  }
2118
2132
  function InputFieldNumberInput(props) {
2119
- const { value, placeholder, onNudge, ...rest } = props;
2133
+ const { value, placeholder, onNudge, onBlur, ...rest } = props;
2120
2134
  const onSubmit = "onSubmit" in props ? props.onSubmit : void 0;
2121
2135
  const onChange = "onChange" in props ? props.onChange : void 0;
2136
+ const [internalValue, setInternalValue] = (0, import_react32.useState)();
2122
2137
  const handleSubmit = (0, import_react32.useCallback)(
2123
2138
  (value2) => {
2124
2139
  const newValue = parseNumber(value2);
@@ -2134,6 +2149,7 @@ function InputFieldNumberInput(props) {
2134
2149
  if (!amount)
2135
2150
  return;
2136
2151
  onNudge?.(amount);
2152
+ setInternalValue(void 0);
2137
2153
  event.preventDefault();
2138
2154
  event.stopPropagation();
2139
2155
  },
@@ -2141,17 +2157,37 @@ function InputFieldNumberInput(props) {
2141
2157
  );
2142
2158
  const handleChange = (0, import_react32.useCallback)(
2143
2159
  (value2) => {
2144
- onChange?.(parseNumber(value2));
2160
+ if (value2 === "" || value2 === "-" || value2 === ".") {
2161
+ setInternalValue(value2);
2162
+ return;
2163
+ }
2164
+ if (value2.endsWith(".")) {
2165
+ setInternalValue(value2);
2166
+ return;
2167
+ }
2168
+ setInternalValue(void 0);
2169
+ const newValue = parseNumber(value2);
2170
+ if (!isNaN(newValue)) {
2171
+ onChange?.(newValue);
2172
+ }
2145
2173
  },
2146
2174
  [onChange]
2147
2175
  );
2176
+ const handleBlur = (0, import_react32.useCallback)(
2177
+ (event) => {
2178
+ setInternalValue(void 0);
2179
+ onBlur?.(event);
2180
+ },
2181
+ [onBlur]
2182
+ );
2148
2183
  return /* @__PURE__ */ import_react32.default.createElement(
2149
2184
  InputFieldInput,
2150
2185
  {
2151
2186
  ...rest,
2152
- value: value === void 0 ? "" : String(value),
2187
+ value: internalValue !== void 0 ? String(internalValue) : value === void 0 ? "" : String(value),
2153
2188
  placeholder,
2154
2189
  onKeyDown: handleKeyDown,
2190
+ onBlur: handleBlur,
2155
2191
  ..."onChange" in props ? { onChange: handleChange } : { onSubmit: handleSubmit }
2156
2192
  }
2157
2193
  );
@@ -2597,15 +2633,15 @@ var ChipElement = import_styled_components16.default.span(({ theme, $colorScheme
2597
2633
  userSelect: "none",
2598
2634
  display: "inline-flex",
2599
2635
  alignItems: "center",
2600
- lineHeight: "1.4",
2636
+ // lineHeight: "1.4",
2637
+ lineHeight: "15px",
2601
2638
  whiteSpace: "pre",
2602
2639
  ...$size === "medium" ? {
2603
2640
  fontSize: "11px",
2604
2641
  padding: "4px 8px"
2605
2642
  } : {
2606
2643
  fontSize: "9px",
2607
- padding: "0px 4px",
2608
- lineHeight: "15px"
2644
+ padding: "0px 4px"
2609
2645
  },
2610
2646
  ...$monospace && {
2611
2647
  fontFamily: theme.fonts.monospace
@@ -2668,66 +2704,72 @@ var AddElement = (0, import_styled_components16.default)(import_noya_icons3.Plus
2668
2704
  opacity: 0.85
2669
2705
  }
2670
2706
  }));
2671
- var Chip = (0, import_react36.memo)(function Chip2({
2672
- colorScheme,
2673
- children,
2674
- deletable,
2675
- addable,
2676
- style: style3,
2677
- size: size2 = "medium",
2678
- variant = "solid",
2679
- monospace = false,
2680
- tabIndex,
2681
- onDelete,
2682
- onClick,
2683
- onAdd,
2684
- onHoverDeleteChange
2685
- }) {
2686
- const theme = useDesignSystemTheme();
2687
- const { hoverProps: hoverDeleteProps } = useHover({
2688
- onHoverChange: onHoverDeleteChange
2689
- });
2690
- const handleClick = !children && !deletable && addable ? onAdd : onClick;
2691
- const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
2692
- return /* @__PURE__ */ import_react36.default.createElement(
2693
- ChipElement,
2694
- {
2695
- $variant: variant,
2696
- $colorScheme: colorScheme,
2697
- style: style3,
2698
- onClick: handleClick,
2699
- $size: size2,
2700
- $monospace: monospace,
2701
- $isInteractive: !!handleClick,
2702
- tabIndex
2703
- },
2704
- addable && /* @__PURE__ */ import_react36.default.createElement(
2705
- AddElement,
2706
- {
2707
- size: size2,
2708
- isOnlyChild: !children && !deletable,
2709
- onClick: onAdd ? (event) => {
2710
- event.stopPropagation();
2711
- onAdd?.();
2712
- } : void 0,
2713
- color
2714
- }
2715
- ),
2707
+ var Chip = (0, import_react36.memo)(
2708
+ (0, import_react36.forwardRef)(function Chip2({
2709
+ colorScheme,
2716
2710
  children,
2717
- deletable && /* @__PURE__ */ import_react36.default.createElement(
2718
- DeleteElement,
2711
+ deletable,
2712
+ addable,
2713
+ clickable,
2714
+ style: style3,
2715
+ size: size2 = "medium",
2716
+ variant = "solid",
2717
+ monospace = false,
2718
+ tabIndex,
2719
+ onDelete,
2720
+ onClick,
2721
+ onAdd,
2722
+ onHoverDeleteChange,
2723
+ ...rest
2724
+ }, forwardedRef) {
2725
+ const theme = useDesignSystemTheme();
2726
+ const { hoverProps: hoverDeleteProps } = useHover({
2727
+ onHoverChange: onHoverDeleteChange
2728
+ });
2729
+ const handleClick = !children && !deletable && addable ? onAdd : onClick;
2730
+ const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
2731
+ return /* @__PURE__ */ import_react36.default.createElement(
2732
+ ChipElement,
2719
2733
  {
2720
- size: size2,
2721
- ...hoverDeleteProps,
2722
- onClick: onDelete ? (event) => {
2723
- event.stopPropagation();
2724
- onDelete?.();
2725
- } : void 0,
2726
- color
2727
- }
2728
- )
2729
- );
2730
- });
2734
+ ref: forwardedRef,
2735
+ $variant: variant,
2736
+ $colorScheme: colorScheme,
2737
+ style: style3,
2738
+ onClick: handleClick,
2739
+ $size: size2,
2740
+ $monospace: monospace,
2741
+ $isInteractive: !!handleClick || clickable === true,
2742
+ tabIndex,
2743
+ ...rest
2744
+ },
2745
+ addable && /* @__PURE__ */ import_react36.default.createElement(
2746
+ AddElement,
2747
+ {
2748
+ size: size2,
2749
+ isOnlyChild: !children && !deletable,
2750
+ onClick: onAdd ? (event) => {
2751
+ event.stopPropagation();
2752
+ onAdd?.();
2753
+ } : void 0,
2754
+ color
2755
+ }
2756
+ ),
2757
+ children,
2758
+ deletable && /* @__PURE__ */ import_react36.default.createElement(
2759
+ DeleteElement,
2760
+ {
2761
+ size: size2,
2762
+ ...hoverDeleteProps,
2763
+ onClick: onDelete ? (event) => {
2764
+ event.stopPropagation();
2765
+ onDelete?.();
2766
+ } : void 0,
2767
+ color
2768
+ }
2769
+ )
2770
+ );
2771
+ })
2772
+ );
2731
2773
 
2732
2774
  // src/components/ContextMenu.tsx
2733
2775
  var import_noya_icons4 = require("@noya-app/noya-icons");
@@ -4902,6 +4944,9 @@ var RootContainer2 = import_styled_components25.default.div(({ theme, $scrollabl
4902
4944
  gap: $gap
4903
4945
  }));
4904
4946
  var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInner2({
4947
+ id,
4948
+ className,
4949
+ style: style3,
4905
4950
  onPress,
4906
4951
  scrollable = false,
4907
4952
  expandable = true,
@@ -5041,6 +5086,9 @@ var ListViewRootInner = (0, import_react49.forwardRef)(function ListViewRootInne
5041
5086
  return /* @__PURE__ */ import_react49.default.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ import_react49.default.createElement(
5042
5087
  RootContainer2,
5043
5088
  {
5089
+ id,
5090
+ className,
5091
+ style: style3,
5044
5092
  ...{
5045
5093
  [pressEventName]: handleClick
5046
5094
  },
@@ -5143,7 +5191,9 @@ var Text = (0, import_react50.forwardRef)(function Text2({
5143
5191
  className,
5144
5192
  color,
5145
5193
  href,
5194
+ tabIndex,
5146
5195
  onClick,
5196
+ onKeyDown,
5147
5197
  ...rest
5148
5198
  }, forwardedRef) {
5149
5199
  const element = as ?? elements[variant] ?? "span";
@@ -5153,11 +5203,13 @@ var Text = (0, import_react50.forwardRef)(function Text2({
5153
5203
  ref: forwardedRef,
5154
5204
  as: element,
5155
5205
  className,
5206
+ tabIndex,
5156
5207
  $variant: variant,
5157
5208
  $breakpoints: breakpoints,
5158
5209
  $styleProps: rest,
5159
5210
  $color: color,
5160
5211
  onClick,
5212
+ onKeyDown,
5161
5213
  ...href && { href }
5162
5214
  },
5163
5215
  children
@@ -6005,11 +6057,51 @@ var Select = (0, import_react57.memo)(function Select2({
6005
6057
  )), label && /* @__PURE__ */ import_react57.default.createElement(SelectLabel, { htmlFor: id }, label));
6006
6058
  });
6007
6059
 
6060
+ // src/components/SelectMenu.tsx
6061
+ var import_noya_icons6 = require("@noya-app/noya-icons");
6062
+ var Select3 = __toESM(require("@radix-ui/react-select"));
6063
+ var import_react58 = __toESM(require("react"));
6064
+ var import_styled_components33 = require("styled-components");
6065
+ var SelectMenu = (0, import_react58.memo)(function SelectMenu2({
6066
+ id,
6067
+ style: style3,
6068
+ className,
6069
+ menuItems,
6070
+ value,
6071
+ onSelect,
6072
+ placeholder
6073
+ }) {
6074
+ const selectedItem = menuItems.find(
6075
+ (item) => typeof item !== "string" && item.value === value
6076
+ );
6077
+ const icon = selectedItem?.icon;
6078
+ return /* @__PURE__ */ import_react58.default.createElement(Select3.Root, { value, onValueChange: onSelect }, /* @__PURE__ */ import_react58.default.createElement(Select3.SelectTrigger, { asChild: true }, /* @__PURE__ */ import_react58.default.createElement(Button, { id, style: style3, className }, icon && /* @__PURE__ */ import_react58.default.createElement(import_react58.default.Fragment, null, icon, /* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ import_react58.default.createElement(Select3.Value, { placeholder }), /* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react58.default.createElement(import_noya_icons6.DropdownChevronIcon, null))), /* @__PURE__ */ import_react58.default.createElement(Select3.Portal, null, /* @__PURE__ */ import_react58.default.createElement(SelectContent, null, /* @__PURE__ */ import_react58.default.createElement(SelectViewport, null, menuItems.map((menuItem) => {
6079
+ if (typeof menuItem === "string") {
6080
+ return /* @__PURE__ */ import_react58.default.createElement(StyledSeparator, null);
6081
+ }
6082
+ const value2 = menuItem.value ?? "";
6083
+ return /* @__PURE__ */ import_react58.default.createElement(SelectItem, { key: value2, value: value2, icon: menuItem.icon }, menuItem.title ?? value2);
6084
+ })))));
6085
+ });
6086
+ var SelectContent = (0, import_styled_components33.styled)(Select3.Content)(styles.contentStyle);
6087
+ var SelectViewport = (0, import_styled_components33.styled)(Select3.Viewport)({});
6088
+ var SelectItem = import_react58.default.forwardRef(
6089
+ ({
6090
+ children,
6091
+ icon,
6092
+ ...props
6093
+ }, forwardedRef) => {
6094
+ return /* @__PURE__ */ import_react58.default.createElement(StyledItem2, { ...props, ref: forwardedRef }, icon && /* @__PURE__ */ import_react58.default.createElement(import_react58.default.Fragment, null, icon, /* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ import_react58.default.createElement(Select3.ItemText, null, children));
6095
+ }
6096
+ );
6097
+ var StyledItem2 = (0, import_styled_components33.styled)(Select3.Item)(styles.itemStyle);
6098
+ var StyledSeparator = (0, import_styled_components33.styled)(Select3.Separator)(styles.separatorStyle);
6099
+
6008
6100
  // src/components/Slider.tsx
6009
6101
  var RadixSlider = __toESM(require("@radix-ui/react-slider"));
6010
- var import_react58 = __toESM(require("react"));
6011
- var import_styled_components33 = __toESM(require("styled-components"));
6012
- var StyledSlider = (0, import_styled_components33.default)(RadixSlider.Root)({
6102
+ var import_react59 = __toESM(require("react"));
6103
+ var import_styled_components34 = __toESM(require("styled-components"));
6104
+ var StyledSlider = (0, import_styled_components34.default)(RadixSlider.Root)({
6013
6105
  flex: "1",
6014
6106
  position: "relative",
6015
6107
  display: "flex",
@@ -6018,19 +6110,19 @@ var StyledSlider = (0, import_styled_components33.default)(RadixSlider.Root)({
6018
6110
  touchAction: "none",
6019
6111
  height: "16px"
6020
6112
  });
6021
- var StyledTrack = (0, import_styled_components33.default)(RadixSlider.Track)(({ theme }) => ({
6113
+ var StyledTrack = (0, import_styled_components34.default)(RadixSlider.Track)(({ theme }) => ({
6022
6114
  backgroundColor: theme.colors.divider,
6023
6115
  position: "relative",
6024
6116
  flexGrow: 1,
6025
6117
  height: "2px"
6026
6118
  }));
6027
- var StyledRange = (0, import_styled_components33.default)(RadixSlider.Range)(({ theme }) => ({
6119
+ var StyledRange = (0, import_styled_components34.default)(RadixSlider.Range)(({ theme }) => ({
6028
6120
  position: "absolute",
6029
6121
  backgroundColor: theme.colors.primary,
6030
6122
  borderRadius: "9999px",
6031
6123
  height: "100%"
6032
6124
  }));
6033
- var StyledThumb2 = (0, import_styled_components33.default)(RadixSlider.Thumb)(({ theme }) => ({
6125
+ var StyledThumb2 = (0, import_styled_components34.default)(RadixSlider.Thumb)(({ theme }) => ({
6034
6126
  display: "block",
6035
6127
  width: "12px",
6036
6128
  height: "12px",
@@ -6048,17 +6140,17 @@ var Slider = function Slider2({
6048
6140
  min,
6049
6141
  max
6050
6142
  }) {
6051
- const arrayValue = (0, import_react58.useMemo)(
6143
+ const arrayValue = (0, import_react59.useMemo)(
6052
6144
  () => [Math.min(Math.max(value, min), max)],
6053
6145
  [value, min, max]
6054
6146
  );
6055
- const handleValueChange = (0, import_react58.useCallback)(
6147
+ const handleValueChange = (0, import_react59.useCallback)(
6056
6148
  (arrayValue2) => {
6057
6149
  onValueChange(arrayValue2[0]);
6058
6150
  },
6059
6151
  [onValueChange]
6060
6152
  );
6061
- return /* @__PURE__ */ import_react58.default.createElement(
6153
+ return /* @__PURE__ */ import_react59.default.createElement(
6062
6154
  StyledSlider,
6063
6155
  {
6064
6156
  min,
@@ -6067,16 +6159,16 @@ var Slider = function Slider2({
6067
6159
  value: arrayValue,
6068
6160
  onValueChange: handleValueChange
6069
6161
  },
6070
- /* @__PURE__ */ import_react58.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react58.default.createElement(StyledRange, null)),
6071
- /* @__PURE__ */ import_react58.default.createElement(StyledThumb2, null)
6162
+ /* @__PURE__ */ import_react59.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react59.default.createElement(StyledRange, null)),
6163
+ /* @__PURE__ */ import_react59.default.createElement(StyledThumb2, null)
6072
6164
  );
6073
6165
  };
6074
6166
 
6075
6167
  // src/components/Switch.tsx
6076
6168
  var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
6077
- var import_react59 = __toESM(require("react"));
6078
- var import_styled_components34 = __toESM(require("styled-components"));
6079
- var SwitchRoot = (0, import_styled_components34.default)(SwitchPrimitive.Root)(({ theme, $colorScheme }) => ({
6169
+ var import_react60 = __toESM(require("react"));
6170
+ var import_styled_components35 = __toESM(require("styled-components"));
6171
+ var SwitchRoot = (0, import_styled_components35.default)(SwitchPrimitive.Root)(({ theme, $colorScheme }) => ({
6080
6172
  all: "unset",
6081
6173
  width: 32,
6082
6174
  height: 19,
@@ -6093,7 +6185,7 @@ var SwitchRoot = (0, import_styled_components34.default)(SwitchPrimitive.Root)((
6093
6185
  backgroundColor: $colorScheme === "primary" ? theme.colors.primary : $colorScheme === "secondary" ? theme.colors.secondary : void 0
6094
6186
  }
6095
6187
  }));
6096
- var SwitchThumb = (0, import_styled_components34.default)(SwitchPrimitive.Thumb)({
6188
+ var SwitchThumb = (0, import_styled_components35.default)(SwitchPrimitive.Thumb)({
6097
6189
  display: "block",
6098
6190
  width: 15,
6099
6191
  height: 15,
@@ -6109,7 +6201,7 @@ var Switch = function Switch2({
6109
6201
  onChange,
6110
6202
  colorScheme = "normal"
6111
6203
  }) {
6112
- return /* @__PURE__ */ import_react59.default.createElement(
6204
+ return /* @__PURE__ */ import_react60.default.createElement(
6113
6205
  SwitchRoot,
6114
6206
  {
6115
6207
  $colorScheme: colorScheme,
@@ -6118,62 +6210,62 @@ var Switch = function Switch2({
6118
6210
  onChange(newValue);
6119
6211
  }
6120
6212
  },
6121
- /* @__PURE__ */ import_react59.default.createElement(SwitchThumb, null)
6213
+ /* @__PURE__ */ import_react60.default.createElement(SwitchThumb, null)
6122
6214
  );
6123
6215
  };
6124
6216
 
6125
6217
  // src/components/TreeView.tsx
6126
- var import_react60 = __toESM(require("react"));
6127
- var TreeRow = (0, import_react60.forwardRef)(function TreeRow2({
6218
+ var import_react61 = __toESM(require("react"));
6219
+ var TreeRow = (0, import_react61.forwardRef)(function TreeRow2({
6128
6220
  icon,
6129
6221
  expanded,
6130
6222
  onClickChevron,
6131
6223
  children,
6132
6224
  ...rest
6133
6225
  }, forwardedRef) {
6134
- const { expandable } = (0, import_react60.useContext)(ListView.RowContext);
6135
- const handleClickChevron = (0, import_react60.useCallback)(
6226
+ const { expandable } = (0, import_react61.useContext)(ListView.RowContext);
6227
+ const handleClickChevron = (0, import_react61.useCallback)(
6136
6228
  (event) => {
6137
6229
  event.stopPropagation();
6138
6230
  onClickChevron?.({ altKey: event.altKey });
6139
6231
  },
6140
6232
  [onClickChevron]
6141
6233
  );
6142
- return /* @__PURE__ */ import_react60.default.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ import_react60.default.createElement(import_react60.default.Fragment, null, expanded === void 0 ? /* @__PURE__ */ import_react60.default.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ import_react60.default.createElement(
6234
+ return /* @__PURE__ */ import_react61.default.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ import_react61.default.createElement(import_react61.default.Fragment, null, expanded === void 0 ? /* @__PURE__ */ import_react61.default.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ import_react61.default.createElement(
6143
6235
  IconButton,
6144
6236
  {
6145
- iconName: expanded ? "ChevronDownIcon" : "ChevronRightIcon",
6237
+ iconName: expanded ? "ChevronDownIcon2" : "ChevronRightIcon2",
6146
6238
  onClick: handleClickChevron,
6147
6239
  selected: rest.selected
6148
6240
  }
6149
- ), /* @__PURE__ */ import_react60.default.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ import_react60.default.createElement(import_react60.default.Fragment, null, icon, /* @__PURE__ */ import_react60.default.createElement(Spacer.Horizontal, { size: 10 })), children);
6241
+ ), /* @__PURE__ */ import_react61.default.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ import_react61.default.createElement(import_react61.default.Fragment, null, icon, /* @__PURE__ */ import_react61.default.createElement(Spacer.Horizontal, { size: 10 })), children);
6150
6242
  });
6151
6243
  var TreeView;
6152
6244
  ((TreeView2) => {
6153
6245
  TreeView2.Root = ListView.Root;
6154
6246
  TreeView2.RowTitle = ListView.RowTitle;
6155
6247
  TreeView2.EditableRowTitle = ListView.EditableRowTitle;
6156
- TreeView2.Row = (0, import_react60.memo)(TreeRow);
6248
+ TreeView2.Row = (0, import_react61.memo)(TreeRow);
6157
6249
  })(TreeView || (TreeView = {}));
6158
6250
 
6159
6251
  // src/components/WorkspaceLayout.tsx
6160
6252
  var import_noya_keymap5 = require("@noya-app/noya-keymap");
6161
- var import_react63 = __toESM(require("react"));
6253
+ var import_react64 = __toESM(require("react"));
6162
6254
  var import_react_resizable_panels = require("react-resizable-panels");
6163
6255
 
6164
6256
  // src/hooks/usePreservePanelSize.tsx
6165
- var import_react62 = require("react");
6257
+ var import_react63 = require("react");
6166
6258
 
6167
6259
  // src/hooks/useWindowSize.tsx
6168
- var import_react61 = require("react");
6260
+ var import_react62 = require("react");
6169
6261
  function useWindowSize() {
6170
- const [size2, setSize] = (0, import_react61.useState)(
6262
+ const [size2, setSize] = (0, import_react62.useState)(
6171
6263
  typeof window === "undefined" ? { width: 0, height: 0 } : {
6172
6264
  width: window.innerWidth,
6173
6265
  height: window.innerHeight
6174
6266
  }
6175
6267
  );
6176
- (0, import_react61.useEffect)(() => {
6268
+ (0, import_react62.useEffect)(() => {
6177
6269
  const handleResize = () => setSize({
6178
6270
  width: window.innerWidth,
6179
6271
  height: window.innerHeight
@@ -6191,8 +6283,8 @@ var RIGHT_SIDEBAR_ID = "editor-right-sidebar";
6191
6283
  var CONTENT_AREA_ID = "editor-content-area";
6192
6284
  function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
6193
6285
  const windowSize = useWindowSize();
6194
- const layoutRef = (0, import_react62.useRef)();
6195
- (0, import_react62.useLayoutEffect)(() => {
6286
+ const layoutRef = (0, import_react63.useRef)();
6287
+ (0, import_react63.useLayoutEffect)(() => {
6196
6288
  const panelGroup = document.querySelector(
6197
6289
  `[data-panel-group-id="${EDITOR_PANEL_GROUP_ID}"]`
6198
6290
  );
@@ -6235,7 +6327,7 @@ function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
6235
6327
  panelGroupObserver.disconnect();
6236
6328
  };
6237
6329
  }, [panelGroupRef, setPanelLayoutState]);
6238
- (0, import_react62.useLayoutEffect)(() => {
6330
+ (0, import_react63.useLayoutEffect)(() => {
6239
6331
  if (!layoutRef.current)
6240
6332
  return;
6241
6333
  const {
@@ -6295,7 +6387,7 @@ function usePreservePanelSize(panelGroupRef, setPanelLayoutState) {
6295
6387
  }
6296
6388
 
6297
6389
  // src/components/WorkspaceLayout.tsx
6298
- var WorkspaceLayout = (0, import_react63.forwardRef)(function WorkspaceLayout2({
6390
+ var WorkspaceLayout = (0, import_react64.forwardRef)(function WorkspaceLayout2({
6299
6391
  autoSavePrefix,
6300
6392
  leftSidebarContent: leftPanelContent,
6301
6393
  children: centerPanelContent,
@@ -6320,12 +6412,12 @@ var WorkspaceLayout = (0, import_react63.forwardRef)(function WorkspaceLayout2({
6320
6412
  const rightSidebarPercentage = getPercentage(rightSidebarInitialSize);
6321
6413
  const leftSidebarMinPercentage = leftSidebarMinSize !== void 0 ? getPercentage(leftSidebarMinSize) : void 0;
6322
6414
  const rightSidebarMinPercentage = rightSidebarMinSize !== void 0 ? getPercentage(rightSidebarMinSize) : void 0;
6323
- const panelGroupRef = (0, import_react63.useRef)(null);
6324
- const leftSidebarRef = (0, import_react63.useRef)(null);
6325
- const rightSidebarRef = (0, import_react63.useRef)(null);
6415
+ const panelGroupRef = (0, import_react64.useRef)(null);
6416
+ const leftSidebarRef = (0, import_react64.useRef)(null);
6417
+ const rightSidebarRef = (0, import_react64.useRef)(null);
6326
6418
  usePreservePanelSize(panelGroupRef, onChangeLayoutState);
6327
6419
  const theme = useDesignSystemTheme();
6328
- (0, import_react63.useImperativeHandle)(forwardedRef, () => ({
6420
+ (0, import_react64.useImperativeHandle)(forwardedRef, () => ({
6329
6421
  setLeftSidebarExpanded: (expanded) => {
6330
6422
  if (expanded) {
6331
6423
  leftSidebarRef.current?.expand();
@@ -6382,7 +6474,7 @@ var WorkspaceLayout = (0, import_react63.forwardRef)(function WorkspaceLayout2({
6382
6474
  }
6383
6475
  });
6384
6476
  const centerPanelPercentage = 100 - (leftPanelContent ? leftSidebarPercentage : 0) - (rightPanelContent ? rightSidebarPercentage : 0);
6385
- return /* @__PURE__ */ import_react63.default.createElement(
6477
+ return /* @__PURE__ */ import_react64.default.createElement(
6386
6478
  "div",
6387
6479
  {
6388
6480
  id,
@@ -6394,7 +6486,7 @@ var WorkspaceLayout = (0, import_react63.forwardRef)(function WorkspaceLayout2({
6394
6486
  ...style3
6395
6487
  }
6396
6488
  },
6397
- /* @__PURE__ */ import_react63.default.createElement(
6489
+ /* @__PURE__ */ import_react64.default.createElement(
6398
6490
  import_react_resizable_panels.PanelGroup,
6399
6491
  {
6400
6492
  ref: panelGroupRef,
@@ -6403,7 +6495,7 @@ var WorkspaceLayout = (0, import_react63.forwardRef)(function WorkspaceLayout2({
6403
6495
  autoSaveId: autoSavePrefix ? `${autoSavePrefix}--${EDITOR_PANEL_GROUP_ID}` : void 0,
6404
6496
  style: { flex: "1" }
6405
6497
  },
6406
- hasLeftSidebar && /* @__PURE__ */ import_react63.default.createElement(import_react63.default.Fragment, null, /* @__PURE__ */ import_react63.default.createElement(
6498
+ hasLeftSidebar && /* @__PURE__ */ import_react64.default.createElement(import_react64.default.Fragment, null, /* @__PURE__ */ import_react64.default.createElement(
6407
6499
  import_react_resizable_panels.Panel,
6408
6500
  {
6409
6501
  id: LEFT_SIDEBAR_ID,
@@ -6415,11 +6507,12 @@ var WorkspaceLayout = (0, import_react63.forwardRef)(function WorkspaceLayout2({
6415
6507
  collapsible: true,
6416
6508
  style: {
6417
6509
  display: "flex",
6418
- flexDirection: "row"
6510
+ flexDirection: "row",
6511
+ position: "relative"
6419
6512
  }
6420
6513
  },
6421
6514
  leftPanelContent
6422
- ), /* @__PURE__ */ import_react63.default.createElement(
6515
+ ), /* @__PURE__ */ import_react64.default.createElement(
6423
6516
  import_react_resizable_panels.PanelResizeHandle,
6424
6517
  {
6425
6518
  style: {
@@ -6430,7 +6523,7 @@ var WorkspaceLayout = (0, import_react63.forwardRef)(function WorkspaceLayout2({
6430
6523
  }
6431
6524
  }
6432
6525
  )),
6433
- /* @__PURE__ */ import_react63.default.createElement(
6526
+ /* @__PURE__ */ import_react64.default.createElement(
6434
6527
  import_react_resizable_panels.Panel,
6435
6528
  {
6436
6529
  id: CONTENT_AREA_ID,
@@ -6439,12 +6532,13 @@ var WorkspaceLayout = (0, import_react63.forwardRef)(function WorkspaceLayout2({
6439
6532
  minSize: 10,
6440
6533
  style: {
6441
6534
  display: "flex",
6442
- flexDirection: "row"
6535
+ flexDirection: "row",
6536
+ position: "relative"
6443
6537
  }
6444
6538
  },
6445
6539
  centerPanelContent
6446
6540
  ),
6447
- hasRightSidebar && /* @__PURE__ */ import_react63.default.createElement(import_react63.default.Fragment, null, /* @__PURE__ */ import_react63.default.createElement(
6541
+ hasRightSidebar && /* @__PURE__ */ import_react64.default.createElement(import_react64.default.Fragment, null, /* @__PURE__ */ import_react64.default.createElement(
6448
6542
  import_react_resizable_panels.PanelResizeHandle,
6449
6543
  {
6450
6544
  style: {
@@ -6454,7 +6548,7 @@ var WorkspaceLayout = (0, import_react63.forwardRef)(function WorkspaceLayout2({
6454
6548
  backgroundColor: theme.colors.divider
6455
6549
  }
6456
6550
  }
6457
- ), /* @__PURE__ */ import_react63.default.createElement(
6551
+ ), /* @__PURE__ */ import_react64.default.createElement(
6458
6552
  import_react_resizable_panels.Panel,
6459
6553
  {
6460
6554
  id: RIGHT_SIDEBAR_ID,
@@ -6465,7 +6559,8 @@ var WorkspaceLayout = (0, import_react63.forwardRef)(function WorkspaceLayout2({
6465
6559
  collapsible: true,
6466
6560
  style: {
6467
6561
  display: "flex",
6468
- flexDirection: "row"
6562
+ flexDirection: "row",
6563
+ position: "relative"
6469
6564
  }
6470
6565
  },
6471
6566
  rightPanelContent
@@ -6516,8 +6611,8 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
6516
6611
 
6517
6612
  // src/components/ArrayController.tsx
6518
6613
  var import_noya_utils11 = require("@noya-app/noya-utils");
6519
- var import_react65 = __toESM(require("react"));
6520
- var import_styled_components36 = __toESM(require("styled-components"));
6614
+ var import_react66 = __toESM(require("react"));
6615
+ var import_styled_components37 = __toESM(require("styled-components"));
6521
6616
 
6522
6617
  // src/components/InspectorPrimitives.tsx
6523
6618
  var InspectorPrimitives_exports = {};
@@ -6535,20 +6630,20 @@ __export(InspectorPrimitives_exports, {
6535
6630
  Title: () => Title3,
6536
6631
  VerticalSeparator: () => VerticalSeparator
6537
6632
  });
6538
- var import_react64 = __toESM(require("react"));
6539
- var import_styled_components35 = __toESM(require("styled-components"));
6540
- var Section = import_styled_components35.default.div(({ theme, $padding = "10px", $gap }) => ({
6633
+ var import_react65 = __toESM(require("react"));
6634
+ var import_styled_components36 = __toESM(require("styled-components"));
6635
+ var Section = import_styled_components36.default.div(({ theme, $padding = "10px", $gap }) => ({
6541
6636
  flex: "0 0 auto",
6542
6637
  display: "flex",
6543
6638
  flexDirection: "column",
6544
6639
  padding: $padding,
6545
6640
  gap: $gap
6546
6641
  }));
6547
- var SectionHeader = import_styled_components35.default.div(({ theme }) => ({
6642
+ var SectionHeader = import_styled_components36.default.div(({ theme }) => ({
6548
6643
  display: "flex",
6549
6644
  alignItems: "center"
6550
6645
  }));
6551
- var Title3 = import_styled_components35.default.div(({ theme, $textStyle }) => ({
6646
+ var Title3 = import_styled_components36.default.div(({ theme, $textStyle }) => ({
6552
6647
  display: "flex",
6553
6648
  flexDirection: "row",
6554
6649
  userSelect: "none",
@@ -6561,7 +6656,7 @@ var Title3 = import_styled_components35.default.div(({ theme, $textStyle }) => (
6561
6656
  fontWeight: "bold"
6562
6657
  }
6563
6658
  }));
6564
- var Row2 = import_styled_components35.default.div(
6659
+ var Row2 = import_styled_components36.default.div(
6565
6660
  ({ theme, $gap }) => ({
6566
6661
  flex: "1",
6567
6662
  display: "flex",
@@ -6570,26 +6665,26 @@ var Row2 = import_styled_components35.default.div(
6570
6665
  gap: $gap
6571
6666
  })
6572
6667
  );
6573
- var Column = import_styled_components35.default.div(({ theme }) => ({
6668
+ var Column = import_styled_components36.default.div(({ theme }) => ({
6574
6669
  flex: "1",
6575
6670
  display: "flex",
6576
6671
  flexDirection: "column",
6577
6672
  gap: "4px"
6578
6673
  }));
6579
- var Checkbox = import_styled_components35.default.input(({ theme }) => ({
6674
+ var Checkbox = import_styled_components36.default.input(({ theme }) => ({
6580
6675
  margin: 0
6581
6676
  }));
6582
- var Text3 = import_styled_components35.default.span(({ theme }) => ({
6677
+ var Text3 = import_styled_components36.default.span(({ theme }) => ({
6583
6678
  ...theme.textStyles.small
6584
6679
  }));
6585
- var VerticalSeparator = () => /* @__PURE__ */ import_react64.default.createElement(Spacer.Vertical, { size: (0, import_styled_components35.useTheme)().sizes.inspector.verticalSeparator });
6586
- var HorizontalSeparator = () => /* @__PURE__ */ import_react64.default.createElement(Spacer.Horizontal, { size: (0, import_styled_components35.useTheme)().sizes.inspector.horizontalSeparator });
6587
- var SliderRowLabel = import_styled_components35.default.span(({ theme }) => ({
6680
+ var VerticalSeparator = () => /* @__PURE__ */ import_react65.default.createElement(Spacer.Vertical, { size: (0, import_styled_components36.useTheme)().sizes.inspector.verticalSeparator });
6681
+ var HorizontalSeparator = () => /* @__PURE__ */ import_react65.default.createElement(Spacer.Horizontal, { size: (0, import_styled_components36.useTheme)().sizes.inspector.horizontalSeparator });
6682
+ var SliderRowLabel = import_styled_components36.default.span(({ theme }) => ({
6588
6683
  ...theme.textStyles.small,
6589
6684
  color: theme.colors.textMuted,
6590
6685
  marginBottom: "-6px"
6591
6686
  }));
6592
- var RowLabel = import_styled_components35.default.span(({ theme, $textStyle }) => ({
6687
+ var RowLabel = import_styled_components36.default.span(({ theme, $textStyle }) => ({
6593
6688
  // marginBottom: '6px',
6594
6689
  display: "flex",
6595
6690
  ...$textStyle ? {
@@ -6603,7 +6698,7 @@ var RowLabel = import_styled_components35.default.span(({ theme, $textStyle }) =
6603
6698
  // Button height
6604
6699
  alignItems: "center"
6605
6700
  }));
6606
- var LabeledRow = (0, import_react64.memo)(function LabeledRow2({
6701
+ var LabeledRow = (0, import_react65.memo)(function LabeledRow2({
6607
6702
  id,
6608
6703
  children,
6609
6704
  label,
@@ -6611,26 +6706,26 @@ var LabeledRow = (0, import_react64.memo)(function LabeledRow2({
6611
6706
  gap,
6612
6707
  right
6613
6708
  }) {
6614
- return /* @__PURE__ */ import_react64.default.createElement(Row2, { id }, /* @__PURE__ */ import_react64.default.createElement(Column, null, /* @__PURE__ */ import_react64.default.createElement(RowLabel, { $textStyle: labelTextStyle }, label, right && /* @__PURE__ */ import_react64.default.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ import_react64.default.createElement(Row2, { $gap: gap }, children)));
6709
+ return /* @__PURE__ */ import_react65.default.createElement(Row2, { id }, /* @__PURE__ */ import_react65.default.createElement(Column, null, /* @__PURE__ */ import_react65.default.createElement(RowLabel, { $textStyle: labelTextStyle }, label, right && /* @__PURE__ */ import_react65.default.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ import_react65.default.createElement(Row2, { $gap: gap }, children)));
6615
6710
  });
6616
- var LabeledSliderRow = (0, import_react64.memo)(function LabeledRow3({
6711
+ var LabeledSliderRow = (0, import_react65.memo)(function LabeledRow3({
6617
6712
  children,
6618
6713
  label
6619
6714
  }) {
6620
- return /* @__PURE__ */ import_react64.default.createElement(Row2, null, /* @__PURE__ */ import_react64.default.createElement(Column, null, /* @__PURE__ */ import_react64.default.createElement(SliderRowLabel, null, label), /* @__PURE__ */ import_react64.default.createElement(Row2, null, children)));
6715
+ return /* @__PURE__ */ import_react65.default.createElement(Row2, null, /* @__PURE__ */ import_react65.default.createElement(Column, null, /* @__PURE__ */ import_react65.default.createElement(SliderRowLabel, null, label), /* @__PURE__ */ import_react65.default.createElement(Row2, null, children)));
6621
6716
  });
6622
6717
 
6623
6718
  // src/components/ArrayController.tsx
6624
- var ElementRow = import_styled_components36.default.div({
6719
+ var ElementRow = import_styled_components37.default.div({
6625
6720
  flex: "0 0 auto",
6626
6721
  display: "flex",
6627
6722
  flexDirection: "row",
6628
6723
  alignItems: "center"
6629
6724
  });
6630
- var ItemContainer2 = import_styled_components36.default.div({
6725
+ var ItemContainer2 = import_styled_components37.default.div({
6631
6726
  position: "relative"
6632
6727
  });
6633
- var ArrayController = (0, import_react65.memo)(function ArrayController2({
6728
+ var ArrayController = (0, import_react66.memo)(function ArrayController2({
6634
6729
  id,
6635
6730
  items,
6636
6731
  title,
@@ -6646,14 +6741,14 @@ var ArrayController = (0, import_react65.memo)(function ArrayController2({
6646
6741
  renderExpandedContent,
6647
6742
  padding = 10
6648
6743
  }) {
6649
- const iconColor = (0, import_styled_components36.useTheme)().colors.icon;
6650
- const primaryLightColor = (0, import_styled_components36.useTheme)().colors.primaryLight;
6651
- const keys = (0, import_react65.useMemo)(
6744
+ const iconColor = (0, import_styled_components37.useTheme)().colors.icon;
6745
+ const primaryLightColor = (0, import_styled_components37.useTheme)().colors.primaryLight;
6746
+ const keys = (0, import_react66.useMemo)(
6652
6747
  () => items.map((item, index) => getKey?.(item) ?? index.toString()),
6653
6748
  [getKey, items]
6654
6749
  );
6655
6750
  const indexes = reversed ? (0, import_noya_utils11.range)(0, items.length).reverse() : (0, import_noya_utils11.range)(0, items.length);
6656
- const handleMoveItem = (0, import_react65.useCallback)(
6751
+ const handleMoveItem = (0, import_react66.useCallback)(
6657
6752
  (sourceIndex, destinationIndex, position) => {
6658
6753
  if (reversed) {
6659
6754
  if (position === "above") {
@@ -6670,11 +6765,11 @@ var ArrayController = (0, import_react65.memo)(function ArrayController2({
6670
6765
  [onMoveItem, reversed]
6671
6766
  );
6672
6767
  const renderRow = (index) => {
6673
- return /* @__PURE__ */ import_react65.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
6768
+ return /* @__PURE__ */ import_react66.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
6674
6769
  };
6675
- return /* @__PURE__ */ import_react65.default.createElement(Section, { id, $padding: padding, $gap: "2px" }, /* @__PURE__ */ import_react65.default.createElement(SectionHeader, null, /* @__PURE__ */ import_react65.default.createElement(Button, { variant: "none", onClick: onClickPlus }, /* @__PURE__ */ import_react65.default.createElement(Title3, null, title)), /* @__PURE__ */ import_react65.default.createElement(Spacer.Horizontal, null), withSeparatorElements(
6770
+ return /* @__PURE__ */ import_react66.default.createElement(Section, { id, $padding: padding, $gap: "2px" }, /* @__PURE__ */ import_react66.default.createElement(SectionHeader, null, /* @__PURE__ */ import_react66.default.createElement(Button, { variant: "none", onClick: onClickPlus }, /* @__PURE__ */ import_react66.default.createElement(Title3, null, title)), /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, null), withSeparatorElements(
6676
6771
  [
6677
- onClickTrash && /* @__PURE__ */ import_react65.default.createElement(
6772
+ onClickTrash && /* @__PURE__ */ import_react66.default.createElement(
6678
6773
  IconButton,
6679
6774
  {
6680
6775
  id: `${id}-trash`,
@@ -6683,7 +6778,7 @@ var ArrayController = (0, import_react65.memo)(function ArrayController2({
6683
6778
  onClick: onClickTrash
6684
6779
  }
6685
6780
  ),
6686
- onClickExpand && /* @__PURE__ */ import_react65.default.createElement(
6781
+ onClickExpand && /* @__PURE__ */ import_react66.default.createElement(
6687
6782
  IconButton,
6688
6783
  {
6689
6784
  id: `${id}-gear`,
@@ -6692,7 +6787,7 @@ var ArrayController = (0, import_react65.memo)(function ArrayController2({
6692
6787
  onClick: onClickExpand
6693
6788
  }
6694
6789
  ),
6695
- onClickPlus && /* @__PURE__ */ import_react65.default.createElement(
6790
+ onClickPlus && /* @__PURE__ */ import_react66.default.createElement(
6696
6791
  IconButton,
6697
6792
  {
6698
6793
  id: `${id}-add`,
@@ -6702,15 +6797,15 @@ var ArrayController = (0, import_react65.memo)(function ArrayController2({
6702
6797
  }
6703
6798
  )
6704
6799
  ],
6705
- /* @__PURE__ */ import_react65.default.createElement(Spacer.Horizontal, { size: 8 })
6706
- )), /* @__PURE__ */ import_react65.default.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ import_react65.default.createElement(
6800
+ /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, { size: 8 })
6801
+ )), /* @__PURE__ */ import_react66.default.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ import_react66.default.createElement(
6707
6802
  Sortable.Root,
6708
6803
  {
6709
6804
  keys,
6710
6805
  renderOverlay: renderRow,
6711
6806
  onMoveItem: handleMoveItem
6712
6807
  },
6713
- indexes.map((index) => /* @__PURE__ */ import_react65.default.createElement(Sortable.Item, { id: keys[index], key: keys[index] }, ({ relativeDropPosition, ...sortableProps }) => /* @__PURE__ */ import_react65.default.createElement(ItemContainer2, { ...sortableProps }, renderRow(index), relativeDropPosition && /* @__PURE__ */ import_react65.default.createElement(
6808
+ indexes.map((index) => /* @__PURE__ */ import_react66.default.createElement(Sortable.Item, { id: keys[index], key: keys[index] }, ({ relativeDropPosition, ...sortableProps }) => /* @__PURE__ */ import_react66.default.createElement(ItemContainer2, { ...sortableProps }, renderRow(index), relativeDropPosition && /* @__PURE__ */ import_react66.default.createElement(
6714
6809
  ListView.DragIndicator,
6715
6810
  {
6716
6811
  $gap: 0,
@@ -6724,11 +6819,11 @@ var ArrayController = (0, import_react65.memo)(function ArrayController2({
6724
6819
 
6725
6820
  // src/components/DimensionInput.tsx
6726
6821
  var import_noya_utils12 = require("@noya-app/noya-utils");
6727
- var import_react66 = __toESM(require("react"));
6822
+ var import_react67 = __toESM(require("react"));
6728
6823
  function getNewValue(value, mode, delta) {
6729
6824
  return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
6730
6825
  }
6731
- var DimensionInput = (0, import_react66.memo)(function DimensionInput2({
6826
+ var DimensionInput = (0, import_react67.memo)(function DimensionInput2({
6732
6827
  id,
6733
6828
  value,
6734
6829
  onSetValue,
@@ -6738,15 +6833,15 @@ var DimensionInput = (0, import_react66.memo)(function DimensionInput2({
6738
6833
  disabled,
6739
6834
  trigger = "submit"
6740
6835
  }) {
6741
- const handleNudgeValue = (0, import_react66.useCallback)(
6836
+ const handleNudgeValue = (0, import_react67.useCallback)(
6742
6837
  (value2) => onSetValue(value2, "adjust"),
6743
6838
  [onSetValue]
6744
6839
  );
6745
- const handleSetValue = (0, import_react66.useCallback)(
6840
+ const handleSetValue = (0, import_react67.useCallback)(
6746
6841
  (value2) => onSetValue(value2, "replace"),
6747
6842
  [onSetValue]
6748
6843
  );
6749
- return /* @__PURE__ */ import_react66.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react66.default.createElement(
6844
+ return /* @__PURE__ */ import_react67.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react67.default.createElement(
6750
6845
  InputField.NumberInput,
6751
6846
  {
6752
6847
  value: value === void 0 ? value : (0, import_noya_utils12.round)(value, 2),
@@ -6755,7 +6850,7 @@ var DimensionInput = (0, import_react66.memo)(function DimensionInput2({
6755
6850
  disabled,
6756
6851
  ...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
6757
6852
  }
6758
- ), label && /* @__PURE__ */ import_react66.default.createElement(InputField.Label, null, label));
6853
+ ), label && /* @__PURE__ */ import_react67.default.createElement(InputField.Label, null, label));
6759
6854
  });
6760
6855
  // Annotate the CommonJS export names for ESM import in node:
6761
6856
  0 && (module.exports = {
@@ -6815,6 +6910,7 @@ var DimensionInput = (0, import_react66.memo)(function DimensionInput2({
6815
6910
  SUPPORTED_IMAGE_UPLOAD_TYPES,
6816
6911
  ScrollArea,
6817
6912
  Select,
6913
+ SelectMenu,
6818
6914
  SelectOption,
6819
6915
  Slider,
6820
6916
  Small,