@djangocfg/ui-tools 2.1.317 → 2.1.319
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/{DocsLayout-ESVQZO3V.mjs → DocsLayout-CTJINVBM.mjs} +235 -267
- package/dist/DocsLayout-CTJINVBM.mjs.map +1 -0
- package/dist/{DocsLayout-KUPDWJ3G.cjs → DocsLayout-XLDB6CJ2.cjs} +273 -305
- package/dist/DocsLayout-XLDB6CJ2.cjs.map +1 -0
- package/dist/TreeRoot-A3J65L6F.mjs +4 -0
- package/dist/{TreeRoot-R6XVHYQK.mjs.map → TreeRoot-A3J65L6F.mjs.map} +1 -1
- package/dist/TreeRoot-DSK5JILT.cjs +19 -0
- package/dist/{TreeRoot-RAMQSBMO.cjs.map → TreeRoot-DSK5JILT.cjs.map} +1 -1
- package/dist/{chunk-44ZTWYAF.cjs → chunk-3Z3A7FHA.cjs} +17 -6
- package/dist/chunk-3Z3A7FHA.cjs.map +1 -0
- package/dist/{chunk-GBLQTHWT.mjs → chunk-62Y65TGK.mjs} +5 -4
- package/dist/chunk-62Y65TGK.mjs.map +1 -0
- package/dist/{chunk-NTJL2SXK.mjs → chunk-MOME6KYD.mjs} +17 -6
- package/dist/chunk-MOME6KYD.mjs.map +1 -0
- package/dist/{chunk-S44PW6NK.cjs → chunk-TKSFZHCG.cjs} +5 -4
- package/dist/chunk-TKSFZHCG.cjs.map +1 -0
- package/dist/file-icon/index.cjs +59 -3
- package/dist/file-icon/index.cjs.map +1 -1
- package/dist/file-icon/index.d.cts +33 -4
- package/dist/file-icon/index.d.ts +33 -4
- package/dist/file-icon/index.mjs +60 -5
- package/dist/file-icon/index.mjs.map +1 -1
- package/dist/index.cjs +43 -43
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +6 -6
- package/dist/tree/index.cjs +33 -33
- package/dist/tree/index.d.cts +6 -4
- package/dist/tree/index.d.ts +6 -4
- package/dist/tree/index.mjs +1 -1
- package/dist/{types-Cclwv4Hl.d.cts → types-CevSbyfD.d.cts} +6 -0
- package/dist/{types-Cclwv4Hl.d.ts → types-CevSbyfD.d.ts} +6 -0
- package/package.json +6 -6
- package/src/tools/FileIcon/FileIcon.tsx +13 -2
- package/src/tools/FileIcon/index.ts +6 -0
- package/src/tools/FileIcon/specialFolders.ts +93 -0
- package/src/tools/FileIcon/treeAdapter.tsx +8 -0
- package/src/tools/OpenapiViewer/OpenapiViewer.story.tsx +30 -0
- package/src/tools/OpenapiViewer/components/DocsLayout/EndpointDoc/Header/MetaActions.tsx +35 -50
- package/src/tools/OpenapiViewer/components/DocsLayout/EndpointDoc/Header/index.tsx +49 -22
- package/src/tools/OpenapiViewer/components/DocsLayout/EndpointDoc/Section/index.tsx +1 -1
- package/src/tools/OpenapiViewer/components/DocsLayout/EndpointDoc/store/index.ts +10 -11
- package/src/tools/OpenapiViewer/components/DocsLayout/SchemaCopyMenu.tsx +25 -5
- package/src/tools/OpenapiViewer/components/DocsLayout/Sidebar/BrandHeader.tsx +18 -33
- package/src/tools/OpenapiViewer/components/DocsLayout/Sidebar/Toolbar.tsx +40 -24
- package/src/tools/OpenapiViewer/components/DocsLayout/Sidebar/index.tsx +8 -14
- package/src/tools/OpenapiViewer/components/DocsLayout/sidebarLabel.ts +1 -4
- package/src/tools/OpenapiViewer/utils/operationToHar.ts +2 -1
- package/src/tools/OpenapiViewer/utils/url.ts +9 -2
- package/src/tools/Tree/README.md +46 -2
- package/src/tools/Tree/Tree.story.tsx +36 -0
- package/src/tools/Tree/TreeRoot.tsx +2 -0
- package/src/tools/Tree/components/TreeContent.tsx +3 -1
- package/src/tools/Tree/context/TreeContext.tsx +4 -1
- package/src/tools/Tree/data/flatten.ts +10 -1
- package/src/tools/Tree/types.ts +7 -0
- package/dist/DocsLayout-ESVQZO3V.mjs.map +0 -1
- package/dist/DocsLayout-KUPDWJ3G.cjs.map +0 -1
- package/dist/TreeRoot-R6XVHYQK.mjs +0 -4
- package/dist/TreeRoot-RAMQSBMO.cjs +0 -19
- package/dist/chunk-44ZTWYAF.cjs.map +0 -1
- package/dist/chunk-GBLQTHWT.mjs.map +0 -1
- package/dist/chunk-NTJL2SXK.mjs.map +0 -1
- package/dist/chunk-S44PW6NK.cjs.map +0 -1
- package/src/tools/OpenapiViewer/components/DocsLayout/Sidebar/MethodChips.tsx +0 -43
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
2
|
+
import { LucideIcon } from 'lucide-react';
|
|
3
|
+
import { T as TreeNode, a as TreeRowSlot } from '../types-CevSbyfD.cjs';
|
|
3
4
|
import 'react';
|
|
4
5
|
|
|
6
|
+
interface ResolveFolderIconOptions {
|
|
7
|
+
/** Folder display name (no path). */
|
|
8
|
+
name: string;
|
|
9
|
+
/** Open / closed state — only used for the *generic* folder fallback. */
|
|
10
|
+
isExpanded?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Optional override map. Wins over the built-in table. Keys are
|
|
13
|
+
* matched case-insensitively after `trim()`.
|
|
14
|
+
*/
|
|
15
|
+
overrides?: Record<string, LucideIcon>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Pick the right folder icon for `name`. Returns `Folder` / `FolderOpen`
|
|
19
|
+
* for unknown names so callers can render the generic open/closed pair.
|
|
20
|
+
*/
|
|
21
|
+
declare function resolveFolderIcon({ name, isExpanded, overrides, }: ResolveFolderIconOptions): LucideIcon;
|
|
22
|
+
type FolderIconOverrides = Record<string, LucideIcon>;
|
|
23
|
+
|
|
5
24
|
type FileIconSize = 12 | 14 | 16 | 18 | 20 | 24 | 28 | 32 | 40 | 48 | 64;
|
|
6
25
|
interface FileIconProps {
|
|
7
26
|
/** File name (with extension) or folder name. */
|
|
@@ -12,6 +31,11 @@ interface FileIconProps {
|
|
|
12
31
|
isExpanded?: boolean;
|
|
13
32
|
/** Pixel size of the icon. */
|
|
14
33
|
size?: FileIconSize;
|
|
34
|
+
/**
|
|
35
|
+
* Override or extend the built-in special-folder mapping. Keys are
|
|
36
|
+
* matched case-insensitively. Only used when `isFolder` is true.
|
|
37
|
+
*/
|
|
38
|
+
folderOverrides?: FolderIconOverrides;
|
|
15
39
|
className?: string;
|
|
16
40
|
}
|
|
17
41
|
/**
|
|
@@ -24,7 +48,7 @@ interface FileIconProps {
|
|
|
24
48
|
* The optional dependency is loaded lazily on first render — there is zero
|
|
25
49
|
* bundle cost for consumers who never mount this component.
|
|
26
50
|
*/
|
|
27
|
-
declare function FileIcon({ name, isFolder, isExpanded, size, className, }: FileIconProps): react_jsx_runtime.JSX.Element;
|
|
51
|
+
declare function FileIcon({ name, isFolder, isExpanded, size, folderOverrides, className, }: FileIconProps): react_jsx_runtime.JSX.Element;
|
|
28
52
|
|
|
29
53
|
interface CreateFileIconSlotOptions<T> {
|
|
30
54
|
/**
|
|
@@ -34,6 +58,11 @@ interface CreateFileIconSlotOptions<T> {
|
|
|
34
58
|
getName: (node: TreeNode<T>) => string;
|
|
35
59
|
/** Pixel size for both file and folder icons. Default: 16. */
|
|
36
60
|
size?: FileIconSize;
|
|
61
|
+
/**
|
|
62
|
+
* Override or extend the built-in special-folder mapping (e.g. give
|
|
63
|
+
* `tests` a custom icon). Keys are matched case-insensitively.
|
|
64
|
+
*/
|
|
65
|
+
folderOverrides?: FolderIconOverrides;
|
|
37
66
|
}
|
|
38
67
|
/**
|
|
39
68
|
* Build a `renderIcon` slot for `<TreeRoot>` that uses `<FileIcon>` for both
|
|
@@ -48,7 +77,7 @@ interface CreateFileIconSlotOptions<T> {
|
|
|
48
77
|
* />
|
|
49
78
|
* ```
|
|
50
79
|
*/
|
|
51
|
-
declare function createFileIconSlot<T>({ getName, size, }: CreateFileIconSlotOptions<T>): TreeRowSlot<T>;
|
|
80
|
+
declare function createFileIconSlot<T>({ getName, size, folderOverrides, }: CreateFileIconSlotOptions<T>): TreeRowSlot<T>;
|
|
52
81
|
|
|
53
82
|
/**
|
|
54
83
|
* Lazy loader for `material-file-icons`. The package is an optional dependency:
|
|
@@ -66,4 +95,4 @@ declare function loadMaterialIcons(): Promise<GetIconFn | null>;
|
|
|
66
95
|
/** Synchronous accessor — returns null until `loadMaterialIcons` resolves. */
|
|
67
96
|
declare function getMaterialIconsSync(): GetIconFn | null;
|
|
68
97
|
|
|
69
|
-
export { type CreateFileIconSlotOptions, FileIcon, type FileIconProps, type FileIconSize, createFileIconSlot, getMaterialIconsSync, loadMaterialIcons };
|
|
98
|
+
export { type CreateFileIconSlotOptions, FileIcon, type FileIconProps, type FileIconSize, type FolderIconOverrides, type ResolveFolderIconOptions, createFileIconSlot, getMaterialIconsSync, loadMaterialIcons, resolveFolderIcon };
|
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
2
|
+
import { LucideIcon } from 'lucide-react';
|
|
3
|
+
import { T as TreeNode, a as TreeRowSlot } from '../types-CevSbyfD.js';
|
|
3
4
|
import 'react';
|
|
4
5
|
|
|
6
|
+
interface ResolveFolderIconOptions {
|
|
7
|
+
/** Folder display name (no path). */
|
|
8
|
+
name: string;
|
|
9
|
+
/** Open / closed state — only used for the *generic* folder fallback. */
|
|
10
|
+
isExpanded?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Optional override map. Wins over the built-in table. Keys are
|
|
13
|
+
* matched case-insensitively after `trim()`.
|
|
14
|
+
*/
|
|
15
|
+
overrides?: Record<string, LucideIcon>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Pick the right folder icon for `name`. Returns `Folder` / `FolderOpen`
|
|
19
|
+
* for unknown names so callers can render the generic open/closed pair.
|
|
20
|
+
*/
|
|
21
|
+
declare function resolveFolderIcon({ name, isExpanded, overrides, }: ResolveFolderIconOptions): LucideIcon;
|
|
22
|
+
type FolderIconOverrides = Record<string, LucideIcon>;
|
|
23
|
+
|
|
5
24
|
type FileIconSize = 12 | 14 | 16 | 18 | 20 | 24 | 28 | 32 | 40 | 48 | 64;
|
|
6
25
|
interface FileIconProps {
|
|
7
26
|
/** File name (with extension) or folder name. */
|
|
@@ -12,6 +31,11 @@ interface FileIconProps {
|
|
|
12
31
|
isExpanded?: boolean;
|
|
13
32
|
/** Pixel size of the icon. */
|
|
14
33
|
size?: FileIconSize;
|
|
34
|
+
/**
|
|
35
|
+
* Override or extend the built-in special-folder mapping. Keys are
|
|
36
|
+
* matched case-insensitively. Only used when `isFolder` is true.
|
|
37
|
+
*/
|
|
38
|
+
folderOverrides?: FolderIconOverrides;
|
|
15
39
|
className?: string;
|
|
16
40
|
}
|
|
17
41
|
/**
|
|
@@ -24,7 +48,7 @@ interface FileIconProps {
|
|
|
24
48
|
* The optional dependency is loaded lazily on first render — there is zero
|
|
25
49
|
* bundle cost for consumers who never mount this component.
|
|
26
50
|
*/
|
|
27
|
-
declare function FileIcon({ name, isFolder, isExpanded, size, className, }: FileIconProps): react_jsx_runtime.JSX.Element;
|
|
51
|
+
declare function FileIcon({ name, isFolder, isExpanded, size, folderOverrides, className, }: FileIconProps): react_jsx_runtime.JSX.Element;
|
|
28
52
|
|
|
29
53
|
interface CreateFileIconSlotOptions<T> {
|
|
30
54
|
/**
|
|
@@ -34,6 +58,11 @@ interface CreateFileIconSlotOptions<T> {
|
|
|
34
58
|
getName: (node: TreeNode<T>) => string;
|
|
35
59
|
/** Pixel size for both file and folder icons. Default: 16. */
|
|
36
60
|
size?: FileIconSize;
|
|
61
|
+
/**
|
|
62
|
+
* Override or extend the built-in special-folder mapping (e.g. give
|
|
63
|
+
* `tests` a custom icon). Keys are matched case-insensitively.
|
|
64
|
+
*/
|
|
65
|
+
folderOverrides?: FolderIconOverrides;
|
|
37
66
|
}
|
|
38
67
|
/**
|
|
39
68
|
* Build a `renderIcon` slot for `<TreeRoot>` that uses `<FileIcon>` for both
|
|
@@ -48,7 +77,7 @@ interface CreateFileIconSlotOptions<T> {
|
|
|
48
77
|
* />
|
|
49
78
|
* ```
|
|
50
79
|
*/
|
|
51
|
-
declare function createFileIconSlot<T>({ getName, size, }: CreateFileIconSlotOptions<T>): TreeRowSlot<T>;
|
|
80
|
+
declare function createFileIconSlot<T>({ getName, size, folderOverrides, }: CreateFileIconSlotOptions<T>): TreeRowSlot<T>;
|
|
52
81
|
|
|
53
82
|
/**
|
|
54
83
|
* Lazy loader for `material-file-icons`. The package is an optional dependency:
|
|
@@ -66,4 +95,4 @@ declare function loadMaterialIcons(): Promise<GetIconFn | null>;
|
|
|
66
95
|
/** Synchronous accessor — returns null until `loadMaterialIcons` resolves. */
|
|
67
96
|
declare function getMaterialIconsSync(): GetIconFn | null;
|
|
68
97
|
|
|
69
|
-
export { type CreateFileIconSlotOptions, FileIcon, type FileIconProps, type FileIconSize, createFileIconSlot, getMaterialIconsSync, loadMaterialIcons };
|
|
98
|
+
export { type CreateFileIconSlotOptions, FileIcon, type FileIconProps, type FileIconSize, type FolderIconOverrides, type ResolveFolderIconOptions, createFileIconSlot, getMaterialIconsSync, loadMaterialIcons, resolveFolderIcon };
|
package/dist/file-icon/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __name } from '../chunk-CGILA3WO.mjs';
|
|
2
2
|
import { useState, useEffect } from 'react';
|
|
3
|
-
import { FolderOpen, Folder, File } from 'lucide-react';
|
|
3
|
+
import { FolderGit2, Github, Settings, Terminal, FlaskConical, BookOpen, FolderOutput, Image, FolderInput, Package, FolderCode, FolderOpen, Folder, File } from 'lucide-react';
|
|
4
4
|
import { cn } from '@djangocfg/ui-core/lib';
|
|
5
5
|
import { jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -34,11 +34,60 @@ function getMaterialIconsSync() {
|
|
|
34
34
|
return cached ?? null;
|
|
35
35
|
}
|
|
36
36
|
__name(getMaterialIconsSync, "getMaterialIconsSync");
|
|
37
|
+
var SPECIAL_FOLDERS = {
|
|
38
|
+
src: FolderCode,
|
|
39
|
+
source: FolderCode,
|
|
40
|
+
lib: FolderCode,
|
|
41
|
+
app: FolderCode,
|
|
42
|
+
packages: Package,
|
|
43
|
+
node_modules: Package,
|
|
44
|
+
vendor: Package,
|
|
45
|
+
public: FolderInput,
|
|
46
|
+
static: FolderInput,
|
|
47
|
+
assets: Image,
|
|
48
|
+
images: Image,
|
|
49
|
+
media: Image,
|
|
50
|
+
dist: FolderOutput,
|
|
51
|
+
build: FolderOutput,
|
|
52
|
+
out: FolderOutput,
|
|
53
|
+
".next": FolderOutput,
|
|
54
|
+
".nuxt": FolderOutput,
|
|
55
|
+
".turbo": FolderOutput,
|
|
56
|
+
docs: BookOpen,
|
|
57
|
+
documentation: BookOpen,
|
|
58
|
+
tests: FlaskConical,
|
|
59
|
+
test: FlaskConical,
|
|
60
|
+
__tests__: FlaskConical,
|
|
61
|
+
__test__: FlaskConical,
|
|
62
|
+
scripts: Terminal,
|
|
63
|
+
bin: Terminal,
|
|
64
|
+
config: Settings,
|
|
65
|
+
configs: Settings,
|
|
66
|
+
".config": Settings,
|
|
67
|
+
".vscode": Settings,
|
|
68
|
+
".idea": Settings,
|
|
69
|
+
".git": FolderGit2,
|
|
70
|
+
".github": Github,
|
|
71
|
+
".gitlab": FolderGit2
|
|
72
|
+
};
|
|
73
|
+
function resolveFolderIcon({
|
|
74
|
+
name,
|
|
75
|
+
isExpanded = false,
|
|
76
|
+
overrides
|
|
77
|
+
}) {
|
|
78
|
+
const key = name.trim().toLowerCase();
|
|
79
|
+
if (overrides?.[key]) return overrides[key];
|
|
80
|
+
const special = SPECIAL_FOLDERS[key];
|
|
81
|
+
if (special) return special;
|
|
82
|
+
return isExpanded ? FolderOpen : Folder;
|
|
83
|
+
}
|
|
84
|
+
__name(resolveFolderIcon, "resolveFolderIcon");
|
|
37
85
|
function FileIcon({
|
|
38
86
|
name,
|
|
39
87
|
isFolder = false,
|
|
40
88
|
isExpanded = false,
|
|
41
89
|
size = 16,
|
|
90
|
+
folderOverrides,
|
|
42
91
|
className
|
|
43
92
|
}) {
|
|
44
93
|
const [svg, setSvg] = useState(() => {
|
|
@@ -61,7 +110,11 @@ function FileIcon({
|
|
|
61
110
|
};
|
|
62
111
|
}, [isFolder, name]);
|
|
63
112
|
if (isFolder) {
|
|
64
|
-
const Icon =
|
|
113
|
+
const Icon = resolveFolderIcon({
|
|
114
|
+
name,
|
|
115
|
+
isExpanded,
|
|
116
|
+
overrides: folderOverrides
|
|
117
|
+
});
|
|
65
118
|
return /* @__PURE__ */ jsx(
|
|
66
119
|
Icon,
|
|
67
120
|
{
|
|
@@ -93,7 +146,8 @@ function FileIcon({
|
|
|
93
146
|
__name(FileIcon, "FileIcon");
|
|
94
147
|
function createFileIconSlot({
|
|
95
148
|
getName,
|
|
96
|
-
size = 16
|
|
149
|
+
size = 16,
|
|
150
|
+
folderOverrides
|
|
97
151
|
}) {
|
|
98
152
|
return ({ node, isFolder, isExpanded }) => /* @__PURE__ */ jsx(
|
|
99
153
|
FileIcon,
|
|
@@ -101,12 +155,13 @@ function createFileIconSlot({
|
|
|
101
155
|
name: getName(node),
|
|
102
156
|
isFolder,
|
|
103
157
|
isExpanded,
|
|
104
|
-
size
|
|
158
|
+
size,
|
|
159
|
+
folderOverrides
|
|
105
160
|
}
|
|
106
161
|
);
|
|
107
162
|
}
|
|
108
163
|
__name(createFileIconSlot, "createFileIconSlot");
|
|
109
164
|
|
|
110
|
-
export { FileIcon, createFileIconSlot, getMaterialIconsSync, loadMaterialIcons };
|
|
165
|
+
export { FileIcon, createFileIconSlot, getMaterialIconsSync, loadMaterialIcons, resolveFolderIcon };
|
|
111
166
|
//# sourceMappingURL=index.mjs.map
|
|
112
167
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tools/FileIcon/loader.ts","../../src/tools/FileIcon/FileIcon.tsx","../../src/tools/FileIcon/treeAdapter.tsx"],"names":["FileFallback","jsx"],"mappings":"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","file":"index.mjs","sourcesContent":["'use client';\n\n/**\n * Lazy loader for `material-file-icons`. The package is an optional dependency:\n * if it's installed in the consumer's tree, we render its rich VSCode-style\n * SVGs; if not, the loader resolves to `null` and `<FileIcon>` falls back to a\n * Lucide icon. Either way, ui-tools never throws or warns about a missing\n * package.\n *\n * Resolution is cached per-process so we don't re-import on every render.\n */\n\ntype GetIconFn = (name: string) => { svg: string } | undefined;\n\nlet cached: GetIconFn | null | undefined;\nlet inflight: Promise<GetIconFn | null> | null = null;\n\nexport async function loadMaterialIcons(): Promise<GetIconFn | null> {\n if (cached !== undefined) return cached;\n if (inflight) return inflight;\n\n inflight = (async () => {\n try {\n // Computed specifier so bundlers don't try to eagerly resolve it.\n const specifier = 'material-file-icons';\n const mod = (await import(/* @vite-ignore */ specifier)) as {\n getIcon?: GetIconFn;\n default?: { getIcon?: GetIconFn };\n };\n const fn = mod.getIcon ?? mod.default?.getIcon ?? null;\n cached = fn;\n return fn;\n } catch {\n cached = null;\n return null;\n } finally {\n inflight = null;\n }\n })();\n\n return inflight;\n}\n\n/** Synchronous accessor — returns null until `loadMaterialIcons` resolves. */\nexport function getMaterialIconsSync(): GetIconFn | null {\n return cached ?? null;\n}\n","'use client';\n\nimport { useEffect, useState } from 'react';\nimport { File as FileFallback, Folder, FolderOpen } from 'lucide-react';\nimport { cn } from '@djangocfg/ui-core/lib';\n\nimport { getMaterialIconsSync, loadMaterialIcons } from './loader';\n\nexport type FileIconSize = 12 | 14 | 16 | 18 | 20 | 24 | 28 | 32 | 40 | 48 | 64;\n\nexport interface FileIconProps {\n /** File name (with extension) or folder name. */\n name: string;\n /** Render a folder icon instead of a file icon. */\n isFolder?: boolean;\n /** Folder open / closed state. Ignored when `isFolder` is false. */\n isExpanded?: boolean;\n /** Pixel size of the icon. */\n size?: FileIconSize;\n className?: string;\n}\n\n/**\n * VSCode-style file icon.\n *\n * - Folders render Lucide `Folder` / `FolderOpen` (amber tint).\n * - Files use `material-file-icons` if it's installed in the consumer; otherwise\n * fall back to a neutral Lucide `File` icon.\n *\n * The optional dependency is loaded lazily on first render — there is zero\n * bundle cost for consumers who never mount this component.\n */\nexport function FileIcon({\n name,\n isFolder = false,\n isExpanded = false,\n size = 16,\n className,\n}: FileIconProps) {\n const [svg, setSvg] = useState<string | null>(() => {\n if (isFolder) return null;\n const fn = getMaterialIconsSync();\n return fn ? (fn(name)?.svg ?? null) : null;\n });\n\n useEffect(() => {\n if (isFolder) {\n setSvg(null);\n return;\n }\n let cancelled = false;\n void loadMaterialIcons().then((fn) => {\n if (cancelled) return;\n setSvg(fn ? (fn(name)?.svg ?? null) : null);\n });\n return () => {\n cancelled = true;\n };\n }, [isFolder, name]);\n\n if (isFolder) {\n const Icon = isExpanded ? FolderOpen : Folder;\n return (\n <Icon\n className={cn('shrink-0 text-amber-500', className)}\n style={{ width: size, height: size }}\n />\n );\n }\n\n if (!svg) {\n return (\n <FileFallback\n className={cn('shrink-0 text-muted-foreground/80', className)}\n style={{ width: size, height: size }}\n />\n );\n }\n\n return (\n <span\n role=\"img\"\n aria-hidden\n className={cn('inline-block shrink-0', className)}\n style={{ width: size, height: size }}\n dangerouslySetInnerHTML={{ __html: svg }}\n />\n );\n}\n\nexport default FileIcon;\n","'use client';\n\nimport type { TreeNode, TreeRowSlot } from '../Tree/types';\nimport { FileIcon, type FileIconSize } from './FileIcon';\n\nexport interface CreateFileIconSlotOptions<T> {\n /**\n * How to read the displayed name (with extension) for a node. Use the same\n * accessor you pass to `<TreeRoot getItemName={...} />`.\n */\n getName: (node: TreeNode<T>) => string;\n /** Pixel size for both file and folder icons. Default: 16. */\n size?: FileIconSize;\n}\n\n/**\n * Build a `renderIcon` slot for `<TreeRoot>` that uses `<FileIcon>` for both\n * leaves and folders.\n *\n * @example\n * ```tsx\n * <TreeRoot\n * data={data}\n * getItemName={(n) => n.data.name}\n * renderIcon={createFileIconSlot({ getName: (n) => n.data.name })}\n * />\n * ```\n */\nexport function createFileIconSlot<T>({\n getName,\n size = 16,\n}: CreateFileIconSlotOptions<T>): TreeRowSlot<T> {\n return ({ node, isFolder, isExpanded }) => (\n <FileIcon\n name={getName(node)}\n isFolder={isFolder}\n isExpanded={isExpanded}\n size={size}\n />\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/tools/FileIcon/loader.ts","../../src/tools/FileIcon/specialFolders.ts","../../src/tools/FileIcon/FileIcon.tsx","../../src/tools/FileIcon/treeAdapter.tsx"],"names":["ImageIcon","FileFallback","jsx"],"mappings":"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","file":"index.mjs","sourcesContent":["'use client';\n\n/**\n * Lazy loader for `material-file-icons`. The package is an optional dependency:\n * if it's installed in the consumer's tree, we render its rich VSCode-style\n * SVGs; if not, the loader resolves to `null` and `<FileIcon>` falls back to a\n * Lucide icon. Either way, ui-tools never throws or warns about a missing\n * package.\n *\n * Resolution is cached per-process so we don't re-import on every render.\n */\n\ntype GetIconFn = (name: string) => { svg: string } | undefined;\n\nlet cached: GetIconFn | null | undefined;\nlet inflight: Promise<GetIconFn | null> | null = null;\n\nexport async function loadMaterialIcons(): Promise<GetIconFn | null> {\n if (cached !== undefined) return cached;\n if (inflight) return inflight;\n\n inflight = (async () => {\n try {\n // Computed specifier so bundlers don't try to eagerly resolve it.\n const specifier = 'material-file-icons';\n const mod = (await import(/* @vite-ignore */ specifier)) as {\n getIcon?: GetIconFn;\n default?: { getIcon?: GetIconFn };\n };\n const fn = mod.getIcon ?? mod.default?.getIcon ?? null;\n cached = fn;\n return fn;\n } catch {\n cached = null;\n return null;\n } finally {\n inflight = null;\n }\n })();\n\n return inflight;\n}\n\n/** Synchronous accessor — returns null until `loadMaterialIcons` resolves. */\nexport function getMaterialIconsSync(): GetIconFn | null {\n return cached ?? null;\n}\n","'use client';\n\nimport {\n BookOpen,\n FlaskConical,\n Folder,\n FolderCode,\n FolderGit2,\n FolderInput,\n FolderOpen,\n FolderOutput,\n Github,\n Image as ImageIcon,\n Package,\n Settings,\n Terminal,\n type LucideIcon,\n} from 'lucide-react';\n\n/**\n * Conventional folder names → Lucide icon. Lookup is case-insensitive and\n * trimmed. Anything not in this map falls back to a generic folder icon.\n *\n * Designed to feel \"right\" across the common dev project layouts (Node,\n * Python, Go, Rust, Django, Next, Vite). Not exhaustive on purpose —\n * keeps the bundle light and the behaviour predictable.\n */\nconst SPECIAL_FOLDERS: Record<string, LucideIcon> = {\n src: FolderCode,\n source: FolderCode,\n lib: FolderCode,\n app: FolderCode,\n packages: Package,\n node_modules: Package,\n vendor: Package,\n public: FolderInput,\n static: FolderInput,\n assets: ImageIcon,\n images: ImageIcon,\n media: ImageIcon,\n dist: FolderOutput,\n build: FolderOutput,\n out: FolderOutput,\n '.next': FolderOutput,\n '.nuxt': FolderOutput,\n '.turbo': FolderOutput,\n docs: BookOpen,\n documentation: BookOpen,\n tests: FlaskConical,\n test: FlaskConical,\n __tests__: FlaskConical,\n __test__: FlaskConical,\n scripts: Terminal,\n bin: Terminal,\n config: Settings,\n configs: Settings,\n '.config': Settings,\n '.vscode': Settings,\n '.idea': Settings,\n '.git': FolderGit2,\n '.github': Github,\n '.gitlab': FolderGit2,\n};\n\nexport interface ResolveFolderIconOptions {\n /** Folder display name (no path). */\n name: string;\n /** Open / closed state — only used for the *generic* folder fallback. */\n isExpanded?: boolean;\n /**\n * Optional override map. Wins over the built-in table. Keys are\n * matched case-insensitively after `trim()`.\n */\n overrides?: Record<string, LucideIcon>;\n}\n\n/**\n * Pick the right folder icon for `name`. Returns `Folder` / `FolderOpen`\n * for unknown names so callers can render the generic open/closed pair.\n */\nexport function resolveFolderIcon({\n name,\n isExpanded = false,\n overrides,\n}: ResolveFolderIconOptions): LucideIcon {\n const key = name.trim().toLowerCase();\n if (overrides?.[key]) return overrides[key];\n const special = SPECIAL_FOLDERS[key];\n if (special) return special;\n return isExpanded ? FolderOpen : Folder;\n}\n\nexport type FolderIconOverrides = Record<string, LucideIcon>;\n","'use client';\n\nimport { useEffect, useState } from 'react';\nimport { File as FileFallback } from 'lucide-react';\nimport { cn } from '@djangocfg/ui-core/lib';\n\nimport { getMaterialIconsSync, loadMaterialIcons } from './loader';\nimport { resolveFolderIcon, type FolderIconOverrides } from './specialFolders';\n\nexport type FileIconSize = 12 | 14 | 16 | 18 | 20 | 24 | 28 | 32 | 40 | 48 | 64;\n\nexport interface FileIconProps {\n /** File name (with extension) or folder name. */\n name: string;\n /** Render a folder icon instead of a file icon. */\n isFolder?: boolean;\n /** Folder open / closed state. Ignored when `isFolder` is false. */\n isExpanded?: boolean;\n /** Pixel size of the icon. */\n size?: FileIconSize;\n /**\n * Override or extend the built-in special-folder mapping. Keys are\n * matched case-insensitively. Only used when `isFolder` is true.\n */\n folderOverrides?: FolderIconOverrides;\n className?: string;\n}\n\n/**\n * VSCode-style file icon.\n *\n * - Folders render Lucide `Folder` / `FolderOpen` (amber tint).\n * - Files use `material-file-icons` if it's installed in the consumer; otherwise\n * fall back to a neutral Lucide `File` icon.\n *\n * The optional dependency is loaded lazily on first render — there is zero\n * bundle cost for consumers who never mount this component.\n */\nexport function FileIcon({\n name,\n isFolder = false,\n isExpanded = false,\n size = 16,\n folderOverrides,\n className,\n}: FileIconProps) {\n const [svg, setSvg] = useState<string | null>(() => {\n if (isFolder) return null;\n const fn = getMaterialIconsSync();\n return fn ? (fn(name)?.svg ?? null) : null;\n });\n\n useEffect(() => {\n if (isFolder) {\n setSvg(null);\n return;\n }\n let cancelled = false;\n void loadMaterialIcons().then((fn) => {\n if (cancelled) return;\n setSvg(fn ? (fn(name)?.svg ?? null) : null);\n });\n return () => {\n cancelled = true;\n };\n }, [isFolder, name]);\n\n if (isFolder) {\n const Icon = resolveFolderIcon({\n name,\n isExpanded,\n overrides: folderOverrides,\n });\n return (\n <Icon\n className={cn('shrink-0 text-amber-500', className)}\n style={{ width: size, height: size }}\n />\n );\n }\n\n if (!svg) {\n return (\n <FileFallback\n className={cn('shrink-0 text-muted-foreground/80', className)}\n style={{ width: size, height: size }}\n />\n );\n }\n\n return (\n <span\n role=\"img\"\n aria-hidden\n className={cn('inline-block shrink-0', className)}\n style={{ width: size, height: size }}\n dangerouslySetInnerHTML={{ __html: svg }}\n />\n );\n}\n\nexport default FileIcon;\n","'use client';\n\nimport type { TreeNode, TreeRowSlot } from '../Tree/types';\nimport { FileIcon, type FileIconSize } from './FileIcon';\nimport type { FolderIconOverrides } from './specialFolders';\n\nexport interface CreateFileIconSlotOptions<T> {\n /**\n * How to read the displayed name (with extension) for a node. Use the same\n * accessor you pass to `<TreeRoot getItemName={...} />`.\n */\n getName: (node: TreeNode<T>) => string;\n /** Pixel size for both file and folder icons. Default: 16. */\n size?: FileIconSize;\n /**\n * Override or extend the built-in special-folder mapping (e.g. give\n * `tests` a custom icon). Keys are matched case-insensitively.\n */\n folderOverrides?: FolderIconOverrides;\n}\n\n/**\n * Build a `renderIcon` slot for `<TreeRoot>` that uses `<FileIcon>` for both\n * leaves and folders.\n *\n * @example\n * ```tsx\n * <TreeRoot\n * data={data}\n * getItemName={(n) => n.data.name}\n * renderIcon={createFileIconSlot({ getName: (n) => n.data.name })}\n * />\n * ```\n */\nexport function createFileIconSlot<T>({\n getName,\n size = 16,\n folderOverrides,\n}: CreateFileIconSlotOptions<T>): TreeRowSlot<T> {\n return ({ node, isFolder, isExpanded }) => (\n <FileIcon\n name={getName(node)}\n isFolder={isFolder}\n isExpanded={isExpanded}\n size={size}\n folderOverrides={folderOverrides}\n />\n );\n}\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -8,8 +8,8 @@ var chunkIHAY6FO6_cjs = require('./chunk-IHAY6FO6.cjs');
|
|
|
8
8
|
var chunk77HQWEQ6_cjs = require('./chunk-77HQWEQ6.cjs');
|
|
9
9
|
var chunkF2CMIIOH_cjs = require('./chunk-F2CMIIOH.cjs');
|
|
10
10
|
var chunkYXBOAGIM_cjs = require('./chunk-YXBOAGIM.cjs');
|
|
11
|
-
var
|
|
12
|
-
var
|
|
11
|
+
var chunk3Z3A7FHA_cjs = require('./chunk-3Z3A7FHA.cjs');
|
|
12
|
+
var chunkTKSFZHCG_cjs = require('./chunk-TKSFZHCG.cjs');
|
|
13
13
|
var chunk33AMWFBZ_cjs = require('./chunk-33AMWFBZ.cjs');
|
|
14
14
|
require('./chunk-2SMCH62O.cjs');
|
|
15
15
|
var chunkWGEGR3DF_cjs = require('./chunk-WGEGR3DF.cjs');
|
|
@@ -264,14 +264,14 @@ function OpenapiLoadingFallback() {
|
|
|
264
264
|
}
|
|
265
265
|
chunkWGEGR3DF_cjs.__name(OpenapiLoadingFallback, "OpenapiLoadingFallback");
|
|
266
266
|
var LazyDocsLayout = createLazyComponent(
|
|
267
|
-
() => import('./DocsLayout-
|
|
267
|
+
() => import('./DocsLayout-XLDB6CJ2.cjs').then((mod) => ({ default: mod.DocsLayout })),
|
|
268
268
|
{
|
|
269
269
|
displayName: "LazyDocsLayout",
|
|
270
270
|
fallback: /* @__PURE__ */ jsxRuntime.jsx(OpenapiLoadingFallback, {})
|
|
271
271
|
}
|
|
272
272
|
);
|
|
273
273
|
var LazyOpenapiViewer = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name(({ config }) => {
|
|
274
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
274
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkTKSFZHCG_cjs.PlaygroundProvider, { config, children: /* @__PURE__ */ jsxRuntime.jsx(LazyDocsLayout, {}) });
|
|
275
275
|
}, "LazyOpenapiViewer");
|
|
276
276
|
LazyOpenapiViewer.displayName = "LazyOpenapiViewer";
|
|
277
277
|
var LazyJsonSchemaForm = createLazyComponent(
|
|
@@ -363,7 +363,7 @@ var LazyCronScheduler = createLazyComponent(
|
|
|
363
363
|
}
|
|
364
364
|
);
|
|
365
365
|
var LazyTree = createLazyComponent(
|
|
366
|
-
() => import('./TreeRoot-
|
|
366
|
+
() => import('./TreeRoot-DSK5JILT.cjs'),
|
|
367
367
|
{
|
|
368
368
|
displayName: "LazyTree",
|
|
369
369
|
fallback: /* @__PURE__ */ jsxRuntime.jsx(LoadingFallback, { minHeight: 200, text: "Loading tree\u2026" })
|
|
@@ -381,11 +381,11 @@ function LottiePlayer(props) {
|
|
|
381
381
|
}
|
|
382
382
|
chunkWGEGR3DF_cjs.__name(LottiePlayer, "LottiePlayer");
|
|
383
383
|
var DocsLayout = React.lazy(
|
|
384
|
-
() => import('./DocsLayout-
|
|
384
|
+
() => import('./DocsLayout-XLDB6CJ2.cjs').then((mod) => ({ default: mod.DocsLayout }))
|
|
385
385
|
);
|
|
386
386
|
var LoadingFallback6 = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name(() => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center min-h-[400px]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground", children: "Loading API Playground..." }) }), "LoadingFallback");
|
|
387
387
|
var Playground = /* @__PURE__ */ chunkWGEGR3DF_cjs.__name(({ config }) => {
|
|
388
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
388
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkTKSFZHCG_cjs.PlaygroundProvider, { config, children: /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, { fallback: /* @__PURE__ */ jsxRuntime.jsx(LoadingFallback6, {}), children: /* @__PURE__ */ jsxRuntime.jsx(DocsLayout, {}) }) });
|
|
389
389
|
}, "Playground");
|
|
390
390
|
var OpenapiViewer_default = Playground;
|
|
391
391
|
var CronSchedulerClient = React.lazy(() => import('./CronScheduler.client-A4GO6YBY.cjs'));
|
|
@@ -1671,147 +1671,147 @@ Object.defineProperty(exports, "createDemoTree", {
|
|
|
1671
1671
|
});
|
|
1672
1672
|
Object.defineProperty(exports, "DEFAULT_TREE_APPEARANCE", {
|
|
1673
1673
|
enumerable: true,
|
|
1674
|
-
get: function () { return
|
|
1674
|
+
get: function () { return chunk3Z3A7FHA_cjs.DEFAULT_TREE_APPEARANCE; }
|
|
1675
1675
|
});
|
|
1676
1676
|
Object.defineProperty(exports, "DEFAULT_TREE_LABELS", {
|
|
1677
1677
|
enumerable: true,
|
|
1678
|
-
get: function () { return
|
|
1678
|
+
get: function () { return chunk3Z3A7FHA_cjs.DEFAULT_TREE_LABELS; }
|
|
1679
1679
|
});
|
|
1680
1680
|
Object.defineProperty(exports, "Tree", {
|
|
1681
1681
|
enumerable: true,
|
|
1682
|
-
get: function () { return
|
|
1682
|
+
get: function () { return chunk3Z3A7FHA_cjs.TreeRoot; }
|
|
1683
1683
|
});
|
|
1684
1684
|
Object.defineProperty(exports, "TreeChevron", {
|
|
1685
1685
|
enumerable: true,
|
|
1686
|
-
get: function () { return
|
|
1686
|
+
get: function () { return chunk3Z3A7FHA_cjs.TreeChevron; }
|
|
1687
1687
|
});
|
|
1688
1688
|
Object.defineProperty(exports, "TreeContent", {
|
|
1689
1689
|
enumerable: true,
|
|
1690
|
-
get: function () { return
|
|
1690
|
+
get: function () { return chunk3Z3A7FHA_cjs.TreeContent; }
|
|
1691
1691
|
});
|
|
1692
1692
|
Object.defineProperty(exports, "TreeEmpty", {
|
|
1693
1693
|
enumerable: true,
|
|
1694
|
-
get: function () { return
|
|
1694
|
+
get: function () { return chunk3Z3A7FHA_cjs.TreeEmpty; }
|
|
1695
1695
|
});
|
|
1696
1696
|
Object.defineProperty(exports, "TreeIcon", {
|
|
1697
1697
|
enumerable: true,
|
|
1698
|
-
get: function () { return
|
|
1698
|
+
get: function () { return chunk3Z3A7FHA_cjs.TreeIcon; }
|
|
1699
1699
|
});
|
|
1700
1700
|
Object.defineProperty(exports, "TreeIndentGuides", {
|
|
1701
1701
|
enumerable: true,
|
|
1702
|
-
get: function () { return
|
|
1702
|
+
get: function () { return chunk3Z3A7FHA_cjs.TreeIndentGuides; }
|
|
1703
1703
|
});
|
|
1704
1704
|
Object.defineProperty(exports, "TreeLabel", {
|
|
1705
1705
|
enumerable: true,
|
|
1706
|
-
get: function () { return
|
|
1706
|
+
get: function () { return chunk3Z3A7FHA_cjs.TreeLabel; }
|
|
1707
1707
|
});
|
|
1708
1708
|
Object.defineProperty(exports, "TreeProvider", {
|
|
1709
1709
|
enumerable: true,
|
|
1710
|
-
get: function () { return
|
|
1710
|
+
get: function () { return chunk3Z3A7FHA_cjs.TreeProvider; }
|
|
1711
1711
|
});
|
|
1712
1712
|
Object.defineProperty(exports, "TreeRoot", {
|
|
1713
1713
|
enumerable: true,
|
|
1714
|
-
get: function () { return
|
|
1714
|
+
get: function () { return chunk3Z3A7FHA_cjs.TreeRoot; }
|
|
1715
1715
|
});
|
|
1716
1716
|
Object.defineProperty(exports, "TreeRow", {
|
|
1717
1717
|
enumerable: true,
|
|
1718
|
-
get: function () { return
|
|
1718
|
+
get: function () { return chunk3Z3A7FHA_cjs.TreeRow; }
|
|
1719
1719
|
});
|
|
1720
1720
|
Object.defineProperty(exports, "TreeSearchInput", {
|
|
1721
1721
|
enumerable: true,
|
|
1722
|
-
get: function () { return
|
|
1722
|
+
get: function () { return chunk3Z3A7FHA_cjs.TreeSearchInput; }
|
|
1723
1723
|
});
|
|
1724
1724
|
Object.defineProperty(exports, "appearanceToStyle", {
|
|
1725
1725
|
enumerable: true,
|
|
1726
|
-
get: function () { return
|
|
1726
|
+
get: function () { return chunk3Z3A7FHA_cjs.appearanceToStyle; }
|
|
1727
1727
|
});
|
|
1728
1728
|
Object.defineProperty(exports, "clearTreeState", {
|
|
1729
1729
|
enumerable: true,
|
|
1730
|
-
get: function () { return
|
|
1730
|
+
get: function () { return chunk3Z3A7FHA_cjs.clearTreeState; }
|
|
1731
1731
|
});
|
|
1732
1732
|
Object.defineProperty(exports, "createChildCache", {
|
|
1733
1733
|
enumerable: true,
|
|
1734
|
-
get: function () { return
|
|
1734
|
+
get: function () { return chunk3Z3A7FHA_cjs.createChildCache; }
|
|
1735
1735
|
});
|
|
1736
1736
|
Object.defineProperty(exports, "flattenTree", {
|
|
1737
1737
|
enumerable: true,
|
|
1738
|
-
get: function () { return
|
|
1738
|
+
get: function () { return chunk3Z3A7FHA_cjs.flattenTree; }
|
|
1739
1739
|
});
|
|
1740
1740
|
Object.defineProperty(exports, "loadTreeState", {
|
|
1741
1741
|
enumerable: true,
|
|
1742
|
-
get: function () { return
|
|
1742
|
+
get: function () { return chunk3Z3A7FHA_cjs.loadTreeState; }
|
|
1743
1743
|
});
|
|
1744
1744
|
Object.defineProperty(exports, "resolveAppearance", {
|
|
1745
1745
|
enumerable: true,
|
|
1746
|
-
get: function () { return
|
|
1746
|
+
get: function () { return chunk3Z3A7FHA_cjs.resolveAppearance; }
|
|
1747
1747
|
});
|
|
1748
1748
|
Object.defineProperty(exports, "resolveChildren", {
|
|
1749
1749
|
enumerable: true,
|
|
1750
|
-
get: function () { return
|
|
1750
|
+
get: function () { return chunk3Z3A7FHA_cjs.resolveChildren; }
|
|
1751
1751
|
});
|
|
1752
1752
|
Object.defineProperty(exports, "saveTreeState", {
|
|
1753
1753
|
enumerable: true,
|
|
1754
|
-
get: function () { return
|
|
1754
|
+
get: function () { return chunk3Z3A7FHA_cjs.saveTreeState; }
|
|
1755
1755
|
});
|
|
1756
1756
|
Object.defineProperty(exports, "useTreeActions", {
|
|
1757
1757
|
enumerable: true,
|
|
1758
|
-
get: function () { return
|
|
1758
|
+
get: function () { return chunk3Z3A7FHA_cjs.useTreeActions; }
|
|
1759
1759
|
});
|
|
1760
1760
|
Object.defineProperty(exports, "useTreeContext", {
|
|
1761
1761
|
enumerable: true,
|
|
1762
|
-
get: function () { return
|
|
1762
|
+
get: function () { return chunk3Z3A7FHA_cjs.useTreeContext; }
|
|
1763
1763
|
});
|
|
1764
1764
|
Object.defineProperty(exports, "useTreeExpansion", {
|
|
1765
1765
|
enumerable: true,
|
|
1766
|
-
get: function () { return
|
|
1766
|
+
get: function () { return chunk3Z3A7FHA_cjs.useTreeExpansion; }
|
|
1767
1767
|
});
|
|
1768
1768
|
Object.defineProperty(exports, "useTreeFocus", {
|
|
1769
1769
|
enumerable: true,
|
|
1770
|
-
get: function () { return
|
|
1770
|
+
get: function () { return chunk3Z3A7FHA_cjs.useTreeFocus; }
|
|
1771
1771
|
});
|
|
1772
1772
|
Object.defineProperty(exports, "useTreeKeyboard", {
|
|
1773
1773
|
enumerable: true,
|
|
1774
|
-
get: function () { return
|
|
1774
|
+
get: function () { return chunk3Z3A7FHA_cjs.useTreeKeyboard; }
|
|
1775
1775
|
});
|
|
1776
1776
|
Object.defineProperty(exports, "useTreeLabels", {
|
|
1777
1777
|
enumerable: true,
|
|
1778
|
-
get: function () { return
|
|
1778
|
+
get: function () { return chunk3Z3A7FHA_cjs.useTreeLabels; }
|
|
1779
1779
|
});
|
|
1780
1780
|
Object.defineProperty(exports, "useTreeRows", {
|
|
1781
1781
|
enumerable: true,
|
|
1782
|
-
get: function () { return
|
|
1782
|
+
get: function () { return chunk3Z3A7FHA_cjs.useTreeRows; }
|
|
1783
1783
|
});
|
|
1784
1784
|
Object.defineProperty(exports, "useTreeSearch", {
|
|
1785
1785
|
enumerable: true,
|
|
1786
|
-
get: function () { return
|
|
1786
|
+
get: function () { return chunk3Z3A7FHA_cjs.useTreeSearch; }
|
|
1787
1787
|
});
|
|
1788
1788
|
Object.defineProperty(exports, "useTreeSelection", {
|
|
1789
1789
|
enumerable: true,
|
|
1790
|
-
get: function () { return
|
|
1790
|
+
get: function () { return chunk3Z3A7FHA_cjs.useTreeSelection; }
|
|
1791
1791
|
});
|
|
1792
1792
|
Object.defineProperty(exports, "useTreeTypeAhead", {
|
|
1793
1793
|
enumerable: true,
|
|
1794
|
-
get: function () { return
|
|
1794
|
+
get: function () { return chunk3Z3A7FHA_cjs.useTreeTypeAhead; }
|
|
1795
1795
|
});
|
|
1796
1796
|
Object.defineProperty(exports, "MarkdownMessage", {
|
|
1797
1797
|
enumerable: true,
|
|
1798
|
-
get: function () { return
|
|
1798
|
+
get: function () { return chunkTKSFZHCG_cjs.MarkdownMessage; }
|
|
1799
1799
|
});
|
|
1800
1800
|
Object.defineProperty(exports, "Mermaid", {
|
|
1801
1801
|
enumerable: true,
|
|
1802
|
-
get: function () { return
|
|
1802
|
+
get: function () { return chunkTKSFZHCG_cjs.Mermaid_default; }
|
|
1803
1803
|
});
|
|
1804
1804
|
Object.defineProperty(exports, "PrettyCode", {
|
|
1805
1805
|
enumerable: true,
|
|
1806
|
-
get: function () { return
|
|
1806
|
+
get: function () { return chunkTKSFZHCG_cjs.PrettyCode_default; }
|
|
1807
1807
|
});
|
|
1808
1808
|
Object.defineProperty(exports, "extractTextFromChildren", {
|
|
1809
1809
|
enumerable: true,
|
|
1810
|
-
get: function () { return
|
|
1810
|
+
get: function () { return chunkTKSFZHCG_cjs.extractTextFromChildren; }
|
|
1811
1811
|
});
|
|
1812
1812
|
Object.defineProperty(exports, "useCollapsibleContent", {
|
|
1813
1813
|
enumerable: true,
|
|
1814
|
-
get: function () { return
|
|
1814
|
+
get: function () { return chunkTKSFZHCG_cjs.useCollapsibleContent; }
|
|
1815
1815
|
});
|
|
1816
1816
|
Object.defineProperty(exports, "JsonTree", {
|
|
1817
1817
|
enumerable: true,
|
package/dist/index.d.cts
CHANGED
|
@@ -8,8 +8,8 @@ export { Language } from 'prism-react-renderer';
|
|
|
8
8
|
import { RJSFSchema, UiSchema, WidgetProps, FieldTemplateProps, ObjectFieldTemplateProps, ArrayFieldTemplateProps, ArrayFieldItemTemplateProps, ErrorListProps } from '@rjsf/utils';
|
|
9
9
|
import { FormProps, IChangeEvent } from '@rjsf/core';
|
|
10
10
|
import { CommonExternalProps } from 'react-json-tree';
|
|
11
|
-
import { b as TreeRootProps } from './types-
|
|
12
|
-
export { c as DEFAULT_TREE_APPEARANCE, D as DEFAULT_TREE_LABELS, F as FlatRow, R as ResolvedAppearance, m as TreeAccentIntensity, k as TreeAppearance, e as TreeContextMenuSlot, l as TreeDensity, f as TreeItemId, g as TreeLabels, j as TreeLoadChildren, T as TreeNode, n as TreeRadius, i as TreeRowRenderProps, a as TreeRowSlot, h as TreeSelectionMode, d as appearanceToStyle, r as resolveAppearance } from './types-
|
|
11
|
+
import { b as TreeRootProps } from './types-CevSbyfD.cjs';
|
|
12
|
+
export { c as DEFAULT_TREE_APPEARANCE, D as DEFAULT_TREE_LABELS, F as FlatRow, R as ResolvedAppearance, m as TreeAccentIntensity, k as TreeAppearance, e as TreeContextMenuSlot, l as TreeDensity, f as TreeItemId, g as TreeLabels, j as TreeLoadChildren, T as TreeNode, n as TreeRadius, i as TreeRowRenderProps, a as TreeRowSlot, h as TreeSelectionMode, d as appearanceToStyle, r as resolveAppearance } from './types-CevSbyfD.cjs';
|
|
13
13
|
import { MediaPlayerInstance } from '@vidstack/react';
|
|
14
14
|
import * as monaco from 'monaco-editor';
|
|
15
15
|
export { ChildCache, ChildEntry, ChildEntryStatus, DemoNode, FlattenInput, PersistedTreeState, TreeRoot as Tree, TreeChevron, TreeChevronProps, TreeContent, TreeContentProps, TreeContextValue, TreeEmpty, TreeEmptyProps, TreeError, TreeErrorProps, TreeIcon, TreeIconProps, TreeIndentGuides, TreeIndentGuidesProps, TreeLabel, TreeLabelProps, TreeProvider, TreeProviderProps, TreeRoot, TreeRow, TreeRowProps, TreeSearchInput, TreeSearchInputProps, TreeSkeleton, TreeSkeletonProps, UseTreeKeyboardOptions, UseTreeTypeAheadOptions, clearTreeState, createChildCache, createDemoTree, flattenTree, loadTreeState, resolveChildren, saveTreeState, useTreeActions, useTreeContext, useTreeExpansion, useTreeFocus, useTreeKeyboard, useTreeLabels, useTreeRows, useTreeSearch, useTreeSelection, useTreeTypeAhead } from './tree/index.cjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -8,8 +8,8 @@ export { Language } from 'prism-react-renderer';
|
|
|
8
8
|
import { RJSFSchema, UiSchema, WidgetProps, FieldTemplateProps, ObjectFieldTemplateProps, ArrayFieldTemplateProps, ArrayFieldItemTemplateProps, ErrorListProps } from '@rjsf/utils';
|
|
9
9
|
import { FormProps, IChangeEvent } from '@rjsf/core';
|
|
10
10
|
import { CommonExternalProps } from 'react-json-tree';
|
|
11
|
-
import { b as TreeRootProps } from './types-
|
|
12
|
-
export { c as DEFAULT_TREE_APPEARANCE, D as DEFAULT_TREE_LABELS, F as FlatRow, R as ResolvedAppearance, m as TreeAccentIntensity, k as TreeAppearance, e as TreeContextMenuSlot, l as TreeDensity, f as TreeItemId, g as TreeLabels, j as TreeLoadChildren, T as TreeNode, n as TreeRadius, i as TreeRowRenderProps, a as TreeRowSlot, h as TreeSelectionMode, d as appearanceToStyle, r as resolveAppearance } from './types-
|
|
11
|
+
import { b as TreeRootProps } from './types-CevSbyfD.js';
|
|
12
|
+
export { c as DEFAULT_TREE_APPEARANCE, D as DEFAULT_TREE_LABELS, F as FlatRow, R as ResolvedAppearance, m as TreeAccentIntensity, k as TreeAppearance, e as TreeContextMenuSlot, l as TreeDensity, f as TreeItemId, g as TreeLabels, j as TreeLoadChildren, T as TreeNode, n as TreeRadius, i as TreeRowRenderProps, a as TreeRowSlot, h as TreeSelectionMode, d as appearanceToStyle, r as resolveAppearance } from './types-CevSbyfD.js';
|
|
13
13
|
import { MediaPlayerInstance } from '@vidstack/react';
|
|
14
14
|
import * as monaco from 'monaco-editor';
|
|
15
15
|
export { ChildCache, ChildEntry, ChildEntryStatus, DemoNode, FlattenInput, PersistedTreeState, TreeRoot as Tree, TreeChevron, TreeChevronProps, TreeContent, TreeContentProps, TreeContextValue, TreeEmpty, TreeEmptyProps, TreeError, TreeErrorProps, TreeIcon, TreeIconProps, TreeIndentGuides, TreeIndentGuidesProps, TreeLabel, TreeLabelProps, TreeProvider, TreeProviderProps, TreeRoot, TreeRow, TreeRowProps, TreeSearchInput, TreeSearchInputProps, TreeSkeleton, TreeSkeletonProps, UseTreeKeyboardOptions, UseTreeTypeAheadOptions, clearTreeState, createChildCache, createDemoTree, flattenTree, loadTreeState, resolveChildren, saveTreeState, useTreeActions, useTreeContext, useTreeExpansion, useTreeFocus, useTreeKeyboard, useTreeLabels, useTreeRows, useTreeSearch, useTreeSelection, useTreeTypeAhead } from './tree/index.js';
|
package/dist/index.mjs
CHANGED
|
@@ -6,9 +6,9 @@ export { ImageViewer } from './chunk-GGKGH5PM.mjs';
|
|
|
6
6
|
export { generateContentKey, useAudioCache, useBlobUrlCleanup, useImageCache, useMediaCacheStore, useVideoCache, useVideoPlayerSettings } from './chunk-5LBDYFWH.mjs';
|
|
7
7
|
export { CronSchedulerProvider, CustomInput, DayChips, MonthDayGrid, SchedulePreview, ScheduleTypeSelector, TimeSelector, buildCron, humanizeCron, isValidCron, parseCron, useCronCustom, useCronMonthDays, useCronPreview, useCronScheduler, useCronSchedulerContext, useCronTime, useCronType, useCronWeekDays } from './chunk-PZKAH7WQ.mjs';
|
|
8
8
|
export { TreeError, TreeSkeleton, createDemoTree } from './chunk-KR6B3LVY.mjs';
|
|
9
|
-
export { DEFAULT_TREE_APPEARANCE, DEFAULT_TREE_LABELS, TreeRoot as Tree, TreeChevron, TreeContent, TreeEmpty, TreeIcon, TreeIndentGuides, TreeLabel, TreeProvider, TreeRoot, TreeRow, TreeSearchInput, appearanceToStyle, clearTreeState, createChildCache, flattenTree, loadTreeState, resolveAppearance, resolveChildren, saveTreeState, useTreeActions, useTreeContext, useTreeExpansion, useTreeFocus, useTreeKeyboard, useTreeLabels, useTreeRows, useTreeSearch, useTreeSelection, useTreeTypeAhead } from './chunk-
|
|
10
|
-
import { PlaygroundProvider } from './chunk-
|
|
11
|
-
export { MarkdownMessage, Mermaid_default as Mermaid, PrettyCode_default as PrettyCode, extractTextFromChildren, useCollapsibleContent } from './chunk-
|
|
9
|
+
export { DEFAULT_TREE_APPEARANCE, DEFAULT_TREE_LABELS, TreeRoot as Tree, TreeChevron, TreeContent, TreeEmpty, TreeIcon, TreeIndentGuides, TreeLabel, TreeProvider, TreeRoot, TreeRow, TreeSearchInput, appearanceToStyle, clearTreeState, createChildCache, flattenTree, loadTreeState, resolveAppearance, resolveChildren, saveTreeState, useTreeActions, useTreeContext, useTreeExpansion, useTreeFocus, useTreeKeyboard, useTreeLabels, useTreeRows, useTreeSearch, useTreeSelection, useTreeTypeAhead } from './chunk-MOME6KYD.mjs';
|
|
10
|
+
import { PlaygroundProvider } from './chunk-62Y65TGK.mjs';
|
|
11
|
+
export { MarkdownMessage, Mermaid_default as Mermaid, PrettyCode_default as PrettyCode, extractTextFromChildren, useCollapsibleContent } from './chunk-62Y65TGK.mjs';
|
|
12
12
|
export { JsonTree_default as JsonTree } from './chunk-LFWQ36LJ.mjs';
|
|
13
13
|
import './chunk-SSUOENAZ.mjs';
|
|
14
14
|
import { __name } from './chunk-CGILA3WO.mjs';
|
|
@@ -239,7 +239,7 @@ function OpenapiLoadingFallback() {
|
|
|
239
239
|
}
|
|
240
240
|
__name(OpenapiLoadingFallback, "OpenapiLoadingFallback");
|
|
241
241
|
var LazyDocsLayout = createLazyComponent(
|
|
242
|
-
() => import('./DocsLayout-
|
|
242
|
+
() => import('./DocsLayout-CTJINVBM.mjs').then((mod) => ({ default: mod.DocsLayout })),
|
|
243
243
|
{
|
|
244
244
|
displayName: "LazyDocsLayout",
|
|
245
245
|
fallback: /* @__PURE__ */ jsx(OpenapiLoadingFallback, {})
|
|
@@ -338,7 +338,7 @@ var LazyCronScheduler = createLazyComponent(
|
|
|
338
338
|
}
|
|
339
339
|
);
|
|
340
340
|
var LazyTree = createLazyComponent(
|
|
341
|
-
() => import('./TreeRoot-
|
|
341
|
+
() => import('./TreeRoot-A3J65L6F.mjs'),
|
|
342
342
|
{
|
|
343
343
|
displayName: "LazyTree",
|
|
344
344
|
fallback: /* @__PURE__ */ jsx(LoadingFallback, { minHeight: 200, text: "Loading tree\u2026" })
|
|
@@ -356,7 +356,7 @@ function LottiePlayer(props) {
|
|
|
356
356
|
}
|
|
357
357
|
__name(LottiePlayer, "LottiePlayer");
|
|
358
358
|
var DocsLayout = lazy(
|
|
359
|
-
() => import('./DocsLayout-
|
|
359
|
+
() => import('./DocsLayout-CTJINVBM.mjs').then((mod) => ({ default: mod.DocsLayout }))
|
|
360
360
|
);
|
|
361
361
|
var LoadingFallback6 = /* @__PURE__ */ __name(() => /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center min-h-[400px]", children: /* @__PURE__ */ jsx("div", { className: "text-muted-foreground", children: "Loading API Playground..." }) }), "LoadingFallback");
|
|
362
362
|
var Playground = /* @__PURE__ */ __name(({ config }) => {
|