jsonforms-nuxt-ui-renderers 0.1.6 → 0.1.7
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/README.md +31 -4
- package/dist/index.cjs +26 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,15 +24,42 @@ import { nuxtUiRenderers } from 'jsonforms-nuxt-ui-renderers'
|
|
|
24
24
|
|
|
25
25
|
### Important
|
|
26
26
|
|
|
27
|
-
- These renderers **resolve Nuxt UI components by name** (e.g. `UInput`, `
|
|
27
|
+
- These renderers **resolve Nuxt UI components by name** (e.g. `UFormField`, `UInput`, `UTextarea`, `USelectMenu`, `USwitch`, `UButton`).
|
|
28
28
|
Your app must register Nuxt UI components globally (Nuxt does this when you use the `@nuxt/ui` module).
|
|
29
29
|
- If you override component names or use a different UI library, these renderers will not work out of the box.
|
|
30
30
|
|
|
31
31
|
## Supported UI schema / schema constructs
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
This package is intentionally small and opinionated: it ships a **single** renderer registry (`nuxtUiRenderers`) covering the following UI schema elements / JSON Schema patterns.
|
|
34
|
+
|
|
35
|
+
### Controls (field types)
|
|
36
|
+
|
|
37
|
+
- **String**: JSON Schema `type: "string"` → `UInput`
|
|
38
|
+
- **Multiline string**: JSONForms “multiline” control (e.g. `uischema.options.multi: true`) → `UTextarea`
|
|
39
|
+
- **Password**: JSON Schema `type: "string"` + `format: "password"` → `UInput type="password"` with show/hide toggle button
|
|
40
|
+
- **Number**: JSON Schema `type: "number"` → `UInput type="number"` (parses to `number`, empty becomes `undefined`)
|
|
41
|
+
- **Integer**: JSON Schema `type: "integer"` → `UInput type="number" step="1"` (parses to `integer`, empty becomes `undefined`)
|
|
42
|
+
- **Boolean**: JSON Schema `type: "boolean"` → `USwitch`
|
|
43
|
+
- **Enum (single-select)**: JSON Schema `enum: [...]` (or `oneOf: [{ const, title? }, ...]`) → `USelectMenu`
|
|
44
|
+
- **Enum (multi-select)**: JSON Schema `type: "array"` with `items` being an enum schema (supports `$ref`’d `items`) → `USelectMenu multiple`
|
|
45
|
+
|
|
46
|
+
### Layouts
|
|
47
|
+
|
|
48
|
+
- **`VerticalLayout`**
|
|
49
|
+
- **`HorizontalLayout`** (responsive: stacks on small screens, wraps into columns on larger screens)
|
|
50
|
+
- **`Group`**
|
|
51
|
+
- **`Label`**
|
|
52
|
+
- **`Categorization` / `Category`**
|
|
53
|
+
|
|
54
|
+
### Complex types
|
|
55
|
+
|
|
56
|
+
- **Arrays (list UI)**: any schema with `type: "array"` renders as a list with **Add / Remove / Up / Down**
|
|
57
|
+
- Respects `minItems` / `maxItems` (disables buttons accordingly)
|
|
58
|
+
- Item label can be customized via `uischema.options.childLabelProp`; otherwise it uses JSONForms’ first primitive property as a best-effort label
|
|
59
|
+
- “Add” uses JSONForms `createDefaultValue(...)` for the item value
|
|
60
|
+
- **Objects**: object controls delegate to a **detail UI schema**
|
|
61
|
+
- If no matching detail UI schema is registered, a default one is generated via JSONForms `Generate.uiSchema(...)`
|
|
62
|
+
- The root object is rendered as a `VerticalLayout`; nested objects default to a `Group` using the control’s label
|
|
36
63
|
|
|
37
64
|
## Contributing
|
|
38
65
|
|
package/dist/index.cjs
CHANGED
|
@@ -996,6 +996,27 @@ var isMultiEnumControl = (uischema, schema, context) => {
|
|
|
996
996
|
const resolvedItems = "$ref" in items && typeof items.$ref === "string" ? import_core3.Resolve.schema(rootSchema, items.$ref, rootSchema) : items;
|
|
997
997
|
return (0, import_core3.isEnumSchema)(resolvedItems);
|
|
998
998
|
};
|
|
999
|
+
var isOneOfEnumControl = (uischema, schema, context) => {
|
|
1000
|
+
if (!(0, import_core3.uiTypeIs)("Control")(uischema, schema, context)) {
|
|
1001
|
+
return false;
|
|
1002
|
+
}
|
|
1003
|
+
const scope = uischema?.scope;
|
|
1004
|
+
if (typeof scope !== "string") return false;
|
|
1005
|
+
const rootSchema = context?.rootSchema ?? schema;
|
|
1006
|
+
let resolved;
|
|
1007
|
+
try {
|
|
1008
|
+
resolved = import_core3.Resolve.schema(schema, scope, rootSchema);
|
|
1009
|
+
} catch {
|
|
1010
|
+
return false;
|
|
1011
|
+
}
|
|
1012
|
+
const oneOf = resolved?.oneOf;
|
|
1013
|
+
if (!Array.isArray(oneOf) || oneOf.length === 0) return false;
|
|
1014
|
+
for (const entry of oneOf) {
|
|
1015
|
+
if (typeof entry !== "object" || entry === null) continue;
|
|
1016
|
+
if (!("const" in entry)) return false;
|
|
1017
|
+
}
|
|
1018
|
+
return true;
|
|
1019
|
+
};
|
|
999
1020
|
var nuxtUiRenderers = [
|
|
1000
1021
|
// Layouts
|
|
1001
1022
|
{
|
|
@@ -1053,6 +1074,11 @@ var nuxtUiRenderers = [
|
|
|
1053
1074
|
tester: (0, import_core3.rankWith)(ENUM_RANK, isMultiEnumControl),
|
|
1054
1075
|
renderer: (0, import_vue34.markRaw)(NuxtUiMultiEnumControl)
|
|
1055
1076
|
},
|
|
1077
|
+
{
|
|
1078
|
+
// oneOf with const+title (display labels) - same as enum for rendering.
|
|
1079
|
+
tester: (0, import_core3.rankWith)(ENUM_RANK, isOneOfEnumControl),
|
|
1080
|
+
renderer: (0, import_vue34.markRaw)(NuxtUiEnumControl)
|
|
1081
|
+
},
|
|
1056
1082
|
{
|
|
1057
1083
|
// Enum must outrank the generic string control, otherwise enums can render
|
|
1058
1084
|
// as freeform text inputs.
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/nuxtUiRenderers.ts","../src/renderers/complex/NuxtUiArrayListRenderer.ts","../src/renderers/util.ts","../src/renderers/complex/NuxtUiObjectRenderer.ts","../src/renderers/controls/NuxtUiBooleanControl.ts","../src/renderers/controls/NuxtUiEnumControl.ts","../src/renderers/controls/NuxtUiIntegerControl.ts","../src/renderers/controls/NuxtUiMultiEnumControl.ts","../src/renderers/controls/NuxtUiNumberControl.ts","../src/renderers/controls/NuxtUiPasswordControl.ts","../src/renderers/controls/NuxtUiStringControl.ts","../src/renderers/controls/NuxtUiTextareaControl.ts","../src/renderers/layouts/NuxtUiCategorizationRenderer.ts","../src/renderers/layouts/NuxtUiCategoryRenderer.ts","../src/renderers/layouts/NuxtUiGroupRenderer.ts","../src/renderers/layouts/NuxtUiHorizontalLayoutRenderer.ts","../src/renderers/layouts/NuxtUiLabelRenderer.ts","../src/renderers/layouts/NuxtUiVerticalLayoutRenderer.ts"],"sourcesContent":["export { nuxtUiRenderers } from './nuxtUiRenderers'\n\nexport type { JsonFormsRendererRegistryEntry } from '@jsonforms/core'\n\n","import type { JsonFormsRendererRegistryEntry } from '@jsonforms/core'\nimport {\n and,\n formatIs,\n isBooleanControl,\n isEnumControl,\n isEnumSchema,\n isIntegerControl,\n isMultiLineControl,\n isNumberControl,\n isObjectControl,\n isStringControl,\n rankWith,\n Resolve,\n schemaTypeIs,\n uiTypeIs,\n} from '@jsonforms/core'\nimport { markRaw } from 'vue'\n\nimport { NuxtUiArrayListRenderer } from './renderers/complex/NuxtUiArrayListRenderer'\nimport { NuxtUiObjectRenderer } from './renderers/complex/NuxtUiObjectRenderer'\nimport { NuxtUiBooleanControl } from './renderers/controls/NuxtUiBooleanControl'\nimport { NuxtUiEnumControl } from './renderers/controls/NuxtUiEnumControl'\nimport { NuxtUiIntegerControl } from './renderers/controls/NuxtUiIntegerControl'\nimport { NuxtUiMultiEnumControl } from './renderers/controls/NuxtUiMultiEnumControl'\nimport { NuxtUiNumberControl } from './renderers/controls/NuxtUiNumberControl'\nimport { NuxtUiPasswordControl } from './renderers/controls/NuxtUiPasswordControl'\nimport { NuxtUiStringControl } from './renderers/controls/NuxtUiStringControl'\nimport { NuxtUiTextareaControl } from './renderers/controls/NuxtUiTextareaControl'\nimport { NuxtUiCategorizationRenderer } from './renderers/layouts/NuxtUiCategorizationRenderer'\nimport { NuxtUiCategoryRenderer } from './renderers/layouts/NuxtUiCategoryRenderer'\nimport { NuxtUiGroupRenderer } from './renderers/layouts/NuxtUiGroupRenderer'\nimport { NuxtUiHorizontalLayoutRenderer } from './renderers/layouts/NuxtUiHorizontalLayoutRenderer'\nimport { NuxtUiLabelRenderer } from './renderers/layouts/NuxtUiLabelRenderer'\nimport { NuxtUiVerticalLayoutRenderer } from './renderers/layouts/NuxtUiVerticalLayoutRenderer'\n\n// Intentionally rank higher than typical defaults.\nconst RANK = 10\nconst ENUM_RANK = RANK + 1\nconst PASSWORD_RANK = ENUM_RANK + 1\n\nconst isMultiEnumControl = (\n uischema: unknown,\n schema: unknown,\n context: unknown,\n): boolean => {\n if (!uiTypeIs('Control')(uischema as any, schema as any, context as any)) {\n return false\n }\n\n const scope = (uischema as any)?.scope\n if (typeof scope !== 'string') return false\n\n // JSONForms passes the root schema into testers, but different call sites can\n // vary. Resolve against whatever we have, preferring the provided rootSchema.\n const rootSchema = (context as any)?.rootSchema ?? (schema as any)\n let resolved: any\n try {\n resolved = Resolve.schema(schema as any, scope, rootSchema)\n } catch {\n return false\n }\n\n if (resolved?.type !== 'array') return false\n\n const items = resolved?.items\n if (!items) return false\n\n // JSON Schema `items` can be a schema or an array of schemas.\n if (Array.isArray(items)) return false\n if (typeof items !== 'object' || items === null) return false\n\n const resolvedItems =\n '$ref' in items && typeof (items as any).$ref === 'string'\n ? Resolve.schema(rootSchema, (items as any).$ref, rootSchema)\n : items\n\n return isEnumSchema(resolvedItems as any)\n}\n\nexport const nuxtUiRenderers: JsonFormsRendererRegistryEntry[] = [\n // Layouts\n {\n tester: rankWith(RANK, uiTypeIs('VerticalLayout')),\n renderer: markRaw(NuxtUiVerticalLayoutRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('HorizontalLayout')),\n renderer: markRaw(NuxtUiHorizontalLayoutRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Group')),\n renderer: markRaw(NuxtUiGroupRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Categorization')),\n renderer: markRaw(NuxtUiCategorizationRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Category')),\n renderer: markRaw(NuxtUiCategoryRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Label')),\n renderer: markRaw(NuxtUiLabelRenderer),\n },\n\n // Complex schemas\n {\n tester: rankWith(RANK, schemaTypeIs('array')),\n renderer: markRaw(NuxtUiArrayListRenderer),\n },\n {\n tester: rankWith(RANK, isObjectControl),\n renderer: markRaw(NuxtUiObjectRenderer),\n },\n\n // Primitive controls\n {\n tester: rankWith(RANK, isMultiLineControl),\n renderer: markRaw(NuxtUiTextareaControl),\n },\n {\n tester: rankWith(RANK, isNumberControl),\n renderer: markRaw(NuxtUiNumberControl),\n },\n {\n tester: rankWith(RANK, isIntegerControl),\n renderer: markRaw(NuxtUiIntegerControl),\n },\n {\n tester: rankWith(RANK, isBooleanControl),\n renderer: markRaw(NuxtUiBooleanControl),\n },\n {\n // Multi-enum must outrank generic array renderer and string renderer.\n tester: rankWith(ENUM_RANK, isMultiEnumControl),\n renderer: markRaw(NuxtUiMultiEnumControl),\n },\n {\n // Enum must outrank the generic string control, otherwise enums can render\n // as freeform text inputs.\n tester: rankWith(ENUM_RANK, isEnumControl),\n renderer: markRaw(NuxtUiEnumControl),\n },\n {\n tester: rankWith(PASSWORD_RANK, and(isStringControl, formatIs('password'))),\n renderer: markRaw(NuxtUiPasswordControl),\n },\n {\n tester: rankWith(RANK, isStringControl),\n renderer: markRaw(NuxtUiStringControl),\n },\n]\n\n","import type { ControlElement, JsonSchema, UISchemaElement } from '@jsonforms/core'\nimport {\n Resolve,\n composePaths,\n createDefaultValue,\n findUISchema,\n getFirstPrimitiveProp,\n} from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsArrayControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiArrayListRenderer = defineComponent({\n name: 'NuxtUiArrayListRenderer',\n components: { DispatchRenderer },\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, addItem, removeItems, moveUp, moveDown } =\n useJsonFormsArrayControl(\n props as unknown as Parameters<typeof useJsonFormsArrayControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const items = computed<unknown[]>(() =>\n Array.isArray(control.value.data) ? control.value.data : [],\n )\n\n const arraySchema = computed<JsonSchema | undefined>(() => {\n try {\n return Resolve.schema(\n props.schema,\n control.value.uischema.scope,\n control.value.rootSchema,\n )\n } catch {\n return undefined\n }\n })\n\n const maxItemsReached = computed(() => {\n const max = arraySchema.value?.maxItems\n return typeof max === 'number' ? items.value.length >= max : false\n })\n\n const minItemsReached = computed(() => {\n const min = arraySchema.value?.minItems\n return typeof min === 'number' ? items.value.length <= min : false\n })\n\n const childUiSchema = computed<UISchemaElement>(() =>\n findUISchema(\n control.value.uischemas,\n control.value.schema,\n control.value.uischema.scope,\n control.value.path,\n undefined,\n control.value.uischema,\n control.value.rootSchema,\n ),\n )\n\n function childLabelForIndex(index: number): string {\n const childLabelProp =\n getChildLabelPropFromUiSchemaOptions(control.value.uischema.options) ??\n getFirstPrimitiveProp(control.value.schema)\n\n if (!childLabelProp) return `${index}`\n\n const labelValue = Resolve.data(\n control.value.data,\n composePaths(`${index}`, childLabelProp),\n )\n if (\n labelValue === undefined ||\n labelValue === null ||\n Number.isNaN(labelValue as any)\n ) {\n return ''\n }\n return String(labelValue)\n }\n\n function getChildLabelPropFromUiSchemaOptions(options: unknown): string | undefined {\n if (!options || typeof options !== 'object') return undefined\n const value = (options as Record<string, unknown>).childLabelProp\n return typeof value === 'string' ? value : undefined\n }\n\n function addButtonClick() {\n addItem(\n control.value.path,\n createDefaultValue(control.value.schema, control.value.rootSchema),\n )()\n }\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UButton = resolveComponent('UButton')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h('div', { class: 'flex flex-col gap-3' }, [\n h('div', { class: 'flex items-center justify-between gap-3' }, [\n h(\n 'div',\n { class: 'text-xs text-gray-500' },\n `${items.value.length} items`,\n ),\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'soft',\n color: 'neutral',\n disabled: !control.value.enabled || maxItemsReached.value,\n onClick: addButtonClick,\n },\n { default: () => 'Add' },\n ),\n ]),\n\n items.value.length === 0\n ? h(\n 'div',\n { class: 'text-sm text-gray-500' },\n 'No items.',\n )\n : null,\n\n ...items.value.map((_item, index) =>\n h(\n 'div',\n { key: `${control.value.path}-${index}`, class: 'rounded border p-3' },\n [\n h(\n 'div',\n { class: 'mb-3 flex items-start justify-between gap-3' },\n [\n h('div', { class: 'min-w-0' }, [\n h(\n 'div',\n {\n class:\n 'text-xs font-semibold text-gray-700 dark:text-gray-200',\n },\n [\n `Item ${index + 1}`,\n childLabelForIndex(index)\n ? h(\n 'span',\n {\n class:\n 'font-normal text-gray-500',\n },\n ` — ${childLabelForIndex(index)}`,\n )\n : null,\n ],\n ),\n ]),\n h('div', { class: 'flex flex-none items-center gap-1' }, [\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'ghost',\n color: 'neutral',\n disabled: !control.value.enabled || index === 0,\n onClick: () => moveUp?.(control.value.path, index)(),\n },\n { default: () => 'Up' },\n ),\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'ghost',\n color: 'neutral',\n disabled:\n !control.value.enabled ||\n index >= items.value.length - 1,\n onClick: () => moveDown?.(control.value.path, index)(),\n },\n { default: () => 'Down' },\n ),\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'ghost',\n color: 'error',\n disabled: !control.value.enabled || minItemsReached.value,\n onClick: () =>\n removeItems?.(control.value.path, [index])(),\n },\n { default: () => 'Remove' },\n ),\n ]),\n ],\n ),\n\n h(DispatchRenderer as any, {\n schema: control.value.schema,\n uischema: childUiSchema.value,\n path: composePaths(control.value.path, `${index}`),\n enabled: control.value.enabled,\n renderers: control.value.renderers,\n cells: control.value.cells,\n }),\n ],\n ),\n ),\n ]),\n },\n ),\n )\n }\n },\n})\n\n","import { computed, type ComputedRef } from 'vue'\n\nexport function trimmedOrUndefined(input: string | undefined): string | undefined {\n const v = input?.trim()\n return v ? v : undefined\n}\n\nexport function errorFromControl(\n control: ComputedRef<{ errors: string }>,\n): ComputedRef<string | undefined> {\n return computed(() => trimmedOrUndefined(control.value.errors))\n}\n\n","import type { ControlElement, GroupLayout, UISchemaElement } from '@jsonforms/core'\nimport { Generate, findUISchema } from '@jsonforms/core'\nimport {\n DispatchRenderer,\n rendererProps,\n useJsonFormsControlWithDetail,\n} from '@jsonforms/vue'\nimport { computed, defineComponent, h } from 'vue'\n\nexport const NuxtUiObjectRenderer = defineComponent({\n name: 'NuxtUiObjectRenderer',\n components: { DispatchRenderer },\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control } = useJsonFormsControlWithDetail(\n props as unknown as Parameters<typeof useJsonFormsControlWithDetail>[0],\n )\n\n const detailUiSchema = computed<UISchemaElement>(() => {\n const uiSchemaGenerator = () => {\n const uiSchema = Generate.uiSchema(\n control.value.schema,\n 'Group',\n undefined,\n control.value.rootSchema,\n )\n\n if (!control.value.path) {\n uiSchema.type = 'VerticalLayout'\n } else {\n ;(uiSchema as GroupLayout).label = control.value.label\n }\n return uiSchema\n }\n\n return findUISchema(\n control.value.uischemas,\n control.value.schema,\n control.value.uischema.scope,\n control.value.path,\n uiSchemaGenerator,\n control.value.uischema,\n control.value.rootSchema,\n )\n })\n\n return () => {\n if (!control.value.visible) return null\n\n return h(DispatchRenderer as any, {\n visible: control.value.visible,\n enabled: control.value.enabled,\n schema: control.value.schema,\n uischema: detailUiSchema.value,\n path: control.value.path,\n renderers: control.value.renderers,\n cells: control.value.cells,\n })\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiBooleanControl = defineComponent({\n name: 'NuxtUiBooleanControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const modelValue = computed<boolean>({\n get: () => Boolean(control.value.data),\n set: (v: boolean) => handleChange(control.value.path, v),\n })\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const USwitch = resolveComponent('USwitch')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(\n 'div',\n { class: 'flex items-center justify-between gap-3' },\n h(USwitch as any, {\n modelValue: modelValue.value,\n disabled: !control.value.enabled,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': (v: boolean) => {\n modelValue.value = v\n },\n }),\n ),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement, JsonSchema } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\ntype EnumOption = { label: string; value: unknown }\n\nfunction schemaEnumOptions(schema: JsonSchema | undefined): EnumOption[] {\n if (!schema) return []\n\n if (Array.isArray(schema.enum)) {\n return schema.enum.map((v) => ({ label: String(v), value: v }))\n }\n\n const oneOf = (schema as unknown as { oneOf?: unknown }).oneOf\n if (!Array.isArray(oneOf)) return []\n\n const out: EnumOption[] = []\n for (const entry of oneOf) {\n if (typeof entry !== 'object' || entry === null) continue\n const maybe = entry as Record<string, unknown>\n if (!('const' in maybe)) continue\n out.push({\n value: maybe.const,\n label:\n typeof maybe.title === 'string' && maybe.title.trim()\n ? maybe.title\n : String(maybe.const),\n })\n }\n return out\n}\n\nexport const NuxtUiEnumControl = defineComponent({\n name: 'NuxtUiEnumControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n const options = computed<EnumOption[]>(() => schemaEnumOptions(control.value.schema))\n\n const selectedValue = computed<unknown>({\n get: () => control.value.data,\n set: (v: unknown) => handleChange(control.value.path, v),\n })\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const USelectMenu = resolveComponent('USelectMenu')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(USelectMenu as any, {\n modelValue: selectedValue.value,\n items: options.value,\n valueKey: 'value',\n labelKey: 'label',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n placeholder: 'Select...',\n 'onUpdate:modelValue': (v: unknown) => {\n selectedValue.value = v\n },\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiIntegerControl = defineComponent({\n name: 'NuxtUiIntegerControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const modelValue = computed(() => {\n const v = control.value.data\n return v === null || v === undefined ? '' : String(v)\n })\n\n function onUpdate(raw: unknown) {\n const trimmed = String(raw ?? '').trim()\n if (trimmed === '') {\n handleChange(control.value.path, undefined)\n return\n }\n\n const parsed = Number.parseInt(trimmed, 10)\n handleChange(control.value.path, Number.isFinite(parsed) ? parsed : undefined)\n }\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UInput as any, {\n type: 'number',\n inputmode: 'numeric',\n step: '1',\n modelValue: modelValue.value,\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': onUpdate,\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement, JsonSchema } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\ntype EnumOption = { label: string; value: unknown }\n\nfunction schemaEnumOptions(schema: JsonSchema | undefined): EnumOption[] {\n if (!schema) return []\n\n if (Array.isArray(schema.enum)) {\n return schema.enum.map((v) => ({ label: String(v), value: v }))\n }\n\n const oneOf = (schema as unknown as { oneOf?: unknown }).oneOf\n if (!Array.isArray(oneOf)) return []\n\n const out: EnumOption[] = []\n for (const entry of oneOf) {\n if (typeof entry !== 'object' || entry === null) continue\n const maybe = entry as Record<string, unknown>\n if (!('const' in maybe)) continue\n out.push({\n value: maybe.const,\n label:\n typeof maybe.title === 'string' && maybe.title.trim()\n ? maybe.title\n : String(maybe.const),\n })\n }\n return out\n}\n\nfunction arrayItemsSchema(schema: JsonSchema | undefined): JsonSchema | undefined {\n if (!schema) return undefined\n const items = (schema as unknown as { items?: unknown }).items\n if (typeof items !== 'object' || items === null) return undefined\n return items as JsonSchema\n}\n\nexport const NuxtUiMultiEnumControl = defineComponent({\n name: 'NuxtUiMultiEnumControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n const options = computed<EnumOption[]>(() =>\n schemaEnumOptions(arrayItemsSchema(control.value.schema)),\n )\n\n const selectedValues = computed<unknown[]>({\n get: () => (Array.isArray(control.value.data) ? control.value.data : []),\n set: (v: unknown[]) => handleChange(control.value.path, v),\n })\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const USelectMenu = resolveComponent('USelectMenu')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(USelectMenu as any, {\n multiple: true,\n modelValue: selectedValues.value,\n items: options.value,\n valueKey: 'value',\n labelKey: 'label',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n placeholder: 'Select...',\n 'onUpdate:modelValue': (v: unknown) => {\n selectedValues.value = Array.isArray(v) ? v : []\n },\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiNumberControl = defineComponent({\n name: 'NuxtUiNumberControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const modelValue = computed(() => {\n const v = control.value.data\n return v === null || v === undefined ? '' : String(v)\n })\n\n function onUpdate(raw: unknown) {\n const trimmed = String(raw ?? '').trim()\n if (trimmed === '') {\n handleChange(control.value.path, undefined)\n return\n }\n const parsed = Number(trimmed)\n handleChange(control.value.path, Number.isFinite(parsed) ? parsed : undefined)\n }\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UInput as any, {\n type: 'number',\n inputmode: 'decimal',\n modelValue: modelValue.value,\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': onUpdate,\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, ref, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiPasswordControl = defineComponent({\n name: 'NuxtUiPasswordControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n const showPassword = ref(false)\n\n const inputType = computed(() => (showPassword.value ? 'text' : 'password'))\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n const UButton = resolveComponent('UButton')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(\n UInput as any,\n {\n modelValue: control.value.data ?? '',\n class: 'w-full',\n type: inputType.value,\n autocomplete: 'current-password',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': (v: unknown) =>\n handleChange(control.value.path, v),\n },\n {\n trailing: () =>\n h(UButton as any, {\n type: 'button',\n color: 'neutral',\n variant: 'ghost',\n square: true,\n icon: showPassword.value\n ? 'i-heroicons-eye-slash'\n : 'i-heroicons-eye',\n 'aria-pressed': showPassword.value,\n 'aria-label': showPassword.value\n ? 'Hide password'\n : 'Show password',\n disabled: !control.value.enabled,\n onClick: () => {\n showPassword.value = !showPassword.value\n },\n }),\n },\n ),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport {\n computed,\n defineComponent,\n h,\n resolveComponent,\n} from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiStringControl = defineComponent({\n name: 'NuxtUiStringControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UInput as any, {\n modelValue: control.value.data ?? '',\n class: 'w-full',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': (v: unknown) =>\n handleChange(control.value.path, v),\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiTextareaControl = defineComponent({\n name: 'NuxtUiTextareaControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UTextarea = resolveComponent('UTextarea')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UTextarea as any, {\n modelValue: control.value.data ?? '',\n class: 'w-full',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n rows: 5,\n 'onUpdate:modelValue': (v: unknown) =>\n handleChange(control.value.path, v),\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsCategorization } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiCategorizationRenderer = defineComponent({\n name: 'NuxtUiCategorizationRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout, categories } = useJsonFormsCategorization(\n props as unknown as Parameters<typeof useJsonFormsCategorization>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n return h(\n 'div',\n { class: 'flex flex-col gap-6' },\n categories.map((categoryRef, catIndex) => {\n const category = categoryRef.value\n const elements = category.uischema.elements ?? []\n\n return h(\n 'div',\n { key: `${layout.value.path}-cat-${catIndex}`, class: 'flex flex-col gap-3' },\n [\n category.label\n ? h('div', { class: 'text-sm font-semibold' }, category.label)\n : null,\n h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${category.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: category.schema,\n uischema: element,\n path: category.path,\n enabled: category.enabled,\n renderers: category.renderers,\n cells: category.cells,\n }),\n ),\n ),\n ),\n ],\n )\n }),\n )\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiCategoryRenderer = defineComponent({\n name: 'NuxtUiCategoryRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h('div', { class: 'flex flex-col gap-3' }, [\n layout.value.label\n ? h('div', { class: 'text-sm font-semibold' }, layout.value.label)\n : null,\n h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n ),\n ])\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiGroupRenderer = defineComponent({\n name: 'NuxtUiGroupRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h('div', { class: 'rounded border p-3' }, [\n layout.value.label\n ? h('div', { class: 'mb-3 text-sm font-semibold' }, layout.value.label)\n : null,\n h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n ),\n ])\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiHorizontalLayoutRenderer = defineComponent({\n name: 'NuxtUiHorizontalLayoutRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h(\n 'div',\n { class: 'flex flex-col gap-3 md:flex-row md:flex-wrap' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}`, class: 'min-w-0 flex-1' },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n )\n }\n },\n})\n\n","import type { LabelElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsLabel } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiLabelRenderer = defineComponent({\n name: 'NuxtUiLabelRenderer',\n props: rendererProps<LabelElement>(),\n setup(props) {\n const { label } = useJsonFormsLabel(\n props as unknown as Parameters<typeof useJsonFormsLabel>[0],\n )\n\n return () => {\n if (!label.value.visible) return null\n return h(\n 'div',\n { class: 'text-sm text-gray-600 dark:text-gray-300' },\n label.value.text,\n )\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiVerticalLayoutRenderer = defineComponent({\n name: 'NuxtUiVerticalLayoutRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n )\n }\n },\n})\n\n"],"mappings":"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","names":["import_core","import_vue","import_vue","import_core","import_vue","import_vue","import_vue","import_vue","import_vue","schemaEnumOptions","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/nuxtUiRenderers.ts","../src/renderers/complex/NuxtUiArrayListRenderer.ts","../src/renderers/util.ts","../src/renderers/complex/NuxtUiObjectRenderer.ts","../src/renderers/controls/NuxtUiBooleanControl.ts","../src/renderers/controls/NuxtUiEnumControl.ts","../src/renderers/controls/NuxtUiIntegerControl.ts","../src/renderers/controls/NuxtUiMultiEnumControl.ts","../src/renderers/controls/NuxtUiNumberControl.ts","../src/renderers/controls/NuxtUiPasswordControl.ts","../src/renderers/controls/NuxtUiStringControl.ts","../src/renderers/controls/NuxtUiTextareaControl.ts","../src/renderers/layouts/NuxtUiCategorizationRenderer.ts","../src/renderers/layouts/NuxtUiCategoryRenderer.ts","../src/renderers/layouts/NuxtUiGroupRenderer.ts","../src/renderers/layouts/NuxtUiHorizontalLayoutRenderer.ts","../src/renderers/layouts/NuxtUiLabelRenderer.ts","../src/renderers/layouts/NuxtUiVerticalLayoutRenderer.ts"],"sourcesContent":["export { nuxtUiRenderers } from './nuxtUiRenderers'\n\nexport type { JsonFormsRendererRegistryEntry } from '@jsonforms/core'\n\n","import type { JsonFormsRendererRegistryEntry } from '@jsonforms/core'\nimport {\n and,\n formatIs,\n isBooleanControl,\n isEnumControl,\n isEnumSchema,\n isIntegerControl,\n isMultiLineControl,\n isNumberControl,\n isObjectControl,\n isStringControl,\n rankWith,\n Resolve,\n schemaTypeIs,\n uiTypeIs,\n} from '@jsonforms/core'\nimport { markRaw } from 'vue'\n\nimport { NuxtUiArrayListRenderer } from './renderers/complex/NuxtUiArrayListRenderer'\nimport { NuxtUiObjectRenderer } from './renderers/complex/NuxtUiObjectRenderer'\nimport { NuxtUiBooleanControl } from './renderers/controls/NuxtUiBooleanControl'\nimport { NuxtUiEnumControl } from './renderers/controls/NuxtUiEnumControl'\nimport { NuxtUiIntegerControl } from './renderers/controls/NuxtUiIntegerControl'\nimport { NuxtUiMultiEnumControl } from './renderers/controls/NuxtUiMultiEnumControl'\nimport { NuxtUiNumberControl } from './renderers/controls/NuxtUiNumberControl'\nimport { NuxtUiPasswordControl } from './renderers/controls/NuxtUiPasswordControl'\nimport { NuxtUiStringControl } from './renderers/controls/NuxtUiStringControl'\nimport { NuxtUiTextareaControl } from './renderers/controls/NuxtUiTextareaControl'\nimport { NuxtUiCategorizationRenderer } from './renderers/layouts/NuxtUiCategorizationRenderer'\nimport { NuxtUiCategoryRenderer } from './renderers/layouts/NuxtUiCategoryRenderer'\nimport { NuxtUiGroupRenderer } from './renderers/layouts/NuxtUiGroupRenderer'\nimport { NuxtUiHorizontalLayoutRenderer } from './renderers/layouts/NuxtUiHorizontalLayoutRenderer'\nimport { NuxtUiLabelRenderer } from './renderers/layouts/NuxtUiLabelRenderer'\nimport { NuxtUiVerticalLayoutRenderer } from './renderers/layouts/NuxtUiVerticalLayoutRenderer'\n\n// Intentionally rank higher than typical defaults.\nconst RANK = 10\nconst ENUM_RANK = RANK + 1\nconst PASSWORD_RANK = ENUM_RANK + 1\n\nconst isMultiEnumControl = (\n uischema: unknown,\n schema: unknown,\n context: unknown,\n): boolean => {\n if (!uiTypeIs('Control')(uischema as any, schema as any, context as any)) {\n return false\n }\n\n const scope = (uischema as any)?.scope\n if (typeof scope !== 'string') return false\n\n // JSONForms passes the root schema into testers, but different call sites can\n // vary. Resolve against whatever we have, preferring the provided rootSchema.\n const rootSchema = (context as any)?.rootSchema ?? (schema as any)\n let resolved: any\n try {\n resolved = Resolve.schema(schema as any, scope, rootSchema)\n } catch {\n return false\n }\n\n if (resolved?.type !== 'array') return false\n\n const items = resolved?.items\n if (!items) return false\n\n // JSON Schema `items` can be a schema or an array of schemas.\n if (Array.isArray(items)) return false\n if (typeof items !== 'object' || items === null) return false\n\n const resolvedItems =\n '$ref' in items && typeof (items as any).$ref === 'string'\n ? Resolve.schema(rootSchema, (items as any).$ref, rootSchema)\n : items\n\n return isEnumSchema(resolvedItems as any)\n}\n\n/** Matches oneOf: [{ const, title? }, ...] - enum-like schema with display labels. */\nconst isOneOfEnumControl = (\n uischema: unknown,\n schema: unknown,\n context: unknown,\n): boolean => {\n if (!uiTypeIs('Control')(uischema as any, schema as any, context as any)) {\n return false\n }\n\n const scope = (uischema as any)?.scope\n if (typeof scope !== 'string') return false\n\n const rootSchema = (context as any)?.rootSchema ?? (schema as any)\n let resolved: any\n try {\n resolved = Resolve.schema(schema as any, scope, rootSchema)\n } catch {\n return false\n }\n\n const oneOf = resolved?.oneOf\n if (!Array.isArray(oneOf) || oneOf.length === 0) return false\n\n for (const entry of oneOf) {\n if (typeof entry !== 'object' || entry === null) continue\n if (!('const' in (entry as Record<string, unknown>))) return false\n }\n return true\n}\n\nexport const nuxtUiRenderers: JsonFormsRendererRegistryEntry[] = [\n // Layouts\n {\n tester: rankWith(RANK, uiTypeIs('VerticalLayout')),\n renderer: markRaw(NuxtUiVerticalLayoutRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('HorizontalLayout')),\n renderer: markRaw(NuxtUiHorizontalLayoutRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Group')),\n renderer: markRaw(NuxtUiGroupRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Categorization')),\n renderer: markRaw(NuxtUiCategorizationRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Category')),\n renderer: markRaw(NuxtUiCategoryRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Label')),\n renderer: markRaw(NuxtUiLabelRenderer),\n },\n\n // Complex schemas\n {\n tester: rankWith(RANK, schemaTypeIs('array')),\n renderer: markRaw(NuxtUiArrayListRenderer),\n },\n {\n tester: rankWith(RANK, isObjectControl),\n renderer: markRaw(NuxtUiObjectRenderer),\n },\n\n // Primitive controls\n {\n tester: rankWith(RANK, isMultiLineControl),\n renderer: markRaw(NuxtUiTextareaControl),\n },\n {\n tester: rankWith(RANK, isNumberControl),\n renderer: markRaw(NuxtUiNumberControl),\n },\n {\n tester: rankWith(RANK, isIntegerControl),\n renderer: markRaw(NuxtUiIntegerControl),\n },\n {\n tester: rankWith(RANK, isBooleanControl),\n renderer: markRaw(NuxtUiBooleanControl),\n },\n {\n // Multi-enum must outrank generic array renderer and string renderer.\n tester: rankWith(ENUM_RANK, isMultiEnumControl),\n renderer: markRaw(NuxtUiMultiEnumControl),\n },\n {\n // oneOf with const+title (display labels) - same as enum for rendering.\n tester: rankWith(ENUM_RANK, isOneOfEnumControl),\n renderer: markRaw(NuxtUiEnumControl),\n },\n {\n // Enum must outrank the generic string control, otherwise enums can render\n // as freeform text inputs.\n tester: rankWith(ENUM_RANK, isEnumControl),\n renderer: markRaw(NuxtUiEnumControl),\n },\n {\n tester: rankWith(PASSWORD_RANK, and(isStringControl, formatIs('password'))),\n renderer: markRaw(NuxtUiPasswordControl),\n },\n {\n tester: rankWith(RANK, isStringControl),\n renderer: markRaw(NuxtUiStringControl),\n },\n]\n\n","import type { ControlElement, JsonSchema, UISchemaElement } from '@jsonforms/core'\nimport {\n Resolve,\n composePaths,\n createDefaultValue,\n findUISchema,\n getFirstPrimitiveProp,\n} from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsArrayControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiArrayListRenderer = defineComponent({\n name: 'NuxtUiArrayListRenderer',\n components: { DispatchRenderer },\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, addItem, removeItems, moveUp, moveDown } =\n useJsonFormsArrayControl(\n props as unknown as Parameters<typeof useJsonFormsArrayControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const items = computed<unknown[]>(() =>\n Array.isArray(control.value.data) ? control.value.data : [],\n )\n\n const arraySchema = computed<JsonSchema | undefined>(() => {\n try {\n return Resolve.schema(\n props.schema,\n control.value.uischema.scope,\n control.value.rootSchema,\n )\n } catch {\n return undefined\n }\n })\n\n const maxItemsReached = computed(() => {\n const max = arraySchema.value?.maxItems\n return typeof max === 'number' ? items.value.length >= max : false\n })\n\n const minItemsReached = computed(() => {\n const min = arraySchema.value?.minItems\n return typeof min === 'number' ? items.value.length <= min : false\n })\n\n const childUiSchema = computed<UISchemaElement>(() =>\n findUISchema(\n control.value.uischemas,\n control.value.schema,\n control.value.uischema.scope,\n control.value.path,\n undefined,\n control.value.uischema,\n control.value.rootSchema,\n ),\n )\n\n function childLabelForIndex(index: number): string {\n const childLabelProp =\n getChildLabelPropFromUiSchemaOptions(control.value.uischema.options) ??\n getFirstPrimitiveProp(control.value.schema)\n\n if (!childLabelProp) return `${index}`\n\n const labelValue = Resolve.data(\n control.value.data,\n composePaths(`${index}`, childLabelProp),\n )\n if (\n labelValue === undefined ||\n labelValue === null ||\n Number.isNaN(labelValue as any)\n ) {\n return ''\n }\n return String(labelValue)\n }\n\n function getChildLabelPropFromUiSchemaOptions(options: unknown): string | undefined {\n if (!options || typeof options !== 'object') return undefined\n const value = (options as Record<string, unknown>).childLabelProp\n return typeof value === 'string' ? value : undefined\n }\n\n function addButtonClick() {\n addItem(\n control.value.path,\n createDefaultValue(control.value.schema, control.value.rootSchema),\n )()\n }\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UButton = resolveComponent('UButton')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h('div', { class: 'flex flex-col gap-3' }, [\n h('div', { class: 'flex items-center justify-between gap-3' }, [\n h(\n 'div',\n { class: 'text-xs text-gray-500' },\n `${items.value.length} items`,\n ),\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'soft',\n color: 'neutral',\n disabled: !control.value.enabled || maxItemsReached.value,\n onClick: addButtonClick,\n },\n { default: () => 'Add' },\n ),\n ]),\n\n items.value.length === 0\n ? h(\n 'div',\n { class: 'text-sm text-gray-500' },\n 'No items.',\n )\n : null,\n\n ...items.value.map((_item, index) =>\n h(\n 'div',\n { key: `${control.value.path}-${index}`, class: 'rounded border p-3' },\n [\n h(\n 'div',\n { class: 'mb-3 flex items-start justify-between gap-3' },\n [\n h('div', { class: 'min-w-0' }, [\n h(\n 'div',\n {\n class:\n 'text-xs font-semibold text-gray-700 dark:text-gray-200',\n },\n [\n `Item ${index + 1}`,\n childLabelForIndex(index)\n ? h(\n 'span',\n {\n class:\n 'font-normal text-gray-500',\n },\n ` — ${childLabelForIndex(index)}`,\n )\n : null,\n ],\n ),\n ]),\n h('div', { class: 'flex flex-none items-center gap-1' }, [\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'ghost',\n color: 'neutral',\n disabled: !control.value.enabled || index === 0,\n onClick: () => moveUp?.(control.value.path, index)(),\n },\n { default: () => 'Up' },\n ),\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'ghost',\n color: 'neutral',\n disabled:\n !control.value.enabled ||\n index >= items.value.length - 1,\n onClick: () => moveDown?.(control.value.path, index)(),\n },\n { default: () => 'Down' },\n ),\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'ghost',\n color: 'error',\n disabled: !control.value.enabled || minItemsReached.value,\n onClick: () =>\n removeItems?.(control.value.path, [index])(),\n },\n { default: () => 'Remove' },\n ),\n ]),\n ],\n ),\n\n h(DispatchRenderer as any, {\n schema: control.value.schema,\n uischema: childUiSchema.value,\n path: composePaths(control.value.path, `${index}`),\n enabled: control.value.enabled,\n renderers: control.value.renderers,\n cells: control.value.cells,\n }),\n ],\n ),\n ),\n ]),\n },\n ),\n )\n }\n },\n})\n\n","import { computed, type ComputedRef } from 'vue'\n\nexport function trimmedOrUndefined(input: string | undefined): string | undefined {\n const v = input?.trim()\n return v ? v : undefined\n}\n\nexport function errorFromControl(\n control: ComputedRef<{ errors: string }>,\n): ComputedRef<string | undefined> {\n return computed(() => trimmedOrUndefined(control.value.errors))\n}\n\n","import type { ControlElement, GroupLayout, UISchemaElement } from '@jsonforms/core'\nimport { Generate, findUISchema } from '@jsonforms/core'\nimport {\n DispatchRenderer,\n rendererProps,\n useJsonFormsControlWithDetail,\n} from '@jsonforms/vue'\nimport { computed, defineComponent, h } from 'vue'\n\nexport const NuxtUiObjectRenderer = defineComponent({\n name: 'NuxtUiObjectRenderer',\n components: { DispatchRenderer },\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control } = useJsonFormsControlWithDetail(\n props as unknown as Parameters<typeof useJsonFormsControlWithDetail>[0],\n )\n\n const detailUiSchema = computed<UISchemaElement>(() => {\n const uiSchemaGenerator = () => {\n const uiSchema = Generate.uiSchema(\n control.value.schema,\n 'Group',\n undefined,\n control.value.rootSchema,\n )\n\n if (!control.value.path) {\n uiSchema.type = 'VerticalLayout'\n } else {\n ;(uiSchema as GroupLayout).label = control.value.label\n }\n return uiSchema\n }\n\n return findUISchema(\n control.value.uischemas,\n control.value.schema,\n control.value.uischema.scope,\n control.value.path,\n uiSchemaGenerator,\n control.value.uischema,\n control.value.rootSchema,\n )\n })\n\n return () => {\n if (!control.value.visible) return null\n\n return h(DispatchRenderer as any, {\n visible: control.value.visible,\n enabled: control.value.enabled,\n schema: control.value.schema,\n uischema: detailUiSchema.value,\n path: control.value.path,\n renderers: control.value.renderers,\n cells: control.value.cells,\n })\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiBooleanControl = defineComponent({\n name: 'NuxtUiBooleanControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const modelValue = computed<boolean>({\n get: () => Boolean(control.value.data),\n set: (v: boolean) => handleChange(control.value.path, v),\n })\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const USwitch = resolveComponent('USwitch')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(\n 'div',\n { class: 'flex items-center justify-between gap-3' },\n h(USwitch as any, {\n modelValue: modelValue.value,\n disabled: !control.value.enabled,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': (v: boolean) => {\n modelValue.value = v\n },\n }),\n ),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement, JsonSchema } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\ntype EnumOption = { label: string; value: unknown }\n\nfunction schemaEnumOptions(schema: JsonSchema | undefined): EnumOption[] {\n if (!schema) return []\n\n if (Array.isArray(schema.enum)) {\n return schema.enum.map((v) => ({ label: String(v), value: v }))\n }\n\n const oneOf = (schema as unknown as { oneOf?: unknown }).oneOf\n if (!Array.isArray(oneOf)) return []\n\n const out: EnumOption[] = []\n for (const entry of oneOf) {\n if (typeof entry !== 'object' || entry === null) continue\n const maybe = entry as Record<string, unknown>\n if (!('const' in maybe)) continue\n out.push({\n value: maybe.const,\n label:\n typeof maybe.title === 'string' && maybe.title.trim()\n ? maybe.title\n : String(maybe.const),\n })\n }\n return out\n}\n\nexport const NuxtUiEnumControl = defineComponent({\n name: 'NuxtUiEnumControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n const options = computed<EnumOption[]>(() => schemaEnumOptions(control.value.schema))\n\n const selectedValue = computed<unknown>({\n get: () => control.value.data,\n set: (v: unknown) => handleChange(control.value.path, v),\n })\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const USelectMenu = resolveComponent('USelectMenu')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(USelectMenu as any, {\n modelValue: selectedValue.value,\n items: options.value,\n valueKey: 'value',\n labelKey: 'label',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n placeholder: 'Select...',\n 'onUpdate:modelValue': (v: unknown) => {\n selectedValue.value = v\n },\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiIntegerControl = defineComponent({\n name: 'NuxtUiIntegerControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const modelValue = computed(() => {\n const v = control.value.data\n return v === null || v === undefined ? '' : String(v)\n })\n\n function onUpdate(raw: unknown) {\n const trimmed = String(raw ?? '').trim()\n if (trimmed === '') {\n handleChange(control.value.path, undefined)\n return\n }\n\n const parsed = Number.parseInt(trimmed, 10)\n handleChange(control.value.path, Number.isFinite(parsed) ? parsed : undefined)\n }\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UInput as any, {\n type: 'number',\n inputmode: 'numeric',\n step: '1',\n modelValue: modelValue.value,\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': onUpdate,\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement, JsonSchema } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\ntype EnumOption = { label: string; value: unknown }\n\nfunction schemaEnumOptions(schema: JsonSchema | undefined): EnumOption[] {\n if (!schema) return []\n\n if (Array.isArray(schema.enum)) {\n return schema.enum.map((v) => ({ label: String(v), value: v }))\n }\n\n const oneOf = (schema as unknown as { oneOf?: unknown }).oneOf\n if (!Array.isArray(oneOf)) return []\n\n const out: EnumOption[] = []\n for (const entry of oneOf) {\n if (typeof entry !== 'object' || entry === null) continue\n const maybe = entry as Record<string, unknown>\n if (!('const' in maybe)) continue\n out.push({\n value: maybe.const,\n label:\n typeof maybe.title === 'string' && maybe.title.trim()\n ? maybe.title\n : String(maybe.const),\n })\n }\n return out\n}\n\nfunction arrayItemsSchema(schema: JsonSchema | undefined): JsonSchema | undefined {\n if (!schema) return undefined\n const items = (schema as unknown as { items?: unknown }).items\n if (typeof items !== 'object' || items === null) return undefined\n return items as JsonSchema\n}\n\nexport const NuxtUiMultiEnumControl = defineComponent({\n name: 'NuxtUiMultiEnumControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n const options = computed<EnumOption[]>(() =>\n schemaEnumOptions(arrayItemsSchema(control.value.schema)),\n )\n\n const selectedValues = computed<unknown[]>({\n get: () => (Array.isArray(control.value.data) ? control.value.data : []),\n set: (v: unknown[]) => handleChange(control.value.path, v),\n })\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const USelectMenu = resolveComponent('USelectMenu')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(USelectMenu as any, {\n multiple: true,\n modelValue: selectedValues.value,\n items: options.value,\n valueKey: 'value',\n labelKey: 'label',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n placeholder: 'Select...',\n 'onUpdate:modelValue': (v: unknown) => {\n selectedValues.value = Array.isArray(v) ? v : []\n },\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiNumberControl = defineComponent({\n name: 'NuxtUiNumberControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const modelValue = computed(() => {\n const v = control.value.data\n return v === null || v === undefined ? '' : String(v)\n })\n\n function onUpdate(raw: unknown) {\n const trimmed = String(raw ?? '').trim()\n if (trimmed === '') {\n handleChange(control.value.path, undefined)\n return\n }\n const parsed = Number(trimmed)\n handleChange(control.value.path, Number.isFinite(parsed) ? parsed : undefined)\n }\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UInput as any, {\n type: 'number',\n inputmode: 'decimal',\n modelValue: modelValue.value,\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': onUpdate,\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, ref, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiPasswordControl = defineComponent({\n name: 'NuxtUiPasswordControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n const showPassword = ref(false)\n\n const inputType = computed(() => (showPassword.value ? 'text' : 'password'))\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n const UButton = resolveComponent('UButton')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(\n UInput as any,\n {\n modelValue: control.value.data ?? '',\n class: 'w-full',\n type: inputType.value,\n autocomplete: 'current-password',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': (v: unknown) =>\n handleChange(control.value.path, v),\n },\n {\n trailing: () =>\n h(UButton as any, {\n type: 'button',\n color: 'neutral',\n variant: 'ghost',\n square: true,\n icon: showPassword.value\n ? 'i-heroicons-eye-slash'\n : 'i-heroicons-eye',\n 'aria-pressed': showPassword.value,\n 'aria-label': showPassword.value\n ? 'Hide password'\n : 'Show password',\n disabled: !control.value.enabled,\n onClick: () => {\n showPassword.value = !showPassword.value\n },\n }),\n },\n ),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport {\n computed,\n defineComponent,\n h,\n resolveComponent,\n} from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiStringControl = defineComponent({\n name: 'NuxtUiStringControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UInput as any, {\n modelValue: control.value.data ?? '',\n class: 'w-full',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': (v: unknown) =>\n handleChange(control.value.path, v),\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiTextareaControl = defineComponent({\n name: 'NuxtUiTextareaControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UTextarea = resolveComponent('UTextarea')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UTextarea as any, {\n modelValue: control.value.data ?? '',\n class: 'w-full',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n rows: 5,\n 'onUpdate:modelValue': (v: unknown) =>\n handleChange(control.value.path, v),\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsCategorization } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiCategorizationRenderer = defineComponent({\n name: 'NuxtUiCategorizationRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout, categories } = useJsonFormsCategorization(\n props as unknown as Parameters<typeof useJsonFormsCategorization>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n return h(\n 'div',\n { class: 'flex flex-col gap-6' },\n categories.map((categoryRef, catIndex) => {\n const category = categoryRef.value\n const elements = category.uischema.elements ?? []\n\n return h(\n 'div',\n { key: `${layout.value.path}-cat-${catIndex}`, class: 'flex flex-col gap-3' },\n [\n category.label\n ? h('div', { class: 'text-sm font-semibold' }, category.label)\n : null,\n h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${category.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: category.schema,\n uischema: element,\n path: category.path,\n enabled: category.enabled,\n renderers: category.renderers,\n cells: category.cells,\n }),\n ),\n ),\n ),\n ],\n )\n }),\n )\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiCategoryRenderer = defineComponent({\n name: 'NuxtUiCategoryRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h('div', { class: 'flex flex-col gap-3' }, [\n layout.value.label\n ? h('div', { class: 'text-sm font-semibold' }, layout.value.label)\n : null,\n h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n ),\n ])\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiGroupRenderer = defineComponent({\n name: 'NuxtUiGroupRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h('div', { class: 'rounded border p-3' }, [\n layout.value.label\n ? h('div', { class: 'mb-3 text-sm font-semibold' }, layout.value.label)\n : null,\n h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n ),\n ])\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiHorizontalLayoutRenderer = defineComponent({\n name: 'NuxtUiHorizontalLayoutRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h(\n 'div',\n { class: 'flex flex-col gap-3 md:flex-row md:flex-wrap' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}`, class: 'min-w-0 flex-1' },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n )\n }\n },\n})\n\n","import type { LabelElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsLabel } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiLabelRenderer = defineComponent({\n name: 'NuxtUiLabelRenderer',\n props: rendererProps<LabelElement>(),\n setup(props) {\n const { label } = useJsonFormsLabel(\n props as unknown as Parameters<typeof useJsonFormsLabel>[0],\n )\n\n return () => {\n if (!label.value.visible) return null\n return h(\n 'div',\n { class: 'text-sm text-gray-600 dark:text-gray-300' },\n label.value.text,\n )\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiVerticalLayoutRenderer = defineComponent({\n name: 'NuxtUiVerticalLayoutRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n )\n }\n },\n})\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,IAAAA,eAeO;AACP,IAAAC,eAAwB;;;AChBxB,kBAMO;AACP,IAAAC,cAA0E;AAC1E,IAAAA,cAA+D;;;ACT/D,iBAA2C;AAEpC,SAAS,mBAAmB,OAA+C;AAChF,QAAM,IAAI,OAAO,KAAK;AACtB,SAAO,IAAI,IAAI;AACjB;;;ADQO,IAAM,8BAA0B,6BAAgB;AAAA,EACrD,MAAM;AAAA,EACN,YAAY,EAAE,+CAAiB;AAAA,EAC/B,WAAO,2BAA8B;AAAA,EACrC,MAAM,OAAO;AACX,UAAM,EAAE,SAAS,SAAS,aAAa,QAAQ,SAAS,QACtD;AAAA,MACE;AAAA,IACF;AAEF,UAAM,mBAAe,sBAAS,MAAM,mBAAmB,QAAQ,MAAM,MAAM,CAAC;AAE5E,UAAM,YAAQ;AAAA,MAAoB,MAChC,MAAM,QAAQ,QAAQ,MAAM,IAAI,IAAI,QAAQ,MAAM,OAAO,CAAC;AAAA,IAC5D;AAEA,UAAM,kBAAc,sBAAiC,MAAM;AACzD,UAAI;AACF,eAAO,oBAAQ;AAAA,UACb,MAAM;AAAA,UACN,QAAQ,MAAM,SAAS;AAAA,UACvB,QAAQ,MAAM;AAAA,QAChB;AAAA,MACF,QAAQ;AACN,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AAED,UAAM,sBAAkB,sBAAS,MAAM;AACrC,YAAM,MAAM,YAAY,OAAO;AAC/B,aAAO,OAAO,QAAQ,WAAW,MAAM,MAAM,UAAU,MAAM;AAAA,IAC/D,CAAC;AAED,UAAM,sBAAkB,sBAAS,MAAM;AACrC,YAAM,MAAM,YAAY,OAAO;AAC/B,aAAO,OAAO,QAAQ,WAAW,MAAM,MAAM,UAAU,MAAM;AAAA,IAC/D,CAAC;AAED,UAAM,oBAAgB;AAAA,MAA0B,UAC9C;AAAA,QACE,QAAQ,MAAM;AAAA,QACd,QAAQ,MAAM;AAAA,QACd,QAAQ,MAAM,SAAS;AAAA,QACvB,QAAQ,MAAM;AAAA,QACd;AAAA,QACA,QAAQ,MAAM;AAAA,QACd,QAAQ,MAAM;AAAA,MAChB;AAAA,IACF;AAEA,aAAS,mBAAmB,OAAuB;AACjD,YAAM,iBACJ,qCAAqC,QAAQ,MAAM,SAAS,OAAO,SACnE,mCAAsB,QAAQ,MAAM,MAAM;AAE5C,UAAI,CAAC,eAAgB,QAAO,GAAG,KAAK;AAEpC,YAAM,aAAa,oBAAQ;AAAA,QACzB,QAAQ,MAAM;AAAA,YACd,0BAAa,GAAG,KAAK,IAAI,cAAc;AAAA,MACzC;AACA,UACE,eAAe,UACf,eAAe,QACf,OAAO,MAAM,UAAiB,GAC9B;AACA,eAAO;AAAA,MACT;AACA,aAAO,OAAO,UAAU;AAAA,IAC1B;AAEA,aAAS,qCAAqC,SAAsC;AAClF,UAAI,CAAC,WAAW,OAAO,YAAY,SAAU,QAAO;AACpD,YAAM,QAAS,QAAoC;AACnD,aAAO,OAAO,UAAU,WAAW,QAAQ;AAAA,IAC7C;AAEA,aAAS,iBAAiB;AACxB;AAAA,QACE,QAAQ,MAAM;AAAA,YACd,gCAAmB,QAAQ,MAAM,QAAQ,QAAQ,MAAM,UAAU;AAAA,MACnE,EAAE;AAAA,IACJ;AAEA,WAAO,MAAM;AACX,UAAI,CAAC,QAAQ,MAAM,QAAS,QAAO;AAEnC,YAAM,iBAAa,8BAAiB,YAAY;AAChD,YAAM,cAAU,8BAAiB,SAAS;AAE1C,iBAAO;AAAA,QACL;AAAA,QACA,CAAC;AAAA,YACD;AAAA,UACE;AAAA,UACA;AAAA,YACE,OAAO,QAAQ,MAAM;AAAA,YACrB,aAAa,QAAQ,MAAM;AAAA,YAC3B,UAAU,QAAQ,MAAM;AAAA,YACxB,OAAO,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,YACE,SAAS,UACP,eAAE,OAAO,EAAE,OAAO,sBAAsB,GAAG;AAAA,kBACzC,eAAE,OAAO,EAAE,OAAO,0CAA0C,GAAG;AAAA,oBAC7D;AAAA,kBACE;AAAA,kBACA,EAAE,OAAO,wBAAwB;AAAA,kBACjC,GAAG,MAAM,MAAM,MAAM;AAAA,gBACvB;AAAA,oBACA;AAAA,kBACE;AAAA,kBACA;AAAA,oBACE,MAAM;AAAA,oBACN,MAAM;AAAA,oBACN,SAAS;AAAA,oBACT,OAAO;AAAA,oBACP,UAAU,CAAC,QAAQ,MAAM,WAAW,gBAAgB;AAAA,oBACpD,SAAS;AAAA,kBACX;AAAA,kBACA,EAAE,SAAS,MAAM,MAAM;AAAA,gBACzB;AAAA,cACF,CAAC;AAAA,cAED,MAAM,MAAM,WAAW,QACnB;AAAA,gBACE;AAAA,gBACA,EAAE,OAAO,wBAAwB;AAAA,gBACjC;AAAA,cACF,IACA;AAAA,cAEJ,GAAG,MAAM,MAAM;AAAA,gBAAI,CAAC,OAAO,cACzB;AAAA,kBACE;AAAA,kBACA,EAAE,KAAK,GAAG,QAAQ,MAAM,IAAI,IAAI,KAAK,IAAI,OAAO,qBAAqB;AAAA,kBACrE;AAAA,wBACE;AAAA,sBACE;AAAA,sBACA,EAAE,OAAO,8CAA8C;AAAA,sBACvD;AAAA,4BACE,eAAE,OAAO,EAAE,OAAO,UAAU,GAAG;AAAA,8BAC7B;AAAA,4BACE;AAAA,4BACA;AAAA,8BACE,OACE;AAAA,4BACJ;AAAA,4BACA;AAAA,8BACE,QAAQ,QAAQ,CAAC;AAAA,8BACjB,mBAAmB,KAAK,QACpB;AAAA,gCACE;AAAA,gCACA;AAAA,kCACE,OACE;AAAA,gCACJ;AAAA,gCACA,WAAM,mBAAmB,KAAK,CAAC;AAAA,8BACjC,IACA;AAAA,4BACN;AAAA,0BACF;AAAA,wBACF,CAAC;AAAA,4BACD,eAAE,OAAO,EAAE,OAAO,oCAAoC,GAAG;AAAA,8BACvD;AAAA,4BACE;AAAA,4BACA;AAAA,8BACE,MAAM;AAAA,8BACN,MAAM;AAAA,8BACN,SAAS;AAAA,8BACT,OAAO;AAAA,8BACP,UAAU,CAAC,QAAQ,MAAM,WAAW,UAAU;AAAA,8BAC9C,SAAS,MAAM,SAAS,QAAQ,MAAM,MAAM,KAAK,EAAE;AAAA,4BACrD;AAAA,4BACA,EAAE,SAAS,MAAM,KAAK;AAAA,0BACxB;AAAA,8BACA;AAAA,4BACE;AAAA,4BACA;AAAA,8BACE,MAAM;AAAA,8BACN,MAAM;AAAA,8BACN,SAAS;AAAA,8BACT,OAAO;AAAA,8BACP,UACE,CAAC,QAAQ,MAAM,WACf,SAAS,MAAM,MAAM,SAAS;AAAA,8BAChC,SAAS,MAAM,WAAW,QAAQ,MAAM,MAAM,KAAK,EAAE;AAAA,4BACvD;AAAA,4BACA,EAAE,SAAS,MAAM,OAAO;AAAA,0BAC1B;AAAA,8BACA;AAAA,4BACE;AAAA,4BACA;AAAA,8BACE,MAAM;AAAA,8BACN,MAAM;AAAA,8BACN,SAAS;AAAA,8BACT,OAAO;AAAA,8BACP,UAAU,CAAC,QAAQ,MAAM,WAAW,gBAAgB;AAAA,8BACpD,SAAS,MACP,cAAc,QAAQ,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE;AAAA,4BAC/C;AAAA,4BACA,EAAE,SAAS,MAAM,SAAS;AAAA,0BAC5B;AAAA,wBACF,CAAC;AAAA,sBACH;AAAA,oBACF;AAAA,wBAEA,eAAE,8BAAyB;AAAA,sBACzB,QAAQ,QAAQ,MAAM;AAAA,sBACtB,UAAU,cAAc;AAAA,sBACxB,UAAM,0BAAa,QAAQ,MAAM,MAAM,GAAG,KAAK,EAAE;AAAA,sBACjD,SAAS,QAAQ,MAAM;AAAA,sBACvB,WAAW,QAAQ,MAAM;AAAA,sBACzB,OAAO,QAAQ,MAAM;AAAA,oBACvB,CAAC;AAAA,kBACH;AAAA,gBACF;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;AE5OD,IAAAC,eAAuC;AACvC,IAAAC,cAIO;AACP,IAAAA,cAA6C;AAEtC,IAAM,2BAAuB,6BAAgB;AAAA,EAClD,MAAM;AAAA,EACN,YAAY,EAAE,+CAAiB;AAAA,EAC/B,WAAO,2BAA8B;AAAA,EACrC,MAAM,OAAO;AACX,UAAM,EAAE,QAAQ,QAAI;AAAA,MAClB;AAAA,IACF;AAEA,UAAM,qBAAiB,sBAA0B,MAAM;AACrD,YAAM,oBAAoB,MAAM;AAC9B,cAAM,WAAW,sBAAS;AAAA,UACxB,QAAQ,MAAM;AAAA,UACd;AAAA,UACA;AAAA,UACA,QAAQ,MAAM;AAAA,QAChB;AAEA,YAAI,CAAC,QAAQ,MAAM,MAAM;AACvB,mBAAS,OAAO;AAAA,QAClB,OAAO;AACL;AAAC,UAAC,SAAyB,QAAQ,QAAQ,MAAM;AAAA,QACnD;AACA,eAAO;AAAA,MACT;AAEA,iBAAO;AAAA,QACL,QAAQ,MAAM;AAAA,QACd,QAAQ,MAAM;AAAA,QACd,QAAQ,MAAM,SAAS;AAAA,QACvB,QAAQ,MAAM;AAAA,QACd;AAAA,QACA,QAAQ,MAAM;AAAA,QACd,QAAQ,MAAM;AAAA,MAChB;AAAA,IACF,CAAC;AAED,WAAO,MAAM;AACX,UAAI,CAAC,QAAQ,MAAM,QAAS,QAAO;AAEnC,iBAAO,eAAE,8BAAyB;AAAA,QAChC,SAAS,QAAQ,MAAM;AAAA,QACvB,SAAS,QAAQ,MAAM;AAAA,QACvB,QAAQ,QAAQ,MAAM;AAAA,QACtB,UAAU,eAAe;AAAA,QACzB,MAAM,QAAQ,MAAM;AAAA,QACpB,WAAW,QAAQ,MAAM;AAAA,QACzB,OAAO,QAAQ,MAAM;AAAA,MACvB,CAAC;AAAA,IACH;AAAA,EACF;AACF,CAAC;;;AC3DD,IAAAC,cAAmD;AACnD,IAAAA,cAA+D;AAIxD,IAAM,2BAAuB,6BAAgB;AAAA,EAClD,MAAM;AAAA,EACN,WAAO,2BAA8B;AAAA,EACrC,MAAM,OAAO;AACX,UAAM,EAAE,SAAS,aAAa,QAAI;AAAA,MAChC;AAAA,IACF;AAEA,UAAM,mBAAe,sBAAS,MAAM,mBAAmB,QAAQ,MAAM,MAAM,CAAC;AAE5E,UAAM,iBAAa,sBAAkB;AAAA,MACnC,KAAK,MAAM,QAAQ,QAAQ,MAAM,IAAI;AAAA,MACrC,KAAK,CAAC,MAAe,aAAa,QAAQ,MAAM,MAAM,CAAC;AAAA,IACzD,CAAC;AAED,WAAO,MAAM;AACX,UAAI,CAAC,QAAQ,MAAM,QAAS,QAAO;AAEnC,YAAM,iBAAa,8BAAiB,YAAY;AAChD,YAAM,cAAU,8BAAiB,SAAS;AAE1C,iBAAO;AAAA,QACL;AAAA,QACA,CAAC;AAAA,YACD;AAAA,UACE;AAAA,UACA;AAAA,YACE,OAAO,QAAQ,MAAM;AAAA,YACrB,aAAa,QAAQ,MAAM;AAAA,YAC3B,UAAU,QAAQ,MAAM;AAAA,YACxB,OAAO,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,YACE,SAAS,UACP;AAAA,cACE;AAAA,cACA,EAAE,OAAO,0CAA0C;AAAA,kBACnD,eAAE,SAAgB;AAAA,gBAChB,YAAY,WAAW;AAAA,gBACvB,UAAU,CAAC,QAAQ,MAAM;AAAA,gBACzB,gBAAgB,QAAQ,aAAa,KAAK;AAAA,gBAC1C,uBAAuB,CAAC,MAAe;AACrC,6BAAW,QAAQ;AAAA,gBACrB;AAAA,cACF,CAAC;AAAA,YACH;AAAA,UACJ;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;ACxDD,IAAAC,cAAmD;AACnD,IAAAA,cAA+D;AAM/D,SAAS,kBAAkB,QAA8C;AACvE,MAAI,CAAC,OAAQ,QAAO,CAAC;AAErB,MAAI,MAAM,QAAQ,OAAO,IAAI,GAAG;AAC9B,WAAO,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,GAAG,OAAO,EAAE,EAAE;AAAA,EAChE;AAEA,QAAM,QAAS,OAA0C;AACzD,MAAI,CAAC,MAAM,QAAQ,KAAK,EAAG,QAAO,CAAC;AAEnC,QAAM,MAAoB,CAAC;AAC3B,aAAW,SAAS,OAAO;AACzB,QAAI,OAAO,UAAU,YAAY,UAAU,KAAM;AACjD,UAAM,QAAQ;AACd,QAAI,EAAE,WAAW,OAAQ;AACzB,QAAI,KAAK;AAAA,MACP,OAAO,MAAM;AAAA,MACb,OACE,OAAO,MAAM,UAAU,YAAY,MAAM,MAAM,KAAK,IAChD,MAAM,QACN,OAAO,MAAM,KAAK;AAAA,IAC1B,CAAC;AAAA,EACH;AACA,SAAO;AACT;AAEO,IAAM,wBAAoB,6BAAgB;AAAA,EAC/C,MAAM;AAAA,EACN,WAAO,2BAA8B;AAAA,EACrC,MAAM,OAAO;AACX,UAAM,EAAE,SAAS,aAAa,QAAI;AAAA,MAChC;AAAA,IACF;AAEA,UAAM,mBAAe,sBAAS,MAAM,mBAAmB,QAAQ,MAAM,MAAM,CAAC;AAC5E,UAAM,cAAU,sBAAuB,MAAM,kBAAkB,QAAQ,MAAM,MAAM,CAAC;AAEpF,UAAM,oBAAgB,sBAAkB;AAAA,MACtC,KAAK,MAAM,QAAQ,MAAM;AAAA,MACzB,KAAK,CAAC,MAAe,aAAa,QAAQ,MAAM,MAAM,CAAC;AAAA,IACzD,CAAC;AAED,WAAO,MAAM;AACX,UAAI,CAAC,QAAQ,MAAM,QAAS,QAAO;AAEnC,YAAM,iBAAa,8BAAiB,YAAY;AAChD,YAAM,kBAAc,8BAAiB,aAAa;AAElD,iBAAO;AAAA,QACL;AAAA,QACA,CAAC;AAAA,YACD;AAAA,UACE;AAAA,UACA;AAAA,YACE,OAAO,QAAQ,MAAM;AAAA,YACrB,aAAa,QAAQ,MAAM;AAAA,YAC3B,UAAU,QAAQ,MAAM;AAAA,YACxB,OAAO,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,YACE,SAAS,UACP,eAAE,aAAoB;AAAA,cACpB,YAAY,cAAc;AAAA,cAC1B,OAAO,QAAQ;AAAA,cACf,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU,CAAC,QAAQ,MAAM;AAAA,cACzB,OAAO,aAAa,QAAQ,UAAU;AAAA,cACtC,gBAAgB,QAAQ,aAAa,KAAK;AAAA,cAC1C,aAAa;AAAA,cACb,uBAAuB,CAAC,MAAe;AACrC,8BAAc,QAAQ;AAAA,cACxB;AAAA,YACF,CAAC;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;ACtFD,IAAAC,eAAmD;AACnD,IAAAA,eAA+D;AAIxD,IAAM,2BAAuB,8BAAgB;AAAA,EAClD,MAAM;AAAA,EACN,WAAO,4BAA8B;AAAA,EACrC,MAAM,OAAO;AACX,UAAM,EAAE,SAAS,aAAa,QAAI;AAAA,MAChC;AAAA,IACF;AAEA,UAAM,mBAAe,uBAAS,MAAM,mBAAmB,QAAQ,MAAM,MAAM,CAAC;AAE5E,UAAM,iBAAa,uBAAS,MAAM;AAChC,YAAM,IAAI,QAAQ,MAAM;AACxB,aAAO,MAAM,QAAQ,MAAM,SAAY,KAAK,OAAO,CAAC;AAAA,IACtD,CAAC;AAED,aAAS,SAAS,KAAc;AAC9B,YAAM,UAAU,OAAO,OAAO,EAAE,EAAE,KAAK;AACvC,UAAI,YAAY,IAAI;AAClB,qBAAa,QAAQ,MAAM,MAAM,MAAS;AAC1C;AAAA,MACF;AAEA,YAAM,SAAS,OAAO,SAAS,SAAS,EAAE;AAC1C,mBAAa,QAAQ,MAAM,MAAM,OAAO,SAAS,MAAM,IAAI,SAAS,MAAS;AAAA,IAC/E;AAEA,WAAO,MAAM;AACX,UAAI,CAAC,QAAQ,MAAM,QAAS,QAAO;AAEnC,YAAM,iBAAa,+BAAiB,YAAY;AAChD,YAAM,aAAS,+BAAiB,QAAQ;AAExC,iBAAO;AAAA,QACL;AAAA,QACA,CAAC;AAAA,YACD;AAAA,UACE;AAAA,UACA;AAAA,YACE,OAAO,QAAQ,MAAM;AAAA,YACrB,aAAa,QAAQ,MAAM;AAAA,YAC3B,UAAU,QAAQ,MAAM;AAAA,YACxB,OAAO,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,YACE,SAAS,UACP,gBAAE,QAAe;AAAA,cACf,MAAM;AAAA,cACN,WAAW;AAAA,cACX,MAAM;AAAA,cACN,YAAY,WAAW;AAAA,cACvB,UAAU,CAAC,QAAQ,MAAM;AAAA,cACzB,OAAO,aAAa,QAAQ,UAAU;AAAA,cACtC,gBAAgB,QAAQ,aAAa,KAAK;AAAA,cAC1C,uBAAuB;AAAA,YACzB,CAAC;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;ACjED,IAAAC,eAAmD;AACnD,IAAAA,eAA+D;AAM/D,SAASC,mBAAkB,QAA8C;AACvE,MAAI,CAAC,OAAQ,QAAO,CAAC;AAErB,MAAI,MAAM,QAAQ,OAAO,IAAI,GAAG;AAC9B,WAAO,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,OAAO,OAAO,CAAC,GAAG,OAAO,EAAE,EAAE;AAAA,EAChE;AAEA,QAAM,QAAS,OAA0C;AACzD,MAAI,CAAC,MAAM,QAAQ,KAAK,EAAG,QAAO,CAAC;AAEnC,QAAM,MAAoB,CAAC;AAC3B,aAAW,SAAS,OAAO;AACzB,QAAI,OAAO,UAAU,YAAY,UAAU,KAAM;AACjD,UAAM,QAAQ;AACd,QAAI,EAAE,WAAW,OAAQ;AACzB,QAAI,KAAK;AAAA,MACP,OAAO,MAAM;AAAA,MACb,OACE,OAAO,MAAM,UAAU,YAAY,MAAM,MAAM,KAAK,IAChD,MAAM,QACN,OAAO,MAAM,KAAK;AAAA,IAC1B,CAAC;AAAA,EACH;AACA,SAAO;AACT;AAEA,SAAS,iBAAiB,QAAwD;AAChF,MAAI,CAAC,OAAQ,QAAO;AACpB,QAAM,QAAS,OAA0C;AACzD,MAAI,OAAO,UAAU,YAAY,UAAU,KAAM,QAAO;AACxD,SAAO;AACT;AAEO,IAAM,6BAAyB,8BAAgB;AAAA,EACpD,MAAM;AAAA,EACN,WAAO,4BAA8B;AAAA,EACrC,MAAM,OAAO;AACX,UAAM,EAAE,SAAS,aAAa,QAAI;AAAA,MAChC;AAAA,IACF;AAEA,UAAM,mBAAe,uBAAS,MAAM,mBAAmB,QAAQ,MAAM,MAAM,CAAC;AAC5E,UAAM,cAAU;AAAA,MAAuB,MACrCA,mBAAkB,iBAAiB,QAAQ,MAAM,MAAM,CAAC;AAAA,IAC1D;AAEA,UAAM,qBAAiB,uBAAoB;AAAA,MACzC,KAAK,MAAO,MAAM,QAAQ,QAAQ,MAAM,IAAI,IAAI,QAAQ,MAAM,OAAO,CAAC;AAAA,MACtE,KAAK,CAAC,MAAiB,aAAa,QAAQ,MAAM,MAAM,CAAC;AAAA,IAC3D,CAAC;AAED,WAAO,MAAM;AACX,UAAI,CAAC,QAAQ,MAAM,QAAS,QAAO;AAEnC,YAAM,iBAAa,+BAAiB,YAAY;AAChD,YAAM,kBAAc,+BAAiB,aAAa;AAElD,iBAAO;AAAA,QACL;AAAA,QACA,CAAC;AAAA,YACD;AAAA,UACE;AAAA,UACA;AAAA,YACE,OAAO,QAAQ,MAAM;AAAA,YACrB,aAAa,QAAQ,MAAM;AAAA,YAC3B,UAAU,QAAQ,MAAM;AAAA,YACxB,OAAO,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,YACE,SAAS,UACP,gBAAE,aAAoB;AAAA,cACpB,UAAU;AAAA,cACV,YAAY,eAAe;AAAA,cAC3B,OAAO,QAAQ;AAAA,cACf,UAAU;AAAA,cACV,UAAU;AAAA,cACV,UAAU,CAAC,QAAQ,MAAM;AAAA,cACzB,OAAO,aAAa,QAAQ,UAAU;AAAA,cACtC,gBAAgB,QAAQ,aAAa,KAAK;AAAA,cAC1C,aAAa;AAAA,cACb,uBAAuB,CAAC,MAAe;AACrC,+BAAe,QAAQ,MAAM,QAAQ,CAAC,IAAI,IAAI,CAAC;AAAA,cACjD;AAAA,YACF,CAAC;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;AChGD,IAAAC,eAAmD;AACnD,IAAAA,eAA+D;AAIxD,IAAM,0BAAsB,8BAAgB;AAAA,EACjD,MAAM;AAAA,EACN,WAAO,4BAA8B;AAAA,EACrC,MAAM,OAAO;AACX,UAAM,EAAE,SAAS,aAAa,QAAI;AAAA,MAChC;AAAA,IACF;AAEA,UAAM,mBAAe,uBAAS,MAAM,mBAAmB,QAAQ,MAAM,MAAM,CAAC;AAE5E,UAAM,iBAAa,uBAAS,MAAM;AAChC,YAAM,IAAI,QAAQ,MAAM;AACxB,aAAO,MAAM,QAAQ,MAAM,SAAY,KAAK,OAAO,CAAC;AAAA,IACtD,CAAC;AAED,aAAS,SAAS,KAAc;AAC9B,YAAM,UAAU,OAAO,OAAO,EAAE,EAAE,KAAK;AACvC,UAAI,YAAY,IAAI;AAClB,qBAAa,QAAQ,MAAM,MAAM,MAAS;AAC1C;AAAA,MACF;AACA,YAAM,SAAS,OAAO,OAAO;AAC7B,mBAAa,QAAQ,MAAM,MAAM,OAAO,SAAS,MAAM,IAAI,SAAS,MAAS;AAAA,IAC/E;AAEA,WAAO,MAAM;AACX,UAAI,CAAC,QAAQ,MAAM,QAAS,QAAO;AAEnC,YAAM,iBAAa,+BAAiB,YAAY;AAChD,YAAM,aAAS,+BAAiB,QAAQ;AAExC,iBAAO;AAAA,QACL;AAAA,QACA,CAAC;AAAA,YACD;AAAA,UACE;AAAA,UACA;AAAA,YACE,OAAO,QAAQ,MAAM;AAAA,YACrB,aAAa,QAAQ,MAAM;AAAA,YAC3B,UAAU,QAAQ,MAAM;AAAA,YACxB,OAAO,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,YACE,SAAS,UACP,gBAAE,QAAe;AAAA,cACf,MAAM;AAAA,cACN,WAAW;AAAA,cACX,YAAY,WAAW;AAAA,cACvB,UAAU,CAAC,QAAQ,MAAM;AAAA,cACzB,OAAO,aAAa,QAAQ,UAAU;AAAA,cACtC,gBAAgB,QAAQ,aAAa,KAAK;AAAA,cAC1C,uBAAuB;AAAA,YACzB,CAAC;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;AC/DD,IAAAC,eAAmD;AACnD,IAAAA,eAAoE;AAI7D,IAAM,4BAAwB,8BAAgB;AAAA,EACnD,MAAM;AAAA,EACN,WAAO,4BAA8B;AAAA,EACrC,MAAM,OAAO;AACX,UAAM,EAAE,SAAS,aAAa,QAAI;AAAA,MAChC;AAAA,IACF;AAEA,UAAM,mBAAe,uBAAS,MAAM,mBAAmB,QAAQ,MAAM,MAAM,CAAC;AAC5E,UAAM,mBAAe,kBAAI,KAAK;AAE9B,UAAM,gBAAY,uBAAS,MAAO,aAAa,QAAQ,SAAS,UAAW;AAE3E,WAAO,MAAM;AACX,UAAI,CAAC,QAAQ,MAAM,QAAS,QAAO;AAEnC,YAAM,iBAAa,+BAAiB,YAAY;AAChD,YAAM,aAAS,+BAAiB,QAAQ;AACxC,YAAM,cAAU,+BAAiB,SAAS;AAE1C,iBAAO;AAAA,QACL;AAAA,QACA,CAAC;AAAA,YACD;AAAA,UACE;AAAA,UACA;AAAA,YACE,OAAO,QAAQ,MAAM;AAAA,YACrB,aAAa,QAAQ,MAAM;AAAA,YAC3B,UAAU,QAAQ,MAAM;AAAA,YACxB,OAAO,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,YACE,SAAS,UACP;AAAA,cACE;AAAA,cACA;AAAA,gBACE,YAAY,QAAQ,MAAM,QAAQ;AAAA,gBAClC,OAAO;AAAA,gBACP,MAAM,UAAU;AAAA,gBAChB,cAAc;AAAA,gBACd,UAAU,CAAC,QAAQ,MAAM;AAAA,gBACzB,OAAO,aAAa,QAAQ,UAAU;AAAA,gBACtC,gBAAgB,QAAQ,aAAa,KAAK;AAAA,gBAC1C,uBAAuB,CAAC,MACtB,aAAa,QAAQ,MAAM,MAAM,CAAC;AAAA,cACtC;AAAA,cACA;AAAA,gBACE,UAAU,UACR,gBAAE,SAAgB;AAAA,kBAChB,MAAM;AAAA,kBACN,OAAO;AAAA,kBACP,SAAS;AAAA,kBACT,QAAQ;AAAA,kBACR,MAAM,aAAa,QACf,0BACA;AAAA,kBACJ,gBAAgB,aAAa;AAAA,kBAC7B,cAAc,aAAa,QACvB,kBACA;AAAA,kBACJ,UAAU,CAAC,QAAQ,MAAM;AAAA,kBACzB,SAAS,MAAM;AACb,iCAAa,QAAQ,CAAC,aAAa;AAAA,kBACrC;AAAA,gBACF,CAAC;AAAA,cACL;AAAA,YACF;AAAA,UACJ;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;AC7ED,IAAAC,eAAmD;AACnD,IAAAA,eAKO;AAIA,IAAM,0BAAsB,8BAAgB;AAAA,EACjD,MAAM;AAAA,EACN,WAAO,4BAA8B;AAAA,EACrC,MAAM,OAAO;AACX,UAAM,EAAE,SAAS,aAAa,QAAI;AAAA,MAChC;AAAA,IACF;AAEA,UAAM,mBAAe,uBAAS,MAAM,mBAAmB,QAAQ,MAAM,MAAM,CAAC;AAE5E,WAAO,MAAM;AACX,UAAI,CAAC,QAAQ,MAAM,QAAS,QAAO;AAEnC,YAAM,iBAAa,+BAAiB,YAAY;AAChD,YAAM,aAAS,+BAAiB,QAAQ;AAExC,iBAAO;AAAA,QACL;AAAA,QACA,CAAC;AAAA,YACD;AAAA,UACE;AAAA,UACA;AAAA,YACE,OAAO,QAAQ,MAAM;AAAA,YACrB,aAAa,QAAQ,MAAM;AAAA,YAC3B,UAAU,QAAQ,MAAM;AAAA,YACxB,OAAO,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,YACE,SAAS,UACP,gBAAE,QAAe;AAAA,cACf,YAAY,QAAQ,MAAM,QAAQ;AAAA,cAClC,OAAO;AAAA,cACP,UAAU,CAAC,QAAQ,MAAM;AAAA,cACzB,OAAO,aAAa,QAAQ,UAAU;AAAA,cACtC,gBAAgB,QAAQ,aAAa,KAAK;AAAA,cAC1C,uBAAuB,CAAC,MACtB,aAAa,QAAQ,MAAM,MAAM,CAAC;AAAA,YACtC,CAAC;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;ACrDD,IAAAC,eAAmD;AACnD,IAAAA,eAA+D;AAIxD,IAAM,4BAAwB,8BAAgB;AAAA,EACnD,MAAM;AAAA,EACN,WAAO,4BAA8B;AAAA,EACrC,MAAM,OAAO;AACX,UAAM,EAAE,SAAS,aAAa,QAAI;AAAA,MAChC;AAAA,IACF;AAEA,UAAM,mBAAe,uBAAS,MAAM,mBAAmB,QAAQ,MAAM,MAAM,CAAC;AAE5E,WAAO,MAAM;AACX,UAAI,CAAC,QAAQ,MAAM,QAAS,QAAO;AAEnC,YAAM,iBAAa,+BAAiB,YAAY;AAChD,YAAM,gBAAY,+BAAiB,WAAW;AAE9C,iBAAO;AAAA,QACL;AAAA,QACA,CAAC;AAAA,YACD;AAAA,UACE;AAAA,UACA;AAAA,YACE,OAAO,QAAQ,MAAM;AAAA,YACrB,aAAa,QAAQ,MAAM;AAAA,YAC3B,UAAU,QAAQ,MAAM;AAAA,YACxB,OAAO,aAAa;AAAA,UACtB;AAAA,UACA;AAAA,YACE,SAAS,UACP,gBAAE,WAAkB;AAAA,cAClB,YAAY,QAAQ,MAAM,QAAQ;AAAA,cAClC,OAAO;AAAA,cACP,UAAU,CAAC,QAAQ,MAAM;AAAA,cACzB,OAAO,aAAa,QAAQ,UAAU;AAAA,cACtC,gBAAgB,QAAQ,aAAa,KAAK;AAAA,cAC1C,MAAM;AAAA,cACN,uBAAuB,CAAC,MACtB,aAAa,QAAQ,MAAM,MAAM,CAAC;AAAA,YACtC,CAAC;AAAA,UACL;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;ACjDD,IAAAC,eAA4E;AAC5E,IAAAA,eAAmC;AAE5B,IAAM,mCAA+B,8BAAgB;AAAA,EAC1D,MAAM;AAAA,EACN,YAAY,EAAE,gDAAiB;AAAA,EAC/B,WAAO,4BAAsB;AAAA,EAC7B,MAAM,OAAO;AACX,UAAM,EAAE,QAAQ,WAAW,QAAI;AAAA,MAC7B;AAAA,IACF;AAEA,WAAO,MAAM;AACX,UAAI,CAAC,OAAO,MAAM,QAAS,QAAO;AAElC,iBAAO;AAAA,QACL;AAAA,QACA,EAAE,OAAO,sBAAsB;AAAA,QAC/B,WAAW,IAAI,CAAC,aAAa,aAAa;AACxC,gBAAM,WAAW,YAAY;AAC7B,gBAAM,WAAW,SAAS,SAAS,YAAY,CAAC;AAEhD,qBAAO;AAAA,YACL;AAAA,YACA,EAAE,KAAK,GAAG,OAAO,MAAM,IAAI,QAAQ,QAAQ,IAAI,OAAO,sBAAsB;AAAA,YAC5E;AAAA,cACE,SAAS,YACL,gBAAE,OAAO,EAAE,OAAO,wBAAwB,GAAG,SAAS,KAAK,IAC3D;AAAA,kBACJ;AAAA,gBACE;AAAA,gBACA,EAAE,OAAO,sBAAsB;AAAA,gBAC/B,SAAS;AAAA,kBAAI,CAAC,SAAS,cACrB;AAAA,oBACE;AAAA,oBACA,EAAE,KAAK,GAAG,SAAS,IAAI,IAAI,KAAK,GAAG;AAAA,wBACnC,gBAAE,+BAAyB;AAAA,sBACzB,QAAQ,SAAS;AAAA,sBACjB,UAAU;AAAA,sBACV,MAAM,SAAS;AAAA,sBACf,SAAS,SAAS;AAAA,sBAClB,WAAW,SAAS;AAAA,sBACpB,OAAO,SAAS;AAAA,oBAClB,CAAC;AAAA,kBACH;AAAA,gBACF;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;ACrDD,IAAAC,eAAoE;AACpE,IAAAA,eAAmC;AAE5B,IAAM,6BAAyB,8BAAgB;AAAA,EACpD,MAAM;AAAA,EACN,YAAY,EAAE,gDAAiB;AAAA,EAC/B,WAAO,4BAAsB;AAAA,EAC7B,MAAM,OAAO;AACX,UAAM,EAAE,OAAO,QAAI;AAAA,MACjB;AAAA,IACF;AAEA,WAAO,MAAM;AACX,UAAI,CAAC,OAAO,MAAM,QAAS,QAAO;AAElC,YAAM,WAAW,OAAO,MAAM,SAAS,YAAY,CAAC;AAEpD,iBAAO,gBAAE,OAAO,EAAE,OAAO,sBAAsB,GAAG;AAAA,QAChD,OAAO,MAAM,YACT,gBAAE,OAAO,EAAE,OAAO,wBAAwB,GAAG,OAAO,MAAM,KAAK,IAC/D;AAAA,YACJ;AAAA,UACE;AAAA,UACA,EAAE,OAAO,sBAAsB;AAAA,UAC/B,SAAS;AAAA,YAAI,CAAC,SAAS,cACrB;AAAA,cACE;AAAA,cACA,EAAE,KAAK,GAAG,OAAO,MAAM,IAAI,IAAI,KAAK,GAAG;AAAA,kBACvC,gBAAE,+BAAyB;AAAA,gBACzB,QAAQ,OAAO,MAAM;AAAA,gBACrB,UAAU;AAAA,gBACV,MAAM,OAAO,MAAM;AAAA,gBACnB,SAAS,OAAO,MAAM;AAAA,gBACtB,WAAW,OAAO,MAAM;AAAA,gBACxB,OAAO,OAAO,MAAM;AAAA,cACtB,CAAC;AAAA,YACH;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF,CAAC;;;AC1CD,IAAAC,eAAoE;AACpE,IAAAA,eAAmC;AAE5B,IAAM,0BAAsB,8BAAgB;AAAA,EACjD,MAAM;AAAA,EACN,YAAY,EAAE,gDAAiB;AAAA,EAC/B,WAAO,4BAAsB;AAAA,EAC7B,MAAM,OAAO;AACX,UAAM,EAAE,OAAO,QAAI;AAAA,MACjB;AAAA,IACF;AAEA,WAAO,MAAM;AACX,UAAI,CAAC,OAAO,MAAM,QAAS,QAAO;AAElC,YAAM,WAAW,OAAO,MAAM,SAAS,YAAY,CAAC;AAEpD,iBAAO,gBAAE,OAAO,EAAE,OAAO,qBAAqB,GAAG;AAAA,QAC/C,OAAO,MAAM,YACT,gBAAE,OAAO,EAAE,OAAO,6BAA6B,GAAG,OAAO,MAAM,KAAK,IACpE;AAAA,YACJ;AAAA,UACE;AAAA,UACA,EAAE,OAAO,sBAAsB;AAAA,UAC/B,SAAS;AAAA,YAAI,CAAC,SAAS,cACrB;AAAA,cACE;AAAA,cACA,EAAE,KAAK,GAAG,OAAO,MAAM,IAAI,IAAI,KAAK,GAAG;AAAA,kBACvC,gBAAE,+BAAyB;AAAA,gBACzB,QAAQ,OAAO,MAAM;AAAA,gBACrB,UAAU;AAAA,gBACV,MAAM,OAAO,MAAM;AAAA,gBACnB,SAAS,OAAO,MAAM;AAAA,gBACtB,WAAW,OAAO,MAAM;AAAA,gBACxB,OAAO,OAAO,MAAM;AAAA,cACtB,CAAC;AAAA,YACH;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF,CAAC;;;AC1CD,IAAAC,eAAoE;AACpE,IAAAA,eAAmC;AAE5B,IAAM,qCAAiC,8BAAgB;AAAA,EAC5D,MAAM;AAAA,EACN,YAAY,EAAE,gDAAiB;AAAA,EAC/B,WAAO,4BAAsB;AAAA,EAC7B,MAAM,OAAO;AACX,UAAM,EAAE,OAAO,QAAI;AAAA,MACjB;AAAA,IACF;AAEA,WAAO,MAAM;AACX,UAAI,CAAC,OAAO,MAAM,QAAS,QAAO;AAElC,YAAM,WAAW,OAAO,MAAM,SAAS,YAAY,CAAC;AAEpD,iBAAO;AAAA,QACL;AAAA,QACA,EAAE,OAAO,+CAA+C;AAAA,QACxD,SAAS;AAAA,UAAI,CAAC,SAAS,cACrB;AAAA,YACE;AAAA,YACA,EAAE,KAAK,GAAG,OAAO,MAAM,IAAI,IAAI,KAAK,IAAI,OAAO,iBAAiB;AAAA,gBAChE,gBAAE,+BAAyB;AAAA,cACzB,QAAQ,OAAO,MAAM;AAAA,cACrB,UAAU;AAAA,cACV,MAAM,OAAO,MAAM;AAAA,cACnB,SAAS,OAAO,MAAM;AAAA,cACtB,WAAW,OAAO,MAAM;AAAA,cACxB,OAAO,OAAO,MAAM;AAAA,YACtB,CAAC;AAAA,UACH;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;ACrCD,IAAAC,eAAiD;AACjD,IAAAA,eAAmC;AAE5B,IAAM,0BAAsB,8BAAgB;AAAA,EACjD,MAAM;AAAA,EACN,WAAO,4BAA4B;AAAA,EACnC,MAAM,OAAO;AACX,UAAM,EAAE,MAAM,QAAI;AAAA,MAChB;AAAA,IACF;AAEA,WAAO,MAAM;AACX,UAAI,CAAC,MAAM,MAAM,QAAS,QAAO;AACjC,iBAAO;AAAA,QACL;AAAA,QACA,EAAE,OAAO,2CAA2C;AAAA,QACpD,MAAM,MAAM;AAAA,MACd;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;ACpBD,IAAAC,eAAoE;AACpE,IAAAA,eAAmC;AAE5B,IAAM,mCAA+B,8BAAgB;AAAA,EAC1D,MAAM;AAAA,EACN,YAAY,EAAE,gDAAiB;AAAA,EAC/B,WAAO,4BAAsB;AAAA,EAC7B,MAAM,OAAO;AACX,UAAM,EAAE,OAAO,QAAI;AAAA,MACjB;AAAA,IACF;AAEA,WAAO,MAAM;AACX,UAAI,CAAC,OAAO,MAAM,QAAS,QAAO;AAElC,YAAM,WAAW,OAAO,MAAM,SAAS,YAAY,CAAC;AAEpD,iBAAO;AAAA,QACL;AAAA,QACA,EAAE,OAAO,sBAAsB;AAAA,QAC/B,SAAS;AAAA,UAAI,CAAC,SAAS,cACrB;AAAA,YACE;AAAA,YACA,EAAE,KAAK,GAAG,OAAO,MAAM,IAAI,IAAI,KAAK,GAAG;AAAA,gBACvC,gBAAE,+BAAyB;AAAA,cACzB,QAAQ,OAAO,MAAM;AAAA,cACrB,UAAU;AAAA,cACV,MAAM,OAAO,MAAM;AAAA,cACnB,SAAS,OAAO,MAAM;AAAA,cACtB,WAAW,OAAO,MAAM;AAAA,cACxB,OAAO,OAAO,MAAM;AAAA,YACtB,CAAC;AAAA,UACH;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAC;;;AjBDD,IAAM,OAAO;AACb,IAAM,YAAY,OAAO;AACzB,IAAM,gBAAgB,YAAY;AAElC,IAAM,qBAAqB,CACzB,UACA,QACA,YACY;AACZ,MAAI,KAAC,uBAAS,SAAS,EAAE,UAAiB,QAAe,OAAc,GAAG;AACxE,WAAO;AAAA,EACT;AAEA,QAAM,QAAS,UAAkB;AACjC,MAAI,OAAO,UAAU,SAAU,QAAO;AAItC,QAAM,aAAc,SAAiB,cAAe;AACpD,MAAI;AACJ,MAAI;AACF,eAAW,qBAAQ,OAAO,QAAe,OAAO,UAAU;AAAA,EAC5D,QAAQ;AACN,WAAO;AAAA,EACT;AAEA,MAAI,UAAU,SAAS,QAAS,QAAO;AAEvC,QAAM,QAAQ,UAAU;AACxB,MAAI,CAAC,MAAO,QAAO;AAGnB,MAAI,MAAM,QAAQ,KAAK,EAAG,QAAO;AACjC,MAAI,OAAO,UAAU,YAAY,UAAU,KAAM,QAAO;AAExD,QAAM,gBACJ,UAAU,SAAS,OAAQ,MAAc,SAAS,WAC9C,qBAAQ,OAAO,YAAa,MAAc,MAAM,UAAU,IAC1D;AAEN,aAAO,2BAAa,aAAoB;AAC1C;AAGA,IAAM,qBAAqB,CACzB,UACA,QACA,YACY;AACZ,MAAI,KAAC,uBAAS,SAAS,EAAE,UAAiB,QAAe,OAAc,GAAG;AACxE,WAAO;AAAA,EACT;AAEA,QAAM,QAAS,UAAkB;AACjC,MAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,QAAM,aAAc,SAAiB,cAAe;AACpD,MAAI;AACJ,MAAI;AACF,eAAW,qBAAQ,OAAO,QAAe,OAAO,UAAU;AAAA,EAC5D,QAAQ;AACN,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ,UAAU;AACxB,MAAI,CAAC,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,EAAG,QAAO;AAExD,aAAW,SAAS,OAAO;AACzB,QAAI,OAAO,UAAU,YAAY,UAAU,KAAM;AACjD,QAAI,EAAE,WAAY,OAAoC,QAAO;AAAA,EAC/D;AACA,SAAO;AACT;AAEO,IAAM,kBAAoD;AAAA;AAAA,EAE/D;AAAA,IACE,YAAQ,uBAAS,UAAM,uBAAS,gBAAgB,CAAC;AAAA,IACjD,cAAU,sBAAQ,4BAA4B;AAAA,EAChD;AAAA,EACA;AAAA,IACE,YAAQ,uBAAS,UAAM,uBAAS,kBAAkB,CAAC;AAAA,IACnD,cAAU,sBAAQ,8BAA8B;AAAA,EAClD;AAAA,EACA;AAAA,IACE,YAAQ,uBAAS,UAAM,uBAAS,OAAO,CAAC;AAAA,IACxC,cAAU,sBAAQ,mBAAmB;AAAA,EACvC;AAAA,EACA;AAAA,IACE,YAAQ,uBAAS,UAAM,uBAAS,gBAAgB,CAAC;AAAA,IACjD,cAAU,sBAAQ,4BAA4B;AAAA,EAChD;AAAA,EACA;AAAA,IACE,YAAQ,uBAAS,UAAM,uBAAS,UAAU,CAAC;AAAA,IAC3C,cAAU,sBAAQ,sBAAsB;AAAA,EAC1C;AAAA,EACA;AAAA,IACE,YAAQ,uBAAS,UAAM,uBAAS,OAAO,CAAC;AAAA,IACxC,cAAU,sBAAQ,mBAAmB;AAAA,EACvC;AAAA;AAAA,EAGA;AAAA,IACE,YAAQ,uBAAS,UAAM,2BAAa,OAAO,CAAC;AAAA,IAC5C,cAAU,sBAAQ,uBAAuB;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,YAAQ,uBAAS,MAAM,4BAAe;AAAA,IACtC,cAAU,sBAAQ,oBAAoB;AAAA,EACxC;AAAA;AAAA,EAGA;AAAA,IACE,YAAQ,uBAAS,MAAM,+BAAkB;AAAA,IACzC,cAAU,sBAAQ,qBAAqB;AAAA,EACzC;AAAA,EACA;AAAA,IACE,YAAQ,uBAAS,MAAM,4BAAe;AAAA,IACtC,cAAU,sBAAQ,mBAAmB;AAAA,EACvC;AAAA,EACA;AAAA,IACE,YAAQ,uBAAS,MAAM,6BAAgB;AAAA,IACvC,cAAU,sBAAQ,oBAAoB;AAAA,EACxC;AAAA,EACA;AAAA,IACE,YAAQ,uBAAS,MAAM,6BAAgB;AAAA,IACvC,cAAU,sBAAQ,oBAAoB;AAAA,EACxC;AAAA,EACA;AAAA;AAAA,IAEE,YAAQ,uBAAS,WAAW,kBAAkB;AAAA,IAC9C,cAAU,sBAAQ,sBAAsB;AAAA,EAC1C;AAAA,EACA;AAAA;AAAA,IAEE,YAAQ,uBAAS,WAAW,kBAAkB;AAAA,IAC9C,cAAU,sBAAQ,iBAAiB;AAAA,EACrC;AAAA,EACA;AAAA;AAAA;AAAA,IAGE,YAAQ,uBAAS,WAAW,0BAAa;AAAA,IACzC,cAAU,sBAAQ,iBAAiB;AAAA,EACrC;AAAA,EACA;AAAA,IACE,YAAQ,uBAAS,mBAAe,kBAAI,kCAAiB,uBAAS,UAAU,CAAC,CAAC;AAAA,IAC1E,cAAU,sBAAQ,qBAAqB;AAAA,EACzC;AAAA,EACA;AAAA,IACE,YAAQ,uBAAS,MAAM,4BAAe;AAAA,IACtC,cAAU,sBAAQ,mBAAmB;AAAA,EACvC;AACF;","names":["import_core","import_vue","import_vue","import_core","import_vue","import_vue","import_vue","import_vue","import_vue","schemaEnumOptions","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue","import_vue"]}
|
package/dist/index.js
CHANGED
|
@@ -1000,6 +1000,27 @@ var isMultiEnumControl = (uischema, schema, context) => {
|
|
|
1000
1000
|
const resolvedItems = "$ref" in items && typeof items.$ref === "string" ? Resolve2.schema(rootSchema, items.$ref, rootSchema) : items;
|
|
1001
1001
|
return isEnumSchema(resolvedItems);
|
|
1002
1002
|
};
|
|
1003
|
+
var isOneOfEnumControl = (uischema, schema, context) => {
|
|
1004
|
+
if (!uiTypeIs("Control")(uischema, schema, context)) {
|
|
1005
|
+
return false;
|
|
1006
|
+
}
|
|
1007
|
+
const scope = uischema?.scope;
|
|
1008
|
+
if (typeof scope !== "string") return false;
|
|
1009
|
+
const rootSchema = context?.rootSchema ?? schema;
|
|
1010
|
+
let resolved;
|
|
1011
|
+
try {
|
|
1012
|
+
resolved = Resolve2.schema(schema, scope, rootSchema);
|
|
1013
|
+
} catch {
|
|
1014
|
+
return false;
|
|
1015
|
+
}
|
|
1016
|
+
const oneOf = resolved?.oneOf;
|
|
1017
|
+
if (!Array.isArray(oneOf) || oneOf.length === 0) return false;
|
|
1018
|
+
for (const entry of oneOf) {
|
|
1019
|
+
if (typeof entry !== "object" || entry === null) continue;
|
|
1020
|
+
if (!("const" in entry)) return false;
|
|
1021
|
+
}
|
|
1022
|
+
return true;
|
|
1023
|
+
};
|
|
1003
1024
|
var nuxtUiRenderers = [
|
|
1004
1025
|
// Layouts
|
|
1005
1026
|
{
|
|
@@ -1057,6 +1078,11 @@ var nuxtUiRenderers = [
|
|
|
1057
1078
|
tester: rankWith(ENUM_RANK, isMultiEnumControl),
|
|
1058
1079
|
renderer: markRaw(NuxtUiMultiEnumControl)
|
|
1059
1080
|
},
|
|
1081
|
+
{
|
|
1082
|
+
// oneOf with const+title (display labels) - same as enum for rendering.
|
|
1083
|
+
tester: rankWith(ENUM_RANK, isOneOfEnumControl),
|
|
1084
|
+
renderer: markRaw(NuxtUiEnumControl)
|
|
1085
|
+
},
|
|
1060
1086
|
{
|
|
1061
1087
|
// Enum must outrank the generic string control, otherwise enums can render
|
|
1062
1088
|
// as freeform text inputs.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/nuxtUiRenderers.ts","../src/renderers/complex/NuxtUiArrayListRenderer.ts","../src/renderers/util.ts","../src/renderers/complex/NuxtUiObjectRenderer.ts","../src/renderers/controls/NuxtUiBooleanControl.ts","../src/renderers/controls/NuxtUiEnumControl.ts","../src/renderers/controls/NuxtUiIntegerControl.ts","../src/renderers/controls/NuxtUiMultiEnumControl.ts","../src/renderers/controls/NuxtUiNumberControl.ts","../src/renderers/controls/NuxtUiPasswordControl.ts","../src/renderers/controls/NuxtUiStringControl.ts","../src/renderers/controls/NuxtUiTextareaControl.ts","../src/renderers/layouts/NuxtUiCategorizationRenderer.ts","../src/renderers/layouts/NuxtUiCategoryRenderer.ts","../src/renderers/layouts/NuxtUiGroupRenderer.ts","../src/renderers/layouts/NuxtUiHorizontalLayoutRenderer.ts","../src/renderers/layouts/NuxtUiLabelRenderer.ts","../src/renderers/layouts/NuxtUiVerticalLayoutRenderer.ts"],"sourcesContent":["import type { JsonFormsRendererRegistryEntry } from '@jsonforms/core'\nimport {\n and,\n formatIs,\n isBooleanControl,\n isEnumControl,\n isEnumSchema,\n isIntegerControl,\n isMultiLineControl,\n isNumberControl,\n isObjectControl,\n isStringControl,\n rankWith,\n Resolve,\n schemaTypeIs,\n uiTypeIs,\n} from '@jsonforms/core'\nimport { markRaw } from 'vue'\n\nimport { NuxtUiArrayListRenderer } from './renderers/complex/NuxtUiArrayListRenderer'\nimport { NuxtUiObjectRenderer } from './renderers/complex/NuxtUiObjectRenderer'\nimport { NuxtUiBooleanControl } from './renderers/controls/NuxtUiBooleanControl'\nimport { NuxtUiEnumControl } from './renderers/controls/NuxtUiEnumControl'\nimport { NuxtUiIntegerControl } from './renderers/controls/NuxtUiIntegerControl'\nimport { NuxtUiMultiEnumControl } from './renderers/controls/NuxtUiMultiEnumControl'\nimport { NuxtUiNumberControl } from './renderers/controls/NuxtUiNumberControl'\nimport { NuxtUiPasswordControl } from './renderers/controls/NuxtUiPasswordControl'\nimport { NuxtUiStringControl } from './renderers/controls/NuxtUiStringControl'\nimport { NuxtUiTextareaControl } from './renderers/controls/NuxtUiTextareaControl'\nimport { NuxtUiCategorizationRenderer } from './renderers/layouts/NuxtUiCategorizationRenderer'\nimport { NuxtUiCategoryRenderer } from './renderers/layouts/NuxtUiCategoryRenderer'\nimport { NuxtUiGroupRenderer } from './renderers/layouts/NuxtUiGroupRenderer'\nimport { NuxtUiHorizontalLayoutRenderer } from './renderers/layouts/NuxtUiHorizontalLayoutRenderer'\nimport { NuxtUiLabelRenderer } from './renderers/layouts/NuxtUiLabelRenderer'\nimport { NuxtUiVerticalLayoutRenderer } from './renderers/layouts/NuxtUiVerticalLayoutRenderer'\n\n// Intentionally rank higher than typical defaults.\nconst RANK = 10\nconst ENUM_RANK = RANK + 1\nconst PASSWORD_RANK = ENUM_RANK + 1\n\nconst isMultiEnumControl = (\n uischema: unknown,\n schema: unknown,\n context: unknown,\n): boolean => {\n if (!uiTypeIs('Control')(uischema as any, schema as any, context as any)) {\n return false\n }\n\n const scope = (uischema as any)?.scope\n if (typeof scope !== 'string') return false\n\n // JSONForms passes the root schema into testers, but different call sites can\n // vary. Resolve against whatever we have, preferring the provided rootSchema.\n const rootSchema = (context as any)?.rootSchema ?? (schema as any)\n let resolved: any\n try {\n resolved = Resolve.schema(schema as any, scope, rootSchema)\n } catch {\n return false\n }\n\n if (resolved?.type !== 'array') return false\n\n const items = resolved?.items\n if (!items) return false\n\n // JSON Schema `items` can be a schema or an array of schemas.\n if (Array.isArray(items)) return false\n if (typeof items !== 'object' || items === null) return false\n\n const resolvedItems =\n '$ref' in items && typeof (items as any).$ref === 'string'\n ? Resolve.schema(rootSchema, (items as any).$ref, rootSchema)\n : items\n\n return isEnumSchema(resolvedItems as any)\n}\n\nexport const nuxtUiRenderers: JsonFormsRendererRegistryEntry[] = [\n // Layouts\n {\n tester: rankWith(RANK, uiTypeIs('VerticalLayout')),\n renderer: markRaw(NuxtUiVerticalLayoutRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('HorizontalLayout')),\n renderer: markRaw(NuxtUiHorizontalLayoutRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Group')),\n renderer: markRaw(NuxtUiGroupRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Categorization')),\n renderer: markRaw(NuxtUiCategorizationRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Category')),\n renderer: markRaw(NuxtUiCategoryRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Label')),\n renderer: markRaw(NuxtUiLabelRenderer),\n },\n\n // Complex schemas\n {\n tester: rankWith(RANK, schemaTypeIs('array')),\n renderer: markRaw(NuxtUiArrayListRenderer),\n },\n {\n tester: rankWith(RANK, isObjectControl),\n renderer: markRaw(NuxtUiObjectRenderer),\n },\n\n // Primitive controls\n {\n tester: rankWith(RANK, isMultiLineControl),\n renderer: markRaw(NuxtUiTextareaControl),\n },\n {\n tester: rankWith(RANK, isNumberControl),\n renderer: markRaw(NuxtUiNumberControl),\n },\n {\n tester: rankWith(RANK, isIntegerControl),\n renderer: markRaw(NuxtUiIntegerControl),\n },\n {\n tester: rankWith(RANK, isBooleanControl),\n renderer: markRaw(NuxtUiBooleanControl),\n },\n {\n // Multi-enum must outrank generic array renderer and string renderer.\n tester: rankWith(ENUM_RANK, isMultiEnumControl),\n renderer: markRaw(NuxtUiMultiEnumControl),\n },\n {\n // Enum must outrank the generic string control, otherwise enums can render\n // as freeform text inputs.\n tester: rankWith(ENUM_RANK, isEnumControl),\n renderer: markRaw(NuxtUiEnumControl),\n },\n {\n tester: rankWith(PASSWORD_RANK, and(isStringControl, formatIs('password'))),\n renderer: markRaw(NuxtUiPasswordControl),\n },\n {\n tester: rankWith(RANK, isStringControl),\n renderer: markRaw(NuxtUiStringControl),\n },\n]\n\n","import type { ControlElement, JsonSchema, UISchemaElement } from '@jsonforms/core'\nimport {\n Resolve,\n composePaths,\n createDefaultValue,\n findUISchema,\n getFirstPrimitiveProp,\n} from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsArrayControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiArrayListRenderer = defineComponent({\n name: 'NuxtUiArrayListRenderer',\n components: { DispatchRenderer },\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, addItem, removeItems, moveUp, moveDown } =\n useJsonFormsArrayControl(\n props as unknown as Parameters<typeof useJsonFormsArrayControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const items = computed<unknown[]>(() =>\n Array.isArray(control.value.data) ? control.value.data : [],\n )\n\n const arraySchema = computed<JsonSchema | undefined>(() => {\n try {\n return Resolve.schema(\n props.schema,\n control.value.uischema.scope,\n control.value.rootSchema,\n )\n } catch {\n return undefined\n }\n })\n\n const maxItemsReached = computed(() => {\n const max = arraySchema.value?.maxItems\n return typeof max === 'number' ? items.value.length >= max : false\n })\n\n const minItemsReached = computed(() => {\n const min = arraySchema.value?.minItems\n return typeof min === 'number' ? items.value.length <= min : false\n })\n\n const childUiSchema = computed<UISchemaElement>(() =>\n findUISchema(\n control.value.uischemas,\n control.value.schema,\n control.value.uischema.scope,\n control.value.path,\n undefined,\n control.value.uischema,\n control.value.rootSchema,\n ),\n )\n\n function childLabelForIndex(index: number): string {\n const childLabelProp =\n getChildLabelPropFromUiSchemaOptions(control.value.uischema.options) ??\n getFirstPrimitiveProp(control.value.schema)\n\n if (!childLabelProp) return `${index}`\n\n const labelValue = Resolve.data(\n control.value.data,\n composePaths(`${index}`, childLabelProp),\n )\n if (\n labelValue === undefined ||\n labelValue === null ||\n Number.isNaN(labelValue as any)\n ) {\n return ''\n }\n return String(labelValue)\n }\n\n function getChildLabelPropFromUiSchemaOptions(options: unknown): string | undefined {\n if (!options || typeof options !== 'object') return undefined\n const value = (options as Record<string, unknown>).childLabelProp\n return typeof value === 'string' ? value : undefined\n }\n\n function addButtonClick() {\n addItem(\n control.value.path,\n createDefaultValue(control.value.schema, control.value.rootSchema),\n )()\n }\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UButton = resolveComponent('UButton')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h('div', { class: 'flex flex-col gap-3' }, [\n h('div', { class: 'flex items-center justify-between gap-3' }, [\n h(\n 'div',\n { class: 'text-xs text-gray-500' },\n `${items.value.length} items`,\n ),\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'soft',\n color: 'neutral',\n disabled: !control.value.enabled || maxItemsReached.value,\n onClick: addButtonClick,\n },\n { default: () => 'Add' },\n ),\n ]),\n\n items.value.length === 0\n ? h(\n 'div',\n { class: 'text-sm text-gray-500' },\n 'No items.',\n )\n : null,\n\n ...items.value.map((_item, index) =>\n h(\n 'div',\n { key: `${control.value.path}-${index}`, class: 'rounded border p-3' },\n [\n h(\n 'div',\n { class: 'mb-3 flex items-start justify-between gap-3' },\n [\n h('div', { class: 'min-w-0' }, [\n h(\n 'div',\n {\n class:\n 'text-xs font-semibold text-gray-700 dark:text-gray-200',\n },\n [\n `Item ${index + 1}`,\n childLabelForIndex(index)\n ? h(\n 'span',\n {\n class:\n 'font-normal text-gray-500',\n },\n ` — ${childLabelForIndex(index)}`,\n )\n : null,\n ],\n ),\n ]),\n h('div', { class: 'flex flex-none items-center gap-1' }, [\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'ghost',\n color: 'neutral',\n disabled: !control.value.enabled || index === 0,\n onClick: () => moveUp?.(control.value.path, index)(),\n },\n { default: () => 'Up' },\n ),\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'ghost',\n color: 'neutral',\n disabled:\n !control.value.enabled ||\n index >= items.value.length - 1,\n onClick: () => moveDown?.(control.value.path, index)(),\n },\n { default: () => 'Down' },\n ),\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'ghost',\n color: 'error',\n disabled: !control.value.enabled || minItemsReached.value,\n onClick: () =>\n removeItems?.(control.value.path, [index])(),\n },\n { default: () => 'Remove' },\n ),\n ]),\n ],\n ),\n\n h(DispatchRenderer as any, {\n schema: control.value.schema,\n uischema: childUiSchema.value,\n path: composePaths(control.value.path, `${index}`),\n enabled: control.value.enabled,\n renderers: control.value.renderers,\n cells: control.value.cells,\n }),\n ],\n ),\n ),\n ]),\n },\n ),\n )\n }\n },\n})\n\n","import { computed, type ComputedRef } from 'vue'\n\nexport function trimmedOrUndefined(input: string | undefined): string | undefined {\n const v = input?.trim()\n return v ? v : undefined\n}\n\nexport function errorFromControl(\n control: ComputedRef<{ errors: string }>,\n): ComputedRef<string | undefined> {\n return computed(() => trimmedOrUndefined(control.value.errors))\n}\n\n","import type { ControlElement, GroupLayout, UISchemaElement } from '@jsonforms/core'\nimport { Generate, findUISchema } from '@jsonforms/core'\nimport {\n DispatchRenderer,\n rendererProps,\n useJsonFormsControlWithDetail,\n} from '@jsonforms/vue'\nimport { computed, defineComponent, h } from 'vue'\n\nexport const NuxtUiObjectRenderer = defineComponent({\n name: 'NuxtUiObjectRenderer',\n components: { DispatchRenderer },\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control } = useJsonFormsControlWithDetail(\n props as unknown as Parameters<typeof useJsonFormsControlWithDetail>[0],\n )\n\n const detailUiSchema = computed<UISchemaElement>(() => {\n const uiSchemaGenerator = () => {\n const uiSchema = Generate.uiSchema(\n control.value.schema,\n 'Group',\n undefined,\n control.value.rootSchema,\n )\n\n if (!control.value.path) {\n uiSchema.type = 'VerticalLayout'\n } else {\n ;(uiSchema as GroupLayout).label = control.value.label\n }\n return uiSchema\n }\n\n return findUISchema(\n control.value.uischemas,\n control.value.schema,\n control.value.uischema.scope,\n control.value.path,\n uiSchemaGenerator,\n control.value.uischema,\n control.value.rootSchema,\n )\n })\n\n return () => {\n if (!control.value.visible) return null\n\n return h(DispatchRenderer as any, {\n visible: control.value.visible,\n enabled: control.value.enabled,\n schema: control.value.schema,\n uischema: detailUiSchema.value,\n path: control.value.path,\n renderers: control.value.renderers,\n cells: control.value.cells,\n })\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiBooleanControl = defineComponent({\n name: 'NuxtUiBooleanControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const modelValue = computed<boolean>({\n get: () => Boolean(control.value.data),\n set: (v: boolean) => handleChange(control.value.path, v),\n })\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const USwitch = resolveComponent('USwitch')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(\n 'div',\n { class: 'flex items-center justify-between gap-3' },\n h(USwitch as any, {\n modelValue: modelValue.value,\n disabled: !control.value.enabled,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': (v: boolean) => {\n modelValue.value = v\n },\n }),\n ),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement, JsonSchema } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\ntype EnumOption = { label: string; value: unknown }\n\nfunction schemaEnumOptions(schema: JsonSchema | undefined): EnumOption[] {\n if (!schema) return []\n\n if (Array.isArray(schema.enum)) {\n return schema.enum.map((v) => ({ label: String(v), value: v }))\n }\n\n const oneOf = (schema as unknown as { oneOf?: unknown }).oneOf\n if (!Array.isArray(oneOf)) return []\n\n const out: EnumOption[] = []\n for (const entry of oneOf) {\n if (typeof entry !== 'object' || entry === null) continue\n const maybe = entry as Record<string, unknown>\n if (!('const' in maybe)) continue\n out.push({\n value: maybe.const,\n label:\n typeof maybe.title === 'string' && maybe.title.trim()\n ? maybe.title\n : String(maybe.const),\n })\n }\n return out\n}\n\nexport const NuxtUiEnumControl = defineComponent({\n name: 'NuxtUiEnumControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n const options = computed<EnumOption[]>(() => schemaEnumOptions(control.value.schema))\n\n const selectedValue = computed<unknown>({\n get: () => control.value.data,\n set: (v: unknown) => handleChange(control.value.path, v),\n })\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const USelectMenu = resolveComponent('USelectMenu')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(USelectMenu as any, {\n modelValue: selectedValue.value,\n items: options.value,\n valueKey: 'value',\n labelKey: 'label',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n placeholder: 'Select...',\n 'onUpdate:modelValue': (v: unknown) => {\n selectedValue.value = v\n },\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiIntegerControl = defineComponent({\n name: 'NuxtUiIntegerControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const modelValue = computed(() => {\n const v = control.value.data\n return v === null || v === undefined ? '' : String(v)\n })\n\n function onUpdate(raw: unknown) {\n const trimmed = String(raw ?? '').trim()\n if (trimmed === '') {\n handleChange(control.value.path, undefined)\n return\n }\n\n const parsed = Number.parseInt(trimmed, 10)\n handleChange(control.value.path, Number.isFinite(parsed) ? parsed : undefined)\n }\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UInput as any, {\n type: 'number',\n inputmode: 'numeric',\n step: '1',\n modelValue: modelValue.value,\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': onUpdate,\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement, JsonSchema } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\ntype EnumOption = { label: string; value: unknown }\n\nfunction schemaEnumOptions(schema: JsonSchema | undefined): EnumOption[] {\n if (!schema) return []\n\n if (Array.isArray(schema.enum)) {\n return schema.enum.map((v) => ({ label: String(v), value: v }))\n }\n\n const oneOf = (schema as unknown as { oneOf?: unknown }).oneOf\n if (!Array.isArray(oneOf)) return []\n\n const out: EnumOption[] = []\n for (const entry of oneOf) {\n if (typeof entry !== 'object' || entry === null) continue\n const maybe = entry as Record<string, unknown>\n if (!('const' in maybe)) continue\n out.push({\n value: maybe.const,\n label:\n typeof maybe.title === 'string' && maybe.title.trim()\n ? maybe.title\n : String(maybe.const),\n })\n }\n return out\n}\n\nfunction arrayItemsSchema(schema: JsonSchema | undefined): JsonSchema | undefined {\n if (!schema) return undefined\n const items = (schema as unknown as { items?: unknown }).items\n if (typeof items !== 'object' || items === null) return undefined\n return items as JsonSchema\n}\n\nexport const NuxtUiMultiEnumControl = defineComponent({\n name: 'NuxtUiMultiEnumControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n const options = computed<EnumOption[]>(() =>\n schemaEnumOptions(arrayItemsSchema(control.value.schema)),\n )\n\n const selectedValues = computed<unknown[]>({\n get: () => (Array.isArray(control.value.data) ? control.value.data : []),\n set: (v: unknown[]) => handleChange(control.value.path, v),\n })\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const USelectMenu = resolveComponent('USelectMenu')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(USelectMenu as any, {\n multiple: true,\n modelValue: selectedValues.value,\n items: options.value,\n valueKey: 'value',\n labelKey: 'label',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n placeholder: 'Select...',\n 'onUpdate:modelValue': (v: unknown) => {\n selectedValues.value = Array.isArray(v) ? v : []\n },\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiNumberControl = defineComponent({\n name: 'NuxtUiNumberControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const modelValue = computed(() => {\n const v = control.value.data\n return v === null || v === undefined ? '' : String(v)\n })\n\n function onUpdate(raw: unknown) {\n const trimmed = String(raw ?? '').trim()\n if (trimmed === '') {\n handleChange(control.value.path, undefined)\n return\n }\n const parsed = Number(trimmed)\n handleChange(control.value.path, Number.isFinite(parsed) ? parsed : undefined)\n }\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UInput as any, {\n type: 'number',\n inputmode: 'decimal',\n modelValue: modelValue.value,\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': onUpdate,\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, ref, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiPasswordControl = defineComponent({\n name: 'NuxtUiPasswordControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n const showPassword = ref(false)\n\n const inputType = computed(() => (showPassword.value ? 'text' : 'password'))\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n const UButton = resolveComponent('UButton')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(\n UInput as any,\n {\n modelValue: control.value.data ?? '',\n class: 'w-full',\n type: inputType.value,\n autocomplete: 'current-password',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': (v: unknown) =>\n handleChange(control.value.path, v),\n },\n {\n trailing: () =>\n h(UButton as any, {\n type: 'button',\n color: 'neutral',\n variant: 'ghost',\n square: true,\n icon: showPassword.value\n ? 'i-heroicons-eye-slash'\n : 'i-heroicons-eye',\n 'aria-pressed': showPassword.value,\n 'aria-label': showPassword.value\n ? 'Hide password'\n : 'Show password',\n disabled: !control.value.enabled,\n onClick: () => {\n showPassword.value = !showPassword.value\n },\n }),\n },\n ),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport {\n computed,\n defineComponent,\n h,\n resolveComponent,\n} from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiStringControl = defineComponent({\n name: 'NuxtUiStringControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UInput as any, {\n modelValue: control.value.data ?? '',\n class: 'w-full',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': (v: unknown) =>\n handleChange(control.value.path, v),\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiTextareaControl = defineComponent({\n name: 'NuxtUiTextareaControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UTextarea = resolveComponent('UTextarea')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UTextarea as any, {\n modelValue: control.value.data ?? '',\n class: 'w-full',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n rows: 5,\n 'onUpdate:modelValue': (v: unknown) =>\n handleChange(control.value.path, v),\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsCategorization } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiCategorizationRenderer = defineComponent({\n name: 'NuxtUiCategorizationRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout, categories } = useJsonFormsCategorization(\n props as unknown as Parameters<typeof useJsonFormsCategorization>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n return h(\n 'div',\n { class: 'flex flex-col gap-6' },\n categories.map((categoryRef, catIndex) => {\n const category = categoryRef.value\n const elements = category.uischema.elements ?? []\n\n return h(\n 'div',\n { key: `${layout.value.path}-cat-${catIndex}`, class: 'flex flex-col gap-3' },\n [\n category.label\n ? h('div', { class: 'text-sm font-semibold' }, category.label)\n : null,\n h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${category.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: category.schema,\n uischema: element,\n path: category.path,\n enabled: category.enabled,\n renderers: category.renderers,\n cells: category.cells,\n }),\n ),\n ),\n ),\n ],\n )\n }),\n )\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiCategoryRenderer = defineComponent({\n name: 'NuxtUiCategoryRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h('div', { class: 'flex flex-col gap-3' }, [\n layout.value.label\n ? h('div', { class: 'text-sm font-semibold' }, layout.value.label)\n : null,\n h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n ),\n ])\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiGroupRenderer = defineComponent({\n name: 'NuxtUiGroupRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h('div', { class: 'rounded border p-3' }, [\n layout.value.label\n ? h('div', { class: 'mb-3 text-sm font-semibold' }, layout.value.label)\n : null,\n h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n ),\n ])\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiHorizontalLayoutRenderer = defineComponent({\n name: 'NuxtUiHorizontalLayoutRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h(\n 'div',\n { class: 'flex flex-col gap-3 md:flex-row md:flex-wrap' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}`, class: 'min-w-0 flex-1' },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n )\n }\n },\n})\n\n","import type { LabelElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsLabel } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiLabelRenderer = defineComponent({\n name: 'NuxtUiLabelRenderer',\n props: rendererProps<LabelElement>(),\n setup(props) {\n const { label } = useJsonFormsLabel(\n props as unknown as Parameters<typeof useJsonFormsLabel>[0],\n )\n\n return () => {\n if (!label.value.visible) return null\n return h(\n 'div',\n { class: 'text-sm text-gray-600 dark:text-gray-300' },\n label.value.text,\n )\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiVerticalLayoutRenderer = defineComponent({\n name: 'NuxtUiVerticalLayoutRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n )\n }\n },\n})\n\n"],"mappings":"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","names":["Resolve","computed","computed","findUISchema","DispatchRenderer","rendererProps","computed","defineComponent","h","rendererProps","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","schemaEnumOptions","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","DispatchRenderer","rendererProps","defineComponent","h","DispatchRenderer","rendererProps","defineComponent","h","DispatchRenderer","rendererProps","useJsonFormsLayout","defineComponent","h","DispatchRenderer","rendererProps","useJsonFormsLayout","defineComponent","h","rendererProps","defineComponent","h","DispatchRenderer","rendererProps","useJsonFormsLayout","defineComponent","h","Resolve"]}
|
|
1
|
+
{"version":3,"sources":["../src/nuxtUiRenderers.ts","../src/renderers/complex/NuxtUiArrayListRenderer.ts","../src/renderers/util.ts","../src/renderers/complex/NuxtUiObjectRenderer.ts","../src/renderers/controls/NuxtUiBooleanControl.ts","../src/renderers/controls/NuxtUiEnumControl.ts","../src/renderers/controls/NuxtUiIntegerControl.ts","../src/renderers/controls/NuxtUiMultiEnumControl.ts","../src/renderers/controls/NuxtUiNumberControl.ts","../src/renderers/controls/NuxtUiPasswordControl.ts","../src/renderers/controls/NuxtUiStringControl.ts","../src/renderers/controls/NuxtUiTextareaControl.ts","../src/renderers/layouts/NuxtUiCategorizationRenderer.ts","../src/renderers/layouts/NuxtUiCategoryRenderer.ts","../src/renderers/layouts/NuxtUiGroupRenderer.ts","../src/renderers/layouts/NuxtUiHorizontalLayoutRenderer.ts","../src/renderers/layouts/NuxtUiLabelRenderer.ts","../src/renderers/layouts/NuxtUiVerticalLayoutRenderer.ts"],"sourcesContent":["import type { JsonFormsRendererRegistryEntry } from '@jsonforms/core'\nimport {\n and,\n formatIs,\n isBooleanControl,\n isEnumControl,\n isEnumSchema,\n isIntegerControl,\n isMultiLineControl,\n isNumberControl,\n isObjectControl,\n isStringControl,\n rankWith,\n Resolve,\n schemaTypeIs,\n uiTypeIs,\n} from '@jsonforms/core'\nimport { markRaw } from 'vue'\n\nimport { NuxtUiArrayListRenderer } from './renderers/complex/NuxtUiArrayListRenderer'\nimport { NuxtUiObjectRenderer } from './renderers/complex/NuxtUiObjectRenderer'\nimport { NuxtUiBooleanControl } from './renderers/controls/NuxtUiBooleanControl'\nimport { NuxtUiEnumControl } from './renderers/controls/NuxtUiEnumControl'\nimport { NuxtUiIntegerControl } from './renderers/controls/NuxtUiIntegerControl'\nimport { NuxtUiMultiEnumControl } from './renderers/controls/NuxtUiMultiEnumControl'\nimport { NuxtUiNumberControl } from './renderers/controls/NuxtUiNumberControl'\nimport { NuxtUiPasswordControl } from './renderers/controls/NuxtUiPasswordControl'\nimport { NuxtUiStringControl } from './renderers/controls/NuxtUiStringControl'\nimport { NuxtUiTextareaControl } from './renderers/controls/NuxtUiTextareaControl'\nimport { NuxtUiCategorizationRenderer } from './renderers/layouts/NuxtUiCategorizationRenderer'\nimport { NuxtUiCategoryRenderer } from './renderers/layouts/NuxtUiCategoryRenderer'\nimport { NuxtUiGroupRenderer } from './renderers/layouts/NuxtUiGroupRenderer'\nimport { NuxtUiHorizontalLayoutRenderer } from './renderers/layouts/NuxtUiHorizontalLayoutRenderer'\nimport { NuxtUiLabelRenderer } from './renderers/layouts/NuxtUiLabelRenderer'\nimport { NuxtUiVerticalLayoutRenderer } from './renderers/layouts/NuxtUiVerticalLayoutRenderer'\n\n// Intentionally rank higher than typical defaults.\nconst RANK = 10\nconst ENUM_RANK = RANK + 1\nconst PASSWORD_RANK = ENUM_RANK + 1\n\nconst isMultiEnumControl = (\n uischema: unknown,\n schema: unknown,\n context: unknown,\n): boolean => {\n if (!uiTypeIs('Control')(uischema as any, schema as any, context as any)) {\n return false\n }\n\n const scope = (uischema as any)?.scope\n if (typeof scope !== 'string') return false\n\n // JSONForms passes the root schema into testers, but different call sites can\n // vary. Resolve against whatever we have, preferring the provided rootSchema.\n const rootSchema = (context as any)?.rootSchema ?? (schema as any)\n let resolved: any\n try {\n resolved = Resolve.schema(schema as any, scope, rootSchema)\n } catch {\n return false\n }\n\n if (resolved?.type !== 'array') return false\n\n const items = resolved?.items\n if (!items) return false\n\n // JSON Schema `items` can be a schema or an array of schemas.\n if (Array.isArray(items)) return false\n if (typeof items !== 'object' || items === null) return false\n\n const resolvedItems =\n '$ref' in items && typeof (items as any).$ref === 'string'\n ? Resolve.schema(rootSchema, (items as any).$ref, rootSchema)\n : items\n\n return isEnumSchema(resolvedItems as any)\n}\n\n/** Matches oneOf: [{ const, title? }, ...] - enum-like schema with display labels. */\nconst isOneOfEnumControl = (\n uischema: unknown,\n schema: unknown,\n context: unknown,\n): boolean => {\n if (!uiTypeIs('Control')(uischema as any, schema as any, context as any)) {\n return false\n }\n\n const scope = (uischema as any)?.scope\n if (typeof scope !== 'string') return false\n\n const rootSchema = (context as any)?.rootSchema ?? (schema as any)\n let resolved: any\n try {\n resolved = Resolve.schema(schema as any, scope, rootSchema)\n } catch {\n return false\n }\n\n const oneOf = resolved?.oneOf\n if (!Array.isArray(oneOf) || oneOf.length === 0) return false\n\n for (const entry of oneOf) {\n if (typeof entry !== 'object' || entry === null) continue\n if (!('const' in (entry as Record<string, unknown>))) return false\n }\n return true\n}\n\nexport const nuxtUiRenderers: JsonFormsRendererRegistryEntry[] = [\n // Layouts\n {\n tester: rankWith(RANK, uiTypeIs('VerticalLayout')),\n renderer: markRaw(NuxtUiVerticalLayoutRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('HorizontalLayout')),\n renderer: markRaw(NuxtUiHorizontalLayoutRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Group')),\n renderer: markRaw(NuxtUiGroupRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Categorization')),\n renderer: markRaw(NuxtUiCategorizationRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Category')),\n renderer: markRaw(NuxtUiCategoryRenderer),\n },\n {\n tester: rankWith(RANK, uiTypeIs('Label')),\n renderer: markRaw(NuxtUiLabelRenderer),\n },\n\n // Complex schemas\n {\n tester: rankWith(RANK, schemaTypeIs('array')),\n renderer: markRaw(NuxtUiArrayListRenderer),\n },\n {\n tester: rankWith(RANK, isObjectControl),\n renderer: markRaw(NuxtUiObjectRenderer),\n },\n\n // Primitive controls\n {\n tester: rankWith(RANK, isMultiLineControl),\n renderer: markRaw(NuxtUiTextareaControl),\n },\n {\n tester: rankWith(RANK, isNumberControl),\n renderer: markRaw(NuxtUiNumberControl),\n },\n {\n tester: rankWith(RANK, isIntegerControl),\n renderer: markRaw(NuxtUiIntegerControl),\n },\n {\n tester: rankWith(RANK, isBooleanControl),\n renderer: markRaw(NuxtUiBooleanControl),\n },\n {\n // Multi-enum must outrank generic array renderer and string renderer.\n tester: rankWith(ENUM_RANK, isMultiEnumControl),\n renderer: markRaw(NuxtUiMultiEnumControl),\n },\n {\n // oneOf with const+title (display labels) - same as enum for rendering.\n tester: rankWith(ENUM_RANK, isOneOfEnumControl),\n renderer: markRaw(NuxtUiEnumControl),\n },\n {\n // Enum must outrank the generic string control, otherwise enums can render\n // as freeform text inputs.\n tester: rankWith(ENUM_RANK, isEnumControl),\n renderer: markRaw(NuxtUiEnumControl),\n },\n {\n tester: rankWith(PASSWORD_RANK, and(isStringControl, formatIs('password'))),\n renderer: markRaw(NuxtUiPasswordControl),\n },\n {\n tester: rankWith(RANK, isStringControl),\n renderer: markRaw(NuxtUiStringControl),\n },\n]\n\n","import type { ControlElement, JsonSchema, UISchemaElement } from '@jsonforms/core'\nimport {\n Resolve,\n composePaths,\n createDefaultValue,\n findUISchema,\n getFirstPrimitiveProp,\n} from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsArrayControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiArrayListRenderer = defineComponent({\n name: 'NuxtUiArrayListRenderer',\n components: { DispatchRenderer },\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, addItem, removeItems, moveUp, moveDown } =\n useJsonFormsArrayControl(\n props as unknown as Parameters<typeof useJsonFormsArrayControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const items = computed<unknown[]>(() =>\n Array.isArray(control.value.data) ? control.value.data : [],\n )\n\n const arraySchema = computed<JsonSchema | undefined>(() => {\n try {\n return Resolve.schema(\n props.schema,\n control.value.uischema.scope,\n control.value.rootSchema,\n )\n } catch {\n return undefined\n }\n })\n\n const maxItemsReached = computed(() => {\n const max = arraySchema.value?.maxItems\n return typeof max === 'number' ? items.value.length >= max : false\n })\n\n const minItemsReached = computed(() => {\n const min = arraySchema.value?.minItems\n return typeof min === 'number' ? items.value.length <= min : false\n })\n\n const childUiSchema = computed<UISchemaElement>(() =>\n findUISchema(\n control.value.uischemas,\n control.value.schema,\n control.value.uischema.scope,\n control.value.path,\n undefined,\n control.value.uischema,\n control.value.rootSchema,\n ),\n )\n\n function childLabelForIndex(index: number): string {\n const childLabelProp =\n getChildLabelPropFromUiSchemaOptions(control.value.uischema.options) ??\n getFirstPrimitiveProp(control.value.schema)\n\n if (!childLabelProp) return `${index}`\n\n const labelValue = Resolve.data(\n control.value.data,\n composePaths(`${index}`, childLabelProp),\n )\n if (\n labelValue === undefined ||\n labelValue === null ||\n Number.isNaN(labelValue as any)\n ) {\n return ''\n }\n return String(labelValue)\n }\n\n function getChildLabelPropFromUiSchemaOptions(options: unknown): string | undefined {\n if (!options || typeof options !== 'object') return undefined\n const value = (options as Record<string, unknown>).childLabelProp\n return typeof value === 'string' ? value : undefined\n }\n\n function addButtonClick() {\n addItem(\n control.value.path,\n createDefaultValue(control.value.schema, control.value.rootSchema),\n )()\n }\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UButton = resolveComponent('UButton')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h('div', { class: 'flex flex-col gap-3' }, [\n h('div', { class: 'flex items-center justify-between gap-3' }, [\n h(\n 'div',\n { class: 'text-xs text-gray-500' },\n `${items.value.length} items`,\n ),\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'soft',\n color: 'neutral',\n disabled: !control.value.enabled || maxItemsReached.value,\n onClick: addButtonClick,\n },\n { default: () => 'Add' },\n ),\n ]),\n\n items.value.length === 0\n ? h(\n 'div',\n { class: 'text-sm text-gray-500' },\n 'No items.',\n )\n : null,\n\n ...items.value.map((_item, index) =>\n h(\n 'div',\n { key: `${control.value.path}-${index}`, class: 'rounded border p-3' },\n [\n h(\n 'div',\n { class: 'mb-3 flex items-start justify-between gap-3' },\n [\n h('div', { class: 'min-w-0' }, [\n h(\n 'div',\n {\n class:\n 'text-xs font-semibold text-gray-700 dark:text-gray-200',\n },\n [\n `Item ${index + 1}`,\n childLabelForIndex(index)\n ? h(\n 'span',\n {\n class:\n 'font-normal text-gray-500',\n },\n ` — ${childLabelForIndex(index)}`,\n )\n : null,\n ],\n ),\n ]),\n h('div', { class: 'flex flex-none items-center gap-1' }, [\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'ghost',\n color: 'neutral',\n disabled: !control.value.enabled || index === 0,\n onClick: () => moveUp?.(control.value.path, index)(),\n },\n { default: () => 'Up' },\n ),\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'ghost',\n color: 'neutral',\n disabled:\n !control.value.enabled ||\n index >= items.value.length - 1,\n onClick: () => moveDown?.(control.value.path, index)(),\n },\n { default: () => 'Down' },\n ),\n h(\n UButton as any,\n {\n type: 'button',\n size: 'xs',\n variant: 'ghost',\n color: 'error',\n disabled: !control.value.enabled || minItemsReached.value,\n onClick: () =>\n removeItems?.(control.value.path, [index])(),\n },\n { default: () => 'Remove' },\n ),\n ]),\n ],\n ),\n\n h(DispatchRenderer as any, {\n schema: control.value.schema,\n uischema: childUiSchema.value,\n path: composePaths(control.value.path, `${index}`),\n enabled: control.value.enabled,\n renderers: control.value.renderers,\n cells: control.value.cells,\n }),\n ],\n ),\n ),\n ]),\n },\n ),\n )\n }\n },\n})\n\n","import { computed, type ComputedRef } from 'vue'\n\nexport function trimmedOrUndefined(input: string | undefined): string | undefined {\n const v = input?.trim()\n return v ? v : undefined\n}\n\nexport function errorFromControl(\n control: ComputedRef<{ errors: string }>,\n): ComputedRef<string | undefined> {\n return computed(() => trimmedOrUndefined(control.value.errors))\n}\n\n","import type { ControlElement, GroupLayout, UISchemaElement } from '@jsonforms/core'\nimport { Generate, findUISchema } from '@jsonforms/core'\nimport {\n DispatchRenderer,\n rendererProps,\n useJsonFormsControlWithDetail,\n} from '@jsonforms/vue'\nimport { computed, defineComponent, h } from 'vue'\n\nexport const NuxtUiObjectRenderer = defineComponent({\n name: 'NuxtUiObjectRenderer',\n components: { DispatchRenderer },\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control } = useJsonFormsControlWithDetail(\n props as unknown as Parameters<typeof useJsonFormsControlWithDetail>[0],\n )\n\n const detailUiSchema = computed<UISchemaElement>(() => {\n const uiSchemaGenerator = () => {\n const uiSchema = Generate.uiSchema(\n control.value.schema,\n 'Group',\n undefined,\n control.value.rootSchema,\n )\n\n if (!control.value.path) {\n uiSchema.type = 'VerticalLayout'\n } else {\n ;(uiSchema as GroupLayout).label = control.value.label\n }\n return uiSchema\n }\n\n return findUISchema(\n control.value.uischemas,\n control.value.schema,\n control.value.uischema.scope,\n control.value.path,\n uiSchemaGenerator,\n control.value.uischema,\n control.value.rootSchema,\n )\n })\n\n return () => {\n if (!control.value.visible) return null\n\n return h(DispatchRenderer as any, {\n visible: control.value.visible,\n enabled: control.value.enabled,\n schema: control.value.schema,\n uischema: detailUiSchema.value,\n path: control.value.path,\n renderers: control.value.renderers,\n cells: control.value.cells,\n })\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiBooleanControl = defineComponent({\n name: 'NuxtUiBooleanControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const modelValue = computed<boolean>({\n get: () => Boolean(control.value.data),\n set: (v: boolean) => handleChange(control.value.path, v),\n })\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const USwitch = resolveComponent('USwitch')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(\n 'div',\n { class: 'flex items-center justify-between gap-3' },\n h(USwitch as any, {\n modelValue: modelValue.value,\n disabled: !control.value.enabled,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': (v: boolean) => {\n modelValue.value = v\n },\n }),\n ),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement, JsonSchema } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\ntype EnumOption = { label: string; value: unknown }\n\nfunction schemaEnumOptions(schema: JsonSchema | undefined): EnumOption[] {\n if (!schema) return []\n\n if (Array.isArray(schema.enum)) {\n return schema.enum.map((v) => ({ label: String(v), value: v }))\n }\n\n const oneOf = (schema as unknown as { oneOf?: unknown }).oneOf\n if (!Array.isArray(oneOf)) return []\n\n const out: EnumOption[] = []\n for (const entry of oneOf) {\n if (typeof entry !== 'object' || entry === null) continue\n const maybe = entry as Record<string, unknown>\n if (!('const' in maybe)) continue\n out.push({\n value: maybe.const,\n label:\n typeof maybe.title === 'string' && maybe.title.trim()\n ? maybe.title\n : String(maybe.const),\n })\n }\n return out\n}\n\nexport const NuxtUiEnumControl = defineComponent({\n name: 'NuxtUiEnumControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n const options = computed<EnumOption[]>(() => schemaEnumOptions(control.value.schema))\n\n const selectedValue = computed<unknown>({\n get: () => control.value.data,\n set: (v: unknown) => handleChange(control.value.path, v),\n })\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const USelectMenu = resolveComponent('USelectMenu')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(USelectMenu as any, {\n modelValue: selectedValue.value,\n items: options.value,\n valueKey: 'value',\n labelKey: 'label',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n placeholder: 'Select...',\n 'onUpdate:modelValue': (v: unknown) => {\n selectedValue.value = v\n },\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiIntegerControl = defineComponent({\n name: 'NuxtUiIntegerControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const modelValue = computed(() => {\n const v = control.value.data\n return v === null || v === undefined ? '' : String(v)\n })\n\n function onUpdate(raw: unknown) {\n const trimmed = String(raw ?? '').trim()\n if (trimmed === '') {\n handleChange(control.value.path, undefined)\n return\n }\n\n const parsed = Number.parseInt(trimmed, 10)\n handleChange(control.value.path, Number.isFinite(parsed) ? parsed : undefined)\n }\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UInput as any, {\n type: 'number',\n inputmode: 'numeric',\n step: '1',\n modelValue: modelValue.value,\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': onUpdate,\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement, JsonSchema } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\ntype EnumOption = { label: string; value: unknown }\n\nfunction schemaEnumOptions(schema: JsonSchema | undefined): EnumOption[] {\n if (!schema) return []\n\n if (Array.isArray(schema.enum)) {\n return schema.enum.map((v) => ({ label: String(v), value: v }))\n }\n\n const oneOf = (schema as unknown as { oneOf?: unknown }).oneOf\n if (!Array.isArray(oneOf)) return []\n\n const out: EnumOption[] = []\n for (const entry of oneOf) {\n if (typeof entry !== 'object' || entry === null) continue\n const maybe = entry as Record<string, unknown>\n if (!('const' in maybe)) continue\n out.push({\n value: maybe.const,\n label:\n typeof maybe.title === 'string' && maybe.title.trim()\n ? maybe.title\n : String(maybe.const),\n })\n }\n return out\n}\n\nfunction arrayItemsSchema(schema: JsonSchema | undefined): JsonSchema | undefined {\n if (!schema) return undefined\n const items = (schema as unknown as { items?: unknown }).items\n if (typeof items !== 'object' || items === null) return undefined\n return items as JsonSchema\n}\n\nexport const NuxtUiMultiEnumControl = defineComponent({\n name: 'NuxtUiMultiEnumControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n const options = computed<EnumOption[]>(() =>\n schemaEnumOptions(arrayItemsSchema(control.value.schema)),\n )\n\n const selectedValues = computed<unknown[]>({\n get: () => (Array.isArray(control.value.data) ? control.value.data : []),\n set: (v: unknown[]) => handleChange(control.value.path, v),\n })\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const USelectMenu = resolveComponent('USelectMenu')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(USelectMenu as any, {\n multiple: true,\n modelValue: selectedValues.value,\n items: options.value,\n valueKey: 'value',\n labelKey: 'label',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n placeholder: 'Select...',\n 'onUpdate:modelValue': (v: unknown) => {\n selectedValues.value = Array.isArray(v) ? v : []\n },\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiNumberControl = defineComponent({\n name: 'NuxtUiNumberControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n const modelValue = computed(() => {\n const v = control.value.data\n return v === null || v === undefined ? '' : String(v)\n })\n\n function onUpdate(raw: unknown) {\n const trimmed = String(raw ?? '').trim()\n if (trimmed === '') {\n handleChange(control.value.path, undefined)\n return\n }\n const parsed = Number(trimmed)\n handleChange(control.value.path, Number.isFinite(parsed) ? parsed : undefined)\n }\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UInput as any, {\n type: 'number',\n inputmode: 'decimal',\n modelValue: modelValue.value,\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': onUpdate,\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, ref, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiPasswordControl = defineComponent({\n name: 'NuxtUiPasswordControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n const showPassword = ref(false)\n\n const inputType = computed(() => (showPassword.value ? 'text' : 'password'))\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n const UButton = resolveComponent('UButton')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(\n UInput as any,\n {\n modelValue: control.value.data ?? '',\n class: 'w-full',\n type: inputType.value,\n autocomplete: 'current-password',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': (v: unknown) =>\n handleChange(control.value.path, v),\n },\n {\n trailing: () =>\n h(UButton as any, {\n type: 'button',\n color: 'neutral',\n variant: 'ghost',\n square: true,\n icon: showPassword.value\n ? 'i-heroicons-eye-slash'\n : 'i-heroicons-eye',\n 'aria-pressed': showPassword.value,\n 'aria-label': showPassword.value\n ? 'Hide password'\n : 'Show password',\n disabled: !control.value.enabled,\n onClick: () => {\n showPassword.value = !showPassword.value\n },\n }),\n },\n ),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport {\n computed,\n defineComponent,\n h,\n resolveComponent,\n} from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiStringControl = defineComponent({\n name: 'NuxtUiStringControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UInput = resolveComponent('UInput')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UInput as any, {\n modelValue: control.value.data ?? '',\n class: 'w-full',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n 'onUpdate:modelValue': (v: unknown) =>\n handleChange(control.value.path, v),\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { ControlElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsControl } from '@jsonforms/vue'\nimport { computed, defineComponent, h, resolveComponent } from 'vue'\n\nimport { trimmedOrUndefined } from '../util'\n\nexport const NuxtUiTextareaControl = defineComponent({\n name: 'NuxtUiTextareaControl',\n props: rendererProps<ControlElement>(),\n setup(props) {\n const { control, handleChange } = useJsonFormsControl(\n props as unknown as Parameters<typeof useJsonFormsControl>[0],\n )\n\n const errorMessage = computed(() => trimmedOrUndefined(control.value.errors))\n\n return () => {\n if (!control.value.visible) return null\n\n const UFormField = resolveComponent('UFormField')\n const UTextarea = resolveComponent('UTextarea')\n\n return h(\n 'div',\n {},\n h(\n UFormField as any,\n {\n label: control.value.label,\n description: control.value.description,\n required: control.value.required,\n error: errorMessage.value,\n },\n {\n default: () =>\n h(UTextarea as any, {\n modelValue: control.value.data ?? '',\n class: 'w-full',\n disabled: !control.value.enabled,\n color: errorMessage.value ? 'error' : undefined,\n 'aria-invalid': Boolean(errorMessage.value),\n rows: 5,\n 'onUpdate:modelValue': (v: unknown) =>\n handleChange(control.value.path, v),\n }),\n },\n ),\n )\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsCategorization } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiCategorizationRenderer = defineComponent({\n name: 'NuxtUiCategorizationRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout, categories } = useJsonFormsCategorization(\n props as unknown as Parameters<typeof useJsonFormsCategorization>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n return h(\n 'div',\n { class: 'flex flex-col gap-6' },\n categories.map((categoryRef, catIndex) => {\n const category = categoryRef.value\n const elements = category.uischema.elements ?? []\n\n return h(\n 'div',\n { key: `${layout.value.path}-cat-${catIndex}`, class: 'flex flex-col gap-3' },\n [\n category.label\n ? h('div', { class: 'text-sm font-semibold' }, category.label)\n : null,\n h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${category.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: category.schema,\n uischema: element,\n path: category.path,\n enabled: category.enabled,\n renderers: category.renderers,\n cells: category.cells,\n }),\n ),\n ),\n ),\n ],\n )\n }),\n )\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiCategoryRenderer = defineComponent({\n name: 'NuxtUiCategoryRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h('div', { class: 'flex flex-col gap-3' }, [\n layout.value.label\n ? h('div', { class: 'text-sm font-semibold' }, layout.value.label)\n : null,\n h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n ),\n ])\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiGroupRenderer = defineComponent({\n name: 'NuxtUiGroupRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h('div', { class: 'rounded border p-3' }, [\n layout.value.label\n ? h('div', { class: 'mb-3 text-sm font-semibold' }, layout.value.label)\n : null,\n h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n ),\n ])\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiHorizontalLayoutRenderer = defineComponent({\n name: 'NuxtUiHorizontalLayoutRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h(\n 'div',\n { class: 'flex flex-col gap-3 md:flex-row md:flex-wrap' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}`, class: 'min-w-0 flex-1' },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n )\n }\n },\n})\n\n","import type { LabelElement } from '@jsonforms/core'\nimport { rendererProps, useJsonFormsLabel } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiLabelRenderer = defineComponent({\n name: 'NuxtUiLabelRenderer',\n props: rendererProps<LabelElement>(),\n setup(props) {\n const { label } = useJsonFormsLabel(\n props as unknown as Parameters<typeof useJsonFormsLabel>[0],\n )\n\n return () => {\n if (!label.value.visible) return null\n return h(\n 'div',\n { class: 'text-sm text-gray-600 dark:text-gray-300' },\n label.value.text,\n )\n }\n },\n})\n\n","import type { Layout } from '@jsonforms/core'\nimport { DispatchRenderer, rendererProps, useJsonFormsLayout } from '@jsonforms/vue'\nimport { defineComponent, h } from 'vue'\n\nexport const NuxtUiVerticalLayoutRenderer = defineComponent({\n name: 'NuxtUiVerticalLayoutRenderer',\n components: { DispatchRenderer },\n props: rendererProps<Layout>(),\n setup(props) {\n const { layout } = useJsonFormsLayout(\n props as unknown as Parameters<typeof useJsonFormsLayout>[0],\n )\n\n return () => {\n if (!layout.value.visible) return null\n\n const elements = layout.value.uischema.elements ?? []\n\n return h(\n 'div',\n { class: 'flex flex-col gap-3' },\n elements.map((element, index) =>\n h(\n 'div',\n { key: `${layout.value.path}-${index}` },\n h(DispatchRenderer as any, {\n schema: layout.value.schema,\n uischema: element,\n path: layout.value.path,\n enabled: layout.value.enabled,\n renderers: layout.value.renderers,\n cells: layout.value.cells,\n }),\n ),\n ),\n )\n }\n },\n})\n\n"],"mappings":"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","names":["Resolve","computed","computed","findUISchema","DispatchRenderer","rendererProps","computed","defineComponent","h","rendererProps","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","schemaEnumOptions","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","rendererProps","useJsonFormsControl","computed","defineComponent","h","resolveComponent","defineComponent","rendererProps","useJsonFormsControl","computed","resolveComponent","h","DispatchRenderer","rendererProps","defineComponent","h","DispatchRenderer","rendererProps","defineComponent","h","DispatchRenderer","rendererProps","useJsonFormsLayout","defineComponent","h","DispatchRenderer","rendererProps","useJsonFormsLayout","defineComponent","h","rendererProps","defineComponent","h","DispatchRenderer","rendererProps","useJsonFormsLayout","defineComponent","h","Resolve"]}
|