@epam/ai-dial-ui-kit 0.14.2 → 0.15.0-dev.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/README.md +146 -0
  2. package/dist/CHANGELOG.md +14 -0
  3. package/dist/{DateCellRenderer-BVM-Q8yx.cjs → DateCellRenderer-CHi2CB33.cjs} +26 -26
  4. package/dist/DateCellRenderer-xGfSaQHO.cjs +1 -0
  5. package/dist/JsonEditor-D2jSlRFi.cjs +1 -0
  6. package/dist/{MarkdownEditor-jQ8nDJfx.cjs → MarkdownEditor-BzEbdj7R.cjs} +1 -1
  7. package/dist/{MarkdownEditor-DHn2pYOJ.cjs → MarkdownEditor-C9-ZMRVi.cjs} +1 -1
  8. package/dist/MarkdownEditorContainer-BvwJjkiZ.cjs +1 -0
  9. package/dist/components/Dropdown/Dropdown.js +70 -65
  10. package/dist/components/Dropdown/DropdownSubMenuItem.js +63 -55
  11. package/dist/components/Dropdown/constants.js +15 -13
  12. package/dist/components/DropdownIcon/DropdownIcon.js +43 -32
  13. package/dist/components/MarkdownEditor/MarkdownEditorContainer.js +18 -16
  14. package/dist/components/New/Accordion/Accordion.js +40 -38
  15. package/dist/components/New/Breadcrumbs/Breadcrumbs.js +146 -0
  16. package/dist/components/New/Breadcrumbs/constants.js +32 -0
  17. package/dist/components/New/ButtonDropdown/ButtonDropdown.js +7 -6
  18. package/dist/components/New/Calendar/Calendar.js +337 -289
  19. package/dist/components/New/CaptionText/CaptionText.js +18 -15
  20. package/dist/components/New/CardShell/CardShell.js +5 -3
  21. package/dist/components/New/Checkbox/Checkbox.js +67 -56
  22. package/dist/components/New/Checkbox/CheckboxBox.js +5 -3
  23. package/dist/components/New/CloseButton/CloseButton.js +18 -16
  24. package/dist/components/New/CollapsibleSidebar/CollapsibleSidebar.js +39 -34
  25. package/dist/components/New/ConfirmationPopup/ConfirmationPopup.js +44 -39
  26. package/dist/components/New/Dropdown/Dropdown.js +101 -95
  27. package/dist/components/New/EllipsisTooltip/EllipsisTooltip.js +20 -18
  28. package/dist/components/New/FileDropzone/FileDropzone.js +27 -25
  29. package/dist/components/New/FilterChips/FilterChips.js +43 -0
  30. package/dist/components/New/FilterChips/constants.js +5 -0
  31. package/dist/components/New/FolderPath/FolderPath.js +29 -28
  32. package/dist/components/New/Highlight/Highlight.js +23 -30
  33. package/dist/components/New/InfoButton/InfoButton.js +13 -11
  34. package/dist/components/New/InlineSelect/InlineSelect.js +43 -41
  35. package/dist/components/New/InteractiveTooltip/InteractiveTooltip.js +41 -39
  36. package/dist/components/New/Label/Label.js +13 -8
  37. package/dist/components/New/MenuItem/MenuItem.js +29 -27
  38. package/dist/components/New/MenuItem/constants.js +9 -8
  39. package/dist/components/New/NoDataContent/NoDataContent.js +21 -19
  40. package/dist/components/New/Notification/Notification.js +29 -27
  41. package/dist/components/New/NumberInput/NumberInput.js +42 -33
  42. package/dist/components/New/PasswordInput/PasswordInput.js +41 -35
  43. package/dist/components/New/Popup/Popup.js +46 -44
  44. package/dist/components/New/Radio/Radio.js +75 -64
  45. package/dist/components/New/RadioGroup/RadioGroup.js +76 -65
  46. package/dist/components/New/RadioGroupPopupField/RadioGroupPopupField.js +117 -106
  47. package/dist/components/New/ResizableContainer/ResizableContainer.js +42 -40
  48. package/dist/components/New/Search/Search.js +29 -27
  49. package/dist/components/New/SegmentedControl/SegmentedControl.js +29 -23
  50. package/dist/components/New/Select/Select.js +120 -109
  51. package/dist/components/New/Switch/Switch.js +69 -58
  52. package/dist/components/New/Tabs/Tabs.js +122 -61
  53. package/dist/components/New/Tag/Tag.js +42 -40
  54. package/dist/components/New/TagInput/TagInput.js +45 -43
  55. package/dist/components/New/ToggleIconButton/ToggleIconButton.js +26 -24
  56. package/dist/components/New/Tooltip/TooltipContent.js +11 -9
  57. package/dist/components/ProgressBar/ProgressBar.js +45 -33
  58. package/dist/components/SchemaRenderer/components/SchemaAdditionalPropertiesEditor.js +46 -31
  59. package/dist/components/SchemaRenderer/components/SchemaKeyValueEditor.js +223 -135
  60. package/dist/components/SchemaRenderer/types.js +19 -8
  61. package/dist/components/SchemaRenderer/utils.js +121 -96
  62. package/dist/components/Skeleton/Skeleton.js +25 -19
  63. package/dist/components/Spinner/Spinner.js +7 -5
  64. package/dist/components-manifest.json +217 -5
  65. package/dist/constants/public-class-names.js +175 -0
  66. package/dist/dial-ui-kit.cjs +2 -2
  67. package/dist/dial-ui-kit.js +231 -223
  68. package/dist/editor-_174x-qy.cjs +1 -0
  69. package/dist/editors.cjs +1 -1
  70. package/dist/file-manager.cjs +1 -1
  71. package/dist/grid.cjs +1 -1
  72. package/dist/index.css +1 -1
  73. package/dist/lazy-DM-7dL0Y.cjs +1 -0
  74. package/dist/src/components/New/Breadcrumbs/Breadcrumbs.d.ts +83 -0
  75. package/dist/src/components/New/Breadcrumbs/constants.d.ts +48 -0
  76. package/dist/src/components/New/Calendar/Calendar.d.ts +14 -1
  77. package/dist/src/components/New/FilterChips/FilterChips.d.ts +69 -0
  78. package/dist/src/components/New/FilterChips/constants.d.ts +13 -0
  79. package/dist/src/components/New/Tabs/Tabs.d.ts +47 -6
  80. package/dist/src/components/SchemaRenderer/types.d.ts +11 -0
  81. package/dist/src/components/SchemaRenderer/utils.d.ts +5 -1
  82. package/dist/src/constants/public-class-names.d.ts +166 -0
  83. package/dist/src/index.d.ts +7 -0
  84. package/dist/src/utils/__tests__/timezone.spec.d.ts +1 -0
  85. package/dist/src/utils/timezone.d.ts +24 -0
  86. package/dist/use-file-manager-tabs-C_UUfS-F.cjs +3 -0
  87. package/dist/utils/timezone.js +19 -0
  88. package/package.json +1 -1
  89. package/dist/DateCellRenderer-ssp7eaZY.cjs +0 -1
  90. package/dist/JsonEditor-qv1Z0dLX.cjs +0 -1
  91. package/dist/MarkdownEditorContainer-Bzcnoemw.cjs +0 -1
  92. package/dist/lazy-tfN4sKhq.cjs +0 -1
  93. package/dist/use-file-manager-tabs-DjdR_mYM.cjs +0 -3
