@depup/sanity 5.17.1-depup.0

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.
Files changed (116) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +57 -0
  3. package/bin/sanity +209 -0
  4. package/changes.json +114 -0
  5. package/lib/_chunks-dts/ActiveWorkspaceMatcherContext.d.ts +16164 -0
  6. package/lib/_chunks-dts/index.d.ts +780 -0
  7. package/lib/_chunks-dts/types.d.ts +2765 -0
  8. package/lib/_chunks-dts/types2.d.ts +656 -0
  9. package/lib/_chunks-dts/types3.d.ts +303 -0
  10. package/lib/_chunks-es/BroadcastDisplayedDocument.js +20 -0
  11. package/lib/_chunks-es/BroadcastDisplayedDocument.js.map +1 -0
  12. package/lib/_chunks-es/DisplayedDocumentBroadcaster.js +32 -0
  13. package/lib/_chunks-es/DisplayedDocumentBroadcaster.js.map +1 -0
  14. package/lib/_chunks-es/LiveQueries.js +339 -0
  15. package/lib/_chunks-es/LiveQueries.js.map +1 -0
  16. package/lib/_chunks-es/MenuGroup.js +106 -0
  17. package/lib/_chunks-es/MenuGroup.js.map +1 -0
  18. package/lib/_chunks-es/PostMessageDocuments.js +72 -0
  19. package/lib/_chunks-es/PostMessageDocuments.js.map +1 -0
  20. package/lib/_chunks-es/PostMessagePerspective.js +23 -0
  21. package/lib/_chunks-es/PostMessagePerspective.js.map +1 -0
  22. package/lib/_chunks-es/PostMessagePreviewSnapshots.js +69 -0
  23. package/lib/_chunks-es/PostMessagePreviewSnapshots.js.map +1 -0
  24. package/lib/_chunks-es/PostMessageRefreshMutations.js +74 -0
  25. package/lib/_chunks-es/PostMessageRefreshMutations.js.map +1 -0
  26. package/lib/_chunks-es/PostMessageSchema.js +502 -0
  27. package/lib/_chunks-es/PostMessageSchema.js.map +1 -0
  28. package/lib/_chunks-es/PostMessageTelemetry.js +21 -0
  29. package/lib/_chunks-es/PostMessageTelemetry.js.map +1 -0
  30. package/lib/_chunks-es/PresentationToolGrantsCheck.js +3848 -0
  31. package/lib/_chunks-es/PresentationToolGrantsCheck.js.map +1 -0
  32. package/lib/_chunks-es/QRCodeSVG.js +692 -0
  33. package/lib/_chunks-es/QRCodeSVG.js.map +1 -0
  34. package/lib/_chunks-es/StructureToolProvider.js +2360 -0
  35. package/lib/_chunks-es/StructureToolProvider.js.map +1 -0
  36. package/lib/_chunks-es/VideoPlayer.js +22 -0
  37. package/lib/_chunks-es/VideoPlayer.js.map +1 -0
  38. package/lib/_chunks-es/ViteDevServerStopped.js +52 -0
  39. package/lib/_chunks-es/ViteDevServerStopped.js.map +1 -0
  40. package/lib/_chunks-es/index.js +285 -0
  41. package/lib/_chunks-es/index.js.map +1 -0
  42. package/lib/_chunks-es/index2.js +105 -0
  43. package/lib/_chunks-es/index2.js.map +1 -0
  44. package/lib/_chunks-es/index3.js +139 -0
  45. package/lib/_chunks-es/index3.js.map +1 -0
  46. package/lib/_chunks-es/index4.js +1020 -0
  47. package/lib/_chunks-es/index4.js.map +1 -0
  48. package/lib/_chunks-es/pane.js +5 -0
  49. package/lib/_chunks-es/pane.js.map +1 -0
  50. package/lib/_chunks-es/pane2.js +5 -0
  51. package/lib/_chunks-es/pane2.js.map +1 -0
  52. package/lib/_chunks-es/presentation.js +549 -0
  53. package/lib/_chunks-es/presentation.js.map +1 -0
  54. package/lib/_chunks-es/resources.js +303 -0
  55. package/lib/_chunks-es/resources.js.map +1 -0
  56. package/lib/_chunks-es/resources2.js +459 -0
  57. package/lib/_chunks-es/resources2.js.map +1 -0
  58. package/lib/_chunks-es/resources3.js +281 -0
  59. package/lib/_chunks-es/resources3.js.map +1 -0
  60. package/lib/_chunks-es/resources4.js +184 -0
  61. package/lib/_chunks-es/resources4.js.map +1 -0
  62. package/lib/_chunks-es/resources5.js +161 -0
  63. package/lib/_chunks-es/resources5.js.map +1 -0
  64. package/lib/_chunks-es/resources6.js +141 -0
  65. package/lib/_chunks-es/resources6.js.map +1 -0
  66. package/lib/_chunks-es/resources7.js +24 -0
  67. package/lib/_chunks-es/resources7.js.map +1 -0
  68. package/lib/_chunks-es/resources8.js +603 -0
  69. package/lib/_chunks-es/resources8.js.map +1 -0
  70. package/lib/_chunks-es/resources9.js +126 -0
  71. package/lib/_chunks-es/resources9.js.map +1 -0
  72. package/lib/_chunks-es/structureTool.js +13673 -0
  73. package/lib/_chunks-es/structureTool.js.map +1 -0
  74. package/lib/_chunks-es/version.js +17 -0
  75. package/lib/_chunks-es/version.js.map +1 -0
  76. package/lib/_createContext.d.ts +12 -0
  77. package/lib/_createContext.js +38 -0
  78. package/lib/_createContext.js.map +1 -0
  79. package/lib/_internal.d.ts +9 -0
  80. package/lib/_internal.js +12 -0
  81. package/lib/_internal.js.map +1 -0
  82. package/lib/_singletons.d.ts +951 -0
  83. package/lib/_singletons.js +284 -0
  84. package/lib/_singletons.js.map +1 -0
  85. package/lib/cli.d.ts +3 -0
  86. package/lib/cli.js +9 -0
  87. package/lib/cli.js.map +1 -0
  88. package/lib/desk.d.ts +910 -0
  89. package/lib/desk.js +71 -0
  90. package/lib/desk.js.map +1 -0
  91. package/lib/index.d.ts +4 -0
  92. package/lib/index.js +92934 -0
  93. package/lib/index.js.map +1 -0
  94. package/lib/media-library.d.ts +85 -0
  95. package/lib/media-library.js +11 -0
  96. package/lib/media-library.js.map +1 -0
  97. package/lib/migrate.d.ts +1 -0
  98. package/lib/migrate.js +2 -0
  99. package/lib/migrate.js.map +1 -0
  100. package/lib/presentation.d.ts +28 -0
  101. package/lib/presentation.js +10 -0
  102. package/lib/presentation.js.map +1 -0
  103. package/lib/router.d.ts +560 -0
  104. package/lib/router.js +777 -0
  105. package/lib/router.js.map +1 -0
  106. package/lib/structure.d.ts +3 -0
  107. package/lib/structure.js +639 -0
  108. package/lib/structure.js.map +1 -0
  109. package/mock-browser-env-stub-loader.mjs +27 -0
  110. package/package.json +383 -0
  111. package/static/favicons/apple-touch-icon.png +0 -0
  112. package/static/favicons/favicon-192.png +0 -0
  113. package/static/favicons/favicon-512.png +0 -0
  114. package/static/favicons/favicon-96.png +0 -0
  115. package/static/favicons/favicon.ico +0 -0
  116. package/static/favicons/favicon.svg +12 -0
