betterstart-cli 0.0.104 → 0.0.105

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/dist/cli.js +6416 -5203
  2. package/dist/cli.js.map +1 -1
  3. package/package.json +1 -1
  4. package/dist/assets/adapters/next/templates/renderers/commands/init/banner-art.ts +0 -7
  5. package/dist/assets/adapters/next/templates/renderers/commands/init/verify-database-reachable.ts +0 -30
  6. package/dist/assets/adapters/next/templates/renderers/commands/seed/build-seed-script.ts +0 -171
  7. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/build-authorship-alias-block.ts +0 -4
  8. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/build-authorship-data-fields.ts +0 -4
  9. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/build-format-action-date-source.ts +0 -18
  10. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/build-read-select-option-type.ts +0 -6
  11. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/build-relationship-data-types.ts +0 -25
  12. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/build-result-mapping.ts +0 -62
  13. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/generate-populate-list-rels-function.ts +0 -50
  14. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/build-restore-many-to-many-statements.ts +0 -27
  15. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/build-select-option-types.ts +0 -37
  16. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-bulk-sort-order-content.ts +0 -93
  17. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-create-content.ts +0 -157
  18. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-create-select-option-content.ts +0 -134
  19. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-delete-bulk-content.ts +0 -85
  20. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-delete-content.ts +0 -66
  21. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-distinct-files.ts +0 -45
  22. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-get-by-id-content.ts +0 -55
  23. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-get-by-slug-content.ts +0 -55
  24. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-get-plural-content.ts +0 -106
  25. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-get-select-options-content.ts +0 -55
  26. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-get-versions-content.ts +0 -19
  27. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-m2m-files.ts +0 -151
  28. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-restore-content.ts +0 -123
  29. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-update-content.ts +0 -187
  30. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/generate-resolve-media-function.ts +0 -40
  31. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/generate-slug-helpers.ts +0 -73
  32. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/generate-version-snapshot-helpers.ts +0 -104
  33. package/dist/assets/adapters/next/templates/renderers/generators/actions/lifecycle-hook-emissions/lifecycle-context.ts +0 -22
  34. package/dist/assets/adapters/next/templates/renderers/generators/actions/lifecycle-hook-emissions/lifecycle-hook-import.ts +0 -4
  35. package/dist/assets/adapters/next/templates/renderers/generators/actions/markdown-renderer.ts +0 -411
  36. package/dist/assets/adapters/next/templates/renderers/generators/actions/select-fields-resolver.ts +0 -99
  37. package/dist/assets/adapters/next/templates/renderers/generators/actions/single-actions/generate-single-actions.ts +0 -292
  38. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-authorship-value.ts +0 -8
  39. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-column-def.ts +0 -297
  40. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-first-column-def.ts +0 -483
  41. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-image-cell-media.ts +0 -38
  42. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-image-element.ts +0 -22
  43. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-relationship-label.ts +0 -26
  44. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-select-label.ts +0 -17
  45. package/dist/assets/adapters/next/templates/renderers/generators/columns/custom-cell.ts +0 -24
  46. package/dist/assets/adapters/next/templates/renderers/generators/columns/generate-columns.ts +0 -55
  47. package/dist/assets/adapters/next/templates/renderers/generators/create-page.ts +0 -16
  48. package/dist/assets/adapters/next/templates/renderers/generators/database/generate-database.ts +0 -5
  49. package/dist/assets/adapters/next/templates/renderers/generators/database/generate-junction-table.ts +0 -27
  50. package/dist/assets/adapters/next/templates/renderers/generators/database/generate-select-options-table.ts +0 -35
  51. package/dist/assets/adapters/next/templates/renderers/generators/database/generate-table-definition.ts +0 -25
  52. package/dist/assets/adapters/next/templates/renderers/generators/dev-mode-integration/build-entity-dev-mode-snippets.ts +0 -180
  53. package/dist/assets/adapters/next/templates/renderers/generators/dev-mode-integration/build-form-dev-mode-snippets.ts +0 -97
  54. package/dist/assets/adapters/next/templates/renderers/generators/dev-mode-integration/build-single-dev-mode-snippets.ts +0 -60
  55. package/dist/assets/adapters/next/templates/renderers/generators/dev-mode-integration/create-dev-mode-integration-artifact.ts +0 -89
  56. package/dist/assets/adapters/next/templates/renderers/generators/dev-mode-integration/lifecycle-hook-code.ts +0 -55
  57. package/dist/assets/adapters/next/templates/renderers/generators/edit-page.ts +0 -33
  58. package/dist/assets/adapters/next/templates/renderers/generators/email-template/generate-email-template.ts +0 -248
  59. package/dist/assets/adapters/next/templates/renderers/generators/email-template/generate-field-value.ts +0 -31
  60. package/dist/assets/adapters/next/templates/renderers/generators/emitted-helpers.ts +0 -16
  61. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/generate-icon-postfix.ts +0 -27
  62. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-boolean-field.ts +0 -47
  63. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-creatable-select-field.ts +0 -122
  64. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-date-field.ts +0 -47
  65. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-default-field.ts +0 -53
  66. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-gallery-field.ts +0 -46
  67. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-group-field.ts +0 -16
  68. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-icon-field.ts +0 -31
  69. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-markdown-field.ts +0 -50
  70. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-media-field.ts +0 -47
  71. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-multi-relationship-field.ts +0 -91
  72. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-multi-select-field.ts +0 -219
  73. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-number-field.ts +0 -48
  74. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-richtext-field.ts +0 -50
  75. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-select-field.ts +0 -61
  76. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-separator-field.ts +0 -16
  77. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-single-relationship-field.ts +0 -93
  78. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-textarea-field.ts +0 -53
  79. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx-nested/render-list-field.ts +0 -163
  80. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx-nested/render-nested-field.ts +0 -164
  81. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx-nested/render-nested-object-list-field.ts +0 -59
  82. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx-nested/render-text-input-field.ts +0 -27
  83. package/dist/assets/adapters/next/templates/renderers/generators/form/form-entity/generate-form.ts +0 -822
  84. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/build-default-value-from-sync-functions.ts +0 -41
  85. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/build-ui-imports.ts +0 -58
  86. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/generate-default-value.ts +0 -67
  87. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/generate-nested-list-default-value.ts +0 -13
  88. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/label-with-description.ts +0 -14
  89. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/render-tabs-trigger.ts +0 -18
  90. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/select-read-values-expression.ts +0 -21
  91. package/dist/assets/adapters/next/templates/renderers/generators/form/form-single/build-group-creatable-select-handlers.ts +0 -67
  92. package/dist/assets/adapters/next/templates/renderers/generators/form/form-single/build-group-creatable-select-state.ts +0 -29
  93. package/dist/assets/adapters/next/templates/renderers/generators/form/form-single/build-group-field-array-hooks.ts +0 -13
  94. package/dist/assets/adapters/next/templates/renderers/generators/form/form-single/build-group-fields-jsx.ts +0 -30
  95. package/dist/assets/adapters/next/templates/renderers/generators/form/form-single/generate-card-component.ts +0 -129
  96. package/dist/assets/adapters/next/templates/renderers/generators/form/form-single/generate-single-form.ts +0 -66
  97. package/dist/assets/adapters/next/templates/renderers/generators/form-admin/admin-columns/generate-column-def.ts +0 -72
  98. package/dist/assets/adapters/next/templates/renderers/generators/form-admin/admin-columns/generate-columns.ts +0 -89
  99. package/dist/assets/adapters/next/templates/renderers/generators/form-admin/admin-page/generate-page.ts +0 -23
  100. package/dist/assets/adapters/next/templates/renderers/generators/form-admin/admin-page-content.ts +0 -246
  101. package/dist/assets/adapters/next/templates/renderers/generators/form-admin/admin-submission-drawer.ts +0 -216
  102. package/dist/assets/adapters/next/templates/renderers/generators/form-admin/admin-table.ts +0 -273
  103. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-actions/exclusive-date-upper-bound-helper.ts +0 -11
  104. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-actions/generate-form-actions.ts +0 -505
  105. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-multistep/build-component-source.ts +0 -197
  106. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/build-field-error-helper.ts +0 -16
  107. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/error-message-line.ts +0 -13
  108. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/generate-field-jsx.ts +0 -226
  109. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/generate-file-upload-field-jsx.ts +0 -41
  110. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/generate-list-field-jsx.ts +0 -160
  111. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/generate-multiselect-field-jsx.ts +0 -40
  112. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/generate-number-field-jsx.ts +0 -41
  113. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/generate-text-field-jsx.ts +0 -39
  114. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/label-with-description-line.ts +0 -14
  115. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-single/build-single-step-form-component-source.ts +0 -100
  116. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-database.ts +0 -29
  117. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-hook.ts +0 -142
  118. package/dist/assets/adapters/next/templates/renderers/generators/hook/generate-hook.ts +0 -169
  119. package/dist/assets/adapters/next/templates/renderers/generators/hook/generate-single-hook.ts +0 -30
  120. package/dist/assets/adapters/next/templates/renderers/generators/navigation-extract.ts +0 -19
  121. package/dist/assets/adapters/next/templates/renderers/generators/page-content/generate-page-content.ts +0 -419
  122. package/dist/assets/adapters/next/templates/renderers/generators/page.ts +0 -24
  123. package/dist/assets/adapters/next/templates/renderers/generators/row-actions-emitters/build-delete-dialog-source.ts +0 -108
  124. package/dist/assets/adapters/next/templates/renderers/generators/row-actions-emitters/build-row-actions-source.ts +0 -61
  125. package/dist/assets/adapters/next/templates/renderers/generators/single-page.ts +0 -59
  126. package/dist/assets/adapters/next/templates/renderers/generators/sortable-header/build-sort-label-expr.ts +0 -9
  127. package/dist/assets/adapters/next/templates/renderers/generators/sortable-header/build-sortable-header-button-jsx.ts +0 -20
  128. package/dist/assets/adapters/next/templates/renderers/generators/sortable-header/build-sortable-header-def.ts +0 -14
  129. package/dist/assets/adapters/next/templates/renderers/generators/table.ts +0 -284
  130. package/dist/assets/adapters/next/templates/renderers/generators/thankyou-email-template.ts +0 -110
  131. package/dist/assets/adapters/next/templates/renderers/generators/webhook-events/render-extract.ts +0 -14
  132. package/dist/assets/adapters/next/templates/renderers/init/scaffolders/next-config/create-next-config-template.ts +0 -48
  133. package/dist/assets/adapters/next/templates/renderers/init/scaffolders/tailwind/admin-shadow-input-utility.ts +0 -9
  134. package/dist/assets/adapters/next/templates/renderers/init/scaffolders/tailwind/admin-theme-block.ts +0 -42
  135. package/dist/assets/adapters/next/templates/renderers/init/templates/app/admin.ts +0 -12
  136. package/dist/assets/adapters/next/templates/renderers/integration-runtime/render-core-email-provider.ts +0 -27
  137. package/dist/assets/adapters/next/templates/renderers/integration-runtime/render-core-storage-provider.ts +0 -27
  138. package/dist/assets/adapters/next/templates/renderers/snapshots/barrels/render-db-barrel.ts +0 -8
  139. package/dist/assets/adapters/next/templates/renderers/snapshots/barrels/render-navigation-barrel.ts +0 -63
  140. package/dist/assets/adapters/next/templates/renderers/snapshots/barrels/render-webhook-events-barrel.ts +0 -16