@@ -1,58 +1,70 @@
1
- import { jsx as r, jsxs as m } from "react/jsx-runtime";
2
- import { useId as w } from "react";
3
- import { Label as y } from "../New/Label/Label.js";
1
+ import { jsx as i, jsxs as c } from "react/jsx-runtime";
2
+ import { useId as y } from "react";
3
+ import { Label as S } from "../New/Label/Label.js";
4
4
  import { ElementSize as f } from "../../types/size.js";
5
- import { resolveAccessibleName as I } from "../../utils/accessible-name.js";
6
- import { mergeClasses as M } from "../../utils/merge-classes.js";
7
- const A = ({
8
- value: o,
9
- max: s = 100,
5
+ import { resolveAccessibleName as B } from "../../utils/accessible-name.js";
6
+ import { mergeClasses as h } from "../../utils/merge-classes.js";
7
+ import { DIAL_KIT_CLASS as p } from "../../constants/public-class-names.js";
8
+ const z = ({
9
+ value: s,
10
+ max: l = 100,
10
11
  size: u = f.Standard,
11
12
  labelProps: e,
12
- valueLabel: i,
13
- id: h,
14
- className: b,
15
- "aria-label": p,
16
- ...g
13
+ valueLabel: r,
14
+ id: b,
15
+ className: g,
16
+ "aria-label": x,
17
+ ...v
17
18
  }) => {
18
- const x = w(), t = h ?? x, l = !!e?.label, n = l ? e?.id ?? `${t}-label` : void 0, a = s > 0 ? s : 0, v = Number.isFinite(o) ? o : 0, d = Math.min(Math.max(v, 0), a), N = a > 0 ? d / a * 100 : 0, c = /* @__PURE__ */ r(
19
+ const N = y(), t = b ?? N, a = !!e?.label, n = a ? e?.id ?? `${t}-label` : void 0, o = l > 0 ? l : 0, w = Number.isFinite(s) ? s : 0, d = Math.min(Math.max(w, 0), o), I = o > 0 ? d / o * 100 : 0, m = /* @__PURE__ */ i(
19
20
  "div",
20
21
  {
21
- ...g,
22
+ ...v,
22
23
  id: t,
23
24
  role: "progressbar",
24
25
  "aria-valuenow": d,
25
26
  "aria-valuemin": 0,
26
- "aria-valuemax": a,
27
+ "aria-valuemax": o,
27
28
  "aria-labelledby": n,
28
- "aria-label": I(
29
- p,
30
- l ? void 0 : "Progress"
29
+ "aria-label": B(
30
+ x,
31
+ a ? void 0 : "Progress"
31
32
  ),
32
- className: M(
33
+ className: h(
33
34
  "w-full overflow-hidden rounded-full bg-control-disable-primary",
34
35
  u === f.Small ? "h-1" : "h-2",
35
- b
36
+ g,
37
+ /* The track is the component's root when there is no label and no
38
+ readout to wrap it, and the public class belongs on whichever
39
+ element that is. */
40
+ !a && !r && p.progressBar
36
41
  ),
37
- children: /* @__PURE__ */ r(
42
+ children: /* @__PURE__ */ i(
38
43
  "div",
39
44
  {
40
- style: { width: `${N}%` },
45
+ style: { width: `${I}%` },
41
46
  className: "h-full rounded-full bg-control-accent transition-[width] duration-300 motion-reduce:transition-none"
42
47
  }
43
48
  )
44
49
  }
45
50
  );
46
- return !l && !i ? c : /* @__PURE__ */ m("div", { className: "flex w-full flex-col gap-1", children: [
47
- /* @__PURE__ */ m("div", { className: "flex items-baseline gap-2", children: [
48
- e && /* @__PURE__ */ r(y, { ...e, id: n }),
49
- i && // `ml-auto` rather than `justify-between` so the readout still sits
50
- // at the end when there is no label beside it.
51
- /* @__PURE__ */ r("span", { className: "dial-tiny-text text-secondary ml-auto shrink-0", children: i })
52
- ] }),
53
- c
54
- ] });
51
+ return !a && !r ? m : /* @__PURE__ */ c(
52
+ "div",
53
+ {
54
+ className: h(
55
+ "flex w-full flex-col gap-1",
56
+ p.progressBar
57
+ ),
58
+ children: [
59
+ /* @__PURE__ */ c("div", { className: "flex items-baseline gap-2", children: [
60
+ e && /* @__PURE__ */ i(S, { ...e, id: n }),
61
+ r && /* @__PURE__ */ i("span", { className: "dial-tiny-text text-secondary ml-auto shrink-0", children: r })
62
+ ] }),
63
+ m
64
+ ]
65
+ }
66
+ );
55
67
  };
56
68
  export {
57
- A as ProgressBar
69
+ z as ProgressBar
58
70
  };
@@ -1,41 +1,56 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import { useState as n, useEffect as f } from "react";
3
- import { useSchemaContext as u } from "../context.js";
4
- import { EditorThemes as x } from "../../../types/editor.js";
5
- const g = ({ value: i, onChange: s, theme: d = x.dark, height: a = 240 }) => {
6
- const { readonly: m } = u(), [t, c] = n(null), [p, l] = n(
7
- () => JSON.stringify(i, null, 2)
1
+ import { jsxs as u, jsx as e } from "react/jsx-runtime";
2
+ import { useState as s, useEffect as E } from "react";
3
+ import { DialErrorText as y } from "../../CaptionText/CaptionText.js";
4
+ import { useSchemaContext as S } from "../context.js";
5
+ import { EditorThemes as v } from "../../../types/editor.js";
6
+ const O = ({ value: a, onChange: d, theme: m = v.dark, height: l = 240 }) => {
7
+ const { readonly: c, texts: p } = S(), [r, h] = s(null), [o, f] = s(
8
+ () => JSON.stringify(a, null, 2)
8
9
  );
9
- f(() => {
10
- typeof window < "u" && import("../../JsonEditor/JsonEditor.js").then((e) => {
11
- c(() => e.DialJsonEditor);
10
+ E(() => {
11
+ typeof window < "u" && import("../../JsonEditor/JsonEditor.js").then((t) => {
12
+ h(() => t.DialJsonEditor);
12
13
  });
13
14
  }, []);
14
- const h = (e) => {
15
- const o = e ?? "";
16
- l(o);
15
+ let n = !1;
16
+ try {
17
+ JSON.parse(o);
18
+ } catch {
19
+ n = !0;
20
+ }
21
+ const x = (t) => {
22
+ const i = t ?? "";
23
+ f(i);
17
24
  try {
18
- s(JSON.parse(o));
25
+ d(JSON.parse(i));
19
26
  } catch {
20
27
  }
21
28
  };
22
- return /* @__PURE__ */ r(
23
- "div",
24
- {
25
- className: "border border-primary rounded",
26
- style: { height: `${a}px` },
27
- children: t && /* @__PURE__ */ r(
28
- t,
29
- {
30
- value: p,
31
- currentTheme: d,
32
- onChange: h,
33
- options: { readOnly: m }
34
- }
35
- )
36
- }
37
- );
29
+ return /* @__PURE__ */ u("div", { children: [
30
+ /* @__PURE__ */ e(
31
+ "div",
32
+ {
33
+ className: "border border-primary rounded",
34
+ style: { height: `${l}px` },
35
+ children: r && /* @__PURE__ */ e(
36
+ r,
37
+ {
38
+ value: o,
39
+ currentTheme: m,
40
+ onChange: x,
41
+ options: { readOnly: c }
42
+ }
43
+ )
44
+ }
45
+ ),
46
+ /* @__PURE__ */ e(
47
+ y,
48
+ {
49
+ text: n ? p.invalidJsonError : void 0
50
+ }
51
+ )
52
+ ] });
38
53
  };
39
54
  export {
40
- g as SchemaAdditionalPropertiesEditor
55
+ O as SchemaAdditionalPropertiesEditor
41
56
  };
@@ -1,184 +1,272 @@
1
- import { jsxs as y, jsx as a } from "react/jsx-runtime";
2
- import { useState as T } from "react";
3
- import { IconPlus as K } from "@tabler/icons-react";
4
- import { DialInput as A } from "../../Input/Input.js";
5
- import { DialErrorText as V } from "../../CaptionText/CaptionText.js";
6
- import { DialGhostButton as z } from "../../Button/ButtonWrappers.js";
7
- import { DialRemoveButton as H } from "../../RemoveButton/RemoveButton.js";
8
- import { ElementSize as q } from "../../../types/size.js";
9
- import { JsonSchemaType as L } from "../types.js";
10
- import { useSchemaContext as E } from "../context.js";
11
- import { resolveRef as G, isObjectType as J, buildSummary as M, validateRequired as U, extractDefaults as Y, getSchemaDefault as _ } from "../utils.js";
12
- import { SchemaPrimitiveField as $ } from "./SchemaPrimitiveField.js";
13
- import { SchemaSection as Q } from "./SchemaSection.js";
14
- import { SchemaFieldContent as W } from "./SchemaFieldContent.js";
15
- const R = (n, i) => ({
1
+ import { jsxs as x, jsx as e } from "react/jsx-runtime";
2
+ import { useState as R, useCallback as U, useMemo as M } from "react";
3
+ import { IconPlus as V } from "@tabler/icons-react";
4
+ import { DialInput as L } from "../../Input/Input.js";
5
+ import { DialErrorText as ee } from "../../CaptionText/CaptionText.js";
6
+ import { DialGhostButton as te } from "../../Button/ButtonWrappers.js";
7
+ import { DialRemoveButton as oe } from "../../RemoveButton/RemoveButton.js";
8
+ import { DialSelect as Y } from "../../Select/Select.js";
9
+ import { DialTooltip as ne } from "../../Tooltip/Tooltip.js";
10
+ import { ElementSize as re } from "../../../types/size.js";
11
+ import { JsonSchemaType as c } from "../types.js";
12
+ import { useSchemaContext as q } from "../context.js";
13
+ import { resolveRef as le, isObjectType as ae, inferEntryType as ie, getEntryTypeDefault as se, ENTRY_TYPE_OPTIONS as ce, buildSummary as de, validateRequired as me, extractDefaults as pe, getSchemaDefault as ye } from "../utils.js";
14
+ import { SchemaPrimitiveField as ue } from "./SchemaPrimitiveField.js";
15
+ import { SchemaSection as fe } from "./SchemaSection.js";
16
+ import { SchemaFieldContent as he } from "./SchemaFieldContent.js";
17
+ import { SchemaAdditionalPropertiesEditor as be } from "./SchemaAdditionalPropertiesEditor.js";
18
+ const _ = (l, d) => ({
16
19
  id: Math.random().toString(36).slice(2),
17
- key: n,
18
- value: i
19
- }), F = (n) => !!(n.oneOf || n.anyOf || n.type === L.Array || J(n)), X = ({
20
- pairId: n,
21
- pairKey: i,
22
- pairValue: s,
23
- valueSchema: c,
24
- onKeyChange: k,
20
+ key: l,
21
+ value: d
22
+ }), J = (l) => !!(l.oneOf || l.anyOf || l.type === c.Array || ae(l)), ve = {
23
+ [c.String]: "entryTypeString",
24
+ [c.Number]: "entryTypeNumber",
25
+ [c.Boolean]: "entryTypeBoolean",
26
+ [c.Null]: "entryTypeNull",
27
+ [c.Object]: "entryTypeObject",
28
+ [c.Array]: "entryTypeArray"
29
+ }, xe = ({
30
+ pairId: l,
31
+ pairKey: d,
32
+ pairValue: i,
33
+ valueSchema: u,
34
+ isUnschematizedValue: f,
35
+ jsonEditorTheme: C,
36
+ onKeyChange: m,
25
37
  onValueChange: p,
26
- onRemove: d,
27
- keyInputPlaceholder: x,
28
- removeFieldAriaLabel: C,
29
- path: m,
30
- level: h,
31
- readonly: l = !1,
32
- inputClassName: u
38
+ onRemove: P,
39
+ keyInputPlaceholder: O,
40
+ removeFieldAriaLabel: T,
41
+ path: h,
42
+ level: N,
43
+ readonly: s = !1,
44
+ inputClassName: b
33
45
  }) => {
34
46
  const {
35
- rootSchema: f,
36
- texts: g,
37
- defaultExpanded: N = !0,
38
- touchedPaths: S = /* @__PURE__ */ new Set(),
39
- markTouched: b = () => {
47
+ rootSchema: v,
48
+ texts: y,
49
+ defaultExpanded: E = !0,
50
+ touchedPaths: j = /* @__PURE__ */ new Set(),
51
+ markTouched: w = () => {
40
52
  },
41
- skipUntouched: P = !1
42
- } = E(), [e, t] = T(i), o = F(c), r = [...m, n, "key"].join("."), w = (!P || S.has(r)) && i === "", j = /* @__PURE__ */ y("div", { className: "flex gap-2 items-start", children: [
43
- /* @__PURE__ */ y("div", { className: o ? "flex-1 min-w-0" : "w-2/5 min-w-0", children: [
44
- /* @__PURE__ */ a(
45
- A,
53
+ skipUntouched: D = !1
54
+ } = q(), [t, o] = R(d), a = J(u), [n, g] = R(
55
+ () => ie(i)
56
+ ), B = f && (n === c.Object || n === c.Array), $ = f && n === c.Null, F = a || B, I = [...h, l, "key"].join("."), S = (!D || j.has(I)) && d === "", z = U(
57
+ (r) => {
58
+ p(se(r)), g(r);
59
+ },
60
+ [p]
61
+ ), G = M(
62
+ () => ce.map((r) => ({
63
+ value: r,
64
+ label: y[ve[r]]
65
+ })),
66
+ [y]
67
+ ), W = M(
68
+ () => [
69
+ { value: "true", label: y.booleanTrueOption },
70
+ { value: "false", label: y.booleanFalseOption }
71
+ ],
72
+ [y]
73
+ ), K = `${l}-key-error`, Q = f && n === c.Boolean, A = /* @__PURE__ */ x("div", { className: "flex gap-2 items-start", children: [
74
+ /* @__PURE__ */ x("div", { className: F ? "flex-1 min-w-0" : "w-2/5 min-w-0", children: [
75
+ /* @__PURE__ */ e(
76
+ L,
46
77
  {
47
- value: e,
48
- disabled: l,
49
- invalid: w,
50
- onChange: (I) => t(I ?? ""),
78
+ value: t,
79
+ disabled: s,
80
+ invalid: S,
81
+ "aria-describedby": S ? K : void 0,
82
+ onChange: (r) => o(r ?? ""),
51
83
  onBlur: () => {
52
- b(r), e !== i && k(e);
84
+ w(I), t !== d && m(t);
53
85
  },
54
- placeholder: x,
55
- containerClassName: u
86
+ placeholder: O,
87
+ containerClassName: b
56
88
  }
57
89
  ),
58
- /* @__PURE__ */ a(
59
- V,
90
+ /* @__PURE__ */ e(
91
+ ee,
60
92
  {
61
- text: w ? `${g.keyColumnHeader} is required` : void 0
93
+ id: K,
94
+ text: S ? `${y.keyColumnHeader} is required` : void 0
62
95
  }
63
96
  )
64
97
  ] }),
65
- !o && /* @__PURE__ */ a("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ a(
66
- $,
98
+ !a && !B && /* @__PURE__ */ e("div", { className: "flex-1 min-w-0", children: $ ? /* @__PURE__ */ e(
99
+ L,
100
+ {
101
+ value: "null",
102
+ disabled: !0,
103
+ onChange: void 0,
104
+ className: "opacity-60"
105
+ }
106
+ ) : Q ? /* @__PURE__ */ e(
107
+ Y,
67
108
  {
68
- schema: c,
69
- value: s,
109
+ options: W,
110
+ value: i ? "true" : "false",
111
+ disabled: s,
112
+ onChange: (r) => {
113
+ const k = typeof r == "string" ? r : r[0];
114
+ k && p(k === "true");
115
+ }
116
+ }
117
+ ) : /* @__PURE__ */ e(
118
+ ue,
119
+ {
120
+ schema: f ? { type: n } : u,
121
+ value: i,
70
122
  onChange: p
71
123
  }
72
124
  ) }),
73
- !l && /* @__PURE__ */ a(
74
- H,
125
+ f && /* @__PURE__ */ e("div", { className: "w-28 shrink-0", children: /* @__PURE__ */ e(
126
+ ne,
127
+ {
128
+ tooltip: y.entryTypeChangeWarning,
129
+ triggerClassName: "block",
130
+ children: /* @__PURE__ */ e(
131
+ Y,
132
+ {
133
+ options: G,
134
+ value: n,
135
+ disabled: s,
136
+ onChange: (r) => {
137
+ const k = typeof r == "string" ? r : r[0];
138
+ k && z(k);
139
+ }
140
+ }
141
+ )
142
+ }
143
+ ) }),
144
+ !s && /* @__PURE__ */ e(
145
+ oe,
75
146
  {
76
- size: q.Small,
77
- onClick: d,
78
- "aria-label": C,
147
+ size: re.Small,
148
+ onClick: P,
149
+ "aria-label": T,
79
150
  className: "shrink-0 p-1"
80
151
  }
81
152
  )
82
153
  ] });
83
- if (!o) return j;
84
- const D = [...m, i], O = M(s, c, f), B = U(
85
- s,
86
- c,
87
- f,
88
- D.join(".")
154
+ if (!F) return A;
155
+ if (B)
156
+ return /* @__PURE__ */ x("div", { className: "flex flex-col gap-2", children: [
157
+ A,
158
+ /* @__PURE__ */ e(
159
+ be,
160
+ {
161
+ value: i,
162
+ onChange: p,
163
+ theme: C
164
+ },
165
+ n
166
+ )
167
+ ] });
168
+ const H = [...h, d], X = de(i, u, v), Z = me(
169
+ i,
170
+ u,
171
+ v,
172
+ H.join(".")
89
173
  );
90
- return /* @__PURE__ */ y("div", { className: "flex flex-col gap-2", children: [
91
- j,
92
- /* @__PURE__ */ a(
93
- Q,
174
+ return /* @__PURE__ */ x("div", { className: "flex flex-col gap-2", children: [
175
+ A,
176
+ /* @__PURE__ */ e(
177
+ fe,
94
178
  {
95
- title: i,
96
- level: h,
97
- summary: O,
98
- errorCount: B.length + (w ? 1 : 0),
99
- defaultExpanded: N,
100
- children: /* @__PURE__ */ a(
101
- W,
179
+ title: d,
180
+ level: N,
181
+ summary: X,
182
+ errorCount: Z.length + (S ? 1 : 0),
183
+ defaultExpanded: E,
184
+ children: /* @__PURE__ */ e(
185
+ he,
102
186
  {
103
- schema: c,
104
- value: s,
187
+ schema: u,
188
+ value: i,
105
189
  onChange: p,
106
- path: D,
107
- level: h + 1
190
+ path: H,
191
+ level: N + 1
108
192
  }
109
193
  )
110
194
  }
111
195
  )
112
196
  ] });
113
- }, fe = ({
114
- schema: n,
115
- value: i,
116
- onChange: s,
117
- path: c,
118
- level: k
197
+ }, He = ({
198
+ schema: l,
199
+ value: d,
200
+ onChange: i,
201
+ path: u,
202
+ level: f
119
203
  }) => {
120
204
  const {
121
- rootSchema: p,
122
- texts: d,
123
- readonly: x = !1,
124
- inputClassName: C
125
- } = E(), m = n.additionalProperties === !0 || n.additionalProperties == null ? { type: "string" } : typeof n.additionalProperties == "object" ? G(n.additionalProperties, p) : { type: "string" }, h = F(m), [l, u] = T(
126
- () => Object.entries(i ?? {}).map(
127
- ([e, t]) => R(e, t)
205
+ rootSchema: C,
206
+ texts: m,
207
+ readonly: p = !1,
208
+ inputClassName: P,
209
+ jsonEditorTheme: O
210
+ } = q(), T = l.additionalProperties === !0 || l.additionalProperties == null, h = T ? { type: "string" } : typeof l.additionalProperties == "object" ? le(l.additionalProperties, C) : { type: "string" }, N = J(h), [s, b] = R(
211
+ () => Object.entries(d ?? {}).map(
212
+ ([t, o]) => _(t, o)
128
213
  )
129
- ), f = (e) => Object.fromEntries(
130
- e.filter((t) => t.key !== "").map((t) => [t.key, t.value])
131
- ), g = (e, t) => {
132
- const o = l.map(
133
- (r, v) => v === e ? { ...r, key: t } : r
214
+ ), v = (t) => Object.fromEntries(
215
+ t.filter((o) => o.key !== "").map((o) => [o.key, o.value])
216
+ ), y = (t, o) => {
217
+ const a = s.map(
218
+ (n, g) => g === t ? { ...n, key: o } : n
134
219
  );
135
- u(o), s(f(o));
136
- }, N = (e, t) => {
137
- const o = l.map(
138
- (r, v) => v === e ? { ...r, value: t } : r
220
+ b(a), i(v(a));
221
+ }, E = (t, o) => {
222
+ const a = s.map(
223
+ (n, g) => g === t ? { ...n, value: o } : n
139
224
  );
140
- u(o), s(f(o));
141
- }, S = () => h ? Y(m, p) ?? _(m) : "", b = () => {
142
- u((e) => [...e, R("", S())]);
143
- }, P = (e) => {
144
- const t = l.filter((o, r) => r !== e);
145
- u(t), s(f(t));
225
+ b(a), i(v(a));
226
+ }, j = () => N ? pe(h, C) ?? ye(h) : "", w = () => {
227
+ b((t) => [...t, _("", j())]);
228
+ }, D = (t) => {
229
+ const o = s.filter((a, n) => n !== t);
230
+ b(o), i(v(o));
146
231
  };
147
- return /* @__PURE__ */ y("div", { className: "flex flex-col gap-2", children: [
148
- l.length === 0 && /* @__PURE__ */ a("p", { className: "dial-tiny-text text-secondary italic", children: d.noFieldsYet }),
149
- l.length > 0 && !h && /* @__PURE__ */ y("div", { className: "flex gap-2 mb-1 pr-7", children: [
150
- /* @__PURE__ */ a("span", { className: "w-2/5 dial-tiny-text text-secondary font-medium", children: d.keyColumnHeader }),
151
- /* @__PURE__ */ a("span", { className: "flex-1 dial-tiny-text text-secondary font-medium", children: d.valueColumnHeader })
232
+ return /* @__PURE__ */ x("div", { className: "flex flex-col gap-2", children: [
233
+ s.length === 0 && /* @__PURE__ */ e("p", { className: "dial-tiny-text text-secondary italic", children: m.noFieldsYet }),
234
+ s.length > 0 && !N && /* @__PURE__ */ x("div", { className: "flex gap-2 mb-1 pr-7", children: [
235
+ /* @__PURE__ */ e("span", { className: "w-2/5 dial-tiny-text text-secondary font-medium", children: m.keyColumnHeader }),
236
+ /* @__PURE__ */ e("span", { className: "flex-1 dial-tiny-text text-secondary font-medium", children: m.valueColumnHeader }),
237
+ T && /* @__PURE__ */ e("span", { className: "w-28 shrink-0 dial-tiny-text text-secondary font-medium", children: m.typeColumnHeader })
152
238
  ] }),
153
- l.map((e, t) => /* @__PURE__ */ a(
154
- X,
239
+ s.map((t, o) => /* @__PURE__ */ e(
240
+ xe,
155
241
  {
156
- pairId: e.id,
157
- pairKey: e.key,
158
- pairValue: e.value,
159
- valueSchema: m,
160
- onKeyChange: (o) => g(t, o),
161
- onValueChange: (o) => N(t, o),
162
- onRemove: () => P(t),
163
- keyInputPlaceholder: d.keyInputPlaceholder,
164
- removeFieldAriaLabel: d.removeFieldAriaLabel,
165
- path: c,
166
- level: k,
167
- readonly: x,
168
- inputClassName: C
242
+ pairId: t.id,
243
+ pairKey: t.key,
244
+ pairValue: t.value,
245
+ valueSchema: h,
246
+ isUnschematizedValue: T,
247
+ jsonEditorTheme: O,
248
+ onKeyChange: (a) => y(o, a),
249
+ onValueChange: (a) => E(o, a),
250
+ onRemove: () => D(o),
251
+ keyInputPlaceholder: m.keyInputPlaceholder,
252
+ removeFieldAriaLabel: m.removeFieldAriaLabel,
253
+ path: u,
254
+ level: f,
255
+ readonly: p,
256
+ inputClassName: P
169
257
  },
170
- e.id
258
+ t.id
171
259
  )),
172
- !x && /* @__PURE__ */ a("div", { className: "pt-1", children: /* @__PURE__ */ a(
173
- z,
260
+ !p && /* @__PURE__ */ e("div", { className: "pt-1", children: /* @__PURE__ */ e(
261
+ te,
174
262
  {
175
- label: d.addField,
176
- iconBefore: /* @__PURE__ */ a(K, { size: 16, stroke: 2 }),
177
- onClick: b
263
+ label: m.addField,
264
+ iconBefore: /* @__PURE__ */ e(V, { size: 16, stroke: 2 }),
265
+ onClick: w
178
266
  }
179
267
  ) })
180
268
  ] });
181
269
  };
182
270
  export {
183
- fe as SchemaKeyValueEditor
271
+ He as SchemaKeyValueEditor
184
272
  };
@@ -1,5 +1,5 @@
1
- var t = /* @__PURE__ */ ((e) => (e.Sections = "sections", e.Flat = "flat", e.FlatSections = "flat-sections", e))(t || {}), l = /* @__PURE__ */ ((e) => (e.Select = "select", e.Radio = "radio", e))(l || {}), r = /* @__PURE__ */ ((e) => (e.Row = "row", e.Column = "column", e))(r || {}), o = /* @__PURE__ */ ((e) => (e.String = "string", e.Number = "number", e.Integer = "integer", e.Boolean = "boolean", e.Object = "object", e.Array = "array", e.Null = "null", e))(o || {});
2
- const n = {
1
+ var r = /* @__PURE__ */ ((e) => (e.Sections = "sections", e.Flat = "flat", e.FlatSections = "flat-sections", e))(r || {}), t = /* @__PURE__ */ ((e) => (e.Select = "select", e.Radio = "radio", e))(t || {}), l = /* @__PURE__ */ ((e) => (e.Row = "row", e.Column = "column", e))(l || {}), n = /* @__PURE__ */ ((e) => (e.String = "string", e.Number = "number", e.Integer = "integer", e.Boolean = "boolean", e.Object = "object", e.Array = "array", e.Null = "null", e))(n || {});
2
+ const o = {
3
3
  noItemSchema: "No item schema defined.",
4
4
  noItemsYet: "No items yet. Add one below.",
5
5
  addItem: "Add Item",
@@ -16,12 +16,23 @@ const n = {
16
16
  enumSelectPlaceholder: "Select an option",
17
17
  selectTypePlaceholder: "Select type",
18
18
  removeItemAriaLabel: "Remove item",
19
- removeFieldAriaLabel: "Remove field"
19
+ removeFieldAriaLabel: "Remove field",
20
+ typeColumnHeader: "Type",
21
+ entryTypeString: "String",
22
+ entryTypeNumber: "Number",
23
+ entryTypeBoolean: "Boolean",
24
+ entryTypeNull: "Null",
25
+ entryTypeObject: "Object",
26
+ entryTypeArray: "Array",
27
+ entryTypeChangeWarning: "Changing type will reset the current value.",
28
+ booleanTrueOption: "True",
29
+ booleanFalseOption: "False",
30
+ invalidJsonError: "Invalid JSON"
20
31
  };
21
32
  export {
22
- n as DEFAULT_SCHEMA_TEXTS,
23
- o as JsonSchemaType,
24
- l as SchemaDisplayMode,
25
- r as SchemaOrientation,
26
- t as SchemaRendererVariant
33
+ o as DEFAULT_SCHEMA_TEXTS,
34
+ n as JsonSchemaType,
35
+ t as SchemaDisplayMode,
36
+ l as SchemaOrientation,
37
+ r as SchemaRendererVariant
27
38
  };