betterstart-cli 0.0.119 → 0.0.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/adapters/next/integrations/resend/actions/render-password-reset-email.ts +5 -5
- package/dist/assets/adapters/next/templates/init/admin-globals.css +35 -23
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-branding-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu-skeleton.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/components/layouts/content-skeleton.tsx +13 -13
- package/dist/assets/adapters/next/templates/init/components/layouts/sidebar-branding.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-body.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-header.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-table-pagination.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/copyable-code-block.tsx +3 -7
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/lifecycle-hooks-tab.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/plain-code-fallback.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/snippets-tab.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/dev-mode-integrate.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/entity-metadata.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-item.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-current-row.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-drawer.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/media/edit-media-dialog-content.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-drawer.tsx +5 -5
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-item.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-pagination.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-preview.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/media/media-url-importer.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/page-header.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/sort-order-drag-overlay-item.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/components/shared/sort-order-item.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/dashboard-page.tsx +3 -3
- package/dist/assets/adapters/next/templates/init/pages/forgot-password-form.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/forgot-password-page-skeleton.tsx +8 -8
- package/dist/assets/adapters/next/templates/init/pages/login-form.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/login-page-skeleton.tsx +8 -8
- package/dist/assets/adapters/next/templates/init/pages/minimal-account-shell.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/profile/profile-form.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/reset-password-form.tsx +3 -6
- package/dist/assets/adapters/next/templates/init/pages/reset-password-page-skeleton.tsx +8 -8
- package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-columns.tsx +4 -4
- package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-row.tsx +2 -2
- package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-columns.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/delete-webhook-dialog.tsx +1 -1
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhook-endpoint-dialog.tsx +12 -16
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-columns.tsx +9 -9
- package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-columns.tsx +7 -7
- package/dist/assets/adapters/next/templates/init/pages/users/columns.tsx +4 -4
- package/dist/assets/adapters/next/templates/init/utils/editor/inline-math-node-view.ts +1 -1
- package/dist/assets/adapters/next/templates/init/utils/editor/raw-content-block-node-view.ts +1 -1
- package/dist/assets/adapters/next/templates/init/utils/email/render-form-submission-rows.ts +1 -1
- package/dist/assets/adapters/next/templates/init/utils/email/render-notification-email.ts +3 -3
- package/dist/assets/adapters/next/templates/init/utils/email/render-thank-you-email.ts +3 -3
- package/dist/assets/shared-assets/react-admin/custom/content-editor/index.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/math-bubble-menu.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/math-editor-controls.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/remove-table-part-icon.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/selection-bubble-menu.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/slash-command-menu.tsx +2 -4
- package/dist/assets/shared-assets/react-admin/custom/content-editor/source-mode.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/table-add-controls.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/custom/content-editor/table-bubble-menu.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-node/removable-image-node/removable-image-node.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/highlight-swatch.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover-content.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/highlight-color-button.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/source-color-highlight-popover.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/date-range-picker.tsx +9 -10
- package/dist/assets/shared-assets/react-admin/custom/dynamic-list-field.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/gallery-field.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/custom/icon-picker.tsx +2 -3
- package/dist/assets/shared-assets/react-admin/custom/icons-column-skeleton.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/media-field.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/custom/nested-object-list-field.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/placeholder-card.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/custom/placeholder.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/custom/sortable-gallery-item.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/custom/upload-dropzone.tsx +3 -5
- package/dist/assets/shared-assets/react-admin/ui/accordion.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/alert-dialog.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/alert.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/avatar.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/badge.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/breadcrumb.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/button-group.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/button.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/calendar.tsx +15 -21
- package/dist/assets/shared-assets/react-admin/ui/card.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/carousel.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/chart.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/checkbox.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/combobox.tsx +6 -6
- package/dist/assets/shared-assets/react-admin/ui/context-menu.tsx +7 -7
- package/dist/assets/shared-assets/react-admin/ui/dialog.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/drawer.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/dropdown-menu.tsx +8 -8
- package/dist/assets/shared-assets/react-admin/ui/empty.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/field.tsx +6 -12
- package/dist/assets/shared-assets/react-admin/ui/form.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/hover-card.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/input-group.tsx +6 -6
- package/dist/assets/shared-assets/react-admin/ui/input-otp.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/input.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/item.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/kbd.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/label.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/menubar.tsx +10 -10
- package/dist/assets/shared-assets/react-admin/ui/native-select.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/navigation-menu.tsx +5 -5
- package/dist/assets/shared-assets/react-admin/ui/popover.tsx +3 -7
- package/dist/assets/shared-assets/react-admin/ui/progress.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/radio-group.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/resizable.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/scroll-area.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/select.tsx +4 -4
- package/dist/assets/shared-assets/react-admin/ui/sheet.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/sidebar.tsx +16 -16
- package/dist/assets/shared-assets/react-admin/ui/skeleton.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/slider.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/switch.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/table.tsx +2 -6
- package/dist/assets/shared-assets/react-admin/ui/tabs.tsx +3 -3
- package/dist/assets/shared-assets/react-admin/ui/textarea.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/toggle-group.tsx +2 -2
- package/dist/assets/shared-assets/react-admin/ui/toggle.tsx +1 -1
- package/dist/assets/shared-assets/react-admin/ui/tooltip.tsx +2 -2
- package/dist/cli.js +105 -77
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -4442,7 +4442,7 @@ function renderFieldJsxChangeHandlerTemplate({
|
|
|
4442
4442
|
jsString: jsString2,
|
|
4443
4443
|
escapeJsx: escapeJsx2
|
|
4444
4444
|
}) {
|
|
4445
|
-
return ` <label htmlFor="${escapeAttribute2}" className="flex items-center gap-2
|
|
4445
|
+
return ` <label htmlFor="${escapeAttribute2}" className="flex items-center gap-2 font-medium leading-none">
|
|
4446
4446
|
<input
|
|
4447
4447
|
type="radio"
|
|
4448
4448
|
id="${escapeAttribute2}"
|
|
@@ -4515,7 +4515,7 @@ function renderFieldJsxChangeHandlerEscapedJsxTemplate({
|
|
|
4515
4515
|
jsString: jsString2,
|
|
4516
4516
|
escapeJsx: escapeJsx2
|
|
4517
4517
|
}) {
|
|
4518
|
-
return ` <label htmlFor="${escapeAttribute2}" className="flex items-center gap-2
|
|
4518
|
+
return ` <label htmlFor="${escapeAttribute2}" className="flex items-center gap-2 font-medium leading-none">
|
|
4519
4519
|
<input
|
|
4520
4520
|
type="checkbox"
|
|
4521
4521
|
id="${escapeAttribute2}"
|
|
@@ -4612,7 +4612,7 @@ function renderErrorMessageLineLayoutTemplate({
|
|
|
4612
4612
|
pathExpression: pathExpression2
|
|
4613
4613
|
}) {
|
|
4614
4614
|
return `${indent}{getFieldErrorMessage(form.formState, watchedValues, revealErrors, ${pathExpression2}) ? (
|
|
4615
|
-
${indent} <p className="text-
|
|
4615
|
+
${indent} <p className="text-destructive">
|
|
4616
4616
|
${indent} {getFieldErrorMessage(form.formState, watchedValues, revealErrors, ${pathExpression2})}
|
|
4617
4617
|
${indent} </p>
|
|
4618
4618
|
${indent}) : null}`;
|
|
@@ -4635,15 +4635,16 @@ function fieldContainerClass(height, className = "space-y-2") {
|
|
|
4635
4635
|
// adapters/next/generators/form-pipeline/form-component-shared/field-description-line.ts
|
|
4636
4636
|
function fieldDescriptionLine(name, hint) {
|
|
4637
4637
|
if (!hint) return "";
|
|
4638
|
-
return `<p id="${escapeAttribute(name)}-description" className="text-
|
|
4638
|
+
return `<p id="${escapeAttribute(name)}-description" className="text-muted-foreground">${escapeJsx(hint)}</p>`;
|
|
4639
4639
|
}
|
|
4640
4640
|
|
|
4641
4641
|
// adapters/next/generators/form-pipeline/form-component-shared/form-label-line.ts
|
|
4642
4642
|
function formLabelLine(name, label, requiredStar, className) {
|
|
4643
|
-
const classes = className ?? "
|
|
4643
|
+
const classes = className ?? "font-medium leading-none";
|
|
4644
|
+
const classAttribute = classes ? ` className="${classes}"` : "";
|
|
4644
4645
|
if (!label)
|
|
4645
4646
|
return `<label htmlFor="${escapeAttribute(name)}" className="sr-only">${escapeJsx(humanizeName(name))}${requiredStar}</label>`;
|
|
4646
|
-
return `<label htmlFor="${escapeAttribute(name)}"
|
|
4647
|
+
return `<label htmlFor="${escapeAttribute(name)}"${classAttribute}>${label}${requiredStar}</label>`;
|
|
4647
4648
|
}
|
|
4648
4649
|
|
|
4649
4650
|
// adapters/next/templates/renderers/generators/form-pipeline/form-component-shared/label-with-description-line.ts
|
|
@@ -4714,7 +4715,7 @@ ${errorMessageLine2}
|
|
|
4714
4715
|
|
|
4715
4716
|
// adapters/next/generators/form-pipeline/form-component-shared/input-class.ts
|
|
4716
4717
|
function inputClass(height) {
|
|
4717
|
-
const base = "h-9 w-full rounded
|
|
4718
|
+
const base = "h-9 w-full rounded border border-input bg-transparent px-3 py-1 shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50";
|
|
4718
4719
|
return height === "fill" ? `${base} flex-1` : base;
|
|
4719
4720
|
}
|
|
4720
4721
|
|
|
@@ -4754,7 +4755,7 @@ function renderListFieldJsxFieldControllerTemplate({
|
|
|
4754
4755
|
name={\`${name}.\${index}.${nfName}\`}
|
|
4755
4756
|
render={({ field }) => (
|
|
4756
4757
|
<div className="flex-1 space-y-2">
|
|
4757
|
-
<label htmlFor={field.name} className="
|
|
4758
|
+
<label htmlFor={field.name} className="font-medium leading-none">${nfLabelRaw}</label>
|
|
4758
4759
|
<select
|
|
4759
4760
|
id={field.name}
|
|
4760
4761
|
value={field.value ?? ''}
|
|
@@ -4785,7 +4786,7 @@ function renderListFieldJsxFieldControllerFieldNameTemplate({
|
|
|
4785
4786
|
name={\`${name}.\${index}.${nfName}\`}
|
|
4786
4787
|
render={({ field }) => (
|
|
4787
4788
|
<div className="flex-1 space-y-2">
|
|
4788
|
-
<label htmlFor={field.name} className="
|
|
4789
|
+
<label htmlFor={field.name} className="font-medium leading-none">${nfLabelRaw}</label>
|
|
4789
4790
|
<input
|
|
4790
4791
|
id={field.name}
|
|
4791
4792
|
type="number"
|
|
@@ -4819,7 +4820,7 @@ function renderListFieldJsxFieldControllerFieldNameFieldTemplate({
|
|
|
4819
4820
|
name={\`${name}.\${index}.${nfName}\`}
|
|
4820
4821
|
render={({ field }) => (
|
|
4821
4822
|
<div className="flex-1 space-y-2">
|
|
4822
|
-
<label htmlFor={field.name} className="
|
|
4823
|
+
<label htmlFor={field.name} className="font-medium leading-none">${nfLabelRaw}</label>
|
|
4823
4824
|
<input
|
|
4824
4825
|
id={field.name}
|
|
4825
4826
|
type="text"
|
|
@@ -4846,11 +4847,11 @@ function renderListFieldJsxClickHandlerTemplate({
|
|
|
4846
4847
|
return ` <div className="space-y-2">
|
|
4847
4848
|
${labelWithDescriptionLine2}
|
|
4848
4849
|
{${name}FieldArray.fields.map((item, index) => (
|
|
4849
|
-
<div key={item.id} className="relative rounded
|
|
4850
|
+
<div key={item.id} className="relative rounded border p-4">
|
|
4850
4851
|
<button
|
|
4851
4852
|
type="button"
|
|
4852
4853
|
onClick={() => ${name}FieldArray.remove(index)}
|
|
4853
|
-
className="absolute right-2 top-2 inline-flex h-7 w-7 items-center justify-center rounded
|
|
4854
|
+
className="absolute right-2 top-2 inline-flex h-7 w-7 items-center justify-center rounded text-muted-foreground hover:bg-destructive/10 hover:text-destructive"
|
|
4854
4855
|
>
|
|
4855
4856
|
<Trash2 className="size-4" />
|
|
4856
4857
|
<span className="sr-only">Remove</span>
|
|
@@ -4863,7 +4864,7 @@ ${nestedFieldsJsx}
|
|
|
4863
4864
|
<button
|
|
4864
4865
|
type="button"
|
|
4865
4866
|
onClick={() => ${name}FieldArray.append({ ${defaultObj} })}
|
|
4866
|
-
className="inline-flex h-9 items-center justify-center rounded
|
|
4867
|
+
className="inline-flex h-9 items-center justify-center rounded border border-input bg-background px-4 py-2 font-medium shadow-xs transition-colors hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50"
|
|
4867
4868
|
>
|
|
4868
4869
|
Add ${singularLabel}
|
|
4869
4870
|
</button>
|
|
@@ -5012,7 +5013,7 @@ function generateListFieldJSX(field, name, label, hintJSX, requiredStar) {
|
|
|
5012
5013
|
kind: "renderListFieldJsxClickHandlerTemplate",
|
|
5013
5014
|
props: {
|
|
5014
5015
|
labelWithDescriptionLine: labelWithDescriptionLine(
|
|
5015
|
-
formLabelLine(name, label, requiredStar, "
|
|
5016
|
+
formLabelLine(name, label, requiredStar, "font-medium leading-none"),
|
|
5016
5017
|
hintJSX,
|
|
5017
5018
|
" "
|
|
5018
5019
|
),
|
|
@@ -5136,7 +5137,7 @@ function generateNumberFieldJSX(name, label, placeholder, hintJSX, requiredStar,
|
|
|
5136
5137
|
|
|
5137
5138
|
// adapters/next/generators/form-pipeline/form-component-shared/textarea-class.ts
|
|
5138
5139
|
function textareaClass(height) {
|
|
5139
|
-
const base = "min-h-24 w-full rounded
|
|
5140
|
+
const base = "min-h-24 w-full rounded border border-input bg-transparent px-3 py-2 shadow-xs outline-none transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50";
|
|
5140
5141
|
return height === "fill" ? `${base} flex-1` : base;
|
|
5141
5142
|
}
|
|
5142
5143
|
|
|
@@ -5556,8 +5557,8 @@ ${pFieldArraySetup}${pWatchSetup}
|
|
|
5556
5557
|
|
|
5557
5558
|
if (submitted) {
|
|
5558
5559
|
return (
|
|
5559
|
-
<div className="rounded
|
|
5560
|
-
<h3 className="
|
|
5560
|
+
<div className="rounded border p-6 text-center">
|
|
5561
|
+
<h3 className="font-semibold">Thank you!</h3>
|
|
5561
5562
|
<p className="mt-2 text-muted-foreground">${pSuccessMessage}</p>
|
|
5562
5563
|
</div>
|
|
5563
5564
|
)
|
|
@@ -5566,9 +5567,9 @@ ${pFieldArraySetup}${pWatchSetup}
|
|
|
5566
5567
|
return (
|
|
5567
5568
|
<form onSubmit={(event) => event.preventDefault()} className="space-y-8">
|
|
5568
5569
|
<div>
|
|
5569
|
-
<h3 className="
|
|
5570
|
+
<h3 className="font-semibold">{STEPS[currentStep].label}</h3>
|
|
5570
5571
|
{'description' in STEPS[currentStep] && STEPS[currentStep].description && (
|
|
5571
|
-
<p className="text-
|
|
5572
|
+
<p className="text-muted-foreground mt-1">{STEPS[currentStep].description}</p>
|
|
5572
5573
|
)}
|
|
5573
5574
|
</div>
|
|
5574
5575
|
|
|
@@ -5577,7 +5578,7 @@ ${pStepContentBlocks}
|
|
|
5577
5578
|
</div>
|
|
5578
5579
|
|
|
5579
5580
|
{form.formState.errors.root && (
|
|
5580
|
-
<p className="text-
|
|
5581
|
+
<p className="text-destructive">{form.formState.errors.root.message}</p>
|
|
5581
5582
|
)}
|
|
5582
5583
|
|
|
5583
5584
|
<div className="flex justify-between">
|
|
@@ -5585,7 +5586,7 @@ ${pStepContentBlocks}
|
|
|
5585
5586
|
type="button"
|
|
5586
5587
|
onClick={handleBack}
|
|
5587
5588
|
disabled={currentStep === 0}
|
|
5588
|
-
className="inline-flex h-9 items-center justify-center rounded
|
|
5589
|
+
className="inline-flex h-9 items-center justify-center rounded border border-input bg-background px-4 py-2 font-medium shadow-xs transition-colors hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50"
|
|
5589
5590
|
>
|
|
5590
5591
|
<ChevronLeft className="size-4" />
|
|
5591
5592
|
Back
|
|
@@ -5594,7 +5595,7 @@ ${pStepContentBlocks}
|
|
|
5594
5595
|
<button
|
|
5595
5596
|
type="button"
|
|
5596
5597
|
onClick={handleNext}
|
|
5597
|
-
className="inline-flex h-9 items-center justify-center rounded
|
|
5598
|
+
className="inline-flex h-9 items-center justify-center rounded bg-primary px-4 py-2 font-medium text-primary-foreground shadow-xs transition-colors hover:bg-primary/90 disabled:pointer-events-none disabled:opacity-50"
|
|
5598
5599
|
>
|
|
5599
5600
|
Next
|
|
5600
5601
|
<ChevronRight className="ml-2 size-4" />
|
|
@@ -5605,7 +5606,7 @@ ${pStepContentBlocks}
|
|
|
5605
5606
|
disabled={submitting}
|
|
5606
5607
|
aria-busy={submitting}
|
|
5607
5608
|
onClick={() => form.handleSubmit(onSubmit)()}
|
|
5608
|
-
className="inline-flex h-9 items-center justify-center rounded
|
|
5609
|
+
className="inline-flex h-9 items-center justify-center rounded bg-primary px-4 py-2 font-medium text-primary-foreground shadow-xs transition-colors hover:bg-primary/90 disabled:pointer-events-none disabled:opacity-50"
|
|
5609
5610
|
>
|
|
5610
5611
|
{submitting ? 'Submitting\u2026' : ${pSubmitText}}
|
|
5611
5612
|
</button>
|
|
@@ -5803,8 +5804,8 @@ ${fieldArraySetup}${watchSetup}
|
|
|
5803
5804
|
|
|
5804
5805
|
if (submitted) {
|
|
5805
5806
|
return (
|
|
5806
|
-
<div className="rounded
|
|
5807
|
-
<h3 className="
|
|
5807
|
+
<div className="rounded border p-6 text-center">
|
|
5808
|
+
<h3 className="font-semibold">Thank you!</h3>
|
|
5808
5809
|
<p className="mt-2 text-muted-foreground">${successMessage}</p>
|
|
5809
5810
|
</div>
|
|
5810
5811
|
)
|
|
@@ -5815,14 +5816,14 @@ ${fieldArraySetup}${watchSetup}
|
|
|
5815
5816
|
${fieldJsx}
|
|
5816
5817
|
|
|
5817
5818
|
{form.formState.errors.root && (
|
|
5818
|
-
<p className="text-
|
|
5819
|
+
<p className="text-destructive">{form.formState.errors.root.message}</p>
|
|
5819
5820
|
)}
|
|
5820
5821
|
|
|
5821
5822
|
<button
|
|
5822
5823
|
type="submit"
|
|
5823
5824
|
disabled={submitting}
|
|
5824
5825
|
aria-busy={submitting}
|
|
5825
|
-
className="inline-flex h-9 items-center justify-center rounded
|
|
5826
|
+
className="inline-flex h-9 items-center justify-center rounded bg-primary px-4 py-2 font-medium text-primary-foreground shadow-xs transition-colors hover:bg-primary/90 disabled:pointer-events-none disabled:opacity-50"
|
|
5826
5827
|
>
|
|
5827
5828
|
{submitting ? 'Submitting\u2026' : ${submitText}}
|
|
5828
5829
|
</button>
|
|
@@ -6520,7 +6521,7 @@ function renderBuildSortableHeaderButtonJsxActionButtonsTemplate({
|
|
|
6520
6521
|
return `<Button
|
|
6521
6522
|
variant="ghost"
|
|
6522
6523
|
onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
|
|
6523
|
-
className="${className} min-w-0 justify-start overflow-hidden px-0! border-none
|
|
6524
|
+
className="${className} min-w-0 justify-start overflow-hidden px-0! border-none bg-transparent! scale-100! group"
|
|
6524
6525
|
aria-label={\`Sort by ${escapeTemplateText2}, \${sortLabel}\`}
|
|
6525
6526
|
aria-sort={sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'}
|
|
6526
6527
|
>
|
|
@@ -6650,7 +6651,7 @@ function buildColumnSize(size) {
|
|
|
6650
6651
|
function renderColumnDefLayoutTemplate({ colAccessorKey }) {
|
|
6651
6652
|
return `cell: ({ row }) => {
|
|
6652
6653
|
const email = row.getValue('${colAccessorKey}') as string
|
|
6653
|
-
return <div className="
|
|
6654
|
+
return <div className="font-medium">{email || '-'}</div>
|
|
6654
6655
|
}`;
|
|
6655
6656
|
}
|
|
6656
6657
|
function renderColumnDefDateTemplate({ colAccessorKey }) {
|
|
@@ -7135,8 +7136,8 @@ function generatePage(pascal, kebab) {
|
|
|
7135
7136
|
// adapters/next/templates/renderers/generators/form-admin/admin-submission-drawer.ts
|
|
7136
7137
|
function renderSubmissionDrawerEmailField({ lbl, name }) {
|
|
7137
7138
|
return ` <div className="space-y-1">
|
|
7138
|
-
<p className="
|
|
7139
|
-
<p
|
|
7139
|
+
<p className="font-medium text-muted-foreground">${lbl}</p>
|
|
7140
|
+
<p>
|
|
7140
7141
|
{submission.${name} ? (
|
|
7141
7142
|
<a href={\`mailto:\${submission.${name}}\`} className="text-primary hover:underline">{submission.${name}}</a>
|
|
7142
7143
|
) : '-'}
|
|
@@ -7148,26 +7149,26 @@ function renderSubmissionDrawerMultilineField({
|
|
|
7148
7149
|
name
|
|
7149
7150
|
}) {
|
|
7150
7151
|
return ` <div className="space-y-1">
|
|
7151
|
-
<p className="
|
|
7152
|
-
<p className="
|
|
7152
|
+
<p className="font-medium text-muted-foreground">${lbl}</p>
|
|
7153
|
+
<p className="whitespace-pre-wrap">{submission.${name} || '-'}</p>
|
|
7153
7154
|
</div>`;
|
|
7154
7155
|
}
|
|
7155
7156
|
function renderSubmissionDrawerBooleanField({ lbl, name }) {
|
|
7156
7157
|
return ` <div className="space-y-1">
|
|
7157
|
-
<p className="
|
|
7158
|
-
<p
|
|
7158
|
+
<p className="font-medium text-muted-foreground">${lbl}</p>
|
|
7159
|
+
<p>{submission.${name} ? 'Yes' : 'No'}</p>
|
|
7159
7160
|
</div>`;
|
|
7160
7161
|
}
|
|
7161
7162
|
function renderSubmissionDrawerDateField({ lbl, name }) {
|
|
7162
7163
|
return ` <div className="space-y-1">
|
|
7163
|
-
<p className="
|
|
7164
|
-
<p
|
|
7164
|
+
<p className="font-medium text-muted-foreground">${lbl}</p>
|
|
7165
|
+
<p>{submission.${name} ? new Date(submission.${name}).toLocaleDateString() : '-'}</p>
|
|
7165
7166
|
</div>`;
|
|
7166
7167
|
}
|
|
7167
7168
|
function renderSubmissionDrawerUrlField({ lbl, name }) {
|
|
7168
7169
|
return ` <div className="space-y-1">
|
|
7169
|
-
<p className="
|
|
7170
|
-
<p
|
|
7170
|
+
<p className="font-medium text-muted-foreground">${lbl}</p>
|
|
7171
|
+
<p>
|
|
7171
7172
|
{submission.${name} ? (
|
|
7172
7173
|
<a href={submission.${name}} target="_blank" rel="noopener noreferrer" className="text-primary hover:underline break-all">{submission.${name}}</a>
|
|
7173
7174
|
) : '-'}
|
|
@@ -7176,8 +7177,8 @@ function renderSubmissionDrawerUrlField({ lbl, name }) {
|
|
|
7176
7177
|
}
|
|
7177
7178
|
function renderSubmissionDrawerListField({ lbl, name }) {
|
|
7178
7179
|
return ` <div className="space-y-1">
|
|
7179
|
-
<p className="
|
|
7180
|
-
<div
|
|
7180
|
+
<p className="font-medium text-muted-foreground">${lbl}</p>
|
|
7181
|
+
<div>
|
|
7181
7182
|
{Array.isArray(submission.${name}) && submission.${name}.length > 0 ? (
|
|
7182
7183
|
<ul className="list-inside list-disc space-y-1">
|
|
7183
7184
|
{submission.${name}.map((item: unknown) => {
|
|
@@ -7195,19 +7196,19 @@ function renderSubmissionDrawerListField({ lbl, name }) {
|
|
|
7195
7196
|
}
|
|
7196
7197
|
function renderSubmissionDrawerValueField({ lbl, name }) {
|
|
7197
7198
|
return ` <div className="space-y-1">
|
|
7198
|
-
<p className="
|
|
7199
|
-
<p
|
|
7199
|
+
<p className="font-medium text-muted-foreground">${lbl}</p>
|
|
7200
|
+
<p>{submission.${name} ?? '-'}</p>
|
|
7200
7201
|
</div>`;
|
|
7201
7202
|
}
|
|
7202
7203
|
function renderSubmissionDrawerCustomFieldsSection() {
|
|
7203
7204
|
return `
|
|
7204
7205
|
{submission.customFields && Object.keys(submission.customFields).length > 0 && (
|
|
7205
7206
|
<div className="space-y-3 border-t pt-4">
|
|
7206
|
-
<p className="
|
|
7207
|
+
<p className="font-semibold text-muted-foreground">Custom Fields</p>
|
|
7207
7208
|
{Object.entries(submission.customFields).map(([key, value]) => (
|
|
7208
7209
|
<div key={key} className="space-y-1">
|
|
7209
|
-
<p className="
|
|
7210
|
-
<p
|
|
7210
|
+
<p className="font-medium capitalize">{key.replace(/([A-Z])/g, ' $1').trim()}</p>
|
|
7211
|
+
<p>{value !== null && value !== undefined ? String(value) : '-'}</p>
|
|
7211
7212
|
</div>
|
|
7212
7213
|
))}
|
|
7213
7214
|
</div>
|
|
@@ -7271,23 +7272,23 @@ export function ${pascal}SubmissionDrawer({
|
|
|
7271
7272
|
</DrawerHeader>
|
|
7272
7273
|
<ScrollArea className="min-h-0 flex-1">
|
|
7273
7274
|
{isPending ? (
|
|
7274
|
-
<div className="p-4 text-
|
|
7275
|
+
<div className="p-4 text-muted-foreground">Loading submission\u2026</div>
|
|
7275
7276
|
) : error ? (
|
|
7276
|
-
<div className="p-4 text-
|
|
7277
|
+
<div className="p-4 text-destructive">
|
|
7277
7278
|
Error loading submission: {error.message}
|
|
7278
7279
|
</div>
|
|
7279
7280
|
) : submission ? (
|
|
7280
7281
|
<div className="p-4">
|
|
7281
|
-
<div className="space-y-4 rounded
|
|
7282
|
+
<div className="space-y-4 rounded border border-border bg-card p-4">
|
|
7282
7283
|
${fieldItems}${customFieldsSection}
|
|
7283
7284
|
<div className="space-y-1 border-t pt-4">
|
|
7284
|
-
<p className="
|
|
7285
|
-
<p
|
|
7285
|
+
<p className="font-medium text-muted-foreground">Submitted At</p>
|
|
7286
|
+
<p>{formatDateTime(submission.submittedAt)}</p>
|
|
7286
7287
|
</div>
|
|
7287
7288
|
</div>
|
|
7288
7289
|
</div>
|
|
7289
7290
|
) : submissionId ? (
|
|
7290
|
-
<div className="p-4 text-
|
|
7291
|
+
<div className="p-4 text-muted-foreground">Submission not found.</div>
|
|
7291
7292
|
) : null}
|
|
7292
7293
|
</ScrollArea>
|
|
7293
7294
|
</DrawerContent>
|
|
@@ -13525,7 +13526,7 @@ function renderColumnDefLayoutTemplate2({
|
|
|
13525
13526
|
return `cell: ({ row }) => {
|
|
13526
13527
|
${generateAuthorshipValue2}
|
|
13527
13528
|
return label ? (
|
|
13528
|
-
<div className="
|
|
13529
|
+
<div className="font-medium" title={actor?.email}>
|
|
13529
13530
|
{label}
|
|
13530
13531
|
</div>
|
|
13531
13532
|
) : (
|
|
@@ -13586,7 +13587,7 @@ function renderColumnDefLayoutDetailsTemplate2({
|
|
|
13586
13587
|
return `cell: ({ row }) => {
|
|
13587
13588
|
const date = new Date(row.getValue('${columnAccessorKey}'))
|
|
13588
13589
|
return (
|
|
13589
|
-
<div
|
|
13590
|
+
<div>
|
|
13590
13591
|
{date.toLocaleDateString('en-US', {
|
|
13591
13592
|
month: 'short',
|
|
13592
13593
|
day: 'numeric',
|
|
@@ -13601,7 +13602,7 @@ function renderColumnDefLayoutDetailsBranchTemplate({
|
|
|
13601
13602
|
}) {
|
|
13602
13603
|
return `cell: ({ row }) => {
|
|
13603
13604
|
const email = row.getValue('${columnAccessorKey}') as string
|
|
13604
|
-
return <div className="
|
|
13605
|
+
return <div className="font-medium">{email}</div>
|
|
13605
13606
|
}`;
|
|
13606
13607
|
}
|
|
13607
13608
|
function renderColumnDefLayoutDetailsBranchBodyTemplate({
|
|
@@ -13610,7 +13611,7 @@ function renderColumnDefLayoutDetailsBranchBodyTemplate({
|
|
|
13610
13611
|
return `cell: ({ row }) => {
|
|
13611
13612
|
const amount = row.getValue('${columnAccessorKey}') as number
|
|
13612
13613
|
return (
|
|
13613
|
-
<div className="
|
|
13614
|
+
<div className="font-medium">
|
|
13614
13615
|
{new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(amount)}
|
|
13615
13616
|
</div>
|
|
13616
13617
|
)
|
|
@@ -13619,7 +13620,7 @@ function renderColumnDefLayoutDetailsBranchBodyTemplate({
|
|
|
13619
13620
|
function renderNumberColumnCell({ columnAccessorKey }) {
|
|
13620
13621
|
return `cell: ({ row }) => {
|
|
13621
13622
|
const value = row.getValue('${columnAccessorKey}') as number
|
|
13622
|
-
return <div
|
|
13623
|
+
return <div>{value}</div>
|
|
13623
13624
|
}`;
|
|
13624
13625
|
}
|
|
13625
13626
|
function renderColumnDefRenderDetailsBranchTemplate({
|
|
@@ -13645,7 +13646,7 @@ function renderLinkColumnCell({ columnAccessorKey }) {
|
|
|
13645
13646
|
href={value}
|
|
13646
13647
|
target="_blank"
|
|
13647
13648
|
rel="noopener noreferrer"
|
|
13648
|
-
className="text-
|
|
13649
|
+
className="text-blue-600 hover:text-blue-800 hover:underline"
|
|
13649
13650
|
title={value}
|
|
13650
13651
|
>
|
|
13651
13652
|
{truncateText(value, 50)}
|
|
@@ -13868,7 +13869,7 @@ function renderImageElementLayoutTemplate({
|
|
|
13868
13869
|
alt={title ? \`${columnHeader} image for \${title}\` : '${columnHeader} image'}
|
|
13869
13870
|
fill
|
|
13870
13871
|
sizes="40px"
|
|
13871
|
-
className="rounded
|
|
13872
|
+
className="rounded object-cover"
|
|
13872
13873
|
unoptimized
|
|
13873
13874
|
/>
|
|
13874
13875
|
) : (
|
|
@@ -14148,7 +14149,7 @@ function renderFirstColumnDefLayoutGenerateAuthorshipValueTemplate({
|
|
|
14148
14149
|
aria-label="Select row"
|
|
14149
14150
|
/>
|
|
14150
14151
|
{label ? (
|
|
14151
|
-
<span className="
|
|
14152
|
+
<span className="font-medium truncate max-w-table-cell" title={actor?.email}>
|
|
14152
14153
|
{label}
|
|
14153
14154
|
</span>
|
|
14154
14155
|
) : (
|
|
@@ -14238,7 +14239,7 @@ function renderFirstColumnDefLayoutDetailsBranchBodyTemplate({
|
|
|
14238
14239
|
onCheckedChange={(value) => row.toggleSelected(!!value)}
|
|
14239
14240
|
aria-label="Select row"
|
|
14240
14241
|
/>
|
|
14241
|
-
<div
|
|
14242
|
+
<div>
|
|
14242
14243
|
{date.toLocaleDateString('en-US', {
|
|
14243
14244
|
month: 'short',
|
|
14244
14245
|
day: 'numeric',
|
|
@@ -14259,7 +14260,7 @@ function renderEmailColumnCell({ columnAccessorKey }) {
|
|
|
14259
14260
|
onCheckedChange={(value) => row.toggleSelected(!!value)}
|
|
14260
14261
|
aria-label="Select row"
|
|
14261
14262
|
/>
|
|
14262
|
-
<span className="
|
|
14263
|
+
<span className="font-medium truncate max-w-table-cell">{email}</span>
|
|
14263
14264
|
</div>
|
|
14264
14265
|
)
|
|
14265
14266
|
}`;
|
|
@@ -14274,7 +14275,7 @@ function renderCurrencyColumnCell({ columnAccessorKey }) {
|
|
|
14274
14275
|
onCheckedChange={(value) => row.toggleSelected(!!value)}
|
|
14275
14276
|
aria-label="Select row"
|
|
14276
14277
|
/>
|
|
14277
|
-
<div className="
|
|
14278
|
+
<div className="font-medium">
|
|
14278
14279
|
{new Intl.NumberFormat('en-US', {
|
|
14279
14280
|
style: 'currency',
|
|
14280
14281
|
currency: 'USD'
|
|
@@ -14294,7 +14295,7 @@ function renderNumberColumnCell2({ columnAccessorKey }) {
|
|
|
14294
14295
|
onCheckedChange={(value) => row.toggleSelected(!!value)}
|
|
14295
14296
|
aria-label="Select row"
|
|
14296
14297
|
/>
|
|
14297
|
-
<div
|
|
14298
|
+
<div>{value}</div>
|
|
14298
14299
|
</div>
|
|
14299
14300
|
)
|
|
14300
14301
|
}`;
|
|
@@ -14410,7 +14411,7 @@ function renderFirstColumnDefClickHandlerTemplate({
|
|
|
14410
14411
|
href={value}
|
|
14411
14412
|
target="_blank"
|
|
14412
14413
|
rel="noopener noreferrer"
|
|
14413
|
-
className="text-
|
|
14414
|
+
className="text-blue-600 hover:text-blue-800 hover:underline truncate block max-w-[250px]"
|
|
14414
14415
|
title={value}
|
|
14415
14416
|
onClick={(e) => e.stopPropagation()}
|
|
14416
14417
|
>
|
|
@@ -16248,7 +16249,7 @@ function renderFormTabContentTemplate({
|
|
|
16248
16249
|
tName,
|
|
16249
16250
|
tabFields
|
|
16250
16251
|
}) {
|
|
16251
|
-
return `${indent} <TabsContent value="${tName}" className="space-y-4 pt-4 pb-6 px-4 rounded
|
|
16252
|
+
return `${indent} <TabsContent value="${tName}" className="space-y-4 pt-4 pb-6 px-4 rounded border bg-card">
|
|
16252
16253
|
${tabFields}
|
|
16253
16254
|
${indent} </TabsContent>`;
|
|
16254
16255
|
}
|
|
@@ -17644,7 +17645,7 @@ function renderNestedField(field, indent, path114, depth) {
|
|
|
17644
17645
|
if ((field.type === "group" || field.type === "section") && field.fields?.length) {
|
|
17645
17646
|
const groupFields = field.fields.map((child) => renderNestedField(child, `${indent} `, [...path114, child.name], depth)).filter(Boolean).join("\n");
|
|
17646
17647
|
if (!groupFields) return "";
|
|
17647
|
-
const heading = nestedLabel && nestedLabel !== field.name ? `${indent}<h3 className="
|
|
17648
|
+
const heading = nestedLabel && nestedLabel !== field.name ? `${indent}<h3 className="font-medium">${nestedLabel}</h3>
|
|
17648
17649
|
` : "";
|
|
17649
17650
|
const columns = field.columns || 1;
|
|
17650
17651
|
return renderNestedFieldRenderer({
|
|
@@ -18108,7 +18109,7 @@ function renderGroupField(field, indent, label, context) {
|
|
|
18108
18109
|
const columns = field.columns || 1;
|
|
18109
18110
|
const groupFields = field.fields.map((nf) => generateFieldJSX2(nf, `${indent} `, context)).filter(Boolean).join("\n");
|
|
18110
18111
|
if (!groupFields) return "";
|
|
18111
|
-
const heading = label && label !== field.name ? `${indent}<h3 className="
|
|
18112
|
+
const heading = label && label !== field.name ? `${indent}<h3 className="font-medium">${label}</h3>
|
|
18112
18113
|
` : "";
|
|
18113
18114
|
return renderGroupFieldLayoutTemplate({
|
|
18114
18115
|
heading,
|
|
@@ -18448,7 +18449,7 @@ ${indent} <ComboboxItem key={option.value} value={option}>
|
|
|
18448
18449
|
${indent} <span className="flex min-w-0 flex-col text-left">
|
|
18449
18450
|
${indent} <span className="truncate">{option.label}</span>
|
|
18450
18451
|
${indent} {option.secondaryLabel ? (
|
|
18451
|
-
${indent} <span className="truncate text-
|
|
18452
|
+
${indent} <span className="truncate text-muted-foreground">{option.secondaryLabel}</span>
|
|
18452
18453
|
${indent} ) : null}
|
|
18453
18454
|
${indent} </span>
|
|
18454
18455
|
${indent} </ComboboxItem>
|
|
@@ -18545,7 +18546,7 @@ ${indent} <ComboboxItem key={option.value} value={option}>
|
|
|
18545
18546
|
${indent} <span className="flex min-w-0 flex-col text-left">
|
|
18546
18547
|
${indent} <span className="truncate">{option.label}</span>
|
|
18547
18548
|
${indent} {option.secondaryLabel ? (
|
|
18548
|
-
${indent} <span className="truncate text-
|
|
18549
|
+
${indent} <span className="truncate text-muted-foreground">{option.secondaryLabel}</span>
|
|
18549
18550
|
${indent} ) : null}
|
|
18550
18551
|
${indent} </span>
|
|
18551
18552
|
${indent} </ComboboxItem>
|
|
@@ -19186,7 +19187,7 @@ function renderSeparatorFieldLayoutTemplate({
|
|
|
19186
19187
|
${indent} <div className="absolute inset-0 flex items-center">
|
|
19187
19188
|
${indent} <Separator className="w-full" />
|
|
19188
19189
|
${indent} </div>
|
|
19189
|
-
${indent} <div className="relative flex justify-center
|
|
19190
|
+
${indent} <div className="relative flex justify-center uppercase">
|
|
19190
19191
|
${indent} <span className="bg-background px-2 text-muted-foreground">${fieldLabel}</span>
|
|
19191
19192
|
${indent} </div>
|
|
19192
19193
|
${indent}</div>`;
|
|
@@ -23203,7 +23204,7 @@ ${fieldArrayHooks}
|
|
|
23203
23204
|
descriptionLine,
|
|
23204
23205
|
fieldsJsx: fieldsJSX,
|
|
23205
23206
|
groupHintText: group2.hint ? `
|
|
23206
|
-
|
|
23207
|
+
<p className="text-muted-foreground">${group2.hint}</p>` : ""
|
|
23207
23208
|
}
|
|
23208
23209
|
});
|
|
23209
23210
|
}
|
|
@@ -33485,13 +33486,35 @@ function renderAdminThemeBlock() {
|
|
|
33485
33486
|
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
33486
33487
|
--color-sidebar-border: var(--sidebar-border);
|
|
33487
33488
|
--color-sidebar-ring: var(--sidebar-ring);
|
|
33488
|
-
--
|
|
33489
|
-
--radius
|
|
33490
|
-
--radius
|
|
33491
|
-
--radius-xl: calc(var(--radius) + 4px);
|
|
33489
|
+
--text-*: initial;
|
|
33490
|
+
--radius-*: initial;
|
|
33491
|
+
--radius: 6px;
|
|
33492
33492
|
}`;
|
|
33493
33493
|
}
|
|
33494
33494
|
|
|
33495
|
+
// adapters/next/templates/renderers/init/scaffolders/tailwind/base-font-declarations.ts
|
|
33496
|
+
function renderBaseFontDeclarations() {
|
|
33497
|
+
return ` font-size: 14px;
|
|
33498
|
+
line-height: 20px;
|
|
33499
|
+
`;
|
|
33500
|
+
}
|
|
33501
|
+
|
|
33502
|
+
// adapters/next/init/scaffolders/tailwind/apply-base-font.ts
|
|
33503
|
+
function applyBaseFont(content) {
|
|
33504
|
+
const bodyRule = /(?:^|\n)body\s*\{[^}]*\}/.exec(content);
|
|
33505
|
+
if (!bodyRule) {
|
|
33506
|
+
return `${content}
|
|
33507
|
+
body {
|
|
33508
|
+
${renderBaseFontDeclarations()}}
|
|
33509
|
+
`;
|
|
33510
|
+
}
|
|
33511
|
+
if (/font-size\s*:/.test(bodyRule[0])) {
|
|
33512
|
+
return content;
|
|
33513
|
+
}
|
|
33514
|
+
const closingBrace = bodyRule.index + bodyRule[0].length - 1;
|
|
33515
|
+
return `${content.slice(0, closingBrace)}${renderBaseFontDeclarations()}${content.slice(closingBrace)}`;
|
|
33516
|
+
}
|
|
33517
|
+
|
|
33495
33518
|
// adapters/next/init/scaffolders/tailwind/get-admin-theme-vars.ts
|
|
33496
33519
|
function getAdminThemeVars() {
|
|
33497
33520
|
return renderAdminThemeBlock().split("\n").filter((line) => line.trim().startsWith("--"));
|
|
@@ -33501,7 +33524,7 @@ function getAdminThemeVars() {
|
|
|
33501
33524
|
function getMissingThemeVars(existingBlock) {
|
|
33502
33525
|
return getAdminThemeVars().filter((line) => {
|
|
33503
33526
|
const varName = line.trim().split(":")[0].trim();
|
|
33504
|
-
return !existingBlock.includes(varName);
|
|
33527
|
+
return !existingBlock.includes(`${varName}:`);
|
|
33505
33528
|
}).map((line) => ` ${line.trim()}`);
|
|
33506
33529
|
}
|
|
33507
33530
|
|
|
@@ -33562,6 +33585,11 @@ ${renderAdminThemeBlock()}
|
|
|
33562
33585
|
`;
|
|
33563
33586
|
changed = true;
|
|
33564
33587
|
}
|
|
33588
|
+
const withBaseFont = applyBaseFont(content);
|
|
33589
|
+
if (withBaseFont !== content) {
|
|
33590
|
+
content = withBaseFont;
|
|
33591
|
+
changed = true;
|
|
33592
|
+
}
|
|
33565
33593
|
if (!content.includes("@utility shadow-input")) {
|
|
33566
33594
|
content = `${content}
|
|
33567
33595
|
${renderAdminShadowInputUtility()}
|