@deepseek-ai/dsh-client-ui-primitives 0.2.0-rc.2 → 0.2.1-alpha.2
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/README.i18n.yaml +12 -12
- package/README.md +11 -8
- package/README.zh.md +11 -8
- package/lib/CommandText.module.css +12 -0
- package/lib/DisclosureRow.module.css +15 -0
- package/lib/ImageLightbox.module.css +12 -4
- package/lib/InlineEditor.module.css +23 -0
- package/lib/TerminalBlock.module.css +3 -10
- package/lib/index.js +438 -311
- package/lib/types/CommandText.d.ts +16 -0
- package/lib/types/DisclosureRow.d.ts +4 -2
- package/lib/types/InlineEditor.d.ts +23 -0
- package/lib/types/TerminalBlock.d.ts +3 -1
- package/lib/types/index.d.ts +3 -0
- package/package.json +10 -10
package/lib/index.js
CHANGED
|
@@ -14,23 +14,24 @@ import css$8 from "./Switch.module.css";
|
|
|
14
14
|
import css$9 from "./SegmentedControl.module.css";
|
|
15
15
|
import css$10 from "./Checkbox.module.css";
|
|
16
16
|
import css$11 from "./Input.module.css";
|
|
17
|
+
import css$12 from "./InlineEditor.module.css";
|
|
17
18
|
import { createPortal } from "react-dom";
|
|
18
|
-
import css$
|
|
19
|
-
import css$
|
|
20
|
-
import css$
|
|
21
|
-
import css$
|
|
22
|
-
import css$
|
|
23
|
-
import css$
|
|
24
|
-
import css$
|
|
25
|
-
import css$
|
|
26
|
-
import css$
|
|
27
|
-
import css$
|
|
19
|
+
import css$13 from "./ShortcutKeys.module.css";
|
|
20
|
+
import css$14 from "./MenuSurface.module.css";
|
|
21
|
+
import css$15 from "./Menu.module.css";
|
|
22
|
+
import css$16 from "./MenuGroup.module.css";
|
|
23
|
+
import css$17 from "./Tooltip.module.css";
|
|
24
|
+
import css$18 from "./HoverCard.module.css";
|
|
25
|
+
import css$19 from "./Modal.module.css";
|
|
26
|
+
import css$20 from "./RiskConfirmation.module.css";
|
|
27
|
+
import css$21 from "./ConnectionIndicator.module.css";
|
|
28
|
+
import css$22 from "./FileTypeIcon.module.css";
|
|
28
29
|
import { siAliexpress, siApple, siBaidu, siBilibili, siCsdn, siDuckduckgo, siEbay, siFacebook, siGithub, siGitlab, siGoogle, siInstagram, siJuejin, siMdnwebdocs, siNetflix, siNpm, siPypi, siQq, siQuora, siReddit, siSinaweibo, siSpotify, siStackoverflow, siTaobao, siTelegram, siTiktok, siV2ex, siWechat, siWhatsapp, siWikipedia, siX, siYcombinator, siYoutube, siZhihu } from "simple-icons";
|
|
29
|
-
import css$
|
|
30
|
+
import css$23 from "./user-text.module.css";
|
|
30
31
|
import markdownCss from "./markdown/MarkdownText.module.css";
|
|
31
|
-
import css$
|
|
32
|
-
import css$
|
|
33
|
-
import css$
|
|
32
|
+
import css$24 from "./Toast.module.css";
|
|
33
|
+
import css$25 from "./settings-form/SettingsForm.module.css";
|
|
34
|
+
import css$26 from "./settings-form/fields.module.css";
|
|
34
35
|
import { createSnapshotStore } from "@deepseek-ai/dsh-client-store";
|
|
35
36
|
import { createCssVariablesTheme, createHighlighterCoreSync } from "shiki/core";
|
|
36
37
|
import { createJavaScriptRegexEngine, defaultJavaScriptRegexConstructor } from "shiki/engine/javascript";
|
|
@@ -38,14 +39,15 @@ import langTs from "@shikijs/langs/typescript";
|
|
|
38
39
|
import langBash from "@shikijs/langs/shellscript";
|
|
39
40
|
import langJson from "@shikijs/langs/json";
|
|
40
41
|
import { CODE_HIGHLIGHT_EXTENSIONS, languageForPath } from "@deepseek-ai/dsh-util-code-language";
|
|
41
|
-
import css$
|
|
42
|
+
import css$27 from "./JsonTree.module.css";
|
|
42
43
|
import Anser from "anser";
|
|
43
|
-
import css$
|
|
44
|
+
import css$28 from "./TerminalBlock.module.css";
|
|
45
|
+
import css$29 from "./CommandText.module.css";
|
|
44
46
|
import cardCss from "./CodeCard.module.css";
|
|
45
|
-
import css$
|
|
47
|
+
import css$30 from "./ReadBlock.module.css";
|
|
46
48
|
import { structuredPatch } from "diff";
|
|
47
|
-
import css$
|
|
48
|
-
import css$
|
|
49
|
+
import css$31 from "./DiffBlock.module.css";
|
|
50
|
+
import css$32 from "./SearchBlock.module.css";
|
|
49
51
|
import { fromMarkdown } from "mdast-util-from-markdown";
|
|
50
52
|
import { gfmFromMarkdown } from "mdast-util-gfm";
|
|
51
53
|
import { mathFromMarkdown } from "mdast-util-math";
|
|
@@ -57,13 +59,13 @@ import { classifyCharacter } from "micromark-util-classify-character";
|
|
|
57
59
|
import { codes, constants, types } from "micromark-util-symbol";
|
|
58
60
|
import { factorySpace } from "micromark-factory-space";
|
|
59
61
|
import { normalizeUri } from "micromark-util-sanitize-uri";
|
|
60
|
-
import css$
|
|
62
|
+
import css$33 from "./markdown/CodeBlock.module.css";
|
|
61
63
|
import katex from "katex";
|
|
62
|
-
import css$
|
|
63
|
-
import css$
|
|
64
|
+
import css$34 from "./ImageLightbox.module.css";
|
|
65
|
+
import css$35 from "./ImagePreview.module.css";
|
|
64
66
|
import "katex/dist/katex.min.css";
|
|
65
|
-
import css$
|
|
66
|
-
import css$
|
|
67
|
+
import css$36 from "./WebBlock.module.css";
|
|
68
|
+
import css$37 from "./markdown/JsonBlock.module.css";
|
|
67
69
|
//#region lib/types/icons/shared-artwork.js
|
|
68
70
|
/**
|
|
69
71
|
* Render new-conversation geometry — the bubble around a plus — for product icons.
|
|
@@ -3040,12 +3042,24 @@ const IconMicrophoneOutlineMedium = (props) => jsx(IconMicrophoneOutlineArtwork,
|
|
|
3040
3042
|
//#region lib/types/StateDot.js
|
|
3041
3043
|
/**
|
|
3042
3044
|
* Pin the loader's CSS animations to document time zero. A CSS animation starts
|
|
3043
|
-
* when its element is inserted
|
|
3044
|
-
*
|
|
3045
|
+
* when its element is inserted and restarts when the element is moved or shown
|
|
3046
|
+
* again, so loaders started at different moments rotate out of phase; one shared
|
|
3047
|
+
* start time keeps every visible loader in step. Mount pins the first start; the
|
|
3048
|
+
* element's own `animationstart` listener pins each restart.
|
|
3045
3049
|
* @param element - the mounted loader, or null on unmount.
|
|
3046
3050
|
*/
|
|
3047
3051
|
function syncSpinner(element) {
|
|
3048
3052
|
if (element === null) return;
|
|
3053
|
+
pinSpinner(element);
|
|
3054
|
+
element.addEventListener("animationstart", () => {
|
|
3055
|
+
pinSpinner(element);
|
|
3056
|
+
});
|
|
3057
|
+
}
|
|
3058
|
+
/**
|
|
3059
|
+
* Set every CSS animation in the loader's subtree to start at document time zero.
|
|
3060
|
+
* @param element - the mounted loader.
|
|
3061
|
+
*/
|
|
3062
|
+
function pinSpinner(element) {
|
|
3049
3063
|
const spinner = element;
|
|
3050
3064
|
for (const animation of spinner.getAnimations?.({ subtree: true }) ?? []) animation.startTime = 0;
|
|
3051
3065
|
}
|
|
@@ -3153,7 +3167,7 @@ const TextShimmer = memo(function TextShimmer({ children, active = false, classN
|
|
|
3153
3167
|
* @param props - Visual content, controlled state, and interaction policy.
|
|
3154
3168
|
* @returns the disclosure row.
|
|
3155
3169
|
*/
|
|
3156
|
-
const DisclosureRow = memo(function DisclosureRow({ icon, title, open, expandable, onToggle, running = false, expandOnRowClick = false, previewChevron = expandable, keepContentWhenOpen = false, collapsedContent, children, className, rowClassName, contentClassName, contentLayoutClassName, leadingClassName, chevronClassName, titleClassName }) {
|
|
3170
|
+
const DisclosureRow = memo(function DisclosureRow({ icon, title, open, expandable, onToggle, running = false, expandOnRowClick = false, previewChevron = expandable, keepContentWhenOpen = false, collapsedContent, headerAccessory, children, className, rowClassName, contentClassName, contentLayoutClassName, leadingClassName, chevronClassName, titleClassName }) {
|
|
3157
3171
|
const rowExpands = expandable && expandOnRowClick;
|
|
3158
3172
|
const toggleFromLeading = (event) => {
|
|
3159
3173
|
event.stopPropagation();
|
|
@@ -3173,33 +3187,38 @@ const DisclosureRow = memo(function DisclosureRow({ icon, title, open, expandabl
|
|
|
3173
3187
|
className: clsx(css$2.root, className),
|
|
3174
3188
|
"data-open": open || void 0,
|
|
3175
3189
|
children: [jsxs("div", {
|
|
3176
|
-
className:
|
|
3177
|
-
"data-disclosure-
|
|
3178
|
-
"data-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
"
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3190
|
+
className: css$2.header,
|
|
3191
|
+
"data-disclosure-header": true,
|
|
3192
|
+
"data-has-accessory": !!headerAccessory || void 0,
|
|
3193
|
+
children: [jsxs("div", {
|
|
3194
|
+
className: clsx(css$2.row, rowClassName),
|
|
3195
|
+
"data-disclosure-row": true,
|
|
3196
|
+
"data-expandable": rowExpands || void 0,
|
|
3197
|
+
role: rowExpands ? "button" : void 0,
|
|
3198
|
+
tabIndex: rowExpands ? 0 : void 0,
|
|
3199
|
+
"aria-expanded": rowExpands ? open : void 0,
|
|
3200
|
+
onClick: rowExpands ? onToggle : void 0,
|
|
3201
|
+
onKeyDown: rowExpands ? toggleFromKeyboard : void 0,
|
|
3202
|
+
children: [expandable && !rowExpands ? jsx("button", {
|
|
3203
|
+
type: "button",
|
|
3204
|
+
className: clsx(css$2.leading, leadingClassName),
|
|
3205
|
+
"aria-label": title,
|
|
3206
|
+
"aria-expanded": open,
|
|
3207
|
+
onClick: toggleFromLeading,
|
|
3208
|
+
children: leading
|
|
3209
|
+
}) : jsx("span", {
|
|
3210
|
+
className: clsx(css$2.leading, leadingClassName),
|
|
3211
|
+
children: leading
|
|
3212
|
+
}), jsxs(TextShimmer, {
|
|
3213
|
+
active: running,
|
|
3214
|
+
className: contentClassName,
|
|
3215
|
+
contentClassName: contentLayoutClassName,
|
|
3216
|
+
children: [jsx(TextShimmer, {
|
|
3217
|
+
className: clsx(css$2.title, titleClassName),
|
|
3218
|
+
children: title
|
|
3219
|
+
}), (keepContentWhenOpen || !open) && collapsedContent]
|
|
3220
|
+
})]
|
|
3221
|
+
}), headerAccessory]
|
|
3203
3222
|
}), open && children]
|
|
3204
3223
|
});
|
|
3205
3224
|
});
|
|
@@ -3540,6 +3559,60 @@ const Input = forwardRef(function Input({ icon, className, ...rest }, ref) {
|
|
|
3540
3559
|
});
|
|
3541
3560
|
});
|
|
3542
3561
|
//#endregion
|
|
3562
|
+
//#region lib/types/InlineEditor.js
|
|
3563
|
+
/** Multi-line inline editor for short saved-on-Enter drafts such as queued messages and goals. */
|
|
3564
|
+
/**
|
|
3565
|
+
* Render an autofocused textarea that grows with its text up to six lines, then scrolls.
|
|
3566
|
+
* A textarea rather than an input: HTML strips newlines from single-line input values.
|
|
3567
|
+
* Enter saves, Shift+Enter breaks the line, Enter during IME composition does nothing,
|
|
3568
|
+
* and Escape cancels.
|
|
3569
|
+
* @param props.value - current draft text.
|
|
3570
|
+
* @param props.label - localized accessible name.
|
|
3571
|
+
* @param props.onChange - receives the edited text.
|
|
3572
|
+
* @param props.onSave - called for a plain Enter.
|
|
3573
|
+
* @param props.onCancel - called for Escape.
|
|
3574
|
+
* @param props.className - extra class for the editor's placement.
|
|
3575
|
+
* @returns the textarea.
|
|
3576
|
+
*/
|
|
3577
|
+
function InlineEditor({ value, label, onChange, onSave, onCancel, className }) {
|
|
3578
|
+
const ref = useRef(null);
|
|
3579
|
+
useLayoutEffect(() => {
|
|
3580
|
+
const node = ref.current;
|
|
3581
|
+
const fit = () => {
|
|
3582
|
+
node.style.height = "auto";
|
|
3583
|
+
node.style.height = `${node.scrollHeight + node.offsetHeight - node.clientHeight}px`;
|
|
3584
|
+
};
|
|
3585
|
+
fit();
|
|
3586
|
+
const observer = new ResizeObserver(fit);
|
|
3587
|
+
observer.observe(node);
|
|
3588
|
+
return () => {
|
|
3589
|
+
observer.disconnect();
|
|
3590
|
+
};
|
|
3591
|
+
}, [value]);
|
|
3592
|
+
const onKeyDown = (event) => {
|
|
3593
|
+
if (event.key === "Escape") {
|
|
3594
|
+
onCancel();
|
|
3595
|
+
return;
|
|
3596
|
+
}
|
|
3597
|
+
const composing = event.nativeEvent.isComposing || Reflect.get(event.nativeEvent, "keyCode") === 229;
|
|
3598
|
+
if (event.key !== "Enter" || event.shiftKey || composing) return;
|
|
3599
|
+
event.preventDefault();
|
|
3600
|
+
onSave();
|
|
3601
|
+
};
|
|
3602
|
+
return jsx("textarea", {
|
|
3603
|
+
ref,
|
|
3604
|
+
autoFocus: true,
|
|
3605
|
+
rows: 1,
|
|
3606
|
+
className: clsx(css$12.editor, className),
|
|
3607
|
+
"aria-label": label,
|
|
3608
|
+
value,
|
|
3609
|
+
onChange: (event) => {
|
|
3610
|
+
onChange(event.currentTarget.value);
|
|
3611
|
+
},
|
|
3612
|
+
onKeyDown
|
|
3613
|
+
});
|
|
3614
|
+
}
|
|
3615
|
+
//#endregion
|
|
3543
3616
|
//#region lib/types/overlay-top-margin.js
|
|
3544
3617
|
/** Shared viewport inset for overlays, derived from the desktop frame's reserved top strip. */
|
|
3545
3618
|
/**
|
|
@@ -3762,9 +3835,9 @@ function useModalLayer(dialog, open, onClose) {
|
|
|
3762
3835
|
*/
|
|
3763
3836
|
function ShortcutKeys({ keys, variant = "plain", className }) {
|
|
3764
3837
|
return jsx("span", {
|
|
3765
|
-
className: clsx(css$
|
|
3838
|
+
className: clsx(css$13.keys, variant === "tooltip" && css$13.tooltip, variant === "tooltip" && keys.includes("+") && css$13.joined, className),
|
|
3766
3839
|
children: keys.map((key, index) => jsx("kbd", {
|
|
3767
|
-
className: key === "+" ? css$
|
|
3840
|
+
className: key === "+" ? css$13.separator : css$13.key,
|
|
3768
3841
|
children: key
|
|
3769
3842
|
}, index))
|
|
3770
3843
|
});
|
|
@@ -3790,20 +3863,20 @@ const MenuSurface = forwardRef(function MenuSurface({ compact = false, className
|
|
|
3790
3863
|
...props,
|
|
3791
3864
|
ref,
|
|
3792
3865
|
"data-menu-material": "translucent",
|
|
3793
|
-
className: clsx(css$
|
|
3866
|
+
className: clsx(css$14.surface, compact && css$14.compact, className),
|
|
3794
3867
|
style: {
|
|
3795
3868
|
...style,
|
|
3796
3869
|
...anchorStyle
|
|
3797
3870
|
},
|
|
3798
3871
|
children: [jsx("div", {
|
|
3799
3872
|
"aria-hidden": "true",
|
|
3800
|
-
className: css$
|
|
3873
|
+
className: css$14.material
|
|
3801
3874
|
}), children]
|
|
3802
3875
|
}), createPortal(jsx("div", {
|
|
3803
3876
|
ref: backingRef,
|
|
3804
3877
|
"aria-hidden": "true",
|
|
3805
3878
|
"data-menu-backing": "",
|
|
3806
|
-
className: clsx(css$
|
|
3879
|
+
className: clsx(css$14.backing, compact && css$14.compact),
|
|
3807
3880
|
style: {
|
|
3808
3881
|
...anchorStyle,
|
|
3809
3882
|
visibility: style?.visibility
|
|
@@ -3829,32 +3902,32 @@ const MenuSurface = forwardRef(function MenuSurface({ compact = false, className
|
|
|
3829
3902
|
*/
|
|
3830
3903
|
function MenuItemButton({ children, shortcut, icon, disabled = false, danger = false, separatorBefore = false, onSelect }) {
|
|
3831
3904
|
return jsxs("div", {
|
|
3832
|
-
className: css$
|
|
3905
|
+
className: css$15.itemWrap,
|
|
3833
3906
|
children: [separatorBefore && jsx("div", {
|
|
3834
|
-
className: css$
|
|
3907
|
+
className: css$15.separator,
|
|
3835
3908
|
role: "separator"
|
|
3836
3909
|
}), jsxs("button", {
|
|
3837
3910
|
type: "button",
|
|
3838
3911
|
role: "menuitem",
|
|
3839
|
-
className: clsx(css$
|
|
3912
|
+
className: clsx(css$15.item, danger && css$15.danger),
|
|
3840
3913
|
disabled,
|
|
3841
3914
|
"aria-keyshortcuts": shortcut?.aria,
|
|
3842
3915
|
onClick: onSelect,
|
|
3843
3916
|
children: [
|
|
3844
3917
|
icon !== void 0 && jsx("span", {
|
|
3845
|
-
className: css$
|
|
3918
|
+
className: css$15.itemIcon,
|
|
3846
3919
|
children: icon
|
|
3847
3920
|
}),
|
|
3848
3921
|
jsx("span", {
|
|
3849
|
-
className: css$
|
|
3922
|
+
className: css$15.itemLabel,
|
|
3850
3923
|
children
|
|
3851
3924
|
}),
|
|
3852
3925
|
shortcut !== void 0 && jsx("span", {
|
|
3853
3926
|
"aria-hidden": "true",
|
|
3854
|
-
className: css$
|
|
3927
|
+
className: css$15.shortcut,
|
|
3855
3928
|
children: jsx(ShortcutKeys, {
|
|
3856
3929
|
keys: shortcut.keys,
|
|
3857
|
-
className: css$
|
|
3930
|
+
className: css$15.shortcutKeys
|
|
3858
3931
|
})
|
|
3859
3932
|
})
|
|
3860
3933
|
]
|
|
@@ -4141,11 +4214,11 @@ function Menu({ open, anchor, items = [], children, selectedId, selectedIds, onS
|
|
|
4141
4214
|
const scrollable = !items.some((entry) => !isSeparator(entry) && !isLabel(entry) && entry.submenu !== void 0 && entry.submenu.length > 0);
|
|
4142
4215
|
const renderEntry = (entry) => {
|
|
4143
4216
|
if (isSeparator(entry)) return jsx("div", {
|
|
4144
|
-
className: css$
|
|
4217
|
+
className: css$15.separator,
|
|
4145
4218
|
role: "separator"
|
|
4146
4219
|
}, entry.id);
|
|
4147
4220
|
if (isLabel(entry)) return jsx("div", {
|
|
4148
|
-
className: css$
|
|
4221
|
+
className: css$15.label,
|
|
4149
4222
|
role: "presentation",
|
|
4150
4223
|
children: entry.text
|
|
4151
4224
|
}, entry.id);
|
|
@@ -4153,7 +4226,7 @@ function Menu({ open, anchor, items = [], children, selectedId, selectedIds, onS
|
|
|
4153
4226
|
const subOpen = hasSub && openSubmenuId === entry.id;
|
|
4154
4227
|
const selected = entry.id === selectedId || selectedIds?.includes(entry.id) === true;
|
|
4155
4228
|
return jsxs("div", {
|
|
4156
|
-
className: css$
|
|
4229
|
+
className: css$15.itemWrap,
|
|
4157
4230
|
onMouseEnter: hasSub ? () => {
|
|
4158
4231
|
setOpenSubmenuId(entry.id);
|
|
4159
4232
|
} : void 0,
|
|
@@ -4163,7 +4236,7 @@ function Menu({ open, anchor, items = [], children, selectedId, selectedIds, onS
|
|
|
4163
4236
|
children: [jsxs("button", {
|
|
4164
4237
|
type: "button",
|
|
4165
4238
|
role: "menuitem",
|
|
4166
|
-
className: clsx(css$
|
|
4239
|
+
className: clsx(css$15.item, selected && (selection === "fill" ? css$15.selectedFill : css$15.selected), entry.danger === true && css$15.danger),
|
|
4167
4240
|
disabled: entry.disabled,
|
|
4168
4241
|
"aria-keyshortcuts": entry.shortcut?.aria,
|
|
4169
4242
|
"aria-haspopup": hasSub ? "menu" : void 0,
|
|
@@ -4180,31 +4253,31 @@ function Menu({ open, anchor, items = [], children, selectedId, selectedIds, onS
|
|
|
4180
4253
|
},
|
|
4181
4254
|
children: [
|
|
4182
4255
|
entry.icon !== void 0 && jsx("span", {
|
|
4183
|
-
className: css$
|
|
4256
|
+
className: css$15.itemIcon,
|
|
4184
4257
|
children: entry.icon
|
|
4185
4258
|
}),
|
|
4186
4259
|
jsx("span", {
|
|
4187
|
-
className: css$
|
|
4260
|
+
className: css$15.itemLabel,
|
|
4188
4261
|
children: entry.label
|
|
4189
4262
|
}),
|
|
4190
4263
|
entry.shortcut !== void 0 && jsx("span", {
|
|
4191
4264
|
"aria-hidden": "true",
|
|
4192
|
-
className: css$
|
|
4265
|
+
className: css$15.shortcut,
|
|
4193
4266
|
children: jsx(ShortcutKeys, {
|
|
4194
4267
|
keys: entry.shortcut.keys,
|
|
4195
|
-
className: css$
|
|
4268
|
+
className: css$15.shortcutKeys
|
|
4196
4269
|
})
|
|
4197
4270
|
}),
|
|
4198
|
-
selected && selection === "check" && jsx(IconCheckOutlineRegular, { className: css$
|
|
4271
|
+
selected && selection === "check" && jsx(IconCheckOutlineRegular, { className: css$15.check })
|
|
4199
4272
|
]
|
|
4200
4273
|
}), subOpen && entry.submenu !== void 0 && jsx(MenuSurface, {
|
|
4201
4274
|
compact,
|
|
4202
|
-
className: clsx(css$
|
|
4275
|
+
className: clsx(css$15.submenu, compact && css$15.compactList),
|
|
4203
4276
|
role: "menu",
|
|
4204
4277
|
children: entry.submenu.map((sub) => jsxs("button", {
|
|
4205
4278
|
type: "button",
|
|
4206
4279
|
role: "menuitem",
|
|
4207
|
-
className: css$
|
|
4280
|
+
className: css$15.item,
|
|
4208
4281
|
disabled: sub.disabled,
|
|
4209
4282
|
"aria-keyshortcuts": sub.shortcut?.aria,
|
|
4210
4283
|
onClick: () => {
|
|
@@ -4213,19 +4286,19 @@ function Menu({ open, anchor, items = [], children, selectedId, selectedIds, onS
|
|
|
4213
4286
|
},
|
|
4214
4287
|
children: [
|
|
4215
4288
|
sub.icon !== void 0 && jsx("span", {
|
|
4216
|
-
className: css$
|
|
4289
|
+
className: css$15.itemIcon,
|
|
4217
4290
|
children: sub.icon
|
|
4218
4291
|
}),
|
|
4219
4292
|
jsx("span", {
|
|
4220
|
-
className: css$
|
|
4293
|
+
className: css$15.itemLabel,
|
|
4221
4294
|
children: sub.label
|
|
4222
4295
|
}),
|
|
4223
4296
|
sub.shortcut !== void 0 && jsx("span", {
|
|
4224
4297
|
"aria-hidden": "true",
|
|
4225
|
-
className: css$
|
|
4298
|
+
className: css$15.shortcut,
|
|
4226
4299
|
children: jsx(ShortcutKeys, {
|
|
4227
4300
|
keys: sub.shortcut.keys,
|
|
4228
|
-
className: css$
|
|
4301
|
+
className: css$15.shortcutKeys
|
|
4229
4302
|
})
|
|
4230
4303
|
})
|
|
4231
4304
|
]
|
|
@@ -4242,7 +4315,7 @@ function Menu({ open, anchor, items = [], children, selectedId, selectedIds, onS
|
|
|
4242
4315
|
const list = open && jsxs(MenuSurface, {
|
|
4243
4316
|
compact,
|
|
4244
4317
|
ref: listRef,
|
|
4245
|
-
className: clsx(css$
|
|
4318
|
+
className: clsx(css$15.list, listClassName, dense && css$15.denseList, compact && css$15.compactList, scrollable && css$15.scrollable, portal && css$15.portal, side === "top" && !portal && css$15.sideTop, align === "end" && !portal && css$15.alignEnd),
|
|
4246
4319
|
style: portal ? fixedPos ?? MEASURE_STYLE : void 0,
|
|
4247
4320
|
role: "menu",
|
|
4248
4321
|
onClick: (e) => {
|
|
@@ -4253,18 +4326,18 @@ function Menu({ open, anchor, items = [], children, selectedId, selectedIds, onS
|
|
|
4253
4326
|
onMouseOver: collapseSubmenuFrom,
|
|
4254
4327
|
onFocus: collapseSubmenuFrom,
|
|
4255
4328
|
children: [jsxs("div", {
|
|
4256
|
-
className: css$
|
|
4329
|
+
className: css$15.viewport,
|
|
4257
4330
|
role: "presentation",
|
|
4258
4331
|
children: [items.map(renderEntry), children]
|
|
4259
4332
|
}), footer !== void 0 && footer.length > 0 && jsx("div", {
|
|
4260
|
-
className: css$
|
|
4333
|
+
className: css$15.footer,
|
|
4261
4334
|
role: "presentation",
|
|
4262
4335
|
children: footer.map(renderEntry)
|
|
4263
4336
|
})]
|
|
4264
4337
|
});
|
|
4265
4338
|
return jsxs("span", {
|
|
4266
4339
|
ref: rootRef,
|
|
4267
|
-
className: clsx(css$
|
|
4340
|
+
className: clsx(css$15.root, className),
|
|
4268
4341
|
onPointerEnter: closeOnPointerLeave ? cancelClose : void 0,
|
|
4269
4342
|
onPointerLeave: closeOnPointerLeave ? () => {
|
|
4270
4343
|
if (open) armClose();
|
|
@@ -4286,17 +4359,17 @@ function MenuGroup({ label, children }) {
|
|
|
4286
4359
|
role: "group",
|
|
4287
4360
|
"aria-labelledby": headingId,
|
|
4288
4361
|
"data-menu-group": "",
|
|
4289
|
-
className: css$
|
|
4362
|
+
className: css$16.group,
|
|
4290
4363
|
children: [
|
|
4291
4364
|
jsx("span", {
|
|
4292
4365
|
"aria-hidden": "true",
|
|
4293
4366
|
"data-menu-group-start": "",
|
|
4294
|
-
className: css$
|
|
4367
|
+
className: css$16.start
|
|
4295
4368
|
}),
|
|
4296
4369
|
jsx("div", {
|
|
4297
4370
|
id: headingId,
|
|
4298
4371
|
"data-menu-group-heading": "",
|
|
4299
|
-
className: css$
|
|
4372
|
+
className: css$16.heading,
|
|
4300
4373
|
children: label
|
|
4301
4374
|
}),
|
|
4302
4375
|
children
|
|
@@ -4826,7 +4899,7 @@ function Tooltip({ label, shortcutKeys, side = "right", align = "center", delayM
|
|
|
4826
4899
|
const content = visible && !suppressed && jsxs("span", {
|
|
4827
4900
|
ref: bubble,
|
|
4828
4901
|
id: openOnClick ? id : void 0,
|
|
4829
|
-
className: css$
|
|
4902
|
+
className: css$17.bubble,
|
|
4830
4903
|
"data-side": side,
|
|
4831
4904
|
"data-portal": portal || void 0,
|
|
4832
4905
|
"data-pinned": pinned || void 0,
|
|
@@ -4841,7 +4914,7 @@ function Tooltip({ label, shortcutKeys, side = "right", align = "center", delayM
|
|
|
4841
4914
|
role: "tooltip",
|
|
4842
4915
|
"aria-label": shortcutKeys?.length ? [resolvedLabel, shortcutKeys.join(" ")].filter(Boolean).join(" ") : void 0,
|
|
4843
4916
|
children: [resolvedLabel && jsx("span", {
|
|
4844
|
-
className: css$
|
|
4917
|
+
className: css$17.label,
|
|
4845
4918
|
children: resolvedLabel
|
|
4846
4919
|
}), shortcutKeys !== void 0 && shortcutKeys.length > 0 && jsx(ShortcutKeys, {
|
|
4847
4920
|
keys: shortcutKeys,
|
|
@@ -5109,7 +5182,7 @@ function HoverCard({ anchor, content, openDelayMs = 500, disabled = false, copyT
|
|
|
5109
5182
|
};
|
|
5110
5183
|
const card = open && pos !== null && !suppressed && jsx("div", {
|
|
5111
5184
|
ref: cardRef,
|
|
5112
|
-
className: clsx(css$
|
|
5185
|
+
className: clsx(css$18.card, variant === "preview" && css$18.preview, inline && css$18.media, copyable && css$18.copyable, copied && css$18.feedback),
|
|
5113
5186
|
"data-closing": closing || void 0,
|
|
5114
5187
|
style: {
|
|
5115
5188
|
...pos,
|
|
@@ -5132,14 +5205,14 @@ function HoverCard({ anchor, content, openDelayMs = 500, disabled = false, copyT
|
|
|
5132
5205
|
copy(copyText);
|
|
5133
5206
|
} : void 0,
|
|
5134
5207
|
children: copied ? jsx("span", {
|
|
5135
|
-
className: css$
|
|
5208
|
+
className: css$18.copied,
|
|
5136
5209
|
"aria-hidden": "true",
|
|
5137
5210
|
children: copiedLabel
|
|
5138
5211
|
}) : content
|
|
5139
5212
|
});
|
|
5140
5213
|
return jsxs("span", {
|
|
5141
5214
|
ref: rootRef,
|
|
5142
|
-
className: clsx(css$
|
|
5215
|
+
className: clsx(css$18.root, inline && css$18.inline),
|
|
5143
5216
|
onFocus: inline ? (event) => {
|
|
5144
5217
|
if (!disabled && event.target.matches(":focus-visible")) {
|
|
5145
5218
|
cancelClose();
|
|
@@ -5177,7 +5250,7 @@ function HoverCard({ anchor, content, openDelayMs = 500, disabled = false, copyT
|
|
|
5177
5250
|
children: anchor
|
|
5178
5251
|
}),
|
|
5179
5252
|
open && !suppressed && copyable && jsx("span", {
|
|
5180
|
-
className: css$
|
|
5253
|
+
className: css$18.status,
|
|
5181
5254
|
role: "status",
|
|
5182
5255
|
children: copied ? copiedLabel : ""
|
|
5183
5256
|
}),
|
|
@@ -5212,11 +5285,11 @@ function Modal({ open, onClose, title, closeLabel, description, children, footer
|
|
|
5212
5285
|
useModalLayer(dialog, open, onClose);
|
|
5213
5286
|
if (!open) return null;
|
|
5214
5287
|
return createPortal(jsxs("div", {
|
|
5215
|
-
className: css$
|
|
5288
|
+
className: css$19.root,
|
|
5216
5289
|
role: "presentation",
|
|
5217
5290
|
onKeyDownCapture,
|
|
5218
5291
|
children: [jsx("div", {
|
|
5219
|
-
className: css$
|
|
5292
|
+
className: css$19.mask,
|
|
5220
5293
|
style: backdropBlur ? void 0 : { backdropFilter: "none" },
|
|
5221
5294
|
"aria-hidden": "true",
|
|
5222
5295
|
onClick: onClose
|
|
@@ -5224,37 +5297,37 @@ function Modal({ open, onClose, title, closeLabel, description, children, footer
|
|
|
5224
5297
|
ref: dialog,
|
|
5225
5298
|
tabIndex: -1,
|
|
5226
5299
|
"data-shortcut-modal": shortcutModal,
|
|
5227
|
-
className: clsx(css$
|
|
5300
|
+
className: clsx(css$19.dialog, className),
|
|
5228
5301
|
role: "dialog",
|
|
5229
5302
|
"aria-modal": "true",
|
|
5230
5303
|
"aria-label": title,
|
|
5231
5304
|
children: headless ? children : jsxs(Fragment, { children: [jsxs("div", {
|
|
5232
|
-
className: clsx(css$
|
|
5305
|
+
className: clsx(css$19.content, contentClassName),
|
|
5233
5306
|
children: [
|
|
5234
5307
|
jsxs("div", {
|
|
5235
|
-
className: css$
|
|
5308
|
+
className: css$19.header,
|
|
5236
5309
|
children: [jsx("h2", {
|
|
5237
|
-
className: css$
|
|
5310
|
+
className: css$19.title,
|
|
5238
5311
|
children: title
|
|
5239
5312
|
}), jsx("button", {
|
|
5240
5313
|
type: "button",
|
|
5241
|
-
className: css$
|
|
5314
|
+
className: css$19.close,
|
|
5242
5315
|
"aria-label": closeLabel,
|
|
5243
5316
|
onClick: onClose,
|
|
5244
5317
|
children: jsx(IconCloseOutlineRegular, { size: 14 })
|
|
5245
5318
|
})]
|
|
5246
5319
|
}),
|
|
5247
5320
|
description !== void 0 && description !== "" && jsx("p", {
|
|
5248
|
-
className: css$
|
|
5321
|
+
className: css$19.description,
|
|
5249
5322
|
children: description
|
|
5250
5323
|
}),
|
|
5251
5324
|
children !== void 0 && jsx("div", {
|
|
5252
|
-
className: css$
|
|
5325
|
+
className: css$19.body,
|
|
5253
5326
|
children
|
|
5254
5327
|
})
|
|
5255
5328
|
]
|
|
5256
5329
|
}), footer !== void 0 && jsx("div", {
|
|
5257
|
-
className: css$
|
|
5330
|
+
className: css$19.footer,
|
|
5258
5331
|
children: footer
|
|
5259
5332
|
})] })
|
|
5260
5333
|
})]
|
|
@@ -5276,28 +5349,28 @@ function RiskConfirmation({ open, title, description, acknowledgeLabel, cancelLa
|
|
|
5276
5349
|
onClose: onCancel,
|
|
5277
5350
|
title,
|
|
5278
5351
|
closeLabel,
|
|
5279
|
-
className: css$
|
|
5280
|
-
contentClassName: css$
|
|
5352
|
+
className: css$20.confirmation ?? "",
|
|
5353
|
+
contentClassName: css$20.confirmationContent ?? "",
|
|
5281
5354
|
footer: jsxs(Fragment, { children: [jsx(Button, {
|
|
5282
5355
|
variant: "outline",
|
|
5283
|
-
className: css$
|
|
5356
|
+
className: css$20.modalAction,
|
|
5284
5357
|
onClick: onCancel,
|
|
5285
5358
|
children: cancelLabel
|
|
5286
5359
|
}), jsx(Button, {
|
|
5287
5360
|
variant: "primary",
|
|
5288
|
-
className: css$
|
|
5361
|
+
className: css$20.confirmAction,
|
|
5289
5362
|
disabled: disabled || !acknowledged,
|
|
5290
5363
|
onClick: onConfirm,
|
|
5291
5364
|
children: confirmLabel
|
|
5292
5365
|
})] }),
|
|
5293
5366
|
children: [jsxs("div", {
|
|
5294
|
-
className: css$
|
|
5367
|
+
className: css$20.warning,
|
|
5295
5368
|
children: [jsx(IconWarningOutlineRegular, {
|
|
5296
5369
|
size: 18,
|
|
5297
|
-
className: css$
|
|
5370
|
+
className: css$20.warningIcon
|
|
5298
5371
|
}), jsx("p", { children: description })]
|
|
5299
5372
|
}), jsxs("label", {
|
|
5300
|
-
className: css$
|
|
5373
|
+
className: css$20.acknowledgement,
|
|
5301
5374
|
children: [jsx("input", {
|
|
5302
5375
|
type: "checkbox",
|
|
5303
5376
|
checked: acknowledged,
|
|
@@ -5345,44 +5418,44 @@ function ConnectionIndicator({ state, disconnectedLabel, connectingLabel, recove
|
|
|
5345
5418
|
};
|
|
5346
5419
|
}, [state, rendered]);
|
|
5347
5420
|
if (rendered === void 0) return null;
|
|
5348
|
-
const leavingClass = leaving ? ` ${css$
|
|
5421
|
+
const leavingClass = leaving ? ` ${css$21.leaving}` : "";
|
|
5349
5422
|
if (rendered === "recovered") return jsxs("div", {
|
|
5350
|
-
className: `${css$
|
|
5423
|
+
className: `${css$21.indicator} ${css$21.success}${leavingClass}`,
|
|
5351
5424
|
role: "status",
|
|
5352
5425
|
"aria-label": recoveredLabel,
|
|
5353
5426
|
children: [jsx("span", {
|
|
5354
|
-
className: css$
|
|
5427
|
+
className: css$21.icon,
|
|
5355
5428
|
"aria-hidden": "true",
|
|
5356
5429
|
children: jsx(IconCheckOutlineRegular, { size: 14 })
|
|
5357
5430
|
}), jsx("span", {
|
|
5358
|
-
className: css$
|
|
5431
|
+
className: css$21.label,
|
|
5359
5432
|
children: recoveredLabel
|
|
5360
5433
|
})]
|
|
5361
5434
|
});
|
|
5362
5435
|
const connecting = rendered === "connecting";
|
|
5363
5436
|
return jsxs("button", {
|
|
5364
5437
|
type: "button",
|
|
5365
|
-
className: `${css$
|
|
5438
|
+
className: `${css$21.indicator} ${css$21.warning}${leavingClass}`,
|
|
5366
5439
|
"data-phase": rendered,
|
|
5367
5440
|
"aria-label": connecting ? restartActionLabel : reconnectActionLabel,
|
|
5368
5441
|
onClick: onReconnect,
|
|
5369
5442
|
children: [jsx("span", {
|
|
5370
|
-
className: css$
|
|
5443
|
+
className: css$21.icon,
|
|
5371
5444
|
"aria-hidden": "true",
|
|
5372
5445
|
children: connecting ? jsx(StateDot, { state: "ongoing" }) : jsx(IconRefreshOutlineRegular, { size: 14 })
|
|
5373
5446
|
}), jsx("span", {
|
|
5374
|
-
className: css$
|
|
5447
|
+
className: css$21.label,
|
|
5375
5448
|
children: connecting ? jsxs(Fragment, { children: [connectingLabel, jsxs("span", {
|
|
5376
|
-
className: css$
|
|
5449
|
+
className: css$21.dots,
|
|
5377
5450
|
"aria-hidden": "true",
|
|
5378
5451
|
children: [
|
|
5379
5452
|
jsx("span", { children: "." }),
|
|
5380
5453
|
jsx("span", {
|
|
5381
|
-
className: css$
|
|
5454
|
+
className: css$21.secondDot,
|
|
5382
5455
|
children: "."
|
|
5383
5456
|
}),
|
|
5384
5457
|
jsx("span", {
|
|
5385
|
-
className: css$
|
|
5458
|
+
className: css$21.thirdDot,
|
|
5386
5459
|
children: "."
|
|
5387
5460
|
})
|
|
5388
5461
|
]
|
|
@@ -6413,7 +6486,7 @@ function FileTypeIcon(props) {
|
|
|
6413
6486
|
type: resolvedType,
|
|
6414
6487
|
size,
|
|
6415
6488
|
className
|
|
6416
|
-
}) : glyph(resolvedType, size, clsx(css$
|
|
6489
|
+
}) : glyph(resolvedType, size, clsx(css$22.icon, css$22[resolvedType], className));
|
|
6417
6490
|
}
|
|
6418
6491
|
//#endregion
|
|
6419
6492
|
//#region lib/types/SiteGlyph.js
|
|
@@ -6742,7 +6815,7 @@ function projectUserText(text, sessionLabels, slashNames = [], slashKind = "skil
|
|
|
6742
6815
|
let cursor = 0;
|
|
6743
6816
|
const pushPlain = (from, to) => {
|
|
6744
6817
|
parts.push(jsx("span", {
|
|
6745
|
-
className: css$
|
|
6818
|
+
className: css$23.plainRun,
|
|
6746
6819
|
children: text.slice(from, to)
|
|
6747
6820
|
}, `t${from}`));
|
|
6748
6821
|
};
|
|
@@ -6755,14 +6828,14 @@ function projectUserText(text, sessionLabels, slashNames = [], slashKind = "skil
|
|
|
6755
6828
|
const contents = jsxs(Fragment, { children: [referenceKind !== void 0 && jsx(ReferenceIconRegular, {
|
|
6756
6829
|
kind: referenceKind,
|
|
6757
6830
|
size: 16,
|
|
6758
|
-
className: css$
|
|
6831
|
+
className: css$23.refIcon
|
|
6759
6832
|
}), displayLabel] });
|
|
6760
6833
|
const open = references === void 0 ? void 0 : referenceKind === "file" ? () => {
|
|
6761
6834
|
references.openFile(label.slice(1).replace(/^"|"$/gu, ""));
|
|
6762
6835
|
} : referenceKind === void 0 && slashKind === "skill" ? () => {
|
|
6763
6836
|
references.openSkill(label.slice(1));
|
|
6764
6837
|
} : void 0;
|
|
6765
|
-
const className = clsx(css$
|
|
6838
|
+
const className = clsx(css$23.refChip, referenceKind === void 0 && css$23.slashChip);
|
|
6766
6839
|
parts.push(open === void 0 ? jsx("span", {
|
|
6767
6840
|
className,
|
|
6768
6841
|
"data-ref-chip": referenceKind ?? slashKind,
|
|
@@ -6782,7 +6855,7 @@ function projectUserText(text, sessionLabels, slashNames = [], slashKind = "skil
|
|
|
6782
6855
|
cursor = end;
|
|
6783
6856
|
}
|
|
6784
6857
|
if (parts.length === 0) return jsx("span", {
|
|
6785
|
-
className: css$
|
|
6858
|
+
className: css$23.plainRun,
|
|
6786
6859
|
children: text
|
|
6787
6860
|
});
|
|
6788
6861
|
if (cursor < text.length) pushPlain(cursor, text.length);
|
|
@@ -6855,25 +6928,25 @@ function Toast({ text, icon, tone, anchor, holdMs = HOLD_MS, actions, onDone })
|
|
|
6855
6928
|
};
|
|
6856
6929
|
}, [anchor]);
|
|
6857
6930
|
return createPortal(jsxs("div", {
|
|
6858
|
-
className: css$
|
|
6931
|
+
className: css$24.toast,
|
|
6859
6932
|
role: "alert",
|
|
6860
6933
|
style: {
|
|
6861
6934
|
...left === null ? {} : { left },
|
|
6862
6935
|
"--dsh-toast-hold": `${String(holdMs)}ms`
|
|
6863
6936
|
},
|
|
6864
6937
|
children: [tone === "success" ? jsx("span", {
|
|
6865
|
-
className: `${css$
|
|
6938
|
+
className: `${css$24.icon} ${css$24.success}`,
|
|
6866
6939
|
"aria-hidden": true,
|
|
6867
6940
|
children: jsx(IconCheckCircleOutlineRegular, {})
|
|
6868
6941
|
}) : icon !== void 0 && jsx("span", {
|
|
6869
|
-
className: css$
|
|
6942
|
+
className: css$24.icon,
|
|
6870
6943
|
"aria-hidden": true,
|
|
6871
6944
|
children: icon
|
|
6872
6945
|
}), jsxs("span", {
|
|
6873
|
-
className: css$
|
|
6946
|
+
className: css$24.text,
|
|
6874
6947
|
children: [text, actions?.map((action) => jsxs(Fragment$1, { children: [action.prefix, jsx("button", {
|
|
6875
6948
|
type: "button",
|
|
6876
|
-
className: css$
|
|
6949
|
+
className: css$24.action,
|
|
6877
6950
|
onClick: action.onClick,
|
|
6878
6951
|
children: action.label
|
|
6879
6952
|
})] }, action.label))]
|
|
@@ -6923,29 +6996,29 @@ function SettingsForm(props) {
|
|
|
6923
6996
|
discard.current();
|
|
6924
6997
|
}, []);
|
|
6925
6998
|
if (!state.available) return jsx("p", {
|
|
6926
|
-
className: css$
|
|
6999
|
+
className: css$25.unavailable,
|
|
6927
7000
|
role: "status",
|
|
6928
7001
|
children: labels.unavailable
|
|
6929
7002
|
});
|
|
6930
7003
|
const blocked = !state.dirty || state.invalid || state.saving;
|
|
6931
7004
|
return jsxs("div", {
|
|
6932
|
-
className: css$
|
|
7005
|
+
className: css$25.form,
|
|
6933
7006
|
children: [
|
|
6934
7007
|
!state.writable ? jsx("p", {
|
|
6935
|
-
className: css$
|
|
7008
|
+
className: css$25.readOnly,
|
|
6936
7009
|
role: "status",
|
|
6937
7010
|
children: labels.readOnly
|
|
6938
7011
|
}) : null,
|
|
6939
7012
|
props.children,
|
|
6940
7013
|
jsxs("div", {
|
|
6941
|
-
className: css$
|
|
7014
|
+
className: css$25.footer,
|
|
6942
7015
|
children: [state.failed ? jsx("p", {
|
|
6943
|
-
className: css$
|
|
7016
|
+
className: css$25.failed,
|
|
6944
7017
|
role: "status",
|
|
6945
7018
|
children: labels.saveFailed
|
|
6946
7019
|
}) : null, jsx("button", {
|
|
6947
7020
|
type: "button",
|
|
6948
|
-
className: css$
|
|
7021
|
+
className: css$25.save,
|
|
6949
7022
|
disabled: blocked,
|
|
6950
7023
|
onClick: props.onSave,
|
|
6951
7024
|
children: state.saving ? labels.saving : labels.save
|
|
@@ -6977,19 +7050,19 @@ function SettingsValueField(props) {
|
|
|
6977
7050
|
const hasMessage = props.invalid || Boolean(props.hint);
|
|
6978
7051
|
const description = [hasMessage ? messageId : "", helpOpen ? helpId : ""].filter(Boolean).join(" ");
|
|
6979
7052
|
return jsxs("div", {
|
|
6980
|
-
className: css$
|
|
7053
|
+
className: css$26.field,
|
|
6981
7054
|
children: [
|
|
6982
7055
|
jsxs("div", {
|
|
6983
|
-
className: css$
|
|
7056
|
+
className: css$26.head,
|
|
6984
7057
|
children: [jsxs("div", {
|
|
6985
|
-
className: css$
|
|
7058
|
+
className: css$26.labelGroup,
|
|
6986
7059
|
children: [jsx("label", {
|
|
6987
|
-
className: css$
|
|
7060
|
+
className: css$26.label,
|
|
6988
7061
|
htmlFor: props.id,
|
|
6989
7062
|
children: props.label
|
|
6990
7063
|
}), props.help !== void 0 ? jsx("button", {
|
|
6991
7064
|
type: "button",
|
|
6992
|
-
className: css$
|
|
7065
|
+
className: css$26.helpButton,
|
|
6993
7066
|
"aria-label": props.help.label,
|
|
6994
7067
|
"aria-expanded": helpOpen,
|
|
6995
7068
|
"aria-controls": helpId,
|
|
@@ -6999,13 +7072,13 @@ function SettingsValueField(props) {
|
|
|
6999
7072
|
children: jsx(IconInfoOutlineRegular, { size: 12 })
|
|
7000
7073
|
}) : null]
|
|
7001
7074
|
}), props.overridden ? jsxs("span", {
|
|
7002
|
-
className: css$
|
|
7075
|
+
className: css$26.badges,
|
|
7003
7076
|
children: [jsx(Tag, {
|
|
7004
7077
|
tone: "neutral",
|
|
7005
7078
|
children: props.overriddenLabel
|
|
7006
7079
|
}), jsx("button", {
|
|
7007
7080
|
type: "button",
|
|
7008
|
-
className: css$
|
|
7081
|
+
className: css$26.reset,
|
|
7009
7082
|
disabled: props.disabled,
|
|
7010
7083
|
onClick: props.onReset,
|
|
7011
7084
|
children: props.resetLabel
|
|
@@ -7014,7 +7087,7 @@ function SettingsValueField(props) {
|
|
|
7014
7087
|
}),
|
|
7015
7088
|
jsx("input", {
|
|
7016
7089
|
id: props.id,
|
|
7017
|
-
className: css$
|
|
7090
|
+
className: css$26.input,
|
|
7018
7091
|
type: "text",
|
|
7019
7092
|
...props.numeric === true ? { inputMode: "numeric" } : {},
|
|
7020
7093
|
...props.invalid ? { "aria-invalid": true } : {},
|
|
@@ -7028,12 +7101,12 @@ function SettingsValueField(props) {
|
|
|
7028
7101
|
}),
|
|
7029
7102
|
hasMessage ? jsx("p", {
|
|
7030
7103
|
id: messageId,
|
|
7031
|
-
className: props.invalid ? css$
|
|
7104
|
+
className: props.invalid ? css$26.invalid : css$26.hint,
|
|
7032
7105
|
children: props.invalid ? props.invalidLabel : props.hint
|
|
7033
7106
|
}) : null,
|
|
7034
7107
|
props.help !== void 0 && helpOpen ? jsx("div", {
|
|
7035
7108
|
id: helpId,
|
|
7036
|
-
className: css$
|
|
7109
|
+
className: css$26.help,
|
|
7037
7110
|
role: "region",
|
|
7038
7111
|
"aria-label": props.help.label,
|
|
7039
7112
|
children: props.help.content
|
|
@@ -7051,16 +7124,16 @@ function SettingsValueField(props) {
|
|
|
7051
7124
|
*/
|
|
7052
7125
|
function SettingsSecretField(props) {
|
|
7053
7126
|
return jsxs("div", {
|
|
7054
|
-
className: css$
|
|
7127
|
+
className: css$26.field,
|
|
7055
7128
|
children: [
|
|
7056
7129
|
jsxs("div", {
|
|
7057
|
-
className: css$
|
|
7130
|
+
className: css$26.head,
|
|
7058
7131
|
children: [jsx("label", {
|
|
7059
|
-
className: css$
|
|
7132
|
+
className: css$26.label,
|
|
7060
7133
|
htmlFor: props.id,
|
|
7061
7134
|
children: props.label
|
|
7062
7135
|
}), jsx("span", {
|
|
7063
|
-
className: css$
|
|
7136
|
+
className: css$26.badges,
|
|
7064
7137
|
children: jsx(Tag, {
|
|
7065
7138
|
tone: props.configured ? "neutral" : "quiet",
|
|
7066
7139
|
children: props.stateLabel
|
|
@@ -7069,7 +7142,7 @@ function SettingsSecretField(props) {
|
|
|
7069
7142
|
}),
|
|
7070
7143
|
jsx("input", {
|
|
7071
7144
|
id: props.id,
|
|
7072
|
-
className: css$
|
|
7145
|
+
className: css$26.input,
|
|
7073
7146
|
type: "password",
|
|
7074
7147
|
autoComplete: "new-password",
|
|
7075
7148
|
value: props.text,
|
|
@@ -7079,7 +7152,7 @@ function SettingsSecretField(props) {
|
|
|
7079
7152
|
}
|
|
7080
7153
|
}),
|
|
7081
7154
|
jsx("p", {
|
|
7082
|
-
className: css$
|
|
7155
|
+
className: css$26.hint,
|
|
7083
7156
|
children: props.hint
|
|
7084
7157
|
})
|
|
7085
7158
|
]
|
|
@@ -7633,6 +7706,15 @@ const regexEngine = createJavaScriptRegexEngine({
|
|
|
7633
7706
|
forgiving: true,
|
|
7634
7707
|
regexConstructor: (pattern) => defaultJavaScriptRegexConstructor(pattern, { lazyCompileLength: Number.POSITIVE_INFINITY })
|
|
7635
7708
|
});
|
|
7709
|
+
/**
|
|
7710
|
+
* Lines at least this many UTF-16 units long render as one uncolored token.
|
|
7711
|
+
* With the JavaScript regex engine, scanning one JavaScript string-literal
|
|
7712
|
+
* line costs about 70 ms at 1,000 units, 300 ms at 2,000, 600 ms at 5,000 and
|
|
7713
|
+
* 2.5 s at 10,000, so this cap keeps one line within a few frames. A skipped
|
|
7714
|
+
* line leaves the grammar state unchanged: a multi-line construct that opens
|
|
7715
|
+
* or closes on it colors the following lines as if the line were absent.
|
|
7716
|
+
*/
|
|
7717
|
+
const TOKENIZE_MAX_LINE_LENGTH = 1e3;
|
|
7636
7718
|
let singleton;
|
|
7637
7719
|
/** Representative paths through every boot grammar, compiled before user content is timed. */
|
|
7638
7720
|
const BOOT_GRAMMAR_WARMUPS = [
|
|
@@ -7740,7 +7822,8 @@ function highlightToHtml(code, lang) {
|
|
|
7740
7822
|
if (!ensureGrammar(resolved)) return void 0;
|
|
7741
7823
|
return highlighter().codeToHtml(code, {
|
|
7742
7824
|
lang: resolved,
|
|
7743
|
-
theme: "css-variables"
|
|
7825
|
+
theme: "css-variables",
|
|
7826
|
+
tokenizeMaxLineLength: TOKENIZE_MAX_LINE_LENGTH
|
|
7744
7827
|
});
|
|
7745
7828
|
}
|
|
7746
7829
|
/** vscode-textmate FontStyle bits shiki folds into `text-decoration` values. */
|
|
@@ -7833,6 +7916,7 @@ var StreamingHighlightSession = class {
|
|
|
7833
7916
|
return highlighter().codeToTokensBase(text, {
|
|
7834
7917
|
lang: resolved,
|
|
7835
7918
|
theme: "css-variables",
|
|
7919
|
+
tokenizeMaxLineLength: TOKENIZE_MAX_LINE_LENGTH,
|
|
7836
7920
|
...this.state === void 0 ? {} : { grammarState: this.state }
|
|
7837
7921
|
});
|
|
7838
7922
|
}
|
|
@@ -7912,7 +7996,8 @@ function highlightLines(code, lang) {
|
|
|
7912
7996
|
if (!ensureGrammar(resolved)) return void 0;
|
|
7913
7997
|
const { tokens } = highlighter().codeToTokens(code, {
|
|
7914
7998
|
lang: resolved,
|
|
7915
|
-
theme: "css-variables"
|
|
7999
|
+
theme: "css-variables",
|
|
8000
|
+
tokenizeMaxLineLength: TOKENIZE_MAX_LINE_LENGTH
|
|
7916
8001
|
});
|
|
7917
8002
|
const last = tokens[tokens.length - 1];
|
|
7918
8003
|
return (tokens.length > 1 && last !== void 0 && last.length === 0 ? tokens.slice(0, -1) : tokens).map((line) => line.map((token) => ({
|
|
@@ -8145,7 +8230,7 @@ function JsonCopyAction({ store, target, persistent, labels, onCopy, onClose })
|
|
|
8145
8230
|
const object = typeof target.value === "object" && target.value !== null;
|
|
8146
8231
|
const copyTitle = state === "copied" ? labels.copied : state === "failed" ? labels.copyFailed : object ? labels.copyPrettyJson : labels.copyValue;
|
|
8147
8232
|
return jsx("span", {
|
|
8148
|
-
className: css$
|
|
8233
|
+
className: css$27.copySlot,
|
|
8149
8234
|
children: (persistent || snapshot !== void 0) && jsx(Menu, {
|
|
8150
8235
|
open: snapshot?.menuOpen === true,
|
|
8151
8236
|
compact: true,
|
|
@@ -8154,7 +8239,7 @@ function JsonCopyAction({ store, target, persistent, labels, onCopy, onClose })
|
|
|
8154
8239
|
anchor: jsx("button", {
|
|
8155
8240
|
ref: buttonRef,
|
|
8156
8241
|
type: "button",
|
|
8157
|
-
className: css$
|
|
8242
|
+
className: css$27.actionButton,
|
|
8158
8243
|
"data-json-copy-button": true,
|
|
8159
8244
|
"data-state": state,
|
|
8160
8245
|
"aria-label": copyTitle,
|
|
@@ -8193,35 +8278,35 @@ function bracketOf(value) {
|
|
|
8193
8278
|
}
|
|
8194
8279
|
function previewPrimitive(value) {
|
|
8195
8280
|
if (value === null) return jsx("span", {
|
|
8196
|
-
className: css$
|
|
8281
|
+
className: css$27.keywordValue,
|
|
8197
8282
|
children: "null"
|
|
8198
8283
|
});
|
|
8199
8284
|
if (typeof value === "string") return jsx("span", {
|
|
8200
|
-
className: css$
|
|
8285
|
+
className: css$27.stringValue,
|
|
8201
8286
|
children: JSON.stringify(value)
|
|
8202
8287
|
});
|
|
8203
8288
|
if (typeof value === "number") return jsx("span", {
|
|
8204
|
-
className: css$
|
|
8289
|
+
className: css$27.numberValue,
|
|
8205
8290
|
children: String(value)
|
|
8206
8291
|
});
|
|
8207
8292
|
if (typeof value === "boolean") return jsx("span", {
|
|
8208
|
-
className: css$
|
|
8293
|
+
className: css$27.keywordValue,
|
|
8209
8294
|
children: String(value)
|
|
8210
8295
|
});
|
|
8211
8296
|
if (typeof value === "bigint") return jsx("span", {
|
|
8212
|
-
className: css$
|
|
8297
|
+
className: css$27.otherValue,
|
|
8213
8298
|
children: value.toString()
|
|
8214
8299
|
});
|
|
8215
8300
|
if (typeof value === "undefined") return jsx("span", {
|
|
8216
|
-
className: css$
|
|
8301
|
+
className: css$27.otherValue,
|
|
8217
8302
|
children: "undefined"
|
|
8218
8303
|
});
|
|
8219
8304
|
if (typeof value === "symbol") return jsx("span", {
|
|
8220
|
-
className: css$
|
|
8305
|
+
className: css$27.otherValue,
|
|
8221
8306
|
children: value.description ?? "Symbol"
|
|
8222
8307
|
});
|
|
8223
8308
|
if (typeof value === "function") return jsx("span", {
|
|
8224
|
-
className: css$
|
|
8309
|
+
className: css$27.otherValue,
|
|
8225
8310
|
children: value.name || "Function"
|
|
8226
8311
|
});
|
|
8227
8312
|
return null;
|
|
@@ -8235,71 +8320,71 @@ function previewValue(value, depth) {
|
|
|
8235
8320
|
const [open, close] = bracketOf(value);
|
|
8236
8321
|
return jsxs(Fragment, { children: [
|
|
8237
8322
|
jsx("span", {
|
|
8238
|
-
className: css$
|
|
8323
|
+
className: css$27.punctuation,
|
|
8239
8324
|
children: open
|
|
8240
8325
|
}),
|
|
8241
8326
|
depth >= PREVIEW_DEPTH_LIMIT ? jsx("span", {
|
|
8242
|
-
className: css$
|
|
8327
|
+
className: css$27.previewEllipsis,
|
|
8243
8328
|
children: "…"
|
|
8244
8329
|
}) : visible.map(([key, item], index) => jsxs("span", { children: [
|
|
8245
8330
|
index > 0 && jsx("span", {
|
|
8246
|
-
className: css$
|
|
8331
|
+
className: css$27.punctuation,
|
|
8247
8332
|
children: ", "
|
|
8248
8333
|
}),
|
|
8249
8334
|
!array && jsxs(Fragment, { children: [jsx("span", {
|
|
8250
|
-
className: css$
|
|
8335
|
+
className: css$27.previewProperty,
|
|
8251
8336
|
children: key
|
|
8252
8337
|
}), jsx("span", {
|
|
8253
|
-
className: css$
|
|
8338
|
+
className: css$27.punctuation,
|
|
8254
8339
|
children: ": "
|
|
8255
8340
|
})] }),
|
|
8256
8341
|
previewValue(item, depth + 1)
|
|
8257
8342
|
] }, key)),
|
|
8258
8343
|
depth < PREVIEW_DEPTH_LIMIT && entries.length > limit && jsx("span", {
|
|
8259
|
-
className: css$
|
|
8344
|
+
className: css$27.previewEllipsis,
|
|
8260
8345
|
children: ", …"
|
|
8261
8346
|
}),
|
|
8262
8347
|
jsx("span", {
|
|
8263
|
-
className: css$
|
|
8348
|
+
className: css$27.punctuation,
|
|
8264
8349
|
children: close
|
|
8265
8350
|
})
|
|
8266
8351
|
] });
|
|
8267
8352
|
}
|
|
8268
8353
|
function primitiveValue(value) {
|
|
8269
8354
|
if (value === null) return jsx("span", {
|
|
8270
|
-
className: css$
|
|
8355
|
+
className: css$27.keywordValue,
|
|
8271
8356
|
children: "null"
|
|
8272
8357
|
});
|
|
8273
8358
|
if (typeof value === "string") return jsx("span", {
|
|
8274
|
-
className: css$
|
|
8359
|
+
className: css$27.stringValue,
|
|
8275
8360
|
children: JSON.stringify(value)
|
|
8276
8361
|
});
|
|
8277
8362
|
if (typeof value === "boolean") return jsx("span", {
|
|
8278
|
-
className: css$
|
|
8363
|
+
className: css$27.keywordValue,
|
|
8279
8364
|
children: String(value)
|
|
8280
8365
|
});
|
|
8281
8366
|
if (typeof value === "number") return jsx("span", {
|
|
8282
|
-
className: css$
|
|
8367
|
+
className: css$27.numberValue,
|
|
8283
8368
|
children: String(value)
|
|
8284
8369
|
});
|
|
8285
8370
|
if (typeof value === "bigint") return jsx("span", {
|
|
8286
|
-
className: css$
|
|
8371
|
+
className: css$27.numberValue,
|
|
8287
8372
|
children: `${value.toString()}n`
|
|
8288
8373
|
});
|
|
8289
8374
|
if (value instanceof Date) return jsx("span", {
|
|
8290
|
-
className: css$
|
|
8375
|
+
className: css$27.otherValue,
|
|
8291
8376
|
children: value.toISOString()
|
|
8292
8377
|
});
|
|
8293
8378
|
if (typeof value === "function") return jsxs("span", {
|
|
8294
|
-
className: css$
|
|
8379
|
+
className: css$27.otherValue,
|
|
8295
8380
|
children: ["function() ", "{ }"]
|
|
8296
8381
|
});
|
|
8297
8382
|
if (typeof value === "undefined") return jsx("span", {
|
|
8298
|
-
className: css$
|
|
8383
|
+
className: css$27.otherValue,
|
|
8299
8384
|
children: "undefined"
|
|
8300
8385
|
});
|
|
8301
8386
|
return jsx("span", {
|
|
8302
|
-
className: css$
|
|
8387
|
+
className: css$27.otherValue,
|
|
8303
8388
|
children: value.toString()
|
|
8304
8389
|
});
|
|
8305
8390
|
}
|
|
@@ -8327,7 +8412,7 @@ function moveFocus(button, direction) {
|
|
|
8327
8412
|
function NodeField({ field, expandable, onToggle }) {
|
|
8328
8413
|
if (field === void 0) return null;
|
|
8329
8414
|
return jsxs("span", {
|
|
8330
|
-
className: clsx(css$
|
|
8415
|
+
className: clsx(css$27.label, expandable && css$27.clickableLabel),
|
|
8331
8416
|
onClick: expandable ? onToggle : void 0,
|
|
8332
8417
|
children: [fieldText(field), ":"]
|
|
8333
8418
|
});
|
|
@@ -8364,7 +8449,7 @@ function JsonString({ collapsedStringLines, stringWrapping, field, labels, lastE
|
|
|
8364
8449
|
if (!expanded) return;
|
|
8365
8450
|
const raw = rawRef.current;
|
|
8366
8451
|
const clips = [];
|
|
8367
|
-
const tree = raw.closest(`.${css$
|
|
8452
|
+
const tree = raw.closest(`.${css$27.root}`);
|
|
8368
8453
|
for (let parent = tree.parentElement; parent !== null; parent = parent.parentElement) if (/auto|scroll|hidden|clip/.test(getComputedStyle(parent).overflowY)) clips.push(parent);
|
|
8369
8454
|
const measure = () => {
|
|
8370
8455
|
let top = 0;
|
|
@@ -8393,33 +8478,33 @@ function JsonString({ collapsedStringLines, stringWrapping, field, labels, lastE
|
|
|
8393
8478
|
if (expanded) {
|
|
8394
8479
|
const fieldId = `${contentsId}-field`;
|
|
8395
8480
|
return jsxs("div", {
|
|
8396
|
-
className: css$
|
|
8481
|
+
className: css$27.stringField,
|
|
8397
8482
|
"data-expanded": true,
|
|
8398
8483
|
children: [
|
|
8399
8484
|
field !== void 0 && jsxs("span", {
|
|
8400
8485
|
id: fieldId,
|
|
8401
|
-
className: css$
|
|
8486
|
+
className: css$27.label,
|
|
8402
8487
|
children: [fieldText(field), ":"]
|
|
8403
8488
|
}),
|
|
8404
8489
|
jsx("pre", {
|
|
8405
8490
|
ref: rawRef,
|
|
8406
8491
|
id: contentsId,
|
|
8407
|
-
className: css$
|
|
8492
|
+
className: css$27.stringRaw,
|
|
8408
8493
|
"data-wrap": wrapped,
|
|
8409
8494
|
tabIndex: 0,
|
|
8410
8495
|
"aria-labelledby": field === void 0 ? void 0 : fieldId,
|
|
8411
8496
|
children: value
|
|
8412
8497
|
}),
|
|
8413
8498
|
!lastElement && jsx("span", {
|
|
8414
|
-
className: css$
|
|
8499
|
+
className: css$27.punctuation,
|
|
8415
8500
|
children: ","
|
|
8416
8501
|
}),
|
|
8417
8502
|
jsxs("div", {
|
|
8418
|
-
className: css$
|
|
8503
|
+
className: css$27.stringActions,
|
|
8419
8504
|
children: [
|
|
8420
8505
|
stringWrapping !== void 0 && jsx("button", {
|
|
8421
8506
|
type: "button",
|
|
8422
|
-
className: css$
|
|
8507
|
+
className: css$27.actionButton,
|
|
8423
8508
|
"aria-label": stringWrapping.label,
|
|
8424
8509
|
title: stringWrapping.label,
|
|
8425
8510
|
"aria-pressed": wrapped,
|
|
@@ -8433,7 +8518,7 @@ function JsonString({ collapsedStringLines, stringWrapping, field, labels, lastE
|
|
|
8433
8518
|
}),
|
|
8434
8519
|
jsx("button", {
|
|
8435
8520
|
type: "button",
|
|
8436
|
-
className: css$
|
|
8521
|
+
className: css$27.actionButton,
|
|
8437
8522
|
"aria-label": labels.collapseNode,
|
|
8438
8523
|
title: labels.collapseNode,
|
|
8439
8524
|
"aria-expanded": true,
|
|
@@ -8458,18 +8543,18 @@ function JsonString({ collapsedStringLines, stringWrapping, field, labels, lastE
|
|
|
8458
8543
|
});
|
|
8459
8544
|
}
|
|
8460
8545
|
return jsxs(Fragment, { children: [renderCopy?.(), jsx("span", {
|
|
8461
|
-
className: css$
|
|
8546
|
+
className: css$27.stringField,
|
|
8462
8547
|
"data-expanded": expanded,
|
|
8463
8548
|
children: jsxs("span", {
|
|
8464
8549
|
ref: contentRef,
|
|
8465
8550
|
id: contentsId,
|
|
8466
|
-
className: css$
|
|
8551
|
+
className: css$27.stringText,
|
|
8467
8552
|
children: [
|
|
8468
8553
|
truncated && jsx("span", {
|
|
8469
|
-
className: css$
|
|
8554
|
+
className: css$27.stringToggleSlot,
|
|
8470
8555
|
children: jsxs("button", {
|
|
8471
8556
|
type: "button",
|
|
8472
|
-
className: css$
|
|
8557
|
+
className: css$27.stringToggle,
|
|
8473
8558
|
"aria-label": labels.expandNode,
|
|
8474
8559
|
"aria-expanded": false,
|
|
8475
8560
|
"aria-controls": contentsId,
|
|
@@ -8484,12 +8569,12 @@ function JsonString({ collapsedStringLines, stringWrapping, field, labels, lastE
|
|
|
8484
8569
|
})
|
|
8485
8570
|
}),
|
|
8486
8571
|
field !== void 0 && jsxs("span", {
|
|
8487
|
-
className: css$
|
|
8572
|
+
className: css$27.label,
|
|
8488
8573
|
children: [fieldText(field), ":"]
|
|
8489
8574
|
}),
|
|
8490
8575
|
primitiveValue(value),
|
|
8491
8576
|
!lastElement && jsx("span", {
|
|
8492
|
-
className: css$
|
|
8577
|
+
className: css$27.punctuation,
|
|
8493
8578
|
children: ","
|
|
8494
8579
|
})
|
|
8495
8580
|
]
|
|
@@ -8520,7 +8605,7 @@ function JsonTreeNode({ collapsedStringLines, stringWrapping, field, initialExpa
|
|
|
8520
8605
|
}
|
|
8521
8606
|
};
|
|
8522
8607
|
const row = (children, ariaExpanded) => jsxs("div", {
|
|
8523
|
-
className: css$
|
|
8608
|
+
className: css$27.row,
|
|
8524
8609
|
role: "treeitem",
|
|
8525
8610
|
"aria-expanded": ariaExpanded,
|
|
8526
8611
|
onMouseOver: (event) => {
|
|
@@ -8555,7 +8640,7 @@ function JsonTreeNode({ collapsedStringLines, stringWrapping, field, initialExpa
|
|
|
8555
8640
|
}),
|
|
8556
8641
|
primitiveValue(value),
|
|
8557
8642
|
!lastElement && jsx("span", {
|
|
8558
|
-
className: css$
|
|
8643
|
+
className: css$27.punctuation,
|
|
8559
8644
|
children: ","
|
|
8560
8645
|
})
|
|
8561
8646
|
] }));
|
|
@@ -8567,22 +8652,22 @@ function JsonTreeNode({ collapsedStringLines, stringWrapping, field, initialExpa
|
|
|
8567
8652
|
onToggle: toggle
|
|
8568
8653
|
}),
|
|
8569
8654
|
jsx("span", {
|
|
8570
|
-
className: css$
|
|
8655
|
+
className: css$27.punctuation,
|
|
8571
8656
|
children: open
|
|
8572
8657
|
}),
|
|
8573
8658
|
jsx("span", {
|
|
8574
|
-
className: css$
|
|
8659
|
+
className: css$27.punctuation,
|
|
8575
8660
|
children: close
|
|
8576
8661
|
}),
|
|
8577
8662
|
!lastElement && jsx("span", {
|
|
8578
|
-
className: css$
|
|
8663
|
+
className: css$27.punctuation,
|
|
8579
8664
|
children: ","
|
|
8580
8665
|
})
|
|
8581
8666
|
] }));
|
|
8582
8667
|
return row(jsxs(Fragment, { children: [
|
|
8583
8668
|
jsx("span", {
|
|
8584
8669
|
ref: expanderRef,
|
|
8585
|
-
className: clsx(css$
|
|
8670
|
+
className: clsx(css$27.expander, expanded ? css$27.collapseIcon : css$27.expandIcon),
|
|
8586
8671
|
"data-json-expander": true,
|
|
8587
8672
|
role: "button",
|
|
8588
8673
|
"aria-label": expanded ? labels.collapseNode : labels.expandNode,
|
|
@@ -8596,7 +8681,7 @@ function JsonTreeNode({ collapsedStringLines, stringWrapping, field, initialExpa
|
|
|
8596
8681
|
onKeyDown: onExpanderKeyDown
|
|
8597
8682
|
}),
|
|
8598
8683
|
jsxs("span", {
|
|
8599
|
-
className: css$
|
|
8684
|
+
className: css$27.summary,
|
|
8600
8685
|
children: [
|
|
8601
8686
|
jsx(NodeField, {
|
|
8602
8687
|
field,
|
|
@@ -8604,11 +8689,11 @@ function JsonTreeNode({ collapsedStringLines, stringWrapping, field, initialExpa
|
|
|
8604
8689
|
onToggle: toggle
|
|
8605
8690
|
}),
|
|
8606
8691
|
jsx("span", {
|
|
8607
|
-
className: css$
|
|
8692
|
+
className: css$27.preview,
|
|
8608
8693
|
children: previewValue(value, 0)
|
|
8609
8694
|
}),
|
|
8610
8695
|
!lastElement && jsx("span", {
|
|
8611
|
-
className: css$
|
|
8696
|
+
className: css$27.punctuation,
|
|
8612
8697
|
children: ","
|
|
8613
8698
|
})
|
|
8614
8699
|
]
|
|
@@ -8616,7 +8701,7 @@ function JsonTreeNode({ collapsedStringLines, stringWrapping, field, initialExpa
|
|
|
8616
8701
|
expanded && jsx("ul", {
|
|
8617
8702
|
id: contentsId,
|
|
8618
8703
|
role: "group",
|
|
8619
|
-
className: css$
|
|
8704
|
+
className: css$27.children,
|
|
8620
8705
|
children: entries.map(([key, item], index) => jsx(JsonTreeNode, {
|
|
8621
8706
|
collapsedStringLines,
|
|
8622
8707
|
stringWrapping,
|
|
@@ -8748,17 +8833,17 @@ function JsonTree({ data, label, className, collapsedStringLines = 3, stringWrap
|
|
|
8748
8833
|
onClose: clearCopyTarget
|
|
8749
8834
|
}) : void 0;
|
|
8750
8835
|
return jsx("div", {
|
|
8751
|
-
className: clsx(css$
|
|
8836
|
+
className: clsx(css$27.root, className),
|
|
8752
8837
|
style: { "--json-tree-collapsed-lines": collapsedStringLines },
|
|
8753
8838
|
onMouseOver: handleRootMouseOver,
|
|
8754
8839
|
onMouseLeave: () => {
|
|
8755
8840
|
if (!copyStore.get()?.menuOpen) clearCopyTarget();
|
|
8756
8841
|
},
|
|
8757
8842
|
children: expandTopLevel ? jsxs("div", {
|
|
8758
|
-
className: css$
|
|
8843
|
+
className: css$27.expandedTopLevel,
|
|
8759
8844
|
children: [
|
|
8760
8845
|
jsxs("div", {
|
|
8761
|
-
className: clsx(css$
|
|
8846
|
+
className: clsx(css$27.row, css$27.topLevelBracket),
|
|
8762
8847
|
"data-json-root-row": true,
|
|
8763
8848
|
onMouseOver: (event) => {
|
|
8764
8849
|
event.stopPropagation();
|
|
@@ -8771,13 +8856,13 @@ function JsonTree({ data, label, className, collapsedStringLines = 3, stringWrap
|
|
|
8771
8856
|
path: [],
|
|
8772
8857
|
value: data
|
|
8773
8858
|
}), jsx("span", {
|
|
8774
|
-
className: css$
|
|
8859
|
+
className: css$27.punctuation,
|
|
8775
8860
|
children: rootOpen
|
|
8776
8861
|
})]
|
|
8777
8862
|
}),
|
|
8778
8863
|
jsx("div", {
|
|
8779
8864
|
"aria-label": label,
|
|
8780
|
-
className: clsx(css$
|
|
8865
|
+
className: clsx(css$27.container, css$27.expandedTopLevelContainer),
|
|
8781
8866
|
role: "tree",
|
|
8782
8867
|
children: rootEntries.map(([key, value], index) => jsx(JsonTreeNode, {
|
|
8783
8868
|
collapsedStringLines,
|
|
@@ -8795,16 +8880,16 @@ function JsonTree({ data, label, className, collapsedStringLines = 3, stringWrap
|
|
|
8795
8880
|
}, key))
|
|
8796
8881
|
}),
|
|
8797
8882
|
jsx("div", {
|
|
8798
|
-
className: clsx(css$
|
|
8883
|
+
className: clsx(css$27.row, css$27.topLevelBracket),
|
|
8799
8884
|
children: jsx("span", {
|
|
8800
|
-
className: css$
|
|
8885
|
+
className: css$27.punctuation,
|
|
8801
8886
|
children: rootClose
|
|
8802
8887
|
})
|
|
8803
8888
|
})
|
|
8804
8889
|
]
|
|
8805
8890
|
}) : jsx("div", {
|
|
8806
8891
|
"aria-label": label,
|
|
8807
|
-
className: css$
|
|
8892
|
+
className: css$27.container,
|
|
8808
8893
|
role: "tree",
|
|
8809
8894
|
children: jsx(JsonTreeNode, {
|
|
8810
8895
|
collapsedStringLines,
|
|
@@ -9266,6 +9351,44 @@ function useCopyFeedback(text) {
|
|
|
9266
9351
|
};
|
|
9267
9352
|
}
|
|
9268
9353
|
//#endregion
|
|
9354
|
+
//#region lib/types/CommandText.js
|
|
9355
|
+
/** Selectable command text with keyboard access while horizontally overflowing. */
|
|
9356
|
+
/**
|
|
9357
|
+
* Render command text without adding Tab stops for content that fits.
|
|
9358
|
+
* @param props - Text, localized scrollport name, and owner styling.
|
|
9359
|
+
* @returns A horizontal text scrollport, named and keyboard-focusable only when overflowing.
|
|
9360
|
+
*/
|
|
9361
|
+
function CommandText({ text, label, className }) {
|
|
9362
|
+
const ref = useRef(null);
|
|
9363
|
+
const [overflow, setOverflow] = useState(false);
|
|
9364
|
+
useLayoutEffect(() => {
|
|
9365
|
+
const element = ref.current;
|
|
9366
|
+
/* v8 ignore next -- the span is rendered unconditionally. */
|
|
9367
|
+
if (element === null) return void 0;
|
|
9368
|
+
const measure = () => {
|
|
9369
|
+
setOverflow(element.scrollWidth > element.clientWidth);
|
|
9370
|
+
};
|
|
9371
|
+
measure();
|
|
9372
|
+
const observer = typeof ResizeObserver === "undefined" ? void 0 : new ResizeObserver(measure);
|
|
9373
|
+
observer?.observe(element);
|
|
9374
|
+
const fonts = "fonts" in element.ownerDocument ? element.ownerDocument.fonts : void 0;
|
|
9375
|
+
fonts?.addEventListener("loadingdone", measure);
|
|
9376
|
+
return () => {
|
|
9377
|
+
observer?.disconnect();
|
|
9378
|
+
fonts?.removeEventListener("loadingdone", measure);
|
|
9379
|
+
};
|
|
9380
|
+
}, [text]);
|
|
9381
|
+
return jsx("span", {
|
|
9382
|
+
ref,
|
|
9383
|
+
className: clsx(css$29.text, className),
|
|
9384
|
+
"data-command-text": true,
|
|
9385
|
+
tabIndex: overflow ? 0 : void 0,
|
|
9386
|
+
role: overflow ? "group" : void 0,
|
|
9387
|
+
"aria-label": overflow ? label : void 0,
|
|
9388
|
+
children: text
|
|
9389
|
+
});
|
|
9390
|
+
}
|
|
9391
|
+
//#endregion
|
|
9269
9392
|
//#region lib/types/TerminalBlock.js
|
|
9270
9393
|
/** Output lines shown before the height cap collapses the middle. */
|
|
9271
9394
|
const DEFAULT_TERMINAL_MAX_LINES = 16;
|
|
@@ -9367,67 +9490,68 @@ function TerminalBlock({ command, cwd, home, output, exitCode, signal, running =
|
|
|
9367
9490
|
const { hidden, capped, headLines, tailLines } = headTailCap(lines.length, maxLines, expanded);
|
|
9368
9491
|
const body = !running || !empty;
|
|
9369
9492
|
return jsxs("div", {
|
|
9370
|
-
className: clsx(css$
|
|
9493
|
+
className: clsx(css$28.block, className),
|
|
9371
9494
|
"data-terminal": "",
|
|
9372
9495
|
"data-running": running ? "" : void 0,
|
|
9373
9496
|
"data-body": body ? "" : void 0,
|
|
9374
9497
|
children: [jsxs("div", {
|
|
9375
|
-
className: css$
|
|
9498
|
+
className: css$28.header,
|
|
9376
9499
|
children: [
|
|
9377
9500
|
jsxs("div", {
|
|
9378
|
-
className: css$
|
|
9501
|
+
className: css$28.prompt,
|
|
9379
9502
|
children: [runStateDot && jsx("span", {
|
|
9380
|
-
className: css$
|
|
9503
|
+
className: css$28.runStateLabel,
|
|
9381
9504
|
children: state.label
|
|
9382
9505
|
}), commandLines.map((line, index) => jsxs("div", {
|
|
9383
|
-
className: css$
|
|
9506
|
+
className: css$28.promptLine,
|
|
9384
9507
|
children: [
|
|
9385
9508
|
index === 0 && runStateDot && jsx(StateDot, {
|
|
9386
9509
|
state: state.state,
|
|
9387
|
-
className: css$
|
|
9510
|
+
className: css$28.runState
|
|
9388
9511
|
}),
|
|
9389
9512
|
jsx("span", {
|
|
9390
|
-
className: css$
|
|
9513
|
+
className: css$28.cwd,
|
|
9391
9514
|
children: index > 0 || cwd === void 0 ? "$" : promptLabel(cwd, home)
|
|
9392
9515
|
}),
|
|
9393
|
-
jsx(
|
|
9394
|
-
className: css$
|
|
9395
|
-
|
|
9516
|
+
jsx(CommandText, {
|
|
9517
|
+
className: css$28.command,
|
|
9518
|
+
text: line,
|
|
9519
|
+
label: copy.commandLine(index + 1)
|
|
9396
9520
|
})
|
|
9397
9521
|
]
|
|
9398
9522
|
}, index))]
|
|
9399
9523
|
}),
|
|
9400
9524
|
status !== void 0 && jsx(Pill, {
|
|
9401
|
-
className: css$
|
|
9525
|
+
className: css$28.status,
|
|
9402
9526
|
children: status
|
|
9403
9527
|
}),
|
|
9404
9528
|
(copyText !== void 0 || !running && !empty) && jsx("button", {
|
|
9405
9529
|
type: "button",
|
|
9406
|
-
className: css$
|
|
9530
|
+
className: css$28.copyButton,
|
|
9407
9531
|
onClick: onCopy,
|
|
9408
9532
|
children: copied ? copy.copied : copy.copy
|
|
9409
9533
|
})
|
|
9410
9534
|
]
|
|
9411
9535
|
}), body && (empty ? jsx("div", {
|
|
9412
|
-
className: css$
|
|
9536
|
+
className: css$28.empty,
|
|
9413
9537
|
children: copy.noOutput
|
|
9414
9538
|
}) : jsxs("div", {
|
|
9415
|
-
className: css$
|
|
9539
|
+
className: css$28.output,
|
|
9416
9540
|
children: [
|
|
9417
9541
|
(capped ? lines.slice(0, headLines) : lines).map((line, index) => jsx("div", {
|
|
9418
|
-
className: css$
|
|
9542
|
+
className: css$28.line,
|
|
9419
9543
|
children: renderLine$1(line)
|
|
9420
9544
|
}, index)),
|
|
9421
9545
|
hidden > 0 && jsx("button", {
|
|
9422
9546
|
type: "button",
|
|
9423
|
-
className: css$
|
|
9547
|
+
className: css$28.expand,
|
|
9424
9548
|
"aria-expanded": expanded,
|
|
9425
9549
|
"aria-label": expanded ? copy.collapseAria : copy.expandAria(hidden),
|
|
9426
9550
|
onClick: onToggle,
|
|
9427
9551
|
children: expanded ? copy.collapse : copy.expand(hidden)
|
|
9428
9552
|
}),
|
|
9429
9553
|
capped && lines.slice(lines.length - tailLines).map((line, index) => jsx("div", {
|
|
9430
|
-
className: css$
|
|
9554
|
+
className: css$28.line,
|
|
9431
9555
|
children: renderLine$1(line)
|
|
9432
9556
|
}, index))
|
|
9433
9557
|
]
|
|
@@ -9630,13 +9754,13 @@ function ReadBlock({ label, labels, lines, totalLines, lang, maxLines = 16, clas
|
|
|
9630
9754
|
const tailLines = maxLines - headLines;
|
|
9631
9755
|
const windowed = lines.length < totalLines;
|
|
9632
9756
|
const rows = (slice) => slice.map(([line, spans]) => jsxs("div", {
|
|
9633
|
-
className: css$
|
|
9757
|
+
className: css$30.line,
|
|
9634
9758
|
children: [jsx("span", {
|
|
9635
|
-
className: css$
|
|
9759
|
+
className: css$30.gutter,
|
|
9636
9760
|
"aria-hidden": true,
|
|
9637
9761
|
children: line.number
|
|
9638
9762
|
}), jsx("span", {
|
|
9639
|
-
className: css$
|
|
9763
|
+
className: css$30.content,
|
|
9640
9764
|
children: spans === void 0 ? line.text : renderSpans(spans)
|
|
9641
9765
|
})]
|
|
9642
9766
|
}, line.number));
|
|
@@ -9644,7 +9768,7 @@ function ReadBlock({ label, labels, lines, totalLines, lang, maxLines = 16, clas
|
|
|
9644
9768
|
const paired = lines.map((line, index) => [line, highlighted?.[index]]);
|
|
9645
9769
|
return jsxs("div", {
|
|
9646
9770
|
ref: rootRef,
|
|
9647
|
-
className: clsx(cardCss.card, css$
|
|
9771
|
+
className: clsx(cardCss.card, css$30.block, className),
|
|
9648
9772
|
"data-read": "",
|
|
9649
9773
|
"data-code-wrap": wrapped,
|
|
9650
9774
|
style: gutterStyle,
|
|
@@ -9666,7 +9790,7 @@ function ReadBlock({ label, labels, lines, totalLines, lang, maxLines = 16, clas
|
|
|
9666
9790
|
children: [
|
|
9667
9791
|
rows(capped ? paired.slice(0, headLines) : paired),
|
|
9668
9792
|
hidden > 0 && jsx(FoldToggle, {
|
|
9669
|
-
className: css$
|
|
9793
|
+
className: css$30.expand,
|
|
9670
9794
|
expanded,
|
|
9671
9795
|
hidden,
|
|
9672
9796
|
labels,
|
|
@@ -9688,11 +9812,11 @@ function assertNever(value) {
|
|
|
9688
9812
|
}
|
|
9689
9813
|
/** The dim class per row kind (path/gap chrome vs the diff's own +/- colors). */
|
|
9690
9814
|
const ROW_CLASS = {
|
|
9691
|
-
path: css$
|
|
9692
|
-
del: css$
|
|
9693
|
-
add: css$
|
|
9694
|
-
context: css$
|
|
9695
|
-
gap: css$
|
|
9815
|
+
path: css$31.path,
|
|
9816
|
+
del: css$31.del,
|
|
9817
|
+
add: css$31.add,
|
|
9818
|
+
context: css$31.context,
|
|
9819
|
+
gap: css$31.gap
|
|
9696
9820
|
};
|
|
9697
9821
|
/** Bound synchronous edit-graph search; one replacement consumes two edits. */
|
|
9698
9822
|
const MAX_DIFF_EDIT_LENGTH = 256;
|
|
@@ -9826,7 +9950,7 @@ function DiffBlock({ diffs, labels, maxLines = 16, className }) {
|
|
|
9826
9950
|
const head = capped ? rows.slice(0, headLines) : rows;
|
|
9827
9951
|
const tail = capped ? rows.slice(rows.length - tailLines) : [];
|
|
9828
9952
|
return jsxs("div", {
|
|
9829
|
-
className: clsx(cardCss.card, css$
|
|
9953
|
+
className: clsx(cardCss.card, css$31.block, className),
|
|
9830
9954
|
"data-diff": "",
|
|
9831
9955
|
"data-code-wrap": wrapped,
|
|
9832
9956
|
children: [jsx(CodeToolbar, {
|
|
@@ -9841,21 +9965,21 @@ function DiffBlock({ diffs, labels, maxLines = 16, className }) {
|
|
|
9841
9965
|
setWrapped((value) => !value);
|
|
9842
9966
|
}
|
|
9843
9967
|
}), jsxs("div", {
|
|
9844
|
-
className: css$
|
|
9968
|
+
className: css$31.body,
|
|
9845
9969
|
children: [
|
|
9846
9970
|
head.map((row, index) => jsx("div", {
|
|
9847
|
-
className: clsx(css$
|
|
9971
|
+
className: clsx(css$31.line, ROW_CLASS[row.kind]),
|
|
9848
9972
|
children: row.text
|
|
9849
9973
|
}, index)),
|
|
9850
9974
|
hidden > 0 && jsx(FoldToggle, {
|
|
9851
|
-
className: css$
|
|
9975
|
+
className: css$31.expand,
|
|
9852
9976
|
expanded,
|
|
9853
9977
|
hidden,
|
|
9854
9978
|
labels,
|
|
9855
9979
|
onToggle
|
|
9856
9980
|
}),
|
|
9857
9981
|
tail.map((row, index) => jsx("div", {
|
|
9858
|
-
className: clsx(css$
|
|
9982
|
+
className: clsx(css$31.line, ROW_CLASS[row.kind]),
|
|
9859
9983
|
children: row.text
|
|
9860
9984
|
}, index))
|
|
9861
9985
|
]
|
|
@@ -9985,56 +10109,56 @@ function SearchBlock(props) {
|
|
|
9985
10109
|
const tail = tailHeader === void 0 ? naturalTail : naturalTail.slice(1);
|
|
9986
10110
|
const renderRow = (row) => {
|
|
9987
10111
|
if (row.type === "path") return jsx("div", {
|
|
9988
|
-
className: css$
|
|
10112
|
+
className: css$32.line,
|
|
9989
10113
|
children: row.path
|
|
9990
10114
|
});
|
|
9991
10115
|
if (row.type === "match") return jsxs("div", {
|
|
9992
|
-
className: css$
|
|
10116
|
+
className: css$32.line,
|
|
9993
10117
|
children: [jsxs("span", {
|
|
9994
|
-
className: css$
|
|
10118
|
+
className: css$32.lineNumber,
|
|
9995
10119
|
children: [row.lineNumber, ": "]
|
|
9996
10120
|
}), row.line]
|
|
9997
10121
|
});
|
|
9998
10122
|
return jsxs("button", {
|
|
9999
10123
|
type: "button",
|
|
10000
|
-
className: css$
|
|
10124
|
+
className: css$32.fileHeader,
|
|
10001
10125
|
"aria-expanded": !row.collapsed,
|
|
10002
10126
|
onClick: () => {
|
|
10003
10127
|
toggleFile(row.index);
|
|
10004
10128
|
},
|
|
10005
10129
|
children: [jsx("span", {
|
|
10006
|
-
className: css$
|
|
10130
|
+
className: css$32.filePath,
|
|
10007
10131
|
children: row.path
|
|
10008
10132
|
}), jsx("span", {
|
|
10009
|
-
className: css$
|
|
10133
|
+
className: css$32.fileCount,
|
|
10010
10134
|
children: row.count
|
|
10011
10135
|
})]
|
|
10012
10136
|
});
|
|
10013
10137
|
};
|
|
10014
10138
|
return jsxs("div", {
|
|
10015
|
-
className: clsx(css$
|
|
10139
|
+
className: clsx(css$32.block, className),
|
|
10016
10140
|
"data-search": props.kind,
|
|
10017
10141
|
children: [jsxs("div", {
|
|
10018
|
-
className: css$
|
|
10142
|
+
className: css$32.header,
|
|
10019
10143
|
children: [jsx("span", {
|
|
10020
|
-
className: css$
|
|
10144
|
+
className: css$32.summary,
|
|
10021
10145
|
children: summaryText(props, shown, truncated, total)
|
|
10022
10146
|
}), !empty && jsx("button", {
|
|
10023
10147
|
type: "button",
|
|
10024
|
-
className: css$
|
|
10148
|
+
className: css$32.copyButton,
|
|
10025
10149
|
onClick: onCopy,
|
|
10026
10150
|
children: copied ? props.labels.copied : props.labels.copy
|
|
10027
10151
|
})]
|
|
10028
10152
|
}), empty ? jsx("div", {
|
|
10029
|
-
className: css$
|
|
10153
|
+
className: css$32.empty,
|
|
10030
10154
|
children: props.labels.noResults
|
|
10031
10155
|
}) : jsxs("div", {
|
|
10032
|
-
className: css$
|
|
10156
|
+
className: css$32.body,
|
|
10033
10157
|
children: [
|
|
10034
10158
|
head.map((row) => jsx("div", { children: renderRow(row) }, rowKey(row))),
|
|
10035
10159
|
hidden > 0 && jsx("button", {
|
|
10036
10160
|
type: "button",
|
|
10037
|
-
className: css$
|
|
10161
|
+
className: css$32.expand,
|
|
10038
10162
|
"aria-expanded": expanded,
|
|
10039
10163
|
"aria-label": expanded ? props.labels.collapseAria : props.labels.expandAria(hidden),
|
|
10040
10164
|
onClick: onToggle,
|
|
@@ -10864,7 +10988,7 @@ function CodeBlock({ code, lang, streaming, className, contentRef, lineNumbers =
|
|
|
10864
10988
|
});
|
|
10865
10989
|
}, [copied, trimmed]);
|
|
10866
10990
|
const body = streamedBody !== void 0 ? streamedBody : html === void 0 ? jsx("pre", {
|
|
10867
|
-
className: css$
|
|
10991
|
+
className: css$33.plain,
|
|
10868
10992
|
children: jsx("code", { children: sourceLines === void 0 ? trimmed : sourceLines.map((line, index) => jsxs(Fragment$1, { children: [index > 0 && "\n", jsx("span", {
|
|
10869
10993
|
className: "line",
|
|
10870
10994
|
children: line
|
|
@@ -10872,12 +10996,12 @@ function CodeBlock({ code, lang, streaming, className, contentRef, lineNumbers =
|
|
|
10872
10996
|
}) : jsx("div", { dangerouslySetInnerHTML: { __html: html } });
|
|
10873
10997
|
return jsxs("div", {
|
|
10874
10998
|
ref: rootRef,
|
|
10875
|
-
className: clsx(css$
|
|
10999
|
+
className: clsx(css$33.block, "md-code-block", lineNumbers && css$33.numbered, toolbarLabels !== void 0 && css$33.card, className),
|
|
10876
11000
|
"data-line-numbers": lineNumbers || void 0,
|
|
10877
11001
|
"data-code-wrap": toolbarLabels === void 0 ? void 0 : wrapped,
|
|
10878
11002
|
style: sourceLines === void 0 ? void 0 : { "--dsl-code-block-line-number-width": `${Math.max(2, String(sourceLines.length).length)}ch` },
|
|
10879
11003
|
children: [showHeader && jsx("div", {
|
|
10880
|
-
className: css$
|
|
11004
|
+
className: css$33.bannerWrap,
|
|
10881
11005
|
children: toolbarLabels !== void 0 ? jsx(CodeToolbar, {
|
|
10882
11006
|
lang,
|
|
10883
11007
|
labels: toolbarLabels,
|
|
@@ -10890,16 +11014,16 @@ function CodeBlock({ code, lang, streaming, className, contentRef, lineNumbers =
|
|
|
10890
11014
|
setWrapped((value) => !value);
|
|
10891
11015
|
} : void 0
|
|
10892
11016
|
}) : jsxs("div", {
|
|
10893
|
-
className: css$
|
|
11017
|
+
className: css$33.banner,
|
|
10894
11018
|
"data-code-block-banner": true,
|
|
10895
11019
|
children: [jsx("div", {
|
|
10896
|
-
className: css$
|
|
11020
|
+
className: css$33.infostring,
|
|
10897
11021
|
children: lang ?? ""
|
|
10898
11022
|
}), jsx("div", {
|
|
10899
|
-
className: css$
|
|
11023
|
+
className: css$33.action,
|
|
10900
11024
|
children: jsx("button", {
|
|
10901
11025
|
type: "button",
|
|
10902
|
-
className: css$
|
|
11026
|
+
className: css$33.copyButton,
|
|
10903
11027
|
onClick: onCopy,
|
|
10904
11028
|
children: copied ? copiedLabel : copyLabel
|
|
10905
11029
|
})
|
|
@@ -10907,7 +11031,7 @@ function CodeBlock({ code, lang, streaming, className, contentRef, lineNumbers =
|
|
|
10907
11031
|
})
|
|
10908
11032
|
}), jsx("div", {
|
|
10909
11033
|
ref: contentRef,
|
|
10910
|
-
className: css$
|
|
11034
|
+
className: css$33.content,
|
|
10911
11035
|
"data-code-block-content": true,
|
|
10912
11036
|
children: body
|
|
10913
11037
|
})]
|
|
@@ -11096,31 +11220,34 @@ function ImageLightbox({ src, alt, labels, onClose }) {
|
|
|
11096
11220
|
restoreRef.current?.focus();
|
|
11097
11221
|
};
|
|
11098
11222
|
}, [onClose]);
|
|
11099
|
-
return createPortal(
|
|
11100
|
-
className: css$
|
|
11223
|
+
return createPortal(jsx("div", {
|
|
11224
|
+
className: css$34.backdrop,
|
|
11101
11225
|
role: "dialog",
|
|
11102
11226
|
"aria-modal": "true",
|
|
11103
11227
|
"aria-label": labels.dialog,
|
|
11104
|
-
children:
|
|
11105
|
-
|
|
11106
|
-
|
|
11107
|
-
"
|
|
11108
|
-
|
|
11109
|
-
|
|
11110
|
-
|
|
11111
|
-
|
|
11112
|
-
|
|
11113
|
-
|
|
11114
|
-
|
|
11115
|
-
|
|
11116
|
-
|
|
11117
|
-
|
|
11118
|
-
|
|
11119
|
-
|
|
11120
|
-
|
|
11121
|
-
|
|
11122
|
-
|
|
11123
|
-
|
|
11228
|
+
children: jsxs("div", {
|
|
11229
|
+
className: css$34.stage,
|
|
11230
|
+
children: [
|
|
11231
|
+
jsx("div", {
|
|
11232
|
+
className: css$34.mask,
|
|
11233
|
+
"aria-hidden": "true",
|
|
11234
|
+
onMouseDown: onClose
|
|
11235
|
+
}),
|
|
11236
|
+
jsx("img", {
|
|
11237
|
+
className: css$34.image,
|
|
11238
|
+
src,
|
|
11239
|
+
alt
|
|
11240
|
+
}),
|
|
11241
|
+
jsx("button", {
|
|
11242
|
+
ref: closeRef,
|
|
11243
|
+
type: "button",
|
|
11244
|
+
className: css$34.close,
|
|
11245
|
+
"aria-label": labels.close,
|
|
11246
|
+
onClick: onClose,
|
|
11247
|
+
children: jsx(IconCloseOutlineRegular, { size: 16 })
|
|
11248
|
+
})
|
|
11249
|
+
]
|
|
11250
|
+
})
|
|
11124
11251
|
}), document.body);
|
|
11125
11252
|
}
|
|
11126
11253
|
//#endregion
|
|
@@ -11142,14 +11269,14 @@ function ImagePreview({ src, alt, loadingLabel, failedLabel }) {
|
|
|
11142
11269
|
function Preview({ src, alt, loadingLabel, failedLabel }) {
|
|
11143
11270
|
const [state, setState] = useState("loading");
|
|
11144
11271
|
return jsxs("span", {
|
|
11145
|
-
className: css$
|
|
11272
|
+
className: css$35.frame,
|
|
11146
11273
|
children: [state !== "failed" && jsx("img", {
|
|
11147
11274
|
src,
|
|
11148
11275
|
alt,
|
|
11149
11276
|
loading: "lazy",
|
|
11150
11277
|
decoding: "async",
|
|
11151
11278
|
referrerPolicy: "no-referrer",
|
|
11152
|
-
className: css$
|
|
11279
|
+
className: css$35.image,
|
|
11153
11280
|
"data-ready": state === "ready" || void 0,
|
|
11154
11281
|
onLoad: () => {
|
|
11155
11282
|
setState("ready");
|
|
@@ -11158,7 +11285,7 @@ function Preview({ src, alt, loadingLabel, failedLabel }) {
|
|
|
11158
11285
|
setState("failed");
|
|
11159
11286
|
}
|
|
11160
11287
|
}), state !== "ready" && jsxs("span", {
|
|
11161
|
-
className: css$
|
|
11288
|
+
className: css$35.status,
|
|
11162
11289
|
role: "status",
|
|
11163
11290
|
children: [state === "loading" && jsx(IconLoadingOutlineRegular, { size: 16 }), jsx("span", { children: state === "loading" ? loadingLabel : failedLabel })]
|
|
11164
11291
|
})]
|
|
@@ -11897,7 +12024,7 @@ function SafeLink({ url, label, className }) {
|
|
|
11897
12024
|
children: [jsx(LinkIconMedium, {
|
|
11898
12025
|
kind: "url",
|
|
11899
12026
|
href,
|
|
11900
|
-
className: css$
|
|
12027
|
+
className: css$36.linkIcon
|
|
11901
12028
|
}), label]
|
|
11902
12029
|
});
|
|
11903
12030
|
}
|
|
@@ -11912,20 +12039,20 @@ function SafeLink({ url, label, className }) {
|
|
|
11912
12039
|
*/
|
|
11913
12040
|
function SourceItem({ source, ordinal }) {
|
|
11914
12041
|
return jsxs("li", {
|
|
11915
|
-
className: css$
|
|
12042
|
+
className: css$36.source,
|
|
11916
12043
|
value: ordinal,
|
|
11917
12044
|
children: [
|
|
11918
12045
|
jsx(SafeLink, {
|
|
11919
12046
|
url: source.url,
|
|
11920
12047
|
label: linkLabel(source.url, source.title),
|
|
11921
|
-
className: css$
|
|
12048
|
+
className: css$36.sourceLink
|
|
11922
12049
|
}),
|
|
11923
12050
|
source.snippet !== void 0 && source.snippet !== "" && jsx("div", {
|
|
11924
|
-
className: css$
|
|
12051
|
+
className: css$36.snippet,
|
|
11925
12052
|
children: source.snippet
|
|
11926
12053
|
}),
|
|
11927
12054
|
source.publishedAt !== void 0 && source.publishedAt !== "" && jsx("div", {
|
|
11928
|
-
className: css$
|
|
12055
|
+
className: css$36.published,
|
|
11929
12056
|
children: source.publishedAt
|
|
11930
12057
|
})
|
|
11931
12058
|
]
|
|
@@ -11940,28 +12067,28 @@ function SourceItem({ source, ordinal }) {
|
|
|
11940
12067
|
function WebSearchBlock({ answer, sources, truncated, labels, className }) {
|
|
11941
12068
|
const empty = (answer === void 0 || answer === "") && sources.length === 0;
|
|
11942
12069
|
return jsxs("div", {
|
|
11943
|
-
className: clsx(css$
|
|
12070
|
+
className: clsx(css$36.block, className),
|
|
11944
12071
|
"data-web": "search",
|
|
11945
12072
|
children: [
|
|
11946
12073
|
answer !== void 0 && answer !== "" && jsx("div", {
|
|
11947
|
-
className: css$
|
|
12074
|
+
className: css$36.answer,
|
|
11948
12075
|
children: jsx(MarkdownText, {
|
|
11949
12076
|
text: answer,
|
|
11950
12077
|
labels: labels.markdown
|
|
11951
12078
|
})
|
|
11952
12079
|
}),
|
|
11953
12080
|
empty ? jsx("div", {
|
|
11954
|
-
className: css$
|
|
12081
|
+
className: css$36.empty,
|
|
11955
12082
|
children: labels.noResults
|
|
11956
12083
|
}) : jsx("ol", {
|
|
11957
|
-
className: css$
|
|
12084
|
+
className: css$36.sources,
|
|
11958
12085
|
children: sources.map((source, index) => jsx(SourceItem, {
|
|
11959
12086
|
source,
|
|
11960
12087
|
ordinal: index + 1
|
|
11961
12088
|
}, index))
|
|
11962
12089
|
}),
|
|
11963
12090
|
truncated && jsx("div", {
|
|
11964
|
-
className: css$
|
|
12091
|
+
className: css$36.truncated,
|
|
11965
12092
|
children: labels.sourcesTruncated
|
|
11966
12093
|
})
|
|
11967
12094
|
]
|
|
@@ -11974,23 +12101,23 @@ function WebSearchBlock({ answer, sources, truncated, labels, className }) {
|
|
|
11974
12101
|
*/
|
|
11975
12102
|
function WebFetchBlock({ url, statusCode, truncated, labels, className }) {
|
|
11976
12103
|
return jsxs("div", {
|
|
11977
|
-
className: clsx(css$
|
|
12104
|
+
className: clsx(css$36.block, css$36.fetch, className),
|
|
11978
12105
|
"data-web": "fetch",
|
|
11979
12106
|
children: [jsx(SafeLink, {
|
|
11980
12107
|
url,
|
|
11981
12108
|
label: url,
|
|
11982
|
-
className: css$
|
|
12109
|
+
className: css$36.fetchUrl
|
|
11983
12110
|
}), jsxs("div", {
|
|
11984
|
-
className: css$
|
|
12111
|
+
className: css$36.fetchMeta,
|
|
11985
12112
|
children: [jsxs("span", {
|
|
11986
|
-
className: css$
|
|
12113
|
+
className: css$36.status,
|
|
11987
12114
|
children: [
|
|
11988
12115
|
labels.http,
|
|
11989
12116
|
" ",
|
|
11990
12117
|
statusCode
|
|
11991
12118
|
]
|
|
11992
12119
|
}), truncated && jsx("span", {
|
|
11993
|
-
className: css$
|
|
12120
|
+
className: css$36.truncated,
|
|
11994
12121
|
children: labels.contentTruncated
|
|
11995
12122
|
})]
|
|
11996
12123
|
})]
|
|
@@ -12024,10 +12151,10 @@ function JsonBlock({ label, payload, defaultOpen = false, truncatedLabel }) {
|
|
|
12024
12151
|
truncatedLabel
|
|
12025
12152
|
]);
|
|
12026
12153
|
return jsxs("div", {
|
|
12027
|
-
className: css$
|
|
12154
|
+
className: css$37.root,
|
|
12028
12155
|
children: [jsxs("button", {
|
|
12029
12156
|
type: "button",
|
|
12030
|
-
className: css$
|
|
12157
|
+
className: css$37.toggle,
|
|
12031
12158
|
onClick: () => {
|
|
12032
12159
|
setOpen((v) => !v);
|
|
12033
12160
|
},
|
|
@@ -12037,7 +12164,7 @@ function JsonBlock({ label, payload, defaultOpen = false, truncatedLabel }) {
|
|
|
12037
12164
|
label
|
|
12038
12165
|
]
|
|
12039
12166
|
}), open && jsx("pre", {
|
|
12040
|
-
className: css$
|
|
12167
|
+
className: css$37.body,
|
|
12041
12168
|
children: body
|
|
12042
12169
|
})]
|
|
12043
12170
|
});
|
|
@@ -12378,6 +12505,6 @@ function GuideArtworkFiles({ size = 36, className }) {
|
|
|
12378
12505
|
});
|
|
12379
12506
|
}
|
|
12380
12507
|
//#endregion
|
|
12381
|
-
export { BrandWordmark, Button, CODE_HIGHLIGHT_EXTENSIONS, Checkbox, CodeBlock, ConnectionIndicator, DEFAULT_DIFF_MAX_LINES, DEFAULT_READ_MAX_LINES, DEFAULT_SEARCH_MAX_LINES, DEFAULT_TERMINAL_MAX_LINES, DiffBlock, DisclosureRow, FISH_LOGO_PATH, FISH_LOGO_VIEWBOX, FileTypeIcon, FishLogo, GuideArtworkBrowser, GuideArtworkFiles, HoverCard, ICON_MEDIUM_STROKE, ICON_REGULAR_STROKE, IconAgentPresetOutlineMedium, IconAgentPresetOutlineRegular, IconAlarmClockOutlineMedium, IconAlarmClockOutlineRegular, IconApiOutlineMedium, IconApiOutlineRegular, IconArchiveCheckOutlineMedium, IconArchiveCheckOutlineRegular, IconArchiveOffOutlineMedium, IconArchiveOffOutlineRegular, IconArchiveOutlineMedium, IconArchiveOutlineRegular, IconBranchOutlineMedium, IconBranchOutlineRegular, IconBrowseOutlineMedium, IconBrowseOutlineRegular, IconCheckCircleFillMedium, IconCheckCircleFillRegular, IconCheckCircleOutlineMedium, IconCheckCircleOutlineRegular, IconCheckOutlineMedium, IconCheckOutlineRegular, IconChecklistOutlineMedium, IconChecklistOutlineRegular, IconChevronDownOutlineMedium, IconChevronDownOutlineRegular, IconChevronLeftOutlineMedium, IconChevronLeftOutlineRegular, IconChevronRightOutlineMedium, IconChevronRightOutlineRegular, IconChevronUpOutlineMedium, IconChevronUpOutlineRegular, IconChevronsUpDownOutlineMedium, IconChevronsUpDownOutlineRegular, IconClockOutlineMedium, IconClockOutlineRegular, IconCloseCircleFillMedium, IconCloseCircleFillRegular, IconCloseFillMedium, IconCloseFillRegular, IconCloseOutlineMedium, IconCloseOutlineRegular, IconCodeOutlineMedium, IconCodeOutlineRegular, IconCompactOutlineMedium, IconCompactOutlineRegular, IconCompareSplitOutlineMedium, IconCompareSplitOutlineRegular, IconContextInjectionOutlineMedium, IconContextInjectionOutlineRegular, IconCopyOutlineMedium, IconCopyOutlineRegular, IconCordisPluginOutlineMedium, IconCordisPluginOutlineRegular, IconDarkOutlineMedium, IconDarkOutlineRegular, IconDataOutlineMedium, IconDataOutlineRegular, IconDatabaseOutlineMedium, IconDatabaseOutlineRegular, IconDeliverDocMedium, IconDeliverDocRegular, IconDislikeFillMedium, IconDislikeFillRegular, IconDislikeOutlineMedium, IconDislikeOutlineRegular, IconDownloadOutlineMedium, IconDownloadOutlineRegular, IconEditOutlineMedium, IconEditOutlineRegular, IconEllipsisOutlineMedium, IconEllipsisOutlineRegular, IconEnhanceOutlineMedium, IconEnhanceOutlineRegular, IconFlatListOutlineMedium, IconFlatListOutlineRegular, IconFolderCloseMedium, IconFolderCloseRegular, IconFolderOpenMedium, IconFolderOpenOutlineMedium, IconFolderOpenOutlineRegular, IconFolderOpenRegular, IconFollowsystemOutlineMedium, IconFollowsystemOutlineRegular, IconFullscreenOutlineMedium, IconFullscreenOutlineRegular, IconGaugeOutlineMedium, IconGaugeOutlineRegular, IconGlobeOutlineMedium, IconGlobeOutlineRegular, IconGoalOutlineMedium, IconGoalOutlineRegular, IconInfoOutlineMedium, IconInfoOutlineRegular, IconInspectOutlineMedium, IconInspectOutlineRegular, IconLightOutlineMedium, IconLightOutlineRegular, IconLikeFillMedium, IconLikeFillRegular, IconLikeOutlineMedium, IconLikeOutlineRegular, IconLinkOutlineMedium, IconLinkOutlineRegular, IconListPenOutlineMedium, IconListPenOutlineRegular, IconLoadingOutlineMedium, IconLoadingOutlineRegular, IconMicrophoneOutlineMedium, IconMicrophoneOutlineRegular, IconNewChatOutlineMedium, IconNewChatOutlineRegular, IconNowrapFillMedium, IconNowrapFillRegular, IconPanelLeftOutlineMedium, IconPanelLeftOutlineRegular, IconPaperPlaneOutlineMedium, IconPaperPlaneOutlineRegular, IconPaperclipOutlineMedium, IconPaperclipOutlineRegular, IconPauseOutlineMedium, IconPauseOutlineRegular, IconPersonalizationOutlineMedium, IconPersonalizationOutlineRegular, IconPinFillMedium, IconPinFillRegular, IconPinOutlineMedium, IconPinOutlineRegular, IconPlanOutlineMedium, IconPlanOutlineRegular, IconPlayOutlineMedium, IconPlayOutlineRegular, IconPluginPinwheelOutlineMedium, IconPluginPinwheelOutlineRegular, IconPlusOutlineMedium, IconPlusOutlineRegular, IconProjectAddOutlineMedium, IconProjectAddOutlineRegular, IconQuestionOutlineMedium, IconQuestionOutlineRegular, IconQueueOutlineMedium, IconQueueOutlineRegular, IconRefreshOutlineMedium, IconRefreshOutlineRegular, IconRightUpOutlineMedium, IconRightUpOutlineRegular, IconSearchOutlineMedium, IconSearchOutlineRegular, IconSendOutlineMedium, IconSendOutlineRegular, IconSettingsOutlineMedium, IconSettingsOutlineRegular, IconShareOutlineMedium, IconShareOutlineRegular, IconShieldOutlineMedium, IconShieldOutlineRegular, IconSkillOutlineMedium, IconSkillOutlineRegular, IconSlidersTwoOutlineMedium, IconSlidersTwoOutlineRegular, IconSparkleMedium, IconSparkleRegular, IconStopFillMedium, IconStopFillRegular, IconThinkOutlineMedium, IconThinkOutlineRegular, IconTrashOutlineMedium, IconTrashOutlineRegular, IconTreeCornerMedium, IconTreeCornerRegular, IconTriangleRightFillMedium, IconTriangleRightFillRegular, IconUnarchiveOutlineMedium, IconUnarchiveOutlineRegular, IconUserOutlineMedium, IconUserOutlineRegular, IconUsersOutlineMedium, IconUsersOutlineRegular, IconWarningOutlineMedium, IconWarningOutlineRegular, IconWarningTriangleOutlineMedium, IconWarningTriangleOutlineRegular, IconWorkspaceTreeOutlineMedium, IconWorkspaceTreeOutlineRegular, IconWrapFillMedium, IconWrapFillRegular, IconWrapLinesOutlineMedium, IconWrapLinesOutlineRegular, ImageLightbox, Input, JsonBlock, JsonTree, LinkIconMedium, LinkIconRegular, MarkdownDelegateProvider, MarkdownText, Menu, MenuGroup, MenuItemButton, MenuSurface, Modal, PathLabel, PermissionIconFullAccessMedium, PermissionIconFullAccessRegular, PermissionIconReadOnlyMedium, PermissionIconReadOnlyRegular, PermissionIconWorkspaceWriteMedium, PermissionIconWorkspaceWriteRegular, Pill, PluginArtworkDefault, PluginArtworkLoop, PluginArtworkSearch, PluginArtworkSubagent, PluginArtworkTerminal, ReadBlock, ReferenceIconMedium, ReferenceIconRegular, RiskConfirmation, SHIELD_OUTLINE_PATH, SearchBlock, SegmentedControl, SegmentedTabs, SettingsForm, SettingsFormModel, SettingsSecretField, SettingsValueField, ShortcutKeys, StateDot, Switch, Tag, TerminalBlock, TextShimmer, Toast, Tooltip, WebBlock, classifyFileType, classifyLinkPath, closeTopModal, diffTotals, extractMarkdownPlainText, fileExtension, fileSizeText, focusWithoutRing, isBehindModal, isDarwinDesktop, languageForPath, modalSelector, observeComposition, observeStickyMenuGroups, pointerModality, projectUserText, rankByName, relativeTime, settingsNumberField, settingsTextField, useAnchoredMaxHeight, useAnchoredPosition, useCodeHighlighter, useDismissOnOutsidePointer, useModalLayer, writeClipboard };
|
|
12508
|
+
export { BrandWordmark, Button, CODE_HIGHLIGHT_EXTENSIONS, Checkbox, CodeBlock, CommandText, ConnectionIndicator, DEFAULT_DIFF_MAX_LINES, DEFAULT_READ_MAX_LINES, DEFAULT_SEARCH_MAX_LINES, DEFAULT_TERMINAL_MAX_LINES, DiffBlock, DisclosureRow, FISH_LOGO_PATH, FISH_LOGO_VIEWBOX, FileTypeIcon, FishLogo, GuideArtworkBrowser, GuideArtworkFiles, HoverCard, ICON_MEDIUM_STROKE, ICON_REGULAR_STROKE, IconAgentPresetOutlineMedium, IconAgentPresetOutlineRegular, IconAlarmClockOutlineMedium, IconAlarmClockOutlineRegular, IconApiOutlineMedium, IconApiOutlineRegular, IconArchiveCheckOutlineMedium, IconArchiveCheckOutlineRegular, IconArchiveOffOutlineMedium, IconArchiveOffOutlineRegular, IconArchiveOutlineMedium, IconArchiveOutlineRegular, IconBranchOutlineMedium, IconBranchOutlineRegular, IconBrowseOutlineMedium, IconBrowseOutlineRegular, IconCheckCircleFillMedium, IconCheckCircleFillRegular, IconCheckCircleOutlineMedium, IconCheckCircleOutlineRegular, IconCheckOutlineMedium, IconCheckOutlineRegular, IconChecklistOutlineMedium, IconChecklistOutlineRegular, IconChevronDownOutlineMedium, IconChevronDownOutlineRegular, IconChevronLeftOutlineMedium, IconChevronLeftOutlineRegular, IconChevronRightOutlineMedium, IconChevronRightOutlineRegular, IconChevronUpOutlineMedium, IconChevronUpOutlineRegular, IconChevronsUpDownOutlineMedium, IconChevronsUpDownOutlineRegular, IconClockOutlineMedium, IconClockOutlineRegular, IconCloseCircleFillMedium, IconCloseCircleFillRegular, IconCloseFillMedium, IconCloseFillRegular, IconCloseOutlineMedium, IconCloseOutlineRegular, IconCodeOutlineMedium, IconCodeOutlineRegular, IconCompactOutlineMedium, IconCompactOutlineRegular, IconCompareSplitOutlineMedium, IconCompareSplitOutlineRegular, IconContextInjectionOutlineMedium, IconContextInjectionOutlineRegular, IconCopyOutlineMedium, IconCopyOutlineRegular, IconCordisPluginOutlineMedium, IconCordisPluginOutlineRegular, IconDarkOutlineMedium, IconDarkOutlineRegular, IconDataOutlineMedium, IconDataOutlineRegular, IconDatabaseOutlineMedium, IconDatabaseOutlineRegular, IconDeliverDocMedium, IconDeliverDocRegular, IconDislikeFillMedium, IconDislikeFillRegular, IconDislikeOutlineMedium, IconDislikeOutlineRegular, IconDownloadOutlineMedium, IconDownloadOutlineRegular, IconEditOutlineMedium, IconEditOutlineRegular, IconEllipsisOutlineMedium, IconEllipsisOutlineRegular, IconEnhanceOutlineMedium, IconEnhanceOutlineRegular, IconFlatListOutlineMedium, IconFlatListOutlineRegular, IconFolderCloseMedium, IconFolderCloseRegular, IconFolderOpenMedium, IconFolderOpenOutlineMedium, IconFolderOpenOutlineRegular, IconFolderOpenRegular, IconFollowsystemOutlineMedium, IconFollowsystemOutlineRegular, IconFullscreenOutlineMedium, IconFullscreenOutlineRegular, IconGaugeOutlineMedium, IconGaugeOutlineRegular, IconGlobeOutlineMedium, IconGlobeOutlineRegular, IconGoalOutlineMedium, IconGoalOutlineRegular, IconInfoOutlineMedium, IconInfoOutlineRegular, IconInspectOutlineMedium, IconInspectOutlineRegular, IconLightOutlineMedium, IconLightOutlineRegular, IconLikeFillMedium, IconLikeFillRegular, IconLikeOutlineMedium, IconLikeOutlineRegular, IconLinkOutlineMedium, IconLinkOutlineRegular, IconListPenOutlineMedium, IconListPenOutlineRegular, IconLoadingOutlineMedium, IconLoadingOutlineRegular, IconMicrophoneOutlineMedium, IconMicrophoneOutlineRegular, IconNewChatOutlineMedium, IconNewChatOutlineRegular, IconNowrapFillMedium, IconNowrapFillRegular, IconPanelLeftOutlineMedium, IconPanelLeftOutlineRegular, IconPaperPlaneOutlineMedium, IconPaperPlaneOutlineRegular, IconPaperclipOutlineMedium, IconPaperclipOutlineRegular, IconPauseOutlineMedium, IconPauseOutlineRegular, IconPersonalizationOutlineMedium, IconPersonalizationOutlineRegular, IconPinFillMedium, IconPinFillRegular, IconPinOutlineMedium, IconPinOutlineRegular, IconPlanOutlineMedium, IconPlanOutlineRegular, IconPlayOutlineMedium, IconPlayOutlineRegular, IconPluginPinwheelOutlineMedium, IconPluginPinwheelOutlineRegular, IconPlusOutlineMedium, IconPlusOutlineRegular, IconProjectAddOutlineMedium, IconProjectAddOutlineRegular, IconQuestionOutlineMedium, IconQuestionOutlineRegular, IconQueueOutlineMedium, IconQueueOutlineRegular, IconRefreshOutlineMedium, IconRefreshOutlineRegular, IconRightUpOutlineMedium, IconRightUpOutlineRegular, IconSearchOutlineMedium, IconSearchOutlineRegular, IconSendOutlineMedium, IconSendOutlineRegular, IconSettingsOutlineMedium, IconSettingsOutlineRegular, IconShareOutlineMedium, IconShareOutlineRegular, IconShieldOutlineMedium, IconShieldOutlineRegular, IconSkillOutlineMedium, IconSkillOutlineRegular, IconSlidersTwoOutlineMedium, IconSlidersTwoOutlineRegular, IconSparkleMedium, IconSparkleRegular, IconStopFillMedium, IconStopFillRegular, IconThinkOutlineMedium, IconThinkOutlineRegular, IconTrashOutlineMedium, IconTrashOutlineRegular, IconTreeCornerMedium, IconTreeCornerRegular, IconTriangleRightFillMedium, IconTriangleRightFillRegular, IconUnarchiveOutlineMedium, IconUnarchiveOutlineRegular, IconUserOutlineMedium, IconUserOutlineRegular, IconUsersOutlineMedium, IconUsersOutlineRegular, IconWarningOutlineMedium, IconWarningOutlineRegular, IconWarningTriangleOutlineMedium, IconWarningTriangleOutlineRegular, IconWorkspaceTreeOutlineMedium, IconWorkspaceTreeOutlineRegular, IconWrapFillMedium, IconWrapFillRegular, IconWrapLinesOutlineMedium, IconWrapLinesOutlineRegular, ImageLightbox, InlineEditor, Input, JsonBlock, JsonTree, LinkIconMedium, LinkIconRegular, MarkdownDelegateProvider, MarkdownText, Menu, MenuGroup, MenuItemButton, MenuSurface, Modal, PathLabel, PermissionIconFullAccessMedium, PermissionIconFullAccessRegular, PermissionIconReadOnlyMedium, PermissionIconReadOnlyRegular, PermissionIconWorkspaceWriteMedium, PermissionIconWorkspaceWriteRegular, Pill, PluginArtworkDefault, PluginArtworkLoop, PluginArtworkSearch, PluginArtworkSubagent, PluginArtworkTerminal, ReadBlock, ReferenceIconMedium, ReferenceIconRegular, RiskConfirmation, SHIELD_OUTLINE_PATH, SearchBlock, SegmentedControl, SegmentedTabs, SettingsForm, SettingsFormModel, SettingsSecretField, SettingsValueField, ShortcutKeys, StateDot, Switch, Tag, TerminalBlock, TextShimmer, Toast, Tooltip, WebBlock, classifyFileType, classifyLinkPath, closeTopModal, diffTotals, extractMarkdownPlainText, fileExtension, fileSizeText, focusWithoutRing, isBehindModal, isDarwinDesktop, languageForPath, modalSelector, observeComposition, observeStickyMenuGroups, pointerModality, projectUserText, rankByName, relativeTime, settingsNumberField, settingsTextField, useAnchoredMaxHeight, useAnchoredPosition, useCodeHighlighter, useDismissOnOutsidePointer, useModalLayer, writeClipboard };
|
|
12382
12509
|
|
|
12383
12510
|
//# sourceMappingURL=index.js.map
|