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,248 +0,0 @@
1
- export function renderEmailTemplateContentTemplate({
2
- fLabel,
3
- generateFieldValue
4
- }: {
5
- fLabel: string
6
- generateFieldValue: string
7
- }): string {
8
- return ` <Row style={fieldRow}>
9
- <Text style={label}>${fLabel}</Text>
10
- <Text style={value}>${generateFieldValue}</Text>
11
- </Row>`
12
- }
13
-
14
- export function renderEmailTemplateContentDetailsTemplate(): string {
15
- return `
16
-
17
- {customFields && Object.keys(customFields).length > 0 && (
18
- <>
19
- <Row style={dividerRow}>
20
- <Text style={sectionTitle}>Additional Information</Text>
21
- </Row>
22
- {Object.entries(customFields).map(([fieldKey, fieldValue]) => (
23
- <Row key={fieldKey} style={fieldRow}>
24
- <Text style={label}>{fieldKey.replace(/([A-Z])/g, ' $1').trim()}</Text>
25
- <Text style={value}>{fieldValue !== null && fieldValue !== undefined ? String(fieldValue) : 'N/A'}</Text>
26
- </Row>
27
- ))}
28
- </>
29
- )}`
30
- }
31
-
32
- export function renderEmailTemplateLinkTemplate(): string {
33
- return `
34
- const link = {
35
- color: colors.primary,
36
- fontWeight: '500' as const,
37
- textDecoration: 'none',
38
- }
39
- `
40
- }
41
-
42
- export function renderEmailTemplateListItemTemplate(): string {
43
- return `
44
- const listItem = {
45
- backgroundColor: colors.borderLight,
46
- borderRadius: '6px',
47
- color: colors.text,
48
- fontSize: '14px',
49
- lineHeight: '20px',
50
- marginBottom: '6px',
51
- padding: '8px 12px',
52
- }
53
- `
54
- }
55
-
56
- export function renderEmailTemplateDividerRowTemplate(): string {
57
- return `
58
- const dividerRow = {
59
- borderTop: \`2px solid \${colors.border}\`,
60
- marginTop: '8px',
61
- paddingTop: '24px',
62
- }
63
-
64
- const sectionTitle = {
65
- color: colors.text,
66
- fontSize: '14px',
67
- fontWeight: '600' as const,
68
- margin: '0 0 8px',
69
- }
70
- `
71
- }
72
-
73
- export function renderEmailTemplateComponentTemplate({
74
- needsLinkLink,
75
- pascal,
76
- propsFields,
77
- customFieldsProp,
78
- propsDestructured,
79
- schemaLabel,
80
- fieldSections,
81
- customFieldsSection,
82
- linkStyle,
83
- listItemStyle,
84
- dynamicStyles
85
- }: {
86
- needsLinkLink: string
87
- pascal: string
88
- propsFields: string
89
- customFieldsProp: string
90
- propsDestructured: string
91
- schemaLabel: string
92
- fieldSections: string
93
- customFieldsSection: string
94
- linkStyle: string
95
- listItemStyle: string
96
- dynamicStyles: string
97
- }): string {
98
- return `import { Body, Container, Head, Heading, Html${needsLinkLink}, Preview, Row, Section, Text } from '@react-email/components'
99
-
100
- interface ${pascal}SubmissionEmailProps {
101
- ${propsFields}${customFieldsProp}
102
- submittedAt: string
103
- }
104
-
105
- export function ${pascal}SubmissionEmail({
106
- ${propsDestructured}
107
- }: ${pascal}SubmissionEmailProps) {
108
- return (
109
- <Html>
110
- <Head />
111
- <Preview>New ${schemaLabel} Submission</Preview>
112
- <Body style={main}>
113
- <Container style={container}>
114
- <Section style={header}>
115
- <Text style={logoText}>BetterStart</Text>
116
- </Section>
117
-
118
- <Section style={titleSection}>
119
- <Heading style={h1}>New ${schemaLabel} Submission</Heading>
120
- <Text style={subtitle}>
121
- You received a new submission on {new Date(submittedAt).toLocaleDateString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' })}
122
- </Text>
123
- </Section>
124
-
125
- <Section style={card}>
126
- ${fieldSections}${customFieldsSection}
127
- </Section>
128
-
129
- <Section style={footer}>
130
- <Text style={footerText}>
131
- Submitted at {new Date(submittedAt).toLocaleString('en-US', { hour: 'numeric', minute: '2-digit', hour12: true, timeZoneName: 'short' })}
132
- </Text>
133
- <Text style={footerBrand}>BetterStart</Text>
134
- </Section>
135
- </Container>
136
- </Body>
137
- </Html>
138
- )
139
- }
140
-
141
- const colors = {
142
- primary: '#7c3aed',
143
- background: '#f8fafc',
144
- cardBg: '#ffffff',
145
- text: '#1e293b',
146
- textMuted: '#64748b',
147
- textLight: '#94a3b8',
148
- border: '#e2e8f0',
149
- borderLight: '#f1f5f9',
150
- }
151
-
152
- const main = {
153
- backgroundColor: colors.background,
154
- fontFamily: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
155
- padding: '40px 20px',
156
- }
157
-
158
- const container = {
159
- margin: '0 auto',
160
- maxWidth: '600px',
161
- }
162
-
163
- const header = {
164
- backgroundColor: colors.primary,
165
- borderRadius: '12px 12px 0 0',
166
- padding: '24px 32px',
167
- textAlign: 'center' as const,
168
- }
169
-
170
- const logoText = {
171
- color: '#ffffff',
172
- fontSize: '24px',
173
- fontWeight: '700' as const,
174
- letterSpacing: '-0.02em',
175
- margin: '0',
176
- }
177
-
178
- const titleSection = {
179
- backgroundColor: colors.cardBg,
180
- padding: '32px 32px 24px',
181
- textAlign: 'center' as const,
182
- }
183
-
184
- const h1 = {
185
- color: colors.text,
186
- fontSize: '24px',
187
- fontWeight: '700' as const,
188
- lineHeight: '32px',
189
- margin: '0 0 8px',
190
- }
191
-
192
- const subtitle = {
193
- color: colors.textMuted,
194
- fontSize: '14px',
195
- lineHeight: '20px',
196
- margin: '0',
197
- }
198
-
199
- const card = {
200
- backgroundColor: colors.cardBg,
201
- padding: '0 32px 32px',
202
- }
203
-
204
- const fieldRow = {
205
- borderBottom: \`1px solid \${colors.borderLight}\`,
206
- padding: '16px 0',
207
- }
208
-
209
- const label = {
210
- color: colors.textMuted,
211
- fontSize: '12px',
212
- fontWeight: '600' as const,
213
- letterSpacing: '0.025em',
214
- lineHeight: '16px',
215
- margin: '0 0 6px',
216
- textTransform: 'uppercase' as const,
217
- }
218
-
219
- const value = {
220
- color: colors.text,
221
- fontSize: '16px',
222
- lineHeight: '24px',
223
- margin: '0',
224
- wordBreak: 'break-word' as const,
225
- }
226
- ${linkStyle}${listItemStyle}${dynamicStyles}const footer = {
227
- backgroundColor: colors.cardBg,
228
- borderRadius: '0 0 12px 12px',
229
- borderTop: \`1px solid \${colors.border}\`,
230
- padding: '24px 32px',
231
- textAlign: 'center' as const,
232
- }
233
-
234
- const footerText = {
235
- color: colors.textLight,
236
- fontSize: '12px',
237
- lineHeight: '16px',
238
- margin: '0 0 8px',
239
- }
240
-
241
- const footerBrand = {
242
- color: colors.textMuted,
243
- fontSize: '14px',
244
- fontWeight: '600' as const,
245
- margin: '0',
246
- }
247
- `
248
- }
@@ -1,31 +0,0 @@
1
- export function renderFieldValueContentTemplate({ name }: { name: string }): string {
2
- return `{${name} ? (
3
- <Link href={${name}} style={link}>Download File</Link>
4
- ) : 'No file uploaded'}`
5
- }
6
-
7
- export function renderFieldValueContentDetailsTemplate({ name }: { name: string }): string {
8
- return `{${name} ? (
9
- <Link href={\`mailto:\${${name}}\`} style={link}>{${name}}</Link>
10
- ) : 'N/A'}`
11
- }
12
-
13
- export function renderFieldValueContentDetailsBranchTemplate({ name }: { name: string }): string {
14
- return `{${name} ? (
15
- <Link href={${name}} style={link}>{${name}}</Link>
16
- ) : 'N/A'}`
17
- }
18
-
19
- export function renderFieldValueContentDetailsBranchBodyTemplate({
20
- name
21
- }: {
22
- name: string
23
- }): string {
24
- return `{${name} && Array.isArray(${name}) && ${name}.length > 0 ? (
25
- ${name}.map((item, idx) => (
26
- <Text key={idx} style={listItem}>
27
- {Object.entries(item).map(([k, v]) => \`\${k}: \${v}\`).join(', ')}
28
- </Text>
29
- ))
30
- ) : 'N/A'}`
31
- }
@@ -1,16 +0,0 @@
1
- export function renderBuildLoadingSkeletonSourceGeneratedFunctionTemplate({
2
- componentName,
3
- escapeJsx
4
- }: {
5
- componentName: string
6
- escapeJsx: string
7
- }): string {
8
- return `export function ${componentName}() {
9
- return (
10
- <div className="flex items-center justify-center h-48">
11
- <div className="text-muted-foreground">Loading ${escapeJsx}…</div>
12
- </div>
13
- )
14
- }
15
- `
16
- }
@@ -1,27 +0,0 @@
1
- export function renderIconPostfixFormFieldTemplate({
2
- indent,
3
- fieldName,
4
- formLabel
5
- }: {
6
- indent: string
7
- fieldName: string
8
- formLabel: string
9
- }): string {
10
- return `${indent}<FormField
11
- ${indent} control={form.control}
12
- ${indent} name="${fieldName}Icon"
13
- ${indent} render={({ field: formField }) => (
14
- ${indent} <FormItem>
15
- ${indent} ${formLabel}
16
- ${indent} <FormControl>
17
- ${indent} <IconPicker
18
- ${indent} value={formField.value}
19
- ${indent} onValueChange={formField.onChange}
20
- ${indent} triggerPlaceholder="Select icon"
21
- ${indent} />
22
- ${indent} </FormControl>
23
- ${indent} <FormMessage />
24
- ${indent} </FormItem>
25
- ${indent} )}
26
- ${indent}/>`
27
- }
@@ -1,47 +0,0 @@
1
- export function renderBooleanFieldChangeHandlerTemplate({
2
- indent,
3
- defaultValueFromHandler
4
- }: {
5
- indent: string
6
- defaultValueFromHandler: string
7
- }): string {
8
- return `(checked) => {
9
- ${indent} ${defaultValueFromHandler}(checked)
10
- ${indent} formField.onChange(checked)
11
- ${indent} }`
12
- }
13
-
14
- export function renderBooleanFieldFormFieldTemplate({
15
- indent,
16
- fieldName,
17
- formItemProps,
18
- onCheckedChange,
19
- label,
20
- hintJsxContent
21
- }: {
22
- indent: string
23
- fieldName: string
24
- formItemProps: string
25
- onCheckedChange: string
26
- label: string
27
- hintJsxContent: string
28
- }): string {
29
- return `${indent}<FormField
30
- ${indent} control={form.control}
31
- ${indent} name="${fieldName}"
32
- ${indent} render={({ field: formField }) => (
33
- ${indent} <FormItem${formItemProps}>
34
- ${indent} <FormControl>
35
- ${indent} <Checkbox
36
- ${indent} checked={formField.value}
37
- ${indent} onCheckedChange={${onCheckedChange}}
38
- ${indent} disabled={isPending}
39
- ${indent} />
40
- ${indent} </FormControl>
41
- ${indent} <div className="flex flex-col gap-1">
42
- ${indent} <FormLabel>${label}</FormLabel>${hintJsxContent}
43
- ${indent} </div>
44
- ${indent} </FormItem>
45
- ${indent} )}
46
- ${indent}/>`
47
- }
@@ -1,122 +0,0 @@
1
- export function renderCreatableSelectFieldActionButtonsTemplate({
2
- indent,
3
- fieldName,
4
- optionsVar,
5
- searchVar,
6
- formItemProps,
7
- labelWithDescription,
8
- openVar,
9
- setOpenVar,
10
- stringify,
11
- lowerLabel,
12
- setSearchVar,
13
- defaultValueFromHandlerContent,
14
- pendingVar,
15
- createHandler
16
- }: {
17
- indent: string
18
- fieldName: string
19
- optionsVar: string
20
- searchVar: string
21
- formItemProps: string
22
- labelWithDescription: string
23
- openVar: string
24
- setOpenVar: string
25
- stringify: string
26
- lowerLabel: string
27
- setSearchVar: string
28
- defaultValueFromHandlerContent: string
29
- pendingVar: string
30
- createHandler: string
31
- }): string {
32
- return `${indent}<FormField
33
- ${indent} control={form.control}
34
- ${indent} name="${fieldName}"
35
- ${indent} render={({ field: formField }) => {
36
- ${indent} const selectedOption = ${optionsVar}.find((option) => option.value === formField.value)
37
- ${indent} const createLabel = ${searchVar}.trim()
38
- ${indent} const canCreateOption =
39
- ${indent} createLabel.length > 0 &&
40
- ${indent} !${optionsVar}.some(
41
- ${indent} (option) =>
42
- ${indent} option.label.toLowerCase() === createLabel.toLowerCase() ||
43
- ${indent} option.value.toLowerCase() === createLabel.toLowerCase()
44
- ${indent} )
45
-
46
- ${indent} return (
47
- ${indent} <FormItem${formItemProps}>
48
- ${indent} ${labelWithDescription}
49
- ${indent} <Popover open={${openVar}} onOpenChange={${setOpenVar}}>
50
- ${indent} <PopoverTrigger asChild>
51
- ${indent} <FormControl>
52
- ${indent} <Button
53
- ${indent} type="button"
54
- ${indent} variant="outline"
55
- ${indent} role="combobox"
56
- ${indent} aria-expanded={${openVar}}
57
- ${indent} className={cn("w-full justify-between", {
58
- ${indent} "text-muted-foreground": !selectedOption
59
- ${indent} })}
60
- ${indent} disabled={isPending}
61
- ${indent} >
62
- ${indent} <span className="truncate">{selectedOption?.label ?? ${stringify}}</span>
63
- ${indent} <ChevronsUpDown className="ml-2 size-4 shrink-0 opacity-50" />
64
- ${indent} </Button>
65
- ${indent} </FormControl>
66
- ${indent} </PopoverTrigger>
67
- ${indent} <PopoverContent className="w-(--radix-popover-trigger-width) p-0" align="start">
68
- ${indent} <Command>
69
- ${indent} <CommandInput
70
- ${indent} placeholder="Search ${lowerLabel}..."
71
- ${indent} value={${searchVar}}
72
- ${indent} onValueChange={${setSearchVar}}
73
- ${indent} />
74
- ${indent} <CommandList>
75
- ${indent} <CommandEmpty>No ${lowerLabel} found.</CommandEmpty>
76
- ${indent} <CommandGroup>
77
- ${indent} {${optionsVar}.map((option) => (
78
- ${indent} <CommandItem
79
- ${indent} key={option.value}
80
- ${indent} value={\`\${option.label} \${option.value}\`}
81
- ${indent} onSelect={() => {
82
- ${defaultValueFromHandlerContent}${indent} formField.onChange(option.value)
83
- ${indent} ${setSearchVar}('')
84
- ${indent} ${setOpenVar}(false)
85
- ${indent} }}
86
- ${indent} >
87
- ${indent} <Check className={cn("size-4", {
88
- ${indent} "opacity-100": formField.value === option.value,
89
- ${indent} "opacity-0": formField.value !== option.value
90
- ${indent} })} />
91
- ${indent} <span className="truncate">{option.label}</span>
92
- ${indent} </CommandItem>
93
- ${indent} ))}
94
- ${indent} </CommandGroup>
95
- ${indent} </CommandList>
96
- ${indent} {canCreateOption ? (
97
- ${indent} <>
98
- ${indent} <CommandSeparator />
99
- ${indent} <div className="p-1">
100
- ${indent} <Button
101
- ${indent} type="button"
102
- ${indent} variant="ghost"
103
- ${indent} className="w-full justify-start"
104
- ${indent} disabled={${pendingVar}}
105
- ${indent} aria-busy={${pendingVar}}
106
- ${indent} onClick={() => ${createHandler}(createLabel)}
107
- ${indent} >
108
- ${indent} <Plus className="size-4" />
109
- ${indent} {${pendingVar} ? 'Creating…' : \`Create "\${createLabel}"\`}
110
- ${indent} </Button>
111
- ${indent} </div>
112
- ${indent} </>
113
- ${indent} ) : null}
114
- ${indent} </Command>
115
- ${indent} </PopoverContent>
116
- ${indent} </Popover>
117
- ${indent} <FormMessage />
118
- ${indent} </FormItem>
119
- ${indent} )
120
- ${indent} }}
121
- ${indent}/>`
122
- }
@@ -1,47 +0,0 @@
1
- export function renderDateFieldChangeHandlerTemplate({
2
- indent,
3
- defaultValueFromHandler
4
- }: {
5
- indent: string
6
- defaultValueFromHandler: string
7
- }): string {
8
- return `(value) => {
9
- ${indent} ${defaultValueFromHandler}(value)
10
- ${indent} formField.onChange(value)
11
- ${indent} }`
12
- }
13
-
14
- export function renderDateFieldFormFieldTemplate({
15
- indent,
16
- fieldName,
17
- formItemProps,
18
- labelWithDescription,
19
- onChange,
20
- toLowerCase
21
- }: {
22
- indent: string
23
- fieldName: string
24
- formItemProps: string
25
- labelWithDescription: string
26
- onChange: string
27
- toLowerCase: string
28
- }): string {
29
- return `${indent}<FormField
30
- ${indent} control={form.control}
31
- ${indent} name="${fieldName}"
32
- ${indent} render={({ field: formField }) => (
33
- ${indent} <FormItem${formItemProps}>
34
- ${indent} ${labelWithDescription}
35
- ${indent} <FormControl>
36
- ${indent} <DatePicker
37
- ${indent} value={formField.value}
38
- ${indent} onChange={${onChange}}
39
- ${indent} disabled={isPending}
40
- ${indent} placeholder="Select ${toLowerCase}"
41
- ${indent} />
42
- ${indent} </FormControl>
43
- ${indent} <FormMessage />
44
- ${indent} </FormItem>
45
- ${indent} )}
46
- ${indent}/>`
47
- }
@@ -1,53 +0,0 @@
1
- export function renderDefaultFieldChangeHandlerTemplate({
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 renderDefaultFieldFormFieldTemplate({
19
- indent,
20
- fieldName,
21
- formItemProps,
22
- labelWithDescription,
23
- fieldType,
24
- toLowerCase,
25
- fieldProps
26
- }: {
27
- indent: string
28
- fieldName: string
29
- formItemProps: string
30
- labelWithDescription: string
31
- fieldType: string
32
- toLowerCase: 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${formItemProps}>
40
- ${indent} ${labelWithDescription}
41
- ${indent} <FormControl>
42
- ${indent} <Input
43
- ${indent} type="${fieldType}"
44
- ${indent} placeholder="Enter ${toLowerCase}"
45
- ${indent} disabled={isPending}
46
- ${indent} ${fieldProps}
47
- ${indent} />
48
- ${indent} </FormControl>
49
- ${indent} <FormMessage />
50
- ${indent} </FormItem>
51
- ${indent} )}
52
- ${indent}/>`
53
- }
@@ -1,46 +0,0 @@
1
- export function renderGalleryFieldChangeHandlerTemplate({
2
- indent,
3
- defaultValueFromHandler
4
- }: {
5
- indent: string
6
- defaultValueFromHandler: string
7
- }): string {
8
- return `(value) => {
9
- ${indent} ${defaultValueFromHandler}(value)
10
- ${indent} formField.onChange(value)
11
- ${indent} }`
12
- }
13
-
14
- export function renderGalleryFieldFormFieldTemplate({
15
- indent,
16
- fieldName,
17
- formItemProps,
18
- labelWithDescription,
19
- onChange,
20
- maxItemsProp
21
- }: {
22
- indent: string
23
- fieldName: string
24
- formItemProps: string
25
- labelWithDescription: string
26
- onChange: string
27
- maxItemsProp: string
28
- }): string {
29
- return `${indent}<FormField
30
- ${indent} control={form.control}
31
- ${indent} name="${fieldName}"
32
- ${indent} render={({ field: formField }) => (
33
- ${indent} <FormItem${formItemProps}>
34
- ${indent} ${labelWithDescription}
35
- ${indent} <FormControl>
36
- ${indent} <GalleryField
37
- ${indent} value={formField.value}
38
- ${indent} onChange={${onChange}}
39
- ${indent} disabled={isPending}${maxItemsProp}
40
- ${indent} />
41
- ${indent} </FormControl>
42
- ${indent} <FormMessage />
43
- ${indent} </FormItem>
44
- ${indent} )}
45
- ${indent}/>`
46
- }
@@ -1,16 +0,0 @@
1
- export function renderGroupFieldLayoutTemplate({
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 `
13
- ${heading}${indent} <div className="grid ${columnsGrid} gap-5">
14
- ${groupFields}
15
- ${indent}</div>`
16
- }
@@ -1,31 +0,0 @@
1
- export function renderIconFieldFormFieldTemplate({
2
- indent,
3
- fieldName,
4
- formItemProps,
5
- labelWithDescription,
6
- toLowerCase
7
- }: {
8
- indent: string
9
- fieldName: string
10
- formItemProps: string
11
- labelWithDescription: string
12
- toLowerCase: string
13
- }): string {
14
- return `${indent}<FormField
15
- ${indent} control={form.control}
16
- ${indent} name="${fieldName}"
17
- ${indent} render={({ field: formField }) => (
18
- ${indent} <FormItem${formItemProps}>
19
- ${indent} ${labelWithDescription}
20
- ${indent} <FormControl>
21
- ${indent} <IconPicker
22
- ${indent} value={formField.value}
23
- ${indent} onValueChange={formField.onChange}
24
- ${indent} triggerPlaceholder="Select ${toLowerCase}"
25
- ${indent} />
26
- ${indent} </FormControl>
27
- ${indent} <FormMessage />
28
- ${indent} </FormItem>
29
- ${indent} )}
30
- ${indent}/>`
31
- }