@epam/ai-dial-ui-kit 0.15.0-dev.44 → 0.15.0-dev.46

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 (59) hide show
  1. package/README.md +2 -0
  2. package/dist/CHANGELOG.md +4 -0
  3. package/dist/{DateCellRenderer-Cl_mNbi1.cjs → DateCellRenderer-CZNa4jVJ.cjs} +1 -1
  4. package/dist/{DateCellRenderer-ChqbDlQ2.cjs → DateCellRenderer-X6vXPDIG.cjs} +1 -1
  5. package/dist/components/New/SchemaRenderer/SchemaRenderer.js +164 -0
  6. package/dist/components/New/SchemaRenderer/components/SchemaAnyOfEditor.js +65 -0
  7. package/dist/components/New/SchemaRenderer/components/SchemaArrayEditor.js +109 -0
  8. package/dist/components/New/SchemaRenderer/components/SchemaField.js +83 -0
  9. package/dist/components/New/SchemaRenderer/components/SchemaFieldContent.js +72 -0
  10. package/dist/components/New/SchemaRenderer/components/SchemaJsonEditor.js +41 -0
  11. package/dist/components/New/SchemaRenderer/components/SchemaKeyValueEditor.js +250 -0
  12. package/dist/components/New/SchemaRenderer/components/SchemaObjectEditor.js +36 -0
  13. package/dist/components/New/SchemaRenderer/components/SchemaOneOfEditor.js +163 -0
  14. package/dist/components/New/SchemaRenderer/components/SchemaPrimitiveField.js +150 -0
  15. package/dist/components/New/SchemaRenderer/components/SchemaSection.js +135 -0
  16. package/dist/components/New/SchemaRenderer/context.js +17 -0
  17. package/dist/components/New/Textarea/Textarea.js +21 -20
  18. package/dist/components/SchemaRenderer/SchemaRenderer.js +16 -15
  19. package/dist/components/SchemaRenderer/components/SchemaAnyOfEditor.js +2 -2
  20. package/dist/components/SchemaRenderer/components/SchemaArrayEditor.js +1 -1
  21. package/dist/components/SchemaRenderer/components/SchemaField.js +8 -8
  22. package/dist/components/SchemaRenderer/components/SchemaFieldContent.js +2 -2
  23. package/dist/components/SchemaRenderer/components/SchemaKeyValueEditor.js +2 -2
  24. package/dist/components/SchemaRenderer/components/SchemaObjectEditor.js +1 -1
  25. package/dist/components/SchemaRenderer/components/SchemaOneOfEditor.js +13 -13
  26. package/dist/components/SchemaRenderer/components/SchemaPrimitiveField.js +5 -5
  27. package/dist/components-manifest.json +148 -11
  28. package/dist/constants/public-class-names.js +8 -0
  29. package/dist/{components/SchemaRenderer/types.js → constants/schema-renderer.js} +2 -7
  30. package/dist/dial-ui-kit.cjs +2 -2
  31. package/dist/dial-ui-kit.js +241 -239
  32. package/dist/file-manager.cjs +1 -1
  33. package/dist/grid.cjs +1 -1
  34. package/dist/index.css +1 -1
  35. package/dist/src/components/New/SchemaRenderer/SchemaRenderer.d.ts +38 -0
  36. package/dist/src/components/New/SchemaRenderer/components/SchemaAnyOfEditor.d.ts +37 -0
  37. package/dist/src/components/New/SchemaRenderer/components/SchemaArrayEditor.d.ts +35 -0
  38. package/dist/src/components/New/SchemaRenderer/components/SchemaField.d.ts +33 -0
  39. package/dist/src/components/New/SchemaRenderer/components/SchemaFieldContent.d.ts +30 -0
  40. package/dist/src/components/New/SchemaRenderer/components/SchemaJsonEditor.d.ts +29 -0
  41. package/dist/src/components/New/SchemaRenderer/components/SchemaKeyValueEditor.d.ts +37 -0
  42. package/dist/src/components/New/SchemaRenderer/components/SchemaObjectEditor.d.ts +32 -0
  43. package/dist/src/components/New/SchemaRenderer/components/SchemaOneOfEditor.d.ts +39 -0
  44. package/dist/src/components/New/SchemaRenderer/components/SchemaPrimitiveField.d.ts +38 -0
  45. package/dist/src/components/New/SchemaRenderer/components/SchemaSection.d.ts +39 -0
  46. package/dist/src/components/New/SchemaRenderer/context.d.ts +8 -0
  47. package/dist/src/components/New/SchemaRenderer/types.d.ts +76 -0
  48. package/dist/src/components/SchemaRenderer/types.d.ts +5 -93
  49. package/dist/src/components/SchemaRenderer/utils.d.ts +1 -22
  50. package/dist/src/constants/public-class-names.d.ts +8 -0
  51. package/dist/src/constants/schema-renderer.d.ts +2 -0
  52. package/dist/src/index.d.ts +3 -1
  53. package/dist/src/models/json-schema.d.ts +71 -0
  54. package/dist/src/types/json-schema.d.ts +22 -0
  55. package/dist/src/utils/json-schema.d.ts +23 -0
  56. package/dist/types/json-schema.js +7 -0
  57. package/dist/{use-file-manager-tabs-C-dMqEFy.cjs → use-file-manager-tabs-Bzzwwcgk.cjs} +1 -1
  58. package/dist/{components/SchemaRenderer/utils.js → utils/json-schema.js} +1 -1
  59. package/package.json +1 -1
