betterstart-cli 0.0.109 → 0.0.111

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 (65) hide show
  1. package/dist/assets/adapters/next/templates/init/components/layouts/{admin-sidebar-branding-rsc.tsx → admin-sidebar-branding.tsx} +1 -1
  2. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar.tsx +2 -2
  3. package/dist/assets/adapters/next/templates/init/components/layouts/role-gate.tsx +14 -0
  4. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode-integrate.tsx +2 -2
  5. package/dist/assets/adapters/next/templates/init/components/shared/entity-filters-bar.tsx +1 -1
  6. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-drawer.tsx +1 -1
  7. package/dist/assets/adapters/next/templates/init/components/shared/media/media-filters-bar.tsx +2 -2
  8. package/dist/assets/adapters/next/templates/init/components/shared/media/media-gallery-dialog.tsx +1 -1
  9. package/dist/assets/adapters/next/templates/init/components/shared/media/media-preview.tsx +1 -1
  10. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-color-highlight.ts +1 -3
  11. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor-media-insertion.ts +1 -3
  12. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor.ts +2 -6
  13. package/dist/assets/adapters/next/templates/init/pages/account-layout.tsx +2 -2
  14. package/dist/assets/adapters/next/templates/init/pages/{account-shell-rsc.tsx → account-shell.tsx} +2 -2
  15. package/dist/assets/adapters/next/templates/init/pages/{auth-gate-rsc.tsx → auth-gate.tsx} +2 -2
  16. package/dist/assets/adapters/next/templates/init/pages/authenticated-layout.tsx +2 -2
  17. package/dist/assets/adapters/next/templates/init/pages/forgot-password-form.tsx +4 -4
  18. package/dist/assets/adapters/next/templates/init/pages/forgot-password-page-skeleton.tsx +3 -3
  19. package/dist/assets/adapters/next/templates/init/pages/forgot-password-page.tsx +2 -2
  20. package/dist/assets/adapters/next/templates/init/pages/login-form.tsx +4 -4
  21. package/dist/assets/adapters/next/templates/init/pages/{login-page-rsc.tsx → login-page-content.tsx} +1 -1
  22. package/dist/assets/adapters/next/templates/init/pages/login-page-skeleton.tsx +3 -3
  23. package/dist/assets/adapters/next/templates/init/pages/login-page.tsx +4 -4
  24. package/dist/assets/adapters/next/templates/init/pages/media/media-page-content.tsx +1 -1
  25. package/dist/assets/adapters/next/templates/init/pages/profile/profile-page-content.tsx +31 -0
  26. package/dist/assets/adapters/next/templates/init/pages/profile/profile-page-skeleton.tsx +9 -0
  27. package/dist/assets/adapters/next/templates/init/pages/profile/profile-page.tsx +7 -27
  28. package/dist/assets/adapters/next/templates/init/pages/reset-password-form.tsx +8 -8
  29. package/dist/assets/adapters/next/templates/init/pages/reset-password-page-skeleton.tsx +3 -3
  30. package/dist/assets/adapters/next/templates/init/pages/reset-password-page.tsx +2 -2
  31. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-drawer.tsx +1 -1
  32. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-page.tsx +6 -5
  33. package/dist/assets/adapters/next/templates/init/pages/settings/forms/form-notifications-drawer.tsx +1 -1
  34. package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-page.tsx +6 -5
  35. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/delete-webhook-dialog.tsx +1 -1
  36. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhook-endpoint-dialog.tsx +1 -1
  37. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-page.tsx +6 -5
  38. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-page.tsx +6 -5
  39. package/dist/assets/adapters/next/templates/init/pages/users/change-password-dialog.tsx +1 -1
  40. package/dist/assets/adapters/next/templates/init/pages/users/create-user-dialog.tsx +1 -1
  41. package/dist/assets/adapters/next/templates/init/pages/users/edit-role-dialog.tsx +1 -1
  42. package/dist/assets/shared-assets/react-admin/custom/content-editor/index.tsx +5 -30
  43. package/dist/assets/shared-assets/react-admin/custom/content-editor/main-toolbar-content.tsx +6 -28
  44. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-node/removable-image-node/removable-image-node.tsx +1 -1
  45. package/dist/assets/shared-assets/react-admin/custom/gallery-field.tsx +3 -3
  46. package/dist/assets/shared-assets/react-admin/ui/alert-dialog.tsx +6 -6
  47. package/dist/assets/shared-assets/react-admin/ui/alert.tsx +1 -1
  48. package/dist/assets/shared-assets/react-admin/ui/breadcrumb.tsx +1 -1
  49. package/dist/assets/shared-assets/react-admin/ui/calendar.tsx +1 -1
  50. package/dist/assets/shared-assets/react-admin/ui/card.tsx +1 -1
  51. package/dist/assets/shared-assets/react-admin/ui/dialog.tsx +2 -2
  52. package/dist/assets/shared-assets/react-admin/ui/drawer.tsx +2 -2
  53. package/dist/assets/shared-assets/react-admin/ui/field.tsx +2 -4
  54. package/dist/assets/shared-assets/react-admin/ui/input.tsx +1 -1
  55. package/dist/assets/shared-assets/react-admin/ui/pagination.tsx +2 -2
  56. package/dist/assets/shared-assets/react-admin/ui/sheet.tsx +1 -1
  57. package/dist/assets/shared-assets/react-admin/ui/sidebar.tsx +13 -63
  58. package/dist/assets/shared-assets/react-admin/ui/textarea.tsx +1 -1
  59. package/dist/cli.js +115 -90
  60. package/dist/cli.js.map +1 -1
  61. package/package.json +1 -1
  62. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-content-editor-mobile-toolbar.ts +0 -17
  63. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-is-breakpoint.ts +0 -24
  64. package/dist/assets/adapters/next/templates/init/hooks/use-mobile.ts +0 -19
  65. package/dist/assets/shared-assets/react-admin/custom/content-editor/mobile-toolbar-content.tsx +0 -56
