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,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
- }