@@ -1,53 +0,0 @@
1
- export function renderTextareaFieldChangeHandlerTemplate({
2
- indent,
3
- defaultValueFromHandler
4
- }: {
5
- indent: string
6
- defaultValueFromHandler: string
7
- }): string {
8
- return `value={formField.value ?? ''}
9
- ${indent} onChange={(event) => {
10
- ${indent} ${defaultValueFromHandler}(event.target.value)
11
- ${indent} formField.onChange(event)
12
- ${indent} }}
13
- ${indent} onBlur={formField.onBlur}
14
- ${indent} name={formField.name}
15
- ${indent} ref={formField.ref}`
16
- }
17
-
18
- export function renderTextareaFieldFormFieldTemplate({
19
- indent,
20
- fieldName,
21
- fillFormItemProps,
22
- labelWithDescription,
23
- toLowerCase,
24
- fillControlClass,
25
- fieldProps
26
- }: {
27
- indent: string
28
- fieldName: string
29
- fillFormItemProps: string
30
- labelWithDescription: string
31
- toLowerCase: string
32
- fillControlClass: string
33
- fieldProps: string
34
- }): string {
35
- return `${indent}<FormField
36
- ${indent} control={form.control}
37
- ${indent} name="${fieldName}"
38
- ${indent} render={({ field: formField }) => (
39
- ${indent} <FormItem${fillFormItemProps}>
40
- ${indent} ${labelWithDescription}
41
- ${indent} <FormControl>
42
- ${indent} <Textarea
43
- ${indent} placeholder="Enter ${toLowerCase}"
44
- ${indent} className="${fillControlClass}"
45
- ${indent} disabled={isPending}
46
- ${indent} ${fieldProps}
47
- ${indent} />
48
- ${indent} </FormControl>
49
- ${indent} <FormMessage />
50
- ${indent} </FormItem>
51
- ${indent} )}
52
- ${indent}/>`
53
- }
@@ -1,163 +0,0 @@
1
- export function renderListFieldDynamicListFieldTemplate({
2
- indent,
3
- fieldName,
4
- label,
5
- hideLabelProp,
6
- descriptionProp,
7
- fieldMaxItemsContent
8
- }: {
9
- indent: string
10
- fieldName: string
11
- label: string
12
- hideLabelProp: string
13
- descriptionProp: string
14
- fieldMaxItemsContent: string
15
- }): string {
16
- return `${indent}<DynamicListField
17
- ${indent} name="${fieldName}"
18
- ${indent} label="${label}"${hideLabelProp}${descriptionProp}
19
- ${indent} disabled={isPending}${fieldMaxItemsContent}
20
- ${indent} placeholder="Enter value"
21
- ${indent}/>`
22
- }
23
-
24
- export function renderListFieldCardContentTemplate({
25
- indent,
26
- formItemProps,
27
- fieldName,
28
- toLowerCase,
29
- validateExpandedItemExpression,
30
- defaultItem,
31
- pascalFieldName,
32
- singularLabel,
33
- fieldLabelFieldLabel,
34
- label,
35
- listHintJsxContent,
36
- fieldMaxItemsFieldName,
37
- accordionTitle,
38
- nestedFieldsJsx
39
- }: {
40
- indent: string
41
- formItemProps: string
42
- fieldName: string
43
- toLowerCase: string
44
- validateExpandedItemExpression: string
45
- defaultItem: string
46
- pascalFieldName: string
47
- singularLabel: string
48
- fieldLabelFieldLabel: string
49
- label: string
50
- listHintJsxContent: string
51
- fieldMaxItemsFieldName: string
52
- accordionTitle: string
53
- nestedFieldsJsx: string
54
- }): string {
55
- return `${indent}<FormItem${formItemProps}>
56
- ${indent} {${fieldName}FieldArray.fields.length === 0 && (
57
- ${indent} <Card>
58
- ${indent} <CardContent className="flex flex-col items-center justify-center bg-background gap-3">
59
- ${indent} <p>No ${toLowerCase} added yet.</p>
60
- ${indent} <Button
61
- ${indent} type="button"
62
- ${indent} variant="outline"
63
- ${indent} onClick={async () => {
64
- ${indent} if (${fieldName}Expanded) {
65
- ${indent} const expandedIndex = Number(${fieldName}Expanded.replace('item-', '')) - 1
66
- ${indent} if (expandedIndex >= 0) {
67
- ${indent} const isExpandedItemValid = await form.trigger(${validateExpandedItemExpression})
68
- ${indent} if (!isExpandedItemValid) return
69
- ${indent} }
70
- ${indent} }
71
- ${indent} ${fieldName}FieldArray.append(${defaultItem})
72
- ${indent} set${pascalFieldName}Expanded(\`item-\${${fieldName}FieldArray.fields.length + 1}\`)
73
- ${indent} }}
74
- ${indent} disabled={isPending}
75
- ${indent} >
76
- ${indent} <Plus className="size-3" />
77
- ${indent} Add ${singularLabel}
78
- ${indent} </Button>
79
- ${indent} </CardContent>
80
- ${indent} </Card>
81
- ${indent} )}
82
-
83
- ${indent} {${fieldName}FieldArray.fields.length > 0 && (
84
- ${indent} <div className="space-y-4">
85
- ${indent} <div className="flex items-center justify-between gap-3">
86
- ${indent} <FormField
87
- ${indent} control={form.control}
88
- ${indent} name="${fieldName}"
89
- ${indent} render={() => (
90
- ${indent} <FormItem className="flex flex-col gap-1 space-y-0">
91
- ${indent} <FormLabel className="${fieldLabelFieldLabel}">${label}</FormLabel>
92
- ${listHintJsxContent}${indent} </FormItem>
93
- ${indent} )}
94
- ${indent} />
95
- ${indent} <Button
96
- ${indent} type="button"
97
- ${indent} variant="outline"
98
- ${indent} onClick={async () => {
99
- ${indent} if (${fieldName}Expanded) {
100
- ${indent} const expandedIndex = Number(${fieldName}Expanded.replace('item-', '')) - 1
101
- ${indent} if (expandedIndex >= 0) {
102
- ${indent} const isExpandedItemValid = await form.trigger(${validateExpandedItemExpression})
103
- ${indent} if (!isExpandedItemValid) return
104
- ${indent} }
105
- ${indent} }
106
- ${indent} ${fieldName}FieldArray.append(${defaultItem})
107
- ${indent} set${pascalFieldName}Expanded(\`item-\${${fieldName}FieldArray.fields.length + 1}\`)
108
- ${indent} }}
109
- ${indent} disabled={isPending${fieldMaxItemsFieldName}}
110
- ${indent} >
111
- ${indent} <Plus className="size-3" />
112
- ${indent} Add ${singularLabel}
113
- ${indent} </Button>
114
- ${indent} </div>
115
-
116
- ${indent} <Accordion
117
- ${indent} type="single"
118
- ${indent} collapsible
119
- ${indent} value={${fieldName}Expanded}
120
- ${indent} onValueChange={async (nextValue) => {
121
- ${indent} if (${fieldName}Expanded && nextValue && nextValue !== ${fieldName}Expanded) {
122
- ${indent} const expandedIndex = Number(${fieldName}Expanded.replace('item-', '')) - 1
123
- ${indent} if (expandedIndex >= 0) {
124
- ${indent} const isExpandedItemValid = await form.trigger(${validateExpandedItemExpression})
125
- ${indent} if (!isExpandedItemValid) return
126
- ${indent} }
127
- ${indent} }
128
- ${indent} set${pascalFieldName}Expanded(nextValue)
129
- ${indent} }}
130
- ${indent} >
131
- ${indent} {${fieldName}FieldArray.fields.map((item, index) => (
132
- ${indent} <AccordionItem key={item.id} value={\`item-\${index + 1}\`}>
133
- ${indent} <div className="relative">
134
- ${indent} <AccordionTrigger className="flex items-center w-full gap-2 py-2 min-h-12">
135
- ${indent} <span className="w-full pr-16">${accordionTitle}</span>
136
- ${indent} </AccordionTrigger>
137
- ${indent} <Button
138
- ${indent} type="button"
139
- ${indent} variant="ghost"
140
- ${indent} size="icon-sm"
141
- ${indent} className="absolute right-10 top-1/2 -translate-y-1/2 shrink-0"
142
- ${indent} aria-label="Remove ${singularLabel}"
143
- ${indent} onClick={() => {
144
- ${indent} if (isPending) return
145
- ${indent} ${fieldName}FieldArray.remove(index)
146
- ${indent} }}
147
- ${indent} disabled={isPending}
148
- ${indent} >
149
- ${indent} <X />
150
- ${indent} </Button>
151
- ${indent} </div>
152
- ${indent} <AccordionContent>
153
- ${indent} <div className="space-y-4 pt-4 border-t border-border">
154
- ${nestedFieldsJsx}
155
- ${indent} </div>
156
- ${indent} </AccordionContent>
157
- ${indent} </AccordionItem>
158
- ${indent} ))}
159
- ${indent} </Accordion>
160
- ${indent} </div>
161
- ${indent} )}
162
- ${indent}</FormItem>`
163
- }
@@ -1,164 +0,0 @@
1
- export function renderNestedFieldLayoutTemplate({
2
- heading,
3
- indent,
4
- columnsGrid,
5
- groupFields
6
- }: {
7
- heading: string
8
- indent: string
9
- columnsGrid: string
10
- groupFields: string
11
- }): string {
12
- return `${heading}${indent}<div className="grid ${columnsGrid} gap-2">
13
- ${groupFields}
14
- ${indent}</div>`
15
- }
16
-
17
- export function renderNestedFieldDynamicListFieldTemplate({
18
- indent,
19
- pathExpression,
20
- nestedLabel,
21
- hideLabelProp,
22
- descriptionProp,
23
- fieldMaxItemsContent
24
- }: {
25
- indent: string
26
- pathExpression: string
27
- nestedLabel: string
28
- hideLabelProp: string
29
- descriptionProp: string
30
- fieldMaxItemsContent: string
31
- }): string {
32
- return `${indent}<DynamicListField
33
- ${indent} name={${pathExpression}}
34
- ${indent} label="${nestedLabel}"${hideLabelProp}${descriptionProp}
35
- ${indent} disabled={isPending}${fieldMaxItemsContent}
36
- ${indent} placeholder="Enter value"
37
- ${indent}/>`
38
- }
39
-
40
- export function renderNestedFieldFormFieldTemplate({
41
- indent,
42
- pathNameProp,
43
- formItemProps,
44
- labelWithDescription
45
- }: {
46
- indent: string
47
- pathNameProp: string
48
- formItemProps: string
49
- labelWithDescription: string
50
- }): string {
51
- return `${indent}<FormField
52
- ${indent} control={form.control}
53
- ${indent} name=${pathNameProp}
54
- ${indent} render={({ field: formField }) => (
55
- ${indent} <FormItem${formItemProps}>
56
- ${indent} <FormControl>
57
- ${indent} <Checkbox checked={formField.value} onCheckedChange={formField.onChange} disabled={isPending} />
58
- ${indent} </FormControl>
59
- ${indent} ${labelWithDescription}
60
- ${indent} </FormItem>
61
- ${indent} )}
62
- ${indent}/>`
63
- }
64
-
65
- export function renderNestedFieldFormFieldDetailsTemplate({
66
- indent,
67
- pathNameProp,
68
- formItemProps,
69
- labelWithDescription,
70
- acceptProp
71
- }: {
72
- indent: string
73
- pathNameProp: string
74
- formItemProps: string
75
- labelWithDescription: string
76
- acceptProp: string
77
- }): string {
78
- return `${indent}<FormField
79
- ${indent} control={form.control}
80
- ${indent} name=${pathNameProp}
81
- ${indent} render={({ field: formField }) => (
82
- ${indent} <FormItem${formItemProps}>
83
- ${indent} ${labelWithDescription}
84
- ${indent} <FormControl>
85
- ${indent} <MediaField value={formField.value} onChange={formField.onChange} onBlur={formField.onBlur} disabled={isPending}${acceptProp} />
86
- ${indent} </FormControl>
87
- ${indent} <FormMessage />
88
- ${indent} </FormItem>
89
- ${indent} )}
90
- ${indent}/>`
91
- }
92
-
93
- export function renderNestedFieldFormFieldDetailsBranchTemplate({
94
- indent,
95
- pathNameProp,
96
- formItemProps,
97
- labelWithDescription,
98
- toLowerCase
99
- }: {
100
- indent: string
101
- pathNameProp: string
102
- formItemProps: string
103
- labelWithDescription: string
104
- toLowerCase: string
105
- }): string {
106
- return `${indent}<FormField
107
- ${indent} control={form.control}
108
- ${indent} name=${pathNameProp}
109
- ${indent} render={({ field: formField }) => (
110
- ${indent} <FormItem${formItemProps}>
111
- ${indent} ${labelWithDescription}
112
- ${indent} <FormControl>
113
- ${indent} <IconPicker value={formField.value} onValueChange={formField.onChange} triggerPlaceholder="Select ${toLowerCase}" />
114
- ${indent} </FormControl>
115
- ${indent} <FormMessage />
116
- ${indent} </FormItem>
117
- ${indent} )}
118
- ${indent}/>`
119
- }
120
-
121
- export function renderNestedFieldFormFieldDetailsBranchBodyTemplate({
122
- indent,
123
- pathNameProp,
124
- formItemProps,
125
- labelWithDescription,
126
- stepProp,
127
- toLowerCase,
128
- emptyValue
129
- }: {
130
- indent: string
131
- pathNameProp: string
132
- formItemProps: string
133
- labelWithDescription: string
134
- stepProp: string
135
- toLowerCase: string
136
- emptyValue: string
137
- }): string {
138
- return `${indent}<FormField
139
- ${indent} control={form.control}
140
- ${indent} name=${pathNameProp}
141
- ${indent} render={({ field: formField }) => (
142
- ${indent} <FormItem${formItemProps}>
143
- ${indent} ${labelWithDescription}
144
- ${indent} <FormControl>
145
- ${indent} <Input
146
- ${indent} type="number"${stepProp}
147
- ${indent} placeholder="Enter ${toLowerCase}"
148
- ${indent} disabled={isPending}
149
- ${indent} value={formField.value ?? ''}
150
- ${indent} onChange={(event) => {
151
- ${indent} const nextValue = event.target.value === '' ? ${emptyValue} : event.target.valueAsNumber
152
- ${indent} const normalizedValue = Number.isNaN(nextValue) ? ${emptyValue} : nextValue
153
- ${indent} formField.onChange(normalizedValue)
154
- ${indent} }}
155
- ${indent} onBlur={formField.onBlur}
156
- ${indent} name={formField.name}
157
- ${indent} ref={formField.ref}
158
- ${indent} />
159
- ${indent} </FormControl>
160
- ${indent} <FormMessage />
161
- ${indent} </FormItem>
162
- ${indent} )}
163
- ${indent}/>`
164
- }
@@ -1,59 +0,0 @@
1
- export function renderNestedObjectListFieldContentTemplate({
2
- indent,
3
- itemIndexVar,
4
- pathString,
5
- titlePathSuffix,
6
- singularLabel
7
- }: {
8
- indent: string
9
- itemIndexVar: string
10
- pathString: string
11
- titlePathSuffix: string
12
- singularLabel: string
13
- }): string {
14
- return `\n${indent} renderTitle={(${itemIndexVar}) =>
15
- ${indent} String(form.watch(\`${pathString}.\${${itemIndexVar}}${titlePathSuffix}\` as never) || \`${singularLabel} \${${itemIndexVar} + 1}\`)
16
- ${indent} }`
17
- }
18
-
19
- export function renderNestedObjectListFieldNestedObjectListFieldTemplate({
20
- indent,
21
- pathExpression,
22
- stringify,
23
- stringifySerializedValue,
24
- defaultItem,
25
- hideLabelProp,
26
- descriptionProp,
27
- maxItemsProp,
28
- validatePathsProp,
29
- renderTitleProp,
30
- itemIndexVar,
31
- nestedFieldsJsx
32
- }: {
33
- indent: string
34
- pathExpression: string
35
- stringify: string
36
- stringifySerializedValue: string
37
- defaultItem: string
38
- hideLabelProp: string
39
- descriptionProp: string
40
- maxItemsProp: string
41
- validatePathsProp: string
42
- renderTitleProp: string
43
- itemIndexVar: string
44
- nestedFieldsJsx: string
45
- }): string {
46
- return `${indent}<NestedObjectListField
47
- ${indent} name={${pathExpression}}
48
- ${indent} label={${stringify}}
49
- ${indent} singularLabel={${stringifySerializedValue}}
50
- ${indent} defaultValue={${defaultItem}}
51
- ${indent} disabled={isPending}${hideLabelProp}${descriptionProp}${maxItemsProp}${validatePathsProp}${renderTitleProp}
52
- ${indent}>
53
- ${indent} {(${itemIndexVar}) => (
54
- ${indent} <>
55
- ${nestedFieldsJsx}
56
- ${indent} </>
57
- ${indent} )}
58
- ${indent}</NestedObjectListField>`
59
- }
@@ -1,27 +0,0 @@
1
- export function renderTextInputFieldFormFieldTemplate({
2
- indent,
3
- pathNameProp,
4
- formItemProps,
5
- labelWithDescription,
6
- toLowerCase
7
- }: {
8
- indent: string
9
- pathNameProp: string
10
- formItemProps: string
11
- labelWithDescription: string
12
- toLowerCase: string
13
- }): string {
14
- return `${indent}<FormField
15
- ${indent} control={form.control}
16
- ${indent} name=${pathNameProp}
17
- ${indent} render={({ field: formField }) => (
18
- ${indent} <FormItem${formItemProps}>
19
- ${indent} ${labelWithDescription}
20
- ${indent} <FormControl>
21
- ${indent} <Input placeholder="Enter ${toLowerCase}" disabled={isPending} {...formField} />
22
- ${indent} </FormControl>
23
- ${indent} <FormMessage />
24
- ${indent} </FormItem>
25
- ${indent} )}
26
- ${indent}/>`
27
- }