@noya-app/noya-designsystem 0.1.71 → 0.1.73
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 +17 -0
- package/dist/index.css +1 -1
- package/dist/index.d.mts +58 -5
- package/dist/index.d.ts +58 -5
- package/dist/index.js +990 -780
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +970 -759
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -7
- package/src/components/BaseToolbar.tsx +1 -1
- package/src/components/Breadcrumbs.tsx +1 -0
- package/src/components/Collection.tsx +1 -2
- package/src/components/ComboboxMenu.tsx +1 -1
- package/src/components/Message.tsx +3 -2
- package/src/components/ScrollArea2.tsx +22 -2
- 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 +5 -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 = [];
|
|
@@ -3259,6 +3259,7 @@ __export(src_exports, {
|
|
|
3259
3259
|
UserAvatar: () => UserAvatar,
|
|
3260
3260
|
UserPicker: () => UserPicker,
|
|
3261
3261
|
UserPointer: () => UserPointer,
|
|
3262
|
+
Virtualized: () => Virtualized2,
|
|
3262
3263
|
WorkspaceLayout: () => WorkspaceLayout,
|
|
3263
3264
|
WorkspaceSideProvider: () => WorkspaceSideProvider,
|
|
3264
3265
|
acceptsDrop: () => acceptsDrop,
|
|
@@ -7218,7 +7219,8 @@ var BreadcrumbSlash = () => {
|
|
|
7218
7219
|
fill: "none",
|
|
7219
7220
|
xmlns: "http://www.w3.org/2000/svg",
|
|
7220
7221
|
opacity: 0.5,
|
|
7221
|
-
style: slashStyle
|
|
7222
|
+
style: slashStyle,
|
|
7223
|
+
className: "n-flex-none"
|
|
7222
7224
|
},
|
|
7223
7225
|
/* @__PURE__ */ import_react51.default.createElement(
|
|
7224
7226
|
"path",
|
|
@@ -7536,7 +7538,7 @@ var Chip = (0, import_react52.memo)(
|
|
|
7536
7538
|
);
|
|
7537
7539
|
|
|
7538
7540
|
// src/components/Collection.tsx
|
|
7539
|
-
var
|
|
7541
|
+
var import_react68 = __toESM(require("react"));
|
|
7540
7542
|
|
|
7541
7543
|
// src/components/Grid.tsx
|
|
7542
7544
|
var import_react56 = __toESM(require("react"));
|
|
@@ -8344,7 +8346,7 @@ var Grid = memoGeneric(
|
|
|
8344
8346
|
);
|
|
8345
8347
|
|
|
8346
8348
|
// src/components/List.tsx
|
|
8347
|
-
var
|
|
8349
|
+
var import_react67 = __toESM(require("react"));
|
|
8348
8350
|
|
|
8349
8351
|
// src/components/listView/ListViewContexts.tsx
|
|
8350
8352
|
var import_react57 = require("react");
|
|
@@ -8368,10 +8370,6 @@ var ListRowContext = (0, import_react57.createContext)({
|
|
|
8368
8370
|
isSectionHeader: false
|
|
8369
8371
|
});
|
|
8370
8372
|
ListRowContext.displayName = "ListRowContext";
|
|
8371
|
-
var RenderItemContext = (0, import_react57.createContext)(
|
|
8372
|
-
() => null
|
|
8373
|
-
);
|
|
8374
|
-
RenderItemContext.displayName = "RenderItemContext";
|
|
8375
8373
|
|
|
8376
8374
|
// src/components/listView/ListViewEditableRowTitle.tsx
|
|
8377
8375
|
var import_react58 = __toESM(require("react"));
|
|
@@ -8424,21 +8422,348 @@ var ListViewEditableRowTitle = (0, import_react58.memo)(function ListViewEditabl
|
|
|
8424
8422
|
|
|
8425
8423
|
// src/components/listView/ListViewRoot.tsx
|
|
8426
8424
|
var import_noya_utils8 = require("@noya-app/noya-utils");
|
|
8427
|
-
var
|
|
8428
|
-
|
|
8429
|
-
|
|
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);
|
|
8430
8755
|
|
|
8431
8756
|
// src/components/sorting/Sortable.tsx
|
|
8432
8757
|
var import_core2 = require("@dnd-kit/core");
|
|
8433
8758
|
var import_sortable = require("@dnd-kit/sortable");
|
|
8434
|
-
var
|
|
8435
|
-
var
|
|
8759
|
+
var React57 = __toESM(require("react"));
|
|
8760
|
+
var import_react62 = require("react");
|
|
8436
8761
|
|
|
8437
8762
|
// src/components/sorting/DragRegistration.tsx
|
|
8438
|
-
var
|
|
8439
|
-
var DragRegistrationContext =
|
|
8763
|
+
var import_react60 = __toESM(require("react"));
|
|
8764
|
+
var DragRegistrationContext = import_react60.default.createContext(null);
|
|
8440
8765
|
function useDragRegistration(context) {
|
|
8441
|
-
const value =
|
|
8766
|
+
const value = import_react60.default.useContext(context);
|
|
8442
8767
|
if (!value) {
|
|
8443
8768
|
throw new Error(
|
|
8444
8769
|
"useDragRegistration must be used within a DragRegistrationProvider"
|
|
@@ -8447,11 +8772,11 @@ function useDragRegistration(context) {
|
|
|
8447
8772
|
return value;
|
|
8448
8773
|
}
|
|
8449
8774
|
function useDragRegistrationManager() {
|
|
8450
|
-
const [registeredLists, setRegisteredLists] =
|
|
8451
|
-
const registerList =
|
|
8775
|
+
const [registeredLists, setRegisteredLists] = import_react60.default.useState(/* @__PURE__ */ new Map());
|
|
8776
|
+
const registerList = import_react60.default.useCallback((list) => {
|
|
8452
8777
|
setRegisteredLists((prev) => new Map(prev).set(list.id, list));
|
|
8453
8778
|
}, []);
|
|
8454
|
-
const unregisterList =
|
|
8779
|
+
const unregisterList = import_react60.default.useCallback((listId) => {
|
|
8455
8780
|
setRegisteredLists((prev) => {
|
|
8456
8781
|
const newMap = new Map(prev);
|
|
8457
8782
|
newMap.delete(listId);
|
|
@@ -8460,23 +8785,23 @@ function useDragRegistrationManager() {
|
|
|
8460
8785
|
}, []);
|
|
8461
8786
|
return { registerList, unregisterList, registeredLists };
|
|
8462
8787
|
}
|
|
8463
|
-
var ActiveDragContext =
|
|
8788
|
+
var ActiveDragContext = import_react60.default.createContext(null);
|
|
8464
8789
|
function useActiveDrag(context) {
|
|
8465
|
-
const value =
|
|
8790
|
+
const value = import_react60.default.useContext(context);
|
|
8466
8791
|
if (!value) {
|
|
8467
8792
|
throw new Error("useActiveDrag must be used within a ActiveDragProvider");
|
|
8468
8793
|
}
|
|
8469
8794
|
return value;
|
|
8470
8795
|
}
|
|
8471
|
-
var AnyDragContext =
|
|
8796
|
+
var AnyDragContext = import_react60.default.createContext(false);
|
|
8472
8797
|
|
|
8473
8798
|
// src/components/sorting/SharedDragProvider.tsx
|
|
8474
8799
|
var import_core = require("@dnd-kit/core");
|
|
8475
8800
|
var import_noya_geometry = require("@noya-app/noya-geometry");
|
|
8476
8801
|
var import_noya_utils7 = require("@noya-app/noya-utils");
|
|
8477
|
-
var
|
|
8478
|
-
var
|
|
8479
|
-
var
|
|
8802
|
+
var React55 = __toESM(require("react"));
|
|
8803
|
+
var import_react61 = require("react");
|
|
8804
|
+
var import_react_dom3 = require("react-dom");
|
|
8480
8805
|
function SharedDragProvider({
|
|
8481
8806
|
children,
|
|
8482
8807
|
acceptsDrop: acceptsDrop2,
|
|
@@ -8495,22 +8820,22 @@ function SharedDragProvider({
|
|
|
8495
8820
|
})
|
|
8496
8821
|
);
|
|
8497
8822
|
const mounted = useMounted();
|
|
8498
|
-
const [dragState, setDragState] =
|
|
8823
|
+
const [dragState, setDragState] = React55.useState({
|
|
8499
8824
|
source: null,
|
|
8500
8825
|
target: null,
|
|
8501
8826
|
indicator: null
|
|
8502
8827
|
});
|
|
8503
|
-
const stableOnMoveItem =
|
|
8828
|
+
const stableOnMoveItem = React55.useRef(onMoveItem);
|
|
8504
8829
|
useIsomorphicLayoutEffect(() => {
|
|
8505
8830
|
stableOnMoveItem.current = onMoveItem;
|
|
8506
8831
|
}, [onMoveItem]);
|
|
8507
|
-
const stableAcceptsDrop =
|
|
8832
|
+
const stableAcceptsDrop = React55.useRef(acceptsDrop2);
|
|
8508
8833
|
useIsomorphicLayoutEffect(() => {
|
|
8509
8834
|
stableAcceptsDrop.current = acceptsDrop2;
|
|
8510
8835
|
}, [acceptsDrop2]);
|
|
8511
8836
|
const { registerList, unregisterList, registeredLists } = useDragRegistrationManager();
|
|
8512
|
-
const activatorEventRef =
|
|
8513
|
-
const handleDragStart =
|
|
8837
|
+
const activatorEventRef = React55.useRef(null);
|
|
8838
|
+
const handleDragStart = React55.useCallback(
|
|
8514
8839
|
(event) => {
|
|
8515
8840
|
activatorEventRef.current = event.activatorEvent;
|
|
8516
8841
|
for (const [listId, list] of registeredLists) {
|
|
@@ -8532,7 +8857,7 @@ function SharedDragProvider({
|
|
|
8532
8857
|
},
|
|
8533
8858
|
[registeredLists]
|
|
8534
8859
|
);
|
|
8535
|
-
const handleDragMove =
|
|
8860
|
+
const handleDragMove = React55.useCallback(
|
|
8536
8861
|
(event) => {
|
|
8537
8862
|
const { active, over } = event;
|
|
8538
8863
|
if (!activatorEventRef.current || !dragState.source) return;
|
|
@@ -8556,7 +8881,7 @@ function SharedDragProvider({
|
|
|
8556
8881
|
},
|
|
8557
8882
|
[registeredLists, dragState.source]
|
|
8558
8883
|
);
|
|
8559
|
-
const handleDragEnd =
|
|
8884
|
+
const handleDragEnd = React55.useCallback(
|
|
8560
8885
|
(event) => {
|
|
8561
8886
|
const { active, over } = event;
|
|
8562
8887
|
if (!activatorEventRef.current || !dragState.source) return;
|
|
@@ -8600,7 +8925,7 @@ function SharedDragProvider({
|
|
|
8600
8925
|
},
|
|
8601
8926
|
[registeredLists, dragState.source, stableOnMoveItem]
|
|
8602
8927
|
);
|
|
8603
|
-
const contextValue =
|
|
8928
|
+
const contextValue = React55.useMemo(
|
|
8604
8929
|
() => ({
|
|
8605
8930
|
registerList,
|
|
8606
8931
|
unregisterList
|
|
@@ -8608,19 +8933,19 @@ function SharedDragProvider({
|
|
|
8608
8933
|
[registerList, unregisterList]
|
|
8609
8934
|
);
|
|
8610
8935
|
const activeList = dragState.source ? registeredLists.get(dragState.source.listId) : null;
|
|
8611
|
-
const activeDragContextValue =
|
|
8936
|
+
const activeDragContextValue = React55.useMemo(
|
|
8612
8937
|
() => dragState,
|
|
8613
8938
|
[dragState]
|
|
8614
8939
|
);
|
|
8615
|
-
const collisionDetection = (0,
|
|
8940
|
+
const collisionDetection = (0, import_react61.useMemo)(() => {
|
|
8616
8941
|
return getItemFirstCollisionDetection(registeredLists, itemHitSlop);
|
|
8617
8942
|
}, [registeredLists, itemHitSlop]);
|
|
8618
|
-
return /* @__PURE__ */
|
|
8943
|
+
return /* @__PURE__ */ React55.createElement(AnyDragContext.Provider, { value: true }, /* @__PURE__ */ React55.createElement(sharedDragProps.dragRegistrationContext.Provider, { value: contextValue }, /* @__PURE__ */ React55.createElement(
|
|
8619
8944
|
sharedDragProps.activeDragContext.Provider,
|
|
8620
8945
|
{
|
|
8621
8946
|
value: activeDragContextValue
|
|
8622
8947
|
},
|
|
8623
|
-
/* @__PURE__ */
|
|
8948
|
+
/* @__PURE__ */ React55.createElement(
|
|
8624
8949
|
import_core.DndContext,
|
|
8625
8950
|
{
|
|
8626
8951
|
sensors,
|
|
@@ -8630,27 +8955,27 @@ function SharedDragProvider({
|
|
|
8630
8955
|
onDragEnd: handleDragEnd
|
|
8631
8956
|
},
|
|
8632
8957
|
children,
|
|
8633
|
-
mounted && activeList?.renderOverlay && dragState.source && (0,
|
|
8634
|
-
/* @__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)),
|
|
8635
8960
|
document.body
|
|
8636
8961
|
)
|
|
8637
8962
|
)
|
|
8638
8963
|
)));
|
|
8639
8964
|
}
|
|
8640
8965
|
function useMounted() {
|
|
8641
|
-
const [mounted, setMounted] =
|
|
8642
|
-
|
|
8966
|
+
const [mounted, setMounted] = React55.useState(false);
|
|
8967
|
+
React55.useEffect(() => {
|
|
8643
8968
|
setMounted(true);
|
|
8644
8969
|
}, []);
|
|
8645
8970
|
return mounted;
|
|
8646
8971
|
}
|
|
8647
8972
|
function withDragProvider(Component) {
|
|
8648
8973
|
return function WithDragProvider(props) {
|
|
8649
|
-
const anyDragContext =
|
|
8974
|
+
const anyDragContext = React55.useContext(AnyDragContext);
|
|
8650
8975
|
if (!anyDragContext) {
|
|
8651
|
-
return /* @__PURE__ */
|
|
8976
|
+
return /* @__PURE__ */ React55.createElement(SharedDragProvider, null, /* @__PURE__ */ React55.createElement(Component, { ...props }));
|
|
8652
8977
|
}
|
|
8653
|
-
return /* @__PURE__ */
|
|
8978
|
+
return /* @__PURE__ */ React55.createElement(Component, { ...props });
|
|
8654
8979
|
};
|
|
8655
8980
|
}
|
|
8656
8981
|
var getItemFirstCollisionDetection = (registeredLists, itemHitSlop) => (parameters) => {
|
|
@@ -8827,7 +9152,7 @@ function findDropTarget({
|
|
|
8827
9152
|
}
|
|
8828
9153
|
|
|
8829
9154
|
// src/components/sorting/sorting.ts
|
|
8830
|
-
var
|
|
9155
|
+
var React56 = __toESM(require("react"));
|
|
8831
9156
|
var normalizeListTargetIndex = (index, position) => {
|
|
8832
9157
|
return position === "above" ? index : index + 1;
|
|
8833
9158
|
};
|
|
@@ -8843,7 +9168,7 @@ var defaultAcceptsDrop = ({
|
|
|
8843
9168
|
}
|
|
8844
9169
|
return true;
|
|
8845
9170
|
};
|
|
8846
|
-
var SortableItemContext =
|
|
9171
|
+
var SortableItemContext = React56.createContext({
|
|
8847
9172
|
keys: [],
|
|
8848
9173
|
acceptsDrop: defaultAcceptsDrop,
|
|
8849
9174
|
axis: "y",
|
|
@@ -8909,7 +9234,7 @@ function parseDragItemKey(key) {
|
|
|
8909
9234
|
}
|
|
8910
9235
|
|
|
8911
9236
|
// src/components/sorting/Sortable.tsx
|
|
8912
|
-
var SortableItemContext2 =
|
|
9237
|
+
var SortableItemContext2 = React57.createContext({
|
|
8913
9238
|
acceptsDrop: defaultAcceptsDrop,
|
|
8914
9239
|
listId: "",
|
|
8915
9240
|
getDropTargetParentIndex: void 0,
|
|
@@ -8922,7 +9247,7 @@ function useSortableDropIndicator({
|
|
|
8922
9247
|
acceptsDrop: acceptsDrop2,
|
|
8923
9248
|
getDropTargetParentIndex
|
|
8924
9249
|
}) {
|
|
8925
|
-
const { activeDragContext } =
|
|
9250
|
+
const { activeDragContext } = React57.useContext(SortableItemContext2);
|
|
8926
9251
|
const activeDrag = useActiveDrag(activeDragContext);
|
|
8927
9252
|
const { source, target } = activeDrag;
|
|
8928
9253
|
if (!source || !target) return;
|
|
@@ -8953,7 +9278,7 @@ function SortableItem({
|
|
|
8953
9278
|
disabled,
|
|
8954
9279
|
children
|
|
8955
9280
|
}) {
|
|
8956
|
-
const { acceptsDrop: acceptsDrop2, listId, getDropTargetParentIndex } =
|
|
9281
|
+
const { acceptsDrop: acceptsDrop2, listId, getDropTargetParentIndex } = React57.useContext(SortableItemContext2);
|
|
8957
9282
|
const dragItemKey = createDragItemKey(listId, id);
|
|
8958
9283
|
const {
|
|
8959
9284
|
attributes,
|
|
@@ -8968,7 +9293,7 @@ function SortableItem({
|
|
|
8968
9293
|
id: dragItemKey,
|
|
8969
9294
|
disabled
|
|
8970
9295
|
});
|
|
8971
|
-
const ref =
|
|
9296
|
+
const ref = React57.useCallback(
|
|
8972
9297
|
(node) => setNodeRef(node),
|
|
8973
9298
|
[setNodeRef]
|
|
8974
9299
|
);
|
|
@@ -8979,7 +9304,7 @@ function SortableItem({
|
|
|
8979
9304
|
acceptsDrop: acceptsDrop2,
|
|
8980
9305
|
getDropTargetParentIndex
|
|
8981
9306
|
});
|
|
8982
|
-
const props = (0,
|
|
9307
|
+
const props = (0, import_react62.useMemo)(
|
|
8983
9308
|
() => ({
|
|
8984
9309
|
ref,
|
|
8985
9310
|
...attributes,
|
|
@@ -8988,7 +9313,7 @@ function SortableItem({
|
|
|
8988
9313
|
}),
|
|
8989
9314
|
[ref, attributes, listeners, isDragging]
|
|
8990
9315
|
);
|
|
8991
|
-
const extraProps = (0,
|
|
9316
|
+
const extraProps = (0, import_react62.useMemo)(
|
|
8992
9317
|
() => ({
|
|
8993
9318
|
isDragging,
|
|
8994
9319
|
isOverlay: false,
|
|
@@ -9022,9 +9347,9 @@ function SortableRoot_({
|
|
|
9022
9347
|
containerRef,
|
|
9023
9348
|
itemHitSlop
|
|
9024
9349
|
}) {
|
|
9025
|
-
const defaultId =
|
|
9350
|
+
const defaultId = React57.useId();
|
|
9026
9351
|
const id = idProp ?? defaultId;
|
|
9027
|
-
const keys =
|
|
9352
|
+
const keys = React57.useMemo(() => {
|
|
9028
9353
|
return keysProp.map((key) => createDragItemKey(id, key));
|
|
9029
9354
|
}, [keysProp, id]);
|
|
9030
9355
|
const { registerList, unregisterList } = useDragRegistration(
|
|
@@ -9033,7 +9358,7 @@ function SortableRoot_({
|
|
|
9033
9358
|
const { setNodeRef: setDroppableRef } = (0, import_core2.useDroppable)({
|
|
9034
9359
|
id
|
|
9035
9360
|
});
|
|
9036
|
-
|
|
9361
|
+
React57.useEffect(() => {
|
|
9037
9362
|
const listConfig = {
|
|
9038
9363
|
id,
|
|
9039
9364
|
keys,
|
|
@@ -9087,7 +9412,7 @@ function SortableRoot_({
|
|
|
9087
9412
|
keys,
|
|
9088
9413
|
itemHitSlop
|
|
9089
9414
|
]);
|
|
9090
|
-
const contextValue =
|
|
9415
|
+
const contextValue = React57.useMemo(
|
|
9091
9416
|
() => ({
|
|
9092
9417
|
keys,
|
|
9093
9418
|
acceptsDrop: acceptsDrop2,
|
|
@@ -9098,17 +9423,17 @@ function SortableRoot_({
|
|
|
9098
9423
|
[keys, acceptsDrop2, id, getDropTargetParentIndex, sharedDragProps]
|
|
9099
9424
|
);
|
|
9100
9425
|
const activeDragContext = sharedDragProps?.activeDragContext ?? ActiveDragContext;
|
|
9101
|
-
const dragState =
|
|
9426
|
+
const dragState = React57.useContext(activeDragContext);
|
|
9102
9427
|
const isDragging = !!dragState?.source;
|
|
9103
|
-
|
|
9428
|
+
React57.useEffect(() => {
|
|
9104
9429
|
onIsDraggingChange?.(isDragging);
|
|
9105
9430
|
}, [isDragging, onIsDraggingChange]);
|
|
9106
|
-
|
|
9431
|
+
React57.useEffect(() => {
|
|
9107
9432
|
if (containerRef) {
|
|
9108
9433
|
setDroppableRef(containerRef.current);
|
|
9109
9434
|
}
|
|
9110
9435
|
});
|
|
9111
|
-
return /* @__PURE__ */
|
|
9436
|
+
return /* @__PURE__ */ React57.createElement(SortableItemContext2.Provider, { value: contextValue }, /* @__PURE__ */ React57.createElement(
|
|
9112
9437
|
import_sortable.SortableContext,
|
|
9113
9438
|
{
|
|
9114
9439
|
items: keys,
|
|
@@ -9125,11 +9450,11 @@ var Sortable_ = function Sortable_2({
|
|
|
9125
9450
|
renderItem,
|
|
9126
9451
|
...rest
|
|
9127
9452
|
}) {
|
|
9128
|
-
const keys =
|
|
9453
|
+
const keys = React57.useMemo(
|
|
9129
9454
|
() => items.map(keyExtractor),
|
|
9130
9455
|
[items, keyExtractor]
|
|
9131
9456
|
);
|
|
9132
|
-
const renderOverlay =
|
|
9457
|
+
const renderOverlay = React57.useCallback(
|
|
9133
9458
|
(index) => {
|
|
9134
9459
|
return renderItem(
|
|
9135
9460
|
items[index],
|
|
@@ -9159,14 +9484,14 @@ var Sortable_ = function Sortable_2({
|
|
|
9159
9484
|
},
|
|
9160
9485
|
[renderItem, items]
|
|
9161
9486
|
);
|
|
9162
|
-
return /* @__PURE__ */
|
|
9487
|
+
return /* @__PURE__ */ React57.createElement(
|
|
9163
9488
|
SortableRoot,
|
|
9164
9489
|
{
|
|
9165
9490
|
...rest,
|
|
9166
9491
|
keys,
|
|
9167
9492
|
renderOverlay: shouldRenderOverlay ? renderOverlay : void 0
|
|
9168
9493
|
},
|
|
9169
|
-
keys.map((key, index) => /* @__PURE__ */
|
|
9494
|
+
keys.map((key, index) => /* @__PURE__ */ React57.createElement(SortableItem, { key, id: key }, (props, extraProps) => {
|
|
9170
9495
|
return renderItem(items[index], props, extraProps);
|
|
9171
9496
|
}))
|
|
9172
9497
|
);
|
|
@@ -9180,87 +9505,6 @@ var Sortable = Object.assign(Sortable_, {
|
|
|
9180
9505
|
var ROW_HEIGHT = 31;
|
|
9181
9506
|
var SECTION_HEADER_LABEL_HEIGHT = 24;
|
|
9182
9507
|
var TALL_ROW_HEIGHT = 50;
|
|
9183
|
-
var VirtualizedListRow = (0, import_react62.memo)(function VirtualizedListRow2({
|
|
9184
|
-
index,
|
|
9185
|
-
style: style2
|
|
9186
|
-
}) {
|
|
9187
|
-
const renderItem = (0, import_react62.useContext)(RenderItemContext);
|
|
9188
|
-
return /* @__PURE__ */ import_react62.default.createElement("div", { key: index, style: style2 }, renderItem(index));
|
|
9189
|
-
});
|
|
9190
|
-
var VirtualizedListInner = forwardRefGeneric(function VirtualizedListInner2({
|
|
9191
|
-
size,
|
|
9192
|
-
scrollElement,
|
|
9193
|
-
items,
|
|
9194
|
-
getItemHeight,
|
|
9195
|
-
keyExtractor,
|
|
9196
|
-
renderItem
|
|
9197
|
-
}, ref) {
|
|
9198
|
-
const listRef = (0, import_react62.useRef)(null);
|
|
9199
|
-
(0, import_react62.useImperativeHandle)(ref, () => ({
|
|
9200
|
-
scrollToIndex(index) {
|
|
9201
|
-
listRef.current?.scrollToItem(index);
|
|
9202
|
-
}
|
|
9203
|
-
}));
|
|
9204
|
-
(0, import_react62.useLayoutEffect)(() => {
|
|
9205
|
-
listRef.current?.resetAfterIndex(0);
|
|
9206
|
-
}, [
|
|
9207
|
-
// When items or the height resolver change, re-render the virtualized list
|
|
9208
|
-
// since VariableSizeList caches sizes per index.
|
|
9209
|
-
items,
|
|
9210
|
-
getItemHeight
|
|
9211
|
-
]);
|
|
9212
|
-
const listStyle = (0, import_react62.useMemo)(
|
|
9213
|
-
() => ({
|
|
9214
|
-
overflowX: "initial",
|
|
9215
|
-
overflowY: "initial",
|
|
9216
|
-
overflow: "initial"
|
|
9217
|
-
}),
|
|
9218
|
-
[]
|
|
9219
|
-
);
|
|
9220
|
-
return /* @__PURE__ */ import_react62.default.createElement(RenderItemContext.Provider, { value: renderItem }, /* @__PURE__ */ import_react62.default.createElement(
|
|
9221
|
-
import_react_virtualized.WindowScroller,
|
|
9222
|
-
{
|
|
9223
|
-
scrollElement,
|
|
9224
|
-
style: (0, import_react62.useMemo)(() => ({ flex: "1 1 auto" }), [])
|
|
9225
|
-
},
|
|
9226
|
-
(0, import_react62.useCallback)(
|
|
9227
|
-
({
|
|
9228
|
-
registerChild,
|
|
9229
|
-
onChildScroll,
|
|
9230
|
-
scrollTop
|
|
9231
|
-
}) => /* @__PURE__ */ import_react62.default.createElement("div", { ref: registerChild }, /* @__PURE__ */ import_react62.default.createElement(
|
|
9232
|
-
import_react_window.VariableSizeList,
|
|
9233
|
-
{
|
|
9234
|
-
ref: listRef,
|
|
9235
|
-
key: scrollTop,
|
|
9236
|
-
style: listStyle,
|
|
9237
|
-
itemKey: keyExtractor,
|
|
9238
|
-
onScroll: ({ scrollOffset }) => {
|
|
9239
|
-
onChildScroll({ scrollTop: scrollOffset });
|
|
9240
|
-
},
|
|
9241
|
-
initialScrollOffset: scrollTop,
|
|
9242
|
-
width: size.width,
|
|
9243
|
-
height: size.height,
|
|
9244
|
-
itemCount: items.length,
|
|
9245
|
-
itemSize: getItemHeight,
|
|
9246
|
-
estimatedItemSize: ROW_HEIGHT
|
|
9247
|
-
},
|
|
9248
|
-
VirtualizedListRow
|
|
9249
|
-
)),
|
|
9250
|
-
[
|
|
9251
|
-
listStyle,
|
|
9252
|
-
keyExtractor,
|
|
9253
|
-
size.width,
|
|
9254
|
-
size.height,
|
|
9255
|
-
items.length,
|
|
9256
|
-
getItemHeight
|
|
9257
|
-
]
|
|
9258
|
-
)
|
|
9259
|
-
));
|
|
9260
|
-
});
|
|
9261
|
-
var VirtualizedList = (0, import_react62.memo)(
|
|
9262
|
-
VirtualizedListInner
|
|
9263
|
-
);
|
|
9264
9508
|
var ListViewRoot = memoGeneric(
|
|
9265
9509
|
forwardRefGeneric(function ListViewRootInner({
|
|
9266
9510
|
id,
|
|
@@ -9299,7 +9543,7 @@ var ListViewRoot = memoGeneric(
|
|
|
9299
9543
|
itemHeight,
|
|
9300
9544
|
getItemHeightForItem
|
|
9301
9545
|
}, forwardedRef) {
|
|
9302
|
-
const handleClick = (0,
|
|
9546
|
+
const handleClick = (0, import_react63.useCallback)(
|
|
9303
9547
|
(event) => {
|
|
9304
9548
|
if (event.target instanceof HTMLElement && event.target.classList.contains("scroll-component"))
|
|
9305
9549
|
return;
|
|
@@ -9309,11 +9553,11 @@ var ListViewRoot = memoGeneric(
|
|
|
9309
9553
|
},
|
|
9310
9554
|
[onPress]
|
|
9311
9555
|
);
|
|
9312
|
-
const renderChild = (0,
|
|
9556
|
+
const renderChild = (0, import_react63.useCallback)(
|
|
9313
9557
|
(index) => renderItem(data[index], index, { isDragOverlay: false }),
|
|
9314
9558
|
[data, renderItem]
|
|
9315
9559
|
);
|
|
9316
|
-
const defaultContextValue = (0,
|
|
9560
|
+
const defaultContextValue = (0, import_react63.useMemo)(
|
|
9317
9561
|
() => ({
|
|
9318
9562
|
marginType: "none",
|
|
9319
9563
|
selectedPosition: "only",
|
|
@@ -9321,22 +9565,22 @@ var ListViewRoot = memoGeneric(
|
|
|
9321
9565
|
}),
|
|
9322
9566
|
[]
|
|
9323
9567
|
);
|
|
9324
|
-
const getItemContextValue = (0,
|
|
9568
|
+
const getItemContextValue = (0, import_react63.useCallback)(
|
|
9325
9569
|
(i) => {
|
|
9326
9570
|
if (variant === "bare" || variant === "normal") {
|
|
9327
9571
|
const current2 = renderChild(i);
|
|
9328
|
-
if (!(0,
|
|
9572
|
+
if (!(0, import_react63.isValidElement)(current2)) return defaultContextValue;
|
|
9329
9573
|
return {
|
|
9330
9574
|
...defaultContextValue,
|
|
9331
9575
|
isSectionHeader: !!current2.props.isSectionHeader
|
|
9332
9576
|
};
|
|
9333
9577
|
}
|
|
9334
9578
|
const current = renderChild(i);
|
|
9335
|
-
if (!(0,
|
|
9579
|
+
if (!(0, import_react63.isValidElement)(current)) return;
|
|
9336
9580
|
const prevChild = i - 1 >= 0 && renderChild(i - 1);
|
|
9337
9581
|
const nextChild = i + 1 < data.length && renderChild(i + 1);
|
|
9338
|
-
const next = (0,
|
|
9339
|
-
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;
|
|
9340
9584
|
const hasMarginTop = !prev;
|
|
9341
9585
|
const hasMarginBottom = !next || current.props.isSectionHeader || next && next.props.isSectionHeader;
|
|
9342
9586
|
let marginType;
|
|
@@ -9369,27 +9613,27 @@ var ListViewRoot = memoGeneric(
|
|
|
9369
9613
|
},
|
|
9370
9614
|
[variant, defaultContextValue, renderChild, data.length]
|
|
9371
9615
|
);
|
|
9372
|
-
const draggingContextOverlayValue = (0,
|
|
9616
|
+
const draggingContextOverlayValue = (0, import_react63.useMemo)(
|
|
9373
9617
|
() => ({
|
|
9374
9618
|
isDragOverlay: true
|
|
9375
9619
|
}),
|
|
9376
9620
|
[]
|
|
9377
9621
|
);
|
|
9378
|
-
const renderOverlay = (0,
|
|
9379
|
-
(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 }))),
|
|
9380
9624
|
[draggingContextOverlayValue, renderItem, data]
|
|
9381
9625
|
);
|
|
9382
|
-
const renderWrappedChild = (0,
|
|
9626
|
+
const renderWrappedChild = (0, import_react63.useCallback)(
|
|
9383
9627
|
(index) => {
|
|
9384
9628
|
const contextValue2 = getItemContextValue(index);
|
|
9385
9629
|
const current = renderChild(index);
|
|
9386
|
-
if (!contextValue2 || !(0,
|
|
9387
|
-
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);
|
|
9388
9632
|
},
|
|
9389
9633
|
[getItemContextValue, renderChild]
|
|
9390
9634
|
);
|
|
9391
|
-
const ids = (0,
|
|
9392
|
-
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(
|
|
9393
9637
|
Sortable.Root,
|
|
9394
9638
|
{
|
|
9395
9639
|
id: sortableId,
|
|
@@ -9402,8 +9646,8 @@ var ListViewRoot = memoGeneric(
|
|
|
9402
9646
|
},
|
|
9403
9647
|
children
|
|
9404
9648
|
) : children;
|
|
9405
|
-
const withScrollable = (children) => scrollable ? /* @__PURE__ */
|
|
9406
|
-
const getItemHeight = (0,
|
|
9649
|
+
const withScrollable = (children) => scrollable ? /* @__PURE__ */ import_react63.default.createElement(ScrollArea, null, children) : children;
|
|
9650
|
+
const getItemHeight = (0, import_react63.useCallback)(
|
|
9407
9651
|
(index) => {
|
|
9408
9652
|
const child = getItemContextValue(index);
|
|
9409
9653
|
if (child?.isSectionHeader && sectionHeaderVariant === "label") {
|
|
@@ -9423,13 +9667,13 @@ var ListViewRoot = memoGeneric(
|
|
|
9423
9667
|
data
|
|
9424
9668
|
]
|
|
9425
9669
|
);
|
|
9426
|
-
const getKey = (0,
|
|
9670
|
+
const getKey = (0, import_react63.useCallback)(
|
|
9427
9671
|
(index) => keyExtractor(data[index], index),
|
|
9428
9672
|
[data, keyExtractor]
|
|
9429
9673
|
);
|
|
9430
|
-
const draggingContextValue = (0,
|
|
9431
|
-
const gapStyle = (0,
|
|
9432
|
-
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)(
|
|
9433
9677
|
() => ({
|
|
9434
9678
|
pressEventName,
|
|
9435
9679
|
colorScheme,
|
|
@@ -9453,7 +9697,7 @@ var ListViewRoot = memoGeneric(
|
|
|
9453
9697
|
indentation
|
|
9454
9698
|
]
|
|
9455
9699
|
);
|
|
9456
|
-
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(
|
|
9457
9701
|
"div",
|
|
9458
9702
|
{
|
|
9459
9703
|
id,
|
|
@@ -9480,21 +9724,21 @@ var ListViewRoot = memoGeneric(
|
|
|
9480
9724
|
onDragLeave,
|
|
9481
9725
|
onDrop
|
|
9482
9726
|
},
|
|
9483
|
-
data.length === 0 && renderEmptyState ? renderEmptyState() :
|
|
9484
|
-
|
|
9485
|
-
|
|
9486
|
-
|
|
9487
|
-
|
|
9488
|
-
|
|
9489
|
-
|
|
9490
|
-
|
|
9491
|
-
|
|
9492
|
-
|
|
9493
|
-
|
|
9494
|
-
|
|
9495
|
-
}
|
|
9496
|
-
) : (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
|
+
}
|
|
9497
9739
|
)
|
|
9740
|
+
) : withScrollable(
|
|
9741
|
+
withSortable((0, import_noya_utils8.range)(0, data.length).map(renderWrappedChild))
|
|
9498
9742
|
)
|
|
9499
9743
|
)));
|
|
9500
9744
|
})
|
|
@@ -9502,7 +9746,7 @@ var ListViewRoot = memoGeneric(
|
|
|
9502
9746
|
|
|
9503
9747
|
// src/components/listView/ListViewRow.tsx
|
|
9504
9748
|
var import_react_compose_refs2 = require("@radix-ui/react-compose-refs");
|
|
9505
|
-
var
|
|
9749
|
+
var import_react64 = __toESM(require("react"));
|
|
9506
9750
|
|
|
9507
9751
|
// src/hooks/mergeEventHandlers.ts
|
|
9508
9752
|
var import_noya_utils9 = require("@noya-app/noya-utils");
|
|
@@ -9528,7 +9772,7 @@ function mergeEventHandlers(...handlerMaps) {
|
|
|
9528
9772
|
}
|
|
9529
9773
|
|
|
9530
9774
|
// src/components/listView/ListViewRow.tsx
|
|
9531
|
-
var RowContainer = (0,
|
|
9775
|
+
var RowContainer = (0, import_react64.forwardRef)(
|
|
9532
9776
|
({
|
|
9533
9777
|
as: Component = "div",
|
|
9534
9778
|
href,
|
|
@@ -9555,7 +9799,7 @@ var RowContainer = (0, import_react63.forwardRef)(
|
|
|
9555
9799
|
"aria-selected": ariaSelected,
|
|
9556
9800
|
...props
|
|
9557
9801
|
}, ref) => {
|
|
9558
|
-
return /* @__PURE__ */
|
|
9802
|
+
return /* @__PURE__ */ import_react64.default.createElement(
|
|
9559
9803
|
Component,
|
|
9560
9804
|
{
|
|
9561
9805
|
ref,
|
|
@@ -9627,7 +9871,7 @@ var RowContainer = (0, import_react63.forwardRef)(
|
|
|
9627
9871
|
);
|
|
9628
9872
|
}
|
|
9629
9873
|
);
|
|
9630
|
-
var ListViewDragIndicatorElement = (0,
|
|
9874
|
+
var ListViewDragIndicatorElement = (0, import_react64.forwardRef)(
|
|
9631
9875
|
({
|
|
9632
9876
|
className,
|
|
9633
9877
|
$relativeDropPosition,
|
|
@@ -9637,7 +9881,7 @@ var ListViewDragIndicatorElement = (0, import_react63.forwardRef)(
|
|
|
9637
9881
|
style: style2,
|
|
9638
9882
|
...props
|
|
9639
9883
|
}, ref) => {
|
|
9640
|
-
return /* @__PURE__ */
|
|
9884
|
+
return /* @__PURE__ */ import_react64.default.createElement(
|
|
9641
9885
|
"div",
|
|
9642
9886
|
{
|
|
9643
9887
|
ref,
|
|
@@ -9705,27 +9949,27 @@ var ListViewRow = memoGeneric(
|
|
|
9705
9949
|
divider,
|
|
9706
9950
|
sortable,
|
|
9707
9951
|
indentation
|
|
9708
|
-
} = (0,
|
|
9709
|
-
const { marginType, selectedPosition } = (0,
|
|
9952
|
+
} = (0, import_react64.useContext)(ListViewContext);
|
|
9953
|
+
const { marginType, selectedPosition } = (0, import_react64.useContext)(ListRowContext);
|
|
9710
9954
|
const { hoverProps } = useHover({
|
|
9711
9955
|
onHoverChange
|
|
9712
9956
|
});
|
|
9713
|
-
const { isDragOverlay } = (0,
|
|
9714
|
-
const handlePress = (0,
|
|
9957
|
+
const { isDragOverlay } = (0, import_react64.useContext)(ListViewDraggingContext);
|
|
9958
|
+
const handlePress = (0, import_react64.useCallback)(
|
|
9715
9959
|
(event) => {
|
|
9716
9960
|
if (event.button !== 0) return;
|
|
9717
9961
|
onPress?.(event);
|
|
9718
9962
|
},
|
|
9719
9963
|
[onPress]
|
|
9720
9964
|
);
|
|
9721
|
-
const handleDoubleClick = (0,
|
|
9965
|
+
const handleDoubleClick = (0, import_react64.useCallback)(
|
|
9722
9966
|
(event) => {
|
|
9723
9967
|
event.stopPropagation();
|
|
9724
9968
|
onDoubleClick?.();
|
|
9725
9969
|
},
|
|
9726
9970
|
[onDoubleClick]
|
|
9727
9971
|
);
|
|
9728
|
-
const mergedStyle = (0,
|
|
9972
|
+
const mergedStyle = (0, import_react64.useMemo)(() => {
|
|
9729
9973
|
return isDragOverlay ? {
|
|
9730
9974
|
// TODO: Where do these offsets actually come from?
|
|
9731
9975
|
transform: `translate3d(-36px, -6px, 0)`,
|
|
@@ -9736,7 +9980,7 @@ var ListViewRow = memoGeneric(
|
|
|
9736
9980
|
const renderContent = (renderProps, ref, relativeDropPositionProp) => {
|
|
9737
9981
|
const Component = RowContainer;
|
|
9738
9982
|
const relativeDropPosition = testRelativeDropPosition ?? relativeDropPositionProp;
|
|
9739
|
-
const element = /* @__PURE__ */
|
|
9983
|
+
const element = /* @__PURE__ */ import_react64.default.createElement(
|
|
9740
9984
|
Component,
|
|
9741
9985
|
{
|
|
9742
9986
|
as,
|
|
@@ -9771,7 +10015,7 @@ var ListViewRow = memoGeneric(
|
|
|
9771
10015
|
className,
|
|
9772
10016
|
$clickable: !!onPress
|
|
9773
10017
|
},
|
|
9774
|
-
relativeDropPosition && /* @__PURE__ */
|
|
10018
|
+
relativeDropPosition && /* @__PURE__ */ import_react64.default.createElement(
|
|
9775
10019
|
ListViewDragIndicatorElement,
|
|
9776
10020
|
{
|
|
9777
10021
|
key: relativeDropPosition,
|
|
@@ -9786,11 +10030,11 @@ var ListViewRow = memoGeneric(
|
|
|
9786
10030
|
}) : dragIndicatorStyle
|
|
9787
10031
|
}
|
|
9788
10032
|
),
|
|
9789
|
-
depth > 0 && /* @__PURE__ */
|
|
10033
|
+
depth > 0 && /* @__PURE__ */ import_react64.default.createElement(Spacer.Horizontal, { size: depth * indentation }),
|
|
9790
10034
|
children
|
|
9791
10035
|
);
|
|
9792
10036
|
if (menuItems && onSelectMenuItem) {
|
|
9793
|
-
return /* @__PURE__ */
|
|
10037
|
+
return /* @__PURE__ */ import_react64.default.createElement(
|
|
9794
10038
|
ContextMenu,
|
|
9795
10039
|
{
|
|
9796
10040
|
items: menuItems,
|
|
@@ -9803,7 +10047,7 @@ var ListViewRow = memoGeneric(
|
|
|
9803
10047
|
return element;
|
|
9804
10048
|
};
|
|
9805
10049
|
if (sortable && id) {
|
|
9806
|
-
return /* @__PURE__ */
|
|
10050
|
+
return /* @__PURE__ */ import_react64.default.createElement(
|
|
9807
10051
|
Sortable.Item,
|
|
9808
10052
|
{
|
|
9809
10053
|
id,
|
|
@@ -9821,12 +10065,12 @@ var ListViewRow = memoGeneric(
|
|
|
9821
10065
|
);
|
|
9822
10066
|
|
|
9823
10067
|
// src/components/listView/ListViewRowTitle.tsx
|
|
9824
|
-
var
|
|
9825
|
-
var ListViewRowTitle = (0,
|
|
10068
|
+
var import_react65 = __toESM(require("react"));
|
|
10069
|
+
var ListViewRowTitle = (0, import_react65.memo)(function ListViewRowTitle2({
|
|
9826
10070
|
className,
|
|
9827
10071
|
...props
|
|
9828
10072
|
}) {
|
|
9829
|
-
return /* @__PURE__ */
|
|
10073
|
+
return /* @__PURE__ */ import_react65.default.createElement(
|
|
9830
10074
|
"span",
|
|
9831
10075
|
{
|
|
9832
10076
|
className: cx(
|
|
@@ -9883,7 +10127,7 @@ var ListView;
|
|
|
9883
10127
|
})(ListView || (ListView = {}));
|
|
9884
10128
|
|
|
9885
10129
|
// src/components/TreeView.tsx
|
|
9886
|
-
var
|
|
10130
|
+
var import_react66 = __toESM(require("react"));
|
|
9887
10131
|
var TreeRow = forwardRefGeneric(function TreeRow2({
|
|
9888
10132
|
icon,
|
|
9889
10133
|
expanded,
|
|
@@ -9894,9 +10138,9 @@ var TreeRow = forwardRefGeneric(function TreeRow2({
|
|
|
9894
10138
|
children,
|
|
9895
10139
|
...rest
|
|
9896
10140
|
}, forwardedRef) {
|
|
9897
|
-
const { expandable } = (0,
|
|
10141
|
+
const { expandable } = (0, import_react66.useContext)(ListViewContext);
|
|
9898
10142
|
const stableOnClickChevron = useStableCallback(onClickChevron);
|
|
9899
|
-
const handleClickChevron = (0,
|
|
10143
|
+
const handleClickChevron = (0, import_react66.useCallback)(
|
|
9900
10144
|
(event) => {
|
|
9901
10145
|
event.stopPropagation();
|
|
9902
10146
|
event.preventDefault();
|
|
@@ -9904,7 +10148,7 @@ var TreeRow = forwardRefGeneric(function TreeRow2({
|
|
|
9904
10148
|
},
|
|
9905
10149
|
[stableOnClickChevron]
|
|
9906
10150
|
);
|
|
9907
|
-
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(
|
|
9908
10152
|
IconButton,
|
|
9909
10153
|
{
|
|
9910
10154
|
as: chevronAs,
|
|
@@ -9913,7 +10157,7 @@ var TreeRow = forwardRefGeneric(function TreeRow2({
|
|
|
9913
10157
|
onClick: handleClickChevron,
|
|
9914
10158
|
selected: rest.selected
|
|
9915
10159
|
}
|
|
9916
|
-
), /* @__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(
|
|
9917
10161
|
IconButton,
|
|
9918
10162
|
{
|
|
9919
10163
|
as: chevronAs,
|
|
@@ -9922,7 +10166,7 @@ var TreeRow = forwardRefGeneric(function TreeRow2({
|
|
|
9922
10166
|
onClick: handleClickChevron,
|
|
9923
10167
|
selected: rest.selected
|
|
9924
10168
|
}
|
|
9925
|
-
), /* @__PURE__ */
|
|
10169
|
+
), /* @__PURE__ */ import_react66.default.createElement(Spacer.Horizontal, { size: 8 }))));
|
|
9926
10170
|
});
|
|
9927
10171
|
var TreeView;
|
|
9928
10172
|
((TreeView2) => {
|
|
@@ -9990,9 +10234,9 @@ var List = memoGeneric(
|
|
|
9990
10234
|
getItemStyle,
|
|
9991
10235
|
getItemClassName
|
|
9992
10236
|
} = props;
|
|
9993
|
-
const [internalHoveredId, setHoveredId] = (0,
|
|
9994
|
-
const [internalRenamingId, setRenamingId] = (0,
|
|
9995
|
-
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)();
|
|
9996
10240
|
const hoveredId = internalHoveredId ?? testHoveredId;
|
|
9997
10241
|
const renamingId = testRenamingId ?? internalRenamingId;
|
|
9998
10242
|
const itemClassName = cx(
|
|
@@ -10000,7 +10244,7 @@ var List = memoGeneric(
|
|
|
10000
10244
|
pyMap[size],
|
|
10001
10245
|
itemClassNameProp
|
|
10002
10246
|
);
|
|
10003
|
-
const itemStyle = (0,
|
|
10247
|
+
const itemStyle = (0, import_react67.useMemo)(
|
|
10004
10248
|
() => ({ ...cssVarOverrides, ...itemStyleProp }),
|
|
10005
10249
|
[itemStyleProp]
|
|
10006
10250
|
);
|
|
@@ -10028,17 +10272,17 @@ var List = memoGeneric(
|
|
|
10028
10272
|
};
|
|
10029
10273
|
const ViewComponent = expandable ? TreeView : ListView;
|
|
10030
10274
|
const LinkComponent2 = useLinkComponent();
|
|
10031
|
-
const fileDropTargetRef = (0,
|
|
10275
|
+
const fileDropTargetRef = (0, import_react67.useRef)(null);
|
|
10032
10276
|
const { isDropTargetActive, dropTargetProps } = useFileDropTarget(
|
|
10033
10277
|
fileDropTargetRef,
|
|
10034
10278
|
onFilesDrop
|
|
10035
10279
|
);
|
|
10036
|
-
(0,
|
|
10280
|
+
(0, import_react67.useImperativeHandle)(ref, () => ({
|
|
10037
10281
|
editName: (id) => {
|
|
10038
10282
|
setRenamingId(id);
|
|
10039
10283
|
}
|
|
10040
10284
|
}));
|
|
10041
|
-
return /* @__PURE__ */
|
|
10285
|
+
return /* @__PURE__ */ import_react67.default.createElement(
|
|
10042
10286
|
ViewComponent.Root,
|
|
10043
10287
|
{
|
|
10044
10288
|
variant: "bare",
|
|
@@ -10087,7 +10331,7 @@ var List = memoGeneric(
|
|
|
10087
10331
|
handleSelect(id);
|
|
10088
10332
|
}
|
|
10089
10333
|
};
|
|
10090
|
-
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(
|
|
10091
10335
|
ActionMenu,
|
|
10092
10336
|
{
|
|
10093
10337
|
menuItems,
|
|
@@ -10107,7 +10351,7 @@ var List = memoGeneric(
|
|
|
10107
10351
|
let below = detailPosition === "below" ? detailContent : void 0;
|
|
10108
10352
|
if (below && normalizedDetailLineClamp) {
|
|
10109
10353
|
const clampClassName = DETAIL_LINE_CLAMP_CLASSES[normalizedDetailLineClamp];
|
|
10110
|
-
below = /* @__PURE__ */
|
|
10354
|
+
below = /* @__PURE__ */ import_react67.default.createElement(
|
|
10111
10355
|
"div",
|
|
10112
10356
|
{
|
|
10113
10357
|
className: cx(
|
|
@@ -10120,7 +10364,7 @@ var List = memoGeneric(
|
|
|
10120
10364
|
}
|
|
10121
10365
|
const perItemStyle = getItemStyle?.(item, isSelected);
|
|
10122
10366
|
const perItemClassName = getItemClassName?.(item, isSelected);
|
|
10123
|
-
return /* @__PURE__ */
|
|
10367
|
+
return /* @__PURE__ */ import_react67.default.createElement(
|
|
10124
10368
|
ViewComponent.Row,
|
|
10125
10369
|
{
|
|
10126
10370
|
as: typeof href === "string" ? LinkComponent2 : void 0,
|
|
@@ -10175,7 +10419,7 @@ var List = memoGeneric(
|
|
|
10175
10419
|
},
|
|
10176
10420
|
dragIndicatorStyle
|
|
10177
10421
|
},
|
|
10178
|
-
/* @__PURE__ */
|
|
10422
|
+
/* @__PURE__ */ import_react67.default.createElement(
|
|
10179
10423
|
"div",
|
|
10180
10424
|
{
|
|
10181
10425
|
className: cx(
|
|
@@ -10183,7 +10427,7 @@ var List = memoGeneric(
|
|
|
10183
10427
|
rowGapMap[size]
|
|
10184
10428
|
)
|
|
10185
10429
|
},
|
|
10186
|
-
thumbnail && /* @__PURE__ */
|
|
10430
|
+
thumbnail && /* @__PURE__ */ import_react67.default.createElement(
|
|
10187
10431
|
"div",
|
|
10188
10432
|
{
|
|
10189
10433
|
className: cx(
|
|
@@ -10196,13 +10440,13 @@ var List = memoGeneric(
|
|
|
10196
10440
|
},
|
|
10197
10441
|
thumbnail
|
|
10198
10442
|
),
|
|
10199
|
-
/* @__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(
|
|
10200
10444
|
"div",
|
|
10201
10445
|
{
|
|
10202
10446
|
className: "n-flex-1 n-w-0 n-flex n-items-center",
|
|
10203
10447
|
tabIndex: -1
|
|
10204
10448
|
},
|
|
10205
|
-
isRenaming ? /* @__PURE__ */
|
|
10449
|
+
isRenaming ? /* @__PURE__ */ import_react67.default.createElement(
|
|
10206
10450
|
ViewComponent.EditableRowTitle,
|
|
10207
10451
|
{
|
|
10208
10452
|
value: getName(item),
|
|
@@ -10218,7 +10462,7 @@ var List = memoGeneric(
|
|
|
10218
10462
|
e.stopPropagation();
|
|
10219
10463
|
}
|
|
10220
10464
|
}
|
|
10221
|
-
) : /* @__PURE__ */
|
|
10465
|
+
) : /* @__PURE__ */ import_react67.default.createElement(
|
|
10222
10466
|
ViewComponent.RowTitle,
|
|
10223
10467
|
{
|
|
10224
10468
|
className: cx(
|
|
@@ -10228,7 +10472,7 @@ var List = memoGeneric(
|
|
|
10228
10472
|
},
|
|
10229
10473
|
getName(item)
|
|
10230
10474
|
)
|
|
10231
|
-
), 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(
|
|
10232
10476
|
DetailContainer,
|
|
10233
10477
|
{
|
|
10234
10478
|
selected: isSelected,
|
|
@@ -10236,8 +10480,8 @@ var List = memoGeneric(
|
|
|
10236
10480
|
},
|
|
10237
10481
|
below
|
|
10238
10482
|
)),
|
|
10239
|
-
right && detailPosition === "below" && /* @__PURE__ */
|
|
10240
|
-
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)
|
|
10241
10485
|
)
|
|
10242
10486
|
);
|
|
10243
10487
|
}
|
|
@@ -10245,12 +10489,12 @@ var List = memoGeneric(
|
|
|
10245
10489
|
);
|
|
10246
10490
|
})
|
|
10247
10491
|
);
|
|
10248
|
-
var DetailContainer = (0,
|
|
10492
|
+
var DetailContainer = (0, import_react67.memo)(function DetailContainer2({
|
|
10249
10493
|
children,
|
|
10250
10494
|
selected,
|
|
10251
10495
|
align = "center"
|
|
10252
10496
|
}) {
|
|
10253
|
-
return /* @__PURE__ */
|
|
10497
|
+
return /* @__PURE__ */ import_react67.default.createElement(
|
|
10254
10498
|
"div",
|
|
10255
10499
|
{
|
|
10256
10500
|
className: cx(
|
|
@@ -10321,7 +10565,7 @@ var itemHeightMap = {
|
|
|
10321
10565
|
// src/components/Collection.tsx
|
|
10322
10566
|
var Collection = forwardRefGeneric(function Collection2(props, ref) {
|
|
10323
10567
|
const { viewType, ...rest } = props;
|
|
10324
|
-
return viewType === "grid" ? /* @__PURE__ */
|
|
10568
|
+
return viewType === "grid" ? /* @__PURE__ */ import_react68.default.createElement(Grid, { ref, ...rest }) : /* @__PURE__ */ import_react68.default.createElement(List, { ref, ...rest });
|
|
10325
10569
|
});
|
|
10326
10570
|
|
|
10327
10571
|
// ../noya-color/src/convert.ts
|
|
@@ -10478,7 +10722,7 @@ var import_css_background = __toESM(require_css_background());
|
|
|
10478
10722
|
|
|
10479
10723
|
// src/components/ColorSwatch.tsx
|
|
10480
10724
|
var import_noya_icons6 = require("@noya-app/noya-icons");
|
|
10481
|
-
var
|
|
10725
|
+
var import_react69 = __toESM(require("react"));
|
|
10482
10726
|
var colorSwatchSizeMap = {
|
|
10483
10727
|
xxsmall: 15,
|
|
10484
10728
|
xsmall: 21,
|
|
@@ -10486,7 +10730,7 @@ var colorSwatchSizeMap = {
|
|
|
10486
10730
|
medium: 36,
|
|
10487
10731
|
large: 48
|
|
10488
10732
|
};
|
|
10489
|
-
var ColorSwatch = (0,
|
|
10733
|
+
var ColorSwatch = (0, import_react69.forwardRef)(function ColorSwatch2({
|
|
10490
10734
|
color,
|
|
10491
10735
|
size = "small",
|
|
10492
10736
|
checked,
|
|
@@ -10496,7 +10740,7 @@ var ColorSwatch = (0, import_react68.forwardRef)(function ColorSwatch2({
|
|
|
10496
10740
|
}, ref) {
|
|
10497
10741
|
const sizePx = colorSwatchSizeMap[size];
|
|
10498
10742
|
const checkedColor = getContrastColorForBackground(color);
|
|
10499
|
-
return /* @__PURE__ */
|
|
10743
|
+
return /* @__PURE__ */ import_react69.default.createElement("div", { className: "n-relative", style: { width: sizePx, height: sizePx } }, /* @__PURE__ */ import_react69.default.createElement(
|
|
10500
10744
|
Component,
|
|
10501
10745
|
{
|
|
10502
10746
|
...props,
|
|
@@ -10512,7 +10756,7 @@ var ColorSwatch = (0, import_react68.forwardRef)(function ColorSwatch2({
|
|
|
10512
10756
|
...style2
|
|
10513
10757
|
}
|
|
10514
10758
|
}
|
|
10515
|
-
), checked && /* @__PURE__ */
|
|
10759
|
+
), checked && /* @__PURE__ */ import_react69.default.createElement(
|
|
10516
10760
|
import_noya_icons6.CheckIcon,
|
|
10517
10761
|
{
|
|
10518
10762
|
color: checkedColor,
|
|
@@ -10523,7 +10767,7 @@ var ColorSwatch = (0, import_react68.forwardRef)(function ColorSwatch2({
|
|
|
10523
10767
|
|
|
10524
10768
|
// src/components/ColorSwatchControl.tsx
|
|
10525
10769
|
var import_radix_ui9 = require("radix-ui");
|
|
10526
|
-
var
|
|
10770
|
+
var import_react70 = __toESM(require("react"));
|
|
10527
10771
|
function ColorSwatchControl(props) {
|
|
10528
10772
|
const {
|
|
10529
10773
|
options,
|
|
@@ -10538,7 +10782,7 @@ function ColorSwatchControl(props) {
|
|
|
10538
10782
|
id,
|
|
10539
10783
|
style: style2
|
|
10540
10784
|
} = props;
|
|
10541
|
-
const styles3 = (0,
|
|
10785
|
+
const styles3 = (0, import_react70.useMemo)(() => {
|
|
10542
10786
|
return {
|
|
10543
10787
|
display: "grid",
|
|
10544
10788
|
gridTemplateColumns: `repeat(auto-fill, minmax(${colorSwatchSizeMap[size]}px, 1fr))`,
|
|
@@ -10546,8 +10790,8 @@ function ColorSwatchControl(props) {
|
|
|
10546
10790
|
...style2
|
|
10547
10791
|
};
|
|
10548
10792
|
}, [size, style2]);
|
|
10549
|
-
const content = /* @__PURE__ */
|
|
10550
|
-
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(
|
|
10551
10795
|
ColorSwatch,
|
|
10552
10796
|
{
|
|
10553
10797
|
key: `${option}-color-swatch`,
|
|
@@ -10560,7 +10804,7 @@ function ColorSwatchControl(props) {
|
|
|
10560
10804
|
checked: value === option
|
|
10561
10805
|
}
|
|
10562
10806
|
);
|
|
10563
|
-
return /* @__PURE__ */
|
|
10807
|
+
return /* @__PURE__ */ import_react70.default.createElement(
|
|
10564
10808
|
import_radix_ui9.ToggleGroup.Item,
|
|
10565
10809
|
{
|
|
10566
10810
|
asChild: true,
|
|
@@ -10571,7 +10815,7 @@ function ColorSwatchControl(props) {
|
|
|
10571
10815
|
item
|
|
10572
10816
|
);
|
|
10573
10817
|
}));
|
|
10574
|
-
return /* @__PURE__ */
|
|
10818
|
+
return /* @__PURE__ */ import_react70.default.createElement(
|
|
10575
10819
|
import_radix_ui9.ToggleGroup.Root,
|
|
10576
10820
|
{
|
|
10577
10821
|
type: "single",
|
|
@@ -10586,11 +10830,11 @@ function ColorSwatchControl(props) {
|
|
|
10586
10830
|
|
|
10587
10831
|
// src/components/Combobox.tsx
|
|
10588
10832
|
var import_noya_icons8 = require("@noya-app/noya-icons");
|
|
10589
|
-
var
|
|
10833
|
+
var import_react73 = __toESM(require("react"));
|
|
10590
10834
|
|
|
10591
10835
|
// src/utils/combobox.ts
|
|
10592
10836
|
var import_noya_utils13 = require("@noya-app/noya-utils");
|
|
10593
|
-
var
|
|
10837
|
+
var import_react71 = __toESM(require("react"));
|
|
10594
10838
|
|
|
10595
10839
|
// src/utils/fuzzyScorer.ts
|
|
10596
10840
|
var import_vscode_fuzzy_scorer = require("vscode-fuzzy-scorer");
|
|
@@ -10916,7 +11160,7 @@ function getNextIndex({
|
|
|
10916
11160
|
return nextIndex;
|
|
10917
11161
|
}
|
|
10918
11162
|
function useComboboxState(state) {
|
|
10919
|
-
return (0,
|
|
11163
|
+
return (0, import_react71.useSyncExternalStore)(
|
|
10920
11164
|
state.subscribe,
|
|
10921
11165
|
state.getSnapshot,
|
|
10922
11166
|
state.getSnapshot
|
|
@@ -10927,7 +11171,7 @@ function getNodeText(node) {
|
|
|
10927
11171
|
return "";
|
|
10928
11172
|
if (typeof node === "string" || typeof node === "number") return String(node);
|
|
10929
11173
|
if (Array.isArray(node)) return node.map(getNodeText).join("");
|
|
10930
|
-
if (
|
|
11174
|
+
if (import_react71.default.isValidElement(node)) {
|
|
10931
11175
|
return getNodeText(node.props?.children);
|
|
10932
11176
|
}
|
|
10933
11177
|
return "";
|
|
@@ -10935,7 +11179,7 @@ function getNodeText(node) {
|
|
|
10935
11179
|
|
|
10936
11180
|
// src/components/ComboboxMenu.tsx
|
|
10937
11181
|
var import_noya_icons7 = require("@noya-app/noya-icons");
|
|
10938
|
-
var
|
|
11182
|
+
var import_react72 = __toESM(require("react"));
|
|
10939
11183
|
var ComboboxMenu = memoGeneric(
|
|
10940
11184
|
forwardRefGeneric(function ComboboxMenu2({
|
|
10941
11185
|
items,
|
|
@@ -10949,7 +11193,7 @@ var ComboboxMenu = memoGeneric(
|
|
|
10949
11193
|
itemHeight,
|
|
10950
11194
|
getRowHeightForItem
|
|
10951
11195
|
}, forwardedRef) {
|
|
10952
|
-
return /* @__PURE__ */
|
|
11196
|
+
return /* @__PURE__ */ import_react72.default.createElement(
|
|
10953
11197
|
ListView.Root,
|
|
10954
11198
|
{
|
|
10955
11199
|
ref: forwardedRef,
|
|
@@ -10959,7 +11203,7 @@ var ComboboxMenu = memoGeneric(
|
|
|
10959
11203
|
return item.value;
|
|
10960
11204
|
},
|
|
10961
11205
|
data: items,
|
|
10962
|
-
virtualized: listSize,
|
|
11206
|
+
virtualized: listSize.height,
|
|
10963
11207
|
...itemHeight ? { itemHeight } : {},
|
|
10964
11208
|
...getRowHeightForItem ? { getItemHeightForItem: getRowHeightForItem } : {},
|
|
10965
11209
|
pressEventName: "onPointerDown",
|
|
@@ -10967,7 +11211,7 @@ var ComboboxMenu = memoGeneric(
|
|
|
10967
11211
|
style: style2,
|
|
10968
11212
|
renderItem: (item, i) => {
|
|
10969
11213
|
if (item.type === "sectionHeader") {
|
|
10970
|
-
return /* @__PURE__ */
|
|
11214
|
+
return /* @__PURE__ */ import_react72.default.createElement(ListView.Row, { key: item.id, isSectionHeader: true }, indented && /* @__PURE__ */ import_react72.default.createElement(
|
|
10971
11215
|
Spacer.Horizontal,
|
|
10972
11216
|
{
|
|
10973
11217
|
size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET + CHECKBOX_INDENT_WIDTH
|
|
@@ -10982,7 +11226,7 @@ var ComboboxMenu = memoGeneric(
|
|
|
10982
11226
|
// Only selectable items can have tooltips in this menu
|
|
10983
11227
|
isSelectableMenuItem(item) ? item.tooltip : void 0
|
|
10984
11228
|
);
|
|
10985
|
-
return /* @__PURE__ */
|
|
11229
|
+
return /* @__PURE__ */ import_react72.default.createElement(
|
|
10986
11230
|
ListView.Row,
|
|
10987
11231
|
{
|
|
10988
11232
|
key: item.value,
|
|
@@ -10995,12 +11239,12 @@ var ComboboxMenu = memoGeneric(
|
|
|
10995
11239
|
}
|
|
10996
11240
|
}
|
|
10997
11241
|
},
|
|
10998
|
-
/* @__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(
|
|
10999
11243
|
Spacer.Horizontal,
|
|
11000
11244
|
{
|
|
11001
11245
|
size: CHECKBOX_WIDTH - CHECKBOX_RIGHT_INSET
|
|
11002
11246
|
}
|
|
11003
|
-
) : 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(
|
|
11004
11248
|
"span",
|
|
11005
11249
|
{
|
|
11006
11250
|
key: `${item.value}-token-${j}`,
|
|
@@ -11010,16 +11254,16 @@ var ComboboxMenu = memoGeneric(
|
|
|
11010
11254
|
)
|
|
11011
11255
|
},
|
|
11012
11256
|
token.text
|
|
11013
|
-
))), tooltip && /* @__PURE__ */
|
|
11014
|
-
(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 }))
|
|
11015
11259
|
);
|
|
11016
11260
|
}
|
|
11017
11261
|
}
|
|
11018
11262
|
);
|
|
11019
11263
|
})
|
|
11020
11264
|
);
|
|
11021
|
-
var MenuIcon = (0,
|
|
11022
|
-
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));
|
|
11023
11267
|
});
|
|
11024
11268
|
|
|
11025
11269
|
// src/components/Combobox.tsx
|
|
@@ -11043,7 +11287,7 @@ var Combobox = memoGeneric(
|
|
|
11043
11287
|
iconPosition = "right",
|
|
11044
11288
|
...rest
|
|
11045
11289
|
}, forwardedRef) {
|
|
11046
|
-
const props = (0,
|
|
11290
|
+
const props = (0, import_react73.useMemo)(() => {
|
|
11047
11291
|
if (rest.mode === "string") {
|
|
11048
11292
|
return {
|
|
11049
11293
|
mode: rest.mode,
|
|
@@ -11073,7 +11317,7 @@ var Combobox = memoGeneric(
|
|
|
11073
11317
|
rest.onBlur,
|
|
11074
11318
|
rest.allowArbitraryValues
|
|
11075
11319
|
]);
|
|
11076
|
-
const ref = (0,
|
|
11320
|
+
const ref = (0, import_react73.useRef)(null);
|
|
11077
11321
|
function getInitialValueString() {
|
|
11078
11322
|
if (props.mode === "string") {
|
|
11079
11323
|
return props.value ?? "";
|
|
@@ -11082,7 +11326,7 @@ var Combobox = memoGeneric(
|
|
|
11082
11326
|
}
|
|
11083
11327
|
}
|
|
11084
11328
|
const initialValueString = getInitialValueString();
|
|
11085
|
-
const [comboboxState] = (0,
|
|
11329
|
+
const [comboboxState] = (0, import_react73.useState)(
|
|
11086
11330
|
() => new ComboboxState(
|
|
11087
11331
|
items,
|
|
11088
11332
|
initialValueString,
|
|
@@ -11090,26 +11334,26 @@ var Combobox = memoGeneric(
|
|
|
11090
11334
|
)
|
|
11091
11335
|
);
|
|
11092
11336
|
const state = useComboboxState(comboboxState);
|
|
11093
|
-
const [isFocused, setIsFocused] = (0,
|
|
11094
|
-
const listRef = (0,
|
|
11095
|
-
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);
|
|
11096
11340
|
const { fieldId: id } = useLabel({
|
|
11097
11341
|
fieldId: rest.id
|
|
11098
11342
|
});
|
|
11099
|
-
(0,
|
|
11343
|
+
(0, import_react73.useEffect)(() => {
|
|
11100
11344
|
comboboxState.setItems(items);
|
|
11101
11345
|
}, [items, comboboxState]);
|
|
11102
|
-
(0,
|
|
11346
|
+
(0, import_react73.useEffect)(() => {
|
|
11103
11347
|
comboboxState.setFilter(initialValueString);
|
|
11104
11348
|
}, [comboboxState, initialValueString]);
|
|
11105
11349
|
const { filter, selectedIndex, filteredItems } = state;
|
|
11106
11350
|
const shouldShowMenu = isFocused && !(hideMenuWhenEmptyValue && filter === "");
|
|
11107
|
-
(0,
|
|
11351
|
+
(0, import_react73.useEffect)(() => {
|
|
11108
11352
|
if (listRef.current) {
|
|
11109
11353
|
listRef.current.scrollToIndex(selectedIndex);
|
|
11110
11354
|
}
|
|
11111
11355
|
}, [selectedIndex]);
|
|
11112
|
-
const handleBlur = (0,
|
|
11356
|
+
const handleBlur = (0, import_react73.useCallback)(() => {
|
|
11113
11357
|
ref.current?.blur();
|
|
11114
11358
|
comboboxState.reset(initialValueString);
|
|
11115
11359
|
if (props.mode === "string") {
|
|
@@ -11128,7 +11372,7 @@ var Combobox = memoGeneric(
|
|
|
11128
11372
|
}
|
|
11129
11373
|
setIsFocused(false);
|
|
11130
11374
|
}, [filter, initialValueString, props, state, comboboxState]);
|
|
11131
|
-
const handleFocus = (0,
|
|
11375
|
+
const handleFocus = (0, import_react73.useCallback)(
|
|
11132
11376
|
(event) => {
|
|
11133
11377
|
setIsFocused(true);
|
|
11134
11378
|
comboboxState.reset(
|
|
@@ -11142,7 +11386,7 @@ var Combobox = memoGeneric(
|
|
|
11142
11386
|
},
|
|
11143
11387
|
[initialValueString, onFocus, openMenuBehavior, comboboxState]
|
|
11144
11388
|
);
|
|
11145
|
-
const handleUpdateSelection = (0,
|
|
11389
|
+
const handleUpdateSelection = (0, import_react73.useCallback)(
|
|
11146
11390
|
(item) => {
|
|
11147
11391
|
if (item.type !== void 0) return;
|
|
11148
11392
|
const selectedItem = comboboxState.selectCurrentItem(item);
|
|
@@ -11158,7 +11402,7 @@ var Combobox = memoGeneric(
|
|
|
11158
11402
|
},
|
|
11159
11403
|
[props, comboboxState]
|
|
11160
11404
|
);
|
|
11161
|
-
const handleIndexChange = (0,
|
|
11405
|
+
const handleIndexChange = (0, import_react73.useCallback)(
|
|
11162
11406
|
(index) => {
|
|
11163
11407
|
comboboxState.setSelectedIndex(index);
|
|
11164
11408
|
const item = comboboxState.getSelectedItem();
|
|
@@ -11174,7 +11418,7 @@ var Combobox = memoGeneric(
|
|
|
11174
11418
|
},
|
|
11175
11419
|
[props, comboboxState]
|
|
11176
11420
|
);
|
|
11177
|
-
const handleChange = (0,
|
|
11421
|
+
const handleChange = (0, import_react73.useCallback)(
|
|
11178
11422
|
(value) => {
|
|
11179
11423
|
if (readOnly) return;
|
|
11180
11424
|
comboboxState.setFilter(value);
|
|
@@ -11189,7 +11433,7 @@ var Combobox = memoGeneric(
|
|
|
11189
11433
|
},
|
|
11190
11434
|
[readOnly, props, comboboxState]
|
|
11191
11435
|
);
|
|
11192
|
-
const handleKeyDown = (0,
|
|
11436
|
+
const handleKeyDown = (0, import_react73.useCallback)(
|
|
11193
11437
|
(event) => {
|
|
11194
11438
|
let handled = false;
|
|
11195
11439
|
const item = comboboxState.getSelectedItem();
|
|
@@ -11278,7 +11522,7 @@ var Combobox = memoGeneric(
|
|
|
11278
11522
|
]
|
|
11279
11523
|
);
|
|
11280
11524
|
const typeaheadValue = comboboxState.getTypeaheadValue();
|
|
11281
|
-
(0,
|
|
11525
|
+
(0, import_react73.useImperativeHandle)(forwardedRef, () => ({
|
|
11282
11526
|
focus: () => {
|
|
11283
11527
|
ref.current?.focus();
|
|
11284
11528
|
if (ref.current) {
|
|
@@ -11297,7 +11541,7 @@ var Combobox = memoGeneric(
|
|
|
11297
11541
|
ref.current?.setSelectionRange(0, ref.current.value.length);
|
|
11298
11542
|
}
|
|
11299
11543
|
}));
|
|
11300
|
-
const handleChevronClick = (0,
|
|
11544
|
+
const handleChevronClick = (0, import_react73.useCallback)(
|
|
11301
11545
|
(event) => {
|
|
11302
11546
|
event.stopPropagation();
|
|
11303
11547
|
if (shouldShowMenu) {
|
|
@@ -11317,34 +11561,34 @@ var Combobox = memoGeneric(
|
|
|
11317
11561
|
comboboxState
|
|
11318
11562
|
]
|
|
11319
11563
|
);
|
|
11320
|
-
(0,
|
|
11564
|
+
(0, import_react73.useEffect)(() => {
|
|
11321
11565
|
if (!shouldBlur) return;
|
|
11322
11566
|
if (document.activeElement !== ref.current) return;
|
|
11323
11567
|
setShouldBlur(false);
|
|
11324
11568
|
ref.current?.focus();
|
|
11325
11569
|
handleBlur();
|
|
11326
11570
|
}, [shouldBlur, handleBlur]);
|
|
11327
|
-
const { sectionHeaderCount, menuItemsCount, tallMenuItemsCount } = (0,
|
|
11571
|
+
const { sectionHeaderCount, menuItemsCount, tallMenuItemsCount } = (0, import_react73.useMemo)(
|
|
11328
11572
|
() => ListView.getMenuMetrics(filteredItems),
|
|
11329
11573
|
[filteredItems]
|
|
11330
11574
|
);
|
|
11331
11575
|
const hasCheckedItems = items.some(
|
|
11332
11576
|
(item) => isSelectableMenuItem(item) && item.checked
|
|
11333
11577
|
);
|
|
11334
|
-
return /* @__PURE__ */
|
|
11578
|
+
return /* @__PURE__ */ import_react73.default.createElement(
|
|
11335
11579
|
InputField2.Root,
|
|
11336
11580
|
{
|
|
11337
11581
|
id,
|
|
11338
11582
|
size,
|
|
11339
11583
|
sideOffset: 6,
|
|
11340
11584
|
start: icon ? renderIcon(icon) : void 0,
|
|
11341
|
-
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(
|
|
11342
11586
|
InputField2.Button,
|
|
11343
11587
|
{
|
|
11344
11588
|
variant: "floating",
|
|
11345
11589
|
onClick: handleChevronClick
|
|
11346
11590
|
},
|
|
11347
|
-
/* @__PURE__ */
|
|
11591
|
+
/* @__PURE__ */ import_react73.default.createElement(
|
|
11348
11592
|
import_noya_icons8.DropdownChevronIcon,
|
|
11349
11593
|
{
|
|
11350
11594
|
className: cx(
|
|
@@ -11364,7 +11608,7 @@ var Combobox = memoGeneric(
|
|
|
11364
11608
|
maxBaseRows: 10.5
|
|
11365
11609
|
});
|
|
11366
11610
|
const adjustedListSize = { width, height: computedHeight };
|
|
11367
|
-
return /* @__PURE__ */
|
|
11611
|
+
return /* @__PURE__ */ import_react73.default.createElement(
|
|
11368
11612
|
"div",
|
|
11369
11613
|
{
|
|
11370
11614
|
className: cx(
|
|
@@ -11372,7 +11616,7 @@ var Combobox = memoGeneric(
|
|
|
11372
11616
|
shouldShowMenu && !readOnly ? "n-flex" : "n-hidden"
|
|
11373
11617
|
)
|
|
11374
11618
|
},
|
|
11375
|
-
filteredItems.length > 0 && !loading ? /* @__PURE__ */
|
|
11619
|
+
filteredItems.length > 0 && !loading ? /* @__PURE__ */ import_react73.default.createElement(
|
|
11376
11620
|
ComboboxMenu,
|
|
11377
11621
|
{
|
|
11378
11622
|
ref: listRef,
|
|
@@ -11390,11 +11634,11 @@ var Combobox = memoGeneric(
|
|
|
11390
11634
|
getRowHeightForItem: (item) => isSelectableMenuItem(item) && item.tooltip ? ListView.tallRowHeight : baseRowHeight
|
|
11391
11635
|
} : { itemHeight: baseRowHeight }
|
|
11392
11636
|
}
|
|
11393
|
-
) : /* @__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"))
|
|
11394
11638
|
);
|
|
11395
11639
|
}
|
|
11396
11640
|
},
|
|
11397
|
-
/* @__PURE__ */
|
|
11641
|
+
/* @__PURE__ */ import_react73.default.createElement(
|
|
11398
11642
|
InputField2.Input,
|
|
11399
11643
|
{
|
|
11400
11644
|
ref,
|
|
@@ -11419,7 +11663,7 @@ var Combobox = memoGeneric(
|
|
|
11419
11663
|
...readOnly ? { readOnly: true } : {}
|
|
11420
11664
|
}
|
|
11421
11665
|
),
|
|
11422
|
-
filter && typeaheadValue && typeaheadValue.toLowerCase().startsWith(filter.toLowerCase()) && /* @__PURE__ */
|
|
11666
|
+
filter && typeaheadValue && typeaheadValue.toLowerCase().startsWith(filter.toLowerCase()) && /* @__PURE__ */ import_react73.default.createElement(
|
|
11423
11667
|
InputField2.Typeahead,
|
|
11424
11668
|
{
|
|
11425
11669
|
value: typeaheadValue,
|
|
@@ -11433,12 +11677,12 @@ var Combobox = memoGeneric(
|
|
|
11433
11677
|
);
|
|
11434
11678
|
|
|
11435
11679
|
// src/components/CommandPalette.tsx
|
|
11436
|
-
var
|
|
11680
|
+
var import_react75 = __toESM(require("react"));
|
|
11437
11681
|
|
|
11438
11682
|
// src/components/SearchCompletionMenu.tsx
|
|
11439
11683
|
var import_noya_keymap5 = require("@noya-app/noya-keymap");
|
|
11440
|
-
var
|
|
11441
|
-
var SearchCompletionMenu = (0,
|
|
11684
|
+
var import_react74 = __toESM(require("react"));
|
|
11685
|
+
var SearchCompletionMenu = (0, import_react74.forwardRef)(function SearchCompletionMenu2({
|
|
11442
11686
|
onSelect,
|
|
11443
11687
|
onHover,
|
|
11444
11688
|
onClose,
|
|
@@ -11447,17 +11691,17 @@ var SearchCompletionMenu = (0, import_react73.forwardRef)(function SearchComplet
|
|
|
11447
11691
|
testSelectedIndex,
|
|
11448
11692
|
testSearch
|
|
11449
11693
|
}, forwardedRef) {
|
|
11450
|
-
const [state, setState] = (0,
|
|
11694
|
+
const [state, setState] = (0, import_react74.useState)({
|
|
11451
11695
|
search: testSearch ?? "",
|
|
11452
11696
|
index: 0
|
|
11453
11697
|
});
|
|
11454
11698
|
const { index, search } = state;
|
|
11455
|
-
const listRef =
|
|
11699
|
+
const listRef = import_react74.default.useRef(null);
|
|
11456
11700
|
const hasCheckedItems = items.some((item) => item.checked);
|
|
11457
|
-
(0,
|
|
11701
|
+
(0, import_react74.useEffect)(() => {
|
|
11458
11702
|
listRef.current?.scrollToIndex(index);
|
|
11459
11703
|
}, [index]);
|
|
11460
|
-
const results = (0,
|
|
11704
|
+
const results = (0, import_react74.useMemo)(
|
|
11461
11705
|
() => fuzzyFilter({
|
|
11462
11706
|
items: items.map(
|
|
11463
11707
|
(item) => typeof item.title === "string" ? item.title : item.value
|
|
@@ -11469,13 +11713,13 @@ var SearchCompletionMenu = (0, import_react73.forwardRef)(function SearchComplet
|
|
|
11469
11713
|
})),
|
|
11470
11714
|
[items, search]
|
|
11471
11715
|
);
|
|
11472
|
-
const setSearch = (0,
|
|
11716
|
+
const setSearch = (0, import_react74.useCallback)((search2) => {
|
|
11473
11717
|
setState((state2) => ({ ...state2, search: search2, index: 0 }));
|
|
11474
11718
|
}, []);
|
|
11475
|
-
const setIndex = (0,
|
|
11719
|
+
const setIndex = (0, import_react74.useCallback)((index2) => {
|
|
11476
11720
|
setState((state2) => ({ ...state2, index: index2 }));
|
|
11477
11721
|
}, []);
|
|
11478
|
-
(0,
|
|
11722
|
+
(0, import_react74.useEffect)(() => {
|
|
11479
11723
|
onHover?.(results[index]);
|
|
11480
11724
|
}, [index, onHover, results]);
|
|
11481
11725
|
const baseRowHeight = ListView.rowHeight;
|
|
@@ -11494,14 +11738,14 @@ var SearchCompletionMenu = (0, import_react73.forwardRef)(function SearchComplet
|
|
|
11494
11738
|
width: listSize.width,
|
|
11495
11739
|
height: searchHeight + listSize.height
|
|
11496
11740
|
};
|
|
11497
|
-
const selectAndClose = (0,
|
|
11741
|
+
const selectAndClose = (0, import_react74.useCallback)(
|
|
11498
11742
|
(item) => {
|
|
11499
11743
|
onSelect(item);
|
|
11500
11744
|
onClose();
|
|
11501
11745
|
},
|
|
11502
11746
|
[onSelect, onClose]
|
|
11503
11747
|
);
|
|
11504
|
-
const handleKeyDown = (0,
|
|
11748
|
+
const handleKeyDown = (0, import_react74.useCallback)(
|
|
11505
11749
|
(event) => {
|
|
11506
11750
|
(0, import_noya_keymap5.handleKeyboardEvent)(event.nativeEvent, (0, import_noya_keymap5.getCurrentPlatform)(navigator), {
|
|
11507
11751
|
ArrowUp: () => {
|
|
@@ -11529,13 +11773,13 @@ var SearchCompletionMenu = (0, import_react73.forwardRef)(function SearchComplet
|
|
|
11529
11773
|
},
|
|
11530
11774
|
[index, onClose, selectAndClose, results, setIndex]
|
|
11531
11775
|
);
|
|
11532
|
-
const inputRef = (0,
|
|
11533
|
-
(0,
|
|
11776
|
+
const inputRef = (0, import_react74.useRef)(null);
|
|
11777
|
+
(0, import_react74.useImperativeHandle)(forwardedRef, () => ({
|
|
11534
11778
|
focus: () => {
|
|
11535
11779
|
inputRef.current?.focus();
|
|
11536
11780
|
}
|
|
11537
11781
|
}));
|
|
11538
|
-
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(
|
|
11539
11783
|
InputField2.Input,
|
|
11540
11784
|
{
|
|
11541
11785
|
ref: inputRef,
|
|
@@ -11555,7 +11799,7 @@ var SearchCompletionMenu = (0, import_react73.forwardRef)(function SearchComplet
|
|
|
11555
11799
|
onChange: setSearch,
|
|
11556
11800
|
onKeyDown: handleKeyDown
|
|
11557
11801
|
}
|
|
11558
|
-
)), /* @__PURE__ */
|
|
11802
|
+
)), /* @__PURE__ */ import_react74.default.createElement(Divider, null), results.length > 0 ? /* @__PURE__ */ import_react74.default.createElement(
|
|
11559
11803
|
ComboboxMenu,
|
|
11560
11804
|
{
|
|
11561
11805
|
ref: listRef,
|
|
@@ -11570,29 +11814,29 @@ var SearchCompletionMenu = (0, import_react73.forwardRef)(function SearchComplet
|
|
|
11570
11814
|
onHoverIndex: setIndex,
|
|
11571
11815
|
indented: hasCheckedItems
|
|
11572
11816
|
}
|
|
11573
|
-
) : /* @__PURE__ */
|
|
11817
|
+
) : /* @__PURE__ */ import_react74.default.createElement(
|
|
11574
11818
|
"div",
|
|
11575
11819
|
{
|
|
11576
11820
|
...listSize,
|
|
11577
11821
|
className: "n-flex n-flex-col n-p-20 n-items-center n-justify-center"
|
|
11578
11822
|
},
|
|
11579
|
-
/* @__PURE__ */
|
|
11823
|
+
/* @__PURE__ */ import_react74.default.createElement(Small, { color: "textDisabled" }, "No results")
|
|
11580
11824
|
));
|
|
11581
11825
|
});
|
|
11582
11826
|
|
|
11583
11827
|
// src/components/CommandPalette.tsx
|
|
11584
|
-
var CommandPalette = (0,
|
|
11828
|
+
var CommandPalette = (0, import_react75.memo)(function CommandPalette2({
|
|
11585
11829
|
showCommandPalette,
|
|
11586
11830
|
setShowCommandPalette,
|
|
11587
11831
|
items,
|
|
11588
11832
|
onSelect,
|
|
11589
11833
|
onHover
|
|
11590
11834
|
}) {
|
|
11591
|
-
const menuRef =
|
|
11592
|
-
const handleClose =
|
|
11835
|
+
const menuRef = import_react75.default.useRef(null);
|
|
11836
|
+
const handleClose = import_react75.default.useCallback(() => {
|
|
11593
11837
|
setShowCommandPalette(false);
|
|
11594
11838
|
}, [setShowCommandPalette]);
|
|
11595
|
-
return /* @__PURE__ */
|
|
11839
|
+
return /* @__PURE__ */ import_react75.default.createElement(
|
|
11596
11840
|
Dialog,
|
|
11597
11841
|
{
|
|
11598
11842
|
style: {
|
|
@@ -11618,7 +11862,7 @@ var CommandPalette = (0, import_react74.memo)(function CommandPalette2({
|
|
|
11618
11862
|
}, 0);
|
|
11619
11863
|
}
|
|
11620
11864
|
},
|
|
11621
|
-
/* @__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(
|
|
11622
11866
|
SearchCompletionMenu,
|
|
11623
11867
|
{
|
|
11624
11868
|
ref: menuRef,
|
|
@@ -11633,21 +11877,21 @@ var CommandPalette = (0, import_react74.memo)(function CommandPalette2({
|
|
|
11633
11877
|
});
|
|
11634
11878
|
|
|
11635
11879
|
// src/components/connected-users-menu/ConnectedUsersMenuLayout.tsx
|
|
11636
|
-
var
|
|
11637
|
-
var UserAvatar = ({ userId, name, image }) => /* @__PURE__ */
|
|
11880
|
+
var import_react76 = __toESM(require("react"));
|
|
11881
|
+
var UserAvatar = ({ userId, name, image }) => /* @__PURE__ */ import_react76.default.createElement(
|
|
11638
11882
|
Tooltip,
|
|
11639
11883
|
{
|
|
11640
11884
|
key: userId,
|
|
11641
|
-
content: /* @__PURE__ */
|
|
11885
|
+
content: /* @__PURE__ */ import_react76.default.createElement("div", { className: "n-flex n-flex-col" }, /* @__PURE__ */ import_react76.default.createElement(Small, null, name))
|
|
11642
11886
|
},
|
|
11643
|
-
/* @__PURE__ */
|
|
11887
|
+
/* @__PURE__ */ import_react76.default.createElement(Avatar, { size: INPUT_HEIGHT, userId, name, image })
|
|
11644
11888
|
);
|
|
11645
11889
|
var ConnectedUsersMenuLayout = ({
|
|
11646
11890
|
renderUsers,
|
|
11647
11891
|
launchAIAssistant,
|
|
11648
11892
|
isAssistantOpen
|
|
11649
11893
|
}) => {
|
|
11650
|
-
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(
|
|
11651
11895
|
Button,
|
|
11652
11896
|
{
|
|
11653
11897
|
active: isAssistantOpen,
|
|
@@ -11659,7 +11903,7 @@ var ConnectedUsersMenuLayout = ({
|
|
|
11659
11903
|
};
|
|
11660
11904
|
|
|
11661
11905
|
// src/components/DraggableMenuButton.tsx
|
|
11662
|
-
var
|
|
11906
|
+
var import_react77 = __toESM(require("react"));
|
|
11663
11907
|
var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
11664
11908
|
open: openProp,
|
|
11665
11909
|
onOpenChange: onOpenChangeProp,
|
|
@@ -11677,8 +11921,8 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
11677
11921
|
onChange: onOpenChangeProp,
|
|
11678
11922
|
defaultValue: false
|
|
11679
11923
|
});
|
|
11680
|
-
const [downPosition, setDownPosition] = (0,
|
|
11681
|
-
const handlePointerDownCapture = (0,
|
|
11924
|
+
const [downPosition, setDownPosition] = (0, import_react77.useState)(null);
|
|
11925
|
+
const handlePointerDownCapture = (0, import_react77.useCallback)(
|
|
11682
11926
|
(event) => {
|
|
11683
11927
|
if (open) {
|
|
11684
11928
|
setDownPosition(null);
|
|
@@ -11691,7 +11935,7 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
11691
11935
|
},
|
|
11692
11936
|
[open]
|
|
11693
11937
|
);
|
|
11694
|
-
const handlePointerUp = (0,
|
|
11938
|
+
const handlePointerUp = (0, import_react77.useCallback)(
|
|
11695
11939
|
(event) => {
|
|
11696
11940
|
if (open || !downPosition) {
|
|
11697
11941
|
setDownPosition(null);
|
|
@@ -11710,13 +11954,13 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
11710
11954
|
},
|
|
11711
11955
|
[downPosition, open, setOpen]
|
|
11712
11956
|
);
|
|
11713
|
-
const handleOpenChange = (0,
|
|
11957
|
+
const handleOpenChange = (0, import_react77.useCallback)(
|
|
11714
11958
|
(isOpen) => {
|
|
11715
11959
|
if (!isOpen) setOpen(false);
|
|
11716
11960
|
},
|
|
11717
11961
|
[setOpen]
|
|
11718
11962
|
);
|
|
11719
|
-
return /* @__PURE__ */
|
|
11963
|
+
return /* @__PURE__ */ import_react77.default.createElement(
|
|
11720
11964
|
"div",
|
|
11721
11965
|
{
|
|
11722
11966
|
...rest,
|
|
@@ -11733,7 +11977,7 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
11733
11977
|
onClick?.();
|
|
11734
11978
|
}
|
|
11735
11979
|
},
|
|
11736
|
-
items && onSelect ? /* @__PURE__ */
|
|
11980
|
+
items && onSelect ? /* @__PURE__ */ import_react77.default.createElement(
|
|
11737
11981
|
DropdownMenu,
|
|
11738
11982
|
{
|
|
11739
11983
|
open,
|
|
@@ -11742,14 +11986,14 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
11742
11986
|
onSelect,
|
|
11743
11987
|
shouldBindKeyboardShortcuts: false
|
|
11744
11988
|
},
|
|
11745
|
-
/* @__PURE__ */
|
|
11989
|
+
/* @__PURE__ */ import_react77.default.createElement("div", { className: "n-pointer-events-none n-h-[15px]" }, /* @__PURE__ */ import_react77.default.createElement(
|
|
11746
11990
|
Icon,
|
|
11747
11991
|
{
|
|
11748
11992
|
name: iconName,
|
|
11749
11993
|
color: isVisible || open ? cssVars.colors.icon : "transparent"
|
|
11750
11994
|
}
|
|
11751
11995
|
))
|
|
11752
|
-
) : /* @__PURE__ */
|
|
11996
|
+
) : /* @__PURE__ */ import_react77.default.createElement(
|
|
11753
11997
|
Icon,
|
|
11754
11998
|
{
|
|
11755
11999
|
name: iconName,
|
|
@@ -11761,10 +12005,10 @@ var DraggableMenuButton = memoGeneric(function DraggableMenuButton2({
|
|
|
11761
12005
|
|
|
11762
12006
|
// src/components/Drawer.tsx
|
|
11763
12007
|
var import_radix_ui10 = require("radix-ui");
|
|
11764
|
-
var
|
|
11765
|
-
var
|
|
11766
|
-
var Drawer =
|
|
11767
|
-
|
|
12008
|
+
var React73 = __toESM(require("react"));
|
|
12009
|
+
var import_react78 = require("react");
|
|
12010
|
+
var Drawer = React73.memo(
|
|
12011
|
+
React73.forwardRef(function Drawer2({
|
|
11768
12012
|
open,
|
|
11769
12013
|
onOpenChange,
|
|
11770
12014
|
trigger,
|
|
@@ -11785,7 +12029,7 @@ var Drawer = React71.memo(
|
|
|
11785
12029
|
value: open,
|
|
11786
12030
|
onChange: onOpenChange
|
|
11787
12031
|
});
|
|
11788
|
-
(0,
|
|
12032
|
+
(0, import_react78.useImperativeHandle)(forwardedRef, () => ({
|
|
11789
12033
|
expand: () => {
|
|
11790
12034
|
setInternalOpen(true);
|
|
11791
12035
|
},
|
|
@@ -11796,7 +12040,7 @@ var Drawer = React71.memo(
|
|
|
11796
12040
|
return internalOpen;
|
|
11797
12041
|
}
|
|
11798
12042
|
}));
|
|
11799
|
-
const inner = /* @__PURE__ */
|
|
12043
|
+
const inner = /* @__PURE__ */ React73.createElement(React73.Fragment, null, /* @__PURE__ */ React73.createElement(
|
|
11800
12044
|
import_radix_ui10.Dialog.Overlay,
|
|
11801
12045
|
{
|
|
11802
12046
|
className: cx(
|
|
@@ -11806,7 +12050,7 @@ var Drawer = React71.memo(
|
|
|
11806
12050
|
),
|
|
11807
12051
|
style: overlayStyle
|
|
11808
12052
|
}
|
|
11809
|
-
), /* @__PURE__ */
|
|
12053
|
+
), /* @__PURE__ */ React73.createElement(
|
|
11810
12054
|
import_radix_ui10.Dialog.Content,
|
|
11811
12055
|
{
|
|
11812
12056
|
id,
|
|
@@ -11818,24 +12062,24 @@ var Drawer = React71.memo(
|
|
|
11818
12062
|
className
|
|
11819
12063
|
)
|
|
11820
12064
|
},
|
|
11821
|
-
title && /* @__PURE__ */
|
|
12065
|
+
title && /* @__PURE__ */ React73.createElement(import_radix_ui10.Dialog.Title, null, title),
|
|
11822
12066
|
children
|
|
11823
12067
|
));
|
|
11824
|
-
return /* @__PURE__ */
|
|
12068
|
+
return /* @__PURE__ */ React73.createElement(
|
|
11825
12069
|
import_radix_ui10.Dialog.Root,
|
|
11826
12070
|
{
|
|
11827
12071
|
key: "dialog",
|
|
11828
12072
|
open: internalOpen,
|
|
11829
12073
|
onOpenChange: setInternalOpen
|
|
11830
12074
|
},
|
|
11831
|
-
/* @__PURE__ */
|
|
11832
|
-
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
|
|
11833
12077
|
);
|
|
11834
12078
|
})
|
|
11835
12079
|
);
|
|
11836
12080
|
|
|
11837
12081
|
// src/components/Fade.tsx
|
|
11838
|
-
var
|
|
12082
|
+
var import_react79 = __toESM(require("react"));
|
|
11839
12083
|
var Fade = ({
|
|
11840
12084
|
children,
|
|
11841
12085
|
direction = "right",
|
|
@@ -11857,7 +12101,7 @@ var Fade = ({
|
|
|
11857
12101
|
top: "n-left-0 n-right-0 n-top-0",
|
|
11858
12102
|
bottom: "n-left-0 n-right-0 n-bottom-0"
|
|
11859
12103
|
}[direction];
|
|
11860
|
-
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(
|
|
11861
12105
|
"div",
|
|
11862
12106
|
{
|
|
11863
12107
|
className: cx(
|
|
@@ -11876,21 +12120,21 @@ var Fade = ({
|
|
|
11876
12120
|
};
|
|
11877
12121
|
|
|
11878
12122
|
// src/components/file-explorer/FileExplorerLayout.tsx
|
|
11879
|
-
var
|
|
12123
|
+
var import_react80 = __toESM(require("react"));
|
|
11880
12124
|
var FileExplorerLayout = ({
|
|
11881
12125
|
children,
|
|
11882
12126
|
className,
|
|
11883
12127
|
...props
|
|
11884
|
-
}) => /* @__PURE__ */
|
|
12128
|
+
}) => /* @__PURE__ */ import_react80.default.createElement(Section, { className: cx(className, "n-px-3 n-flex-1"), ...props }, children);
|
|
11885
12129
|
var FileExplorerUploadButton = ({
|
|
11886
12130
|
showUploadButton,
|
|
11887
12131
|
onUpload,
|
|
11888
12132
|
isUploading,
|
|
11889
12133
|
children
|
|
11890
|
-
}) => /* @__PURE__ */
|
|
12134
|
+
}) => /* @__PURE__ */ import_react80.default.createElement("div", { className: "n-flex n-items-center n-gap-2" }, showUploadButton && /* @__PURE__ */ import_react80.default.createElement(
|
|
11891
12135
|
Button,
|
|
11892
12136
|
{
|
|
11893
|
-
icon: isUploading ? /* @__PURE__ */
|
|
12137
|
+
icon: isUploading ? /* @__PURE__ */ import_react80.default.createElement(ActivityIndicator, { size: 15 }) : "UploadIcon",
|
|
11894
12138
|
onClick: onUpload,
|
|
11895
12139
|
"aria-label": "Upload file",
|
|
11896
12140
|
tooltip: "Upload file",
|
|
@@ -11900,7 +12144,7 @@ var FileExplorerUploadButton = ({
|
|
|
11900
12144
|
), children);
|
|
11901
12145
|
var FileExplorerCollection = forwardRefGeneric(
|
|
11902
12146
|
function FileExplorerCollection2({ ...props }, ref) {
|
|
11903
|
-
return /* @__PURE__ */
|
|
12147
|
+
return /* @__PURE__ */ import_react80.default.createElement(Collection, { ref, className: "-n-mx-3 n-flex-1", ...props });
|
|
11904
12148
|
}
|
|
11905
12149
|
);
|
|
11906
12150
|
var FileExplorerDetail = ({
|
|
@@ -11909,7 +12153,7 @@ var FileExplorerDetail = ({
|
|
|
11909
12153
|
children,
|
|
11910
12154
|
className,
|
|
11911
12155
|
style: style2
|
|
11912
|
-
}) => /* @__PURE__ */
|
|
12156
|
+
}) => /* @__PURE__ */ import_react80.default.createElement(
|
|
11913
12157
|
"span",
|
|
11914
12158
|
{
|
|
11915
12159
|
className: cx(
|
|
@@ -11924,10 +12168,10 @@ var FileExplorerDetail = ({
|
|
|
11924
12168
|
var FileExplorerEmptyState = ({
|
|
11925
12169
|
children: label = "No files",
|
|
11926
12170
|
...props
|
|
11927
|
-
}) => /* @__PURE__ */
|
|
12171
|
+
}) => /* @__PURE__ */ import_react80.default.createElement(Banner, { className: "n-mx-3", ...props }, label);
|
|
11928
12172
|
|
|
11929
12173
|
// src/components/FileUploadIndicator.tsx
|
|
11930
|
-
var
|
|
12174
|
+
var import_react82 = __toESM(require("react"));
|
|
11931
12175
|
|
|
11932
12176
|
// src/utils/formatByteSize.ts
|
|
11933
12177
|
var byteSizeUnits = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
|
|
@@ -11941,7 +12185,7 @@ function formatByteSize(size) {
|
|
|
11941
12185
|
|
|
11942
12186
|
// src/components/MediaThumbnail.tsx
|
|
11943
12187
|
var import_noya_icons9 = require("@noya-app/noya-icons");
|
|
11944
|
-
var
|
|
12188
|
+
var import_react81 = __toESM(require("react"));
|
|
11945
12189
|
|
|
11946
12190
|
// src/components/catppuccin/fileIcons.ts
|
|
11947
12191
|
var fileIcons = {
|
|
@@ -14381,7 +14625,7 @@ var getThumbnailColors = (colorScheme, selected) => {
|
|
|
14381
14625
|
};
|
|
14382
14626
|
}
|
|
14383
14627
|
};
|
|
14384
|
-
var MediaThumbnail = (0,
|
|
14628
|
+
var MediaThumbnail = (0, import_react81.memo)(function MediaThumbnail2({
|
|
14385
14629
|
contentType: contentTypeProp,
|
|
14386
14630
|
selected = false,
|
|
14387
14631
|
className,
|
|
@@ -14399,14 +14643,14 @@ var MediaThumbnail = (0, import_react80.memo)(function MediaThumbnail2({
|
|
|
14399
14643
|
selected
|
|
14400
14644
|
);
|
|
14401
14645
|
const contentType = getAssetType(contentTypeProp);
|
|
14402
|
-
const iconStyles = (0,
|
|
14646
|
+
const iconStyles = (0, import_react81.useMemo)(
|
|
14403
14647
|
() => ({
|
|
14404
14648
|
width: iconSizeMap[size],
|
|
14405
14649
|
height: iconSizeMap[size]
|
|
14406
14650
|
}),
|
|
14407
14651
|
[size]
|
|
14408
14652
|
);
|
|
14409
|
-
const content = (0,
|
|
14653
|
+
const content = (0, import_react81.useMemo)(() => {
|
|
14410
14654
|
if (renderThumbnailIcon) {
|
|
14411
14655
|
const rendered = renderThumbnailIcon({ fileName, contentType });
|
|
14412
14656
|
if (rendered) return rendered;
|
|
@@ -14426,7 +14670,7 @@ var MediaThumbnail = (0, import_react80.memo)(function MediaThumbnail2({
|
|
|
14426
14670
|
renderUrl.searchParams.set("url", url);
|
|
14427
14671
|
renderUrl.searchParams.set("fit", aspect);
|
|
14428
14672
|
renderUrl.searchParams.set("theme", "light");
|
|
14429
|
-
return /* @__PURE__ */
|
|
14673
|
+
return /* @__PURE__ */ import_react81.default.createElement(
|
|
14430
14674
|
"img",
|
|
14431
14675
|
{
|
|
14432
14676
|
src: renderUrl.toString(),
|
|
@@ -14440,23 +14684,23 @@ var MediaThumbnail = (0, import_react80.memo)(function MediaThumbnail2({
|
|
|
14440
14684
|
}
|
|
14441
14685
|
switch (contentType) {
|
|
14442
14686
|
case "image":
|
|
14443
|
-
return /* @__PURE__ */
|
|
14687
|
+
return /* @__PURE__ */ import_react81.default.createElement(import_noya_icons9.ImageIcon, { color: iconColor, style: iconStyles });
|
|
14444
14688
|
case "video":
|
|
14445
|
-
return /* @__PURE__ */
|
|
14689
|
+
return /* @__PURE__ */ import_react81.default.createElement(import_noya_icons9.VideoIcon, { color: iconColor, style: iconStyles });
|
|
14446
14690
|
case "audio":
|
|
14447
|
-
return /* @__PURE__ */
|
|
14691
|
+
return /* @__PURE__ */ import_react81.default.createElement(import_noya_icons9.SpeakerLoudIcon, { color: iconColor, style: iconStyles });
|
|
14448
14692
|
default:
|
|
14449
14693
|
if (iconName) {
|
|
14450
14694
|
const Icon2 = Icons[iconName];
|
|
14451
|
-
return /* @__PURE__ */
|
|
14695
|
+
return /* @__PURE__ */ import_react81.default.createElement(Icon2, { color: iconColor, style: iconStyles });
|
|
14452
14696
|
}
|
|
14453
14697
|
if (fileName) {
|
|
14454
14698
|
if (fileName.endsWith(".noya")) {
|
|
14455
|
-
return /* @__PURE__ */
|
|
14699
|
+
return /* @__PURE__ */ import_react81.default.createElement(import_noya_icons9.NoyaIcon, { color: iconColor, style: iconStyles });
|
|
14456
14700
|
}
|
|
14457
14701
|
const fileIcon = findFileIcon(fileName);
|
|
14458
14702
|
if (fileIcon) {
|
|
14459
|
-
return /* @__PURE__ */
|
|
14703
|
+
return /* @__PURE__ */ import_react81.default.createElement(
|
|
14460
14704
|
"img",
|
|
14461
14705
|
{
|
|
14462
14706
|
src: `https://api.iconify.design/catppuccin/${fileIcon}.svg?height=none&box=1`,
|
|
@@ -14466,7 +14710,7 @@ var MediaThumbnail = (0, import_react80.memo)(function MediaThumbnail2({
|
|
|
14466
14710
|
);
|
|
14467
14711
|
}
|
|
14468
14712
|
}
|
|
14469
|
-
return /* @__PURE__ */
|
|
14713
|
+
return /* @__PURE__ */ import_react81.default.createElement(import_noya_icons9.FileIcon, { color: iconColor, style: iconStyles });
|
|
14470
14714
|
}
|
|
14471
14715
|
}, [
|
|
14472
14716
|
renderThumbnailIcon,
|
|
@@ -14480,7 +14724,7 @@ var MediaThumbnail = (0, import_react80.memo)(function MediaThumbnail2({
|
|
|
14480
14724
|
iconStyles,
|
|
14481
14725
|
iconName
|
|
14482
14726
|
]);
|
|
14483
|
-
return /* @__PURE__ */
|
|
14727
|
+
return /* @__PURE__ */ import_react81.default.createElement(
|
|
14484
14728
|
"div",
|
|
14485
14729
|
{
|
|
14486
14730
|
className: cx(
|
|
@@ -14523,7 +14767,7 @@ function findFileIcon(fileName) {
|
|
|
14523
14767
|
// src/components/Progress.tsx
|
|
14524
14768
|
var import_noya_utils14 = require("@noya-app/noya-utils");
|
|
14525
14769
|
var import_radix_ui11 = require("radix-ui");
|
|
14526
|
-
var
|
|
14770
|
+
var React77 = __toESM(require("react"));
|
|
14527
14771
|
function Progress({
|
|
14528
14772
|
value,
|
|
14529
14773
|
colorScheme = "normal",
|
|
@@ -14532,18 +14776,18 @@ function Progress({
|
|
|
14532
14776
|
style: styleProp
|
|
14533
14777
|
}) {
|
|
14534
14778
|
const clampedValue = (0, import_noya_utils14.clamp)(value, 0, 100);
|
|
14535
|
-
const transformStyles =
|
|
14779
|
+
const transformStyles = React77.useMemo(
|
|
14536
14780
|
() => ({
|
|
14537
14781
|
transform: `translateX(-${100 - clampedValue}%)`,
|
|
14538
14782
|
backgroundColor: color
|
|
14539
14783
|
}),
|
|
14540
14784
|
[color, clampedValue]
|
|
14541
14785
|
);
|
|
14542
|
-
const style2 =
|
|
14786
|
+
const style2 = React77.useMemo(
|
|
14543
14787
|
() => ({ transform: "translateZ(0)", ...styleProp }),
|
|
14544
14788
|
[styleProp]
|
|
14545
14789
|
);
|
|
14546
|
-
return /* @__PURE__ */
|
|
14790
|
+
return /* @__PURE__ */ React77.createElement(
|
|
14547
14791
|
import_radix_ui11.Progress.Root,
|
|
14548
14792
|
{
|
|
14549
14793
|
className: cx(
|
|
@@ -14553,7 +14797,7 @@ function Progress({
|
|
|
14553
14797
|
style: style2,
|
|
14554
14798
|
value: clampedValue
|
|
14555
14799
|
},
|
|
14556
|
-
/* @__PURE__ */
|
|
14800
|
+
/* @__PURE__ */ React77.createElement(
|
|
14557
14801
|
import_radix_ui11.Progress.Indicator,
|
|
14558
14802
|
{
|
|
14559
14803
|
className: cx(
|
|
@@ -14578,14 +14822,14 @@ function FileUploadIndicator({
|
|
|
14578
14822
|
}) {
|
|
14579
14823
|
const done = percent === 1;
|
|
14580
14824
|
const value = typeof percent === "number" ? Math.round(percent) : 0;
|
|
14581
|
-
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(
|
|
14582
14826
|
MediaThumbnail,
|
|
14583
14827
|
{
|
|
14584
14828
|
size: "medium",
|
|
14585
14829
|
fileName: name,
|
|
14586
14830
|
contentType
|
|
14587
14831
|
}
|
|
14588
|
-
)), /* @__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(
|
|
14589
14833
|
Small,
|
|
14590
14834
|
{
|
|
14591
14835
|
color: "textSubtle",
|
|
@@ -14596,7 +14840,7 @@ function FileUploadIndicator({
|
|
|
14596
14840
|
" /",
|
|
14597
14841
|
" ",
|
|
14598
14842
|
formatByteSize(total)
|
|
14599
|
-
), typeof value === "number" && /* @__PURE__ */
|
|
14843
|
+
), typeof value === "number" && /* @__PURE__ */ import_react82.default.createElement(
|
|
14600
14844
|
Progress,
|
|
14601
14845
|
{
|
|
14602
14846
|
value,
|
|
@@ -14604,7 +14848,7 @@ function FileUploadIndicator({
|
|
|
14604
14848
|
className: "n-rounded-sm",
|
|
14605
14849
|
colorScheme: "secondary"
|
|
14606
14850
|
}
|
|
14607
|
-
)), /* @__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(
|
|
14608
14852
|
Small,
|
|
14609
14853
|
{
|
|
14610
14854
|
color: "textSubtle",
|
|
@@ -14613,12 +14857,12 @@ function FileUploadIndicator({
|
|
|
14613
14857
|
},
|
|
14614
14858
|
value,
|
|
14615
14859
|
"%"
|
|
14616
|
-
), 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 })));
|
|
14617
14861
|
}
|
|
14618
14862
|
function FileUploadList({
|
|
14619
14863
|
uploads
|
|
14620
14864
|
}) {
|
|
14621
|
-
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(
|
|
14622
14866
|
FileUploadIndicator,
|
|
14623
14867
|
{
|
|
14624
14868
|
key: upload.id,
|
|
@@ -14631,7 +14875,7 @@ function FileUploadList({
|
|
|
14631
14875
|
}
|
|
14632
14876
|
|
|
14633
14877
|
// src/components/FloatingWindow.tsx
|
|
14634
|
-
var
|
|
14878
|
+
var import_react83 = __toESM(require("react"));
|
|
14635
14879
|
var styles2 = {
|
|
14636
14880
|
noSelect: {
|
|
14637
14881
|
userSelect: "none",
|
|
@@ -14724,7 +14968,7 @@ function defaultRenderToolbar({
|
|
|
14724
14968
|
toolbarContent,
|
|
14725
14969
|
onClose
|
|
14726
14970
|
}) {
|
|
14727
|
-
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(
|
|
14728
14972
|
IconButton,
|
|
14729
14973
|
{
|
|
14730
14974
|
iconName: "Cross3Icon",
|
|
@@ -14751,16 +14995,16 @@ var FloatingWindow = ({
|
|
|
14751
14995
|
toolbarContent,
|
|
14752
14996
|
renderToolbar = defaultRenderToolbar
|
|
14753
14997
|
}) => {
|
|
14754
|
-
const [position, setPosition] = (0,
|
|
14755
|
-
const [size, setSize] = (0,
|
|
14998
|
+
const [position, setPosition] = (0, import_react83.useState)({ x: initialX, y: initialY });
|
|
14999
|
+
const [size, setSize] = (0, import_react83.useState)({
|
|
14756
15000
|
width: initialWidth,
|
|
14757
15001
|
height: initialHeight
|
|
14758
15002
|
});
|
|
14759
|
-
const [isDragging, setIsDragging] = (0,
|
|
14760
|
-
const [isResizing, setIsResizing] = (0,
|
|
14761
|
-
const [dragOffset, setDragOffset] = (0,
|
|
14762
|
-
const [resizeDirection, setResizeDirection] = (0,
|
|
14763
|
-
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);
|
|
14764
15008
|
const toggleGlobalTextSelection = (disable) => {
|
|
14765
15009
|
if (disable) {
|
|
14766
15010
|
document.body.style.userSelect = "none";
|
|
@@ -14768,7 +15012,7 @@ var FloatingWindow = ({
|
|
|
14768
15012
|
document.body.style.userSelect = "";
|
|
14769
15013
|
}
|
|
14770
15014
|
};
|
|
14771
|
-
const handleMouseDown = (0,
|
|
15015
|
+
const handleMouseDown = (0, import_react83.useCallback)((e) => {
|
|
14772
15016
|
if (!wrapperRef.current) return;
|
|
14773
15017
|
const rect = wrapperRef.current.getBoundingClientRect();
|
|
14774
15018
|
setDragOffset({
|
|
@@ -14777,7 +15021,7 @@ var FloatingWindow = ({
|
|
|
14777
15021
|
});
|
|
14778
15022
|
setIsDragging(true);
|
|
14779
15023
|
}, []);
|
|
14780
|
-
const handleResizeStart = (0,
|
|
15024
|
+
const handleResizeStart = (0, import_react83.useCallback)(
|
|
14781
15025
|
(direction) => (e) => {
|
|
14782
15026
|
e.stopPropagation();
|
|
14783
15027
|
setIsResizing(true);
|
|
@@ -14786,7 +15030,7 @@ var FloatingWindow = ({
|
|
|
14786
15030
|
},
|
|
14787
15031
|
[]
|
|
14788
15032
|
);
|
|
14789
|
-
const handleMouseMove = (0,
|
|
15033
|
+
const handleMouseMove = (0, import_react83.useCallback)(
|
|
14790
15034
|
(e) => {
|
|
14791
15035
|
if (isDragging) {
|
|
14792
15036
|
setPosition({
|
|
@@ -14840,13 +15084,13 @@ var FloatingWindow = ({
|
|
|
14840
15084
|
minHeight
|
|
14841
15085
|
]
|
|
14842
15086
|
);
|
|
14843
|
-
const handleMouseUp = (0,
|
|
15087
|
+
const handleMouseUp = (0, import_react83.useCallback)((_e) => {
|
|
14844
15088
|
setIsDragging(false);
|
|
14845
15089
|
setIsResizing(false);
|
|
14846
15090
|
setResizeDirection(null);
|
|
14847
15091
|
toggleGlobalTextSelection(false);
|
|
14848
15092
|
}, []);
|
|
14849
|
-
|
|
15093
|
+
import_react83.default.useEffect(() => {
|
|
14850
15094
|
document.addEventListener("mousemove", handleMouseMove);
|
|
14851
15095
|
document.addEventListener("mouseup", handleMouseUp);
|
|
14852
15096
|
return () => {
|
|
@@ -14856,11 +15100,11 @@ var FloatingWindow = ({
|
|
|
14856
15100
|
}, [handleMouseMove, handleMouseUp]);
|
|
14857
15101
|
const floatingWindowManager = useFloatingWindowManager();
|
|
14858
15102
|
const currentFloatingWindow = useCurrentFloatingWindowInternal();
|
|
14859
|
-
const handleClose = (0,
|
|
15103
|
+
const handleClose = (0, import_react83.useCallback)(() => {
|
|
14860
15104
|
if (onClose) onClose();
|
|
14861
15105
|
floatingWindowManager.closeWindow(currentFloatingWindow.id);
|
|
14862
15106
|
}, [currentFloatingWindow.id, floatingWindowManager, onClose]);
|
|
14863
|
-
return /* @__PURE__ */
|
|
15107
|
+
return /* @__PURE__ */ import_react83.default.createElement(
|
|
14864
15108
|
"div",
|
|
14865
15109
|
{
|
|
14866
15110
|
ref: wrapperRef,
|
|
@@ -14875,7 +15119,7 @@ var FloatingWindow = ({
|
|
|
14875
15119
|
zIndex: cssVars.zIndex.menu
|
|
14876
15120
|
}
|
|
14877
15121
|
},
|
|
14878
|
-
/* @__PURE__ */
|
|
15122
|
+
/* @__PURE__ */ import_react83.default.createElement(
|
|
14879
15123
|
"div",
|
|
14880
15124
|
{
|
|
14881
15125
|
style: {
|
|
@@ -14886,9 +15130,9 @@ var FloatingWindow = ({
|
|
|
14886
15130
|
},
|
|
14887
15131
|
renderToolbar({ title, toolbarContent, onClose: handleClose })
|
|
14888
15132
|
),
|
|
14889
|
-
/* @__PURE__ */
|
|
14890
|
-
/* @__PURE__ */
|
|
14891
|
-
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(
|
|
14892
15136
|
"div",
|
|
14893
15137
|
{
|
|
14894
15138
|
key: direction,
|
|
@@ -14900,9 +15144,9 @@ var FloatingWindow = ({
|
|
|
14900
15144
|
};
|
|
14901
15145
|
|
|
14902
15146
|
// src/components/InspectorContainer.tsx
|
|
14903
|
-
var
|
|
14904
|
-
var InspectorContainer = (0,
|
|
14905
|
-
(0,
|
|
15147
|
+
var import_react84 = __toESM(require("react"));
|
|
15148
|
+
var InspectorContainer = (0, import_react84.memo)(
|
|
15149
|
+
(0, import_react84.forwardRef)(function InspectorContainer2({
|
|
14906
15150
|
header,
|
|
14907
15151
|
children,
|
|
14908
15152
|
fallback,
|
|
@@ -14911,7 +15155,7 @@ var InspectorContainer = (0, import_react83.memo)(
|
|
|
14911
15155
|
className,
|
|
14912
15156
|
style: style2
|
|
14913
15157
|
}, forwardedRef) {
|
|
14914
|
-
return /* @__PURE__ */
|
|
15158
|
+
return /* @__PURE__ */ import_react84.default.createElement(
|
|
14915
15159
|
"div",
|
|
14916
15160
|
{
|
|
14917
15161
|
ref: forwardedRef,
|
|
@@ -14926,32 +15170,32 @@ var InspectorContainer = (0, import_react83.memo)(
|
|
|
14926
15170
|
}
|
|
14927
15171
|
},
|
|
14928
15172
|
header,
|
|
14929
|
-
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
|
|
14930
15174
|
);
|
|
14931
15175
|
})
|
|
14932
15176
|
);
|
|
14933
15177
|
|
|
14934
15178
|
// src/components/LabeledElementView.tsx
|
|
14935
15179
|
var kiwi = __toESM(require("kiwi.js"));
|
|
14936
|
-
var
|
|
14937
|
-
var LabeledElementView =
|
|
15180
|
+
var React81 = __toESM(require("react"));
|
|
15181
|
+
var LabeledElementView = React81.memo(function LabeledElementView2({
|
|
14938
15182
|
children,
|
|
14939
15183
|
renderLabel
|
|
14940
15184
|
}) {
|
|
14941
|
-
const elementIds =
|
|
14942
|
-
(child) =>
|
|
15185
|
+
const elementIds = React81.Children.toArray(children).flatMap(
|
|
15186
|
+
(child) => React81.isValidElement(child) && child.type === React81.Fragment ? child.props.children : [child]
|
|
14943
15187
|
).map(
|
|
14944
|
-
(child) =>
|
|
15188
|
+
(child) => React81.isValidElement(child) && "id" in child.props ? child.props.id : null
|
|
14945
15189
|
).filter((id) => !!id);
|
|
14946
15190
|
const serializedIds = elementIds.join(",");
|
|
14947
|
-
const containerRef =
|
|
14948
|
-
const refs =
|
|
15191
|
+
const containerRef = React81.useRef(null);
|
|
15192
|
+
const refs = React81.useMemo(() => {
|
|
14949
15193
|
return Object.fromEntries(
|
|
14950
|
-
serializedIds.split(",").map((id) => [id,
|
|
15194
|
+
serializedIds.split(",").map((id) => [id, React81.createRef()])
|
|
14951
15195
|
);
|
|
14952
15196
|
}, [serializedIds]);
|
|
14953
|
-
const labelElements =
|
|
14954
|
-
return serializedIds.split(",").map((id, index) => /* @__PURE__ */
|
|
15197
|
+
const labelElements = React81.useMemo(() => {
|
|
15198
|
+
return serializedIds.split(",").map((id, index) => /* @__PURE__ */ React81.createElement(
|
|
14955
15199
|
"span",
|
|
14956
15200
|
{
|
|
14957
15201
|
key: id,
|
|
@@ -14964,7 +15208,7 @@ var LabeledElementView = React79.memo(function LabeledElementView2({
|
|
|
14964
15208
|
})
|
|
14965
15209
|
));
|
|
14966
15210
|
}, [refs, serializedIds, renderLabel]);
|
|
14967
|
-
|
|
15211
|
+
React81.useLayoutEffect(() => {
|
|
14968
15212
|
if (!containerRef.current) return;
|
|
14969
15213
|
const containerRect = containerRef.current.getBoundingClientRect();
|
|
14970
15214
|
const solver = new kiwi.Solver();
|
|
@@ -15026,17 +15270,17 @@ var LabeledElementView = React79.memo(function LabeledElementView2({
|
|
|
15026
15270
|
`${Math.max(...heights)}px`
|
|
15027
15271
|
);
|
|
15028
15272
|
}, [refs, labelElements]);
|
|
15029
|
-
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));
|
|
15030
15274
|
});
|
|
15031
15275
|
|
|
15032
15276
|
// src/components/LabeledField.tsx
|
|
15033
|
-
var
|
|
15277
|
+
var import_react86 = __toESM(require("react"));
|
|
15034
15278
|
|
|
15035
15279
|
// src/hooks/useIndent.ts
|
|
15036
|
-
var
|
|
15037
|
-
var IndentContext =
|
|
15280
|
+
var import_react85 = __toESM(require("react"));
|
|
15281
|
+
var IndentContext = import_react85.default.createContext(0);
|
|
15038
15282
|
var useIndent = () => {
|
|
15039
|
-
return
|
|
15283
|
+
return import_react85.default.useContext(IndentContext);
|
|
15040
15284
|
};
|
|
15041
15285
|
|
|
15042
15286
|
// src/components/LabeledField.tsx
|
|
@@ -15048,7 +15292,7 @@ var labeledFieldStyles = (labelType) => cx(
|
|
|
15048
15292
|
var labelTypeInset = {
|
|
15049
15293
|
type: "inset"
|
|
15050
15294
|
};
|
|
15051
|
-
var LabeledField = (0,
|
|
15295
|
+
var LabeledField = (0, import_react86.memo)(function LabeledField2({
|
|
15052
15296
|
children,
|
|
15053
15297
|
label,
|
|
15054
15298
|
labelType: labelTypeProp,
|
|
@@ -15064,15 +15308,15 @@ var LabeledField = (0, import_react85.memo)(function LabeledField2({
|
|
|
15064
15308
|
const labelWidth = labelWidthFromContext ?? minWidth;
|
|
15065
15309
|
const labelTypeFromContext = useLabelType();
|
|
15066
15310
|
const labelType = labelTypeProp ?? labelTypeFromContext;
|
|
15067
|
-
const labeledFieldClasses = (0,
|
|
15311
|
+
const labeledFieldClasses = (0, import_react86.useMemo)(
|
|
15068
15312
|
() => labeledFieldStyles(labelType),
|
|
15069
15313
|
[labelType]
|
|
15070
15314
|
);
|
|
15071
|
-
const labelContextValue = (0,
|
|
15315
|
+
const labelContextValue = (0, import_react86.useMemo)(
|
|
15072
15316
|
() => ({ fieldId, label }),
|
|
15073
15317
|
[fieldId, label]
|
|
15074
15318
|
);
|
|
15075
|
-
const indentStyle = (0,
|
|
15319
|
+
const indentStyle = (0, import_react86.useMemo)(
|
|
15076
15320
|
() => ({
|
|
15077
15321
|
width: indentLevel * 8,
|
|
15078
15322
|
flexBasis: indentLevel * 8,
|
|
@@ -15081,20 +15325,20 @@ var LabeledField = (0, import_react85.memo)(function LabeledField2({
|
|
|
15081
15325
|
}),
|
|
15082
15326
|
[indentLevel]
|
|
15083
15327
|
);
|
|
15084
|
-
const fieldStyle = (0,
|
|
15328
|
+
const fieldStyle = (0, import_react86.useMemo)(
|
|
15085
15329
|
() => ({
|
|
15086
15330
|
minWidth: `calc(100% - ${labelWidth + indentLevel * 8 + 6}px)`
|
|
15087
15331
|
}),
|
|
15088
15332
|
[labelWidth, indentLevel]
|
|
15089
15333
|
);
|
|
15090
|
-
const labelStyle = (0,
|
|
15334
|
+
const labelStyle = (0, import_react86.useMemo)(
|
|
15091
15335
|
() => ({
|
|
15092
15336
|
minWidth: `calc(${labelWidth}px - ${indentLevel * 8}px)`,
|
|
15093
15337
|
...labelStyleProp
|
|
15094
15338
|
}),
|
|
15095
15339
|
[labelWidth, indentLevel, labelStyleProp]
|
|
15096
15340
|
);
|
|
15097
|
-
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(
|
|
15098
15342
|
Label,
|
|
15099
15343
|
{
|
|
15100
15344
|
htmlFor: fieldId,
|
|
@@ -15103,13 +15347,13 @@ var LabeledField = (0, import_react85.memo)(function LabeledField2({
|
|
|
15103
15347
|
...props
|
|
15104
15348
|
},
|
|
15105
15349
|
label
|
|
15106
|
-
), labelType === "start" ? /* @__PURE__ */
|
|
15350
|
+
), labelType === "start" ? /* @__PURE__ */ import_react86.default.createElement("div", { className: "n-flex-auto n-flex", style: fieldStyle }, children) : children)));
|
|
15107
15351
|
});
|
|
15108
15352
|
|
|
15109
15353
|
// src/components/ListMenu.tsx
|
|
15110
15354
|
var import_noya_icons10 = require("@noya-app/noya-icons");
|
|
15111
15355
|
var import_noya_utils15 = require("@noya-app/noya-utils");
|
|
15112
|
-
var
|
|
15356
|
+
var import_react87 = __toESM(require("react"));
|
|
15113
15357
|
function getItemId(item) {
|
|
15114
15358
|
if (item.type === "submenu") {
|
|
15115
15359
|
return item.id;
|
|
@@ -15138,7 +15382,7 @@ function ListMenu({
|
|
|
15138
15382
|
const regularItems = chunk.filter(
|
|
15139
15383
|
(item) => isSubMenuItem(item) || isSelectableMenuItem(item)
|
|
15140
15384
|
);
|
|
15141
|
-
return /* @__PURE__ */
|
|
15385
|
+
return /* @__PURE__ */ import_react87.default.createElement(
|
|
15142
15386
|
List,
|
|
15143
15387
|
{
|
|
15144
15388
|
key: regularItems.map(getItemId).join("-"),
|
|
@@ -15150,30 +15394,30 @@ function ListMenu({
|
|
|
15150
15394
|
getName: (item) => item.title.toString(),
|
|
15151
15395
|
selectedIds,
|
|
15152
15396
|
renderRight,
|
|
15153
|
-
renderThumbnail: ({ item }) => /* @__PURE__ */
|
|
15154
|
-
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),
|
|
15155
15399
|
onClickItem: (itemId) => onSelect(itemId)
|
|
15156
15400
|
}
|
|
15157
15401
|
);
|
|
15158
15402
|
});
|
|
15159
15403
|
return withSeparatorElements(
|
|
15160
15404
|
lists,
|
|
15161
|
-
/* @__PURE__ */
|
|
15405
|
+
/* @__PURE__ */ import_react87.default.createElement(Divider, { overflow: 12, className: "n-my-1" })
|
|
15162
15406
|
);
|
|
15163
15407
|
}
|
|
15164
15408
|
|
|
15165
15409
|
// src/components/ListNavigator.tsx
|
|
15166
|
-
var
|
|
15410
|
+
var import_react91 = __toESM(require("react"));
|
|
15167
15411
|
|
|
15168
15412
|
// src/components/Navigator.tsx
|
|
15169
|
-
var
|
|
15413
|
+
var import_react90 = __toESM(require("react"));
|
|
15170
15414
|
|
|
15171
15415
|
// src/components/StackNavigator.tsx
|
|
15172
15416
|
var import_noya_utils16 = require("@noya-app/noya-utils");
|
|
15173
|
-
var
|
|
15417
|
+
var import_react89 = __toESM(require("react"));
|
|
15174
15418
|
|
|
15175
15419
|
// src/components/BaseToolbar.tsx
|
|
15176
|
-
var
|
|
15420
|
+
var import_react88 = __toESM(require("react"));
|
|
15177
15421
|
var toolbarStyle = {
|
|
15178
15422
|
[cssVarNames.colors.buttonBackground]: "transparent",
|
|
15179
15423
|
[cssVarNames.colors.inputBackground]: "transparent"
|
|
@@ -15185,7 +15429,7 @@ function BaseToolbarContainer({
|
|
|
15185
15429
|
innerClassName,
|
|
15186
15430
|
enableAbsoluteBreakpoint = true
|
|
15187
15431
|
}) {
|
|
15188
|
-
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(
|
|
15189
15433
|
"div",
|
|
15190
15434
|
{
|
|
15191
15435
|
className: cx(
|
|
@@ -15198,7 +15442,7 @@ function BaseToolbarContainer({
|
|
|
15198
15442
|
}
|
|
15199
15443
|
},
|
|
15200
15444
|
children
|
|
15201
|
-
), showDivider && /* @__PURE__ */
|
|
15445
|
+
), showDivider && /* @__PURE__ */ import_react88.default.createElement(Divider, { variant: "strong" }));
|
|
15202
15446
|
}
|
|
15203
15447
|
function BaseToolbar({
|
|
15204
15448
|
children,
|
|
@@ -15210,7 +15454,7 @@ function BaseToolbar({
|
|
|
15210
15454
|
innerClassName,
|
|
15211
15455
|
enableAbsoluteBreakpoint = true
|
|
15212
15456
|
}) {
|
|
15213
|
-
return /* @__PURE__ */
|
|
15457
|
+
return /* @__PURE__ */ import_react88.default.createElement(
|
|
15214
15458
|
BaseToolbarContainer,
|
|
15215
15459
|
{
|
|
15216
15460
|
showDivider,
|
|
@@ -15218,25 +15462,25 @@ function BaseToolbar({
|
|
|
15218
15462
|
innerClassName,
|
|
15219
15463
|
enableAbsoluteBreakpoint
|
|
15220
15464
|
},
|
|
15221
|
-
logo && /* @__PURE__ */
|
|
15222
|
-
/* @__PURE__ */
|
|
15223
|
-
left && /* @__PURE__ */
|
|
15224
|
-
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(
|
|
15225
15469
|
"div",
|
|
15226
15470
|
{
|
|
15227
|
-
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"
|
|
15228
15472
|
},
|
|
15229
|
-
/* @__PURE__ */
|
|
15473
|
+
/* @__PURE__ */ import_react88.default.createElement("div", { className: "n-flex n-items-center n-justify-center n-pointer-events-auto" }, children)
|
|
15230
15474
|
),
|
|
15231
|
-
/* @__PURE__ */
|
|
15232
|
-
/* @__PURE__ */
|
|
15233
|
-
/* @__PURE__ */
|
|
15234
|
-
/* @__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 })
|
|
15235
15479
|
);
|
|
15236
15480
|
}
|
|
15237
15481
|
|
|
15238
15482
|
// src/components/StackNavigator.tsx
|
|
15239
|
-
var StackRenderContext =
|
|
15483
|
+
var StackRenderContext = import_react89.default.createContext({});
|
|
15240
15484
|
function StackNavigator({
|
|
15241
15485
|
items,
|
|
15242
15486
|
onBack,
|
|
@@ -15250,15 +15494,15 @@ function StackNavigator({
|
|
|
15250
15494
|
renderHeader
|
|
15251
15495
|
}) {
|
|
15252
15496
|
const top = items.at(-1);
|
|
15253
|
-
const previousLengthRef = (0,
|
|
15254
|
-
const direction = (0,
|
|
15497
|
+
const previousLengthRef = (0, import_react89.useRef)(items.length);
|
|
15498
|
+
const direction = (0, import_react89.useMemo)(() => {
|
|
15255
15499
|
const previous = previousLengthRef.current;
|
|
15256
15500
|
previousLengthRef.current = items.length;
|
|
15257
15501
|
return items.length >= previous ? "forward" : "back";
|
|
15258
15502
|
}, [items.length]);
|
|
15259
|
-
const [cardSizes, setCardSizes] = (0,
|
|
15260
|
-
const [containerSize, setContainerSize] = (0,
|
|
15261
|
-
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) => {
|
|
15262
15506
|
setCardSizes((prev) => {
|
|
15263
15507
|
if ((0, import_noya_utils16.isDeepEqual)(prev[key], size)) {
|
|
15264
15508
|
return prev;
|
|
@@ -15266,7 +15510,7 @@ function StackNavigator({
|
|
|
15266
15510
|
return { ...prev, [key]: size };
|
|
15267
15511
|
});
|
|
15268
15512
|
}, []);
|
|
15269
|
-
(0,
|
|
15513
|
+
(0, import_react89.useEffect)(() => {
|
|
15270
15514
|
if (!top) {
|
|
15271
15515
|
setContainerSize(void 0);
|
|
15272
15516
|
return;
|
|
@@ -15280,7 +15524,7 @@ function StackNavigator({
|
|
|
15280
15524
|
return measuredSize;
|
|
15281
15525
|
});
|
|
15282
15526
|
}, [cardSizes, top]);
|
|
15283
|
-
(0,
|
|
15527
|
+
(0, import_react89.useEffect)(() => {
|
|
15284
15528
|
setCardSizes((prev) => {
|
|
15285
15529
|
const next = {};
|
|
15286
15530
|
let changed = false;
|
|
@@ -15298,7 +15542,7 @@ function StackNavigator({
|
|
|
15298
15542
|
return changed ? next : prev;
|
|
15299
15543
|
});
|
|
15300
15544
|
}, [items]);
|
|
15301
|
-
const animationStyles = (0,
|
|
15545
|
+
const animationStyles = (0, import_react89.useMemo)(() => {
|
|
15302
15546
|
return {
|
|
15303
15547
|
entering: {
|
|
15304
15548
|
opacity: 0,
|
|
@@ -15318,7 +15562,7 @@ function StackNavigator({
|
|
|
15318
15562
|
};
|
|
15319
15563
|
}, [direction]);
|
|
15320
15564
|
const shouldAnimateSize = containerSize !== void 0;
|
|
15321
|
-
const contentStyle = (0,
|
|
15565
|
+
const contentStyle = (0, import_react89.useMemo)(() => {
|
|
15322
15566
|
if (!containerSize) return void 0;
|
|
15323
15567
|
const style3 = {
|
|
15324
15568
|
// width: containerSize.width,
|
|
@@ -15331,11 +15575,11 @@ function StackNavigator({
|
|
|
15331
15575
|
}
|
|
15332
15576
|
return style3;
|
|
15333
15577
|
}, [containerSize, shouldAnimateSize]);
|
|
15334
|
-
const [animationStates, setAnimationStates] = (0,
|
|
15335
|
-
const [renderContentCache, setRenderContentCache] = (0,
|
|
15578
|
+
const [animationStates, setAnimationStates] = (0, import_react89.useState)({});
|
|
15579
|
+
const [renderContentCache, setRenderContentCache] = (0, import_react89.useState)(
|
|
15336
15580
|
() => Object.fromEntries(items.map((item) => [item.key, item.renderContent]))
|
|
15337
15581
|
);
|
|
15338
|
-
(0,
|
|
15582
|
+
(0, import_react89.useEffect)(() => {
|
|
15339
15583
|
setRenderContentCache((prev) => {
|
|
15340
15584
|
let changed = false;
|
|
15341
15585
|
const next = { ...prev };
|
|
@@ -15353,7 +15597,7 @@ function StackNavigator({
|
|
|
15353
15597
|
return changed ? next : prev;
|
|
15354
15598
|
});
|
|
15355
15599
|
}, [animationStates, items]);
|
|
15356
|
-
const handleChildStateChange = (0,
|
|
15600
|
+
const handleChildStateChange = (0, import_react89.useCallback)(
|
|
15357
15601
|
(key, state) => {
|
|
15358
15602
|
if (!key) return;
|
|
15359
15603
|
setAnimationStates((prev) => {
|
|
@@ -15396,7 +15640,7 @@ function StackNavigator({
|
|
|
15396
15640
|
}
|
|
15397
15641
|
return defaultRenderHeader(headerProps);
|
|
15398
15642
|
};
|
|
15399
|
-
return /* @__PURE__ */
|
|
15643
|
+
return /* @__PURE__ */ import_react89.default.createElement(
|
|
15400
15644
|
"div",
|
|
15401
15645
|
{
|
|
15402
15646
|
className: cx("n-flex n-flex-col", className),
|
|
@@ -15412,13 +15656,13 @@ function StackNavigator({
|
|
|
15412
15656
|
}
|
|
15413
15657
|
},
|
|
15414
15658
|
showHeader && renderHeaderContent(),
|
|
15415
|
-
/* @__PURE__ */
|
|
15659
|
+
/* @__PURE__ */ import_react89.default.createElement(
|
|
15416
15660
|
"div",
|
|
15417
15661
|
{
|
|
15418
15662
|
className: cx("n-relative n-overflow-hidden", contentClassName),
|
|
15419
15663
|
style: contentStyle
|
|
15420
15664
|
},
|
|
15421
|
-
/* @__PURE__ */
|
|
15665
|
+
/* @__PURE__ */ import_react89.default.createElement(StackRenderContext.Provider, { value: renderContentCache }, /* @__PURE__ */ import_react89.default.createElement(
|
|
15422
15666
|
AnimatePresence,
|
|
15423
15667
|
{
|
|
15424
15668
|
duration: 200,
|
|
@@ -15427,7 +15671,7 @@ function StackNavigator({
|
|
|
15427
15671
|
mode: "wait",
|
|
15428
15672
|
onChildStateChange: handleChildStateChange
|
|
15429
15673
|
},
|
|
15430
|
-
/* @__PURE__ */
|
|
15674
|
+
/* @__PURE__ */ import_react89.default.createElement(
|
|
15431
15675
|
StackNavigatorCard,
|
|
15432
15676
|
{
|
|
15433
15677
|
key: top.key,
|
|
@@ -15447,15 +15691,15 @@ var StackNavigatorCard = ({
|
|
|
15447
15691
|
style: style2,
|
|
15448
15692
|
className
|
|
15449
15693
|
}) => {
|
|
15450
|
-
const ref =
|
|
15694
|
+
const ref = import_react89.default.useRef(null);
|
|
15451
15695
|
const size = useSize(ref);
|
|
15452
|
-
const renderContext =
|
|
15696
|
+
const renderContext = import_react89.default.useContext(StackRenderContext);
|
|
15453
15697
|
const renderContent = renderContext?.[item.key] ?? item.renderContent;
|
|
15454
|
-
|
|
15698
|
+
import_react89.default.useEffect(() => {
|
|
15455
15699
|
if (!size || size.width === 0 || size.height === 0) return;
|
|
15456
15700
|
onSizeChange(item.key, size);
|
|
15457
15701
|
}, [item.key, onSizeChange, size]);
|
|
15458
|
-
return /* @__PURE__ */
|
|
15702
|
+
return /* @__PURE__ */ import_react89.default.createElement("div", { ref, className: cx("n-flex n-flex-col", className), style: style2 }, renderContent?.());
|
|
15459
15703
|
};
|
|
15460
15704
|
function defaultRenderHeader({
|
|
15461
15705
|
showDivider,
|
|
@@ -15464,13 +15708,13 @@ function defaultRenderHeader({
|
|
|
15464
15708
|
right,
|
|
15465
15709
|
title
|
|
15466
15710
|
}) {
|
|
15467
|
-
return /* @__PURE__ */
|
|
15711
|
+
return /* @__PURE__ */ import_react89.default.createElement(
|
|
15468
15712
|
BaseToolbar,
|
|
15469
15713
|
{
|
|
15470
15714
|
innerClassName: "n-px-1",
|
|
15471
15715
|
showDivider,
|
|
15472
15716
|
enableAbsoluteBreakpoint: false,
|
|
15473
|
-
left: showBackButton && /* @__PURE__ */
|
|
15717
|
+
left: showBackButton && /* @__PURE__ */ import_react89.default.createElement(
|
|
15474
15718
|
Button,
|
|
15475
15719
|
{
|
|
15476
15720
|
className: "-n-mx-2",
|
|
@@ -15481,7 +15725,7 @@ function defaultRenderHeader({
|
|
|
15481
15725
|
),
|
|
15482
15726
|
right
|
|
15483
15727
|
},
|
|
15484
|
-
typeof title === "string" || typeof title === "number" ? /* @__PURE__ */
|
|
15728
|
+
typeof title === "string" || typeof title === "number" ? /* @__PURE__ */ import_react89.default.createElement(Body, null, title) : title
|
|
15485
15729
|
);
|
|
15486
15730
|
}
|
|
15487
15731
|
|
|
@@ -15493,23 +15737,23 @@ var NavigatorScreen = Object.assign(
|
|
|
15493
15737
|
[navigatorScreenIdentifier]: true
|
|
15494
15738
|
}
|
|
15495
15739
|
);
|
|
15496
|
-
var NavigatorScreenContext =
|
|
15740
|
+
var NavigatorScreenContext = import_react90.default.createContext(null);
|
|
15497
15741
|
function useNavigator() {
|
|
15498
|
-
const context =
|
|
15742
|
+
const context = import_react90.default.useContext(NavigatorScreenContext);
|
|
15499
15743
|
if (!context) {
|
|
15500
15744
|
throw new Error("useNavigator must be used within a Navigator screen");
|
|
15501
15745
|
}
|
|
15502
15746
|
return context.navigation;
|
|
15503
15747
|
}
|
|
15504
15748
|
function useNavigatorRoute() {
|
|
15505
|
-
const context =
|
|
15749
|
+
const context = import_react90.default.useContext(NavigatorScreenContext);
|
|
15506
15750
|
if (!context) {
|
|
15507
15751
|
throw new Error("useNavigatorRoute must be used within a Navigator screen");
|
|
15508
15752
|
}
|
|
15509
15753
|
return context.route;
|
|
15510
15754
|
}
|
|
15511
15755
|
function isNavigatorScreenElement(child) {
|
|
15512
|
-
return (0,
|
|
15756
|
+
return (0, import_react90.isValidElement)(child) && Boolean(
|
|
15513
15757
|
child.type?.[navigatorScreenIdentifier]
|
|
15514
15758
|
);
|
|
15515
15759
|
}
|
|
@@ -15530,15 +15774,15 @@ function NavigatorImpl({
|
|
|
15530
15774
|
showHeader,
|
|
15531
15775
|
renderHeader
|
|
15532
15776
|
}) {
|
|
15533
|
-
const screens = (0,
|
|
15777
|
+
const screens = (0, import_react90.useMemo)(() => {
|
|
15534
15778
|
const configs = [];
|
|
15535
|
-
|
|
15779
|
+
import_react90.Children.forEach(children, (child) => {
|
|
15536
15780
|
if (!isNavigatorScreenElement(child)) return;
|
|
15537
15781
|
configs.push(child.props);
|
|
15538
15782
|
});
|
|
15539
15783
|
return configs;
|
|
15540
15784
|
}, [children]);
|
|
15541
|
-
const screenMap = (0,
|
|
15785
|
+
const screenMap = (0, import_react90.useMemo)(() => {
|
|
15542
15786
|
const map = /* @__PURE__ */ new Map();
|
|
15543
15787
|
for (const screen of screens) {
|
|
15544
15788
|
if (map.has(screen.name)) {
|
|
@@ -15550,8 +15794,8 @@ function NavigatorImpl({
|
|
|
15550
15794
|
}
|
|
15551
15795
|
return map;
|
|
15552
15796
|
}, [screens]);
|
|
15553
|
-
const keyRef = (0,
|
|
15554
|
-
const createEntry = (0,
|
|
15797
|
+
const keyRef = (0, import_react90.useRef)(0);
|
|
15798
|
+
const createEntry = (0, import_react90.useCallback)(
|
|
15555
15799
|
(name, params) => ({
|
|
15556
15800
|
key: `${String(name)}-${keyRef.current++}`,
|
|
15557
15801
|
name,
|
|
@@ -15565,13 +15809,13 @@ function NavigatorImpl({
|
|
|
15565
15809
|
`Navigator: initial route "${String(initialScreenName)}" is not registered as a screen.`
|
|
15566
15810
|
);
|
|
15567
15811
|
}
|
|
15568
|
-
const [stack, setStack] = (0,
|
|
15812
|
+
const [stack, setStack] = (0, import_react90.useState)(() => [
|
|
15569
15813
|
createEntry(
|
|
15570
15814
|
initialScreenName,
|
|
15571
15815
|
initialRoute.params
|
|
15572
15816
|
)
|
|
15573
15817
|
]);
|
|
15574
|
-
const push = (0,
|
|
15818
|
+
const push = (0, import_react90.useCallback)(
|
|
15575
15819
|
(...args) => {
|
|
15576
15820
|
const [name, params] = args;
|
|
15577
15821
|
const screen = screenMap.get(name);
|
|
@@ -15585,7 +15829,7 @@ function NavigatorImpl({
|
|
|
15585
15829
|
},
|
|
15586
15830
|
[createEntry, screenMap]
|
|
15587
15831
|
);
|
|
15588
|
-
const pop = (0,
|
|
15832
|
+
const pop = (0, import_react90.useCallback)(() => {
|
|
15589
15833
|
setStack((prev) => {
|
|
15590
15834
|
if (prev.length <= 1) return prev;
|
|
15591
15835
|
const nextStack = prev.slice(0, -1);
|
|
@@ -15601,7 +15845,7 @@ function NavigatorImpl({
|
|
|
15601
15845
|
return updatedStack;
|
|
15602
15846
|
});
|
|
15603
15847
|
}, [createEntry]);
|
|
15604
|
-
const replace = (0,
|
|
15848
|
+
const replace = (0, import_react90.useCallback)(
|
|
15605
15849
|
(targetKey, name, params) => {
|
|
15606
15850
|
const screen = screenMap.get(name);
|
|
15607
15851
|
if (!screen) {
|
|
@@ -15627,7 +15871,7 @@ function NavigatorImpl({
|
|
|
15627
15871
|
},
|
|
15628
15872
|
[createEntry, screenMap]
|
|
15629
15873
|
);
|
|
15630
|
-
const items = (0,
|
|
15874
|
+
const items = (0, import_react90.useMemo)(() => {
|
|
15631
15875
|
return stack.flatMap((entry) => {
|
|
15632
15876
|
const screen = screenMap.get(entry.name);
|
|
15633
15877
|
if (!screen) return [];
|
|
@@ -15665,7 +15909,7 @@ function NavigatorImpl({
|
|
|
15665
15909
|
onBack: headerProps.onBack
|
|
15666
15910
|
}),
|
|
15667
15911
|
renderContent: () => {
|
|
15668
|
-
return /* @__PURE__ */
|
|
15912
|
+
return /* @__PURE__ */ import_react90.default.createElement(NavigatorScreenContext.Provider, { value: context }, evaluateOption(screen.children, context));
|
|
15669
15913
|
}
|
|
15670
15914
|
};
|
|
15671
15915
|
});
|
|
@@ -15673,7 +15917,7 @@ function NavigatorImpl({
|
|
|
15673
15917
|
const shouldShowHeader = evaluateOption(showHeader, {
|
|
15674
15918
|
stack
|
|
15675
15919
|
});
|
|
15676
|
-
return /* @__PURE__ */
|
|
15920
|
+
return /* @__PURE__ */ import_react90.default.createElement(
|
|
15677
15921
|
StackNavigator,
|
|
15678
15922
|
{
|
|
15679
15923
|
items,
|
|
@@ -15713,7 +15957,7 @@ function ListNavigator({
|
|
|
15713
15957
|
renderHeader,
|
|
15714
15958
|
selectedIds
|
|
15715
15959
|
}) {
|
|
15716
|
-
return /* @__PURE__ */
|
|
15960
|
+
return /* @__PURE__ */ import_react91.default.createElement(
|
|
15717
15961
|
ListNavigatorInternal,
|
|
15718
15962
|
{
|
|
15719
15963
|
initialRoute: { name: "screen", params: { id: void 0 } },
|
|
@@ -15731,7 +15975,7 @@ function ListNavigator({
|
|
|
15731
15975
|
className,
|
|
15732
15976
|
style: style2
|
|
15733
15977
|
},
|
|
15734
|
-
/* @__PURE__ */
|
|
15978
|
+
/* @__PURE__ */ import_react91.default.createElement(
|
|
15735
15979
|
ListNavigatorInternal.Screen,
|
|
15736
15980
|
{
|
|
15737
15981
|
name: "screen",
|
|
@@ -15746,7 +15990,7 @@ function ListNavigator({
|
|
|
15746
15990
|
const nestedItem = items.find(
|
|
15747
15991
|
(item) => isSubMenuItem(item) && item.id === route.params.id
|
|
15748
15992
|
);
|
|
15749
|
-
return /* @__PURE__ */
|
|
15993
|
+
return /* @__PURE__ */ import_react91.default.createElement(
|
|
15750
15994
|
ListMenu,
|
|
15751
15995
|
{
|
|
15752
15996
|
items: nestedItem?.items ?? items,
|
|
@@ -15771,18 +16015,19 @@ function ListNavigator({
|
|
|
15771
16015
|
|
|
15772
16016
|
// src/components/Message.tsx
|
|
15773
16017
|
var import_noya_utils17 = require("@noya-app/noya-utils");
|
|
15774
|
-
var
|
|
15775
|
-
var Message = (0,
|
|
15776
|
-
(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) {
|
|
15777
16021
|
const randomId = (0, import_noya_utils17.uuid)();
|
|
15778
|
-
const
|
|
15779
|
-
const
|
|
16022
|
+
const resolvedUserId = user?.authId ?? user?.connectionId ?? randomId;
|
|
16023
|
+
const userMessageBackgroundColor = colorFromString(resolvedUserId);
|
|
16024
|
+
const styles3 = (0, import_react92.useMemo)(
|
|
15780
16025
|
() => role === "user" ? {
|
|
15781
16026
|
backgroundColor: userMessageBackgroundColor
|
|
15782
16027
|
} : void 0,
|
|
15783
16028
|
[userMessageBackgroundColor, role]
|
|
15784
16029
|
);
|
|
15785
|
-
return /* @__PURE__ */
|
|
16030
|
+
return /* @__PURE__ */ import_react92.default.createElement(
|
|
15786
16031
|
"div",
|
|
15787
16032
|
{
|
|
15788
16033
|
className: cx(
|
|
@@ -15790,24 +16035,24 @@ var Message = (0, import_react91.memo)(
|
|
|
15790
16035
|
role === "user" ? "n-flex-row-reverse" : "n-flex-row"
|
|
15791
16036
|
)
|
|
15792
16037
|
},
|
|
15793
|
-
role === "assistant" ? /* @__PURE__ */
|
|
16038
|
+
role === "assistant" ? /* @__PURE__ */ import_react92.default.createElement(
|
|
15794
16039
|
Avatar,
|
|
15795
16040
|
{
|
|
15796
16041
|
name: "Assistant",
|
|
15797
16042
|
size: avatarSize,
|
|
15798
16043
|
backgroundColor: cssVars.colors.primaryPastel
|
|
15799
16044
|
},
|
|
15800
|
-
/* @__PURE__ */
|
|
15801
|
-
) : /* @__PURE__ */
|
|
16045
|
+
/* @__PURE__ */ import_react92.default.createElement(Logo, { style: { width: 15 }, fill: cssVars.colors.primary })
|
|
16046
|
+
) : /* @__PURE__ */ import_react92.default.createElement(
|
|
15802
16047
|
Avatar,
|
|
15803
16048
|
{
|
|
15804
|
-
userId:
|
|
16049
|
+
userId: resolvedUserId,
|
|
15805
16050
|
name: user?.name ?? "Anonymous",
|
|
15806
16051
|
image: user?.image,
|
|
15807
16052
|
size: avatarSize
|
|
15808
16053
|
}
|
|
15809
16054
|
),
|
|
15810
|
-
/* @__PURE__ */
|
|
16055
|
+
/* @__PURE__ */ import_react92.default.createElement(
|
|
15811
16056
|
"div",
|
|
15812
16057
|
{
|
|
15813
16058
|
className: cx(
|
|
@@ -15827,9 +16072,9 @@ var Message = (0, import_react91.memo)(
|
|
|
15827
16072
|
|
|
15828
16073
|
// src/components/pipeline/PipelineResultLayout.tsx
|
|
15829
16074
|
var import_noya_icons11 = require("@noya-app/noya-icons");
|
|
15830
|
-
var
|
|
16075
|
+
var import_react93 = __toESM(require("react"));
|
|
15831
16076
|
var PipelineResultLink = ({ url }) => {
|
|
15832
|
-
return /* @__PURE__ */
|
|
16077
|
+
return /* @__PURE__ */ import_react93.default.createElement("div", { className: "n-flex n-flex-col gap-0.5" }, /* @__PURE__ */ import_react93.default.createElement(
|
|
15833
16078
|
"a",
|
|
15834
16079
|
{
|
|
15835
16080
|
href: url,
|
|
@@ -15837,15 +16082,15 @@ var PipelineResultLink = ({ url }) => {
|
|
|
15837
16082
|
rel: "noopener noreferrer",
|
|
15838
16083
|
className: "n-flex n-text-primary hover:n-opacity-80 n-border n-border-divider n-rounded-md"
|
|
15839
16084
|
},
|
|
15840
|
-
/* @__PURE__ */
|
|
15841
|
-
/* @__PURE__ */
|
|
15842
|
-
/* @__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)
|
|
15843
16088
|
));
|
|
15844
16089
|
};
|
|
15845
16090
|
var PipelineResultLayout = ({
|
|
15846
16091
|
children
|
|
15847
16092
|
}) => {
|
|
15848
|
-
return /* @__PURE__ */
|
|
16093
|
+
return /* @__PURE__ */ import_react93.default.createElement("div", { className: "n-flex n-flex-col n-gap-2" }, children);
|
|
15849
16094
|
};
|
|
15850
16095
|
function getPipelineResultLink(value) {
|
|
15851
16096
|
if (typeof value !== "object" || value === null) return void 0;
|
|
@@ -15859,7 +16104,7 @@ function getPipelineResultLink(value) {
|
|
|
15859
16104
|
}
|
|
15860
16105
|
|
|
15861
16106
|
// src/components/ResizableContainer.tsx
|
|
15862
|
-
var
|
|
16107
|
+
var import_react94 = __toESM(require("react"));
|
|
15863
16108
|
var ResizableContainer = ({
|
|
15864
16109
|
children,
|
|
15865
16110
|
minWidth,
|
|
@@ -15872,13 +16117,13 @@ var ResizableContainer = ({
|
|
|
15872
16117
|
onChangeWidth,
|
|
15873
16118
|
shouldResetWidthOnGestureEnd: shouldResetWidth
|
|
15874
16119
|
}) => {
|
|
15875
|
-
const containerRef = (0,
|
|
15876
|
-
const resizeableRef = (0,
|
|
15877
|
-
const handleRef = (0,
|
|
15878
|
-
const clickCounter = (0,
|
|
15879
|
-
const [width, setWidth] = (0,
|
|
15880
|
-
const [drag, setDrag] = (0,
|
|
15881
|
-
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)(
|
|
15882
16127
|
(event) => {
|
|
15883
16128
|
const containerWidth = containerRef.current?.getBoundingClientRect().width;
|
|
15884
16129
|
const resizeableWidth = resizeableRef.current?.getBoundingClientRect().width;
|
|
@@ -15896,7 +16141,7 @@ var ResizableContainer = ({
|
|
|
15896
16141
|
},
|
|
15897
16142
|
[maxWidth, minWidth]
|
|
15898
16143
|
);
|
|
15899
|
-
const handlePointerMove = (0,
|
|
16144
|
+
const handlePointerMove = (0, import_react94.useCallback)(
|
|
15900
16145
|
(event) => {
|
|
15901
16146
|
if (!drag) return;
|
|
15902
16147
|
const delta = event.clientX - drag.startX;
|
|
@@ -15912,7 +16157,7 @@ var ResizableContainer = ({
|
|
|
15912
16157
|
},
|
|
15913
16158
|
[drag, onChangeWidth]
|
|
15914
16159
|
);
|
|
15915
|
-
const handlePointerUp = (0,
|
|
16160
|
+
const handlePointerUp = (0, import_react94.useCallback)(
|
|
15916
16161
|
(event) => {
|
|
15917
16162
|
setDrag(void 0);
|
|
15918
16163
|
handleRef.current?.releasePointerCapture(event.pointerId);
|
|
@@ -15928,7 +16173,7 @@ var ResizableContainer = ({
|
|
|
15928
16173
|
},
|
|
15929
16174
|
[shouldResetWidth]
|
|
15930
16175
|
);
|
|
15931
|
-
return /* @__PURE__ */
|
|
16176
|
+
return /* @__PURE__ */ import_react94.default.createElement(
|
|
15932
16177
|
"div",
|
|
15933
16178
|
{
|
|
15934
16179
|
ref: containerRef,
|
|
@@ -15936,7 +16181,7 @@ var ResizableContainer = ({
|
|
|
15936
16181
|
style: { position: "relative", ...style2 },
|
|
15937
16182
|
className
|
|
15938
16183
|
},
|
|
15939
|
-
/* @__PURE__ */
|
|
16184
|
+
/* @__PURE__ */ import_react94.default.createElement(
|
|
15940
16185
|
"div",
|
|
15941
16186
|
{
|
|
15942
16187
|
ref: resizeableRef,
|
|
@@ -15947,7 +16192,7 @@ var ResizableContainer = ({
|
|
|
15947
16192
|
}
|
|
15948
16193
|
},
|
|
15949
16194
|
typeof children === "function" ? children({ width }) : children,
|
|
15950
|
-
/* @__PURE__ */
|
|
16195
|
+
/* @__PURE__ */ import_react94.default.createElement(
|
|
15951
16196
|
"div",
|
|
15952
16197
|
{
|
|
15953
16198
|
ref: handleRef,
|
|
@@ -15972,7 +16217,7 @@ var ResizableContainer = ({
|
|
|
15972
16217
|
onPointerUp: handlePointerUp,
|
|
15973
16218
|
onPointerCancel: handlePointerUp
|
|
15974
16219
|
},
|
|
15975
|
-
/* @__PURE__ */
|
|
16220
|
+
/* @__PURE__ */ import_react94.default.createElement(
|
|
15976
16221
|
"div",
|
|
15977
16222
|
{
|
|
15978
16223
|
style: {
|
|
@@ -15990,7 +16235,7 @@ var ResizableContainer = ({
|
|
|
15990
16235
|
}
|
|
15991
16236
|
)
|
|
15992
16237
|
),
|
|
15993
|
-
drag && /* @__PURE__ */
|
|
16238
|
+
drag && /* @__PURE__ */ import_react94.default.createElement(
|
|
15994
16239
|
"div",
|
|
15995
16240
|
{
|
|
15996
16241
|
style: {
|
|
@@ -16013,7 +16258,7 @@ function clamp5(value, min, max) {
|
|
|
16013
16258
|
|
|
16014
16259
|
// src/components/RingProgress.tsx
|
|
16015
16260
|
var import_noya_utils18 = require("@noya-app/noya-utils");
|
|
16016
|
-
var
|
|
16261
|
+
var React92 = __toESM(require("react"));
|
|
16017
16262
|
function RingProgress({
|
|
16018
16263
|
value,
|
|
16019
16264
|
dividedBy = 100,
|
|
@@ -16029,14 +16274,14 @@ function RingProgress({
|
|
|
16029
16274
|
const safeDivisor = dividedBy > 0 ? dividedBy : 1;
|
|
16030
16275
|
const clampedRaw = (0, import_noya_utils18.clamp)(value, 0, safeDivisor);
|
|
16031
16276
|
const clampedPercent = clampedRaw / safeDivisor * 100;
|
|
16032
|
-
const radius =
|
|
16033
|
-
const circumference =
|
|
16034
|
-
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(
|
|
16035
16280
|
() => (100 - clampedPercent) / 100 * circumference,
|
|
16036
16281
|
[circumference, clampedPercent]
|
|
16037
16282
|
);
|
|
16038
16283
|
const trackStroke = trackColor ?? "var(--n-input-background, rgba(0,0,0,0.08))";
|
|
16039
|
-
const colorClass =
|
|
16284
|
+
const colorClass = React92.useMemo(() => {
|
|
16040
16285
|
switch (colorScheme) {
|
|
16041
16286
|
case "primary":
|
|
16042
16287
|
return "n-stroke-primary";
|
|
@@ -16049,7 +16294,7 @@ function RingProgress({
|
|
|
16049
16294
|
return "n-stroke-text";
|
|
16050
16295
|
}
|
|
16051
16296
|
}, [colorScheme]);
|
|
16052
|
-
const computedStroke =
|
|
16297
|
+
const computedStroke = React92.useMemo(() => {
|
|
16053
16298
|
if (color) return color;
|
|
16054
16299
|
switch (colorScheme) {
|
|
16055
16300
|
case "primary":
|
|
@@ -16063,7 +16308,7 @@ function RingProgress({
|
|
|
16063
16308
|
return "var(--n-text, currentColor)";
|
|
16064
16309
|
}
|
|
16065
16310
|
}, [color, colorScheme]);
|
|
16066
|
-
return /* @__PURE__ */
|
|
16311
|
+
return /* @__PURE__ */ React92.createElement(
|
|
16067
16312
|
"span",
|
|
16068
16313
|
{
|
|
16069
16314
|
className: cx("n-inline-flex n-items-center n-justify-center", className),
|
|
@@ -16074,7 +16319,7 @@ function RingProgress({
|
|
|
16074
16319
|
"aria-valuemax": safeDivisor,
|
|
16075
16320
|
"aria-label": ariaLabel
|
|
16076
16321
|
},
|
|
16077
|
-
/* @__PURE__ */
|
|
16322
|
+
/* @__PURE__ */ React92.createElement(
|
|
16078
16323
|
"svg",
|
|
16079
16324
|
{
|
|
16080
16325
|
width: size,
|
|
@@ -16082,7 +16327,7 @@ function RingProgress({
|
|
|
16082
16327
|
viewBox: `0 0 ${size} ${size}`,
|
|
16083
16328
|
style: { display: "block" }
|
|
16084
16329
|
},
|
|
16085
|
-
/* @__PURE__ */
|
|
16330
|
+
/* @__PURE__ */ React92.createElement(
|
|
16086
16331
|
"circle",
|
|
16087
16332
|
{
|
|
16088
16333
|
cx: size / 2,
|
|
@@ -16093,7 +16338,7 @@ function RingProgress({
|
|
|
16093
16338
|
strokeWidth: thickness
|
|
16094
16339
|
}
|
|
16095
16340
|
),
|
|
16096
|
-
/* @__PURE__ */
|
|
16341
|
+
/* @__PURE__ */ React92.createElement(
|
|
16097
16342
|
"circle",
|
|
16098
16343
|
{
|
|
16099
16344
|
cx: size / 2,
|
|
@@ -16117,49 +16362,13 @@ function RingProgress({
|
|
|
16117
16362
|
}
|
|
16118
16363
|
|
|
16119
16364
|
// src/components/ScrollableSidebar.tsx
|
|
16120
|
-
var
|
|
16365
|
+
var import_react95 = __toESM(require("react"));
|
|
16121
16366
|
function ScrollableSidebar({ children }) {
|
|
16122
|
-
return /* @__PURE__ */
|
|
16123
|
-
}
|
|
16124
|
-
|
|
16125
|
-
// src/components/ScrollArea2.tsx
|
|
16126
|
-
var import_scroll_area = require("@base-ui-components/react/scroll-area");
|
|
16127
|
-
var React92 = __toESM(require("react"));
|
|
16128
|
-
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";
|
|
16129
|
-
var SCROLLBAR_TRACK_VERTICAL = "n-m-1 n-w-1 flex n-justify-center n-rounded-md n-bg-divider-subtle";
|
|
16130
|
-
var SCROLLBAR_TRACK_HORIZONTAL = "n-m-1 n-h-1 flex n-justify-center n-rounded-md n-bg-divider-subtle";
|
|
16131
|
-
var SCROLLBAR_THUMB_VERTICAL = "scroll-component n-w-full n-rounded n-bg-scrollbar";
|
|
16132
|
-
var SCROLLBAR_THUMB_HORIZONTAL = "scroll-component n-h-full n-rounded n-bg-scrollbar";
|
|
16133
|
-
function ScrollArea22({
|
|
16134
|
-
children,
|
|
16135
|
-
className,
|
|
16136
|
-
viewportClassName,
|
|
16137
|
-
orientation = "vertical"
|
|
16138
|
-
}) {
|
|
16139
|
-
return /* @__PURE__ */ React92.createElement(import_scroll_area.ScrollArea.Root, { className: cx("n-relative", className) }, /* @__PURE__ */ React92.createElement(
|
|
16140
|
-
import_scroll_area.ScrollArea.Viewport,
|
|
16141
|
-
{
|
|
16142
|
-
className: cx("n-h-full n-overscroll-contain", viewportClassName)
|
|
16143
|
-
},
|
|
16144
|
-
children
|
|
16145
|
-
), (orientation === "vertical" || orientation === "both") && /* @__PURE__ */ React92.createElement(
|
|
16146
|
-
import_scroll_area.ScrollArea.Scrollbar,
|
|
16147
|
-
{
|
|
16148
|
-
className: cx(SCROLLBAR_STATE_CLASSES, SCROLLBAR_TRACK_VERTICAL)
|
|
16149
|
-
},
|
|
16150
|
-
/* @__PURE__ */ React92.createElement(import_scroll_area.ScrollArea.Thumb, { className: SCROLLBAR_THUMB_VERTICAL })
|
|
16151
|
-
), (orientation === "horizontal" || orientation === "both") && /* @__PURE__ */ React92.createElement(
|
|
16152
|
-
import_scroll_area.ScrollArea.Scrollbar,
|
|
16153
|
-
{
|
|
16154
|
-
orientation: "horizontal",
|
|
16155
|
-
className: cx(SCROLLBAR_STATE_CLASSES, SCROLLBAR_TRACK_HORIZONTAL)
|
|
16156
|
-
},
|
|
16157
|
-
/* @__PURE__ */ React92.createElement(import_scroll_area.ScrollArea.Thumb, { className: SCROLLBAR_THUMB_HORIZONTAL })
|
|
16158
|
-
), 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));
|
|
16159
16368
|
}
|
|
16160
16369
|
|
|
16161
16370
|
// src/components/Section.tsx
|
|
16162
|
-
var
|
|
16371
|
+
var import_react96 = __toESM(require("react"));
|
|
16163
16372
|
var titleIconStyle = {
|
|
16164
16373
|
marginRight: "6px",
|
|
16165
16374
|
alignSelf: "flex-start",
|
|
@@ -16180,14 +16389,14 @@ function SectionHeader({
|
|
|
16180
16389
|
titleClassName,
|
|
16181
16390
|
onClickTitle
|
|
16182
16391
|
}) {
|
|
16183
|
-
const headerStyle = (0,
|
|
16392
|
+
const headerStyle = (0, import_react96.useMemo)(
|
|
16184
16393
|
() => ({
|
|
16185
16394
|
minHeight: INPUT_HEIGHT,
|
|
16186
16395
|
...style2
|
|
16187
16396
|
}),
|
|
16188
16397
|
[style2]
|
|
16189
16398
|
);
|
|
16190
|
-
const titleElement = title ? /* @__PURE__ */
|
|
16399
|
+
const titleElement = title ? /* @__PURE__ */ import_react96.default.createElement(
|
|
16191
16400
|
InspectorPrimitives_exports.Title,
|
|
16192
16401
|
{
|
|
16193
16402
|
$textStyle: titleTextStyle,
|
|
@@ -16195,16 +16404,16 @@ function SectionHeader({
|
|
|
16195
16404
|
},
|
|
16196
16405
|
title
|
|
16197
16406
|
) : null;
|
|
16198
|
-
return /* @__PURE__ */
|
|
16407
|
+
return /* @__PURE__ */ import_react96.default.createElement(
|
|
16199
16408
|
InspectorPrimitives_exports.SectionHeader,
|
|
16200
16409
|
{
|
|
16201
16410
|
style: headerStyle,
|
|
16202
16411
|
className
|
|
16203
16412
|
},
|
|
16204
|
-
titleIcon && /* @__PURE__ */
|
|
16205
|
-
titleElement && /* @__PURE__ */
|
|
16206
|
-
headerSeparator === "space" && /* @__PURE__ */
|
|
16207
|
-
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(
|
|
16208
16417
|
Text,
|
|
16209
16418
|
{
|
|
16210
16419
|
variant: titleTextStyle,
|
|
@@ -16230,7 +16439,7 @@ var SectionInternal = ({
|
|
|
16230
16439
|
titleClassName,
|
|
16231
16440
|
headerStyle: headerStyleProp
|
|
16232
16441
|
}) => {
|
|
16233
|
-
const style2 = (0,
|
|
16442
|
+
const style2 = (0, import_react96.useMemo)(
|
|
16234
16443
|
() => ({
|
|
16235
16444
|
display: "flex",
|
|
16236
16445
|
flexDirection: "column",
|
|
@@ -16241,15 +16450,15 @@ var SectionInternal = ({
|
|
|
16241
16450
|
}),
|
|
16242
16451
|
[titleTextStyle, title, extraPadding, styleProp]
|
|
16243
16452
|
);
|
|
16244
|
-
const hasChildren =
|
|
16245
|
-
const headerStyle = (0,
|
|
16453
|
+
const hasChildren = import_react96.default.Children.toArray(children).some((child) => !!child);
|
|
16454
|
+
const headerStyle = (0, import_react96.useMemo)(
|
|
16246
16455
|
() => ({
|
|
16247
16456
|
marginBottom: hasChildren ? "4px" : void 0,
|
|
16248
16457
|
...headerStyleProp
|
|
16249
16458
|
}),
|
|
16250
16459
|
[hasChildren, headerStyleProp]
|
|
16251
16460
|
);
|
|
16252
|
-
return /* @__PURE__ */
|
|
16461
|
+
return /* @__PURE__ */ import_react96.default.createElement("div", { style: style2, className }, (title || titleIcon || right) && /* @__PURE__ */ import_react96.default.createElement(
|
|
16253
16462
|
SectionHeader,
|
|
16254
16463
|
{
|
|
16255
16464
|
style: headerStyle,
|
|
@@ -16261,7 +16470,7 @@ var SectionInternal = ({
|
|
|
16261
16470
|
right,
|
|
16262
16471
|
headerSeparator
|
|
16263
16472
|
}
|
|
16264
|
-
), /* @__PURE__ */
|
|
16473
|
+
), /* @__PURE__ */ import_react96.default.createElement(IndentContext.Provider, { value: 0 }, children));
|
|
16265
16474
|
};
|
|
16266
16475
|
var ExpandableSection = ({
|
|
16267
16476
|
storageKey,
|
|
@@ -16274,12 +16483,12 @@ var ExpandableSection = ({
|
|
|
16274
16483
|
initialVisibility
|
|
16275
16484
|
);
|
|
16276
16485
|
const expanded = visibility === "show";
|
|
16277
|
-
return /* @__PURE__ */
|
|
16486
|
+
return /* @__PURE__ */ import_react96.default.createElement(
|
|
16278
16487
|
SectionInternal,
|
|
16279
16488
|
{
|
|
16280
16489
|
...props,
|
|
16281
16490
|
right: !props.hideRightWhenCollapsed || expanded ? props.right : null,
|
|
16282
|
-
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(
|
|
16283
16492
|
IconButton,
|
|
16284
16493
|
{
|
|
16285
16494
|
iconName: expanded ? "ChevronDownIcon2" : "ChevronRightIcon2",
|
|
@@ -16290,20 +16499,20 @@ var ExpandableSection = ({
|
|
|
16290
16499
|
expanded && props.children
|
|
16291
16500
|
);
|
|
16292
16501
|
};
|
|
16293
|
-
var Section = (0,
|
|
16502
|
+
var Section = (0, import_react96.memo)(function InspectorSection({
|
|
16294
16503
|
storageKey,
|
|
16295
16504
|
...props
|
|
16296
16505
|
}) {
|
|
16297
|
-
return storageKey ? /* @__PURE__ */
|
|
16506
|
+
return storageKey ? /* @__PURE__ */ import_react96.default.createElement(ExpandableSection, { ...props, storageKey }) : /* @__PURE__ */ import_react96.default.createElement(SectionInternal, { ...props });
|
|
16298
16507
|
});
|
|
16299
16508
|
|
|
16300
16509
|
// src/components/SegmentedControl.tsx
|
|
16301
16510
|
var import_radix_ui12 = require("radix-ui");
|
|
16302
|
-
var
|
|
16303
|
-
var SegmentedControlContext = (0,
|
|
16511
|
+
var import_react97 = __toESM(require("react"));
|
|
16512
|
+
var SegmentedControlContext = (0, import_react97.createContext)({
|
|
16304
16513
|
colorScheme: "primary"
|
|
16305
16514
|
});
|
|
16306
|
-
var SegmentedControlItem = (0,
|
|
16515
|
+
var SegmentedControlItem = (0, import_react97.forwardRef)(function SegmentedControlItem2({
|
|
16307
16516
|
value,
|
|
16308
16517
|
tooltip,
|
|
16309
16518
|
title,
|
|
@@ -16313,8 +16522,8 @@ var SegmentedControlItem = (0, import_react96.forwardRef)(function SegmentedCont
|
|
|
16313
16522
|
variant = "default",
|
|
16314
16523
|
...props
|
|
16315
16524
|
}, forwardedRef) {
|
|
16316
|
-
const { colorScheme } = (0,
|
|
16317
|
-
const itemElement = /* @__PURE__ */
|
|
16525
|
+
const { colorScheme } = (0, import_react97.useContext)(SegmentedControlContext);
|
|
16526
|
+
const itemElement = /* @__PURE__ */ import_react97.default.createElement(
|
|
16318
16527
|
import_radix_ui12.ToggleGroup.Item,
|
|
16319
16528
|
{
|
|
16320
16529
|
ref: forwardedRef,
|
|
@@ -16345,7 +16554,7 @@ var SegmentedControlItem = (0, import_react96.forwardRef)(function SegmentedCont
|
|
|
16345
16554
|
),
|
|
16346
16555
|
...props
|
|
16347
16556
|
},
|
|
16348
|
-
/* @__PURE__ */
|
|
16557
|
+
/* @__PURE__ */ import_react97.default.createElement(
|
|
16349
16558
|
"span",
|
|
16350
16559
|
{
|
|
16351
16560
|
className: cx(
|
|
@@ -16357,7 +16566,7 @@ var SegmentedControlItem = (0, import_react96.forwardRef)(function SegmentedCont
|
|
|
16357
16566
|
title
|
|
16358
16567
|
)
|
|
16359
16568
|
);
|
|
16360
|
-
return tooltip ? /* @__PURE__ */
|
|
16569
|
+
return tooltip ? /* @__PURE__ */ import_react97.default.createElement(Tooltip, { content: tooltip }, itemElement) : itemElement;
|
|
16361
16570
|
});
|
|
16362
16571
|
var SegmentedControl = memoGeneric(function SegmentedControl2({
|
|
16363
16572
|
id: idProp,
|
|
@@ -16370,16 +16579,16 @@ var SegmentedControl = memoGeneric(function SegmentedControl2({
|
|
|
16370
16579
|
className,
|
|
16371
16580
|
style: style2
|
|
16372
16581
|
}) {
|
|
16373
|
-
const contextValue = (0,
|
|
16582
|
+
const contextValue = (0, import_react97.useMemo)(() => ({ colorScheme }), [colorScheme]);
|
|
16374
16583
|
const { fieldId: id } = useLabel({ fieldId: idProp });
|
|
16375
|
-
const handleValueChange = (0,
|
|
16584
|
+
const handleValueChange = (0, import_react97.useCallback)(
|
|
16376
16585
|
(value2) => {
|
|
16377
16586
|
if (!allowEmpty && !value2) return;
|
|
16378
16587
|
onValueChange?.(value2);
|
|
16379
16588
|
},
|
|
16380
16589
|
[allowEmpty, onValueChange]
|
|
16381
16590
|
);
|
|
16382
|
-
return /* @__PURE__ */
|
|
16591
|
+
return /* @__PURE__ */ import_react97.default.createElement(SegmentedControlContext.Provider, { value: contextValue }, /* @__PURE__ */ import_react97.default.createElement(
|
|
16383
16592
|
import_radix_ui12.ToggleGroup.Root,
|
|
16384
16593
|
{
|
|
16385
16594
|
id,
|
|
@@ -16398,14 +16607,14 @@ var SegmentedControl = memoGeneric(function SegmentedControl2({
|
|
|
16398
16607
|
gridTemplateColumns: `repeat(${items.length}, 1fr)`
|
|
16399
16608
|
}
|
|
16400
16609
|
},
|
|
16401
|
-
items.map((item, index) => /* @__PURE__ */
|
|
16610
|
+
items.map((item, index) => /* @__PURE__ */ import_react97.default.createElement(SegmentedControlItem, { key: index, ...item, variant }))
|
|
16402
16611
|
));
|
|
16403
16612
|
});
|
|
16404
16613
|
|
|
16405
16614
|
// src/components/SelectionToolbar.tsx
|
|
16406
16615
|
var PopperPrimitive = __toESM(require("@radix-ui/react-popper"));
|
|
16407
|
-
var
|
|
16408
|
-
var
|
|
16616
|
+
var import_react98 = __toESM(require("react"));
|
|
16617
|
+
var import_react_dom4 = require("react-dom");
|
|
16409
16618
|
var createVirtualElement = (rect) => ({
|
|
16410
16619
|
getBoundingClientRect: () => ({
|
|
16411
16620
|
width: rect.width,
|
|
@@ -16419,7 +16628,7 @@ var createVirtualElement = (rect) => ({
|
|
|
16419
16628
|
toJSON: () => null
|
|
16420
16629
|
})
|
|
16421
16630
|
});
|
|
16422
|
-
var SelectionToolbarContainer = (0,
|
|
16631
|
+
var SelectionToolbarContainer = (0, import_react98.memo)(
|
|
16423
16632
|
function SelectionToolbarContainer2({
|
|
16424
16633
|
rect,
|
|
16425
16634
|
children,
|
|
@@ -16433,15 +16642,15 @@ var SelectionToolbarContainer = (0, import_react97.memo)(
|
|
|
16433
16642
|
transitionDuration = 0.2
|
|
16434
16643
|
}) {
|
|
16435
16644
|
const portalScopeId = usePortalScopeId();
|
|
16436
|
-
const containerRef =
|
|
16645
|
+
const containerRef = import_react98.default.useRef(null);
|
|
16437
16646
|
const size = useSize(containerRef, "width");
|
|
16438
|
-
const virtualRef = (0,
|
|
16647
|
+
const virtualRef = (0, import_react98.useMemo)(
|
|
16439
16648
|
() => ({
|
|
16440
16649
|
current: createVirtualElement(rect)
|
|
16441
16650
|
}),
|
|
16442
16651
|
[rect]
|
|
16443
16652
|
);
|
|
16444
|
-
const popperContent = /* @__PURE__ */
|
|
16653
|
+
const popperContent = /* @__PURE__ */ import_react98.default.createElement(
|
|
16445
16654
|
PopperPrimitive.Content,
|
|
16446
16655
|
{
|
|
16447
16656
|
...portalScopeProps(portalScopeId),
|
|
@@ -16459,7 +16668,7 @@ var SelectionToolbarContainer = (0, import_react97.memo)(
|
|
|
16459
16668
|
[cssVarNames.colors.buttonBackground]: "transparent"
|
|
16460
16669
|
}
|
|
16461
16670
|
},
|
|
16462
|
-
/* @__PURE__ */
|
|
16671
|
+
/* @__PURE__ */ import_react98.default.createElement(
|
|
16463
16672
|
"div",
|
|
16464
16673
|
{
|
|
16465
16674
|
ref: containerRef,
|
|
@@ -16476,14 +16685,14 @@ var SelectionToolbarContainer = (0, import_react97.memo)(
|
|
|
16476
16685
|
children
|
|
16477
16686
|
)
|
|
16478
16687
|
);
|
|
16479
|
-
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);
|
|
16480
16689
|
}
|
|
16481
16690
|
);
|
|
16482
16691
|
|
|
16483
16692
|
// src/components/SelectMenu.tsx
|
|
16484
16693
|
var import_noya_icons12 = require("@noya-app/noya-icons");
|
|
16485
16694
|
var import_radix_ui13 = require("radix-ui");
|
|
16486
|
-
var
|
|
16695
|
+
var import_react99 = __toESM(require("react"));
|
|
16487
16696
|
var readOnlyStyle = {
|
|
16488
16697
|
justifyContent: "flex-start",
|
|
16489
16698
|
textAlign: "left"
|
|
@@ -16506,7 +16715,7 @@ var SelectMenuTrigger = memoGeneric(function SelectMenuTrigger2({
|
|
|
16506
16715
|
fieldId: props.id
|
|
16507
16716
|
});
|
|
16508
16717
|
const labelType = useLabelType();
|
|
16509
|
-
return /* @__PURE__ */
|
|
16718
|
+
return /* @__PURE__ */ import_react99.default.createElement(import_radix_ui13.Select.SelectTrigger, { asChild: true, onFocus, onBlur }, /* @__PURE__ */ import_react99.default.createElement(
|
|
16510
16719
|
Button,
|
|
16511
16720
|
{
|
|
16512
16721
|
id,
|
|
@@ -16518,10 +16727,10 @@ var SelectMenuTrigger = memoGeneric(function SelectMenuTrigger2({
|
|
|
16518
16727
|
),
|
|
16519
16728
|
disabled
|
|
16520
16729
|
},
|
|
16521
|
-
icon && /* @__PURE__ */
|
|
16522
|
-
label && labelType === "inset" && /* @__PURE__ */
|
|
16523
|
-
/* @__PURE__ */
|
|
16524
|
-
/* @__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(
|
|
16525
16734
|
import_noya_icons12.DropdownChevronIcon,
|
|
16526
16735
|
{
|
|
16527
16736
|
className: cx(
|
|
@@ -16558,7 +16767,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16558
16767
|
(item) => isSelectableMenuItem(item) && item.value === value
|
|
16559
16768
|
);
|
|
16560
16769
|
const icon = selectedItem?.icon;
|
|
16561
|
-
const [internalOpen, setInternalOpen] = (0,
|
|
16770
|
+
const [internalOpen, setInternalOpen] = (0, import_react99.useState)(open);
|
|
16562
16771
|
const { label, fieldId: id } = useLabel({
|
|
16563
16772
|
label: props.label,
|
|
16564
16773
|
fieldId: props.id
|
|
@@ -16569,8 +16778,8 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16569
16778
|
}
|
|
16570
16779
|
setInternalOpen(open2);
|
|
16571
16780
|
};
|
|
16572
|
-
const readOnlyButton = (0,
|
|
16573
|
-
() => /* @__PURE__ */
|
|
16781
|
+
const readOnlyButton = (0, import_react99.useMemo)(
|
|
16782
|
+
() => /* @__PURE__ */ import_react99.default.createElement(
|
|
16574
16783
|
Button,
|
|
16575
16784
|
{
|
|
16576
16785
|
id,
|
|
@@ -16580,11 +16789,11 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16580
16789
|
disabled
|
|
16581
16790
|
},
|
|
16582
16791
|
icon && renderIcon(icon),
|
|
16583
|
-
/* @__PURE__ */
|
|
16792
|
+
/* @__PURE__ */ import_react99.default.createElement("span", { className: "n-flex n-flex-1" }, selectedItem?.title ?? value)
|
|
16584
16793
|
),
|
|
16585
16794
|
[icon, id, style2, className, disabled, value, selectedItem]
|
|
16586
16795
|
);
|
|
16587
|
-
const contentStyle = (0,
|
|
16796
|
+
const contentStyle = (0, import_react99.useMemo)(() => {
|
|
16588
16797
|
return {
|
|
16589
16798
|
width: "var(--radix-select-trigger-width)",
|
|
16590
16799
|
minWidth: "max-content",
|
|
@@ -16592,7 +16801,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16592
16801
|
...contentStyleProp
|
|
16593
16802
|
};
|
|
16594
16803
|
}, [contentStyleProp]);
|
|
16595
|
-
const content = /* @__PURE__ */
|
|
16804
|
+
const content = /* @__PURE__ */ import_react99.default.createElement(
|
|
16596
16805
|
import_radix_ui13.Select.Root,
|
|
16597
16806
|
{
|
|
16598
16807
|
value,
|
|
@@ -16600,7 +16809,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16600
16809
|
open,
|
|
16601
16810
|
onOpenChange: handleOpenChange
|
|
16602
16811
|
},
|
|
16603
|
-
/* @__PURE__ */
|
|
16812
|
+
/* @__PURE__ */ import_react99.default.createElement(
|
|
16604
16813
|
SelectMenuTrigger,
|
|
16605
16814
|
{
|
|
16606
16815
|
id,
|
|
@@ -16615,7 +16824,7 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16615
16824
|
label
|
|
16616
16825
|
}
|
|
16617
16826
|
),
|
|
16618
|
-
/* @__PURE__ */
|
|
16827
|
+
/* @__PURE__ */ import_react99.default.createElement(import_radix_ui13.Select.Portal, null, /* @__PURE__ */ import_react99.default.createElement(
|
|
16619
16828
|
import_radix_ui13.Select.Content,
|
|
16620
16829
|
{
|
|
16621
16830
|
...portalScopeProps(portalScopeId),
|
|
@@ -16626,14 +16835,14 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16626
16835
|
align: "center",
|
|
16627
16836
|
style: contentStyle
|
|
16628
16837
|
},
|
|
16629
|
-
/* @__PURE__ */
|
|
16838
|
+
/* @__PURE__ */ import_react99.default.createElement(import_radix_ui13.Select.ScrollUpButton, { className: scrollButtonStyles }, /* @__PURE__ */ import_react99.default.createElement(
|
|
16630
16839
|
import_noya_icons12.ChevronUpIcon,
|
|
16631
16840
|
{
|
|
16632
16841
|
className: cx("n-transition-transform n-duration-100")
|
|
16633
16842
|
}
|
|
16634
16843
|
)),
|
|
16635
|
-
/* @__PURE__ */
|
|
16636
|
-
/* @__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))
|
|
16637
16846
|
))
|
|
16638
16847
|
);
|
|
16639
16848
|
return readOnly ? readOnlyButton : content;
|
|
@@ -16641,12 +16850,12 @@ var SelectMenu = memoGeneric(function SelectMenu2({
|
|
|
16641
16850
|
|
|
16642
16851
|
// src/components/Slider.tsx
|
|
16643
16852
|
var import_radix_ui14 = require("radix-ui");
|
|
16644
|
-
var
|
|
16853
|
+
var import_react100 = __toESM(require("react"));
|
|
16645
16854
|
var THUMB_WIDTH = 8;
|
|
16646
16855
|
var thumbStyle = {
|
|
16647
16856
|
width: THUMB_WIDTH
|
|
16648
16857
|
};
|
|
16649
|
-
var Slider = (0,
|
|
16858
|
+
var Slider = (0, import_react100.memo)(function Slider2({
|
|
16650
16859
|
style: style2,
|
|
16651
16860
|
className,
|
|
16652
16861
|
value,
|
|
@@ -16660,21 +16869,21 @@ var Slider = (0, import_react99.memo)(function Slider2({
|
|
|
16660
16869
|
readOnly = false,
|
|
16661
16870
|
...props
|
|
16662
16871
|
}) {
|
|
16663
|
-
const arrayValue = (0,
|
|
16872
|
+
const arrayValue = (0, import_react100.useMemo)(
|
|
16664
16873
|
() => [Math.min(Math.max(value, min), max)],
|
|
16665
16874
|
[value, min, max]
|
|
16666
16875
|
);
|
|
16667
16876
|
const { fieldId: id } = useLabel({
|
|
16668
16877
|
fieldId: props.id
|
|
16669
16878
|
});
|
|
16670
|
-
const handleValueChange = (0,
|
|
16879
|
+
const handleValueChange = (0, import_react100.useCallback)(
|
|
16671
16880
|
(arrayValue2) => {
|
|
16672
16881
|
onValueChange(arrayValue2[0]);
|
|
16673
16882
|
},
|
|
16674
16883
|
[onValueChange]
|
|
16675
16884
|
);
|
|
16676
16885
|
const ratio = (arrayValue[0] - min) / (max - min);
|
|
16677
|
-
return /* @__PURE__ */
|
|
16886
|
+
return /* @__PURE__ */ import_react100.default.createElement(
|
|
16678
16887
|
import_radix_ui14.Slider.Root,
|
|
16679
16888
|
{
|
|
16680
16889
|
min,
|
|
@@ -16692,7 +16901,7 @@ var Slider = (0, import_react99.memo)(function Slider2({
|
|
|
16692
16901
|
onBlur,
|
|
16693
16902
|
disabled: readOnly
|
|
16694
16903
|
},
|
|
16695
|
-
/* @__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(
|
|
16696
16905
|
"div",
|
|
16697
16906
|
{
|
|
16698
16907
|
className: "n-absolute n-h-full n-rounded-l n-bg-slider-active-background",
|
|
@@ -16701,7 +16910,7 @@ var Slider = (0, import_react99.memo)(function Slider2({
|
|
|
16701
16910
|
width: `calc(${ratio * 100}% - ${ratio * 8}px - 2px)`
|
|
16702
16911
|
}
|
|
16703
16912
|
}
|
|
16704
|
-
), /* @__PURE__ */
|
|
16913
|
+
), /* @__PURE__ */ import_react100.default.createElement(
|
|
16705
16914
|
"div",
|
|
16706
16915
|
{
|
|
16707
16916
|
className: "n-absolute n-h-full n-rounded-r n-bg-input-background",
|
|
@@ -16711,7 +16920,7 @@ var Slider = (0, import_react99.memo)(function Slider2({
|
|
|
16711
16920
|
}
|
|
16712
16921
|
}
|
|
16713
16922
|
)),
|
|
16714
|
-
/* @__PURE__ */
|
|
16923
|
+
/* @__PURE__ */ import_react100.default.createElement(
|
|
16715
16924
|
import_radix_ui14.Slider.Thumb,
|
|
16716
16925
|
{
|
|
16717
16926
|
style: thumbStyle,
|
|
@@ -16729,28 +16938,28 @@ var Slider = (0, import_react99.memo)(function Slider2({
|
|
|
16729
16938
|
});
|
|
16730
16939
|
|
|
16731
16940
|
// src/components/sorting/createSharedDrag.tsx
|
|
16732
|
-
var
|
|
16941
|
+
var React99 = __toESM(require("react"));
|
|
16733
16942
|
function createSharedDrag() {
|
|
16734
|
-
const dragRegistrationContext =
|
|
16735
|
-
const activeDragContext =
|
|
16943
|
+
const dragRegistrationContext = React99.createContext(null);
|
|
16944
|
+
const activeDragContext = React99.createContext(
|
|
16736
16945
|
null
|
|
16737
16946
|
);
|
|
16738
16947
|
const sharedDragProps = {
|
|
16739
16948
|
dragRegistrationContext,
|
|
16740
16949
|
activeDragContext
|
|
16741
16950
|
};
|
|
16742
|
-
const Provider = (props) => /* @__PURE__ */
|
|
16951
|
+
const Provider = (props) => /* @__PURE__ */ React99.createElement(SharedDragProvider, { sharedDragProps, ...props });
|
|
16743
16952
|
return {
|
|
16744
16953
|
Provider,
|
|
16745
|
-
Sortable: (props) => /* @__PURE__ */
|
|
16954
|
+
Sortable: (props) => /* @__PURE__ */ React99.createElement(Sortable, { sharedDragProps, ...props }),
|
|
16746
16955
|
props: sharedDragProps
|
|
16747
16956
|
};
|
|
16748
16957
|
}
|
|
16749
16958
|
|
|
16750
16959
|
// src/components/Stepper.tsx
|
|
16751
16960
|
var import_noya_utils19 = require("@noya-app/noya-utils");
|
|
16752
|
-
var
|
|
16753
|
-
var Stepper = (0,
|
|
16961
|
+
var import_react101 = __toESM(require("react"));
|
|
16962
|
+
var Stepper = (0, import_react101.memo)(function Stepper2({
|
|
16754
16963
|
style: style2,
|
|
16755
16964
|
className,
|
|
16756
16965
|
value: valueProp,
|
|
@@ -16767,17 +16976,17 @@ var Stepper = (0, import_react100.memo)(function Stepper2({
|
|
|
16767
16976
|
const { fieldId: id } = useLabel({
|
|
16768
16977
|
fieldId: props.id
|
|
16769
16978
|
});
|
|
16770
|
-
const value = (0,
|
|
16979
|
+
const value = (0, import_react101.useMemo)(() => {
|
|
16771
16980
|
return (0, import_noya_utils19.clamp)(valueProp, min, max);
|
|
16772
16981
|
}, [valueProp, min, max]);
|
|
16773
|
-
const handleValueChange = (0,
|
|
16982
|
+
const handleValueChange = (0, import_react101.useCallback)(
|
|
16774
16983
|
(value2) => {
|
|
16775
16984
|
const newValue = (0, import_noya_utils19.clamp)(value2, min, max);
|
|
16776
16985
|
onValueChange(newValue);
|
|
16777
16986
|
},
|
|
16778
16987
|
[onValueChange, min, max]
|
|
16779
16988
|
);
|
|
16780
|
-
return /* @__PURE__ */
|
|
16989
|
+
return /* @__PURE__ */ import_react101.default.createElement(
|
|
16781
16990
|
"div",
|
|
16782
16991
|
{
|
|
16783
16992
|
id,
|
|
@@ -16789,7 +16998,7 @@ var Stepper = (0, import_react100.memo)(function Stepper2({
|
|
|
16789
16998
|
onFocus,
|
|
16790
16999
|
onBlur
|
|
16791
17000
|
},
|
|
16792
|
-
/* @__PURE__ */
|
|
17001
|
+
/* @__PURE__ */ import_react101.default.createElement(
|
|
16793
17002
|
InputField2.Root,
|
|
16794
17003
|
{
|
|
16795
17004
|
className: "n-flex-1",
|
|
@@ -16797,7 +17006,7 @@ var Stepper = (0, import_react100.memo)(function Stepper2({
|
|
|
16797
17006
|
startClassName: "-n-ml-[3px]",
|
|
16798
17007
|
endWidth: 17,
|
|
16799
17008
|
endClassName: "-n-mr-[3px]",
|
|
16800
|
-
start: /* @__PURE__ */
|
|
17009
|
+
start: /* @__PURE__ */ import_react101.default.createElement(
|
|
16801
17010
|
IconButton,
|
|
16802
17011
|
{
|
|
16803
17012
|
iconName: "MinusIcon",
|
|
@@ -16811,7 +17020,7 @@ var Stepper = (0, import_react100.memo)(function Stepper2({
|
|
|
16811
17020
|
}
|
|
16812
17021
|
}
|
|
16813
17022
|
),
|
|
16814
|
-
end: /* @__PURE__ */
|
|
17023
|
+
end: /* @__PURE__ */ import_react101.default.createElement(
|
|
16815
17024
|
IconButton,
|
|
16816
17025
|
{
|
|
16817
17026
|
iconName: "PlusIcon",
|
|
@@ -16826,7 +17035,7 @@ var Stepper = (0, import_react100.memo)(function Stepper2({
|
|
|
16826
17035
|
}
|
|
16827
17036
|
)
|
|
16828
17037
|
},
|
|
16829
|
-
/* @__PURE__ */
|
|
17038
|
+
/* @__PURE__ */ import_react101.default.createElement(
|
|
16830
17039
|
InputField2.NumberInput,
|
|
16831
17040
|
{
|
|
16832
17041
|
value,
|
|
@@ -16841,7 +17050,7 @@ var Stepper = (0, import_react100.memo)(function Stepper2({
|
|
|
16841
17050
|
|
|
16842
17051
|
// src/components/Switch.tsx
|
|
16843
17052
|
var import_radix_ui15 = require("radix-ui");
|
|
16844
|
-
var
|
|
17053
|
+
var React101 = __toESM(require("react"));
|
|
16845
17054
|
var Switch = function Switch2({
|
|
16846
17055
|
id,
|
|
16847
17056
|
value,
|
|
@@ -16853,7 +17062,7 @@ var Switch = function Switch2({
|
|
|
16853
17062
|
style: style2,
|
|
16854
17063
|
className
|
|
16855
17064
|
}) {
|
|
16856
|
-
return /* @__PURE__ */
|
|
17065
|
+
return /* @__PURE__ */ React101.createElement(
|
|
16857
17066
|
import_radix_ui15.Switch.Root,
|
|
16858
17067
|
{
|
|
16859
17068
|
id,
|
|
@@ -16872,12 +17081,12 @@ var Switch = function Switch2({
|
|
|
16872
17081
|
onFocus,
|
|
16873
17082
|
onBlur
|
|
16874
17083
|
},
|
|
16875
|
-
/* @__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]" })
|
|
16876
17085
|
);
|
|
16877
17086
|
};
|
|
16878
17087
|
|
|
16879
17088
|
// src/components/Tabs.tsx
|
|
16880
|
-
var
|
|
17089
|
+
var React102 = __toESM(require("react"));
|
|
16881
17090
|
function Tabs({
|
|
16882
17091
|
value,
|
|
16883
17092
|
onValueChange,
|
|
@@ -16892,7 +17101,7 @@ function Tabs({
|
|
|
16892
17101
|
value,
|
|
16893
17102
|
onChange: onValueChange
|
|
16894
17103
|
});
|
|
16895
|
-
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(
|
|
16896
17105
|
SegmentedControl,
|
|
16897
17106
|
{
|
|
16898
17107
|
className: "n-flex-1",
|
|
@@ -16901,11 +17110,11 @@ function Tabs({
|
|
|
16901
17110
|
variant,
|
|
16902
17111
|
items: selectableItems
|
|
16903
17112
|
}
|
|
16904
|
-
)), /* @__PURE__ */
|
|
17113
|
+
)), /* @__PURE__ */ React102.createElement(Divider, null), renderContent({ value: activeTab }));
|
|
16905
17114
|
}
|
|
16906
17115
|
|
|
16907
17116
|
// src/components/UserPicker.tsx
|
|
16908
|
-
var
|
|
17117
|
+
var import_react102 = __toESM(require("react"));
|
|
16909
17118
|
function UserPicker({
|
|
16910
17119
|
users,
|
|
16911
17120
|
value,
|
|
@@ -16915,27 +17124,27 @@ function UserPicker({
|
|
|
16915
17124
|
placeholder = "Search users...",
|
|
16916
17125
|
...rest
|
|
16917
17126
|
}) {
|
|
16918
|
-
const sortedUsers = (0,
|
|
17127
|
+
const sortedUsers = (0, import_react102.useMemo)(() => {
|
|
16919
17128
|
return [...users].sort(
|
|
16920
17129
|
(a, b) => getUserDisplayName(a).localeCompare(getUserDisplayName(b), void 0, {
|
|
16921
17130
|
sensitivity: "base"
|
|
16922
17131
|
})
|
|
16923
17132
|
);
|
|
16924
17133
|
}, [users]);
|
|
16925
|
-
const usersById = (0,
|
|
17134
|
+
const usersById = (0, import_react102.useMemo)(() => {
|
|
16926
17135
|
return new Map(sortedUsers.map((user) => [user.id, user]));
|
|
16927
17136
|
}, [sortedUsers]);
|
|
16928
|
-
const items = (0,
|
|
17137
|
+
const items = (0, import_react102.useMemo)(() => {
|
|
16929
17138
|
return sortedUsers.map(createUserMenuItem);
|
|
16930
17139
|
}, [sortedUsers]);
|
|
16931
17140
|
const isControlled = value !== void 0;
|
|
16932
|
-
const [uncontrolledValue, setUncontrolledValue] = (0,
|
|
17141
|
+
const [uncontrolledValue, setUncontrolledValue] = (0, import_react102.useState)(defaultValue2);
|
|
16933
17142
|
const selectedUserId = isControlled ? value : uncontrolledValue;
|
|
16934
|
-
const selectedItem = (0,
|
|
17143
|
+
const selectedItem = (0, import_react102.useMemo)(() => {
|
|
16935
17144
|
if (!selectedUserId) return void 0;
|
|
16936
17145
|
return items.find((item) => item.value === selectedUserId);
|
|
16937
17146
|
}, [items, selectedUserId]);
|
|
16938
|
-
const updateSelectedUserId = (0,
|
|
17147
|
+
const updateSelectedUserId = (0, import_react102.useCallback)(
|
|
16939
17148
|
(userId) => {
|
|
16940
17149
|
if (!isControlled) {
|
|
16941
17150
|
setUncontrolledValue(userId);
|
|
@@ -16944,14 +17153,14 @@ function UserPicker({
|
|
|
16944
17153
|
},
|
|
16945
17154
|
[isControlled, onChangeUserId]
|
|
16946
17155
|
);
|
|
16947
|
-
const handleSelectItem = (0,
|
|
17156
|
+
const handleSelectItem = (0, import_react102.useCallback)(
|
|
16948
17157
|
(item) => {
|
|
16949
17158
|
updateSelectedUserId(item.value);
|
|
16950
17159
|
onSelectUser?.(usersById.get(item.value));
|
|
16951
17160
|
},
|
|
16952
17161
|
[updateSelectedUserId, onSelectUser, usersById]
|
|
16953
17162
|
);
|
|
16954
|
-
return /* @__PURE__ */
|
|
17163
|
+
return /* @__PURE__ */ import_react102.default.createElement(
|
|
16955
17164
|
Combobox,
|
|
16956
17165
|
{
|
|
16957
17166
|
...rest,
|
|
@@ -16975,7 +17184,7 @@ function createUserMenuItem(user) {
|
|
|
16975
17184
|
return {
|
|
16976
17185
|
value: user.id,
|
|
16977
17186
|
title,
|
|
16978
|
-
icon: /* @__PURE__ */
|
|
17187
|
+
icon: /* @__PURE__ */ import_react102.default.createElement("div", { className: "n-relative n-w-[15px] n-h-[15px]" }, /* @__PURE__ */ import_react102.default.createElement(
|
|
16979
17188
|
Avatar,
|
|
16980
17189
|
{
|
|
16981
17190
|
size: 15 + overflow * 2,
|
|
@@ -16994,15 +17203,15 @@ function createUserMenuItem(user) {
|
|
|
16994
17203
|
}
|
|
16995
17204
|
|
|
16996
17205
|
// src/components/UserPointer.tsx
|
|
16997
|
-
var
|
|
16998
|
-
var UserPointerContainer = (0,
|
|
17206
|
+
var import_react103 = __toESM(require("react"));
|
|
17207
|
+
var UserPointerContainer = (0, import_react103.memo)(function UserPointerContainer2({
|
|
16999
17208
|
point,
|
|
17000
17209
|
visible,
|
|
17001
17210
|
children,
|
|
17002
17211
|
className,
|
|
17003
17212
|
style: style2
|
|
17004
17213
|
}) {
|
|
17005
|
-
return /* @__PURE__ */
|
|
17214
|
+
return /* @__PURE__ */ import_react103.default.createElement(
|
|
17006
17215
|
"div",
|
|
17007
17216
|
{
|
|
17008
17217
|
style: {
|
|
@@ -17019,7 +17228,7 @@ var UserPointerContainer = (0, import_react102.memo)(function UserPointerContain
|
|
|
17019
17228
|
children
|
|
17020
17229
|
);
|
|
17021
17230
|
});
|
|
17022
|
-
var UserNameTag = (0,
|
|
17231
|
+
var UserNameTag = (0, import_react103.memo)(function UserNameTag2({
|
|
17023
17232
|
backgroundColor,
|
|
17024
17233
|
className,
|
|
17025
17234
|
style: style2,
|
|
@@ -17028,7 +17237,7 @@ var UserNameTag = (0, import_react102.memo)(function UserNameTag2({
|
|
|
17028
17237
|
size = "medium",
|
|
17029
17238
|
bordered = true
|
|
17030
17239
|
}) {
|
|
17031
|
-
return /* @__PURE__ */
|
|
17240
|
+
return /* @__PURE__ */ import_react103.default.createElement(
|
|
17032
17241
|
"span",
|
|
17033
17242
|
{
|
|
17034
17243
|
className: cx(
|
|
@@ -17047,14 +17256,14 @@ var UserNameTag = (0, import_react102.memo)(function UserNameTag2({
|
|
|
17047
17256
|
children
|
|
17048
17257
|
);
|
|
17049
17258
|
});
|
|
17050
|
-
var UserPointerIcon = (0,
|
|
17259
|
+
var UserPointerIcon = (0, import_react103.memo)(function PointerIcon({
|
|
17051
17260
|
size,
|
|
17052
17261
|
color = "black",
|
|
17053
17262
|
className,
|
|
17054
17263
|
style: style2
|
|
17055
17264
|
}) {
|
|
17056
17265
|
const points = "0,5 10,0 10,10";
|
|
17057
|
-
return /* @__PURE__ */
|
|
17266
|
+
return /* @__PURE__ */ import_react103.default.createElement(
|
|
17058
17267
|
"svg",
|
|
17059
17268
|
{
|
|
17060
17269
|
width: size,
|
|
@@ -17069,7 +17278,7 @@ var UserPointerIcon = (0, import_react102.memo)(function PointerIcon({
|
|
|
17069
17278
|
...style2
|
|
17070
17279
|
}
|
|
17071
17280
|
},
|
|
17072
|
-
/* @__PURE__ */
|
|
17281
|
+
/* @__PURE__ */ import_react103.default.createElement(
|
|
17073
17282
|
"polygon",
|
|
17074
17283
|
{
|
|
17075
17284
|
points,
|
|
@@ -17082,7 +17291,7 @@ var UserPointerIcon = (0, import_react102.memo)(function PointerIcon({
|
|
|
17082
17291
|
});
|
|
17083
17292
|
var POINTER_SIZE = 12;
|
|
17084
17293
|
var POINTER_OVERLAP = 6;
|
|
17085
|
-
var UserPointer = (0,
|
|
17294
|
+
var UserPointer = (0, import_react103.memo)(function UserPointer2({
|
|
17086
17295
|
userId,
|
|
17087
17296
|
name,
|
|
17088
17297
|
visible = true,
|
|
@@ -17095,22 +17304,22 @@ var UserPointer = (0, import_react102.memo)(function UserPointer2({
|
|
|
17095
17304
|
labelSize = "medium",
|
|
17096
17305
|
bordered = true
|
|
17097
17306
|
}) {
|
|
17098
|
-
const userBackgroundColor = (0,
|
|
17307
|
+
const userBackgroundColor = (0, import_react103.useMemo)(
|
|
17099
17308
|
() => backgroundColor ?? colorFromString(userId ?? name ?? ""),
|
|
17100
17309
|
[backgroundColor, userId, name]
|
|
17101
17310
|
);
|
|
17102
|
-
const pointerOverlapStyle = (0,
|
|
17311
|
+
const pointerOverlapStyle = (0, import_react103.useMemo)(
|
|
17103
17312
|
() => ({
|
|
17104
17313
|
marginRight: `-${POINTER_OVERLAP}px`,
|
|
17105
17314
|
marginBottom: `-${POINTER_OVERLAP}px`
|
|
17106
17315
|
}),
|
|
17107
17316
|
[]
|
|
17108
17317
|
);
|
|
17109
|
-
const nameTagOverlapStyle = (0,
|
|
17318
|
+
const nameTagOverlapStyle = (0, import_react103.useMemo)(
|
|
17110
17319
|
() => ({ marginLeft: `${POINTER_SIZE - POINTER_OVERLAP + 1}px` }),
|
|
17111
17320
|
[]
|
|
17112
17321
|
);
|
|
17113
|
-
return /* @__PURE__ */
|
|
17322
|
+
return /* @__PURE__ */ import_react103.default.createElement(
|
|
17114
17323
|
UserPointerContainer,
|
|
17115
17324
|
{
|
|
17116
17325
|
point,
|
|
@@ -17118,14 +17327,14 @@ var UserPointer = (0, import_react102.memo)(function UserPointer2({
|
|
|
17118
17327
|
className,
|
|
17119
17328
|
style: style2
|
|
17120
17329
|
},
|
|
17121
|
-
name && /* @__PURE__ */
|
|
17330
|
+
name && /* @__PURE__ */ import_react103.default.createElement("div", { className: "n-relative" }, showPointerIcon && /* @__PURE__ */ import_react103.default.createElement(
|
|
17122
17331
|
UserPointerIcon,
|
|
17123
17332
|
{
|
|
17124
17333
|
size: POINTER_SIZE,
|
|
17125
17334
|
color: userBackgroundColor,
|
|
17126
17335
|
style: pointerOverlapStyle
|
|
17127
17336
|
}
|
|
17128
|
-
), /* @__PURE__ */
|
|
17337
|
+
), /* @__PURE__ */ import_react103.default.createElement(
|
|
17129
17338
|
UserNameTag,
|
|
17130
17339
|
{
|
|
17131
17340
|
backgroundColor: userBackgroundColor,
|
|
@@ -17141,10 +17350,10 @@ var UserPointer = (0, import_react102.memo)(function UserPointer2({
|
|
|
17141
17350
|
|
|
17142
17351
|
// src/components/workspace/WorkspaceLayout.tsx
|
|
17143
17352
|
var import_noya_keymap7 = require("@noya-app/noya-keymap");
|
|
17144
|
-
var
|
|
17353
|
+
var import_react110 = __toESM(require("react"));
|
|
17145
17354
|
|
|
17146
17355
|
// src/components/workspace/DrawerWorkspaceLayout.tsx
|
|
17147
|
-
var
|
|
17356
|
+
var import_react107 = __toESM(require("react"));
|
|
17148
17357
|
|
|
17149
17358
|
// src/components/workspace/constants.ts
|
|
17150
17359
|
var EDITOR_PANEL_GROUP_ID = "editor-panel-group";
|
|
@@ -17153,17 +17362,17 @@ var RIGHT_SIDEBAR_ID = "editor-3-right-sidebar";
|
|
|
17153
17362
|
var CONTENT_AREA_ID = "editor-2-content-area";
|
|
17154
17363
|
|
|
17155
17364
|
// src/components/workspace/VerticalTabMenu.tsx
|
|
17156
|
-
var
|
|
17365
|
+
var import_react106 = __toESM(require("react"));
|
|
17157
17366
|
|
|
17158
17367
|
// src/components/Toolbar.tsx
|
|
17159
17368
|
var import_noya_keymap6 = require("@noya-app/noya-keymap");
|
|
17160
|
-
var
|
|
17369
|
+
var import_react105 = __toESM(require("react"));
|
|
17161
17370
|
|
|
17162
17371
|
// src/components/ToolbarDrawer.tsx
|
|
17163
|
-
var
|
|
17164
|
-
var ToolbarDrawer = (0,
|
|
17165
|
-
(0,
|
|
17166
|
-
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(
|
|
17167
17376
|
"div",
|
|
17168
17377
|
{
|
|
17169
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",
|
|
@@ -17179,13 +17388,13 @@ var ToolbarDrawer = (0, import_react103.memo)(
|
|
|
17179
17388
|
|
|
17180
17389
|
// src/components/Toolbar.tsx
|
|
17181
17390
|
var SIDE_OFFSET = 6;
|
|
17182
|
-
var ToolbarMenuContext = (0,
|
|
17391
|
+
var ToolbarMenuContext = (0, import_react105.createContext)({});
|
|
17183
17392
|
var ToolbarMenuDropdown = memoGeneric(function ToolbarMenuDropdown2({
|
|
17184
17393
|
item,
|
|
17185
17394
|
onSelectMenuItem
|
|
17186
17395
|
}) {
|
|
17187
|
-
const [open, setOpen] =
|
|
17188
|
-
return /* @__PURE__ */
|
|
17396
|
+
const [open, setOpen] = import_react105.default.useState(false);
|
|
17397
|
+
return /* @__PURE__ */ import_react105.default.createElement(
|
|
17189
17398
|
DropdownMenu,
|
|
17190
17399
|
{
|
|
17191
17400
|
open,
|
|
@@ -17197,7 +17406,7 @@ var ToolbarMenuDropdown = memoGeneric(function ToolbarMenuDropdown2({
|
|
|
17197
17406
|
}
|
|
17198
17407
|
}
|
|
17199
17408
|
},
|
|
17200
|
-
/* @__PURE__ */
|
|
17409
|
+
/* @__PURE__ */ import_react105.default.createElement(
|
|
17201
17410
|
Button,
|
|
17202
17411
|
{
|
|
17203
17412
|
disabled: item.disabled,
|
|
@@ -17213,7 +17422,7 @@ var ToolbarShortcut = ({
|
|
|
17213
17422
|
shortcut,
|
|
17214
17423
|
label
|
|
17215
17424
|
}) => {
|
|
17216
|
-
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 }));
|
|
17217
17426
|
};
|
|
17218
17427
|
var ToolbarMenuPopover = memoGeneric(function ToolbarMenuPopover2({
|
|
17219
17428
|
item,
|
|
@@ -17227,8 +17436,8 @@ var ToolbarMenuPopover = memoGeneric(function ToolbarMenuPopover2({
|
|
|
17227
17436
|
content: itemContent,
|
|
17228
17437
|
checked
|
|
17229
17438
|
} = item;
|
|
17230
|
-
const [open, setOpen] =
|
|
17231
|
-
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(
|
|
17232
17441
|
Popover,
|
|
17233
17442
|
{
|
|
17234
17443
|
open,
|
|
@@ -17237,7 +17446,7 @@ var ToolbarMenuPopover = memoGeneric(function ToolbarMenuPopover2({
|
|
|
17237
17446
|
showArrow: false,
|
|
17238
17447
|
sideOffset: SIDE_OFFSET,
|
|
17239
17448
|
portalContainer,
|
|
17240
|
-
trigger: /* @__PURE__ */
|
|
17449
|
+
trigger: /* @__PURE__ */ import_react105.default.createElement(
|
|
17241
17450
|
Button,
|
|
17242
17451
|
{
|
|
17243
17452
|
disabled,
|
|
@@ -17250,7 +17459,7 @@ var ToolbarMenuPopover = memoGeneric(function ToolbarMenuPopover2({
|
|
|
17250
17459
|
},
|
|
17251
17460
|
typeof itemContent === "function" ? itemContent({ close: () => setOpen(false) }) : itemContent
|
|
17252
17461
|
));
|
|
17253
|
-
return tooltip && !open ? /* @__PURE__ */
|
|
17462
|
+
return tooltip && !open ? /* @__PURE__ */ import_react105.default.createElement(
|
|
17254
17463
|
Tooltip,
|
|
17255
17464
|
{
|
|
17256
17465
|
sideOffset: SIDE_OFFSET,
|
|
@@ -17270,7 +17479,7 @@ var ToolbarMenuButton = memoGeneric(function ToolbarMenuButton2({
|
|
|
17270
17479
|
displayFilter
|
|
17271
17480
|
}) {
|
|
17272
17481
|
const isActive = item.checked || activeValue === item.value;
|
|
17273
|
-
const content = /* @__PURE__ */
|
|
17482
|
+
const content = /* @__PURE__ */ import_react105.default.createElement(
|
|
17274
17483
|
Button,
|
|
17275
17484
|
{
|
|
17276
17485
|
as,
|
|
@@ -17287,7 +17496,7 @@ var ToolbarMenuButton = memoGeneric(function ToolbarMenuButton2({
|
|
|
17287
17496
|
displayFilter === "iconOnly" ? void 0 : item.title
|
|
17288
17497
|
);
|
|
17289
17498
|
const tooltip = item.tooltip ?? (displayFilter === "iconOnly" && item.title ? item.title : void 0);
|
|
17290
|
-
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;
|
|
17291
17500
|
});
|
|
17292
17501
|
var ToolbarMenuItem = memoGeneric(function ToolbarMenuItem2({
|
|
17293
17502
|
item,
|
|
@@ -17299,17 +17508,17 @@ var ToolbarMenuItem = memoGeneric(function ToolbarMenuItem2({
|
|
|
17299
17508
|
displayFilter,
|
|
17300
17509
|
dividerOverflow: dividerOverflowProp
|
|
17301
17510
|
}) {
|
|
17302
|
-
const { dividerOverflow: contextDividerOverflow } = (0,
|
|
17511
|
+
const { dividerOverflow: contextDividerOverflow } = (0, import_react105.useContext)(ToolbarMenuContext);
|
|
17303
17512
|
const dividerOverflow = dividerOverflowProp ?? contextDividerOverflow ?? 4;
|
|
17304
17513
|
if (item.type === "sectionHeader") return null;
|
|
17305
17514
|
if (item.type === "separator") {
|
|
17306
|
-
return /* @__PURE__ */
|
|
17515
|
+
return /* @__PURE__ */ import_react105.default.createElement(DividerVertical, { overflow: dividerOverflow });
|
|
17307
17516
|
}
|
|
17308
17517
|
if (item.type === "popover") {
|
|
17309
|
-
return /* @__PURE__ */
|
|
17518
|
+
return /* @__PURE__ */ import_react105.default.createElement(ToolbarMenuPopover, { item, portalContainer });
|
|
17310
17519
|
}
|
|
17311
17520
|
if (isSelectableMenuItem(item)) {
|
|
17312
|
-
return /* @__PURE__ */
|
|
17521
|
+
return /* @__PURE__ */ import_react105.default.createElement(
|
|
17313
17522
|
ToolbarMenuButton,
|
|
17314
17523
|
{
|
|
17315
17524
|
item,
|
|
@@ -17321,7 +17530,7 @@ var ToolbarMenuItem = memoGeneric(function ToolbarMenuItem2({
|
|
|
17321
17530
|
}
|
|
17322
17531
|
);
|
|
17323
17532
|
}
|
|
17324
|
-
return /* @__PURE__ */
|
|
17533
|
+
return /* @__PURE__ */ import_react105.default.createElement(ToolbarMenuDropdown, { item, onSelectMenuItem });
|
|
17325
17534
|
});
|
|
17326
17535
|
var ToolbarMenu = memoGeneric(function ToolbarMenu2({
|
|
17327
17536
|
items,
|
|
@@ -17333,8 +17542,8 @@ var ToolbarMenu = memoGeneric(function ToolbarMenu2({
|
|
|
17333
17542
|
displayFilter = "iconAndText",
|
|
17334
17543
|
dividerOverflow
|
|
17335
17544
|
}) {
|
|
17336
|
-
return /* @__PURE__ */
|
|
17337
|
-
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(
|
|
17338
17547
|
ToolbarMenuItem,
|
|
17339
17548
|
{
|
|
17340
17549
|
key: i,
|
|
@@ -17359,21 +17568,21 @@ function Toolbar({
|
|
|
17359
17568
|
shouldBindKeyboardShortcuts = true,
|
|
17360
17569
|
dividerOverflow
|
|
17361
17570
|
}) {
|
|
17362
|
-
const allMenuItems =
|
|
17571
|
+
const allMenuItems = import_react105.default.useMemo(
|
|
17363
17572
|
() => [...leftMenuItems, ...rightMenuItems],
|
|
17364
17573
|
[leftMenuItems, rightMenuItems]
|
|
17365
17574
|
);
|
|
17366
17575
|
(0, import_noya_keymap6.useKeyboardShortcuts)(
|
|
17367
|
-
|
|
17576
|
+
import_react105.default.useMemo(
|
|
17368
17577
|
() => onSelectMenuItem && shouldBindKeyboardShortcuts ? getKeyboardShortcutsForMenuItems(allMenuItems, onSelectMenuItem) : {},
|
|
17369
17578
|
[allMenuItems, onSelectMenuItem, shouldBindKeyboardShortcuts]
|
|
17370
17579
|
)
|
|
17371
17580
|
);
|
|
17372
|
-
return /* @__PURE__ */
|
|
17581
|
+
return /* @__PURE__ */ import_react105.default.createElement(
|
|
17373
17582
|
BaseToolbar,
|
|
17374
17583
|
{
|
|
17375
17584
|
logo,
|
|
17376
|
-
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(
|
|
17377
17586
|
ToolbarMenu,
|
|
17378
17587
|
{
|
|
17379
17588
|
items: leftMenuItems,
|
|
@@ -17381,7 +17590,7 @@ function Toolbar({
|
|
|
17381
17590
|
dividerOverflow
|
|
17382
17591
|
}
|
|
17383
17592
|
)),
|
|
17384
|
-
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(
|
|
17385
17594
|
ToolbarMenu,
|
|
17386
17595
|
{
|
|
17387
17596
|
items: rightMenuItems,
|
|
@@ -17402,19 +17611,19 @@ var VerticalTabMenu = memoGeneric(function VerticalTabMenu2({
|
|
|
17402
17611
|
onChange,
|
|
17403
17612
|
tooltipSide
|
|
17404
17613
|
}) {
|
|
17405
|
-
const style2 = (0,
|
|
17614
|
+
const style2 = (0, import_react106.useMemo)(() => {
|
|
17406
17615
|
return {
|
|
17407
17616
|
[cssVarNames.colors.inputBackground]: "transparent",
|
|
17408
17617
|
[cssVarNames.colors.buttonBackground]: "transparent"
|
|
17409
17618
|
};
|
|
17410
17619
|
}, []);
|
|
17411
|
-
return /* @__PURE__ */
|
|
17620
|
+
return /* @__PURE__ */ import_react106.default.createElement(
|
|
17412
17621
|
"div",
|
|
17413
17622
|
{
|
|
17414
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",
|
|
17415
17624
|
style: style2
|
|
17416
17625
|
},
|
|
17417
|
-
/* @__PURE__ */
|
|
17626
|
+
/* @__PURE__ */ import_react106.default.createElement(
|
|
17418
17627
|
ToolbarMenu,
|
|
17419
17628
|
{
|
|
17420
17629
|
items,
|
|
@@ -17442,12 +17651,12 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17442
17651
|
onChangeLeftTab,
|
|
17443
17652
|
compactDrawerMenu
|
|
17444
17653
|
}) {
|
|
17445
|
-
const portalContainer = (0,
|
|
17446
|
-
const [{ leftSidebarCollapsed, rightSidebarCollapsed }, setLayoutState] = (0,
|
|
17654
|
+
const portalContainer = (0, import_react107.useRef)(null);
|
|
17655
|
+
const [{ leftSidebarCollapsed, rightSidebarCollapsed }, setLayoutState] = (0, import_react107.useState)({
|
|
17447
17656
|
leftSidebarCollapsed: true,
|
|
17448
17657
|
rightSidebarCollapsed: true
|
|
17449
17658
|
});
|
|
17450
|
-
const allTabItems = (0,
|
|
17659
|
+
const allTabItems = (0, import_react107.useMemo)(
|
|
17451
17660
|
() => [
|
|
17452
17661
|
...leftPanel ? leftTabItems ?? [] : [],
|
|
17453
17662
|
...rightPanel ? rightTabItems ?? [] : []
|
|
@@ -17455,16 +17664,16 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17455
17664
|
[leftTabItems, rightTabItems, leftPanel, rightPanel]
|
|
17456
17665
|
);
|
|
17457
17666
|
const hasTabs = allTabItems.length > 0;
|
|
17458
|
-
const allSelectableTabItems = (0,
|
|
17667
|
+
const allSelectableTabItems = (0, import_react107.useMemo)(
|
|
17459
17668
|
() => allTabItems.filter(isSelectableMenuItem),
|
|
17460
17669
|
[allTabItems]
|
|
17461
17670
|
);
|
|
17462
17671
|
const useCompactInToolbar = !!compactDrawerMenu && allSelectableTabItems.length <= 1;
|
|
17463
|
-
const leftSelectableTabItems = (0,
|
|
17672
|
+
const leftSelectableTabItems = (0, import_react107.useMemo)(
|
|
17464
17673
|
() => (leftTabItems ?? []).filter(isSelectableMenuItem),
|
|
17465
17674
|
[leftTabItems]
|
|
17466
17675
|
);
|
|
17467
|
-
const rightSelectableTabItems = (0,
|
|
17676
|
+
const rightSelectableTabItems = (0, import_react107.useMemo)(
|
|
17468
17677
|
() => (rightTabItems ?? []).filter(isSelectableMenuItem),
|
|
17469
17678
|
[rightTabItems]
|
|
17470
17679
|
);
|
|
@@ -17501,14 +17710,14 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17501
17710
|
activeValue: rightTabValue,
|
|
17502
17711
|
isSidebarCollapsed: rightSidebarCollapsed
|
|
17503
17712
|
} : { activeValue: void 0, isSidebarCollapsed: true };
|
|
17504
|
-
return /* @__PURE__ */
|
|
17713
|
+
return /* @__PURE__ */ import_react107.default.createElement(
|
|
17505
17714
|
"div",
|
|
17506
17715
|
{
|
|
17507
17716
|
ref: portalContainer,
|
|
17508
17717
|
id: EDITOR_PANEL_GROUP_ID,
|
|
17509
17718
|
className: "n-flex n-flex-1 n-relative focus:n-outline-none"
|
|
17510
17719
|
},
|
|
17511
|
-
hasTabs && !useCompactInToolbar && /* @__PURE__ */
|
|
17720
|
+
hasTabs && !useCompactInToolbar && /* @__PURE__ */ import_react107.default.createElement(import_react107.default.Fragment, null, /* @__PURE__ */ import_react107.default.createElement(
|
|
17512
17721
|
VerticalTabMenu,
|
|
17513
17722
|
{
|
|
17514
17723
|
tooltipSide: "right",
|
|
@@ -17517,8 +17726,8 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17517
17726
|
isSidebarCollapsed,
|
|
17518
17727
|
onChange: (value) => handleSelectTab(value)
|
|
17519
17728
|
}
|
|
17520
|
-
), /* @__PURE__ */
|
|
17521
|
-
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(
|
|
17522
17731
|
Button,
|
|
17523
17732
|
{
|
|
17524
17733
|
variant: "none",
|
|
@@ -17541,8 +17750,8 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17541
17750
|
}
|
|
17542
17751
|
}
|
|
17543
17752
|
)),
|
|
17544
|
-
/* @__PURE__ */
|
|
17545
|
-
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(
|
|
17546
17755
|
Drawer,
|
|
17547
17756
|
{
|
|
17548
17757
|
ref: leftSidebarRef,
|
|
@@ -17563,7 +17772,7 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17563
17772
|
},
|
|
17564
17773
|
leftPanel
|
|
17565
17774
|
),
|
|
17566
|
-
rightPanel && /* @__PURE__ */
|
|
17775
|
+
rightPanel && /* @__PURE__ */ import_react107.default.createElement(
|
|
17567
17776
|
Drawer,
|
|
17568
17777
|
{
|
|
17569
17778
|
id: RIGHT_SIDEBAR_ID,
|
|
@@ -17589,7 +17798,7 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17589
17798
|
});
|
|
17590
17799
|
|
|
17591
17800
|
// src/components/workspace/PanelWorkspaceLayout.tsx
|
|
17592
|
-
var
|
|
17801
|
+
var import_react108 = __toESM(require("react"));
|
|
17593
17802
|
var import_react_resizable_panels = require("react-resizable-panels");
|
|
17594
17803
|
|
|
17595
17804
|
// src/components/workspace/panelStorage.ts
|
|
@@ -17755,11 +17964,11 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17755
17964
|
onChangeRightTab,
|
|
17756
17965
|
compactDrawerMenu
|
|
17757
17966
|
}) {
|
|
17758
|
-
const panelGroupRef = (0,
|
|
17967
|
+
const panelGroupRef = (0, import_react108.useRef)(null);
|
|
17759
17968
|
const hasLeftPanel = !!leftPanel;
|
|
17760
17969
|
const hasRightPanel = !!rightPanel;
|
|
17761
17970
|
const hasCenterPanel = !!centerPanel;
|
|
17762
|
-
const autoSaveId = (0,
|
|
17971
|
+
const autoSaveId = (0, import_react108.useMemo)(() => {
|
|
17763
17972
|
return autoSavePrefix ? `${autoSavePrefix}--v2--${EDITOR_PANEL_GROUP_ID}` : Math.random().toString(36).substring(2, 15);
|
|
17764
17973
|
}, [autoSavePrefix]);
|
|
17765
17974
|
const layoutIds = getLayoutIds({
|
|
@@ -17786,7 +17995,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17786
17995
|
});
|
|
17787
17996
|
const [data, setData] = usePersistentStateObject(clientStorage, storageKey, {});
|
|
17788
17997
|
const layoutGroup = data?.[propertyKey];
|
|
17789
|
-
const { leftSidebarCollapsed, rightSidebarCollapsed } = (0,
|
|
17998
|
+
const { leftSidebarCollapsed, rightSidebarCollapsed } = (0, import_react108.useMemo)(() => {
|
|
17790
17999
|
return getLayoutCollapsedState({
|
|
17791
18000
|
layoutGroup,
|
|
17792
18001
|
propertyKey,
|
|
@@ -17795,7 +18004,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17795
18004
|
hasRightPanel
|
|
17796
18005
|
});
|
|
17797
18006
|
}, [layoutGroup, propertyKey, layoutIds, hasLeftPanel, hasRightPanel]);
|
|
17798
|
-
const handleLeftTabChange = (0,
|
|
18007
|
+
const handleLeftTabChange = (0, import_react108.useCallback)(
|
|
17799
18008
|
(value) => {
|
|
17800
18009
|
if (value === leftTabValue) {
|
|
17801
18010
|
if (leftSidebarRef.current?.isExpanded()) {
|
|
@@ -17812,7 +18021,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17812
18021
|
},
|
|
17813
18022
|
[leftSidebarRef, leftTabValue, onChangeLeftTab]
|
|
17814
18023
|
);
|
|
17815
|
-
const handleRightTabChange = (0,
|
|
18024
|
+
const handleRightTabChange = (0, import_react108.useCallback)(
|
|
17816
18025
|
(value) => {
|
|
17817
18026
|
if (value === rightTabValue) {
|
|
17818
18027
|
if (rightSidebarRef.current?.isExpanded()) {
|
|
@@ -17829,7 +18038,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17829
18038
|
},
|
|
17830
18039
|
[onChangeRightTab, rightSidebarRef, rightTabValue]
|
|
17831
18040
|
);
|
|
17832
|
-
const handleLayoutChange = (0,
|
|
18041
|
+
const handleLayoutChange = (0, import_react108.useCallback)(
|
|
17833
18042
|
(layout) => {
|
|
17834
18043
|
setData((prev) => {
|
|
17835
18044
|
const newData = {
|
|
@@ -17847,7 +18056,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17847
18056
|
const showLeftTabs = !!leftSidebarOptions.showTabs && !!leftTabItems && // When compact drawer UI is enabled, only show the rail when the
|
|
17848
18057
|
// sidebar is collapsed (for large screens/panel layout).
|
|
17849
18058
|
(!compactDrawerMenu || leftSidebarCollapsed);
|
|
17850
|
-
return /* @__PURE__ */
|
|
18059
|
+
return /* @__PURE__ */ import_react108.default.createElement(
|
|
17851
18060
|
import_react_resizable_panels.PanelGroup,
|
|
17852
18061
|
{
|
|
17853
18062
|
ref: panelGroupRef,
|
|
@@ -17858,7 +18067,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17858
18067
|
autoSaveId,
|
|
17859
18068
|
onLayout: handleLayoutChange
|
|
17860
18069
|
},
|
|
17861
|
-
leftPanel && /* @__PURE__ */
|
|
18070
|
+
leftPanel && /* @__PURE__ */ import_react108.default.createElement(import_react108.default.Fragment, null, showLeftTabs && /* @__PURE__ */ import_react108.default.createElement(
|
|
17862
18071
|
VerticalTabMenu,
|
|
17863
18072
|
{
|
|
17864
18073
|
tooltipSide: "right",
|
|
@@ -17867,7 +18076,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17867
18076
|
isSidebarCollapsed: leftSidebarCollapsed,
|
|
17868
18077
|
onChange: handleLeftTabChange
|
|
17869
18078
|
}
|
|
17870
|
-
), showLeftTabs && !leftSidebarCollapsed && /* @__PURE__ */
|
|
18079
|
+
), showLeftTabs && !leftSidebarCollapsed && /* @__PURE__ */ import_react108.default.createElement(DividerVertical, { className: "n-h-full" }), /* @__PURE__ */ import_react108.default.createElement(
|
|
17871
18080
|
import_react_resizable_panels.Panel,
|
|
17872
18081
|
{
|
|
17873
18082
|
id: LEFT_SIDEBAR_ID,
|
|
@@ -17880,8 +18089,8 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17880
18089
|
collapsible: true
|
|
17881
18090
|
},
|
|
17882
18091
|
leftSidebarCollapsed ? null : leftPanel
|
|
17883
|
-
), /* @__PURE__ */
|
|
17884
|
-
/* @__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(
|
|
17885
18094
|
import_react_resizable_panels.Panel,
|
|
17886
18095
|
{
|
|
17887
18096
|
id: CONTENT_AREA_ID,
|
|
@@ -17892,7 +18101,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17892
18101
|
},
|
|
17893
18102
|
centerPanel
|
|
17894
18103
|
),
|
|
17895
|
-
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(
|
|
17896
18105
|
import_react_resizable_panels.Panel,
|
|
17897
18106
|
{
|
|
17898
18107
|
id: RIGHT_SIDEBAR_ID,
|
|
@@ -17905,7 +18114,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17905
18114
|
collapsible: true
|
|
17906
18115
|
},
|
|
17907
18116
|
rightSidebarCollapsed ? null : rightPanel
|
|
17908
|
-
), 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(
|
|
17909
18118
|
VerticalTabMenu,
|
|
17910
18119
|
{
|
|
17911
18120
|
tooltipSide: "left",
|
|
@@ -17927,11 +18136,11 @@ function renderPanelChildren(fn, props) {
|
|
|
17927
18136
|
}
|
|
17928
18137
|
|
|
17929
18138
|
// src/components/workspace/WorkspaceSideContext.tsx
|
|
17930
|
-
var
|
|
17931
|
-
var WorkspaceSideContext = (0,
|
|
18139
|
+
var import_react109 = require("react");
|
|
18140
|
+
var WorkspaceSideContext = (0, import_react109.createContext)({});
|
|
17932
18141
|
var WorkspaceSideProvider = WorkspaceSideContext.Provider;
|
|
17933
18142
|
function useWorkspaceSide() {
|
|
17934
|
-
return (0,
|
|
18143
|
+
return (0, import_react109.useContext)(WorkspaceSideContext);
|
|
17935
18144
|
}
|
|
17936
18145
|
|
|
17937
18146
|
// src/components/workspace/WorkspaceLayout.tsx
|
|
@@ -17994,7 +18203,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
17994
18203
|
theme,
|
|
17995
18204
|
compactDrawerMenu
|
|
17996
18205
|
}, forwardedRef) {
|
|
17997
|
-
const containerRef =
|
|
18206
|
+
const containerRef = import_react110.default.useRef(null);
|
|
17998
18207
|
const containerSize = useSize(containerRef);
|
|
17999
18208
|
const windowSize = useWindowSize();
|
|
18000
18209
|
const parentSize = detectSize === "window" ? windowSize : containerSize && containerSize.width > 0 ? containerSize : windowSize;
|
|
@@ -18025,8 +18234,8 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18025
18234
|
rightSidebarMinPercentage,
|
|
18026
18235
|
rightSidebarMaxPercentage
|
|
18027
18236
|
);
|
|
18028
|
-
const leftSidebarRef = (0,
|
|
18029
|
-
const rightSidebarRef = (0,
|
|
18237
|
+
const leftSidebarRef = (0, import_react110.useRef)(null);
|
|
18238
|
+
const rightSidebarRef = (0, import_react110.useRef)(null);
|
|
18030
18239
|
const [leftTabValue, setLeftTabValue] = useControlledOrUncontrolled({
|
|
18031
18240
|
value: leftTabValueProp,
|
|
18032
18241
|
onChange: onChangeLeftTab,
|
|
@@ -18037,7 +18246,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18037
18246
|
onChange: onChangeRightTab,
|
|
18038
18247
|
defaultValue: getFirstTabValue(rightTabItems, "")
|
|
18039
18248
|
});
|
|
18040
|
-
(0,
|
|
18249
|
+
(0, import_react110.useImperativeHandle)(forwardedRef, () => ({
|
|
18041
18250
|
setLeftExpanded: (expanded) => {
|
|
18042
18251
|
if (expanded) {
|
|
18043
18252
|
leftSidebarRef.current?.expand();
|
|
@@ -18095,56 +18304,56 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18095
18304
|
});
|
|
18096
18305
|
const centerPanelPercentage = 100 - (left ? leftSidebarPercentage : 0) - (right ? rightSidebarPercentage : 0);
|
|
18097
18306
|
const isDrawerActive = sideType === "drawer" || sideType === "auto" && parentSize.width <= sideTypeBreakpoint;
|
|
18098
|
-
const closeLeftSidebar = (0,
|
|
18307
|
+
const closeLeftSidebar = (0, import_react110.useCallback)(() => {
|
|
18099
18308
|
if (isDrawerActive) {
|
|
18100
18309
|
leftSidebarRef.current?.collapse();
|
|
18101
18310
|
}
|
|
18102
18311
|
}, [isDrawerActive]);
|
|
18103
|
-
const closeRightSidebar = (0,
|
|
18312
|
+
const closeRightSidebar = (0, import_react110.useCallback)(() => {
|
|
18104
18313
|
if (isDrawerActive) {
|
|
18105
18314
|
rightSidebarRef.current?.collapse();
|
|
18106
18315
|
}
|
|
18107
18316
|
}, [isDrawerActive]);
|
|
18108
|
-
const leftChildrenProps = (0,
|
|
18317
|
+
const leftChildrenProps = (0, import_react110.useMemo)(() => {
|
|
18109
18318
|
return {
|
|
18110
18319
|
activeTabValue: leftTabValue,
|
|
18111
18320
|
closeSidebar: closeLeftSidebar
|
|
18112
18321
|
};
|
|
18113
18322
|
}, [leftTabValue, closeLeftSidebar]);
|
|
18114
|
-
const rightChildrenProps = (0,
|
|
18323
|
+
const rightChildrenProps = (0, import_react110.useMemo)(() => {
|
|
18115
18324
|
return {
|
|
18116
18325
|
activeTabValue: rightTabValue,
|
|
18117
18326
|
closeSidebar: closeRightSidebar
|
|
18118
18327
|
};
|
|
18119
18328
|
}, [rightTabValue, closeRightSidebar]);
|
|
18120
|
-
const leftSidebarProviderValue = (0,
|
|
18329
|
+
const leftSidebarProviderValue = (0, import_react110.useMemo)(() => {
|
|
18121
18330
|
return {
|
|
18122
18331
|
closeSidebar: closeLeftSidebar
|
|
18123
18332
|
};
|
|
18124
18333
|
}, [closeLeftSidebar]);
|
|
18125
|
-
const rightSidebarProviderValue = (0,
|
|
18334
|
+
const rightSidebarProviderValue = (0, import_react110.useMemo)(() => {
|
|
18126
18335
|
return {
|
|
18127
18336
|
closeSidebar: closeRightSidebar
|
|
18128
18337
|
};
|
|
18129
18338
|
}, [closeRightSidebar]);
|
|
18130
|
-
const leftPanel = left && leftVisible !== false ? /* @__PURE__ */
|
|
18339
|
+
const leftPanel = left && leftVisible !== false ? /* @__PURE__ */ import_react110.default.createElement(
|
|
18131
18340
|
PanelInner,
|
|
18132
18341
|
{
|
|
18133
18342
|
style: leftStyle,
|
|
18134
18343
|
className: cx("n-bg-sidebar-background n-flex-col", leftClassName)
|
|
18135
18344
|
},
|
|
18136
|
-
/* @__PURE__ */
|
|
18345
|
+
/* @__PURE__ */ import_react110.default.createElement(WorkspaceSideProvider, { value: leftSidebarProviderValue }, leftTabValue ? renderPanelChildren(left, leftChildrenProps) : null)
|
|
18137
18346
|
) : null;
|
|
18138
|
-
const rightPanel = right && rightVisible !== false ? /* @__PURE__ */
|
|
18347
|
+
const rightPanel = right && rightVisible !== false ? /* @__PURE__ */ import_react110.default.createElement(
|
|
18139
18348
|
PanelInner,
|
|
18140
18349
|
{
|
|
18141
18350
|
style: rightStyle,
|
|
18142
18351
|
className: cx("n-bg-sidebar-background n-flex-col", rightClassName)
|
|
18143
18352
|
},
|
|
18144
|
-
/* @__PURE__ */
|
|
18353
|
+
/* @__PURE__ */ import_react110.default.createElement(WorkspaceSideProvider, { value: rightSidebarProviderValue }, rightTabValue ? renderPanelChildren(right, rightChildrenProps) : null)
|
|
18145
18354
|
) : null;
|
|
18146
|
-
const centerPanel = /* @__PURE__ */
|
|
18147
|
-
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)(
|
|
18148
18357
|
() => ({
|
|
18149
18358
|
minSize: leftSidebarMinPercentage,
|
|
18150
18359
|
maxSize: leftSidebarMaxPercentage,
|
|
@@ -18162,7 +18371,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18162
18371
|
leftShowTabs
|
|
18163
18372
|
]
|
|
18164
18373
|
);
|
|
18165
|
-
const rightSidebarOptions = (0,
|
|
18374
|
+
const rightSidebarOptions = (0, import_react110.useMemo)(
|
|
18166
18375
|
() => ({
|
|
18167
18376
|
minSize: rightSidebarMinPercentage,
|
|
18168
18377
|
maxSize: rightSidebarMaxPercentage,
|
|
@@ -18182,7 +18391,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18182
18391
|
);
|
|
18183
18392
|
const LayoutComponent = sideType === "panel" ? PanelWorkspaceLayout : sideType === "drawer" ? DrawerWorkspaceLayout : parentSize.width > sideTypeBreakpoint ? PanelWorkspaceLayout : DrawerWorkspaceLayout;
|
|
18184
18393
|
const readyToRender = detectSize === "window" || containerSize && containerSize.width > 0;
|
|
18185
|
-
return /* @__PURE__ */
|
|
18394
|
+
return /* @__PURE__ */ import_react110.default.createElement(
|
|
18186
18395
|
"div",
|
|
18187
18396
|
{
|
|
18188
18397
|
ref: containerRef,
|
|
@@ -18195,7 +18404,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18195
18404
|
"data-theme": theme
|
|
18196
18405
|
},
|
|
18197
18406
|
toolbar,
|
|
18198
|
-
/* @__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(
|
|
18199
18408
|
LayoutComponent,
|
|
18200
18409
|
{
|
|
18201
18410
|
leftPanel,
|
|
@@ -18218,12 +18427,12 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18218
18427
|
))
|
|
18219
18428
|
);
|
|
18220
18429
|
});
|
|
18221
|
-
var PanelInner = (0,
|
|
18430
|
+
var PanelInner = (0, import_react110.memo)(function PanelInner2({
|
|
18222
18431
|
children,
|
|
18223
18432
|
style: style2,
|
|
18224
18433
|
className
|
|
18225
18434
|
}) {
|
|
18226
|
-
return /* @__PURE__ */
|
|
18435
|
+
return /* @__PURE__ */ import_react110.default.createElement(
|
|
18227
18436
|
"div",
|
|
18228
18437
|
{
|
|
18229
18438
|
style: style2,
|
|
@@ -18238,22 +18447,22 @@ function getFirstTabValue(items, defaultValue2) {
|
|
|
18238
18447
|
}
|
|
18239
18448
|
|
|
18240
18449
|
// src/contexts/ImageDataContext.tsx
|
|
18241
|
-
var
|
|
18242
|
-
var ImageDataContext =
|
|
18450
|
+
var React111 = __toESM(require("react"));
|
|
18451
|
+
var ImageDataContext = React111.createContext(
|
|
18243
18452
|
void 0
|
|
18244
18453
|
);
|
|
18245
|
-
var ImageDataProvider =
|
|
18454
|
+
var ImageDataProvider = React111.memo(function ImageDataProvider2({
|
|
18246
18455
|
children,
|
|
18247
18456
|
getImageData
|
|
18248
18457
|
}) {
|
|
18249
|
-
const contextValue =
|
|
18458
|
+
const contextValue = React111.useMemo(
|
|
18250
18459
|
() => ({ getImageData: getImageData ?? (() => void 0) }),
|
|
18251
18460
|
[getImageData]
|
|
18252
18461
|
);
|
|
18253
|
-
return /* @__PURE__ */
|
|
18462
|
+
return /* @__PURE__ */ React111.createElement(ImageDataContext.Provider, { value: contextValue }, children);
|
|
18254
18463
|
});
|
|
18255
18464
|
function useImageData(ref) {
|
|
18256
|
-
const value =
|
|
18465
|
+
const value = React111.useContext(ImageDataContext);
|
|
18257
18466
|
if (!value) {
|
|
18258
18467
|
throw new Error("Missing ImageDataProvider");
|
|
18259
18468
|
}
|
|
@@ -18270,9 +18479,9 @@ function usePlatformModKey() {
|
|
|
18270
18479
|
}
|
|
18271
18480
|
|
|
18272
18481
|
// src/hooks/useTheme.ts
|
|
18273
|
-
var
|
|
18482
|
+
var import_react111 = require("react");
|
|
18274
18483
|
function useTheme() {
|
|
18275
|
-
const [theme, setTheme] = (0,
|
|
18484
|
+
const [theme, setTheme] = (0, import_react111.useState)("light");
|
|
18276
18485
|
const checkTheme = () => {
|
|
18277
18486
|
const currentTheme = document.body.getAttribute("data-theme");
|
|
18278
18487
|
switch (currentTheme) {
|
|
@@ -18284,7 +18493,7 @@ function useTheme() {
|
|
|
18284
18493
|
break;
|
|
18285
18494
|
}
|
|
18286
18495
|
};
|
|
18287
|
-
(0,
|
|
18496
|
+
(0, import_react111.useEffect)(() => {
|
|
18288
18497
|
checkTheme();
|
|
18289
18498
|
const observer = new MutationObserver((mutations) => {
|
|
18290
18499
|
mutations.forEach((mutation) => {
|
|
@@ -18407,11 +18616,11 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
|
|
|
18407
18616
|
|
|
18408
18617
|
// src/components/DimensionInput.tsx
|
|
18409
18618
|
var import_noya_utils21 = require("@noya-app/noya-utils");
|
|
18410
|
-
var
|
|
18619
|
+
var React112 = __toESM(require("react"));
|
|
18411
18620
|
function getNewValue(value, mode, delta) {
|
|
18412
18621
|
return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
|
|
18413
18622
|
}
|
|
18414
|
-
var DimensionInput =
|
|
18623
|
+
var DimensionInput = React112.memo(function DimensionInput2({
|
|
18415
18624
|
id,
|
|
18416
18625
|
value,
|
|
18417
18626
|
onSetValue,
|
|
@@ -18421,15 +18630,15 @@ var DimensionInput = React111.memo(function DimensionInput2({
|
|
|
18421
18630
|
disabled,
|
|
18422
18631
|
trigger = "submit"
|
|
18423
18632
|
}) {
|
|
18424
|
-
const handleNudgeValue =
|
|
18633
|
+
const handleNudgeValue = React112.useCallback(
|
|
18425
18634
|
(value2) => onSetValue(value2, "adjust"),
|
|
18426
18635
|
[onSetValue]
|
|
18427
18636
|
);
|
|
18428
|
-
const handleSetValue =
|
|
18637
|
+
const handleSetValue = React112.useCallback(
|
|
18429
18638
|
(value2) => onSetValue(value2, "replace"),
|
|
18430
18639
|
[onSetValue]
|
|
18431
18640
|
);
|
|
18432
|
-
return /* @__PURE__ */
|
|
18641
|
+
return /* @__PURE__ */ React112.createElement(LabeledField, { label, labelType: "inset" }, /* @__PURE__ */ React112.createElement(InputField2.Root, { id, width: size }, /* @__PURE__ */ React112.createElement(
|
|
18433
18642
|
InputField2.NumberInput,
|
|
18434
18643
|
{
|
|
18435
18644
|
value: value === void 0 ? value : (0, import_noya_utils21.round)(value, 2),
|
|
@@ -18456,8 +18665,8 @@ __export(InspectorPrimitives_exports, {
|
|
|
18456
18665
|
Title: () => Title,
|
|
18457
18666
|
VerticalSeparator: () => VerticalSeparator
|
|
18458
18667
|
});
|
|
18459
|
-
var
|
|
18460
|
-
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(
|
|
18461
18670
|
"div",
|
|
18462
18671
|
{
|
|
18463
18672
|
ref,
|
|
@@ -18465,8 +18674,8 @@ var Section2 = (0, import_react111.forwardRef)(({ className, ...props }, ref) =>
|
|
|
18465
18674
|
...props
|
|
18466
18675
|
}
|
|
18467
18676
|
));
|
|
18468
|
-
var SectionHeader2 = (0,
|
|
18469
|
-
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(
|
|
18470
18679
|
"div",
|
|
18471
18680
|
{
|
|
18472
18681
|
ref,
|
|
@@ -18477,7 +18686,7 @@ var Title = (0, import_react111.forwardRef)(({ className, $textStyle, ...props }
|
|
|
18477
18686
|
...props
|
|
18478
18687
|
}
|
|
18479
18688
|
));
|
|
18480
|
-
var Row = (0,
|
|
18689
|
+
var Row = (0, import_react112.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react112.default.createElement(
|
|
18481
18690
|
"div",
|
|
18482
18691
|
{
|
|
18483
18692
|
ref,
|
|
@@ -18485,7 +18694,7 @@ var Row = (0, import_react111.forwardRef)(({ className, ...props }, ref) => /* @
|
|
|
18485
18694
|
...props
|
|
18486
18695
|
}
|
|
18487
18696
|
));
|
|
18488
|
-
var Column = (0,
|
|
18697
|
+
var Column = (0, import_react112.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react112.default.createElement(
|
|
18489
18698
|
"div",
|
|
18490
18699
|
{
|
|
18491
18700
|
ref,
|
|
@@ -18493,7 +18702,7 @@ var Column = (0, import_react111.forwardRef)(({ className, ...props }, ref) => /
|
|
|
18493
18702
|
...props
|
|
18494
18703
|
}
|
|
18495
18704
|
));
|
|
18496
|
-
var Checkbox3 = (0,
|
|
18705
|
+
var Checkbox3 = (0, import_react112.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react112.default.createElement(
|
|
18497
18706
|
"input",
|
|
18498
18707
|
{
|
|
18499
18708
|
ref,
|
|
@@ -18502,7 +18711,7 @@ var Checkbox3 = (0, import_react111.forwardRef)(({ className, ...props }, ref) =
|
|
|
18502
18711
|
...props
|
|
18503
18712
|
}
|
|
18504
18713
|
));
|
|
18505
|
-
var Text3 = (0,
|
|
18714
|
+
var Text3 = (0, import_react112.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react112.default.createElement(
|
|
18506
18715
|
"span",
|
|
18507
18716
|
{
|
|
18508
18717
|
ref,
|
|
@@ -18510,14 +18719,14 @@ var Text3 = (0, import_react111.forwardRef)(({ className, ...props }, ref) => /*
|
|
|
18510
18719
|
...props
|
|
18511
18720
|
}
|
|
18512
18721
|
));
|
|
18513
|
-
var VerticalSeparator = () => /* @__PURE__ */
|
|
18514
|
-
var HorizontalSeparator = () => /* @__PURE__ */
|
|
18515
|
-
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({
|
|
18516
18725
|
className,
|
|
18517
18726
|
$textStyle,
|
|
18518
18727
|
...props
|
|
18519
18728
|
}, ref) {
|
|
18520
|
-
return /* @__PURE__ */
|
|
18729
|
+
return /* @__PURE__ */ import_react112.default.createElement(
|
|
18521
18730
|
"label",
|
|
18522
18731
|
{
|
|
18523
18732
|
ref,
|
|
@@ -18529,7 +18738,7 @@ var RowLabel = (0, import_react111.forwardRef)(function RowLabel2({
|
|
|
18529
18738
|
}
|
|
18530
18739
|
);
|
|
18531
18740
|
});
|
|
18532
|
-
var LabeledRow = (0,
|
|
18741
|
+
var LabeledRow = (0, import_react112.memo)(function LabeledRow2({
|
|
18533
18742
|
id,
|
|
18534
18743
|
children,
|
|
18535
18744
|
label,
|
|
@@ -18537,7 +18746,7 @@ var LabeledRow = (0, import_react111.memo)(function LabeledRow2({
|
|
|
18537
18746
|
right,
|
|
18538
18747
|
className
|
|
18539
18748
|
}) {
|
|
18540
|
-
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)));
|
|
18541
18750
|
});
|
|
18542
18751
|
// Annotate the CommonJS export names for ESM import in node:
|
|
18543
18752
|
0 && (module.exports = {
|
|
@@ -18679,6 +18888,7 @@ var LabeledRow = (0, import_react111.memo)(function LabeledRow2({
|
|
|
18679
18888
|
UserAvatar,
|
|
18680
18889
|
UserPicker,
|
|
18681
18890
|
UserPointer,
|
|
18891
|
+
Virtualized,
|
|
18682
18892
|
WorkspaceLayout,
|
|
18683
18893
|
WorkspaceSideProvider,
|
|
18684
18894
|
acceptsDrop,
|