@djangocfg/ui-tools 2.1.355 → 2.1.357
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/dist/ChatRoot-6U7633X3.mjs +5 -0
- package/dist/{ChatRoot-2KT32NFJ.cjs.map → ChatRoot-6U7633X3.mjs.map} +1 -1
- package/dist/ChatRoot-HARTIAJ5.cjs +14 -0
- package/dist/{ChatRoot-VSIBJLE2.mjs.map → ChatRoot-HARTIAJ5.cjs.map} +1 -1
- package/dist/{DocsLayout-VFPPNKSQ.mjs → DocsLayout-HGYIJTF3.mjs} +4 -4
- package/dist/{DocsLayout-VFPPNKSQ.mjs.map → DocsLayout-HGYIJTF3.mjs.map} +1 -1
- package/dist/{DocsLayout-N5ZJZPBY.cjs → DocsLayout-OQHDNKZE.cjs} +11 -11
- package/dist/{DocsLayout-N5ZJZPBY.cjs.map → DocsLayout-OQHDNKZE.cjs.map} +1 -1
- package/dist/JsonTree-43PQAJKY.mjs +5 -0
- package/dist/{JsonTree-55625VVH.mjs.map → JsonTree-43PQAJKY.mjs.map} +1 -1
- package/dist/JsonTree-X6W5YEVY.cjs +11 -0
- package/dist/{JsonTree-DCM5QGWF.cjs.map → JsonTree-X6W5YEVY.cjs.map} +1 -1
- package/dist/TreeRoot-5COOOSWG.mjs +4 -0
- package/dist/{TreeRoot-N72OYKXU.cjs.map → TreeRoot-5COOOSWG.mjs.map} +1 -1
- package/dist/TreeRoot-AABP2J6Y.cjs +19 -0
- package/dist/{TreeRoot-VGAIXCUA.mjs.map → TreeRoot-AABP2J6Y.cjs.map} +1 -1
- package/dist/{chunk-5G5YBFS6.mjs → chunk-ECONRHIG.mjs} +7 -7
- package/dist/chunk-ECONRHIG.mjs.map +1 -0
- package/dist/{chunk-IEEAENLX.cjs → chunk-FVVF7VCD.cjs} +14 -10
- package/dist/chunk-FVVF7VCD.cjs.map +1 -0
- package/dist/{chunk-2ZLKZ5VR.mjs → chunk-NWUT327A.mjs} +110 -32
- package/dist/chunk-NWUT327A.mjs.map +1 -0
- package/dist/{chunk-2SXDCXLK.cjs → chunk-OPKFKTIN.cjs} +17 -15
- package/dist/chunk-OPKFKTIN.cjs.map +1 -0
- package/dist/{chunk-SGP7V2UW.cjs → chunk-T3MWM23F.cjs} +6 -6
- package/dist/chunk-T3MWM23F.cjs.map +1 -0
- package/dist/{chunk-XJ7CXHSU.mjs → chunk-WGU5BEZX.mjs} +16 -14
- package/dist/chunk-WGU5BEZX.mjs.map +1 -0
- package/dist/{chunk-B5AWZOHJ.cjs → chunk-XACCHZH2.cjs} +119 -41
- package/dist/chunk-XACCHZH2.cjs.map +1 -0
- package/dist/{chunk-G5IEC7SR.mjs → chunk-ZL7FH4NW.mjs} +15 -11
- package/dist/chunk-ZL7FH4NW.mjs.map +1 -0
- package/dist/index.cjs +93 -93
- package/dist/index.d.cts +39 -4
- package/dist/index.d.ts +39 -4
- package/dist/index.mjs +10 -10
- package/dist/tree/index.cjs +33 -33
- package/dist/tree/index.d.cts +34 -4
- package/dist/tree/index.d.ts +34 -4
- package/dist/tree/index.mjs +1 -1
- package/package.json +6 -6
- package/src/components/markdown/MarkdownMessage/ActionRow.tsx +8 -3
- package/src/components/markdown/MarkdownMessage/ChatMessageRow.tsx +10 -4
- package/src/components/markdown/MarkdownMessage/CodeBlock.tsx +18 -6
- package/src/components/markdown/MarkdownMessage/CollapseToggle.tsx +13 -6
- package/src/components/markdown/MarkdownMessage/MarkdownMessage.tsx +10 -3
- package/src/tools/Chat/components/ChatRoot.tsx +12 -4
- package/src/tools/Chat/components/MessageActions.tsx +13 -3
- package/src/tools/Chat/components/StreamingIndicator.tsx +11 -1
- package/src/tools/JsonTree/components/JsonContent.tsx +13 -4
- package/src/tools/JsonTree/components/JsonToolbar.tsx +10 -3
- package/src/tools/JsonTree/index.tsx +10 -3
- package/src/tools/Tree/components/TreeChevron.tsx +10 -1
- package/src/tools/Tree/components/TreeIcon.tsx +11 -1
- package/src/tools/Tree/components/TreeLabel.tsx +10 -1
- package/src/tools/Tree/components/TreeRow.tsx +11 -1
- package/dist/ChatRoot-2KT32NFJ.cjs +0 -14
- package/dist/ChatRoot-VSIBJLE2.mjs +0 -5
- package/dist/JsonTree-55625VVH.mjs +0 -5
- package/dist/JsonTree-DCM5QGWF.cjs +0 -11
- package/dist/TreeRoot-N72OYKXU.cjs +0 -19
- package/dist/TreeRoot-VGAIXCUA.mjs +0 -4
- package/dist/chunk-2SXDCXLK.cjs.map +0 -1
- package/dist/chunk-2ZLKZ5VR.mjs.map +0 -1
- package/dist/chunk-5G5YBFS6.mjs.map +0 -1
- package/dist/chunk-B5AWZOHJ.cjs.map +0 -1
- package/dist/chunk-G5IEC7SR.mjs.map +0 -1
- package/dist/chunk-IEEAENLX.cjs.map +0 -1
- package/dist/chunk-SGP7V2UW.cjs.map +0 -1
- package/dist/chunk-XJ7CXHSU.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tools/JsonTree/components/JsonContent.tsx","../src/tools/JsonTree/hooks/useJsonExpand.ts","../src/tools/JsonTree/types.ts","../src/tools/JsonTree/index.tsx"],"names":["memo","jsxs","jsx","__name","JSONTree","useState","useRef","useMemo","FloatingToolbar","ExpandAction","Fragment","CopyAction","DownloadAction"],"mappings":"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","file":"chunk-T3MWM23F.cjs","sourcesContent":["'use client';\n\nimport React, { memo } from 'react';\nimport { CommonExternalProps, JSONTree } from 'react-json-tree';\n\nconst JSON_TREE_THEME = {\n scheme: 'djangocfg-dark',\n base00: 'transparent',\n base01: '#1a1a1a',\n base02: '#2a2a2a',\n base03: '#6b7280',\n base04: '#9ca3af',\n base05: '#e5e7eb',\n base06: '#f3f4f6',\n base07: '#ffffff',\n base08: '#ef4444', // null, undefined\n base09: '#f97316', // numbers\n base0A: '#eab308', // strings\n base0B: '#22c55e', // booleans\n base0C: '#06b6d4', // dates, regex\n base0D: '#3b82f6', // keys\n base0E: '#a855f7', // functions\n base0F: '#f43f5e', // deprecations\n};\n\ninterface JsonContentProps {\n data: unknown;\n renderKey: number;\n title?: string;\n showTitle: boolean;\n padding: string;\n collectionLimit: number;\n preserveKeyOrder: boolean;\n showCollectionInfo: boolean;\n maxStringLength: number;\n fontSize?: string;\n shouldExpandNodeInitially: (keyPath: readonly (string | number)[], nodeData: unknown, level: number) => boolean;\n jsonTreeProps?: Partial<CommonExternalProps>;\n}\n\n/**\n * JsonContent — react-json-tree wrapper with theming.\n *\n * Memoised: re-renders only when any prop changes. `data` is compared\n * by reference — the parent should not mutate the object in place.\n */\nconst JsonContent = memo(({\n data,\n renderKey,\n title,\n showTitle,\n padding,\n collectionLimit,\n preserveKeyOrder,\n showCollectionInfo,\n maxStringLength,\n fontSize,\n shouldExpandNodeInitially,\n jsonTreeProps = {},\n}: JsonContentProps) => {\n const getItemString = showCollectionInfo\n ? (nodeType: string, nodeData: unknown) => {\n if (nodeType === 'Array') {\n const length = Array.isArray(nodeData) ? nodeData.length : 0;\n return length > 0 ? <span className=\"text-muted-foreground text-xs\">({length})</span> : null;\n }\n if (nodeType === 'Object') {\n const keys = nodeData && typeof nodeData === 'object' ? Object.keys(nodeData) : [];\n return keys.length > 0 ? <span className=\"text-muted-foreground text-xs\">{`{${keys.length}}`}</span> : null;\n }\n return null;\n }\n : () => null;\n\n const postprocessValue = (value: unknown) => {\n if (typeof value === 'string' && value.length > maxStringLength) {\n return value.substring(0, maxStringLength) + '... (truncated)';\n }\n return value;\n };\n\n const isCustomNode = (value: unknown) =>\n typeof value === 'string' && (value.startsWith('http://') || value.startsWith('https://'));\n\n return (\n <div className={`overflow-auto h-full ${padding}`} style={fontSize ? { fontSize } : undefined}>\n {showTitle && title && (\n <h6 className=\"text-sm font-semibold text-foreground mb-2\">{title}</h6>\n )}\n <JSONTree\n key={renderKey}\n data={data}\n theme={JSON_TREE_THEME}\n invertTheme={false}\n hideRoot={true}\n shouldExpandNodeInitially={shouldExpandNodeInitially}\n getItemString={getItemString}\n postprocessValue={postprocessValue}\n isCustomNode={isCustomNode}\n collectionLimit={collectionLimit}\n sortObjectKeys={!preserveKeyOrder}\n {...jsonTreeProps}\n />\n </div>\n );\n});\n\nexport { JsonContent };\nexport default JsonContent;\n","'use client';\n\nimport { useState } from 'react';\n\ninterface UseJsonExpandOptions {\n maxAutoExpandDepth: number;\n maxAutoExpandArrayItems: number;\n maxAutoExpandObjectKeys: number;\n}\n\n/**\n * Manages expand/collapse state for JsonTree.\n * null = smart auto-expand mode (uses depth/size heuristics)\n * true = all expanded (user override)\n * false = all collapsed (user override)\n */\nexport function useJsonExpand({\n maxAutoExpandDepth,\n maxAutoExpandArrayItems,\n maxAutoExpandObjectKeys,\n}: UseJsonExpandOptions) {\n const [expandAll, setExpandAll] = useState<boolean | null>(null);\n const [renderKey, setRenderKey] = useState(0);\n\n // Reflects the effective visual state — used to show correct icon\n const isExpanded = expandAll === true || (expandAll === null && maxAutoExpandDepth > 0);\n\n const toggle = () => {\n setExpandAll(isExpanded ? false : true);\n setRenderKey(prev => prev + 1);\n };\n\n const shouldExpandNodeInitially = (\n _keyPath: readonly (string | number)[],\n nodeData: unknown,\n level: number,\n ): boolean => {\n if (expandAll === true) return true;\n if (expandAll === false) return false;\n // null = auto mode\n if (level <= maxAutoExpandDepth) return true;\n if (Array.isArray(nodeData) && nodeData.length <= maxAutoExpandArrayItems) return true;\n if (nodeData && typeof nodeData === 'object' && !Array.isArray(nodeData)) {\n return Object.keys(nodeData).length <= maxAutoExpandObjectKeys;\n }\n return false;\n };\n\n return { isExpanded, toggle, renderKey, shouldExpandNodeInitially };\n}\n","import { CommonExternalProps } from 'react-json-tree';\n\nexport type JsonTreeMode = 'full' | 'compact' | 'inline';\n\nexport interface JsonTreeConfig {\n /** Maximum depth to expand automatically (default: 2) */\n maxAutoExpandDepth?: number;\n /** Maximum items in array to auto-expand (default: 10) */\n maxAutoExpandArrayItems?: number;\n /** Maximum object keys to auto-expand (default: 5) */\n maxAutoExpandObjectKeys?: number;\n /** Maximum string length before truncation (default: 200) */\n maxStringLength?: number;\n /** Collection limit for performance (default: 50) */\n collectionLimit?: number;\n /** Whether to show collection info (array length, object keys count) */\n showCollectionInfo?: boolean;\n /** Whether to show expand/collapse all buttons */\n showExpandControls?: boolean;\n /** Whether to show copy/download buttons */\n showActionButtons?: boolean;\n /** Custom CSS classes for the container */\n className?: string;\n /** Whether to preserve object key order (default: true) */\n preserveKeyOrder?: boolean;\n /** Font size for tree nodes (default: '12px' for compact/inline, '13px' for full) */\n fontSize?: string;\n}\n\nexport interface JsonTreeComponentProps {\n title?: string;\n data: unknown;\n /**\n * Extra top offset in px for the floating toolbar — use when your layout\n * has a non-sticky header that useNavbarHeight cannot auto-detect.\n * Adds to the auto-detected navbar height.\n */\n toolbarOffset?: number;\n /**\n * Display mode:\n * - \"full\" (default): With toolbar and border\n * - \"compact\": No toolbar, subtle styling\n * - \"inline\": Minimal, no border\n */\n mode?: JsonTreeMode;\n config?: JsonTreeConfig;\n /** Override for react-json-tree props */\n jsonTreeProps?: Partial<CommonExternalProps>;\n}\n\nexport const MODE_PRESETS: Record<JsonTreeMode, Partial<JsonTreeConfig>> = {\n full: {\n showExpandControls: true,\n showActionButtons: true,\n showCollectionInfo: true,\n fontSize: '13px',\n },\n compact: {\n showExpandControls: false,\n showActionButtons: false,\n showCollectionInfo: true,\n fontSize: '11px',\n maxAutoExpandDepth: 1,\n },\n inline: {\n showExpandControls: false,\n showActionButtons: false,\n showCollectionInfo: false,\n fontSize: '11px',\n maxAutoExpandDepth: 1,\n },\n};\n","'use client';\n\nimport React, { memo, useMemo, useRef } from 'react';\n\nimport { FloatingToolbar } from '../../components/FloatingToolbar';\nimport { CopyAction, DownloadAction, ExpandAction } from '../../components/FloatingToolbar/actions';\nimport { JsonContent } from './components/JsonContent';\nimport { useJsonExpand } from './hooks/useJsonExpand';\nimport { JsonTreeComponentProps, MODE_PRESETS } from './types';\n\nexport type { Language } from 'prism-react-renderer';\nexport type { JsonTreeConfig, JsonTreeComponentProps, JsonTreeMode } from './types';\n\n/**\n * JsonTreeComponent — JSON viewer with expand/collapse, copy, download.\n *\n * Memoised: re-renders only when `title`, `data`, `mode`, `config` or\n * `jsonTreeProps` change. `data` is compared by reference — the parent\n * should not mutate the object in place.\n */\nconst JsonTreeComponent = memo(({\n title,\n data,\n mode = 'full',\n config = {},\n jsonTreeProps = {},\n}: JsonTreeComponentProps) => {\n const containerRef = useRef<HTMLDivElement>(null);\n\n const mergedConfig = useMemo(() => ({ ...MODE_PRESETS[mode], ...config }), [mode, config]);\n\n const {\n maxAutoExpandDepth = 2,\n maxAutoExpandArrayItems = 10,\n maxAutoExpandObjectKeys = 5,\n maxStringLength = 200,\n collectionLimit = 50,\n showCollectionInfo = true,\n showExpandControls = true,\n showActionButtons = true,\n className = '',\n preserveKeyOrder = true,\n fontSize,\n } = mergedConfig;\n\n const { isExpanded, toggle, renderKey, shouldExpandNodeInitially } = useJsonExpand({\n maxAutoExpandDepth,\n maxAutoExpandArrayItems,\n maxAutoExpandObjectKeys,\n });\n\n const jsonString = useMemo(() => JSON.stringify(data, null, 2), [data]);\n\n const containerClasses = useMemo(() => {\n const base = 'relative w-full';\n switch (mode) {\n case 'full': return `${base} border border-border rounded-sm ${className}`;\n case 'compact': return `${base} border border-border/50 rounded-md ${className}`;\n default: return `${base} ${className}`;\n }\n }, [mode, className]);\n\n const contentPadding = mode === 'full' ? 'p-4' : mode === 'compact' ? 'p-2' : 'p-1';\n const showControls = (showExpandControls || showActionButtons) && mode === 'full';\n\n return (\n <div ref={containerRef} className={containerClasses}>\n {showControls && (\n <FloatingToolbar containerRef={containerRef}>\n {showExpandControls && <ExpandAction isExpanded={isExpanded} onToggle={toggle} />}\n {showActionButtons && (\n <>\n <CopyAction value={jsonString} title=\"Copy JSON\" />\n <DownloadAction value={jsonString} filename=\"data.json\" mimeType=\"application/json\" title=\"Download JSON\" />\n </>\n )}\n </FloatingToolbar>\n )}\n\n <JsonContent\n data={data}\n renderKey={renderKey}\n title={title}\n showTitle={mode === 'full'}\n padding={contentPadding}\n collectionLimit={collectionLimit}\n preserveKeyOrder={preserveKeyOrder}\n showCollectionInfo={showCollectionInfo}\n maxStringLength={maxStringLength}\n shouldExpandNodeInitially={shouldExpandNodeInitially}\n fontSize={fontSize}\n jsonTreeProps={jsonTreeProps}\n />\n </div>\n );\n});\n\nexport default JsonTreeComponent;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MarkdownMessage } from './chunk-
|
|
1
|
+
import { MarkdownMessage } from './chunk-NWUT327A.mjs';
|
|
2
2
|
import { __name } from './chunk-N2XQF2OL.mjs';
|
|
3
3
|
import { createContext, forwardRef, memo, useCallback, useReducer, useRef, useEffect, useState, useMemo, useSyncExternalStore, useContext } from 'react';
|
|
4
4
|
import { cn, isDev } from '@djangocfg/ui-core/lib';
|
|
@@ -1896,7 +1896,7 @@ function deriveInitials(persona, role) {
|
|
|
1896
1896
|
return "?";
|
|
1897
1897
|
}
|
|
1898
1898
|
__name(deriveInitials, "deriveInitials");
|
|
1899
|
-
function
|
|
1899
|
+
function StreamingIndicatorRaw({ variant = "dots", label, className }) {
|
|
1900
1900
|
return /* @__PURE__ */ jsxs(
|
|
1901
1901
|
"span",
|
|
1902
1902
|
{
|
|
@@ -1913,7 +1913,8 @@ function StreamingIndicator({ variant = "dots", label, className }) {
|
|
|
1913
1913
|
}
|
|
1914
1914
|
);
|
|
1915
1915
|
}
|
|
1916
|
-
__name(
|
|
1916
|
+
__name(StreamingIndicatorRaw, "StreamingIndicatorRaw");
|
|
1917
|
+
var StreamingIndicator = memo(StreamingIndicatorRaw);
|
|
1917
1918
|
function Sources({ sources, layout = "inline", maxVisible, onClick, className }) {
|
|
1918
1919
|
if (!sources?.length) return null;
|
|
1919
1920
|
const visible = maxVisible ? sources.slice(0, maxVisible) : sources;
|
|
@@ -2063,7 +2064,7 @@ function safeStringify(value) {
|
|
|
2063
2064
|
}
|
|
2064
2065
|
}
|
|
2065
2066
|
__name(safeStringify, "safeStringify");
|
|
2066
|
-
function
|
|
2067
|
+
function MessageActionsRaw({
|
|
2067
2068
|
role,
|
|
2068
2069
|
onCopy,
|
|
2069
2070
|
onRegenerate,
|
|
@@ -2089,8 +2090,8 @@ function MessageActions({
|
|
|
2089
2090
|
}
|
|
2090
2091
|
);
|
|
2091
2092
|
}
|
|
2092
|
-
__name(
|
|
2093
|
-
|
|
2093
|
+
__name(MessageActionsRaw, "MessageActionsRaw");
|
|
2094
|
+
var ActionButton = memo(/* @__PURE__ */ __name(function ActionButton2({
|
|
2094
2095
|
onClick,
|
|
2095
2096
|
label,
|
|
2096
2097
|
icon: Icon,
|
|
@@ -2109,8 +2110,8 @@ function ActionButton({
|
|
|
2109
2110
|
children: /* @__PURE__ */ jsx(Icon, { "aria-hidden": true, className: "size-3" })
|
|
2110
2111
|
}
|
|
2111
2112
|
);
|
|
2112
|
-
}
|
|
2113
|
-
|
|
2113
|
+
}, "ActionButton"));
|
|
2114
|
+
var MessageActions = memo(MessageActionsRaw);
|
|
2114
2115
|
var MessageBubbleInner = /* @__PURE__ */ __name(({
|
|
2115
2116
|
message,
|
|
2116
2117
|
isUser: isUserProp,
|
|
@@ -2285,7 +2286,7 @@ function copy(text) {
|
|
|
2285
2286
|
}
|
|
2286
2287
|
__name(copy, "copy");
|
|
2287
2288
|
function ChatRoot(props) {
|
|
2288
|
-
const { transport, config, initialSessionId, autoCreateSession, streaming, audio, debug, className, ...slots } = props;
|
|
2289
|
+
const { transport, config, initialSessionId, autoCreateSession, streaming, audio, debug, className, listClassName, ...slots } = props;
|
|
2289
2290
|
return /* @__PURE__ */ jsx(
|
|
2290
2291
|
ChatProvider,
|
|
2291
2292
|
{
|
|
@@ -2296,12 +2297,12 @@ function ChatRoot(props) {
|
|
|
2296
2297
|
streaming,
|
|
2297
2298
|
audio,
|
|
2298
2299
|
debug,
|
|
2299
|
-
children: /* @__PURE__ */ jsx(ChatRootShell, { className, slots })
|
|
2300
|
+
children: /* @__PURE__ */ jsx(ChatRootShell, { className, listClassName, slots })
|
|
2300
2301
|
}
|
|
2301
2302
|
);
|
|
2302
2303
|
}
|
|
2303
2304
|
__name(ChatRoot, "ChatRoot");
|
|
2304
|
-
function ChatRootShell({ className, slots }) {
|
|
2305
|
+
function ChatRootShell({ className, listClassName, slots }) {
|
|
2305
2306
|
const chat = useChatContext();
|
|
2306
2307
|
const composer = useChatComposer({
|
|
2307
2308
|
onSubmit: /* @__PURE__ */ __name((content, attachments) => chat.sendMessage(content, attachments), "onSubmit"),
|
|
@@ -2371,7 +2372,8 @@ function ChatRootShell({ className, slots }) {
|
|
|
2371
2372
|
topSentinelRef: topRef,
|
|
2372
2373
|
bottomRef,
|
|
2373
2374
|
renderItem,
|
|
2374
|
-
renderEmpty: () => /* @__PURE__ */ jsx(Fragment, { children: emptyNode })
|
|
2375
|
+
renderEmpty: () => /* @__PURE__ */ jsx(Fragment, { children: emptyNode }),
|
|
2376
|
+
className: listClassName
|
|
2375
2377
|
}
|
|
2376
2378
|
),
|
|
2377
2379
|
/* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-x-0 bottom-2 flex justify-center", children: slots.jumpToLatest ?? /* @__PURE__ */ jsx(
|
|
@@ -2408,5 +2410,5 @@ function copy2(text) {
|
|
|
2408
2410
|
__name(copy2, "copy");
|
|
2409
2411
|
|
|
2410
2412
|
export { Attachments, AttachmentsGrid, AttachmentsList, CHAT_EVENT_NAME, CSS_VARS, ChatProvider, ChatRoot, Composer, DEFAULT_LABELS, DEFAULT_SIDEBAR, DEFAULT_Z_INDEX, EmptyState, ErrorBanner, HOTKEYS, JumpToLatest, LIMITS, MessageActions, MessageBubble, MessageList, STORAGE_KEYS, Sources, StreamingIndicator, ToolCalls, createId, createTokenBuffer, deriveInitials, getChatLogger, initialState, reducer, resolvePersona, useChat, useChatAudio, useChatAudioPrefs, useChatComposer, useChatContext, useChatContextOptional, useChatHistory, useChatLayout, useChatScroll };
|
|
2411
|
-
//# sourceMappingURL=chunk-
|
|
2412
|
-
//# sourceMappingURL=chunk-
|
|
2413
|
+
//# sourceMappingURL=chunk-WGU5BEZX.mjs.map
|
|
2414
|
+
//# sourceMappingURL=chunk-WGU5BEZX.mjs.map
|