package/dist/cli.js CHANGED
@@ -2849,9 +2849,7 @@ var STATIC_CUSTOM_DEPENDENCIES = {
2849
2849
  "use-content-editor",
2850
2850
  "use-content-editor-table-add-controls",
2851
2851
  "use-content-editor-source-mode",
2852
- "use-content-editor-mobile-toolbar",
2853
2852
  "use-content-editor-slash-menu",
2854
- "use-mobile",
2855
2853
  "tiptap",
2856
2854
  "tiptap-utils"
2857
2855
  ],
@@ -2935,11 +2933,6 @@ var STATIC_CUSTOM_DEPENDENCIES = {
2935
2933
  "tiptap-utils"
2936
2934
  ],
2937
2935
  "content-editor/media-gallery-block": ["media-field"],
2938
- "content-editor/mobile-toolbar-content": [
2939
- "content-editor/math-popover",
2940
- "content-editor/use-tiptap-editor",
2941
- "tiptap-utils"
2942
- ],
2943
2936
  "content-editor/selection-bubble-menu": ["content-editor/math-popover"],
2944
2937
  "content-editor/slash-command-menu": ["content-editor-slash-commands-utils", "tiptap-utils"],
2945
2938
  "content-editor/source-mode": [
@@ -2986,7 +2979,6 @@ var TIPTAP_TEMPLATE_DEPENDENCIES = [
2986
2979
  "use-blockquote",
2987
2980
  "use-code-block",
2988
2981
  "use-color-highlight",
2989
- "content-editor/use-is-breakpoint",
2990
2982
  "content-editor/use-menu-navigation",
2991
2983
  "content-editor/use-tiptap-editor",
2992
2984
  "use-content-editor-table-add-controls",
@@ -4690,7 +4682,7 @@ ${errorMessageLine2}
4690
4682
 
4691
4683
  // adapters/next/generators/form-pipeline/form-component-shared/input-class.ts
4692
4684
  function inputClass(height) {
4693
- const base = "h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base 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 md:text-sm";
4685
+ const base = "h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm 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";
4694
4686
  return height === "fill" ? `${base} flex-1` : base;
4695
4687
  }
4696
4688
 
@@ -5112,7 +5104,7 @@ function generateNumberFieldJSX(name, label, placeholder, hintJSX, requiredStar,
5112
5104
 
5113
5105
  // adapters/next/generators/form-pipeline/form-component-shared/textarea-class.ts
5114
5106
  function textareaClass(height) {
5115
- const base = "min-h-24 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base 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 md:text-sm";
5107
+ const base = "min-h-24 w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm 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";
5116
5108
  return height === "fill" ? `${base} flex-1` : base;
5117
5109
  }
5118
5110
 
@@ -5346,7 +5338,7 @@ function renderFieldsJSX(fields) {
5346
5338
  if (f.type === "group" && f.fields) {
5347
5339
  const cols = f.columns || 2;
5348
5340
  const innerJSX = renderFieldsJSX(f.fields);
5349
- const groupJSX = ` <div className="grid grid-cols-1 md:grid-cols-${cols} gap-5">
5341
+ const groupJSX = ` <div className="grid grid-cols-${cols} gap-5">
5350
5342
  ${innerJSX}
5351
5343
  </div>`;
5352
5344
  return f.showWhen ? wrapShowWhen(f, groupJSX) : groupJSX;
@@ -7199,7 +7191,7 @@ export function ${pascal}SubmissionDrawer({
7199
7191
 
7200
7192
  return (
7201
7193
  <Drawer swipeDirection="right" open={open} onOpenChange={onOpenChange} modal>
7202
- <DrawerContent className="h-full w-full overflow-hidden data-[swipe-direction=right]:sm:max-w-xl">
7194
+ <DrawerContent className="h-full w-full overflow-hidden data-[swipe-direction=right]:max-w-xl">
7203
7195
  <DrawerHeader>
7204
7196
  <DrawerTitle>${label} Submission</DrawerTitle>
7205
7197
  <DrawerDescription>{description}</DrawerDescription>
@@ -15030,8 +15022,8 @@ function generateDatabase(schema, dbDir, options = {}, relatedSchemas = /* @__PU
15030
15022
  };
15031
15023
  }
15032
15024
 
15033
- // adapters/next/templates/renderers/generators/edit-page.ts
15034
- function renderEditPageComponentTemplate({
15025
+ // adapters/next/templates/renderers/generators/edit-page-content.ts
15026
+ function renderEditPageContentTemplate({
15035
15027
  singular,
15036
15028
  actionImportPath,
15037
15029
  kebabName,
@@ -15041,13 +15033,7 @@ function renderEditPageComponentTemplate({
15041
15033
  import { get${singular}ById } from '@admin/actions/${actionImportPath}'
15042
15034
  import { ${singular}Form } from '../../${kebabName}-form'
15043
15035
 
15044
- interface PageProps {
15045
- params: Promise<{
15046
- id: string
15047
- }>
15048
- }
15049
-
15050
- export default async function Edit${singular}Page({ params }: PageProps) {
15036
+ export async function Edit${singular}PageContent({ params }: { params: Promise<{ id: string }> }) {
15051
15037
  const { id } = await params
15052
15038
  const ${camelSingular} = await get${singular}ById(id)
15053
15039
 
@@ -15060,21 +15046,55 @@ export default async function Edit${singular}Page({ params }: PageProps) {
15060
15046
  `;
15061
15047
  }
15062
15048
 
15049
+ // adapters/next/templates/renderers/generators/edit-page.ts
15050
+ function renderEditPageTemplate({
15051
+ singular,
15052
+ kebabSingular
15053
+ }) {
15054
+ return `import * as React from 'react'
15055
+ import { Edit${singular}PageContent } from './edit-${kebabSingular}-page-content'
15056
+ import { Edit${singular}PageSkeleton } from './edit-${kebabSingular}-page-skeleton'
15057
+
15058
+ interface PageProps {
15059
+ params: Promise<{
15060
+ id: string
15061
+ }>
15062
+ }
15063
+
15064
+ export default function Edit${singular}Page({ params }: PageProps) {
15065
+ return (
15066
+ <React.Suspense fallback={<Edit${singular}PageSkeleton />}>
15067
+ <Edit${singular}PageContent params={params} />
15068
+ </React.Suspense>
15069
+ )
15070
+ }
15071
+ `;
15072
+ }
15073
+
15063
15074
  // adapters/next/generators/edit-page.ts
15064
15075
  function generateEditPage(schema, pagesDir, options = {}) {
15065
15076
  const singular = singularize(schema.name);
15066
15077
  const Singular = toPascalCase(singular);
15067
15078
  const camelSingular = toCamelCase(singular);
15068
15079
  const kebabName = toKebabCase(schema.name);
15080
+ const kebabSingular = toKebabCase(singular);
15069
15081
  const actionImportPath = resolveSchemaActionImportPath(schema.name, options.outputNamespace);
15070
- const content = renderEditPageComponentTemplate({
15082
+ const displayNouns = resolveDisplayNouns(schema);
15083
+ const page = renderEditPageTemplate({ singular: Singular, kebabSingular });
15084
+ const content = renderEditPageContentTemplate({
15071
15085
  singular: Singular,
15072
15086
  actionImportPath,
15073
15087
  kebabName,
15074
15088
  camelSingular
15075
15089
  });
15090
+ const skeleton = buildLoadingSkeletonSource(`Edit${Singular}PageSkeleton`, displayNouns.singular);
15091
+ const editDir = `${pagesDir}/${schema.name}/[id]/edit`;
15076
15092
  return {
15077
- files: [createGeneratedFile(`${pagesDir}/${schema.name}/[id]/edit/page.tsx`, content)]
15093
+ files: [
15094
+ createGeneratedFile(`${editDir}/page.tsx`, page),
15095
+ createGeneratedFile(`${editDir}/edit-${kebabSingular}-page-content.tsx`, content),
15096
+ createGeneratedFile(`${editDir}/edit-${kebabSingular}-page-skeleton.tsx`, skeleton)
15097
+ ]
15078
15098
  };
15079
15099
  }
15080
15100
 
@@ -15999,15 +16019,15 @@ ${join}
15999
16019
  }
16000
16020
  function renderFormLayoutDetailsTemplate() {
16001
16021
  return `className={initialData?.id != null
16002
- ? 'lg:sticky lg:top-32 space-y-4 pb-4'
16003
- : 'lg:sticky lg:top-14 space-y-4 pb-4'}`;
16022
+ ? 'sticky top-32 space-y-4 pb-4'
16023
+ : 'sticky top-14 space-y-4 pb-4'}`;
16004
16024
  }
16005
16025
  function renderFormCardContentGridTemplate({
16006
16026
  tabSidebarEntriesGrid,
16007
16027
  tabMainFieldsJsx,
16008
16028
  sidebarColumn
16009
16029
  }) {
16010
- return ` <div className="grid grid-cols-1 ${tabSidebarEntriesGrid}h-full min-h-0 gap-4 items-stretch">
16030
+ return ` <div className="grid ${tabSidebarEntriesGrid} h-full min-h-0 gap-4 items-stretch">
16011
16031
  <div className="h-full min-h-0 min-w-0">
16012
16032
  <Card className="min-h-0 min-w-0 h-full">
16013
16033
  <CardContent className="space-y-5 gap-0 h-full min-h-0">
@@ -16023,7 +16043,7 @@ function renderFormLayoutDetailsBranchTemplate() {
16023
16043
  className={cn(
16024
16044
  'grid grid-cols-1 gap-4 items-start h-full',
16025
16045
  {
16026
- 'lg:grid-cols-[1fr_360px]': hasVisibleSidebarFields
16046
+ 'grid-cols-[1fr_360px]': hasVisibleSidebarFields
16027
16047
  }
16028
16048
  )}
16029
16049
  >`;
@@ -16476,7 +16496,7 @@ function renderFormLayoutDetailsBranchBodyTemplate({
16476
16496
  return ` {initialData?.id != null && (
16477
16497
  <div
16478
16498
  className={cn(
16479
- 'sticky z-100 flex flex-col gap-1 px-4 bg-background h-14 xl:flex-row xl:items-center xl:justify-between top-14 transition-shadow overflow-x-clip',
16499
+ 'sticky z-100 flex flex-row items-center justify-between gap-1 px-4 bg-background h-14 top-14 transition-shadow overflow-x-clip',
16480
16500
  {
16481
16501
  'shadow-modal/2': hasScrolled,
16482
16502
  'border-b border-border/80': !hasScrolled
@@ -19366,7 +19386,7 @@ function buildEntityFormLayout({
19366
19386
  return renderEntityFormContentRenderer({
19367
19387
  kind: "renderFormContentClassNameTemplate",
19368
19388
  props: {
19369
- optionsScrollableClassName: options.scrollable ? 'className="relative h-fit max-h-full space-y-4 overflow-y-auto pb-4 lg:sticky lg:top-0"' : showMetadataWidget ? renderEntityFormContentRenderer({ kind: "renderFormLayoutDetailsTemplate" }) : 'className="lg:sticky lg:top-14 space-y-4 pb-4"',
19389
+ optionsScrollableClassName: options.scrollable ? 'className="relative h-fit max-h-full space-y-4 overflow-y-auto pb-4 sticky top-0"' : showMetadataWidget ? renderEntityFormContentRenderer({ kind: "renderFormLayoutDetailsTemplate" }) : 'className="sticky top-14 space-y-4 pb-4"',
19370
19390
  join: cards.join("\n")
19371
19391
  }
19372
19392
  });
@@ -19392,7 +19412,7 @@ function buildEntityFormLayout({
19392
19412
  return renderEntityFormContentRenderer({
19393
19413
  kind: "renderFormCardContentGridTemplate",
19394
19414
  props: {
19395
- tabSidebarEntriesGrid: tabSidebarEntries.length > 0 ? "lg:grid-cols-[1fr_360px] " : "",
19415
+ tabSidebarEntriesGrid: tabSidebarEntries.length > 0 ? "grid-cols-[1fr_360px]" : "grid-cols-1",
19396
19416
  tabMainFieldsJsx: tabMainFieldsJSX,
19397
19417
  sidebarColumn
19398
19418
  }
@@ -19448,7 +19468,7 @@ function buildEntityFormLayout({
19448
19468
  const sidebarVisibilityState = shouldGuardSidebarByTab ? `
19449
19469
  const hasVisibleSidebarFields = ${sidebarTabNames.map((tabName) => `activeTab === ${JSON.stringify(tabName)}`).join(" || ")}
19450
19470
  ` : "";
19451
- const formGridOpen = shouldGuardSidebarByTab ? renderEntityFormContentRenderer({ kind: "renderFormLayoutDetailsBranchTemplate" }) : ` <div className="grid grid-cols-1 ${hasSidebarFields ? "lg:grid-cols-[1fr_360px] " : ""}gap-4 items-start h-full">`;
19471
+ const formGridOpen = shouldGuardSidebarByTab ? renderEntityFormContentRenderer({ kind: "renderFormLayoutDetailsBranchTemplate" }) : ` <div className="grid ${hasSidebarFields ? "grid-cols-[1fr_360px]" : "grid-cols-1"} gap-4 items-start h-full">`;
19452
19472
  const sidebarCardJSX = !hasSidebarFields ? "" : shouldGuardSidebarByTab ? renderEntityFormContentRenderer({
19453
19473
  kind: "renderFormContentSidebarColumnTemplate",
19454
19474
  props: {
@@ -31257,8 +31277,8 @@ function scaffoldComponents({ cwd, config }) {
31257
31277
  readTemplate("components/layouts/admin-sidebar.tsx")
31258
31278
  );
31259
31279
  write(
31260
- "components/layouts/admin-sidebar-branding-rsc.tsx",
31261
- readTemplate("components/layouts/admin-sidebar-branding-rsc.tsx")
31280
+ "components/layouts/admin-sidebar-branding.tsx",
31281
+ readTemplate("components/layouts/admin-sidebar-branding.tsx")
31262
31282
  );
31263
31283
  write(
31264
31284
  "components/layouts/admin-sidebar-branding-skeleton.tsx",
@@ -31293,6 +31313,7 @@ function scaffoldComponents({ cwd, config }) {
31293
31313
  "components/layouts/content-skeleton.tsx",
31294
31314
  readTemplate("components/layouts/content-skeleton.tsx")
31295
31315
  );
31316
+ write("components/layouts/role-gate.tsx", readTemplate("components/layouts/role-gate.tsx"));
31296
31317
  write("components/shared/page-header.tsx", readTemplate("components/shared/page-header.tsx"));
31297
31318
  write(
31298
31319
  "components/shared/sort-indicator.tsx",
@@ -31772,10 +31793,6 @@ function scaffoldComponents({ cwd, config }) {
31772
31793
  "hooks/content-editor/use-table-button.ts",
31773
31794
  readTemplate("hooks/content-editor/use-table-button.ts")
31774
31795
  );
31775
- write(
31776
- "hooks/content-editor/use-content-editor-mobile-toolbar.ts",
31777
- readTemplate("hooks/content-editor/use-content-editor-mobile-toolbar.ts")
31778
- );
31779
31796
  write(
31780
31797
  "hooks/content-editor/use-content-editor-slash-menu.ts",
31781
31798
  readTemplate("hooks/content-editor/use-content-editor-slash-menu.ts")
@@ -31785,10 +31802,6 @@ function scaffoldComponents({ cwd, config }) {
31785
31802
  "hooks/content-editor/use-heading-dropdown-menu.ts",
31786
31803
  readTemplate("hooks/content-editor/use-heading-dropdown-menu.ts")
31787
31804
  );
31788
- write(
31789
- "hooks/content-editor/use-is-breakpoint.ts",
31790
- readTemplate("hooks/content-editor/use-is-breakpoint.ts")
31791
- );
31792
31805
  write(
31793
31806
  "hooks/content-editor/use-link-popover.ts",
31794
31807
  readTemplate("hooks/content-editor/use-link-popover.ts")
@@ -31817,7 +31830,6 @@ function scaffoldComponents({ cwd, config }) {
31817
31830
  write("hooks/use-audit-log.ts", readTemplate("hooks/use-audit-log.ts"));
31818
31831
  write("hooks/use-users.ts", readTemplate("hooks/use-users.ts"));
31819
31832
  write("hooks/use-webhooks.ts", readTemplate("hooks/use-webhooks.ts"));
31820
- write("hooks/use-mobile.ts", readTemplate("hooks/use-mobile.ts"));
31821
31833
  write("hooks/use-failed-image-url.ts", readTemplate("hooks/use-failed-image-url.ts"));
31822
31834
  write("hooks/use-media.ts", readTemplate("hooks/use-media.ts"));
31823
31835
  write("hooks/use-entity-versions.ts", readTemplate("hooks/use-entity-versions.ts"));
@@ -32249,11 +32261,11 @@ function scaffoldLayout({ cwd, config }) {
32249
32261
  const adminDir = path74.dirname(config.paths.pages);
32250
32262
  write(path74.join(adminDir, "layout.tsx"), readTemplate("pages/admin-layout.tsx"));
32251
32263
  write(path74.join(config.paths.pages, "layout.tsx"), readTemplate("pages/authenticated-layout.tsx"));
32252
- write(path74.join(config.paths.pages, "auth-gate-rsc.tsx"), readTemplate("pages/auth-gate-rsc.tsx"));
32264
+ write(path74.join(config.paths.pages, "auth-gate.tsx"), readTemplate("pages/auth-gate.tsx"));
32253
32265
  write(path74.join(config.paths.login, "page.tsx"), readTemplate("pages/login-page.tsx"));
32254
32266
  write(
32255
- path74.join(config.paths.login, "login-page-rsc.tsx"),
32256
- readTemplate("pages/login-page-rsc.tsx")
32267
+ path74.join(config.paths.login, "login-page-content.tsx"),
32268
+ readTemplate("pages/login-page-content.tsx")
32257
32269
  );
32258
32270
  write(
32259
32271
  path74.join(config.paths.login, "login-page-skeleton.tsx"),
@@ -32431,13 +32443,21 @@ function scaffoldLayout({ cwd, config }) {
32431
32443
  );
32432
32444
  const accountDir = path74.join(adminDir, "(account)");
32433
32445
  write(path74.join(accountDir, "layout.tsx"), readTemplate("pages/account-layout.tsx"));
32434
- write(path74.join(accountDir, "account-shell-rsc.tsx"), readTemplate("pages/account-shell-rsc.tsx"));
32446
+ write(path74.join(accountDir, "account-shell.tsx"), readTemplate("pages/account-shell.tsx"));
32435
32447
  write(
32436
32448
  path74.join(accountDir, "minimal-account-shell.tsx"),
32437
32449
  readTemplate("pages/minimal-account-shell.tsx")
32438
32450
  );
32439
32451
  const profileDir = path74.join(accountDir, "profile");
32440
32452
  write(path74.join(profileDir, "page.tsx"), readTemplate("pages/profile/profile-page.tsx"));
32453
+ write(
32454
+ path74.join(profileDir, "profile-page-content.tsx"),
32455
+ readTemplate("pages/profile/profile-page-content.tsx")
32456
+ );
32457
+ write(
32458
+ path74.join(profileDir, "profile-page-skeleton.tsx"),
32459
+ readTemplate("pages/profile/profile-page-skeleton.tsx")
32460
+ );
32441
32461
  write(path74.join(profileDir, "profile-form.tsx"), readTemplate("pages/profile/profile-form.tsx"));
32442
32462
  write(
32443
32463
  path74.join(config.paths.admin, "lib", "actions", "profile", "index.ts"),
@@ -36388,7 +36408,7 @@ var TEMPLATE_REGISTRY = {
36388
36408
  relPath: "components/layouts/admin-sidebar.tsx",
36389
36409
  content: () => readTemplate("components/layouts/admin-sidebar.tsx"),
36390
36410
  dependencies: [
36391
- "admin-sidebar-branding-rsc",
36411
+ "admin-sidebar-branding",
36392
36412
  "admin-sidebar-branding-skeleton",
36393
36413
  "admin-sidebar-nav-link",
36394
36414
  "admin-sidebar-user-menu",
@@ -36396,9 +36416,9 @@ var TEMPLATE_REGISTRY = {
36396
36416
  "sidebar-utils"
36397
36417
  ]
36398
36418
  },
36399
- "admin-sidebar-branding-rsc": {
36400
- relPath: "components/layouts/admin-sidebar-branding-rsc.tsx",
36401
- content: () => readTemplate("components/layouts/admin-sidebar-branding-rsc.tsx"),
36419
+ "admin-sidebar-branding": {
36420
+ relPath: "components/layouts/admin-sidebar-branding.tsx",
36421
+ content: () => readTemplate("components/layouts/admin-sidebar-branding.tsx"),
36402
36422
  dependencies: ["sidebar-branding"]
36403
36423
  },
36404
36424
  "admin-sidebar-branding-skeleton": {
@@ -36445,6 +36465,11 @@ var TEMPLATE_REGISTRY = {
36445
36465
  relPath: "components/layouts/content-skeleton.tsx",
36446
36466
  content: () => readTemplate("components/layouts/content-skeleton.tsx")
36447
36467
  },
36468
+ "role-gate": {
36469
+ relPath: "components/layouts/role-gate.tsx",
36470
+ content: () => readTemplate("components/layouts/role-gate.tsx"),
36471
+ dependencies: ["auth-session", "auth-types"]
36472
+ },
36448
36473
  "page-header": {
36449
36474
  relPath: "components/shared/page-header.tsx",
36450
36475
  content: () => readTemplate("components/shared/page-header.tsx")
@@ -36709,7 +36734,6 @@ var TEMPLATE_REGISTRY = {
36709
36734
  "content-editor-editor-view-utils",
36710
36735
  "content-editor-table-bubble-utils",
36711
36736
  "use-content-editor-slash-menu",
36712
- "use-mobile",
36713
36737
  "tiptap",
36714
36738
  "tiptap-utils",
36715
36739
  "content-editor/media-gallery-block",
@@ -36719,11 +36743,7 @@ var TEMPLATE_REGISTRY = {
36719
36743
  "use-content-editor-media-insertion": {
36720
36744
  relPath: "hooks/content-editor/use-content-editor-media-insertion.ts",
36721
36745
  content: () => readTemplate("hooks/content-editor/use-content-editor-media-insertion.ts"),
36722
- dependencies: [
36723
- "content-editor/use-is-breakpoint",
36724
- "content-editor/use-tiptap-editor",
36725
- "tiptap-utils"
36726
- ]
36746
+ dependencies: ["content-editor/use-tiptap-editor", "tiptap-utils"]
36727
36747
  },
36728
36748
  "use-blockquote": {
36729
36749
  relPath: "hooks/content-editor/use-blockquote.ts",
@@ -36738,11 +36758,7 @@ var TEMPLATE_REGISTRY = {
36738
36758
  "use-color-highlight": {
36739
36759
  relPath: "hooks/content-editor/use-color-highlight.ts",
36740
36760
  content: () => readTemplate("hooks/content-editor/use-color-highlight.ts"),
36741
- dependencies: [
36742
- "content-editor/use-is-breakpoint",
36743
- "content-editor/use-tiptap-editor",
36744
- "tiptap-utils"
36745
- ]
36761
+ dependencies: ["content-editor/use-tiptap-editor", "tiptap-utils"]
36746
36762
  },
36747
36763
  "use-heading": {
36748
36764
  relPath: "hooks/content-editor/use-heading.ts",
@@ -36789,20 +36805,11 @@ var TEMPLATE_REGISTRY = {
36789
36805
  content: () => readTemplate("hooks/content-editor/use-table-button.ts"),
36790
36806
  dependencies: ["content-editor-table-input-utils", "tiptap-utils"]
36791
36807
  },
36792
- "use-content-editor-mobile-toolbar": {
36793
- relPath: "hooks/content-editor/use-content-editor-mobile-toolbar.ts",
36794
- content: () => readTemplate("hooks/content-editor/use-content-editor-mobile-toolbar.ts"),
36795
- dependencies: ["use-mobile"]
36796
- },
36797
36808
  "use-content-editor-slash-menu": {
36798
36809
  relPath: "hooks/content-editor/use-content-editor-slash-menu.ts",
36799
36810
  content: () => readTemplate("hooks/content-editor/use-content-editor-slash-menu.ts"),
36800
36811
  dependencies: ["content-editor-slash-commands-utils", "tiptap-utils"]
36801
36812
  },
36802
- "content-editor/use-is-breakpoint": {
36803
- relPath: "hooks/content-editor/use-is-breakpoint.ts",
36804
- content: () => readTemplate("hooks/content-editor/use-is-breakpoint.ts")
36805
- },
36806
36813
  "content-editor/use-menu-navigation": {
36807
36814
  relPath: "hooks/content-editor/use-menu-navigation.ts",
36808
36815
  content: () => readTemplate("hooks/content-editor/use-menu-navigation.ts")
@@ -36834,10 +36841,6 @@ var TEMPLATE_REGISTRY = {
36834
36841
  content: () => readTemplate("hooks/use-webhooks.ts"),
36835
36842
  dependencies: ["webhooks-action", "form-settings-action"]
36836
36843
  },
36837
- "use-mobile": {
36838
- relPath: "hooks/use-mobile.ts",
36839
- content: () => readTemplate("hooks/use-mobile.ts")
36840
- },
36841
36844
  "use-failed-image-url": {
36842
36845
  relPath: "hooks/use-failed-image-url.ts",
36843
36846
  content: () => readTemplate("hooks/use-failed-image-url.ts")
@@ -38018,11 +38021,11 @@ var TEMPLATE_REGISTRY = {
38018
38021
  relPath: "app/(admin)/admin/(authenticated)/layout.tsx",
38019
38022
  content: () => readTemplate("pages/authenticated-layout.tsx"),
38020
38023
  base: "cwd",
38021
- dependencies: ["auth-gate-rsc"]
38024
+ dependencies: ["auth-gate"]
38022
38025
  },
38023
- "auth-gate-rsc": {
38024
- relPath: "app/(admin)/admin/(authenticated)/auth-gate-rsc.tsx",
38025
- content: () => readTemplate("pages/auth-gate-rsc.tsx"),
38026
+ "auth-gate": {
38027
+ relPath: "app/(admin)/admin/(authenticated)/auth-gate.tsx",
38028
+ content: () => readTemplate("pages/auth-gate.tsx"),
38026
38029
  base: "cwd",
38027
38030
  dependencies: ["admin-sidebar", "auth-session"]
38028
38031
  },
@@ -38030,11 +38033,11 @@ var TEMPLATE_REGISTRY = {
38030
38033
  relPath: "app/(admin)/admin/(account)/layout.tsx",
38031
38034
  content: () => readTemplate("pages/account-layout.tsx"),
38032
38035
  base: "cwd",
38033
- dependencies: ["account-shell-rsc"]
38036
+ dependencies: ["account-shell"]
38034
38037
  },
38035
- "account-shell-rsc": {
38036
- relPath: "app/(admin)/admin/(account)/account-shell-rsc.tsx",
38037
- content: () => readTemplate("pages/account-shell-rsc.tsx"),
38038
+ "account-shell": {
38039
+ relPath: "app/(admin)/admin/(account)/account-shell.tsx",
38040
+ content: () => readTemplate("pages/account-shell.tsx"),
38038
38041
  base: "cwd",
38039
38042
  dependencies: [
38040
38043
  "admin-sidebar",
@@ -38053,6 +38056,18 @@ var TEMPLATE_REGISTRY = {
38053
38056
  "profile-page": {
38054
38057
  relPath: "app/(admin)/admin/(account)/profile/page.tsx",
38055
38058
  content: () => readTemplate("pages/profile/profile-page.tsx"),
38059
+ base: "cwd",
38060
+ dependencies: ["profile-page-content", "profile-page-skeleton"]
38061
+ },
38062
+ "profile-page-content": {
38063
+ relPath: "app/(admin)/admin/(account)/profile/profile-page-content.tsx",
38064
+ content: () => readTemplate("pages/profile/profile-page-content.tsx"),
38065
+ base: "cwd",
38066
+ dependencies: ["auth-session", "auth-types", "page-header", "profile-form"]
38067
+ },
38068
+ "profile-page-skeleton": {
38069
+ relPath: "app/(admin)/admin/(account)/profile/profile-page-skeleton.tsx",
38070
+ content: () => readTemplate("pages/profile/profile-page-skeleton.tsx"),
38056
38071
  base: "cwd"
38057
38072
  },
38058
38073
  "profile-form": {
@@ -38065,11 +38080,11 @@ var TEMPLATE_REGISTRY = {
38065
38080
  relPath: "app/(admin)/admin/(auth)/login/page.tsx",
38066
38081
  content: () => readTemplate("pages/login-page.tsx"),
38067
38082
  base: "cwd",
38068
- dependencies: ["login-page-rsc", "login-page-skeleton"]
38083
+ dependencies: ["login-page-content", "login-page-skeleton"]
38069
38084
  },
38070
- "login-page-rsc": {
38071
- relPath: "app/(admin)/admin/(auth)/login/login-page-rsc.tsx",
38072
- content: () => readTemplate("pages/login-page-rsc.tsx"),
38085
+ "login-page-content": {
38086
+ relPath: "app/(admin)/admin/(auth)/login/login-page-content.tsx",
38087
+ content: () => readTemplate("pages/login-page-content.tsx"),
38073
38088
  base: "cwd",
38074
38089
  dependencies: ["auth-roles-utils", "auth-session", "login-form"]
38075
38090
  },
@@ -38176,7 +38191,12 @@ var TEMPLATE_REGISTRY = {
38176
38191
  relPath: "app/(admin)/admin/(authenticated)/settings/forms/page.tsx",
38177
38192
  content: () => readTemplate("pages/settings/forms/forms-settings-page.tsx"),
38178
38193
  base: "cwd",
38179
- dependencies: ["forms-settings-page-skeleton", "forms-settings-page-content"]
38194
+ dependencies: [
38195
+ "auth-types",
38196
+ "role-gate",
38197
+ "forms-settings-page-skeleton",
38198
+ "forms-settings-page-content"
38199
+ ]
38180
38200
  },
38181
38201
  "forms-settings-page-skeleton": {
38182
38202
  relPath: "app/(admin)/admin/(authenticated)/settings/forms/forms-settings-page-skeleton.tsx",
@@ -38224,7 +38244,7 @@ var TEMPLATE_REGISTRY = {
38224
38244
  relPath: "app/(admin)/admin/(authenticated)/settings/webhooks/page.tsx",
38225
38245
  content: () => readTemplate("pages/settings/webhooks/webhooks-page.tsx"),
38226
38246
  base: "cwd",
38227
- dependencies: ["webhooks-page-skeleton", "webhooks-page-content"]
38247
+ dependencies: ["auth-types", "role-gate", "webhooks-page-skeleton", "webhooks-page-content"]
38228
38248
  },
38229
38249
  "webhooks-page-skeleton": {
38230
38250
  relPath: "app/(admin)/admin/(authenticated)/settings/webhooks/webhooks-page-skeleton.tsx",
@@ -38284,7 +38304,12 @@ var TEMPLATE_REGISTRY = {
38284
38304
  relPath: "app/(admin)/admin/(authenticated)/settings/webhooks/logs/page.tsx",
38285
38305
  content: () => readTemplate("pages/settings/webhooks/webhooks-logs-page.tsx"),
38286
38306
  base: "cwd",
38287
- dependencies: ["webhooks-logs-page-content", "webhooks-page-skeleton"]
38307
+ dependencies: [
38308
+ "auth-types",
38309
+ "role-gate",
38310
+ "webhooks-logs-page-content",
38311
+ "webhooks-page-skeleton"
38312
+ ]
38288
38313
  },
38289
38314
  "webhooks-logs-page-content": {
38290
38315
  relPath: "app/(admin)/admin/(authenticated)/settings/webhooks/webhooks-logs-page-content.tsx",
@@ -38968,7 +38993,7 @@ var TEMPLATE_REGISTRY = {
38968
38993
  relPath: "app/(admin)/admin/(authenticated)/settings/audit-log/page.tsx",
38969
38994
  content: () => readTemplate("pages/settings/audit-log/audit-log-page.tsx"),
38970
38995
  base: "cwd",
38971
- dependencies: ["audit-log-page-content", "audit-log-page-skeleton"]
38996
+ dependencies: ["auth-types", "role-gate", "audit-log-page-content", "audit-log-page-skeleton"]
38972
38997
  },
38973
38998
  "audit-log-page-skeleton": {
38974
38999
  relPath: "app/(admin)/admin/(authenticated)/settings/audit-log/audit-log-page-skeleton.tsx",