@noya-app/noya-designsystem 0.1.9 → 0.1.11
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/.turbo/turbo-build.log +9 -9
- package/CHANGELOG.md +19 -0
- package/dist/index.d.mts +54 -9
- package/dist/index.d.ts +54 -9
- package/dist/index.js +1094 -700
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1011 -622
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/components/Avatar.tsx +85 -34
- package/src/components/Button.tsx +111 -95
- package/src/components/DropdownMenu.tsx +36 -19
- package/src/components/FloatingWindow.tsx +315 -0
- package/src/components/Text.tsx +2 -1
- package/src/components/internal/Menu.tsx +3 -5
- package/src/contexts/DesignSystemConfiguration.tsx +14 -11
- package/src/contexts/FloatingWindowContext.tsx +85 -0
- package/src/index.tsx +3 -1
- package/src/theme/dark.ts +2 -0
- package/src/theme/light.ts +9 -0
package/dist/index.js
CHANGED
|
@@ -6,8 +6,8 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
8
|
var __export = (target, all) => {
|
|
9
|
-
for (var
|
|
10
|
-
__defProp(target,
|
|
9
|
+
for (var name3 in all)
|
|
10
|
+
__defProp(target, name3, { get: all[name3], enumerable: true });
|
|
11
11
|
};
|
|
12
12
|
var __copyProps = (to, from, except, desc) => {
|
|
13
13
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
@@ -33,6 +33,7 @@ __export(src_exports, {
|
|
|
33
33
|
ActivityIndicator: () => ActivityIndicator,
|
|
34
34
|
ArrayController: () => ArrayController,
|
|
35
35
|
Avatar: () => Avatar,
|
|
36
|
+
AvatarStack: () => AvatarStack,
|
|
36
37
|
Body: () => Body,
|
|
37
38
|
Button: () => Button,
|
|
38
39
|
ButtonElement: () => ButtonElement,
|
|
@@ -51,6 +52,8 @@ __export(src_exports, {
|
|
|
51
52
|
DropdownMenu: () => DropdownMenu,
|
|
52
53
|
FillInputField: () => FillInputField,
|
|
53
54
|
FillPreviewBackground: () => FillPreviewBackground,
|
|
55
|
+
FloatingWindow: () => FloatingWindow,
|
|
56
|
+
FloatingWindowProvider: () => FloatingWindowProvider,
|
|
54
57
|
FullscreenDialog: () => FullscreenDialog,
|
|
55
58
|
GlobalInputBlurProvider: () => GlobalInputBlurProvider,
|
|
56
59
|
GradientPicker: () => GradientPicker,
|
|
@@ -108,9 +111,11 @@ __export(src_exports, {
|
|
|
108
111
|
sketchColorToHex: () => sketchColorToHex,
|
|
109
112
|
sketchColorToRgba: () => sketchColorToRgba,
|
|
110
113
|
sketchColorToRgbaString: () => sketchColorToRgbaString,
|
|
114
|
+
useCurrentFloatingWindowInternal: () => useCurrentFloatingWindowInternal,
|
|
111
115
|
useDesignSystemConfiguration: () => useDesignSystemConfiguration,
|
|
112
116
|
useDesignSystemTheme: () => useDesignSystemTheme,
|
|
113
117
|
useDialogContainsElement: () => useDialogContainsElement,
|
|
118
|
+
useFloatingWindowManager: () => useFloatingWindowManager,
|
|
114
119
|
useGlobalInputBlur: () => useGlobalInputBlur,
|
|
115
120
|
useGlobalInputBlurListener: () => useGlobalInputBlurListener,
|
|
116
121
|
useGlobalInputBlurTrigger: () => useGlobalInputBlurTrigger,
|
|
@@ -155,9 +160,94 @@ var ActivityIndicator = (0, import_react.memo)(function ActivityIndicator2({
|
|
|
155
160
|
|
|
156
161
|
// src/components/Avatar.tsx
|
|
157
162
|
var AvatarPrimitive = __toESM(require("@radix-ui/react-avatar"));
|
|
158
|
-
var
|
|
163
|
+
var import_react4 = __toESM(require("react"));
|
|
164
|
+
var import_styled_components3 = __toESM(require("styled-components"));
|
|
165
|
+
|
|
166
|
+
// src/components/Stack.tsx
|
|
167
|
+
var import_react3 = __toESM(require("react"));
|
|
159
168
|
var import_styled_components2 = __toESM(require("styled-components"));
|
|
160
|
-
|
|
169
|
+
|
|
170
|
+
// src/utils/breakpoints.ts
|
|
171
|
+
function mergeBreakpoints(breakpoints, transform) {
|
|
172
|
+
const breakpointMap = Array.isArray(breakpoints) ? breakpoints.reduce(
|
|
173
|
+
(result, item) => {
|
|
174
|
+
const [key, value] = item;
|
|
175
|
+
result[key] = result[key] ? { ...result[key], ...value } : value;
|
|
176
|
+
return result;
|
|
177
|
+
},
|
|
178
|
+
{}
|
|
179
|
+
) : breakpoints;
|
|
180
|
+
const breakpointList = Object.entries(breakpointMap);
|
|
181
|
+
const transformedList = breakpointList.sort((a, b) => Number(b[0]) - Number(a[0])).map(([width, value]) => [
|
|
182
|
+
`@media screen and (max-width: ${width}px)`,
|
|
183
|
+
transform?.(value) ?? value
|
|
184
|
+
]);
|
|
185
|
+
return Object.fromEntries(transformedList);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// src/utils/withSeparatorElements.ts
|
|
189
|
+
var import_react2 = require("react");
|
|
190
|
+
function createKey(key) {
|
|
191
|
+
return `s-${key}`;
|
|
192
|
+
}
|
|
193
|
+
function withSeparatorElements(elements2, separator) {
|
|
194
|
+
const childrenArray = import_react2.Children.toArray(elements2);
|
|
195
|
+
for (let i = childrenArray.length - 1; i > 0; i--) {
|
|
196
|
+
let sep = typeof separator === "function" ? separator() : (0, import_react2.isValidElement)(separator) ? (0, import_react2.cloneElement)(separator, { key: createKey(i) }) : separator;
|
|
197
|
+
if ((0, import_react2.isValidElement)(sep) && sep.key == null) {
|
|
198
|
+
sep = (0, import_react2.cloneElement)(sep, { key: createKey(i) });
|
|
199
|
+
}
|
|
200
|
+
if (!sep || typeof sep === "boolean")
|
|
201
|
+
continue;
|
|
202
|
+
childrenArray.splice(i, 0, sep);
|
|
203
|
+
}
|
|
204
|
+
return childrenArray;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// src/components/Stack.tsx
|
|
208
|
+
var Element = import_styled_components2.default.div(({ styleProps, breakpoints }) => ({
|
|
209
|
+
...styleProps,
|
|
210
|
+
...mergeBreakpoints(breakpoints || [])
|
|
211
|
+
}));
|
|
212
|
+
var StackBase = (0, import_react3.forwardRef)(function StackBase2({ id, as, children, separator, breakpoints, tabIndex, href, ...rest }, forwardedRef) {
|
|
213
|
+
const elements2 = separator ? withSeparatorElements(import_react3.Children.toArray(children), separator) : children;
|
|
214
|
+
const styleProps = {
|
|
215
|
+
display: "flex",
|
|
216
|
+
position: "relative",
|
|
217
|
+
alignItems: "stretch",
|
|
218
|
+
...rest
|
|
219
|
+
};
|
|
220
|
+
return /* @__PURE__ */ import_react3.default.createElement(
|
|
221
|
+
Element,
|
|
222
|
+
{
|
|
223
|
+
ref: forwardedRef,
|
|
224
|
+
id,
|
|
225
|
+
as,
|
|
226
|
+
styleProps,
|
|
227
|
+
breakpoints,
|
|
228
|
+
tabIndex,
|
|
229
|
+
...href && { href }
|
|
230
|
+
},
|
|
231
|
+
elements2
|
|
232
|
+
);
|
|
233
|
+
});
|
|
234
|
+
var VerticalStack = (0, import_react3.memo)(
|
|
235
|
+
(0, import_react3.forwardRef)(function VStack(props, forwardedRef) {
|
|
236
|
+
return /* @__PURE__ */ import_react3.default.createElement(StackBase, { ...props, flexDirection: "column", ref: forwardedRef });
|
|
237
|
+
})
|
|
238
|
+
);
|
|
239
|
+
var HorizontalStack = (0, import_react3.memo)(
|
|
240
|
+
(0, import_react3.forwardRef)(function HStack(props, forwardedRef) {
|
|
241
|
+
return /* @__PURE__ */ import_react3.default.createElement(StackBase, { ...props, flexDirection: "row", ref: forwardedRef });
|
|
242
|
+
})
|
|
243
|
+
);
|
|
244
|
+
var Stack = {
|
|
245
|
+
V: VerticalStack,
|
|
246
|
+
H: HorizontalStack
|
|
247
|
+
};
|
|
248
|
+
|
|
249
|
+
// src/components/Avatar.tsx
|
|
250
|
+
var AvatarRoot = (0, import_styled_components3.default)(AvatarPrimitive.Root)(({ theme, size: size2, overflow }) => ({
|
|
161
251
|
display: "inline-flex",
|
|
162
252
|
alignItems: "center",
|
|
163
253
|
justifyContent: "center",
|
|
@@ -168,17 +258,23 @@ var AvatarRoot = (0, import_styled_components2.default)(AvatarPrimitive.Root)(({
|
|
|
168
258
|
height: size2,
|
|
169
259
|
borderRadius: "100%",
|
|
170
260
|
backgroundColor: theme.colors.secondaryLight,
|
|
261
|
+
outline: `1px solid ${theme.colors.secondary}`,
|
|
262
|
+
outlineOffset: "-1px",
|
|
171
263
|
...overflow && {
|
|
172
264
|
margin: `-${overflow}px`
|
|
265
|
+
},
|
|
266
|
+
"&:hover": {
|
|
267
|
+
boxShadow: `0 0 0 2px ${theme.colors.sidebar.background}`,
|
|
268
|
+
opacity: 0.9
|
|
173
269
|
}
|
|
174
270
|
}));
|
|
175
|
-
var AvatarImage = (0,
|
|
271
|
+
var AvatarImage = (0, import_styled_components3.default)(AvatarPrimitive.Image)({
|
|
176
272
|
width: "100%",
|
|
177
273
|
height: "100%",
|
|
178
274
|
objectFit: "cover",
|
|
179
275
|
borderRadius: "inherit"
|
|
180
276
|
});
|
|
181
|
-
var AvatarFallback = (0,
|
|
277
|
+
var AvatarFallback = (0, import_styled_components3.default)(AvatarPrimitive.Fallback)(({ theme, size: size2 }) => ({
|
|
182
278
|
fontSize: "0.8rem",
|
|
183
279
|
fontWeight: 500,
|
|
184
280
|
width: "100%",
|
|
@@ -189,25 +285,47 @@ var AvatarFallback = (0, import_styled_components2.default)(AvatarPrimitive.Fall
|
|
|
189
285
|
color: "white",
|
|
190
286
|
lineHeight: `${size2}px`
|
|
191
287
|
}));
|
|
192
|
-
|
|
288
|
+
var Avatar = (0, import_react4.forwardRef)(function Avatar2({
|
|
193
289
|
image,
|
|
194
|
-
name,
|
|
290
|
+
name: name3,
|
|
195
291
|
fallback,
|
|
196
292
|
size: size2 = 19,
|
|
197
|
-
overflow = 0
|
|
293
|
+
overflow = 0,
|
|
294
|
+
...props
|
|
295
|
+
}, forwardedRef) {
|
|
296
|
+
return /* @__PURE__ */ import_react4.default.createElement(AvatarRoot, { ref: forwardedRef, size: size2, overflow, ...props }, /* @__PURE__ */ import_react4.default.createElement(AvatarImage, { src: image, alt: name3 }), /* @__PURE__ */ import_react4.default.createElement(AvatarFallback, { size: size2 }, fallback));
|
|
297
|
+
});
|
|
298
|
+
var AvatarStackItemWrapper = import_styled_components3.default.div(({ size: size2, theme }) => ({
|
|
299
|
+
position: "relative",
|
|
300
|
+
width: size2,
|
|
301
|
+
height: size2,
|
|
302
|
+
marginLeft: "-8px",
|
|
303
|
+
outline: `2px solid ${theme.colors.sidebar.background}`,
|
|
304
|
+
borderRadius: "50%"
|
|
305
|
+
}));
|
|
306
|
+
function AvatarStack({
|
|
307
|
+
size: size2 = 19,
|
|
308
|
+
children
|
|
198
309
|
}) {
|
|
199
|
-
|
|
310
|
+
const childrenArray = import_react4.default.Children.toArray(children).map((child) => {
|
|
311
|
+
return import_react4.default.cloneElement(child, { size: size2 });
|
|
312
|
+
});
|
|
313
|
+
return /* @__PURE__ */ import_react4.default.createElement(Stack.H, null, childrenArray.map((child, index) => {
|
|
314
|
+
if (index === 0)
|
|
315
|
+
return child;
|
|
316
|
+
return /* @__PURE__ */ import_react4.default.createElement(AvatarStackItemWrapper, { size: size2, key: index }, child);
|
|
317
|
+
}));
|
|
200
318
|
}
|
|
201
319
|
|
|
202
320
|
// src/components/Button.tsx
|
|
203
|
-
var
|
|
204
|
-
var
|
|
321
|
+
var import_react6 = __toESM(require("react"));
|
|
322
|
+
var import_styled_components5 = __toESM(require("styled-components"));
|
|
205
323
|
|
|
206
324
|
// src/components/Tooltip.tsx
|
|
207
325
|
var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"));
|
|
208
|
-
var
|
|
209
|
-
var
|
|
210
|
-
var Content2 = (0,
|
|
326
|
+
var import_react5 = __toESM(require("react"));
|
|
327
|
+
var import_styled_components4 = __toESM(require("styled-components"));
|
|
328
|
+
var Content2 = (0, import_styled_components4.default)(TooltipPrimitive.Content)(({ theme }) => ({
|
|
211
329
|
...theme.textStyles.small,
|
|
212
330
|
color: theme.colors.text,
|
|
213
331
|
borderRadius: 3,
|
|
@@ -216,8 +334,8 @@ var Content2 = (0, import_styled_components3.default)(TooltipPrimitive.Content)(
|
|
|
216
334
|
boxShadow: "0 2px 4px rgba(0,0,0,0.2), 0 0 12px rgba(0,0,0,0.1)",
|
|
217
335
|
border: `1px solid ${theme.colors.dividerStrong}`
|
|
218
336
|
}));
|
|
219
|
-
var Tooltip = (0,
|
|
220
|
-
return /* @__PURE__ */
|
|
337
|
+
var Tooltip = (0, import_react5.memo)(function Tooltip2({ children, content }) {
|
|
338
|
+
return /* @__PURE__ */ import_react5.default.createElement(TooltipPrimitive.Provider, null, /* @__PURE__ */ import_react5.default.createElement(TooltipPrimitive.Root, null, /* @__PURE__ */ import_react5.default.createElement(TooltipPrimitive.Trigger, { asChild: true }, children), /* @__PURE__ */ import_react5.default.createElement(TooltipPrimitive.Portal, null, /* @__PURE__ */ import_react5.default.createElement(
|
|
221
339
|
Content2,
|
|
222
340
|
{
|
|
223
341
|
side: "bottom",
|
|
@@ -230,95 +348,105 @@ var Tooltip = (0, import_react3.memo)(function Tooltip2({ children, content }) {
|
|
|
230
348
|
});
|
|
231
349
|
|
|
232
350
|
// src/components/Button.tsx
|
|
233
|
-
var ButtonElement =
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
},
|
|
265
|
-
"&:active": {
|
|
266
|
-
background: variant === "primaryGradient" ? theme.colors.primary : theme.colors.activeBackground
|
|
267
|
-
},
|
|
268
|
-
...variant === "primary" && {
|
|
269
|
-
background: theme.colors.primary,
|
|
270
|
-
color: "white",
|
|
271
|
-
"&:hover": {
|
|
272
|
-
background: theme.colors.primaryLight
|
|
351
|
+
var ButtonElement = import_styled_components5.default.button(
|
|
352
|
+
({
|
|
353
|
+
theme,
|
|
354
|
+
active,
|
|
355
|
+
disabled,
|
|
356
|
+
variant,
|
|
357
|
+
size: size2,
|
|
358
|
+
flex,
|
|
359
|
+
defaultBackground = theme.colors.inputBackground
|
|
360
|
+
}) => ({
|
|
361
|
+
...size2 === "large" ? theme.textStyles.heading4 : theme.textStyles.button,
|
|
362
|
+
textDecoration: "none",
|
|
363
|
+
lineHeight: "1",
|
|
364
|
+
flex: flex ?? "0 0 auto",
|
|
365
|
+
position: "relative",
|
|
366
|
+
border: "0",
|
|
367
|
+
outline: "none",
|
|
368
|
+
WebkitAppRegion: "no-drag",
|
|
369
|
+
userSelect: "none",
|
|
370
|
+
minWidth: variant === "normal" ? "31px" : void 0,
|
|
371
|
+
textAlign: "left",
|
|
372
|
+
borderRadius: "4px",
|
|
373
|
+
paddingTop: variant === "none" ? "0px" : "4px",
|
|
374
|
+
paddingRight: variant === "none" ? "0px" : variant === "thin" ? "1px" : "8px",
|
|
375
|
+
paddingBottom: variant === "none" ? "0px" : "4px",
|
|
376
|
+
paddingLeft: variant === "none" ? "0px" : variant === "thin" ? "1px" : "8px",
|
|
377
|
+
...size2 === "large" && {
|
|
378
|
+
paddingTop: "12px",
|
|
379
|
+
paddingRight: "16px",
|
|
380
|
+
paddingBottom: "12px",
|
|
381
|
+
paddingLeft: "16px"
|
|
273
382
|
},
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
background: theme.colors.secondary,
|
|
280
|
-
color: "white",
|
|
281
|
-
"&:hover": {
|
|
282
|
-
background: theme.colors.secondaryLight
|
|
383
|
+
background: active ? theme.colors.primary : variant === "primaryGradient" ? `linear-gradient(90deg, ${theme.colors.primary}, ${theme.colors.primaryLight})` : variant === "none" || variant === "thin" ? "transparent" : defaultBackground,
|
|
384
|
+
color: active ? "white" : theme.colors.text,
|
|
385
|
+
opacity: disabled ? 0.25 : 1,
|
|
386
|
+
"&:focus": {
|
|
387
|
+
boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors.primary}`
|
|
283
388
|
},
|
|
284
|
-
"&:active": {
|
|
285
|
-
background: theme.colors.secondary
|
|
286
|
-
}
|
|
287
|
-
},
|
|
288
|
-
...variant === "secondaryBright" && {
|
|
289
|
-
background: "#0ab557",
|
|
290
|
-
color: "white",
|
|
291
389
|
"&:hover": {
|
|
292
|
-
|
|
390
|
+
background: variant === "primaryGradient" || active ? theme.colors.primaryLight : theme.colors.inputBackgroundLight
|
|
293
391
|
},
|
|
294
392
|
"&:active": {
|
|
295
|
-
|
|
296
|
-
}
|
|
297
|
-
},
|
|
298
|
-
...variant === "white" && {
|
|
299
|
-
background: "white",
|
|
300
|
-
"&:hover": {
|
|
301
|
-
opacity: 0.8
|
|
393
|
+
background: variant === "primaryGradient" || active ? theme.colors.primary : theme.colors.activeBackground
|
|
302
394
|
},
|
|
303
|
-
"
|
|
304
|
-
|
|
395
|
+
...variant === "primary" && {
|
|
396
|
+
background: theme.colors.primary,
|
|
397
|
+
color: "white",
|
|
398
|
+
"&:hover": {
|
|
399
|
+
background: theme.colors.primaryLight
|
|
400
|
+
},
|
|
401
|
+
"&:active": {
|
|
402
|
+
background: theme.colors.primary
|
|
403
|
+
}
|
|
404
|
+
},
|
|
405
|
+
...variant === "secondary" && {
|
|
406
|
+
background: theme.colors.secondary,
|
|
407
|
+
color: "white",
|
|
408
|
+
"&:hover": {
|
|
409
|
+
background: theme.colors.secondaryLight
|
|
410
|
+
},
|
|
411
|
+
"&:active": {
|
|
412
|
+
background: theme.colors.secondary
|
|
413
|
+
}
|
|
414
|
+
},
|
|
415
|
+
...variant === "secondaryBright" && {
|
|
416
|
+
background: "#0ab557",
|
|
417
|
+
color: "white",
|
|
418
|
+
"&:hover": {
|
|
419
|
+
opacity: 0.8
|
|
420
|
+
},
|
|
421
|
+
"&:active": {
|
|
422
|
+
opacity: 0.9
|
|
423
|
+
}
|
|
424
|
+
},
|
|
425
|
+
...variant === "white" && {
|
|
426
|
+
background: "white",
|
|
427
|
+
"&:hover": {
|
|
428
|
+
opacity: 0.8
|
|
429
|
+
},
|
|
430
|
+
"&:active": {
|
|
431
|
+
opacity: 0.9
|
|
432
|
+
}
|
|
433
|
+
},
|
|
434
|
+
...variant === "floating" && {
|
|
435
|
+
background: "white",
|
|
436
|
+
color: theme.colors.text,
|
|
437
|
+
boxShadow: "0 1px 2px rgba(0, 0, 0, 0.1)",
|
|
438
|
+
fontSize: "12px",
|
|
439
|
+
padding: "0px 4px"
|
|
440
|
+
},
|
|
441
|
+
display: "flex",
|
|
442
|
+
alignItems: "center",
|
|
443
|
+
justifyContent: "center",
|
|
444
|
+
"& *": {
|
|
445
|
+
pointerEvents: "none"
|
|
305
446
|
}
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
color: theme.colors.text,
|
|
310
|
-
boxShadow: "0 1px 2px rgba(0, 0, 0, 0.1)",
|
|
311
|
-
fontSize: "12px",
|
|
312
|
-
padding: "0px 4px"
|
|
313
|
-
},
|
|
314
|
-
display: "flex",
|
|
315
|
-
alignItems: "center",
|
|
316
|
-
justifyContent: "center",
|
|
317
|
-
"& *": {
|
|
318
|
-
pointerEvents: "none"
|
|
319
|
-
}
|
|
320
|
-
}));
|
|
321
|
-
var ButtonContent = import_styled_components4.default.span(({ theme }) => ({
|
|
447
|
+
})
|
|
448
|
+
);
|
|
449
|
+
var ButtonContent = import_styled_components5.default.span(({ theme }) => ({
|
|
322
450
|
// Line height of small text - maybe figure out better way to ensure
|
|
323
451
|
// icons don't have a smaller height
|
|
324
452
|
minHeight: "19px",
|
|
@@ -329,7 +457,7 @@ var ButtonContent = import_styled_components4.default.span(({ theme }) => ({
|
|
|
329
457
|
// Helps with alignment with the default small text
|
|
330
458
|
lineHeight: "15px"
|
|
331
459
|
}));
|
|
332
|
-
var Button = (0,
|
|
460
|
+
var Button = (0, import_react6.forwardRef)(function Button2({
|
|
333
461
|
id,
|
|
334
462
|
className,
|
|
335
463
|
style: style3,
|
|
@@ -341,12 +469,13 @@ var Button = (0, import_react4.forwardRef)(function Button2({
|
|
|
341
469
|
variant = "normal",
|
|
342
470
|
size: size2 = "normal",
|
|
343
471
|
contentStyle,
|
|
472
|
+
defaultBackground,
|
|
344
473
|
onClick,
|
|
345
474
|
children,
|
|
346
475
|
...rest
|
|
347
476
|
// Propagate any other props so this component works as a Slot
|
|
348
477
|
}, forwardedRef) {
|
|
349
|
-
const buttonElement = /* @__PURE__ */
|
|
478
|
+
const buttonElement = /* @__PURE__ */ import_react6.default.createElement(
|
|
350
479
|
ButtonElement,
|
|
351
480
|
{
|
|
352
481
|
ref: forwardedRef,
|
|
@@ -359,47 +488,48 @@ var Button = (0, import_react4.forwardRef)(function Button2({
|
|
|
359
488
|
disabled,
|
|
360
489
|
variant,
|
|
361
490
|
size: size2,
|
|
491
|
+
defaultBackground,
|
|
362
492
|
onClick,
|
|
363
|
-
onDoubleClick: (0,
|
|
493
|
+
onDoubleClick: (0, import_react6.useCallback)((event) => {
|
|
364
494
|
event.stopPropagation();
|
|
365
495
|
}, []),
|
|
366
496
|
...rest
|
|
367
497
|
},
|
|
368
|
-
/* @__PURE__ */
|
|
498
|
+
/* @__PURE__ */ import_react6.default.createElement(ButtonContent, { style: contentStyle }, children)
|
|
369
499
|
);
|
|
370
|
-
return tooltip ? /* @__PURE__ */
|
|
500
|
+
return tooltip ? /* @__PURE__ */ import_react6.default.createElement(Tooltip, { content: tooltip }, buttonElement) : buttonElement;
|
|
371
501
|
});
|
|
372
502
|
|
|
373
503
|
// src/components/Chip.tsx
|
|
374
504
|
var import_noya_icons3 = require("@noya-app/noya-icons");
|
|
375
|
-
var
|
|
505
|
+
var import_react35 = __toESM(require("react"));
|
|
376
506
|
var import_styled_components16 = __toESM(require("styled-components"));
|
|
377
507
|
|
|
378
508
|
// src/contexts/DesignSystemConfiguration.tsx
|
|
379
|
-
var
|
|
509
|
+
var import_react34 = __toESM(require("react"));
|
|
380
510
|
var import_styled_components15 = require("styled-components");
|
|
381
511
|
|
|
382
512
|
// src/components/Toast.tsx
|
|
383
513
|
var ToastPrimitive = __toESM(require("@radix-ui/react-toast"));
|
|
384
|
-
var
|
|
385
|
-
var
|
|
514
|
+
var import_react8 = __toESM(require("react"));
|
|
515
|
+
var import_styled_components7 = __toESM(require("styled-components"));
|
|
386
516
|
|
|
387
517
|
// src/components/IconButton.tsx
|
|
388
518
|
var Icons = __toESM(require("@noya-app/noya-icons"));
|
|
389
|
-
var
|
|
390
|
-
var
|
|
391
|
-
var IconButton = (0,
|
|
392
|
-
(0,
|
|
393
|
-
const { icon: iconColor, iconSelected: iconSelectedColor } = (0,
|
|
519
|
+
var import_react7 = __toESM(require("react"));
|
|
520
|
+
var import_styled_components6 = require("styled-components");
|
|
521
|
+
var IconButton = (0, import_react7.memo)(
|
|
522
|
+
(0, import_react7.forwardRef)(function IconButton2({ selected, iconName, color, size: size2, contentStyle, ...props }, forwardedRef) {
|
|
523
|
+
const { icon: iconColor, iconSelected: iconSelectedColor } = (0, import_styled_components6.useTheme)().colors;
|
|
394
524
|
const Icon = Icons[iconName];
|
|
395
|
-
const style3 = (0,
|
|
525
|
+
const style3 = (0, import_react7.useMemo)(() => {
|
|
396
526
|
return {
|
|
397
527
|
padding: "0 2px",
|
|
398
528
|
...size2 && { minHeight: size2 },
|
|
399
529
|
...contentStyle
|
|
400
530
|
};
|
|
401
531
|
}, [contentStyle, size2]);
|
|
402
|
-
return /* @__PURE__ */
|
|
532
|
+
return /* @__PURE__ */ import_react7.default.createElement(Button, { ref: forwardedRef, ...props, variant: "none", contentStyle: style3 }, /* @__PURE__ */ import_react7.default.createElement(
|
|
403
533
|
Icon,
|
|
404
534
|
{
|
|
405
535
|
color: color ?? (selected ? iconSelectedColor : iconColor),
|
|
@@ -410,7 +540,7 @@ var IconButton = (0, import_react5.memo)(
|
|
|
410
540
|
);
|
|
411
541
|
|
|
412
542
|
// src/components/Toast.tsx
|
|
413
|
-
var ToastViewport = (0,
|
|
543
|
+
var ToastViewport = (0, import_styled_components7.default)(ToastPrimitive.Viewport)({
|
|
414
544
|
position: "fixed",
|
|
415
545
|
bottom: 0,
|
|
416
546
|
right: 0,
|
|
@@ -425,7 +555,7 @@ var ToastViewport = (0, import_styled_components6.default)(ToastPrimitive.Viewpo
|
|
|
425
555
|
zIndex: 2147483647,
|
|
426
556
|
outline: "none"
|
|
427
557
|
});
|
|
428
|
-
var ToastRoot = (0,
|
|
558
|
+
var ToastRoot = (0, import_styled_components7.default)(ToastPrimitive.Root)(({ theme }) => ({
|
|
429
559
|
borderRadius: 4,
|
|
430
560
|
fontSize: 14,
|
|
431
561
|
backgroundColor: theme.colors.popover.background,
|
|
@@ -438,19 +568,19 @@ var ToastRoot = (0, import_styled_components6.default)(ToastPrimitive.Root)(({ t
|
|
|
438
568
|
columnGap: 10,
|
|
439
569
|
alignItems: "center"
|
|
440
570
|
}));
|
|
441
|
-
var ToastTitle = (0,
|
|
571
|
+
var ToastTitle = (0, import_styled_components7.default)(ToastPrimitive.Title)(({ theme }) => ({
|
|
442
572
|
gridArea: "title",
|
|
443
573
|
marginBottom: 5,
|
|
444
574
|
...theme.textStyles.label,
|
|
445
575
|
fontWeight: "bold",
|
|
446
576
|
color: theme.colors.text
|
|
447
577
|
}));
|
|
448
|
-
var ToastDescription = (0,
|
|
578
|
+
var ToastDescription = (0, import_styled_components7.default)(ToastPrimitive.Description)(({ theme }) => ({
|
|
449
579
|
gridArea: "description",
|
|
450
580
|
...theme.textStyles.small,
|
|
451
581
|
color: theme.colors.textMuted
|
|
452
582
|
}));
|
|
453
|
-
var ToastAction = (0,
|
|
583
|
+
var ToastAction = (0, import_styled_components7.default)(ToastPrimitive.Action)({
|
|
454
584
|
gridArea: "action"
|
|
455
585
|
});
|
|
456
586
|
var Toast = ({
|
|
@@ -459,9 +589,9 @@ var Toast = ({
|
|
|
459
589
|
children,
|
|
460
590
|
...props
|
|
461
591
|
}) => {
|
|
462
|
-
return /* @__PURE__ */
|
|
592
|
+
return /* @__PURE__ */ import_react8.default.createElement(ToastRoot, { ...props }, title && /* @__PURE__ */ import_react8.default.createElement(ToastTitle, null, title), /* @__PURE__ */ import_react8.default.createElement(ToastDescription, null, content), children && /* @__PURE__ */ import_react8.default.createElement(ToastAction, { asChild: true, altText: "" }, children), /* @__PURE__ */ import_react8.default.createElement(ToastPrimitive.Close, { "aria-label": "Close", asChild: true }, /* @__PURE__ */ import_react8.default.createElement(IconButton, { iconName: "Cross1Icon" })));
|
|
463
593
|
};
|
|
464
|
-
var ToastProvider = ({ children }) => /* @__PURE__ */
|
|
594
|
+
var ToastProvider = ({ children }) => /* @__PURE__ */ import_react8.default.createElement(ToastPrimitive.Provider, null, children, /* @__PURE__ */ import_react8.default.createElement(ToastViewport, null));
|
|
465
595
|
|
|
466
596
|
// src/contexts/DialogContext.tsx
|
|
467
597
|
var import_react32 = __toESM(require("react"));
|
|
@@ -469,16 +599,16 @@ var import_styled_components14 = __toESM(require("styled-components"));
|
|
|
469
599
|
|
|
470
600
|
// src/components/Dialog.tsx
|
|
471
601
|
var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"));
|
|
472
|
-
var
|
|
473
|
-
var
|
|
602
|
+
var import_react9 = __toESM(require("react"));
|
|
603
|
+
var import_styled_components9 = __toESM(require("styled-components"));
|
|
474
604
|
|
|
475
605
|
// src/components/Spacer.tsx
|
|
476
|
-
var
|
|
477
|
-
var SpacerVertical =
|
|
606
|
+
var import_styled_components8 = __toESM(require("styled-components"));
|
|
607
|
+
var SpacerVertical = import_styled_components8.default.span(({ size: size2, inline }) => ({
|
|
478
608
|
display: inline ? "inline-block" : "block",
|
|
479
609
|
...size2 === void 0 ? { flex: 1 } : { minHeight: size2 }
|
|
480
610
|
}));
|
|
481
|
-
var SpacerHorizontal =
|
|
611
|
+
var SpacerHorizontal = import_styled_components8.default.span(({ size: size2, inline }) => ({
|
|
482
612
|
display: inline ? "inline-block" : "block",
|
|
483
613
|
...size2 === void 0 ? { flex: 1 } : { minWidth: size2 }
|
|
484
614
|
}));
|
|
@@ -489,12 +619,12 @@ var Spacer;
|
|
|
489
619
|
})(Spacer || (Spacer = {}));
|
|
490
620
|
|
|
491
621
|
// src/components/Dialog.tsx
|
|
492
|
-
var StyledOverlay = (0,
|
|
622
|
+
var StyledOverlay = (0, import_styled_components9.default)(DialogPrimitive.Overlay)({
|
|
493
623
|
backgroundColor: "rgba(0,0,0,0.5)",
|
|
494
624
|
position: "fixed",
|
|
495
625
|
inset: 0
|
|
496
626
|
});
|
|
497
|
-
var StyledContent = (0,
|
|
627
|
+
var StyledContent = (0, import_styled_components9.default)(DialogPrimitive.Content)(({ theme }) => ({
|
|
498
628
|
boxShadow: "hsl(206 22% 7% / 35%) 0px 10px 38px -10px, hsl(206 22% 7% / 20%) 0px 10px 20px -15px",
|
|
499
629
|
position: "fixed",
|
|
500
630
|
top: "50%",
|
|
@@ -513,17 +643,17 @@ var StyledContent = (0, import_styled_components8.default)(DialogPrimitive.Conte
|
|
|
513
643
|
pointerEvents: "all",
|
|
514
644
|
zIndex: 1e3
|
|
515
645
|
}));
|
|
516
|
-
var StyledTitle = (0,
|
|
646
|
+
var StyledTitle = (0, import_styled_components9.default)(DialogPrimitive.Title)(({ theme }) => ({
|
|
517
647
|
margin: 0,
|
|
518
648
|
...theme.textStyles.body,
|
|
519
649
|
color: theme.colors.text
|
|
520
650
|
}));
|
|
521
|
-
var StyledDescription = (0,
|
|
651
|
+
var StyledDescription = (0, import_styled_components9.default)(DialogPrimitive.Description)(({ theme }) => ({
|
|
522
652
|
margin: 0,
|
|
523
653
|
...theme.textStyles.small,
|
|
524
654
|
color: theme.colors.textMuted
|
|
525
655
|
}));
|
|
526
|
-
var CloseButtonContainer =
|
|
656
|
+
var CloseButtonContainer = import_styled_components9.default.div(({ theme }) => ({
|
|
527
657
|
position: "absolute",
|
|
528
658
|
top: theme.sizes.dialog.padding,
|
|
529
659
|
right: theme.sizes.dialog.padding,
|
|
@@ -534,7 +664,7 @@ var CloseButtonContainer = import_styled_components8.default.div(({ theme }) =>
|
|
|
534
664
|
// boxShadow: `0 0 2px rgba(0, 0, 0, 0.2)`,
|
|
535
665
|
border: `1px solid rgba(128,128,128,0.2)`
|
|
536
666
|
}));
|
|
537
|
-
var Dialog = (0,
|
|
667
|
+
var Dialog = (0, import_react9.forwardRef)(function Dialog2({
|
|
538
668
|
children,
|
|
539
669
|
title,
|
|
540
670
|
description,
|
|
@@ -544,15 +674,15 @@ var Dialog = (0, import_react7.forwardRef)(function Dialog2({
|
|
|
544
674
|
onOpenAutoFocus,
|
|
545
675
|
closeOnInteractOutside = true
|
|
546
676
|
}, forwardedRef) {
|
|
547
|
-
const contentRef = (0,
|
|
548
|
-
(0,
|
|
677
|
+
const contentRef = (0, import_react9.useRef)(null);
|
|
678
|
+
(0, import_react9.useImperativeHandle)(forwardedRef, () => ({
|
|
549
679
|
containsElement(element) {
|
|
550
680
|
if (!contentRef.current)
|
|
551
681
|
return false;
|
|
552
682
|
return contentRef.current.contains(element);
|
|
553
683
|
}
|
|
554
684
|
}));
|
|
555
|
-
return /* @__PURE__ */
|
|
685
|
+
return /* @__PURE__ */ import_react9.default.createElement(DialogPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ import_react9.default.createElement(StyledOverlay, null), /* @__PURE__ */ import_react9.default.createElement(
|
|
556
686
|
StyledContent,
|
|
557
687
|
{
|
|
558
688
|
ref: contentRef,
|
|
@@ -567,14 +697,14 @@ var Dialog = (0, import_react7.forwardRef)(function Dialog2({
|
|
|
567
697
|
}
|
|
568
698
|
}
|
|
569
699
|
},
|
|
570
|
-
/* @__PURE__ */
|
|
571
|
-
title && /* @__PURE__ */
|
|
572
|
-
description && /* @__PURE__ */
|
|
700
|
+
/* @__PURE__ */ import_react9.default.createElement(CloseButtonContainer, null, /* @__PURE__ */ import_react9.default.createElement(DialogPrimitive.Close, { asChild: true }, /* @__PURE__ */ import_react9.default.createElement(IconButton, { iconName: "Cross1Icon" }))),
|
|
701
|
+
title && /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, /* @__PURE__ */ import_react9.default.createElement(StyledTitle, null, title), /* @__PURE__ */ import_react9.default.createElement(Spacer.Vertical, { size: description ? 10 : 20 })),
|
|
702
|
+
description && /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, /* @__PURE__ */ import_react9.default.createElement(Spacer.Vertical, { size: 10 }), /* @__PURE__ */ import_react9.default.createElement(StyledDescription, null, description), /* @__PURE__ */ import_react9.default.createElement(Spacer.Vertical, { size: 20 })),
|
|
573
703
|
children
|
|
574
704
|
));
|
|
575
705
|
});
|
|
576
|
-
var FullscreenDialog = (0,
|
|
577
|
-
return /* @__PURE__ */
|
|
706
|
+
var FullscreenDialog = (0, import_react9.forwardRef)(function FullscreenDialog2({ style: style3, ...rest }, forwardedRef) {
|
|
707
|
+
return /* @__PURE__ */ import_react9.default.createElement(
|
|
578
708
|
Dialog,
|
|
579
709
|
{
|
|
580
710
|
ref: forwardedRef,
|
|
@@ -601,13 +731,13 @@ var import_noya_icons2 = require("@noya-app/noya-icons");
|
|
|
601
731
|
var import_noya_utils5 = require("@noya-app/noya-utils");
|
|
602
732
|
|
|
603
733
|
// ../noya-react-utils/src/components/AutoSizer.tsx
|
|
604
|
-
var
|
|
734
|
+
var import_react10 = __toESM(require("react"));
|
|
605
735
|
|
|
606
736
|
// ../noya-react-utils/src/hooks/useSize.ts
|
|
607
|
-
var
|
|
737
|
+
var React9 = __toESM(require("react"));
|
|
608
738
|
function useSize(refToObserve, dimensions = "both") {
|
|
609
|
-
const [size2, setSize] =
|
|
610
|
-
|
|
739
|
+
const [size2, setSize] = React9.useState(void 0);
|
|
740
|
+
React9.useEffect(() => {
|
|
611
741
|
if (refToObserve.current) {
|
|
612
742
|
const elementToObserve = refToObserve.current;
|
|
613
743
|
const resizeObserver = new ResizeObserver((entries) => {
|
|
@@ -654,37 +784,37 @@ var style = {
|
|
|
654
784
|
flex: "1 0 0",
|
|
655
785
|
flexDirection: "column"
|
|
656
786
|
};
|
|
657
|
-
var AutoSizer = (0,
|
|
787
|
+
var AutoSizer = (0, import_react10.memo)(function AutoSizer2({
|
|
658
788
|
children,
|
|
659
789
|
className
|
|
660
790
|
}) {
|
|
661
|
-
const containerRef = (0,
|
|
791
|
+
const containerRef = (0, import_react10.useRef)(null);
|
|
662
792
|
const containerSize = useSize(containerRef);
|
|
663
|
-
return /* @__PURE__ */
|
|
793
|
+
return /* @__PURE__ */ import_react10.default.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize.width > 0 && containerSize.height > 0 && children(containerSize));
|
|
664
794
|
});
|
|
665
|
-
var SingleDimensionAutoSizer = (0,
|
|
795
|
+
var SingleDimensionAutoSizer = (0, import_react10.memo)(function SingleDimensionAutoSizer2({
|
|
666
796
|
children,
|
|
667
797
|
dimension,
|
|
668
798
|
className
|
|
669
799
|
}) {
|
|
670
|
-
const containerRef = (0,
|
|
800
|
+
const containerRef = (0, import_react10.useRef)(null);
|
|
671
801
|
const containerSize = useSize(containerRef, dimension);
|
|
672
|
-
return /* @__PURE__ */
|
|
802
|
+
return /* @__PURE__ */ import_react10.default.createElement("div", { ref: containerRef, style, className }, containerSize && containerSize[dimension] > 0 && children(containerSize[dimension]));
|
|
673
803
|
});
|
|
674
804
|
|
|
675
805
|
// ../noya-react-utils/src/components/FileDropTarget.tsx
|
|
676
|
-
var
|
|
806
|
+
var import_react12 = __toESM(require("react"));
|
|
677
807
|
|
|
678
808
|
// ../noya-react-utils/src/hooks/useFileDropTarget.ts
|
|
679
|
-
var
|
|
809
|
+
var import_react11 = require("react");
|
|
680
810
|
function useFileDropTarget(dropEvent) {
|
|
681
|
-
const [isDropTargetActive, setIsDropTargetActive] = (0,
|
|
682
|
-
const handleDragEvent = (0,
|
|
811
|
+
const [isDropTargetActive, setIsDropTargetActive] = (0, import_react11.useState)(false);
|
|
812
|
+
const handleDragEvent = (0, import_react11.useCallback)((event, on) => {
|
|
683
813
|
if (on !== void 0)
|
|
684
814
|
setIsDropTargetActive(on);
|
|
685
815
|
event.preventDefault();
|
|
686
816
|
}, []);
|
|
687
|
-
const handleDropEvent = (0,
|
|
817
|
+
const handleDropEvent = (0, import_react11.useCallback)(
|
|
688
818
|
(event) => {
|
|
689
819
|
dropEvent(event);
|
|
690
820
|
setIsDropTargetActive(false);
|
|
@@ -707,12 +837,12 @@ function isSupportedFile(file, supportedFileTypes) {
|
|
|
707
837
|
return supportedFileTypes.includes(file.type) || file.type === "" && file.name.endsWith(".sketch");
|
|
708
838
|
}
|
|
709
839
|
var style2 = { display: "flex", flex: 1 };
|
|
710
|
-
var FileDropTarget = (0,
|
|
840
|
+
var FileDropTarget = (0, import_react12.memo)(function FileDropTarget2({
|
|
711
841
|
children,
|
|
712
842
|
onDropFiles,
|
|
713
843
|
supportedFileTypes
|
|
714
844
|
}) {
|
|
715
|
-
const handleFile = (0,
|
|
845
|
+
const handleFile = (0, import_react12.useCallback)(
|
|
716
846
|
(event) => {
|
|
717
847
|
event.preventDefault();
|
|
718
848
|
const offsetPoint = {
|
|
@@ -745,51 +875,51 @@ var FileDropTarget = (0, import_react10.memo)(function FileDropTarget2({
|
|
|
745
875
|
[onDropFiles, supportedFileTypes]
|
|
746
876
|
);
|
|
747
877
|
const { dropTargetProps, isDropTargetActive } = useFileDropTarget(handleFile);
|
|
748
|
-
return /* @__PURE__ */
|
|
878
|
+
return /* @__PURE__ */ import_react12.default.createElement("div", { style: style2, ...dropTargetProps }, typeof children === "function" ? children(isDropTargetActive) : children);
|
|
749
879
|
});
|
|
750
880
|
|
|
751
881
|
// ../noya-react-utils/src/hooks/useDeepArray.ts
|
|
752
882
|
var import_noya_utils = require("@noya-app/noya-utils");
|
|
753
|
-
var
|
|
883
|
+
var import_react13 = require("react");
|
|
754
884
|
|
|
755
885
|
// ../noya-react-utils/src/hooks/useDeepState.ts
|
|
756
886
|
var import_noya_utils2 = require("@noya-app/noya-utils");
|
|
757
|
-
var
|
|
887
|
+
var import_react14 = require("react");
|
|
758
888
|
|
|
759
889
|
// ../noya-react-utils/src/hooks/useFetch.ts
|
|
760
|
-
var
|
|
890
|
+
var import_react15 = require("react");
|
|
761
891
|
|
|
762
892
|
// ../noya-react-utils/src/hooks/useIsMounted.ts
|
|
763
|
-
var
|
|
893
|
+
var import_react16 = require("react");
|
|
764
894
|
|
|
765
895
|
// ../noya-react-utils/src/hooks/useLateReference.ts
|
|
766
|
-
var
|
|
896
|
+
var import_react17 = require("react");
|
|
767
897
|
|
|
768
898
|
// ../noya-react-utils/src/hooks/useLazyValue.ts
|
|
769
|
-
var
|
|
899
|
+
var import_react18 = require("react");
|
|
770
900
|
|
|
771
901
|
// ../noya-react-utils/src/hooks/useMutableState.ts
|
|
772
|
-
var
|
|
902
|
+
var import_react19 = require("react");
|
|
773
903
|
|
|
774
904
|
// ../noya-react-utils/src/hooks/usePersistentState.ts
|
|
775
|
-
var
|
|
905
|
+
var import_react20 = require("react");
|
|
776
906
|
|
|
777
907
|
// ../noya-react-utils/src/hooks/usePixelRatio.ts
|
|
778
|
-
var
|
|
908
|
+
var import_react21 = require("react");
|
|
779
909
|
|
|
780
910
|
// ../noya-react-utils/src/hooks/useShallowArray.ts
|
|
781
911
|
var import_noya_utils3 = require("@noya-app/noya-utils");
|
|
782
|
-
var
|
|
912
|
+
var import_react22 = require("react");
|
|
783
913
|
|
|
784
914
|
// ../noya-react-utils/src/hooks/useStableCallback.ts
|
|
785
|
-
var
|
|
915
|
+
var import_react23 = require("react");
|
|
786
916
|
|
|
787
917
|
// ../noya-react-utils/src/hooks/useSystemColorScheme.ts
|
|
788
|
-
var
|
|
918
|
+
var import_react24 = require("react");
|
|
789
919
|
|
|
790
920
|
// ../noya-react-utils/src/hooks/useUrlHashParameters.ts
|
|
791
921
|
var import_noya_utils4 = require("@noya-app/noya-utils");
|
|
792
|
-
var
|
|
922
|
+
var import_react25 = require("react");
|
|
793
923
|
|
|
794
924
|
// ../emitter/src/index.ts
|
|
795
925
|
var Emitter = class {
|
|
@@ -911,34 +1041,13 @@ function handleNudge(e) {
|
|
|
911
1041
|
var import_noya_icons = require("@noya-app/noya-icons");
|
|
912
1042
|
var import_noya_keymap2 = require("@noya-app/noya-keymap");
|
|
913
1043
|
var RadixDropdownMenu = __toESM(require("@radix-ui/react-dropdown-menu"));
|
|
914
|
-
var
|
|
915
|
-
var
|
|
1044
|
+
var import_react27 = __toESM(require("react"));
|
|
1045
|
+
var import_styled_components11 = __toESM(require("styled-components"));
|
|
916
1046
|
|
|
917
1047
|
// src/components/internal/Menu.tsx
|
|
918
1048
|
var import_noya_keymap = require("@noya-app/noya-keymap");
|
|
919
|
-
var
|
|
920
|
-
var
|
|
921
|
-
|
|
922
|
-
// src/utils/withSeparatorElements.ts
|
|
923
|
-
var import_react24 = require("react");
|
|
924
|
-
function createKey(key) {
|
|
925
|
-
return `s-${key}`;
|
|
926
|
-
}
|
|
927
|
-
function withSeparatorElements(elements2, separator) {
|
|
928
|
-
const childrenArray = import_react24.Children.toArray(elements2);
|
|
929
|
-
for (let i = childrenArray.length - 1; i > 0; i--) {
|
|
930
|
-
let sep = typeof separator === "function" ? separator() : (0, import_react24.isValidElement)(separator) ? (0, import_react24.cloneElement)(separator, { key: createKey(i) }) : separator;
|
|
931
|
-
if ((0, import_react24.isValidElement)(sep) && sep.key == null) {
|
|
932
|
-
sep = (0, import_react24.cloneElement)(sep, { key: createKey(i) });
|
|
933
|
-
}
|
|
934
|
-
if (!sep || typeof sep === "boolean")
|
|
935
|
-
continue;
|
|
936
|
-
childrenArray.splice(i, 0, sep);
|
|
937
|
-
}
|
|
938
|
-
return childrenArray;
|
|
939
|
-
}
|
|
940
|
-
|
|
941
|
-
// src/components/internal/Menu.tsx
|
|
1049
|
+
var import_react26 = __toESM(require("react"));
|
|
1050
|
+
var import_styled_components10 = __toESM(require("styled-components"));
|
|
942
1051
|
var SEPARATOR_ITEM = "separator";
|
|
943
1052
|
var CHECKBOX_WIDTH = 15;
|
|
944
1053
|
var CHECKBOX_RIGHT_INSET = 3;
|
|
@@ -946,20 +1055,18 @@ var styles = {
|
|
|
946
1055
|
separatorStyle: ({ theme }) => ({
|
|
947
1056
|
height: "1px",
|
|
948
1057
|
backgroundColor: theme.colors.divider,
|
|
949
|
-
margin: "4px
|
|
1058
|
+
margin: "4px -4px"
|
|
950
1059
|
}),
|
|
951
1060
|
itemStyle: ({
|
|
952
1061
|
theme,
|
|
953
1062
|
disabled
|
|
954
1063
|
}) => ({
|
|
955
|
-
...theme.textStyles.
|
|
956
|
-
fontWeight: 500,
|
|
957
|
-
fontSize: "0.8rem",
|
|
1064
|
+
...theme.textStyles.button,
|
|
958
1065
|
flex: "0 0 auto",
|
|
959
1066
|
userSelect: "none",
|
|
960
1067
|
cursor: "pointer",
|
|
961
1068
|
borderRadius: "3px",
|
|
962
|
-
padding: "
|
|
1069
|
+
padding: "6px 8px",
|
|
963
1070
|
...disabled && {
|
|
964
1071
|
color: theme.colors.textDisabled
|
|
965
1072
|
},
|
|
@@ -1016,7 +1123,7 @@ function getKeyboardShortcutsForMenuItems(menuItems, onSelect) {
|
|
|
1016
1123
|
menuItems.flatMap(getKeyboardShortcuts).map(([key, value]) => [key, () => onSelect(value)])
|
|
1017
1124
|
);
|
|
1018
1125
|
}
|
|
1019
|
-
var ShortcutElement =
|
|
1126
|
+
var ShortcutElement = import_styled_components10.default.kbd(
|
|
1020
1127
|
({
|
|
1021
1128
|
theme,
|
|
1022
1129
|
fixedWidth
|
|
@@ -1029,12 +1136,12 @@ var ShortcutElement = import_styled_components9.default.kbd(
|
|
|
1029
1136
|
}
|
|
1030
1137
|
})
|
|
1031
1138
|
);
|
|
1032
|
-
var KeyboardShortcut = (0,
|
|
1139
|
+
var KeyboardShortcut = (0, import_react26.memo)(function KeyboardShortcut2({
|
|
1033
1140
|
shortcut
|
|
1034
1141
|
}) {
|
|
1035
1142
|
const platform = useDesignSystemConfiguration().platform;
|
|
1036
1143
|
const { keys, separator } = (0, import_noya_keymap.getShortcutDisplayParts)(shortcut, platform);
|
|
1037
|
-
const keyElements = keys.map((key) => /* @__PURE__ */
|
|
1144
|
+
const keyElements = keys.map((key) => /* @__PURE__ */ import_react26.default.createElement(
|
|
1038
1145
|
ShortcutElement,
|
|
1039
1146
|
{
|
|
1040
1147
|
key,
|
|
@@ -1042,24 +1149,24 @@ var KeyboardShortcut = (0, import_react25.memo)(function KeyboardShortcut2({
|
|
|
1042
1149
|
},
|
|
1043
1150
|
key
|
|
1044
1151
|
));
|
|
1045
|
-
return /* @__PURE__ */
|
|
1152
|
+
return /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, separator ? withSeparatorElements(
|
|
1046
1153
|
keyElements,
|
|
1047
|
-
/* @__PURE__ */
|
|
1154
|
+
/* @__PURE__ */ import_react26.default.createElement(ShortcutElement, null, separator)
|
|
1048
1155
|
) : keyElements);
|
|
1049
1156
|
});
|
|
1050
1157
|
|
|
1051
1158
|
// src/components/DropdownMenu.tsx
|
|
1052
|
-
var SeparatorElement = (0,
|
|
1159
|
+
var SeparatorElement = (0, import_styled_components11.default)(RadixDropdownMenu.Separator)(
|
|
1053
1160
|
styles.separatorStyle
|
|
1054
1161
|
);
|
|
1055
|
-
var ItemElement = (0,
|
|
1056
|
-
var CheckboxItemElement = (0,
|
|
1162
|
+
var ItemElement = (0, import_styled_components11.default)(RadixDropdownMenu.Item)(styles.itemStyle);
|
|
1163
|
+
var CheckboxItemElement = (0, import_styled_components11.default)(RadixDropdownMenu.CheckboxItem)(
|
|
1057
1164
|
styles.itemStyle
|
|
1058
1165
|
);
|
|
1059
|
-
var StyledItemIndicator = (0,
|
|
1166
|
+
var StyledItemIndicator = (0, import_styled_components11.default)(RadixDropdownMenu.ItemIndicator)(
|
|
1060
1167
|
styles.itemIndicatorStyle
|
|
1061
1168
|
);
|
|
1062
|
-
var DropdownMenuItem = (0,
|
|
1169
|
+
var DropdownMenuItem = (0, import_react27.memo)(function ContextMenuItem({
|
|
1063
1170
|
value,
|
|
1064
1171
|
children,
|
|
1065
1172
|
onSelect,
|
|
@@ -1070,34 +1177,43 @@ var DropdownMenuItem = (0, import_react26.memo)(function ContextMenuItem({
|
|
|
1070
1177
|
items,
|
|
1071
1178
|
shortcut
|
|
1072
1179
|
}) {
|
|
1073
|
-
const handleSelectItem = (0,
|
|
1180
|
+
const handleSelectItem = (0, import_react27.useCallback)(() => {
|
|
1074
1181
|
if (!value)
|
|
1075
1182
|
return;
|
|
1076
1183
|
onSelect(value);
|
|
1077
1184
|
}, [onSelect, value]);
|
|
1078
1185
|
if (checked) {
|
|
1079
|
-
return /* @__PURE__ */
|
|
1186
|
+
return /* @__PURE__ */ import_react27.default.createElement(
|
|
1080
1187
|
CheckboxItemElement,
|
|
1081
1188
|
{
|
|
1082
1189
|
checked,
|
|
1083
1190
|
disabled,
|
|
1084
1191
|
onSelect: handleSelectItem
|
|
1085
1192
|
},
|
|
1086
|
-
/* @__PURE__ */
|
|
1087
|
-
icon && /* @__PURE__ */
|
|
1193
|
+
/* @__PURE__ */ import_react27.default.createElement(StyledItemIndicator, null, /* @__PURE__ */ import_react27.default.createElement(import_noya_icons.CheckIcon, null)),
|
|
1194
|
+
icon && /* @__PURE__ */ import_react27.default.createElement(import_react27.default.Fragment, null, icon, /* @__PURE__ */ import_react27.default.createElement(Spacer.Horizontal, { size: 8 })),
|
|
1088
1195
|
children
|
|
1089
1196
|
);
|
|
1090
1197
|
}
|
|
1091
|
-
const element = /* @__PURE__ */
|
|
1198
|
+
const element = /* @__PURE__ */ import_react27.default.createElement(ItemElement, { disabled, onSelect: handleSelectItem }, indented && /* @__PURE__ */ import_react27.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }), icon && /* @__PURE__ */ import_react27.default.createElement(import_react27.default.Fragment, null, icon, /* @__PURE__ */ import_react27.default.createElement(Spacer.Horizontal, { size: 8 })), children, shortcut && /* @__PURE__ */ import_react27.default.createElement(import_react27.default.Fragment, null, /* @__PURE__ */ import_react27.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react27.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react27.default.createElement(KeyboardShortcut, { shortcut })), items && items.length > 0 && /* @__PURE__ */ import_react27.default.createElement(import_react27.default.Fragment, null, /* @__PURE__ */ import_react27.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react27.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react27.default.createElement(import_noya_icons.ChevronRightIcon, null)));
|
|
1092
1199
|
if (items && items.length > 0) {
|
|
1093
|
-
return /* @__PURE__ */
|
|
1200
|
+
return /* @__PURE__ */ import_react27.default.createElement(
|
|
1201
|
+
DropdownMenuRoot,
|
|
1202
|
+
{
|
|
1203
|
+
isNested: true,
|
|
1204
|
+
items,
|
|
1205
|
+
onSelect,
|
|
1206
|
+
alignOffset: -5
|
|
1207
|
+
},
|
|
1208
|
+
element
|
|
1209
|
+
);
|
|
1094
1210
|
} else {
|
|
1095
1211
|
return element;
|
|
1096
1212
|
}
|
|
1097
1213
|
});
|
|
1098
|
-
var Content5 = (0,
|
|
1099
|
-
var SubContent2 = (0,
|
|
1100
|
-
var DropdownMenuRoot = (0,
|
|
1214
|
+
var Content5 = (0, import_styled_components11.default)(RadixDropdownMenu.Content)(styles.contentStyle);
|
|
1215
|
+
var SubContent2 = (0, import_styled_components11.default)(RadixDropdownMenu.SubContent)(styles.contentStyle);
|
|
1216
|
+
var DropdownMenuRoot = (0, import_react27.forwardRef)(function DropdownMenuRoot2({
|
|
1101
1217
|
items,
|
|
1102
1218
|
children,
|
|
1103
1219
|
onSelect,
|
|
@@ -1105,12 +1221,17 @@ var DropdownMenuRoot = (0, import_react26.forwardRef)(function DropdownMenuRoot2
|
|
|
1105
1221
|
shouldBindKeyboardShortcuts,
|
|
1106
1222
|
onOpenChange,
|
|
1107
1223
|
open,
|
|
1108
|
-
onCloseAutoFocus
|
|
1224
|
+
onCloseAutoFocus,
|
|
1225
|
+
side,
|
|
1226
|
+
sideOffset = 4,
|
|
1227
|
+
align,
|
|
1228
|
+
alignOffset,
|
|
1229
|
+
collisionPadding = 8
|
|
1109
1230
|
}, forwardedRef) {
|
|
1110
1231
|
const hasCheckedItem = items.some(
|
|
1111
1232
|
(item) => item !== SEPARATOR_ITEM && item.checked
|
|
1112
1233
|
);
|
|
1113
|
-
const keymap = (0,
|
|
1234
|
+
const keymap = (0, import_react27.useMemo)(
|
|
1114
1235
|
() => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
|
|
1115
1236
|
[isNested, items, onSelect, shouldBindKeyboardShortcuts]
|
|
1116
1237
|
);
|
|
@@ -1118,17 +1239,20 @@ var DropdownMenuRoot = (0, import_react26.forwardRef)(function DropdownMenuRoot2
|
|
|
1118
1239
|
const RootComponent = isNested ? RadixDropdownMenu.Sub : RadixDropdownMenu.Root;
|
|
1119
1240
|
const TriggerComponent = isNested ? RadixDropdownMenu.SubTrigger : RadixDropdownMenu.Trigger;
|
|
1120
1241
|
const ContentComponent = isNested ? SubContent2 : Content5;
|
|
1121
|
-
const contentStyle = (0,
|
|
1122
|
-
return /* @__PURE__ */
|
|
1242
|
+
const contentStyle = (0, import_react27.useMemo)(() => ({ zIndex: 1e3 }), []);
|
|
1243
|
+
return /* @__PURE__ */ import_react27.default.createElement(RootComponent, { onOpenChange, open }, /* @__PURE__ */ import_react27.default.createElement(TriggerComponent, { ref: forwardedRef, asChild: true }, children), /* @__PURE__ */ import_react27.default.createElement(RadixDropdownMenu.Portal, null, /* @__PURE__ */ import_react27.default.createElement(
|
|
1123
1244
|
ContentComponent,
|
|
1124
1245
|
{
|
|
1125
|
-
|
|
1246
|
+
side,
|
|
1247
|
+
sideOffset,
|
|
1248
|
+
align,
|
|
1249
|
+
alignOffset,
|
|
1126
1250
|
style: contentStyle,
|
|
1127
|
-
collisionPadding
|
|
1251
|
+
collisionPadding,
|
|
1128
1252
|
...{ onCloseAutoFocus }
|
|
1129
1253
|
},
|
|
1130
1254
|
items.map(
|
|
1131
|
-
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */
|
|
1255
|
+
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react27.default.createElement(SeparatorElement, { key: index }) : /* @__PURE__ */ import_react27.default.createElement(
|
|
1132
1256
|
DropdownMenuItem,
|
|
1133
1257
|
{
|
|
1134
1258
|
key: item.value ?? index,
|
|
@@ -1146,14 +1270,14 @@ var DropdownMenuRoot = (0, import_react26.forwardRef)(function DropdownMenuRoot2
|
|
|
1146
1270
|
)
|
|
1147
1271
|
)));
|
|
1148
1272
|
});
|
|
1149
|
-
var DropdownMenu = (0,
|
|
1273
|
+
var DropdownMenu = (0, import_react27.memo)(DropdownMenuRoot);
|
|
1150
1274
|
|
|
1151
1275
|
// src/components/internal/TextInput.tsx
|
|
1152
1276
|
var import_react_compose_refs = require("@radix-ui/react-compose-refs");
|
|
1153
|
-
var
|
|
1277
|
+
var import_react29 = __toESM(require("react"));
|
|
1154
1278
|
|
|
1155
1279
|
// src/contexts/GlobalInputBlurContext.tsx
|
|
1156
|
-
var
|
|
1280
|
+
var import_react28 = require("react");
|
|
1157
1281
|
var defaultValue = /* @__PURE__ */ (() => {
|
|
1158
1282
|
const listeners = [];
|
|
1159
1283
|
const value = {
|
|
@@ -1174,14 +1298,14 @@ var defaultValue = /* @__PURE__ */ (() => {
|
|
|
1174
1298
|
};
|
|
1175
1299
|
return value;
|
|
1176
1300
|
})();
|
|
1177
|
-
var GlobalInputBlurContext = (0,
|
|
1301
|
+
var GlobalInputBlurContext = (0, import_react28.createContext)(defaultValue);
|
|
1178
1302
|
var GlobalInputBlurProvider = GlobalInputBlurContext.Provider;
|
|
1179
1303
|
var useGlobalInputBlur = () => {
|
|
1180
|
-
return (0,
|
|
1304
|
+
return (0, import_react28.useContext)(GlobalInputBlurContext);
|
|
1181
1305
|
};
|
|
1182
1306
|
function useGlobalInputBlurListener(f) {
|
|
1183
1307
|
const context = useGlobalInputBlur();
|
|
1184
|
-
(0,
|
|
1308
|
+
(0, import_react28.useEffect)(() => {
|
|
1185
1309
|
context.addListener(f);
|
|
1186
1310
|
return () => {
|
|
1187
1311
|
context.removeListener(f);
|
|
@@ -1193,8 +1317,8 @@ function useGlobalInputBlurTrigger() {
|
|
|
1193
1317
|
}
|
|
1194
1318
|
|
|
1195
1319
|
// src/components/internal/TextInput.tsx
|
|
1196
|
-
var ReadOnlyTextInput = (0,
|
|
1197
|
-
return /* @__PURE__ */
|
|
1320
|
+
var ReadOnlyTextInput = (0, import_react29.forwardRef)(function ReadOnlyTextInput2({ onKeyDown, onFocusChange, value, ...rest }, forwardedRef) {
|
|
1321
|
+
return /* @__PURE__ */ import_react29.default.createElement(
|
|
1198
1322
|
"input",
|
|
1199
1323
|
{
|
|
1200
1324
|
ref: forwardedRef,
|
|
@@ -1205,7 +1329,7 @@ var ReadOnlyTextInput = (0, import_react28.forwardRef)(function ReadOnlyTextInpu
|
|
|
1205
1329
|
}
|
|
1206
1330
|
);
|
|
1207
1331
|
});
|
|
1208
|
-
var ControlledTextInput = (0,
|
|
1332
|
+
var ControlledTextInput = (0, import_react29.forwardRef)(function ControlledTextInput2({
|
|
1209
1333
|
onKeyDown,
|
|
1210
1334
|
value,
|
|
1211
1335
|
onChange,
|
|
@@ -1214,28 +1338,28 @@ var ControlledTextInput = (0, import_react28.forwardRef)(function ControlledText
|
|
|
1214
1338
|
onFocusCapture,
|
|
1215
1339
|
...rest
|
|
1216
1340
|
}, forwardedRef) {
|
|
1217
|
-
const handleBlur = (0,
|
|
1341
|
+
const handleBlur = (0, import_react29.useCallback)(
|
|
1218
1342
|
(event) => {
|
|
1219
1343
|
onBlur?.(event);
|
|
1220
1344
|
onFocusChange?.(false);
|
|
1221
1345
|
},
|
|
1222
1346
|
[onBlur, onFocusChange]
|
|
1223
1347
|
);
|
|
1224
|
-
const handleFocusCapture = (0,
|
|
1348
|
+
const handleFocusCapture = (0, import_react29.useCallback)(
|
|
1225
1349
|
(event) => {
|
|
1226
1350
|
onFocusCapture?.(event);
|
|
1227
1351
|
onFocusChange?.(true);
|
|
1228
1352
|
},
|
|
1229
1353
|
[onFocusCapture, onFocusChange]
|
|
1230
1354
|
);
|
|
1231
|
-
return /* @__PURE__ */
|
|
1355
|
+
return /* @__PURE__ */ import_react29.default.createElement(
|
|
1232
1356
|
"input",
|
|
1233
1357
|
{
|
|
1234
1358
|
ref: forwardedRef,
|
|
1235
1359
|
...rest,
|
|
1236
1360
|
value,
|
|
1237
1361
|
onKeyDown,
|
|
1238
|
-
onChange: (0,
|
|
1362
|
+
onChange: (0, import_react29.useCallback)(
|
|
1239
1363
|
(event) => onChange(event.target.value),
|
|
1240
1364
|
[onChange]
|
|
1241
1365
|
),
|
|
@@ -1244,7 +1368,7 @@ var ControlledTextInput = (0, import_react28.forwardRef)(function ControlledText
|
|
|
1244
1368
|
}
|
|
1245
1369
|
);
|
|
1246
1370
|
});
|
|
1247
|
-
var SubmittableTextInput = (0,
|
|
1371
|
+
var SubmittableTextInput = (0, import_react29.forwardRef)(function SubmittableTextInput2({
|
|
1248
1372
|
onKeyDown,
|
|
1249
1373
|
value,
|
|
1250
1374
|
onSubmit,
|
|
@@ -1255,16 +1379,16 @@ var SubmittableTextInput = (0, import_react28.forwardRef)(function SubmittableTe
|
|
|
1255
1379
|
submitAutomaticallyAfterDelay,
|
|
1256
1380
|
...rest
|
|
1257
1381
|
}, forwardedRef) {
|
|
1258
|
-
const ref =
|
|
1259
|
-
const latestValue = (0,
|
|
1382
|
+
const ref = import_react29.default.useRef(null);
|
|
1383
|
+
const latestValue = (0, import_react29.useRef)(value);
|
|
1260
1384
|
latestValue.current = value;
|
|
1261
|
-
const userDidEdit = (0,
|
|
1262
|
-
const isSubmitTriggeredByEscapeKey = (0,
|
|
1263
|
-
const [internalValue, setInternalValue] = (0,
|
|
1264
|
-
(0,
|
|
1385
|
+
const userDidEdit = (0, import_react29.useRef)(false);
|
|
1386
|
+
const isSubmitTriggeredByEscapeKey = (0, import_react29.useRef)(false);
|
|
1387
|
+
const [internalValue, setInternalValue] = (0, import_react29.useState)("");
|
|
1388
|
+
(0, import_react29.useLayoutEffect)(() => {
|
|
1265
1389
|
setInternalValue(value);
|
|
1266
1390
|
}, [value]);
|
|
1267
|
-
const handleSubmit = (0,
|
|
1391
|
+
const handleSubmit = (0, import_react29.useCallback)(() => {
|
|
1268
1392
|
const submissionValue = isSubmitTriggeredByEscapeKey.current ? value : internalValue;
|
|
1269
1393
|
isSubmitTriggeredByEscapeKey.current = false;
|
|
1270
1394
|
if (submissionValue === value && !allowSubmittingWithSameValue)
|
|
@@ -1274,13 +1398,13 @@ var SubmittableTextInput = (0, import_react28.forwardRef)(function SubmittableTe
|
|
|
1274
1398
|
setInternalValue(latestValue.current);
|
|
1275
1399
|
}, [allowSubmittingWithSameValue, value, internalValue, onSubmit]);
|
|
1276
1400
|
useGlobalInputBlurListener(
|
|
1277
|
-
(0,
|
|
1401
|
+
(0, import_react29.useCallback)(() => {
|
|
1278
1402
|
if (ref.current !== document.activeElement)
|
|
1279
1403
|
return;
|
|
1280
1404
|
handleSubmit();
|
|
1281
1405
|
}, [handleSubmit])
|
|
1282
1406
|
);
|
|
1283
|
-
const handleKeyDown = (0,
|
|
1407
|
+
const handleKeyDown = (0, import_react29.useCallback)(
|
|
1284
1408
|
(event) => {
|
|
1285
1409
|
if (event.key === "Enter") {
|
|
1286
1410
|
handleSubmit();
|
|
@@ -1295,14 +1419,14 @@ var SubmittableTextInput = (0, import_react28.forwardRef)(function SubmittableTe
|
|
|
1295
1419
|
},
|
|
1296
1420
|
[onKeyDown, handleSubmit]
|
|
1297
1421
|
);
|
|
1298
|
-
const handleChange = (0,
|
|
1422
|
+
const handleChange = (0, import_react29.useCallback)(
|
|
1299
1423
|
(event) => {
|
|
1300
1424
|
userDidEdit.current = true;
|
|
1301
1425
|
setInternalValue(event.target.value);
|
|
1302
1426
|
},
|
|
1303
1427
|
[]
|
|
1304
1428
|
);
|
|
1305
|
-
const handleBlur = (0,
|
|
1429
|
+
const handleBlur = (0, import_react29.useCallback)(
|
|
1306
1430
|
(event) => {
|
|
1307
1431
|
onBlur?.(event);
|
|
1308
1432
|
onFocusChange?.(false);
|
|
@@ -1310,19 +1434,19 @@ var SubmittableTextInput = (0, import_react28.forwardRef)(function SubmittableTe
|
|
|
1310
1434
|
},
|
|
1311
1435
|
[onBlur, onFocusChange, handleSubmit]
|
|
1312
1436
|
);
|
|
1313
|
-
const handleFocusCapture = (0,
|
|
1437
|
+
const handleFocusCapture = (0, import_react29.useCallback)(
|
|
1314
1438
|
(event) => {
|
|
1315
1439
|
onFocusCapture?.(event);
|
|
1316
1440
|
onFocusChange?.(true);
|
|
1317
1441
|
},
|
|
1318
1442
|
[onFocusCapture, onFocusChange]
|
|
1319
1443
|
);
|
|
1320
|
-
const autoSubmitTimeoutRef = (0,
|
|
1444
|
+
const autoSubmitTimeoutRef = (0, import_react29.useRef)(
|
|
1321
1445
|
null
|
|
1322
1446
|
);
|
|
1323
|
-
const latestHandleSubmit = (0,
|
|
1447
|
+
const latestHandleSubmit = (0, import_react29.useRef)(handleSubmit);
|
|
1324
1448
|
latestHandleSubmit.current = handleSubmit;
|
|
1325
|
-
(0,
|
|
1449
|
+
(0, import_react29.useEffect)(() => {
|
|
1326
1450
|
if (submitAutomaticallyAfterDelay) {
|
|
1327
1451
|
if (autoSubmitTimeoutRef.current) {
|
|
1328
1452
|
clearTimeout(autoSubmitTimeoutRef.current);
|
|
@@ -1339,7 +1463,7 @@ var SubmittableTextInput = (0, import_react28.forwardRef)(function SubmittableTe
|
|
|
1339
1463
|
}
|
|
1340
1464
|
};
|
|
1341
1465
|
}, [internalValue, submitAutomaticallyAfterDelay]);
|
|
1342
|
-
return /* @__PURE__ */
|
|
1466
|
+
return /* @__PURE__ */ import_react29.default.createElement(
|
|
1343
1467
|
"input",
|
|
1344
1468
|
{
|
|
1345
1469
|
ref: (0, import_react_compose_refs.composeRefs)(ref, forwardedRef),
|
|
@@ -1352,13 +1476,13 @@ var SubmittableTextInput = (0, import_react28.forwardRef)(function SubmittableTe
|
|
|
1352
1476
|
}
|
|
1353
1477
|
);
|
|
1354
1478
|
});
|
|
1355
|
-
var TextInput_default = (0,
|
|
1479
|
+
var TextInput_default = (0, import_react29.forwardRef)(function TextInput(props, forwardedRef) {
|
|
1356
1480
|
const commonProps = {
|
|
1357
|
-
onPointerDown: (0,
|
|
1481
|
+
onPointerDown: (0, import_react29.useCallback)(
|
|
1358
1482
|
(event) => event.stopPropagation(),
|
|
1359
1483
|
[]
|
|
1360
1484
|
),
|
|
1361
|
-
onClick: (0,
|
|
1485
|
+
onClick: (0, import_react29.useCallback)(
|
|
1362
1486
|
(event) => event.stopPropagation(),
|
|
1363
1487
|
[]
|
|
1364
1488
|
),
|
|
@@ -1371,19 +1495,19 @@ var TextInput_default = (0, import_react28.forwardRef)(function TextInput(props,
|
|
|
1371
1495
|
...props
|
|
1372
1496
|
};
|
|
1373
1497
|
if ("readOnly" in commonProps) {
|
|
1374
|
-
return /* @__PURE__ */
|
|
1498
|
+
return /* @__PURE__ */ import_react29.default.createElement(ReadOnlyTextInput, { ref: forwardedRef, ...commonProps, readOnly: true });
|
|
1375
1499
|
} else if ("onChange" in commonProps) {
|
|
1376
|
-
return /* @__PURE__ */
|
|
1500
|
+
return /* @__PURE__ */ import_react29.default.createElement(ControlledTextInput, { ref: forwardedRef, ...commonProps });
|
|
1377
1501
|
} else {
|
|
1378
|
-
return /* @__PURE__ */
|
|
1502
|
+
return /* @__PURE__ */ import_react29.default.createElement(SubmittableTextInput, { ref: forwardedRef, ...commonProps });
|
|
1379
1503
|
}
|
|
1380
1504
|
});
|
|
1381
1505
|
|
|
1382
1506
|
// src/components/Popover.tsx
|
|
1383
1507
|
var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"));
|
|
1384
|
-
var
|
|
1385
|
-
var
|
|
1386
|
-
var ContentElement = (0,
|
|
1508
|
+
var import_react30 = __toESM(require("react"));
|
|
1509
|
+
var import_styled_components12 = __toESM(require("styled-components"));
|
|
1510
|
+
var ContentElement = (0, import_styled_components12.default)(PopoverPrimitive.Content)(({ theme, variant }) => ({
|
|
1387
1511
|
borderRadius: 4,
|
|
1388
1512
|
fontSize: 14,
|
|
1389
1513
|
backgroundColor: theme.colors.popover.background,
|
|
@@ -1395,10 +1519,10 @@ var ContentElement = (0, import_styled_components11.default)(PopoverPrimitive.Co
|
|
|
1395
1519
|
...variant === "normal" && { width: "240px" },
|
|
1396
1520
|
zIndex: 1e3
|
|
1397
1521
|
}));
|
|
1398
|
-
var ArrowElement = (0,
|
|
1522
|
+
var ArrowElement = (0, import_styled_components12.default)(PopoverPrimitive.Arrow)(({ theme }) => ({
|
|
1399
1523
|
fill: theme.colors.popover.background
|
|
1400
1524
|
}));
|
|
1401
|
-
var PopoverClose = (0,
|
|
1525
|
+
var PopoverClose = (0, import_styled_components12.default)(PopoverPrimitive.Close)(({ theme }) => ({
|
|
1402
1526
|
all: "unset",
|
|
1403
1527
|
fontFamily: "inherit",
|
|
1404
1528
|
borderRadius: "100%",
|
|
@@ -1428,7 +1552,7 @@ function Popover({
|
|
|
1428
1552
|
onFocusOutside,
|
|
1429
1553
|
onClickClose
|
|
1430
1554
|
}) {
|
|
1431
|
-
return /* @__PURE__ */
|
|
1555
|
+
return /* @__PURE__ */ import_react30.default.createElement(PopoverPrimitive.Root, { open, onOpenChange }, /* @__PURE__ */ import_react30.default.createElement(PopoverPrimitive.Trigger, { asChild: true }, trigger), /* @__PURE__ */ import_react30.default.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ import_react30.default.createElement(
|
|
1432
1556
|
ContentElement,
|
|
1433
1557
|
{
|
|
1434
1558
|
variant,
|
|
@@ -1449,75 +1573,11 @@ function Popover({
|
|
|
1449
1573
|
}
|
|
1450
1574
|
},
|
|
1451
1575
|
children,
|
|
1452
|
-
showArrow && /* @__PURE__ */
|
|
1453
|
-
closable && /* @__PURE__ */
|
|
1576
|
+
showArrow && /* @__PURE__ */ import_react30.default.createElement(ArrowElement, null),
|
|
1577
|
+
closable && /* @__PURE__ */ import_react30.default.createElement(PopoverClose, null, /* @__PURE__ */ import_react30.default.createElement(IconButton, { iconName: "Cross2Icon", onClick: onClickClose }))
|
|
1454
1578
|
)));
|
|
1455
1579
|
}
|
|
1456
1580
|
|
|
1457
|
-
// src/components/Stack.tsx
|
|
1458
|
-
var import_react30 = __toESM(require("react"));
|
|
1459
|
-
var import_styled_components12 = __toESM(require("styled-components"));
|
|
1460
|
-
|
|
1461
|
-
// src/utils/breakpoints.ts
|
|
1462
|
-
function mergeBreakpoints(breakpoints, transform) {
|
|
1463
|
-
const breakpointMap = Array.isArray(breakpoints) ? breakpoints.reduce(
|
|
1464
|
-
(result, item) => {
|
|
1465
|
-
const [key, value] = item;
|
|
1466
|
-
result[key] = result[key] ? { ...result[key], ...value } : value;
|
|
1467
|
-
return result;
|
|
1468
|
-
},
|
|
1469
|
-
{}
|
|
1470
|
-
) : breakpoints;
|
|
1471
|
-
const breakpointList = Object.entries(breakpointMap);
|
|
1472
|
-
const transformedList = breakpointList.sort((a, b) => Number(b[0]) - Number(a[0])).map(([width, value]) => [
|
|
1473
|
-
`@media screen and (max-width: ${width}px)`,
|
|
1474
|
-
transform?.(value) ?? value
|
|
1475
|
-
]);
|
|
1476
|
-
return Object.fromEntries(transformedList);
|
|
1477
|
-
}
|
|
1478
|
-
|
|
1479
|
-
// src/components/Stack.tsx
|
|
1480
|
-
var Element = import_styled_components12.default.div(({ styleProps, breakpoints }) => ({
|
|
1481
|
-
...styleProps,
|
|
1482
|
-
...mergeBreakpoints(breakpoints || [])
|
|
1483
|
-
}));
|
|
1484
|
-
var StackBase = (0, import_react30.forwardRef)(function StackBase2({ id, as, children, separator, breakpoints, tabIndex, href, ...rest }, forwardedRef) {
|
|
1485
|
-
const elements2 = separator ? withSeparatorElements(import_react30.Children.toArray(children), separator) : children;
|
|
1486
|
-
const styleProps = {
|
|
1487
|
-
display: "flex",
|
|
1488
|
-
position: "relative",
|
|
1489
|
-
alignItems: "stretch",
|
|
1490
|
-
...rest
|
|
1491
|
-
};
|
|
1492
|
-
return /* @__PURE__ */ import_react30.default.createElement(
|
|
1493
|
-
Element,
|
|
1494
|
-
{
|
|
1495
|
-
ref: forwardedRef,
|
|
1496
|
-
id,
|
|
1497
|
-
as,
|
|
1498
|
-
styleProps,
|
|
1499
|
-
breakpoints,
|
|
1500
|
-
tabIndex,
|
|
1501
|
-
...href && { href }
|
|
1502
|
-
},
|
|
1503
|
-
elements2
|
|
1504
|
-
);
|
|
1505
|
-
});
|
|
1506
|
-
var VerticalStack = (0, import_react30.memo)(
|
|
1507
|
-
(0, import_react30.forwardRef)(function VStack(props, forwardedRef) {
|
|
1508
|
-
return /* @__PURE__ */ import_react30.default.createElement(StackBase, { ...props, flexDirection: "column", ref: forwardedRef });
|
|
1509
|
-
})
|
|
1510
|
-
);
|
|
1511
|
-
var HorizontalStack = (0, import_react30.memo)(
|
|
1512
|
-
(0, import_react30.forwardRef)(function HStack(props, forwardedRef) {
|
|
1513
|
-
return /* @__PURE__ */ import_react30.default.createElement(StackBase, { ...props, flexDirection: "row", ref: forwardedRef });
|
|
1514
|
-
})
|
|
1515
|
-
);
|
|
1516
|
-
var Stack = {
|
|
1517
|
-
V: VerticalStack,
|
|
1518
|
-
H: HorizontalStack
|
|
1519
|
-
};
|
|
1520
|
-
|
|
1521
1581
|
// src/components/InputField.tsx
|
|
1522
1582
|
var InputFieldContext = (0, import_react31.createContext)({
|
|
1523
1583
|
labelPosition: "end",
|
|
@@ -2053,20 +2113,68 @@ function useDialogContainsElement() {
|
|
|
2053
2113
|
return useDialog().containsElement;
|
|
2054
2114
|
}
|
|
2055
2115
|
|
|
2116
|
+
// src/contexts/FloatingWindowContext.tsx
|
|
2117
|
+
var import_noya_utils6 = require("@noya-app/noya-utils");
|
|
2118
|
+
var import_react33 = __toESM(require("react"));
|
|
2119
|
+
var import_react_dom = require("react-dom");
|
|
2120
|
+
var FloatingWindowContext = (0, import_react33.createContext)(void 0);
|
|
2121
|
+
var CurrentWindowContext = (0, import_react33.createContext)(void 0);
|
|
2122
|
+
var FloatingWindowProvider = ({
|
|
2123
|
+
children
|
|
2124
|
+
}) => {
|
|
2125
|
+
const [windows, setWindows] = (0, import_react33.useState)({});
|
|
2126
|
+
const contextValue = (0, import_react33.useMemo)(() => {
|
|
2127
|
+
const createWindow = (element) => {
|
|
2128
|
+
const id = (0, import_noya_utils6.uuid)();
|
|
2129
|
+
setWindows((windows2) => ({
|
|
2130
|
+
...windows2,
|
|
2131
|
+
[id]: /* @__PURE__ */ import_react33.default.createElement(CurrentWindowContext.Provider, { value: { id } }, element)
|
|
2132
|
+
}));
|
|
2133
|
+
return id;
|
|
2134
|
+
};
|
|
2135
|
+
const closeWindow = (id) => {
|
|
2136
|
+
setWindows((windows2) => {
|
|
2137
|
+
const { [id]: _, ...rest } = windows2;
|
|
2138
|
+
return rest;
|
|
2139
|
+
});
|
|
2140
|
+
};
|
|
2141
|
+
return { createWindow, closeWindow };
|
|
2142
|
+
}, []);
|
|
2143
|
+
return /* @__PURE__ */ import_react33.default.createElement(FloatingWindowContext.Provider, { value: contextValue }, children, Object.entries(windows).map(
|
|
2144
|
+
([id, element]) => (0, import_react_dom.createPortal)(element, document.body, id)
|
|
2145
|
+
));
|
|
2146
|
+
};
|
|
2147
|
+
var useFloatingWindowManager = () => {
|
|
2148
|
+
const context = (0, import_react33.useContext)(FloatingWindowContext);
|
|
2149
|
+
if (!context) {
|
|
2150
|
+
throw new Error(
|
|
2151
|
+
"useFloatingWindow must be used within a FloatingWindowProvider"
|
|
2152
|
+
);
|
|
2153
|
+
}
|
|
2154
|
+
return context;
|
|
2155
|
+
};
|
|
2156
|
+
var useCurrentFloatingWindowInternal = () => {
|
|
2157
|
+
const context = (0, import_react33.useContext)(CurrentWindowContext);
|
|
2158
|
+
if (!context) {
|
|
2159
|
+
throw new Error("useCurrentWindow must be used within a FloatingWindow");
|
|
2160
|
+
}
|
|
2161
|
+
return context;
|
|
2162
|
+
};
|
|
2163
|
+
|
|
2056
2164
|
// src/contexts/DesignSystemConfiguration.tsx
|
|
2057
|
-
var DesignSystemConfigurationContext = (0,
|
|
2058
|
-
var DesignSystemConfigurationProvider = (0,
|
|
2165
|
+
var DesignSystemConfigurationContext = (0, import_react34.createContext)(void 0);
|
|
2166
|
+
var DesignSystemConfigurationProvider = (0, import_react34.memo)(
|
|
2059
2167
|
function DesignSystemConfigurationProvider2({
|
|
2060
2168
|
children,
|
|
2061
2169
|
theme,
|
|
2062
2170
|
platform
|
|
2063
2171
|
}) {
|
|
2064
|
-
const contextValue = (0,
|
|
2065
|
-
return /* @__PURE__ */
|
|
2172
|
+
const contextValue = (0, import_react34.useMemo)(() => ({ platform }), [platform]);
|
|
2173
|
+
return /* @__PURE__ */ import_react34.default.createElement(DesignSystemConfigurationContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react34.default.createElement(import_styled_components15.ThemeProvider, { theme }, /* @__PURE__ */ import_react34.default.createElement(FloatingWindowProvider, null, /* @__PURE__ */ import_react34.default.createElement(DialogProvider, null, /* @__PURE__ */ import_react34.default.createElement(ToastProvider, null, children)))));
|
|
2066
2174
|
}
|
|
2067
2175
|
);
|
|
2068
2176
|
function useDesignSystemConfiguration() {
|
|
2069
|
-
const value = (0,
|
|
2177
|
+
const value = (0, import_react34.useContext)(DesignSystemConfigurationContext);
|
|
2070
2178
|
if (!value) {
|
|
2071
2179
|
throw new Error("Missing DesignSystemConfigurationProvider");
|
|
2072
2180
|
}
|
|
@@ -2077,7 +2185,7 @@ function useDesignSystemTheme() {
|
|
|
2077
2185
|
}
|
|
2078
2186
|
|
|
2079
2187
|
// src/hooks/useHover.ts
|
|
2080
|
-
var
|
|
2188
|
+
var React20 = __toESM(require("react"));
|
|
2081
2189
|
var globalIgnoreEmulatedMouseEvents = false;
|
|
2082
2190
|
var hoverCount = 0;
|
|
2083
2191
|
function setGlobalIgnoreEmulatedMouseEvents() {
|
|
@@ -2107,13 +2215,13 @@ function setupGlobalTouchEvents() {
|
|
|
2107
2215
|
}
|
|
2108
2216
|
function useHover(props = {}) {
|
|
2109
2217
|
const { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
|
|
2110
|
-
const [isHovered, setHovered] =
|
|
2111
|
-
const state =
|
|
2218
|
+
const [isHovered, setHovered] = React20.useState(false);
|
|
2219
|
+
const state = React20.useRef({
|
|
2112
2220
|
isHovered: false,
|
|
2113
2221
|
ignoreEmulatedMouseEvents: false
|
|
2114
2222
|
}).current;
|
|
2115
|
-
|
|
2116
|
-
const hoverProps =
|
|
2223
|
+
React20.useEffect(setupGlobalTouchEvents, []);
|
|
2224
|
+
const hoverProps = React20.useMemo(
|
|
2117
2225
|
function getHoverProps() {
|
|
2118
2226
|
function triggerHoverStart(event, pointerType) {
|
|
2119
2227
|
if (isDisabled || pointerType === "touch" || state.isHovered) {
|
|
@@ -2254,7 +2362,7 @@ var AddElement = (0, import_styled_components16.default)(import_noya_icons3.Plus
|
|
|
2254
2362
|
opacity: 0.85
|
|
2255
2363
|
}
|
|
2256
2364
|
}));
|
|
2257
|
-
var Chip = (0,
|
|
2365
|
+
var Chip = (0, import_react35.memo)(function Chip2({
|
|
2258
2366
|
colorScheme,
|
|
2259
2367
|
children,
|
|
2260
2368
|
deletable,
|
|
@@ -2275,7 +2383,7 @@ var Chip = (0, import_react34.memo)(function Chip2({
|
|
|
2275
2383
|
});
|
|
2276
2384
|
const handleClick = !children && !deletable && addable ? onAdd : onClick;
|
|
2277
2385
|
const color = colorScheme === "primary" ? theme.colors.primary : colorScheme === "secondary" ? theme.colors.secondary : theme.colors.text;
|
|
2278
|
-
return /* @__PURE__ */
|
|
2386
|
+
return /* @__PURE__ */ import_react35.default.createElement(
|
|
2279
2387
|
ChipElement,
|
|
2280
2388
|
{
|
|
2281
2389
|
variant,
|
|
@@ -2287,7 +2395,7 @@ var Chip = (0, import_react34.memo)(function Chip2({
|
|
|
2287
2395
|
isInteractive: !!handleClick,
|
|
2288
2396
|
tabIndex
|
|
2289
2397
|
},
|
|
2290
|
-
addable && /* @__PURE__ */
|
|
2398
|
+
addable && /* @__PURE__ */ import_react35.default.createElement(
|
|
2291
2399
|
AddElement,
|
|
2292
2400
|
{
|
|
2293
2401
|
size: size2,
|
|
@@ -2300,7 +2408,7 @@ var Chip = (0, import_react34.memo)(function Chip2({
|
|
|
2300
2408
|
}
|
|
2301
2409
|
),
|
|
2302
2410
|
children,
|
|
2303
|
-
deletable && /* @__PURE__ */
|
|
2411
|
+
deletable && /* @__PURE__ */ import_react35.default.createElement(
|
|
2304
2412
|
DeleteElement,
|
|
2305
2413
|
{
|
|
2306
2414
|
size: size2,
|
|
@@ -2319,7 +2427,7 @@ var Chip = (0, import_react34.memo)(function Chip2({
|
|
|
2319
2427
|
var import_noya_icons4 = require("@noya-app/noya-icons");
|
|
2320
2428
|
var import_noya_keymap3 = require("@noya-app/noya-keymap");
|
|
2321
2429
|
var RadixContextMenu = __toESM(require("@radix-ui/react-context-menu"));
|
|
2322
|
-
var
|
|
2430
|
+
var import_react36 = __toESM(require("react"));
|
|
2323
2431
|
var import_styled_components17 = __toESM(require("styled-components"));
|
|
2324
2432
|
var SeparatorElement2 = (0, import_styled_components17.default)(RadixContextMenu.Separator)(
|
|
2325
2433
|
styles.separatorStyle
|
|
@@ -2331,7 +2439,7 @@ var CheckboxItemElement2 = (0, import_styled_components17.default)(RadixContextM
|
|
|
2331
2439
|
var StyledItemIndicator2 = (0, import_styled_components17.default)(RadixContextMenu.ItemIndicator)(
|
|
2332
2440
|
styles.itemIndicatorStyle
|
|
2333
2441
|
);
|
|
2334
|
-
var ContextMenuItem2 = (0,
|
|
2442
|
+
var ContextMenuItem2 = (0, import_react36.memo)(function ContextMenuItem3({
|
|
2335
2443
|
value,
|
|
2336
2444
|
children,
|
|
2337
2445
|
onSelect,
|
|
@@ -2342,42 +2450,42 @@ var ContextMenuItem2 = (0, import_react35.memo)(function ContextMenuItem3({
|
|
|
2342
2450
|
items,
|
|
2343
2451
|
shortcut
|
|
2344
2452
|
}) {
|
|
2345
|
-
const handlePointerDown = (0,
|
|
2453
|
+
const handlePointerDown = (0, import_react36.useCallback)(
|
|
2346
2454
|
(event) => event.stopPropagation(),
|
|
2347
2455
|
[]
|
|
2348
2456
|
);
|
|
2349
|
-
const handleSelectItem = (0,
|
|
2457
|
+
const handleSelectItem = (0, import_react36.useCallback)(() => {
|
|
2350
2458
|
if (!value)
|
|
2351
2459
|
return;
|
|
2352
2460
|
onSelect(value);
|
|
2353
2461
|
}, [onSelect, value]);
|
|
2354
2462
|
if (checked) {
|
|
2355
|
-
return /* @__PURE__ */
|
|
2463
|
+
return /* @__PURE__ */ import_react36.default.createElement(
|
|
2356
2464
|
CheckboxItemElement2,
|
|
2357
2465
|
{
|
|
2358
2466
|
checked,
|
|
2359
2467
|
disabled,
|
|
2360
2468
|
onSelect: handleSelectItem
|
|
2361
2469
|
},
|
|
2362
|
-
/* @__PURE__ */
|
|
2470
|
+
/* @__PURE__ */ import_react36.default.createElement(StyledItemIndicator2, null, /* @__PURE__ */ import_react36.default.createElement(import_noya_icons4.CheckIcon, null)),
|
|
2363
2471
|
children
|
|
2364
2472
|
);
|
|
2365
2473
|
}
|
|
2366
|
-
const element = /* @__PURE__ */
|
|
2474
|
+
const element = /* @__PURE__ */ import_react36.default.createElement(
|
|
2367
2475
|
ItemElement2,
|
|
2368
2476
|
{
|
|
2369
2477
|
disabled,
|
|
2370
2478
|
onSelect: handleSelectItem,
|
|
2371
2479
|
onPointerDown: handlePointerDown
|
|
2372
2480
|
},
|
|
2373
|
-
indented && /* @__PURE__ */
|
|
2374
|
-
icon && /* @__PURE__ */
|
|
2481
|
+
indented && /* @__PURE__ */ import_react36.default.createElement(Spacer.Horizontal, { size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET }),
|
|
2482
|
+
icon && /* @__PURE__ */ import_react36.default.createElement(import_react36.default.Fragment, null, icon, /* @__PURE__ */ import_react36.default.createElement(Spacer.Horizontal, { size: 8 })),
|
|
2375
2483
|
children,
|
|
2376
|
-
shortcut && /* @__PURE__ */
|
|
2377
|
-
items && items.length > 0 && /* @__PURE__ */
|
|
2484
|
+
shortcut && /* @__PURE__ */ import_react36.default.createElement(import_react36.default.Fragment, null, /* @__PURE__ */ import_react36.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react36.default.createElement(Spacer.Horizontal, { size: 24 }), /* @__PURE__ */ import_react36.default.createElement(KeyboardShortcut, { shortcut })),
|
|
2485
|
+
items && items.length > 0 && /* @__PURE__ */ import_react36.default.createElement(import_react36.default.Fragment, null, /* @__PURE__ */ import_react36.default.createElement(Spacer.Horizontal, null), /* @__PURE__ */ import_react36.default.createElement(Spacer.Horizontal, { size: 16 }), /* @__PURE__ */ import_react36.default.createElement(import_noya_icons4.ChevronRightIcon, null))
|
|
2378
2486
|
);
|
|
2379
2487
|
if (items && items.length > 0) {
|
|
2380
|
-
return /* @__PURE__ */
|
|
2488
|
+
return /* @__PURE__ */ import_react36.default.createElement(ContextMenuRoot, { isNested: true, items, onSelect }, element);
|
|
2381
2489
|
} else {
|
|
2382
2490
|
return element;
|
|
2383
2491
|
}
|
|
@@ -2395,19 +2503,19 @@ function ContextMenuRoot({
|
|
|
2395
2503
|
const hasCheckedItem = items.some(
|
|
2396
2504
|
(item) => item !== SEPARATOR_ITEM && item.checked
|
|
2397
2505
|
);
|
|
2398
|
-
const keymap = (0,
|
|
2506
|
+
const keymap = (0, import_react36.useMemo)(
|
|
2399
2507
|
() => isNested || shouldBindKeyboardShortcuts === false ? {} : getKeyboardShortcutsForMenuItems(items, onSelect),
|
|
2400
2508
|
[isNested, items, onSelect, shouldBindKeyboardShortcuts]
|
|
2401
2509
|
);
|
|
2402
2510
|
(0, import_noya_keymap3.useKeyboardShortcuts)(keymap);
|
|
2403
|
-
const onPointerDown = (0,
|
|
2511
|
+
const onPointerDown = (0, import_react36.useCallback)((event) => {
|
|
2404
2512
|
event.preventDefault();
|
|
2405
2513
|
}, []);
|
|
2406
2514
|
const RootComponent = isNested ? RadixContextMenu.Sub : RadixContextMenu.Root;
|
|
2407
2515
|
const TriggerComponent = isNested ? RadixContextMenu.SubTrigger : RadixContextMenu.Trigger;
|
|
2408
2516
|
const ContentComponent = isNested ? SubContent4 : Content8;
|
|
2409
|
-
return /* @__PURE__ */
|
|
2410
|
-
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */
|
|
2517
|
+
return /* @__PURE__ */ import_react36.default.createElement(RootComponent, { onOpenChange }, /* @__PURE__ */ import_react36.default.createElement(TriggerComponent, { asChild: true, onPointerDown }, children), /* @__PURE__ */ import_react36.default.createElement(RadixContextMenu.Portal, null, /* @__PURE__ */ import_react36.default.createElement(ContentComponent, null, items.map(
|
|
2518
|
+
(item, index) => item === SEPARATOR_ITEM ? /* @__PURE__ */ import_react36.default.createElement(SeparatorElement2, { key: index }) : /* @__PURE__ */ import_react36.default.createElement(
|
|
2411
2519
|
ContextMenuItem2,
|
|
2412
2520
|
{
|
|
2413
2521
|
key: item.value ?? index,
|
|
@@ -2424,26 +2532,26 @@ function ContextMenuRoot({
|
|
|
2424
2532
|
)
|
|
2425
2533
|
))));
|
|
2426
2534
|
}
|
|
2427
|
-
var ContextMenu = (0,
|
|
2535
|
+
var ContextMenu = (0, import_react36.memo)(ContextMenuRoot);
|
|
2428
2536
|
|
|
2429
2537
|
// src/components/Divider.tsx
|
|
2430
|
-
var
|
|
2538
|
+
var import_react37 = __toESM(require("react"));
|
|
2431
2539
|
var import_styled_components18 = __toESM(require("styled-components"));
|
|
2432
2540
|
var DividerContainer = import_styled_components18.default.div(({ theme, variant = "normal", orientation, overflow = 0 }) => ({
|
|
2433
2541
|
...orientation === "horizontal" ? { height: "1px", minHeight: "1px", margin: `0px -${overflow}px` } : { width: "1px", minWidth: "1px", margin: `-${overflow}px 0px` },
|
|
2434
2542
|
background: variant === "strong" ? theme.colors.dividerStrong : variant === "subtle" ? theme.colors.dividerSubtle : theme.colors.divider,
|
|
2435
2543
|
alignSelf: "stretch"
|
|
2436
2544
|
}));
|
|
2437
|
-
var Divider = (0,
|
|
2438
|
-
return /* @__PURE__ */
|
|
2545
|
+
var Divider = (0, import_react37.memo)(function Divider2(props) {
|
|
2546
|
+
return /* @__PURE__ */ import_react37.default.createElement(DividerContainer, { orientation: "horizontal", ...props });
|
|
2439
2547
|
});
|
|
2440
|
-
var DividerVertical = (0,
|
|
2441
|
-
return /* @__PURE__ */
|
|
2548
|
+
var DividerVertical = (0, import_react37.memo)(function DividerVertical2(props) {
|
|
2549
|
+
return /* @__PURE__ */ import_react37.default.createElement(DividerContainer, { orientation: "vertical", ...props });
|
|
2442
2550
|
});
|
|
2443
2551
|
|
|
2444
2552
|
// src/components/DraggableMenuButton.tsx
|
|
2445
2553
|
var import_noya_icons5 = require("@noya-app/noya-icons");
|
|
2446
|
-
var
|
|
2554
|
+
var import_react38 = __toESM(require("react"));
|
|
2447
2555
|
var import_styled_components19 = __toESM(require("styled-components"));
|
|
2448
2556
|
var DotButtonElement = import_styled_components19.default.div(({ theme }) => ({
|
|
2449
2557
|
cursor: "pointer",
|
|
@@ -2463,15 +2571,15 @@ var TriggerElement = import_styled_components19.default.div({
|
|
|
2463
2571
|
pointerEvents: "none",
|
|
2464
2572
|
height: "15px"
|
|
2465
2573
|
});
|
|
2466
|
-
var DraggableMenuButton = (0,
|
|
2574
|
+
var DraggableMenuButton = (0, import_react38.memo)(function DraggableMenuButton2({
|
|
2467
2575
|
items,
|
|
2468
2576
|
onSelect,
|
|
2469
2577
|
isVisible = true
|
|
2470
2578
|
}) {
|
|
2471
2579
|
const color = useDesignSystemTheme().colors.icon;
|
|
2472
|
-
const [open, setOpen] = (0,
|
|
2473
|
-
const [downPosition, setDownPosition] =
|
|
2474
|
-
const handlePointerDownCapture = (0,
|
|
2580
|
+
const [open, setOpen] = (0, import_react38.useState)(false);
|
|
2581
|
+
const [downPosition, setDownPosition] = import_react38.default.useState(null);
|
|
2582
|
+
const handlePointerDownCapture = (0, import_react38.useCallback)(
|
|
2475
2583
|
(event) => {
|
|
2476
2584
|
if (open) {
|
|
2477
2585
|
setDownPosition(null);
|
|
@@ -2484,7 +2592,7 @@ var DraggableMenuButton = (0, import_react37.memo)(function DraggableMenuButton2
|
|
|
2484
2592
|
},
|
|
2485
2593
|
[open]
|
|
2486
2594
|
);
|
|
2487
|
-
const handlePointerUp = (0,
|
|
2595
|
+
const handlePointerUp = (0, import_react38.useCallback)(
|
|
2488
2596
|
(event) => {
|
|
2489
2597
|
if (open || !downPosition) {
|
|
2490
2598
|
setDownPosition(null);
|
|
@@ -2500,14 +2608,14 @@ var DraggableMenuButton = (0, import_react37.memo)(function DraggableMenuButton2
|
|
|
2500
2608
|
},
|
|
2501
2609
|
[downPosition, open]
|
|
2502
2610
|
);
|
|
2503
|
-
const handleOpenChange = (0,
|
|
2611
|
+
const handleOpenChange = (0, import_react38.useCallback)(
|
|
2504
2612
|
(isOpen) => {
|
|
2505
2613
|
if (!isOpen)
|
|
2506
2614
|
setOpen(false);
|
|
2507
2615
|
},
|
|
2508
2616
|
[setOpen]
|
|
2509
2617
|
);
|
|
2510
|
-
return /* @__PURE__ */
|
|
2618
|
+
return /* @__PURE__ */ import_react38.default.createElement(
|
|
2511
2619
|
DotButtonElement,
|
|
2512
2620
|
{
|
|
2513
2621
|
onPointerDownCapture: handlePointerDownCapture,
|
|
@@ -2517,7 +2625,7 @@ var DraggableMenuButton = (0, import_react37.memo)(function DraggableMenuButton2
|
|
|
2517
2625
|
event.preventDefault();
|
|
2518
2626
|
}
|
|
2519
2627
|
},
|
|
2520
|
-
items && onSelect ? /* @__PURE__ */
|
|
2628
|
+
items && onSelect ? /* @__PURE__ */ import_react38.default.createElement(
|
|
2521
2629
|
DropdownMenu,
|
|
2522
2630
|
{
|
|
2523
2631
|
open,
|
|
@@ -2526,13 +2634,13 @@ var DraggableMenuButton = (0, import_react37.memo)(function DraggableMenuButton2
|
|
|
2526
2634
|
onSelect,
|
|
2527
2635
|
shouldBindKeyboardShortcuts: false
|
|
2528
2636
|
},
|
|
2529
|
-
/* @__PURE__ */
|
|
2637
|
+
/* @__PURE__ */ import_react38.default.createElement(TriggerElement, null, /* @__PURE__ */ import_react38.default.createElement(
|
|
2530
2638
|
import_noya_icons5.DragHandleDots2Icon,
|
|
2531
2639
|
{
|
|
2532
2640
|
color: isVisible || open ? color : "transparent"
|
|
2533
2641
|
}
|
|
2534
2642
|
))
|
|
2535
|
-
) : /* @__PURE__ */
|
|
2643
|
+
) : /* @__PURE__ */ import_react38.default.createElement(
|
|
2536
2644
|
import_noya_icons5.DragHandleDots2Icon,
|
|
2537
2645
|
{
|
|
2538
2646
|
color: isVisible || open ? color : "transparent"
|
|
@@ -2542,7 +2650,7 @@ var DraggableMenuButton = (0, import_react37.memo)(function DraggableMenuButton2
|
|
|
2542
2650
|
});
|
|
2543
2651
|
|
|
2544
2652
|
// src/components/FillInputField.tsx
|
|
2545
|
-
var
|
|
2653
|
+
var import_react42 = __toESM(require("react"));
|
|
2546
2654
|
var import_styled_components21 = __toESM(require("styled-components"));
|
|
2547
2655
|
|
|
2548
2656
|
// ../noya-file-format/src/types.ts
|
|
@@ -2868,26 +2976,26 @@ var ClassValue = /* @__PURE__ */ ((ClassValue2) => {
|
|
|
2868
2976
|
})(ClassValue || {});
|
|
2869
2977
|
|
|
2870
2978
|
// src/components/FillPreviewBackground.tsx
|
|
2871
|
-
var
|
|
2979
|
+
var import_react41 = __toESM(require("react"));
|
|
2872
2980
|
var import_styled_components20 = __toESM(require("styled-components"));
|
|
2873
2981
|
|
|
2874
2982
|
// src/contexts/ImageDataContext.tsx
|
|
2875
|
-
var
|
|
2876
|
-
var ImageDataContext = (0,
|
|
2983
|
+
var import_react39 = __toESM(require("react"));
|
|
2984
|
+
var ImageDataContext = (0, import_react39.createContext)(
|
|
2877
2985
|
void 0
|
|
2878
2986
|
);
|
|
2879
|
-
var ImageDataProvider = (0,
|
|
2987
|
+
var ImageDataProvider = (0, import_react39.memo)(function ImageDataProvider2({
|
|
2880
2988
|
children,
|
|
2881
2989
|
getImageData
|
|
2882
2990
|
}) {
|
|
2883
|
-
const contextValue = (0,
|
|
2991
|
+
const contextValue = (0, import_react39.useMemo)(
|
|
2884
2992
|
() => ({ getImageData: getImageData ?? (() => void 0) }),
|
|
2885
2993
|
[getImageData]
|
|
2886
2994
|
);
|
|
2887
|
-
return /* @__PURE__ */
|
|
2995
|
+
return /* @__PURE__ */ import_react39.default.createElement(ImageDataContext.Provider, { value: contextValue }, children);
|
|
2888
2996
|
});
|
|
2889
2997
|
function useImageData(ref) {
|
|
2890
|
-
const value = (0,
|
|
2998
|
+
const value = (0, import_react39.useContext)(ImageDataContext);
|
|
2891
2999
|
if (!value) {
|
|
2892
3000
|
throw new Error("Missing ImageDataProvider");
|
|
2893
3001
|
}
|
|
@@ -2895,15 +3003,15 @@ function useImageData(ref) {
|
|
|
2895
3003
|
}
|
|
2896
3004
|
|
|
2897
3005
|
// src/hooks/useObjectURL.ts
|
|
2898
|
-
var
|
|
3006
|
+
var import_react40 = require("react");
|
|
2899
3007
|
function useObjectURL(object) {
|
|
2900
|
-
const objectURL = (0,
|
|
3008
|
+
const objectURL = (0, import_react40.useMemo)(() => {
|
|
2901
3009
|
if (object instanceof Blob)
|
|
2902
3010
|
return URL.createObjectURL(object);
|
|
2903
3011
|
const bytes = object instanceof Uint8Array ? object : object !== void 0 ? new Uint8Array(object) : new Uint8Array();
|
|
2904
3012
|
return URL.createObjectURL(new Blob([bytes]));
|
|
2905
3013
|
}, [object]);
|
|
2906
|
-
(0,
|
|
3014
|
+
(0, import_react40.useLayoutEffect)(() => {
|
|
2907
3015
|
return () => URL.revokeObjectURL(objectURL);
|
|
2908
3016
|
}, [objectURL]);
|
|
2909
3017
|
return objectURL;
|
|
@@ -2959,9 +3067,9 @@ var Background = import_styled_components20.default.span(({ background }) => ({
|
|
|
2959
3067
|
position: "absolute",
|
|
2960
3068
|
inset: 0
|
|
2961
3069
|
}));
|
|
2962
|
-
var HorizontalDotsBackground = (0,
|
|
3070
|
+
var HorizontalDotsBackground = (0, import_react41.memo)(function HorizontalDotsBackground2() {
|
|
2963
3071
|
const { inputBackground, placeholderDots } = (0, import_styled_components20.useTheme)().colors;
|
|
2964
|
-
const background = (0,
|
|
3072
|
+
const background = (0, import_react41.useMemo)(
|
|
2965
3073
|
() => [
|
|
2966
3074
|
`center url("data:image/svg+xml;utf8,${dotsHorizontalSvg(
|
|
2967
3075
|
placeholderDots
|
|
@@ -2970,7 +3078,7 @@ var HorizontalDotsBackground = (0, import_react40.memo)(function HorizontalDotsB
|
|
|
2970
3078
|
].join(","),
|
|
2971
3079
|
[inputBackground, placeholderDots]
|
|
2972
3080
|
);
|
|
2973
|
-
return /* @__PURE__ */
|
|
3081
|
+
return /* @__PURE__ */ import_react41.default.createElement(Background, { background });
|
|
2974
3082
|
});
|
|
2975
3083
|
function getPatternSizeAndPosition(fillType, tileScale) {
|
|
2976
3084
|
switch (fillType) {
|
|
@@ -2984,7 +3092,7 @@ function getPatternSizeAndPosition(fillType, tileScale) {
|
|
|
2984
3092
|
return "center / 100% 100%";
|
|
2985
3093
|
}
|
|
2986
3094
|
}
|
|
2987
|
-
var PatternPreviewBackground = (0,
|
|
3095
|
+
var PatternPreviewBackground = (0, import_react41.memo)(function PatternPreviewBackground2({
|
|
2988
3096
|
fillType,
|
|
2989
3097
|
tileScale,
|
|
2990
3098
|
imageRef
|
|
@@ -2992,7 +3100,7 @@ var PatternPreviewBackground = (0, import_react40.memo)(function PatternPreviewB
|
|
|
2992
3100
|
const image = useImageData(imageRef);
|
|
2993
3101
|
const url = useObjectURL(image);
|
|
2994
3102
|
const size2 = getPatternSizeAndPosition(fillType, tileScale);
|
|
2995
|
-
const background = (0,
|
|
3103
|
+
const background = (0, import_react41.useMemo)(
|
|
2996
3104
|
() => [
|
|
2997
3105
|
size2,
|
|
2998
3106
|
`url(${url})`,
|
|
@@ -3000,37 +3108,37 @@ var PatternPreviewBackground = (0, import_react40.memo)(function PatternPreviewB
|
|
|
3000
3108
|
].join(" "),
|
|
3001
3109
|
[fillType, size2, url]
|
|
3002
3110
|
);
|
|
3003
|
-
return /* @__PURE__ */
|
|
3111
|
+
return /* @__PURE__ */ import_react41.default.createElement(Background, { background });
|
|
3004
3112
|
});
|
|
3005
|
-
var ColorPreviewBackground = (0,
|
|
3113
|
+
var ColorPreviewBackground = (0, import_react41.memo)(function ColorPreviewBackground2({
|
|
3006
3114
|
color
|
|
3007
3115
|
}) {
|
|
3008
|
-
const background = (0,
|
|
3009
|
-
return /* @__PURE__ */
|
|
3116
|
+
const background = (0, import_react41.useMemo)(() => sketchColorToRgbaString(color), [color]);
|
|
3117
|
+
return /* @__PURE__ */ import_react41.default.createElement(Background, { background });
|
|
3010
3118
|
});
|
|
3011
|
-
var GradientPreviewBackground = (0,
|
|
3119
|
+
var GradientPreviewBackground = (0, import_react41.memo)(function GradientPreviewBackground2({
|
|
3012
3120
|
gradient
|
|
3013
3121
|
}) {
|
|
3014
|
-
const background = (0,
|
|
3122
|
+
const background = (0, import_react41.useMemo)(
|
|
3015
3123
|
() => getGradientBackground(gradient.stops, gradient.gradientType, 180),
|
|
3016
3124
|
[gradient.gradientType, gradient.stops]
|
|
3017
3125
|
);
|
|
3018
|
-
return /* @__PURE__ */
|
|
3126
|
+
return /* @__PURE__ */ import_react41.default.createElement(Background, { background });
|
|
3019
3127
|
});
|
|
3020
|
-
var FillPreviewBackground = (0,
|
|
3128
|
+
var FillPreviewBackground = (0, import_react41.memo)(function FillPreviewBackground2({
|
|
3021
3129
|
value
|
|
3022
3130
|
}) {
|
|
3023
3131
|
if (!value)
|
|
3024
|
-
return /* @__PURE__ */
|
|
3132
|
+
return /* @__PURE__ */ import_react41.default.createElement(HorizontalDotsBackground, null);
|
|
3025
3133
|
switch (value._class) {
|
|
3026
3134
|
case "color":
|
|
3027
|
-
return /* @__PURE__ */
|
|
3135
|
+
return /* @__PURE__ */ import_react41.default.createElement(ColorPreviewBackground, { color: value });
|
|
3028
3136
|
case "gradient":
|
|
3029
|
-
return /* @__PURE__ */
|
|
3137
|
+
return /* @__PURE__ */ import_react41.default.createElement(GradientPreviewBackground, { gradient: value });
|
|
3030
3138
|
case "pattern":
|
|
3031
3139
|
if (!value.image)
|
|
3032
3140
|
return null;
|
|
3033
|
-
return /* @__PURE__ */
|
|
3141
|
+
return /* @__PURE__ */ import_react41.default.createElement(
|
|
3034
3142
|
PatternPreviewBackground,
|
|
3035
3143
|
{
|
|
3036
3144
|
fillType: value.patternFillType,
|
|
@@ -3060,16 +3168,285 @@ var Container = import_styled_components21.default.button(
|
|
|
3060
3168
|
flex
|
|
3061
3169
|
})
|
|
3062
3170
|
);
|
|
3063
|
-
var FillInputField = (0,
|
|
3064
|
-
(0,
|
|
3065
|
-
return /* @__PURE__ */
|
|
3171
|
+
var FillInputField = (0, import_react42.memo)(
|
|
3172
|
+
(0, import_react42.forwardRef)(function FillInputField2({ id, value, ...rest }, ref) {
|
|
3173
|
+
return /* @__PURE__ */ import_react42.default.createElement(Container, { ref, id, ...rest }, /* @__PURE__ */ import_react42.default.createElement(FillPreviewBackground, { value }));
|
|
3066
3174
|
})
|
|
3067
3175
|
);
|
|
3068
3176
|
|
|
3177
|
+
// src/components/FloatingWindow.tsx
|
|
3178
|
+
var import_react43 = __toESM(require("react"));
|
|
3179
|
+
var styles2 = {
|
|
3180
|
+
noSelect: {
|
|
3181
|
+
userSelect: "none",
|
|
3182
|
+
WebkitUserSelect: "none",
|
|
3183
|
+
MozUserSelect: "none",
|
|
3184
|
+
msUserSelect: "none"
|
|
3185
|
+
},
|
|
3186
|
+
windowWrapper: {
|
|
3187
|
+
position: "absolute",
|
|
3188
|
+
backgroundColor: "white",
|
|
3189
|
+
borderRadius: "4px",
|
|
3190
|
+
boxShadow: "0 2px 10px rgba(0, 0, 0, 0.1)",
|
|
3191
|
+
overflow: "hidden"
|
|
3192
|
+
// backdropFilter: "blur(10px)",
|
|
3193
|
+
},
|
|
3194
|
+
toolbar: {
|
|
3195
|
+
display: "flex",
|
|
3196
|
+
alignItems: "center",
|
|
3197
|
+
padding: "8px 12px",
|
|
3198
|
+
cursor: "move",
|
|
3199
|
+
userSelect: "none",
|
|
3200
|
+
minHeight: "43px"
|
|
3201
|
+
},
|
|
3202
|
+
closeButton: {
|
|
3203
|
+
background: "none",
|
|
3204
|
+
border: "none",
|
|
3205
|
+
fontSize: "16px",
|
|
3206
|
+
cursor: "pointer"
|
|
3207
|
+
},
|
|
3208
|
+
content: {
|
|
3209
|
+
padding: "12px",
|
|
3210
|
+
height: "calc(100% - 44px)",
|
|
3211
|
+
// Adjust based on toolbar height
|
|
3212
|
+
overflow: "auto",
|
|
3213
|
+
display: "flex",
|
|
3214
|
+
flexDirection: "column"
|
|
3215
|
+
},
|
|
3216
|
+
resizeHandle: {
|
|
3217
|
+
position: "absolute"
|
|
3218
|
+
}
|
|
3219
|
+
};
|
|
3220
|
+
var resizeHandlePositions = {
|
|
3221
|
+
top: { top: "0", left: "0", right: "0", height: "5px", cursor: "ns-resize" },
|
|
3222
|
+
right: {
|
|
3223
|
+
top: "0",
|
|
3224
|
+
right: "0",
|
|
3225
|
+
bottom: "0",
|
|
3226
|
+
width: "5px",
|
|
3227
|
+
cursor: "ew-resize"
|
|
3228
|
+
},
|
|
3229
|
+
bottom: {
|
|
3230
|
+
bottom: "0",
|
|
3231
|
+
left: "0",
|
|
3232
|
+
right: "0",
|
|
3233
|
+
height: "5px",
|
|
3234
|
+
cursor: "ns-resize"
|
|
3235
|
+
},
|
|
3236
|
+
left: { top: "0", left: "0", bottom: "0", width: "5px", cursor: "ew-resize" },
|
|
3237
|
+
topLeft: {
|
|
3238
|
+
top: "0",
|
|
3239
|
+
left: "0",
|
|
3240
|
+
width: "10px",
|
|
3241
|
+
height: "10px",
|
|
3242
|
+
cursor: "nwse-resize"
|
|
3243
|
+
},
|
|
3244
|
+
topRight: {
|
|
3245
|
+
top: "0",
|
|
3246
|
+
right: "0",
|
|
3247
|
+
width: "10px",
|
|
3248
|
+
height: "10px",
|
|
3249
|
+
cursor: "nesw-resize"
|
|
3250
|
+
},
|
|
3251
|
+
bottomLeft: {
|
|
3252
|
+
bottom: "0",
|
|
3253
|
+
left: "0",
|
|
3254
|
+
width: "10px",
|
|
3255
|
+
height: "10px",
|
|
3256
|
+
cursor: "nesw-resize"
|
|
3257
|
+
},
|
|
3258
|
+
bottomRight: {
|
|
3259
|
+
bottom: "0",
|
|
3260
|
+
right: "0",
|
|
3261
|
+
width: "10px",
|
|
3262
|
+
height: "10px",
|
|
3263
|
+
cursor: "nwse-resize"
|
|
3264
|
+
}
|
|
3265
|
+
};
|
|
3266
|
+
function defaultRenderToolbar({
|
|
3267
|
+
title,
|
|
3268
|
+
toolbarContent,
|
|
3269
|
+
onClose
|
|
3270
|
+
}) {
|
|
3271
|
+
return /* @__PURE__ */ import_react43.default.createElement(import_react43.default.Fragment, null, /* @__PURE__ */ import_react43.default.createElement(Small, { flex: "1", fontWeight: "500", color: "text" }, title), toolbarContent, /* @__PURE__ */ import_react43.default.createElement(
|
|
3272
|
+
IconButton,
|
|
3273
|
+
{
|
|
3274
|
+
iconName: "Cross3Icon",
|
|
3275
|
+
onClick: onClose,
|
|
3276
|
+
style: {
|
|
3277
|
+
marginLeft: "6px",
|
|
3278
|
+
marginRight: "-6px"
|
|
3279
|
+
}
|
|
3280
|
+
}
|
|
3281
|
+
));
|
|
3282
|
+
}
|
|
3283
|
+
var FloatingWindow = ({
|
|
3284
|
+
title,
|
|
3285
|
+
onClose,
|
|
3286
|
+
children,
|
|
3287
|
+
initialWidth = 300,
|
|
3288
|
+
initialHeight = 200,
|
|
3289
|
+
initialX = 100,
|
|
3290
|
+
initialY = 100,
|
|
3291
|
+
minWidth = 200,
|
|
3292
|
+
minHeight = 100,
|
|
3293
|
+
toolbarContent,
|
|
3294
|
+
renderToolbar = defaultRenderToolbar
|
|
3295
|
+
}) => {
|
|
3296
|
+
const [position, setPosition] = (0, import_react43.useState)({ x: initialX, y: initialY });
|
|
3297
|
+
const [size2, setSize] = (0, import_react43.useState)({
|
|
3298
|
+
width: initialWidth,
|
|
3299
|
+
height: initialHeight
|
|
3300
|
+
});
|
|
3301
|
+
const [isDragging, setIsDragging] = (0, import_react43.useState)(false);
|
|
3302
|
+
const [isResizing, setIsResizing] = (0, import_react43.useState)(false);
|
|
3303
|
+
const [dragOffset, setDragOffset] = (0, import_react43.useState)({ x: 0, y: 0 });
|
|
3304
|
+
const [resizeDirection, setResizeDirection] = (0, import_react43.useState)(null);
|
|
3305
|
+
const wrapperRef = (0, import_react43.useRef)(null);
|
|
3306
|
+
const toggleGlobalTextSelection = (disable) => {
|
|
3307
|
+
if (disable) {
|
|
3308
|
+
document.body.style.userSelect = "none";
|
|
3309
|
+
} else {
|
|
3310
|
+
document.body.style.userSelect = "";
|
|
3311
|
+
}
|
|
3312
|
+
};
|
|
3313
|
+
const handleMouseDown = (0, import_react43.useCallback)((e) => {
|
|
3314
|
+
if (!wrapperRef.current)
|
|
3315
|
+
return;
|
|
3316
|
+
const rect = wrapperRef.current.getBoundingClientRect();
|
|
3317
|
+
setDragOffset({
|
|
3318
|
+
x: e.clientX - rect.left,
|
|
3319
|
+
y: e.clientY - rect.top
|
|
3320
|
+
});
|
|
3321
|
+
setIsDragging(true);
|
|
3322
|
+
}, []);
|
|
3323
|
+
const handleResizeStart = (0, import_react43.useCallback)(
|
|
3324
|
+
(direction) => (e) => {
|
|
3325
|
+
e.stopPropagation();
|
|
3326
|
+
setIsResizing(true);
|
|
3327
|
+
setResizeDirection(direction);
|
|
3328
|
+
toggleGlobalTextSelection(true);
|
|
3329
|
+
},
|
|
3330
|
+
[]
|
|
3331
|
+
);
|
|
3332
|
+
const handleMouseMove = (0, import_react43.useCallback)(
|
|
3333
|
+
(e) => {
|
|
3334
|
+
if (isDragging) {
|
|
3335
|
+
setPosition({
|
|
3336
|
+
x: e.clientX - dragOffset.x,
|
|
3337
|
+
y: e.clientY - dragOffset.y
|
|
3338
|
+
});
|
|
3339
|
+
} else if (isResizing && resizeDirection) {
|
|
3340
|
+
const rect = wrapperRef.current.getBoundingClientRect();
|
|
3341
|
+
let newWidth = size2.width;
|
|
3342
|
+
let newHeight = size2.height;
|
|
3343
|
+
let newX = position.x;
|
|
3344
|
+
let newY = position.y;
|
|
3345
|
+
if (/right/i.test(resizeDirection)) {
|
|
3346
|
+
newWidth = Math.max(e.clientX - rect.left, minWidth);
|
|
3347
|
+
}
|
|
3348
|
+
if (/bottom/i.test(resizeDirection)) {
|
|
3349
|
+
newHeight = Math.max(e.clientY - rect.top, minHeight);
|
|
3350
|
+
}
|
|
3351
|
+
if (/left/i.test(resizeDirection)) {
|
|
3352
|
+
const potentialWidth = rect.right - e.clientX;
|
|
3353
|
+
if (potentialWidth <= minWidth) {
|
|
3354
|
+
newWidth = minWidth;
|
|
3355
|
+
newX = rect.right - minWidth;
|
|
3356
|
+
} else {
|
|
3357
|
+
newWidth = potentialWidth;
|
|
3358
|
+
newX = e.clientX;
|
|
3359
|
+
}
|
|
3360
|
+
}
|
|
3361
|
+
if (/top/i.test(resizeDirection)) {
|
|
3362
|
+
const potentialHeight = rect.bottom - e.clientY;
|
|
3363
|
+
if (potentialHeight <= minHeight) {
|
|
3364
|
+
newHeight = minHeight;
|
|
3365
|
+
newY = rect.bottom - minHeight;
|
|
3366
|
+
} else {
|
|
3367
|
+
newHeight = potentialHeight;
|
|
3368
|
+
newY = e.clientY;
|
|
3369
|
+
}
|
|
3370
|
+
}
|
|
3371
|
+
setSize({ width: newWidth, height: newHeight });
|
|
3372
|
+
setPosition({ x: newX, y: newY });
|
|
3373
|
+
}
|
|
3374
|
+
},
|
|
3375
|
+
[
|
|
3376
|
+
isDragging,
|
|
3377
|
+
isResizing,
|
|
3378
|
+
dragOffset,
|
|
3379
|
+
resizeDirection,
|
|
3380
|
+
size2,
|
|
3381
|
+
position,
|
|
3382
|
+
minWidth,
|
|
3383
|
+
minHeight
|
|
3384
|
+
]
|
|
3385
|
+
);
|
|
3386
|
+
const handleMouseUp = (0, import_react43.useCallback)((e) => {
|
|
3387
|
+
setIsDragging(false);
|
|
3388
|
+
setIsResizing(false);
|
|
3389
|
+
setResizeDirection(null);
|
|
3390
|
+
toggleGlobalTextSelection(false);
|
|
3391
|
+
}, []);
|
|
3392
|
+
import_react43.default.useEffect(() => {
|
|
3393
|
+
document.addEventListener("mousemove", handleMouseMove);
|
|
3394
|
+
document.addEventListener("mouseup", handleMouseUp);
|
|
3395
|
+
return () => {
|
|
3396
|
+
document.removeEventListener("mousemove", handleMouseMove);
|
|
3397
|
+
document.removeEventListener("mouseup", handleMouseUp);
|
|
3398
|
+
};
|
|
3399
|
+
}, [handleMouseMove, handleMouseUp]);
|
|
3400
|
+
const theme = useDesignSystemTheme();
|
|
3401
|
+
const floatingWindowManager = useFloatingWindowManager();
|
|
3402
|
+
const currentFloatingWindow = useCurrentFloatingWindowInternal();
|
|
3403
|
+
const handleClose = (0, import_react43.useCallback)(() => {
|
|
3404
|
+
if (onClose)
|
|
3405
|
+
onClose();
|
|
3406
|
+
floatingWindowManager.closeWindow(currentFloatingWindow.id);
|
|
3407
|
+
}, [currentFloatingWindow.id, floatingWindowManager, onClose]);
|
|
3408
|
+
return /* @__PURE__ */ import_react43.default.createElement(
|
|
3409
|
+
"div",
|
|
3410
|
+
{
|
|
3411
|
+
ref: wrapperRef,
|
|
3412
|
+
style: {
|
|
3413
|
+
...styles2.windowWrapper,
|
|
3414
|
+
top: position.y,
|
|
3415
|
+
left: position.x,
|
|
3416
|
+
width: size2.width,
|
|
3417
|
+
height: size2.height,
|
|
3418
|
+
outline: `1px solid ${theme.colors.divider}`,
|
|
3419
|
+
backgroundColor: theme.colors.canvas.background
|
|
3420
|
+
}
|
|
3421
|
+
},
|
|
3422
|
+
/* @__PURE__ */ import_react43.default.createElement(
|
|
3423
|
+
"div",
|
|
3424
|
+
{
|
|
3425
|
+
style: {
|
|
3426
|
+
...styles2.toolbar,
|
|
3427
|
+
backgroundColor: theme.colors.sidebar.background
|
|
3428
|
+
},
|
|
3429
|
+
onMouseDown: handleMouseDown
|
|
3430
|
+
},
|
|
3431
|
+
renderToolbar({ title, toolbarContent, onClose: handleClose })
|
|
3432
|
+
),
|
|
3433
|
+
/* @__PURE__ */ import_react43.default.createElement(Divider, null),
|
|
3434
|
+
/* @__PURE__ */ import_react43.default.createElement("div", { style: styles2.content }, children),
|
|
3435
|
+
Object.entries(resizeHandlePositions).map(([direction, style3]) => /* @__PURE__ */ import_react43.default.createElement(
|
|
3436
|
+
"div",
|
|
3437
|
+
{
|
|
3438
|
+
key: direction,
|
|
3439
|
+
style: { ...styles2.resizeHandle, ...style3 },
|
|
3440
|
+
onMouseDown: handleResizeStart(direction)
|
|
3441
|
+
}
|
|
3442
|
+
))
|
|
3443
|
+
);
|
|
3444
|
+
};
|
|
3445
|
+
|
|
3069
3446
|
// src/components/GradientPicker.tsx
|
|
3070
3447
|
var import_noya_colorpicker2 = require("@noya-app/noya-colorpicker");
|
|
3071
|
-
var
|
|
3072
|
-
var GradientPicker = (0,
|
|
3448
|
+
var import_react44 = __toESM(require("react"));
|
|
3449
|
+
var GradientPicker = (0, import_react44.memo)(function GradientPicker2({
|
|
3073
3450
|
value,
|
|
3074
3451
|
selectedStop,
|
|
3075
3452
|
onChangeColor,
|
|
@@ -3078,7 +3455,7 @@ var GradientPicker = (0, import_react42.memo)(function GradientPicker2({
|
|
|
3078
3455
|
onDelete,
|
|
3079
3456
|
onSelectStop
|
|
3080
3457
|
}) {
|
|
3081
|
-
const colorModel = (0,
|
|
3458
|
+
const colorModel = (0, import_react44.useMemo)(
|
|
3082
3459
|
() => ({
|
|
3083
3460
|
defaultColor: { r: 0, g: 0, b: 0, a: 1 },
|
|
3084
3461
|
toHsva: import_noya_colorpicker2.rgbaToHsva,
|
|
@@ -3087,30 +3464,30 @@ var GradientPicker = (0, import_react42.memo)(function GradientPicker2({
|
|
|
3087
3464
|
}),
|
|
3088
3465
|
[]
|
|
3089
3466
|
);
|
|
3090
|
-
const rgbaColor = (0,
|
|
3467
|
+
const rgbaColor = (0, import_react44.useMemo)(
|
|
3091
3468
|
() => sketchColorToRgba(value[selectedStop].color),
|
|
3092
3469
|
[value, selectedStop]
|
|
3093
3470
|
);
|
|
3094
|
-
const handleChangeColor = (0,
|
|
3471
|
+
const handleChangeColor = (0, import_react44.useCallback)(
|
|
3095
3472
|
(value2) => {
|
|
3096
3473
|
onChangeColor(rgbaToSketchColor(value2));
|
|
3097
3474
|
},
|
|
3098
3475
|
[onChangeColor]
|
|
3099
3476
|
);
|
|
3100
|
-
const handleAddGradientStop = (0,
|
|
3477
|
+
const handleAddGradientStop = (0, import_react44.useCallback)(
|
|
3101
3478
|
(value2, position) => {
|
|
3102
3479
|
onAdd(rgbaToSketchColor(value2), position);
|
|
3103
3480
|
},
|
|
3104
3481
|
[onAdd]
|
|
3105
3482
|
);
|
|
3106
|
-
return /* @__PURE__ */
|
|
3483
|
+
return /* @__PURE__ */ import_react44.default.createElement(
|
|
3107
3484
|
import_noya_colorpicker2.ColorPicker,
|
|
3108
3485
|
{
|
|
3109
3486
|
onChange: handleChangeColor,
|
|
3110
3487
|
colorModel,
|
|
3111
3488
|
color: rgbaColor
|
|
3112
3489
|
},
|
|
3113
|
-
/* @__PURE__ */
|
|
3490
|
+
/* @__PURE__ */ import_react44.default.createElement(
|
|
3114
3491
|
import_noya_colorpicker2.Gradient,
|
|
3115
3492
|
{
|
|
3116
3493
|
gradients: value,
|
|
@@ -3121,12 +3498,12 @@ var GradientPicker = (0, import_react42.memo)(function GradientPicker2({
|
|
|
3121
3498
|
onDelete
|
|
3122
3499
|
}
|
|
3123
3500
|
),
|
|
3124
|
-
/* @__PURE__ */
|
|
3125
|
-
/* @__PURE__ */
|
|
3126
|
-
/* @__PURE__ */
|
|
3127
|
-
/* @__PURE__ */
|
|
3128
|
-
/* @__PURE__ */
|
|
3129
|
-
/* @__PURE__ */
|
|
3501
|
+
/* @__PURE__ */ import_react44.default.createElement(Spacer.Vertical, { size: 10 }),
|
|
3502
|
+
/* @__PURE__ */ import_react44.default.createElement(import_noya_colorpicker2.Saturation, null),
|
|
3503
|
+
/* @__PURE__ */ import_react44.default.createElement(Spacer.Vertical, { size: 12 }),
|
|
3504
|
+
/* @__PURE__ */ import_react44.default.createElement(import_noya_colorpicker2.Hue, null),
|
|
3505
|
+
/* @__PURE__ */ import_react44.default.createElement(Spacer.Vertical, { size: 5 }),
|
|
3506
|
+
/* @__PURE__ */ import_react44.default.createElement(import_noya_colorpicker2.Alpha, null)
|
|
3130
3507
|
);
|
|
3131
3508
|
});
|
|
3132
3509
|
|
|
@@ -3158,12 +3535,12 @@ var Grid = import_styled_components22.default.div((props) => ({
|
|
|
3158
3535
|
}));
|
|
3159
3536
|
|
|
3160
3537
|
// src/components/GridView.tsx
|
|
3161
|
-
var
|
|
3538
|
+
var import_react46 = __toESM(require("react"));
|
|
3162
3539
|
var import_styled_components24 = __toESM(require("styled-components"));
|
|
3163
3540
|
|
|
3164
3541
|
// src/components/ScrollArea.tsx
|
|
3165
3542
|
var RadixScrollArea = __toESM(require("@radix-ui/react-scroll-area"));
|
|
3166
|
-
var
|
|
3543
|
+
var import_react45 = __toESM(require("react"));
|
|
3167
3544
|
var import_styled_components23 = __toESM(require("styled-components"));
|
|
3168
3545
|
var SCROLLBAR_SIZE = 10;
|
|
3169
3546
|
var StyledViewport = (0, import_styled_components23.default)(RadixScrollArea.Viewport)({
|
|
@@ -3191,18 +3568,18 @@ var Container2 = import_styled_components23.default.div({
|
|
|
3191
3568
|
flex: "1 1 0px",
|
|
3192
3569
|
minHeight: 0
|
|
3193
3570
|
});
|
|
3194
|
-
var ScrollArea = (0,
|
|
3195
|
-
const [scrollElementRef, setScrollElementRef] = (0,
|
|
3196
|
-
return /* @__PURE__ */
|
|
3571
|
+
var ScrollArea = (0, import_react45.memo)(function ScrollArea2({ children }) {
|
|
3572
|
+
const [scrollElementRef, setScrollElementRef] = (0, import_react45.useState)(null);
|
|
3573
|
+
return /* @__PURE__ */ import_react45.default.createElement(Container2, null, /* @__PURE__ */ import_react45.default.createElement(RadixScrollArea.Root, { style: { width: "100%", height: "100%" } }, /* @__PURE__ */ import_react45.default.createElement(
|
|
3197
3574
|
StyledViewport,
|
|
3198
3575
|
{
|
|
3199
|
-
ref: (0,
|
|
3576
|
+
ref: (0, import_react45.useCallback)(
|
|
3200
3577
|
(ref) => setScrollElementRef(ref),
|
|
3201
3578
|
[]
|
|
3202
3579
|
)
|
|
3203
3580
|
},
|
|
3204
3581
|
typeof children === "function" ? scrollElementRef ? children(scrollElementRef) : null : children
|
|
3205
|
-
), /* @__PURE__ */
|
|
3582
|
+
), /* @__PURE__ */ import_react45.default.createElement(StyledScrollbar, { orientation: "vertical", className: "scroll-component" }, /* @__PURE__ */ import_react45.default.createElement(StyledThumb, { className: "scroll-component" }))));
|
|
3206
3583
|
});
|
|
3207
3584
|
|
|
3208
3585
|
// src/components/GridView.tsx
|
|
@@ -3382,7 +3759,7 @@ var Shimmer = import_styled_components24.default.div`
|
|
|
3382
3759
|
align-items: end;
|
|
3383
3760
|
padding: 4px;
|
|
3384
3761
|
`;
|
|
3385
|
-
var GridViewItem = (0,
|
|
3762
|
+
var GridViewItem = (0, import_react46.forwardRef)(function GridViewItem2({
|
|
3386
3763
|
id,
|
|
3387
3764
|
title,
|
|
3388
3765
|
subtitle,
|
|
@@ -3398,15 +3775,15 @@ var GridViewItem = (0, import_react44.forwardRef)(function GridViewItem2({
|
|
|
3398
3775
|
onContextMenu,
|
|
3399
3776
|
style: style3
|
|
3400
3777
|
}, forwardedRef) {
|
|
3401
|
-
const [hovered, setHovered] =
|
|
3778
|
+
const [hovered, setHovered] = import_react46.default.useState(false);
|
|
3402
3779
|
const { hoverProps } = useHover({
|
|
3403
3780
|
onHoverChange: (isHovering) => {
|
|
3404
3781
|
onHoverChange?.(isHovering);
|
|
3405
3782
|
setHovered(isHovering);
|
|
3406
3783
|
}
|
|
3407
3784
|
});
|
|
3408
|
-
const { textPosition, bordered, disabled } = (0,
|
|
3409
|
-
const handleClick = (0,
|
|
3785
|
+
const { textPosition, bordered, disabled } = (0, import_react46.useContext)(GridViewContext);
|
|
3786
|
+
const handleClick = (0, import_react46.useCallback)(
|
|
3410
3787
|
(event) => {
|
|
3411
3788
|
event.stopPropagation();
|
|
3412
3789
|
event.preventDefault();
|
|
@@ -3415,7 +3792,7 @@ var GridViewItem = (0, import_react44.forwardRef)(function GridViewItem2({
|
|
|
3415
3792
|
},
|
|
3416
3793
|
[onClick, onPress]
|
|
3417
3794
|
);
|
|
3418
|
-
const handleKeyDown = (0,
|
|
3795
|
+
const handleKeyDown = (0, import_react46.useCallback)(
|
|
3419
3796
|
(event) => {
|
|
3420
3797
|
if (event.key === "Enter" || event.key === " ") {
|
|
3421
3798
|
event.stopPropagation();
|
|
@@ -3427,7 +3804,7 @@ var GridViewItem = (0, import_react44.forwardRef)(function GridViewItem2({
|
|
|
3427
3804
|
},
|
|
3428
3805
|
[onPress]
|
|
3429
3806
|
);
|
|
3430
|
-
let element = /* @__PURE__ */
|
|
3807
|
+
let element = /* @__PURE__ */ import_react46.default.createElement(
|
|
3431
3808
|
ItemContainer,
|
|
3432
3809
|
{
|
|
3433
3810
|
id,
|
|
@@ -3436,7 +3813,7 @@ var GridViewItem = (0, import_react44.forwardRef)(function GridViewItem2({
|
|
|
3436
3813
|
tabIndex: disabled ? void 0 : 0,
|
|
3437
3814
|
onKeyDown: handleKeyDown
|
|
3438
3815
|
},
|
|
3439
|
-
/* @__PURE__ */
|
|
3816
|
+
/* @__PURE__ */ import_react46.default.createElement(
|
|
3440
3817
|
ContentContainer,
|
|
3441
3818
|
{
|
|
3442
3819
|
disabled,
|
|
@@ -3450,25 +3827,25 @@ var GridViewItem = (0, import_react44.forwardRef)(function GridViewItem2({
|
|
|
3450
3827
|
},
|
|
3451
3828
|
children
|
|
3452
3829
|
),
|
|
3453
|
-
textPosition === "below" && /* @__PURE__ */
|
|
3454
|
-
textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */
|
|
3455
|
-
loading && /* @__PURE__ */
|
|
3830
|
+
textPosition === "below" && /* @__PURE__ */ import_react46.default.createElement(import_react46.default.Fragment, null, /* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 8 }), /* @__PURE__ */ import_react46.default.createElement(ItemTitle, { showBackground: false }, title || " "), /* @__PURE__ */ import_react46.default.createElement(ItemDescription, { showBackground: false }, subtitle || " ")),
|
|
3831
|
+
textPosition === "overlay" && hovered && (title || subtitle) && /* @__PURE__ */ import_react46.default.createElement(TextOverlay, null, title && /* @__PURE__ */ import_react46.default.createElement(ItemTitle, { showBackground: true }, title), subtitle && /* @__PURE__ */ import_react46.default.createElement(ItemDescription, { showBackground: true }, subtitle)),
|
|
3832
|
+
loading && /* @__PURE__ */ import_react46.default.createElement(Shimmer, null, /* @__PURE__ */ import_react46.default.createElement(ActivityIndicator, { opacity: 0.5, size: 13 }))
|
|
3456
3833
|
);
|
|
3457
3834
|
if (menuItems && onSelectMenuItem) {
|
|
3458
|
-
element = /* @__PURE__ */
|
|
3835
|
+
element = /* @__PURE__ */ import_react46.default.createElement(ContextMenu, { items: menuItems, onSelect: onSelectMenuItem }, element);
|
|
3459
3836
|
}
|
|
3460
3837
|
if (textPosition === "toolip") {
|
|
3461
|
-
element = /* @__PURE__ */
|
|
3838
|
+
element = /* @__PURE__ */ import_react46.default.createElement(
|
|
3462
3839
|
Tooltip,
|
|
3463
3840
|
{
|
|
3464
|
-
content: /* @__PURE__ */
|
|
3841
|
+
content: /* @__PURE__ */ import_react46.default.createElement(Stack.V, { gap: 2 }, /* @__PURE__ */ import_react46.default.createElement(ItemTitle, { showBackground: false }, title), /* @__PURE__ */ import_react46.default.createElement(ItemDescription, { showBackground: false }, subtitle))
|
|
3465
3842
|
},
|
|
3466
3843
|
element
|
|
3467
3844
|
);
|
|
3468
3845
|
}
|
|
3469
3846
|
return element;
|
|
3470
3847
|
});
|
|
3471
|
-
var GridViewContext = (0,
|
|
3848
|
+
var GridViewContext = (0, import_react46.createContext)({
|
|
3472
3849
|
size: "small",
|
|
3473
3850
|
textPosition: "below",
|
|
3474
3851
|
bordered: false,
|
|
@@ -3483,7 +3860,7 @@ function GridViewRoot({
|
|
|
3483
3860
|
bordered = false,
|
|
3484
3861
|
disabled = false
|
|
3485
3862
|
}) {
|
|
3486
|
-
const handleClick = (0,
|
|
3863
|
+
const handleClick = (0, import_react46.useCallback)(
|
|
3487
3864
|
(event) => {
|
|
3488
3865
|
event.stopPropagation();
|
|
3489
3866
|
event.preventDefault();
|
|
@@ -3491,7 +3868,7 @@ function GridViewRoot({
|
|
|
3491
3868
|
},
|
|
3492
3869
|
[onClick]
|
|
3493
3870
|
);
|
|
3494
|
-
const contextValue = (0,
|
|
3871
|
+
const contextValue = (0, import_react46.useMemo)(
|
|
3495
3872
|
() => ({
|
|
3496
3873
|
size: size2,
|
|
3497
3874
|
textPosition,
|
|
@@ -3500,33 +3877,33 @@ function GridViewRoot({
|
|
|
3500
3877
|
}),
|
|
3501
3878
|
[bordered, disabled, size2, textPosition]
|
|
3502
3879
|
);
|
|
3503
|
-
return /* @__PURE__ */
|
|
3880
|
+
return /* @__PURE__ */ import_react46.default.createElement(GridViewContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react46.default.createElement(Container3, { onClick: handleClick, scrollable }, scrollable ? /* @__PURE__ */ import_react46.default.createElement(ScrollArea, null, children) : children));
|
|
3504
3881
|
}
|
|
3505
3882
|
function GridViewSection({
|
|
3506
3883
|
children,
|
|
3507
3884
|
padding = "20px"
|
|
3508
3885
|
}) {
|
|
3509
|
-
const { size: size2 } = (0,
|
|
3510
|
-
return /* @__PURE__ */
|
|
3886
|
+
const { size: size2 } = (0, import_react46.useContext)(GridViewContext);
|
|
3887
|
+
return /* @__PURE__ */ import_react46.default.createElement(Grid2, { size: size2, padding }, children);
|
|
3511
3888
|
}
|
|
3512
3889
|
function GridViewSectionHeader({ title }) {
|
|
3513
3890
|
const grouped = title.split("/");
|
|
3514
|
-
return /* @__PURE__ */
|
|
3515
|
-
grouped.map((title2, index) => /* @__PURE__ */
|
|
3516
|
-
/* @__PURE__ */
|
|
3891
|
+
return /* @__PURE__ */ import_react46.default.createElement(SectionHeaderContainer, null, /* @__PURE__ */ import_react46.default.createElement(Spacer.Vertical, { size: 24 }), withSeparatorElements(
|
|
3892
|
+
grouped.map((title2, index) => /* @__PURE__ */ import_react46.default.createElement(SectionTitle, { last: index === grouped.length - 1 }, title2)),
|
|
3893
|
+
/* @__PURE__ */ import_react46.default.createElement(SectionTitle, null, " / ")
|
|
3517
3894
|
));
|
|
3518
3895
|
}
|
|
3519
3896
|
var GridView;
|
|
3520
3897
|
((GridView2) => {
|
|
3521
|
-
GridView2.Root = (0,
|
|
3522
|
-
GridView2.Item = (0,
|
|
3523
|
-
GridView2.Section = (0,
|
|
3524
|
-
GridView2.SectionHeader = (0,
|
|
3898
|
+
GridView2.Root = (0, import_react46.memo)(GridViewRoot);
|
|
3899
|
+
GridView2.Item = (0, import_react46.memo)(GridViewItem);
|
|
3900
|
+
GridView2.Section = (0, import_react46.memo)(GridViewSection);
|
|
3901
|
+
GridView2.SectionHeader = (0, import_react46.memo)(GridViewSectionHeader);
|
|
3525
3902
|
})(GridView || (GridView = {}));
|
|
3526
3903
|
|
|
3527
3904
|
// src/components/InputFieldWithCompletions.tsx
|
|
3528
|
-
var
|
|
3529
|
-
var
|
|
3905
|
+
var import_noya_utils9 = require("@noya-app/noya-utils");
|
|
3906
|
+
var import_react50 = __toESM(require("react"));
|
|
3530
3907
|
var import_styled_components27 = __toESM(require("styled-components"));
|
|
3531
3908
|
|
|
3532
3909
|
// src/utils/fuzzyScorer.ts
|
|
@@ -3601,15 +3978,15 @@ function mergeRanges(ranges) {
|
|
|
3601
3978
|
}
|
|
3602
3979
|
|
|
3603
3980
|
// src/components/ListView.tsx
|
|
3604
|
-
var
|
|
3981
|
+
var import_noya_utils8 = require("@noya-app/noya-utils");
|
|
3605
3982
|
var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
|
|
3606
|
-
var
|
|
3983
|
+
var import_react48 = __toESM(require("react"));
|
|
3607
3984
|
var import_react_virtualized = require("react-virtualized");
|
|
3608
3985
|
var import_react_window = require("react-window");
|
|
3609
3986
|
var import_styled_components25 = __toESM(require("styled-components"));
|
|
3610
3987
|
|
|
3611
3988
|
// src/hooks/mergeEventHandlers.ts
|
|
3612
|
-
var
|
|
3989
|
+
var import_noya_utils7 = require("@noya-app/noya-utils");
|
|
3613
3990
|
var import_primitive = require("@radix-ui/primitive");
|
|
3614
3991
|
function composeAllEventHandlers(...handlers) {
|
|
3615
3992
|
const [first, ...rest] = handlers;
|
|
@@ -3619,7 +3996,7 @@ function composeAllEventHandlers(...handlers) {
|
|
|
3619
3996
|
);
|
|
3620
3997
|
}
|
|
3621
3998
|
function mergeEventHandlers(...handlerMaps) {
|
|
3622
|
-
const eventNames = (0,
|
|
3999
|
+
const eventNames = (0, import_noya_utils7.unique)(handlerMaps.map(Object.keys).flat());
|
|
3623
4000
|
return Object.fromEntries(
|
|
3624
4001
|
eventNames.map((eventName) => {
|
|
3625
4002
|
const handlers = handlerMaps.flatMap((handlerMap) => {
|
|
@@ -3634,8 +4011,8 @@ function mergeEventHandlers(...handlerMaps) {
|
|
|
3634
4011
|
// src/components/Sortable.tsx
|
|
3635
4012
|
var import_core = require("@dnd-kit/core");
|
|
3636
4013
|
var import_sortable = require("@dnd-kit/sortable");
|
|
3637
|
-
var
|
|
3638
|
-
var
|
|
4014
|
+
var import_react47 = __toESM(require("react"));
|
|
4015
|
+
var import_react_dom2 = require("react-dom");
|
|
3639
4016
|
var normalizeListDestinationIndex = (index, position) => {
|
|
3640
4017
|
return position === "above" ? index : index + 1;
|
|
3641
4018
|
};
|
|
@@ -3648,7 +4025,7 @@ var defaultAcceptsDrop = (sourceIndex, destinationIndex, position) => {
|
|
|
3648
4025
|
}
|
|
3649
4026
|
return true;
|
|
3650
4027
|
};
|
|
3651
|
-
var SortableItemContext = (0,
|
|
4028
|
+
var SortableItemContext = (0, import_react47.createContext)({
|
|
3652
4029
|
keys: [],
|
|
3653
4030
|
position: { x: 0, y: 0 },
|
|
3654
4031
|
acceptsDrop: defaultAcceptsDrop,
|
|
@@ -3670,7 +4047,7 @@ function SortableItem({
|
|
|
3670
4047
|
disabled,
|
|
3671
4048
|
children
|
|
3672
4049
|
}) {
|
|
3673
|
-
const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0,
|
|
4050
|
+
const { keys, position, acceptsDrop, setActivatorEvent, axis } = (0, import_react47.useContext)(SortableItemContext);
|
|
3674
4051
|
const sortable = (0, import_sortable.useSortable)({ id, disabled });
|
|
3675
4052
|
const {
|
|
3676
4053
|
active,
|
|
@@ -3690,7 +4067,7 @@ function SortableItem({
|
|
|
3690
4067
|
const eventY = activatorEvent?.clientY ?? 0;
|
|
3691
4068
|
const offsetLeft = eventX + position.x;
|
|
3692
4069
|
const offsetTop = eventY + position.y;
|
|
3693
|
-
const ref = (0,
|
|
4070
|
+
const ref = (0, import_react47.useCallback)((node) => setNodeRef(node), [setNodeRef]);
|
|
3694
4071
|
return children({
|
|
3695
4072
|
ref,
|
|
3696
4073
|
...attributes,
|
|
@@ -3721,22 +4098,22 @@ function SortableRoot({
|
|
|
3721
4098
|
}
|
|
3722
4099
|
})
|
|
3723
4100
|
);
|
|
3724
|
-
const [activeIndex, setActiveIndex] = (0,
|
|
3725
|
-
const activatorEvent = (0,
|
|
3726
|
-
const setActivatorEvent = (0,
|
|
4101
|
+
const [activeIndex, setActiveIndex] = (0, import_react47.useState)();
|
|
4102
|
+
const activatorEvent = (0, import_react47.useRef)(null);
|
|
4103
|
+
const setActivatorEvent = (0, import_react47.useCallback)((event) => {
|
|
3727
4104
|
activatorEvent.current = event;
|
|
3728
4105
|
}, []);
|
|
3729
|
-
const [position, setPosition] = (0,
|
|
3730
|
-
const handleDragStart = (0,
|
|
4106
|
+
const [position, setPosition] = (0, import_react47.useState)({ x: 0, y: 0 });
|
|
4107
|
+
const handleDragStart = (0, import_react47.useCallback)(
|
|
3731
4108
|
(event) => {
|
|
3732
4109
|
setActiveIndex(keys.indexOf(event.active.id));
|
|
3733
4110
|
},
|
|
3734
4111
|
[keys]
|
|
3735
4112
|
);
|
|
3736
|
-
const handleDragMove = (0,
|
|
4113
|
+
const handleDragMove = (0, import_react47.useCallback)((event) => {
|
|
3737
4114
|
setPosition({ ...event.delta });
|
|
3738
4115
|
}, []);
|
|
3739
|
-
const handleDragEnd = (0,
|
|
4116
|
+
const handleDragEnd = (0, import_react47.useCallback)(
|
|
3740
4117
|
(event) => {
|
|
3741
4118
|
const { active, over } = event;
|
|
3742
4119
|
setActiveIndex(void 0);
|
|
@@ -3763,10 +4140,10 @@ function SortableRoot({
|
|
|
3763
4140
|
},
|
|
3764
4141
|
[acceptsDrop, axis, keys, onMoveItem, position.x, position.y]
|
|
3765
4142
|
);
|
|
3766
|
-
return /* @__PURE__ */
|
|
4143
|
+
return /* @__PURE__ */ import_react47.default.createElement(
|
|
3767
4144
|
SortableItemContext.Provider,
|
|
3768
4145
|
{
|
|
3769
|
-
value: (0,
|
|
4146
|
+
value: (0, import_react47.useMemo)(
|
|
3770
4147
|
() => ({
|
|
3771
4148
|
keys,
|
|
3772
4149
|
acceptsDrop,
|
|
@@ -3777,7 +4154,7 @@ function SortableRoot({
|
|
|
3777
4154
|
[acceptsDrop, axis, keys, position, setActivatorEvent]
|
|
3778
4155
|
)
|
|
3779
4156
|
},
|
|
3780
|
-
/* @__PURE__ */
|
|
4157
|
+
/* @__PURE__ */ import_react47.default.createElement(
|
|
3781
4158
|
import_core.DndContext,
|
|
3782
4159
|
{
|
|
3783
4160
|
sensors,
|
|
@@ -3786,9 +4163,9 @@ function SortableRoot({
|
|
|
3786
4163
|
onDragMove: handleDragMove,
|
|
3787
4164
|
onDragEnd: handleDragEnd
|
|
3788
4165
|
},
|
|
3789
|
-
/* @__PURE__ */
|
|
3790
|
-
renderOverlay && (0,
|
|
3791
|
-
/* @__PURE__ */
|
|
4166
|
+
/* @__PURE__ */ import_react47.default.createElement(import_sortable.SortableContext, { items: keys, strategy: import_sortable.verticalListSortingStrategy }, children),
|
|
4167
|
+
renderOverlay && (0, import_react_dom2.createPortal)(
|
|
4168
|
+
/* @__PURE__ */ import_react47.default.createElement(import_core.DragOverlay, { dropAnimation: null }, activeIndex !== void 0 && activeIndex >= 0 && renderOverlay(activeIndex)),
|
|
3792
4169
|
document.body
|
|
3793
4170
|
)
|
|
3794
4171
|
)
|
|
@@ -3796,17 +4173,17 @@ function SortableRoot({
|
|
|
3796
4173
|
}
|
|
3797
4174
|
var Sortable;
|
|
3798
4175
|
((Sortable2) => {
|
|
3799
|
-
Sortable2.Item = (0,
|
|
3800
|
-
Sortable2.Root = (0,
|
|
4176
|
+
Sortable2.Item = (0, import_react47.memo)(SortableItem);
|
|
4177
|
+
Sortable2.Root = (0, import_react47.memo)(SortableRoot);
|
|
3801
4178
|
})(Sortable || (Sortable = {}));
|
|
3802
4179
|
|
|
3803
4180
|
// src/components/ListView.tsx
|
|
3804
4181
|
var ROW_HEIGHT = 31;
|
|
3805
4182
|
var SECTION_HEADER_LABEL_HEIGHT = 27;
|
|
3806
|
-
var DraggingContext = (0,
|
|
4183
|
+
var DraggingContext = (0, import_react48.createContext)({
|
|
3807
4184
|
indentation: 12
|
|
3808
4185
|
});
|
|
3809
|
-
var ListRowContext = (0,
|
|
4186
|
+
var ListRowContext = (0, import_react48.createContext)({
|
|
3810
4187
|
marginType: "none",
|
|
3811
4188
|
selectedPosition: "only",
|
|
3812
4189
|
sortable: false,
|
|
@@ -3836,8 +4213,8 @@ function ListViewEditableRowTitle({
|
|
|
3836
4213
|
autoFocus,
|
|
3837
4214
|
placeholder
|
|
3838
4215
|
}) {
|
|
3839
|
-
const inputRef = (0,
|
|
3840
|
-
(0,
|
|
4216
|
+
const inputRef = (0, import_react48.useRef)(null);
|
|
4217
|
+
(0, import_react48.useLayoutEffect)(() => {
|
|
3841
4218
|
const element = inputRef.current;
|
|
3842
4219
|
if (!element || !autoFocus)
|
|
3843
4220
|
return;
|
|
@@ -3846,7 +4223,7 @@ function ListViewEditableRowTitle({
|
|
|
3846
4223
|
element.select();
|
|
3847
4224
|
}, 0);
|
|
3848
4225
|
}, [autoFocus]);
|
|
3849
|
-
return /* @__PURE__ */
|
|
4226
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
3850
4227
|
ListViewEditableRowTitleElement,
|
|
3851
4228
|
{
|
|
3852
4229
|
ref: inputRef,
|
|
@@ -3968,7 +4345,7 @@ var ListViewDragIndicatorElement = import_styled_components25.default.div(({ the
|
|
|
3968
4345
|
boxShadow: "0 0 2px rgba(0,0,0,0.5)"
|
|
3969
4346
|
}
|
|
3970
4347
|
}));
|
|
3971
|
-
var ListViewRow = (0,
|
|
4348
|
+
var ListViewRow = (0, import_react48.forwardRef)(function ListViewRow2({
|
|
3972
4349
|
id,
|
|
3973
4350
|
tabIndex = 0,
|
|
3974
4351
|
gap,
|
|
@@ -4001,12 +4378,12 @@ var ListViewRow = (0, import_react46.forwardRef)(function ListViewRow2({
|
|
|
4001
4378
|
divider,
|
|
4002
4379
|
gap: listGap,
|
|
4003
4380
|
colorScheme
|
|
4004
|
-
} = (0,
|
|
4381
|
+
} = (0, import_react48.useContext)(ListRowContext);
|
|
4005
4382
|
const { hoverProps } = useHover({
|
|
4006
4383
|
onHoverChange
|
|
4007
4384
|
});
|
|
4008
|
-
const { indentation, isDragging } = (0,
|
|
4009
|
-
const handlePress = (0,
|
|
4385
|
+
const { indentation, isDragging } = (0, import_react48.useContext)(DraggingContext);
|
|
4386
|
+
const handlePress = (0, import_react48.useCallback)(
|
|
4010
4387
|
(event) => {
|
|
4011
4388
|
event.preventDefault();
|
|
4012
4389
|
if (event.button !== 0)
|
|
@@ -4015,14 +4392,14 @@ var ListViewRow = (0, import_react46.forwardRef)(function ListViewRow2({
|
|
|
4015
4392
|
},
|
|
4016
4393
|
[onPress]
|
|
4017
4394
|
);
|
|
4018
|
-
const handleDoubleClick = (0,
|
|
4395
|
+
const handleDoubleClick = (0, import_react48.useCallback)(
|
|
4019
4396
|
(event) => {
|
|
4020
4397
|
event.stopPropagation();
|
|
4021
4398
|
onDoubleClick?.();
|
|
4022
4399
|
},
|
|
4023
4400
|
[onDoubleClick]
|
|
4024
4401
|
);
|
|
4025
|
-
const mergedStyle = (0,
|
|
4402
|
+
const mergedStyle = (0, import_react48.useMemo)(() => {
|
|
4026
4403
|
return isDragging ? {
|
|
4027
4404
|
// TODO: Where do these offsets actually come from?
|
|
4028
4405
|
transform: `translate3d(-36px, -6px, 0)`,
|
|
@@ -4034,7 +4411,7 @@ var ListViewRow = (0, import_react46.forwardRef)(function ListViewRow2({
|
|
|
4034
4411
|
relativeDropPosition,
|
|
4035
4412
|
...renderProps
|
|
4036
4413
|
}, ref) => {
|
|
4037
|
-
const element = /* @__PURE__ */
|
|
4414
|
+
const element = /* @__PURE__ */ import_react48.default.createElement(
|
|
4038
4415
|
RowContainer,
|
|
4039
4416
|
{
|
|
4040
4417
|
ref,
|
|
@@ -4065,7 +4442,7 @@ var ListViewRow = (0, import_react46.forwardRef)(function ListViewRow2({
|
|
|
4065
4442
|
),
|
|
4066
4443
|
tabIndex
|
|
4067
4444
|
},
|
|
4068
|
-
relativeDropPosition && /* @__PURE__ */
|
|
4445
|
+
relativeDropPosition && /* @__PURE__ */ import_react48.default.createElement(
|
|
4069
4446
|
ListViewDragIndicatorElement,
|
|
4070
4447
|
{
|
|
4071
4448
|
colorScheme,
|
|
@@ -4074,11 +4451,11 @@ var ListViewRow = (0, import_react46.forwardRef)(function ListViewRow2({
|
|
|
4074
4451
|
gap: listGap
|
|
4075
4452
|
}
|
|
4076
4453
|
),
|
|
4077
|
-
depth > 0 && /* @__PURE__ */
|
|
4454
|
+
depth > 0 && /* @__PURE__ */ import_react48.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
|
|
4078
4455
|
children
|
|
4079
4456
|
);
|
|
4080
4457
|
if (menuItems && onSelectMenuItem) {
|
|
4081
|
-
return /* @__PURE__ */
|
|
4458
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
4082
4459
|
ContextMenu,
|
|
4083
4460
|
{
|
|
4084
4461
|
items: menuItems,
|
|
@@ -4091,21 +4468,21 @@ var ListViewRow = (0, import_react46.forwardRef)(function ListViewRow2({
|
|
|
4091
4468
|
return element;
|
|
4092
4469
|
};
|
|
4093
4470
|
if (sortable && id) {
|
|
4094
|
-
return /* @__PURE__ */
|
|
4471
|
+
return /* @__PURE__ */ import_react48.default.createElement(Sortable.Item, { id, disabled: overrideSortable === false }, ({ ref: sortableRef, ...sortableProps }) => renderContent(sortableProps, (0, import_react_compose_refs2.composeRefs)(sortableRef, forwardedRef)));
|
|
4095
4472
|
}
|
|
4096
4473
|
return renderContent({}, forwardedRef);
|
|
4097
4474
|
});
|
|
4098
|
-
var RenderItemContext = (0,
|
|
4475
|
+
var RenderItemContext = (0, import_react48.createContext)(
|
|
4099
4476
|
() => null
|
|
4100
4477
|
);
|
|
4101
|
-
var VirtualizedListRow = (0,
|
|
4478
|
+
var VirtualizedListRow = (0, import_react48.memo)(function VirtualizedListRow2({
|
|
4102
4479
|
index,
|
|
4103
4480
|
style: style3
|
|
4104
4481
|
}) {
|
|
4105
|
-
const renderItem = (0,
|
|
4106
|
-
return /* @__PURE__ */
|
|
4482
|
+
const renderItem = (0, import_react48.useContext)(RenderItemContext);
|
|
4483
|
+
return /* @__PURE__ */ import_react48.default.createElement("div", { key: index, style: style3 }, renderItem(index));
|
|
4107
4484
|
});
|
|
4108
|
-
var VirtualizedListInner = (0,
|
|
4485
|
+
var VirtualizedListInner = (0, import_react48.forwardRef)(function VirtualizedListInner2({
|
|
4109
4486
|
size: size2,
|
|
4110
4487
|
scrollElement,
|
|
4111
4488
|
items,
|
|
@@ -4113,20 +4490,20 @@ var VirtualizedListInner = (0, import_react46.forwardRef)(function VirtualizedLi
|
|
|
4113
4490
|
keyExtractor,
|
|
4114
4491
|
renderItem
|
|
4115
4492
|
}, ref) {
|
|
4116
|
-
const listRef = (0,
|
|
4117
|
-
(0,
|
|
4493
|
+
const listRef = (0, import_react48.useRef)(null);
|
|
4494
|
+
(0, import_react48.useImperativeHandle)(ref, () => ({
|
|
4118
4495
|
scrollToIndex(index) {
|
|
4119
4496
|
listRef.current?.scrollToItem(index);
|
|
4120
4497
|
}
|
|
4121
4498
|
}));
|
|
4122
|
-
(0,
|
|
4499
|
+
(0, import_react48.useLayoutEffect)(() => {
|
|
4123
4500
|
listRef.current?.resetAfterIndex(0);
|
|
4124
4501
|
}, [
|
|
4125
4502
|
// When items change, we need to re-render the virtualized list,
|
|
4126
4503
|
// since it doesn't currently support row height changes
|
|
4127
4504
|
items
|
|
4128
4505
|
]);
|
|
4129
|
-
const listStyle = (0,
|
|
4506
|
+
const listStyle = (0, import_react48.useMemo)(
|
|
4130
4507
|
() => ({
|
|
4131
4508
|
overflowX: "initial",
|
|
4132
4509
|
overflowY: "initial",
|
|
@@ -4134,18 +4511,18 @@ var VirtualizedListInner = (0, import_react46.forwardRef)(function VirtualizedLi
|
|
|
4134
4511
|
}),
|
|
4135
4512
|
[]
|
|
4136
4513
|
);
|
|
4137
|
-
return /* @__PURE__ */
|
|
4514
|
+
return /* @__PURE__ */ import_react48.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react48.default.createElement(
|
|
4138
4515
|
import_react_virtualized.WindowScroller,
|
|
4139
4516
|
{
|
|
4140
4517
|
scrollElement,
|
|
4141
|
-
style: (0,
|
|
4518
|
+
style: (0, import_react48.useMemo)(() => ({ flex: "1 1 auto" }), [])
|
|
4142
4519
|
},
|
|
4143
|
-
(0,
|
|
4520
|
+
(0, import_react48.useCallback)(
|
|
4144
4521
|
({
|
|
4145
4522
|
registerChild,
|
|
4146
4523
|
onChildScroll,
|
|
4147
4524
|
scrollTop
|
|
4148
|
-
}) => /* @__PURE__ */
|
|
4525
|
+
}) => /* @__PURE__ */ import_react48.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react48.default.createElement(
|
|
4149
4526
|
import_react_window.VariableSizeList,
|
|
4150
4527
|
{
|
|
4151
4528
|
ref: listRef,
|
|
@@ -4175,7 +4552,7 @@ var VirtualizedListInner = (0, import_react46.forwardRef)(function VirtualizedLi
|
|
|
4175
4552
|
)
|
|
4176
4553
|
));
|
|
4177
4554
|
});
|
|
4178
|
-
var VirtualizedList = (0,
|
|
4555
|
+
var VirtualizedList = (0, import_react48.memo)(
|
|
4179
4556
|
VirtualizedListInner
|
|
4180
4557
|
);
|
|
4181
4558
|
var RootContainer2 = import_styled_components25.default.div(({ theme, scrollable, gap }) => ({
|
|
@@ -4186,7 +4563,7 @@ var RootContainer2 = import_styled_components25.default.div(({ theme, scrollable
|
|
|
4186
4563
|
color: theme.colors.textMuted,
|
|
4187
4564
|
gap
|
|
4188
4565
|
}));
|
|
4189
|
-
var ListViewRootInner = (0,
|
|
4566
|
+
var ListViewRootInner = (0, import_react48.forwardRef)(function ListViewRootInner2({
|
|
4190
4567
|
onPress,
|
|
4191
4568
|
scrollable = false,
|
|
4192
4569
|
expandable = true,
|
|
@@ -4205,7 +4582,7 @@ var ListViewRootInner = (0, import_react46.forwardRef)(function ListViewRootInne
|
|
|
4205
4582
|
colorScheme = "primary",
|
|
4206
4583
|
gap = 0
|
|
4207
4584
|
}, forwardedRef) {
|
|
4208
|
-
const handleClick = (0,
|
|
4585
|
+
const handleClick = (0, import_react48.useCallback)(
|
|
4209
4586
|
(event) => {
|
|
4210
4587
|
if (event.target instanceof HTMLElement && event.target.classList.contains("scroll-component"))
|
|
4211
4588
|
return;
|
|
@@ -4215,19 +4592,19 @@ var ListViewRootInner = (0, import_react46.forwardRef)(function ListViewRootInne
|
|
|
4215
4592
|
},
|
|
4216
4593
|
[onPress]
|
|
4217
4594
|
);
|
|
4218
|
-
const renderChild = (0,
|
|
4595
|
+
const renderChild = (0, import_react48.useCallback)(
|
|
4219
4596
|
(index) => renderItem(data[index], index, { isDragging: false }),
|
|
4220
4597
|
[data, renderItem]
|
|
4221
4598
|
);
|
|
4222
|
-
const getItemContextValue = (0,
|
|
4599
|
+
const getItemContextValue = (0, import_react48.useCallback)(
|
|
4223
4600
|
(i) => {
|
|
4224
4601
|
const current = renderChild(i);
|
|
4225
|
-
if (!(0,
|
|
4602
|
+
if (!(0, import_react48.isValidElement)(current))
|
|
4226
4603
|
return;
|
|
4227
4604
|
const prevChild = i - 1 >= 0 && renderChild(i - 1);
|
|
4228
4605
|
const nextChild = i + 1 < data.length && renderChild(i + 1);
|
|
4229
|
-
const next = (0,
|
|
4230
|
-
const prev = (0,
|
|
4606
|
+
const next = (0, import_react48.isValidElement)(nextChild) ? nextChild : void 0;
|
|
4607
|
+
const prev = (0, import_react48.isValidElement)(prevChild) ? prevChild : void 0;
|
|
4231
4608
|
const hasMarginTop = !prev;
|
|
4232
4609
|
const hasMarginBottom = !next || current.props.isSectionHeader || next && next.props.isSectionHeader;
|
|
4233
4610
|
let marginType;
|
|
@@ -4279,26 +4656,26 @@ var ListViewRootInner = (0, import_react46.forwardRef)(function ListViewRootInne
|
|
|
4279
4656
|
gap
|
|
4280
4657
|
]
|
|
4281
4658
|
);
|
|
4282
|
-
const draggingContextOverlayValue = (0,
|
|
4659
|
+
const draggingContextOverlayValue = (0, import_react48.useMemo)(
|
|
4283
4660
|
() => ({ indentation, isDragging: true }),
|
|
4284
4661
|
[indentation]
|
|
4285
4662
|
);
|
|
4286
|
-
const renderOverlay = (0,
|
|
4287
|
-
(index) => /* @__PURE__ */
|
|
4663
|
+
const renderOverlay = (0, import_react48.useCallback)(
|
|
4664
|
+
(index) => /* @__PURE__ */ import_react48.default.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ import_react48.default.createElement(DraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragging: true }))),
|
|
4288
4665
|
[draggingContextOverlayValue, renderItem, data]
|
|
4289
4666
|
);
|
|
4290
|
-
const renderWrappedChild = (0,
|
|
4667
|
+
const renderWrappedChild = (0, import_react48.useCallback)(
|
|
4291
4668
|
(index) => {
|
|
4292
4669
|
const contextValue = getItemContextValue(index);
|
|
4293
4670
|
const current = renderChild(index);
|
|
4294
|
-
if (!contextValue || !(0,
|
|
4671
|
+
if (!contextValue || !(0, import_react48.isValidElement)(current))
|
|
4295
4672
|
return null;
|
|
4296
|
-
return /* @__PURE__ */
|
|
4673
|
+
return /* @__PURE__ */ import_react48.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue }, current);
|
|
4297
4674
|
},
|
|
4298
4675
|
[getItemContextValue, renderChild]
|
|
4299
4676
|
);
|
|
4300
|
-
const ids = (0,
|
|
4301
|
-
const withSortable = (children) => sortable ? /* @__PURE__ */
|
|
4677
|
+
const ids = (0, import_react48.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
|
|
4678
|
+
const withSortable = (children) => sortable ? /* @__PURE__ */ import_react48.default.createElement(
|
|
4302
4679
|
Sortable.Root,
|
|
4303
4680
|
{
|
|
4304
4681
|
onMoveItem,
|
|
@@ -4308,8 +4685,8 @@ var ListViewRootInner = (0, import_react46.forwardRef)(function ListViewRootInne
|
|
|
4308
4685
|
},
|
|
4309
4686
|
children
|
|
4310
4687
|
) : children;
|
|
4311
|
-
const withScrollable = (children) => scrollable ? /* @__PURE__ */
|
|
4312
|
-
const getItemHeight = (0,
|
|
4688
|
+
const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react48.default.createElement(ScrollArea, null, children) : children(null);
|
|
4689
|
+
const getItemHeight = (0, import_react48.useCallback)(
|
|
4313
4690
|
(index) => {
|
|
4314
4691
|
const child = getItemContextValue(index);
|
|
4315
4692
|
const margin = child?.marginType ? getPositionMargin(child.marginType) : { top: 0, bottom: 0 };
|
|
@@ -4318,12 +4695,12 @@ var ListViewRootInner = (0, import_react46.forwardRef)(function ListViewRootInne
|
|
|
4318
4695
|
},
|
|
4319
4696
|
[getItemContextValue, variant]
|
|
4320
4697
|
);
|
|
4321
|
-
const getKey = (0,
|
|
4698
|
+
const getKey = (0, import_react48.useCallback)(
|
|
4322
4699
|
(index) => keyExtractor(data[index], index),
|
|
4323
4700
|
[data, keyExtractor]
|
|
4324
4701
|
);
|
|
4325
|
-
const draggingContextValue = (0,
|
|
4326
|
-
return /* @__PURE__ */
|
|
4702
|
+
const draggingContextValue = (0, import_react48.useMemo)(() => ({ indentation }), [indentation]);
|
|
4703
|
+
return /* @__PURE__ */ import_react48.default.createElement(DraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ import_react48.default.createElement(
|
|
4327
4704
|
RootContainer2,
|
|
4328
4705
|
{
|
|
4329
4706
|
...{
|
|
@@ -4334,7 +4711,7 @@ var ListViewRootInner = (0, import_react46.forwardRef)(function ListViewRootInne
|
|
|
4334
4711
|
},
|
|
4335
4712
|
withScrollable(
|
|
4336
4713
|
(scrollElementRef) => withSortable(
|
|
4337
|
-
virtualized ? /* @__PURE__ */
|
|
4714
|
+
virtualized ? /* @__PURE__ */ import_react48.default.createElement(
|
|
4338
4715
|
VirtualizedList,
|
|
4339
4716
|
{
|
|
4340
4717
|
ref: forwardedRef,
|
|
@@ -4345,47 +4722,47 @@ var ListViewRootInner = (0, import_react46.forwardRef)(function ListViewRootInne
|
|
|
4345
4722
|
keyExtractor: getKey,
|
|
4346
4723
|
renderItem: renderWrappedChild
|
|
4347
4724
|
}
|
|
4348
|
-
) : (0,
|
|
4725
|
+
) : (0, import_noya_utils8.range)(0, data.length).map(renderWrappedChild)
|
|
4349
4726
|
)
|
|
4350
4727
|
)
|
|
4351
4728
|
));
|
|
4352
4729
|
});
|
|
4353
|
-
var ListViewRoot = (0,
|
|
4354
|
-
var ChildrenListViewInner = (0,
|
|
4355
|
-
const items = (0,
|
|
4356
|
-
() =>
|
|
4357
|
-
(child) => (0,
|
|
4730
|
+
var ListViewRoot = (0, import_react48.memo)(ListViewRootInner);
|
|
4731
|
+
var ChildrenListViewInner = (0, import_react48.forwardRef)(function ChildrenListViewInner2({ children, ...rest }, forwardedRef) {
|
|
4732
|
+
const items = (0, import_react48.useMemo)(
|
|
4733
|
+
() => import_react48.Children.toArray(children).flatMap(
|
|
4734
|
+
(child) => (0, import_react48.isValidElement)(child) ? [child] : []
|
|
4358
4735
|
),
|
|
4359
4736
|
[children]
|
|
4360
4737
|
);
|
|
4361
|
-
return /* @__PURE__ */
|
|
4738
|
+
return /* @__PURE__ */ import_react48.default.createElement(
|
|
4362
4739
|
ListViewRoot,
|
|
4363
4740
|
{
|
|
4364
4741
|
ref: forwardedRef,
|
|
4365
4742
|
...rest,
|
|
4366
4743
|
data: items,
|
|
4367
|
-
keyExtractor: (0,
|
|
4744
|
+
keyExtractor: (0, import_react48.useCallback)(
|
|
4368
4745
|
({ key }, index) => typeof key === "string" ? key : (key ?? index).toString(),
|
|
4369
4746
|
[]
|
|
4370
4747
|
),
|
|
4371
|
-
renderItem: (0,
|
|
4748
|
+
renderItem: (0, import_react48.useCallback)((item) => item, [])
|
|
4372
4749
|
}
|
|
4373
4750
|
);
|
|
4374
4751
|
});
|
|
4375
|
-
var ChildrenListView = (0,
|
|
4376
|
-
var SimpleListViewInner = (0,
|
|
4752
|
+
var ChildrenListView = (0, import_react48.memo)(ChildrenListViewInner);
|
|
4753
|
+
var SimpleListViewInner = (0, import_react48.forwardRef)(function SimpleListViewInner2(props, forwardedRef) {
|
|
4377
4754
|
if ("children" in props) {
|
|
4378
|
-
return /* @__PURE__ */
|
|
4755
|
+
return /* @__PURE__ */ import_react48.default.createElement(ChildrenListView, { ref: forwardedRef, ...props });
|
|
4379
4756
|
} else {
|
|
4380
|
-
return /* @__PURE__ */
|
|
4757
|
+
return /* @__PURE__ */ import_react48.default.createElement(ListViewRoot, { ref: forwardedRef, ...props });
|
|
4381
4758
|
}
|
|
4382
4759
|
});
|
|
4383
|
-
var SimpleListView = (0,
|
|
4760
|
+
var SimpleListView = (0, import_react48.memo)(SimpleListViewInner);
|
|
4384
4761
|
var ListView;
|
|
4385
4762
|
((ListView2) => {
|
|
4386
|
-
ListView2.RowTitle = (0,
|
|
4387
|
-
ListView2.EditableRowTitle = (0,
|
|
4388
|
-
ListView2.Row = (0,
|
|
4763
|
+
ListView2.RowTitle = (0, import_react48.memo)(ListViewRowTitle);
|
|
4764
|
+
ListView2.EditableRowTitle = (0, import_react48.memo)(ListViewEditableRowTitle);
|
|
4765
|
+
ListView2.Row = (0, import_react48.memo)(ListViewRow);
|
|
4389
4766
|
ListView2.Root = SimpleListView;
|
|
4390
4767
|
ListView2.RowContext = ListRowContext;
|
|
4391
4768
|
ListView2.DragIndicator = ListViewDragIndicatorElement;
|
|
@@ -4398,7 +4775,7 @@ var ListView;
|
|
|
4398
4775
|
})(ListView || (ListView = {}));
|
|
4399
4776
|
|
|
4400
4777
|
// src/components/Text.tsx
|
|
4401
|
-
var
|
|
4778
|
+
var import_react49 = __toESM(require("react"));
|
|
4402
4779
|
var import_styled_components26 = __toESM(require("styled-components"));
|
|
4403
4780
|
var elements = {
|
|
4404
4781
|
title: "h1",
|
|
@@ -4410,6 +4787,7 @@ var elements = {
|
|
|
4410
4787
|
heading5: "h5",
|
|
4411
4788
|
body: "p",
|
|
4412
4789
|
small: "span",
|
|
4790
|
+
button: "span",
|
|
4413
4791
|
code: "code",
|
|
4414
4792
|
label: "span"
|
|
4415
4793
|
};
|
|
@@ -4419,7 +4797,7 @@ var StyledElement = import_styled_components26.default.span(({ theme, variant, s
|
|
|
4419
4797
|
...styleProps,
|
|
4420
4798
|
...mergeBreakpoints(breakpoints || [])
|
|
4421
4799
|
}));
|
|
4422
|
-
var Text = (0,
|
|
4800
|
+
var Text = (0, import_react49.forwardRef)(function Text2({
|
|
4423
4801
|
as,
|
|
4424
4802
|
variant,
|
|
4425
4803
|
breakpoints,
|
|
@@ -4431,7 +4809,7 @@ var Text = (0, import_react47.forwardRef)(function Text2({
|
|
|
4431
4809
|
...rest
|
|
4432
4810
|
}, forwardedRef) {
|
|
4433
4811
|
const element = as ?? elements[variant] ?? "span";
|
|
4434
|
-
return /* @__PURE__ */
|
|
4812
|
+
return /* @__PURE__ */ import_react49.default.createElement(
|
|
4435
4813
|
StyledElement,
|
|
4436
4814
|
{
|
|
4437
4815
|
ref: forwardedRef,
|
|
@@ -4447,28 +4825,28 @@ var Text = (0, import_react47.forwardRef)(function Text2({
|
|
|
4447
4825
|
children
|
|
4448
4826
|
);
|
|
4449
4827
|
});
|
|
4450
|
-
var Heading1 = (0,
|
|
4451
|
-
(props, ref) => /* @__PURE__ */
|
|
4828
|
+
var Heading1 = (0, import_react49.forwardRef)(
|
|
4829
|
+
(props, ref) => /* @__PURE__ */ import_react49.default.createElement(Text, { ref, ...props, variant: "heading1" })
|
|
4452
4830
|
);
|
|
4453
|
-
var Heading2 = (0,
|
|
4454
|
-
(props, ref) => /* @__PURE__ */
|
|
4831
|
+
var Heading2 = (0, import_react49.forwardRef)(
|
|
4832
|
+
(props, ref) => /* @__PURE__ */ import_react49.default.createElement(Text, { ref, ...props, variant: "heading2" })
|
|
4455
4833
|
);
|
|
4456
|
-
var Heading3 = (0,
|
|
4457
|
-
(props, ref) => /* @__PURE__ */
|
|
4834
|
+
var Heading3 = (0, import_react49.forwardRef)(
|
|
4835
|
+
(props, ref) => /* @__PURE__ */ import_react49.default.createElement(Text, { ref, ...props, variant: "heading3" })
|
|
4458
4836
|
);
|
|
4459
|
-
var Heading4 = (0,
|
|
4460
|
-
(props, ref) => /* @__PURE__ */
|
|
4837
|
+
var Heading4 = (0, import_react49.forwardRef)(
|
|
4838
|
+
(props, ref) => /* @__PURE__ */ import_react49.default.createElement(Text, { ref, ...props, variant: "heading4" })
|
|
4461
4839
|
);
|
|
4462
|
-
var Heading5 = (0,
|
|
4463
|
-
(props, ref) => /* @__PURE__ */
|
|
4840
|
+
var Heading5 = (0, import_react49.forwardRef)(
|
|
4841
|
+
(props, ref) => /* @__PURE__ */ import_react49.default.createElement(Text, { ref, ...props, variant: "heading5" })
|
|
4464
4842
|
);
|
|
4465
|
-
var Body = (0,
|
|
4466
|
-
(props, ref) => /* @__PURE__ */
|
|
4843
|
+
var Body = (0, import_react49.forwardRef)(
|
|
4844
|
+
(props, ref) => /* @__PURE__ */ import_react49.default.createElement(Text, { ref, ...props, variant: "body" })
|
|
4467
4845
|
);
|
|
4468
|
-
var Small = (0,
|
|
4469
|
-
(props, ref) => /* @__PURE__ */
|
|
4846
|
+
var Small = (0, import_react49.forwardRef)(
|
|
4847
|
+
(props, ref) => /* @__PURE__ */ import_react49.default.createElement(Text, { ref, ...props, variant: "small" })
|
|
4470
4848
|
);
|
|
4471
|
-
var Italic = ({ children }) => /* @__PURE__ */
|
|
4849
|
+
var Italic = ({ children }) => /* @__PURE__ */ import_react49.default.createElement(
|
|
4472
4850
|
"span",
|
|
4473
4851
|
{
|
|
4474
4852
|
style: {
|
|
@@ -4480,9 +4858,9 @@ var Italic = ({ children }) => /* @__PURE__ */ import_react47.default.createElem
|
|
|
4480
4858
|
|
|
4481
4859
|
// src/components/InputFieldWithCompletions.tsx
|
|
4482
4860
|
function filterWithGroupedSections(items, query) {
|
|
4483
|
-
const sections = (0,
|
|
4861
|
+
const sections = (0, import_noya_utils9.chunkBy)(items, (a, b) => b.type !== "sectionHeader");
|
|
4484
4862
|
return sections.flatMap((section) => {
|
|
4485
|
-
const [headers, regular] = (0,
|
|
4863
|
+
const [headers, regular] = (0, import_noya_utils9.partition)(
|
|
4486
4864
|
section,
|
|
4487
4865
|
(item) => item.type === "sectionHeader"
|
|
4488
4866
|
);
|
|
@@ -4510,15 +4888,15 @@ var CompletionToken = import_styled_components27.default.span(
|
|
|
4510
4888
|
whiteSpace: "pre"
|
|
4511
4889
|
})
|
|
4512
4890
|
);
|
|
4513
|
-
var CompletionMenu = (0,
|
|
4514
|
-
(0,
|
|
4891
|
+
var CompletionMenu = (0, import_react50.memo)(
|
|
4892
|
+
(0, import_react50.forwardRef)(function CompletionMenu2({
|
|
4515
4893
|
items,
|
|
4516
4894
|
selectedIndex,
|
|
4517
4895
|
onSelectItem,
|
|
4518
4896
|
onHoverIndex,
|
|
4519
4897
|
listSize
|
|
4520
4898
|
}, forwardedRef) {
|
|
4521
|
-
return /* @__PURE__ */
|
|
4899
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
4522
4900
|
ListView.Root,
|
|
4523
4901
|
{
|
|
4524
4902
|
ref: forwardedRef,
|
|
@@ -4530,13 +4908,13 @@ var CompletionMenu = (0, import_react48.memo)(
|
|
|
4530
4908
|
sectionHeaderVariant: "label",
|
|
4531
4909
|
renderItem: (item, i) => {
|
|
4532
4910
|
if (item.type === "sectionHeader") {
|
|
4533
|
-
return /* @__PURE__ */
|
|
4911
|
+
return /* @__PURE__ */ import_react50.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, item.name);
|
|
4534
4912
|
}
|
|
4535
4913
|
const tokens = fuzzyTokenize({
|
|
4536
4914
|
item: item.name,
|
|
4537
4915
|
itemScore: item
|
|
4538
4916
|
});
|
|
4539
|
-
return /* @__PURE__ */
|
|
4917
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
4540
4918
|
ListView.Row,
|
|
4541
4919
|
{
|
|
4542
4920
|
key: item.id,
|
|
@@ -4548,16 +4926,16 @@ var CompletionMenu = (0, import_react48.memo)(
|
|
|
4548
4926
|
}
|
|
4549
4927
|
}
|
|
4550
4928
|
},
|
|
4551
|
-
tokens.map((token, j) => /* @__PURE__ */
|
|
4552
|
-
item.icon && /* @__PURE__ */
|
|
4929
|
+
tokens.map((token, j) => /* @__PURE__ */ import_react50.default.createElement(CompletionToken, { key: j, type: token.type }, token.text)),
|
|
4930
|
+
item.icon && /* @__PURE__ */ import_react50.default.createElement(import_react50.default.Fragment, null, /* @__PURE__ */ import_react50.default.createElement(Spacer.Horizontal, null), item.icon)
|
|
4553
4931
|
);
|
|
4554
4932
|
}
|
|
4555
4933
|
}
|
|
4556
4934
|
);
|
|
4557
4935
|
})
|
|
4558
4936
|
);
|
|
4559
|
-
var InputFieldWithCompletions = (0,
|
|
4560
|
-
(0,
|
|
4937
|
+
var InputFieldWithCompletions = (0, import_react50.memo)(
|
|
4938
|
+
(0, import_react50.forwardRef)(function InputFieldWithCompletions2({
|
|
4561
4939
|
loading,
|
|
4562
4940
|
initialValue = "",
|
|
4563
4941
|
placeholder,
|
|
@@ -4575,13 +4953,13 @@ var InputFieldWithCompletions = (0, import_react48.memo)(
|
|
|
4575
4953
|
hideChildrenWhenFocused = false,
|
|
4576
4954
|
hideMenuWhenEmptyValue = false
|
|
4577
4955
|
}, forwardedRef) {
|
|
4578
|
-
const ref = (0,
|
|
4579
|
-
const [isFocused, setIsFocused] = (0,
|
|
4580
|
-
const [state, _setState] = (0,
|
|
4956
|
+
const ref = (0, import_react50.useRef)(null);
|
|
4957
|
+
const [isFocused, setIsFocused] = (0, import_react50.useState)(false);
|
|
4958
|
+
const [state, _setState] = (0, import_react50.useState)({
|
|
4581
4959
|
filter: initialValue,
|
|
4582
4960
|
selectedIndex: 0
|
|
4583
4961
|
});
|
|
4584
|
-
const updateState = (0,
|
|
4962
|
+
const updateState = (0, import_react50.useCallback)(
|
|
4585
4963
|
(newState, hoverItem) => {
|
|
4586
4964
|
const nextState = { ...state, ...newState };
|
|
4587
4965
|
const nextItems = filterWithGroupedSections(items, nextState.filter);
|
|
@@ -4610,20 +4988,20 @@ var InputFieldWithCompletions = (0, import_react48.memo)(
|
|
|
4610
4988
|
},
|
|
4611
4989
|
[items, onChange, onHoverItem, state]
|
|
4612
4990
|
);
|
|
4613
|
-
const initialValueRef = (0,
|
|
4614
|
-
(0,
|
|
4991
|
+
const initialValueRef = (0, import_react50.useRef)(initialValue);
|
|
4992
|
+
(0, import_react50.useLayoutEffect)(() => {
|
|
4615
4993
|
if (initialValueRef.current === initialValue)
|
|
4616
4994
|
return;
|
|
4617
4995
|
initialValueRef.current = initialValue;
|
|
4618
4996
|
updateState({ filter: initialValue });
|
|
4619
4997
|
}, [initialValue, updateState]);
|
|
4620
4998
|
const { filter, selectedIndex } = state;
|
|
4621
|
-
const listRef =
|
|
4622
|
-
const filteredItems = (0,
|
|
4999
|
+
const listRef = import_react50.default.useRef(null);
|
|
5000
|
+
const filteredItems = (0, import_react50.useMemo)(
|
|
4623
5001
|
() => filterWithGroupedSections(items, filter),
|
|
4624
5002
|
[items, filter]
|
|
4625
5003
|
);
|
|
4626
|
-
const [normalItems, sectionHeaderItems] = (0,
|
|
5004
|
+
const [normalItems, sectionHeaderItems] = (0, import_noya_utils9.partition)(
|
|
4627
5005
|
filteredItems,
|
|
4628
5006
|
(item) => item.type !== "sectionHeader"
|
|
4629
5007
|
);
|
|
@@ -4635,13 +5013,13 @@ var InputFieldWithCompletions = (0, import_react48.memo)(
|
|
|
4635
5013
|
),
|
|
4636
5014
|
ListView.rowHeight * 10.5
|
|
4637
5015
|
);
|
|
4638
|
-
(0,
|
|
5016
|
+
(0, import_react50.useEffect)(() => {
|
|
4639
5017
|
if (listRef.current) {
|
|
4640
5018
|
listRef.current.scrollToIndex(selectedIndex);
|
|
4641
5019
|
}
|
|
4642
5020
|
}, [selectedIndex]);
|
|
4643
|
-
const lastSubmittedValueRef = (0,
|
|
4644
|
-
const selectItem = (0,
|
|
5021
|
+
const lastSubmittedValueRef = (0, import_react50.useRef)(void 0);
|
|
5022
|
+
const selectItem = (0, import_react50.useCallback)(
|
|
4645
5023
|
(item) => {
|
|
4646
5024
|
if (item.type === "sectionHeader")
|
|
4647
5025
|
return;
|
|
@@ -4657,17 +5035,17 @@ var InputFieldWithCompletions = (0, import_react48.memo)(
|
|
|
4657
5035
|
},
|
|
4658
5036
|
[filter, onSelectItem, onHoverItem, ref]
|
|
4659
5037
|
);
|
|
4660
|
-
const handleChange = (0,
|
|
5038
|
+
const handleChange = (0, import_react50.useCallback)(
|
|
4661
5039
|
(value) => updateState({ selectedIndex: 0, filter: value }),
|
|
4662
5040
|
[updateState]
|
|
4663
5041
|
);
|
|
4664
|
-
const handleBlur = (0,
|
|
5042
|
+
const handleBlur = (0, import_react50.useCallback)(() => {
|
|
4665
5043
|
setIsFocused(false);
|
|
4666
5044
|
const didSubmit = lastSubmittedValueRef.current?.filter === filter;
|
|
4667
5045
|
updateState({ selectedIndex: 0, filter: initialValue }, "resetHover");
|
|
4668
5046
|
onBlur?.(didSubmit, filter);
|
|
4669
5047
|
}, [filter, initialValue, onBlur, updateState]);
|
|
4670
|
-
const handleFocus = (0,
|
|
5048
|
+
const handleFocus = (0, import_react50.useCallback)(
|
|
4671
5049
|
(event) => {
|
|
4672
5050
|
setIsFocused(true);
|
|
4673
5051
|
updateState({ selectedIndex: 0, filter: initialValue });
|
|
@@ -4675,11 +5053,11 @@ var InputFieldWithCompletions = (0, import_react48.memo)(
|
|
|
4675
5053
|
},
|
|
4676
5054
|
[initialValue, onFocus, updateState]
|
|
4677
5055
|
);
|
|
4678
|
-
const handleIndexChange = (0,
|
|
5056
|
+
const handleIndexChange = (0, import_react50.useCallback)(
|
|
4679
5057
|
(index) => updateState({ selectedIndex: index }),
|
|
4680
5058
|
[updateState]
|
|
4681
5059
|
);
|
|
4682
|
-
const handleKeyDown = (0,
|
|
5060
|
+
const handleKeyDown = (0, import_react50.useCallback)(
|
|
4683
5061
|
(event) => {
|
|
4684
5062
|
let handled = false;
|
|
4685
5063
|
switch (event.key) {
|
|
@@ -4743,7 +5121,7 @@ var InputFieldWithCompletions = (0, import_react48.memo)(
|
|
|
4743
5121
|
);
|
|
4744
5122
|
const display = !filter && hideMenuWhenEmptyValue ? "none" : "flex";
|
|
4745
5123
|
const typeaheadValue = filteredItems[selectedIndex]?.name;
|
|
4746
|
-
(0,
|
|
5124
|
+
(0, import_react50.useImperativeHandle)(forwardedRef, () => ({
|
|
4747
5125
|
focus: () => {
|
|
4748
5126
|
ref.current?.focus();
|
|
4749
5127
|
},
|
|
@@ -4754,14 +5132,14 @@ var InputFieldWithCompletions = (0, import_react48.memo)(
|
|
|
4754
5132
|
ref.current?.setSelectionRange(0, ref.current.value.length);
|
|
4755
5133
|
}
|
|
4756
5134
|
}));
|
|
4757
|
-
return /* @__PURE__ */
|
|
5135
|
+
return /* @__PURE__ */ import_react50.default.createElement(
|
|
4758
5136
|
InputField.Root,
|
|
4759
5137
|
{
|
|
4760
5138
|
size: size2,
|
|
4761
5139
|
labelSize: 16,
|
|
4762
5140
|
renderPopoverContent: ({ width }) => {
|
|
4763
5141
|
const listSize = { width, height };
|
|
4764
|
-
return /* @__PURE__ */
|
|
5142
|
+
return /* @__PURE__ */ import_react50.default.createElement(Stack.V, { flex: `0 0 ${height}px`, display }, filteredItems.length > 0 ? /* @__PURE__ */ import_react50.default.createElement(
|
|
4765
5143
|
CompletionMenu,
|
|
4766
5144
|
{
|
|
4767
5145
|
ref: listRef,
|
|
@@ -4771,7 +5149,7 @@ var InputFieldWithCompletions = (0, import_react48.memo)(
|
|
|
4771
5149
|
onHoverIndex: handleIndexChange,
|
|
4772
5150
|
listSize
|
|
4773
5151
|
}
|
|
4774
|
-
) : /* @__PURE__ */
|
|
5152
|
+
) : /* @__PURE__ */ import_react50.default.createElement(
|
|
4775
5153
|
Stack.V,
|
|
4776
5154
|
{
|
|
4777
5155
|
height: "100px",
|
|
@@ -4779,11 +5157,11 @@ var InputFieldWithCompletions = (0, import_react48.memo)(
|
|
|
4779
5157
|
alignItems: "center",
|
|
4780
5158
|
justifyContent: "center"
|
|
4781
5159
|
},
|
|
4782
|
-
/* @__PURE__ */
|
|
5160
|
+
/* @__PURE__ */ import_react50.default.createElement(Small, { color: "textDisabled" }, loading ? "Loading" : "No results")
|
|
4783
5161
|
));
|
|
4784
5162
|
}
|
|
4785
5163
|
},
|
|
4786
|
-
/* @__PURE__ */
|
|
5164
|
+
/* @__PURE__ */ import_react50.default.createElement(
|
|
4787
5165
|
InputField.Input,
|
|
4788
5166
|
{
|
|
4789
5167
|
ref,
|
|
@@ -4807,9 +5185,9 @@ var InputFieldWithCompletions = (0, import_react48.memo)(
|
|
|
4807
5185
|
"aria-controls": "component-listbox"
|
|
4808
5186
|
}
|
|
4809
5187
|
),
|
|
4810
|
-
filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */
|
|
5188
|
+
filter && typeaheadValue && typeaheadValue.startsWith(filter) && /* @__PURE__ */ import_react50.default.createElement(InputField.Typeahead, { value: typeaheadValue }),
|
|
4811
5189
|
(!isFocused || !hideChildrenWhenFocused) && children,
|
|
4812
|
-
loading && isFocused && /* @__PURE__ */
|
|
5190
|
+
loading && isFocused && /* @__PURE__ */ import_react50.default.createElement(InputField.Label, null, /* @__PURE__ */ import_react50.default.createElement(ActivityIndicator, null))
|
|
4813
5191
|
);
|
|
4814
5192
|
})
|
|
4815
5193
|
);
|
|
@@ -4831,7 +5209,7 @@ function getNextIndex(items, currentIndex, direction, isDisabled) {
|
|
|
4831
5209
|
}
|
|
4832
5210
|
|
|
4833
5211
|
// src/components/Label.tsx
|
|
4834
|
-
var
|
|
5212
|
+
var import_react51 = __toESM(require("react"));
|
|
4835
5213
|
var import_styled_components28 = __toESM(require("styled-components"));
|
|
4836
5214
|
var LabelLabel = import_styled_components28.default.label(
|
|
4837
5215
|
({ theme, selected }) => ({
|
|
@@ -4860,17 +5238,17 @@ var LabelContainer2 = import_styled_components28.default.span(({ theme }) => ({
|
|
|
4860
5238
|
alignItems: "center"
|
|
4861
5239
|
}));
|
|
4862
5240
|
function LabelRoot({ label, children }) {
|
|
4863
|
-
return /* @__PURE__ */
|
|
5241
|
+
return /* @__PURE__ */ import_react51.default.createElement(LabelContainer2, null, children, label && /* @__PURE__ */ import_react51.default.createElement(import_react51.default.Fragment, null, /* @__PURE__ */ import_react51.default.createElement(Spacer.Vertical, { size: 2 }), /* @__PURE__ */ import_react51.default.createElement(LabelLabel, null, label)));
|
|
4864
5242
|
}
|
|
4865
5243
|
var Label;
|
|
4866
5244
|
((_Label) => {
|
|
4867
|
-
_Label.Label = (0,
|
|
4868
|
-
_Label.Root = (0,
|
|
5245
|
+
_Label.Label = (0, import_react51.memo)(LabelLabel);
|
|
5246
|
+
_Label.Root = (0, import_react51.memo)(LabelRoot);
|
|
4869
5247
|
})(Label || (Label = {}));
|
|
4870
5248
|
|
|
4871
5249
|
// src/components/LabeledElementView.tsx
|
|
4872
5250
|
var kiwi = __toESM(require("kiwi.js"));
|
|
4873
|
-
var
|
|
5251
|
+
var import_react52 = __toESM(require("react"));
|
|
4874
5252
|
var import_styled_components29 = __toESM(require("styled-components"));
|
|
4875
5253
|
var Container4 = import_styled_components29.default.div(({ theme }) => ({
|
|
4876
5254
|
display: "flex",
|
|
@@ -4889,24 +5267,24 @@ var Labels = import_styled_components29.default.div(({ theme }) => ({
|
|
|
4889
5267
|
overflow: "hidden",
|
|
4890
5268
|
userSelect: "none"
|
|
4891
5269
|
}));
|
|
4892
|
-
var LabeledElementView = (0,
|
|
5270
|
+
var LabeledElementView = (0, import_react52.memo)(function LabeledElementView2({
|
|
4893
5271
|
children,
|
|
4894
5272
|
renderLabel
|
|
4895
5273
|
}) {
|
|
4896
|
-
const elementIds =
|
|
4897
|
-
(child) => (0,
|
|
5274
|
+
const elementIds = import_react52.Children.toArray(children).flatMap(
|
|
5275
|
+
(child) => (0, import_react52.isValidElement)(child) && child.type === import_react52.Fragment ? child.props.children : [child]
|
|
4898
5276
|
).map(
|
|
4899
|
-
(child) => (0,
|
|
5277
|
+
(child) => (0, import_react52.isValidElement)(child) && "id" in child.props ? child.props.id : null
|
|
4900
5278
|
).filter((id) => !!id);
|
|
4901
5279
|
const serializedIds = elementIds.join(",");
|
|
4902
|
-
const containerRef = (0,
|
|
4903
|
-
const refs = (0,
|
|
5280
|
+
const containerRef = (0, import_react52.useRef)(null);
|
|
5281
|
+
const refs = (0, import_react52.useMemo)(() => {
|
|
4904
5282
|
return Object.fromEntries(
|
|
4905
|
-
serializedIds.split(",").map((id) => [id, (0,
|
|
5283
|
+
serializedIds.split(",").map((id) => [id, (0, import_react52.createRef)()])
|
|
4906
5284
|
);
|
|
4907
5285
|
}, [serializedIds]);
|
|
4908
|
-
const labelElements = (0,
|
|
4909
|
-
return serializedIds.split(",").map((id, index) => /* @__PURE__ */
|
|
5286
|
+
const labelElements = (0, import_react52.useMemo)(() => {
|
|
5287
|
+
return serializedIds.split(",").map((id, index) => /* @__PURE__ */ import_react52.default.createElement(
|
|
4910
5288
|
"span",
|
|
4911
5289
|
{
|
|
4912
5290
|
key: id,
|
|
@@ -4919,7 +5297,7 @@ var LabeledElementView = (0, import_react50.memo)(function LabeledElementView2({
|
|
|
4919
5297
|
})
|
|
4920
5298
|
));
|
|
4921
5299
|
}, [refs, serializedIds, renderLabel]);
|
|
4922
|
-
(0,
|
|
5300
|
+
(0, import_react52.useLayoutEffect)(() => {
|
|
4923
5301
|
if (!containerRef.current)
|
|
4924
5302
|
return;
|
|
4925
5303
|
const containerRect = containerRef.current.getBoundingClientRect();
|
|
@@ -4984,13 +5362,13 @@ var LabeledElementView = (0, import_react50.memo)(function LabeledElementView2({
|
|
|
4984
5362
|
`${Math.max(...heights)}px`
|
|
4985
5363
|
);
|
|
4986
5364
|
}, [refs, labelElements]);
|
|
4987
|
-
return /* @__PURE__ */
|
|
5365
|
+
return /* @__PURE__ */ import_react52.default.createElement(Container4, { ref: containerRef }, /* @__PURE__ */ import_react52.default.createElement(Tools, null, children), /* @__PURE__ */ import_react52.default.createElement(Labels, null, labelElements));
|
|
4988
5366
|
});
|
|
4989
5367
|
|
|
4990
5368
|
// src/components/Progress.tsx
|
|
4991
|
-
var
|
|
5369
|
+
var import_noya_utils10 = require("@noya-app/noya-utils");
|
|
4992
5370
|
var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"));
|
|
4993
|
-
var
|
|
5371
|
+
var import_react53 = __toESM(require("react"));
|
|
4994
5372
|
var import_styled_components30 = __toESM(require("styled-components"));
|
|
4995
5373
|
function Progress({
|
|
4996
5374
|
value,
|
|
@@ -4999,8 +5377,8 @@ function Progress({
|
|
|
4999
5377
|
flex,
|
|
5000
5378
|
variant = "normal"
|
|
5001
5379
|
}) {
|
|
5002
|
-
const clampedValue = (0,
|
|
5003
|
-
return /* @__PURE__ */
|
|
5380
|
+
const clampedValue = (0, import_noya_utils10.clamp)(value, 0, 100);
|
|
5381
|
+
return /* @__PURE__ */ import_react53.default.createElement(ProgressRoot, { value: clampedValue, style: { width, flex, height } }, /* @__PURE__ */ import_react53.default.createElement(
|
|
5004
5382
|
ProgressIndicator,
|
|
5005
5383
|
{
|
|
5006
5384
|
variant,
|
|
@@ -5025,7 +5403,7 @@ var ProgressIndicator = (0, import_styled_components30.default)(ProgressPrimitiv
|
|
|
5025
5403
|
|
|
5026
5404
|
// src/components/RadioGroup.tsx
|
|
5027
5405
|
var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"));
|
|
5028
|
-
var
|
|
5406
|
+
var import_react54 = __toESM(require("react"));
|
|
5029
5407
|
var import_styled_components31 = __toESM(require("styled-components"));
|
|
5030
5408
|
var ignoredProps3 = /* @__PURE__ */ new Set(["colorScheme"]);
|
|
5031
5409
|
var StyledRoot = (0, import_styled_components31.default)(ToggleGroupPrimitive.Root).withConfig({
|
|
@@ -5078,9 +5456,9 @@ var StyledItem = (0, import_styled_components31.default)(ToggleGroupPrimitive.It
|
|
|
5078
5456
|
boxShadow: `0 0 0 1px ${theme.colors.sidebar.background}, 0 0 0 3px ${theme.colors[colorScheme ?? "primary"]}`
|
|
5079
5457
|
}
|
|
5080
5458
|
}));
|
|
5081
|
-
var ToggleGroupItem = (0,
|
|
5082
|
-
const { colorScheme } = (0,
|
|
5083
|
-
const itemElement = /* @__PURE__ */
|
|
5459
|
+
var ToggleGroupItem = (0, import_react54.forwardRef)(function ToggleGroupItem2({ value, tooltip, children, disabled = false }, forwardedRef) {
|
|
5460
|
+
const { colorScheme } = (0, import_react54.useContext)(RadioGroupContext);
|
|
5461
|
+
const itemElement = /* @__PURE__ */ import_react54.default.createElement(
|
|
5084
5462
|
StyledItem,
|
|
5085
5463
|
{
|
|
5086
5464
|
ref: forwardedRef,
|
|
@@ -5090,9 +5468,9 @@ var ToggleGroupItem = (0, import_react52.forwardRef)(function ToggleGroupItem2({
|
|
|
5090
5468
|
},
|
|
5091
5469
|
children
|
|
5092
5470
|
);
|
|
5093
|
-
return tooltip ? /* @__PURE__ */
|
|
5471
|
+
return tooltip ? /* @__PURE__ */ import_react54.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
|
|
5094
5472
|
});
|
|
5095
|
-
var RadioGroupContext = (0,
|
|
5473
|
+
var RadioGroupContext = (0, import_react54.createContext)({
|
|
5096
5474
|
colorScheme: "primary"
|
|
5097
5475
|
});
|
|
5098
5476
|
function ToggleGroupRoot({
|
|
@@ -5103,8 +5481,8 @@ function ToggleGroupRoot({
|
|
|
5103
5481
|
allowEmpty,
|
|
5104
5482
|
children
|
|
5105
5483
|
}) {
|
|
5106
|
-
const contextValue = (0,
|
|
5107
|
-
const handleValueChange = (0,
|
|
5484
|
+
const contextValue = (0, import_react54.useMemo)(() => ({ colorScheme }), [colorScheme]);
|
|
5485
|
+
const handleValueChange = (0, import_react54.useCallback)(
|
|
5108
5486
|
(value2) => {
|
|
5109
5487
|
if (!allowEmpty && !value2)
|
|
5110
5488
|
return;
|
|
@@ -5112,7 +5490,7 @@ function ToggleGroupRoot({
|
|
|
5112
5490
|
},
|
|
5113
5491
|
[allowEmpty, onValueChange]
|
|
5114
5492
|
);
|
|
5115
|
-
return /* @__PURE__ */
|
|
5493
|
+
return /* @__PURE__ */ import_react54.default.createElement(RadioGroupContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react54.default.createElement(
|
|
5116
5494
|
StyledRoot,
|
|
5117
5495
|
{
|
|
5118
5496
|
id,
|
|
@@ -5126,30 +5504,30 @@ function ToggleGroupRoot({
|
|
|
5126
5504
|
}
|
|
5127
5505
|
var RadioGroup;
|
|
5128
5506
|
((RadioGroup2) => {
|
|
5129
|
-
RadioGroup2.Root = (0,
|
|
5130
|
-
RadioGroup2.Item = (0,
|
|
5507
|
+
RadioGroup2.Root = (0, import_react54.memo)(ToggleGroupRoot);
|
|
5508
|
+
RadioGroup2.Item = (0, import_react54.memo)(ToggleGroupItem);
|
|
5131
5509
|
})(RadioGroup || (RadioGroup = {}));
|
|
5132
5510
|
|
|
5133
5511
|
// src/components/Select.tsx
|
|
5134
|
-
var
|
|
5135
|
-
var
|
|
5512
|
+
var import_noya_utils11 = require("@noya-app/noya-utils");
|
|
5513
|
+
var import_react55 = __toESM(require("react"));
|
|
5136
5514
|
var import_styled_components32 = __toESM(require("styled-components"));
|
|
5137
|
-
var SelectContext = (0,
|
|
5138
|
-
var SelectOption = (0,
|
|
5515
|
+
var SelectContext = (0, import_react55.createContext)(void 0);
|
|
5516
|
+
var SelectOption = (0, import_react55.memo)(function SelectOption2({
|
|
5139
5517
|
value,
|
|
5140
5518
|
title,
|
|
5141
5519
|
onSelect
|
|
5142
5520
|
}) {
|
|
5143
|
-
const { addListener, removeListener } = (0,
|
|
5144
|
-
(0,
|
|
5521
|
+
const { addListener, removeListener } = (0, import_react55.useContext)(SelectContext);
|
|
5522
|
+
(0, import_react55.useEffect)(() => {
|
|
5145
5523
|
if (!onSelect)
|
|
5146
5524
|
return;
|
|
5147
5525
|
addListener(value, onSelect);
|
|
5148
5526
|
return () => removeListener(value);
|
|
5149
5527
|
}, [addListener, onSelect, removeListener, value]);
|
|
5150
|
-
return /* @__PURE__ */
|
|
5528
|
+
return /* @__PURE__ */ import_react55.default.createElement("option", { value }, title ?? value);
|
|
5151
5529
|
});
|
|
5152
|
-
var createChevronSVGString = (0,
|
|
5530
|
+
var createChevronSVGString = (0, import_noya_utils11.memoize)(
|
|
5153
5531
|
(color) => `
|
|
5154
5532
|
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 15 15' fill='${color}'>
|
|
5155
5533
|
<path d='M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z'></path>
|
|
@@ -5187,7 +5565,7 @@ var SelectElement = import_styled_components32.default.select(
|
|
|
5187
5565
|
}
|
|
5188
5566
|
})
|
|
5189
5567
|
);
|
|
5190
|
-
var Select = (0,
|
|
5568
|
+
var Select = (0, import_react55.memo)(function Select2({
|
|
5191
5569
|
id,
|
|
5192
5570
|
flex,
|
|
5193
5571
|
value,
|
|
@@ -5197,8 +5575,8 @@ var Select = (0, import_react53.memo)(function Select2({
|
|
|
5197
5575
|
const getTitle = "options" in rest ? rest.getTitle : void 0;
|
|
5198
5576
|
const onChange = "options" in rest ? rest.onChange : void 0;
|
|
5199
5577
|
const children = "options" in rest ? void 0 : rest.children;
|
|
5200
|
-
const optionElements = (0,
|
|
5201
|
-
() => options ? options.map((option, index) => /* @__PURE__ */
|
|
5578
|
+
const optionElements = (0, import_react55.useMemo)(
|
|
5579
|
+
() => options ? options.map((option, index) => /* @__PURE__ */ import_react55.default.createElement(
|
|
5202
5580
|
SelectOption,
|
|
5203
5581
|
{
|
|
5204
5582
|
key: option,
|
|
@@ -5209,21 +5587,21 @@ var Select = (0, import_react53.memo)(function Select2({
|
|
|
5209
5587
|
)) : children,
|
|
5210
5588
|
[children, getTitle, onChange, options]
|
|
5211
5589
|
);
|
|
5212
|
-
const listeners = (0,
|
|
5213
|
-
const contextValue = (0,
|
|
5590
|
+
const listeners = (0, import_react55.useRef)(/* @__PURE__ */ new Map());
|
|
5591
|
+
const contextValue = (0, import_react55.useMemo)(
|
|
5214
5592
|
() => ({
|
|
5215
5593
|
addListener: (value2, listener) => listeners.current.set(value2, listener),
|
|
5216
5594
|
removeListener: (value2) => listeners.current.delete(value2)
|
|
5217
5595
|
}),
|
|
5218
5596
|
[]
|
|
5219
5597
|
);
|
|
5220
|
-
return /* @__PURE__ */
|
|
5598
|
+
return /* @__PURE__ */ import_react55.default.createElement(SelectContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react55.default.createElement(
|
|
5221
5599
|
SelectElement,
|
|
5222
5600
|
{
|
|
5223
5601
|
id,
|
|
5224
5602
|
flex,
|
|
5225
5603
|
value,
|
|
5226
|
-
onChange: (0,
|
|
5604
|
+
onChange: (0, import_react55.useCallback)(
|
|
5227
5605
|
(event) => listeners.current.get(event.target.value)?.(),
|
|
5228
5606
|
[listeners]
|
|
5229
5607
|
),
|
|
@@ -5235,7 +5613,7 @@ var Select = (0, import_react53.memo)(function Select2({
|
|
|
5235
5613
|
|
|
5236
5614
|
// src/components/Slider.tsx
|
|
5237
5615
|
var RadixSlider = __toESM(require("@radix-ui/react-slider"));
|
|
5238
|
-
var
|
|
5616
|
+
var import_react56 = __toESM(require("react"));
|
|
5239
5617
|
var import_styled_components33 = __toESM(require("styled-components"));
|
|
5240
5618
|
var StyledSlider = (0, import_styled_components33.default)(RadixSlider.Root)({
|
|
5241
5619
|
flex: "1",
|
|
@@ -5276,17 +5654,17 @@ var Slider = function Slider2({
|
|
|
5276
5654
|
min,
|
|
5277
5655
|
max
|
|
5278
5656
|
}) {
|
|
5279
|
-
const arrayValue = (0,
|
|
5657
|
+
const arrayValue = (0, import_react56.useMemo)(
|
|
5280
5658
|
() => [Math.min(Math.max(value, min), max)],
|
|
5281
5659
|
[value, min, max]
|
|
5282
5660
|
);
|
|
5283
|
-
const handleValueChange = (0,
|
|
5661
|
+
const handleValueChange = (0, import_react56.useCallback)(
|
|
5284
5662
|
(arrayValue2) => {
|
|
5285
5663
|
onValueChange(arrayValue2[0]);
|
|
5286
5664
|
},
|
|
5287
5665
|
[onValueChange]
|
|
5288
5666
|
);
|
|
5289
|
-
return /* @__PURE__ */
|
|
5667
|
+
return /* @__PURE__ */ import_react56.default.createElement(
|
|
5290
5668
|
StyledSlider,
|
|
5291
5669
|
{
|
|
5292
5670
|
min,
|
|
@@ -5295,14 +5673,14 @@ var Slider = function Slider2({
|
|
|
5295
5673
|
value: arrayValue,
|
|
5296
5674
|
onValueChange: handleValueChange
|
|
5297
5675
|
},
|
|
5298
|
-
/* @__PURE__ */
|
|
5299
|
-
/* @__PURE__ */
|
|
5676
|
+
/* @__PURE__ */ import_react56.default.createElement(StyledTrack, null, /* @__PURE__ */ import_react56.default.createElement(StyledRange, null)),
|
|
5677
|
+
/* @__PURE__ */ import_react56.default.createElement(StyledThumb2, null)
|
|
5300
5678
|
);
|
|
5301
5679
|
};
|
|
5302
5680
|
|
|
5303
5681
|
// src/components/Switch.tsx
|
|
5304
5682
|
var SwitchPrimitive = __toESM(require("@radix-ui/react-switch"));
|
|
5305
|
-
var
|
|
5683
|
+
var import_react57 = __toESM(require("react"));
|
|
5306
5684
|
var import_styled_components34 = __toESM(require("styled-components"));
|
|
5307
5685
|
var SwitchRoot = (0, import_styled_components34.default)(SwitchPrimitive.Root)(({ theme, colorScheme: variant }) => ({
|
|
5308
5686
|
all: "unset",
|
|
@@ -5338,7 +5716,7 @@ var Switch = function Switch2({
|
|
|
5338
5716
|
onChange,
|
|
5339
5717
|
colorScheme = "normal"
|
|
5340
5718
|
}) {
|
|
5341
|
-
return /* @__PURE__ */
|
|
5719
|
+
return /* @__PURE__ */ import_react57.default.createElement(
|
|
5342
5720
|
SwitchRoot,
|
|
5343
5721
|
{
|
|
5344
5722
|
colorScheme,
|
|
@@ -5347,42 +5725,42 @@ var Switch = function Switch2({
|
|
|
5347
5725
|
onChange(newValue);
|
|
5348
5726
|
}
|
|
5349
5727
|
},
|
|
5350
|
-
/* @__PURE__ */
|
|
5728
|
+
/* @__PURE__ */ import_react57.default.createElement(SwitchThumb, null)
|
|
5351
5729
|
);
|
|
5352
5730
|
};
|
|
5353
5731
|
|
|
5354
5732
|
// src/components/TreeView.tsx
|
|
5355
|
-
var
|
|
5356
|
-
var TreeRow = (0,
|
|
5733
|
+
var import_react58 = __toESM(require("react"));
|
|
5734
|
+
var TreeRow = (0, import_react58.forwardRef)(function TreeRow2({
|
|
5357
5735
|
icon,
|
|
5358
5736
|
expanded,
|
|
5359
5737
|
onClickChevron,
|
|
5360
5738
|
children,
|
|
5361
5739
|
...rest
|
|
5362
5740
|
}, forwardedRef) {
|
|
5363
|
-
const { expandable } = (0,
|
|
5364
|
-
const handleClickChevron = (0,
|
|
5741
|
+
const { expandable } = (0, import_react58.useContext)(ListView.RowContext);
|
|
5742
|
+
const handleClickChevron = (0, import_react58.useCallback)(
|
|
5365
5743
|
(event) => {
|
|
5366
5744
|
event.stopPropagation();
|
|
5367
5745
|
onClickChevron?.({ altKey: event.altKey });
|
|
5368
5746
|
},
|
|
5369
5747
|
[onClickChevron]
|
|
5370
5748
|
);
|
|
5371
|
-
return /* @__PURE__ */
|
|
5749
|
+
return /* @__PURE__ */ import_react58.default.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && /* @__PURE__ */ import_react58.default.createElement(import_react58.default.Fragment, null, expanded === void 0 ? /* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ import_react58.default.createElement(
|
|
5372
5750
|
IconButton,
|
|
5373
5751
|
{
|
|
5374
5752
|
iconName: expanded ? "ChevronDownIcon" : "ChevronRightIcon",
|
|
5375
5753
|
onClick: handleClickChevron,
|
|
5376
5754
|
selected: rest.selected
|
|
5377
5755
|
}
|
|
5378
|
-
), /* @__PURE__ */
|
|
5756
|
+
), /* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ import_react58.default.createElement(import_react58.default.Fragment, null, icon, /* @__PURE__ */ import_react58.default.createElement(Spacer.Horizontal, { size: 10 })), children);
|
|
5379
5757
|
});
|
|
5380
5758
|
var TreeView;
|
|
5381
5759
|
((TreeView2) => {
|
|
5382
5760
|
TreeView2.Root = ListView.Root;
|
|
5383
5761
|
TreeView2.RowTitle = ListView.RowTitle;
|
|
5384
5762
|
TreeView2.EditableRowTitle = ListView.EditableRowTitle;
|
|
5385
|
-
TreeView2.Row = (0,
|
|
5763
|
+
TreeView2.Row = (0, import_react58.memo)(TreeRow);
|
|
5386
5764
|
})(TreeView || (TreeView = {}));
|
|
5387
5765
|
|
|
5388
5766
|
// src/hooks/usePlatform.ts
|
|
@@ -5413,6 +5791,7 @@ var dark_exports = {};
|
|
|
5413
5791
|
__export(dark_exports, {
|
|
5414
5792
|
colors: () => colors2,
|
|
5415
5793
|
fonts: () => fonts,
|
|
5794
|
+
name: () => name2,
|
|
5416
5795
|
sizes: () => sizes2,
|
|
5417
5796
|
textStyles: () => textStyles
|
|
5418
5797
|
});
|
|
@@ -5423,9 +5802,11 @@ var light_exports = {};
|
|
|
5423
5802
|
__export(light_exports, {
|
|
5424
5803
|
colors: () => colors,
|
|
5425
5804
|
fonts: () => fonts,
|
|
5805
|
+
name: () => name,
|
|
5426
5806
|
sizes: () => sizes2,
|
|
5427
5807
|
textStyles: () => textStyles
|
|
5428
5808
|
});
|
|
5809
|
+
var name = "light";
|
|
5429
5810
|
var colors = {
|
|
5430
5811
|
logo: {
|
|
5431
5812
|
fill: "rgb(175,175,175)",
|
|
@@ -5580,6 +5961,13 @@ var textStyles = {
|
|
|
5580
5961
|
fontWeight: 400,
|
|
5581
5962
|
lineHeight: "1.4"
|
|
5582
5963
|
},
|
|
5964
|
+
button: {
|
|
5965
|
+
fontFamily: fonts.normal,
|
|
5966
|
+
fontSize: "0.8rem",
|
|
5967
|
+
fontWeight: 500,
|
|
5968
|
+
lineHeight: "1.4",
|
|
5969
|
+
letterSpacing: "-0.2px"
|
|
5970
|
+
},
|
|
5583
5971
|
code: {
|
|
5584
5972
|
fontFamily: fonts.monospace,
|
|
5585
5973
|
fontSize: "90%",
|
|
@@ -5619,6 +6007,7 @@ var sizes2 = {
|
|
|
5619
6007
|
};
|
|
5620
6008
|
|
|
5621
6009
|
// src/theme/dark.ts
|
|
6010
|
+
var name2 = "dark";
|
|
5622
6011
|
var colors2 = (0, import_immer.default)(colors, (colors3) => {
|
|
5623
6012
|
colors3.logo.fill = "rgb(248,248,250)";
|
|
5624
6013
|
colors3.logo.highlight = "rgb(248,248,250)";
|
|
@@ -5689,8 +6078,8 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
|
|
|
5689
6078
|
];
|
|
5690
6079
|
|
|
5691
6080
|
// src/components/ArrayController.tsx
|
|
5692
|
-
var
|
|
5693
|
-
var
|
|
6081
|
+
var import_noya_utils12 = require("@noya-app/noya-utils");
|
|
6082
|
+
var import_react60 = __toESM(require("react"));
|
|
5694
6083
|
var import_styled_components36 = __toESM(require("styled-components"));
|
|
5695
6084
|
|
|
5696
6085
|
// src/components/InspectorPrimitives.tsx
|
|
@@ -5709,7 +6098,7 @@ __export(InspectorPrimitives_exports, {
|
|
|
5709
6098
|
Title: () => Title3,
|
|
5710
6099
|
VerticalSeparator: () => VerticalSeparator
|
|
5711
6100
|
});
|
|
5712
|
-
var
|
|
6101
|
+
var import_react59 = __toESM(require("react"));
|
|
5713
6102
|
var import_styled_components35 = __toESM(require("styled-components"));
|
|
5714
6103
|
var Section = import_styled_components35.default.div(({ theme, padding = "10px", gap }) => ({
|
|
5715
6104
|
flex: "0 0 auto",
|
|
@@ -5756,8 +6145,8 @@ var Checkbox = import_styled_components35.default.input(({ theme }) => ({
|
|
|
5756
6145
|
var Text3 = import_styled_components35.default.span(({ theme }) => ({
|
|
5757
6146
|
...theme.textStyles.small
|
|
5758
6147
|
}));
|
|
5759
|
-
var VerticalSeparator = () => /* @__PURE__ */
|
|
5760
|
-
var HorizontalSeparator = () => /* @__PURE__ */
|
|
6148
|
+
var VerticalSeparator = () => /* @__PURE__ */ import_react59.default.createElement(Spacer.Vertical, { size: (0, import_styled_components35.useTheme)().sizes.inspector.verticalSeparator });
|
|
6149
|
+
var HorizontalSeparator = () => /* @__PURE__ */ import_react59.default.createElement(Spacer.Horizontal, { size: (0, import_styled_components35.useTheme)().sizes.inspector.horizontalSeparator });
|
|
5761
6150
|
var SliderRowLabel = import_styled_components35.default.span(({ theme }) => ({
|
|
5762
6151
|
...theme.textStyles.small,
|
|
5763
6152
|
color: theme.colors.textMuted,
|
|
@@ -5777,7 +6166,7 @@ var RowLabel = import_styled_components35.default.span(({ theme, textStyle }) =>
|
|
|
5777
6166
|
// Button height
|
|
5778
6167
|
alignItems: "center"
|
|
5779
6168
|
}));
|
|
5780
|
-
var LabeledRow = (0,
|
|
6169
|
+
var LabeledRow = (0, import_react59.memo)(function LabeledRow2({
|
|
5781
6170
|
id,
|
|
5782
6171
|
children,
|
|
5783
6172
|
label,
|
|
@@ -5785,13 +6174,13 @@ var LabeledRow = (0, import_react57.memo)(function LabeledRow2({
|
|
|
5785
6174
|
gap,
|
|
5786
6175
|
right
|
|
5787
6176
|
}) {
|
|
5788
|
-
return /* @__PURE__ */
|
|
6177
|
+
return /* @__PURE__ */ import_react59.default.createElement(Row2, { id }, /* @__PURE__ */ import_react59.default.createElement(Column, null, /* @__PURE__ */ import_react59.default.createElement(RowLabel, { textStyle: labelTextStyle }, label, right && /* @__PURE__ */ import_react59.default.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ import_react59.default.createElement(Row2, { gap }, children)));
|
|
5789
6178
|
});
|
|
5790
|
-
var LabeledSliderRow = (0,
|
|
6179
|
+
var LabeledSliderRow = (0, import_react59.memo)(function LabeledRow3({
|
|
5791
6180
|
children,
|
|
5792
6181
|
label
|
|
5793
6182
|
}) {
|
|
5794
|
-
return /* @__PURE__ */
|
|
6183
|
+
return /* @__PURE__ */ import_react59.default.createElement(Row2, null, /* @__PURE__ */ import_react59.default.createElement(Column, null, /* @__PURE__ */ import_react59.default.createElement(SliderRowLabel, null, label), /* @__PURE__ */ import_react59.default.createElement(Row2, null, children)));
|
|
5795
6184
|
});
|
|
5796
6185
|
|
|
5797
6186
|
// src/components/ArrayController.tsx
|
|
@@ -5804,7 +6193,7 @@ var ElementRow = import_styled_components36.default.div({
|
|
|
5804
6193
|
var ItemContainer2 = import_styled_components36.default.div({
|
|
5805
6194
|
position: "relative"
|
|
5806
6195
|
});
|
|
5807
|
-
var ArrayController = (0,
|
|
6196
|
+
var ArrayController = (0, import_react60.memo)(function ArrayController2({
|
|
5808
6197
|
id,
|
|
5809
6198
|
items,
|
|
5810
6199
|
title,
|
|
@@ -5822,12 +6211,12 @@ var ArrayController = (0, import_react58.memo)(function ArrayController2({
|
|
|
5822
6211
|
}) {
|
|
5823
6212
|
const iconColor = (0, import_styled_components36.useTheme)().colors.icon;
|
|
5824
6213
|
const primaryLightColor = (0, import_styled_components36.useTheme)().colors.primaryLight;
|
|
5825
|
-
const keys = (0,
|
|
6214
|
+
const keys = (0, import_react60.useMemo)(
|
|
5826
6215
|
() => items.map((item, index) => getKey?.(item) ?? index.toString()),
|
|
5827
6216
|
[getKey, items]
|
|
5828
6217
|
);
|
|
5829
|
-
const indexes = reversed ? (0,
|
|
5830
|
-
const handleMoveItem = (0,
|
|
6218
|
+
const indexes = reversed ? (0, import_noya_utils12.range)(0, items.length).reverse() : (0, import_noya_utils12.range)(0, items.length);
|
|
6219
|
+
const handleMoveItem = (0, import_react60.useCallback)(
|
|
5831
6220
|
(sourceIndex, destinationIndex, position) => {
|
|
5832
6221
|
if (reversed) {
|
|
5833
6222
|
if (position === "above") {
|
|
@@ -5844,11 +6233,11 @@ var ArrayController = (0, import_react58.memo)(function ArrayController2({
|
|
|
5844
6233
|
[onMoveItem, reversed]
|
|
5845
6234
|
);
|
|
5846
6235
|
const renderRow = (index) => {
|
|
5847
|
-
return /* @__PURE__ */
|
|
6236
|
+
return /* @__PURE__ */ import_react60.default.createElement(ElementRow, { key: keys[index] }, renderItem({ item: items[index], index }));
|
|
5848
6237
|
};
|
|
5849
|
-
return /* @__PURE__ */
|
|
6238
|
+
return /* @__PURE__ */ import_react60.default.createElement(Section, { id, padding, gap: "2px" }, /* @__PURE__ */ import_react60.default.createElement(SectionHeader, null, /* @__PURE__ */ import_react60.default.createElement(Button, { variant: "none", onClick: onClickPlus }, /* @__PURE__ */ import_react60.default.createElement(Title3, null, title)), /* @__PURE__ */ import_react60.default.createElement(Spacer.Horizontal, null), withSeparatorElements(
|
|
5850
6239
|
[
|
|
5851
|
-
onClickTrash && /* @__PURE__ */
|
|
6240
|
+
onClickTrash && /* @__PURE__ */ import_react60.default.createElement(
|
|
5852
6241
|
IconButton,
|
|
5853
6242
|
{
|
|
5854
6243
|
id: `${id}-trash`,
|
|
@@ -5857,7 +6246,7 @@ var ArrayController = (0, import_react58.memo)(function ArrayController2({
|
|
|
5857
6246
|
onClick: onClickTrash
|
|
5858
6247
|
}
|
|
5859
6248
|
),
|
|
5860
|
-
onClickExpand && /* @__PURE__ */
|
|
6249
|
+
onClickExpand && /* @__PURE__ */ import_react60.default.createElement(
|
|
5861
6250
|
IconButton,
|
|
5862
6251
|
{
|
|
5863
6252
|
id: `${id}-gear`,
|
|
@@ -5866,7 +6255,7 @@ var ArrayController = (0, import_react58.memo)(function ArrayController2({
|
|
|
5866
6255
|
onClick: onClickExpand
|
|
5867
6256
|
}
|
|
5868
6257
|
),
|
|
5869
|
-
onClickPlus && /* @__PURE__ */
|
|
6258
|
+
onClickPlus && /* @__PURE__ */ import_react60.default.createElement(
|
|
5870
6259
|
IconButton,
|
|
5871
6260
|
{
|
|
5872
6261
|
id: `${id}-add`,
|
|
@@ -5876,15 +6265,15 @@ var ArrayController = (0, import_react58.memo)(function ArrayController2({
|
|
|
5876
6265
|
}
|
|
5877
6266
|
)
|
|
5878
6267
|
],
|
|
5879
|
-
/* @__PURE__ */
|
|
5880
|
-
)), /* @__PURE__ */
|
|
6268
|
+
/* @__PURE__ */ import_react60.default.createElement(Spacer.Horizontal, { size: 8 })
|
|
6269
|
+
)), /* @__PURE__ */ import_react60.default.createElement(Stack.V, { gap: "4px" }, sortable ? /* @__PURE__ */ import_react60.default.createElement(
|
|
5881
6270
|
Sortable.Root,
|
|
5882
6271
|
{
|
|
5883
6272
|
keys,
|
|
5884
6273
|
renderOverlay: renderRow,
|
|
5885
6274
|
onMoveItem: handleMoveItem
|
|
5886
6275
|
},
|
|
5887
|
-
indexes.map((index) => /* @__PURE__ */
|
|
6276
|
+
indexes.map((index) => /* @__PURE__ */ import_react60.default.createElement(Sortable.Item, { id: keys[index], key: keys[index] }, ({ relativeDropPosition, ...sortableProps }) => /* @__PURE__ */ import_react60.default.createElement(ItemContainer2, { ...sortableProps }, renderRow(index), relativeDropPosition && /* @__PURE__ */ import_react60.default.createElement(
|
|
5888
6277
|
ListView.DragIndicator,
|
|
5889
6278
|
{
|
|
5890
6279
|
gap: 0,
|
|
@@ -5897,12 +6286,12 @@ var ArrayController = (0, import_react58.memo)(function ArrayController2({
|
|
|
5897
6286
|
});
|
|
5898
6287
|
|
|
5899
6288
|
// src/components/DimensionInput.tsx
|
|
5900
|
-
var
|
|
5901
|
-
var
|
|
6289
|
+
var import_noya_utils13 = require("@noya-app/noya-utils");
|
|
6290
|
+
var import_react61 = __toESM(require("react"));
|
|
5902
6291
|
function getNewValue(value, mode, delta) {
|
|
5903
6292
|
return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
|
|
5904
6293
|
}
|
|
5905
|
-
var DimensionInput = (0,
|
|
6294
|
+
var DimensionInput = (0, import_react61.memo)(function DimensionInput2({
|
|
5906
6295
|
id,
|
|
5907
6296
|
value,
|
|
5908
6297
|
onSetValue,
|
|
@@ -5912,30 +6301,31 @@ var DimensionInput = (0, import_react59.memo)(function DimensionInput2({
|
|
|
5912
6301
|
disabled,
|
|
5913
6302
|
trigger = "submit"
|
|
5914
6303
|
}) {
|
|
5915
|
-
const handleNudgeValue = (0,
|
|
6304
|
+
const handleNudgeValue = (0, import_react61.useCallback)(
|
|
5916
6305
|
(value2) => onSetValue(value2, "adjust"),
|
|
5917
6306
|
[onSetValue]
|
|
5918
6307
|
);
|
|
5919
|
-
const handleSetValue = (0,
|
|
6308
|
+
const handleSetValue = (0, import_react61.useCallback)(
|
|
5920
6309
|
(value2) => onSetValue(value2, "replace"),
|
|
5921
6310
|
[onSetValue]
|
|
5922
6311
|
);
|
|
5923
|
-
return /* @__PURE__ */
|
|
6312
|
+
return /* @__PURE__ */ import_react61.default.createElement(InputField.Root, { id, width: size2 }, /* @__PURE__ */ import_react61.default.createElement(
|
|
5924
6313
|
InputField.NumberInput,
|
|
5925
6314
|
{
|
|
5926
|
-
value: value === void 0 ? value : (0,
|
|
6315
|
+
value: value === void 0 ? value : (0, import_noya_utils13.round)(value, 2),
|
|
5927
6316
|
placeholder: value === void 0 ? placeholder : void 0,
|
|
5928
6317
|
onNudge: handleNudgeValue,
|
|
5929
6318
|
disabled,
|
|
5930
6319
|
...trigger === "change" ? { onChange: handleSetValue } : { onSubmit: handleSetValue }
|
|
5931
6320
|
}
|
|
5932
|
-
), label && /* @__PURE__ */
|
|
6321
|
+
), label && /* @__PURE__ */ import_react61.default.createElement(InputField.Label, null, label));
|
|
5933
6322
|
});
|
|
5934
6323
|
// Annotate the CommonJS export names for ESM import in node:
|
|
5935
6324
|
0 && (module.exports = {
|
|
5936
6325
|
ActivityIndicator,
|
|
5937
6326
|
ArrayController,
|
|
5938
6327
|
Avatar,
|
|
6328
|
+
AvatarStack,
|
|
5939
6329
|
Body,
|
|
5940
6330
|
Button,
|
|
5941
6331
|
ButtonElement,
|
|
@@ -5954,6 +6344,8 @@ var DimensionInput = (0, import_react59.memo)(function DimensionInput2({
|
|
|
5954
6344
|
DropdownMenu,
|
|
5955
6345
|
FillInputField,
|
|
5956
6346
|
FillPreviewBackground,
|
|
6347
|
+
FloatingWindow,
|
|
6348
|
+
FloatingWindowProvider,
|
|
5957
6349
|
FullscreenDialog,
|
|
5958
6350
|
GlobalInputBlurProvider,
|
|
5959
6351
|
GradientPicker,
|
|
@@ -6011,9 +6403,11 @@ var DimensionInput = (0, import_react59.memo)(function DimensionInput2({
|
|
|
6011
6403
|
sketchColorToHex,
|
|
6012
6404
|
sketchColorToRgba,
|
|
6013
6405
|
sketchColorToRgbaString,
|
|
6406
|
+
useCurrentFloatingWindowInternal,
|
|
6014
6407
|
useDesignSystemConfiguration,
|
|
6015
6408
|
useDesignSystemTheme,
|
|
6016
6409
|
useDialogContainsElement,
|
|
6410
|
+
useFloatingWindowManager,
|
|
6017
6411
|
useGlobalInputBlur,
|
|
6018
6412
|
useGlobalInputBlurListener,
|
|
6019
6413
|
useGlobalInputBlurTrigger,
|