jsonforms-nuxt-ui-renderers 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -26,10 +26,39 @@ import {
26
26
  getFirstPrimitiveProp
27
27
  } from "@jsonforms/core";
28
28
  import { DispatchRenderer, rendererProps, useJsonFormsArrayControl } from "@jsonforms/vue";
29
- import { computed as computed2, defineComponent, h, resolveComponent } from "vue";
29
+ import { computed as computed2, defineComponent, h as h2, resolveComponent } from "vue";
30
30
 
31
31
  // src/renderers/util.ts
32
+ import { h } from "vue";
32
33
  import { computed } from "vue";
34
+ function getDocsPathFromSchema(schema) {
35
+ if (!schema || typeof schema !== "object" || Array.isArray(schema))
36
+ return null;
37
+ const s = schema;
38
+ const path = s["x-docs-path"];
39
+ if (typeof path === "string" && path.startsWith("/")) return path;
40
+ return null;
41
+ }
42
+ function renderDocsHintSlot(schema, label, docsUrl, resolveComponent10) {
43
+ const path = getDocsPathFromSchema(schema);
44
+ if (!path || !docsUrl) return void 0;
45
+ const ULink = resolveComponent10("ULink");
46
+ const UIcon = resolveComponent10("UIcon");
47
+ if (!ULink || !UIcon) return void 0;
48
+ const href = docsUrl(path);
49
+ return () => h(
50
+ ULink,
51
+ {
52
+ href,
53
+ target: "_blank",
54
+ rel: "noopener noreferrer",
55
+ class: "inline-flex items-center text-muted hover:text-primary",
56
+ "aria-label": `${label} docs`,
57
+ title: `${label} docs`
58
+ },
59
+ () => h(UIcon, { name: "i-heroicons-information-circle" })
60
+ );
61
+ }
33
62
  function trimmedOrUndefined(input) {
34
63
  const v = input?.trim();
35
64
  return v ? v : void 0;
@@ -112,10 +141,10 @@ function createNuxtUiArrayListRenderer(theme) {
112
141
  if (!control.value.visible) return null;
113
142
  const UFormField = resolveComponent("UFormField");
114
143
  const UButton = resolveComponent("UButton");
115
- return h(
144
+ return h2(
116
145
  "div",
117
146
  {},
118
- h(
147
+ h2(
119
148
  UFormField,
120
149
  {
121
150
  label: control.value.label,
@@ -124,14 +153,14 @@ function createNuxtUiArrayListRenderer(theme) {
124
153
  error: errorMessage.value
125
154
  },
126
155
  {
127
- default: () => h("div", { class: theme.layoutVertical }, [
128
- h("div", { class: theme.flexBetween }, [
129
- h(
156
+ default: () => h2("div", { class: theme.layoutVertical }, [
157
+ h2("div", { class: theme.flexBetween }, [
158
+ h2(
130
159
  "div",
131
160
  { class: theme.textMutedXs },
132
161
  `${items.value.length} items`
133
162
  ),
134
- h(
163
+ h2(
135
164
  UButton,
136
165
  {
137
166
  type: "button",
@@ -144,26 +173,26 @@ function createNuxtUiArrayListRenderer(theme) {
144
173
  { default: () => "Add" }
145
174
  )
146
175
  ]),
147
- items.value.length === 0 ? h("div", { class: theme.textMuted }, "No items.") : null,
176
+ items.value.length === 0 ? h2("div", { class: theme.textMuted }, "No items.") : null,
148
177
  ...items.value.map(
149
- (_item, index) => h(
178
+ (_item, index) => h2(
150
179
  "div",
151
180
  {
152
181
  key: `${control.value.path}-${index}`,
153
182
  class: theme.panel
154
183
  },
155
184
  [
156
- h(
185
+ h2(
157
186
  "div",
158
187
  { class: theme.arrayItemToolbar },
159
188
  [
160
- h("div", { class: "jf-min-w-0" }, [
161
- h(
189
+ h2("div", { class: "jf-min-w-0" }, [
190
+ h2(
162
191
  "div",
163
192
  { class: theme.textItemTitle },
164
193
  [
165
194
  `Item ${index + 1}`,
166
- childLabelForIndex(index) ? h(
195
+ childLabelForIndex(index) ? h2(
167
196
  "span",
168
197
  { class: theme.textItemSuffix },
169
198
  ` \u2014 ${childLabelForIndex(index)}`
@@ -171,8 +200,8 @@ function createNuxtUiArrayListRenderer(theme) {
171
200
  ]
172
201
  )
173
202
  ]),
174
- h("div", { class: theme.flexActions }, [
175
- h(
203
+ h2("div", { class: theme.flexActions }, [
204
+ h2(
176
205
  UButton,
177
206
  {
178
207
  type: "button",
@@ -184,7 +213,7 @@ function createNuxtUiArrayListRenderer(theme) {
184
213
  },
185
214
  { default: () => "Up" }
186
215
  ),
187
- h(
216
+ h2(
188
217
  UButton,
189
218
  {
190
219
  type: "button",
@@ -196,7 +225,7 @@ function createNuxtUiArrayListRenderer(theme) {
196
225
  },
197
226
  { default: () => "Down" }
198
227
  ),
199
- h(
228
+ h2(
200
229
  UButton,
201
230
  {
202
231
  type: "button",
@@ -213,7 +242,7 @@ function createNuxtUiArrayListRenderer(theme) {
213
242
  ])
214
243
  ]
215
244
  ),
216
- h(DispatchRenderer, {
245
+ h2(DispatchRenderer, {
217
246
  schema: control.value.schema,
218
247
  uischema: childUiSchema.value,
219
248
  path: composePaths(control.value.path, `${index}`),
@@ -240,7 +269,7 @@ import {
240
269
  rendererProps as rendererProps2,
241
270
  useJsonFormsControlWithDetail
242
271
  } from "@jsonforms/vue";
243
- import { computed as computed3, defineComponent as defineComponent2, h as h2 } from "vue";
272
+ import { computed as computed3, defineComponent as defineComponent2, h as h3 } from "vue";
244
273
  var NuxtUiObjectRenderer = defineComponent2({
245
274
  name: "NuxtUiObjectRenderer",
246
275
  components: { DispatchRenderer: DispatchRenderer2 },
@@ -277,7 +306,7 @@ var NuxtUiObjectRenderer = defineComponent2({
277
306
  });
278
307
  return () => {
279
308
  if (!control.value.visible) return null;
280
- return h2(DispatchRenderer2, {
309
+ return h3(DispatchRenderer2, {
281
310
  visible: control.value.visible,
282
311
  enabled: control.value.enabled,
283
312
  schema: control.value.schema,
@@ -292,7 +321,7 @@ var NuxtUiObjectRenderer = defineComponent2({
292
321
 
293
322
  // src/renderers/controls/NuxtUiBooleanControl.ts
294
323
  import { rendererProps as rendererProps3, useJsonFormsControl } from "@jsonforms/vue";
295
- import { computed as computed4, defineComponent as defineComponent3, h as h3, resolveComponent as resolveComponent2 } from "vue";
324
+ import { computed as computed4, defineComponent as defineComponent3, h as h4, resolveComponent as resolveComponent2 } from "vue";
296
325
  function createNuxtUiBooleanControl(theme) {
297
326
  return defineComponent3({
298
327
  name: "NuxtUiBooleanControl",
@@ -310,10 +339,10 @@ function createNuxtUiBooleanControl(theme) {
310
339
  if (!control.value.visible) return null;
311
340
  const UFormField = resolveComponent2("UFormField");
312
341
  const USwitch = resolveComponent2("USwitch");
313
- return h3(
342
+ return h4(
314
343
  "div",
315
344
  {},
316
- h3(
345
+ h4(
317
346
  UFormField,
318
347
  {
319
348
  label: control.value.label,
@@ -322,10 +351,10 @@ function createNuxtUiBooleanControl(theme) {
322
351
  error: errorMessage.value
323
352
  },
324
353
  {
325
- default: () => h3(
354
+ default: () => h4(
326
355
  "div",
327
356
  { class: theme.flexBetween },
328
- h3(USwitch, {
357
+ h4(USwitch, {
329
358
  modelValue: modelValue.value,
330
359
  disabled: !control.value.enabled,
331
360
  "aria-invalid": Boolean(errorMessage.value),
@@ -344,7 +373,7 @@ function createNuxtUiBooleanControl(theme) {
344
373
 
345
374
  // src/renderers/controls/NuxtUiEnumControl.ts
346
375
  import { rendererProps as rendererProps4, useJsonFormsControl as useJsonFormsControl2 } from "@jsonforms/vue";
347
- import { computed as computed5, defineComponent as defineComponent4, h as h4, resolveComponent as resolveComponent3 } from "vue";
376
+ import { computed as computed5, defineComponent as defineComponent4, h as h5, resolveComponent as resolveComponent3 } from "vue";
348
377
  function schemaEnumOptions(schema) {
349
378
  if (!schema) return [];
350
379
  if (Array.isArray(schema.enum)) {
@@ -381,10 +410,10 @@ var NuxtUiEnumControl = defineComponent4({
381
410
  if (!control.value.visible) return null;
382
411
  const UFormField = resolveComponent3("UFormField");
383
412
  const USelectMenu = resolveComponent3("USelectMenu");
384
- return h4(
413
+ return h5(
385
414
  "div",
386
415
  {},
387
- h4(
416
+ h5(
388
417
  UFormField,
389
418
  {
390
419
  label: control.value.label,
@@ -393,7 +422,7 @@ var NuxtUiEnumControl = defineComponent4({
393
422
  error: errorMessage.value
394
423
  },
395
424
  {
396
- default: () => h4(USelectMenu, {
425
+ default: () => h5(USelectMenu, {
397
426
  modelValue: selectedValue.value,
398
427
  items: options.value,
399
428
  valueKey: "value",
@@ -415,7 +444,7 @@ var NuxtUiEnumControl = defineComponent4({
415
444
 
416
445
  // src/renderers/controls/NuxtUiIntegerControl.ts
417
446
  import { rendererProps as rendererProps5, useJsonFormsControl as useJsonFormsControl3 } from "@jsonforms/vue";
418
- import { computed as computed6, defineComponent as defineComponent5, h as h5, resolveComponent as resolveComponent4 } from "vue";
447
+ import { computed as computed6, defineComponent as defineComponent5, h as h6, resolveComponent as resolveComponent4 } from "vue";
419
448
  var NuxtUiIntegerControl = defineComponent5({
420
449
  name: "NuxtUiIntegerControl",
421
450
  props: rendererProps5(),
@@ -441,10 +470,10 @@ var NuxtUiIntegerControl = defineComponent5({
441
470
  if (!control.value.visible) return null;
442
471
  const UFormField = resolveComponent4("UFormField");
443
472
  const UInput = resolveComponent4("UInput");
444
- return h5(
473
+ return h6(
445
474
  "div",
446
475
  {},
447
- h5(
476
+ h6(
448
477
  UFormField,
449
478
  {
450
479
  label: control.value.label,
@@ -453,7 +482,7 @@ var NuxtUiIntegerControl = defineComponent5({
453
482
  error: errorMessage.value
454
483
  },
455
484
  {
456
- default: () => h5(UInput, {
485
+ default: () => h6(UInput, {
457
486
  type: "number",
458
487
  inputmode: "numeric",
459
488
  step: "1",
@@ -472,7 +501,7 @@ var NuxtUiIntegerControl = defineComponent5({
472
501
 
473
502
  // src/renderers/controls/NuxtUiMultiEnumControl.ts
474
503
  import { rendererProps as rendererProps6, useJsonFormsControl as useJsonFormsControl4 } from "@jsonforms/vue";
475
- import { computed as computed7, defineComponent as defineComponent6, h as h6, resolveComponent as resolveComponent5 } from "vue";
504
+ import { computed as computed7, defineComponent as defineComponent6, h as h7, resolveComponent as resolveComponent5 } from "vue";
476
505
  function schemaEnumOptions2(schema) {
477
506
  if (!schema) return [];
478
507
  if (Array.isArray(schema.enum)) {
@@ -517,10 +546,10 @@ var NuxtUiMultiEnumControl = defineComponent6({
517
546
  if (!control.value.visible) return null;
518
547
  const UFormField = resolveComponent5("UFormField");
519
548
  const USelectMenu = resolveComponent5("USelectMenu");
520
- return h6(
549
+ return h7(
521
550
  "div",
522
551
  {},
523
- h6(
552
+ h7(
524
553
  UFormField,
525
554
  {
526
555
  label: control.value.label,
@@ -529,7 +558,7 @@ var NuxtUiMultiEnumControl = defineComponent6({
529
558
  error: errorMessage.value
530
559
  },
531
560
  {
532
- default: () => h6(USelectMenu, {
561
+ default: () => h7(USelectMenu, {
533
562
  multiple: true,
534
563
  modelValue: selectedValues.value,
535
564
  items: options.value,
@@ -552,7 +581,7 @@ var NuxtUiMultiEnumControl = defineComponent6({
552
581
 
553
582
  // src/renderers/controls/NuxtUiNumberControl.ts
554
583
  import { rendererProps as rendererProps7, useJsonFormsControl as useJsonFormsControl5 } from "@jsonforms/vue";
555
- import { computed as computed8, defineComponent as defineComponent7, h as h7, resolveComponent as resolveComponent6 } from "vue";
584
+ import { computed as computed8, defineComponent as defineComponent7, h as h8, resolveComponent as resolveComponent6 } from "vue";
556
585
  var NuxtUiNumberControl = defineComponent7({
557
586
  name: "NuxtUiNumberControl",
558
587
  props: rendererProps7(),
@@ -578,10 +607,10 @@ var NuxtUiNumberControl = defineComponent7({
578
607
  if (!control.value.visible) return null;
579
608
  const UFormField = resolveComponent6("UFormField");
580
609
  const UInput = resolveComponent6("UInput");
581
- return h7(
610
+ return h8(
582
611
  "div",
583
612
  {},
584
- h7(
613
+ h8(
585
614
  UFormField,
586
615
  {
587
616
  label: control.value.label,
@@ -590,7 +619,7 @@ var NuxtUiNumberControl = defineComponent7({
590
619
  error: errorMessage.value
591
620
  },
592
621
  {
593
- default: () => h7(UInput, {
622
+ default: () => h8(UInput, {
594
623
  type: "number",
595
624
  inputmode: "decimal",
596
625
  modelValue: modelValue.value,
@@ -608,7 +637,7 @@ var NuxtUiNumberControl = defineComponent7({
608
637
 
609
638
  // src/renderers/controls/NuxtUiPasswordControl.ts
610
639
  import { rendererProps as rendererProps8, useJsonFormsControl as useJsonFormsControl6 } from "@jsonforms/vue";
611
- import { computed as computed9, defineComponent as defineComponent8, h as h8, ref, resolveComponent as resolveComponent7 } from "vue";
640
+ import { computed as computed9, defineComponent as defineComponent8, h as h9, ref, resolveComponent as resolveComponent7 } from "vue";
612
641
  var NuxtUiPasswordControl = defineComponent8({
613
642
  name: "NuxtUiPasswordControl",
614
643
  props: rendererProps8(),
@@ -624,10 +653,10 @@ var NuxtUiPasswordControl = defineComponent8({
624
653
  const UFormField = resolveComponent7("UFormField");
625
654
  const UInput = resolveComponent7("UInput");
626
655
  const UButton = resolveComponent7("UButton");
627
- return h8(
656
+ return h9(
628
657
  "div",
629
658
  {},
630
- h8(
659
+ h9(
631
660
  UFormField,
632
661
  {
633
662
  label: control.value.label,
@@ -636,7 +665,7 @@ var NuxtUiPasswordControl = defineComponent8({
636
665
  error: errorMessage.value
637
666
  },
638
667
  {
639
- default: () => h8(
668
+ default: () => h9(
640
669
  UInput,
641
670
  {
642
671
  modelValue: control.value.data ?? "",
@@ -649,7 +678,7 @@ var NuxtUiPasswordControl = defineComponent8({
649
678
  "onUpdate:modelValue": (v) => handleChange(control.value.path, v)
650
679
  },
651
680
  {
652
- trailing: () => h8(UButton, {
681
+ trailing: () => h9(UButton, {
653
682
  type: "button",
654
683
  color: "neutral",
655
684
  variant: "ghost",
@@ -676,51 +705,59 @@ import { rendererProps as rendererProps9, useJsonFormsControl as useJsonFormsCon
676
705
  import {
677
706
  computed as computed10,
678
707
  defineComponent as defineComponent9,
679
- h as h9,
708
+ h as h10,
680
709
  resolveComponent as resolveComponent8
681
710
  } from "vue";
682
- var NuxtUiStringControl = defineComponent9({
683
- name: "NuxtUiStringControl",
684
- props: rendererProps9(),
685
- setup(props) {
686
- const { control, handleChange } = useJsonFormsControl7(
687
- props
688
- );
689
- const errorMessage = computed10(() => trimmedOrUndefined(control.value.errors));
690
- return () => {
691
- if (!control.value.visible) return null;
692
- const UFormField = resolveComponent8("UFormField");
693
- const UInput = resolveComponent8("UInput");
694
- return h9(
695
- "div",
696
- {},
697
- h9(
698
- UFormField,
699
- {
711
+ function createNuxtUiStringControl(docsUrl) {
712
+ return defineComponent9({
713
+ name: "NuxtUiStringControl",
714
+ props: rendererProps9(),
715
+ setup(props) {
716
+ const { control, handleChange } = useJsonFormsControl7(
717
+ props
718
+ );
719
+ const errorMessage = computed10(
720
+ () => trimmedOrUndefined(control.value.errors)
721
+ );
722
+ return () => {
723
+ if (!control.value.visible) return null;
724
+ const UFormField = resolveComponent8("UFormField");
725
+ const UInput = resolveComponent8("UInput");
726
+ const slots = {
727
+ default: () => h10(UInput, {
728
+ modelValue: control.value.data ?? "",
729
+ class: "w-full",
730
+ disabled: !control.value.enabled,
731
+ color: errorMessage.value ? "error" : void 0,
732
+ "aria-invalid": Boolean(errorMessage.value),
733
+ "onUpdate:modelValue": (v) => handleChange(control.value.path, v)
734
+ })
735
+ };
736
+ const hintSlot = renderDocsHintSlot(
737
+ control.value.schema,
738
+ control.value.label ?? "",
739
+ docsUrl,
740
+ resolveComponent8
741
+ );
742
+ if (hintSlot) slots.hint = hintSlot;
743
+ return h10(
744
+ "div",
745
+ {},
746
+ h10(UFormField, {
700
747
  label: control.value.label,
701
748
  description: controlDescription(control.value),
702
749
  required: control.value.required,
703
750
  error: errorMessage.value
704
- },
705
- {
706
- default: () => h9(UInput, {
707
- modelValue: control.value.data ?? "",
708
- class: "w-full",
709
- disabled: !control.value.enabled,
710
- color: errorMessage.value ? "error" : void 0,
711
- "aria-invalid": Boolean(errorMessage.value),
712
- "onUpdate:modelValue": (v) => handleChange(control.value.path, v)
713
- })
714
- }
715
- )
716
- );
717
- };
718
- }
719
- });
751
+ }, slots)
752
+ );
753
+ };
754
+ }
755
+ });
756
+ }
720
757
 
721
758
  // src/renderers/controls/NuxtUiTextareaControl.ts
722
759
  import { rendererProps as rendererProps10, useJsonFormsControl as useJsonFormsControl8 } from "@jsonforms/vue";
723
- import { computed as computed11, defineComponent as defineComponent10, h as h10, resolveComponent as resolveComponent9 } from "vue";
760
+ import { computed as computed11, defineComponent as defineComponent10, h as h11, resolveComponent as resolveComponent9 } from "vue";
724
761
  var NuxtUiTextareaControl = defineComponent10({
725
762
  name: "NuxtUiTextareaControl",
726
763
  props: rendererProps10(),
@@ -733,10 +770,10 @@ var NuxtUiTextareaControl = defineComponent10({
733
770
  if (!control.value.visible) return null;
734
771
  const UFormField = resolveComponent9("UFormField");
735
772
  const UTextarea = resolveComponent9("UTextarea");
736
- return h10(
773
+ return h11(
737
774
  "div",
738
775
  {},
739
- h10(
776
+ h11(
740
777
  UFormField,
741
778
  {
742
779
  label: control.value.label,
@@ -745,7 +782,7 @@ var NuxtUiTextareaControl = defineComponent10({
745
782
  error: errorMessage.value
746
783
  },
747
784
  {
748
- default: () => h10(UTextarea, {
785
+ default: () => h11(UTextarea, {
749
786
  modelValue: control.value.data ?? "",
750
787
  class: "w-full",
751
788
  disabled: !control.value.enabled,
@@ -763,7 +800,7 @@ var NuxtUiTextareaControl = defineComponent10({
763
800
 
764
801
  // src/renderers/layouts/NuxtUiCategorizationRenderer.ts
765
802
  import { DispatchRenderer as DispatchRenderer3, rendererProps as rendererProps11, useJsonFormsCategorization } from "@jsonforms/vue";
766
- import { defineComponent as defineComponent11, h as h11 } from "vue";
803
+ import { defineComponent as defineComponent11, h as h12 } from "vue";
767
804
  function createNuxtUiCategorizationRenderer(theme) {
768
805
  return defineComponent11({
769
806
  name: "NuxtUiCategorizationRenderer",
@@ -775,28 +812,28 @@ function createNuxtUiCategorizationRenderer(theme) {
775
812
  );
776
813
  return () => {
777
814
  if (!layout.value.visible) return null;
778
- return h11(
815
+ return h12(
779
816
  "div",
780
817
  { class: theme.layoutVerticalWide },
781
818
  categories.map((categoryRef, catIndex) => {
782
819
  const category = categoryRef.value;
783
820
  const elements = category.uischema.elements ?? [];
784
- return h11(
821
+ return h12(
785
822
  "div",
786
823
  {
787
824
  key: `${layout.value.path}-cat-${catIndex}`,
788
825
  class: theme.layoutVertical
789
826
  },
790
827
  [
791
- category.label ? h11("div", { class: theme.labelSection }, category.label) : null,
792
- h11(
828
+ category.label ? h12("div", { class: theme.labelSection }, category.label) : null,
829
+ h12(
793
830
  "div",
794
831
  { class: theme.layoutVertical },
795
832
  elements.map(
796
- (element, index) => h11(
833
+ (element, index) => h12(
797
834
  "div",
798
835
  { key: `${category.path}-${index}` },
799
- h11(DispatchRenderer3, {
836
+ h12(DispatchRenderer3, {
800
837
  schema: category.schema,
801
838
  uischema: element,
802
839
  path: category.path,
@@ -818,7 +855,7 @@ function createNuxtUiCategorizationRenderer(theme) {
818
855
 
819
856
  // src/renderers/layouts/NuxtUiCategoryRenderer.ts
820
857
  import { DispatchRenderer as DispatchRenderer4, rendererProps as rendererProps12, useJsonFormsLayout } from "@jsonforms/vue";
821
- import { defineComponent as defineComponent12, h as h12 } from "vue";
858
+ import { defineComponent as defineComponent12, h as h13 } from "vue";
822
859
  function createNuxtUiCategoryRenderer(theme) {
823
860
  return defineComponent12({
824
861
  name: "NuxtUiCategoryRenderer",
@@ -831,16 +868,16 @@ function createNuxtUiCategoryRenderer(theme) {
831
868
  return () => {
832
869
  if (!layout.value.visible) return null;
833
870
  const elements = layout.value.uischema.elements ?? [];
834
- return h12("div", { class: theme.layoutVertical }, [
835
- layout.value.label ? h12("div", { class: theme.labelSection }, layout.value.label) : null,
836
- h12(
871
+ return h13("div", { class: theme.layoutVertical }, [
872
+ layout.value.label ? h13("div", { class: theme.labelSection }, layout.value.label) : null,
873
+ h13(
837
874
  "div",
838
875
  { class: theme.layoutVertical },
839
876
  elements.map(
840
- (element, index) => h12(
877
+ (element, index) => h13(
841
878
  "div",
842
879
  { key: `${layout.value.path}-${index}` },
843
- h12(DispatchRenderer4, {
880
+ h13(DispatchRenderer4, {
844
881
  schema: layout.value.schema,
845
882
  uischema: element,
846
883
  path: layout.value.path,
@@ -859,7 +896,7 @@ function createNuxtUiCategoryRenderer(theme) {
859
896
 
860
897
  // src/renderers/layouts/NuxtUiGroupRenderer.ts
861
898
  import { DispatchRenderer as DispatchRenderer5, rendererProps as rendererProps13, useJsonFormsLayout as useJsonFormsLayout2 } from "@jsonforms/vue";
862
- import { defineComponent as defineComponent13, h as h13 } from "vue";
899
+ import { defineComponent as defineComponent13, h as h14 } from "vue";
863
900
  function createNuxtUiGroupRenderer(theme) {
864
901
  return defineComponent13({
865
902
  name: "NuxtUiGroupRenderer",
@@ -874,19 +911,19 @@ function createNuxtUiGroupRenderer(theme) {
874
911
  const elements = layout.value.uischema.elements ?? [];
875
912
  const isNested = layout.value.path?.includes(".") ?? false;
876
913
  const containerClass = isNested ? theme.groupNested : theme.panel;
877
- return h13(
914
+ return h14(
878
915
  "div",
879
916
  { class: containerClass },
880
917
  [
881
- layout.value.label ? h13("div", { class: theme.labelSectionSpaced }, layout.value.label) : null,
882
- h13(
918
+ layout.value.label ? h14("div", { class: theme.labelSectionSpaced }, layout.value.label) : null,
919
+ h14(
883
920
  "div",
884
921
  { class: theme.layoutVertical },
885
922
  elements.map(
886
- (element, index) => h13(
923
+ (element, index) => h14(
887
924
  "div",
888
925
  { key: `${layout.value.path}-${index}` },
889
- h13(DispatchRenderer5, {
926
+ h14(DispatchRenderer5, {
890
927
  schema: layout.value.schema,
891
928
  uischema: element,
892
929
  path: layout.value.path,
@@ -906,7 +943,7 @@ function createNuxtUiGroupRenderer(theme) {
906
943
 
907
944
  // src/renderers/layouts/NuxtUiHorizontalLayoutRenderer.ts
908
945
  import { DispatchRenderer as DispatchRenderer6, rendererProps as rendererProps14, useJsonFormsLayout as useJsonFormsLayout3 } from "@jsonforms/vue";
909
- import { defineComponent as defineComponent14, h as h14 } from "vue";
946
+ import { defineComponent as defineComponent14, h as h15 } from "vue";
910
947
  function createNuxtUiHorizontalLayoutRenderer(theme) {
911
948
  return defineComponent14({
912
949
  name: "NuxtUiHorizontalLayoutRenderer",
@@ -919,17 +956,17 @@ function createNuxtUiHorizontalLayoutRenderer(theme) {
919
956
  return () => {
920
957
  if (!layout.value.visible) return null;
921
958
  const elements = layout.value.uischema.elements ?? [];
922
- return h14(
959
+ return h15(
923
960
  "div",
924
961
  { class: theme.layoutHorizontal },
925
962
  elements.map(
926
- (element, index) => h14(
963
+ (element, index) => h15(
927
964
  "div",
928
965
  {
929
966
  key: `${layout.value.path}-${index}`,
930
967
  class: theme.layoutHorizontalItem
931
968
  },
932
- h14(DispatchRenderer6, {
969
+ h15(DispatchRenderer6, {
933
970
  schema: layout.value.schema,
934
971
  uischema: element,
935
972
  path: layout.value.path,
@@ -947,7 +984,7 @@ function createNuxtUiHorizontalLayoutRenderer(theme) {
947
984
 
948
985
  // src/renderers/layouts/NuxtUiLabelRenderer.ts
949
986
  import { rendererProps as rendererProps15, useJsonFormsLabel } from "@jsonforms/vue";
950
- import { defineComponent as defineComponent15, h as h15 } from "vue";
987
+ import { defineComponent as defineComponent15, h as h16 } from "vue";
951
988
  function createNuxtUiLabelRenderer(theme) {
952
989
  return defineComponent15({
953
990
  name: "NuxtUiLabelRenderer",
@@ -958,7 +995,7 @@ function createNuxtUiLabelRenderer(theme) {
958
995
  );
959
996
  return () => {
960
997
  if (!label.value.visible) return null;
961
- return h15("div", { class: theme.textLabel }, label.value.text);
998
+ return h16("div", { class: theme.textLabel }, label.value.text);
962
999
  };
963
1000
  }
964
1001
  });
@@ -966,7 +1003,7 @@ function createNuxtUiLabelRenderer(theme) {
966
1003
 
967
1004
  // src/renderers/layouts/NuxtUiVerticalLayoutRenderer.ts
968
1005
  import { DispatchRenderer as DispatchRenderer7, rendererProps as rendererProps16, useJsonFormsLayout as useJsonFormsLayout4 } from "@jsonforms/vue";
969
- import { defineComponent as defineComponent16, h as h16 } from "vue";
1006
+ import { defineComponent as defineComponent16, h as h17 } from "vue";
970
1007
  function createNuxtUiVerticalLayoutRenderer(theme) {
971
1008
  return defineComponent16({
972
1009
  name: "NuxtUiVerticalLayoutRenderer",
@@ -979,14 +1016,14 @@ function createNuxtUiVerticalLayoutRenderer(theme) {
979
1016
  return () => {
980
1017
  if (!layout.value.visible) return null;
981
1018
  const elements = layout.value.uischema.elements ?? [];
982
- return h16(
1019
+ return h17(
983
1020
  "div",
984
1021
  { class: theme.layoutVertical },
985
1022
  elements.map(
986
- (element, index) => h16(
1023
+ (element, index) => h17(
987
1024
  "div",
988
1025
  { key: `${layout.value.path}-${index}` },
989
- h16(DispatchRenderer7, {
1026
+ h17(DispatchRenderer7, {
990
1027
  schema: layout.value.schema,
991
1028
  uischema: element,
992
1029
  path: layout.value.path,
@@ -1074,6 +1111,7 @@ var isOneOfEnumControl = (uischema, schema, context) => {
1074
1111
  };
1075
1112
  function createNuxtUiRenderers(options) {
1076
1113
  const theme = mergeTheme(options?.theme);
1114
+ const docsUrl = options?.docsUrl;
1077
1115
  return [
1078
1116
  // Layouts
1079
1117
  {
@@ -1148,7 +1186,7 @@ function createNuxtUiRenderers(options) {
1148
1186
  },
1149
1187
  {
1150
1188
  tester: rankWith(RANK, isStringControl),
1151
- renderer: markRaw(NuxtUiStringControl)
1189
+ renderer: markRaw(createNuxtUiStringControl(docsUrl))
1152
1190
  }
1153
1191
  ];
1154
1192
  }
@@ -1157,6 +1195,7 @@ export {
1157
1195
  controlDescription,
1158
1196
  createNuxtUiRenderers,
1159
1197
  defaultTheme,
1198
+ getDocsPathFromSchema,
1160
1199
  mergeTheme,
1161
1200
  nuxtUiRenderers
1162
1201
  };