@dbcdk/react-components 0.0.192 → 0.0.193
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/components/json-viewer/JsonViewer.cjs +2 -1
- package/dist/components/json-viewer/JsonViewer.d.ts +2 -2
- package/dist/components/json-viewer/JsonViewer.js +2 -1
- package/dist/components/json-viewer/types.d.ts +2 -0
- package/dist/components/line-viewer/LineViewer.cjs +9 -2
- package/dist/components/line-viewer/LineViewer.d.ts +6 -1
- package/dist/components/line-viewer/LineViewer.js +9 -2
- package/dist/components/line-viewer/LineViewer.module.css +15 -2
- package/package.json +1 -1
|
@@ -23,6 +23,7 @@ function JsonViewer({
|
|
|
23
23
|
value,
|
|
24
24
|
defaultExpandedDepth = 2,
|
|
25
25
|
expandAll = false,
|
|
26
|
+
defaultViewMode = "tree",
|
|
26
27
|
searchDebounceMs = 800,
|
|
27
28
|
helperText,
|
|
28
29
|
searchPlaceholder = "S\xF8g i n\xF8gler, stier og v\xE6rdier",
|
|
@@ -44,7 +45,7 @@ function JsonViewer({
|
|
|
44
45
|
validate: (stored) => stored === "dark" || stored === "light"
|
|
45
46
|
});
|
|
46
47
|
const { value: viewMode, setValue: setViewMode } = usePersistentState.usePersistentState({
|
|
47
|
-
initialValue:
|
|
48
|
+
initialValue: defaultViewMode,
|
|
48
49
|
storageKey: storageKey ? `${storageKey}:viewMode` : void 0,
|
|
49
50
|
validate: (stored) => stored === "tree" || stored === "raw"
|
|
50
51
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { JSX } from 'react';
|
|
2
2
|
import type { JsonViewerProps } from './types';
|
|
3
|
-
export type { JsonViewerProps } from './types';
|
|
4
|
-
export declare function JsonViewer({ value, defaultExpandedDepth, expandAll, searchDebounceMs, helperText, searchPlaceholder, emptySearchText, className, maxHeight, appearance, storageKey, borderless, }: JsonViewerProps): JSX.Element;
|
|
3
|
+
export type { JsonViewerProps, JsonViewerViewMode } from './types';
|
|
4
|
+
export declare function JsonViewer({ value, defaultExpandedDepth, expandAll, defaultViewMode, searchDebounceMs, helperText, searchPlaceholder, emptySearchText, className, maxHeight, appearance, storageKey, borderless, }: JsonViewerProps): JSX.Element;
|
|
@@ -17,6 +17,7 @@ function JsonViewer({
|
|
|
17
17
|
value,
|
|
18
18
|
defaultExpandedDepth = 2,
|
|
19
19
|
expandAll = false,
|
|
20
|
+
defaultViewMode = "tree",
|
|
20
21
|
searchDebounceMs = 800,
|
|
21
22
|
helperText,
|
|
22
23
|
searchPlaceholder = "S\xF8g i n\xF8gler, stier og v\xE6rdier",
|
|
@@ -38,7 +39,7 @@ function JsonViewer({
|
|
|
38
39
|
validate: (stored) => stored === "dark" || stored === "light"
|
|
39
40
|
});
|
|
40
41
|
const { value: viewMode, setValue: setViewMode } = usePersistentState({
|
|
41
|
-
initialValue:
|
|
42
|
+
initialValue: defaultViewMode,
|
|
42
43
|
storageKey: storageKey ? `${storageKey}:viewMode` : void 0,
|
|
43
44
|
validate: (stored) => stored === "tree" || stored === "raw"
|
|
44
45
|
});
|
|
@@ -8,10 +8,12 @@ export type SearchMatch = {
|
|
|
8
8
|
descendant: boolean;
|
|
9
9
|
};
|
|
10
10
|
export type JsonViewerAppearance = 'dark' | 'light';
|
|
11
|
+
export type JsonViewerViewMode = 'tree' | 'raw';
|
|
11
12
|
export interface JsonViewerProps {
|
|
12
13
|
value: unknown;
|
|
13
14
|
defaultExpandedDepth?: number;
|
|
14
15
|
expandAll?: boolean;
|
|
16
|
+
defaultViewMode?: JsonViewerViewMode;
|
|
15
17
|
searchDebounceMs?: number;
|
|
16
18
|
helperText?: string;
|
|
17
19
|
searchPlaceholder?: string;
|
|
@@ -30,6 +30,8 @@ function LineViewer({
|
|
|
30
30
|
lines,
|
|
31
31
|
size = "md",
|
|
32
32
|
appearance = "dark",
|
|
33
|
+
defaultViewMode = "highlighted",
|
|
34
|
+
deleted = false,
|
|
33
35
|
storageKey,
|
|
34
36
|
borderless = false
|
|
35
37
|
}) {
|
|
@@ -41,7 +43,7 @@ function LineViewer({
|
|
|
41
43
|
validate: (stored) => stored === "dark" || stored === "light"
|
|
42
44
|
});
|
|
43
45
|
const { value: viewMode, setValue: setViewMode } = usePersistentState.usePersistentState({
|
|
44
|
-
initialValue:
|
|
46
|
+
initialValue: defaultViewMode,
|
|
45
47
|
storageKey: storageKey ? `${storageKey}:viewMode` : void 0,
|
|
46
48
|
validate: (stored) => stored === "highlighted" || stored === "raw"
|
|
47
49
|
});
|
|
@@ -158,7 +160,12 @@ function LineViewer({
|
|
|
158
160
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
159
161
|
"pre",
|
|
160
162
|
{
|
|
161
|
-
className: [
|
|
163
|
+
className: [
|
|
164
|
+
styles__default.default.codePane,
|
|
165
|
+
styles__default.default[size],
|
|
166
|
+
wrap ? styles__default.default.wrap : styles__default.default.noWrap,
|
|
167
|
+
deleted ? styles__default.default.deleted : ""
|
|
168
|
+
].filter(Boolean).join(" "),
|
|
162
169
|
tabIndex: 0,
|
|
163
170
|
onDoubleClick: handleDoubleClick,
|
|
164
171
|
children: /* @__PURE__ */ jsxRuntime.jsx("code", { ref: codeRef, children: viewMode === "raw" ? lines : tokens.map((token, index) => {
|
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import type { JSX } from 'react';
|
|
2
2
|
export type LineViewerAppearance = 'dark' | 'light';
|
|
3
|
+
export type LineViewerViewMode = 'highlighted' | 'raw';
|
|
3
4
|
export interface LineViewerProps {
|
|
4
5
|
lines: string;
|
|
5
6
|
size?: 'xs' | 'sm' | 'md' | 'lg';
|
|
6
7
|
/** Initial appearance. The user can toggle it via the kebab menu; defaults to 'dark'. */
|
|
7
8
|
appearance?: LineViewerAppearance;
|
|
9
|
+
/** Initial view mode. The user can toggle it via the kebab menu; defaults to 'highlighted'. */
|
|
10
|
+
defaultViewMode?: LineViewerViewMode;
|
|
11
|
+
/** Displays all line text in the theme's error color, for deleted or invalid content. */
|
|
12
|
+
deleted?: boolean;
|
|
8
13
|
/**
|
|
9
14
|
* When set, the user's appearance/view-mode/wrap choices are persisted to
|
|
10
15
|
* localStorage under `${storageKey}:appearance` etc.
|
|
@@ -17,4 +22,4 @@ export interface LineViewerProps {
|
|
|
17
22
|
*/
|
|
18
23
|
borderless?: boolean;
|
|
19
24
|
}
|
|
20
|
-
export declare function LineViewer({ lines, size, appearance, storageKey, borderless, }: LineViewerProps): JSX.Element;
|
|
25
|
+
export declare function LineViewer({ lines, size, appearance, defaultViewMode, deleted, storageKey, borderless, }: LineViewerProps): JSX.Element;
|
|
@@ -24,6 +24,8 @@ function LineViewer({
|
|
|
24
24
|
lines,
|
|
25
25
|
size = "md",
|
|
26
26
|
appearance = "dark",
|
|
27
|
+
defaultViewMode = "highlighted",
|
|
28
|
+
deleted = false,
|
|
27
29
|
storageKey,
|
|
28
30
|
borderless = false
|
|
29
31
|
}) {
|
|
@@ -35,7 +37,7 @@ function LineViewer({
|
|
|
35
37
|
validate: (stored) => stored === "dark" || stored === "light"
|
|
36
38
|
});
|
|
37
39
|
const { value: viewMode, setValue: setViewMode } = usePersistentState({
|
|
38
|
-
initialValue:
|
|
40
|
+
initialValue: defaultViewMode,
|
|
39
41
|
storageKey: storageKey ? `${storageKey}:viewMode` : void 0,
|
|
40
42
|
validate: (stored) => stored === "highlighted" || stored === "raw"
|
|
41
43
|
});
|
|
@@ -152,7 +154,12 @@ function LineViewer({
|
|
|
152
154
|
/* @__PURE__ */ jsx(
|
|
153
155
|
"pre",
|
|
154
156
|
{
|
|
155
|
-
className: [
|
|
157
|
+
className: [
|
|
158
|
+
styles.codePane,
|
|
159
|
+
styles[size],
|
|
160
|
+
wrap ? styles.wrap : styles.noWrap,
|
|
161
|
+
deleted ? styles.deleted : ""
|
|
162
|
+
].filter(Boolean).join(" "),
|
|
156
163
|
tabIndex: 0,
|
|
157
164
|
onDoubleClick: handleDoubleClick,
|
|
158
165
|
children: /* @__PURE__ */ jsx("code", { ref: codeRef, children: viewMode === "raw" ? lines : tokens.map((token, index) => {
|
|
@@ -5,9 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
--line-tag: color-mix(in oklab, var(--color-fg-inverse) 66%, var(--color-syntax-accent) 34%);
|
|
7
7
|
--line-indicator: color-mix(in oklab, var(--color-fg-inverse) 46%, transparent);
|
|
8
|
-
--line-subfield-code: color-mix(
|
|
8
|
+
--line-subfield-code: color-mix(
|
|
9
|
+
in oklab,
|
|
10
|
+
var(--color-fg-inverse) 30%,
|
|
11
|
+
var(--color-syntax-number) 70%
|
|
12
|
+
);
|
|
9
13
|
--line-value: color-mix(in oklab, var(--color-fg-inverse) 20%, var(--color-syntax-string) 80%);
|
|
10
|
-
--line-terminator: color-mix(
|
|
14
|
+
--line-terminator: color-mix(
|
|
15
|
+
in oklab,
|
|
16
|
+
var(--color-fg-inverse) 30%,
|
|
17
|
+
var(--color-syntax-boolean) 70%
|
|
18
|
+
);
|
|
11
19
|
--line-punctuation: color-mix(in oklab, var(--color-fg-inverse) 60%, transparent);
|
|
12
20
|
--line-continuation: color-mix(in oklab, var(--color-fg-inverse) 46%, transparent);
|
|
13
21
|
|
|
@@ -57,6 +65,11 @@
|
|
|
57
65
|
line-height: 1.35;
|
|
58
66
|
}
|
|
59
67
|
|
|
68
|
+
.deleted code,
|
|
69
|
+
.deleted code * {
|
|
70
|
+
color: var(--color-status-error);
|
|
71
|
+
}
|
|
72
|
+
|
|
60
73
|
.wrap {
|
|
61
74
|
white-space: pre-wrap;
|
|
62
75
|
overflow-wrap: break-word;
|