@@ -0,0 +1,76 @@
1
+ import { ReactElement, ReactNode } from 'react';
2
+ import { JsonSchema, JsonSchemaDef, SchemaRendererTexts } from '../../../models/json-schema';
3
+ import { SchemaRendererVariant } from '../../../types/json-schema';
4
+ export type SchemaRenderField = (path: string[], schema: JsonSchemaDef, defaultElement: ReactElement) => ReactNode;
5
+ export interface SchemaRendererProps {
6
+ schema: JsonSchema;
7
+ defaultValue?: Record<string, unknown>;
8
+ texts?: Partial<SchemaRendererTexts>;
9
+ className?: string;
10
+ readonly?: boolean;
11
+ defaultExpanded?: boolean;
12
+ /** Additional classes for the container of every text, number and select field. */
13
+ inputClassName?: string;
14
+ /**
15
+ * `Sections` (default) — every top-level property is a collapsible section card.
16
+ * `Flat` — primitive top-level properties render as labelled fields; object and
17
+ * array properties still use collapsible sections.
18
+ * `FlatSections` — every top-level property renders under a plain heading.
19
+ */
20
+ variant?: SchemaRendererVariant;
21
+ /**
22
+ * When `true`, required-field errors are only shown after the user has interacted
23
+ * with a field. When `false` (default), all unfilled required fields are highlighted immediately.
24
+ */
25
+ skipUntouched?: boolean;
26
+ /**
27
+ * Live resource options for schema properties flagged with `dial:resource: true`.
28
+ * Keyed by the resource type name referenced in a property's `acceptableResourceTypes`
29
+ * array; each value provides the selectable entries for that resource type (a string
30
+ * array for string-typed properties).
31
+ */
32
+ acceptableResourceTypes?: Record<string, unknown>;
33
+ onChange?: (value: Record<string, unknown>) => void;
34
+ onPropertyChange?: (path: string, value: unknown) => void;
35
+ onDefaultValues?: (value: Record<string, unknown>) => void;
36
+ /**
37
+ * Override the rendered element for any field by path. The field's label and
38
+ * error stay outside the element, so an override replaces the control only.
39
+ * Return `defaultElement` to fall back to the built-in renderer.
40
+ * @param path - Array of schema property keys leading to this field (e.g. ['connection', 'token'])
41
+ * @param schema - The resolved JSON Schema definition for this field
42
+ * @param defaultElement - The element that would be rendered without customization
43
+ */
44
+ renderField?: SchemaRenderField;
45
+ }
46
+ export interface SchemaFieldContentProps {
47
+ schema: JsonSchemaDef;
48
+ value: unknown;
49
+ onChange: (value: unknown) => void;
50
+ path: string[];
51
+ level: number;
52
+ required?: boolean;
53
+ suppressInlineError?: boolean;
54
+ /** The id given to a primitive control, so a visible label can point at it. */
55
+ fieldId?: string;
56
+ /**
57
+ * Accessible name for the control. Sections, array items and key-value rows
58
+ * have no visible label next to their control, so this is what names it.
59
+ */
60
+ ariaLabel?: string;
61
+ }
62
+ export interface SchemaFieldProps extends Omit<SchemaFieldContentProps, 'fieldId' | 'ariaLabel' | 'suppressInlineError'> {
63
+ label?: string;
64
+ }
65
+ export interface SchemaRendererContextValue {
66
+ rootSchema: JsonSchema;
67
+ texts: SchemaRendererTexts;
68
+ readonly?: boolean;
69
+ defaultExpanded?: boolean;
70
+ inputClassName?: string;
71
+ acceptableResourceTypes?: Record<string, unknown>;
72
+ renderField?: SchemaRenderField;
73
+ touchedPaths?: ReadonlySet<string>;
74
+ markTouched?: (path: string) => void;
75
+ skipUntouched?: boolean;
76
+ }
@@ -1,98 +1,10 @@
1
1
  import { default as React } from 'react';
