@noya-app/noya-designsystem 0.1.70 → 0.1.72
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 +10 -10
- package/CHANGELOG.md +19 -0
- package/dist/index.css +1 -1
- package/dist/index.d.mts +82 -7
- package/dist/index.d.ts +82 -7
- package/dist/index.js +1090 -774
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1068 -753
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -8
- package/src/components/BaseToolbar.tsx +1 -1
- package/src/components/Breadcrumbs.tsx +1 -0
- package/src/components/Collection.tsx +1 -2
- package/src/components/Combobox.tsx +3 -0
- package/src/components/ComboboxMenu.tsx +1 -1
- package/src/components/InputField.tsx +20 -4
- package/src/components/ListMenu.tsx +1 -1
- package/src/components/Message.tsx +3 -2
- package/src/components/ScrollArea2.tsx +22 -2
- package/src/components/UserPicker.tsx +128 -0
- package/src/components/Virtualized.tsx +439 -0
- package/src/components/__tests__/Virtualized.math.test.ts +153 -0
- package/src/components/__tests__/Virtualized.test.tsx +85 -0
- package/src/components/listView/ListViewContexts.tsx +1 -6
- package/src/components/listView/ListViewRoot.tsx +18 -152
- package/src/index.tsx +6 -0
package/dist/index.js
CHANGED
|
@@ -397,14 +397,14 @@ var require_grammarDiagnostics = __commonJS({
|
|
|
397
397
|
rootNonTerminating.add(name);
|
|
398
398
|
}
|
|
399
399
|
}
|
|
400
|
-
const
|
|
400
|
+
const memo40 = /* @__PURE__ */ new Map();
|
|
401
401
|
const collectCauses = (name, path) => {
|
|
402
|
-
if (
|
|
403
|
-
return
|
|
402
|
+
if (memo40.has(name)) {
|
|
403
|
+
return memo40.get(name);
|
|
404
404
|
}
|
|
405
405
|
if (rootNonTerminating.has(name)) {
|
|
406
406
|
const direct = /* @__PURE__ */ new Set([name]);
|
|
407
|
-
|
|
407
|
+
memo40.set(name, direct);
|
|
408
408
|
return direct;
|
|
409
409
|
}
|
|
410
410
|
if (path.has(name)) {
|
|
@@ -423,7 +423,7 @@ var require_grammarDiagnostics = __commonJS({
|
|
|
423
423
|
}
|
|
424
424
|
}
|
|
425
425
|
path.delete(name);
|
|
426
|
-
|
|
426
|
+
memo40.set(name, result);
|
|
427
427
|
return result;
|
|
428
428
|
};
|
|
429
429
|
const dependencyIssues = [];
|
|
@@ -3257,7 +3257,9 @@ __export(src_exports, {
|
|
|
3257
3257
|
Tooltip: () => Tooltip,
|
|
3258
3258
|
TreeView: () => TreeView,
|
|
3259
3259
|
UserAvatar: () => UserAvatar,
|
|
3260
|
+
UserPicker: () => UserPicker,
|
|
3260
3261
|
UserPointer: () => UserPointer,
|
|
3262
|
+
Virtualized: () => Virtualized2,
|
|
3261
3263
|
WorkspaceLayout: () => WorkspaceLayout,
|
|
3262
3264
|
WorkspaceSideProvider: () => WorkspaceSideProvider,
|
|
3263
3265
|
acceptsDrop: () => acceptsDrop,
|
|
@@ -3290,6 +3292,7 @@ __export(src_exports, {
|
|
|
3290
3292
|
getNextIndex: () => getNextIndex,
|
|
3291
3293
|
getPipelineResultLink: () => getPipelineResultLink,
|
|
3292
3294
|
getThumbnailColors: () => getThumbnailColors,
|
|
3295
|
+
getUserDisplayName: () => getUserDisplayName,
|
|
3293
3296
|
isMenuItemSectionHeader: () => isMenuItemSectionHeader,
|
|
3294
3297
|
isNonSelectableMenuItem: () => isNonSelectableMenuItem,
|
|
3295
3298
|
isPopoverMenuItem: () => isPopoverMenuItem,
|
|
@@ -5139,7 +5142,15 @@ function parseNumber(value) {
|
|
|
5139
5142
|
return value ? Number(value) : NaN;
|
|
5140
5143
|
}
|
|
5141
5144
|
function InputFieldNumberInput(props) {
|
|
5142
|
-
const {
|
|
5145
|
+
const {
|
|
5146
|
+
value,
|
|
5147
|
+
placeholder,
|
|
5148
|
+
onNudge,
|
|
5149
|
+
onBlur,
|
|
5150
|
+
readOnly,
|
|
5151
|
+
triggersOnEmpty,
|
|
5152
|
+
...rest
|
|
5153
|
+
} = props;
|
|
5143
5154
|
const onSubmit = "onSubmit" in props ? props.onSubmit : void 0;
|
|
5144
5155
|
const onChange = "onChange" in props ? props.onChange : void 0;
|
|
5145
5156
|
const [internalValue, setInternalValue] = (0, import_react29.useState)();
|
|
@@ -5167,6 +5178,9 @@ function InputFieldNumberInput(props) {
|
|
|
5167
5178
|
(value2) => {
|
|
5168
5179
|
if (value2 === "" || value2 === "-" || value2 === ".") {
|
|
5169
5180
|
setInternalValue(value2);
|
|
5181
|
+
if (triggersOnEmpty) {
|
|
5182
|
+
onChange?.(0, { isEmpty: true });
|
|
5183
|
+
}
|
|
5170
5184
|
return;
|
|
5171
5185
|
}
|
|
5172
5186
|
if (value2.endsWith(".")) {
|
|
@@ -5176,10 +5190,10 @@ function InputFieldNumberInput(props) {
|
|
|
5176
5190
|
setInternalValue(void 0);
|
|
5177
5191
|
const newValue = parseNumber(value2);
|
|
5178
5192
|
if (!isNaN(newValue)) {
|
|
5179
|
-
onChange?.(newValue);
|
|
5193
|
+
onChange?.(newValue, { isEmpty: false });
|
|
5180
5194
|
}
|
|
5181
5195
|
},
|
|
5182
|
-
[onChange]
|
|
5196
|
+
[onChange, triggersOnEmpty]
|
|
5183
5197
|
);
|
|
5184
5198
|
const handleBlur = (0, import_react29.useCallback)(
|
|
5185
5199
|
(event) => {
|
|
@@ -7205,7 +7219,8 @@ var BreadcrumbSlash = () => {
|
|
|
7205
7219
|
fill: "none",
|
|
7206
7220
|
xmlns: "http://www.w3.org/2000/svg",
|
|
7207
7221
|
opacity: 0.5,
|
|
7208
|
-
style: slashStyle
|
|
7222
|
+
style: slashStyle,
|
|
7223
|
+
className: "n-flex-none"
|
|
7209
7224
|
},
|
|
7210
7225
|
/* @__PURE__ */ import_react51.default.createElement(
|
|
7211
7226
|
"path",
|
|
@@ -7523,7 +7538,7 @@ var Chip = (0, import_react52.memo)(
|
|
|
7523
7538
|
);
|
|
7524
7539
|
|
|
7525
7540
|
// src/components/Collection.tsx
|
|
7526
|
-
var
|
|
7541
|
+
var import_react68 = __toESM(require("react"));
|
|
7527
7542
|
|
|
7528
7543
|
// src/components/Grid.tsx
|
|
7529
7544
|
var import_react56 = __toESM(require("react"));
|
|
@@ -8331,7 +8346,7 @@ var Grid = memoGeneric(
|
|
|
8331
8346
|
);
|
|
8332
8347
|
|
|
8333
8348
|
// src/components/List.tsx
|
|
8334
|
-
var
|
|
8349
|
+
var import_react67 = __toESM(require("react"));
|
|
8335
8350
|
|
|
8336
8351
|
// src/components/listView/ListViewContexts.tsx
|
|
8337
8352
|
var import_react57 = require("react");
|
|
@@ -8355,10 +8370,6 @@ var ListRowContext = (0, import_react57.createContext)({
|
|
|
8355
8370
|
isSectionHeader: false
|
|
8356
8371
|
});
|
|
8357
8372
|
ListRowContext.displayName = "ListRowContext";
|
|
8358
|
-
var RenderItemContext = (0, import_react57.createContext)(
|
|
8359
|
-
() => null
|
|
8360
|
-
);
|
|
8361
|
-
RenderItemContext.displayName = "RenderItemContext";
|
|
8362
8373
|
|
|
8363
8374
|
// src/components/listView/ListViewEditableRowTitle.tsx
|
|
8364
8375
|
var import_react58 = __toESM(require("react"));
|
|
@@ -8411,21 +8422,348 @@ var ListViewEditableRowTitle = (0, import_react58.memo)(function ListViewEditabl
|
|
|
8411
8422
|
|
|
8412
8423
|
// src/components/listView/ListViewRoot.tsx
|
|
8413
8424
|
var import_noya_utils8 = require("@noya-app/noya-utils");
|
|
8414
|
-
var
|
|
8415
|
-
|
|
8416
|
-
|
|
8425
|
+
var import_react63 = __toESM(require("react"));
|
|
8426
|
+
|
|
8427
|
+
// src/components/Virtualized.tsx
|
|
8428
|
+
var import_react59 = __toESM(require("react"));
|
|
8429
|
+
var import_react_dom2 = require("react-dom");
|
|
8430
|
+
|
|
8431
|
+
// src/components/ScrollArea2.tsx
|
|
8432
|
+
var import_scroll_area = require("@base-ui-components/react/scroll-area");
|
|
8433
|
+
var React52 = __toESM(require("react"));
|
|
8434
|
+
var SCROLLBAR_STATE_CLASSES = "scroll-component n-opacity-0 n-transition-opacity n-delay-300 n-pointer-events-none data-[hovering]:n-opacity-100 data-[hovering]:n-delay-0 data-[hovering]:n-duration-75 data-[hovering]:n-pointer-events-auto data-[scrolling]:n-opacity-100 data-[scrolling]:n-delay-0 data-[scrolling]:n-duration-75 data-[scrolling]:n-pointer-events-auto";
|
|
8435
|
+
var SCROLLBAR_TRACK_VERTICAL = "n-m-1 n-w-1 flex n-justify-center n-rounded-md n-bg-divider-subtle";
|
|
8436
|
+
var SCROLLBAR_TRACK_HORIZONTAL = "n-m-1 n-h-1 flex n-justify-center n-rounded-md n-bg-divider-subtle";
|
|
8437
|
+
var SCROLLBAR_THUMB_VERTICAL = "scroll-component n-w-full n-rounded n-bg-scrollbar";
|
|
8438
|
+
var SCROLLBAR_THUMB_HORIZONTAL = "scroll-component n-h-full n-rounded n-bg-scrollbar";
|
|
8439
|
+
function ScrollArea22({
|
|
8440
|
+
children,
|
|
8441
|
+
className,
|
|
8442
|
+
viewportClassName,
|
|
8443
|
+
orientation = "vertical",
|
|
8444
|
+
style: style2,
|
|
8445
|
+
viewportProps
|
|
8446
|
+
}) {
|
|
8447
|
+
const {
|
|
8448
|
+
className: viewportPropsClassName,
|
|
8449
|
+
ref: viewportRef,
|
|
8450
|
+
...viewportRest
|
|
8451
|
+
} = viewportProps ?? {};
|
|
8452
|
+
return /* @__PURE__ */ React52.createElement(import_scroll_area.ScrollArea.Root, { className: cx("n-relative", className), style: style2 }, /* @__PURE__ */ React52.createElement(
|
|
8453
|
+
import_scroll_area.ScrollArea.Viewport,
|
|
8454
|
+
{
|
|
8455
|
+
ref: viewportRef,
|
|
8456
|
+
className: cx(
|
|
8457
|
+
"n-h-full n-overscroll-contain",
|
|
8458
|
+
viewportClassName,
|
|
8459
|
+
viewportPropsClassName
|
|
8460
|
+
),
|
|
8461
|
+
...viewportRest
|
|
8462
|
+
},
|
|
8463
|
+
children
|
|
8464
|
+
), (orientation === "vertical" || orientation === "both") && /* @__PURE__ */ React52.createElement(
|
|
8465
|
+
import_scroll_area.ScrollArea.Scrollbar,
|
|
8466
|
+
{
|
|
8467
|
+
className: cx(SCROLLBAR_STATE_CLASSES, SCROLLBAR_TRACK_VERTICAL)
|
|
8468
|
+
},
|
|
8469
|
+
/* @__PURE__ */ React52.createElement(import_scroll_area.ScrollArea.Thumb, { className: SCROLLBAR_THUMB_VERTICAL })
|
|
8470
|
+
), (orientation === "horizontal" || orientation === "both") && /* @__PURE__ */ React52.createElement(
|
|
8471
|
+
import_scroll_area.ScrollArea.Scrollbar,
|
|
8472
|
+
{
|
|
8473
|
+
orientation: "horizontal",
|
|
8474
|
+
className: cx(SCROLLBAR_STATE_CLASSES, SCROLLBAR_TRACK_HORIZONTAL)
|
|
8475
|
+
},
|
|
8476
|
+
/* @__PURE__ */ React52.createElement(import_scroll_area.ScrollArea.Thumb, { className: SCROLLBAR_THUMB_HORIZONTAL })
|
|
8477
|
+
), orientation === "both" && /* @__PURE__ */ React52.createElement(import_scroll_area.ScrollArea.Corner, null));
|
|
8478
|
+
}
|
|
8479
|
+
|
|
8480
|
+
// src/components/Virtualized.tsx
|
|
8481
|
+
function calculateScrollOffsetForIndex({
|
|
8482
|
+
measurements,
|
|
8483
|
+
height,
|
|
8484
|
+
totalHeight,
|
|
8485
|
+
targetIndex,
|
|
8486
|
+
currentScrollTop
|
|
8487
|
+
}) {
|
|
8488
|
+
if (!measurements.length) return;
|
|
8489
|
+
const index = Math.min(Math.max(targetIndex, 0), measurements.length - 1);
|
|
8490
|
+
const measurement = measurements[index];
|
|
8491
|
+
if (!measurement) return;
|
|
8492
|
+
const viewportTop = currentScrollTop;
|
|
8493
|
+
const viewportBottom = viewportTop + height;
|
|
8494
|
+
const itemTop = measurement.start;
|
|
8495
|
+
const itemBottom = measurement.end;
|
|
8496
|
+
let nextScrollTop = viewportTop;
|
|
8497
|
+
if (itemTop < viewportTop) {
|
|
8498
|
+
nextScrollTop = itemTop;
|
|
8499
|
+
} else if (itemBottom > viewportBottom) {
|
|
8500
|
+
const canAlignTop = height >= measurement.size;
|
|
8501
|
+
nextScrollTop = canAlignTop ? itemTop : itemBottom - height;
|
|
8502
|
+
} else {
|
|
8503
|
+
return;
|
|
8504
|
+
}
|
|
8505
|
+
const maxScrollTop = Math.max(0, totalHeight - height);
|
|
8506
|
+
nextScrollTop = Math.max(0, Math.min(nextScrollTop, maxScrollTop));
|
|
8507
|
+
if (nextScrollTop === viewportTop) return;
|
|
8508
|
+
return nextScrollTop;
|
|
8509
|
+
}
|
|
8510
|
+
function resolvePaddingValues(padding) {
|
|
8511
|
+
if (typeof padding === "number") {
|
|
8512
|
+
return { top: padding, bottom: padding };
|
|
8513
|
+
}
|
|
8514
|
+
return {
|
|
8515
|
+
top: padding?.top ?? 0,
|
|
8516
|
+
bottom: padding?.bottom ?? 0
|
|
8517
|
+
};
|
|
8518
|
+
}
|
|
8519
|
+
function clampGapValue(gap) {
|
|
8520
|
+
return Math.max(0, gap ?? 0);
|
|
8521
|
+
}
|
|
8522
|
+
function buildMeasurements({
|
|
8523
|
+
itemCount,
|
|
8524
|
+
getItemHeight,
|
|
8525
|
+
paddingTop,
|
|
8526
|
+
paddingBottom,
|
|
8527
|
+
gap
|
|
8528
|
+
}) {
|
|
8529
|
+
const measurements = [];
|
|
8530
|
+
let offset = paddingTop;
|
|
8531
|
+
for (let index = 0; index < itemCount; index += 1) {
|
|
8532
|
+
const size = Math.max(0, getItemHeight(index));
|
|
8533
|
+
const start = offset;
|
|
8534
|
+
const end = start + size;
|
|
8535
|
+
measurements.push({ index, size, start, end });
|
|
8536
|
+
offset = end + gap;
|
|
8537
|
+
}
|
|
8538
|
+
const totalHeight = measurements.length ? measurements[measurements.length - 1].end + paddingBottom : paddingTop + paddingBottom;
|
|
8539
|
+
return { measurements, totalHeight };
|
|
8540
|
+
}
|
|
8541
|
+
function findFirstVisibleIndex(measurements, offset) {
|
|
8542
|
+
if (!measurements.length) return 0;
|
|
8543
|
+
let low = 0;
|
|
8544
|
+
let high = measurements.length - 1;
|
|
8545
|
+
let match = measurements.length - 1;
|
|
8546
|
+
while (low <= high) {
|
|
8547
|
+
const middle = Math.floor((low + high) / 2);
|
|
8548
|
+
const measurement = measurements[middle];
|
|
8549
|
+
if (measurement.end > offset) {
|
|
8550
|
+
match = middle;
|
|
8551
|
+
high = middle - 1;
|
|
8552
|
+
} else {
|
|
8553
|
+
low = middle + 1;
|
|
8554
|
+
}
|
|
8555
|
+
}
|
|
8556
|
+
return match;
|
|
8557
|
+
}
|
|
8558
|
+
function calculateVisibleRange({
|
|
8559
|
+
measurements,
|
|
8560
|
+
scrollTop,
|
|
8561
|
+
height,
|
|
8562
|
+
overscan
|
|
8563
|
+
}) {
|
|
8564
|
+
if (!measurements.length) {
|
|
8565
|
+
return { start: 0, end: -1 };
|
|
8566
|
+
}
|
|
8567
|
+
const viewBottom = scrollTop + height;
|
|
8568
|
+
const firstVisible = findFirstVisibleIndex(measurements, scrollTop);
|
|
8569
|
+
let lastVisibleExclusive = firstVisible;
|
|
8570
|
+
while (lastVisibleExclusive < measurements.length && measurements[lastVisibleExclusive].start < viewBottom) {
|
|
8571
|
+
lastVisibleExclusive += 1;
|
|
8572
|
+
}
|
|
8573
|
+
const lastVisible = Math.max(
|
|
8574
|
+
firstVisible,
|
|
8575
|
+
Math.min(measurements.length - 1, lastVisibleExclusive - 1)
|
|
8576
|
+
);
|
|
8577
|
+
const overscanCount = Math.max(0, Math.floor(overscan));
|
|
8578
|
+
return {
|
|
8579
|
+
start: Math.max(0, firstVisible - overscanCount),
|
|
8580
|
+
end: Math.min(measurements.length - 1, lastVisible + overscanCount)
|
|
8581
|
+
};
|
|
8582
|
+
}
|
|
8583
|
+
var DEFAULT_OVERSCAN = 2;
|
|
8584
|
+
var VirtualizedInner = import_react59.default.forwardRef(function Virtualized({
|
|
8585
|
+
height,
|
|
8586
|
+
itemCount,
|
|
8587
|
+
getItemHeight,
|
|
8588
|
+
renderItem,
|
|
8589
|
+
overscan = DEFAULT_OVERSCAN,
|
|
8590
|
+
className,
|
|
8591
|
+
style: style2,
|
|
8592
|
+
innerClassName,
|
|
8593
|
+
innerStyle,
|
|
8594
|
+
onScroll,
|
|
8595
|
+
itemKey,
|
|
8596
|
+
initialScrollOffset = 0,
|
|
8597
|
+
syncScrollUpdates = true,
|
|
8598
|
+
padding,
|
|
8599
|
+
gap = 0,
|
|
8600
|
+
useScrollArea = false,
|
|
8601
|
+
scrollAreaViewportClassName
|
|
8602
|
+
}, forwardedRef) {
|
|
8603
|
+
const containerRef = (0, import_react59.useRef)(null);
|
|
8604
|
+
const setScrollElement = (0, import_react59.useCallback)((element) => {
|
|
8605
|
+
containerRef.current = element;
|
|
8606
|
+
}, []);
|
|
8607
|
+
const [scrollTop, setScrollTop] = (0, import_react59.useState)(initialScrollOffset);
|
|
8608
|
+
const pendingInitialOffset = (0, import_react59.useRef)(initialScrollOffset);
|
|
8609
|
+
(0, import_react59.useLayoutEffect)(() => {
|
|
8610
|
+
if (pendingInitialOffset.current == null) return;
|
|
8611
|
+
if (containerRef.current) {
|
|
8612
|
+
containerRef.current.scrollTop = pendingInitialOffset.current;
|
|
8613
|
+
setScrollTop(pendingInitialOffset.current);
|
|
8614
|
+
}
|
|
8615
|
+
pendingInitialOffset.current = null;
|
|
8616
|
+
}, []);
|
|
8617
|
+
const paddingValues = (0, import_react59.useMemo)(() => resolvePaddingValues(padding), [padding]);
|
|
8618
|
+
const gapValue = (0, import_react59.useMemo)(() => clampGapValue(gap), [gap]);
|
|
8619
|
+
const { measurements, totalHeight } = (0, import_react59.useMemo)(
|
|
8620
|
+
() => buildMeasurements({
|
|
8621
|
+
itemCount,
|
|
8622
|
+
getItemHeight,
|
|
8623
|
+
paddingTop: paddingValues.top,
|
|
8624
|
+
paddingBottom: paddingValues.bottom,
|
|
8625
|
+
gap: gapValue
|
|
8626
|
+
}),
|
|
8627
|
+
[
|
|
8628
|
+
gapValue,
|
|
8629
|
+
getItemHeight,
|
|
8630
|
+
itemCount,
|
|
8631
|
+
paddingValues.bottom,
|
|
8632
|
+
paddingValues.top
|
|
8633
|
+
]
|
|
8634
|
+
);
|
|
8635
|
+
const visibleRange = (0, import_react59.useMemo)(
|
|
8636
|
+
() => calculateVisibleRange({
|
|
8637
|
+
measurements,
|
|
8638
|
+
scrollTop,
|
|
8639
|
+
height,
|
|
8640
|
+
overscan
|
|
8641
|
+
}),
|
|
8642
|
+
[height, measurements, overscan, scrollTop]
|
|
8643
|
+
);
|
|
8644
|
+
const handleScroll = (0, import_react59.useCallback)(
|
|
8645
|
+
(event) => {
|
|
8646
|
+
const nextOffset = event.currentTarget.scrollTop;
|
|
8647
|
+
if (nextOffset === scrollTop) return;
|
|
8648
|
+
if (syncScrollUpdates) {
|
|
8649
|
+
(0, import_react_dom2.flushSync)(() => {
|
|
8650
|
+
setScrollTop(nextOffset);
|
|
8651
|
+
});
|
|
8652
|
+
} else {
|
|
8653
|
+
setScrollTop(nextOffset);
|
|
8654
|
+
}
|
|
8655
|
+
onScroll?.(nextOffset);
|
|
8656
|
+
},
|
|
8657
|
+
[onScroll, scrollTop, syncScrollUpdates]
|
|
8658
|
+
);
|
|
8659
|
+
(0, import_react59.useImperativeHandle)(
|
|
8660
|
+
forwardedRef,
|
|
8661
|
+
() => ({
|
|
8662
|
+
scrollToIndex(index) {
|
|
8663
|
+
const container = containerRef.current;
|
|
8664
|
+
if (!container) return;
|
|
8665
|
+
const nextScrollTop = calculateScrollOffsetForIndex({
|
|
8666
|
+
measurements,
|
|
8667
|
+
height,
|
|
8668
|
+
totalHeight,
|
|
8669
|
+
targetIndex: index,
|
|
8670
|
+
currentScrollTop: container.scrollTop
|
|
8671
|
+
});
|
|
8672
|
+
if (nextScrollTop == null) return;
|
|
8673
|
+
container.scrollTop = nextScrollTop;
|
|
8674
|
+
setScrollTop(nextScrollTop);
|
|
8675
|
+
}
|
|
8676
|
+
}),
|
|
8677
|
+
[height, measurements, totalHeight]
|
|
8678
|
+
);
|
|
8679
|
+
const containerStyle = (0, import_react59.useMemo)(
|
|
8680
|
+
() => ({
|
|
8681
|
+
height,
|
|
8682
|
+
overflowY: "auto",
|
|
8683
|
+
overflowX: "hidden",
|
|
8684
|
+
...style2
|
|
8685
|
+
}),
|
|
8686
|
+
[height, style2]
|
|
8687
|
+
);
|
|
8688
|
+
const scrollAreaStyle = (0, import_react59.useMemo)(
|
|
8689
|
+
() => ({
|
|
8690
|
+
height,
|
|
8691
|
+
...style2
|
|
8692
|
+
}),
|
|
8693
|
+
[height, style2]
|
|
8694
|
+
);
|
|
8695
|
+
const totalContent = /* @__PURE__ */ import_react59.default.createElement(
|
|
8696
|
+
"div",
|
|
8697
|
+
{
|
|
8698
|
+
className: innerClassName,
|
|
8699
|
+
style: {
|
|
8700
|
+
position: "relative",
|
|
8701
|
+
width: "100%",
|
|
8702
|
+
height: totalHeight,
|
|
8703
|
+
...innerStyle
|
|
8704
|
+
}
|
|
8705
|
+
},
|
|
8706
|
+
visibleRange.end >= visibleRange.start && Array.from(
|
|
8707
|
+
{ length: visibleRange.end - visibleRange.start + 1 },
|
|
8708
|
+
(_, offset) => {
|
|
8709
|
+
const index = visibleRange.start + offset;
|
|
8710
|
+
const measurement = measurements[index];
|
|
8711
|
+
const key = itemKey ? itemKey(index) : index;
|
|
8712
|
+
return /* @__PURE__ */ import_react59.default.createElement(
|
|
8713
|
+
"div",
|
|
8714
|
+
{
|
|
8715
|
+
key,
|
|
8716
|
+
style: {
|
|
8717
|
+
position: "absolute",
|
|
8718
|
+
top: measurement.start,
|
|
8719
|
+
height: measurement.size,
|
|
8720
|
+
width: "100%"
|
|
8721
|
+
}
|
|
8722
|
+
},
|
|
8723
|
+
renderItem(index)
|
|
8724
|
+
);
|
|
8725
|
+
}
|
|
8726
|
+
)
|
|
8727
|
+
);
|
|
8728
|
+
if (useScrollArea) {
|
|
8729
|
+
return /* @__PURE__ */ import_react59.default.createElement(
|
|
8730
|
+
ScrollArea22,
|
|
8731
|
+
{
|
|
8732
|
+
className,
|
|
8733
|
+
style: scrollAreaStyle,
|
|
8734
|
+
viewportClassName: scrollAreaViewportClassName,
|
|
8735
|
+
viewportProps: {
|
|
8736
|
+
ref: setScrollElement,
|
|
8737
|
+
onScroll: handleScroll
|
|
8738
|
+
}
|
|
8739
|
+
},
|
|
8740
|
+
totalContent
|
|
8741
|
+
);
|
|
8742
|
+
}
|
|
8743
|
+
return /* @__PURE__ */ import_react59.default.createElement(
|
|
8744
|
+
"div",
|
|
8745
|
+
{
|
|
8746
|
+
ref: setScrollElement,
|
|
8747
|
+
className,
|
|
8748
|
+
style: containerStyle,
|
|
8749
|
+
onScroll: handleScroll
|
|
8750
|
+
},
|
|
8751
|
+
totalContent
|
|
8752
|
+
);
|
|
8753
|
+
});
|
|
8754
|
+
var Virtualized2 = import_react59.default.memo(VirtualizedInner);
|
|
8417
8755
|
|
|
8418
8756
|
// src/components/sorting/Sortable.tsx
|
|
8419
8757
|
var import_core2 = require("@dnd-kit/core");
|
|
8420
8758
|
var import_sortable = require("@dnd-kit/sortable");
|
|
8421
|
-
var
|
|
8422
|
-
var
|
|
8759
|
+
var React57 = __toESM(require("react"));
|
|
8760
|
+
var import_react62 = require("react");
|
|
8423
8761
|
|
|
8424
8762
|
// src/components/sorting/DragRegistration.tsx
|
|
8425
|
-
var
|
|
8426
|
-
var DragRegistrationContext =
|
|
8763
|
+
var import_react60 = __toESM(require("react"));
|
|
8764
|
+
var DragRegistrationContext = import_react60.default.createContext(null);
|
|
8427
8765
|
function useDragRegistration(context) {
|
|
8428
|
-
const value =
|
|
8766
|
+
const value = import_react60.default.useContext(context);
|
|
8429
8767
|
if (!value) {
|
|
8430
8768
|
throw new Error(
|
|
8431
8769
|
"useDragRegistration must be used within a DragRegistrationProvider"
|
|
@@ -8434,11 +8772,11 @@ function useDragRegistration(context) {
|
|
|
8434
8772
|
return value;
|
|
8435
8773
|
}
|
|
8436
8774
|
function useDragRegistrationManager() {
|
|
8437
|
-
const [registeredLists, setRegisteredLists] =
|
|
8438
|
-
const registerList =
|
|
8775
|
+
const [registeredLists, setRegisteredLists] = import_react60.default.useState(/* @__PURE__ */ new Map());
|
|
8776
|
+
const registerList = import_react60.default.useCallback((list) => {
|
|
8439
8777
|
setRegisteredLists((prev) => new Map(prev).set(list.id, list));
|
|
8440
8778
|
}, []);
|
|
8441
|
-
const unregisterList =
|
|
8779
|
+
const unregisterList = import_react60.default.useCallback((listId) => {
|
|
8442
8780
|
setRegisteredLists((prev) => {
|
|
8443
8781
|
const newMap = new Map(prev);
|
|
8444
8782
|
newMap.delete(listId);
|
|
@@ -8447,23 +8785,23 @@ function useDragRegistrationManager() {
|
|
|
8447
8785
|
}, []);
|
|
8448
8786
|
return { registerList, unregisterList, registeredLists };
|
|
8449
8787
|
}
|
|
8450
|
-
var ActiveDragContext =
|
|
8788
|
+
var ActiveDragContext = import_react60.default.createContext(null);
|
|
8451
8789
|
function useActiveDrag(context) {
|
|
8452
|
-
const value =
|
|
8790
|
+
const value = import_react60.default.useContext(context);
|
|
8453
8791
|
if (!value) {
|
|
8454
8792
|
throw new Error("useActiveDrag must be used within a ActiveDragProvider");
|
|
8455
8793
|
}
|
|
8456
8794
|
return value;
|
|
8457
8795
|
}
|
|
8458
|
-
var AnyDragContext =
|
|
8796
|
+
var AnyDragContext = import_react60.default.createContext(false);
|
|
8459
8797
|
|
|
8460
8798
|
// src/components/sorting/SharedDragProvider.tsx
|
|
8461
8799
|
var import_core = require("@dnd-kit/core");
|
|
8462
8800
|
var import_noya_geometry = require("@noya-app/noya-geometry");
|
|
8463
8801
|
var import_noya_utils7 = require("@noya-app/noya-utils");
|
|
8464
|
-
var
|
|
8465
|
-
var
|
|
8466
|
-
var
|
|
8802
|
+
var React55 = __toESM(require("react"));
|
|
8803
|
+
var import_react61 = require("react");
|
|
8804
|
+
var import_react_dom3 = require("react-dom");
|
|
8467
8805
|
function SharedDragProvider({
|
|
8468
8806
|
children,
|
|
8469
8807
|
acceptsDrop: acceptsDrop2,
|
|
@@ -8482,22 +8820,22 @@ function SharedDragProvider({
|
|
|
8482
8820
|
})
|
|
8483
8821
|
);
|
|
8484
8822
|
const mounted = useMounted();
|
|
8485
|
-
const [dragState, setDragState] =
|
|
8823
|
+
const [dragState, setDragState] = React55.useState({
|
|
8486
8824
|
source: null,
|
|
8487
8825
|
target: null,
|
|
8488
8826
|
indicator: null
|
|
8489
8827
|
});
|
|
8490
|
-
const stableOnMoveItem =
|
|
8828
|
+
const stableOnMoveItem = React55.useRef(onMoveItem);
|
|
8491
8829
|
useIsomorphicLayoutEffect(() => {
|
|
8492
8830
|
stableOnMoveItem.current = onMoveItem;
|
|
8493
8831
|
}, [onMoveItem]);
|
|
8494
|
-
const stableAcceptsDrop =
|
|
8832
|
+
const stableAcceptsDrop = React55.useRef(acceptsDrop2);
|
|
8495
8833
|
useIsomorphicLayoutEffect(() => {
|
|
8496
8834
|
stableAcceptsDrop.current = acceptsDrop2;
|
|
8497
8835
|
}, [acceptsDrop2]);
|
|
8498
8836
|
const { registerList, unregisterList, registeredLists } = useDragRegistrationManager();
|
|
8499
|
-
const activatorEventRef =
|
|
8500
|
-
const handleDragStart =
|
|
8837
|
+
const activatorEventRef = React55.useRef(null);
|
|
8838
|
+
const handleDragStart = React55.useCallback(
|
|
8501
8839
|
(event) => {
|
|
8502
8840
|
activatorEventRef.current = event.activatorEvent;
|
|
8503
8841
|
for (const [listId, list] of registeredLists) {
|
|
@@ -8519,7 +8857,7 @@ function SharedDragProvider({
|
|
|
8519
8857
|
},
|
|
8520
8858
|
[registeredLists]
|
|
8521
8859
|
);
|
|
8522
|
-
const handleDragMove =
|
|
8860
|
+
const handleDragMove = React55.useCallback(
|
|
8523
8861
|
(event) => {
|
|
8524
8862
|
const { active, over } = event;
|
|
8525
8863
|
if (!activatorEventRef.current || !dragState.source) return;
|
|
@@ -8543,7 +8881,7 @@ function SharedDragProvider({
|
|
|
8543
8881
|
},
|
|
8544
8882
|
[registeredLists, dragState.source]
|
|
8545
8883
|
);
|
|
8546
|
-
const handleDragEnd =
|
|
8884
|
+
const handleDragEnd = React55.useCallback(
|
|
8547
8885
|
(event) => {
|
|
8548
8886
|
const { active, over } = event;
|
|
8549
8887
|
if (!activatorEventRef.current || !dragState.source) return;
|
|
@@ -8587,7 +8925,7 @@ function SharedDragProvider({
|
|
|
8587
8925
|
},
|
|
8588
8926
|
[registeredLists, dragState.source, stableOnMoveItem]
|
|
8589
8927
|
);
|
|
8590
|
-
const contextValue =
|
|
8928
|
+
const contextValue = React55.useMemo(
|
|
8591
8929
|
() => ({
|
|
8592
8930
|
registerList,
|
|
8593
8931
|
unregisterList
|
|
@@ -8595,19 +8933,19 @@ function SharedDragProvider({
|
|
|
8595
8933
|
[registerList, unregisterList]
|
|
8596
8934
|
);
|
|
8597
8935
|
const activeList = dragState.source ? registeredLists.get(dragState.source.listId) : null;
|
|
8598
|
-
const activeDragContextValue =
|
|
8936
|
+
const activeDragContextValue = React55.useMemo(
|
|
8599
8937
|
() => dragState,
|
|
8600
8938
|
[dragState]
|
|
8601
8939
|
);
|
|
8602
|
-
const collisionDetection = (0,
|
|
8940
|
+
const collisionDetection = (0, import_react61.useMemo)(() => {
|
|
8603
8941
|
return getItemFirstCollisionDetection(registeredLists, itemHitSlop);
|
|
8604
8942
|
}, [registeredLists, itemHitSlop]);
|
|
8605
|
-
return /* @__PURE__ */
|
|
8943
|
+
return /* @__PURE__ */ React55.createElement(AnyDragContext.Provider, { value: true }, /* @__PURE__ */ React55.createElement(sharedDragProps.dragRegistrationContext.Provider, { value: contextValue }, /* @__PURE__ */ React55.createElement(
|
|
8606
8944
|
sharedDragProps.activeDragContext.Provider,
|
|
8607
8945
|
{
|
|
8608
8946
|
value: activeDragContextValue
|
|
8609
8947
|
},
|
|
8610
|
-
/* @__PURE__ */
|
|
8948
|
+
/* @__PURE__ */ React55.createElement(
|
|
8611
8949
|
import_core.DndContext,
|
|
8612
8950
|
{
|
|
8613
8951
|
sensors,
|
|
@@ -8617,27 +8955,27 @@ function SharedDragProvider({
|
|
|
8617
8955
|
onDragEnd: handleDragEnd
|
|
8618
8956
|
},
|
|
8619
8957
|
children,
|
|
8620
|
-
mounted && activeList?.renderOverlay && dragState.source && (0,
|
|
8621
|
-
/* @__PURE__ */
|
|
8958
|
+
mounted && activeList?.renderOverlay && dragState.source && (0, import_react_dom3.createPortal)(
|
|
8959
|
+
/* @__PURE__ */ React55.createElement(import_core.DragOverlay, { dropAnimation: null }, activeList.renderOverlay(dragState.source.itemId)),
|
|
8622
8960
|
document.body
|
|
8623
8961
|
)
|
|
8624
8962
|
)
|
|
8625
8963
|
)));
|
|
8626
8964
|
}
|
|
8627
8965
|
function useMounted() {
|
|
8628
|
-
const [mounted, setMounted] =
|
|
8629
|
-
|
|
8966
|
+
const [mounted, setMounted] = React55.useState(false);
|
|
8967
|
+
React55.useEffect(() => {
|
|
8630
8968
|
setMounted(true);
|
|
8631
8969
|
}, []);
|
|
8632
8970
|
return mounted;
|
|
8633
8971
|
}
|
|
8634
8972
|
function withDragProvider(Component) {
|
|
8635
8973
|
return function WithDragProvider(props) {
|
|
8636
|
-
const anyDragContext =
|
|
8974
|
+
const anyDragContext = React55.useContext(AnyDragContext);
|
|
8637
8975
|
if (!anyDragContext) {
|
|
8638
|
-
return /* @__PURE__ */
|
|
8976
|
+
return /* @__PURE__ */ React55.createElement(SharedDragProvider, null, /* @__PURE__ */ React55.createElement(Component, { ...props }));
|
|
8639
8977
|
}
|
|
8640
|
-
return /* @__PURE__ */
|
|
8978
|
+
return /* @__PURE__ */ React55.createElement(Component, { ...props });
|
|
8641
8979
|
};
|
|
8642
8980
|
}
|
|
8643
8981
|
var getItemFirstCollisionDetection = (registeredLists, itemHitSlop) => (parameters) => {
|
|
@@ -8814,7 +9152,7 @@ function findDropTarget({
|
|
|
8814
9152
|
}
|
|
8815
9153
|
|
|
8816
9154
|
// src/components/sorting/sorting.ts
|
|
8817
|
-
var
|
|
9155
|
+
var React56 = __toESM(require("react"));
|
|
8818
9156
|
var normalizeListTargetIndex = (index, position) => {
|
|
8819
9157
|
return position === "above" ? index : index + 1;
|
|
8820
9158
|
};
|
|
@@ -8830,7 +9168,7 @@ var defaultAcceptsDrop = ({
|
|
|
8830
9168
|
}
|
|
8831
9169
|
return true;
|
|
8832
9170
|
};
|
|
8833
|
-
var SortableItemContext =
|
|
9171
|
+
var SortableItemContext = React56.createContext({
|
|
8834
9172
|
keys: [],
|
|
8835
9173
|
acceptsDrop: defaultAcceptsDrop,
|
|
8836
9174
|
axis: "y",
|
|
@@ -8896,7 +9234,7 @@ function parseDragItemKey(key) {
|
|
|
8896
9234
|
}
|
|
8897
9235
|
|
|
8898
9236
|
// src/components/sorting/Sortable.tsx
|
|
8899
|
-
var SortableItemContext2 =
|
|
9237
|
+
var SortableItemContext2 = React57.createContext({
|
|
8900
9238
|
acceptsDrop: defaultAcceptsDrop,
|
|
8901
9239
|
listId: "",
|
|
8902
9240
|
getDropTargetParentIndex: void 0,
|
|
@@ -8909,7 +9247,7 @@ function useSortableDropIndicator({
|
|
|
8909
9247
|
acceptsDrop: acceptsDrop2,
|
|
8910
9248
|
getDropTargetParentIndex
|
|
8911
9249
|
}) {
|
|
8912
|
-
const { activeDragContext } =
|
|
9250
|
+
const { activeDragContext } = React57.useContext(SortableItemContext2);
|
|
8913
9251
|
const activeDrag = useActiveDrag(activeDragContext);
|
|
8914
9252
|
const { source, target } = activeDrag;
|
|
8915
9253
|
if (!source || !target) return;
|
|
@@ -8940,7 +9278,7 @@ function SortableItem({
|
|
|
8940
9278
|
disabled,
|
|
8941
9279
|
children
|
|
8942
9280
|
}) {
|
|
8943
|
-
const { acceptsDrop: acceptsDrop2, listId, getDropTargetParentIndex } =
|
|
9281
|
+
const { acceptsDrop: acceptsDrop2, listId, getDropTargetParentIndex } = React57.useContext(SortableItemContext2);
|
|
8944
9282
|
const dragItemKey = createDragItemKey(listId, id);
|
|
8945
9283
|
const {
|
|
8946
9284
|
attributes,
|
|
@@ -8955,7 +9293,7 @@ function SortableItem({
|
|
|
8955
9293
|
id: dragItemKey,
|
|
8956
9294
|
disabled
|
|
8957
9295
|
});
|
|
8958
|
-
const ref =
|
|
9296
|
+
const ref = React57.useCallback(
|
|
8959
9297
|
(node) => setNodeRef(node),
|
|
8960
9298
|
[setNodeRef]
|
|
8961
9299
|
);
|
|
@@ -8966,7 +9304,7 @@ function SortableItem({
|
|
|
8966
9304
|
acceptsDrop: acceptsDrop2,
|
|
8967
9305
|
getDropTargetParentIndex
|
|
8968
9306
|
});
|
|
8969
|
-
const props = (0,
|
|
9307
|
+
const props = (0, import_react62.useMemo)(
|
|
8970
9308
|
() => ({
|
|
8971
9309
|
ref,
|
|
8972
9310
|
...attributes,
|
|
@@ -8975,7 +9313,7 @@ function SortableItem({
|
|
|
8975
9313
|
}),
|
|
8976
9314
|
[ref, attributes, listeners, isDragging]
|
|
8977
9315
|
);
|
|
8978
|
-
const extraProps = (0,
|
|
9316
|
+
const extraProps = (0, import_react62.useMemo)(
|
|
8979
9317
|
() => ({
|
|
8980
9318
|
isDragging,
|
|
8981
9319
|
isOverlay: false,
|
|
@@ -9009,9 +9347,9 @@ function SortableRoot_({
|
|
|
9009
9347
|
containerRef,
|
|
9010
9348
|
itemHitSlop
|
|
9011
9349
|
}) {
|
|
9012
|
-
const defaultId =
|
|
9350
|
+
const defaultId = React57.useId();
|
|
9013
9351
|
const id = idProp ?? defaultId;
|
|
9014
|
-
const keys =
|
|
9352
|
+
const keys = React57.useMemo(() => {
|
|
9015
9353
|
return keysProp.map((key) => createDragItemKey(id, key));
|
|
9016
9354
|
}, [keysProp, id]);
|
|
9017
9355
|
const { registerList, unregisterList } = useDragRegistration(
|
|
@@ -9020,7 +9358,7 @@ function SortableRoot_({
|
|
|
9020
9358
|
const { setNodeRef: setDroppableRef } = (0, import_core2.useDroppable)({
|
|
9021
9359
|
id
|
|
9022
9360
|
});
|
|
9023
|
-
|
|
9361
|
+
React57.useEffect(() => {
|
|
9024
9362
|
const listConfig = {
|
|
9025
9363
|
id,
|
|
9026
9364
|
keys,
|
|
@@ -9074,7 +9412,7 @@ function SortableRoot_({
|
|
|
9074
9412
|
keys,
|
|
9075
9413
|
itemHitSlop
|
|
9076
9414
|
]);
|
|
9077
|
-
const contextValue =
|
|
9415
|
+
const contextValue = React57.useMemo(
|
|
9078
9416
|
() => ({
|
|
9079
9417
|
keys,
|
|
9080
9418
|
acceptsDrop: acceptsDrop2,
|
|
@@ -9085,17 +9423,17 @@ function SortableRoot_({
|
|
|
9085
9423
|
[keys, acceptsDrop2, id, getDropTargetParentIndex, sharedDragProps]
|
|
9086
9424
|
);
|
|
9087
9425
|
const activeDragContext = sharedDragProps?.activeDragContext ?? ActiveDragContext;
|
|
9088
|
-
const dragState =
|
|
9426
|
+
const dragState = React57.useContext(activeDragContext);
|
|
9089
9427
|
const isDragging = !!dragState?.source;
|
|
9090
|
-
|
|
9428
|
+
React57.useEffect(() => {
|
|
9091
9429
|
onIsDraggingChange?.(isDragging);
|
|
9092
9430
|
}, [isDragging, onIsDraggingChange]);
|
|
9093
|
-
|
|
9431
|
+
React57.useEffect(() => {
|
|
9094
9432
|
if (containerRef) {
|
|
9095
9433
|
setDroppableRef(containerRef.current);
|
|
9096
9434
|
}
|
|
9097
9435
|
});
|
|
9098
|
-
return /* @__PURE__ */
|
|
9436
|
+
return /* @__PURE__ */ React57.createElement(SortableItemContext2.Provider, { value: contextValue }, /* @__PURE__ */ React57.createElement(
|
|
9099
9437
|
import_sortable.SortableContext,
|
|
9100
9438
|
{
|
|
9101
9439
|
items: keys,
|
|
@@ -9112,11 +9450,11 @@ var Sortable_ = function Sortable_2({
|
|
|
9112
9450
|
renderItem,
|
|
9113
9451
|
...rest
|
|
9114
9452
|
}) {
|
|
9115
|
-
const keys =
|
|
9453
|
+
const keys = React57.useMemo(
|
|
9116
9454
|
() => items.map(keyExtractor),
|
|
9117
9455
|
[items, keyExtractor]
|
|
9118
9456
|
);
|
|
9119
|
-
const renderOverlay =
|
|
9457
|
+
const renderOverlay = React57.useCallback(
|
|
9120
9458
|
(index) => {
|
|
9121
9459
|
return renderItem(
|
|
9122
9460
|
items[index],
|
|
@@ -9146,14 +9484,14 @@ var Sortable_ = function Sortable_2({
|
|
|
9146
9484
|
},
|
|
9147
9485
|
[renderItem, items]
|
|
9148
9486
|
);
|
|
9149
|
-
return /* @__PURE__ */
|
|
9487
|
+
return /* @__PURE__ */ React57.createElement(
|
|
9150
9488
|
SortableRoot,
|
|
9151
9489
|
{
|
|
9152
9490
|
...rest,
|
|
9153
9491
|
keys,
|
|
9154
9492
|
renderOverlay: shouldRenderOverlay ? renderOverlay : void 0
|
|
9155
9493
|
},
|
|
9156
|
-
keys.map((key, index) => /* @__PURE__ */
|
|
9494
|
+
keys.map((key, index) => /* @__PURE__ */ React57.createElement(SortableItem, { key, id: key }, (props, extraProps) => {
|
|
9157
9495
|
return renderItem(items[index], props, extraProps);
|
|
9158
9496
|
}))
|
|
9159
9497
|
);
|
|
@@ -9167,87 +9505,6 @@ var Sortable = Object.assign(Sortable_, {
|
|
|
9167
9505
|
var ROW_HEIGHT = 31;
|
|
9168
9506
|
var SECTION_HEADER_LABEL_HEIGHT = 24;
|
|
9169
9507
|
var TALL_ROW_HEIGHT = 50;
|
|
9170
|
-
var VirtualizedListRow = (0, import_react62.memo)(function VirtualizedListRow2({
|
|
9171
|
-
index,
|
|
9172
|
-
style: style2
|
|
9173
|
-
}) {
|
|
9174
|
-
const renderItem = (0, import_react62.useContext)(RenderItemContext);
|
|
9175
|
-
return /* @__PURE__ */ import_react62.default.createElement("div", { key: index, style: style2 }, renderItem(index));
|
|
9176
|
-
});
|
|
9177
|
-
var VirtualizedListInner = forwardRefGeneric(function VirtualizedListInner2({
|
|
9178
|
-
size,
|
|
9179
|
-
scrollElement,
|
|
9180
|
-
items,
|
|
9181
|
-
getItemHeight,
|
|
9182
|
-
keyExtractor,
|
|
9183
|
-
renderItem
|
|
9184
|
-
}, ref) {
|
|
9185
|
-
const listRef = (0, import_react62.useRef)(null);
|
|
9186
|
-
(0, import_react62.useImperativeHandle)(ref, () => ({
|
|
9187
|
-
scrollToIndex(index) {
|
|
9188
|
-
listRef.current?.scrollToItem(index);
|
|
9189
|
-
}
|
|
9190
|
-
}));
|
|
9191
|
-
(0, import_react62.useLayoutEffect)(() => {
|
|
9192
|
-
listRef.current?.resetAfterIndex(0);
|
|
9193
|
-
}, [
|
|
9194
|
-
// When items or the height resolver change, re-render the virtualized list
|
|
9195
|
-
// since VariableSizeList caches sizes per index.
|
|
9196
|
-
items,
|
|
9197
|
-
getItemHeight
|
|
9198
|
-
]);
|
|
9199
|
-
const listStyle = (0, import_react62.useMemo)(
|
|
9200
|
-
() => ({
|
|
9201
|
-
overflowX: "initial",
|
|
9202
|
-
overflowY: "initial",
|
|
9203
|
-
overflow: "initial"
|
|
9204
|
-
}),
|
|
9205
|
-
[]
|
|
9206
|
-
);
|
|
9207
|
-
return /* @__PURE__ */ import_react62.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react62.default.createElement(
|
|
9208
|
-
import_react_virtualized.WindowScroller,
|
|
9209
|
-
{
|
|
9210
|
-
scrollElement,
|
|
9211
|
-
style: (0, import_react62.useMemo)(() => ({ flex: "1 1 auto" }), [])
|
|
9212
|
-
},
|
|
9213
|
-
(0, import_react62.useCallback)(
|
|
9214
|
-
({
|
|
9215
|
-
registerChild,
|
|
9216
|
-
onChildScroll,
|
|
9217
|
-
scrollTop
|
|
9218
|
-
}) => /* @__PURE__ */ import_react62.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react62.default.createElement(
|
|
9219
|
-
import_react_window.VariableSizeList,
|
|
9220
|
-
{
|
|
9221
|
-
ref: listRef,
|
|
9222
|
-
key: scrollTop,
|
|
9223
|
-
style: listStyle,
|
|
9224
|
-
itemKey: keyExtractor,
|
|
9225
|
-
onScroll: ({ scrollOffset }) => {
|
|
9226
|
-
onChildScroll({ scrollTop: scrollOffset });
|
|
9227
|
-
},
|
|
9228
|
-
initialScrollOffset: scrollTop,
|
|
9229
|
-
width: size.width,
|
|
9230
|
-
height: size.height,
|
|
9231
|
-
itemCount: items.length,
|
|
9232
|
-
itemSize: getItemHeight,
|
|
9233
|
-
estimatedItemSize: ROW_HEIGHT
|
|
9234
|
-
},
|
|
9235
|
-
VirtualizedListRow
|
|
9236
|
-
)),
|
|
9237
|
-
[
|
|
9238
|
-
listStyle,
|
|
9239
|
-
keyExtractor,
|
|
9240
|
-
size.width,
|
|
9241
|
-
size.height,
|
|
9242
|
-
items.length,
|
|
9243
|
-
getItemHeight
|
|
9244
|
-
]
|
|
9245
|
-
)
|
|
9246
|
-
));
|
|
9247
|
-
});
|
|
9248
|
-
var VirtualizedList = (0, import_react62.memo)(
|
|
9249
|
-
VirtualizedListInner
|
|
9250
|
-
);
|
|
9251
9508
|
var ListViewRoot = memoGeneric(
|
|
9252
9509
|
forwardRefGeneric(function ListViewRootInner({
|
|
9253
9510
|
id,
|
|
@@ -9286,7 +9543,7 @@ var ListViewRoot = memoGeneric(
|
|
|
9286
9543
|
itemHeight,
|
|
9287
9544
|
getItemHeightForItem
|
|
9288
9545
|
}, forwardedRef) {
|
|
9289
|
-
const handleClick = (0,
|
|
9546
|
+
const handleClick = (0, import_react63.useCallback)(
|
|
9290
9547
|
(event) => {
|
|
9291
9548
|
if (event.target instanceof HTMLElement && event.target.classList.contains("scroll-component"))
|
|
9292
9549
|
return;
|
|
@@ -9296,11 +9553,11 @@ var ListViewRoot = memoGeneric(
|
|
|
9296
9553
|
},
|
|
9297
9554
|
[onPress]
|
|
9298
9555
|
);
|
|
9299
|
-
const renderChild = (0,
|
|
9556
|
+
const renderChild = (0, import_react63.useCallback)(
|
|
9300
9557
|
(index) => renderItem(data[index], index, { isDragOverlay: false }),
|
|
9301
9558
|
[data, renderItem]
|
|
9302
9559
|
);
|
|
9303
|
-
const defaultContextValue = (0,
|
|
9560
|
+
const defaultContextValue = (0, import_react63.useMemo)(
|
|
9304
9561
|
() => ({
|
|
9305
9562
|
marginType: "none",
|
|
9306
9563
|
selectedPosition: "only",
|
|
@@ -9308,22 +9565,22 @@ var ListViewRoot = memoGeneric(
|
|
|
9308
9565
|
}),
|
|
9309
9566
|
[]
|
|
9310
9567
|
);
|
|
9311
|
-
const getItemContextValue = (0,
|
|
9568
|
+
const getItemContextValue = (0, import_react63.useCallback)(
|
|
9312
9569
|
(i) => {
|
|
9313
9570
|
if (variant === "bare" || variant === "normal") {
|
|
9314
9571
|
const current2 = renderChild(i);
|
|
9315
|
-
if (!(0,
|
|
9572
|
+
if (!(0, import_react63.isValidElement)(current2)) return defaultContextValue;
|
|
9316
9573
|
return {
|
|
9317
9574
|
...defaultContextValue,
|
|
9318
9575
|
isSectionHeader: !!current2.props.isSectionHeader
|
|
9319
9576
|
};
|
|
9320
9577
|
}
|
|
9321
9578
|
const current = renderChild(i);
|
|
9322
|
-
if (!(0,
|
|
9579
|
+
if (!(0, import_react63.isValidElement)(current)) return;
|
|
9323
9580
|
const prevChild = i - 1 >= 0 && renderChild(i - 1);
|
|
9324
9581
|
const nextChild = i + 1 < data.length && renderChild(i + 1);
|
|
9325
|
-
const next = (0,
|
|
9326
|
-
const prev = (0,
|
|
9582
|
+
const next = (0, import_react63.isValidElement)(nextChild) ? nextChild : void 0;
|
|
9583
|
+
const prev = (0, import_react63.isValidElement)(prevChild) ? prevChild : void 0;
|
|
9327
9584
|
const hasMarginTop = !prev;
|
|
9328
9585
|
const hasMarginBottom = !next || current.props.isSectionHeader || next && next.props.isSectionHeader;
|
|
9329
9586
|
let marginType;
|
|
@@ -9356,27 +9613,27 @@ var ListViewRoot = memoGeneric(
|
|
|
9356
9613
|
},
|
|
9357
9614
|
[variant, defaultContextValue, renderChild, data.length]
|
|
9358
9615
|
);
|
|
9359
|
-
const draggingContextOverlayValue = (0,
|
|
9616
|
+
const draggingContextOverlayValue = (0, import_react63.useMemo)(
|
|
9360
9617
|
() => ({
|
|
9361
9618
|
isDragOverlay: true
|
|
9362
9619
|
}),
|
|
9363
9620
|
[]
|
|
9364
9621
|
);
|
|
9365
|
-
const renderOverlay = (0,
|
|
9366
|
-
(index) => /* @__PURE__ */
|
|
9622
|
+
const renderOverlay = (0, import_react63.useCallback)(
|
|
9623
|
+
(index) => /* @__PURE__ */ import_react63.default.createElement("div", { style: { opacity: 0.25 } }, /* @__PURE__ */ import_react63.default.createElement(ListViewDraggingContext.Provider, { value: draggingContextOverlayValue }, renderItem(data[index], index, { isDragOverlay: true }))),
|
|
9367
9624
|
[draggingContextOverlayValue, renderItem, data]
|
|
9368
9625
|
);
|
|
9369
|
-
const renderWrappedChild = (0,
|
|
9626
|
+
const renderWrappedChild = (0, import_react63.useCallback)(
|
|
9370
9627
|
(index) => {
|
|
9371
9628
|
const contextValue2 = getItemContextValue(index);
|
|
9372
9629
|
const current = renderChild(index);
|
|
9373
|
-
if (!contextValue2 || !(0,
|
|
9374
|
-
return /* @__PURE__ */
|
|
9630
|
+
if (!contextValue2 || !(0, import_react63.isValidElement)(current)) return null;
|
|
9631
|
+
return /* @__PURE__ */ import_react63.default.createElement(ListRowContext.Provider, { key: current.key, value: contextValue2 }, current);
|
|
9375
9632
|
},
|
|
9376
9633
|
[getItemContextValue, renderChild]
|
|
9377
9634
|
);
|
|
9378
|
-
const ids = (0,
|
|
9379
|
-
const withSortable = (children) => sortable ? /* @__PURE__ */
|
|
9635
|
+
const ids = (0, import_react63.useMemo)(() => data.map(keyExtractor), [keyExtractor, data]);
|
|
9636
|
+
const withSortable = (children) => sortable ? /* @__PURE__ */ import_react63.default.createElement(
|
|
9380
9637
|
Sortable.Root,
|
|
9381
9638
|
{
|
|
9382
9639
|
id: sortableId,
|
|
@@ -9389,8 +9646,8 @@ var ListViewRoot = memoGeneric(
|
|
|
9389
9646
|
},
|
|
9390
9647
|
children
|
|
9391
9648
|
) : children;
|
|
9392
|
-
const withScrollable = (children) => scrollable ? /* @__PURE__ */
|
|
9393
|
-
const getItemHeight = (0,
|
|
9649
|
+
const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react63.default.createElement(ScrollArea, null, children) : children;
|
|
9650
|
+
const getItemHeight = (0, import_react63.useCallback)(
|
|
9394
9651
|
(index) => {
|
|
9395
9652
|
const child = getItemContextValue(index);
|
|
9396
9653
|
if (child?.isSectionHeader && sectionHeaderVariant === "label") {
|
|
@@ -9410,13 +9667,13 @@ var ListViewRoot = memoGeneric(
|
|
|
9410
9667
|
data
|
|
9411
9668
|
]
|
|
9412
9669
|
);
|
|
9413
|
-
const getKey = (0,
|
|
9670
|
+
const getKey = (0, import_react63.useCallback)(
|
|
9414
9671
|
(index) => keyExtractor(data[index], index),
|
|
9415
9672
|
[data, keyExtractor]
|
|
9416
9673
|
);
|
|
9417
|
-
const draggingContextValue = (0,
|
|
9418
|
-
const gapStyle = (0,
|
|
9419
|
-
const contextValue = (0,
|
|
9674
|
+
const draggingContextValue = (0, import_react63.useMemo)(() => ({}), []);
|
|
9675
|
+
const gapStyle = (0, import_react63.useMemo)(() => ({ gap: `${gap}px` }), [gap]);
|
|
9676
|
+
const contextValue = (0, import_react63.useMemo)(
|
|
9420
9677
|
() => ({
|
|
9421
9678
|
pressEventName,
|
|
9422
9679
|
colorScheme,
|
|
@@ -9440,7 +9697,7 @@ var ListViewRoot = memoGeneric(
|
|
|
9440
9697
|
indentation
|
|
9441
9698
|
]
|
|
9442
9699
|
);
|
|
9443
|
-
return /* @__PURE__ */
|
|
9700
|
+
return /* @__PURE__ */ import_react63.default.createElement(ListViewContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react63.default.createElement(ListViewDraggingContext.Provider, { value: draggingContextValue }, /* @__PURE__ */ import_react63.default.createElement(
|
|
9444
9701
|
"div",
|
|
9445
9702
|
{
|
|
9446
9703
|
id,
|
|
@@ -9467,21 +9724,21 @@ var ListViewRoot = memoGeneric(
|
|
|
9467
9724
|
onDragLeave,
|
|
9468
9725
|
onDrop
|
|
9469
9726
|
},
|
|
9470
|
-
data.length === 0 && renderEmptyState ? renderEmptyState() :
|
|
9471
|
-
|
|
9472
|
-
|
|
9473
|
-
|
|
9474
|
-
|
|
9475
|
-
|
|
9476
|
-
|
|
9477
|
-
|
|
9478
|
-
|
|
9479
|
-
|
|
9480
|
-
|
|
9481
|
-
|
|
9482
|
-
}
|
|
9483
|
-
) : (0, import_noya_utils8.range)(0, data.length).map(renderWrappedChild)
|
|
9727
|
+
data.length === 0 && renderEmptyState ? renderEmptyState() : virtualized != null ? withSortable(
|
|
9728
|
+
/* @__PURE__ */ import_react63.default.createElement(
|
|
9729
|
+
Virtualized2,
|
|
9730
|
+
{
|
|
9731
|
+
ref: forwardedRef,
|
|
9732
|
+
height: virtualized,
|
|
9733
|
+
itemCount: data.length,
|
|
9734
|
+
getItemHeight,
|
|
9735
|
+
renderItem: renderWrappedChild,
|
|
9736
|
+
itemKey: getKey,
|
|
9737
|
+
useScrollArea: scrollable
|
|
9738
|
+
}
|
|
9484
9739
|
)
|
|
9740
|
+
) : withScrollable(
|
|
9741
|
+
withSortable((0, import_noya_utils8.range)(0, data.length).map(renderWrappedChild))
|
|
9485
9742
|
)
|
|
9486
9743
|
)));
|
|
9487
9744
|
})
|
|
@@ -9489,7 +9746,7 @@ var ListViewRoot = memoGeneric(
|
|
|
9489
9746
|
|
|
9490
9747
|
// src/components/listView/ListViewRow.tsx
|
|
9491
9748
|
var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
|
|
9492
|
-
var
|
|
9749
|
+
var import_react64 = __toESM(require("react"));
|
|
9493
9750
|
|
|
9494
9751
|
// src/hooks/mergeEventHandlers.ts
|
|
9495
9752
|
var import_noya_utils9 = require("@noya-app/noya-utils");
|
|
@@ -9515,7 +9772,7 @@ function mergeEventHandlers(...handlerMaps) {
|
|
|
9515
9772
|
}
|
|
9516
9773
|
|
|
9517
9774
|
// src/components/listView/ListViewRow.tsx
|
|
9518
|
-
var RowContainer = (0,
|
|
9775
|
+
var RowContainer = (0, import_react64.forwardRef)(
|
|
9519
9776
|
({
|
|
9520
9777
|
as: Component = "div",
|
|
9521
9778
|
href,
|
|
@@ -9542,7 +9799,7 @@ var RowContainer = (0, import_react63.forwardRef)(
|
|
|
9542
9799
|
"aria-selected": ariaSelected,
|
|
9543
9800
|
...props
|
|
9544
9801
|
}, ref) => {
|
|
9545
|
-
return /* @__PURE__ */
|
|
9802
|
+
return /* @__PURE__ */ import_react64.default.createElement(
|
|
9546
9803
|
Component,
|
|
9547
9804
|
{
|
|
9548
9805
|
ref,
|
|
@@ -9614,7 +9871,7 @@ var RowContainer = (0, import_react63.forwardRef)(
|
|
|
9614
9871
|
);
|
|
9615
9872
|
}
|
|
9616
9873
|
);
|
|
9617
|
-
var ListViewDragIndicatorElement = (0,
|
|
9874
|
+
var ListViewDragIndicatorElement = (0, import_react64.forwardRef)(
|
|
9618
9875
|
({
|
|
9619
9876
|
className,
|
|
9620
9877
|
$relativeDropPosition,
|
|
@@ -9624,7 +9881,7 @@ var ListViewDragIndicatorElement = (0, import_react63.forwardRef)(
|
|
|
9624
9881
|
style: style2,
|
|
9625
9882
|
...props
|
|
9626
9883
|
}, ref) => {
|
|
9627
|
-
return /* @__PURE__ */
|
|
9884
|
+
return /* @__PURE__ */ import_react64.default.createElement(
|
|
9628
9885
|
"div",
|
|
9629
9886
|
{
|
|
9630
9887
|
ref,
|
|
@@ -9692,27 +9949,27 @@ var ListViewRow = memoGeneric(
|
|
|
9692
9949
|
divider,
|
|
9693
9950
|
sortable,
|
|
9694
9951
|
indentation
|
|
9695
|
-
} = (0,
|
|
9696
|
-
const { marginType, selectedPosition } = (0,
|
|
9952
|
+
} = (0, import_react64.useContext)(ListViewContext);
|
|
9953
|
+
const { marginType, selectedPosition } = (0, import_react64.useContext)(ListRowContext);
|
|
9697
9954
|
const { hoverProps } = useHover({
|
|
9698
9955
|
onHoverChange
|
|
9699
9956
|
});
|
|
9700
|
-
const { isDragOverlay } = (0,
|
|
9701
|
-
const handlePress = (0,
|
|
9957
|
+
const { isDragOverlay } = (0, import_react64.useContext)(ListViewDraggingContext);
|
|
9958
|
+
const handlePress = (0, import_react64.useCallback)(
|
|
9702
9959
|
(event) => {
|
|
9703
9960
|
if (event.button !== 0) return;
|
|
9704
9961
|
onPress?.(event);
|
|
9705
9962
|
},
|
|
9706
9963
|
[onPress]
|
|
9707
9964
|
);
|
|
9708
|
-
const handleDoubleClick = (0,
|
|
9965
|
+
const handleDoubleClick = (0, import_react64.useCallback)(
|
|
9709
9966
|
(event) => {
|
|
9710
9967
|
event.stopPropagation();
|
|
9711
9968
|
onDoubleClick?.();
|
|
9712
9969
|
},
|
|
9713
9970
|
[onDoubleClick]
|
|
9714
9971
|
);
|
|
9715
|
-
const mergedStyle = (0,
|
|
9972
|
+
const mergedStyle = (0, import_react64.useMemo)(() => {
|
|
9716
9973
|
return isDragOverlay ? {
|
|
9717
9974
|
// TODO: Where do these offsets actually come from?
|
|
9718
9975
|
transform: `translate3d(-36px, -6px, 0)`,
|
|
@@ -9723,7 +9980,7 @@ var ListViewRow = memoGeneric(
|
|
|
9723
9980
|
const renderContent = (renderProps, ref, relativeDropPositionProp) => {
|
|
9724
9981
|
const Component = RowContainer;
|
|
9725
9982
|
const relativeDropPosition = testRelativeDropPosition ?? relativeDropPositionProp;
|
|
9726
|
-
const element = /* @__PURE__ */
|
|
9983
|
+
const element = /* @__PURE__ */ import_react64.default.createElement(
|
|
9727
9984
|
Component,
|
|
9728
9985
|
{
|
|
9729
9986
|
as,
|
|
@@ -9758,7 +10015,7 @@ var ListViewRow = memoGeneric(
|
|
|
9758
10015
|
className,
|
|
9759
10016
|
$clickable: !!onPress
|
|
9760
10017
|
},
|
|
9761
|
-
relativeDropPosition && /* @__PURE__ */
|
|
10018
|
+
relativeDropPosition && /* @__PURE__ */ import_react64.default.createElement(
|
|
9762
10019
|
ListViewDragIndicatorElement,
|
|
9763
10020
|
{
|
|
9764
10021
|
key: relativeDropPosition,
|
|
@@ -9773,11 +10030,11 @@ var ListViewRow = memoGeneric(
|
|
|
9773
10030
|
}) : dragIndicatorStyle
|
|
9774
10031
|
}
|
|
9775
10032
|
),
|
|
9776
|
-
depth > 0 && /* @__PURE__ */
|
|
10033
|
+
depth > 0 && /* @__PURE__ */ import_react64.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
|
|
9777
10034
|
children
|
|
9778
10035
|
);
|
|
9779
10036
|
if (menuItems && onSelectMenuItem) {
|
|
9780
|
-
return /* @__PURE__ */
|
|
10037
|
+
return /* @__PURE__ */ import_react64.default.createElement(
|
|
9781
10038
|
ContextMenu,
|
|
9782
10039
|
{
|
|
9783
10040
|
items: menuItems,
|
|
@@ -9790,7 +10047,7 @@ var ListViewRow = memoGeneric(
|
|
|
9790
10047
|
return element;
|
|
9791
10048
|
};
|
|
9792
10049
|
if (sortable && id) {
|
|
9793
|
-
return /* @__PURE__ */
|
|
10050
|
+
return /* @__PURE__ */ import_react64.default.createElement(
|
|
9794
10051
|
Sortable.Item,
|
|
9795
10052
|
{
|
|
9796
10053
|
id,
|
|
@@ -9808,12 +10065,12 @@ var ListViewRow = memoGeneric(
|
|
|
9808
10065
|
);
|
|
9809
10066
|
|
|
9810
10067
|
// src/components/listView/ListViewRowTitle.tsx
|
|
9811
|
-
var
|
|
9812
|
-
var ListViewRowTitle = (0,
|
|
10068
|
+
var import_react65 = __toESM(require("react"));
|
|
10069
|
+
var ListViewRowTitle = (0, import_react65.memo)(function ListViewRowTitle2({
|
|
9813
10070
|
className,
|
|
9814
10071
|
...props
|
|
9815
10072
|
}) {
|
|
9816
|
-
return /* @__PURE__ */
|
|
10073
|
+
return /* @__PURE__ */ import_react65.default.createElement(
|
|
9817
10074
|
"span",
|
|
9818
10075
|
{
|
|
9819
10076
|
className: cx(
|
|
@@ -9870,7 +10127,7 @@ var ListView;
|
|
|
9870
10127
|
})(ListView || (ListView = {}));
|
|
9871
10128
|
|
|
9872
10129
|
// src/components/TreeView.tsx
|
|
9873
|
-
var
|
|
10130
|
+
var import_react66 = __toESM(require("react"));
|
|
9874
10131
|
var TreeRow = forwardRefGeneric(function TreeRow2({
|
|
9875
10132
|
icon,
|
|
9876
10133
|
expanded,
|
|
@@ -9881,9 +10138,9 @@ var TreeRow = forwardRefGeneric(function TreeRow2({
|
|
|
9881
10138
|
children,
|
|
9882
10139
|
...rest
|
|
9883
10140
|
}, forwardedRef) {
|
|
9884
|
-
const { expandable } = (0,
|
|
10141
|
+
const { expandable } = (0, import_react66.useContext)(ListViewContext);
|
|
9885
10142
|
const stableOnClickChevron = useStableCallback(onClickChevron);
|
|
9886
|
-
const handleClickChevron = (0,
|
|
10143
|
+
const handleClickChevron = (0, import_react66.useCallback)(
|
|
9887
10144
|
(event) => {
|
|
9888
10145
|
event.stopPropagation();
|
|
9889
10146
|
event.preventDefault();
|
|
@@ -9891,7 +10148,7 @@ var TreeRow = forwardRefGeneric(function TreeRow2({
|
|
|
9891
10148
|
},
|
|
9892
10149
|
[stableOnClickChevron]
|
|
9893
10150
|
);
|
|
9894
|
-
return /* @__PURE__ */
|
|
10151
|
+
return /* @__PURE__ */ import_react66.default.createElement(ListView.Row, { ref: forwardedRef, ...rest }, expandable && chevronPosition !== "end" && /* @__PURE__ */ import_react66.default.createElement(import_react66.default.Fragment, null, expanded === void 0 ? /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, { size: 19 }) : /* @__PURE__ */ import_react66.default.createElement(
|
|
9895
10152
|
IconButton,
|
|
9896
10153
|
{
|
|
9897
10154
|
as: chevronAs,
|
|
@@ -9900,7 +10157,7 @@ var TreeRow = forwardRefGeneric(function TreeRow2({
|
|
|
9900
10157
|
onClick: handleClickChevron,
|
|
9901
10158
|
selected: rest.selected
|
|
9902
10159
|
}
|
|
9903
|
-
), /* @__PURE__ */
|
|
10160
|
+
), /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, { size: 6 })), icon && /* @__PURE__ */ import_react66.default.createElement(import_react66.default.Fragment, null, renderIcon(icon), /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, { size: 10 })), children, expandable && chevronPosition === "end" && /* @__PURE__ */ import_react66.default.createElement(import_react66.default.Fragment, null, /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, { size: 6 }), expanded === void 0 ? /* @__PURE__ */ import_react66.default.createElement(import_react66.default.Fragment, null) : /* @__PURE__ */ import_react66.default.createElement(import_react66.default.Fragment, null, /* @__PURE__ */ import_react66.default.createElement(
|
|
9904
10161
|
IconButton,
|
|
9905
10162
|
{
|
|
9906
10163
|
as: chevronAs,
|
|
@@ -9909,7 +10166,7 @@ var TreeRow = forwardRefGeneric(function TreeRow2({
|
|
|
9909
10166
|
onClick: handleClickChevron,
|
|
9910
10167
|
selected: rest.selected
|
|
9911
10168
|
}
|
|
9912
|
-
), /* @__PURE__ */
|
|
10169
|
+
), /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, { size: 8 }))));
|
|
9913
10170
|
});
|
|
9914
10171
|
var TreeView;
|
|
9915
10172
|
((TreeView2) => {
|
|
@@ -9977,9 +10234,9 @@ var List = memoGeneric(
|
|
|
9977
10234
|
getItemStyle,
|
|
9978
10235
|
getItemClassName
|
|
9979
10236
|
} = props;
|
|
9980
|
-
const [internalHoveredId, setHoveredId] = (0,
|
|
9981
|
-
const [internalRenamingId, setRenamingId] = (0,
|
|
9982
|
-
const [dropdownOpenId, setDropdownOpenId] = (0,
|
|
10237
|
+
const [internalHoveredId, setHoveredId] = (0, import_react67.useState)();
|
|
10238
|
+
const [internalRenamingId, setRenamingId] = (0, import_react67.useState)();
|
|
10239
|
+
const [dropdownOpenId, setDropdownOpenId] = (0, import_react67.useState)();
|
|
9983
10240
|
const hoveredId = internalHoveredId ?? testHoveredId;
|
|
9984
10241
|
const renamingId = testRenamingId ?? internalRenamingId;
|
|
9985
10242
|
const itemClassName = cx(
|
|
@@ -9987,7 +10244,7 @@ var List = memoGeneric(
|
|
|
9987
10244
|
pyMap[size],
|
|
9988
10245
|
itemClassNameProp
|
|
9989
10246
|
);
|
|
9990
|
-
const itemStyle = (0,
|
|
10247
|
+
const itemStyle = (0, import_react67.useMemo)(
|
|
9991
10248
|
() => ({ ...cssVarOverrides, ...itemStyleProp }),
|
|
9992
10249
|
[itemStyleProp]
|
|
9993
10250
|
);
|
|
@@ -10015,17 +10272,17 @@ var List = memoGeneric(
|
|
|
10015
10272
|
};
|
|
10016
10273
|
const ViewComponent = expandable ? TreeView : ListView;
|
|
10017
10274
|
const LinkComponent2 = useLinkComponent();
|
|
10018
|
-
const fileDropTargetRef = (0,
|
|
10275
|
+
const fileDropTargetRef = (0, import_react67.useRef)(null);
|
|
10019
10276
|
const { isDropTargetActive, dropTargetProps } = useFileDropTarget(
|
|
10020
10277
|
fileDropTargetRef,
|
|
10021
10278
|
onFilesDrop
|
|
10022
10279
|
);
|
|
10023
|
-
(0,
|
|
10280
|
+
(0, import_react67.useImperativeHandle)(ref, () => ({
|
|
10024
10281
|
editName: (id) => {
|
|
10025
10282
|
setRenamingId(id);
|
|
10026
10283
|
}
|
|
10027
10284
|
}));
|
|
10028
|
-
return /* @__PURE__ */
|
|
10285
|
+
return /* @__PURE__ */ import_react67.default.createElement(
|
|
10029
10286
|
ViewComponent.Root,
|
|
10030
10287
|
{
|
|
10031
10288
|
variant: "bare",
|
|
@@ -10074,7 +10331,7 @@ var List = memoGeneric(
|
|
|
10074
10331
|
handleSelect(id);
|
|
10075
10332
|
}
|
|
10076
10333
|
};
|
|
10077
|
-
const action = (isHovered || isSelected) && !isRenaming && (typeof renderAction === "function" ? renderAction({ item, selected: isSelected, onOpenChange }) : renderAction === "menu" && menuItems && /* @__PURE__ */
|
|
10334
|
+
const action = (isHovered || isSelected) && !isRenaming && (typeof renderAction === "function" ? renderAction({ item, selected: isSelected, onOpenChange }) : renderAction === "menu" && menuItems && /* @__PURE__ */ import_react67.default.createElement(
|
|
10078
10335
|
ActionMenu,
|
|
10079
10336
|
{
|
|
10080
10337
|
menuItems,
|
|
@@ -10094,7 +10351,7 @@ var List = memoGeneric(
|
|
|
10094
10351
|
let below = detailPosition === "below" ? detailContent : void 0;
|
|
10095
10352
|
if (below && normalizedDetailLineClamp) {
|
|
10096
10353
|
const clampClassName = DETAIL_LINE_CLAMP_CLASSES[normalizedDetailLineClamp];
|
|
10097
|
-
below = /* @__PURE__ */
|
|
10354
|
+
below = /* @__PURE__ */ import_react67.default.createElement(
|
|
10098
10355
|
"div",
|
|
10099
10356
|
{
|
|
10100
10357
|
className: cx(
|
|
@@ -10107,7 +10364,7 @@ var List = memoGeneric(
|
|
|
10107
10364
|
}
|
|
10108
10365
|
const perItemStyle = getItemStyle?.(item, isSelected);
|
|
10109
10366
|
const perItemClassName = getItemClassName?.(item, isSelected);
|
|
10110
|
-
return /* @__PURE__ */
|
|
10367
|
+
return /* @__PURE__ */ import_react67.default.createElement(
|
|
10111
10368
|
ViewComponent.Row,
|
|
10112
10369
|
{
|
|
10113
10370
|
as: typeof href === "string" ? LinkComponent2 : void 0,
|
|
@@ -10162,7 +10419,7 @@ var List = memoGeneric(
|
|
|
10162
10419
|
},
|
|
10163
10420
|
dragIndicatorStyle
|
|
10164
10421
|
},
|
|
10165
|
-
/* @__PURE__ */
|
|
10422
|
+
/* @__PURE__ */ import_react67.default.createElement(
|
|
10166
10423
|
"div",
|
|
10167
10424
|
{
|
|
10168
10425
|
className: cx(
|
|
@@ -10170,7 +10427,7 @@ var List = memoGeneric(
|
|
|
10170
10427
|
rowGapMap[size]
|
|
10171
10428
|
)
|
|
10172
10429
|
},
|
|
10173
|
-
thumbnail && /* @__PURE__ */
|
|
10430
|
+
thumbnail && /* @__PURE__ */ import_react67.default.createElement(
|
|
10174
10431
|
"div",
|
|
10175
10432
|
{
|
|
10176
10433
|
className: cx(
|
|
@@ -10183,13 +10440,13 @@ var List = memoGeneric(
|
|
|
10183
10440
|
},
|
|
10184
10441
|
thumbnail
|
|
10185
10442
|
),
|
|
10186
|
-
/* @__PURE__ */
|
|
10443
|
+
/* @__PURE__ */ import_react67.default.createElement("div", { className: "n-flex n-flex-col n-flex-1 n-w-0" }, /* @__PURE__ */ import_react67.default.createElement("div", { className: "n-flex n-items-center n-min-h-input-height n-flex-1 n-gap-2" }, /* @__PURE__ */ import_react67.default.createElement(
|
|
10187
10444
|
"div",
|
|
10188
10445
|
{
|
|
10189
10446
|
className: "n-flex-1 n-w-0 n-flex n-items-center",
|
|
10190
10447
|
tabIndex: -1
|
|
10191
10448
|
},
|
|
10192
|
-
isRenaming ? /* @__PURE__ */
|
|
10449
|
+
isRenaming ? /* @__PURE__ */ import_react67.default.createElement(
|
|
10193
10450
|
ViewComponent.EditableRowTitle,
|
|
10194
10451
|
{
|
|
10195
10452
|
value: getName(item),
|
|
@@ -10205,7 +10462,7 @@ var List = memoGeneric(
|
|
|
10205
10462
|
e.stopPropagation();
|
|
10206
10463
|
}
|
|
10207
10464
|
}
|
|
10208
|
-
) : /* @__PURE__ */
|
|
10465
|
+
) : /* @__PURE__ */ import_react67.default.createElement(
|
|
10209
10466
|
ViewComponent.RowTitle,
|
|
10210
10467
|
{
|
|
10211
10468
|
className: cx(
|
|
@@ -10215,7 +10472,7 @@ var List = memoGeneric(
|
|
|
10215
10472
|
},
|
|
10216
10473
|
getName(item)
|
|
10217
10474
|
)
|
|
10218
|
-
), right && detailPosition === "end" && /* @__PURE__ */
|
|
10475
|
+
), right && detailPosition === "end" && /* @__PURE__ */ import_react67.default.createElement(DetailContainer, { selected: isSelected }, right), end && detailPosition === "end" && /* @__PURE__ */ import_react67.default.createElement(DetailContainer, { selected: isSelected }, end)), below && /* @__PURE__ */ import_react67.default.createElement(
|
|
10219
10476
|
DetailContainer,
|
|
10220
10477
|
{
|
|
10221
10478
|
selected: isSelected,
|
|
@@ -10223,8 +10480,8 @@ var List = memoGeneric(
|
|
|
10223
10480
|
},
|
|
10224
10481
|
below
|
|
10225
10482
|
)),
|
|
10226
|
-
right && detailPosition === "below" && /* @__PURE__ */
|
|
10227
|
-
end && detailPosition === "below" && /* @__PURE__ */
|
|
10483
|
+
right && detailPosition === "below" && /* @__PURE__ */ import_react67.default.createElement(DetailContainer, { selected: isSelected }, right),
|
|
10484
|
+
end && detailPosition === "below" && /* @__PURE__ */ import_react67.default.createElement(DetailContainer, { selected: isSelected }, end)
|
|
10228
10485
|
)
|
|
10229
10486
|
);
|
|
10230
10487
|
}
|
|
@@ -10232,12 +10489,12 @@ var List = memoGeneric(
|
|
|
10232
10489
|
);
|
|
10233
10490
|
})
|
|
10234
10491
|
);
|
|
10235
|
-
var DetailContainer = (0,
|
|
10492
|
+
var DetailContainer = (0, import_react67.memo)(function DetailContainer2({
|
|
10236
10493
|
children,
|
|
10237
10494
|
selected,
|
|
10238
10495
|
align = "center"
|
|
10239
10496
|
}) {
|
|
10240
|
-
return /* @__PURE__ */
|
|
10497
|
+
return /* @__PURE__ */ import_react67.default.createElement(
|
|
10241
10498
|
"div",
|
|
10242
10499
|
{
|
|
10243
10500
|
className: cx(
|
|
@@ -10308,7 +10565,7 @@ var itemHeightMap = {
|
|
|
10308
10565
|
// src/components/Collection.tsx
|
|
10309
10566
|
var Collection = forwardRefGeneric(function Collection2(props, ref) {
|
|
10310
10567
|
const { viewType, ...rest } = props;
|
|
10311
|
-
return viewType === "grid" ? /* @__PURE__ */
|
|
10568
|
+
return viewType === "grid" ? /* @__PURE__ */ import_react68.default.createElement(Grid, { ref, ...rest }) : /* @__PURE__ */ import_react68.default.createElement(List, { ref, ...rest });
|
|
10312
10569
|
});
|
|
10313
10570
|
|
|
10314
10571
|
// ../noya-color/src/convert.ts
|
|
@@ -10465,7 +10722,7 @@ var import_css_background = __toESM(require_css_background());
|
|
|
10465
10722
|
|
|
10466
10723
|
// src/components/ColorSwatch.tsx
|
|
10467
10724
|
var import_noya_icons6 = require("@noya-app/noya-icons");
|
|
10468
|
-
var
|
|
10725
|
+
var import_react69 = __toESM(require("react"));
|
|
10469
10726
|
var colorSwatchSizeMap = {
|
|
10470
10727
|
xxsmall: 15,
|
|
10471
10728
|
xsmall: 21,
|
|
@@ -10473,7 +10730,7 @@ var colorSwatchSizeMap = {
|
|
|
10473
10730
|
medium: 36,
|
|
10474
10731
|
large: 48
|
|
10475
10732
|
};
|
|
10476
|
-
var ColorSwatch = (0,
|
|
10733
|
+
var ColorSwatch = (0, import_react69.forwardRef)(function ColorSwatch2({
|
|
10477
10734
|
color,
|
|
10478
10735
|
size = "small",
|
|
10479
10736
|
checked,
|
|
@@ -10483,7 +10740,7 @@ var ColorSwatch = (0, import_react68.forwardRef)(function ColorSwatch2({
|
|
|
10483
10740
|
}, ref) {
|
|
10484
10741
|
const sizePx = colorSwatchSizeMap[size];
|
|
10485
10742
|
const checkedColor = getContrastColorForBackground(color);
|
|
10486
|
-
return /* @__PURE__ */
|
|
10743
|
+
return /* @__PURE__ */ import_react69.default.createElement("div", { className: "n-relative", style: { width: sizePx, height: sizePx } }, /* @__PURE__ */ import_react69.default.createElement(
|
|
10487
10744
|
Component,
|
|
10488
10745
|
{
|
|
10489
10746
|
...props,
|
|
@@ -10499,7 +10756,7 @@ var ColorSwatch = (0, import_react68.forwardRef)(function ColorSwatch2({
|
|
|
10499
10756
|
...style2
|
|
10500
10757
|
}
|
|
10501
10758
|
}
|
|
10502
|
-
), checked && /* @__PURE__ */
|
|
10759
|
+
), checked && /* @__PURE__ */ import_react69.default.createElement(
|
|
10503
10760
|
import_noya_icons6.CheckIcon,
|
|
10504
10761
|
{
|
|
10505
10762
|
color: checkedColor,
|
|
@@ -10510,7 +10767,7 @@ var ColorSwatch = (0, import_react68.forwardRef)(function ColorSwatch2({
|
|
|
10510
10767
|
|
|
10511
10768
|
// src/components/ColorSwatchControl.tsx
|
|
10512
10769
|
var import_radix_ui9 = require("radix-ui");
|
|
10513
|
-
var
|
|
10770
|
+
var import_react70 = __toESM(require("react"));
|
|
10514
10771
|
function ColorSwatchControl(props) {
|
|
10515
10772
|
const {
|
|
10516
10773
|
options,
|
|
@@ -10525,7 +10782,7 @@ function ColorSwatchControl(props) {
|
|
|
10525
10782
|
id,
|
|
10526
10783
|
style: style2
|
|
10527
10784
|
} = props;
|
|
10528
|
-
const styles3 = (0,
|
|
10785
|
+
const styles3 = (0, import_react70.useMemo)(() => {
|
|
10529
10786
|
return {
|
|
10530
10787
|
display: "grid",
|
|
10531
10788
|
gridTemplateColumns: `repeat(auto-fill, minmax(${colorSwatchSizeMap[size]}px, 1fr))`,
|
|
@@ -10533,8 +10790,8 @@ function ColorSwatchControl(props) {
|
|
|
10533
10790
|
...style2
|
|
10534
10791
|
};
|
|
10535
10792
|
}, [size, style2]);
|
|
10536
|
-
const content = /* @__PURE__ */
|
|
10537
|
-
const item = /* @__PURE__ */
|
|
10793
|
+
const content = /* @__PURE__ */ import_react70.default.createElement("div", { className, id, style: styles3 }, options.map((option) => {
|
|
10794
|
+
const item = /* @__PURE__ */ import_react70.default.createElement(
|
|
10538
10795
|
ColorSwatch,
|
|
10539
10796
|
{
|
|
10540
10797
|
key: `${option}-color-swatch`,
|
|
@@ -10547,7 +10804,7 @@ function ColorSwatchControl(props) {
|
|
|
10547
10804
|
checked: value === option
|
|
10548
10805
|
}
|
|
10549
10806
|
);
|
|
10550
|
-
return /* @__PURE__ */
|
|
10807
|
+
return /* @__PURE__ */ import_react70.default.createElement(
|
|
10551
10808
|
import_radix_ui9.ToggleGroup.Item,
|
|
10552
10809
|
{
|
|
10553
10810
|
asChild: true,
|
|
@@ -10558,7 +10815,7 @@ function ColorSwatchControl(props) {
|
|
|
10558
10815
|
item
|
|
10559
10816
|
);
|
|
10560
10817
|
}));
|
|
10561
|
-
return /* @__PURE__ */
|
|
10818
|
+
return /* @__PURE__ */ import_react70.default.createElement(
|
|
10562
10819
|
import_radix_ui9.ToggleGroup.Root,
|
|
10563
10820
|
{
|
|
10564
10821
|
type: "single",
|
|
@@ -10573,11 +10830,11 @@ function ColorSwatchControl(props) {
|
|
|
10573
10830
|
|
|
10574
10831
|
// src/components/Combobox.tsx
|
|
10575
10832
|
var import_noya_icons8 = require("@noya-app/noya-icons");
|
|
10576
|
-
var
|
|
10833
|
+
var import_react73 = __toESM(require("react"));
|
|
10577
10834
|
|
|
10578
10835
|
// src/utils/combobox.ts
|
|
10579
10836
|
var import_noya_utils13 = require("@noya-app/noya-utils");
|
|
10580
|
-
var
|
|
10837
|
+
var import_react71 = __toESM(require("react"));
|
|
10581
10838
|
|
|
10582
10839
|
// src/utils/fuzzyScorer.ts
|
|
10583
10840
|
var import_vscode_fuzzy_scorer = require("vscode-fuzzy-scorer");
|
|
@@ -10903,7 +11160,7 @@ function getNextIndex({
|
|
|
10903
11160
|
return nextIndex;
|
|
10904
11161
|
}
|
|
10905
11162
|
function useComboboxState(state) {
|
|
10906
|
-
return (0,
|
|
11163
|
+
return (0, import_react71.useSyncExternalStore)(
|
|
10907
11164
|
state.subscribe,
|
|
10908
11165
|
state.getSnapshot,
|
|
10909
11166
|
state.getSnapshot
|
|
@@ -10914,7 +11171,7 @@ function getNodeText(node) {
|
|
|
10914
11171
|
return "";
|
|
10915
11172
|
if (typeof node === "string" || typeof node === "number") return String(node);
|
|
10916
11173
|
if (Array.isArray(node)) return node.map(getNodeText).join("");
|
|
10917
|
-
if (
|
|
11174
|
+
if (import_react71.default.isValidElement(node)) {
|
|
10918
11175
|
return getNodeText(node.props?.children);
|
|
10919
11176
|
}
|
|
10920
11177
|
return "";
|
|
@@ -10922,7 +11179,7 @@ function getNodeText(node) {
|
|
|
10922
11179
|
|
|
10923
11180
|
// src/components/ComboboxMenu.tsx
|
|
10924
11181
|
var import_noya_icons7 = require("@noya-app/noya-icons");
|
|
10925
|
-
var
|
|
11182
|
+
var import_react72 = __toESM(require("react"));
|
|
10926
11183
|
var ComboboxMenu = memoGeneric(
|
|
10927
11184
|
forwardRefGeneric(function ComboboxMenu2({
|
|
10928
11185
|
items,
|
|
@@ -10936,7 +11193,7 @@ var ComboboxMenu = memoGeneric(
|
|
|
10936
11193
|
itemHeight,
|
|
10937
11194
|
getRowHeightForItem
|
|
10938
11195
|
}, forwardedRef) {
|
|
10939
|
-
return /* @__PURE__ */
|
|
11196
|
+
return /* @__PURE__ */ import_react72.default.createElement(
|
|
10940
11197
|
ListView.Root,
|
|
10941
11198
|
{
|
|
10942
11199
|
ref: forwardedRef,
|
|
@@ -10946,7 +11203,7 @@ var ComboboxMenu = memoGeneric(
|
|
|
10946
11203
|
return item.value;
|
|
10947
11204
|
},
|
|
10948
11205
|
data: items,
|
|
10949
|
-
virtualized: listSize,
|
|
11206
|
+
virtualized: listSize.height,
|
|
10950
11207
|
...itemHeight ? { itemHeight } : {},
|
|
10951
11208
|
...getRowHeightForItem ? { getItemHeightForItem: getRowHeightForItem } : {},
|
|
10952
11209
|
pressEventName: "onPointerDown",
|
|
@@ -10954,7 +11211,7 @@ var ComboboxMenu = memoGeneric(
|
|
|
10954
11211
|
style: style2,
|
|
10955
11212
|
renderItem: (item, i) => {
|
|
10956
11213
|
if (item.type === "sectionHeader") {
|
|
10957
|
-
return /* @__PURE__ */
|
|
11214
|
+
return /* @__PURE__ */ import_react72.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, indented && /* @__PURE__ */ import_react72.default.createElement(
|
|
10958
11215
|
Spacer.Horizontal,
|
|
10959
11216
|
{
|
|
10960
11217
|
size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET + CHECKBOX_INDENT_WIDTH
|
|
@@ -10969,7 +11226,7 @@ var ComboboxMenu = memoGeneric(
|
|
|
10969
11226
|
// Only selectable items can have tooltips in this menu
|
|
10970
11227
|
isSelectableMenuItem(item) ? item.tooltip : void 0
|
|
10971
11228
|
);
|
|
10972
|
-
return /* @__PURE__ */
|
|
11229
|
+
return /* @__PURE__ */ import_react72.default.createElement(
|
|
10973
11230
|
ListView.Row,
|
|
10974
11231
|
{
|
|
10975
11232
|
key: item.value,
|
|
@@ -10982,12 +11239,12 @@ var ComboboxMenu = memoGeneric(
|
|
|
10982
11239
|
}
|
|
10983
11240
|
}
|
|
10984
11241
|
},
|
|
10985
|
-
/* @__PURE__ */
|
|
11242
|
+
/* @__PURE__ */ import_react72.default.createElement("div", { className: "n-flex n-flex-1 n-min-w-0 n-items-start" }, indented && /* @__PURE__ */ import_react72.default.createElement(Spacer.Horizontal, { size: CHECKBOX_INDENT_WIDTH }), item.checked ? /* @__PURE__ */ import_react72.default.createElement("div", { ...styles.itemIndicator }, /* @__PURE__ */ import_react72.default.createElement(import_noya_icons7.CheckIcon, null)) : indented ? /* @__PURE__ */ import_react72.default.createElement(
|
|
10986
11243
|
Spacer.Horizontal,
|
|
10987
11244
|
{
|
|
10988
11245
|
size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET
|
|
10989
11246
|
}
|
|
10990
|
-
) : null, iconPosition === "left" && item.icon && /* @__PURE__ */
|
|
11247
|
+
) : null, iconPosition === "left" && item.icon && /* @__PURE__ */ import_react72.default.createElement(import_react72.default.Fragment, null, /* @__PURE__ */ import_react72.default.createElement(MenuIcon, { icon: item.icon }), /* @__PURE__ */ import_react72.default.createElement(Spacer.Horizontal, { size: 8 })), /* @__PURE__ */ import_react72.default.createElement("div", { className: "n-flex n-flex-col n-min-w-0 n-flex-1" }, /* @__PURE__ */ import_react72.default.createElement("div", { className: "n-min-w-0 n-truncate" }, tokens.map((token, j) => /* @__PURE__ */ import_react72.default.createElement(
|
|
10991
11248
|
"span",
|
|
10992
11249
|
{
|
|
10993
11250
|
key: `${item.value}-token-${j}`,
|
|
@@ -10997,16 +11254,16 @@ var ComboboxMenu = memoGeneric(
|
|
|
10997
11254
|
)
|
|
10998
11255
|
},
|
|
10999
11256
|
token.text
|
|
11000
|
-
))), tooltip && /* @__PURE__ */
|
|
11001
|
-
(item.shortcut || item.icon && iconPosition === "right") && /* @__PURE__ */
|
|
11257
|
+
))), tooltip && /* @__PURE__ */ import_react72.default.createElement(Small, { color: "textSubtle", className: "n-truncate" }, tooltip))),
|
|
11258
|
+
(item.shortcut || item.icon && iconPosition === "right") && /* @__PURE__ */ import_react72.default.createElement("div", { className: "n-flex n-items-center n-min-w-0 n-ml-2" }, item.shortcut ? /* @__PURE__ */ import_react72.default.createElement(KeyboardShortcut, { shortcut: item.shortcut }) : item.icon && /* @__PURE__ */ import_react72.default.createElement(MenuIcon, { icon: item.icon }))
|
|
11002
11259
|
);
|
|
11003
11260
|
}
|
|
11004
11261
|
}
|
|
11005
11262
|
);
|
|
11006
11263
|
})
|
|
11007
11264
|
);
|
|
11008
|
-
var MenuIcon = (0,
|
|
11009
|
-
return /* @__PURE__ */
|
|
11265
|
+
var MenuIcon = (0, import_react72.memo)(function MenuIcon2({ icon }) {
|
|
11266
|
+
return /* @__PURE__ */ import_react72.default.createElement("div", { className: "n-relative n-top-[2px]" }, renderIcon(icon));
|
|
11010
11267
|
});
|
|
11011
11268
|
|
|
11012
11269
|
// src/components/Combobox.tsx
|
|
@@ -11027,9 +11284,10 @@ var Combobox = memoGeneric(
|
|
|
11027
11284
|
openMenuBehavior = "showFilteredItems",
|
|
11028
11285
|
onFocus,
|
|
11029
11286
|
onDeleteWhenEmpty,
|
|
11287
|
+
iconPosition = "right",
|
|
11030
11288
|
...rest
|
|
11031
11289
|
}, forwardedRef) {
|
|
11032
|
-
const props = (0,
|
|
11290
|
+
const props = (0, import_react73.useMemo)(() => {
|
|
11033
11291
|
if (rest.mode === "string") {
|
|
11034
11292
|
return {
|
|
11035
11293
|
mode: rest.mode,
|
|
@@ -11059,7 +11317,7 @@ var Combobox = memoGeneric(
|
|
|
11059
11317
|
rest.onBlur,
|
|
11060
11318
|
rest.allowArbitraryValues
|
|
11061
11319
|
]);
|
|
11062
|
-
const ref = (0,
|
|
11320
|
+
const ref = (0, import_react73.useRef)(null);
|
|
11063
11321
|
function getInitialValueString() {
|
|
11064
11322
|
if (props.mode === "string") {
|
|
11065
11323
|
return props.value ?? "";
|
|
@@ -11068,7 +11326,7 @@ var Combobox = memoGeneric(
|
|
|
11068
11326
|
}
|
|
11069
11327
|
}
|
|
11070
11328
|
const initialValueString = getInitialValueString();
|
|
11071
|
-
const [comboboxState] = (0,
|
|
11329
|
+
const [comboboxState] = (0, import_react73.useState)(
|
|
11072
11330
|
() => new ComboboxState(
|
|
11073
11331
|
items,
|
|
11074
11332
|
initialValueString,
|
|
@@ -11076,26 +11334,26 @@ var Combobox = memoGeneric(
|
|
|
11076
11334
|
)
|
|
11077
11335
|
);
|
|
11078
11336
|
const state = useComboboxState(comboboxState);
|
|
11079
|
-
const [isFocused, setIsFocused] = (0,
|
|
11080
|
-
const listRef = (0,
|
|
11081
|
-
const [shouldBlur, setShouldBlur] = (0,
|
|
11337
|
+
const [isFocused, setIsFocused] = (0, import_react73.useState)(false);
|
|
11338
|
+
const listRef = (0, import_react73.useRef)(null);
|
|
11339
|
+
const [shouldBlur, setShouldBlur] = (0, import_react73.useState)(false);
|
|
11082
11340
|
const { fieldId: id } = useLabel({
|
|
11083
11341
|
fieldId: rest.id
|
|
11084
11342
|
});
|
|
11085
|
-
(0,
|
|
11343
|
+
(0, import_react73.useEffect)(() => {
|
|
11086
11344
|
comboboxState.setItems(items);
|
|
11087
11345
|
}, [items, comboboxState]);
|
|
11088
|
-
(0,
|
|
11346
|
+
(0, import_react73.useEffect)(() => {
|
|
11089
11347
|
comboboxState.setFilter(initialValueString);
|
|
11090
11348
|
}, [comboboxState, initialValueString]);
|
|
11091
11349
|
const { filter, selectedIndex, filteredItems } = state;
|
|
11092
11350
|
const shouldShowMenu = isFocused && !(hideMenuWhenEmptyValue && filter === "");
|
|
11093
|
-
(0,
|
|
11351
|
+
(0, import_react73.useEffect)(() => {
|
|
11094
11352
|
if (listRef.current) {
|
|
11095
11353
|
listRef.current.scrollToIndex(selectedIndex);
|
|
11096
11354
|
}
|
|
11097
11355
|
}, [selectedIndex]);
|
|
11098
|
-
const handleBlur = (0,
|
|
11356
|
+
const handleBlur = (0, import_react73.useCallback)(() => {
|
|
11099
11357
|
ref.current?.blur();
|
|
11100
11358
|
comboboxState.reset(initialValueString);
|
|
11101
11359
|
if (props.mode === "string") {
|
|
@@ -11114,7 +11372,7 @@ var Combobox = memoGeneric(
|
|
|
11114
11372
|
}
|
|
11115
11373
|
setIsFocused(false);
|
|
11116
11374
|
}, [filter, initialValueString, props, state, comboboxState]);
|
|
11117
|
-
const handleFocus = (0,
|
|
11375
|
+
const handleFocus = (0, import_react73.useCallback)(
|
|
11118
11376
|
(event) => {
|
|
11119
11377
|
setIsFocused(true);
|
|
11120
11378
|
comboboxState.reset(
|
|
@@ -11128,7 +11386,7 @@ var Combobox = memoGeneric(
|
|
|
11128
11386
|
},
|
|
11129
11387
|
[initialValueString, onFocus, openMenuBehavior, comboboxState]
|
|
11130
11388
|
);
|
|
11131
|
-
const handleUpdateSelection = (0,
|
|
11389
|
+
const handleUpdateSelection = (0, import_react73.useCallback)(
|
|
11132
11390
|
(item) => {
|
|
11133
11391
|
if (item.type !== void 0) return;
|
|
11134
11392
|
const selectedItem = comboboxState.selectCurrentItem(item);
|
|
@@ -11144,7 +11402,7 @@ var Combobox = memoGeneric(
|
|
|
11144
11402
|
},
|
|
11145
11403
|
[props, comboboxState]
|
|
11146
11404
|
);
|
|
11147
|
-
const handleIndexChange = (0,
|
|
11405
|
+
const handleIndexChange = (0, import_react73.useCallback)(
|
|
11148
11406
|
(index) => {
|
|
11149
11407
|
comboboxState.setSelectedIndex(index);
|
|
11150
11408
|
const item = comboboxState.getSelectedItem();
|
|
@@ -11160,7 +11418,7 @@ var Combobox = memoGeneric(
|
|
|
11160
11418
|
},
|
|
11161
11419
|
[props, comboboxState]
|
|
11162
11420
|
);
|
|
11163
|
-
const handleChange = (0,
|
|
11421
|
+
const handleChange = (0, import_react73.useCallback)(
|
|
11164
11422
|
(value) => {
|
|
11165
11423
|
if (readOnly) return;
|
|
11166
11424
|
comboboxState.setFilter(value);
|
|
@@ -11175,7 +11433,7 @@ var Combobox = memoGeneric(
|
|
|
11175
11433
|
},
|
|
11176
11434
|
[readOnly, props, comboboxState]
|
|
11177
11435
|
);
|
|
11178
|
-
const handleKeyDown = (0,
|
|
11436
|
+
const handleKeyDown = (0, import_react73.useCallback)(
|
|
11179
11437
|
(event) => {
|
|
11180
11438
|
let handled = false;
|
|
11181
11439
|
const item = comboboxState.getSelectedItem();
|
|
@@ -11264,7 +11522,7 @@ var Combobox = memoGeneric(
|
|
|
11264
11522
|
]
|
|
11265
11523
|
);
|
|
11266
11524
|
const typeaheadValue = comboboxState.getTypeaheadValue();
|
|
11267
|
-
(0,
|
|
11525
|
+
(0, import_react73.useImperativeHandle)(forwardedRef, () => ({
|
|
11268
11526
|
focus: () => {
|
|
11269
11527
|
ref.current?.focus();
|
|
11270
11528
|
if (ref.current) {
|
|
@@ -11283,7 +11541,7 @@ var Combobox = memoGeneric(
|
|
|
11283
11541
|
ref.current?.setSelectionRange(0, ref.current.value.length);
|
|
11284
11542
|
}
|
|
11285
11543
|
}));
|
|
11286
|
-
const handleChevronClick = (0,
|
|
11544
|
+
const handleChevronClick = (0, import_react73.useCallback)(
|
|
11287
11545
|
(event) => {
|
|
11288
11546
|
event.stopPropagation();
|
|
11289
11547
|
if (shouldShowMenu) {
|
|
@@ -11303,34 +11561,34 @@ var Combobox = memoGeneric(
|
|
|
11303
11561
|
comboboxState
|
|
11304
11562
|
]
|
|
11305
11563
|
);
|
|
11306
|
-
(0,
|
|
11564
|
+
(0, import_react73.useEffect)(() => {
|
|
11307
11565
|
if (!shouldBlur) return;
|
|
11308
11566
|
if (document.activeElement !== ref.current) return;
|
|
11309
11567
|
setShouldBlur(false);
|
|
11310
11568
|
ref.current?.focus();
|
|
11311
11569
|
handleBlur();
|
|
11312
11570
|
}, [shouldBlur, handleBlur]);
|
|
11313
|
-
const { sectionHeaderCount, menuItemsCount, tallMenuItemsCount } = (0,
|
|
11571
|
+
const { sectionHeaderCount, menuItemsCount, tallMenuItemsCount } = (0, import_react73.useMemo)(
|
|
11314
11572
|
() => ListView.getMenuMetrics(filteredItems),
|
|
11315
11573
|
[filteredItems]
|
|
11316
11574
|
);
|
|
11317
11575
|
const hasCheckedItems = items.some(
|
|
11318
11576
|
(item) => isSelectableMenuItem(item) && item.checked
|
|
11319
11577
|
);
|
|
11320
|
-
return /* @__PURE__ */
|
|
11578
|
+
return /* @__PURE__ */ import_react73.default.createElement(
|
|
11321
11579
|
InputField2.Root,
|
|
11322
11580
|
{
|
|
11323
11581
|
id,
|
|
11324
11582
|
size,
|
|
11325
11583
|
sideOffset: 6,
|
|
11326
11584
|
start: icon ? renderIcon(icon) : void 0,
|
|
11327
|
-
end: /* @__PURE__ */
|
|
11585
|
+
end: /* @__PURE__ */ import_react73.default.createElement(import_react73.default.Fragment, null, loading && /* @__PURE__ */ import_react73.default.createElement("div", { className: "pr-1.5" }, /* @__PURE__ */ import_react73.default.createElement(ActivityIndicator, null)), !readOnly && /* @__PURE__ */ import_react73.default.createElement(
|
|
11328
11586
|
InputField2.Button,
|
|
11329
11587
|
{
|
|
11330
11588
|
variant: "floating",
|
|
11331
11589
|
onClick: handleChevronClick
|
|
11332
11590
|
},
|
|
11333
|
-
/* @__PURE__ */
|
|
11591
|
+
/* @__PURE__ */ import_react73.default.createElement(
|
|
11334
11592
|
import_noya_icons8.DropdownChevronIcon,
|
|
11335
11593
|
{
|
|
11336
11594
|
className: cx(
|
|
@@ -11350,7 +11608,7 @@ var Combobox = memoGeneric(
|
|
|
11350
11608
|
maxBaseRows: 10.5
|
|
11351
11609
|
});
|
|
11352
11610
|
const adjustedListSize = { width, height: computedHeight };
|
|
11353
|
-
return /* @__PURE__ */
|
|
11611
|
+
return /* @__PURE__ */ import_react73.default.createElement(
|
|
11354
11612
|
"div",
|
|
11355
11613
|
{
|
|
11356
11614
|
className: cx(
|
|
@@ -11358,7 +11616,7 @@ var Combobox = memoGeneric(
|
|
|
11358
11616
|
shouldShowMenu && !readOnly ? "n-flex" : "n-hidden"
|
|
11359
11617
|
)
|
|
11360
11618
|
},
|
|
11361
|
-
filteredItems.length > 0 && !loading ? /* @__PURE__ */
|
|
11619
|
+
filteredItems.length > 0 && !loading ? /* @__PURE__ */ import_react73.default.createElement(
|
|
11362
11620
|
ComboboxMenu,
|
|
11363
11621
|
{
|
|
11364
11622
|
ref: listRef,
|
|
@@ -11367,6 +11625,7 @@ var Combobox = memoGeneric(
|
|
|
11367
11625
|
onSelectItem: handleUpdateSelection,
|
|
11368
11626
|
onHoverIndex: handleIndexChange,
|
|
11369
11627
|
listSize: adjustedListSize,
|
|
11628
|
+
iconPosition,
|
|
11370
11629
|
style: {
|
|
11371
11630
|
flex: `0 0 ${computedHeight}px`
|
|
11372
11631
|
},
|
|
@@ -11375,11 +11634,11 @@ var Combobox = memoGeneric(
|
|
|
11375
11634
|
getRowHeightForItem: (item) => isSelectableMenuItem(item) && item.tooltip ? ListView.tallRowHeight : baseRowHeight
|
|
11376
11635
|
} : { itemHeight: baseRowHeight }
|
|
11377
11636
|
}
|
|
11378
|
-
) : /* @__PURE__ */
|
|
11637
|
+
) : /* @__PURE__ */ import_react73.default.createElement("div", { className: "n-flex n-flex-col n-h-[50px] n-p-5 n-items-center n-justify-center" }, /* @__PURE__ */ import_react73.default.createElement(Small, { className: "n-text-text-disabled" }, loading ? "Loading..." : "No results"))
|
|
11379
11638
|
);
|
|
11380
11639
|
}
|
|
11381
11640
|
},
|
|
11382
|
-
/* @__PURE__ */
|
|
11641
|
+
/* @__PURE__ */ import_react73.default.createElement(
|
|
11383
11642
|
InputField2.Input,
|
|
11384
11643
|
{
|
|
11385
11644
|
ref,
|
|
@@ -11404,7 +11663,7 @@ var Combobox = memoGeneric(
|
|
|
11404
11663
|
...readOnly ? { readOnly: true } : {}
|
|
11405
11664
|
}
|
|
11406
11665
|
),
|
|
11407
|
-
filter && typeaheadValue && typeaheadValue.toLowerCase().startsWith(filter.toLowerCase()) && /* @__PURE__ */
|
|
11666
|
+
filter && typeaheadValue && typeaheadValue.toLowerCase().startsWith(filter.toLowerCase()) && /* @__PURE__ */ import_react73.default.createElement(
|
|
11408
11667
|
InputField2.Typeahead,
|
|
11409
11668
|
{
|
|
11410
11669
|
value: typeaheadValue,
|
|
@@ -11418,12 +11677,12 @@ var Combobox = memoGeneric(
|
|
|
11418
11677
|
);
|
|
11419
11678
|
|
|
11420
11679
|
// src/components/CommandPalette.tsx
|
|
11421
|
-
var
|
|
11680
|
+
var import_react75 = __toESM(require("react"));
|
|
11422
11681
|
|
|
11423
11682
|
// src/components/SearchCompletionMenu.tsx
|
|
11424
11683
|
var import_noya_keymap5 = require("@noya-app/noya-keymap");
|
|
11425
|
-
var
|
|
11426
|
-
var SearchCompletionMenu = (0,
|
|
11684
|
+
var import_react74 = __toESM(require("react"));
|
|
11685
|
+
var SearchCompletionMenu = (0, import_react74.forwardRef)(function SearchCompletionMenu2({
|
|
11427
11686
|
onSelect,
|
|
11428
11687
|
onHover,
|
|
11429
11688
|
onClose,
|
|
@@ -11432,17 +11691,17 @@ var SearchCompletionMenu = (0, import_react73.forwardRef)(function SearchComplet
|
|
|
11432
11691
|
testSelectedIndex,
|
|
11433
11692
|
testSearch
|
|
11434
11693
|
}, forwardedRef) {
|
|
11435
|
-
const [state, setState] = (0,
|
|
11694
|
+
const [state, setState] = (0, import_react74.useState)({
|
|
11436
11695
|
search: testSearch ?? "",
|
|
11437
11696
|
index: 0
|
|
11438
11697
|
});
|
|
11439
11698
|
const { index, search } = state;
|
|
11440
|
-
const listRef =
|
|
11699
|
+
const listRef = import_react74.default.useRef(null);
|
|
11441
11700
|
const hasCheckedItems = items.some((item) => item.checked);
|
|
11442
|
-
(0,
|
|
11701
|
+
(0, import_react74.useEffect)(() => {
|
|
11443
11702
|
listRef.current?.scrollToIndex(index);
|
|
11444
11703
|
}, [index]);
|
|
11445
|
-
const results = (0,
|
|
11704
|
+
const results = (0, import_react74.useMemo)(
|
|
11446
11705
|
() => fuzzyFilter({
|
|
11447
11706
|
items: items.map(
|
|
11448
11707
|
(item) => typeof item.title === "string" ? item.title : item.value
|
|
@@ -11454,13 +11713,13 @@ var SearchCompletionMenu = (0, import_react73.forwardRef)(function SearchComplet
|
|
|
11454
11713
|
})),
|
|
11455
11714
|
[items, search]
|
|
11456
11715
|
);
|
|
11457
|
-
const setSearch = (0,
|
|
11716
|
+
const setSearch = (0, import_react74.useCallback)((search2) => {
|
|
11458
11717
|
setState((state2) => ({ ...state2, search: search2, index: 0 }));
|
|
11459
11718
|
}, []);
|
|
11460
|
-
const setIndex = (0,
|
|
11719
|
+
const setIndex = (0, import_react74.useCallback)((index2) => {
|
|
11461
11720
|
setState((state2) => ({ ...state2, index: index2 }));
|
|
11462
11721
|
}, []);
|
|
11463
|
-
(0,
|
|
11722
|
+
(0, import_react74.useEffect)(() => {
|
|
11464
11723
|
onHover?.(results[index]);
|
|
11465
11724
|
}, [index, onHover, results]);
|
|
11466
11725
|
const baseRowHeight = ListView.rowHeight;
|
|
@@ -11479,14 +11738,14 @@ var SearchCompletionMenu = (0, import_react73.forwardRef)(function SearchComplet
|
|
|
11479
11738
|
width: listSize.width,
|
|
11480
11739
|
height: searchHeight + listSize.height
|
|
11481
11740
|
};
|
|
11482
|
-
const selectAndClose = (0,
|
|
11741
|
+
const selectAndClose = (0, import_react74.useCallback)(
|
|
11483
11742
|
(item) => {
|
|
11484
11743
|
onSelect(item);
|
|
11485
11744
|
onClose();
|
|
11486
11745
|
},
|
|
11487
11746
|
[onSelect, onClose]
|
|
11488
11747
|
);
|
|
11489
|
-
const handleKeyDown = (0,
|
|
11748
|
+
const handleKeyDown = (0, import_react74.useCallback)(
|
|
11490
11749
|
(event) => {
|
|
11491
11750
|
(0, import_noya_keymap5.handleKeyboardEvent)(event.nativeEvent, (0, import_noya_keymap5.getCurrentPlatform)(navigator), {
|
|
11492
11751
|
ArrowUp: () => {
|
|
@@ -11514,13 +11773,13 @@ var SearchCompletionMenu = (0, import_react73.forwardRef)(function SearchComplet
|
|
|
11514
11773
|
},
|
|
11515
11774
|
[index, onClose, selectAndClose, results, setIndex]
|
|
11516
11775
|
);
|
|
11517
|
-
const inputRef = (0,
|
|
11518
|
-
(0,
|
|
11776
|
+
const inputRef = (0, import_react74.useRef)(null);
|
|
11777
|
+
(0, import_react74.useImperativeHandle)(forwardedRef, () => ({
|
|
11519
11778
|
focus: () => {
|
|
11520
11779
|
inputRef.current?.focus();
|
|
11521
11780
|
}
|
|
11522
11781
|
}));
|
|
11523
|
-
return /* @__PURE__ */
|
|
11782
|
+
return /* @__PURE__ */ import_react74.default.createElement("div", { ...elementSize, className: "n-flex n-flex-col n-overflow-hidden" }, /* @__PURE__ */ import_react74.default.createElement(InputField2.Root, { className: "n-flex n-flex-0" }, /* @__PURE__ */ import_react74.default.createElement(
|
|
11524
11783
|
InputField2.Input,
|
|
11525
11784
|
{
|
|
11526
11785
|
ref: inputRef,
|
|
@@ -11540,7 +11799,7 @@ var SearchCompletionMenu = (0, import_react73.forwardRef)(function SearchComplet
|
|
|
11540
11799
|
onChange: setSearch,
|
|
11541
11800
|
onKeyDown: handleKeyDown
|
|
11542
11801
|
}
|
|
11543
|
-
)), /* @__PURE__ */
|
|
11802
|
+
)), /* @__PURE__ */ import_react74.default.createElement(Divider, null), results.length > 0 ? /* @__PURE__ */ import_react74.default.createElement(
|
|
11544
11803
|
ComboboxMenu,
|
|
11545
11804
|
{
|
|
11546
11805
|
ref: listRef,
|
|
@@ -11555,29 +11814,29 @@ var SearchCompletionMenu = (0, import_react73.forwardRef)(function SearchComplet
|
|
|
11555
11814
|
onHoverIndex: setIndex,
|
|
11556
11815
|
indented: hasCheckedItems
|
|
11557
11816
|
}
|
|
11558
|
-
) : /* @__PURE__ */
|
|
11817
|
+
) : /* @__PURE__ */ import_react74.default.createElement(
|
|
11559
11818
|
"div",
|
|
11560
11819
|
{
|
|
11561
11820
|
...listSize,
|
|
11562
11821
|
className: "n-flex n-flex-col n-p-20 n-items-center n-justify-center"
|
|
11563
11822
|
},
|
|
11564
|
-
/* @__PURE__ */
|
|
11823
|
+
/* @__PURE__ */ import_react74.default.createElement(Small, { color: "textDisabled" }, "No results")
|
|
11565
11824
|
));
|
|
11566
11825
|
});
|
|
11567
11826
|
|
|
11568
11827
|
// src/components/CommandPalette.tsx
|
|
11569
|
-
var CommandPalette = (0,
|
|
11828
|
+
var CommandPalette = (0, import_react75.memo)(function CommandPalette2({
|
|
11570
11829
|
showCommandPalette,
|
|
11571
11830
|
setShowCommandPalette,
|
|
11572
11831
|
items,
|
|
11573
11832
|
onSelect,
|
|
11574
11833
|
onHover
|
|
11575
11834
|
}) {
|
|
11576
|
-
const menuRef =
|
|
11577
|
-
const handleClose =
|
|
11835
|
+
const menuRef = import_react75.default.useRef(null);
|
|
11836
|
+
const handleClose = import_react75.default.useCallback(() => {
|
|
11578
11837
|
setShowCommandPalette(false);
|
|
11579
11838
|
}, [setShowCommandPalette]);
|
|
11580
|
-
return /* @__PURE__ */
|
|
11839
|
+
return /* @__PURE__ */ import_react75.default.createElement(
|
|
11581
11840
|
Dialog,
|
|
11582
11841
|
{
|
|
11583
11842
|
style: {
|
|
@@ -11603,7 +11862,7 @@ var CommandPalette = (0, import_react74.memo)(function CommandPalette2({
|
|
|
11603
11862
|
}, 0);
|
|
11604
11863
|
}
|
|
11605
11864
|
},
|
|
11606
|
-
/* @__PURE__ */
|
|
11865
|
+
/* @__PURE__ */ import_react75.default.createElement("div", { className: "n-flex n-flex-col n-flex-1" }, /* @__PURE__ */ import_react75.default.createElement(AutoSizer, null, (size) => /* @__PURE__ */ import_react75.default.createElement(
|
|
11607
11866
|
SearchCompletionMenu,
|
|
11608
11867
|
{
|
|
11609
11868
|
ref: menuRef,
|
|
@@ -11618,21 +11877,21 @@ var CommandPalette = (0, import_react74.memo)(function CommandPalette2({
|
|
|
11618
11877
|
});
|
|
11619
11878
|
|
|
11620
11879
|
// src/components/connected-users-menu/ConnectedUsersMenuLayout.tsx
|
|
11621
|
-
var
|
|
11622
|
-
var UserAvatar = ({ userId, name, image }) => /* @__PURE__ */
|
|
11880
|
+
var import_react76 = __toESM(require("react"));
|
|
11881
|
+
var UserAvatar = ({ userId, name, image }) => /* @__PURE__ */ import_react76.default.createElement(
|
|
11623
11882
|
Tooltip,
|
|
11624
11883
|
{
|
|
11625
11884
|
key: userId,
|
|
11626
|
-
content: /* @__PURE__ */
|
|
11885
|
+
content: /* @__PURE__ */ import_react76.default.createElement("div", { className: "n-flex n-flex-col" }, /* @__PURE__ */ import_react76.default.createElement(Small, null, name))
|
|
11627
11886
|
},
|
|
11628
|
-
/* @__PURE__ */
|
|
11887
|
+
/* @__PURE__ */ import_react76.default.createElement(Avatar, { size: INPUT_HEIGHT, userId, name, image })
|
|
11629
11888
|
);
|
|
11630
11889
|
var ConnectedUsersMenuLayout = ({
|
|
11631
11890
|
renderUsers,
|
|
11632
11891
|
launchAIAssistant,
|
|
11633
11892
|
isAssistantOpen
|
|
11634
11893
|
}) => {
|
|
11635
|
-
return /* @__PURE__ */
|
|
11894
|
+
return /* @__PURE__ */ import_react76.default.createElement("div", { className: "n-flex n-gap-1.5" }, /* @__PURE__ */ import_react76.default.createElement(AvatarStack, { size: INPUT_HEIGHT }, renderUsers()), launchAIAssistant && /* @__PURE__ */ import_react76.default.createElement(Tooltip, { content: "AI Assistant" }, /* @__PURE__ */ import_react76.default.createElement(
|
|
11636
11895
|
Button,
|
|
11637
11896
|
{
|
|
11638
11897
|
active: isAssistantOpen,
|
|
@@ -11644,7 +11903,7 @@ var ConnectedUsersMenuLayout = ({
|
|
|
11644
11903
|
};
|
|
11645
11904
|
|
|
11646
11905
|
// src/components/DraggableMenuButton.tsx
|
|
11647
|
-
var
|
|
11906
|
+
var import_react77 = __toESM(require("react"));
|
|
11648
11907
|
var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
11649
11908
|
open: openProp,
|
|
11650
11909
|
onOpenChange: onOpenChangeProp,
|
|
@@ -11662,8 +11921,8 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
11662
11921
|
onChange: onOpenChangeProp,
|
|
11663
11922
|
defaultValue: false
|
|
11664
11923
|
});
|
|
11665
|
-
const [downPosition, setDownPosition] = (0,
|
|
11666
|
-
const handlePointerDownCapture = (0,
|
|
11924
|
+
const [downPosition, setDownPosition] = (0, import_react77.useState)(null);
|
|
11925
|
+
const handlePointerDownCapture = (0, import_react77.useCallback)(
|
|
11667
11926
|
(event) => {
|
|
11668
11927
|
if (open) {
|
|
11669
11928
|
setDownPosition(null);
|
|
@@ -11676,7 +11935,7 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
11676
11935
|
},
|
|
11677
11936
|
[open]
|
|
11678
11937
|
);
|
|
11679
|
-
const handlePointerUp = (0,
|
|
11938
|
+
const handlePointerUp = (0, import_react77.useCallback)(
|
|
11680
11939
|
(event) => {
|
|
11681
11940
|
if (open || !downPosition) {
|
|
11682
11941
|
setDownPosition(null);
|
|
@@ -11695,13 +11954,13 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
11695
11954
|
},
|
|
11696
11955
|
[downPosition, open, setOpen]
|
|
11697
11956
|
);
|
|
11698
|
-
const handleOpenChange = (0,
|
|
11957
|
+
const handleOpenChange = (0, import_react77.useCallback)(
|
|
11699
11958
|
(isOpen) => {
|
|
11700
11959
|
if (!isOpen) setOpen(false);
|
|
11701
11960
|
},
|
|
11702
11961
|
[setOpen]
|
|
11703
11962
|
);
|
|
11704
|
-
return /* @__PURE__ */
|
|
11963
|
+
return /* @__PURE__ */ import_react77.default.createElement(
|
|
11705
11964
|
"div",
|
|
11706
11965
|
{
|
|
11707
11966
|
...rest,
|
|
@@ -11718,7 +11977,7 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
11718
11977
|
onClick?.();
|
|
11719
11978
|
}
|
|
11720
11979
|
},
|
|
11721
|
-
items && onSelect ? /* @__PURE__ */
|
|
11980
|
+
items && onSelect ? /* @__PURE__ */ import_react77.default.createElement(
|
|
11722
11981
|
DropdownMenu,
|
|
11723
11982
|
{
|
|
11724
11983
|
open,
|
|
@@ -11727,14 +11986,14 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
11727
11986
|
onSelect,
|
|
11728
11987
|
shouldBindKeyboardShortcuts: false
|
|
11729
11988
|
},
|
|
11730
|
-
/* @__PURE__ */
|
|
11989
|
+
/* @__PURE__ */ import_react77.default.createElement("div", { className: "n-pointer-events-none n-h-[15px]" }, /* @__PURE__ */ import_react77.default.createElement(
|
|
11731
11990
|
Icon,
|
|
11732
11991
|
{
|
|
11733
11992
|
name: iconName,
|
|
11734
11993
|
color: isVisible || open ? cssVars.colors.icon : "transparent"
|
|
11735
11994
|
}
|
|
11736
11995
|
))
|
|
11737
|
-
) : /* @__PURE__ */
|
|
11996
|
+
) : /* @__PURE__ */ import_react77.default.createElement(
|
|
11738
11997
|
Icon,
|
|
11739
11998
|
{
|
|
11740
11999
|
name: iconName,
|
|
@@ -11746,10 +12005,10 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
11746
12005
|
|
|
11747
12006
|
// src/components/Drawer.tsx
|
|
11748
12007
|
var import_radix_ui10 = require("radix-ui");
|
|
11749
|
-
var
|
|
11750
|
-
var
|
|
11751
|
-
var Drawer =
|
|
11752
|
-
|
|
12008
|
+
var React73 = __toESM(require("react"));
|
|
12009
|
+
var import_react78 = require("react");
|
|
12010
|
+
var Drawer = React73.memo(
|
|
12011
|
+
React73.forwardRef(function Drawer2({
|
|
11753
12012
|
open,
|
|
11754
12013
|
onOpenChange,
|
|
11755
12014
|
trigger,
|
|
@@ -11770,7 +12029,7 @@ var Drawer = React71.memo(
|
|
|
11770
12029
|
value: open,
|
|
11771
12030
|
onChange: onOpenChange
|
|
11772
12031
|
});
|
|
11773
|
-
(0,
|
|
12032
|
+
(0, import_react78.useImperativeHandle)(forwardedRef, () => ({
|
|
11774
12033
|
expand: () => {
|
|
11775
12034
|
setInternalOpen(true);
|
|
11776
12035
|
},
|
|
@@ -11781,7 +12040,7 @@ var Drawer = React71.memo(
|
|
|
11781
12040
|
return internalOpen;
|
|
11782
12041
|
}
|
|
11783
12042
|
}));
|
|
11784
|
-
const inner = /* @__PURE__ */
|
|
12043
|
+
const inner = /* @__PURE__ */ React73.createElement(React73.Fragment, null, /* @__PURE__ */ React73.createElement(
|
|
11785
12044
|
import_radix_ui10.Dialog.Overlay,
|
|
11786
12045
|
{
|
|
11787
12046
|
className: cx(
|
|
@@ -11791,7 +12050,7 @@ var Drawer = React71.memo(
|
|
|
11791
12050
|
),
|
|
11792
12051
|
style: overlayStyle
|
|
11793
12052
|
}
|
|
11794
|
-
), /* @__PURE__ */
|
|
12053
|
+
), /* @__PURE__ */ React73.createElement(
|
|
11795
12054
|
import_radix_ui10.Dialog.Content,
|
|
11796
12055
|
{
|
|
11797
12056
|
id,
|
|
@@ -11803,24 +12062,24 @@ var Drawer = React71.memo(
|
|
|
11803
12062
|
className
|
|
11804
12063
|
)
|
|
11805
12064
|
},
|
|
11806
|
-
title && /* @__PURE__ */
|
|
12065
|
+
title && /* @__PURE__ */ React73.createElement(import_radix_ui10.Dialog.Title, null, title),
|
|
11807
12066
|
children
|
|
11808
12067
|
));
|
|
11809
|
-
return /* @__PURE__ */
|
|
12068
|
+
return /* @__PURE__ */ React73.createElement(
|
|
11810
12069
|
import_radix_ui10.Dialog.Root,
|
|
11811
12070
|
{
|
|
11812
12071
|
key: "dialog",
|
|
11813
12072
|
open: internalOpen,
|
|
11814
12073
|
onOpenChange: setInternalOpen
|
|
11815
12074
|
},
|
|
11816
|
-
/* @__PURE__ */
|
|
11817
|
-
portalled ? /* @__PURE__ */
|
|
12075
|
+
/* @__PURE__ */ React73.createElement(import_radix_ui10.Dialog.Trigger, { key: "trigger" }, trigger),
|
|
12076
|
+
portalled ? /* @__PURE__ */ React73.createElement(import_radix_ui10.Dialog.Portal, { container: portalContainer }, inner) : inner
|
|
11818
12077
|
);
|
|
11819
12078
|
})
|
|
11820
12079
|
);
|
|
11821
12080
|
|
|
11822
12081
|
// src/components/Fade.tsx
|
|
11823
|
-
var
|
|
12082
|
+
var import_react79 = __toESM(require("react"));
|
|
11824
12083
|
var Fade = ({
|
|
11825
12084
|
children,
|
|
11826
12085
|
direction = "right",
|
|
@@ -11842,7 +12101,7 @@ var Fade = ({
|
|
|
11842
12101
|
top: "n-left-0 n-right-0 n-top-0",
|
|
11843
12102
|
bottom: "n-left-0 n-right-0 n-bottom-0"
|
|
11844
12103
|
}[direction];
|
|
11845
|
-
return /* @__PURE__ */
|
|
12104
|
+
return /* @__PURE__ */ import_react79.default.createElement("div", { className: cx("n-relative", className), style: { height } }, position === "front" ? children : null, /* @__PURE__ */ import_react79.default.createElement(
|
|
11846
12105
|
"div",
|
|
11847
12106
|
{
|
|
11848
12107
|
className: cx(
|
|
@@ -11861,21 +12120,21 @@ var Fade = ({
|
|
|
11861
12120
|
};
|
|
11862
12121
|
|
|
11863
12122
|
// src/components/file-explorer/FileExplorerLayout.tsx
|
|
11864
|
-
var
|
|
12123
|
+
var import_react80 = __toESM(require("react"));
|
|
11865
12124
|
var FileExplorerLayout = ({
|
|
11866
12125
|
children,
|
|
11867
12126
|
className,
|
|
11868
12127
|
...props
|
|
11869
|
-
}) => /* @__PURE__ */
|
|
12128
|
+
}) => /* @__PURE__ */ import_react80.default.createElement(Section, { className: cx(className, "n-px-3 n-flex-1"), ...props }, children);
|
|
11870
12129
|
var FileExplorerUploadButton = ({
|
|
11871
12130
|
showUploadButton,
|
|
11872
12131
|
onUpload,
|
|
11873
12132
|
isUploading,
|
|
11874
12133
|
children
|
|
11875
|
-
}) => /* @__PURE__ */
|
|
12134
|
+
}) => /* @__PURE__ */ import_react80.default.createElement("div", { className: "n-flex n-items-center n-gap-2" }, showUploadButton && /* @__PURE__ */ import_react80.default.createElement(
|
|
11876
12135
|
Button,
|
|
11877
12136
|
{
|
|
11878
|
-
icon: isUploading ? /* @__PURE__ */
|
|
12137
|
+
icon: isUploading ? /* @__PURE__ */ import_react80.default.createElement(ActivityIndicator, { size: 15 }) : "UploadIcon",
|
|
11879
12138
|
onClick: onUpload,
|
|
11880
12139
|
"aria-label": "Upload file",
|
|
11881
12140
|
tooltip: "Upload file",
|
|
@@ -11885,7 +12144,7 @@ var FileExplorerUploadButton = ({
|
|
|
11885
12144
|
), children);
|
|
11886
12145
|
var FileExplorerCollection = forwardRefGeneric(
|
|
11887
12146
|
function FileExplorerCollection2({ ...props }, ref) {
|
|
11888
|
-
return /* @__PURE__ */
|
|
12147
|
+
return /* @__PURE__ */ import_react80.default.createElement(Collection, { ref, className: "-n-mx-3 n-flex-1", ...props });
|
|
11889
12148
|
}
|
|
11890
12149
|
);
|
|
11891
12150
|
var FileExplorerDetail = ({
|
|
@@ -11894,7 +12153,7 @@ var FileExplorerDetail = ({
|
|
|
11894
12153
|
children,
|
|
11895
12154
|
className,
|
|
11896
12155
|
style: style2
|
|
11897
|
-
}) => /* @__PURE__ */
|
|
12156
|
+
}) => /* @__PURE__ */ import_react80.default.createElement(
|
|
11898
12157
|
"span",
|
|
11899
12158
|
{
|
|
11900
12159
|
className: cx(
|
|
@@ -11909,10 +12168,10 @@ var FileExplorerDetail = ({
|
|
|
11909
12168
|
var FileExplorerEmptyState = ({
|
|
11910
12169
|
children: label = "No files",
|
|
11911
12170
|
...props
|
|
11912
|
-
}) => /* @__PURE__ */
|
|
12171
|
+
}) => /* @__PURE__ */ import_react80.default.createElement(Banner, { className: "n-mx-3", ...props }, label);
|
|
11913
12172
|
|
|
11914
12173
|
// src/components/FileUploadIndicator.tsx
|
|
11915
|
-
var
|
|
12174
|
+
var import_react82 = __toESM(require("react"));
|
|
11916
12175
|
|
|
11917
12176
|
// src/utils/formatByteSize.ts
|
|
11918
12177
|
var byteSizeUnits = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
|
|
@@ -11926,7 +12185,7 @@ function formatByteSize(size) {
|
|
|
11926
12185
|
|
|
11927
12186
|
// src/components/MediaThumbnail.tsx
|
|
11928
12187
|
var import_noya_icons9 = require("@noya-app/noya-icons");
|
|
11929
|
-
var
|
|
12188
|
+
var import_react81 = __toESM(require("react"));
|
|
11930
12189
|
|
|
11931
12190
|
// src/components/catppuccin/fileIcons.ts
|
|
11932
12191
|
var fileIcons = {
|
|
@@ -14366,7 +14625,7 @@ var getThumbnailColors = (colorScheme, selected) => {
|
|
|
14366
14625
|
};
|
|
14367
14626
|
}
|
|
14368
14627
|
};
|
|
14369
|
-
var MediaThumbnail = (0,
|
|
14628
|
+
var MediaThumbnail = (0, import_react81.memo)(function MediaThumbnail2({
|
|
14370
14629
|
contentType: contentTypeProp,
|
|
14371
14630
|
selected = false,
|
|
14372
14631
|
className,
|
|
@@ -14384,14 +14643,14 @@ var MediaThumbnail = (0, import_react80.memo)(function MediaThumbnail2({
|
|
|
14384
14643
|
selected
|
|
14385
14644
|
);
|
|
14386
14645
|
const contentType = getAssetType(contentTypeProp);
|
|
14387
|
-
const iconStyles = (0,
|
|
14646
|
+
const iconStyles = (0, import_react81.useMemo)(
|
|
14388
14647
|
() => ({
|
|
14389
14648
|
width: iconSizeMap[size],
|
|
14390
14649
|
height: iconSizeMap[size]
|
|
14391
14650
|
}),
|
|
14392
14651
|
[size]
|
|
14393
14652
|
);
|
|
14394
|
-
const content = (0,
|
|
14653
|
+
const content = (0, import_react81.useMemo)(() => {
|
|
14395
14654
|
if (renderThumbnailIcon) {
|
|
14396
14655
|
const rendered = renderThumbnailIcon({ fileName, contentType });
|
|
14397
14656
|
if (rendered) return rendered;
|
|
@@ -14411,7 +14670,7 @@ var MediaThumbnail = (0, import_react80.memo)(function MediaThumbnail2({
|
|
|
14411
14670
|
renderUrl.searchParams.set("url", url);
|
|
14412
14671
|
renderUrl.searchParams.set("fit", aspect);
|
|
14413
14672
|
renderUrl.searchParams.set("theme", "light");
|
|
14414
|
-
return /* @__PURE__ */
|
|
14673
|
+
return /* @__PURE__ */ import_react81.default.createElement(
|
|
14415
14674
|
"img",
|
|
14416
14675
|
{
|
|
14417
14676
|
src: renderUrl.toString(),
|
|
@@ -14425,23 +14684,23 @@ var MediaThumbnail = (0, import_react80.memo)(function MediaThumbnail2({
|
|
|
14425
14684
|
}
|
|
14426
14685
|
switch (contentType) {
|
|
14427
14686
|
case "image":
|
|
14428
|
-
return /* @__PURE__ */
|
|
14687
|
+
return /* @__PURE__ */ import_react81.default.createElement(import_noya_icons9.ImageIcon, { color: iconColor, style: iconStyles });
|
|
14429
14688
|
case "video":
|
|
14430
|
-
return /* @__PURE__ */
|
|
14689
|
+
return /* @__PURE__ */ import_react81.default.createElement(import_noya_icons9.VideoIcon, { color: iconColor, style: iconStyles });
|
|
14431
14690
|
case "audio":
|
|
14432
|
-
return /* @__PURE__ */
|
|
14691
|
+
return /* @__PURE__ */ import_react81.default.createElement(import_noya_icons9.SpeakerLoudIcon, { color: iconColor, style: iconStyles });
|
|
14433
14692
|
default:
|
|
14434
14693
|
if (iconName) {
|
|
14435
14694
|
const Icon2 = Icons[iconName];
|
|
14436
|
-
return /* @__PURE__ */
|
|
14695
|
+
return /* @__PURE__ */ import_react81.default.createElement(Icon2, { color: iconColor, style: iconStyles });
|
|
14437
14696
|
}
|
|
14438
14697
|
if (fileName) {
|
|
14439
14698
|
if (fileName.endsWith(".noya")) {
|
|
14440
|
-
return /* @__PURE__ */
|
|
14699
|
+
return /* @__PURE__ */ import_react81.default.createElement(import_noya_icons9.NoyaIcon, { color: iconColor, style: iconStyles });
|
|
14441
14700
|
}
|
|
14442
14701
|
const fileIcon = findFileIcon(fileName);
|
|
14443
14702
|
if (fileIcon) {
|
|
14444
|
-
return /* @__PURE__ */
|
|
14703
|
+
return /* @__PURE__ */ import_react81.default.createElement(
|
|
14445
14704
|
"img",
|
|
14446
14705
|
{
|
|
14447
14706
|
src: `https://api.iconify.design/catppuccin/${fileIcon}.svg?height=none&box=1`,
|
|
@@ -14451,7 +14710,7 @@ var MediaThumbnail = (0, import_react80.memo)(function MediaThumbnail2({
|
|
|
14451
14710
|
);
|
|
14452
14711
|
}
|
|
14453
14712
|
}
|
|
14454
|
-
return /* @__PURE__ */
|
|
14713
|
+
return /* @__PURE__ */ import_react81.default.createElement(import_noya_icons9.FileIcon, { color: iconColor, style: iconStyles });
|
|
14455
14714
|
}
|
|
14456
14715
|
}, [
|
|
14457
14716
|
renderThumbnailIcon,
|
|
@@ -14465,7 +14724,7 @@ var MediaThumbnail = (0, import_react80.memo)(function MediaThumbnail2({
|
|
|
14465
14724
|
iconStyles,
|
|
14466
14725
|
iconName
|
|
14467
14726
|
]);
|
|
14468
|
-
return /* @__PURE__ */
|
|
14727
|
+
return /* @__PURE__ */ import_react81.default.createElement(
|
|
14469
14728
|
"div",
|
|
14470
14729
|
{
|
|
14471
14730
|
className: cx(
|
|
@@ -14508,7 +14767,7 @@ function findFileIcon(fileName) {
|
|
|
14508
14767
|
// src/components/Progress.tsx
|
|
14509
14768
|
var import_noya_utils14 = require("@noya-app/noya-utils");
|
|
14510
14769
|
var import_radix_ui11 = require("radix-ui");
|
|
14511
|
-
var
|
|
14770
|
+
var React77 = __toESM(require("react"));
|
|
14512
14771
|
function Progress({
|
|
14513
14772
|
value,
|
|
14514
14773
|
colorScheme = "normal",
|
|
@@ -14517,18 +14776,18 @@ function Progress({
|
|
|
14517
14776
|
style: styleProp
|
|
14518
14777
|
}) {
|
|
14519
14778
|
const clampedValue = (0, import_noya_utils14.clamp)(value, 0, 100);
|
|
14520
|
-
const transformStyles =
|
|
14779
|
+
const transformStyles = React77.useMemo(
|
|
14521
14780
|
() => ({
|
|
14522
14781
|
transform: `translateX(-${100 - clampedValue}%)`,
|
|
14523
14782
|
backgroundColor: color
|
|
14524
14783
|
}),
|
|
14525
14784
|
[color, clampedValue]
|
|
14526
14785
|
);
|
|
14527
|
-
const style2 =
|
|
14786
|
+
const style2 = React77.useMemo(
|
|
14528
14787
|
() => ({ transform: "translateZ(0)", ...styleProp }),
|
|
14529
14788
|
[styleProp]
|
|
14530
14789
|
);
|
|
14531
|
-
return /* @__PURE__ */
|
|
14790
|
+
return /* @__PURE__ */ React77.createElement(
|
|
14532
14791
|
import_radix_ui11.Progress.Root,
|
|
14533
14792
|
{
|
|
14534
14793
|
className: cx(
|
|
@@ -14538,7 +14797,7 @@ function Progress({
|
|
|
14538
14797
|
style: style2,
|
|
14539
14798
|
value: clampedValue
|
|
14540
14799
|
},
|
|
14541
|
-
/* @__PURE__ */
|
|
14800
|
+
/* @__PURE__ */ React77.createElement(
|
|
14542
14801
|
import_radix_ui11.Progress.Indicator,
|
|
14543
14802
|
{
|
|
14544
14803
|
className: cx(
|
|
@@ -14563,14 +14822,14 @@ function FileUploadIndicator({
|
|
|
14563
14822
|
}) {
|
|
14564
14823
|
const done = percent === 1;
|
|
14565
14824
|
const value = typeof percent === "number" ? Math.round(percent) : 0;
|
|
14566
|
-
return /* @__PURE__ */
|
|
14825
|
+
return /* @__PURE__ */ import_react82.default.createElement("div", { className: "n-flex n-items-center n-gap-2" }, /* @__PURE__ */ import_react82.default.createElement("div", { className: "n-w-12 n-h-12 n-bg-background n-rounded-md n-overflow-hidden" }, /* @__PURE__ */ import_react82.default.createElement(
|
|
14567
14826
|
MediaThumbnail,
|
|
14568
14827
|
{
|
|
14569
14828
|
size: "medium",
|
|
14570
14829
|
fileName: name,
|
|
14571
14830
|
contentType
|
|
14572
14831
|
}
|
|
14573
|
-
)), /* @__PURE__ */
|
|
14832
|
+
)), /* @__PURE__ */ import_react82.default.createElement("div", { className: "n-flex n-flex-col n-flex-1 n-justify-center n-gap-1 n-min-w-0" }, name && /* @__PURE__ */ import_react82.default.createElement(Small, { color: "text", className: "n-truncate n-leading-none" }, name), typeof total === "number" && typeof percent === "number" && /* @__PURE__ */ import_react82.default.createElement(
|
|
14574
14833
|
Small,
|
|
14575
14834
|
{
|
|
14576
14835
|
color: "textSubtle",
|
|
@@ -14581,7 +14840,7 @@ function FileUploadIndicator({
|
|
|
14581
14840
|
" /",
|
|
14582
14841
|
" ",
|
|
14583
14842
|
formatByteSize(total)
|
|
14584
|
-
), typeof value === "number" && /* @__PURE__ */
|
|
14843
|
+
), typeof value === "number" && /* @__PURE__ */ import_react82.default.createElement(
|
|
14585
14844
|
Progress,
|
|
14586
14845
|
{
|
|
14587
14846
|
value,
|
|
@@ -14589,7 +14848,7 @@ function FileUploadIndicator({
|
|
|
14589
14848
|
className: "n-rounded-sm",
|
|
14590
14849
|
colorScheme: "secondary"
|
|
14591
14850
|
}
|
|
14592
|
-
)), /* @__PURE__ */
|
|
14851
|
+
)), /* @__PURE__ */ import_react82.default.createElement("div", { className: "n-flex n-items-center n-justify-center n-gap-2" }, typeof value === "number" && /* @__PURE__ */ import_react82.default.createElement(
|
|
14593
14852
|
Small,
|
|
14594
14853
|
{
|
|
14595
14854
|
color: "textSubtle",
|
|
@@ -14598,12 +14857,12 @@ function FileUploadIndicator({
|
|
|
14598
14857
|
},
|
|
14599
14858
|
value,
|
|
14600
14859
|
"%"
|
|
14601
|
-
), done ? /* @__PURE__ */
|
|
14860
|
+
), done ? /* @__PURE__ */ import_react82.default.createElement("div", { className: "n-w-[15px] n-h-[15px] n-bg-secondary n-rounded-full n-flex n-items-center n-justify-center n-text-white" }, /* @__PURE__ */ import_react82.default.createElement(Checkmark, null)) : /* @__PURE__ */ import_react82.default.createElement(ActivityIndicator, { size: 15 })));
|
|
14602
14861
|
}
|
|
14603
14862
|
function FileUploadList({
|
|
14604
14863
|
uploads
|
|
14605
14864
|
}) {
|
|
14606
|
-
return /* @__PURE__ */
|
|
14865
|
+
return /* @__PURE__ */ import_react82.default.createElement(import_react82.default.Fragment, null, /* @__PURE__ */ import_react82.default.createElement("div", { className: "n-flex n-items-center n-gap-2 n-py-2 n-px-4" }, /* @__PURE__ */ import_react82.default.createElement(Heading5, null, "Uploading ", uploads.length, " ", uploads.length === 1 ? "asset" : "assets")), /* @__PURE__ */ import_react82.default.createElement(Divider, null), /* @__PURE__ */ import_react82.default.createElement("div", { className: "n-flex n-flex-col n-gap-3 n-max-h-[500px] n-overflow-y-auto n-overflow-x-hidden n-py-4 n-px-4" }, uploads.map((upload) => /* @__PURE__ */ import_react82.default.createElement(
|
|
14607
14866
|
FileUploadIndicator,
|
|
14608
14867
|
{
|
|
14609
14868
|
key: upload.id,
|
|
@@ -14616,7 +14875,7 @@ function FileUploadList({
|
|
|
14616
14875
|
}
|
|
14617
14876
|
|
|
14618
14877
|
// src/components/FloatingWindow.tsx
|
|
14619
|
-
var
|
|
14878
|
+
var import_react83 = __toESM(require("react"));
|
|
14620
14879
|
var styles2 = {
|
|
14621
14880
|
noSelect: {
|
|
14622
14881
|
userSelect: "none",
|
|
@@ -14709,7 +14968,7 @@ function defaultRenderToolbar({
|
|
|
14709
14968
|
toolbarContent,
|
|
14710
14969
|
onClose
|
|
14711
14970
|
}) {
|
|
14712
|
-
return /* @__PURE__ */
|
|
14971
|
+
return /* @__PURE__ */ import_react83.default.createElement(import_react83.default.Fragment, null, /* @__PURE__ */ import_react83.default.createElement(Small, { className: "n-flex-1 n-font-medium n-text-text" }, title), toolbarContent, /* @__PURE__ */ import_react83.default.createElement(
|
|
14713
14972
|
IconButton,
|
|
14714
14973
|
{
|
|
14715
14974
|
iconName: "Cross3Icon",
|
|
@@ -14736,16 +14995,16 @@ var FloatingWindow = ({
|
|
|
14736
14995
|
toolbarContent,
|
|
14737
14996
|
renderToolbar = defaultRenderToolbar
|
|
14738
14997
|
}) => {
|
|
14739
|
-
const [position, setPosition] = (0,
|
|
14740
|
-
const [size, setSize] = (0,
|
|
14998
|
+
const [position, setPosition] = (0, import_react83.useState)({ x: initialX, y: initialY });
|
|
14999
|
+
const [size, setSize] = (0, import_react83.useState)({
|
|
14741
15000
|
width: initialWidth,
|
|
14742
15001
|
height: initialHeight
|
|
14743
15002
|
});
|
|
14744
|
-
const [isDragging, setIsDragging] = (0,
|
|
14745
|
-
const [isResizing, setIsResizing] = (0,
|
|
14746
|
-
const [dragOffset, setDragOffset] = (0,
|
|
14747
|
-
const [resizeDirection, setResizeDirection] = (0,
|
|
14748
|
-
const wrapperRef = (0,
|
|
15003
|
+
const [isDragging, setIsDragging] = (0, import_react83.useState)(false);
|
|
15004
|
+
const [isResizing, setIsResizing] = (0, import_react83.useState)(false);
|
|
15005
|
+
const [dragOffset, setDragOffset] = (0, import_react83.useState)({ x: 0, y: 0 });
|
|
15006
|
+
const [resizeDirection, setResizeDirection] = (0, import_react83.useState)(null);
|
|
15007
|
+
const wrapperRef = (0, import_react83.useRef)(null);
|
|
14749
15008
|
const toggleGlobalTextSelection = (disable) => {
|
|
14750
15009
|
if (disable) {
|
|
14751
15010
|
document.body.style.userSelect = "none";
|
|
@@ -14753,7 +15012,7 @@ var FloatingWindow = ({
|
|
|
14753
15012
|
document.body.style.userSelect = "";
|
|
14754
15013
|
}
|
|
14755
15014
|
};
|
|
14756
|
-
const handleMouseDown = (0,
|
|
15015
|
+
const handleMouseDown = (0, import_react83.useCallback)((e) => {
|
|
14757
15016
|
if (!wrapperRef.current) return;
|
|
14758
15017
|
const rect = wrapperRef.current.getBoundingClientRect();
|
|
14759
15018
|
setDragOffset({
|
|
@@ -14762,7 +15021,7 @@ var FloatingWindow = ({
|
|
|
14762
15021
|
});
|
|
14763
15022
|
setIsDragging(true);
|
|
14764
15023
|
}, []);
|
|
14765
|
-
const handleResizeStart = (0,
|
|
15024
|
+
const handleResizeStart = (0, import_react83.useCallback)(
|
|
14766
15025
|
(direction) => (e) => {
|
|
14767
15026
|
e.stopPropagation();
|
|
14768
15027
|
setIsResizing(true);
|
|
@@ -14771,7 +15030,7 @@ var FloatingWindow = ({
|
|
|
14771
15030
|
},
|
|
14772
15031
|
[]
|
|
14773
15032
|
);
|
|
14774
|
-
const handleMouseMove = (0,
|
|
15033
|
+
const handleMouseMove = (0, import_react83.useCallback)(
|
|
14775
15034
|
(e) => {
|
|
14776
15035
|
if (isDragging) {
|
|
14777
15036
|
setPosition({
|
|
@@ -14825,13 +15084,13 @@ var FloatingWindow = ({
|
|
|
14825
15084
|
minHeight
|
|
14826
15085
|
]
|
|
14827
15086
|
);
|
|
14828
|
-
const handleMouseUp = (0,
|
|
15087
|
+
const handleMouseUp = (0, import_react83.useCallback)((_e) => {
|
|
14829
15088
|
setIsDragging(false);
|
|
14830
15089
|
setIsResizing(false);
|
|
14831
15090
|
setResizeDirection(null);
|
|
14832
15091
|
toggleGlobalTextSelection(false);
|
|
14833
15092
|
}, []);
|
|
14834
|
-
|
|
15093
|
+
import_react83.default.useEffect(() => {
|
|
14835
15094
|
document.addEventListener("mousemove", handleMouseMove);
|
|
14836
15095
|
document.addEventListener("mouseup", handleMouseUp);
|
|
14837
15096
|
return () => {
|
|
@@ -14841,11 +15100,11 @@ var FloatingWindow = ({
|
|
|
14841
15100
|
}, [handleMouseMove, handleMouseUp]);
|
|
14842
15101
|
const floatingWindowManager = useFloatingWindowManager();
|
|
14843
15102
|
const currentFloatingWindow = useCurrentFloatingWindowInternal();
|
|
14844
|
-
const handleClose = (0,
|
|
15103
|
+
const handleClose = (0, import_react83.useCallback)(() => {
|
|
14845
15104
|
if (onClose) onClose();
|
|
14846
15105
|
floatingWindowManager.closeWindow(currentFloatingWindow.id);
|
|
14847
15106
|
}, [currentFloatingWindow.id, floatingWindowManager, onClose]);
|
|
14848
|
-
return /* @__PURE__ */
|
|
15107
|
+
return /* @__PURE__ */ import_react83.default.createElement(
|
|
14849
15108
|
"div",
|
|
14850
15109
|
{
|
|
14851
15110
|
ref: wrapperRef,
|
|
@@ -14860,7 +15119,7 @@ var FloatingWindow = ({
|
|
|
14860
15119
|
zIndex: cssVars.zIndex.menu
|
|
14861
15120
|
}
|
|
14862
15121
|
},
|
|
14863
|
-
/* @__PURE__ */
|
|
15122
|
+
/* @__PURE__ */ import_react83.default.createElement(
|
|
14864
15123
|
"div",
|
|
14865
15124
|
{
|
|
14866
15125
|
style: {
|
|
@@ -14871,9 +15130,9 @@ var FloatingWindow = ({
|
|
|
14871
15130
|
},
|
|
14872
15131
|
renderToolbar({ title, toolbarContent, onClose: handleClose })
|
|
14873
15132
|
),
|
|
14874
|
-
/* @__PURE__ */
|
|
14875
|
-
/* @__PURE__ */
|
|
14876
|
-
Object.entries(resizeHandlePositions).map(([direction, style2]) => /* @__PURE__ */
|
|
15133
|
+
/* @__PURE__ */ import_react83.default.createElement(Divider, null),
|
|
15134
|
+
/* @__PURE__ */ import_react83.default.createElement("div", { style: styles2.content }, children),
|
|
15135
|
+
Object.entries(resizeHandlePositions).map(([direction, style2]) => /* @__PURE__ */ import_react83.default.createElement(
|
|
14877
15136
|
"div",
|
|
14878
15137
|
{
|
|
14879
15138
|
key: direction,
|
|
@@ -14885,9 +15144,9 @@ var FloatingWindow = ({
|
|
|
14885
15144
|
};
|
|
14886
15145
|
|
|
14887
15146
|
// src/components/InspectorContainer.tsx
|
|
14888
|
-
var
|
|
14889
|
-
var InspectorContainer = (0,
|
|
14890
|
-
(0,
|
|
15147
|
+
var import_react84 = __toESM(require("react"));
|
|
15148
|
+
var InspectorContainer = (0, import_react84.memo)(
|
|
15149
|
+
(0, import_react84.forwardRef)(function InspectorContainer2({
|
|
14891
15150
|
header,
|
|
14892
15151
|
children,
|
|
14893
15152
|
fallback,
|
|
@@ -14896,7 +15155,7 @@ var InspectorContainer = (0, import_react83.memo)(
|
|
|
14896
15155
|
className,
|
|
14897
15156
|
style: style2
|
|
14898
15157
|
}, forwardedRef) {
|
|
14899
|
-
return /* @__PURE__ */
|
|
15158
|
+
return /* @__PURE__ */ import_react84.default.createElement(
|
|
14900
15159
|
"div",
|
|
14901
15160
|
{
|
|
14902
15161
|
ref: forwardedRef,
|
|
@@ -14911,32 +15170,32 @@ var InspectorContainer = (0, import_react83.memo)(
|
|
|
14911
15170
|
}
|
|
14912
15171
|
},
|
|
14913
15172
|
header,
|
|
14914
|
-
children ? /* @__PURE__ */
|
|
15173
|
+
children ? /* @__PURE__ */ import_react84.default.createElement(ScrollArea, null, /* @__PURE__ */ import_react84.default.createElement("div", { className: "n-flex n-flex-col n-relative" }, showDividers ? withSeparatorElements(children, /* @__PURE__ */ import_react84.default.createElement(Divider, null)) : children)) : fallback ? /* @__PURE__ */ import_react84.default.createElement("div", { className: "n-flex n-flex-col n-relative n-h-full" }, fallback) : null
|
|
14915
15174
|
);
|
|
14916
15175
|
})
|
|
14917
15176
|
);
|
|
14918
15177
|
|
|
14919
15178
|
// src/components/LabeledElementView.tsx
|
|
14920
15179
|
var kiwi = __toESM(require("kiwi.js"));
|
|
14921
|
-
var
|
|
14922
|
-
var LabeledElementView =
|
|
15180
|
+
var React81 = __toESM(require("react"));
|
|
15181
|
+
var LabeledElementView = React81.memo(function LabeledElementView2({
|
|
14923
15182
|
children,
|
|
14924
15183
|
renderLabel
|
|
14925
15184
|
}) {
|
|
14926
|
-
const elementIds =
|
|
14927
|
-
(child) =>
|
|
15185
|
+
const elementIds = React81.Children.toArray(children).flatMap(
|
|
15186
|
+
(child) => React81.isValidElement(child) && child.type === React81.Fragment ? child.props.children : [child]
|
|
14928
15187
|
).map(
|
|
14929
|
-
(child) =>
|
|
15188
|
+
(child) => React81.isValidElement(child) && "id" in child.props ? child.props.id : null
|
|
14930
15189
|
).filter((id) => !!id);
|
|
14931
15190
|
const serializedIds = elementIds.join(",");
|
|
14932
|
-
const containerRef =
|
|
14933
|
-
const refs =
|
|
15191
|
+
const containerRef = React81.useRef(null);
|
|
15192
|
+
const refs = React81.useMemo(() => {
|
|
14934
15193
|
return Object.fromEntries(
|
|
14935
|
-
serializedIds.split(",").map((id) => [id,
|
|
15194
|
+
serializedIds.split(",").map((id) => [id, React81.createRef()])
|
|
14936
15195
|
);
|
|
14937
15196
|
}, [serializedIds]);
|
|
14938
|
-
const labelElements =
|
|
14939
|
-
return serializedIds.split(",").map((id, index) => /* @__PURE__ */
|
|
15197
|
+
const labelElements = React81.useMemo(() => {
|
|
15198
|
+
return serializedIds.split(",").map((id, index) => /* @__PURE__ */ React81.createElement(
|
|
14940
15199
|
"span",
|
|
14941
15200
|
{
|
|
14942
15201
|
key: id,
|
|
@@ -14949,7 +15208,7 @@ var LabeledElementView = React79.memo(function LabeledElementView2({
|
|
|
14949
15208
|
})
|
|
14950
15209
|
));
|
|
14951
15210
|
}, [refs, serializedIds, renderLabel]);
|
|
14952
|
-
|
|
15211
|
+
React81.useLayoutEffect(() => {
|
|
14953
15212
|
if (!containerRef.current) return;
|
|
14954
15213
|
const containerRect = containerRef.current.getBoundingClientRect();
|
|
14955
15214
|
const solver = new kiwi.Solver();
|
|
@@ -15011,17 +15270,17 @@ var LabeledElementView = React79.memo(function LabeledElementView2({
|
|
|
15011
15270
|
`${Math.max(...heights)}px`
|
|
15012
15271
|
);
|
|
15013
15272
|
}, [refs, labelElements]);
|
|
15014
|
-
return /* @__PURE__ */
|
|
15273
|
+
return /* @__PURE__ */ React81.createElement("div", { className: "n-flex n-flex-1 n-flex-col n-relative", ref: containerRef }, /* @__PURE__ */ React81.createElement("div", { className: "n-flex n-flex-1 n-items-center" }, children), /* @__PURE__ */ React81.createElement("div", { className: "n-relative n-overflow-hidden n-select-none" }, labelElements));
|
|
15015
15274
|
});
|
|
15016
15275
|
|
|
15017
15276
|
// src/components/LabeledField.tsx
|
|
15018
|
-
var
|
|
15277
|
+
var import_react86 = __toESM(require("react"));
|
|
15019
15278
|
|
|
15020
15279
|
// src/hooks/useIndent.ts
|
|
15021
|
-
var
|
|
15022
|
-
var IndentContext =
|
|
15280
|
+
var import_react85 = __toESM(require("react"));
|
|
15281
|
+
var IndentContext = import_react85.default.createContext(0);
|
|
15023
15282
|
var useIndent = () => {
|
|
15024
|
-
return
|
|
15283
|
+
return import_react85.default.useContext(IndentContext);
|
|
15025
15284
|
};
|
|
15026
15285
|
|
|
15027
15286
|
// src/components/LabeledField.tsx
|
|
@@ -15033,7 +15292,7 @@ var labeledFieldStyles = (labelType) => cx(
|
|
|
15033
15292
|
var labelTypeInset = {
|
|
15034
15293
|
type: "inset"
|
|
15035
15294
|
};
|
|
15036
|
-
var LabeledField = (0,
|
|
15295
|
+
var LabeledField = (0, import_react86.memo)(function LabeledField2({
|
|
15037
15296
|
children,
|
|
15038
15297
|
label,
|
|
15039
15298
|
labelType: labelTypeProp,
|
|
@@ -15049,15 +15308,15 @@ var LabeledField = (0, import_react85.memo)(function LabeledField2({
|
|
|
15049
15308
|
const labelWidth = labelWidthFromContext ?? minWidth;
|
|
15050
15309
|
const labelTypeFromContext = useLabelType();
|
|
15051
15310
|
const labelType = labelTypeProp ?? labelTypeFromContext;
|
|
15052
|
-
const labeledFieldClasses = (0,
|
|
15311
|
+
const labeledFieldClasses = (0, import_react86.useMemo)(
|
|
15053
15312
|
() => labeledFieldStyles(labelType),
|
|
15054
15313
|
[labelType]
|
|
15055
15314
|
);
|
|
15056
|
-
const labelContextValue = (0,
|
|
15315
|
+
const labelContextValue = (0, import_react86.useMemo)(
|
|
15057
15316
|
() => ({ fieldId, label }),
|
|
15058
15317
|
[fieldId, label]
|
|
15059
15318
|
);
|
|
15060
|
-
const indentStyle = (0,
|
|
15319
|
+
const indentStyle = (0, import_react86.useMemo)(
|
|
15061
15320
|
() => ({
|
|
15062
15321
|
width: indentLevel * 8,
|
|
15063
15322
|
flexBasis: indentLevel * 8,
|
|
@@ -15066,20 +15325,20 @@ var LabeledField = (0, import_react85.memo)(function LabeledField2({
|
|
|
15066
15325
|
}),
|
|
15067
15326
|
[indentLevel]
|
|
15068
15327
|
);
|
|
15069
|
-
const fieldStyle = (0,
|
|
15328
|
+
const fieldStyle = (0, import_react86.useMemo)(
|
|
15070
15329
|
() => ({
|
|
15071
15330
|
minWidth: `calc(100% - ${labelWidth + indentLevel * 8 + 6}px)`
|
|
15072
15331
|
}),
|
|
15073
15332
|
[labelWidth, indentLevel]
|
|
15074
15333
|
);
|
|
15075
|
-
const labelStyle = (0,
|
|
15334
|
+
const labelStyle = (0, import_react86.useMemo)(
|
|
15076
15335
|
() => ({
|
|
15077
15336
|
minWidth: `calc(${labelWidth}px - ${indentLevel * 8}px)`,
|
|
15078
15337
|
...labelStyleProp
|
|
15079
15338
|
}),
|
|
15080
15339
|
[labelWidth, indentLevel, labelStyleProp]
|
|
15081
15340
|
);
|
|
15082
|
-
return /* @__PURE__ */
|
|
15341
|
+
return /* @__PURE__ */ import_react86.default.createElement(LabelContext.Provider, { value: labelContextValue }, labelType === "inset" ? /* @__PURE__ */ import_react86.default.createElement(LabelTypeContext.Provider, { value: labelTypeInset }, children) : /* @__PURE__ */ import_react86.default.createElement("div", { className: cx("n-flex n-relative n-flex-1", className), style: style2 }, Boolean(indentLevel) && /* @__PURE__ */ import_react86.default.createElement("div", { style: indentStyle }), /* @__PURE__ */ import_react86.default.createElement("div", { className: labeledFieldClasses }, labelType !== "none" && /* @__PURE__ */ import_react86.default.createElement(
|
|
15083
15342
|
Label,
|
|
15084
15343
|
{
|
|
15085
15344
|
htmlFor: fieldId,
|
|
@@ -15088,13 +15347,13 @@ var LabeledField = (0, import_react85.memo)(function LabeledField2({
|
|
|
15088
15347
|
...props
|
|
15089
15348
|
},
|
|
15090
15349
|
label
|
|
15091
|
-
), labelType === "start" ? /* @__PURE__ */
|
|
15350
|
+
), labelType === "start" ? /* @__PURE__ */ import_react86.default.createElement("div", { className: "n-flex-auto n-flex", style: fieldStyle }, children) : children)));
|
|
15092
15351
|
});
|
|
15093
15352
|
|
|
15094
15353
|
// src/components/ListMenu.tsx
|
|
15095
15354
|
var import_noya_icons10 = require("@noya-app/noya-icons");
|
|
15096
15355
|
var import_noya_utils15 = require("@noya-app/noya-utils");
|
|
15097
|
-
var
|
|
15356
|
+
var import_react87 = __toESM(require("react"));
|
|
15098
15357
|
function getItemId(item) {
|
|
15099
15358
|
if (item.type === "submenu") {
|
|
15100
15359
|
return item.id;
|
|
@@ -15110,7 +15369,7 @@ function ListMenu({
|
|
|
15110
15369
|
}) {
|
|
15111
15370
|
const selectedIds = items.flatMap(
|
|
15112
15371
|
(item) => isSelectableMenuItem(item) && item.checked ? [item.value] : []
|
|
15113
|
-
).concat(selectedIdsProp);
|
|
15372
|
+
).concat(selectedIdsProp ?? []);
|
|
15114
15373
|
let chunks = (0, import_noya_utils15.chunkBy)(
|
|
15115
15374
|
items,
|
|
15116
15375
|
(a, b) => a.type !== "separator" && b.type !== "separator"
|
|
@@ -15123,7 +15382,7 @@ function ListMenu({
|
|
|
15123
15382
|
const regularItems = chunk.filter(
|
|
15124
15383
|
(item) => isSubMenuItem(item) || isSelectableMenuItem(item)
|
|
15125
15384
|
);
|
|
15126
|
-
return /* @__PURE__ */
|
|
15385
|
+
return /* @__PURE__ */ import_react87.default.createElement(
|
|
15127
15386
|
List,
|
|
15128
15387
|
{
|
|
15129
15388
|
key: regularItems.map(getItemId).join("-"),
|
|
@@ -15135,30 +15394,30 @@ function ListMenu({
|
|
|
15135
15394
|
getName: (item) => item.title.toString(),
|
|
15136
15395
|
selectedIds,
|
|
15137
15396
|
renderRight,
|
|
15138
|
-
renderThumbnail: ({ item }) => /* @__PURE__ */
|
|
15139
|
-
renderDetail: (item) => isSubMenuItem(item) && /* @__PURE__ */
|
|
15397
|
+
renderThumbnail: ({ item }) => /* @__PURE__ */ import_react87.default.createElement("div", { className: "n-flex n-flex-1 n-items-center n-justify-center n-bg-divider-subtle n-w-full n-h-full n-rounded-sm" }, renderIcon(item.icon)),
|
|
15398
|
+
renderDetail: (item) => isSubMenuItem(item) && /* @__PURE__ */ import_react87.default.createElement(import_noya_icons10.ArrowRightIcon, null),
|
|
15140
15399
|
onClickItem: (itemId) => onSelect(itemId)
|
|
15141
15400
|
}
|
|
15142
15401
|
);
|
|
15143
15402
|
});
|
|
15144
15403
|
return withSeparatorElements(
|
|
15145
15404
|
lists,
|
|
15146
|
-
/* @__PURE__ */
|
|
15405
|
+
/* @__PURE__ */ import_react87.default.createElement(Divider, { overflow: 12, className: "n-my-1" })
|
|
15147
15406
|
);
|
|
15148
15407
|
}
|
|
15149
15408
|
|
|
15150
15409
|
// src/components/ListNavigator.tsx
|
|
15151
|
-
var
|
|
15410
|
+
var import_react91 = __toESM(require("react"));
|
|
15152
15411
|
|
|
15153
15412
|
// src/components/Navigator.tsx
|
|
15154
|
-
var
|
|
15413
|
+
var import_react90 = __toESM(require("react"));
|
|
15155
15414
|
|
|
15156
15415
|
// src/components/StackNavigator.tsx
|
|
15157
15416
|
var import_noya_utils16 = require("@noya-app/noya-utils");
|
|
15158
|
-
var
|
|
15417
|
+
var import_react89 = __toESM(require("react"));
|
|
15159
15418
|
|
|
15160
15419
|
// src/components/BaseToolbar.tsx
|
|
15161
|
-
var
|
|
15420
|
+
var import_react88 = __toESM(require("react"));
|
|
15162
15421
|
var toolbarStyle = {
|
|
15163
15422
|
[cssVarNames.colors.buttonBackground]: "transparent",
|
|
15164
15423
|
[cssVarNames.colors.inputBackground]: "transparent"
|
|
@@ -15170,7 +15429,7 @@ function BaseToolbarContainer({
|
|
|
15170
15429
|
innerClassName,
|
|
15171
15430
|
enableAbsoluteBreakpoint = true
|
|
15172
15431
|
}) {
|
|
15173
|
-
return /* @__PURE__ */
|
|
15432
|
+
return /* @__PURE__ */ import_react88.default.createElement("div", { className: cx("n-flex n-flex-col", className), style: toolbarStyle }, /* @__PURE__ */ import_react88.default.createElement(
|
|
15174
15433
|
"div",
|
|
15175
15434
|
{
|
|
15176
15435
|
className: cx(
|
|
@@ -15183,7 +15442,7 @@ function BaseToolbarContainer({
|
|
|
15183
15442
|
}
|
|
15184
15443
|
},
|
|
15185
15444
|
children
|
|
15186
|
-
), showDivider && /* @__PURE__ */
|
|
15445
|
+
), showDivider && /* @__PURE__ */ import_react88.default.createElement(Divider, { variant: "strong" }));
|
|
15187
15446
|
}
|
|
15188
15447
|
function BaseToolbar({
|
|
15189
15448
|
children,
|
|
@@ -15195,7 +15454,7 @@ function BaseToolbar({
|
|
|
15195
15454
|
innerClassName,
|
|
15196
15455
|
enableAbsoluteBreakpoint = true
|
|
15197
15456
|
}) {
|
|
15198
|
-
return /* @__PURE__ */
|
|
15457
|
+
return /* @__PURE__ */ import_react88.default.createElement(
|
|
15199
15458
|
BaseToolbarContainer,
|
|
15200
15459
|
{
|
|
15201
15460
|
showDivider,
|
|
@@ -15203,25 +15462,25 @@ function BaseToolbar({
|
|
|
15203
15462
|
innerClassName,
|
|
15204
15463
|
enableAbsoluteBreakpoint
|
|
15205
15464
|
},
|
|
15206
|
-
logo && /* @__PURE__ */
|
|
15207
|
-
/* @__PURE__ */
|
|
15208
|
-
left && /* @__PURE__ */
|
|
15209
|
-
children && /* @__PURE__ */
|
|
15465
|
+
logo && /* @__PURE__ */ import_react88.default.createElement(import_react88.default.Fragment, null, logo, /* @__PURE__ */ import_react88.default.createElement(DividerVertical, null)),
|
|
15466
|
+
/* @__PURE__ */ import_react88.default.createElement(Spacer.Horizontal, { size: 10 }),
|
|
15467
|
+
left && /* @__PURE__ */ import_react88.default.createElement(import_react88.default.Fragment, null, /* @__PURE__ */ import_react88.default.createElement("div", { className: "n-flex n-gap-toolbar-separator" }, left), /* @__PURE__ */ import_react88.default.createElement(Spacer.Horizontal, { size: 10 })),
|
|
15468
|
+
children && /* @__PURE__ */ import_react88.default.createElement(
|
|
15210
15469
|
"div",
|
|
15211
15470
|
{
|
|
15212
|
-
className: "n-flex n-items-center n-justify-center n-text-text-muted n-pointer-events-none @
|
|
15471
|
+
className: "n-flex n-items-center n-justify-center n-text-text-muted n-pointer-events-none @xl/toolbar:!n-absolute n-inset-0"
|
|
15213
15472
|
},
|
|
15214
|
-
/* @__PURE__ */
|
|
15473
|
+
/* @__PURE__ */ import_react88.default.createElement("div", { className: "n-flex n-items-center n-justify-center n-pointer-events-auto" }, children)
|
|
15215
15474
|
),
|
|
15216
|
-
/* @__PURE__ */
|
|
15217
|
-
/* @__PURE__ */
|
|
15218
|
-
/* @__PURE__ */
|
|
15219
|
-
/* @__PURE__ */
|
|
15475
|
+
/* @__PURE__ */ import_react88.default.createElement(Spacer.Horizontal, null),
|
|
15476
|
+
/* @__PURE__ */ import_react88.default.createElement(Spacer.Horizontal, { size: 10 }),
|
|
15477
|
+
/* @__PURE__ */ import_react88.default.createElement("div", { className: "n-flex n-gap-toolbar-separator" }, right),
|
|
15478
|
+
/* @__PURE__ */ import_react88.default.createElement(Spacer.Horizontal, { size: 10 })
|
|
15220
15479
|
);
|
|
15221
15480
|
}
|
|
15222
15481
|
|
|
15223
15482
|
// src/components/StackNavigator.tsx
|
|
15224
|
-
var StackRenderContext =
|
|
15483
|
+
var StackRenderContext = import_react89.default.createContext({});
|
|
15225
15484
|
function StackNavigator({
|
|
15226
15485
|
items,
|
|
15227
15486
|
onBack,
|
|
@@ -15235,15 +15494,15 @@ function StackNavigator({
|
|
|
15235
15494
|
renderHeader
|
|
15236
15495
|
}) {
|
|
15237
15496
|
const top = items.at(-1);
|
|
15238
|
-
const previousLengthRef = (0,
|
|
15239
|
-
const direction = (0,
|
|
15497
|
+
const previousLengthRef = (0, import_react89.useRef)(items.length);
|
|
15498
|
+
const direction = (0, import_react89.useMemo)(() => {
|
|
15240
15499
|
const previous = previousLengthRef.current;
|
|
15241
15500
|
previousLengthRef.current = items.length;
|
|
15242
15501
|
return items.length >= previous ? "forward" : "back";
|
|
15243
15502
|
}, [items.length]);
|
|
15244
|
-
const [cardSizes, setCardSizes] = (0,
|
|
15245
|
-
const [containerSize, setContainerSize] = (0,
|
|
15246
|
-
const handleSizeChange = (0,
|
|
15503
|
+
const [cardSizes, setCardSizes] = (0, import_react89.useState)({});
|
|
15504
|
+
const [containerSize, setContainerSize] = (0, import_react89.useState)();
|
|
15505
|
+
const handleSizeChange = (0, import_react89.useCallback)((key, size) => {
|
|
15247
15506
|
setCardSizes((prev) => {
|
|
15248
15507
|
if ((0, import_noya_utils16.isDeepEqual)(prev[key], size)) {
|
|
15249
15508
|
return prev;
|
|
@@ -15251,7 +15510,7 @@ function StackNavigator({
|
|
|
15251
15510
|
return { ...prev, [key]: size };
|
|
15252
15511
|
});
|
|
15253
15512
|
}, []);
|
|
15254
|
-
(0,
|
|
15513
|
+
(0, import_react89.useEffect)(() => {
|
|
15255
15514
|
if (!top) {
|
|
15256
15515
|
setContainerSize(void 0);
|
|
15257
15516
|
return;
|
|
@@ -15265,7 +15524,7 @@ function StackNavigator({
|
|
|
15265
15524
|
return measuredSize;
|
|
15266
15525
|
});
|
|
15267
15526
|
}, [cardSizes, top]);
|
|
15268
|
-
(0,
|
|
15527
|
+
(0, import_react89.useEffect)(() => {
|
|
15269
15528
|
setCardSizes((prev) => {
|
|
15270
15529
|
const next = {};
|
|
15271
15530
|
let changed = false;
|
|
@@ -15283,7 +15542,7 @@ function StackNavigator({
|
|
|
15283
15542
|
return changed ? next : prev;
|
|
15284
15543
|
});
|
|
15285
15544
|
}, [items]);
|
|
15286
|
-
const animationStyles = (0,
|
|
15545
|
+
const animationStyles = (0, import_react89.useMemo)(() => {
|
|
15287
15546
|
return {
|
|
15288
15547
|
entering: {
|
|
15289
15548
|
opacity: 0,
|
|
@@ -15303,7 +15562,7 @@ function StackNavigator({
|
|
|
15303
15562
|
};
|
|
15304
15563
|
}, [direction]);
|
|
15305
15564
|
const shouldAnimateSize = containerSize !== void 0;
|
|
15306
|
-
const contentStyle = (0,
|
|
15565
|
+
const contentStyle = (0, import_react89.useMemo)(() => {
|
|
15307
15566
|
if (!containerSize) return void 0;
|
|
15308
15567
|
const style3 = {
|
|
15309
15568
|
// width: containerSize.width,
|
|
@@ -15316,11 +15575,11 @@ function StackNavigator({
|
|
|
15316
15575
|
}
|
|
15317
15576
|
return style3;
|
|
15318
15577
|
}, [containerSize, shouldAnimateSize]);
|
|
15319
|
-
const [animationStates, setAnimationStates] = (0,
|
|
15320
|
-
const [renderContentCache, setRenderContentCache] = (0,
|
|
15578
|
+
const [animationStates, setAnimationStates] = (0, import_react89.useState)({});
|
|
15579
|
+
const [renderContentCache, setRenderContentCache] = (0, import_react89.useState)(
|
|
15321
15580
|
() => Object.fromEntries(items.map((item) => [item.key, item.renderContent]))
|
|
15322
15581
|
);
|
|
15323
|
-
(0,
|
|
15582
|
+
(0, import_react89.useEffect)(() => {
|
|
15324
15583
|
setRenderContentCache((prev) => {
|
|
15325
15584
|
let changed = false;
|
|
15326
15585
|
const next = { ...prev };
|
|
@@ -15338,7 +15597,7 @@ function StackNavigator({
|
|
|
15338
15597
|
return changed ? next : prev;
|
|
15339
15598
|
});
|
|
15340
15599
|
}, [animationStates, items]);
|
|
15341
|
-
const handleChildStateChange = (0,
|
|
15600
|
+
const handleChildStateChange = (0, import_react89.useCallback)(
|
|
15342
15601
|
(key, state) => {
|
|
15343
15602
|
if (!key) return;
|
|
15344
15603
|
setAnimationStates((prev) => {
|
|
@@ -15381,7 +15640,7 @@ function StackNavigator({
|
|
|
15381
15640
|
}
|
|
15382
15641
|
return defaultRenderHeader(headerProps);
|
|
15383
15642
|
};
|
|
15384
|
-
return /* @__PURE__ */
|
|
15643
|
+
return /* @__PURE__ */ import_react89.default.createElement(
|
|
15385
15644
|
"div",
|
|
15386
15645
|
{
|
|
15387
15646
|
className: cx("n-flex n-flex-col", className),
|
|
@@ -15397,13 +15656,13 @@ function StackNavigator({
|
|
|
15397
15656
|
}
|
|
15398
15657
|
},
|
|
15399
15658
|
showHeader && renderHeaderContent(),
|
|
15400
|
-
/* @__PURE__ */
|
|
15659
|
+
/* @__PURE__ */ import_react89.default.createElement(
|
|
15401
15660
|
"div",
|
|
15402
15661
|
{
|
|
15403
15662
|
className: cx("n-relative n-overflow-hidden", contentClassName),
|
|
15404
15663
|
style: contentStyle
|
|
15405
15664
|
},
|
|
15406
|
-
/* @__PURE__ */
|
|
15665
|
+
/* @__PURE__ */ import_react89.default.createElement(StackRenderContext.Provider, { value: renderContentCache }, /* @__PURE__ */ import_react89.default.createElement(
|
|
15407
15666
|
AnimatePresence,
|
|
15408
15667
|
{
|
|
15409
15668
|
duration: 200,
|
|
@@ -15412,7 +15671,7 @@ function StackNavigator({
|
|
|
15412
15671
|
mode: "wait",
|
|
15413
15672
|
onChildStateChange: handleChildStateChange
|
|
15414
15673
|
},
|
|
15415
|
-
/* @__PURE__ */
|
|
15674
|
+
/* @__PURE__ */ import_react89.default.createElement(
|
|
15416
15675
|
StackNavigatorCard,
|
|
15417
15676
|
{
|
|
15418
15677
|
key: top.key,
|
|
@@ -15432,15 +15691,15 @@ var StackNavigatorCard = ({
|
|
|
15432
15691
|
style: style2,
|
|
15433
15692
|
className
|
|
15434
15693
|
}) => {
|
|
15435
|
-
const ref =
|
|
15694
|
+
const ref = import_react89.default.useRef(null);
|
|
15436
15695
|
const size = useSize(ref);
|
|
15437
|
-
const renderContext =
|
|
15696
|
+
const renderContext = import_react89.default.useContext(StackRenderContext);
|
|
15438
15697
|
const renderContent = renderContext?.[item.key] ?? item.renderContent;
|
|
15439
|
-
|
|
15698
|
+
import_react89.default.useEffect(() => {
|
|
15440
15699
|
if (!size || size.width === 0 || size.height === 0) return;
|
|
15441
15700
|
onSizeChange(item.key, size);
|
|
15442
15701
|
}, [item.key, onSizeChange, size]);
|
|
15443
|
-
return /* @__PURE__ */
|
|
15702
|
+
return /* @__PURE__ */ import_react89.default.createElement("div", { ref, className: cx("n-flex n-flex-col", className), style: style2 }, renderContent?.());
|
|
15444
15703
|
};
|
|
15445
15704
|
function defaultRenderHeader({
|
|
15446
15705
|
showDivider,
|
|
@@ -15449,13 +15708,13 @@ function defaultRenderHeader({
|
|
|
15449
15708
|
right,
|
|
15450
15709
|
title
|
|
15451
15710
|
}) {
|
|
15452
|
-
return /* @__PURE__ */
|
|
15711
|
+
return /* @__PURE__ */ import_react89.default.createElement(
|
|
15453
15712
|
BaseToolbar,
|
|
15454
15713
|
{
|
|
15455
15714
|
innerClassName: "n-px-1",
|
|
15456
15715
|
showDivider,
|
|
15457
15716
|
enableAbsoluteBreakpoint: false,
|
|
15458
|
-
left: showBackButton && /* @__PURE__ */
|
|
15717
|
+
left: showBackButton && /* @__PURE__ */ import_react89.default.createElement(
|
|
15459
15718
|
Button,
|
|
15460
15719
|
{
|
|
15461
15720
|
className: "-n-mx-2",
|
|
@@ -15466,7 +15725,7 @@ function defaultRenderHeader({
|
|
|
15466
15725
|
),
|
|
15467
15726
|
right
|
|
15468
15727
|
},
|
|
15469
|
-
typeof title === "string" || typeof title === "number" ? /* @__PURE__ */
|
|
15728
|
+
typeof title === "string" || typeof title === "number" ? /* @__PURE__ */ import_react89.default.createElement(Body, null, title) : title
|
|
15470
15729
|
);
|
|
15471
15730
|
}
|
|
15472
15731
|
|
|
@@ -15478,23 +15737,23 @@ var NavigatorScreen = Object.assign(
|
|
|
15478
15737
|
[navigatorScreenIdentifier]: true
|
|
15479
15738
|
}
|
|
15480
15739
|
);
|
|
15481
|
-
var NavigatorScreenContext =
|
|
15740
|
+
var NavigatorScreenContext = import_react90.default.createContext(null);
|
|
15482
15741
|
function useNavigator() {
|
|
15483
|
-
const context =
|
|
15742
|
+
const context = import_react90.default.useContext(NavigatorScreenContext);
|
|
15484
15743
|
if (!context) {
|
|
15485
15744
|
throw new Error("useNavigator must be used within a Navigator screen");
|
|
15486
15745
|
}
|
|
15487
15746
|
return context.navigation;
|
|
15488
15747
|
}
|
|
15489
15748
|
function useNavigatorRoute() {
|
|
15490
|
-
const context =
|
|
15749
|
+
const context = import_react90.default.useContext(NavigatorScreenContext);
|
|
15491
15750
|
if (!context) {
|
|
15492
15751
|
throw new Error("useNavigatorRoute must be used within a Navigator screen");
|
|
15493
15752
|
}
|
|
15494
15753
|
return context.route;
|
|
15495
15754
|
}
|
|
15496
15755
|
function isNavigatorScreenElement(child) {
|
|
15497
|
-
return (0,
|
|
15756
|
+
return (0, import_react90.isValidElement)(child) && Boolean(
|
|
15498
15757
|
child.type?.[navigatorScreenIdentifier]
|
|
15499
15758
|
);
|
|
15500
15759
|
}
|
|
@@ -15515,15 +15774,15 @@ function NavigatorImpl({
|
|
|
15515
15774
|
showHeader,
|
|
15516
15775
|
renderHeader
|
|
15517
15776
|
}) {
|
|
15518
|
-
const screens = (0,
|
|
15777
|
+
const screens = (0, import_react90.useMemo)(() => {
|
|
15519
15778
|
const configs = [];
|
|
15520
|
-
|
|
15779
|
+
import_react90.Children.forEach(children, (child) => {
|
|
15521
15780
|
if (!isNavigatorScreenElement(child)) return;
|
|
15522
15781
|
configs.push(child.props);
|
|
15523
15782
|
});
|
|
15524
15783
|
return configs;
|
|
15525
15784
|
}, [children]);
|
|
15526
|
-
const screenMap = (0,
|
|
15785
|
+
const screenMap = (0, import_react90.useMemo)(() => {
|
|
15527
15786
|
const map = /* @__PURE__ */ new Map();
|
|
15528
15787
|
for (const screen of screens) {
|
|
15529
15788
|
if (map.has(screen.name)) {
|
|
@@ -15535,8 +15794,8 @@ function NavigatorImpl({
|
|
|
15535
15794
|
}
|
|
15536
15795
|
return map;
|
|
15537
15796
|
}, [screens]);
|
|
15538
|
-
const keyRef = (0,
|
|
15539
|
-
const createEntry = (0,
|
|
15797
|
+
const keyRef = (0, import_react90.useRef)(0);
|
|
15798
|
+
const createEntry = (0, import_react90.useCallback)(
|
|
15540
15799
|
(name, params) => ({
|
|
15541
15800
|
key: `${String(name)}-${keyRef.current++}`,
|
|
15542
15801
|
name,
|
|
@@ -15550,13 +15809,13 @@ function NavigatorImpl({
|
|
|
15550
15809
|
`Navigator: initial route "${String(initialScreenName)}" is not registered as a screen.`
|
|
15551
15810
|
);
|
|
15552
15811
|
}
|
|
15553
|
-
const [stack, setStack] = (0,
|
|
15812
|
+
const [stack, setStack] = (0, import_react90.useState)(() => [
|
|
15554
15813
|
createEntry(
|
|
15555
15814
|
initialScreenName,
|
|
15556
15815
|
initialRoute.params
|
|
15557
15816
|
)
|
|
15558
15817
|
]);
|
|
15559
|
-
const push = (0,
|
|
15818
|
+
const push = (0, import_react90.useCallback)(
|
|
15560
15819
|
(...args) => {
|
|
15561
15820
|
const [name, params] = args;
|
|
15562
15821
|
const screen = screenMap.get(name);
|
|
@@ -15570,7 +15829,7 @@ function NavigatorImpl({
|
|
|
15570
15829
|
},
|
|
15571
15830
|
[createEntry, screenMap]
|
|
15572
15831
|
);
|
|
15573
|
-
const pop = (0,
|
|
15832
|
+
const pop = (0, import_react90.useCallback)(() => {
|
|
15574
15833
|
setStack((prev) => {
|
|
15575
15834
|
if (prev.length <= 1) return prev;
|
|
15576
15835
|
const nextStack = prev.slice(0, -1);
|
|
@@ -15586,7 +15845,7 @@ function NavigatorImpl({
|
|
|
15586
15845
|
return updatedStack;
|
|
15587
15846
|
});
|
|
15588
15847
|
}, [createEntry]);
|
|
15589
|
-
const replace = (0,
|
|
15848
|
+
const replace = (0, import_react90.useCallback)(
|
|
15590
15849
|
(targetKey, name, params) => {
|
|
15591
15850
|
const screen = screenMap.get(name);
|
|
15592
15851
|
if (!screen) {
|
|
@@ -15612,7 +15871,7 @@ function NavigatorImpl({
|
|
|
15612
15871
|
},
|
|
15613
15872
|
[createEntry, screenMap]
|
|
15614
15873
|
);
|
|
15615
|
-
const items = (0,
|
|
15874
|
+
const items = (0, import_react90.useMemo)(() => {
|
|
15616
15875
|
return stack.flatMap((entry) => {
|
|
15617
15876
|
const screen = screenMap.get(entry.name);
|
|
15618
15877
|
if (!screen) return [];
|
|
@@ -15650,7 +15909,7 @@ function NavigatorImpl({
|
|
|
15650
15909
|
onBack: headerProps.onBack
|
|
15651
15910
|
}),
|
|
15652
15911
|
renderContent: () => {
|
|
15653
|
-
return /* @__PURE__ */
|
|
15912
|
+
return /* @__PURE__ */ import_react90.default.createElement(NavigatorScreenContext.Provider, { value: context }, evaluateOption(screen.children, context));
|
|
15654
15913
|
}
|
|
15655
15914
|
};
|
|
15656
15915
|
});
|
|
@@ -15658,7 +15917,7 @@ function NavigatorImpl({
|
|
|
15658
15917
|
const shouldShowHeader = evaluateOption(showHeader, {
|
|
15659
15918
|
stack
|
|
15660
15919
|
});
|
|
15661
|
-
return /* @__PURE__ */
|
|
15920
|
+
return /* @__PURE__ */ import_react90.default.createElement(
|
|
15662
15921
|
StackNavigator,
|
|
15663
15922
|
{
|
|
15664
15923
|
items,
|
|
@@ -15698,7 +15957,7 @@ function ListNavigator({
|
|
|
15698
15957
|
renderHeader,
|
|
15699
15958
|
selectedIds
|
|
15700
15959
|
}) {
|
|
15701
|
-
return /* @__PURE__ */
|
|
15960
|
+
return /* @__PURE__ */ import_react91.default.createElement(
|
|
15702
15961
|
ListNavigatorInternal,
|
|
15703
15962
|
{
|
|
15704
15963
|
initialRoute: { name: "screen", params: { id: void 0 } },
|
|
@@ -15716,7 +15975,7 @@ function ListNavigator({
|
|
|
15716
15975
|
className,
|
|
15717
15976
|
style: style2
|
|
15718
15977
|
},
|
|
15719
|
-
/* @__PURE__ */
|
|
15978
|
+
/* @__PURE__ */ import_react91.default.createElement(
|
|
15720
15979
|
ListNavigatorInternal.Screen,
|
|
15721
15980
|
{
|
|
15722
15981
|
name: "screen",
|
|
@@ -15731,7 +15990,7 @@ function ListNavigator({
|
|
|
15731
15990
|
const nestedItem = items.find(
|
|
15732
15991
|
(item) => isSubMenuItem(item) && item.id === route.params.id
|
|
15733
15992
|
);
|
|
15734
|
-
return /* @__PURE__ */
|
|
15993
|
+
return /* @__PURE__ */ import_react91.default.createElement(
|
|
15735
15994
|
ListMenu,
|
|
15736
15995
|
{
|
|
15737
15996
|
items: nestedItem?.items ?? items,
|
|
@@ -15756,18 +16015,19 @@ function ListNavigator({
|
|
|
15756
16015
|
|
|
15757
16016
|
// src/components/Message.tsx
|
|
15758
16017
|
var import_noya_utils17 = require("@noya-app/noya-utils");
|
|
15759
|
-
var
|
|
15760
|
-
var Message = (0,
|
|
15761
|
-
(0,
|
|
16018
|
+
var import_react92 = __toESM(require("react"));
|
|
16019
|
+
var Message = (0, import_react92.memo)(
|
|
16020
|
+
(0, import_react92.forwardRef)(function Message2({ role, children, user, avatarSize = INPUT_HEIGHT }, ref) {
|
|
15762
16021
|
const randomId = (0, import_noya_utils17.uuid)();
|
|
15763
|
-
const
|
|
15764
|
-
const
|
|
16022
|
+
const resolvedUserId = user?.userId ?? user?.connectionId ?? randomId;
|
|
16023
|
+
const userMessageBackgroundColor = colorFromString(resolvedUserId);
|
|
16024
|
+
const styles3 = (0, import_react92.useMemo)(
|
|
15765
16025
|
() => role === "user" ? {
|
|
15766
16026
|
backgroundColor: userMessageBackgroundColor
|
|
15767
16027
|
} : void 0,
|
|
15768
16028
|
[userMessageBackgroundColor, role]
|
|
15769
16029
|
);
|
|
15770
|
-
return /* @__PURE__ */
|
|
16030
|
+
return /* @__PURE__ */ import_react92.default.createElement(
|
|
15771
16031
|
"div",
|
|
15772
16032
|
{
|
|
15773
16033
|
className: cx(
|
|
@@ -15775,24 +16035,24 @@ var Message = (0, import_react91.memo)(
|
|
|
15775
16035
|
role === "user" ? "n-flex-row-reverse" : "n-flex-row"
|
|
15776
16036
|
)
|
|
15777
16037
|
},
|
|
15778
|
-
role === "assistant" ? /* @__PURE__ */
|
|
16038
|
+
role === "assistant" ? /* @__PURE__ */ import_react92.default.createElement(
|
|
15779
16039
|
Avatar,
|
|
15780
16040
|
{
|
|
15781
16041
|
name: "Assistant",
|
|
15782
16042
|
size: avatarSize,
|
|
15783
16043
|
backgroundColor: cssVars.colors.primaryPastel
|
|
15784
16044
|
},
|
|
15785
|
-
/* @__PURE__ */
|
|
15786
|
-
) : /* @__PURE__ */
|
|
16045
|
+
/* @__PURE__ */ import_react92.default.createElement(Logo, { style: { width: 15 }, fill: cssVars.colors.primary })
|
|
16046
|
+
) : /* @__PURE__ */ import_react92.default.createElement(
|
|
15787
16047
|
Avatar,
|
|
15788
16048
|
{
|
|
15789
|
-
userId:
|
|
16049
|
+
userId: resolvedUserId,
|
|
15790
16050
|
name: user?.name ?? "Anonymous",
|
|
15791
16051
|
image: user?.image,
|
|
15792
16052
|
size: avatarSize
|
|
15793
16053
|
}
|
|
15794
16054
|
),
|
|
15795
|
-
/* @__PURE__ */
|
|
16055
|
+
/* @__PURE__ */ import_react92.default.createElement(
|
|
15796
16056
|
"div",
|
|
15797
16057
|
{
|
|
15798
16058
|
className: cx(
|
|
@@ -15812,9 +16072,9 @@ var Message = (0, import_react91.memo)(
|
|
|
15812
16072
|
|
|
15813
16073
|
// src/components/pipeline/PipelineResultLayout.tsx
|
|
15814
16074
|
var import_noya_icons11 = require("@noya-app/noya-icons");
|
|
15815
|
-
var
|
|
16075
|
+
var import_react93 = __toESM(require("react"));
|
|
15816
16076
|
var PipelineResultLink = ({ url }) => {
|
|
15817
|
-
return /* @__PURE__ */
|
|
16077
|
+
return /* @__PURE__ */ import_react93.default.createElement("div", { className: "n-flex n-flex-col gap-0.5" }, /* @__PURE__ */ import_react93.default.createElement(
|
|
15818
16078
|
"a",
|
|
15819
16079
|
{
|
|
15820
16080
|
href: url,
|
|
@@ -15822,15 +16082,15 @@ var PipelineResultLink = ({ url }) => {
|
|
|
15822
16082
|
rel: "noopener noreferrer",
|
|
15823
16083
|
className: "n-flex n-text-primary hover:n-opacity-80 n-border n-border-divider n-rounded-md"
|
|
15824
16084
|
},
|
|
15825
|
-
/* @__PURE__ */
|
|
15826
|
-
/* @__PURE__ */
|
|
15827
|
-
/* @__PURE__ */
|
|
16085
|
+
/* @__PURE__ */ import_react93.default.createElement("div", { className: "n-flex n-gap-1 n-items-center n-p-2" }, /* @__PURE__ */ import_react93.default.createElement(import_noya_icons11.Link1Icon, { className: "n-w-[15px] n-h-[15px] n-flex-shrink-0" })),
|
|
16086
|
+
/* @__PURE__ */ import_react93.default.createElement(DividerVertical, null),
|
|
16087
|
+
/* @__PURE__ */ import_react93.default.createElement(Small, { className: "n-truncate n-p-2 n-flex-1" }, url)
|
|
15828
16088
|
));
|
|
15829
16089
|
};
|
|
15830
16090
|
var PipelineResultLayout = ({
|
|
15831
16091
|
children
|
|
15832
16092
|
}) => {
|
|
15833
|
-
return /* @__PURE__ */
|
|
16093
|
+
return /* @__PURE__ */ import_react93.default.createElement("div", { className: "n-flex n-flex-col n-gap-2" }, children);
|
|
15834
16094
|
};
|
|
15835
16095
|
function getPipelineResultLink(value) {
|
|
15836
16096
|
if (typeof value !== "object" || value === null) return void 0;
|
|
@@ -15844,7 +16104,7 @@ function getPipelineResultLink(value) {
|
|
|
15844
16104
|
}
|
|
15845
16105
|
|
|
15846
16106
|
// src/components/ResizableContainer.tsx
|
|
15847
|
-
var
|
|
16107
|
+
var import_react94 = __toESM(require("react"));
|
|
15848
16108
|
var ResizableContainer = ({
|
|
15849
16109
|
children,
|
|
15850
16110
|
minWidth,
|
|
@@ -15857,13 +16117,13 @@ var ResizableContainer = ({
|
|
|
15857
16117
|
onChangeWidth,
|
|
15858
16118
|
shouldResetWidthOnGestureEnd: shouldResetWidth
|
|
15859
16119
|
}) => {
|
|
15860
|
-
const containerRef = (0,
|
|
15861
|
-
const resizeableRef = (0,
|
|
15862
|
-
const handleRef = (0,
|
|
15863
|
-
const clickCounter = (0,
|
|
15864
|
-
const [width, setWidth] = (0,
|
|
15865
|
-
const [drag, setDrag] = (0,
|
|
15866
|
-
const handlePointerDown = (0,
|
|
16120
|
+
const containerRef = (0, import_react94.useRef)(null);
|
|
16121
|
+
const resizeableRef = (0, import_react94.useRef)(null);
|
|
16122
|
+
const handleRef = (0, import_react94.useRef)(null);
|
|
16123
|
+
const clickCounter = (0, import_react94.useRef)(createClickCounter({ delay: 250 }));
|
|
16124
|
+
const [width, setWidth] = (0, import_react94.useState)();
|
|
16125
|
+
const [drag, setDrag] = (0, import_react94.useState)();
|
|
16126
|
+
const handlePointerDown = (0, import_react94.useCallback)(
|
|
15867
16127
|
(event) => {
|
|
15868
16128
|
const containerWidth = containerRef.current?.getBoundingClientRect().width;
|
|
15869
16129
|
const resizeableWidth = resizeableRef.current?.getBoundingClientRect().width;
|
|
@@ -15881,7 +16141,7 @@ var ResizableContainer = ({
|
|
|
15881
16141
|
},
|
|
15882
16142
|
[maxWidth, minWidth]
|
|
15883
16143
|
);
|
|
15884
|
-
const handlePointerMove = (0,
|
|
16144
|
+
const handlePointerMove = (0, import_react94.useCallback)(
|
|
15885
16145
|
(event) => {
|
|
15886
16146
|
if (!drag) return;
|
|
15887
16147
|
const delta = event.clientX - drag.startX;
|
|
@@ -15897,7 +16157,7 @@ var ResizableContainer = ({
|
|
|
15897
16157
|
},
|
|
15898
16158
|
[drag, onChangeWidth]
|
|
15899
16159
|
);
|
|
15900
|
-
const handlePointerUp = (0,
|
|
16160
|
+
const handlePointerUp = (0, import_react94.useCallback)(
|
|
15901
16161
|
(event) => {
|
|
15902
16162
|
setDrag(void 0);
|
|
15903
16163
|
handleRef.current?.releasePointerCapture(event.pointerId);
|
|
@@ -15913,7 +16173,7 @@ var ResizableContainer = ({
|
|
|
15913
16173
|
},
|
|
15914
16174
|
[shouldResetWidth]
|
|
15915
16175
|
);
|
|
15916
|
-
return /* @__PURE__ */
|
|
16176
|
+
return /* @__PURE__ */ import_react94.default.createElement(
|
|
15917
16177
|
"div",
|
|
15918
16178
|
{
|
|
15919
16179
|
ref: containerRef,
|
|
@@ -15921,7 +16181,7 @@ var ResizableContainer = ({
|
|
|
15921
16181
|
style: { position: "relative", ...style2 },
|
|
15922
16182
|
className
|
|
15923
16183
|
},
|
|
15924
|
-
/* @__PURE__ */
|
|
16184
|
+
/* @__PURE__ */ import_react94.default.createElement(
|
|
15925
16185
|
"div",
|
|
15926
16186
|
{
|
|
15927
16187
|
ref: resizeableRef,
|
|
@@ -15932,7 +16192,7 @@ var ResizableContainer = ({
|
|
|
15932
16192
|
}
|
|
15933
16193
|
},
|
|
15934
16194
|
typeof children === "function" ? children({ width }) : children,
|
|
15935
|
-
/* @__PURE__ */
|
|
16195
|
+
/* @__PURE__ */ import_react94.default.createElement(
|
|
15936
16196
|
"div",
|
|
15937
16197
|
{
|
|
15938
16198
|
ref: handleRef,
|
|
@@ -15957,7 +16217,7 @@ var ResizableContainer = ({
|
|
|
15957
16217
|
onPointerUp: handlePointerUp,
|
|
15958
16218
|
onPointerCancel: handlePointerUp
|
|
15959
16219
|
},
|
|
15960
|
-
/* @__PURE__ */
|
|
16220
|
+
/* @__PURE__ */ import_react94.default.createElement(
|
|
15961
16221
|
"div",
|
|
15962
16222
|
{
|
|
15963
16223
|
style: {
|
|
@@ -15975,7 +16235,7 @@ var ResizableContainer = ({
|
|
|
15975
16235
|
}
|
|
15976
16236
|
)
|
|
15977
16237
|
),
|
|
15978
|
-
drag && /* @__PURE__ */
|
|
16238
|
+
drag && /* @__PURE__ */ import_react94.default.createElement(
|
|
15979
16239
|
"div",
|
|
15980
16240
|
{
|
|
15981
16241
|
style: {
|
|
@@ -15998,7 +16258,7 @@ function clamp5(value, min, max) {
|
|
|
15998
16258
|
|
|
15999
16259
|
// src/components/RingProgress.tsx
|
|
16000
16260
|
var import_noya_utils18 = require("@noya-app/noya-utils");
|
|
16001
|
-
var
|
|
16261
|
+
var React92 = __toESM(require("react"));
|
|
16002
16262
|
function RingProgress({
|
|
16003
16263
|
value,
|
|
16004
16264
|
dividedBy = 100,
|
|
@@ -16014,14 +16274,14 @@ function RingProgress({
|
|
|
16014
16274
|
const safeDivisor = dividedBy > 0 ? dividedBy : 1;
|
|
16015
16275
|
const clampedRaw = (0, import_noya_utils18.clamp)(value, 0, safeDivisor);
|
|
16016
16276
|
const clampedPercent = clampedRaw / safeDivisor * 100;
|
|
16017
|
-
const radius =
|
|
16018
|
-
const circumference =
|
|
16019
|
-
const dashOffset =
|
|
16277
|
+
const radius = React92.useMemo(() => (size - thickness) / 2, [size, thickness]);
|
|
16278
|
+
const circumference = React92.useMemo(() => 2 * Math.PI * radius, [radius]);
|
|
16279
|
+
const dashOffset = React92.useMemo(
|
|
16020
16280
|
() => (100 - clampedPercent) / 100 * circumference,
|
|
16021
16281
|
[circumference, clampedPercent]
|
|
16022
16282
|
);
|
|
16023
16283
|
const trackStroke = trackColor ?? "var(--n-input-background, rgba(0,0,0,0.08))";
|
|
16024
|
-
const colorClass =
|
|
16284
|
+
const colorClass = React92.useMemo(() => {
|
|
16025
16285
|
switch (colorScheme) {
|
|
16026
16286
|
case "primary":
|
|
16027
16287
|
return "n-stroke-primary";
|
|
@@ -16034,7 +16294,7 @@ function RingProgress({
|
|
|
16034
16294
|
return "n-stroke-text";
|
|
16035
16295
|
}
|
|
16036
16296
|
}, [colorScheme]);
|
|
16037
|
-
const computedStroke =
|
|
16297
|
+
const computedStroke = React92.useMemo(() => {
|
|
16038
16298
|
if (color) return color;
|
|
16039
16299
|
switch (colorScheme) {
|
|
16040
16300
|
case "primary":
|
|
@@ -16048,7 +16308,7 @@ function RingProgress({
|
|
|
16048
16308
|
return "var(--n-text, currentColor)";
|
|
16049
16309
|
}
|
|
16050
16310
|
}, [color, colorScheme]);
|
|
16051
|
-
return /* @__PURE__ */
|
|
16311
|
+
return /* @__PURE__ */ React92.createElement(
|
|
16052
16312
|
"span",
|
|
16053
16313
|
{
|
|
16054
16314
|
className: cx("n-inline-flex n-items-center n-justify-center", className),
|
|
@@ -16059,7 +16319,7 @@ function RingProgress({
|
|
|
16059
16319
|
"aria-valuemax": safeDivisor,
|
|
16060
16320
|
"aria-label": ariaLabel
|
|
16061
16321
|
},
|
|
16062
|
-
/* @__PURE__ */
|
|
16322
|
+
/* @__PURE__ */ React92.createElement(
|
|
16063
16323
|
"svg",
|
|
16064
16324
|
{
|
|
16065
16325
|
width: size,
|
|
@@ -16067,7 +16327,7 @@ function RingProgress({
|
|
|
16067
16327
|
viewBox: `0 0 ${size} ${size}`,
|
|
16068
16328
|
style: { display: "block" }
|
|
16069
16329
|
},
|
|
16070
|
-
/* @__PURE__ */
|
|
16330
|
+
/* @__PURE__ */ React92.createElement(
|
|
16071
16331
|
"circle",
|
|
16072
16332
|
{
|
|
16073
16333
|
cx: size / 2,
|
|
@@ -16078,7 +16338,7 @@ function RingProgress({
|
|
|
16078
16338
|
strokeWidth: thickness
|
|
16079
16339
|
}
|
|
16080
16340
|
),
|
|
16081
|
-
/* @__PURE__ */
|
|
16341
|
+
/* @__PURE__ */ React92.createElement(
|
|
16082
16342
|
"circle",
|
|
16083
16343
|
{
|
|
16084
16344
|
cx: size / 2,
|
|
@@ -16102,49 +16362,13 @@ function RingProgress({
|
|
|
16102
16362
|
}
|
|
16103
16363
|
|
|
16104
16364
|
// src/components/ScrollableSidebar.tsx
|
|
16105
|
-
var
|
|
16365
|
+
var import_react95 = __toESM(require("react"));
|
|
16106
16366
|
function ScrollableSidebar({ children }) {
|
|
16107
|
-
return /* @__PURE__ */
|
|
16108
|
-
}
|
|
16109
|
-
|
|
16110
|
-
// src/components/ScrollArea2.tsx
|
|
16111
|
-
var import_scroll_area = require("@base-ui-components/react/scroll-area");
|
|
16112
|
-
var React92 = __toESM(require("react"));
|
|
16113
|
-
var SCROLLBAR_STATE_CLASSES = "scroll-component n-opacity-0 n-transition-opacity n-delay-300 n-pointer-events-none data-[hovering]:n-opacity-100 data-[hovering]:n-delay-0 data-[hovering]:n-duration-75 data-[hovering]:n-pointer-events-auto data-[scrolling]:n-opacity-100 data-[scrolling]:n-delay-0 data-[scrolling]:n-duration-75 data-[scrolling]:n-pointer-events-auto";
|
|
16114
|
-
var SCROLLBAR_TRACK_VERTICAL = "n-m-1 n-w-1 flex n-justify-center n-rounded-md n-bg-divider-subtle";
|
|
16115
|
-
var SCROLLBAR_TRACK_HORIZONTAL = "n-m-1 n-h-1 flex n-justify-center n-rounded-md n-bg-divider-subtle";
|
|
16116
|
-
var SCROLLBAR_THUMB_VERTICAL = "scroll-component n-w-full n-rounded n-bg-scrollbar";
|
|
16117
|
-
var SCROLLBAR_THUMB_HORIZONTAL = "scroll-component n-h-full n-rounded n-bg-scrollbar";
|
|
16118
|
-
function ScrollArea22({
|
|
16119
|
-
children,
|
|
16120
|
-
className,
|
|
16121
|
-
viewportClassName,
|
|
16122
|
-
orientation = "vertical"
|
|
16123
|
-
}) {
|
|
16124
|
-
return /* @__PURE__ */ React92.createElement(import_scroll_area.ScrollArea.Root, { className: cx("n-relative", className) }, /* @__PURE__ */ React92.createElement(
|
|
16125
|
-
import_scroll_area.ScrollArea.Viewport,
|
|
16126
|
-
{
|
|
16127
|
-
className: cx("n-h-full n-overscroll-contain", viewportClassName)
|
|
16128
|
-
},
|
|
16129
|
-
children
|
|
16130
|
-
), (orientation === "vertical" || orientation === "both") && /* @__PURE__ */ React92.createElement(
|
|
16131
|
-
import_scroll_area.ScrollArea.Scrollbar,
|
|
16132
|
-
{
|
|
16133
|
-
className: cx(SCROLLBAR_STATE_CLASSES, SCROLLBAR_TRACK_VERTICAL)
|
|
16134
|
-
},
|
|
16135
|
-
/* @__PURE__ */ React92.createElement(import_scroll_area.ScrollArea.Thumb, { className: SCROLLBAR_THUMB_VERTICAL })
|
|
16136
|
-
), (orientation === "horizontal" || orientation === "both") && /* @__PURE__ */ React92.createElement(
|
|
16137
|
-
import_scroll_area.ScrollArea.Scrollbar,
|
|
16138
|
-
{
|
|
16139
|
-
orientation: "horizontal",
|
|
16140
|
-
className: cx(SCROLLBAR_STATE_CLASSES, SCROLLBAR_TRACK_HORIZONTAL)
|
|
16141
|
-
},
|
|
16142
|
-
/* @__PURE__ */ React92.createElement(import_scroll_area.ScrollArea.Thumb, { className: SCROLLBAR_THUMB_HORIZONTAL })
|
|
16143
|
-
), orientation === "both" && /* @__PURE__ */ React92.createElement(import_scroll_area.ScrollArea.Corner, null));
|
|
16367
|
+
return /* @__PURE__ */ import_react95.default.createElement("div", { className: "n-relative n-flex n-flex-col n-flex-1 n-max-h-full" }, /* @__PURE__ */ import_react95.default.createElement(ScrollArea, null, children));
|
|
16144
16368
|
}
|
|
16145
16369
|
|
|
16146
16370
|
// src/components/Section.tsx
|
|
16147
|
-
var
|
|
16371
|
+
var import_react96 = __toESM(require("react"));
|
|
16148
16372
|
var titleIconStyle = {
|
|
16149
16373
|
marginRight: "6px",
|
|
16150
16374
|
alignSelf: "flex-start",
|
|
@@ -16165,14 +16389,14 @@ function SectionHeader({
|
|
|
16165
16389
|
titleClassName,
|
|
16166
16390
|
onClickTitle
|
|
16167
16391
|
}) {
|
|
16168
|
-
const headerStyle = (0,
|
|
16392
|
+
const headerStyle = (0, import_react96.useMemo)(
|
|
16169
16393
|
() => ({
|
|
16170
16394
|
minHeight: INPUT_HEIGHT,
|
|
16171
16395
|
...style2
|
|
16172
16396
|
}),
|
|
16173
16397
|
[style2]
|
|
16174
16398
|
);
|
|
16175
|
-
const titleElement = title ? /* @__PURE__ */
|
|
16399
|
+
const titleElement = title ? /* @__PURE__ */ import_react96.default.createElement(
|
|
16176
16400
|
InspectorPrimitives_exports.Title,
|
|
16177
16401
|
{
|
|
16178
16402
|
$textStyle: titleTextStyle,
|
|
@@ -16180,16 +16404,16 @@ function SectionHeader({
|
|
|
16180
16404
|
},
|
|
16181
16405
|
title
|
|
16182
16406
|
) : null;
|
|
16183
|
-
return /* @__PURE__ */
|
|
16407
|
+
return /* @__PURE__ */ import_react96.default.createElement(
|
|
16184
16408
|
InspectorPrimitives_exports.SectionHeader,
|
|
16185
16409
|
{
|
|
16186
16410
|
style: headerStyle,
|
|
16187
16411
|
className
|
|
16188
16412
|
},
|
|
16189
|
-
titleIcon && /* @__PURE__ */
|
|
16190
|
-
titleElement && /* @__PURE__ */
|
|
16191
|
-
headerSeparator === "space" && /* @__PURE__ */
|
|
16192
|
-
headerSeparator === "dot" && /* @__PURE__ */
|
|
16413
|
+
titleIcon && /* @__PURE__ */ import_react96.default.createElement("div", { style: titleIconStyle, className: textStyles[titleTextStyle] }, "\u200B", renderIcon(titleIcon)),
|
|
16414
|
+
titleElement && /* @__PURE__ */ import_react96.default.createElement(import_react96.default.Fragment, null, onClickTitle ? /* @__PURE__ */ import_react96.default.createElement(Button, { variant: "none", onClick: onClickTitle }, titleElement) : titleElement),
|
|
16415
|
+
headerSeparator === "space" && /* @__PURE__ */ import_react96.default.createElement(Spacer.Horizontal, null),
|
|
16416
|
+
headerSeparator === "dot" && /* @__PURE__ */ import_react96.default.createElement(
|
|
16193
16417
|
Text,
|
|
16194
16418
|
{
|
|
16195
16419
|
variant: titleTextStyle,
|
|
@@ -16215,7 +16439,7 @@ var SectionInternal = ({
|
|
|
16215
16439
|
titleClassName,
|
|
16216
16440
|
headerStyle: headerStyleProp
|
|
16217
16441
|
}) => {
|
|
16218
|
-
const style2 = (0,
|
|
16442
|
+
const style2 = (0, import_react96.useMemo)(
|
|
16219
16443
|
() => ({
|
|
16220
16444
|
display: "flex",
|
|
16221
16445
|
flexDirection: "column",
|
|
@@ -16226,15 +16450,15 @@ var SectionInternal = ({
|
|
|
16226
16450
|
}),
|
|
16227
16451
|
[titleTextStyle, title, extraPadding, styleProp]
|
|
16228
16452
|
);
|
|
16229
|
-
const hasChildren =
|
|
16230
|
-
const headerStyle = (0,
|
|
16453
|
+
const hasChildren = import_react96.default.Children.toArray(children).some((child) => !!child);
|
|
16454
|
+
const headerStyle = (0, import_react96.useMemo)(
|
|
16231
16455
|
() => ({
|
|
16232
16456
|
marginBottom: hasChildren ? "4px" : void 0,
|
|
16233
16457
|
...headerStyleProp
|
|
16234
16458
|
}),
|
|
16235
16459
|
[hasChildren, headerStyleProp]
|
|
16236
16460
|
);
|
|
16237
|
-
return /* @__PURE__ */
|
|
16461
|
+
return /* @__PURE__ */ import_react96.default.createElement("div", { style: style2, className }, (title || titleIcon || right) && /* @__PURE__ */ import_react96.default.createElement(
|
|
16238
16462
|
SectionHeader,
|
|
16239
16463
|
{
|
|
16240
16464
|
style: headerStyle,
|
|
@@ -16246,7 +16470,7 @@ var SectionInternal = ({
|
|
|
16246
16470
|
right,
|
|
16247
16471
|
headerSeparator
|
|
16248
16472
|
}
|
|
16249
|
-
), /* @__PURE__ */
|
|
16473
|
+
), /* @__PURE__ */ import_react96.default.createElement(IndentContext.Provider, { value: 0 }, children));
|
|
16250
16474
|
};
|
|
16251
16475
|
var ExpandableSection = ({
|
|
16252
16476
|
storageKey,
|
|
@@ -16259,12 +16483,12 @@ var ExpandableSection = ({
|
|
|
16259
16483
|
initialVisibility
|
|
16260
16484
|
);
|
|
16261
16485
|
const expanded = visibility === "show";
|
|
16262
|
-
return /* @__PURE__ */
|
|
16486
|
+
return /* @__PURE__ */ import_react96.default.createElement(
|
|
16263
16487
|
SectionInternal,
|
|
16264
16488
|
{
|
|
16265
16489
|
...props,
|
|
16266
16490
|
right: !props.hideRightWhenCollapsed || expanded ? props.right : null,
|
|
16267
|
-
title: /* @__PURE__ */
|
|
16491
|
+
title: /* @__PURE__ */ import_react96.default.createElement("div", { className: "n-flex n-gap-1 n-items-center" }, props.title, /* @__PURE__ */ import_react96.default.createElement(
|
|
16268
16492
|
IconButton,
|
|
16269
16493
|
{
|
|
16270
16494
|
iconName: expanded ? "ChevronDownIcon2" : "ChevronRightIcon2",
|
|
@@ -16275,20 +16499,20 @@ var ExpandableSection = ({
|
|
|
16275
16499
|
expanded && props.children
|
|
16276
16500
|
);
|
|
16277
16501
|
};
|
|
16278
|
-
var Section = (0,
|
|
16502
|
+
var Section = (0, import_react96.memo)(function InspectorSection({
|
|
16279
16503
|
storageKey,
|
|
16280
16504
|
...props
|
|
16281
16505
|
}) {
|
|
16282
|
-
return storageKey ? /* @__PURE__ */
|
|
16506
|
+
return storageKey ? /* @__PURE__ */ import_react96.default.createElement(ExpandableSection, { ...props, storageKey }) : /* @__PURE__ */ import_react96.default.createElement(SectionInternal, { ...props });
|
|
16283
16507
|
});
|
|
16284
16508
|
|
|
16285
16509
|
// src/components/SegmentedControl.tsx
|
|
16286
16510
|
var import_radix_ui12 = require("radix-ui");
|
|
16287
|
-
var
|
|
16288
|
-
var SegmentedControlContext = (0,
|
|
16511
|
+
var import_react97 = __toESM(require("react"));
|
|
16512
|
+
var SegmentedControlContext = (0, import_react97.createContext)({
|
|
16289
16513
|
colorScheme: "primary"
|
|
16290
16514
|
});
|
|
16291
|
-
var SegmentedControlItem = (0,
|
|
16515
|
+
var SegmentedControlItem = (0, import_react97.forwardRef)(function SegmentedControlItem2({
|
|
16292
16516
|
value,
|
|
16293
16517
|
tooltip,
|
|
16294
16518
|
title,
|
|
@@ -16298,8 +16522,8 @@ var SegmentedControlItem = (0, import_react96.forwardRef)(function SegmentedCont
|
|
|
16298
16522
|
variant = "default",
|
|
16299
16523
|
...props
|
|
16300
16524
|
}, forwardedRef) {
|
|
16301
|
-
const { colorScheme } = (0,
|
|
16302
|
-
const itemElement = /* @__PURE__ */
|
|
16525
|
+
const { colorScheme } = (0, import_react97.useContext)(SegmentedControlContext);
|
|
16526
|
+
const itemElement = /* @__PURE__ */ import_react97.default.createElement(
|
|
16303
16527
|
import_radix_ui12.ToggleGroup.Item,
|
|
16304
16528
|
{
|
|
16305
16529
|
ref: forwardedRef,
|
|
@@ -16330,7 +16554,7 @@ var SegmentedControlItem = (0, import_react96.forwardRef)(function SegmentedCont
|
|
|
16330
16554
|
),
|
|
16331
16555
|
...props
|
|
16332
16556
|
},
|
|
16333
|
-
/* @__PURE__ */
|
|
16557
|
+
/* @__PURE__ */ import_react97.default.createElement(
|
|
16334
16558
|
"span",
|
|
16335
16559
|
{
|
|
16336
16560
|
className: cx(
|
|
@@ -16342,7 +16566,7 @@ var SegmentedControlItem = (0, import_react96.forwardRef)(function SegmentedCont
|
|
|
16342
16566
|
title
|
|
16343
16567
|
)
|
|
16344
16568
|
);
|
|
16345
|
-
return tooltip ? /* @__PURE__ */
|
|
16569
|
+
return tooltip ? /* @__PURE__ */ import_react97.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
|
|
16346
16570
|
});
|
|
16347
16571
|
var SegmentedControl = memoGeneric(function SegmentedControl2({
|
|
16348
16572
|
id: idProp,
|
|
@@ -16355,16 +16579,16 @@ var SegmentedControl = memoGeneric(function SegmentedControl2({
|
|
|
16355
16579
|
className,
|
|
16356
16580
|
style: style2
|
|
16357
16581
|
}) {
|
|
16358
|
-
const contextValue = (0,
|
|
16582
|
+
const contextValue = (0, import_react97.useMemo)(() => ({ colorScheme }), [colorScheme]);
|
|
16359
16583
|
const { fieldId: id } = useLabel({ fieldId: idProp });
|
|
16360
|
-
const handleValueChange = (0,
|
|
16584
|
+
const handleValueChange = (0, import_react97.useCallback)(
|
|
16361
16585
|
(value2) => {
|
|
16362
16586
|
if (!allowEmpty && !value2) return;
|
|
16363
16587
|
onValueChange?.(value2);
|
|
16364
16588
|
},
|
|
16365
16589
|
[allowEmpty, onValueChange]
|
|
16366
16590
|
);
|
|
16367
|
-
return /* @__PURE__ */
|
|
16591
|
+
return /* @__PURE__ */ import_react97.default.createElement(SegmentedControlContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react97.default.createElement(
|
|
16368
16592
|
import_radix_ui12.ToggleGroup.Root,
|
|
16369
16593
|
{
|
|
16370
16594
|
id,
|
|
@@ -16383,14 +16607,14 @@ var SegmentedControl = memoGeneric(function SegmentedControl2({
|
|
|
16383
16607
|
gridTemplateColumns: `repeat(${items.length}, 1fr)`
|
|
16384
16608
|
}
|
|
16385
16609
|
},
|
|
16386
|
-
items.map((item, index) => /* @__PURE__ */
|
|
16610
|
+
items.map((item, index) => /* @__PURE__ */ import_react97.default.createElement(SegmentedControlItem, { key: index, ...item, variant }))
|
|
16387
16611
|
));
|
|
16388
16612
|
});
|
|
16389
16613
|
|
|
16390
16614
|
// src/components/SelectionToolbar.tsx
|
|
16391
16615
|
var PopperPrimitive = __toESM(require("@radix-ui/react-popper"));
|
|
16392
|
-
var
|
|
16393
|
-
var
|
|
16616
|
+
var import_react98 = __toESM(require("react"));
|
|
16617
|
+
var import_react_dom4 = require("react-dom");
|
|
16394
16618
|
var createVirtualElement = (rect) => ({
|
|
16395
16619
|
getBoundingClientRect: () => ({
|
|
16396
16620
|
width: rect.width,
|
|
@@ -16404,7 +16628,7 @@ var createVirtualElement = (rect) => ({
|
|
|
16404
16628
|
toJSON: () => null
|
|
16405
16629
|
})
|
|
16406
16630
|
});
|
|
16407
|
-
var SelectionToolbarContainer = (0,
|
|
16631
|
+
var SelectionToolbarContainer = (0, import_react98.memo)(
|
|
16408
16632
|
function SelectionToolbarContainer2({
|
|
16409
16633
|
rect,
|
|
16410
16634
|
children,
|
|
@@ -16418,15 +16642,15 @@ var SelectionToolbarContainer = (0, import_react97.memo)(
|
|
|
16418
16642
|
transitionDuration = 0.2
|
|
16419
16643
|
}) {
|
|
16420
16644
|
const portalScopeId = usePortalScopeId();
|
|
16421
|
-
const containerRef =
|
|
16645
|
+
const containerRef = import_react98.default.useRef(null);
|
|
16422
16646
|
const size = useSize(containerRef, "width");
|
|
16423
|
-
const virtualRef = (0,
|
|
16647
|
+
const virtualRef = (0, import_react98.useMemo)(
|
|
16424
16648
|
() => ({
|
|
16425
16649
|
current: createVirtualElement(rect)
|
|
16426
16650
|
}),
|
|
16427
16651
|
[rect]
|
|
16428
16652
|
);
|
|
16429
|
-
const popperContent = /* @__PURE__ */
|
|
16653
|
+
const popperContent = /* @__PURE__ */ import_react98.default.createElement(
|
|
16430
16654
|
PopperPrimitive.Content,
|
|
16431
16655
|
{
|
|
16432
16656
|
...portalScopeProps(portalScopeId),
|
|
@@ -16444,7 +16668,7 @@ var SelectionToolbarContainer = (0, import_react97.memo)(
|
|
|
16444
16668
|
[cssVarNames.colors.buttonBackground]: "transparent"
|
|
16445
16669
|
}
|
|
16446
16670
|
},
|
|
16447
|
-
/* @__PURE__ */
|
|
16671
|
+
/* @__PURE__ */ import_react98.default.createElement(
|
|
16448
16672
|
"div",
|
|
16449
16673
|
{
|
|
16450
16674
|
ref: containerRef,
|
|
@@ -16461,14 +16685,14 @@ var SelectionToolbarContainer = (0, import_react97.memo)(
|
|
|
16461
16685
|
children
|
|
16462
16686
|
)
|
|
16463
16687
|
);
|
|
16464
|
-
return /* @__PURE__ */
|
|
16688
|
+
return /* @__PURE__ */ import_react98.default.createElement(PopperPrimitive.Root, null, /* @__PURE__ */ import_react98.default.createElement(PopperPrimitive.Anchor, { virtualRef }), portalContainer ? (0, import_react_dom4.createPortal)(popperContent, portalContainer) : popperContent);
|
|
16465
16689
|
}
|
|
16466
16690
|
);
|
|
16467
16691
|
|
|
16468
16692
|
// src/components/SelectMenu.tsx
|
|
16469
16693
|
var import_noya_icons12 = require("@noya-app/noya-icons");
|
|
16470
16694
|
var import_radix_ui13 = require("radix-ui");
|
|
16471
|
-
var
|
|
16695
|
+
var import_react99 = __toESM(require("react"));
|
|
16472
16696
|
var readOnlyStyle = {
|
|
16473
16697
|
justifyContent: "flex-start",
|
|
16474
16698
|
textAlign: "left"
|
|
@@ -16491,7 +16715,7 @@ var SelectMenuTrigger = memoGeneric(function SelectMenuTrigger2({
|
|
|
16491
16715
|
fieldId: props.id
|
|
16492
16716
|
});
|
|
16493
16717
|
const labelType = useLabelType();
|
|
16494
|
-
return /* @__PURE__ */
|
|
16718
|
+
return /* @__PURE__ */ import_react99.default.createElement(import_radix_ui13.Select.SelectTrigger, { asChild: true, onFocus, onBlur }, /* @__PURE__ */ import_react99.default.createElement(
|
|
16495
16719
|
Button,
|
|
16496
16720
|
{
|
|
16497
16721
|
id,
|
|
@@ -16503,10 +16727,10 @@ var SelectMenuTrigger = memoGeneric(function SelectMenuTrigger2({
|
|
|
16503
16727
|
),
|
|
16504
16728
|
disabled
|
|
16505
16729
|
},
|
|
16506
|
-
icon && /* @__PURE__ */
|
|
16507
|
-
label && labelType === "inset" && /* @__PURE__ */
|
|
16508
|
-
/* @__PURE__ */
|
|
16509
|
-
/* @__PURE__ */
|
|
16730
|
+
icon && /* @__PURE__ */ import_react99.default.createElement("span", { className: "n-pr-1.5" }, renderIcon(icon)),
|
|
16731
|
+
label && labelType === "inset" && /* @__PURE__ */ import_react99.default.createElement("div", { className: insetEndStyles }, /* @__PURE__ */ import_react99.default.createElement(Label, { className: "n-pr-4 n-text-text-disabled", htmlFor: id }, label)),
|
|
16732
|
+
/* @__PURE__ */ import_react99.default.createElement("span", { className: "n-flex-1 n-flex" }, /* @__PURE__ */ import_react99.default.createElement(import_radix_ui13.Select.Value, { placeholder })),
|
|
16733
|
+
/* @__PURE__ */ import_react99.default.createElement(
|
|
16510
16734
|
import_noya_icons12.DropdownChevronIcon,
|
|
16511
16735
|
{
|
|
16512
16736
|
className: cx(
|
|
@@ -16543,7 +16767,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16543
16767
|
(item) => isSelectableMenuItem(item) && item.value === value
|
|
16544
16768
|
);
|
|
16545
16769
|
const icon = selectedItem?.icon;
|
|
16546
|
-
const [internalOpen, setInternalOpen] = (0,
|
|
16770
|
+
const [internalOpen, setInternalOpen] = (0, import_react99.useState)(open);
|
|
16547
16771
|
const { label, fieldId: id } = useLabel({
|
|
16548
16772
|
label: props.label,
|
|
16549
16773
|
fieldId: props.id
|
|
@@ -16554,8 +16778,8 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16554
16778
|
}
|
|
16555
16779
|
setInternalOpen(open2);
|
|
16556
16780
|
};
|
|
16557
|
-
const readOnlyButton = (0,
|
|
16558
|
-
() => /* @__PURE__ */
|
|
16781
|
+
const readOnlyButton = (0, import_react99.useMemo)(
|
|
16782
|
+
() => /* @__PURE__ */ import_react99.default.createElement(
|
|
16559
16783
|
Button,
|
|
16560
16784
|
{
|
|
16561
16785
|
id,
|
|
@@ -16565,11 +16789,11 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16565
16789
|
disabled
|
|
16566
16790
|
},
|
|
16567
16791
|
icon && renderIcon(icon),
|
|
16568
|
-
/* @__PURE__ */
|
|
16792
|
+
/* @__PURE__ */ import_react99.default.createElement("span", { className: "n-flex n-flex-1" }, selectedItem?.title ?? value)
|
|
16569
16793
|
),
|
|
16570
16794
|
[icon, id, style2, className, disabled, value, selectedItem]
|
|
16571
16795
|
);
|
|
16572
|
-
const contentStyle = (0,
|
|
16796
|
+
const contentStyle = (0, import_react99.useMemo)(() => {
|
|
16573
16797
|
return {
|
|
16574
16798
|
width: "var(--radix-select-trigger-width)",
|
|
16575
16799
|
minWidth: "max-content",
|
|
@@ -16577,7 +16801,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16577
16801
|
...contentStyleProp
|
|
16578
16802
|
};
|
|
16579
16803
|
}, [contentStyleProp]);
|
|
16580
|
-
const content = /* @__PURE__ */
|
|
16804
|
+
const content = /* @__PURE__ */ import_react99.default.createElement(
|
|
16581
16805
|
import_radix_ui13.Select.Root,
|
|
16582
16806
|
{
|
|
16583
16807
|
value,
|
|
@@ -16585,7 +16809,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16585
16809
|
open,
|
|
16586
16810
|
onOpenChange: handleOpenChange
|
|
16587
16811
|
},
|
|
16588
|
-
/* @__PURE__ */
|
|
16812
|
+
/* @__PURE__ */ import_react99.default.createElement(
|
|
16589
16813
|
SelectMenuTrigger,
|
|
16590
16814
|
{
|
|
16591
16815
|
id,
|
|
@@ -16600,7 +16824,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16600
16824
|
label
|
|
16601
16825
|
}
|
|
16602
16826
|
),
|
|
16603
|
-
/* @__PURE__ */
|
|
16827
|
+
/* @__PURE__ */ import_react99.default.createElement(import_radix_ui13.Select.Portal, null, /* @__PURE__ */ import_react99.default.createElement(
|
|
16604
16828
|
import_radix_ui13.Select.Content,
|
|
16605
16829
|
{
|
|
16606
16830
|
...portalScopeProps(portalScopeId),
|
|
@@ -16611,14 +16835,14 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16611
16835
|
align: "center",
|
|
16612
16836
|
style: contentStyle
|
|
16613
16837
|
},
|
|
16614
|
-
/* @__PURE__ */
|
|
16838
|
+
/* @__PURE__ */ import_react99.default.createElement(import_radix_ui13.Select.ScrollUpButton, { className: scrollButtonStyles }, /* @__PURE__ */ import_react99.default.createElement(
|
|
16615
16839
|
import_noya_icons12.ChevronUpIcon,
|
|
16616
16840
|
{
|
|
16617
16841
|
className: cx("n-transition-transform n-duration-100")
|
|
16618
16842
|
}
|
|
16619
16843
|
)),
|
|
16620
|
-
/* @__PURE__ */
|
|
16621
|
-
/* @__PURE__ */
|
|
16844
|
+
/* @__PURE__ */ import_react99.default.createElement(import_radix_ui13.Select.Viewport, null, /* @__PURE__ */ import_react99.default.createElement(MenuViewport, { items, Components: Components3 })),
|
|
16845
|
+
/* @__PURE__ */ import_react99.default.createElement(import_radix_ui13.Select.ScrollDownButton, { className: scrollButtonStyles }, /* @__PURE__ */ import_react99.default.createElement(import_noya_icons12.ChevronDownIcon, null))
|
|
16622
16846
|
))
|
|
16623
16847
|
);
|
|
16624
16848
|
return readOnly ? readOnlyButton : content;
|
|
@@ -16626,12 +16850,12 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16626
16850
|
|
|
16627
16851
|
// src/components/Slider.tsx
|
|
16628
16852
|
var import_radix_ui14 = require("radix-ui");
|
|
16629
|
-
var
|
|
16853
|
+
var import_react100 = __toESM(require("react"));
|
|
16630
16854
|
var THUMB_WIDTH = 8;
|
|
16631
16855
|
var thumbStyle = {
|
|
16632
16856
|
width: THUMB_WIDTH
|
|
16633
16857
|
};
|
|
16634
|
-
var Slider = (0,
|
|
16858
|
+
var Slider = (0, import_react100.memo)(function Slider2({
|
|
16635
16859
|
style: style2,
|
|
16636
16860
|
className,
|
|
16637
16861
|
value,
|
|
@@ -16645,21 +16869,21 @@ var Slider = (0, import_react99.memo)(function Slider2({
|
|
|
16645
16869
|
readOnly = false,
|
|
16646
16870
|
...props
|
|
16647
16871
|
}) {
|
|
16648
|
-
const arrayValue = (0,
|
|
16872
|
+
const arrayValue = (0, import_react100.useMemo)(
|
|
16649
16873
|
() => [Math.min(Math.max(value, min), max)],
|
|
16650
16874
|
[value, min, max]
|
|
16651
16875
|
);
|
|
16652
16876
|
const { fieldId: id } = useLabel({
|
|
16653
16877
|
fieldId: props.id
|
|
16654
16878
|
});
|
|
16655
|
-
const handleValueChange = (0,
|
|
16879
|
+
const handleValueChange = (0, import_react100.useCallback)(
|
|
16656
16880
|
(arrayValue2) => {
|
|
16657
16881
|
onValueChange(arrayValue2[0]);
|
|
16658
16882
|
},
|
|
16659
16883
|
[onValueChange]
|
|
16660
16884
|
);
|
|
16661
16885
|
const ratio = (arrayValue[0] - min) / (max - min);
|
|
16662
|
-
return /* @__PURE__ */
|
|
16886
|
+
return /* @__PURE__ */ import_react100.default.createElement(
|
|
16663
16887
|
import_radix_ui14.Slider.Root,
|
|
16664
16888
|
{
|
|
16665
16889
|
min,
|
|
@@ -16677,7 +16901,7 @@ var Slider = (0, import_react99.memo)(function Slider2({
|
|
|
16677
16901
|
onBlur,
|
|
16678
16902
|
disabled: readOnly
|
|
16679
16903
|
},
|
|
16680
|
-
/* @__PURE__ */
|
|
16904
|
+
/* @__PURE__ */ import_react100.default.createElement("div", { className: "n-relative n-flex-grow n-h-[3px] n-overflow-hidden" }, /* @__PURE__ */ import_react100.default.createElement(
|
|
16681
16905
|
"div",
|
|
16682
16906
|
{
|
|
16683
16907
|
className: "n-absolute n-h-full n-rounded-l n-bg-slider-active-background",
|
|
@@ -16686,7 +16910,7 @@ var Slider = (0, import_react99.memo)(function Slider2({
|
|
|
16686
16910
|
width: `calc(${ratio * 100}% - ${ratio * 8}px - 2px)`
|
|
16687
16911
|
}
|
|
16688
16912
|
}
|
|
16689
|
-
), /* @__PURE__ */
|
|
16913
|
+
), /* @__PURE__ */ import_react100.default.createElement(
|
|
16690
16914
|
"div",
|
|
16691
16915
|
{
|
|
16692
16916
|
className: "n-absolute n-h-full n-rounded-r n-bg-input-background",
|
|
@@ -16696,7 +16920,7 @@ var Slider = (0, import_react99.memo)(function Slider2({
|
|
|
16696
16920
|
}
|
|
16697
16921
|
}
|
|
16698
16922
|
)),
|
|
16699
|
-
/* @__PURE__ */
|
|
16923
|
+
/* @__PURE__ */ import_react100.default.createElement(
|
|
16700
16924
|
import_radix_ui14.Slider.Thumb,
|
|
16701
16925
|
{
|
|
16702
16926
|
style: thumbStyle,
|
|
@@ -16714,28 +16938,28 @@ var Slider = (0, import_react99.memo)(function Slider2({
|
|
|
16714
16938
|
});
|
|
16715
16939
|
|
|
16716
16940
|
// src/components/sorting/createSharedDrag.tsx
|
|
16717
|
-
var
|
|
16941
|
+
var React99 = __toESM(require("react"));
|
|
16718
16942
|
function createSharedDrag() {
|
|
16719
|
-
const dragRegistrationContext =
|
|
16720
|
-
const activeDragContext =
|
|
16943
|
+
const dragRegistrationContext = React99.createContext(null);
|
|
16944
|
+
const activeDragContext = React99.createContext(
|
|
16721
16945
|
null
|
|
16722
16946
|
);
|
|
16723
16947
|
const sharedDragProps = {
|
|
16724
16948
|
dragRegistrationContext,
|
|
16725
16949
|
activeDragContext
|
|
16726
16950
|
};
|
|
16727
|
-
const Provider = (props) => /* @__PURE__ */
|
|
16951
|
+
const Provider = (props) => /* @__PURE__ */ React99.createElement(SharedDragProvider, { sharedDragProps, ...props });
|
|
16728
16952
|
return {
|
|
16729
16953
|
Provider,
|
|
16730
|
-
Sortable: (props) => /* @__PURE__ */
|
|
16954
|
+
Sortable: (props) => /* @__PURE__ */ React99.createElement(Sortable, { sharedDragProps, ...props }),
|
|
16731
16955
|
props: sharedDragProps
|
|
16732
16956
|
};
|
|
16733
16957
|
}
|
|
16734
16958
|
|
|
16735
16959
|
// src/components/Stepper.tsx
|
|
16736
16960
|
var import_noya_utils19 = require("@noya-app/noya-utils");
|
|
16737
|
-
var
|
|
16738
|
-
var Stepper = (0,
|
|
16961
|
+
var import_react101 = __toESM(require("react"));
|
|
16962
|
+
var Stepper = (0, import_react101.memo)(function Stepper2({
|
|
16739
16963
|
style: style2,
|
|
16740
16964
|
className,
|
|
16741
16965
|
value: valueProp,
|
|
@@ -16752,17 +16976,17 @@ var Stepper = (0, import_react100.memo)(function Stepper2({
|
|
|
16752
16976
|
const { fieldId: id } = useLabel({
|
|
16753
16977
|
fieldId: props.id
|
|
16754
16978
|
});
|
|
16755
|
-
const value = (0,
|
|
16979
|
+
const value = (0, import_react101.useMemo)(() => {
|
|
16756
16980
|
return (0, import_noya_utils19.clamp)(valueProp, min, max);
|
|
16757
16981
|
}, [valueProp, min, max]);
|
|
16758
|
-
const handleValueChange = (0,
|
|
16982
|
+
const handleValueChange = (0, import_react101.useCallback)(
|
|
16759
16983
|
(value2) => {
|
|
16760
16984
|
const newValue = (0, import_noya_utils19.clamp)(value2, min, max);
|
|
16761
16985
|
onValueChange(newValue);
|
|
16762
16986
|
},
|
|
16763
16987
|
[onValueChange, min, max]
|
|
16764
16988
|
);
|
|
16765
|
-
return /* @__PURE__ */
|
|
16989
|
+
return /* @__PURE__ */ import_react101.default.createElement(
|
|
16766
16990
|
"div",
|
|
16767
16991
|
{
|
|
16768
16992
|
id,
|
|
@@ -16774,7 +16998,7 @@ var Stepper = (0, import_react100.memo)(function Stepper2({
|
|
|
16774
16998
|
onFocus,
|
|
16775
16999
|
onBlur
|
|
16776
17000
|
},
|
|
16777
|
-
/* @__PURE__ */
|
|
17001
|
+
/* @__PURE__ */ import_react101.default.createElement(
|
|
16778
17002
|
InputField2.Root,
|
|
16779
17003
|
{
|
|
16780
17004
|
className: "n-flex-1",
|
|
@@ -16782,7 +17006,7 @@ var Stepper = (0, import_react100.memo)(function Stepper2({
|
|
|
16782
17006
|
startClassName: "-n-ml-[3px]",
|
|
16783
17007
|
endWidth: 17,
|
|
16784
17008
|
endClassName: "-n-mr-[3px]",
|
|
16785
|
-
start: /* @__PURE__ */
|
|
17009
|
+
start: /* @__PURE__ */ import_react101.default.createElement(
|
|
16786
17010
|
IconButton,
|
|
16787
17011
|
{
|
|
16788
17012
|
iconName: "MinusIcon",
|
|
@@ -16796,7 +17020,7 @@ var Stepper = (0, import_react100.memo)(function Stepper2({
|
|
|
16796
17020
|
}
|
|
16797
17021
|
}
|
|
16798
17022
|
),
|
|
16799
|
-
end: /* @__PURE__ */
|
|
17023
|
+
end: /* @__PURE__ */ import_react101.default.createElement(
|
|
16800
17024
|
IconButton,
|
|
16801
17025
|
{
|
|
16802
17026
|
iconName: "PlusIcon",
|
|
@@ -16811,7 +17035,7 @@ var Stepper = (0, import_react100.memo)(function Stepper2({
|
|
|
16811
17035
|
}
|
|
16812
17036
|
)
|
|
16813
17037
|
},
|
|
16814
|
-
/* @__PURE__ */
|
|
17038
|
+
/* @__PURE__ */ import_react101.default.createElement(
|
|
16815
17039
|
InputField2.NumberInput,
|
|
16816
17040
|
{
|
|
16817
17041
|
value,
|
|
@@ -16826,7 +17050,7 @@ var Stepper = (0, import_react100.memo)(function Stepper2({
|
|
|
16826
17050
|
|
|
16827
17051
|
// src/components/Switch.tsx
|
|
16828
17052
|
var import_radix_ui15 = require("radix-ui");
|
|
16829
|
-
var
|
|
17053
|
+
var React101 = __toESM(require("react"));
|
|
16830
17054
|
var Switch = function Switch2({
|
|
16831
17055
|
id,
|
|
16832
17056
|
value,
|
|
@@ -16838,7 +17062,7 @@ var Switch = function Switch2({
|
|
|
16838
17062
|
style: style2,
|
|
16839
17063
|
className
|
|
16840
17064
|
}) {
|
|
16841
|
-
return /* @__PURE__ */
|
|
17065
|
+
return /* @__PURE__ */ React101.createElement(
|
|
16842
17066
|
import_radix_ui15.Switch.Root,
|
|
16843
17067
|
{
|
|
16844
17068
|
id,
|
|
@@ -16857,12 +17081,12 @@ var Switch = function Switch2({
|
|
|
16857
17081
|
onFocus,
|
|
16858
17082
|
onBlur
|
|
16859
17083
|
},
|
|
16860
|
-
/* @__PURE__ */
|
|
17084
|
+
/* @__PURE__ */ React101.createElement(import_radix_ui15.Switch.Thumb, { className: "n-block n-w-[15px] n-h-[15px] n-bg-background n-rounded-full n-transition-transform n-translate-x-[2px] data-[state=checked]:n-translate-x-[15px]" })
|
|
16861
17085
|
);
|
|
16862
17086
|
};
|
|
16863
17087
|
|
|
16864
17088
|
// src/components/Tabs.tsx
|
|
16865
|
-
var
|
|
17089
|
+
var React102 = __toESM(require("react"));
|
|
16866
17090
|
function Tabs({
|
|
16867
17091
|
value,
|
|
16868
17092
|
onValueChange,
|
|
@@ -16877,7 +17101,7 @@ function Tabs({
|
|
|
16877
17101
|
value,
|
|
16878
17102
|
onChange: onValueChange
|
|
16879
17103
|
});
|
|
16880
|
-
return /* @__PURE__ */
|
|
17104
|
+
return /* @__PURE__ */ React102.createElement("div", { ...props, className: cx("n-flex n-flex-col", props.className) }, /* @__PURE__ */ React102.createElement("div", { className: "n-flex n-flex-row n-px-3" }, /* @__PURE__ */ React102.createElement(
|
|
16881
17105
|
SegmentedControl,
|
|
16882
17106
|
{
|
|
16883
17107
|
className: "n-flex-1",
|
|
@@ -16886,19 +17110,108 @@ function Tabs({
|
|
|
16886
17110
|
variant,
|
|
16887
17111
|
items: selectableItems
|
|
16888
17112
|
}
|
|
16889
|
-
)), /* @__PURE__ */
|
|
17113
|
+
)), /* @__PURE__ */ React102.createElement(Divider, null), renderContent({ value: activeTab }));
|
|
17114
|
+
}
|
|
17115
|
+
|
|
17116
|
+
// src/components/UserPicker.tsx
|
|
17117
|
+
var import_react102 = __toESM(require("react"));
|
|
17118
|
+
function UserPicker({
|
|
17119
|
+
users,
|
|
17120
|
+
value,
|
|
17121
|
+
defaultValue: defaultValue2,
|
|
17122
|
+
onChangeUserId,
|
|
17123
|
+
onSelectUser,
|
|
17124
|
+
placeholder = "Search users...",
|
|
17125
|
+
...rest
|
|
17126
|
+
}) {
|
|
17127
|
+
const sortedUsers = (0, import_react102.useMemo)(() => {
|
|
17128
|
+
return [...users].sort(
|
|
17129
|
+
(a, b) => getUserDisplayName(a).localeCompare(getUserDisplayName(b), void 0, {
|
|
17130
|
+
sensitivity: "base"
|
|
17131
|
+
})
|
|
17132
|
+
);
|
|
17133
|
+
}, [users]);
|
|
17134
|
+
const usersById = (0, import_react102.useMemo)(() => {
|
|
17135
|
+
return new Map(sortedUsers.map((user) => [user.id, user]));
|
|
17136
|
+
}, [sortedUsers]);
|
|
17137
|
+
const items = (0, import_react102.useMemo)(() => {
|
|
17138
|
+
return sortedUsers.map(createUserMenuItem);
|
|
17139
|
+
}, [sortedUsers]);
|
|
17140
|
+
const isControlled = value !== void 0;
|
|
17141
|
+
const [uncontrolledValue, setUncontrolledValue] = (0, import_react102.useState)(defaultValue2);
|
|
17142
|
+
const selectedUserId = isControlled ? value : uncontrolledValue;
|
|
17143
|
+
const selectedItem = (0, import_react102.useMemo)(() => {
|
|
17144
|
+
if (!selectedUserId) return void 0;
|
|
17145
|
+
return items.find((item) => item.value === selectedUserId);
|
|
17146
|
+
}, [items, selectedUserId]);
|
|
17147
|
+
const updateSelectedUserId = (0, import_react102.useCallback)(
|
|
17148
|
+
(userId) => {
|
|
17149
|
+
if (!isControlled) {
|
|
17150
|
+
setUncontrolledValue(userId);
|
|
17151
|
+
}
|
|
17152
|
+
onChangeUserId?.(userId);
|
|
17153
|
+
},
|
|
17154
|
+
[isControlled, onChangeUserId]
|
|
17155
|
+
);
|
|
17156
|
+
const handleSelectItem = (0, import_react102.useCallback)(
|
|
17157
|
+
(item) => {
|
|
17158
|
+
updateSelectedUserId(item.value);
|
|
17159
|
+
onSelectUser?.(usersById.get(item.value));
|
|
17160
|
+
},
|
|
17161
|
+
[updateSelectedUserId, onSelectUser, usersById]
|
|
17162
|
+
);
|
|
17163
|
+
return /* @__PURE__ */ import_react102.default.createElement(
|
|
17164
|
+
Combobox,
|
|
17165
|
+
{
|
|
17166
|
+
...rest,
|
|
17167
|
+
placeholder,
|
|
17168
|
+
mode: "option",
|
|
17169
|
+
items,
|
|
17170
|
+
value: selectedItem,
|
|
17171
|
+
onSelectItem: handleSelectItem,
|
|
17172
|
+
iconPosition: "left"
|
|
17173
|
+
}
|
|
17174
|
+
);
|
|
17175
|
+
}
|
|
17176
|
+
function getUserDisplayName(user) {
|
|
17177
|
+
const name = user.name?.trim();
|
|
17178
|
+
const email = user.email?.trim();
|
|
17179
|
+
return name || email || "Anonymous user";
|
|
17180
|
+
}
|
|
17181
|
+
function createUserMenuItem(user) {
|
|
17182
|
+
const title = getUserDisplayName(user);
|
|
17183
|
+
const overflow = 3;
|
|
17184
|
+
return {
|
|
17185
|
+
value: user.id,
|
|
17186
|
+
title,
|
|
17187
|
+
icon: /* @__PURE__ */ import_react102.default.createElement("div", { className: "n-relative n-w-[15px] n-h-[15px]" }, /* @__PURE__ */ import_react102.default.createElement(
|
|
17188
|
+
Avatar,
|
|
17189
|
+
{
|
|
17190
|
+
size: 15 + overflow * 2,
|
|
17191
|
+
name: title,
|
|
17192
|
+
userId: user.id,
|
|
17193
|
+
image: user.image ?? void 0,
|
|
17194
|
+
className: "n-pointer-events-none",
|
|
17195
|
+
variant: "bare",
|
|
17196
|
+
style: {
|
|
17197
|
+
position: "absolute",
|
|
17198
|
+
inset: -overflow
|
|
17199
|
+
}
|
|
17200
|
+
}
|
|
17201
|
+
))
|
|
17202
|
+
};
|
|
16890
17203
|
}
|
|
16891
17204
|
|
|
16892
17205
|
// src/components/UserPointer.tsx
|
|
16893
|
-
var
|
|
16894
|
-
var UserPointerContainer = (0,
|
|
17206
|
+
var import_react103 = __toESM(require("react"));
|
|
17207
|
+
var UserPointerContainer = (0, import_react103.memo)(function UserPointerContainer2({
|
|
16895
17208
|
point,
|
|
16896
17209
|
visible,
|
|
16897
17210
|
children,
|
|
16898
17211
|
className,
|
|
16899
17212
|
style: style2
|
|
16900
17213
|
}) {
|
|
16901
|
-
return /* @__PURE__ */
|
|
17214
|
+
return /* @__PURE__ */ import_react103.default.createElement(
|
|
16902
17215
|
"div",
|
|
16903
17216
|
{
|
|
16904
17217
|
style: {
|
|
@@ -16915,7 +17228,7 @@ var UserPointerContainer = (0, import_react101.memo)(function UserPointerContain
|
|
|
16915
17228
|
children
|
|
16916
17229
|
);
|
|
16917
17230
|
});
|
|
16918
|
-
var UserNameTag = (0,
|
|
17231
|
+
var UserNameTag = (0, import_react103.memo)(function UserNameTag2({
|
|
16919
17232
|
backgroundColor,
|
|
16920
17233
|
className,
|
|
16921
17234
|
style: style2,
|
|
@@ -16924,7 +17237,7 @@ var UserNameTag = (0, import_react101.memo)(function UserNameTag2({
|
|
|
16924
17237
|
size = "medium",
|
|
16925
17238
|
bordered = true
|
|
16926
17239
|
}) {
|
|
16927
|
-
return /* @__PURE__ */
|
|
17240
|
+
return /* @__PURE__ */ import_react103.default.createElement(
|
|
16928
17241
|
"span",
|
|
16929
17242
|
{
|
|
16930
17243
|
className: cx(
|
|
@@ -16943,14 +17256,14 @@ var UserNameTag = (0, import_react101.memo)(function UserNameTag2({
|
|
|
16943
17256
|
children
|
|
16944
17257
|
);
|
|
16945
17258
|
});
|
|
16946
|
-
var UserPointerIcon = (0,
|
|
17259
|
+
var UserPointerIcon = (0, import_react103.memo)(function PointerIcon({
|
|
16947
17260
|
size,
|
|
16948
17261
|
color = "black",
|
|
16949
17262
|
className,
|
|
16950
17263
|
style: style2
|
|
16951
17264
|
}) {
|
|
16952
17265
|
const points = "0,5 10,0 10,10";
|
|
16953
|
-
return /* @__PURE__ */
|
|
17266
|
+
return /* @__PURE__ */ import_react103.default.createElement(
|
|
16954
17267
|
"svg",
|
|
16955
17268
|
{
|
|
16956
17269
|
width: size,
|
|
@@ -16965,7 +17278,7 @@ var UserPointerIcon = (0, import_react101.memo)(function PointerIcon({
|
|
|
16965
17278
|
...style2
|
|
16966
17279
|
}
|
|
16967
17280
|
},
|
|
16968
|
-
/* @__PURE__ */
|
|
17281
|
+
/* @__PURE__ */ import_react103.default.createElement(
|
|
16969
17282
|
"polygon",
|
|
16970
17283
|
{
|
|
16971
17284
|
points,
|
|
@@ -16978,7 +17291,7 @@ var UserPointerIcon = (0, import_react101.memo)(function PointerIcon({
|
|
|
16978
17291
|
});
|
|
16979
17292
|
var POINTER_SIZE = 12;
|
|
16980
17293
|
var POINTER_OVERLAP = 6;
|
|
16981
|
-
var UserPointer = (0,
|
|
17294
|
+
var UserPointer = (0, import_react103.memo)(function UserPointer2({
|
|
16982
17295
|
userId,
|
|
16983
17296
|
name,
|
|
16984
17297
|
visible = true,
|
|
@@ -16991,22 +17304,22 @@ var UserPointer = (0, import_react101.memo)(function UserPointer2({
|
|
|
16991
17304
|
labelSize = "medium",
|
|
16992
17305
|
bordered = true
|
|
16993
17306
|
}) {
|
|
16994
|
-
const userBackgroundColor = (0,
|
|
17307
|
+
const userBackgroundColor = (0, import_react103.useMemo)(
|
|
16995
17308
|
() => backgroundColor ?? colorFromString(userId ?? name ?? ""),
|
|
16996
17309
|
[backgroundColor, userId, name]
|
|
16997
17310
|
);
|
|
16998
|
-
const pointerOverlapStyle = (0,
|
|
17311
|
+
const pointerOverlapStyle = (0, import_react103.useMemo)(
|
|
16999
17312
|
() => ({
|
|
17000
17313
|
marginRight: `-${POINTER_OVERLAP}px`,
|
|
17001
17314
|
marginBottom: `-${POINTER_OVERLAP}px`
|
|
17002
17315
|
}),
|
|
17003
17316
|
[]
|
|
17004
17317
|
);
|
|
17005
|
-
const nameTagOverlapStyle = (0,
|
|
17318
|
+
const nameTagOverlapStyle = (0, import_react103.useMemo)(
|
|
17006
17319
|
() => ({ marginLeft: `${POINTER_SIZE - POINTER_OVERLAP + 1}px` }),
|
|
17007
17320
|
[]
|
|
17008
17321
|
);
|
|
17009
|
-
return /* @__PURE__ */
|
|
17322
|
+
return /* @__PURE__ */ import_react103.default.createElement(
|
|
17010
17323
|
UserPointerContainer,
|
|
17011
17324
|
{
|
|
17012
17325
|
point,
|
|
@@ -17014,14 +17327,14 @@ var UserPointer = (0, import_react101.memo)(function UserPointer2({
|
|
|
17014
17327
|
className,
|
|
17015
17328
|
style: style2
|
|
17016
17329
|
},
|
|
17017
|
-
name && /* @__PURE__ */
|
|
17330
|
+
name && /* @__PURE__ */ import_react103.default.createElement("div", { className: "n-relative" }, showPointerIcon && /* @__PURE__ */ import_react103.default.createElement(
|
|
17018
17331
|
UserPointerIcon,
|
|
17019
17332
|
{
|
|
17020
17333
|
size: POINTER_SIZE,
|
|
17021
17334
|
color: userBackgroundColor,
|
|
17022
17335
|
style: pointerOverlapStyle
|
|
17023
17336
|
}
|
|
17024
|
-
), /* @__PURE__ */
|
|
17337
|
+
), /* @__PURE__ */ import_react103.default.createElement(
|
|
17025
17338
|
UserNameTag,
|
|
17026
17339
|
{
|
|
17027
17340
|
backgroundColor: userBackgroundColor,
|
|
@@ -17037,10 +17350,10 @@ var UserPointer = (0, import_react101.memo)(function UserPointer2({
|
|
|
17037
17350
|
|
|
17038
17351
|
// src/components/workspace/WorkspaceLayout.tsx
|
|
17039
17352
|
var import_noya_keymap7 = require("@noya-app/noya-keymap");
|
|
17040
|
-
var
|
|
17353
|
+
var import_react110 = __toESM(require("react"));
|
|
17041
17354
|
|
|
17042
17355
|
// src/components/workspace/DrawerWorkspaceLayout.tsx
|
|
17043
|
-
var
|
|
17356
|
+
var import_react107 = __toESM(require("react"));
|
|
17044
17357
|
|
|
17045
17358
|
// src/components/workspace/constants.ts
|
|
17046
17359
|
var EDITOR_PANEL_GROUP_ID = "editor-panel-group";
|
|
@@ -17049,17 +17362,17 @@ var RIGHT_SIDEBAR_ID = "editor-3-right-sidebar";
|
|
|
17049
17362
|
var CONTENT_AREA_ID = "editor-2-content-area";
|
|
17050
17363
|
|
|
17051
17364
|
// src/components/workspace/VerticalTabMenu.tsx
|
|
17052
|
-
var
|
|
17365
|
+
var import_react106 = __toESM(require("react"));
|
|
17053
17366
|
|
|
17054
17367
|
// src/components/Toolbar.tsx
|
|
17055
17368
|
var import_noya_keymap6 = require("@noya-app/noya-keymap");
|
|
17056
|
-
var
|
|
17369
|
+
var import_react105 = __toESM(require("react"));
|
|
17057
17370
|
|
|
17058
17371
|
// src/components/ToolbarDrawer.tsx
|
|
17059
|
-
var
|
|
17060
|
-
var ToolbarDrawer = (0,
|
|
17061
|
-
(0,
|
|
17062
|
-
return /* @__PURE__ */
|
|
17372
|
+
var import_react104 = __toESM(require("react"));
|
|
17373
|
+
var ToolbarDrawer = (0, import_react104.memo)(
|
|
17374
|
+
(0, import_react104.forwardRef)(function ToolbarDrawer2({ children, trigger, sideOffset = 8 }, ref) {
|
|
17375
|
+
return /* @__PURE__ */ import_react104.default.createElement("div", { className: "n-relative", ref }, /* @__PURE__ */ import_react104.default.createElement(
|
|
17063
17376
|
"div",
|
|
17064
17377
|
{
|
|
17065
17378
|
className: "n-absolute n-bottom-full n-left-1/2 -n-translate-x-1/2 n-rounded-t-lg n-border n-border-toolbar-drawer-border n-border-b-transparent n-bg-toolbar-drawer-background -n-z-10",
|
|
@@ -17075,13 +17388,13 @@ var ToolbarDrawer = (0, import_react102.memo)(
|
|
|
17075
17388
|
|
|
17076
17389
|
// src/components/Toolbar.tsx
|
|
17077
17390
|
var SIDE_OFFSET = 6;
|
|
17078
|
-
var ToolbarMenuContext = (0,
|
|
17391
|
+
var ToolbarMenuContext = (0, import_react105.createContext)({});
|
|
17079
17392
|
var ToolbarMenuDropdown = memoGeneric(function ToolbarMenuDropdown2({
|
|
17080
17393
|
item,
|
|
17081
17394
|
onSelectMenuItem
|
|
17082
17395
|
}) {
|
|
17083
|
-
const [open, setOpen] =
|
|
17084
|
-
return /* @__PURE__ */
|
|
17396
|
+
const [open, setOpen] = import_react105.default.useState(false);
|
|
17397
|
+
return /* @__PURE__ */ import_react105.default.createElement(
|
|
17085
17398
|
DropdownMenu,
|
|
17086
17399
|
{
|
|
17087
17400
|
open,
|
|
@@ -17093,7 +17406,7 @@ var ToolbarMenuDropdown = memoGeneric(function ToolbarMenuDropdown2({
|
|
|
17093
17406
|
}
|
|
17094
17407
|
}
|
|
17095
17408
|
},
|
|
17096
|
-
/* @__PURE__ */
|
|
17409
|
+
/* @__PURE__ */ import_react105.default.createElement(
|
|
17097
17410
|
Button,
|
|
17098
17411
|
{
|
|
17099
17412
|
disabled: item.disabled,
|
|
@@ -17109,7 +17422,7 @@ var ToolbarShortcut = ({
|
|
|
17109
17422
|
shortcut,
|
|
17110
17423
|
label
|
|
17111
17424
|
}) => {
|
|
17112
|
-
return /* @__PURE__ */
|
|
17425
|
+
return /* @__PURE__ */ import_react105.default.createElement("div", { className: "n-flex n-items-center" }, label, /* @__PURE__ */ import_react105.default.createElement(Spacer.Horizontal, { size: 6 }), /* @__PURE__ */ import_react105.default.createElement(KeyboardShortcut, { shortcut }));
|
|
17113
17426
|
};
|
|
17114
17427
|
var ToolbarMenuPopover = memoGeneric(function ToolbarMenuPopover2({
|
|
17115
17428
|
item,
|
|
@@ -17123,8 +17436,8 @@ var ToolbarMenuPopover = memoGeneric(function ToolbarMenuPopover2({
|
|
|
17123
17436
|
content: itemContent,
|
|
17124
17437
|
checked
|
|
17125
17438
|
} = item;
|
|
17126
|
-
const [open, setOpen] =
|
|
17127
|
-
const content = /* @__PURE__ */
|
|
17439
|
+
const [open, setOpen] = import_react105.default.useState(false);
|
|
17440
|
+
const content = /* @__PURE__ */ import_react105.default.createElement("span", null, /* @__PURE__ */ import_react105.default.createElement(
|
|
17128
17441
|
Popover,
|
|
17129
17442
|
{
|
|
17130
17443
|
open,
|
|
@@ -17133,7 +17446,7 @@ var ToolbarMenuPopover = memoGeneric(function ToolbarMenuPopover2({
|
|
|
17133
17446
|
showArrow: false,
|
|
17134
17447
|
sideOffset: SIDE_OFFSET,
|
|
17135
17448
|
portalContainer,
|
|
17136
|
-
trigger: /* @__PURE__ */
|
|
17449
|
+
trigger: /* @__PURE__ */ import_react105.default.createElement(
|
|
17137
17450
|
Button,
|
|
17138
17451
|
{
|
|
17139
17452
|
disabled,
|
|
@@ -17146,7 +17459,7 @@ var ToolbarMenuPopover = memoGeneric(function ToolbarMenuPopover2({
|
|
|
17146
17459
|
},
|
|
17147
17460
|
typeof itemContent === "function" ? itemContent({ close: () => setOpen(false) }) : itemContent
|
|
17148
17461
|
));
|
|
17149
|
-
return tooltip && !open ? /* @__PURE__ */
|
|
17462
|
+
return tooltip && !open ? /* @__PURE__ */ import_react105.default.createElement(
|
|
17150
17463
|
Tooltip,
|
|
17151
17464
|
{
|
|
17152
17465
|
sideOffset: SIDE_OFFSET,
|
|
@@ -17166,7 +17479,7 @@ var ToolbarMenuButton = memoGeneric(function ToolbarMenuButton2({
|
|
|
17166
17479
|
displayFilter
|
|
17167
17480
|
}) {
|
|
17168
17481
|
const isActive = item.checked || activeValue === item.value;
|
|
17169
|
-
const content = /* @__PURE__ */
|
|
17482
|
+
const content = /* @__PURE__ */ import_react105.default.createElement(
|
|
17170
17483
|
Button,
|
|
17171
17484
|
{
|
|
17172
17485
|
as,
|
|
@@ -17183,7 +17496,7 @@ var ToolbarMenuButton = memoGeneric(function ToolbarMenuButton2({
|
|
|
17183
17496
|
displayFilter === "iconOnly" ? void 0 : item.title
|
|
17184
17497
|
);
|
|
17185
17498
|
const tooltip = item.tooltip ?? (displayFilter === "iconOnly" && item.title ? item.title : void 0);
|
|
17186
|
-
return item.drawer && isActive ? /* @__PURE__ */
|
|
17499
|
+
return item.drawer && isActive ? /* @__PURE__ */ import_react105.default.createElement(ToolbarDrawer, { trigger: content }, item.drawer) : tooltip ? /* @__PURE__ */ import_react105.default.createElement(Tooltip, { sideOffset: SIDE_OFFSET, content: tooltip, side: tooltipSide }, content) : content;
|
|
17187
17500
|
});
|
|
17188
17501
|
var ToolbarMenuItem = memoGeneric(function ToolbarMenuItem2({
|
|
17189
17502
|
item,
|
|
@@ -17195,17 +17508,17 @@ var ToolbarMenuItem = memoGeneric(function ToolbarMenuItem2({
|
|
|
17195
17508
|
displayFilter,
|
|
17196
17509
|
dividerOverflow: dividerOverflowProp
|
|
17197
17510
|
}) {
|
|
17198
|
-
const { dividerOverflow: contextDividerOverflow } = (0,
|
|
17511
|
+
const { dividerOverflow: contextDividerOverflow } = (0, import_react105.useContext)(ToolbarMenuContext);
|
|
17199
17512
|
const dividerOverflow = dividerOverflowProp ?? contextDividerOverflow ?? 4;
|
|
17200
17513
|
if (item.type === "sectionHeader") return null;
|
|
17201
17514
|
if (item.type === "separator") {
|
|
17202
|
-
return /* @__PURE__ */
|
|
17515
|
+
return /* @__PURE__ */ import_react105.default.createElement(DividerVertical, { overflow: dividerOverflow });
|
|
17203
17516
|
}
|
|
17204
17517
|
if (item.type === "popover") {
|
|
17205
|
-
return /* @__PURE__ */
|
|
17518
|
+
return /* @__PURE__ */ import_react105.default.createElement(ToolbarMenuPopover, { item, portalContainer });
|
|
17206
17519
|
}
|
|
17207
17520
|
if (isSelectableMenuItem(item)) {
|
|
17208
|
-
return /* @__PURE__ */
|
|
17521
|
+
return /* @__PURE__ */ import_react105.default.createElement(
|
|
17209
17522
|
ToolbarMenuButton,
|
|
17210
17523
|
{
|
|
17211
17524
|
item,
|
|
@@ -17217,7 +17530,7 @@ var ToolbarMenuItem = memoGeneric(function ToolbarMenuItem2({
|
|
|
17217
17530
|
}
|
|
17218
17531
|
);
|
|
17219
17532
|
}
|
|
17220
|
-
return /* @__PURE__ */
|
|
17533
|
+
return /* @__PURE__ */ import_react105.default.createElement(ToolbarMenuDropdown, { item, onSelectMenuItem });
|
|
17221
17534
|
});
|
|
17222
17535
|
var ToolbarMenu = memoGeneric(function ToolbarMenu2({
|
|
17223
17536
|
items,
|
|
@@ -17229,8 +17542,8 @@ var ToolbarMenu = memoGeneric(function ToolbarMenu2({
|
|
|
17229
17542
|
displayFilter = "iconAndText",
|
|
17230
17543
|
dividerOverflow
|
|
17231
17544
|
}) {
|
|
17232
|
-
return /* @__PURE__ */
|
|
17233
|
-
return /* @__PURE__ */
|
|
17545
|
+
return /* @__PURE__ */ import_react105.default.createElement(import_react105.default.Fragment, null, items.map((item, i) => {
|
|
17546
|
+
return /* @__PURE__ */ import_react105.default.createElement(
|
|
17234
17547
|
ToolbarMenuItem,
|
|
17235
17548
|
{
|
|
17236
17549
|
key: i,
|
|
@@ -17255,21 +17568,21 @@ function Toolbar({
|
|
|
17255
17568
|
shouldBindKeyboardShortcuts = true,
|
|
17256
17569
|
dividerOverflow
|
|
17257
17570
|
}) {
|
|
17258
|
-
const allMenuItems =
|
|
17571
|
+
const allMenuItems = import_react105.default.useMemo(
|
|
17259
17572
|
() => [...leftMenuItems, ...rightMenuItems],
|
|
17260
17573
|
[leftMenuItems, rightMenuItems]
|
|
17261
17574
|
);
|
|
17262
17575
|
(0, import_noya_keymap6.useKeyboardShortcuts)(
|
|
17263
|
-
|
|
17576
|
+
import_react105.default.useMemo(
|
|
17264
17577
|
() => onSelectMenuItem && shouldBindKeyboardShortcuts ? getKeyboardShortcutsForMenuItems(allMenuItems, onSelectMenuItem) : {},
|
|
17265
17578
|
[allMenuItems, onSelectMenuItem, shouldBindKeyboardShortcuts]
|
|
17266
17579
|
)
|
|
17267
17580
|
);
|
|
17268
|
-
return /* @__PURE__ */
|
|
17581
|
+
return /* @__PURE__ */ import_react105.default.createElement(
|
|
17269
17582
|
BaseToolbar,
|
|
17270
17583
|
{
|
|
17271
17584
|
logo,
|
|
17272
|
-
left: leftMenuItems.length > 0 && /* @__PURE__ */
|
|
17585
|
+
left: leftMenuItems.length > 0 && /* @__PURE__ */ import_react105.default.createElement("div", { className: "n-flex n-gap-2" }, /* @__PURE__ */ import_react105.default.createElement(
|
|
17273
17586
|
ToolbarMenu,
|
|
17274
17587
|
{
|
|
17275
17588
|
items: leftMenuItems,
|
|
@@ -17277,7 +17590,7 @@ function Toolbar({
|
|
|
17277
17590
|
dividerOverflow
|
|
17278
17591
|
}
|
|
17279
17592
|
)),
|
|
17280
|
-
right: rightMenuItems.length > 0 && /* @__PURE__ */
|
|
17593
|
+
right: rightMenuItems.length > 0 && /* @__PURE__ */ import_react105.default.createElement("div", { className: "n-flex n-gap-2" }, /* @__PURE__ */ import_react105.default.createElement(
|
|
17281
17594
|
ToolbarMenu,
|
|
17282
17595
|
{
|
|
17283
17596
|
items: rightMenuItems,
|
|
@@ -17298,19 +17611,19 @@ var VerticalTabMenu = memoGeneric(function VerticalTabMenu2({
|
|
|
17298
17611
|
onChange,
|
|
17299
17612
|
tooltipSide
|
|
17300
17613
|
}) {
|
|
17301
|
-
const style2 = (0,
|
|
17614
|
+
const style2 = (0, import_react106.useMemo)(() => {
|
|
17302
17615
|
return {
|
|
17303
17616
|
[cssVarNames.colors.inputBackground]: "transparent",
|
|
17304
17617
|
[cssVarNames.colors.buttonBackground]: "transparent"
|
|
17305
17618
|
};
|
|
17306
17619
|
}, []);
|
|
17307
|
-
return /* @__PURE__ */
|
|
17620
|
+
return /* @__PURE__ */ import_react106.default.createElement(
|
|
17308
17621
|
"div",
|
|
17309
17622
|
{
|
|
17310
17623
|
className: "n-w-[calc(var(--n-toolbar-height)+1px)] n-h-full n-bg-sidebar-background n-flex n-flex-col n-items-center n-py-3 n-gap-3",
|
|
17311
17624
|
style: style2
|
|
17312
17625
|
},
|
|
17313
|
-
/* @__PURE__ */
|
|
17626
|
+
/* @__PURE__ */ import_react106.default.createElement(
|
|
17314
17627
|
ToolbarMenu,
|
|
17315
17628
|
{
|
|
17316
17629
|
items,
|
|
@@ -17338,12 +17651,12 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17338
17651
|
onChangeLeftTab,
|
|
17339
17652
|
compactDrawerMenu
|
|
17340
17653
|
}) {
|
|
17341
|
-
const portalContainer = (0,
|
|
17342
|
-
const [{ leftSidebarCollapsed, rightSidebarCollapsed }, setLayoutState] = (0,
|
|
17654
|
+
const portalContainer = (0, import_react107.useRef)(null);
|
|
17655
|
+
const [{ leftSidebarCollapsed, rightSidebarCollapsed }, setLayoutState] = (0, import_react107.useState)({
|
|
17343
17656
|
leftSidebarCollapsed: true,
|
|
17344
17657
|
rightSidebarCollapsed: true
|
|
17345
17658
|
});
|
|
17346
|
-
const allTabItems = (0,
|
|
17659
|
+
const allTabItems = (0, import_react107.useMemo)(
|
|
17347
17660
|
() => [
|
|
17348
17661
|
...leftPanel ? leftTabItems ?? [] : [],
|
|
17349
17662
|
...rightPanel ? rightTabItems ?? [] : []
|
|
@@ -17351,16 +17664,16 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17351
17664
|
[leftTabItems, rightTabItems, leftPanel, rightPanel]
|
|
17352
17665
|
);
|
|
17353
17666
|
const hasTabs = allTabItems.length > 0;
|
|
17354
|
-
const allSelectableTabItems = (0,
|
|
17667
|
+
const allSelectableTabItems = (0, import_react107.useMemo)(
|
|
17355
17668
|
() => allTabItems.filter(isSelectableMenuItem),
|
|
17356
17669
|
[allTabItems]
|
|
17357
17670
|
);
|
|
17358
17671
|
const useCompactInToolbar = !!compactDrawerMenu && allSelectableTabItems.length <= 1;
|
|
17359
|
-
const leftSelectableTabItems = (0,
|
|
17672
|
+
const leftSelectableTabItems = (0, import_react107.useMemo)(
|
|
17360
17673
|
() => (leftTabItems ?? []).filter(isSelectableMenuItem),
|
|
17361
17674
|
[leftTabItems]
|
|
17362
17675
|
);
|
|
17363
|
-
const rightSelectableTabItems = (0,
|
|
17676
|
+
const rightSelectableTabItems = (0, import_react107.useMemo)(
|
|
17364
17677
|
() => (rightTabItems ?? []).filter(isSelectableMenuItem),
|
|
17365
17678
|
[rightTabItems]
|
|
17366
17679
|
);
|
|
@@ -17397,14 +17710,14 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17397
17710
|
activeValue: rightTabValue,
|
|
17398
17711
|
isSidebarCollapsed: rightSidebarCollapsed
|
|
17399
17712
|
} : { activeValue: void 0, isSidebarCollapsed: true };
|
|
17400
|
-
return /* @__PURE__ */
|
|
17713
|
+
return /* @__PURE__ */ import_react107.default.createElement(
|
|
17401
17714
|
"div",
|
|
17402
17715
|
{
|
|
17403
17716
|
ref: portalContainer,
|
|
17404
17717
|
id: EDITOR_PANEL_GROUP_ID,
|
|
17405
17718
|
className: "n-flex n-flex-1 n-relative focus:n-outline-none"
|
|
17406
17719
|
},
|
|
17407
|
-
hasTabs && !useCompactInToolbar && /* @__PURE__ */
|
|
17720
|
+
hasTabs && !useCompactInToolbar && /* @__PURE__ */ import_react107.default.createElement(import_react107.default.Fragment, null, /* @__PURE__ */ import_react107.default.createElement(
|
|
17408
17721
|
VerticalTabMenu,
|
|
17409
17722
|
{
|
|
17410
17723
|
tooltipSide: "right",
|
|
@@ -17413,8 +17726,8 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17413
17726
|
isSidebarCollapsed,
|
|
17414
17727
|
onChange: (value) => handleSelectTab(value)
|
|
17415
17728
|
}
|
|
17416
|
-
), /* @__PURE__ */
|
|
17417
|
-
useCompactInToolbar && /* @__PURE__ */
|
|
17729
|
+
), /* @__PURE__ */ import_react107.default.createElement(DividerVertical, { className: "n-h-full" })),
|
|
17730
|
+
useCompactInToolbar && /* @__PURE__ */ import_react107.default.createElement("div", { className: "n-absolute n-top-0 n-left-0 n-h-[calc(var(--n-toolbar-height)+1px)] n-w-[calc(var(--n-toolbar-height)+1px)] n-bg-sidebar-background n-border-r n-border-b n-border-divider-strong n-z-10 n-flex n-items-center n-justify-center" }, allSelectableTabItems[0] && /* @__PURE__ */ import_react107.default.createElement(
|
|
17418
17731
|
Button,
|
|
17419
17732
|
{
|
|
17420
17733
|
variant: "none",
|
|
@@ -17437,8 +17750,8 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17437
17750
|
}
|
|
17438
17751
|
}
|
|
17439
17752
|
)),
|
|
17440
|
-
/* @__PURE__ */
|
|
17441
|
-
leftPanel && /* @__PURE__ */
|
|
17753
|
+
/* @__PURE__ */ import_react107.default.createElement("div", { className: "n-flex-1 n-flex n-relative" }, centerPanel),
|
|
17754
|
+
leftPanel && /* @__PURE__ */ import_react107.default.createElement(
|
|
17442
17755
|
Drawer,
|
|
17443
17756
|
{
|
|
17444
17757
|
ref: leftSidebarRef,
|
|
@@ -17459,7 +17772,7 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17459
17772
|
},
|
|
17460
17773
|
leftPanel
|
|
17461
17774
|
),
|
|
17462
|
-
rightPanel && /* @__PURE__ */
|
|
17775
|
+
rightPanel && /* @__PURE__ */ import_react107.default.createElement(
|
|
17463
17776
|
Drawer,
|
|
17464
17777
|
{
|
|
17465
17778
|
id: RIGHT_SIDEBAR_ID,
|
|
@@ -17485,7 +17798,7 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17485
17798
|
});
|
|
17486
17799
|
|
|
17487
17800
|
// src/components/workspace/PanelWorkspaceLayout.tsx
|
|
17488
|
-
var
|
|
17801
|
+
var import_react108 = __toESM(require("react"));
|
|
17489
17802
|
var import_react_resizable_panels = require("react-resizable-panels");
|
|
17490
17803
|
|
|
17491
17804
|
// src/components/workspace/panelStorage.ts
|
|
@@ -17651,11 +17964,11 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17651
17964
|
onChangeRightTab,
|
|
17652
17965
|
compactDrawerMenu
|
|
17653
17966
|
}) {
|
|
17654
|
-
const panelGroupRef = (0,
|
|
17967
|
+
const panelGroupRef = (0, import_react108.useRef)(null);
|
|
17655
17968
|
const hasLeftPanel = !!leftPanel;
|
|
17656
17969
|
const hasRightPanel = !!rightPanel;
|
|
17657
17970
|
const hasCenterPanel = !!centerPanel;
|
|
17658
|
-
const autoSaveId = (0,
|
|
17971
|
+
const autoSaveId = (0, import_react108.useMemo)(() => {
|
|
17659
17972
|
return autoSavePrefix ? `${autoSavePrefix}--v2--${EDITOR_PANEL_GROUP_ID}` : Math.random().toString(36).substring(2, 15);
|
|
17660
17973
|
}, [autoSavePrefix]);
|
|
17661
17974
|
const layoutIds = getLayoutIds({
|
|
@@ -17682,7 +17995,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17682
17995
|
});
|
|
17683
17996
|
const [data, setData] = usePersistentStateObject(clientStorage, storageKey, {});
|
|
17684
17997
|
const layoutGroup = data?.[propertyKey];
|
|
17685
|
-
const { leftSidebarCollapsed, rightSidebarCollapsed } = (0,
|
|
17998
|
+
const { leftSidebarCollapsed, rightSidebarCollapsed } = (0, import_react108.useMemo)(() => {
|
|
17686
17999
|
return getLayoutCollapsedState({
|
|
17687
18000
|
layoutGroup,
|
|
17688
18001
|
propertyKey,
|
|
@@ -17691,7 +18004,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17691
18004
|
hasRightPanel
|
|
17692
18005
|
});
|
|
17693
18006
|
}, [layoutGroup, propertyKey, layoutIds, hasLeftPanel, hasRightPanel]);
|
|
17694
|
-
const handleLeftTabChange = (0,
|
|
18007
|
+
const handleLeftTabChange = (0, import_react108.useCallback)(
|
|
17695
18008
|
(value) => {
|
|
17696
18009
|
if (value === leftTabValue) {
|
|
17697
18010
|
if (leftSidebarRef.current?.isExpanded()) {
|
|
@@ -17708,7 +18021,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17708
18021
|
},
|
|
17709
18022
|
[leftSidebarRef, leftTabValue, onChangeLeftTab]
|
|
17710
18023
|
);
|
|
17711
|
-
const handleRightTabChange = (0,
|
|
18024
|
+
const handleRightTabChange = (0, import_react108.useCallback)(
|
|
17712
18025
|
(value) => {
|
|
17713
18026
|
if (value === rightTabValue) {
|
|
17714
18027
|
if (rightSidebarRef.current?.isExpanded()) {
|
|
@@ -17725,7 +18038,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17725
18038
|
},
|
|
17726
18039
|
[onChangeRightTab, rightSidebarRef, rightTabValue]
|
|
17727
18040
|
);
|
|
17728
|
-
const handleLayoutChange = (0,
|
|
18041
|
+
const handleLayoutChange = (0, import_react108.useCallback)(
|
|
17729
18042
|
(layout) => {
|
|
17730
18043
|
setData((prev) => {
|
|
17731
18044
|
const newData = {
|
|
@@ -17743,7 +18056,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17743
18056
|
const showLeftTabs = !!leftSidebarOptions.showTabs && !!leftTabItems && // When compact drawer UI is enabled, only show the rail when the
|
|
17744
18057
|
// sidebar is collapsed (for large screens/panel layout).
|
|
17745
18058
|
(!compactDrawerMenu || leftSidebarCollapsed);
|
|
17746
|
-
return /* @__PURE__ */
|
|
18059
|
+
return /* @__PURE__ */ import_react108.default.createElement(
|
|
17747
18060
|
import_react_resizable_panels.PanelGroup,
|
|
17748
18061
|
{
|
|
17749
18062
|
ref: panelGroupRef,
|
|
@@ -17754,7 +18067,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17754
18067
|
autoSaveId,
|
|
17755
18068
|
onLayout: handleLayoutChange
|
|
17756
18069
|
},
|
|
17757
|
-
leftPanel && /* @__PURE__ */
|
|
18070
|
+
leftPanel && /* @__PURE__ */ import_react108.default.createElement(import_react108.default.Fragment, null, showLeftTabs && /* @__PURE__ */ import_react108.default.createElement(
|
|
17758
18071
|
VerticalTabMenu,
|
|
17759
18072
|
{
|
|
17760
18073
|
tooltipSide: "right",
|
|
@@ -17763,7 +18076,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17763
18076
|
isSidebarCollapsed: leftSidebarCollapsed,
|
|
17764
18077
|
onChange: handleLeftTabChange
|
|
17765
18078
|
}
|
|
17766
|
-
), showLeftTabs && !leftSidebarCollapsed && /* @__PURE__ */
|
|
18079
|
+
), showLeftTabs && !leftSidebarCollapsed && /* @__PURE__ */ import_react108.default.createElement(DividerVertical, { className: "n-h-full" }), /* @__PURE__ */ import_react108.default.createElement(
|
|
17767
18080
|
import_react_resizable_panels.Panel,
|
|
17768
18081
|
{
|
|
17769
18082
|
id: LEFT_SIDEBAR_ID,
|
|
@@ -17776,8 +18089,8 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17776
18089
|
collapsible: true
|
|
17777
18090
|
},
|
|
17778
18091
|
leftSidebarCollapsed ? null : leftPanel
|
|
17779
|
-
), /* @__PURE__ */
|
|
17780
|
-
/* @__PURE__ */
|
|
18092
|
+
), /* @__PURE__ */ import_react108.default.createElement(import_react_resizable_panels.PanelResizeHandle, { className: "n-cursor-col-resize n-w-px n-h-full n-bg-divider" })),
|
|
18093
|
+
/* @__PURE__ */ import_react108.default.createElement(
|
|
17781
18094
|
import_react_resizable_panels.Panel,
|
|
17782
18095
|
{
|
|
17783
18096
|
id: CONTENT_AREA_ID,
|
|
@@ -17788,7 +18101,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17788
18101
|
},
|
|
17789
18102
|
centerPanel
|
|
17790
18103
|
),
|
|
17791
|
-
rightPanel && /* @__PURE__ */
|
|
18104
|
+
rightPanel && /* @__PURE__ */ import_react108.default.createElement(import_react108.default.Fragment, null, /* @__PURE__ */ import_react108.default.createElement(import_react_resizable_panels.PanelResizeHandle, { className: "n-cursor-col-resize n-w-px n-h-full n-bg-divider" }), /* @__PURE__ */ import_react108.default.createElement(
|
|
17792
18105
|
import_react_resizable_panels.Panel,
|
|
17793
18106
|
{
|
|
17794
18107
|
id: RIGHT_SIDEBAR_ID,
|
|
@@ -17801,7 +18114,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17801
18114
|
collapsible: true
|
|
17802
18115
|
},
|
|
17803
18116
|
rightSidebarCollapsed ? null : rightPanel
|
|
17804
|
-
), rightSidebarOptions.showTabs && rightTabItems && !rightSidebarCollapsed && /* @__PURE__ */
|
|
18117
|
+
), rightSidebarOptions.showTabs && rightTabItems && !rightSidebarCollapsed && /* @__PURE__ */ import_react108.default.createElement(DividerVertical, { className: "n-h-full" }), rightSidebarOptions.showTabs && rightTabItems && /* @__PURE__ */ import_react108.default.createElement(
|
|
17805
18118
|
VerticalTabMenu,
|
|
17806
18119
|
{
|
|
17807
18120
|
tooltipSide: "left",
|
|
@@ -17823,11 +18136,11 @@ function renderPanelChildren(fn, props) {
|
|
|
17823
18136
|
}
|
|
17824
18137
|
|
|
17825
18138
|
// src/components/workspace/WorkspaceSideContext.tsx
|
|
17826
|
-
var
|
|
17827
|
-
var WorkspaceSideContext = (0,
|
|
18139
|
+
var import_react109 = require("react");
|
|
18140
|
+
var WorkspaceSideContext = (0, import_react109.createContext)({});
|
|
17828
18141
|
var WorkspaceSideProvider = WorkspaceSideContext.Provider;
|
|
17829
18142
|
function useWorkspaceSide() {
|
|
17830
|
-
return (0,
|
|
18143
|
+
return (0, import_react109.useContext)(WorkspaceSideContext);
|
|
17831
18144
|
}
|
|
17832
18145
|
|
|
17833
18146
|
// src/components/workspace/WorkspaceLayout.tsx
|
|
@@ -17890,7 +18203,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
17890
18203
|
theme,
|
|
17891
18204
|
compactDrawerMenu
|
|
17892
18205
|
}, forwardedRef) {
|
|
17893
|
-
const containerRef =
|
|
18206
|
+
const containerRef = import_react110.default.useRef(null);
|
|
17894
18207
|
const containerSize = useSize(containerRef);
|
|
17895
18208
|
const windowSize = useWindowSize();
|
|
17896
18209
|
const parentSize = detectSize === "window" ? windowSize : containerSize && containerSize.width > 0 ? containerSize : windowSize;
|
|
@@ -17921,8 +18234,8 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
17921
18234
|
rightSidebarMinPercentage,
|
|
17922
18235
|
rightSidebarMaxPercentage
|
|
17923
18236
|
);
|
|
17924
|
-
const leftSidebarRef = (0,
|
|
17925
|
-
const rightSidebarRef = (0,
|
|
18237
|
+
const leftSidebarRef = (0, import_react110.useRef)(null);
|
|
18238
|
+
const rightSidebarRef = (0, import_react110.useRef)(null);
|
|
17926
18239
|
const [leftTabValue, setLeftTabValue] = useControlledOrUncontrolled({
|
|
17927
18240
|
value: leftTabValueProp,
|
|
17928
18241
|
onChange: onChangeLeftTab,
|
|
@@ -17933,7 +18246,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
17933
18246
|
onChange: onChangeRightTab,
|
|
17934
18247
|
defaultValue: getFirstTabValue(rightTabItems, "")
|
|
17935
18248
|
});
|
|
17936
|
-
(0,
|
|
18249
|
+
(0, import_react110.useImperativeHandle)(forwardedRef, () => ({
|
|
17937
18250
|
setLeftExpanded: (expanded) => {
|
|
17938
18251
|
if (expanded) {
|
|
17939
18252
|
leftSidebarRef.current?.expand();
|
|
@@ -17991,56 +18304,56 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
17991
18304
|
});
|
|
17992
18305
|
const centerPanelPercentage = 100 - (left ? leftSidebarPercentage : 0) - (right ? rightSidebarPercentage : 0);
|
|
17993
18306
|
const isDrawerActive = sideType === "drawer" || sideType === "auto" && parentSize.width <= sideTypeBreakpoint;
|
|
17994
|
-
const closeLeftSidebar = (0,
|
|
18307
|
+
const closeLeftSidebar = (0, import_react110.useCallback)(() => {
|
|
17995
18308
|
if (isDrawerActive) {
|
|
17996
18309
|
leftSidebarRef.current?.collapse();
|
|
17997
18310
|
}
|
|
17998
18311
|
}, [isDrawerActive]);
|
|
17999
|
-
const closeRightSidebar = (0,
|
|
18312
|
+
const closeRightSidebar = (0, import_react110.useCallback)(() => {
|
|
18000
18313
|
if (isDrawerActive) {
|
|
18001
18314
|
rightSidebarRef.current?.collapse();
|
|
18002
18315
|
}
|
|
18003
18316
|
}, [isDrawerActive]);
|
|
18004
|
-
const leftChildrenProps = (0,
|
|
18317
|
+
const leftChildrenProps = (0, import_react110.useMemo)(() => {
|
|
18005
18318
|
return {
|
|
18006
18319
|
activeTabValue: leftTabValue,
|
|
18007
18320
|
closeSidebar: closeLeftSidebar
|
|
18008
18321
|
};
|
|
18009
18322
|
}, [leftTabValue, closeLeftSidebar]);
|
|
18010
|
-
const rightChildrenProps = (0,
|
|
18323
|
+
const rightChildrenProps = (0, import_react110.useMemo)(() => {
|
|
18011
18324
|
return {
|
|
18012
18325
|
activeTabValue: rightTabValue,
|
|
18013
18326
|
closeSidebar: closeRightSidebar
|
|
18014
18327
|
};
|
|
18015
18328
|
}, [rightTabValue, closeRightSidebar]);
|
|
18016
|
-
const leftSidebarProviderValue = (0,
|
|
18329
|
+
const leftSidebarProviderValue = (0, import_react110.useMemo)(() => {
|
|
18017
18330
|
return {
|
|
18018
18331
|
closeSidebar: closeLeftSidebar
|
|
18019
18332
|
};
|
|
18020
18333
|
}, [closeLeftSidebar]);
|
|
18021
|
-
const rightSidebarProviderValue = (0,
|
|
18334
|
+
const rightSidebarProviderValue = (0, import_react110.useMemo)(() => {
|
|
18022
18335
|
return {
|
|
18023
18336
|
closeSidebar: closeRightSidebar
|
|
18024
18337
|
};
|
|
18025
18338
|
}, [closeRightSidebar]);
|
|
18026
|
-
const leftPanel = left && leftVisible !== false ? /* @__PURE__ */
|
|
18339
|
+
const leftPanel = left && leftVisible !== false ? /* @__PURE__ */ import_react110.default.createElement(
|
|
18027
18340
|
PanelInner,
|
|
18028
18341
|
{
|
|
18029
18342
|
style: leftStyle,
|
|
18030
18343
|
className: cx("n-bg-sidebar-background n-flex-col", leftClassName)
|
|
18031
18344
|
},
|
|
18032
|
-
/* @__PURE__ */
|
|
18345
|
+
/* @__PURE__ */ import_react110.default.createElement(WorkspaceSideProvider, { value: leftSidebarProviderValue }, leftTabValue ? renderPanelChildren(left, leftChildrenProps) : null)
|
|
18033
18346
|
) : null;
|
|
18034
|
-
const rightPanel = right && rightVisible !== false ? /* @__PURE__ */
|
|
18347
|
+
const rightPanel = right && rightVisible !== false ? /* @__PURE__ */ import_react110.default.createElement(
|
|
18035
18348
|
PanelInner,
|
|
18036
18349
|
{
|
|
18037
18350
|
style: rightStyle,
|
|
18038
18351
|
className: cx("n-bg-sidebar-background n-flex-col", rightClassName)
|
|
18039
18352
|
},
|
|
18040
|
-
/* @__PURE__ */
|
|
18353
|
+
/* @__PURE__ */ import_react110.default.createElement(WorkspaceSideProvider, { value: rightSidebarProviderValue }, rightTabValue ? renderPanelChildren(right, rightChildrenProps) : null)
|
|
18041
18354
|
) : null;
|
|
18042
|
-
const centerPanel = /* @__PURE__ */
|
|
18043
|
-
const leftSidebarOptions = (0,
|
|
18355
|
+
const centerPanel = /* @__PURE__ */ import_react110.default.createElement(PanelInner, { className: "n-bg-canvas-background" }, children);
|
|
18356
|
+
const leftSidebarOptions = (0, import_react110.useMemo)(
|
|
18044
18357
|
() => ({
|
|
18045
18358
|
minSize: leftSidebarMinPercentage,
|
|
18046
18359
|
maxSize: leftSidebarMaxPercentage,
|
|
@@ -18058,7 +18371,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18058
18371
|
leftShowTabs
|
|
18059
18372
|
]
|
|
18060
18373
|
);
|
|
18061
|
-
const rightSidebarOptions = (0,
|
|
18374
|
+
const rightSidebarOptions = (0, import_react110.useMemo)(
|
|
18062
18375
|
() => ({
|
|
18063
18376
|
minSize: rightSidebarMinPercentage,
|
|
18064
18377
|
maxSize: rightSidebarMaxPercentage,
|
|
@@ -18078,7 +18391,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18078
18391
|
);
|
|
18079
18392
|
const LayoutComponent = sideType === "panel" ? PanelWorkspaceLayout : sideType === "drawer" ? DrawerWorkspaceLayout : parentSize.width > sideTypeBreakpoint ? PanelWorkspaceLayout : DrawerWorkspaceLayout;
|
|
18080
18393
|
const readyToRender = detectSize === "window" || containerSize && containerSize.width > 0;
|
|
18081
|
-
return /* @__PURE__ */
|
|
18394
|
+
return /* @__PURE__ */ import_react110.default.createElement(
|
|
18082
18395
|
"div",
|
|
18083
18396
|
{
|
|
18084
18397
|
ref: containerRef,
|
|
@@ -18091,7 +18404,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18091
18404
|
"data-theme": theme
|
|
18092
18405
|
},
|
|
18093
18406
|
toolbar,
|
|
18094
|
-
/* @__PURE__ */
|
|
18407
|
+
/* @__PURE__ */ import_react110.default.createElement("div", { className: "n-flex n-flex-row n-flex-1 n-relative" }, readyToRender && /* @__PURE__ */ import_react110.default.createElement(
|
|
18095
18408
|
LayoutComponent,
|
|
18096
18409
|
{
|
|
18097
18410
|
leftPanel,
|
|
@@ -18114,12 +18427,12 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18114
18427
|
))
|
|
18115
18428
|
);
|
|
18116
18429
|
});
|
|
18117
|
-
var PanelInner = (0,
|
|
18430
|
+
var PanelInner = (0, import_react110.memo)(function PanelInner2({
|
|
18118
18431
|
children,
|
|
18119
18432
|
style: style2,
|
|
18120
18433
|
className
|
|
18121
18434
|
}) {
|
|
18122
|
-
return /* @__PURE__ */
|
|
18435
|
+
return /* @__PURE__ */ import_react110.default.createElement(
|
|
18123
18436
|
"div",
|
|
18124
18437
|
{
|
|
18125
18438
|
style: style2,
|
|
@@ -18134,22 +18447,22 @@ function getFirstTabValue(items, defaultValue2) {
|
|
|
18134
18447
|
}
|
|
18135
18448
|
|
|
18136
18449
|
// src/contexts/ImageDataContext.tsx
|
|
18137
|
-
var
|
|
18138
|
-
var ImageDataContext =
|
|
18450
|
+
var React111 = __toESM(require("react"));
|
|
18451
|
+
var ImageDataContext = React111.createContext(
|
|
18139
18452
|
void 0
|
|
18140
18453
|
);
|
|
18141
|
-
var ImageDataProvider =
|
|
18454
|
+
var ImageDataProvider = React111.memo(function ImageDataProvider2({
|
|
18142
18455
|
children,
|
|
18143
18456
|
getImageData
|
|
18144
18457
|
}) {
|
|
18145
|
-
const contextValue =
|
|
18458
|
+
const contextValue = React111.useMemo(
|
|
18146
18459
|
() => ({ getImageData: getImageData ?? (() => void 0) }),
|
|
18147
18460
|
[getImageData]
|
|
18148
18461
|
);
|
|
18149
|
-
return /* @__PURE__ */
|
|
18462
|
+
return /* @__PURE__ */ React111.createElement(ImageDataContext.Provider, { value: contextValue }, children);
|
|
18150
18463
|
});
|
|
18151
18464
|
function useImageData(ref) {
|
|
18152
|
-
const value =
|
|
18465
|
+
const value = React111.useContext(ImageDataContext);
|
|
18153
18466
|
if (!value) {
|
|
18154
18467
|
throw new Error("Missing ImageDataProvider");
|
|
18155
18468
|
}
|
|
@@ -18166,9 +18479,9 @@ function usePlatformModKey() {
|
|
|
18166
18479
|
}
|
|
18167
18480
|
|
|
18168
18481
|
// src/hooks/useTheme.ts
|
|
18169
|
-
var
|
|
18482
|
+
var import_react111 = require("react");
|
|
18170
18483
|
function useTheme() {
|
|
18171
|
-
const [theme, setTheme] = (0,
|
|
18484
|
+
const [theme, setTheme] = (0, import_react111.useState)("light");
|
|
18172
18485
|
const checkTheme = () => {
|
|
18173
18486
|
const currentTheme = document.body.getAttribute("data-theme");
|
|
18174
18487
|
switch (currentTheme) {
|
|
@@ -18180,7 +18493,7 @@ function useTheme() {
|
|
|
18180
18493
|
break;
|
|
18181
18494
|
}
|
|
18182
18495
|
};
|
|
18183
|
-
(0,
|
|
18496
|
+
(0, import_react111.useEffect)(() => {
|
|
18184
18497
|
checkTheme();
|
|
18185
18498
|
const observer = new MutationObserver((mutations) => {
|
|
18186
18499
|
mutations.forEach((mutation) => {
|
|
@@ -18303,11 +18616,11 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
|
|
|
18303
18616
|
|
|
18304
18617
|
// src/components/DimensionInput.tsx
|
|
18305
18618
|
var import_noya_utils21 = require("@noya-app/noya-utils");
|
|
18306
|
-
var
|
|
18619
|
+
var React112 = __toESM(require("react"));
|
|
18307
18620
|
function getNewValue(value, mode, delta) {
|
|
18308
18621
|
return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
|
|
18309
18622
|
}
|
|
18310
|
-
var DimensionInput =
|
|
18623
|
+
var DimensionInput = React112.memo(function DimensionInput2({
|
|
18311
18624
|
id,
|
|
18312
18625
|
value,
|
|
18313
18626
|
onSetValue,
|
|
@@ -18317,15 +18630,15 @@ var DimensionInput = React110.memo(function DimensionInput2({
|
|
|
18317
18630
|
disabled,
|
|
18318
18631
|
trigger = "submit"
|
|
18319
18632
|
}) {
|
|
18320
|
-
const handleNudgeValue =
|
|
18633
|
+
const handleNudgeValue = React112.useCallback(
|
|
18321
18634
|
(value2) => onSetValue(value2, "adjust"),
|
|
18322
18635
|
[onSetValue]
|
|
18323
18636
|
);
|
|
18324
|
-
const handleSetValue =
|
|
18637
|
+
const handleSetValue = React112.useCallback(
|
|
18325
18638
|
(value2) => onSetValue(value2, "replace"),
|
|
18326
18639
|
[onSetValue]
|
|
18327
18640
|
);
|
|
18328
|
-
return /* @__PURE__ */
|
|
18641
|
+
return /* @__PURE__ */ React112.createElement(LabeledField, { label, labelType: "inset" }, /* @__PURE__ */ React112.createElement(InputField2.Root, { id, width: size }, /* @__PURE__ */ React112.createElement(
|
|
18329
18642
|
InputField2.NumberInput,
|
|
18330
18643
|
{
|
|
18331
18644
|
value: value === void 0 ? value : (0, import_noya_utils21.round)(value, 2),
|
|
@@ -18352,8 +18665,8 @@ __export(InspectorPrimitives_exports, {
|
|
|
18352
18665
|
Title: () => Title,
|
|
18353
18666
|
VerticalSeparator: () => VerticalSeparator
|
|
18354
18667
|
});
|
|
18355
|
-
var
|
|
18356
|
-
var Section2 = (0,
|
|
18668
|
+
var import_react112 = __toESM(require("react"));
|
|
18669
|
+
var Section2 = (0, import_react112.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react112.default.createElement(
|
|
18357
18670
|
"div",
|
|
18358
18671
|
{
|
|
18359
18672
|
ref,
|
|
@@ -18361,8 +18674,8 @@ var Section2 = (0, import_react110.forwardRef)(({ className, ...props }, ref) =>
|
|
|
18361
18674
|
...props
|
|
18362
18675
|
}
|
|
18363
18676
|
));
|
|
18364
|
-
var SectionHeader2 = (0,
|
|
18365
|
-
var Title = (0,
|
|
18677
|
+
var SectionHeader2 = (0, import_react112.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react112.default.createElement("div", { ref, className: cx(`n-flex n-items-center`, className), ...props }));
|
|
18678
|
+
var Title = (0, import_react112.forwardRef)(({ className, $textStyle, ...props }, ref) => /* @__PURE__ */ import_react112.default.createElement(
|
|
18366
18679
|
"div",
|
|
18367
18680
|
{
|
|
18368
18681
|
ref,
|
|
@@ -18373,7 +18686,7 @@ var Title = (0, import_react110.forwardRef)(({ className, $textStyle, ...props }
|
|
|
18373
18686
|
...props
|
|
18374
18687
|
}
|
|
18375
18688
|
));
|
|
18376
|
-
var Row = (0,
|
|
18689
|
+
var Row = (0, import_react112.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react112.default.createElement(
|
|
18377
18690
|
"div",
|
|
18378
18691
|
{
|
|
18379
18692
|
ref,
|
|
@@ -18381,7 +18694,7 @@ var Row = (0, import_react110.forwardRef)(({ className, ...props }, ref) => /* @
|
|
|
18381
18694
|
...props
|
|
18382
18695
|
}
|
|
18383
18696
|
));
|
|
18384
|
-
var Column = (0,
|
|
18697
|
+
var Column = (0, import_react112.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react112.default.createElement(
|
|
18385
18698
|
"div",
|
|
18386
18699
|
{
|
|
18387
18700
|
ref,
|
|
@@ -18389,7 +18702,7 @@ var Column = (0, import_react110.forwardRef)(({ className, ...props }, ref) => /
|
|
|
18389
18702
|
...props
|
|
18390
18703
|
}
|
|
18391
18704
|
));
|
|
18392
|
-
var Checkbox3 = (0,
|
|
18705
|
+
var Checkbox3 = (0, import_react112.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react112.default.createElement(
|
|
18393
18706
|
"input",
|
|
18394
18707
|
{
|
|
18395
18708
|
ref,
|
|
@@ -18398,7 +18711,7 @@ var Checkbox3 = (0, import_react110.forwardRef)(({ className, ...props }, ref) =
|
|
|
18398
18711
|
...props
|
|
18399
18712
|
}
|
|
18400
18713
|
));
|
|
18401
|
-
var Text3 = (0,
|
|
18714
|
+
var Text3 = (0, import_react112.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react112.default.createElement(
|
|
18402
18715
|
"span",
|
|
18403
18716
|
{
|
|
18404
18717
|
ref,
|
|
@@ -18406,14 +18719,14 @@ var Text3 = (0, import_react110.forwardRef)(({ className, ...props }, ref) => /*
|
|
|
18406
18719
|
...props
|
|
18407
18720
|
}
|
|
18408
18721
|
));
|
|
18409
|
-
var VerticalSeparator = () => /* @__PURE__ */
|
|
18410
|
-
var HorizontalSeparator = () => /* @__PURE__ */
|
|
18411
|
-
var RowLabel = (0,
|
|
18722
|
+
var VerticalSeparator = () => /* @__PURE__ */ import_react112.default.createElement(Spacer.Vertical, { size: "inspector-v-separator" });
|
|
18723
|
+
var HorizontalSeparator = () => /* @__PURE__ */ import_react112.default.createElement(Spacer.Horizontal, { size: "inspector-h-separator" });
|
|
18724
|
+
var RowLabel = (0, import_react112.forwardRef)(function RowLabel2({
|
|
18412
18725
|
className,
|
|
18413
18726
|
$textStyle,
|
|
18414
18727
|
...props
|
|
18415
18728
|
}, ref) {
|
|
18416
|
-
return /* @__PURE__ */
|
|
18729
|
+
return /* @__PURE__ */ import_react112.default.createElement(
|
|
18417
18730
|
"label",
|
|
18418
18731
|
{
|
|
18419
18732
|
ref,
|
|
@@ -18425,7 +18738,7 @@ var RowLabel = (0, import_react110.forwardRef)(function RowLabel2({
|
|
|
18425
18738
|
}
|
|
18426
18739
|
);
|
|
18427
18740
|
});
|
|
18428
|
-
var LabeledRow = (0,
|
|
18741
|
+
var LabeledRow = (0, import_react112.memo)(function LabeledRow2({
|
|
18429
18742
|
id,
|
|
18430
18743
|
children,
|
|
18431
18744
|
label,
|
|
@@ -18433,7 +18746,7 @@ var LabeledRow = (0, import_react110.memo)(function LabeledRow2({
|
|
|
18433
18746
|
right,
|
|
18434
18747
|
className
|
|
18435
18748
|
}) {
|
|
18436
|
-
return /* @__PURE__ */
|
|
18749
|
+
return /* @__PURE__ */ import_react112.default.createElement(Row, { id, className }, /* @__PURE__ */ import_react112.default.createElement(Column, null, /* @__PURE__ */ import_react112.default.createElement(RowLabel, { $textStyle: labelTextStyle }, label, right && /* @__PURE__ */ import_react112.default.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ import_react112.default.createElement(Row, null, children)));
|
|
18437
18750
|
});
|
|
18438
18751
|
// Annotate the CommonJS export names for ESM import in node:
|
|
18439
18752
|
0 && (module.exports = {
|
|
@@ -18573,7 +18886,9 @@ var LabeledRow = (0, import_react110.memo)(function LabeledRow2({
|
|
|
18573
18886
|
Tooltip,
|
|
18574
18887
|
TreeView,
|
|
18575
18888
|
UserAvatar,
|
|
18889
|
+
UserPicker,
|
|
18576
18890
|
UserPointer,
|
|
18891
|
+
Virtualized,
|
|
18577
18892
|
WorkspaceLayout,
|
|
18578
18893
|
WorkspaceSideProvider,
|
|
18579
18894
|
acceptsDrop,
|
|
@@ -18606,6 +18921,7 @@ var LabeledRow = (0, import_react110.memo)(function LabeledRow2({
|
|
|
18606
18921
|
getNextIndex,
|
|
18607
18922
|
getPipelineResultLink,
|
|
18608
18923
|
getThumbnailColors,
|
|
18924
|
+
getUserDisplayName,
|
|
18609
18925
|
isMenuItemSectionHeader,
|
|
18610
18926
|
isNonSelectableMenuItem,
|
|
18611
18927
|
isPopoverMenuItem,
|