betterstart-cli 0.0.105 → 0.0.107

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 (117) hide show
  1. package/dist/assets/adapters/next/templates/init/components/layouts/admin-nav-link.tsx +10 -8
  2. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-nav-link-skeleton.tsx +1 -5
  3. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu.tsx +54 -48
  4. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sign-out.tsx +2 -2
  5. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-body.tsx +20 -0
  6. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-cell.tsx +20 -0
  7. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-head.tsx +21 -0
  8. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-header.tsx +20 -0
  9. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid-row.tsx +22 -0
  10. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid.tsx +7 -81
  11. package/dist/assets/adapters/next/templates/init/components/shared/delete-dialog.tsx +3 -5
  12. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/lifecycle-hooks-tab.tsx +1 -1
  13. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/snippets-tab.tsx +1 -1
  14. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode-integrate.tsx +5 -7
  15. package/dist/assets/adapters/next/templates/init/components/shared/entity-filters-bar.tsx +9 -10
  16. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-item.tsx +2 -4
  17. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-restore-dialog.tsx +2 -4
  18. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-current-row.tsx +2 -4
  19. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-drawer.tsx +1 -1
  20. package/dist/assets/adapters/next/templates/init/components/shared/media/edit-media-dialog.tsx +2 -2
  21. package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-dialog.tsx +5 -5
  22. package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-drawer.tsx +52 -53
  23. package/dist/assets/adapters/next/templates/init/components/shared/sort-order-dialog.tsx +3 -5
  24. package/dist/assets/adapters/next/templates/init/pages/dashboard-page.tsx +1 -1
  25. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-drawer.tsx +1 -1
  26. package/dist/assets/adapters/next/templates/init/pages/settings/forms/form-notifications-drawer.tsx +5 -5
  27. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhook-actions.tsx +20 -20
  28. package/dist/assets/adapters/next/templates/init/pages/users/change-password-dialog.tsx +7 -5
  29. package/dist/assets/adapters/next/templates/init/pages/users/columns.tsx +3 -5
  30. package/dist/assets/adapters/next/templates/init/pages/users/create-user-dialog.tsx +1 -3
  31. package/dist/assets/adapters/next/templates/init/pages/users/delete-user-dialog.tsx +11 -5
  32. package/dist/assets/adapters/next/templates/init/pages/users/edit-role-dialog.tsx +1 -1
  33. package/dist/assets/shared-assets/react-admin/custom/content-editor/math-popover-button.tsx +13 -11
  34. package/dist/assets/shared-assets/react-admin/custom/content-editor/source-mode-dropdown-button.tsx +16 -14
  35. package/dist/assets/shared-assets/react-admin/custom/content-editor/source-mode.tsx +2 -2
  36. package/dist/assets/shared-assets/react-admin/custom/content-editor/table-button.tsx +14 -12
  37. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/blockquote-button/blockquote-button.tsx +4 -11
  38. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/blockquote-button/blockquote-shortcut-badge.tsx +15 -0
  39. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/code-block-button/code-block-button.tsx +4 -11
  40. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/code-block-button/code-block-shortcut-badge.tsx +15 -0
  41. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/color-highlight-button.tsx +6 -42
  42. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/color-highlight-shortcut-badge.tsx +15 -0
  43. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/highlight-swatch.tsx +34 -0
  44. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover.tsx +16 -14
  45. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/source-color-highlight-popover.tsx +15 -13
  46. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/heading-dropdown-menu/heading-dropdown-menu-item.tsx +1 -1
  47. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/heading-dropdown-menu/heading-dropdown-menu.tsx +31 -29
  48. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-control-popover.tsx +15 -13
  49. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/list-dropdown-menu/list-dropdown-menu-item.tsx +1 -1
  50. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/list-dropdown-menu/list-dropdown-menu.tsx +22 -20
  51. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/mark-button/mark-button.tsx +5 -14
  52. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/mark-button/mark-shortcut-badge.tsx +18 -0
  53. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/undo-redo-button/history-shortcut-badge.tsx +18 -0
  54. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/undo-redo-button/undo-redo-button.tsx +5 -14
  55. package/dist/assets/shared-assets/react-admin/custom/date-picker.tsx +16 -14
  56. package/dist/assets/shared-assets/react-admin/custom/date-range-picker.tsx +8 -6
  57. package/dist/assets/shared-assets/react-admin/custom/icon-picker/memoized-icon.tsx +10 -0
  58. package/dist/assets/shared-assets/react-admin/custom/icon-picker.tsx +9 -10
  59. package/dist/assets/shared-assets/react-admin/custom/nested-object-list-field.tsx +2 -4
  60. package/dist/assets/shared-assets/react-admin/ui/accordion.tsx +11 -28
  61. package/dist/assets/shared-assets/react-admin/ui/alert-dialog.tsx +30 -47
  62. package/dist/assets/shared-assets/react-admin/ui/alert.tsx +4 -4
  63. package/dist/assets/shared-assets/react-admin/ui/aspect-ratio.tsx +18 -5
  64. package/dist/assets/shared-assets/react-admin/ui/avatar.tsx +10 -13
  65. package/dist/assets/shared-assets/react-admin/ui/badge.tsx +21 -20
  66. package/dist/assets/shared-assets/react-admin/ui/breadcrumb.tsx +20 -19
  67. package/dist/assets/shared-assets/react-admin/ui/button-group.tsx +25 -24
  68. package/dist/assets/shared-assets/react-admin/ui/button.tsx +22 -31
  69. package/dist/assets/shared-assets/react-admin/ui/calendar.tsx +9 -6
  70. package/dist/assets/shared-assets/react-admin/ui/card.tsx +6 -16
  71. package/dist/assets/shared-assets/react-admin/ui/carousel.tsx +20 -17
  72. package/dist/assets/shared-assets/react-admin/ui/chart.tsx +19 -16
  73. package/dist/assets/shared-assets/react-admin/ui/checkbox.tsx +3 -4
  74. package/dist/assets/shared-assets/react-admin/ui/collapsible.tsx +6 -10
  75. package/dist/assets/shared-assets/react-admin/ui/combobox.tsx +10 -36
  76. package/dist/assets/shared-assets/react-admin/ui/command.tsx +7 -6
  77. package/dist/assets/shared-assets/react-admin/ui/context-menu.tsx +77 -79
  78. package/dist/assets/shared-assets/react-admin/ui/dialog.tsx +29 -54
  79. package/dist/assets/shared-assets/react-admin/ui/direction.tsx +1 -18
  80. package/dist/assets/shared-assets/react-admin/ui/drawer.tsx +121 -49
  81. package/dist/assets/shared-assets/react-admin/ui/dropdown-menu.tsx +117 -131
  82. package/dist/assets/shared-assets/react-admin/ui/empty.tsx +3 -3
  83. package/dist/assets/shared-assets/react-admin/ui/field.tsx +20 -30
  84. package/dist/assets/shared-assets/react-admin/ui/form.tsx +27 -31
  85. package/dist/assets/shared-assets/react-admin/ui/hover-card.tsx +26 -18
  86. package/dist/assets/shared-assets/react-admin/ui/input-group.tsx +25 -12
  87. package/dist/assets/shared-assets/react-admin/ui/input-otp.tsx +3 -3
  88. package/dist/assets/shared-assets/react-admin/ui/input.tsx +4 -3
  89. package/dist/assets/shared-assets/react-admin/ui/item.tsx +26 -19
  90. package/dist/assets/shared-assets/react-admin/ui/label.tsx +18 -14
  91. package/dist/assets/shared-assets/react-admin/ui/menubar.tsx +80 -73
  92. package/dist/assets/shared-assets/react-admin/ui/native-select.tsx +3 -3
  93. package/dist/assets/shared-assets/react-admin/ui/navigation-menu.tsx +40 -39
  94. package/dist/assets/shared-assets/react-admin/ui/pagination.tsx +18 -11
  95. package/dist/assets/shared-assets/react-admin/ui/popover.tsx +31 -30
  96. package/dist/assets/shared-assets/react-admin/ui/progress.tsx +51 -16
  97. package/dist/assets/shared-assets/react-admin/ui/radio-group.tsx +11 -17
  98. package/dist/assets/shared-assets/react-admin/ui/resizable.tsx +1 -1
  99. package/dist/assets/shared-assets/react-admin/ui/scroll-area.tsx +9 -13
  100. package/dist/assets/shared-assets/react-admin/ui/select.tsx +66 -60
  101. package/dist/assets/shared-assets/react-admin/ui/separator.tsx +3 -10
  102. package/dist/assets/shared-assets/react-admin/ui/sheet.tsx +22 -27
  103. package/dist/assets/shared-assets/react-admin/ui/sidebar.tsx +144 -126
  104. package/dist/assets/shared-assets/react-admin/ui/skeleton.tsx +1 -1
  105. package/dist/assets/shared-assets/react-admin/ui/slider.tsx +27 -29
  106. package/dist/assets/shared-assets/react-admin/ui/sonner.tsx +8 -3
  107. package/dist/assets/shared-assets/react-admin/ui/spinner.tsx +4 -3
  108. package/dist/assets/shared-assets/react-admin/ui/switch.tsx +4 -5
  109. package/dist/assets/shared-assets/react-admin/ui/table.tsx +8 -21
  110. package/dist/assets/shared-assets/react-admin/ui/tabs.tsx +11 -16
  111. package/dist/assets/shared-assets/react-admin/ui/textarea.tsx +2 -2
  112. package/dist/assets/shared-assets/react-admin/ui/toggle-group.tsx +12 -11
  113. package/dist/assets/shared-assets/react-admin/ui/toggle.tsx +4 -5
  114. package/dist/assets/shared-assets/react-admin/ui/tooltip.tsx +29 -27
  115. package/dist/cli.js +145 -111
  116. package/dist/cli.js.map +1 -1
  117. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -2769,33 +2769,6 @@ var REACT_ADMIN_DEPS = [
2769
2769
  "@dnd-kit/sortable",
2770
2770
  "@dnd-kit/utilities",
2771
2771
  "@floating-ui/react",
2772
- "@radix-ui/react-accordion",
2773
- "@radix-ui/react-alert-dialog",
2774
- "@radix-ui/react-aspect-ratio",
2775
- "@radix-ui/react-avatar",
2776
- "@radix-ui/react-checkbox",
2777
- "@radix-ui/react-collapsible",
2778
- "@radix-ui/react-context-menu",
2779
- "@radix-ui/react-dialog",
2780
- "@radix-ui/react-dropdown-menu",
2781
- "@radix-ui/react-hover-card",
2782
- "@radix-ui/react-label",
2783
- "@radix-ui/react-menubar",
2784
- "@radix-ui/react-navigation-menu",
2785
- "@radix-ui/react-popover",
2786
- "@radix-ui/react-progress",
2787
- "@radix-ui/react-radio-group",
2788
- "@radix-ui/react-scroll-area",
2789
- "@radix-ui/react-select",
2790
- "@radix-ui/react-separator",
2791
- "@radix-ui/react-slider",
2792
- "@radix-ui/react-slot",
2793
- "@radix-ui/react-switch",
2794
- "@radix-ui/react-tabs",
2795
- "@radix-ui/react-toast",
2796
- "@radix-ui/react-toggle",
2797
- "@radix-ui/react-toggle-group",
2798
- "@radix-ui/react-tooltip",
2799
2772
  "@tiptap/core",
2800
2773
  "@tiptap/extension-underline",
2801
2774
  "@tiptap/extension-highlight",
@@ -2822,12 +2795,10 @@ var REACT_ADMIN_DEPS = [
2822
2795
  "lodash.throttle",
2823
2796
  "motion",
2824
2797
  "next-themes",
2825
- "radix-ui",
2826
2798
  "react-day-picker",
2827
2799
  "react-hotkeys-hook",
2828
2800
  "react-resizable-panels",
2829
- "recharts",
2830
- "vaul"
2801
+ "recharts"
2831
2802
  ];
2832
2803
  var REACT_ADMIN_DEV_DEPS = ["@tailwindcss/typography"];
2833
2804
  var CORE_DEPS = Array.from(/* @__PURE__ */ new Set([...NEXT_ADAPTER_DEPS, ...REACT_ADMIN_DEPS]));
@@ -6313,12 +6284,18 @@ export function ${componentName}({
6313
6284
 
6314
6285
  return (
6315
6286
  <AlertDialog open={open} onOpenChange={onOpenChange}>
6316
- <AlertDialogTrigger asChild>
6317
- <DropdownMenuItem variant="destructive" onSelect={(event) => event.preventDefault()}>
6318
- <Trash className="size-4" />
6319
- Delete ${escapeJsx2}
6320
- </DropdownMenuItem>
6321
- </AlertDialogTrigger>
6287
+ <AlertDialogTrigger
6288
+ render={
6289
+ <DropdownMenuItem
6290
+ variant="destructive"
6291
+ closeOnClick={false}
6292
+ onClick={(event) => event.preventDefault()}
6293
+ >
6294
+ <Trash className="size-4" />
6295
+ Delete ${escapeJsx2}
6296
+ </DropdownMenuItem>
6297
+ }
6298
+ />
6322
6299
  <AlertDialogContent>
6323
6300
  <AlertDialogHeader>
6324
6301
  <AlertDialogTitle>Delete ${escapeJsx2}?</AlertDialogTitle>
@@ -6401,16 +6378,18 @@ export function ${componentName}({ id }: { id: string }) {
6401
6378
 
6402
6379
  return (
6403
6380
  <DropdownMenu open={menuOpen} onOpenChange={setMenuOpen}>
6404
- <DropdownMenuTrigger asChild>
6405
- <Button
6406
- variant="ghost"
6407
- className="size-8 p-0"
6408
- aria-label={\`Open ${escapeTemplateText2} actions for \${id}\`}
6409
- >
6410
- <span className="sr-only">Open ${escapeJsx2} actions</span>
6411
- <MoreHorizontal className="size-4" />
6412
- </Button>
6413
- </DropdownMenuTrigger>
6381
+ <DropdownMenuTrigger
6382
+ render={
6383
+ <Button
6384
+ variant="ghost"
6385
+ className="size-8 p-0"
6386
+ aria-label={\`Open ${escapeTemplateText2} actions for \${id}\`}
6387
+ >
6388
+ <span className="sr-only">Open ${escapeJsx2} actions</span>
6389
+ <MoreHorizontal className="size-4" />
6390
+ </Button>
6391
+ }
6392
+ />
6414
6393
  <DropdownMenuContent align="end">
6415
6394
  <${dialogComponentName}
6416
6395
  id={id}
@@ -6923,11 +6902,9 @@ ${deleteTransition}${bulkDeleteHandler}
6923
6902
  actions={
6924
6903
  <div className="flex items-center gap-1">
6925
6904
  <${devModeIntegrateButtonExportName} initialSettings={initialSettings} />${exportButton}
6926
- <Button variant="outline" asChild>
6927
- <Link href="${adminRoutePath}/settings/forms">
6905
+ <Button variant="outline" render={<Link href="${adminRoutePath}/settings/forms" />}>
6928
6906
  <Settings className="size-3.5" />
6929
6907
  Settings
6930
- </Link>
6931
6908
  </Button>
6932
6909
  </div>
6933
6910
  }
@@ -7223,8 +7200,8 @@ export function ${pascal}SubmissionDrawer({
7223
7200
  : 'No submission selected'
7224
7201
 
7225
7202
  return (
7226
- <Drawer direction="right" open={open} onOpenChange={onOpenChange} modal>
7227
- <DrawerContent className="h-full w-full overflow-hidden data-[vaul-drawer-direction=right]:sm:max-w-xl">
7203
+ <Drawer swipeDirection="right" open={open} onOpenChange={onOpenChange} modal>
7204
+ <DrawerContent className="h-full w-full overflow-hidden data-[swipe-direction=right]:sm:max-w-xl">
7228
7205
  <DrawerHeader>
7229
7206
  <DrawerTitle>${label} Submission</DrawerTitle>
7230
7207
  <DrawerDescription>{description}</DrawerDescription>
@@ -16936,18 +16913,17 @@ ${indent} </Button>
16936
16913
  ${indent} </div>
16937
16914
 
16938
16915
  ${indent} <Accordion
16939
- ${indent} type="single"
16940
- ${indent} collapsible
16941
- ${indent} value={${fieldName}Expanded}
16916
+ ${indent} value={${fieldName}Expanded ? [${fieldName}Expanded] : []}
16942
16917
  ${indent} onValueChange={async (nextValue) => {
16943
- ${indent} if (${fieldName}Expanded && nextValue && nextValue !== ${fieldName}Expanded) {
16918
+ ${indent} const nextExpanded = nextValue[0] ?? ''
16919
+ ${indent} if (${fieldName}Expanded && nextExpanded && nextExpanded !== ${fieldName}Expanded) {
16944
16920
  ${indent} const expandedIndex = Number(${fieldName}Expanded.replace('item-', '')) - 1
16945
16921
  ${indent} if (expandedIndex >= 0) {
16946
16922
  ${indent} const isExpandedItemValid = await form.trigger(${validateExpandedItemExpression})
16947
16923
  ${indent} if (!isExpandedItemValid) return
16948
16924
  ${indent} }
16949
16925
  ${indent} }
16950
- ${indent} set${pascalFieldName}Expanded(nextValue)
16926
+ ${indent} set${pascalFieldName}Expanded(nextExpanded)
16951
16927
  ${indent} }}
16952
16928
  ${indent} >
16953
16929
  ${indent} {${fieldName}FieldArray.fields.map((item, index) => (
@@ -18161,23 +18137,25 @@ ${indent} render={({ field: formField }) => (
18161
18137
  ${indent} <FormItem${formItemProps2}>
18162
18138
  ${indent} ${labelWithDescription2}
18163
18139
  ${indent} <Popover open={${fieldName}Open} onOpenChange={set${toPascalCase2}Open}>
18164
- ${indent} <PopoverTrigger asChild>
18165
- ${indent} <FormControl>
18166
- ${indent} <Button
18140
+ ${indent} <PopoverTrigger
18141
+ ${indent} render={
18142
+ ${indent} <FormControl>
18143
+ ${indent} <Button
18167
18144
  ${indent} variant="outline"
18168
18145
  ${indent} role="combobox"
18169
18146
  ${indent} className={cn("w-full justify-between", {
18170
18147
  ${indent} "text-muted-foreground": !formField.value || formField.value.length === 0
18171
18148
  ${indent} })}
18172
18149
  ${indent} disabled={isPending}
18173
- ${indent} >
18150
+ ${indent} >
18174
18151
  ${indent} {(formField.value?.length ?? 0) > 0
18175
18152
  ${indent} ? \`\${formField.value?.length ?? 0} selected\`
18176
18153
  ${indent} : "Select ${toLowerCase}"}
18177
- ${indent} <ChevronsUpDown className="ml-2 size-4 shrink-0 opacity-50" />
18178
- ${indent} </Button>
18179
- ${indent} </FormControl>
18180
- ${indent} </PopoverTrigger>
18154
+ ${indent} <ChevronsUpDown className="ml-2 size-4 shrink-0 opacity-50" />
18155
+ ${indent} </Button>
18156
+ ${indent} </FormControl>
18157
+ ${indent} }
18158
+ ${indent} />
18181
18159
  ${indent} <PopoverContent className="w-full p-0" align="start">
18182
18160
  ${indent} <Command>
18183
18161
  ${indent} <CommandInput placeholder="Search ${toLowerCase}..." />
@@ -18266,26 +18244,28 @@ ${indent} render={({ field: formField }) => (
18266
18244
  ${indent} <FormItem${formItemProps2}>
18267
18245
  ${indent} ${labelWithDescription2}
18268
18246
  ${indent} <Popover open={${fieldName}Open} onOpenChange={set${toPascalCase2}Open}>
18269
- ${indent} <PopoverTrigger asChild>
18270
- ${indent} <FormControl>
18271
- ${indent} <Button
18247
+ ${indent} <PopoverTrigger
18248
+ ${indent} render={
18249
+ ${indent} <FormControl>
18250
+ ${indent} <Button
18272
18251
  ${indent} variant="outline"
18273
18252
  ${indent} role="combobox"
18274
18253
  ${indent} className={cn("w-full justify-between", {
18275
18254
  ${indent} "text-muted-foreground": !formField.value
18276
18255
  ${indent} })}
18277
18256
  ${indent} disabled={isPending}
18278
- ${indent} >
18257
+ ${indent} >
18279
18258
  ${indent} {formField.value
18280
18259
  ${indent} ? (() => {
18281
18260
  ${indent} const item = ${dataArray}?.find((item) => item.id !== null && String(item.id) === formField.value)
18282
18261
  ${indent} return item ? (${displayField}) : "Select ${toLowerCase}"
18283
18262
  ${indent} })()
18284
18263
  ${indent} : "Select ${toLowerCase}"}
18285
- ${indent} <ChevronsUpDown className="ml-2 size-4 shrink-0 opacity-50" />
18286
- ${indent} </Button>
18287
- ${indent} </FormControl>
18288
- ${indent} </PopoverTrigger>
18264
+ ${indent} <ChevronsUpDown className="ml-2 size-4 shrink-0 opacity-50" />
18265
+ ${indent} </Button>
18266
+ ${indent} </FormControl>
18267
+ ${indent} }
18268
+ ${indent} />
18289
18269
  ${indent} <PopoverContent className="w-full p-0" align="start">
18290
18270
  ${indent} <Command>
18291
18271
  ${indent} <CommandInput placeholder="Search ${toLowerCase}..." />
@@ -18497,7 +18477,7 @@ ${indent} <span data-slot="select-value" className="pointer-events-no
18497
18477
  ${indent} {(${selectedLabelExpression}) ?? ${stringify}}
18498
18478
  ${indent} </span>
18499
18479
  ${indent} </SelectTrigger>
18500
- ${indent} <SelectContent position="popper" align="start">
18480
+ ${indent} <SelectContent alignItemWithTrigger={false} align="start">
18501
18481
  ${optionsJsx}
18502
18482
  ${indent} </SelectContent>
18503
18483
  ${indent} </Select>
@@ -18552,9 +18532,10 @@ ${indent} return (
18552
18532
  ${indent} <FormItem${formItemProps2}>
18553
18533
  ${indent} ${labelWithDescription2}
18554
18534
  ${indent} <Popover open={${openVar}} onOpenChange={${setOpenVar}}>
18555
- ${indent} <PopoverTrigger asChild>
18556
- ${indent} <FormControl>
18557
- ${indent} <Button
18535
+ ${indent} <PopoverTrigger
18536
+ ${indent} render={
18537
+ ${indent} <FormControl>
18538
+ ${indent} <Button
18558
18539
  ${indent} type="button"
18559
18540
  ${indent} variant="outline"
18560
18541
  ${indent} role="combobox"
@@ -18563,13 +18544,14 @@ ${indent} className={cn("w-full justify-between", {
18563
18544
  ${indent} "text-muted-foreground": !selectedOption
18564
18545
  ${indent} })}
18565
18546
  ${indent} disabled={isPending}
18566
- ${indent} >
18567
- ${indent} <span className="truncate">{selectedOption?.label ?? ${stringify}}</span>
18568
- ${indent} <ChevronsUpDown className="ml-2 size-4 shrink-0 opacity-50" />
18569
- ${indent} </Button>
18570
- ${indent} </FormControl>
18571
- ${indent} </PopoverTrigger>
18572
- ${indent} <PopoverContent className="w-(--radix-popover-trigger-width) p-0" align="start">
18547
+ ${indent} >
18548
+ ${indent} <span className="truncate">{selectedOption?.label ?? ${stringify}}</span>
18549
+ ${indent} <ChevronsUpDown className="ml-2 size-4 shrink-0 opacity-50" />
18550
+ ${indent} </Button>
18551
+ ${indent} </FormControl>
18552
+ ${indent} }
18553
+ ${indent} />
18554
+ ${indent} <PopoverContent className="w-(--anchor-width) p-0" align="start">
18573
18555
  ${indent} <Command>
18574
18556
  ${indent} <CommandInput
18575
18557
  ${indent} placeholder="Search ${lowerLabel}..."
@@ -18759,18 +18741,19 @@ ${indent} return (
18759
18741
  ${indent} <FormItem${formItemProps2}>
18760
18742
  ${indent} ${labelWithDescription2}
18761
18743
  ${indent} <Popover open={${openVar}} onOpenChange={${setOpenVar}}>
18762
- ${indent} <PopoverTrigger asChild>
18763
- ${indent} <FormControl>
18764
- ${indent} <Button
18765
- ${indent} type="button"
18766
- ${indent} variant="outline"
18767
- ${indent} role="combobox"
18768
- ${indent} aria-expanded={${openVar}}
18769
- ${indent} className={cn("w-full justify-between gap-2", {
18770
- ${indent} "text-muted-foreground": selectedOptions.length === 0
18771
- ${indent} })}
18772
- ${indent} disabled={isPending}
18773
- ${indent} >
18744
+ ${indent} <PopoverTrigger
18745
+ ${indent} render={
18746
+ ${indent} <FormControl>
18747
+ ${indent} <Button
18748
+ ${indent} type="button"
18749
+ ${indent} variant="outline"
18750
+ ${indent} role="combobox"
18751
+ ${indent} aria-expanded={${openVar}}
18752
+ ${indent} className={cn("w-full justify-between gap-2", {
18753
+ ${indent} "text-muted-foreground": selectedOptions.length === 0
18754
+ ${indent} })}
18755
+ ${indent} disabled={isPending}
18756
+ ${indent} >
18774
18757
  ${indent} <span className="flex min-w-0 flex-1 items-center gap-2 text-left">
18775
18758
  ${indent} {selectedOptions.length > 0 ? (
18776
18759
  ${indent} <>
@@ -18779,15 +18762,12 @@ ${indent} {visibleSelectedOptions.map((option) => option.
18779
18762
  ${indent} </span>
18780
18763
  ${indent} {hiddenSelectedOptions.length > 0 ? (
18781
18764
  ${indent} <Tooltip>
18782
- ${indent} <TooltipTrigger asChild>
18783
- ${indent} <Badge
18784
- ${indent} variant="outline"
18785
- ${indent} className="h-5 shrink-0 tabular-nums"
18786
- ${indent} >
18765
+ ${indent} <TooltipTrigger
18766
+ ${indent} render={<Badge variant="outline" className="h-5 shrink-0 tabular-nums" />}
18767
+ ${indent} >
18787
18768
  ${indent} {'+'}
18788
18769
  ${indent} {hiddenSelectedOptions.length}{' '}
18789
18770
  ${indent} {hiddenSelectedOptions.length === 1 ? 'other' : 'others'}
18790
- ${indent} </Badge>
18791
18771
  ${indent} </TooltipTrigger>
18792
18772
  ${indent} <TooltipContent align="center" side="bottom" className="max-w-60 w-full">
18793
18773
  ${indent} <div className="space-y-1">
@@ -18806,10 +18786,11 @@ ${indent} <span className="truncate">{${stringify}}</span>
18806
18786
  ${indent} )}
18807
18787
  ${indent} </span>
18808
18788
  ${indent} <ChevronsUpDown className="size-4 shrink-0 opacity-50" />
18809
- ${indent} </Button>
18810
- ${indent} </FormControl>
18811
- ${indent} </PopoverTrigger>
18812
- ${indent} <PopoverContent className="w-(--radix-popover-trigger-width) p-0" align="start">
18789
+ ${indent} </Button>
18790
+ ${indent} </FormControl>
18791
+ ${indent} }
18792
+ ${indent} />
18793
+ ${indent} <PopoverContent className="w-(--anchor-width) p-0" align="start">
18813
18794
  ${indent} <Command>
18814
18795
  ${indent} ${searchInput}
18815
18796
  ${indent} <CommandList>
@@ -20955,10 +20936,8 @@ function renderPageContentActionButtonsTemplate2({
20955
20936
  schemaName,
20956
20937
  singularizeLabel: singularizeLabel2
20957
20938
  }) {
20958
- return `<Button asChild>
20959
- <Link href="${adminRoutePath}/${schemaName}/new">
20960
- Create ${singularizeLabel2}
20961
- </Link>
20939
+ return `<Button render={<Link href="${adminRoutePath}/${schemaName}/new" />}>
20940
+ Create ${singularizeLabel2}
20962
20941
  </Button>`;
20963
20942
  }
20964
20943
  function renderPageContentActionButtonsDetailsTemplate() {
@@ -31409,6 +31388,26 @@ function scaffoldComponents({ cwd, config }) {
31409
31388
  "components/shared/data-table/data-grid.tsx",
31410
31389
  readTemplate("components/shared/data-table/data-grid.tsx")
31411
31390
  );
31391
+ write(
31392
+ "components/shared/data-table/data-grid-header.tsx",
31393
+ readTemplate("components/shared/data-table/data-grid-header.tsx")
31394
+ );
31395
+ write(
31396
+ "components/shared/data-table/data-grid-body.tsx",
31397
+ readTemplate("components/shared/data-table/data-grid-body.tsx")
31398
+ );
31399
+ write(
31400
+ "components/shared/data-table/data-grid-row.tsx",
31401
+ readTemplate("components/shared/data-table/data-grid-row.tsx")
31402
+ );
31403
+ write(
31404
+ "components/shared/data-table/data-grid-head.tsx",
31405
+ readTemplate("components/shared/data-table/data-grid-head.tsx")
31406
+ );
31407
+ write(
31408
+ "components/shared/data-table/data-grid-cell.tsx",
31409
+ readTemplate("components/shared/data-table/data-grid-cell.tsx")
31410
+ );
31412
31411
  write(
31413
31412
  "components/shared/data-table/data-table-pagination.tsx",
31414
31413
  readTemplate("components/shared/data-table/data-table-pagination.tsx")
@@ -33054,6 +33053,7 @@ function scaffoldOxfmt(cwd, linter, adminDir) {
33054
33053
  },
33055
33054
  rules: {
33056
33055
  "react/react-in-jsx-scope": "off",
33056
+ "react/no-multi-comp": "error",
33057
33057
  "typescript/no-non-null-assertion": "off",
33058
33058
  // Inline `type` specifiers become their own `import type` statement, which
33059
33059
  // oxfmt then hoists via the `type` group above.
@@ -33072,6 +33072,12 @@ function scaffoldOxfmt(cwd, linter, adminDir) {
33072
33072
  "unicorn/no-new-array": "off",
33073
33073
  "unicorn/no-empty-file": "off"
33074
33074
  }
33075
+ },
33076
+ {
33077
+ files: [`**/${admin}/components/ui/**`],
33078
+ rules: {
33079
+ "react/no-multi-comp": "off"
33080
+ }
33075
33081
  }
33076
33082
  ],
33077
33083
  ignorePatterns: IGNORE_PATTERNS
@@ -36589,7 +36595,34 @@ var TEMPLATE_REGISTRY = {
36589
36595
  },
36590
36596
  "data-grid": {
36591
36597
  relPath: "components/shared/data-table/data-grid.tsx",
36592
- content: () => readTemplate("components/shared/data-table/data-grid.tsx")
36598
+ content: () => readTemplate("components/shared/data-table/data-grid.tsx"),
36599
+ dependencies: [
36600
+ "data-grid-header",
36601
+ "data-grid-body",
36602
+ "data-grid-row",
36603
+ "data-grid-head",
36604
+ "data-grid-cell"
36605
+ ]
36606
+ },
36607
+ "data-grid-header": {
36608
+ relPath: "components/shared/data-table/data-grid-header.tsx",
36609
+ content: () => readTemplate("components/shared/data-table/data-grid-header.tsx")
36610
+ },
36611
+ "data-grid-body": {
36612
+ relPath: "components/shared/data-table/data-grid-body.tsx",
36613
+ content: () => readTemplate("components/shared/data-table/data-grid-body.tsx")
36614
+ },
36615
+ "data-grid-row": {
36616
+ relPath: "components/shared/data-table/data-grid-row.tsx",
36617
+ content: () => readTemplate("components/shared/data-table/data-grid-row.tsx")
36618
+ },
36619
+ "data-grid-head": {
36620
+ relPath: "components/shared/data-table/data-grid-head.tsx",
36621
+ content: () => readTemplate("components/shared/data-table/data-grid-head.tsx")
36622
+ },
36623
+ "data-grid-cell": {
36624
+ relPath: "components/shared/data-table/data-grid-cell.tsx",
36625
+ content: () => readTemplate("components/shared/data-table/data-grid-cell.tsx")
36593
36626
  },
36594
36627
  "data-table-pagination": {
36595
36628
  relPath: "components/shared/data-table/data-table-pagination.tsx",
@@ -40209,7 +40242,8 @@ function createAdminShadcnComponentsJson(config) {
40209
40242
  const namespace = resolveAdminNamespace(config.frameworkConfig.next.namespace);
40210
40243
  return {
40211
40244
  $schema: "https://ui.shadcn.com/schema.json",
40212
- style: "new-york",
40245
+ base: "base",
40246
+ style: "maia",
40213
40247
  rsc: true,
40214
40248
  tsx: true,
40215
40249
  tailwind: {