@@ -0,0 +1,285 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { c } from "react/compiler-runtime";
3
+ import { Button as Button$1, Flex, Box, Text, Dialog as Dialog$1, ErrorBoundary as ErrorBoundary$1, MenuButton as MenuButton$1, Hotkeys as Hotkeys$1, Tooltip as Tooltip$1, Badge, Stack, MenuItem as MenuItem$1, Popover as Popover$1, Tab as Tab$1, TooltipDelayGroupProvider as TooltipDelayGroupProvider$1 } from "@sanity/ui";
4
+ import { forwardRef, useContext, isValidElement } from "react";
5
+ import { SourceContext } from "sanity/_singletons";
6
+ import { isValidElementType } from "react-is";
7
+ import { styled } from "styled-components";
8
+ import { useTranslation } from "react-i18next";
9
+ const LARGE_BUTTON_PROPS = {
10
+ space: 3,
11
+ padding: 3
12
+ }, DEFAULT_BUTTON_PROPS = {
13
+ space: 2,
14
+ padding: 2
15
+ }, TooltipButtonWrapper = styled.span.withConfig({
16
+ displayName: "TooltipButtonWrapper",
17
+ componentId: "sc-jrh35q-0"
18
+ })`display:inline-flex;`, Button = forwardRef(function(t0, ref) {
19
+ const $ = c(22);
20
+ let paddingLeft, paddingY, rest, t1, t2, t3, tooltipProps;
21
+ $[0] !== t0 ? ({
22
+ size: t1,
23
+ mode: t2,
24
+ paddingY,
25
+ paddingLeft,
26
+ tone: t3,
27
+ tooltipProps,
28
+ ...rest
29
+ } = t0, $[0] = t0, $[1] = paddingLeft, $[2] = paddingY, $[3] = rest, $[4] = t1, $[5] = t2, $[6] = t3, $[7] = tooltipProps) : (paddingLeft = $[1], paddingY = $[2], rest = $[3], t1 = $[4], t2 = $[5], t3 = $[6], tooltipProps = $[7]);
30
+ const size = t1 === void 0 ? "default" : t1, mode = t2 === void 0 ? "default" : t2, tone = t3 === void 0 ? "default" : t3, sizeProps = size === "default" ? DEFAULT_BUTTON_PROPS : LARGE_BUTTON_PROPS;
31
+ let t4;
32
+ $[8] !== mode || $[9] !== paddingLeft || $[10] !== paddingY || $[11] !== ref || $[12] !== rest || $[13] !== sizeProps || $[14] !== tone ? (t4 = /* @__PURE__ */ jsx(Button$1, { ...rest, ...sizeProps, paddingY, paddingLeft, ref, mode, tone }), $[8] = mode, $[9] = paddingLeft, $[10] = paddingY, $[11] = ref, $[12] = rest, $[13] = sizeProps, $[14] = tone, $[15] = t4) : t4 = $[15];
33
+ const children = t4;
34
+ if (tooltipProps) {
35
+ const t5 = tooltipProps?.content;
36
+ let t6;
37
+ $[16] !== children ? (t6 = /* @__PURE__ */ jsx(TooltipButtonWrapper, { children }), $[16] = children, $[17] = t6) : t6 = $[17];
38
+ let t7;
39
+ return $[18] !== t5 || $[19] !== t6 || $[20] !== tooltipProps ? (t7 = /* @__PURE__ */ jsx(Tooltip, { content: t5, portal: !0, ...tooltipProps, children: t6 }), $[18] = t5, $[19] = t6, $[20] = tooltipProps, $[21] = t7) : t7 = $[21], t7;
40
+ }
41
+ return children;
42
+ }), Dialog = forwardRef(function(t0, ref) {
43
+ const $ = c(23);
44
+ let bodyHeight, children, footer, props, t1, t2, zOffset;
45
+ $[0] !== t0 ? ({
46
+ animate: t1,
47
+ bodyHeight,
48
+ children,
49
+ footer,
50
+ padding: t2,
51
+ zOffset,
52
+ ...props
53
+ } = t0, $[0] = t0, $[1] = bodyHeight, $[2] = children, $[3] = footer, $[4] = props, $[5] = t1, $[6] = t2, $[7] = zOffset) : (bodyHeight = $[1], children = $[2], footer = $[3], props = $[4], t1 = $[5], t2 = $[6], zOffset = $[7]);
54
+ const animate = t1 === void 0 ? !0 : t1, padding = t2 === void 0 ? !0 : t2, {
55
+ t
56
+ } = useTranslation();
57
+ let t3;
58
+ $[8] !== footer || $[9] !== props || $[10] !== t ? (t3 = (footer?.confirmButton || footer?.cancelButton) && /* @__PURE__ */ jsxs(Flex, { width: "full", gap: 3, justify: "flex-end", padding: 3, align: "center", children: [
59
+ footer?.description && /* @__PURE__ */ jsx(Box, { flex: 1, paddingLeft: 1, children: /* @__PURE__ */ jsx(Text, { size: 1, muted: !0, children: footer.description }) }),
60
+ props.onClose && /* @__PURE__ */ jsx(Button$1, { mode: "bleed", padding: 2, text: t("common.dialog.cancel-button.text"), tone: "default", onClick: props.onClose, "data-testid": "cancel-button", ...footer.cancelButton }),
61
+ footer.confirmButton && /* @__PURE__ */ jsx(Button$1, { mode: "default", padding: 2, text: t("common.dialog.confirm-button.text"), tone: "critical", "data-testid": "confirm-button", ...footer.confirmButton })
62
+ ] }), $[8] = footer, $[9] = props, $[10] = t, $[11] = t3) : t3 = $[11];
63
+ const t4 = padding ? 4 : 0;
64
+ let t5;
65
+ $[12] !== bodyHeight || $[13] !== children || $[14] !== t4 ? (t5 = /* @__PURE__ */ jsx(Box, { height: bodyHeight, padding: t4, children }), $[12] = bodyHeight, $[13] = children, $[14] = t4, $[15] = t5) : t5 = $[15];
66
+ let t6;
67
+ return $[16] !== animate || $[17] !== props || $[18] !== ref || $[19] !== t3 || $[20] !== t5 || $[21] !== zOffset ? (t6 = /* @__PURE__ */ jsx(Dialog$1, { ...props, animate, zOffset, ref, footer: t3, children: t5 }), $[16] = animate, $[17] = props, $[18] = ref, $[19] = t3, $[20] = t5, $[21] = zOffset, $[22] = t6) : t6 = $[22], t6;
68
+ });
69
+ function ErrorBoundary(t0) {
70
+ const $ = c(9);
71
+ let onCatch, rest;
72
+ $[0] !== t0 ? ({
73
+ onCatch,
74
+ ...rest
75
+ } = t0, $[0] = t0, $[1] = onCatch, $[2] = rest) : (onCatch = $[1], rest = $[2]);
76
+ const source = useContext(SourceContext);
77
+ let t1;
78
+ $[3] !== onCatch || $[4] !== source ? (t1 = (t22) => {
79
+ const {
80
+ error: caughtError,
81
+ info: caughtInfo
82
+ } = t22, run = () => {
83
+ source?.onUncaughtError?.(caughtError, caughtInfo);
84
+ };
85
+ try {
86
+ run();
87
+ } catch (t3) {
88
+ const e = t3;
89
+ e.message = `Encountered an additional error when calling custom "onUncaughtError()": ${e.message}`, console.error(e);
90
+ }
91
+ onCatch?.({
92
+ error: caughtError,
93
+ info: caughtInfo
94
+ });
95
+ }, $[3] = onCatch, $[4] = source, $[5] = t1) : t1 = $[5];
96
+ const handleCatch = t1;
97
+ let t2;
98
+ return $[6] !== handleCatch || $[7] !== rest ? (t2 = /* @__PURE__ */ jsx(ErrorBoundary$1, { ...rest, onCatch: handleCatch }), $[6] = handleCatch, $[7] = rest, $[8] = t2) : t2 = $[8], t2;
99
+ }
100
+ const MenuButton = forwardRef(function(props, ref) {
101
+ const $ = c(6);
102
+ let t0;
103
+ $[0] !== props.popover ? (t0 = {
104
+ ...props.popover,
105
+ animate: !0
106
+ }, $[0] = props.popover, $[1] = t0) : t0 = $[1];
107
+ let t1;
108
+ return $[2] !== props || $[3] !== ref || $[4] !== t0 ? (t1 = /* @__PURE__ */ jsx(MenuButton$1, { ...props, ref, popover: t0 }), $[2] = props, $[3] = ref, $[4] = t0, $[5] = t1) : t1 = $[5], t1;
109
+ });
110
+ function Hotkeys(t0) {
111
+ const $ = c(12);
112
+ let props, t1, t2;
113
+ $[0] !== t0 ? ({
114
+ makePlatformAware: t1,
115
+ keys: t2,
116
+ ...props
117
+ } = t0, $[0] = t0, $[1] = props, $[2] = t1, $[3] = t2) : (props = $[1], t1 = $[2], t2 = $[3]);
118
+ const makePlatformAware = t1 === void 0 ? !0 : t1;
119
+ let t3;
120
+ $[4] !== t2 ? (t3 = t2 === void 0 ? [] : t2, $[4] = t2, $[5] = t3) : t3 = $[5];
121
+ const hotKeys = t3;
122
+ let t4;
123
+ $[6] !== hotKeys || $[7] !== makePlatformAware ? (t4 = makePlatformAware ? hotKeys.map(platformifyKey) : hotKeys, $[6] = hotKeys, $[7] = makePlatformAware, $[8] = t4) : t4 = $[8];
124
+ const keys = t4;
125
+ let t5;
126
+ return $[9] !== keys || $[10] !== props ? (t5 = /* @__PURE__ */ jsx(Hotkeys$1, { ...props, keys }), $[9] = keys, $[10] = props, $[11] = t5) : t5 = $[11], t5;
127
+ }
128
+ const IS_APPLE_DEVICE = typeof navigator > "u" || typeof navigator.platform != "string" ? !1 : /Mac|iPod|iPhone|iPad/.test(navigator.platform || "");
129
+ function platformifyKey(key) {
130
+ const lowerKey = key.toLowerCase();
131
+ return lowerKey === "alt" && IS_APPLE_DEVICE ? matchCase(key, "option") : lowerKey === "option" && !IS_APPLE_DEVICE ? matchCase(key, "alt") : key;
132
+ }
133
+ function matchCase(original, target) {
134
+ const orgLength = original.length;
135
+ return target.replace(/./g, (char, i) => i < orgLength && original[i] === original[i].toUpperCase() ? char.toUpperCase() : char);
136
+ }
137
+ const TOOLTIP_DELAY_PROPS = {
138
+ open: 400
139
+ }, TOOLTIP_SHARED_PROPS = {
140
+ animate: !0,
141
+ arrow: !1,
142
+ boundaryElement: null,
143
+ delay: TOOLTIP_DELAY_PROPS,
144
+ fallbackPlacements: ["bottom-start", "bottom-end", "top-start", "top-end"],
145
+ placement: "bottom",
146
+ portal: !0
147
+ }, Tooltip = forwardRef(function(props, ref) {
148
+ const $ = c(19);
149
+ let content, hotkeys, rest;
150
+ if ($[0] !== props ? ({
151
+ content,
152
+ hotkeys,
153
+ ...rest
154
+ } = props, $[0] = props, $[1] = content, $[2] = hotkeys, $[3] = rest) : (content = $[1], hotkeys = $[2], rest = $[3]), typeof content == "string") {
155
+ let t02;
156
+ $[4] !== content ? (t02 = content && /* @__PURE__ */ jsx(Box, { flex: 1, padding: 1, children: /* @__PURE__ */ jsx(Text, { size: 1, children: content }) }), $[4] = content, $[5] = t02) : t02 = $[5];
157
+ let t1;
158
+ $[6] !== hotkeys ? (t1 = hotkeys && /* @__PURE__ */ jsx(Box, { flex: "none", children: /* @__PURE__ */ jsx(Hotkeys, { keys: hotkeys }) }), $[6] = hotkeys, $[7] = t1) : t1 = $[7];
159
+ let t2;
160
+ $[8] !== t02 || $[9] !== t1 ? (t2 = /* @__PURE__ */ jsxs(Flex, { align: "center", children: [
161
+ t02,
162
+ t1
163
+ ] }), $[8] = t02, $[9] = t1, $[10] = t2) : t2 = $[10];
164
+ let t3;
165
+ return $[11] !== ref || $[12] !== rest || $[13] !== t2 ? (t3 = /* @__PURE__ */ jsx(Tooltip$1, { ...TOOLTIP_SHARED_PROPS, content: t2, padding: 1, ref, ...rest }), $[11] = ref, $[12] = rest, $[13] = t2, $[14] = t3) : t3 = $[14], t3;
166
+ }
167
+ let t0;
168
+ return $[15] !== content || $[16] !== ref || $[17] !== rest ? (t0 = /* @__PURE__ */ jsx(Tooltip$1, { ...TOOLTIP_SHARED_PROPS, content, ref, ...rest }), $[15] = content, $[16] = ref, $[17] = rest, $[18] = t0) : t0 = $[18], t0;
169
+ }), FONT_SIZE = 1, SUBTITLE_FONT_SIZE = 0, SubtitleText = styled(Text).withConfig({
170
+ displayName: "SubtitleText",
171
+ componentId: "sc-1sm0vyt-0"
172
+ })`margin-top:2px;`, PreviewWrapper = styled(Box).withConfig({
173
+ displayName: "PreviewWrapper",
174
+ componentId: "sc-1sm0vyt-1"
175
+ })`height:25px;width:25px;overflow:hidden;`, MenuItem = forwardRef(function(t0, ref) {
176
+ const $ = c(49);
177
+ let Icon, IconRight, __unstable_space, __unstable_subtitle, badgeText, childrenProp, disabled, hotkeys, renderMenuItem, rest, t1, text, tooltipProps;
178
+ $[0] !== t0 ? ({
179
+ badgeText,
180
+ children: childrenProp,
181
+ disabled,
182
+ hotkeys,
183
+ icon: Icon,
184
+ iconRight: IconRight,
185
+ preview: t1,
186
+ renderMenuItem,
187
+ text,
188
+ tooltipProps,
189
+ __unstable_subtitle,
190
+ __unstable_space,
191
+ ...rest
192
+ } = t0, $[0] = t0, $[1] = Icon, $[2] = IconRight, $[3] = __unstable_space, $[4] = __unstable_subtitle, $[5] = badgeText, $[6] = childrenProp, $[7] = disabled, $[8] = hotkeys, $[9] = renderMenuItem, $[10] = rest, $[11] = t1, $[12] = text, $[13] = tooltipProps) : (Icon = $[1], IconRight = $[2], __unstable_space = $[3], __unstable_subtitle = $[4], badgeText = $[5], childrenProp = $[6], disabled = $[7], hotkeys = $[8], renderMenuItem = $[9], rest = $[10], t1 = $[11], text = $[12], tooltipProps = $[13]);
193
+ const preview = t1 === void 0 ? null : t1;
194
+ let t2;
195
+ $[14] !== __unstable_space || $[15] !== disabled || $[16] !== preview ? (t2 = preview && /* @__PURE__ */ jsx(PreviewWrapper, { style: {
196
+ opacity: disabled ? 0.25 : void 0
197
+ }, paddingRight: __unstable_space ? 1 : 0, children: /* @__PURE__ */ jsx(Flex, { align: "center", height: "fill", justify: "center", children: preview }) }), $[14] = __unstable_space, $[15] = disabled, $[16] = preview, $[17] = t2) : t2 = $[17];
198
+ let t3;
199
+ $[18] !== Icon ? (t3 = Icon && /* @__PURE__ */ jsx(Box, { paddingRight: 1, children: /* @__PURE__ */ jsxs(Text, { size: FONT_SIZE, children: [
200
+ isValidElement(Icon) && Icon,
201
+ isValidElementType(Icon) && /* @__PURE__ */ jsx(Icon, {})
202
+ ] }) }), $[18] = Icon, $[19] = t3) : t3 = $[19];
203
+ let t4;
204
+ $[20] !== __unstable_subtitle || $[21] !== text ? (t4 = text && /* @__PURE__ */ jsxs(Stack, { flex: 1, space: __unstable_subtitle ? 1 : 2, children: [
205
+ /* @__PURE__ */ jsx(Text, { size: FONT_SIZE, textOverflow: "ellipsis", weight: "medium", children: text }),
206
+ __unstable_subtitle && /* @__PURE__ */ jsx(SubtitleText, { size: SUBTITLE_FONT_SIZE, textOverflow: "ellipsis", weight: "medium", muted: !0, children: __unstable_subtitle })
207
+ ] }), $[20] = __unstable_subtitle, $[21] = text, $[22] = t4) : t4 = $[22];
208
+ let t5;
209
+ $[23] !== IconRight || $[24] !== badgeText || $[25] !== hotkeys ? (t5 = (badgeText || hotkeys || IconRight) && /* @__PURE__ */ jsxs(Flex, { align: "center", gap: 3, marginLeft: 3, children: [
210
+ hotkeys && /* @__PURE__ */ jsx(Hotkeys, { keys: hotkeys, style: {
211
+ marginTop: -4,
212
+ marginBottom: -4
213
+ } }),
214
+ badgeText && /* @__PURE__ */ jsx(Badge, { fontSize: 0, style: {
215
+ marginTop: -4,
216
+ marginBottom: -4
217
+ }, children: badgeText }),
218
+ IconRight && /* @__PURE__ */ jsxs(Text, { size: FONT_SIZE, children: [
219
+ isValidElement(IconRight) && IconRight,
220
+ isValidElementType(IconRight) && /* @__PURE__ */ jsx(IconRight, {})
221
+ ] })
222
+ ] }), $[23] = IconRight, $[24] = badgeText, $[25] = hotkeys, $[26] = t5) : t5 = $[26];
223
+ let t6;
224
+ $[27] !== t2 || $[28] !== t3 || $[29] !== t4 || $[30] !== t5 ? (t6 = /* @__PURE__ */ jsxs(Flex, { align: "center", gap: 2, children: [
225
+ t2,
226
+ t3,
227
+ t4,
228
+ t5
229
+ ] }), $[27] = t2, $[28] = t3, $[29] = t4, $[30] = t5, $[31] = t6) : t6 = $[31];
230
+ const menuItemContent = t6, t7 = preview ? 1 : 3, t8 = preview ? 1 : 3;
231
+ let t9;
232
+ $[32] !== childrenProp || $[33] !== menuItemContent || $[34] !== renderMenuItem ? (t9 = typeof childrenProp > "u" && typeof renderMenuItem == "function" ? renderMenuItem(menuItemContent) : menuItemContent, $[32] = childrenProp, $[33] = menuItemContent, $[34] = renderMenuItem, $[35] = t9) : t9 = $[35];
233
+ let t10;
234
+ $[36] !== disabled || $[37] !== ref || $[38] !== rest || $[39] !== t7 || $[40] !== t8 || $[41] !== t9 ? (t10 = /* @__PURE__ */ jsx(MenuItem$1, { disabled, paddingLeft: t7, paddingRight: 3, paddingY: t8, ref, ...rest, children: t9 }), $[36] = disabled, $[37] = ref, $[38] = rest, $[39] = t7, $[40] = t8, $[41] = t9, $[42] = t10) : t10 = $[42];
235
+ const children = t10;
236
+ if (tooltipProps) {
237
+ const t11 = tooltipProps?.content;
238
+ let t12;
239
+ $[43] !== children ? (t12 = /* @__PURE__ */ jsx("div", { children }), $[43] = children, $[44] = t12) : t12 = $[44];
240
+ let t13;
241
+ return $[45] !== t11 || $[46] !== t12 || $[47] !== tooltipProps ? (t13 = /* @__PURE__ */ jsx(Tooltip, { content: t11, portal: !0, ...tooltipProps, children: t12 }), $[45] = t11, $[46] = t12, $[47] = tooltipProps, $[48] = t13) : t13 = $[48], t13;
242
+ }
243
+ return children;
244
+ }), Popover = forwardRef(function(props, ref) {
245
+ const $ = c(7);
246
+ let restProps, t0;
247
+ $[0] !== props ? ({
248
+ animate: t0,
249
+ ...restProps
250
+ } = props, $[0] = props, $[1] = restProps, $[2] = t0) : (restProps = $[1], t0 = $[2]);
251
+ const animate = t0 === void 0 ? !0 : t0;
252
+ let t1;
253
+ return $[3] !== animate || $[4] !== ref || $[5] !== restProps ? (t1 = /* @__PURE__ */ jsx(Popover$1, { ...restProps, animate, ref }), $[3] = animate, $[4] = ref, $[5] = restProps, $[6] = t1) : t1 = $[6], t1;
254
+ }), Tab = forwardRef(function(t0, ref) {
255
+ const $ = c(7);
256
+ let props, t1;
257
+ $[0] !== t0 ? ({
258
+ tone: t1,
259
+ ...props
260
+ } = t0, $[0] = t0, $[1] = props, $[2] = t1) : (props = $[1], t1 = $[2]);
261
+ const tone = t1 === void 0 ? "default" : t1;
262
+ let t2;
263
+ return $[3] !== props || $[4] !== ref || $[5] !== tone ? (t2 = /* @__PURE__ */ jsx(Tab$1, { ...props, muted: !0, padding: 2, ref, tone }), $[3] = props, $[4] = ref, $[5] = tone, $[6] = t2) : t2 = $[6], t2;
264
+ }), TooltipDelayGroupProvider = (props) => {
265
+ const $ = c(2);
266
+ let t0;
267
+ return $[0] !== props.children ? (t0 = /* @__PURE__ */ jsx(TooltipDelayGroupProvider$1, { delay: TOOLTIP_DELAY_PROPS, children: props.children }), $[0] = props.children, $[1] = t0) : t0 = $[1], t0;
268
+ }, BASE_URL = "https://www.sanity.io/docs/help/";
269
+ function generateHelpUrl(slug) {
270
+ return `${BASE_URL}${slug}`;
271
+ }
272
+ export {
273
+ Button,
274
+ Dialog,
275
+ ErrorBoundary,
276
+ Hotkeys,
277
+ MenuButton,
278
+ MenuItem,
279
+ Popover,
280
+ Tab,
281
+ Tooltip,
282
+ TooltipDelayGroupProvider,
283
+ generateHelpUrl
284
+ };
285
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/ui-components/button/Button.tsx","../../src/ui-components/dialog/Dialog.tsx","../../src/ui-components/errorBoundary/ErrorBoundary.tsx","../../src/ui-components/menuButton/MenuButton.tsx","../../src/core/components/Hotkeys.tsx","../../src/ui-components/tooltip/constants.ts","../../src/ui-components/tooltip/Tooltip.tsx","../../src/ui-components/menuItem/MenuItem.tsx","../../src/ui-components/popover/Popover.tsx","../../src/ui-components/tab/Tab.tsx","../../src/ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider.tsx","../../../../node_modules/.pnpm/@sanity+generate-help-url@4.0.0/node_modules/@sanity/generate-help-url/dist/index.js"],"sourcesContent":["/* eslint-disable no-restricted-imports */\n\nimport {Button as UIButton, type ButtonProps as UIButtonProps} from '@sanity/ui'\nimport {type ForwardedRef, forwardRef, type HTMLProps} from 'react'\nimport {styled} from 'styled-components'\n\nimport {Tooltip, type TooltipProps} from '..'\n\ntype BaseButtonProps = Pick<\n UIButtonProps,\n | 'as'\n | 'icon'\n | 'iconRight'\n | 'justify'\n | 'loading'\n | 'mode'\n | 'paddingY'\n | 'paddingLeft'\n | 'selected'\n | 'tone'\n | 'type'\n | 'width'\n> & {\n size?: 'default' | 'large'\n radius?: 'full'\n}\n\ntype ButtonWithText = {\n text: string\n tooltipProps?: TooltipProps | null\n icon?: UIButtonProps['icon']\n}\n\ntype IconButton = {\n text?: undefined\n icon?: UIButtonProps['icon']\n /**\n * When using a button with an icon, tooltipProps are required to enforce consistency in UI.\n */\n tooltipProps: TooltipProps | null\n}\n\n/** @internal */\nexport type ButtonProps = BaseButtonProps & (ButtonWithText | IconButton)\n\nconst LARGE_BUTTON_PROPS = {\n space: 3,\n padding: 3,\n}\nconst DEFAULT_BUTTON_PROPS = {\n space: 2,\n padding: 2,\n}\n\nconst TooltipButtonWrapper = styled.span`\n display: inline-flex;\n`\n/**\n * Customized Sanity UI <Button> with pre-defined layout options.\n *\n * @internal\n */\nexport const Button = forwardRef(function Button(\n {\n size = 'default',\n mode = 'default',\n paddingY,\n paddingLeft,\n tone = 'default',\n tooltipProps,\n ...rest\n }: ButtonProps & Omit<HTMLProps<HTMLButtonElement>, 'as' | 'size' | 'title'>,\n ref: ForwardedRef<HTMLButtonElement>,\n) {\n const sizeProps = size === 'default' ? DEFAULT_BUTTON_PROPS : LARGE_BUTTON_PROPS\n\n const children = (\n <UIButton\n {...rest}\n {...sizeProps}\n paddingY={paddingY}\n paddingLeft={paddingLeft}\n ref={ref}\n mode={mode}\n tone={tone}\n />\n )\n\n if (tooltipProps) {\n return (\n <Tooltip content={tooltipProps?.content} portal {...tooltipProps}>\n {/* This span is needed to make the tooltip work in disabled buttons */}\n <TooltipButtonWrapper>{children}</TooltipButtonWrapper>\n </Tooltip>\n )\n }\n\n return children\n})\n","/* eslint-disable no-restricted-imports */\nimport {\n Box,\n type BoxHeight,\n Button as UIButton,\n Dialog as UIDialog,\n type DialogProps as UIDialogProps,\n Flex,\n Text,\n} from '@sanity/ui'\nimport {type ComponentProps, forwardRef, type HTMLProps, type ReactNode, type Ref} from 'react'\nimport {useTranslation} from 'react-i18next'\n\n/** @internal */\nexport type DialogProps = Pick<\n UIDialogProps,\n | '__unstable_autoFocus'\n | '__unstable_hideCloseButton'\n | 'animate'\n | 'contentRef'\n | 'header'\n | 'id'\n | 'onActivate'\n | 'onClickOutside'\n | 'onClose'\n | 'portal'\n | 'position'\n | 'scheme'\n | 'width'\n> & {\n /**\n * Dialog body height.\n * Set this to 'fill' (i.e. 100%) if you want overflow body content to be contained\n * and not trigger dynamic border visibility.\n */\n bodyHeight?: BoxHeight\n children?: ReactNode\n zOffset?: number\n footer?: {\n cancelButton?: Omit<ComponentProps<typeof UIButton>, 'fontSize' | 'padding'>\n confirmButton?: Omit<ComponentProps<typeof UIButton>, 'fontSize' | 'padding'>\n /**\n * Description to be displayed side by side with the buttons.\n */\n description?: string\n }\n /**\n * If enabled, removes all default padding from dialog content.\n */\n padding?: boolean\n}\n\n/**\n * Customized Sanity UI <Dialog> that enforces an opinionated footer layout with a max of two buttons (confirm and cancel).\n *\n * @internal\n */\nexport const Dialog = forwardRef(function Dialog(\n {\n animate = true,\n bodyHeight,\n children,\n footer,\n padding = true,\n zOffset,\n ...props\n }: DialogProps & Pick<HTMLProps<HTMLDivElement>, 'onDragEnter' | 'onDrop'>,\n ref: Ref<HTMLDivElement>,\n) {\n const {t} = useTranslation()\n\n return (\n <UIDialog\n {...props}\n animate={animate}\n zOffset={zOffset}\n ref={ref}\n footer={\n (footer?.confirmButton || footer?.cancelButton) && (\n <Flex width=\"full\" gap={3} justify=\"flex-end\" padding={3} align=\"center\">\n {footer?.description && (\n <Box flex={1} paddingLeft={1}>\n <Text size={1} muted>\n {footer.description}\n </Text>\n </Box>\n )}\n {props.onClose && (\n <UIButton\n mode=\"bleed\"\n padding={2}\n text={t('common.dialog.cancel-button.text')}\n tone=\"default\"\n onClick={props.onClose}\n data-testid=\"cancel-button\"\n {...footer.cancelButton}\n />\n )}\n {footer.confirmButton && (\n <UIButton\n mode=\"default\"\n padding={2}\n text={t('common.dialog.confirm-button.text')}\n tone=\"critical\"\n data-testid=\"confirm-button\"\n {...footer.confirmButton}\n />\n )}\n </Flex>\n )\n }\n >\n <Box height={bodyHeight} padding={padding ? 4 : 0}>\n {children}\n </Box>\n </UIDialog>\n )\n})\n","import {\n // eslint-disable-next-line no-restricted-imports\n ErrorBoundary as UIErrorBoundary,\n type ErrorBoundaryProps as UIErrorBoundaryProps,\n} from '@sanity/ui'\nimport {useCallback, useContext} from 'react'\nimport {SourceContext} from 'sanity/_singletons'\n\nexport type ErrorBoundaryProps = UIErrorBoundaryProps\n\n/**\n * ErrorBoundary component that catches errors and uses onUncaughtError config property\n * It also calls the onCatch prop if it exists.\n */\nexport function ErrorBoundary({onCatch, ...rest}: ErrorBoundaryProps): React.JSX.Element {\n // Use context, because source could be undefined and we don't want to throw in that case\n const source = useContext(SourceContext)\n\n const handleCatch = useCallback(\n ({error: caughtError, info: caughtInfo}: {error: Error; info: React.ErrorInfo}) => {\n // Send the error to the source if it has an onUncaughtError method\n\n // Workaround for React Compiler not yet fully supporting try/catch/finally syntax\n const run = () => {\n source?.onUncaughtError?.(caughtError, caughtInfo)\n }\n try {\n run()\n } catch (e) {\n e.message = `Encountered an additional error when calling custom \"onUncaughtError()\": ${e.message}`\n console.error(e)\n }\n\n // Call the onCatch prop if it exists\n onCatch?.({error: caughtError, info: caughtInfo})\n },\n [source, onCatch],\n )\n\n return <UIErrorBoundary {...rest} onCatch={handleCatch} />\n}\n","/* eslint-disable no-restricted-imports */\nimport {\n MenuButton as UIMenuButton,\n type MenuButtonProps as UIMenuButtonProps,\n type PopoverProps,\n} from '@sanity/ui'\nimport {type ForwardedRef, forwardRef} from 'react'\n\n/** @internal */\nexport type MenuButtonProps = Omit<UIMenuButtonProps, 'popover'> & {\n popover?: Omit<PopoverProps, 'animate' | 'content' | 'open'>\n}\n\n/**\n * Customized Sanity UI <MenuButton> that enforces popover animation.\n *\n * @internal\n */\nexport const MenuButton = forwardRef(function MenuButton(\n props: MenuButtonProps,\n ref: ForwardedRef<HTMLButtonElement>,\n) {\n return (\n <UIMenuButton\n {...props}\n ref={ref}\n popover={{\n ...props.popover,\n animate: true,\n }}\n />\n )\n})\n","import {Hotkeys as UIHotkeys, type HotkeysProps as UIHotkeysProps} from '@sanity/ui'\nimport {type HTMLProps, type RefAttributes} from 'react'\n\n/**\n * Properties for the `Hotkeys` component.\n *\n * @public\n */\nexport type HotkeysProps = UIHotkeysProps & {\n /**\n * Whether to make the keys platform-aware (eg `alt` to `option` on Apple devices).\n *\n * @defaultValue true\n */\n makePlatformAware?: boolean\n} & Omit<HTMLProps<HTMLElement>, 'ref' | 'size' | 'as'> &\n RefAttributes<HTMLElement>\n\n/**\n * Renders given `keys` as \"keycaps\" visually.\n *\n * This is a wrapper around `@sanity/ui`'s `Hotkeys` component, which allows for altering keys\n * (eg `alt` to `option`) on Apple devices unless `makePlatformAware` is set to `false`.\n *\n * @param props - Properties to render with\n * @returns React element\n * @public\n */\nexport function Hotkeys({makePlatformAware = true, keys: hotKeys = [], ...props}: HotkeysProps) {\n const keys = makePlatformAware ? hotKeys.map(platformifyKey) : hotKeys\n return <UIHotkeys {...props} keys={keys} />\n}\n\n/**\n * @internal\n */\nconst IS_APPLE_DEVICE =\n typeof navigator === 'undefined' || typeof navigator.platform !== 'string'\n ? false\n : /Mac|iPod|iPhone|iPad/.test(navigator.platform || '')\n\n/**\n * Given key 'Alt', or 'Option' (case-insensitive), return the platform-appropriate key name\n * (eg 'Alt' on non-Apple devices, 'Option' on Apple devices).\n *\n * @param key - Key to platformify\n * @returns Platform-appropriate key name\n * @internal\n */\nfunction platformifyKey(key: string): string {\n const lowerKey = key.toLowerCase()\n\n if (lowerKey === 'alt' && IS_APPLE_DEVICE) {\n return matchCase(key, 'option')\n }\n\n if (lowerKey === 'option' && !IS_APPLE_DEVICE) {\n return matchCase(key, 'alt')\n }\n\n return key\n}\n\n/**\n * Apply the case (lowercase/uppercase) of `original` to `target`, character by character,\n * eg matching ALL CAPS, all lowercase or Mixed Case.\n *\n * @param original - The original string to match case of\n * @param target - The target string to apply case to\n * @returns Target string with case applied from original\n * @internal\n */\nfunction matchCase(original: string, target: string): string {\n const orgLength = original.length\n\n return target.replace(/./g, (char, i) => {\n // Replace character by character matching case of original\n // If running out of original, just return the target case as-is\n return i < orgLength && original[i] === original[i].toUpperCase() ? char.toUpperCase() : char\n })\n}\n","export const TOOLTIP_DELAY_PROPS = {\n open: 400,\n}\n","import {\n Box,\n Flex,\n type HotkeysProps,\n Text,\n // eslint-disable-next-line no-restricted-imports\n Tooltip as UITooltip,\n // eslint-disable-next-line no-restricted-imports\n type TooltipProps as UITooltipProps,\n} from '@sanity/ui'\nimport {type ForwardedRef, forwardRef} from 'react'\n\nimport {Hotkeys} from '../../core/components/Hotkeys'\nimport {TOOLTIP_DELAY_PROPS} from './constants'\n\n/** @internal */\n\nexport type TooltipProps = Omit<UITooltipProps, 'arrow' | 'padding' | 'shadow'> & {\n hotkeys?: HotkeysProps['keys']\n}\n\nconst TOOLTIP_SHARED_PROPS: UITooltipProps = {\n animate: true,\n arrow: false,\n boundaryElement: null,\n delay: TOOLTIP_DELAY_PROPS,\n fallbackPlacements: ['bottom-start', 'bottom-end', 'top-start', 'top-end'],\n placement: 'bottom',\n portal: true,\n}\n\n/**\n * Customized Sanity UI <Tooltip> with limited layout options and support for showing hotkeys.\n *\n * In just about all cases, its strongly recommended that you pass a string to the `content` prop.\n * This helps simplify i18n and encourages short and concise.\n *\n * Passing ReactNode values to `content` is supported, but discouraged.\n *\n * @internal\n */\nexport const Tooltip = forwardRef(function Tooltip(\n props: TooltipProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {content, hotkeys, ...rest} = props\n\n if (typeof content === 'string') {\n return (\n <UITooltip\n {...TOOLTIP_SHARED_PROPS}\n content={\n <Flex align=\"center\">\n {content && (\n <Box flex={1} padding={1}>\n <Text size={1}>{content}</Text>\n </Box>\n )}\n {hotkeys && (\n <Box flex=\"none\">\n <Hotkeys keys={hotkeys} />\n </Box>\n )}\n </Flex>\n }\n padding={1}\n ref={ref}\n {...rest}\n />\n )\n }\n\n return <UITooltip {...TOOLTIP_SHARED_PROPS} content={content} ref={ref} {...rest} />\n})\n","/* eslint-disable no-restricted-imports */\nimport {\n Badge,\n Box,\n Flex,\n MenuItem as UIMenuItem,\n type MenuItemProps as UIMenuItemProps,\n Stack,\n Text,\n} from '@sanity/ui'\nimport {forwardRef, type HTMLProps, isValidElement, type ReactNode, type Ref, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {Tooltip, type TooltipProps} from '..'\nimport {Hotkeys} from '../../core/components/Hotkeys'\n\nconst FONT_SIZE = 1\nconst SUBTITLE_FONT_SIZE = 0\n\n/* Using px value here to make title/subtitles align with icon */\nconst SubtitleText = styled(Text)`\n margin-top: 2px;\n`\n\n/** @internal */\nexport type MenuItemProps = Pick<\n UIMenuItemProps,\n 'as' | 'icon' | 'iconRight' | 'pressed' | 'selected' | 'tone' | 'hotkeys'\n> & {\n badgeText?: string\n /**\n * Usage of `children` is not supported, import `MenuItem` from `@sanity/ui` instead.\n */\n children?: undefined\n /**\n * Previews should be 25x25.\n */\n preview?: ReactNode\n /**\n * Optional render callback which receives menu item content.\n */\n renderMenuItem?: (menuItemContent: React.JSX.Element) => ReactNode\n text?: string\n tooltipProps?: TooltipProps | null\n /**\n * Optional subtitle prop for the menu item.\n * While not recommended, it is utilized for the workspace menu button.\n */\n __unstable_subtitle?: string\n /**\n * An optional property to adjust spacing in the preview between the icon and the text.\n * Not recommended, but is applied to the workspace menu button..\n */\n __unstable_space?: number\n}\n\nconst PreviewWrapper = styled(Box)`\n height: 25px;\n width: 25px;\n overflow: hidden;\n`\n\n/**\n * Customized Sanity UI <MenuItem> that restricts usage of `children` to encourage simple,\n * single line menu items.\n *\n * The workspace menu button needed a subtitle - hence, the StudioUI MenuIten now takes a subtitle prop.\n * This is only an escape hatch for the workspace menu button and is not recommended for general use.\n *\n * It also accepts a prop to attach tooltips as well as custom badges too.\n *\n * @internal\n */\nexport const MenuItem = forwardRef(function MenuItem(\n {\n badgeText,\n children: childrenProp,\n disabled,\n hotkeys,\n icon: Icon,\n iconRight: IconRight,\n preview = null,\n renderMenuItem,\n text,\n tooltipProps,\n __unstable_subtitle,\n __unstable_space,\n ...rest\n }: MenuItemProps &\n Omit<HTMLProps<HTMLDivElement>, 'as' | 'height' | 'ref' | 'selected' | 'tabIndex' | 'size'>,\n ref: Ref<HTMLDivElement>,\n) {\n const menuItemContent = useMemo(() => {\n return (\n <Flex align=\"center\" gap={2}>\n {preview && (\n <PreviewWrapper\n style={{opacity: disabled ? 0.25 : undefined}}\n paddingRight={__unstable_space ? 1 : 0}\n >\n <Flex align=\"center\" height=\"fill\" justify=\"center\">\n {preview}\n </Flex>\n </PreviewWrapper>\n )}\n {Icon && (\n <Box paddingRight={1}>\n <Text size={FONT_SIZE}>\n {isValidElement(Icon) && Icon}\n {isValidElementType(Icon) && <Icon />}\n </Text>\n </Box>\n )}\n {text && (\n <Stack flex={1} space={__unstable_subtitle ? 1 : 2}>\n <Text size={FONT_SIZE} textOverflow=\"ellipsis\" weight=\"medium\">\n {text}\n </Text>\n {__unstable_subtitle && (\n <SubtitleText size={SUBTITLE_FONT_SIZE} textOverflow=\"ellipsis\" weight=\"medium\" muted>\n {__unstable_subtitle}\n </SubtitleText>\n )}\n </Stack>\n )}\n {(badgeText || hotkeys || IconRight) && (\n <Flex align=\"center\" gap={3} marginLeft={3}>\n {hotkeys && <Hotkeys keys={hotkeys} style={{marginTop: -4, marginBottom: -4}} />}\n\n {badgeText && (\n <Badge fontSize={0} style={{marginTop: -4, marginBottom: -4}}>\n {badgeText}\n </Badge>\n )}\n\n {IconRight && (\n <Text size={FONT_SIZE}>\n {isValidElement(IconRight) && IconRight}\n {isValidElementType(IconRight) && <IconRight />}\n </Text>\n )}\n </Flex>\n )}\n </Flex>\n )\n }, [\n preview,\n disabled,\n __unstable_space,\n Icon,\n text,\n __unstable_subtitle,\n badgeText,\n hotkeys,\n IconRight,\n ])\n\n const children = (\n <UIMenuItem\n disabled={disabled}\n paddingLeft={preview ? 1 : 3}\n paddingRight={3}\n paddingY={preview ? 1 : 3}\n ref={ref}\n {...rest}\n >\n {typeof childrenProp === 'undefined' && typeof renderMenuItem === 'function'\n ? renderMenuItem(menuItemContent)\n : menuItemContent}\n </UIMenuItem>\n )\n\n if (tooltipProps) {\n return (\n <Tooltip content={tooltipProps?.content} portal {...tooltipProps}>\n {/* This div is needed to make the tooltip work in disabled menu items */}\n <div>{children}</div>\n </Tooltip>\n )\n }\n\n return children\n})\n","/* eslint-disable no-restricted-imports */\nimport {Popover as UIPopover, type PopoverProps as UIPopoverProps} from '@sanity/ui'\nimport {type ForwardedRef, forwardRef, type HTMLProps} from 'react'\n\n/** @internal */\nexport type PopoverProps = UIPopoverProps\n\n/**\n * Customized Sanity UI <Popover> that defaults to `animate=true`\n *\n * All Popovers in the studio should be animated by default\n * Can be overridden when nesting popovers to prevent AnimatePresence conflicts\n *\n * @internal\n */\nexport const Popover = forwardRef(function Popover(\n props: PopoverProps & Omit<HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {animate = true, ...restProps} = props\n return <UIPopover {...restProps} animate={animate} ref={ref} />\n})\n","/* eslint-disable no-restricted-imports */\nimport {Tab as UITab, type TabProps as UITabProps} from '@sanity/ui'\nimport {type ForwardedRef, forwardRef, type HTMLProps} from 'react'\n\n/**\n * @internal\n *\n * Padding and font sizes are fixed in Studio UI <Tab> components.\n */\nexport type TabProps = Pick<\n UITabProps,\n 'aria-controls' | 'focused' | 'icon' | 'id' | 'label' | 'selected' | 'tone'\n> & {\n /**\n * Icon right does't exist as a prop yet in Sanity UI <Tab> component.\n * But the Tab is at the end a button, and a button can have an icon right.\n * So we can use this prop to add an icon right to the Tab.\n * PR to update sanity ui https://github.com/sanity-io/ui/pull/2173\n */\n iconRight?: React.ReactNode\n}\n\n/**\n * Customized Sanity UI <Tab> with limited layout options.\n *\n * @internal\n */\nexport const Tab = forwardRef(function Tab(\n {tone = 'default', ...props}: TabProps & Omit<HTMLProps<HTMLButtonElement>, 'as' | 'size'>,\n ref: ForwardedRef<HTMLButtonElement>,\n) {\n return <UITab {...props} muted padding={2} ref={ref} tone={tone} />\n})\n","/* eslint-disable no-restricted-imports */\nimport {\n TooltipDelayGroupProvider as UITooltipDelayGroupProvider,\n type TooltipDelayGroupProviderProps as UITooltipDelayGroupProviderProps,\n} from '@sanity/ui'\n\nimport {TOOLTIP_DELAY_PROPS} from '../tooltip/constants'\n\n/** @internal */\nexport type TooltipDelayGroupProviderProps = Omit<UITooltipDelayGroupProviderProps, 'delay'>\n\n/**\n * Opinionated Sanity UI <TooltipDelayGroupProvider> which forces the same delay to all tooltips.\n *\n * @internal\n */\nexport const TooltipDelayGroupProvider = (props: TooltipDelayGroupProviderProps) => {\n return (\n <UITooltipDelayGroupProvider delay={TOOLTIP_DELAY_PROPS}>\n {props.children}\n </UITooltipDelayGroupProvider>\n )\n}\n","const BASE_URL = \"https://www.sanity.io/docs/help/\";\nfunction generateHelpUrl(slug) {\n return `${BASE_URL}${slug}`;\n}\nexport {\n generateHelpUrl\n};\n//# sourceMappingURL=index.js.map\n"],"names":["LARGE_BUTTON_PROPS","space","padding","DEFAULT_BUTTON_PROPS","TooltipButtonWrapper","styled","span","withConfig","displayName","componentId","Button","forwardRef","t0","ref","$","_c","paddingLeft","paddingY","rest","t1","t2","t3","tooltipProps","size","mode","tone","undefined","sizeProps","t4","UIButton","children","t5","content","t6","t7","Dialog","bodyHeight","footer","props","zOffset","animate","t","useTranslation","confirmButton","cancelButton","description","onClose","UIDialog","ErrorBoundary","onCatch","source","useContext","SourceContext","error","caughtError","info","caughtInfo","run","onUncaughtError","e","message","console","handleCatch","UIErrorBoundary","MenuButton","popover","UIMenuButton","Hotkeys","makePlatformAware","keys","hotKeys","map","platformifyKey","UIHotkeys","IS_APPLE_DEVICE","navigator","platform","test","key","lowerKey","toLowerCase","matchCase","original","target","orgLength","length","replace","char","i","toUpperCase","TOOLTIP_DELAY_PROPS","open","TOOLTIP_SHARED_PROPS","arrow","boundaryElement","delay","fallbackPlacements","placement","portal","Tooltip","hotkeys","UITooltip","FONT_SIZE","SUBTITLE_FONT_SIZE","SubtitleText","Text","PreviewWrapper","Box","MenuItem","Icon","IconRight","__unstable_space","__unstable_subtitle","badgeText","childrenProp","disabled","renderMenuItem","text","icon","iconRight","preview","opacity","isValidElement","isValidElementType","marginTop","marginBottom","menuItemContent","t8","t9","t10","UIMenuItem","t11","t12","t13","Popover","restProps","UIPopover","Tab","UITab","TooltipDelayGroupProvider","UITooltipDelayGroupProvider","BASE_URL","generateHelpUrl","slug"],"mappings":"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","x_google_ignoreList":[11]}
@@ -0,0 +1,105 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { c } from "react/compiler-runtime";
3
+ import { useState, isValidElement } from "react";
4
+ import { isValidElementType } from "react-is";
5
+ import { useI18nText } from "sanity";
6
+ import { Box } from "@sanity/ui";
7
+ import { Button } from "./index.js";
8
+ import "react-i18next";
9
+ import "sanity/_singletons";
10
+ import "./StructureToolProvider.js";
11
+ import { usePane, useStructureTool, PaneHeader, PaneHeaderActions, BackLink, Pane } from "./structureTool.js";
12
+ import { ArrowLeftIcon } from "@sanity/icons";
13
+ import "sanity/router";
14
+ import "@sanity/util/paths";
15
+ import "lodash-es/omit.js";
16
+ import { styled } from "styled-components";
17
+ const Root = styled(Box).withConfig({
18
+ displayName: "Root",
19
+ componentId: "sc-s75qv0-0"
20
+ })`position:relative;`;
21
+ function UserComponentPaneContent(props) {
22
+ const $ = c(3), {
23
+ children
24
+ } = props, {
25
+ collapsed
26
+ } = usePane();
27
+ let t0;
28
+ return $[0] !== children || $[1] !== collapsed ? (t0 = /* @__PURE__ */ jsx(Root, { hidden: collapsed, height: "fill", overflow: "auto", children }), $[0] = children, $[1] = collapsed, $[2] = t0) : t0 = $[2], t0;
29
+ }
30
+ function UserComponentPaneHeader(props) {
31
+ const $ = c(11), {
32
+ actionHandlers,
33
+ index,
34
+ menuItems,
35
+ menuItemGroups,
36
+ title
37
+ } = props, {
38
+ features
39
+ } = useStructureTool();
40
+ if (!menuItems?.length && !title)
41
+ return null;
42
+ let t0;
43
+ $[0] !== actionHandlers || $[1] !== menuItemGroups || $[2] !== menuItems ? (t0 = /* @__PURE__ */ jsx(PaneHeaderActions, { menuItems, menuItemGroups, actionHandlers }), $[0] = actionHandlers, $[1] = menuItemGroups, $[2] = menuItems, $[3] = t0) : t0 = $[3];
44
+ let t1;
45
+ $[4] !== features.backButton || $[5] !== index ? (t1 = features.backButton && index > 0 && /* @__PURE__ */ jsx(Button, { as: BackLink, "data-as": "a", icon: ArrowLeftIcon, mode: "bleed", tooltipProps: {
46
+ content: "Back"
47
+ } }), $[4] = features.backButton, $[5] = index, $[6] = t1) : t1 = $[6];
48
+ let t2;
49
+ return $[7] !== t0 || $[8] !== t1 || $[9] !== title ? (t2 = /* @__PURE__ */ jsx(PaneHeader, { actions: t0, backButton: t1, title }), $[7] = t0, $[8] = t1, $[9] = title, $[10] = t2) : t2 = $[10], t2;
50
+ }
51
+ function UserComponentPane(props) {
52
+ const $ = c(37);
53
+ let index, pane, paneKey, restProps;
54
+ $[0] !== props ? ({
55
+ index,
56
+ pane,
57
+ paneKey,
58
+ ...restProps
59
+ } = props, $[0] = props, $[1] = index, $[2] = pane, $[3] = paneKey, $[4] = restProps) : (index = $[1], pane = $[2], paneKey = $[3], restProps = $[4]);
60
+ let UserComponent, child, menuItemGroups, menuItems, restPane;
61
+ if ($[5] !== pane) {
62
+ const {
63
+ child: t02,
64
+ component: t12,
65
+ menuItems: t22,
66
+ menuItemGroups: t32,
67
+ type: _unused,
68
+ ...t42
69
+ } = pane;
70
+ child = t02, UserComponent = t12, menuItems = t22, menuItemGroups = t32, restPane = t42, $[5] = pane, $[6] = UserComponent, $[7] = child, $[8] = menuItemGroups, $[9] = menuItems, $[10] = restPane;
71
+ } else
72
+ UserComponent = $[6], child = $[7], menuItemGroups = $[8], menuItems = $[9], restPane = $[10];
73
+ const [ref, setRef] = useState(null), {
74
+ title: t0
75
+ } = useI18nText(pane), title = t0 === void 0 ? "" : t0;
76
+ let componentProps, key;
77
+ $[11] !== restPane || $[12] !== restProps ? ({
78
+ key,
79
+ ...componentProps
80
+ } = {
81
+ ...restProps,
82
+ ...restPane
83
+ }, $[11] = restPane, $[12] = restProps, $[13] = componentProps, $[14] = key) : (componentProps = $[13], key = $[14]);
84
+ const t1 = ref?.actionHandlers;
85
+ let t2;
86
+ $[15] !== index || $[16] !== menuItemGroups || $[17] !== menuItems || $[18] !== t1 || $[19] !== title ? (t2 = /* @__PURE__ */ jsx(UserComponentPaneHeader, { actionHandlers: t1, index, menuItems, menuItemGroups, title }), $[15] = index, $[16] = menuItemGroups, $[17] = menuItems, $[18] = t1, $[19] = title, $[20] = t2) : t2 = $[20];
87
+ let t3;
88
+ $[21] !== UserComponent || $[22] !== child || $[23] !== componentProps || $[24] !== key || $[25] !== paneKey ? (t3 = isValidElementType(UserComponent) && /* @__PURE__ */ jsx(UserComponent, { ...componentProps, ref: setRef, child, paneKey }, key), $[21] = UserComponent, $[22] = child, $[23] = componentProps, $[24] = key, $[25] = paneKey, $[26] = t3) : t3 = $[26];
89
+ let t4;
90
+ $[27] !== UserComponent ? (t4 = isValidElement(UserComponent) && UserComponent, $[27] = UserComponent, $[28] = t4) : t4 = $[28];
91
+ let t5;
92
+ $[29] !== t3 || $[30] !== t4 ? (t5 = /* @__PURE__ */ jsxs(UserComponentPaneContent, { children: [
93
+ t3,
94
+ t4
95
+ ] }), $[29] = t3, $[30] = t4, $[31] = t5) : t5 = $[31];
96
+ let t6;
97
+ return $[32] !== paneKey || $[33] !== restProps.isSelected || $[34] !== t2 || $[35] !== t5 ? (t6 = /* @__PURE__ */ jsxs(Pane, { id: paneKey, minWidth: 320, selected: restProps.isSelected, children: [
98
+ t2,
99
+ t5
100
+ ] }), $[32] = paneKey, $[33] = restProps.isSelected, $[34] = t2, $[35] = t5, $[36] = t6) : t6 = $[36], t6;
101
+ }
102
+ export {
103
+ UserComponentPane as default
104
+ };
105
+ //# sourceMappingURL=index2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.js","sources":["../../src/structure/panes/userComponent/UserComponentPaneContent.tsx","../../src/structure/panes/userComponent/UserComponentPaneHeader.tsx","../../src/structure/panes/userComponent/UserComponentPane.tsx"],"sourcesContent":["import {Box} from '@sanity/ui'\nimport {type ReactNode} from 'react'\nimport {styled} from 'styled-components'\n\nimport {usePane} from '../../components'\n\ninterface UserComponentPaneContentProps {\n children: ReactNode\n}\n\nconst Root = styled(Box)`\n position: relative;\n`\n\nexport function UserComponentPaneContent(props: UserComponentPaneContentProps) {\n const {children} = props\n const {collapsed} = usePane()\n\n return (\n <Root hidden={collapsed} height=\"fill\" overflow=\"auto\">\n {children}\n </Root>\n )\n}\n","import {ArrowLeftIcon} from '@sanity/icons'\n\nimport {Button} from '../../../ui-components'\nimport {BackLink, PaneHeader, PaneHeaderActions} from '../../components'\nimport {\n type PaneMenuItem,\n type PaneMenuItemGroup,\n type StructureToolPaneActionHandler,\n} from '../../types'\nimport {useStructureTool} from '../../useStructureTool'\n\ninterface UserComponentPaneHeaderProps {\n actionHandlers?: Record<string, StructureToolPaneActionHandler>\n index: number\n menuItems?: PaneMenuItem[]\n menuItemGroups?: PaneMenuItemGroup[]\n title: string\n}\n\nexport function UserComponentPaneHeader(props: UserComponentPaneHeaderProps) {\n const {actionHandlers, index, menuItems, menuItemGroups, title} = props\n const {features} = useStructureTool()\n\n if (!menuItems?.length && !title) {\n return null\n }\n\n return (\n <PaneHeader\n actions={\n <PaneHeaderActions\n menuItems={menuItems}\n menuItemGroups={menuItemGroups}\n actionHandlers={actionHandlers}\n />\n }\n backButton={\n features.backButton &&\n index > 0 && (\n <Button\n as={BackLink}\n data-as=\"a\"\n icon={ArrowLeftIcon}\n mode=\"bleed\"\n tooltipProps={{content: 'Back'}}\n />\n )\n }\n title={title}\n />\n )\n}\n","import {isValidElement, useState} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {useI18nText} from 'sanity'\n\nimport {Pane} from '../../components'\nimport {type StructureToolPaneActionHandler} from '../../types'\nimport {type BaseStructureToolPaneProps} from '../types'\nimport {UserComponentPaneContent} from './UserComponentPaneContent'\nimport {UserComponentPaneHeader} from './UserComponentPaneHeader'\n\ntype UserComponentPaneProps = BaseStructureToolPaneProps<'component'>\n\n/**\n * @internal\n */\nexport function UserComponentPane(props: UserComponentPaneProps) {\n const {index, pane, paneKey, ...restProps} = props\n const {\n child,\n component: UserComponent,\n menuItems,\n menuItemGroups,\n type: _unused,\n ...restPane\n } = pane\n const [ref, setRef] = useState<{\n actionHandlers?: Record<string, StructureToolPaneActionHandler>\n } | null>(null)\n const {title = ''} = useI18nText(pane)\n\n const {key, ...componentProps} = {...restProps, ...restPane}\n\n return (\n <Pane id={paneKey} minWidth={320} selected={restProps.isSelected}>\n <UserComponentPaneHeader\n actionHandlers={ref?.actionHandlers}\n index={index}\n menuItems={menuItems}\n menuItemGroups={menuItemGroups}\n title={title}\n />\n\n <UserComponentPaneContent>\n {isValidElementType(UserComponent) && (\n <UserComponent\n key={key}\n {...componentProps}\n // NOTE: here we're utilizing the function form of refs so setting\n // the ref causes a re-render for `UserComponentPaneHeader`\n ref={setRef as any}\n child={child}\n paneKey={paneKey}\n />\n )}\n {isValidElement(UserComponent) && UserComponent}\n </UserComponentPaneContent>\n </Pane>\n )\n}\n"],"names":["Root","styled","Box","withConfig","displayName","componentId","UserComponentPaneContent","props","$","_c","children","collapsed","usePane","t0","UserComponentPaneHeader","actionHandlers","index","menuItems","menuItemGroups","title","features","useStructureTool","length","t1","backButton","BackLink","ArrowLeftIcon","content","t2","UserComponentPane","pane","paneKey","restProps","UserComponent","child","restPane","component","t3","type","_unused","t4","ref","setRef","useState","useI18nText","undefined","componentProps","key","isValidElementType","isValidElement","t5","t6","isSelected"],"mappings":"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"}
@@ -0,0 +1,139 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { c } from "react/compiler-runtime";
3
+ import { Box, Text } from "@sanity/ui";
4
+ import { useGetI18nText, CommandList, useI18nText } from "sanity";
5
+ import "react";
6
+ import { Button } from "./index.js";
7
+ import "react-i18next";
8
+ import "sanity/_singletons";
9
+ import "./StructureToolProvider.js";
10
+ import { usePaneLayout, PaneContent, PaneItem, useStructureTool, usePane, PaneHeader, PaneHeaderActions, BackLink, Pane, _DEBUG } from "./structureTool.js";
11
+ import { ArrowLeftIcon } from "@sanity/icons";
12
+ import "sanity/router";
13
+ import "@sanity/util/paths";
14
+ import "lodash-es/omit.js";
15
+ import { styled } from "styled-components";
16
+ const DividerContainer = styled(Box).withConfig({
17
+ displayName: "DividerContainer",
18
+ componentId: "sc-j4cdg4-0"
19
+ })`display:flex;align-items:center;gap:1rem;margin:0.75rem 0 0.25rem 0;`, Divider = styled.hr.withConfig({
20
+ displayName: "Divider",
21
+ componentId: "sc-j4cdg4-1"
22
+ })`flex:1;background-color:var(--card-border-color);height:1px;margin:0;border:none;`, DividerTitle = styled(Text).withConfig({
23
+ displayName: "DividerTitle",
24
+ componentId: "sc-j4cdg4-2"
25
+ })`padding-bottom:0.75rem;padding-left:0.5rem;padding-right:0.5rem;`;
26
+ function DividerItem(t0) {
27
+ const $ = c(5), {
28
+ item
29
+ } = t0, {
30
+ title: dividerTitle
31
+ } = useI18nText(item);
32
+ let t1;
33
+ $[0] !== dividerTitle ? (t1 = /* @__PURE__ */ jsx(DividerTitle, { weight: "semibold", muted: !0, size: 1, children: dividerTitle }), $[0] = dividerTitle, $[1] = t1) : t1 = $[1];
34
+ let t2;
35
+ $[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t2 = /* @__PURE__ */ jsx(Divider, {}), $[2] = t2) : t2 = $[2];
36
+ let t3;
37
+ return $[3] !== t1 ? (t3 = /* @__PURE__ */ jsxs(DividerContainer, { children: [
38
+ t1,
39
+ t2
40
+ ] }), $[3] = t1, $[4] = t3) : t3 = $[4], t3;
41
+ }
42
+ function ListPaneContent(props) {
43
+ const $ = c(20), {
44
+ childItemId,
45
+ items,
46
+ isActive,
47
+ layout,
48
+ showIcons,
49
+ title
50
+ } = props, {
51
+ collapsed: layoutCollapsed
52
+ } = usePaneLayout();
53
+ let t0;
54
+ $[0] !== items ? (t0 = items?.filter(_temp), $[0] = items, $[1] = t0) : t0 = $[1];
55
+ const getI18nText = useGetI18nText(t0);
56
+ let t1;
57
+ $[2] !== items ? (t1 = (itemIndex) => items?.find((_, i) => i === itemIndex)?.type === "divider", $[2] = items, $[3] = t1) : t1 = $[3];
58
+ const getItemDisabled = t1;
59
+ let t2;
60
+ $[4] !== showIcons ? (t2 = (item_0) => item_0.displayOptions?.showIcon ?? showIcons ?? !1, $[4] = showIcons, $[5] = t2) : t2 = $[5];
61
+ const shouldShowIconForItem = t2;
62
+ let t3;
63
+ $[6] !== childItemId || $[7] !== getI18nText || $[8] !== isActive || $[9] !== layout || $[10] !== shouldShowIconForItem ? (t3 = (item_1, ctx) => {
64
+ const {
65
+ virtualIndex: itemIndex_0
66
+ } = ctx;
67
+ if (item_1.type === "divider")
68
+ return /* @__PURE__ */ jsx(Box, { marginBottom: 1, children: item_1.title ? /* @__PURE__ */ jsx(DividerItem, { item: item_1 }) : /* @__PURE__ */ jsx(Divider, {}) }, `divider-${itemIndex_0}`);
69
+ const pressed = !isActive && childItemId === item_1.id, selected = isActive && childItemId === item_1.id, value = item_1._id && item_1.schemaType ? {
70
+ _id: item_1._id,
71
+ _type: item_1.schemaType.name,
72
+ title: item_1.title
73
+ } : void 0;
74
+ return /* @__PURE__ */ jsx(PaneItem, { icon: shouldShowIconForItem(item_1) ? item_1.icon : !1, id: item_1.id, layout, marginBottom: 1, pressed, schemaType: item_1.schemaType, selected, title: getI18nText(item_1).title, value }, item_1.id);
75
+ }, $[6] = childItemId, $[7] = getI18nText, $[8] = isActive, $[9] = layout, $[10] = shouldShowIconForItem, $[11] = t3) : t3 = $[11];
76
+ const renderItem = t3, t4 = layoutCollapsed ? "hidden" : "auto";
77
+ let t5;
78
+ $[12] !== getItemDisabled || $[13] !== items || $[14] !== renderItem || $[15] !== title ? (t5 = items && items.length > 0 && /* @__PURE__ */ jsx(CommandList, { activeItemDataAttr: "data-hovered", ariaLabel: title, canReceiveFocus: !0, getItemDisabled, itemHeight: 51, items, onlyShowSelectionWhenActive: !0, paddingBottom: 1, paddingX: 3, renderItem, wrapAround: !1 }), $[12] = getItemDisabled, $[13] = items, $[14] = renderItem, $[15] = title, $[16] = t5) : t5 = $[16];
79
+ let t6;
80
+ return $[17] !== t4 || $[18] !== t5 ? (t6 = /* @__PURE__ */ jsx(PaneContent, { overflow: t4, children: t5 }), $[17] = t4, $[18] = t5, $[19] = t6) : t6 = $[19], t6;
81
+ }
82
+ function _temp(item) {
83
+ return item.type !== "divider";
84
+ }
85
+ const ListPaneHeader = (t0) => {
86
+ const $ = c(11), {
87
+ index,
88
+ menuItems,
89
+ menuItemGroups,
90
+ title
91
+ } = t0, {
92
+ features
93
+ } = useStructureTool(), {
94
+ collapsed,
95
+ isLast
96
+ } = usePane(), tabIndex = isLast && !collapsed ? -1 : 0;
97
+ let t1;
98
+ $[0] !== menuItemGroups || $[1] !== menuItems ? (t1 = /* @__PURE__ */ jsx(PaneHeaderActions, { menuItems, menuItemGroups }), $[0] = menuItemGroups, $[1] = menuItems, $[2] = t1) : t1 = $[2];
99
+ let t2;
100
+ $[3] !== features.backButton || $[4] !== index ? (t2 = features.backButton && index > 0 && /* @__PURE__ */ jsx(Button, { as: BackLink, "data-as": "a", icon: ArrowLeftIcon, mode: "bleed", tooltipProps: {
101
+ content: "Back"
102
+ } }), $[3] = features.backButton, $[4] = index, $[5] = t2) : t2 = $[5];
103
+ let t3;
104
+ return $[6] !== t1 || $[7] !== t2 || $[8] !== tabIndex || $[9] !== title ? (t3 = /* @__PURE__ */ jsx(PaneHeader, { actions: t1, backButton: t2, tabIndex, title }), $[6] = t1, $[7] = t2, $[8] = tabIndex, $[9] = title, $[10] = t3) : t3 = $[10], t3;
105
+ };
106
+ function ListPane(props) {
107
+ const $ = c(21), {
108
+ childItemId,
109
+ index,
110
+ isActive,
111
+ isSelected,
112
+ pane,
113
+ paneKey
114
+ } = props, {
115
+ defaultLayout,
116
+ displayOptions,
117
+ items,
118
+ menuItems,
119
+ menuItemGroups
120
+ } = pane, showIcons = displayOptions?.showIcons !== !1, {
121
+ title
122
+ } = useI18nText(pane);
123
+ let t0;
124
+ $[0] !== pane.source ? (t0 = _DEBUG, $[0] = pane.source, $[1] = t0) : t0 = $[1];
125
+ let t1;
126
+ $[2] !== index || $[3] !== menuItemGroups || $[4] !== menuItems || $[5] !== title ? (t1 = /* @__PURE__ */ jsx(ListPaneHeader, { index, menuItems, menuItemGroups, title }), $[2] = index, $[3] = menuItemGroups, $[4] = menuItems, $[5] = title, $[6] = t1) : t1 = $[6];
127
+ let t2;
128
+ $[7] !== childItemId || $[8] !== defaultLayout || $[9] !== isActive || $[10] !== items || $[11] !== paneKey || $[12] !== showIcons || $[13] !== title ? (t2 = /* @__PURE__ */ jsx(ListPaneContent, { childItemId, isActive, items, layout: defaultLayout, showIcons, title }, paneKey), $[7] = childItemId, $[8] = defaultLayout, $[9] = isActive, $[10] = items, $[11] = paneKey, $[12] = showIcons, $[13] = title, $[14] = t2) : t2 = $[14];
129
+ let t3;
130
+ return $[15] !== isSelected || $[16] !== paneKey || $[17] !== t0 || $[18] !== t1 || $[19] !== t2 ? (t3 = /* @__PURE__ */ jsxs(Pane, { currentMaxWidth: 350, "data-testid": "structure-tool-list-pane", "data-ui": "ListPane", id: paneKey, maxWidth: 640, minWidth: 320, selected: isSelected, children: [
131
+ t0,
132
+ t1,
133
+ t2
134
+ ] }), $[15] = isSelected, $[16] = paneKey, $[17] = t0, $[18] = t1, $[19] = t2, $[20] = t3) : t3 = $[20], t3;
135
+ }
136
+ export {
137
+ ListPane as default
138
+ };
139
+ //# sourceMappingURL=index3.js.map