betterstart-cli 0.0.104 → 0.0.106

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 (159) hide show
  1. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-body.tsx +20 -0
  2. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-cell.tsx +20 -0
  3. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-head.tsx +21 -0
  4. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-header.tsx +20 -0
  5. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-row.tsx +22 -0
  6. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid.tsx +7 -81
  7. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/blockquote-button/blockquote-button.tsx +4 -11
  8. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/blockquote-button/blockquote-shortcut-badge.tsx +15 -0
  9. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/code-block-button/code-block-button.tsx +4 -11
  10. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/code-block-button/code-block-shortcut-badge.tsx +15 -0
  11. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/color-highlight-button.tsx +6 -42
  12. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/color-highlight-shortcut-badge.tsx +15 -0
  13. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/highlight-swatch.tsx +34 -0
  14. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/mark-button/mark-button.tsx +5 -14
  15. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/mark-button/mark-shortcut-badge.tsx +18 -0
  16. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/undo-redo-button/history-shortcut-badge.tsx +18 -0
  17. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/undo-redo-button/undo-redo-button.tsx +5 -14
  18. package/dist/assets/shared-assets/react-admin/custom/icon-picker/memoized-icon.tsx +10 -0
  19. package/dist/assets/shared-assets/react-admin/custom/icon-picker.tsx +1 -3
  20. package/dist/cli.js +6432 -5165
  21. package/dist/cli.js.map +1 -1
  22. package/package.json +1 -1
  23. package/dist/assets/adapters/next/templates/renderers/commands/init/banner-art.ts +0 -7
  24. package/dist/assets/adapters/next/templates/renderers/commands/init/verify-database-reachable.ts +0 -30
  25. package/dist/assets/adapters/next/templates/renderers/commands/seed/build-seed-script.ts +0 -171
  26. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/build-authorship-alias-block.ts +0 -4
  27. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/build-authorship-data-fields.ts +0 -4
  28. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/build-format-action-date-source.ts +0 -18
  29. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/build-read-select-option-type.ts +0 -6
  30. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/build-relationship-data-types.ts +0 -25
  31. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/build-result-mapping.ts +0 -62
  32. package/dist/assets/adapters/next/templates/renderers/generators/actions/action-helpers/generate-populate-list-rels-function.ts +0 -50
  33. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/build-restore-many-to-many-statements.ts +0 -27
  34. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/build-select-option-types.ts +0 -37
  35. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-bulk-sort-order-content.ts +0 -93
  36. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-create-content.ts +0 -157
  37. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-create-select-option-content.ts +0 -134
  38. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-delete-bulk-content.ts +0 -85
  39. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-delete-content.ts +0 -66
  40. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-distinct-files.ts +0 -45
  41. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-get-by-id-content.ts +0 -55
  42. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-get-by-slug-content.ts +0 -55
  43. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-get-plural-content.ts +0 -106
  44. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-get-select-options-content.ts +0 -55
  45. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-get-versions-content.ts +0 -19
  46. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-m2m-files.ts +0 -151
  47. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-restore-content.ts +0 -123
  48. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/gen-update-content.ts +0 -187
  49. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/generate-resolve-media-function.ts +0 -40
  50. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/generate-slug-helpers.ts +0 -73
  51. package/dist/assets/adapters/next/templates/renderers/generators/actions/entity-file-contents/generate-version-snapshot-helpers.ts +0 -104
  52. package/dist/assets/adapters/next/templates/renderers/generators/actions/lifecycle-hook-emissions/lifecycle-context.ts +0 -22
  53. package/dist/assets/adapters/next/templates/renderers/generators/actions/lifecycle-hook-emissions/lifecycle-hook-import.ts +0 -4
  54. package/dist/assets/adapters/next/templates/renderers/generators/actions/markdown-renderer.ts +0 -411
  55. package/dist/assets/adapters/next/templates/renderers/generators/actions/select-fields-resolver.ts +0 -99
  56. package/dist/assets/adapters/next/templates/renderers/generators/actions/single-actions/generate-single-actions.ts +0 -292
  57. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-authorship-value.ts +0 -8
  58. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-column-def.ts +0 -297
  59. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-first-column-def.ts +0 -483
  60. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-image-cell-media.ts +0 -38
  61. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-image-element.ts +0 -22
  62. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-relationship-label.ts +0 -26
  63. package/dist/assets/adapters/next/templates/renderers/generators/columns/column-defs/generate-select-label.ts +0 -17
  64. package/dist/assets/adapters/next/templates/renderers/generators/columns/custom-cell.ts +0 -24
  65. package/dist/assets/adapters/next/templates/renderers/generators/columns/generate-columns.ts +0 -55
  66. package/dist/assets/adapters/next/templates/renderers/generators/create-page.ts +0 -16
  67. package/dist/assets/adapters/next/templates/renderers/generators/database/generate-database.ts +0 -5
  68. package/dist/assets/adapters/next/templates/renderers/generators/database/generate-junction-table.ts +0 -27
  69. package/dist/assets/adapters/next/templates/renderers/generators/database/generate-select-options-table.ts +0 -35
  70. package/dist/assets/adapters/next/templates/renderers/generators/database/generate-table-definition.ts +0 -25
  71. package/dist/assets/adapters/next/templates/renderers/generators/dev-mode-integration/build-entity-dev-mode-snippets.ts +0 -180
  72. package/dist/assets/adapters/next/templates/renderers/generators/dev-mode-integration/build-form-dev-mode-snippets.ts +0 -97
  73. package/dist/assets/adapters/next/templates/renderers/generators/dev-mode-integration/build-single-dev-mode-snippets.ts +0 -60
  74. package/dist/assets/adapters/next/templates/renderers/generators/dev-mode-integration/create-dev-mode-integration-artifact.ts +0 -89
  75. package/dist/assets/adapters/next/templates/renderers/generators/dev-mode-integration/lifecycle-hook-code.ts +0 -55
  76. package/dist/assets/adapters/next/templates/renderers/generators/edit-page.ts +0 -33
  77. package/dist/assets/adapters/next/templates/renderers/generators/email-template/generate-email-template.ts +0 -248
  78. package/dist/assets/adapters/next/templates/renderers/generators/email-template/generate-field-value.ts +0 -31
  79. package/dist/assets/adapters/next/templates/renderers/generators/emitted-helpers.ts +0 -16
  80. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/generate-icon-postfix.ts +0 -27
  81. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-boolean-field.ts +0 -47
  82. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-creatable-select-field.ts +0 -122
  83. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-date-field.ts +0 -47
  84. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-default-field.ts +0 -53
  85. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-gallery-field.ts +0 -46
  86. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-group-field.ts +0 -16
  87. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-icon-field.ts +0 -31
  88. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-markdown-field.ts +0 -50
  89. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-media-field.ts +0 -47
  90. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-multi-relationship-field.ts +0 -91
  91. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-multi-select-field.ts +0 -219
  92. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-number-field.ts +0 -48
  93. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-richtext-field.ts +0 -50
  94. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-select-field.ts +0 -61
  95. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-separator-field.ts +0 -16
  96. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-single-relationship-field.ts +0 -93
  97. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx/render-textarea-field.ts +0 -53
  98. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx-nested/render-list-field.ts +0 -163
  99. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx-nested/render-nested-field.ts +0 -164
  100. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx-nested/render-nested-object-list-field.ts +0 -59
  101. package/dist/assets/adapters/next/templates/renderers/generators/form/field-jsx-nested/render-text-input-field.ts +0 -27
  102. package/dist/assets/adapters/next/templates/renderers/generators/form/form-entity/generate-form.ts +0 -822
  103. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/build-default-value-from-sync-functions.ts +0 -41
  104. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/build-ui-imports.ts +0 -58
  105. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/generate-default-value.ts +0 -67
  106. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/generate-nested-list-default-value.ts +0 -13
  107. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/label-with-description.ts +0 -14
  108. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/render-tabs-trigger.ts +0 -18
  109. package/dist/assets/adapters/next/templates/renderers/generators/form/form-shared/select-read-values-expression.ts +0 -21
  110. package/dist/assets/adapters/next/templates/renderers/generators/form/form-single/build-group-creatable-select-handlers.ts +0 -67
  111. package/dist/assets/adapters/next/templates/renderers/generators/form/form-single/build-group-creatable-select-state.ts +0 -29
  112. package/dist/assets/adapters/next/templates/renderers/generators/form/form-single/build-group-field-array-hooks.ts +0 -13
  113. package/dist/assets/adapters/next/templates/renderers/generators/form/form-single/build-group-fields-jsx.ts +0 -30
  114. package/dist/assets/adapters/next/templates/renderers/generators/form/form-single/generate-card-component.ts +0 -129
  115. package/dist/assets/adapters/next/templates/renderers/generators/form/form-single/generate-single-form.ts +0 -66
  116. package/dist/assets/adapters/next/templates/renderers/generators/form-admin/admin-columns/generate-column-def.ts +0 -72
  117. package/dist/assets/adapters/next/templates/renderers/generators/form-admin/admin-columns/generate-columns.ts +0 -89
  118. package/dist/assets/adapters/next/templates/renderers/generators/form-admin/admin-page/generate-page.ts +0 -23
  119. package/dist/assets/adapters/next/templates/renderers/generators/form-admin/admin-page-content.ts +0 -246
  120. package/dist/assets/adapters/next/templates/renderers/generators/form-admin/admin-submission-drawer.ts +0 -216
  121. package/dist/assets/adapters/next/templates/renderers/generators/form-admin/admin-table.ts +0 -273
  122. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-actions/exclusive-date-upper-bound-helper.ts +0 -11
  123. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-actions/generate-form-actions.ts +0 -505
  124. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-multistep/build-component-source.ts +0 -197
  125. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/build-field-error-helper.ts +0 -16
  126. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/error-message-line.ts +0 -13
  127. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/generate-field-jsx.ts +0 -226
  128. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/generate-file-upload-field-jsx.ts +0 -41
  129. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/generate-list-field-jsx.ts +0 -160
  130. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/generate-multiselect-field-jsx.ts +0 -40
  131. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/generate-number-field-jsx.ts +0 -41
  132. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/generate-text-field-jsx.ts +0 -39
  133. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/label-with-description-line.ts +0 -14
  134. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-component-single/build-single-step-form-component-source.ts +0 -100
  135. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-database.ts +0 -29
  136. package/dist/assets/adapters/next/templates/renderers/generators/form-pipeline/form-hook.ts +0 -142
  137. package/dist/assets/adapters/next/templates/renderers/generators/hook/generate-hook.ts +0 -169
  138. package/dist/assets/adapters/next/templates/renderers/generators/hook/generate-single-hook.ts +0 -30
  139. package/dist/assets/adapters/next/templates/renderers/generators/navigation-extract.ts +0 -19
  140. package/dist/assets/adapters/next/templates/renderers/generators/page-content/generate-page-content.ts +0 -419
  141. package/dist/assets/adapters/next/templates/renderers/generators/page.ts +0 -24
  142. package/dist/assets/adapters/next/templates/renderers/generators/row-actions-emitters/build-delete-dialog-source.ts +0 -108
  143. package/dist/assets/adapters/next/templates/renderers/generators/row-actions-emitters/build-row-actions-source.ts +0 -61
  144. package/dist/assets/adapters/next/templates/renderers/generators/single-page.ts +0 -59
  145. package/dist/assets/adapters/next/templates/renderers/generators/sortable-header/build-sort-label-expr.ts +0 -9
  146. package/dist/assets/adapters/next/templates/renderers/generators/sortable-header/build-sortable-header-button-jsx.ts +0 -20
  147. package/dist/assets/adapters/next/templates/renderers/generators/sortable-header/build-sortable-header-def.ts +0 -14
  148. package/dist/assets/adapters/next/templates/renderers/generators/table.ts +0 -284
  149. package/dist/assets/adapters/next/templates/renderers/generators/thankyou-email-template.ts +0 -110
  150. package/dist/assets/adapters/next/templates/renderers/generators/webhook-events/render-extract.ts +0 -14
  151. package/dist/assets/adapters/next/templates/renderers/init/scaffolders/next-config/create-next-config-template.ts +0 -48
  152. package/dist/assets/adapters/next/templates/renderers/init/scaffolders/tailwind/admin-shadow-input-utility.ts +0 -9
  153. package/dist/assets/adapters/next/templates/renderers/init/scaffolders/tailwind/admin-theme-block.ts +0 -42
  154. package/dist/assets/adapters/next/templates/renderers/init/templates/app/admin.ts +0 -12
  155. package/dist/assets/adapters/next/templates/renderers/integration-runtime/render-core-email-provider.ts +0 -27
  156. package/dist/assets/adapters/next/templates/renderers/integration-runtime/render-core-storage-provider.ts +0 -27
  157. package/dist/assets/adapters/next/templates/renderers/snapshots/barrels/render-db-barrel.ts +0 -8
  158. package/dist/assets/adapters/next/templates/renderers/snapshots/barrels/render-navigation-barrel.ts +0 -63
  159. 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
- }