@noya-app/noya-designsystem 0.1.70 → 0.1.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +9 -9
- package/CHANGELOG.md +8 -0
- package/dist/index.d.mts +25 -3
- package/dist/index.d.ts +25 -3
- package/dist/index.js +238 -132
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +218 -114
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/components/Combobox.tsx +3 -0
- package/src/components/InputField.tsx +20 -4
- package/src/components/ListMenu.tsx +1 -1
- package/src/components/UserPicker.tsx +128 -0
- package/src/index.tsx +1 -0
package/dist/index.js
CHANGED
|
@@ -3257,6 +3257,7 @@ __export(src_exports, {
|
|
|
3257
3257
|
Tooltip: () => Tooltip,
|
|
3258
3258
|
TreeView: () => TreeView,
|
|
3259
3259
|
UserAvatar: () => UserAvatar,
|
|
3260
|
+
UserPicker: () => UserPicker,
|
|
3260
3261
|
UserPointer: () => UserPointer,
|
|
3261
3262
|
WorkspaceLayout: () => WorkspaceLayout,
|
|
3262
3263
|
WorkspaceSideProvider: () => WorkspaceSideProvider,
|
|
@@ -3290,6 +3291,7 @@ __export(src_exports, {
|
|
|
3290
3291
|
getNextIndex: () => getNextIndex,
|
|
3291
3292
|
getPipelineResultLink: () => getPipelineResultLink,
|
|
3292
3293
|
getThumbnailColors: () => getThumbnailColors,
|
|
3294
|
+
getUserDisplayName: () => getUserDisplayName,
|
|
3293
3295
|
isMenuItemSectionHeader: () => isMenuItemSectionHeader,
|
|
3294
3296
|
isNonSelectableMenuItem: () => isNonSelectableMenuItem,
|
|
3295
3297
|
isPopoverMenuItem: () => isPopoverMenuItem,
|
|
@@ -5139,7 +5141,15 @@ function parseNumber(value) {
|
|
|
5139
5141
|
return value ? Number(value) : NaN;
|
|
5140
5142
|
}
|
|
5141
5143
|
function InputFieldNumberInput(props) {
|
|
5142
|
-
const {
|
|
5144
|
+
const {
|
|
5145
|
+
value,
|
|
5146
|
+
placeholder,
|
|
5147
|
+
onNudge,
|
|
5148
|
+
onBlur,
|
|
5149
|
+
readOnly,
|
|
5150
|
+
triggersOnEmpty,
|
|
5151
|
+
...rest
|
|
5152
|
+
} = props;
|
|
5143
5153
|
const onSubmit = "onSubmit" in props ? props.onSubmit : void 0;
|
|
5144
5154
|
const onChange = "onChange" in props ? props.onChange : void 0;
|
|
5145
5155
|
const [internalValue, setInternalValue] = (0, import_react29.useState)();
|
|
@@ -5167,6 +5177,9 @@ function InputFieldNumberInput(props) {
|
|
|
5167
5177
|
(value2) => {
|
|
5168
5178
|
if (value2 === "" || value2 === "-" || value2 === ".") {
|
|
5169
5179
|
setInternalValue(value2);
|
|
5180
|
+
if (triggersOnEmpty) {
|
|
5181
|
+
onChange?.(0, { isEmpty: true });
|
|
5182
|
+
}
|
|
5170
5183
|
return;
|
|
5171
5184
|
}
|
|
5172
5185
|
if (value2.endsWith(".")) {
|
|
@@ -5176,10 +5189,10 @@ function InputFieldNumberInput(props) {
|
|
|
5176
5189
|
setInternalValue(void 0);
|
|
5177
5190
|
const newValue = parseNumber(value2);
|
|
5178
5191
|
if (!isNaN(newValue)) {
|
|
5179
|
-
onChange?.(newValue);
|
|
5192
|
+
onChange?.(newValue, { isEmpty: false });
|
|
5180
5193
|
}
|
|
5181
5194
|
},
|
|
5182
|
-
[onChange]
|
|
5195
|
+
[onChange, triggersOnEmpty]
|
|
5183
5196
|
);
|
|
5184
5197
|
const handleBlur = (0, import_react29.useCallback)(
|
|
5185
5198
|
(event) => {
|
|
@@ -11027,6 +11040,7 @@ var Combobox = memoGeneric(
|
|
|
11027
11040
|
openMenuBehavior = "showFilteredItems",
|
|
11028
11041
|
onFocus,
|
|
11029
11042
|
onDeleteWhenEmpty,
|
|
11043
|
+
iconPosition = "right",
|
|
11030
11044
|
...rest
|
|
11031
11045
|
}, forwardedRef) {
|
|
11032
11046
|
const props = (0, import_react72.useMemo)(() => {
|
|
@@ -11367,6 +11381,7 @@ var Combobox = memoGeneric(
|
|
|
11367
11381
|
onSelectItem: handleUpdateSelection,
|
|
11368
11382
|
onHoverIndex: handleIndexChange,
|
|
11369
11383
|
listSize: adjustedListSize,
|
|
11384
|
+
iconPosition,
|
|
11370
11385
|
style: {
|
|
11371
11386
|
flex: `0 0 ${computedHeight}px`
|
|
11372
11387
|
},
|
|
@@ -15110,7 +15125,7 @@ function ListMenu({
|
|
|
15110
15125
|
}) {
|
|
15111
15126
|
const selectedIds = items.flatMap(
|
|
15112
15127
|
(item) => isSelectableMenuItem(item) && item.checked ? [item.value] : []
|
|
15113
|
-
).concat(selectedIdsProp);
|
|
15128
|
+
).concat(selectedIdsProp ?? []);
|
|
15114
15129
|
let chunks = (0, import_noya_utils15.chunkBy)(
|
|
15115
15130
|
items,
|
|
15116
15131
|
(a, b) => a.type !== "separator" && b.type !== "separator"
|
|
@@ -16889,16 +16904,105 @@ function Tabs({
|
|
|
16889
16904
|
)), /* @__PURE__ */ React101.createElement(Divider, null), renderContent({ value: activeTab }));
|
|
16890
16905
|
}
|
|
16891
16906
|
|
|
16892
|
-
// src/components/
|
|
16907
|
+
// src/components/UserPicker.tsx
|
|
16893
16908
|
var import_react101 = __toESM(require("react"));
|
|
16894
|
-
|
|
16909
|
+
function UserPicker({
|
|
16910
|
+
users,
|
|
16911
|
+
value,
|
|
16912
|
+
defaultValue: defaultValue2,
|
|
16913
|
+
onChangeUserId,
|
|
16914
|
+
onSelectUser,
|
|
16915
|
+
placeholder = "Search users...",
|
|
16916
|
+
...rest
|
|
16917
|
+
}) {
|
|
16918
|
+
const sortedUsers = (0, import_react101.useMemo)(() => {
|
|
16919
|
+
return [...users].sort(
|
|
16920
|
+
(a, b) => getUserDisplayName(a).localeCompare(getUserDisplayName(b), void 0, {
|
|
16921
|
+
sensitivity: "base"
|
|
16922
|
+
})
|
|
16923
|
+
);
|
|
16924
|
+
}, [users]);
|
|
16925
|
+
const usersById = (0, import_react101.useMemo)(() => {
|
|
16926
|
+
return new Map(sortedUsers.map((user) => [user.id, user]));
|
|
16927
|
+
}, [sortedUsers]);
|
|
16928
|
+
const items = (0, import_react101.useMemo)(() => {
|
|
16929
|
+
return sortedUsers.map(createUserMenuItem);
|
|
16930
|
+
}, [sortedUsers]);
|
|
16931
|
+
const isControlled = value !== void 0;
|
|
16932
|
+
const [uncontrolledValue, setUncontrolledValue] = (0, import_react101.useState)(defaultValue2);
|
|
16933
|
+
const selectedUserId = isControlled ? value : uncontrolledValue;
|
|
16934
|
+
const selectedItem = (0, import_react101.useMemo)(() => {
|
|
16935
|
+
if (!selectedUserId) return void 0;
|
|
16936
|
+
return items.find((item) => item.value === selectedUserId);
|
|
16937
|
+
}, [items, selectedUserId]);
|
|
16938
|
+
const updateSelectedUserId = (0, import_react101.useCallback)(
|
|
16939
|
+
(userId) => {
|
|
16940
|
+
if (!isControlled) {
|
|
16941
|
+
setUncontrolledValue(userId);
|
|
16942
|
+
}
|
|
16943
|
+
onChangeUserId?.(userId);
|
|
16944
|
+
},
|
|
16945
|
+
[isControlled, onChangeUserId]
|
|
16946
|
+
);
|
|
16947
|
+
const handleSelectItem = (0, import_react101.useCallback)(
|
|
16948
|
+
(item) => {
|
|
16949
|
+
updateSelectedUserId(item.value);
|
|
16950
|
+
onSelectUser?.(usersById.get(item.value));
|
|
16951
|
+
},
|
|
16952
|
+
[updateSelectedUserId, onSelectUser, usersById]
|
|
16953
|
+
);
|
|
16954
|
+
return /* @__PURE__ */ import_react101.default.createElement(
|
|
16955
|
+
Combobox,
|
|
16956
|
+
{
|
|
16957
|
+
...rest,
|
|
16958
|
+
placeholder,
|
|
16959
|
+
mode: "option",
|
|
16960
|
+
items,
|
|
16961
|
+
value: selectedItem,
|
|
16962
|
+
onSelectItem: handleSelectItem,
|
|
16963
|
+
iconPosition: "left"
|
|
16964
|
+
}
|
|
16965
|
+
);
|
|
16966
|
+
}
|
|
16967
|
+
function getUserDisplayName(user) {
|
|
16968
|
+
const name = user.name?.trim();
|
|
16969
|
+
const email = user.email?.trim();
|
|
16970
|
+
return name || email || "Anonymous user";
|
|
16971
|
+
}
|
|
16972
|
+
function createUserMenuItem(user) {
|
|
16973
|
+
const title = getUserDisplayName(user);
|
|
16974
|
+
const overflow = 3;
|
|
16975
|
+
return {
|
|
16976
|
+
value: user.id,
|
|
16977
|
+
title,
|
|
16978
|
+
icon: /* @__PURE__ */ import_react101.default.createElement("div", { className: "n-relative n-w-[15px] n-h-[15px]" }, /* @__PURE__ */ import_react101.default.createElement(
|
|
16979
|
+
Avatar,
|
|
16980
|
+
{
|
|
16981
|
+
size: 15 + overflow * 2,
|
|
16982
|
+
name: title,
|
|
16983
|
+
userId: user.id,
|
|
16984
|
+
image: user.image ?? void 0,
|
|
16985
|
+
className: "n-pointer-events-none",
|
|
16986
|
+
variant: "bare",
|
|
16987
|
+
style: {
|
|
16988
|
+
position: "absolute",
|
|
16989
|
+
inset: -overflow
|
|
16990
|
+
}
|
|
16991
|
+
}
|
|
16992
|
+
))
|
|
16993
|
+
};
|
|
16994
|
+
}
|
|
16995
|
+
|
|
16996
|
+
// src/components/UserPointer.tsx
|
|
16997
|
+
var import_react102 = __toESM(require("react"));
|
|
16998
|
+
var UserPointerContainer = (0, import_react102.memo)(function UserPointerContainer2({
|
|
16895
16999
|
point,
|
|
16896
17000
|
visible,
|
|
16897
17001
|
children,
|
|
16898
17002
|
className,
|
|
16899
17003
|
style: style2
|
|
16900
17004
|
}) {
|
|
16901
|
-
return /* @__PURE__ */
|
|
17005
|
+
return /* @__PURE__ */ import_react102.default.createElement(
|
|
16902
17006
|
"div",
|
|
16903
17007
|
{
|
|
16904
17008
|
style: {
|
|
@@ -16915,7 +17019,7 @@ var UserPointerContainer = (0, import_react101.memo)(function UserPointerContain
|
|
|
16915
17019
|
children
|
|
16916
17020
|
);
|
|
16917
17021
|
});
|
|
16918
|
-
var UserNameTag = (0,
|
|
17022
|
+
var UserNameTag = (0, import_react102.memo)(function UserNameTag2({
|
|
16919
17023
|
backgroundColor,
|
|
16920
17024
|
className,
|
|
16921
17025
|
style: style2,
|
|
@@ -16924,7 +17028,7 @@ var UserNameTag = (0, import_react101.memo)(function UserNameTag2({
|
|
|
16924
17028
|
size = "medium",
|
|
16925
17029
|
bordered = true
|
|
16926
17030
|
}) {
|
|
16927
|
-
return /* @__PURE__ */
|
|
17031
|
+
return /* @__PURE__ */ import_react102.default.createElement(
|
|
16928
17032
|
"span",
|
|
16929
17033
|
{
|
|
16930
17034
|
className: cx(
|
|
@@ -16943,14 +17047,14 @@ var UserNameTag = (0, import_react101.memo)(function UserNameTag2({
|
|
|
16943
17047
|
children
|
|
16944
17048
|
);
|
|
16945
17049
|
});
|
|
16946
|
-
var UserPointerIcon = (0,
|
|
17050
|
+
var UserPointerIcon = (0, import_react102.memo)(function PointerIcon({
|
|
16947
17051
|
size,
|
|
16948
17052
|
color = "black",
|
|
16949
17053
|
className,
|
|
16950
17054
|
style: style2
|
|
16951
17055
|
}) {
|
|
16952
17056
|
const points = "0,5 10,0 10,10";
|
|
16953
|
-
return /* @__PURE__ */
|
|
17057
|
+
return /* @__PURE__ */ import_react102.default.createElement(
|
|
16954
17058
|
"svg",
|
|
16955
17059
|
{
|
|
16956
17060
|
width: size,
|
|
@@ -16965,7 +17069,7 @@ var UserPointerIcon = (0, import_react101.memo)(function PointerIcon({
|
|
|
16965
17069
|
...style2
|
|
16966
17070
|
}
|
|
16967
17071
|
},
|
|
16968
|
-
/* @__PURE__ */
|
|
17072
|
+
/* @__PURE__ */ import_react102.default.createElement(
|
|
16969
17073
|
"polygon",
|
|
16970
17074
|
{
|
|
16971
17075
|
points,
|
|
@@ -16978,7 +17082,7 @@ var UserPointerIcon = (0, import_react101.memo)(function PointerIcon({
|
|
|
16978
17082
|
});
|
|
16979
17083
|
var POINTER_SIZE = 12;
|
|
16980
17084
|
var POINTER_OVERLAP = 6;
|
|
16981
|
-
var UserPointer = (0,
|
|
17085
|
+
var UserPointer = (0, import_react102.memo)(function UserPointer2({
|
|
16982
17086
|
userId,
|
|
16983
17087
|
name,
|
|
16984
17088
|
visible = true,
|
|
@@ -16991,22 +17095,22 @@ var UserPointer = (0, import_react101.memo)(function UserPointer2({
|
|
|
16991
17095
|
labelSize = "medium",
|
|
16992
17096
|
bordered = true
|
|
16993
17097
|
}) {
|
|
16994
|
-
const userBackgroundColor = (0,
|
|
17098
|
+
const userBackgroundColor = (0, import_react102.useMemo)(
|
|
16995
17099
|
() => backgroundColor ?? colorFromString(userId ?? name ?? ""),
|
|
16996
17100
|
[backgroundColor, userId, name]
|
|
16997
17101
|
);
|
|
16998
|
-
const pointerOverlapStyle = (0,
|
|
17102
|
+
const pointerOverlapStyle = (0, import_react102.useMemo)(
|
|
16999
17103
|
() => ({
|
|
17000
17104
|
marginRight: `-${POINTER_OVERLAP}px`,
|
|
17001
17105
|
marginBottom: `-${POINTER_OVERLAP}px`
|
|
17002
17106
|
}),
|
|
17003
17107
|
[]
|
|
17004
17108
|
);
|
|
17005
|
-
const nameTagOverlapStyle = (0,
|
|
17109
|
+
const nameTagOverlapStyle = (0, import_react102.useMemo)(
|
|
17006
17110
|
() => ({ marginLeft: `${POINTER_SIZE - POINTER_OVERLAP + 1}px` }),
|
|
17007
17111
|
[]
|
|
17008
17112
|
);
|
|
17009
|
-
return /* @__PURE__ */
|
|
17113
|
+
return /* @__PURE__ */ import_react102.default.createElement(
|
|
17010
17114
|
UserPointerContainer,
|
|
17011
17115
|
{
|
|
17012
17116
|
point,
|
|
@@ -17014,14 +17118,14 @@ var UserPointer = (0, import_react101.memo)(function UserPointer2({
|
|
|
17014
17118
|
className,
|
|
17015
17119
|
style: style2
|
|
17016
17120
|
},
|
|
17017
|
-
name && /* @__PURE__ */
|
|
17121
|
+
name && /* @__PURE__ */ import_react102.default.createElement("div", { className: "n-relative" }, showPointerIcon && /* @__PURE__ */ import_react102.default.createElement(
|
|
17018
17122
|
UserPointerIcon,
|
|
17019
17123
|
{
|
|
17020
17124
|
size: POINTER_SIZE,
|
|
17021
17125
|
color: userBackgroundColor,
|
|
17022
17126
|
style: pointerOverlapStyle
|
|
17023
17127
|
}
|
|
17024
|
-
), /* @__PURE__ */
|
|
17128
|
+
), /* @__PURE__ */ import_react102.default.createElement(
|
|
17025
17129
|
UserNameTag,
|
|
17026
17130
|
{
|
|
17027
17131
|
backgroundColor: userBackgroundColor,
|
|
@@ -17037,10 +17141,10 @@ var UserPointer = (0, import_react101.memo)(function UserPointer2({
|
|
|
17037
17141
|
|
|
17038
17142
|
// src/components/workspace/WorkspaceLayout.tsx
|
|
17039
17143
|
var import_noya_keymap7 = require("@noya-app/noya-keymap");
|
|
17040
|
-
var
|
|
17144
|
+
var import_react109 = __toESM(require("react"));
|
|
17041
17145
|
|
|
17042
17146
|
// src/components/workspace/DrawerWorkspaceLayout.tsx
|
|
17043
|
-
var
|
|
17147
|
+
var import_react106 = __toESM(require("react"));
|
|
17044
17148
|
|
|
17045
17149
|
// src/components/workspace/constants.ts
|
|
17046
17150
|
var EDITOR_PANEL_GROUP_ID = "editor-panel-group";
|
|
@@ -17049,17 +17153,17 @@ var RIGHT_SIDEBAR_ID = "editor-3-right-sidebar";
|
|
|
17049
17153
|
var CONTENT_AREA_ID = "editor-2-content-area";
|
|
17050
17154
|
|
|
17051
17155
|
// src/components/workspace/VerticalTabMenu.tsx
|
|
17052
|
-
var
|
|
17156
|
+
var import_react105 = __toESM(require("react"));
|
|
17053
17157
|
|
|
17054
17158
|
// src/components/Toolbar.tsx
|
|
17055
17159
|
var import_noya_keymap6 = require("@noya-app/noya-keymap");
|
|
17056
|
-
var
|
|
17160
|
+
var import_react104 = __toESM(require("react"));
|
|
17057
17161
|
|
|
17058
17162
|
// src/components/ToolbarDrawer.tsx
|
|
17059
|
-
var
|
|
17060
|
-
var ToolbarDrawer = (0,
|
|
17061
|
-
(0,
|
|
17062
|
-
return /* @__PURE__ */
|
|
17163
|
+
var import_react103 = __toESM(require("react"));
|
|
17164
|
+
var ToolbarDrawer = (0, import_react103.memo)(
|
|
17165
|
+
(0, import_react103.forwardRef)(function ToolbarDrawer2({ children, trigger, sideOffset = 8 }, ref) {
|
|
17166
|
+
return /* @__PURE__ */ import_react103.default.createElement("div", { className: "n-relative", ref }, /* @__PURE__ */ import_react103.default.createElement(
|
|
17063
17167
|
"div",
|
|
17064
17168
|
{
|
|
17065
17169
|
className: "n-absolute n-bottom-full n-left-1/2 -n-translate-x-1/2 n-rounded-t-lg n-border n-border-toolbar-drawer-border n-border-b-transparent n-bg-toolbar-drawer-background -n-z-10",
|
|
@@ -17075,13 +17179,13 @@ var ToolbarDrawer = (0, import_react102.memo)(
|
|
|
17075
17179
|
|
|
17076
17180
|
// src/components/Toolbar.tsx
|
|
17077
17181
|
var SIDE_OFFSET = 6;
|
|
17078
|
-
var ToolbarMenuContext = (0,
|
|
17182
|
+
var ToolbarMenuContext = (0, import_react104.createContext)({});
|
|
17079
17183
|
var ToolbarMenuDropdown = memoGeneric(function ToolbarMenuDropdown2({
|
|
17080
17184
|
item,
|
|
17081
17185
|
onSelectMenuItem
|
|
17082
17186
|
}) {
|
|
17083
|
-
const [open, setOpen] =
|
|
17084
|
-
return /* @__PURE__ */
|
|
17187
|
+
const [open, setOpen] = import_react104.default.useState(false);
|
|
17188
|
+
return /* @__PURE__ */ import_react104.default.createElement(
|
|
17085
17189
|
DropdownMenu,
|
|
17086
17190
|
{
|
|
17087
17191
|
open,
|
|
@@ -17093,7 +17197,7 @@ var ToolbarMenuDropdown = memoGeneric(function ToolbarMenuDropdown2({
|
|
|
17093
17197
|
}
|
|
17094
17198
|
}
|
|
17095
17199
|
},
|
|
17096
|
-
/* @__PURE__ */
|
|
17200
|
+
/* @__PURE__ */ import_react104.default.createElement(
|
|
17097
17201
|
Button,
|
|
17098
17202
|
{
|
|
17099
17203
|
disabled: item.disabled,
|
|
@@ -17109,7 +17213,7 @@ var ToolbarShortcut = ({
|
|
|
17109
17213
|
shortcut,
|
|
17110
17214
|
label
|
|
17111
17215
|
}) => {
|
|
17112
|
-
return /* @__PURE__ */
|
|
17216
|
+
return /* @__PURE__ */ import_react104.default.createElement("div", { className: "n-flex n-items-center" }, label, /* @__PURE__ */ import_react104.default.createElement(Spacer.Horizontal, { size: 6 }), /* @__PURE__ */ import_react104.default.createElement(KeyboardShortcut, { shortcut }));
|
|
17113
17217
|
};
|
|
17114
17218
|
var ToolbarMenuPopover = memoGeneric(function ToolbarMenuPopover2({
|
|
17115
17219
|
item,
|
|
@@ -17123,8 +17227,8 @@ var ToolbarMenuPopover = memoGeneric(function ToolbarMenuPopover2({
|
|
|
17123
17227
|
content: itemContent,
|
|
17124
17228
|
checked
|
|
17125
17229
|
} = item;
|
|
17126
|
-
const [open, setOpen] =
|
|
17127
|
-
const content = /* @__PURE__ */
|
|
17230
|
+
const [open, setOpen] = import_react104.default.useState(false);
|
|
17231
|
+
const content = /* @__PURE__ */ import_react104.default.createElement("span", null, /* @__PURE__ */ import_react104.default.createElement(
|
|
17128
17232
|
Popover,
|
|
17129
17233
|
{
|
|
17130
17234
|
open,
|
|
@@ -17133,7 +17237,7 @@ var ToolbarMenuPopover = memoGeneric(function ToolbarMenuPopover2({
|
|
|
17133
17237
|
showArrow: false,
|
|
17134
17238
|
sideOffset: SIDE_OFFSET,
|
|
17135
17239
|
portalContainer,
|
|
17136
|
-
trigger: /* @__PURE__ */
|
|
17240
|
+
trigger: /* @__PURE__ */ import_react104.default.createElement(
|
|
17137
17241
|
Button,
|
|
17138
17242
|
{
|
|
17139
17243
|
disabled,
|
|
@@ -17146,7 +17250,7 @@ var ToolbarMenuPopover = memoGeneric(function ToolbarMenuPopover2({
|
|
|
17146
17250
|
},
|
|
17147
17251
|
typeof itemContent === "function" ? itemContent({ close: () => setOpen(false) }) : itemContent
|
|
17148
17252
|
));
|
|
17149
|
-
return tooltip && !open ? /* @__PURE__ */
|
|
17253
|
+
return tooltip && !open ? /* @__PURE__ */ import_react104.default.createElement(
|
|
17150
17254
|
Tooltip,
|
|
17151
17255
|
{
|
|
17152
17256
|
sideOffset: SIDE_OFFSET,
|
|
@@ -17166,7 +17270,7 @@ var ToolbarMenuButton = memoGeneric(function ToolbarMenuButton2({
|
|
|
17166
17270
|
displayFilter
|
|
17167
17271
|
}) {
|
|
17168
17272
|
const isActive = item.checked || activeValue === item.value;
|
|
17169
|
-
const content = /* @__PURE__ */
|
|
17273
|
+
const content = /* @__PURE__ */ import_react104.default.createElement(
|
|
17170
17274
|
Button,
|
|
17171
17275
|
{
|
|
17172
17276
|
as,
|
|
@@ -17183,7 +17287,7 @@ var ToolbarMenuButton = memoGeneric(function ToolbarMenuButton2({
|
|
|
17183
17287
|
displayFilter === "iconOnly" ? void 0 : item.title
|
|
17184
17288
|
);
|
|
17185
17289
|
const tooltip = item.tooltip ?? (displayFilter === "iconOnly" && item.title ? item.title : void 0);
|
|
17186
|
-
return item.drawer && isActive ? /* @__PURE__ */
|
|
17290
|
+
return item.drawer && isActive ? /* @__PURE__ */ import_react104.default.createElement(ToolbarDrawer, { trigger: content }, item.drawer) : tooltip ? /* @__PURE__ */ import_react104.default.createElement(Tooltip, { sideOffset: SIDE_OFFSET, content: tooltip, side: tooltipSide }, content) : content;
|
|
17187
17291
|
});
|
|
17188
17292
|
var ToolbarMenuItem = memoGeneric(function ToolbarMenuItem2({
|
|
17189
17293
|
item,
|
|
@@ -17195,17 +17299,17 @@ var ToolbarMenuItem = memoGeneric(function ToolbarMenuItem2({
|
|
|
17195
17299
|
displayFilter,
|
|
17196
17300
|
dividerOverflow: dividerOverflowProp
|
|
17197
17301
|
}) {
|
|
17198
|
-
const { dividerOverflow: contextDividerOverflow } = (0,
|
|
17302
|
+
const { dividerOverflow: contextDividerOverflow } = (0, import_react104.useContext)(ToolbarMenuContext);
|
|
17199
17303
|
const dividerOverflow = dividerOverflowProp ?? contextDividerOverflow ?? 4;
|
|
17200
17304
|
if (item.type === "sectionHeader") return null;
|
|
17201
17305
|
if (item.type === "separator") {
|
|
17202
|
-
return /* @__PURE__ */
|
|
17306
|
+
return /* @__PURE__ */ import_react104.default.createElement(DividerVertical, { overflow: dividerOverflow });
|
|
17203
17307
|
}
|
|
17204
17308
|
if (item.type === "popover") {
|
|
17205
|
-
return /* @__PURE__ */
|
|
17309
|
+
return /* @__PURE__ */ import_react104.default.createElement(ToolbarMenuPopover, { item, portalContainer });
|
|
17206
17310
|
}
|
|
17207
17311
|
if (isSelectableMenuItem(item)) {
|
|
17208
|
-
return /* @__PURE__ */
|
|
17312
|
+
return /* @__PURE__ */ import_react104.default.createElement(
|
|
17209
17313
|
ToolbarMenuButton,
|
|
17210
17314
|
{
|
|
17211
17315
|
item,
|
|
@@ -17217,7 +17321,7 @@ var ToolbarMenuItem = memoGeneric(function ToolbarMenuItem2({
|
|
|
17217
17321
|
}
|
|
17218
17322
|
);
|
|
17219
17323
|
}
|
|
17220
|
-
return /* @__PURE__ */
|
|
17324
|
+
return /* @__PURE__ */ import_react104.default.createElement(ToolbarMenuDropdown, { item, onSelectMenuItem });
|
|
17221
17325
|
});
|
|
17222
17326
|
var ToolbarMenu = memoGeneric(function ToolbarMenu2({
|
|
17223
17327
|
items,
|
|
@@ -17229,8 +17333,8 @@ var ToolbarMenu = memoGeneric(function ToolbarMenu2({
|
|
|
17229
17333
|
displayFilter = "iconAndText",
|
|
17230
17334
|
dividerOverflow
|
|
17231
17335
|
}) {
|
|
17232
|
-
return /* @__PURE__ */
|
|
17233
|
-
return /* @__PURE__ */
|
|
17336
|
+
return /* @__PURE__ */ import_react104.default.createElement(import_react104.default.Fragment, null, items.map((item, i) => {
|
|
17337
|
+
return /* @__PURE__ */ import_react104.default.createElement(
|
|
17234
17338
|
ToolbarMenuItem,
|
|
17235
17339
|
{
|
|
17236
17340
|
key: i,
|
|
@@ -17255,21 +17359,21 @@ function Toolbar({
|
|
|
17255
17359
|
shouldBindKeyboardShortcuts = true,
|
|
17256
17360
|
dividerOverflow
|
|
17257
17361
|
}) {
|
|
17258
|
-
const allMenuItems =
|
|
17362
|
+
const allMenuItems = import_react104.default.useMemo(
|
|
17259
17363
|
() => [...leftMenuItems, ...rightMenuItems],
|
|
17260
17364
|
[leftMenuItems, rightMenuItems]
|
|
17261
17365
|
);
|
|
17262
17366
|
(0, import_noya_keymap6.useKeyboardShortcuts)(
|
|
17263
|
-
|
|
17367
|
+
import_react104.default.useMemo(
|
|
17264
17368
|
() => onSelectMenuItem && shouldBindKeyboardShortcuts ? getKeyboardShortcutsForMenuItems(allMenuItems, onSelectMenuItem) : {},
|
|
17265
17369
|
[allMenuItems, onSelectMenuItem, shouldBindKeyboardShortcuts]
|
|
17266
17370
|
)
|
|
17267
17371
|
);
|
|
17268
|
-
return /* @__PURE__ */
|
|
17372
|
+
return /* @__PURE__ */ import_react104.default.createElement(
|
|
17269
17373
|
BaseToolbar,
|
|
17270
17374
|
{
|
|
17271
17375
|
logo,
|
|
17272
|
-
left: leftMenuItems.length > 0 && /* @__PURE__ */
|
|
17376
|
+
left: leftMenuItems.length > 0 && /* @__PURE__ */ import_react104.default.createElement("div", { className: "n-flex n-gap-2" }, /* @__PURE__ */ import_react104.default.createElement(
|
|
17273
17377
|
ToolbarMenu,
|
|
17274
17378
|
{
|
|
17275
17379
|
items: leftMenuItems,
|
|
@@ -17277,7 +17381,7 @@ function Toolbar({
|
|
|
17277
17381
|
dividerOverflow
|
|
17278
17382
|
}
|
|
17279
17383
|
)),
|
|
17280
|
-
right: rightMenuItems.length > 0 && /* @__PURE__ */
|
|
17384
|
+
right: rightMenuItems.length > 0 && /* @__PURE__ */ import_react104.default.createElement("div", { className: "n-flex n-gap-2" }, /* @__PURE__ */ import_react104.default.createElement(
|
|
17281
17385
|
ToolbarMenu,
|
|
17282
17386
|
{
|
|
17283
17387
|
items: rightMenuItems,
|
|
@@ -17298,19 +17402,19 @@ var VerticalTabMenu = memoGeneric(function VerticalTabMenu2({
|
|
|
17298
17402
|
onChange,
|
|
17299
17403
|
tooltipSide
|
|
17300
17404
|
}) {
|
|
17301
|
-
const style2 = (0,
|
|
17405
|
+
const style2 = (0, import_react105.useMemo)(() => {
|
|
17302
17406
|
return {
|
|
17303
17407
|
[cssVarNames.colors.inputBackground]: "transparent",
|
|
17304
17408
|
[cssVarNames.colors.buttonBackground]: "transparent"
|
|
17305
17409
|
};
|
|
17306
17410
|
}, []);
|
|
17307
|
-
return /* @__PURE__ */
|
|
17411
|
+
return /* @__PURE__ */ import_react105.default.createElement(
|
|
17308
17412
|
"div",
|
|
17309
17413
|
{
|
|
17310
17414
|
className: "n-w-[calc(var(--n-toolbar-height)+1px)] n-h-full n-bg-sidebar-background n-flex n-flex-col n-items-center n-py-3 n-gap-3",
|
|
17311
17415
|
style: style2
|
|
17312
17416
|
},
|
|
17313
|
-
/* @__PURE__ */
|
|
17417
|
+
/* @__PURE__ */ import_react105.default.createElement(
|
|
17314
17418
|
ToolbarMenu,
|
|
17315
17419
|
{
|
|
17316
17420
|
items,
|
|
@@ -17338,12 +17442,12 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17338
17442
|
onChangeLeftTab,
|
|
17339
17443
|
compactDrawerMenu
|
|
17340
17444
|
}) {
|
|
17341
|
-
const portalContainer = (0,
|
|
17342
|
-
const [{ leftSidebarCollapsed, rightSidebarCollapsed }, setLayoutState] = (0,
|
|
17445
|
+
const portalContainer = (0, import_react106.useRef)(null);
|
|
17446
|
+
const [{ leftSidebarCollapsed, rightSidebarCollapsed }, setLayoutState] = (0, import_react106.useState)({
|
|
17343
17447
|
leftSidebarCollapsed: true,
|
|
17344
17448
|
rightSidebarCollapsed: true
|
|
17345
17449
|
});
|
|
17346
|
-
const allTabItems = (0,
|
|
17450
|
+
const allTabItems = (0, import_react106.useMemo)(
|
|
17347
17451
|
() => [
|
|
17348
17452
|
...leftPanel ? leftTabItems ?? [] : [],
|
|
17349
17453
|
...rightPanel ? rightTabItems ?? [] : []
|
|
@@ -17351,16 +17455,16 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17351
17455
|
[leftTabItems, rightTabItems, leftPanel, rightPanel]
|
|
17352
17456
|
);
|
|
17353
17457
|
const hasTabs = allTabItems.length > 0;
|
|
17354
|
-
const allSelectableTabItems = (0,
|
|
17458
|
+
const allSelectableTabItems = (0, import_react106.useMemo)(
|
|
17355
17459
|
() => allTabItems.filter(isSelectableMenuItem),
|
|
17356
17460
|
[allTabItems]
|
|
17357
17461
|
);
|
|
17358
17462
|
const useCompactInToolbar = !!compactDrawerMenu && allSelectableTabItems.length <= 1;
|
|
17359
|
-
const leftSelectableTabItems = (0,
|
|
17463
|
+
const leftSelectableTabItems = (0, import_react106.useMemo)(
|
|
17360
17464
|
() => (leftTabItems ?? []).filter(isSelectableMenuItem),
|
|
17361
17465
|
[leftTabItems]
|
|
17362
17466
|
);
|
|
17363
|
-
const rightSelectableTabItems = (0,
|
|
17467
|
+
const rightSelectableTabItems = (0, import_react106.useMemo)(
|
|
17364
17468
|
() => (rightTabItems ?? []).filter(isSelectableMenuItem),
|
|
17365
17469
|
[rightTabItems]
|
|
17366
17470
|
);
|
|
@@ -17397,14 +17501,14 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17397
17501
|
activeValue: rightTabValue,
|
|
17398
17502
|
isSidebarCollapsed: rightSidebarCollapsed
|
|
17399
17503
|
} : { activeValue: void 0, isSidebarCollapsed: true };
|
|
17400
|
-
return /* @__PURE__ */
|
|
17504
|
+
return /* @__PURE__ */ import_react106.default.createElement(
|
|
17401
17505
|
"div",
|
|
17402
17506
|
{
|
|
17403
17507
|
ref: portalContainer,
|
|
17404
17508
|
id: EDITOR_PANEL_GROUP_ID,
|
|
17405
17509
|
className: "n-flex n-flex-1 n-relative focus:n-outline-none"
|
|
17406
17510
|
},
|
|
17407
|
-
hasTabs && !useCompactInToolbar && /* @__PURE__ */
|
|
17511
|
+
hasTabs && !useCompactInToolbar && /* @__PURE__ */ import_react106.default.createElement(import_react106.default.Fragment, null, /* @__PURE__ */ import_react106.default.createElement(
|
|
17408
17512
|
VerticalTabMenu,
|
|
17409
17513
|
{
|
|
17410
17514
|
tooltipSide: "right",
|
|
@@ -17413,8 +17517,8 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17413
17517
|
isSidebarCollapsed,
|
|
17414
17518
|
onChange: (value) => handleSelectTab(value)
|
|
17415
17519
|
}
|
|
17416
|
-
), /* @__PURE__ */
|
|
17417
|
-
useCompactInToolbar && /* @__PURE__ */
|
|
17520
|
+
), /* @__PURE__ */ import_react106.default.createElement(DividerVertical, { className: "n-h-full" })),
|
|
17521
|
+
useCompactInToolbar && /* @__PURE__ */ import_react106.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_react106.default.createElement(
|
|
17418
17522
|
Button,
|
|
17419
17523
|
{
|
|
17420
17524
|
variant: "none",
|
|
@@ -17437,8 +17541,8 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17437
17541
|
}
|
|
17438
17542
|
}
|
|
17439
17543
|
)),
|
|
17440
|
-
/* @__PURE__ */
|
|
17441
|
-
leftPanel && /* @__PURE__ */
|
|
17544
|
+
/* @__PURE__ */ import_react106.default.createElement("div", { className: "n-flex-1 n-flex n-relative" }, centerPanel),
|
|
17545
|
+
leftPanel && /* @__PURE__ */ import_react106.default.createElement(
|
|
17442
17546
|
Drawer,
|
|
17443
17547
|
{
|
|
17444
17548
|
ref: leftSidebarRef,
|
|
@@ -17459,7 +17563,7 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17459
17563
|
},
|
|
17460
17564
|
leftPanel
|
|
17461
17565
|
),
|
|
17462
|
-
rightPanel && /* @__PURE__ */
|
|
17566
|
+
rightPanel && /* @__PURE__ */ import_react106.default.createElement(
|
|
17463
17567
|
Drawer,
|
|
17464
17568
|
{
|
|
17465
17569
|
id: RIGHT_SIDEBAR_ID,
|
|
@@ -17485,7 +17589,7 @@ var DrawerWorkspaceLayout = memoGeneric(function DrawerWorkspaceLayout2({
|
|
|
17485
17589
|
});
|
|
17486
17590
|
|
|
17487
17591
|
// src/components/workspace/PanelWorkspaceLayout.tsx
|
|
17488
|
-
var
|
|
17592
|
+
var import_react107 = __toESM(require("react"));
|
|
17489
17593
|
var import_react_resizable_panels = require("react-resizable-panels");
|
|
17490
17594
|
|
|
17491
17595
|
// src/components/workspace/panelStorage.ts
|
|
@@ -17651,11 +17755,11 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17651
17755
|
onChangeRightTab,
|
|
17652
17756
|
compactDrawerMenu
|
|
17653
17757
|
}) {
|
|
17654
|
-
const panelGroupRef = (0,
|
|
17758
|
+
const panelGroupRef = (0, import_react107.useRef)(null);
|
|
17655
17759
|
const hasLeftPanel = !!leftPanel;
|
|
17656
17760
|
const hasRightPanel = !!rightPanel;
|
|
17657
17761
|
const hasCenterPanel = !!centerPanel;
|
|
17658
|
-
const autoSaveId = (0,
|
|
17762
|
+
const autoSaveId = (0, import_react107.useMemo)(() => {
|
|
17659
17763
|
return autoSavePrefix ? `${autoSavePrefix}--v2--${EDITOR_PANEL_GROUP_ID}` : Math.random().toString(36).substring(2, 15);
|
|
17660
17764
|
}, [autoSavePrefix]);
|
|
17661
17765
|
const layoutIds = getLayoutIds({
|
|
@@ -17682,7 +17786,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17682
17786
|
});
|
|
17683
17787
|
const [data, setData] = usePersistentStateObject(clientStorage, storageKey, {});
|
|
17684
17788
|
const layoutGroup = data?.[propertyKey];
|
|
17685
|
-
const { leftSidebarCollapsed, rightSidebarCollapsed } = (0,
|
|
17789
|
+
const { leftSidebarCollapsed, rightSidebarCollapsed } = (0, import_react107.useMemo)(() => {
|
|
17686
17790
|
return getLayoutCollapsedState({
|
|
17687
17791
|
layoutGroup,
|
|
17688
17792
|
propertyKey,
|
|
@@ -17691,7 +17795,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17691
17795
|
hasRightPanel
|
|
17692
17796
|
});
|
|
17693
17797
|
}, [layoutGroup, propertyKey, layoutIds, hasLeftPanel, hasRightPanel]);
|
|
17694
|
-
const handleLeftTabChange = (0,
|
|
17798
|
+
const handleLeftTabChange = (0, import_react107.useCallback)(
|
|
17695
17799
|
(value) => {
|
|
17696
17800
|
if (value === leftTabValue) {
|
|
17697
17801
|
if (leftSidebarRef.current?.isExpanded()) {
|
|
@@ -17708,7 +17812,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17708
17812
|
},
|
|
17709
17813
|
[leftSidebarRef, leftTabValue, onChangeLeftTab]
|
|
17710
17814
|
);
|
|
17711
|
-
const handleRightTabChange = (0,
|
|
17815
|
+
const handleRightTabChange = (0, import_react107.useCallback)(
|
|
17712
17816
|
(value) => {
|
|
17713
17817
|
if (value === rightTabValue) {
|
|
17714
17818
|
if (rightSidebarRef.current?.isExpanded()) {
|
|
@@ -17725,7 +17829,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17725
17829
|
},
|
|
17726
17830
|
[onChangeRightTab, rightSidebarRef, rightTabValue]
|
|
17727
17831
|
);
|
|
17728
|
-
const handleLayoutChange = (0,
|
|
17832
|
+
const handleLayoutChange = (0, import_react107.useCallback)(
|
|
17729
17833
|
(layout) => {
|
|
17730
17834
|
setData((prev) => {
|
|
17731
17835
|
const newData = {
|
|
@@ -17743,7 +17847,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17743
17847
|
const showLeftTabs = !!leftSidebarOptions.showTabs && !!leftTabItems && // When compact drawer UI is enabled, only show the rail when the
|
|
17744
17848
|
// sidebar is collapsed (for large screens/panel layout).
|
|
17745
17849
|
(!compactDrawerMenu || leftSidebarCollapsed);
|
|
17746
|
-
return /* @__PURE__ */
|
|
17850
|
+
return /* @__PURE__ */ import_react107.default.createElement(
|
|
17747
17851
|
import_react_resizable_panels.PanelGroup,
|
|
17748
17852
|
{
|
|
17749
17853
|
ref: panelGroupRef,
|
|
@@ -17754,7 +17858,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17754
17858
|
autoSaveId,
|
|
17755
17859
|
onLayout: handleLayoutChange
|
|
17756
17860
|
},
|
|
17757
|
-
leftPanel && /* @__PURE__ */
|
|
17861
|
+
leftPanel && /* @__PURE__ */ import_react107.default.createElement(import_react107.default.Fragment, null, showLeftTabs && /* @__PURE__ */ import_react107.default.createElement(
|
|
17758
17862
|
VerticalTabMenu,
|
|
17759
17863
|
{
|
|
17760
17864
|
tooltipSide: "right",
|
|
@@ -17763,7 +17867,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17763
17867
|
isSidebarCollapsed: leftSidebarCollapsed,
|
|
17764
17868
|
onChange: handleLeftTabChange
|
|
17765
17869
|
}
|
|
17766
|
-
), showLeftTabs && !leftSidebarCollapsed && /* @__PURE__ */
|
|
17870
|
+
), showLeftTabs && !leftSidebarCollapsed && /* @__PURE__ */ import_react107.default.createElement(DividerVertical, { className: "n-h-full" }), /* @__PURE__ */ import_react107.default.createElement(
|
|
17767
17871
|
import_react_resizable_panels.Panel,
|
|
17768
17872
|
{
|
|
17769
17873
|
id: LEFT_SIDEBAR_ID,
|
|
@@ -17776,8 +17880,8 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17776
17880
|
collapsible: true
|
|
17777
17881
|
},
|
|
17778
17882
|
leftSidebarCollapsed ? null : leftPanel
|
|
17779
|
-
), /* @__PURE__ */
|
|
17780
|
-
/* @__PURE__ */
|
|
17883
|
+
), /* @__PURE__ */ import_react107.default.createElement(import_react_resizable_panels.PanelResizeHandle, { className: "n-cursor-col-resize n-w-px n-h-full n-bg-divider" })),
|
|
17884
|
+
/* @__PURE__ */ import_react107.default.createElement(
|
|
17781
17885
|
import_react_resizable_panels.Panel,
|
|
17782
17886
|
{
|
|
17783
17887
|
id: CONTENT_AREA_ID,
|
|
@@ -17788,7 +17892,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17788
17892
|
},
|
|
17789
17893
|
centerPanel
|
|
17790
17894
|
),
|
|
17791
|
-
rightPanel && /* @__PURE__ */
|
|
17895
|
+
rightPanel && /* @__PURE__ */ import_react107.default.createElement(import_react107.default.Fragment, null, /* @__PURE__ */ import_react107.default.createElement(import_react_resizable_panels.PanelResizeHandle, { className: "n-cursor-col-resize n-w-px n-h-full n-bg-divider" }), /* @__PURE__ */ import_react107.default.createElement(
|
|
17792
17896
|
import_react_resizable_panels.Panel,
|
|
17793
17897
|
{
|
|
17794
17898
|
id: RIGHT_SIDEBAR_ID,
|
|
@@ -17801,7 +17905,7 @@ var PanelWorkspaceLayout = memoGeneric(function PanelWorkspaceLayout2({
|
|
|
17801
17905
|
collapsible: true
|
|
17802
17906
|
},
|
|
17803
17907
|
rightSidebarCollapsed ? null : rightPanel
|
|
17804
|
-
), rightSidebarOptions.showTabs && rightTabItems && !rightSidebarCollapsed && /* @__PURE__ */
|
|
17908
|
+
), rightSidebarOptions.showTabs && rightTabItems && !rightSidebarCollapsed && /* @__PURE__ */ import_react107.default.createElement(DividerVertical, { className: "n-h-full" }), rightSidebarOptions.showTabs && rightTabItems && /* @__PURE__ */ import_react107.default.createElement(
|
|
17805
17909
|
VerticalTabMenu,
|
|
17806
17910
|
{
|
|
17807
17911
|
tooltipSide: "left",
|
|
@@ -17823,11 +17927,11 @@ function renderPanelChildren(fn, props) {
|
|
|
17823
17927
|
}
|
|
17824
17928
|
|
|
17825
17929
|
// src/components/workspace/WorkspaceSideContext.tsx
|
|
17826
|
-
var
|
|
17827
|
-
var WorkspaceSideContext = (0,
|
|
17930
|
+
var import_react108 = require("react");
|
|
17931
|
+
var WorkspaceSideContext = (0, import_react108.createContext)({});
|
|
17828
17932
|
var WorkspaceSideProvider = WorkspaceSideContext.Provider;
|
|
17829
17933
|
function useWorkspaceSide() {
|
|
17830
|
-
return (0,
|
|
17934
|
+
return (0, import_react108.useContext)(WorkspaceSideContext);
|
|
17831
17935
|
}
|
|
17832
17936
|
|
|
17833
17937
|
// src/components/workspace/WorkspaceLayout.tsx
|
|
@@ -17890,7 +17994,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
17890
17994
|
theme,
|
|
17891
17995
|
compactDrawerMenu
|
|
17892
17996
|
}, forwardedRef) {
|
|
17893
|
-
const containerRef =
|
|
17997
|
+
const containerRef = import_react109.default.useRef(null);
|
|
17894
17998
|
const containerSize = useSize(containerRef);
|
|
17895
17999
|
const windowSize = useWindowSize();
|
|
17896
18000
|
const parentSize = detectSize === "window" ? windowSize : containerSize && containerSize.width > 0 ? containerSize : windowSize;
|
|
@@ -17921,8 +18025,8 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
17921
18025
|
rightSidebarMinPercentage,
|
|
17922
18026
|
rightSidebarMaxPercentage
|
|
17923
18027
|
);
|
|
17924
|
-
const leftSidebarRef = (0,
|
|
17925
|
-
const rightSidebarRef = (0,
|
|
18028
|
+
const leftSidebarRef = (0, import_react109.useRef)(null);
|
|
18029
|
+
const rightSidebarRef = (0, import_react109.useRef)(null);
|
|
17926
18030
|
const [leftTabValue, setLeftTabValue] = useControlledOrUncontrolled({
|
|
17927
18031
|
value: leftTabValueProp,
|
|
17928
18032
|
onChange: onChangeLeftTab,
|
|
@@ -17933,7 +18037,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
17933
18037
|
onChange: onChangeRightTab,
|
|
17934
18038
|
defaultValue: getFirstTabValue(rightTabItems, "")
|
|
17935
18039
|
});
|
|
17936
|
-
(0,
|
|
18040
|
+
(0, import_react109.useImperativeHandle)(forwardedRef, () => ({
|
|
17937
18041
|
setLeftExpanded: (expanded) => {
|
|
17938
18042
|
if (expanded) {
|
|
17939
18043
|
leftSidebarRef.current?.expand();
|
|
@@ -17991,56 +18095,56 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
17991
18095
|
});
|
|
17992
18096
|
const centerPanelPercentage = 100 - (left ? leftSidebarPercentage : 0) - (right ? rightSidebarPercentage : 0);
|
|
17993
18097
|
const isDrawerActive = sideType === "drawer" || sideType === "auto" && parentSize.width <= sideTypeBreakpoint;
|
|
17994
|
-
const closeLeftSidebar = (0,
|
|
18098
|
+
const closeLeftSidebar = (0, import_react109.useCallback)(() => {
|
|
17995
18099
|
if (isDrawerActive) {
|
|
17996
18100
|
leftSidebarRef.current?.collapse();
|
|
17997
18101
|
}
|
|
17998
18102
|
}, [isDrawerActive]);
|
|
17999
|
-
const closeRightSidebar = (0,
|
|
18103
|
+
const closeRightSidebar = (0, import_react109.useCallback)(() => {
|
|
18000
18104
|
if (isDrawerActive) {
|
|
18001
18105
|
rightSidebarRef.current?.collapse();
|
|
18002
18106
|
}
|
|
18003
18107
|
}, [isDrawerActive]);
|
|
18004
|
-
const leftChildrenProps = (0,
|
|
18108
|
+
const leftChildrenProps = (0, import_react109.useMemo)(() => {
|
|
18005
18109
|
return {
|
|
18006
18110
|
activeTabValue: leftTabValue,
|
|
18007
18111
|
closeSidebar: closeLeftSidebar
|
|
18008
18112
|
};
|
|
18009
18113
|
}, [leftTabValue, closeLeftSidebar]);
|
|
18010
|
-
const rightChildrenProps = (0,
|
|
18114
|
+
const rightChildrenProps = (0, import_react109.useMemo)(() => {
|
|
18011
18115
|
return {
|
|
18012
18116
|
activeTabValue: rightTabValue,
|
|
18013
18117
|
closeSidebar: closeRightSidebar
|
|
18014
18118
|
};
|
|
18015
18119
|
}, [rightTabValue, closeRightSidebar]);
|
|
18016
|
-
const leftSidebarProviderValue = (0,
|
|
18120
|
+
const leftSidebarProviderValue = (0, import_react109.useMemo)(() => {
|
|
18017
18121
|
return {
|
|
18018
18122
|
closeSidebar: closeLeftSidebar
|
|
18019
18123
|
};
|
|
18020
18124
|
}, [closeLeftSidebar]);
|
|
18021
|
-
const rightSidebarProviderValue = (0,
|
|
18125
|
+
const rightSidebarProviderValue = (0, import_react109.useMemo)(() => {
|
|
18022
18126
|
return {
|
|
18023
18127
|
closeSidebar: closeRightSidebar
|
|
18024
18128
|
};
|
|
18025
18129
|
}, [closeRightSidebar]);
|
|
18026
|
-
const leftPanel = left && leftVisible !== false ? /* @__PURE__ */
|
|
18130
|
+
const leftPanel = left && leftVisible !== false ? /* @__PURE__ */ import_react109.default.createElement(
|
|
18027
18131
|
PanelInner,
|
|
18028
18132
|
{
|
|
18029
18133
|
style: leftStyle,
|
|
18030
18134
|
className: cx("n-bg-sidebar-background n-flex-col", leftClassName)
|
|
18031
18135
|
},
|
|
18032
|
-
/* @__PURE__ */
|
|
18136
|
+
/* @__PURE__ */ import_react109.default.createElement(WorkspaceSideProvider, { value: leftSidebarProviderValue }, leftTabValue ? renderPanelChildren(left, leftChildrenProps) : null)
|
|
18033
18137
|
) : null;
|
|
18034
|
-
const rightPanel = right && rightVisible !== false ? /* @__PURE__ */
|
|
18138
|
+
const rightPanel = right && rightVisible !== false ? /* @__PURE__ */ import_react109.default.createElement(
|
|
18035
18139
|
PanelInner,
|
|
18036
18140
|
{
|
|
18037
18141
|
style: rightStyle,
|
|
18038
18142
|
className: cx("n-bg-sidebar-background n-flex-col", rightClassName)
|
|
18039
18143
|
},
|
|
18040
|
-
/* @__PURE__ */
|
|
18144
|
+
/* @__PURE__ */ import_react109.default.createElement(WorkspaceSideProvider, { value: rightSidebarProviderValue }, rightTabValue ? renderPanelChildren(right, rightChildrenProps) : null)
|
|
18041
18145
|
) : null;
|
|
18042
|
-
const centerPanel = /* @__PURE__ */
|
|
18043
|
-
const leftSidebarOptions = (0,
|
|
18146
|
+
const centerPanel = /* @__PURE__ */ import_react109.default.createElement(PanelInner, { className: "n-bg-canvas-background" }, children);
|
|
18147
|
+
const leftSidebarOptions = (0, import_react109.useMemo)(
|
|
18044
18148
|
() => ({
|
|
18045
18149
|
minSize: leftSidebarMinPercentage,
|
|
18046
18150
|
maxSize: leftSidebarMaxPercentage,
|
|
@@ -18058,7 +18162,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18058
18162
|
leftShowTabs
|
|
18059
18163
|
]
|
|
18060
18164
|
);
|
|
18061
|
-
const rightSidebarOptions = (0,
|
|
18165
|
+
const rightSidebarOptions = (0, import_react109.useMemo)(
|
|
18062
18166
|
() => ({
|
|
18063
18167
|
minSize: rightSidebarMinPercentage,
|
|
18064
18168
|
maxSize: rightSidebarMaxPercentage,
|
|
@@ -18078,7 +18182,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18078
18182
|
);
|
|
18079
18183
|
const LayoutComponent = sideType === "panel" ? PanelWorkspaceLayout : sideType === "drawer" ? DrawerWorkspaceLayout : parentSize.width > sideTypeBreakpoint ? PanelWorkspaceLayout : DrawerWorkspaceLayout;
|
|
18080
18184
|
const readyToRender = detectSize === "window" || containerSize && containerSize.width > 0;
|
|
18081
|
-
return /* @__PURE__ */
|
|
18185
|
+
return /* @__PURE__ */ import_react109.default.createElement(
|
|
18082
18186
|
"div",
|
|
18083
18187
|
{
|
|
18084
18188
|
ref: containerRef,
|
|
@@ -18091,7 +18195,7 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18091
18195
|
"data-theme": theme
|
|
18092
18196
|
},
|
|
18093
18197
|
toolbar,
|
|
18094
|
-
/* @__PURE__ */
|
|
18198
|
+
/* @__PURE__ */ import_react109.default.createElement("div", { className: "n-flex n-flex-row n-flex-1 n-relative" }, readyToRender && /* @__PURE__ */ import_react109.default.createElement(
|
|
18095
18199
|
LayoutComponent,
|
|
18096
18200
|
{
|
|
18097
18201
|
leftPanel,
|
|
@@ -18114,12 +18218,12 @@ var WorkspaceLayout = forwardRefGeneric(function WorkspaceLayout2({
|
|
|
18114
18218
|
))
|
|
18115
18219
|
);
|
|
18116
18220
|
});
|
|
18117
|
-
var PanelInner = (0,
|
|
18221
|
+
var PanelInner = (0, import_react109.memo)(function PanelInner2({
|
|
18118
18222
|
children,
|
|
18119
18223
|
style: style2,
|
|
18120
18224
|
className
|
|
18121
18225
|
}) {
|
|
18122
|
-
return /* @__PURE__ */
|
|
18226
|
+
return /* @__PURE__ */ import_react109.default.createElement(
|
|
18123
18227
|
"div",
|
|
18124
18228
|
{
|
|
18125
18229
|
style: style2,
|
|
@@ -18134,22 +18238,22 @@ function getFirstTabValue(items, defaultValue2) {
|
|
|
18134
18238
|
}
|
|
18135
18239
|
|
|
18136
18240
|
// src/contexts/ImageDataContext.tsx
|
|
18137
|
-
var
|
|
18138
|
-
var ImageDataContext =
|
|
18241
|
+
var React110 = __toESM(require("react"));
|
|
18242
|
+
var ImageDataContext = React110.createContext(
|
|
18139
18243
|
void 0
|
|
18140
18244
|
);
|
|
18141
|
-
var ImageDataProvider =
|
|
18245
|
+
var ImageDataProvider = React110.memo(function ImageDataProvider2({
|
|
18142
18246
|
children,
|
|
18143
18247
|
getImageData
|
|
18144
18248
|
}) {
|
|
18145
|
-
const contextValue =
|
|
18249
|
+
const contextValue = React110.useMemo(
|
|
18146
18250
|
() => ({ getImageData: getImageData ?? (() => void 0) }),
|
|
18147
18251
|
[getImageData]
|
|
18148
18252
|
);
|
|
18149
|
-
return /* @__PURE__ */
|
|
18253
|
+
return /* @__PURE__ */ React110.createElement(ImageDataContext.Provider, { value: contextValue }, children);
|
|
18150
18254
|
});
|
|
18151
18255
|
function useImageData(ref) {
|
|
18152
|
-
const value =
|
|
18256
|
+
const value = React110.useContext(ImageDataContext);
|
|
18153
18257
|
if (!value) {
|
|
18154
18258
|
throw new Error("Missing ImageDataProvider");
|
|
18155
18259
|
}
|
|
@@ -18166,9 +18270,9 @@ function usePlatformModKey() {
|
|
|
18166
18270
|
}
|
|
18167
18271
|
|
|
18168
18272
|
// src/hooks/useTheme.ts
|
|
18169
|
-
var
|
|
18273
|
+
var import_react110 = require("react");
|
|
18170
18274
|
function useTheme() {
|
|
18171
|
-
const [theme, setTheme] = (0,
|
|
18275
|
+
const [theme, setTheme] = (0, import_react110.useState)("light");
|
|
18172
18276
|
const checkTheme = () => {
|
|
18173
18277
|
const currentTheme = document.body.getAttribute("data-theme");
|
|
18174
18278
|
switch (currentTheme) {
|
|
@@ -18180,7 +18284,7 @@ function useTheme() {
|
|
|
18180
18284
|
break;
|
|
18181
18285
|
}
|
|
18182
18286
|
};
|
|
18183
|
-
(0,
|
|
18287
|
+
(0, import_react110.useEffect)(() => {
|
|
18184
18288
|
checkTheme();
|
|
18185
18289
|
const observer = new MutationObserver((mutations) => {
|
|
18186
18290
|
mutations.forEach((mutation) => {
|
|
@@ -18303,11 +18407,11 @@ var SUPPORTED_CANVAS_UPLOAD_TYPES = [
|
|
|
18303
18407
|
|
|
18304
18408
|
// src/components/DimensionInput.tsx
|
|
18305
18409
|
var import_noya_utils21 = require("@noya-app/noya-utils");
|
|
18306
|
-
var
|
|
18410
|
+
var React111 = __toESM(require("react"));
|
|
18307
18411
|
function getNewValue(value, mode, delta) {
|
|
18308
18412
|
return delta === void 0 ? value : mode === "replace" ? delta : value + delta;
|
|
18309
18413
|
}
|
|
18310
|
-
var DimensionInput =
|
|
18414
|
+
var DimensionInput = React111.memo(function DimensionInput2({
|
|
18311
18415
|
id,
|
|
18312
18416
|
value,
|
|
18313
18417
|
onSetValue,
|
|
@@ -18317,15 +18421,15 @@ var DimensionInput = React110.memo(function DimensionInput2({
|
|
|
18317
18421
|
disabled,
|
|
18318
18422
|
trigger = "submit"
|
|
18319
18423
|
}) {
|
|
18320
|
-
const handleNudgeValue =
|
|
18424
|
+
const handleNudgeValue = React111.useCallback(
|
|
18321
18425
|
(value2) => onSetValue(value2, "adjust"),
|
|
18322
18426
|
[onSetValue]
|
|
18323
18427
|
);
|
|
18324
|
-
const handleSetValue =
|
|
18428
|
+
const handleSetValue = React111.useCallback(
|
|
18325
18429
|
(value2) => onSetValue(value2, "replace"),
|
|
18326
18430
|
[onSetValue]
|
|
18327
18431
|
);
|
|
18328
|
-
return /* @__PURE__ */
|
|
18432
|
+
return /* @__PURE__ */ React111.createElement(LabeledField, { label, labelType: "inset" }, /* @__PURE__ */ React111.createElement(InputField2.Root, { id, width: size }, /* @__PURE__ */ React111.createElement(
|
|
18329
18433
|
InputField2.NumberInput,
|
|
18330
18434
|
{
|
|
18331
18435
|
value: value === void 0 ? value : (0, import_noya_utils21.round)(value, 2),
|
|
@@ -18352,8 +18456,8 @@ __export(InspectorPrimitives_exports, {
|
|
|
18352
18456
|
Title: () => Title,
|
|
18353
18457
|
VerticalSeparator: () => VerticalSeparator
|
|
18354
18458
|
});
|
|
18355
|
-
var
|
|
18356
|
-
var Section2 = (0,
|
|
18459
|
+
var import_react111 = __toESM(require("react"));
|
|
18460
|
+
var Section2 = (0, import_react111.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react111.default.createElement(
|
|
18357
18461
|
"div",
|
|
18358
18462
|
{
|
|
18359
18463
|
ref,
|
|
@@ -18361,8 +18465,8 @@ var Section2 = (0, import_react110.forwardRef)(({ className, ...props }, ref) =>
|
|
|
18361
18465
|
...props
|
|
18362
18466
|
}
|
|
18363
18467
|
));
|
|
18364
|
-
var SectionHeader2 = (0,
|
|
18365
|
-
var Title = (0,
|
|
18468
|
+
var SectionHeader2 = (0, import_react111.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react111.default.createElement("div", { ref, className: cx(`n-flex n-items-center`, className), ...props }));
|
|
18469
|
+
var Title = (0, import_react111.forwardRef)(({ className, $textStyle, ...props }, ref) => /* @__PURE__ */ import_react111.default.createElement(
|
|
18366
18470
|
"div",
|
|
18367
18471
|
{
|
|
18368
18472
|
ref,
|
|
@@ -18373,7 +18477,7 @@ var Title = (0, import_react110.forwardRef)(({ className, $textStyle, ...props }
|
|
|
18373
18477
|
...props
|
|
18374
18478
|
}
|
|
18375
18479
|
));
|
|
18376
|
-
var Row = (0,
|
|
18480
|
+
var Row = (0, import_react111.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react111.default.createElement(
|
|
18377
18481
|
"div",
|
|
18378
18482
|
{
|
|
18379
18483
|
ref,
|
|
@@ -18381,7 +18485,7 @@ var Row = (0, import_react110.forwardRef)(({ className, ...props }, ref) => /* @
|
|
|
18381
18485
|
...props
|
|
18382
18486
|
}
|
|
18383
18487
|
));
|
|
18384
|
-
var Column = (0,
|
|
18488
|
+
var Column = (0, import_react111.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react111.default.createElement(
|
|
18385
18489
|
"div",
|
|
18386
18490
|
{
|
|
18387
18491
|
ref,
|
|
@@ -18389,7 +18493,7 @@ var Column = (0, import_react110.forwardRef)(({ className, ...props }, ref) => /
|
|
|
18389
18493
|
...props
|
|
18390
18494
|
}
|
|
18391
18495
|
));
|
|
18392
|
-
var Checkbox3 = (0,
|
|
18496
|
+
var Checkbox3 = (0, import_react111.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react111.default.createElement(
|
|
18393
18497
|
"input",
|
|
18394
18498
|
{
|
|
18395
18499
|
ref,
|
|
@@ -18398,7 +18502,7 @@ var Checkbox3 = (0, import_react110.forwardRef)(({ className, ...props }, ref) =
|
|
|
18398
18502
|
...props
|
|
18399
18503
|
}
|
|
18400
18504
|
));
|
|
18401
|
-
var Text3 = (0,
|
|
18505
|
+
var Text3 = (0, import_react111.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ import_react111.default.createElement(
|
|
18402
18506
|
"span",
|
|
18403
18507
|
{
|
|
18404
18508
|
ref,
|
|
@@ -18406,14 +18510,14 @@ var Text3 = (0, import_react110.forwardRef)(({ className, ...props }, ref) => /*
|
|
|
18406
18510
|
...props
|
|
18407
18511
|
}
|
|
18408
18512
|
));
|
|
18409
|
-
var VerticalSeparator = () => /* @__PURE__ */
|
|
18410
|
-
var HorizontalSeparator = () => /* @__PURE__ */
|
|
18411
|
-
var RowLabel = (0,
|
|
18513
|
+
var VerticalSeparator = () => /* @__PURE__ */ import_react111.default.createElement(Spacer.Vertical, { size: "inspector-v-separator" });
|
|
18514
|
+
var HorizontalSeparator = () => /* @__PURE__ */ import_react111.default.createElement(Spacer.Horizontal, { size: "inspector-h-separator" });
|
|
18515
|
+
var RowLabel = (0, import_react111.forwardRef)(function RowLabel2({
|
|
18412
18516
|
className,
|
|
18413
18517
|
$textStyle,
|
|
18414
18518
|
...props
|
|
18415
18519
|
}, ref) {
|
|
18416
|
-
return /* @__PURE__ */
|
|
18520
|
+
return /* @__PURE__ */ import_react111.default.createElement(
|
|
18417
18521
|
"label",
|
|
18418
18522
|
{
|
|
18419
18523
|
ref,
|
|
@@ -18425,7 +18529,7 @@ var RowLabel = (0, import_react110.forwardRef)(function RowLabel2({
|
|
|
18425
18529
|
}
|
|
18426
18530
|
);
|
|
18427
18531
|
});
|
|
18428
|
-
var LabeledRow = (0,
|
|
18532
|
+
var LabeledRow = (0, import_react111.memo)(function LabeledRow2({
|
|
18429
18533
|
id,
|
|
18430
18534
|
children,
|
|
18431
18535
|
label,
|
|
@@ -18433,7 +18537,7 @@ var LabeledRow = (0, import_react110.memo)(function LabeledRow2({
|
|
|
18433
18537
|
right,
|
|
18434
18538
|
className
|
|
18435
18539
|
}) {
|
|
18436
|
-
return /* @__PURE__ */
|
|
18540
|
+
return /* @__PURE__ */ import_react111.default.createElement(Row, { id, className }, /* @__PURE__ */ import_react111.default.createElement(Column, null, /* @__PURE__ */ import_react111.default.createElement(RowLabel, { $textStyle: labelTextStyle }, label, right && /* @__PURE__ */ import_react111.default.createElement(Spacer.Horizontal, null), right), /* @__PURE__ */ import_react111.default.createElement(Row, null, children)));
|
|
18437
18541
|
});
|
|
18438
18542
|
// Annotate the CommonJS export names for ESM import in node:
|
|
18439
18543
|
0 && (module.exports = {
|
|
@@ -18573,6 +18677,7 @@ var LabeledRow = (0, import_react110.memo)(function LabeledRow2({
|
|
|
18573
18677
|
Tooltip,
|
|
18574
18678
|
TreeView,
|
|
18575
18679
|
UserAvatar,
|
|
18680
|
+
UserPicker,
|
|
18576
18681
|
UserPointer,
|
|
18577
18682
|
WorkspaceLayout,
|
|
18578
18683
|
WorkspaceSideProvider,
|
|
@@ -18606,6 +18711,7 @@ var LabeledRow = (0, import_react110.memo)(function LabeledRow2({
|
|
|
18606
18711
|
getNextIndex,
|
|
18607
18712
|
getPipelineResultLink,
|
|
18608
18713
|
getThumbnailColors,
|
|
18714
|
+
getUserDisplayName,
|
|
18609
18715
|
isMenuItemSectionHeader,
|
|
18610
18716
|
isNonSelectableMenuItem,
|
|
18611
18717
|
isPopoverMenuItem,
|