2
2
  import { EditorThemes } from '../../types/editor';
3
- export declare enum SchemaRendererVariant {
4
- Sections = "sections",
5
- Flat = "flat",
6
- FlatSections = "flat-sections"
7
- }
8
- export declare enum SchemaDisplayMode {
9
- Select = "select",
10
- Radio = "radio"
11
- }
12
- export declare enum SchemaOrientation {
13
- Row = "row",
14
- Column = "column"
15
- }
16
- export declare enum JsonSchemaType {
17
- String = "string",
18
- Number = "number",
19
- Integer = "integer",
20
- Boolean = "boolean",
21
- Object = "object",
22
- Array = "array",
23
- Null = "null"
24
- }
25
- export interface DialMeta {
26
- 'dial:propertyOrder'?: number;
27
- [key: string]: unknown;
28
- }
29
- export interface JsonSchemaDef {
30
- $ref?: string;
31
- type?: string | string[];
32
- title?: string;
33
- description?: string;
34
- isHidden?: boolean;
35
- isProtected?: boolean;
36
- enumDisplay?: SchemaDisplayMode;
37
- enumOrientation?: SchemaOrientation;
38
- discriminatorDisplay?: SchemaDisplayMode;
39
- discriminatorOrientation?: SchemaOrientation;
40
- default?: unknown;
41
- const?: unknown;
42
- enum?: unknown[];
43
- properties?: Record<string, JsonSchemaDef>;
44
- required?: string[];
45
- items?: JsonSchemaDef;
46
- oneOf?: JsonSchemaDef[];
47
- anyOf?: JsonSchemaDef[];
48
- allOf?: JsonSchemaDef[];
49
- discriminator?: {
50
- propertyName: string;
51
- mapping: Record<string, string>;
52
- };
53
- 'dial:meta'?: DialMeta;
54
- 'dial:resource'?: boolean;
55
- acceptableResourceTypes?: string[];
56
- [key: string]: unknown;
57
- }
58
- export interface JsonSchema extends JsonSchemaDef {
59
- $defs?: Record<string, JsonSchemaDef>;
60
- }
61
- export interface ValidationError {
62
- path: string;
63
- message: string;
64
- }
65
- export interface SchemaRendererTexts {
66
- noItemSchema: string;
67
- noItemsYet: string;
68
- addItem: string;
69
- selectTypeToAdd: string;
70
- noConfigurableProperties: string;
71
- noFieldsYet: string;
72
- keyColumnHeader: string;
73
- valueColumnHeader: string;
74
- addField: string;
75
- keyInputPlaceholder: string;
76
- stringInputPlaceholder: string;
77
- integerInputPlaceholder: string;
78
- numberInputPlaceholder: string;
79
- enumSelectPlaceholder: string;
80
- selectTypePlaceholder: string;
81
- removeItemAriaLabel: string;
82
- removeFieldAriaLabel: string;
83
- typeColumnHeader: string;
84
- entryTypeString: string;
85
- entryTypeNumber: string;
86
- entryTypeBoolean: string;
87
- entryTypeNull: string;
88
- entryTypeObject: string;
89
- entryTypeArray: string;
90
- entryTypeChangeWarning: string;
91
- booleanTrueOption: string;
92
- booleanFalseOption: string;
93
- invalidJsonError: string;
94
- }
95
- export declare const DEFAULT_SCHEMA_TEXTS: SchemaRendererTexts;
3
+ import { SchemaRendererVariant } from '../../types/json-schema';
4
+ import { JsonSchema, JsonSchemaDef, SchemaRendererTexts } from '../../models/json-schema';
5
+ export { SchemaRendererVariant, SchemaDisplayMode, SchemaOrientation, JsonSchemaType, } from '../../types/json-schema';
6
+ export type { DialMeta, JsonSchemaDef, JsonSchema, ValidationError, SchemaRendererTexts, } from '../../models/json-schema';
7
+ export { DEFAULT_SCHEMA_TEXTS } from '../../constants/schema-renderer';
96
8
  export interface DialSchemaRendererProps {
97
9
  schema: JsonSchema;
98
10
  defaultValue?: Record<string, unknown>;
@@ -1,22 +1 @@
1
- import { JsonSchemaType, JsonSchema, JsonSchemaDef, ValidationError } from './types';
2
- export declare function resolveRef(schema: JsonSchemaDef, rootSchema: JsonSchema, depth?: number): JsonSchemaDef;
3
- export declare function sortByPropertyOrder(entries: [string, JsonSchemaDef][]): [string, JsonSchemaDef][];
4
- export declare function isMissingRequiredValue(value: unknown): boolean;
5
- export declare function isObjectType(schema: JsonSchemaDef): boolean;
6
- export declare function toFieldLabel(key: string): string;
7
- /**
8
- * Builds the "required" error message for a field. The label is quoted so a
9
- * long title stays visually separate from the "is required" suffix.
10
- */
11
- export declare const toRequiredMessage: (label: string) => string;
12
- export declare function getOptionLabel(schema: JsonSchemaDef, rootSchema: JsonSchema): string;
13
- export declare function extractDefaults(schema: JsonSchemaDef, rootSchema: JsonSchema, depth?: number): unknown;
14
- export declare function validateRequired(value: unknown, schema: JsonSchemaDef, rootSchema: JsonSchema, path?: string, depth?: number): ValidationError[];
15
- export declare function buildSummary(value: unknown, schema: JsonSchemaDef, rootSchema: JsonSchema): string;
16
- export declare function detectAnyOfVariant(value: unknown, schemas: JsonSchemaDef[], rootSchema: JsonSchema): number;
17
- export declare function getItemTitle(item: unknown, discriminatorProp: string | undefined, index: number): string;
18
- export declare function getSchemaDefault(schema: JsonSchemaDef): unknown;
19
- export type EntryType = JsonSchemaType.String | JsonSchemaType.Number | JsonSchemaType.Boolean | JsonSchemaType.Null | JsonSchemaType.Object | JsonSchemaType.Array;
20
- export declare const ENTRY_TYPE_OPTIONS: EntryType[];
21
- export declare function inferEntryType(value: unknown): EntryType;
22
- export declare function getEntryTypeDefault(type: EntryType): unknown;
1
+ export * from '../../utils/json-schema';
@@ -111,6 +111,14 @@ export declare const DIAL_KIT_CLASS: {
111
111
  readonly inlineSelect: "dial-kit-inline-select";
112
112
  /** The root of a `Calendar`, wrapping its label and date field. */
113
113
  readonly calendar: "dial-kit-calendar";
114
+ /** The root of a `SchemaRenderer`, wrapping its top-level sections or fields. */
115
+ readonly schemaRenderer: "dial-kit-schema-renderer";
116
+ /**
117
+ * The card of one collapsible `SchemaRenderer` section, at any depth: a
118
+ * top-level property, a nested object or array, an array item, or a
119
+ * key-value entry holding an object.
120
+ */
121
+ readonly schemaRendererSection: "dial-kit-schema-renderer-section";
114
122
  /** The drop area of a `FileDropzone`. */
115
123
  readonly fileDropzone: "dial-kit-file-dropzone";
116
124
  /**
@@ -0,0 +1,2 @@
1
+ import { SchemaRendererTexts } from '../models/json-schema';
2
+ export declare const DEFAULT_SCHEMA_TEXTS: SchemaRendererTexts;
@@ -146,7 +146,9 @@ export { NOT_ALLOWED_SYMBOLS, NOT_ALLOWED_SPACES, NOT_ALLOWED_SYMBOLS_REGEXP, NO
146
146
  export { DIAL_KIT_CLASS } from './constants/public-class-names';
147
147
  export { DialSchemaRenderer } from './components/SchemaRenderer/SchemaRenderer';
148
148
  export { SchemaRendererVariant, SchemaDisplayMode, SchemaOrientation, JsonSchemaType, } from './components/SchemaRenderer/types';
149
- export type { DialSchemaRendererProps, JsonSchema, JsonSchemaDef, ValidationError, } from './components/SchemaRenderer/types';
149
+ export type { DialSchemaRendererProps, JsonSchema, JsonSchemaDef, ValidationError, SchemaRendererTexts, } from './components/SchemaRenderer/types';
150
+ export { SchemaRenderer } from './components/New/SchemaRenderer/SchemaRenderer';
151
+ export type { SchemaRendererProps, SchemaRenderField, } from './components/New/SchemaRenderer/types';
150
152
  export { LazyDialJsonEditor } from './components/JsonEditor/lazy';
151
153
  export { LazyDialMarkdownEditor } from './components/MarkdownEditor/lazy';
152
154
  export { NotificationVariant, NotificationType } from './types/notification.ts';
@@ -0,0 +1,71 @@
1
+ import { SchemaDisplayMode, SchemaOrientation } from '../types/json-schema';
2
+ export interface DialMeta {
3
+ 'dial:propertyOrder'?: number;
4
+ [key: string]: unknown;
5
+ }
6
+ export interface JsonSchemaDef {
7
+ $ref?: string;
8
+ type?: string | string[];
9
+ title?: string;
10
+ description?: string;
11
+ isHidden?: boolean;
12
+ isProtected?: boolean;
13
+ enumDisplay?: SchemaDisplayMode;
14
+ enumOrientation?: SchemaOrientation;
15
+ discriminatorDisplay?: SchemaDisplayMode;
16
+ discriminatorOrientation?: SchemaOrientation;
17
+ default?: unknown;
18
+ const?: unknown;
19
+ enum?: unknown[];
20
+ properties?: Record<string, JsonSchemaDef>;
21
+ required?: string[];
22
+ items?: JsonSchemaDef;
23
+ oneOf?: JsonSchemaDef[];
24
+ anyOf?: JsonSchemaDef[];
25
+ allOf?: JsonSchemaDef[];
26
+ discriminator?: {
27
+ propertyName: string;
28
+ mapping: Record<string, string>;
29
+ };
30
+ 'dial:meta'?: DialMeta;
31
+ 'dial:resource'?: boolean;
32
+ acceptableResourceTypes?: string[];
33
+ [key: string]: unknown;
34
+ }
35
+ export interface JsonSchema extends JsonSchemaDef {
36
+ $defs?: Record<string, JsonSchemaDef>;
37
+ }
38
+ export interface ValidationError {
39
+ path: string;
40
+ message: string;
41
+ }
42
+ export interface SchemaRendererTexts {
43
+ noItemSchema: string;
44
+ noItemsYet: string;
45
+ addItem: string;
46
+ selectTypeToAdd: string;
47
+ noConfigurableProperties: string;
48
+ noFieldsYet: string;
49
+ keyColumnHeader: string;
50
+ valueColumnHeader: string;
51
+ addField: string;
52
+ keyInputPlaceholder: string;
53
+ stringInputPlaceholder: string;
54
+ integerInputPlaceholder: string;
55
+ numberInputPlaceholder: string;
56
+ enumSelectPlaceholder: string;
57
+ selectTypePlaceholder: string;
58
+ removeItemAriaLabel: string;
59
+ removeFieldAriaLabel: string;
60
+ typeColumnHeader: string;
61
+ entryTypeString: string;
62
+ entryTypeNumber: string;
63
+ entryTypeBoolean: string;
64
+ entryTypeNull: string;
65
+ entryTypeObject: string;
66
+ entryTypeArray: string;
67
+ entryTypeChangeWarning: string;
68
+ booleanTrueOption: string;
69
+ booleanFalseOption: string;
70
+ invalidJsonError: string;
71
+ }
@@ -0,0 +1,22 @@
1
+ export declare enum SchemaRendererVariant {
2
+ Sections = "sections",
3
+ Flat = "flat",
4
+ FlatSections = "flat-sections"
5
+ }
6
+ export declare enum SchemaDisplayMode {
7
+ Select = "select",
8
+ Radio = "radio"
9
+ }
10
+ export declare enum SchemaOrientation {
11
+ Row = "row",
12
+ Column = "column"
13
+ }
14
+ export declare enum JsonSchemaType {
15
+ String = "string",
16
+ Number = "number",
17
+ Integer = "integer",
18
+ Boolean = "boolean",
19
+ Object = "object",
20
+ Array = "array",
21
+ Null = "null"
22
+ }
@@ -0,0 +1,23 @@
1
+ import { JsonSchemaType } from '../types/json-schema';
2
+ import { JsonSchema, JsonSchemaDef, ValidationError } from '../models/json-schema';
3
+ export declare function resolveRef(schema: JsonSchemaDef, rootSchema: JsonSchema, depth?: number): JsonSchemaDef;
4
+ export declare function sortByPropertyOrder(entries: [string, JsonSchemaDef][]): [string, JsonSchemaDef][];
5
+ export declare function isMissingRequiredValue(value: unknown): boolean;
6
+ export declare function isObjectType(schema: JsonSchemaDef): boolean;
7
+ export declare function toFieldLabel(key: string): string;
8
+ /**
9
+ * Builds the "required" error message for a field. The label is quoted so a
10
+ * long title stays visually separate from the "is required" suffix.
11
+ */
12
+ export declare const toRequiredMessage: (label: string) => string;
13
+ export declare function getOptionLabel(schema: JsonSchemaDef, rootSchema: JsonSchema): string;
14
+ export declare function extractDefaults(schema: JsonSchemaDef, rootSchema: JsonSchema, depth?: number): unknown;
15
+ export declare function validateRequired(value: unknown, schema: JsonSchemaDef, rootSchema: JsonSchema, path?: string, depth?: number): ValidationError[];
16
+ export declare function buildSummary(value: unknown, schema: JsonSchemaDef, rootSchema: JsonSchema): string;
17
+ export declare function detectAnyOfVariant(value: unknown, schemas: JsonSchemaDef[], rootSchema: JsonSchema): number;
18
+ export declare function getItemTitle(item: unknown, discriminatorProp: string | undefined, index: number): string;
19
+ export declare function getSchemaDefault(schema: JsonSchemaDef): unknown;
20
+ export type EntryType = JsonSchemaType.String | JsonSchemaType.Number | JsonSchemaType.Boolean | JsonSchemaType.Null | JsonSchemaType.Object | JsonSchemaType.Array;
21
+ export declare const ENTRY_TYPE_OPTIONS: EntryType[];
22
+ export declare function inferEntryType(value: unknown): EntryType;
23
+ export declare function getEntryTypeDefault(type: EntryType): unknown;
@@ -0,0 +1,7 @@
1
+ var t = /* @__PURE__ */ ((r) => (r.Sections = "sections", r.Flat = "flat", r.FlatSections = "flat-sections", r))(t || {}), l = /* @__PURE__ */ ((r) => (r.Select = "select", r.Radio = "radio", r))(l || {}), u = /* @__PURE__ */ ((r) => (r.Row = "row", r.Column = "column", r))(u || {}), o = /* @__PURE__ */ ((r) => (r.String = "string", r.Number = "number", r.Integer = "integer", r.Boolean = "boolean", r.Object = "object", r.Array = "array", r.Null = "null", r))(o || {});
2
+ export {
3
+ o as JsonSchemaType,
4
+ l as SchemaDisplayMode,
5
+ u as SchemaOrientation,
6
+ t as SchemaRendererVariant
7
+ };