betterstart-cli 0.0.96 → 0.0.97

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 (145) hide show
  1. package/dist/assets/adapters/next/integrations/r2/actions/r2.ts +4 -4
  2. package/dist/assets/adapters/next/integrations/railway-bucket/actions/railway-bucket.ts +5 -5
  3. package/dist/assets/adapters/next/templates/init/components/layouts/admin-header.tsx +6 -6
  4. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-branding-skeleton.tsx +2 -2
  5. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu-skeleton.tsx +1 -1
  6. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar-user-menu.tsx +8 -8
  7. package/dist/assets/adapters/next/templates/init/components/layouts/admin-sidebar.tsx +4 -4
  8. package/dist/assets/adapters/next/templates/init/components/layouts/content-skeleton.tsx +4 -4
  9. package/dist/assets/adapters/next/templates/init/components/layouts/sidebar-branding.tsx +4 -4
  10. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-grid.tsx +1 -1
  11. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-table-pagination.tsx +3 -3
  12. package/dist/assets/adapters/next/templates/init/components/shared/data-table/data-table.tsx +1 -1
  13. package/dist/assets/adapters/next/templates/init/components/shared/delete-dialog.tsx +1 -1
  14. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/copyable-code-block.tsx +5 -5
  15. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode/plain-code-fallback.tsx +1 -1
  16. package/dist/assets/adapters/next/templates/init/components/shared/dev-mode-integrate.tsx +1 -1
  17. package/dist/assets/adapters/next/templates/init/components/shared/entity-filters-bar.tsx +5 -5
  18. package/dist/assets/adapters/next/templates/init/components/shared/entity-metadata.tsx +2 -2
  19. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-version-item.tsx +1 -1
  20. package/dist/assets/adapters/next/templates/init/components/shared/entity-versions/entity-versions-current-row.tsx +1 -1
  21. package/dist/assets/adapters/next/templates/init/components/shared/media/edit-media-dialog-content.tsx +3 -3
  22. package/dist/assets/adapters/next/templates/init/components/shared/media/media-delete-drawer.tsx +1 -1
  23. package/dist/assets/adapters/next/templates/init/components/shared/media/media-filters-bar.tsx +2 -2
  24. package/dist/assets/adapters/next/templates/init/components/shared/media/media-gallery-dialog.tsx +2 -2
  25. package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-item.tsx +3 -3
  26. package/dist/assets/adapters/next/templates/init/components/shared/media/media-grid-pagination.tsx +4 -4
  27. package/dist/assets/adapters/next/templates/init/components/shared/media/media-preview.tsx +3 -3
  28. package/dist/assets/adapters/next/templates/init/components/shared/media/media-url-importer.tsx +3 -3
  29. package/dist/assets/adapters/next/templates/init/components/shared/page-header.tsx +4 -4
  30. package/dist/assets/adapters/next/templates/init/components/shared/search-input.tsx +5 -5
  31. package/dist/assets/adapters/next/templates/init/components/shared/sort-indicator.tsx +1 -1
  32. package/dist/assets/adapters/next/templates/init/components/shared/sort-order-dialog.tsx +1 -1
  33. package/dist/assets/adapters/next/templates/init/components/shared/sort-order-drag-overlay-item.tsx +1 -1
  34. package/dist/assets/adapters/next/templates/init/components/shared/sort-order-item.tsx +2 -2
  35. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-heading-dropdown-menu.ts +0 -1
  36. package/dist/assets/adapters/next/templates/init/hooks/content-editor/use-list-dropdown-menu.ts +0 -1
  37. package/dist/assets/adapters/next/templates/init/lib/actions/audit/get-audit-logs.ts +4 -1
  38. package/dist/assets/adapters/next/templates/init/lib/actions/forms/index.ts +1 -5
  39. package/dist/assets/adapters/next/templates/init/lib/actions/media/get-media.ts +4 -1
  40. package/dist/assets/adapters/next/templates/init/lib/actions/profile/index.ts +1 -5
  41. package/dist/assets/adapters/next/templates/init/lib/actions/upload/index.ts +1 -5
  42. package/dist/assets/adapters/next/templates/init/lib/db/core/schema.ts +4 -1
  43. package/dist/assets/adapters/next/templates/init/lib/lifecycle-hooks/runner.ts +1 -1
  44. package/dist/assets/adapters/next/templates/init/pages/admin-layout.tsx +1 -1
  45. package/dist/assets/adapters/next/templates/init/pages/auth-gate-rsc.tsx +1 -1
  46. package/dist/assets/adapters/next/templates/init/pages/dashboard-page.tsx +6 -6
  47. package/dist/assets/adapters/next/templates/init/pages/forgot-password-form.tsx +4 -4
  48. package/dist/assets/adapters/next/templates/init/pages/login-form.tsx +3 -3
  49. package/dist/assets/adapters/next/templates/init/pages/media/media-page-content.tsx +3 -3
  50. package/dist/assets/adapters/next/templates/init/pages/media/media-page-skeleton.tsx +1 -1
  51. package/dist/assets/adapters/next/templates/init/pages/minimal-account-shell.tsx +2 -2
  52. package/dist/assets/adapters/next/templates/init/pages/profile/profile-page.tsx +1 -1
  53. package/dist/assets/adapters/next/templates/init/pages/reset-password-form.tsx +3 -3
  54. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-columns.tsx +1 -1
  55. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-drawer.tsx +1 -1
  56. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-detail-row.tsx +2 -2
  57. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-page-content.tsx +1 -1
  58. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-page-skeleton.tsx +1 -1
  59. package/dist/assets/adapters/next/templates/init/pages/settings/audit-log/audit-log-table.tsx +2 -2
  60. package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-page-content.tsx +1 -1
  61. package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-page-skeleton.tsx +1 -1
  62. package/dist/assets/adapters/next/templates/init/pages/settings/forms/forms-settings-table.tsx +1 -1
  63. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhook-endpoint-dialog.tsx +3 -3
  64. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-columns.tsx +6 -6
  65. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-columns.tsx +7 -7
  66. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-page-content.tsx +1 -1
  67. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-logs-table.tsx +2 -2
  68. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-page-content.tsx +1 -1
  69. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-page-skeleton.tsx +1 -1
  70. package/dist/assets/adapters/next/templates/init/pages/settings/webhooks/webhooks-table.tsx +2 -2
  71. package/dist/assets/adapters/next/templates/init/pages/users/columns.tsx +4 -4
  72. package/dist/assets/adapters/next/templates/init/pages/users/users-page-content.tsx +1 -1
  73. package/dist/assets/adapters/next/templates/init/pages/users/users-page-skeleton.tsx +1 -1
  74. package/dist/assets/adapters/next/templates/init/pages/users/users-table.tsx +5 -5
  75. package/dist/assets/adapters/next/templates/init/types/table-meta.ts +1 -1
  76. package/dist/assets/shared-assets/react-admin/custom/content-editor/editor-toolbar.tsx +1 -1
  77. package/dist/assets/shared-assets/react-admin/custom/content-editor/index.tsx +2 -2
  78. package/dist/assets/shared-assets/react-admin/custom/content-editor/main-toolbar-content.tsx +4 -4
  79. package/dist/assets/shared-assets/react-admin/custom/content-editor/math-bubble-menu.tsx +1 -1
  80. package/dist/assets/shared-assets/react-admin/custom/content-editor/math-editor-controls.tsx +1 -1
  81. package/dist/assets/shared-assets/react-admin/custom/content-editor/mobile-toolbar-content.tsx +1 -1
  82. package/dist/assets/shared-assets/react-admin/custom/content-editor/remove-table-part-icon.tsx +1 -1
  83. package/dist/assets/shared-assets/react-admin/custom/content-editor/selection-bubble-menu.tsx +3 -3
  84. package/dist/assets/shared-assets/react-admin/custom/content-editor/slash-command-menu.tsx +6 -6
  85. package/dist/assets/shared-assets/react-admin/custom/content-editor/source-mode.tsx +7 -7
  86. package/dist/assets/shared-assets/react-admin/custom/content-editor/table-add-controls.tsx +3 -3
  87. package/dist/assets/shared-assets/react-admin/custom/content-editor/table-bubble-menu.tsx +2 -2
  88. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-node/removable-image-node/removable-image-node.tsx +1 -1
  89. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/blockquote-button/blockquote-button.tsx +1 -2
  90. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/code-block-button/code-block-button.tsx +1 -2
  91. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-button/color-highlight-button.tsx +2 -3
  92. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover-content.tsx +4 -2
  93. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/color-highlight-popover.tsx +3 -2
  94. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/color-highlight-popover/source-color-highlight-popover.tsx +5 -3
  95. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/heading-dropdown-menu/heading-dropdown-menu.tsx +2 -1
  96. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-main.tsx +2 -2
  97. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/link-popover/link-popover.tsx +1 -2
  98. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/mark-button/mark-button.tsx +1 -2
  99. package/dist/assets/shared-assets/react-admin/custom/content-editor/tiptap-ui/undo-redo-button/undo-redo-button.tsx +1 -2
  100. package/dist/assets/shared-assets/react-admin/custom/date-picker.tsx +2 -2
  101. package/dist/assets/shared-assets/react-admin/custom/gallery-field.tsx +6 -6
  102. package/dist/assets/shared-assets/react-admin/custom/icon-picker.tsx +10 -8
  103. package/dist/assets/shared-assets/react-admin/custom/icons-column-skeleton.tsx +2 -2
  104. package/dist/assets/shared-assets/react-admin/custom/media-field-empty-state.tsx +5 -5
  105. package/dist/assets/shared-assets/react-admin/custom/media-field.tsx +7 -7
  106. package/dist/assets/shared-assets/react-admin/custom/nested-object-list-field.tsx +2 -2
  107. package/dist/assets/shared-assets/react-admin/custom/placeholder-card.tsx +1 -1
  108. package/dist/assets/shared-assets/react-admin/custom/placeholder.tsx +1 -1
  109. package/dist/assets/shared-assets/react-admin/custom/progressive-blur.tsx +1 -1
  110. package/dist/assets/shared-assets/react-admin/custom/sortable-gallery-item.tsx +3 -3
  111. package/dist/assets/shared-assets/react-admin/custom/upload-dropzone.tsx +6 -6
  112. package/dist/assets/shared-assets/react-admin/ui/accordion.tsx +1 -1
  113. package/dist/assets/shared-assets/react-admin/ui/alert-dialog.tsx +4 -4
  114. package/dist/assets/shared-assets/react-admin/ui/badge.tsx +1 -1
  115. package/dist/assets/shared-assets/react-admin/ui/button-group.tsx +1 -1
  116. package/dist/assets/shared-assets/react-admin/ui/button.tsx +6 -6
  117. package/dist/assets/shared-assets/react-admin/ui/card.tsx +5 -5
  118. package/dist/assets/shared-assets/react-admin/ui/checkbox.tsx +1 -1
  119. package/dist/assets/shared-assets/react-admin/ui/combobox.tsx +1 -1
  120. package/dist/assets/shared-assets/react-admin/ui/command.tsx +0 -1
  121. package/dist/assets/shared-assets/react-admin/ui/context-menu.tsx +2 -2
  122. package/dist/assets/shared-assets/react-admin/ui/dialog.tsx +3 -3
  123. package/dist/assets/shared-assets/react-admin/ui/drawer.tsx +1 -1
  124. package/dist/assets/shared-assets/react-admin/ui/dropdown-menu.tsx +3 -3
  125. package/dist/assets/shared-assets/react-admin/ui/field.tsx +0 -1
  126. package/dist/assets/shared-assets/react-admin/ui/input-group.tsx +2 -2
  127. package/dist/assets/shared-assets/react-admin/ui/input.tsx +1 -1
  128. package/dist/assets/shared-assets/react-admin/ui/menubar.tsx +2 -2
  129. package/dist/assets/shared-assets/react-admin/ui/pagination.tsx +0 -1
  130. package/dist/assets/shared-assets/react-admin/ui/scroll-area.tsx +1 -1
  131. package/dist/assets/shared-assets/react-admin/ui/select.tsx +2 -2
  132. package/dist/assets/shared-assets/react-admin/ui/sidebar.tsx +4 -4
  133. package/dist/assets/shared-assets/react-admin/ui/table.tsx +1 -1
  134. package/dist/assets/shared-assets/react-admin/ui/tabs.tsx +2 -2
  135. package/dist/assets/shared-assets/react-admin/ui/textarea.tsx +1 -1
  136. package/dist/assets/shared-assets/react-admin/ui/tooltip.tsx +1 -1
  137. package/dist/{chunk-LGZBMR7E.js → chunk-MJWUGEMK.js} +3 -3
  138. package/dist/cli.js +16179 -16153
  139. package/dist/cli.js.map +1 -1
  140. package/dist/index.d.ts +1 -1
  141. package/dist/index.js.map +1 -1
  142. package/dist/{template-reader-WRTNGRZV.js → template-reader-R2JIWUNK.js} +2 -2
  143. package/package.json +3 -3
  144. /package/dist/{chunk-LGZBMR7E.js.map → chunk-MJWUGEMK.js.map} +0 -0
  145. /package/dist/{template-reader-WRTNGRZV.js.map → template-reader-R2JIWUNK.js.map} +0 -0
@@ -24,7 +24,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
24
24
  <Button
25
25
  variant="ghost"
26
26
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
27
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
27
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
28
28
  aria-label={`Sort by Status, ${sortLabel}`}
29
29
  aria-sort={
30
30
  sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
@@ -60,7 +60,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
60
60
  <Button
61
61
  variant="ghost"
62
62
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
63
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
63
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
64
64
  aria-label={`Sort by Event, ${sortLabel}`}
65
65
  aria-sort={
66
66
  sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
@@ -89,7 +89,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
89
89
  <Button
90
90
  variant="ghost"
91
91
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
92
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
92
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
93
93
  aria-label={`Sort by Endpoint, ${sortLabel}`}
94
94
  aria-sort={
95
95
  sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
@@ -118,7 +118,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
118
118
  <Button
119
119
  variant="ghost"
120
120
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
121
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
121
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
122
122
  aria-label={`Sort by Attempt, ${sortLabel}`}
123
123
  aria-sort={
124
124
  sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
@@ -147,7 +147,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
147
147
  <Button
148
148
  variant="ghost"
149
149
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
150
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
150
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
151
151
  aria-label={`Sort by Duration, ${sortLabel}`}
152
152
  aria-sort={
153
153
  sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
@@ -159,7 +159,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
159
159
  )
160
160
  },
161
161
  cell: ({ row }) => (
162
- <span className="tabular-nums text-muted-foreground">{row.original.durationMs} ms</span>
162
+ <span className="text-muted-foreground tabular-nums">{row.original.durationMs} ms</span>
163
163
  )
164
164
  },
165
165
  {
@@ -178,7 +178,7 @@ export const logsColumns: ColumnDef<WebhookDeliveryEntry>[] = [
178
178
  <Button
179
179
  variant="ghost"
180
180
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
181
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
181
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
182
182
  aria-label={`Sort by When, ${sortLabel}`}
183
183
  aria-sort={
184
184
  sortDirection === 'asc' ? 'ascending' : sortDirection === 'desc' ? 'descending' : 'none'
@@ -102,7 +102,7 @@ export function WebhooksLogsPageContent() {
102
102
  isPending={isSearchFetching}
103
103
  onSearch={handleSearch}
104
104
  />
105
- <main className="space-y-4 px-4 pb-4 flex-1">
105
+ <main className="flex-1 space-y-4 px-4 pb-4">
106
106
  <WebhooksLogsTable
107
107
  columns={logsColumns}
108
108
  search={search}
@@ -127,7 +127,7 @@ export function WebhooksLogsTable<TValue>({
127
127
  .join(' ')
128
128
 
129
129
  return (
130
- <div className={cn('flex flex-col gap-6 pt-px pb-2 h-full', className)}>
130
+ <div className={cn('flex h-full flex-col gap-6 pt-px pb-2', className)}>
131
131
  <DataGrid
132
132
  containerClassName="min-h-0 flex-1"
133
133
  containerRef={tableContainerRef}
@@ -164,7 +164,7 @@ export function WebhooksLogsTable<TValue>({
164
164
  <button
165
165
  type="button"
166
166
  aria-label={`Resize ${resizeLabel} column`}
167
- className="group/resize-handle absolute right-0 top-0 z-10 flex h-full w-5 cursor-col-resize touch-none select-none items-center justify-center text-muted-foreground opacity-0 transition-opacity hover:text-foreground focus-visible:text-foreground focus-visible:opacity-100 focus-visible:outline-none group-focus-within/resize-header:opacity-100 data-[column-hovered=true]:opacity-100 data-[resizing=true]:opacity-100"
167
+ className="group/resize-handle absolute top-0 right-0 z-10 flex h-full w-5 cursor-col-resize touch-none items-center justify-center text-muted-foreground opacity-0 transition-opacity select-none group-focus-within/resize-header:opacity-100 hover:text-foreground focus-visible:text-foreground focus-visible:opacity-100 focus-visible:outline-none data-[column-hovered=true]:opacity-100 data-[resizing=true]:opacity-100"
168
168
  data-resize-handle
169
169
  data-column-hovered={
170
170
  hoveredColumnId === header.column.id ? 'true' : 'false'
@@ -132,7 +132,7 @@ export function WebhooksPageContent() {
132
132
  isPending={isSearchFetching}
133
133
  onSearch={handleSearch}
134
134
  />
135
- <main className="space-y-4 px-4 pb-4 flex-1">
135
+ <main className="flex-1 space-y-4 px-4 pb-4">
136
136
  <WebhooksTable
137
137
  columns={columns}
138
138
  search={search}
@@ -1,6 +1,6 @@
1
1
  export function WebhooksPageSkeleton() {
2
2
  return (
3
- <div className="flex items-center justify-center h-48">
3
+ <div className="flex h-48 items-center justify-center">
4
4
  <div className="text-muted-foreground">Loading Webhooks…</div>
5
5
  </div>
6
6
  )
@@ -129,7 +129,7 @@ export function WebhooksTable<TValue>({
129
129
  .join(' ')
130
130
 
131
131
  return (
132
- <div className={cn('flex flex-col gap-6 pt-px pb-2 h-full', className)}>
132
+ <div className={cn('flex h-full flex-col gap-6 pt-px pb-2', className)}>
133
133
  <DataGrid
134
134
  containerClassName="min-h-0 flex-1"
135
135
  containerRef={tableContainerRef}
@@ -166,7 +166,7 @@ export function WebhooksTable<TValue>({
166
166
  <button
167
167
  type="button"
168
168
  aria-label={`Resize ${resizeLabel} column`}
169
- className="group/resize-handle absolute right-0 top-0 z-10 flex h-full w-5 cursor-col-resize touch-none select-none items-center justify-center text-muted-foreground opacity-0 transition-opacity hover:text-foreground focus-visible:text-foreground focus-visible:opacity-100 focus-visible:outline-none group-focus-within/resize-header:opacity-100 data-[column-hovered=true]:opacity-100 data-[resizing=true]:opacity-100"
169
+ className="group/resize-handle absolute top-0 right-0 z-10 flex h-full w-5 cursor-col-resize touch-none items-center justify-center text-muted-foreground opacity-0 transition-opacity select-none group-focus-within/resize-header:opacity-100 hover:text-foreground focus-visible:text-foreground focus-visible:opacity-100 focus-visible:outline-none data-[column-hovered=true]:opacity-100 data-[resizing=true]:opacity-100"
170
170
  data-resize-handle
171
171
  data-column-hovered={
172
172
  hoveredColumnId === header.column.id ? 'true' : 'false'
@@ -25,7 +25,7 @@ export const columns: ColumnDef<User>[] = [
25
25
  <Button
26
26
  variant="ghost"
27
27
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
28
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
28
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
29
29
  >
30
30
  <span className="truncate">User</span>
31
31
  <SortIndicator direction={sortDirection} />
@@ -42,7 +42,7 @@ export const columns: ColumnDef<User>[] = [
42
42
  </Avatar>
43
43
  <div className="flex flex-col">
44
44
  <div className="font-medium">{name || 'N/A'}</div>
45
- <div className="text-muted-foreground text-sm">{email}</div>
45
+ <div className="text-sm text-muted-foreground">{email}</div>
46
46
  </div>
47
47
  </div>
48
48
  )
@@ -92,7 +92,7 @@ export const columns: ColumnDef<User>[] = [
92
92
  currentRole={row.original.role}
93
93
  userName={row.original.name}
94
94
  >
95
- <Badge variant="outline" className="capitalize cursor-pointer">
95
+ <Badge variant="outline" className="cursor-pointer capitalize">
96
96
  <span className="flex items-center gap-1">
97
97
  {role}
98
98
  <Edit className="size-3" />
@@ -111,7 +111,7 @@ export const columns: ColumnDef<User>[] = [
111
111
  <Button
112
112
  variant="ghost"
113
113
  onClick={() => column.toggleSorting(column.getIsSorted() === 'asc')}
114
- className="w-full min-w-0 justify-start overflow-hidden px-0! border-none rounded-none bg-transparent! scale-100! group"
114
+ className="group w-full min-w-0 scale-100! justify-start overflow-hidden rounded-none border-none bg-transparent! px-0!"
115
115
  >
116
116
  <span className="truncate">Joined</span>
117
117
  <SortIndicator direction={sortDirection} />
@@ -98,7 +98,7 @@ export function UsersPageContent() {
98
98
  isPending={isSearchFetching}
99
99
  onSearch={handleSearch}
100
100
  />
101
- <main className="space-y-4 px-4 pb-4 flex-1">
101
+ <main className="flex-1 space-y-4 px-4 pb-4">
102
102
  <UsersTable columns={columns} search={search} status={status} role={role} />
103
103
  </main>
104
104
  </React.Fragment>
@@ -1,6 +1,6 @@
1
1
  export function UsersPageSkeleton() {
2
2
  return (
3
- <div className="flex items-center justify-center h-48">
3
+ <div className="flex h-48 items-center justify-center">
4
4
  <div className="text-muted-foreground">Loading Users…</div>
5
5
  </div>
6
6
  )
@@ -137,7 +137,7 @@ export function UsersTable<TValue>({
137
137
  .join(' ')
138
138
 
139
139
  return (
140
- <div className={cn('flex flex-col gap-6 pt-px pb-2 h-full', className)}>
140
+ <div className={cn('flex h-full flex-col gap-6 pt-px pb-2', className)}>
141
141
  <DataGrid
142
142
  containerClassName="min-h-0 flex-1"
143
143
  containerRef={tableContainerRef}
@@ -174,7 +174,7 @@ export function UsersTable<TValue>({
174
174
  <button
175
175
  type="button"
176
176
  aria-label={`Resize ${resizeLabel} column`}
177
- className="group/resize-handle absolute right-0 top-0 z-10 flex h-full w-5 cursor-col-resize touch-none select-none items-center justify-center text-muted-foreground opacity-0 transition-opacity hover:text-foreground focus-visible:text-foreground focus-visible:opacity-100 focus-visible:outline-none group-focus-within/resize-header:opacity-100 data-[column-hovered=true]:opacity-100 data-[resizing=true]:opacity-100"
177
+ className="group/resize-handle absolute top-0 right-0 z-10 flex h-full w-5 cursor-col-resize touch-none items-center justify-center text-muted-foreground opacity-0 transition-opacity select-none group-focus-within/resize-header:opacity-100 hover:text-foreground focus-visible:text-foreground focus-visible:opacity-100 focus-visible:outline-none data-[column-hovered=true]:opacity-100 data-[resizing=true]:opacity-100"
178
178
  data-resize-handle
179
179
  data-column-hovered={
180
180
  hoveredColumnId === header.column.id ? 'true' : 'false'
@@ -202,7 +202,7 @@ export function UsersTable<TValue>({
202
202
  {isPending ? (
203
203
  <DataGridRow>
204
204
  <DataGridCell
205
- className="flex h-24 items-center justify-center text-center px-4"
205
+ className="flex h-24 items-center justify-center px-4 text-center"
206
206
  style={{ gridColumn: '1 / -1' }}
207
207
  >
208
208
  <div className="text-muted-foreground">Loading users…</div>
@@ -211,7 +211,7 @@ export function UsersTable<TValue>({
211
211
  ) : error ? (
212
212
  <DataGridRow>
213
213
  <DataGridCell
214
- className="flex h-24 items-center justify-center text-center px-4"
214
+ className="flex h-24 items-center justify-center px-4 text-center"
215
215
  style={{ gridColumn: '1 / -1' }}
216
216
  >
217
217
  <div className="text-destructive">Error: {error.message}</div>
@@ -238,7 +238,7 @@ export function UsersTable<TValue>({
238
238
  ) : (
239
239
  <DataGridRow>
240
240
  <DataGridCell
241
- className="flex h-24 items-center justify-center text-center px-4"
241
+ className="flex h-24 items-center justify-center px-4 text-center"
242
242
  style={{ gridColumn: '1 / -1' }}
243
243
  >
244
244
  No users found.
@@ -1,7 +1,7 @@
1
1
  import type { RowData } from '@tanstack/react-table'
2
2
 
3
3
  declare module '@tanstack/react-table' {
4
- // biome-ignore lint/correctness/noUnusedVariables: augmenting module
4
+ // oxlint-disable-next-line no-unused-vars -- augmenting module
5
5
  interface TableMeta<TData extends RowData> {
6
6
  currentUser?: {
7
7
  id: string
@@ -15,7 +15,7 @@ export function EditorToolbar({
15
15
  role="toolbar"
16
16
  aria-label={ariaLabel}
17
17
  className={cn(
18
- 'flex items-center gap-1 overflow-x-auto border-border bg-card sticky top-0 z-10 min-h-12 w-full overscroll-x-contain border-b px-2 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden max-[480px]:absolute max-[480px]:top-auto max-[480px]:h-[calc(2.75rem+env(safe-area-inset-bottom,0px))] max-[480px]:flex-nowrap max-[480px]:justify-start max-[480px]:border-t max-[480px]:border-b-0 max-[480px]:pb-[env(safe-area-inset-bottom,0px)]',
18
+ 'sticky top-0 z-10 flex min-h-12 w-full items-center gap-1 overflow-x-auto overscroll-x-contain border-b border-border bg-card px-2 [scrollbar-width:none] max-[480px]:absolute max-[480px]:top-auto max-[480px]:h-[calc(2.75rem+env(safe-area-inset-bottom,0px))] max-[480px]:flex-nowrap max-[480px]:justify-start max-[480px]:border-t max-[480px]:border-b-0 max-[480px]:pb-[env(safe-area-inset-bottom,0px)] [&::-webkit-scrollbar]:hidden',
19
19
  className
20
20
  )}
21
21
  >
@@ -88,7 +88,7 @@ export function ContentEditor({
88
88
  toolbarEnd={
89
89
  <ModeToggleButton isSourceMode={isSourceMode} onClick={handleModeChange} />
90
90
  }
91
- className="min-h-0 flex-1 max-h-none resize-none rounded-none border-0"
91
+ className="max-h-none min-h-0 flex-1 resize-none rounded-none border-0"
92
92
  />
93
93
  ) : (
94
94
  <>
@@ -136,7 +136,7 @@ export function ContentEditor({
136
136
  <EditorContent
137
137
  editor={editor}
138
138
  role="presentation"
139
- className="simple-editor-content min-h-0 flex-1 cursor-text p-10 overflow-y-auto bg-input [&_.ProseMirror]:min-h-full"
139
+ className="simple-editor-content min-h-0 flex-1 cursor-text overflow-y-auto bg-input p-10 [&_.ProseMirror]:min-h-full"
140
140
  />
141
141
  </div>
142
142
  </>
@@ -43,13 +43,13 @@ export function MainToolbarContent({
43
43
 
44
44
  return (
45
45
  <>
46
- <div className="flex min-w-0 h-full flex-1 items-center overflow-x-auto">
46
+ <div className="flex h-full min-w-0 flex-1 items-center overflow-x-auto">
47
47
  <div className="flex items-center gap-0.5">
48
48
  <UndoRedoButton action="undo" />
49
49
  <UndoRedoButton action="redo" />
50
50
  </div>
51
51
 
52
- <Separator orientation="vertical" decorative className="my-auto h-[65%] mx-1 self-center" />
52
+ <Separator orientation="vertical" decorative className="mx-1 my-auto h-[65%] self-center" />
53
53
 
54
54
  <div className="flex items-center gap-0.5">
55
55
  <HeadingDropdownMenu />
@@ -59,7 +59,7 @@ export function MainToolbarContent({
59
59
  <HorizontalRuleButton editor={editor} />
60
60
  </div>
61
61
 
62
- <Separator orientation="vertical" decorative className="my-auto h-[65%] mx-1 self-center" />
62
+ <Separator orientation="vertical" decorative className="mx-1 my-auto h-[65%] self-center" />
63
63
 
64
64
  <div className="flex items-center gap-0.5">
65
65
  <MarkButton type="bold" />
@@ -75,7 +75,7 @@ export function MainToolbarContent({
75
75
  {!isMobile ? <LinkPopover /> : <LinkButton onClick={onLinkClick} />}
76
76
  </div>
77
77
 
78
- <Separator orientation="vertical" decorative className="my-auto h-[65%] mx-1 self-center" />
78
+ <Separator orientation="vertical" decorative className="mx-1 my-auto h-[65%] self-center" />
79
79
 
80
80
  <div className="flex items-center">
81
81
  <TableButton editor={editor} />
@@ -63,7 +63,7 @@ export function MathBubbleMenu({ editor }: { editor: Editor }) {
63
63
  role="toolbar"
64
64
  aria-label="Math formatting toolbar"
65
65
  className={cn(
66
- 'flex items-center gap-1 overflow-x-auto border-border rounded-sm border bg-popover p-0 text-popover-foreground shadow-menu [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
66
+ 'flex items-center gap-1 overflow-x-auto rounded-sm border border-border bg-popover p-0 text-popover-foreground shadow-menu [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
67
67
  'relative z-50'
68
68
  )}
69
69
  >
@@ -73,7 +73,7 @@ export function MathEditorControls({
73
73
  className="min-h-24 resize-y rounded-md text-sm"
74
74
  />
75
75
 
76
- <div className="flex items-center flex-wrap gap-1">
76
+ <div className="flex flex-wrap items-center gap-1">
77
77
  {onRemove ? (
78
78
  <Button
79
79
  type="button"
@@ -38,7 +38,7 @@ export function MobileToolbarContent({
38
38
  </Button>
39
39
  </div>
40
40
 
41
- <Separator orientation="vertical" decorative className="my-auto h-[65%] mx-1 self-center" />
41
+ <Separator orientation="vertical" decorative className="mx-1 my-auto h-[65%] self-center" />
42
42
 
43
43
  {type === 'highlighter' ? (
44
44
  <ColorHighlightPopoverContent />
@@ -11,7 +11,7 @@ export function RemoveTablePartIcon({
11
11
  return (
12
12
  <span className="tiptap-button-icon relative inline-flex size-4 items-center justify-center">
13
13
  <Icon className="size-4" />
14
- <MinusIcon className="-right-1 -bottom-0.5 border border-border absolute size-3 rounded-sm bg-card stroke-3" />
14
+ <MinusIcon className="absolute -right-1 -bottom-0.5 size-3 rounded-sm border border-border bg-card stroke-3" />
15
15
  </span>
16
16
  )
17
17
  }
@@ -72,7 +72,7 @@ export function SelectionBubbleMenu({ editor }: { editor: Editor }) {
72
72
  role="toolbar"
73
73
  aria-label="Link formatting toolbar"
74
74
  className={cn(
75
- 'flex items-center gap-1 overflow-x-auto border-border border bg-popover p-4 text-foreground shadow-2xl [scrollbar-width:none] [&::-webkit-scrollbar]:hidden rounded-sm',
75
+ 'flex items-center gap-1 overflow-x-auto rounded-sm border border-border bg-popover p-4 text-foreground shadow-2xl [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
76
76
  'relative z-50'
77
77
  )}
78
78
  >
@@ -101,7 +101,7 @@ export function SelectionBubbleMenu({ editor }: { editor: Editor }) {
101
101
  aria-label="Selection formatting toolbar"
102
102
  onPointerDownCapture={handleSelectionMenuPointerDown}
103
103
  className={cn(
104
- 'flex items-center gap-1 overflow-x-auto border-border rounded-sm border bg-popover p-1 text-popover-foreground shadow-menu [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
104
+ 'flex items-center gap-1 overflow-x-auto rounded-sm border border-border bg-popover p-1 text-popover-foreground shadow-menu [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
105
105
  'relative z-50'
106
106
  )}
107
107
  >
@@ -120,7 +120,7 @@ export function SelectionBubbleMenu({ editor }: { editor: Editor }) {
120
120
  <Separator
121
121
  orientation="vertical"
122
122
  decorative
123
- className="my-auto h-[65%] mx-1 self-center"
123
+ className="mx-1 my-auto h-[65%] self-center"
124
124
  />
125
125
 
126
126
  <div className="flex items-center gap-0.5">
@@ -130,7 +130,7 @@ export function SlashCommandMenu({
130
130
  <ComboboxContent
131
131
  anchor={slashAnchor}
132
132
  align="start"
133
- className="w-72 min-w-72 max-w-[calc(100vw-2rem)] p-2 gap-2 flex flex-col"
133
+ className="flex w-72 max-w-[calc(100vw-2rem)] min-w-72 flex-col gap-2 p-2"
134
134
  collisionPadding={8}
135
135
  finalFocus={false}
136
136
  initialFocus={false}
@@ -166,17 +166,17 @@ export function SlashCommandMenu({
166
166
  onMouseEnter={() => onActiveIndexChange(index)}
167
167
  value={command}
168
168
  className={cn(
169
- 'border border-transparent p-2 data-highlighted:bg-card! data-highlighted:border-border!',
169
+ 'border border-transparent p-2 data-highlighted:border-border! data-highlighted:bg-card!',
170
170
  {
171
- 'bg-card border-border shadow-input text-foreground': isActive
171
+ 'border-border bg-card text-foreground shadow-input': isActive
172
172
  }
173
173
  )}
174
174
  >
175
- <span className="flex size-8 shrink-0 items-center justify-center rounded-sm bg-card border border-border shadow-input">
175
+ <span className="flex size-8 shrink-0 items-center justify-center rounded-sm border border-border bg-card shadow-input">
176
176
  <Icon />
177
177
  </span>
178
- <span className="min-w-0 space-y-1 flex flex-col w-full">
179
- <span className="font-medium leading-none">{command.title}</span>
178
+ <span className="flex w-full min-w-0 flex-col space-y-1">
179
+ <span className="leading-none font-medium">{command.title}</span>
180
180
  <span className="truncate text-xs text-muted-foreground">
181
181
  {command.description}
182
182
  </span>
@@ -124,13 +124,13 @@ export function SourceMode({
124
124
  return (
125
125
  <div
126
126
  className={cn(
127
- 'content-editor-wrapper relative flex min-h-[240px] max-h-[90vh] flex-col overflow-hidden resize-y rounded-md border bg-background',
127
+ 'content-editor-wrapper relative flex max-h-[90vh] min-h-[240px] resize-y flex-col overflow-hidden rounded-md border bg-background',
128
128
  { 'opacity-50': disabled },
129
129
  className
130
130
  )}
131
131
  >
132
132
  <EditorToolbar ariaLabel="Markdown editor toolbar" className="shrink-0">
133
- <div className="flex min-w-0 h-full flex-1 items-center overflow-x-auto">
133
+ <div className="flex h-full min-w-0 flex-1 items-center overflow-x-auto">
134
134
  <div className="flex items-center gap-0.5">
135
135
  <Button
136
136
  type="button"
@@ -159,7 +159,7 @@ export function SourceMode({
159
159
  <Separator
160
160
  orientation="vertical"
161
161
  decorative
162
- className="my-auto h-[65%] mx-1 self-center"
162
+ className="mx-1 my-auto h-[65%] self-center"
163
163
  />
164
164
 
165
165
  <div className="flex items-center gap-0.5">
@@ -241,7 +241,7 @@ export function SourceMode({
241
241
  <Separator
242
242
  orientation="vertical"
243
243
  decorative
244
- className="my-auto h-[65%] mx-1 self-center"
244
+ className="mx-1 my-auto h-[65%] self-center"
245
245
  />
246
246
 
247
247
  <div className="flex items-center gap-0.5">
@@ -307,7 +307,7 @@ export function SourceMode({
307
307
  <Separator
308
308
  orientation="vertical"
309
309
  decorative
310
- className="my-auto h-[65%] mx-1 self-center"
310
+ className="mx-1 my-auto h-[65%] self-center"
311
311
  />
312
312
 
313
313
  <div className="flex items-center">
@@ -348,9 +348,9 @@ export function SourceMode({
348
348
  highlightActiveLineGutter: false
349
349
  }}
350
350
  className={cn(
351
- 'flex min-h-0 flex-1 flex-col overflow-hidden font-mono text-sm font-normal leading-6 [&_.cm-content]:!bg-transparent [&_.cm-editor]:!bg-input [&_.cm-gutters]:!bg-input [&_.cm-scroller]:!bg-input',
351
+ 'flex min-h-0 flex-1 flex-col overflow-hidden font-mono text-sm leading-6 font-normal [&_.cm-content]:!bg-transparent [&_.cm-editor]:!bg-input [&_.cm-gutters]:!bg-input [&_.cm-scroller]:!bg-input',
352
352
  {
353
- 'opacity-50 cursor-not-allowed': disabled
353
+ 'cursor-not-allowed opacity-50': disabled
354
354
  }
355
355
  )}
356
356
  />
@@ -13,10 +13,10 @@ export function TableAddControls({ controls }: TableAddControlsProps) {
13
13
  if (!controls) return null
14
14
 
15
15
  return createPortal(
16
- <div className="contents not-prose" contentEditable={false}>
16
+ <div className="not-prose contents" contentEditable={false}>
17
17
  <Button
18
18
  aria-label="Add table column"
19
- className="group absolute top-0 right-0 bottom-6 z-[1] inline-flex h-auto w-4 shrink-0 cursor-pointer items-center justify-center rounded-none border border-border bg-muted/80 p-0 whitespace-nowrap outline-none transition-colors select-none hover:bg-muted focus-visible:bg-muted focus-visible:ring-[3px] focus-visible:ring-ring/50"
19
+ className="group absolute top-0 right-0 bottom-6 z-[1] inline-flex h-auto w-4 shrink-0 cursor-pointer items-center justify-center rounded-none border border-border bg-muted/80 p-0 whitespace-nowrap transition-colors outline-none select-none hover:bg-muted focus-visible:bg-muted focus-visible:ring-[3px] focus-visible:ring-ring/50"
20
20
  onClick={controls.addColumn}
21
21
  onPointerDown={(event) => event.preventDefault()}
22
22
  title="Add table column"
@@ -29,7 +29,7 @@ export function TableAddControls({ controls }: TableAddControlsProps) {
29
29
  </Button>
30
30
  <Button
31
31
  aria-label="Add table row"
32
- className="group absolute right-6 bottom-0 left-0 z-[1] inline-flex h-4 w-auto shrink-0 cursor-pointer items-center justify-center rounded-none border border-border bg-muted/80 p-0 whitespace-nowrap outline-none transition-colors select-none hover:bg-muted focus-visible:bg-muted focus-visible:ring-[3px] focus-visible:ring-ring/50"
32
+ className="group absolute right-6 bottom-0 left-0 z-[1] inline-flex h-4 w-auto shrink-0 cursor-pointer items-center justify-center rounded-none border border-border bg-muted/80 p-0 whitespace-nowrap transition-colors outline-none select-none hover:bg-muted focus-visible:bg-muted focus-visible:ring-[3px] focus-visible:ring-ring/50"
33
33
  onClick={controls.addRow}
34
34
  onPointerDown={(event) => event.preventDefault()}
35
35
  title="Add table row"
@@ -202,7 +202,7 @@ export function TableBubbleMenu({ editor }: { editor: Editor }) {
202
202
  role="toolbar"
203
203
  aria-label="Table formatting toolbar"
204
204
  className={cn(
205
- 'flex items-center gap-1 overflow-x-auto border-border rounded-sm border bg-popover p-1 text-popover-foreground shadow-menu [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
205
+ 'flex items-center gap-1 overflow-x-auto rounded-sm border border-border bg-popover p-1 text-popover-foreground shadow-menu [scrollbar-width:none] [&::-webkit-scrollbar]:hidden',
206
206
  'relative z-50'
207
207
  )}
208
208
  >
@@ -235,7 +235,7 @@ export function TableBubbleMenu({ editor }: { editor: Editor }) {
235
235
  <Separator
236
236
  orientation="vertical"
237
237
  decorative
238
- className="my-auto h-5 w-px mx-1 self-center bg-border opacity-100"
238
+ className="mx-1 my-auto h-5 w-px self-center bg-border opacity-100"
239
239
  />
240
240
  <div className="flex items-center gap-0.5">
241
241
  <Button
@@ -126,7 +126,7 @@ export const RemovableImageNode: React.FC<NodeViewProps> = (props) => {
126
126
  <div
127
127
  data-content-editor-image-controls-overlay=""
128
128
  className={cn(
129
- 'pointer-events-none rounded-md absolute inset-0 flex items-center justify-center gap-1 bg-black/10 backdrop-blur-xs transition-opacity duration-200 ease-out',
129
+ 'pointer-events-none absolute inset-0 flex items-center justify-center gap-1 rounded-md bg-black/10 backdrop-blur-xs transition-opacity duration-200 ease-out',
130
130
  {
131
131
  'opacity-100': isControlsVisible,
132
132
  'opacity-0': !isControlsVisible
@@ -26,8 +26,7 @@ type EditorButtonProps = React.ComponentProps<typeof Button> & {
26
26
  }
27
27
 
28
28
  export interface BlockquoteButtonProps
29
- extends Omit<EditorButtonProps, 'type'>,
30
- Omit<UseBlockquoteConfig, 'hideWhenUnavailable'> {
29
+ extends Omit<EditorButtonProps, 'type'>, Omit<UseBlockquoteConfig, 'hideWhenUnavailable'> {
31
30
  availability?: ControlAvailability
32
31
  /**
33
32
  * Optional text to display alongside the icon.
@@ -26,8 +26,7 @@ type EditorButtonProps = React.ComponentProps<typeof Button> & {
26
26
  }
27
27
 
28
28
  export interface CodeBlockButtonProps
29
- extends Omit<EditorButtonProps, 'type'>,
30
- Omit<UseCodeBlockConfig, 'hideWhenUnavailable'> {
29
+ extends Omit<EditorButtonProps, 'type'>, Omit<UseCodeBlockConfig, 'hideWhenUnavailable'> {
31
30
  availability?: ControlAvailability
32
31
  /**
33
32
  * Optional text to display alongside the icon.
@@ -27,8 +27,7 @@ type EditorButtonProps = React.ComponentProps<typeof Button> & {
27
27
  }
28
28
 
29
29
  export interface ColorHighlightButtonProps
30
- extends Omit<EditorButtonProps, 'type'>,
31
- Omit<UseColorHighlightConfig, 'hideWhenUnavailable'> {
30
+ extends Omit<EditorButtonProps, 'type'>, Omit<UseColorHighlightConfig, 'hideWhenUnavailable'> {
32
31
  availability?: ControlAvailability
33
32
  /**
34
33
  * Optional text to display alongside the icon.
@@ -52,7 +51,7 @@ export function HighlightSwatch({ highlightColor }: { highlightColor: string })
52
51
  'relative -mx-[0.175rem] size-5 rounded-sm transition-transform duration-200 ease-in-out',
53
52
  'bg-[var(--highlight-color)]',
54
53
  'shadow-[inset_0_0_0_1px_var(--highlight-shadow),_0_1px_2px_var(--highlight-shadow-soft)]',
55
- "after:content-[''] after:absolute after:inset-0 after:box-border after:size-full after:rounded-sm after:border after:opacity-0 after:transition-opacity after:duration-200 after:ease-in-out",
54
+ "after:absolute after:inset-0 after:box-border after:size-full after:rounded-sm after:border after:opacity-0 after:transition-opacity after:duration-200 after:ease-in-out after:content-['']",
56
55
  'after:border-[var(--highlight-after-border)]',
57
56
  'group-data-[active-state=on]/highlight:scale-110',
58
57
  'group-data-[highlighted=true]/highlight:scale-110',
@@ -29,8 +29,10 @@ interface EditorColorHighlightPopoverContentProps extends ColorHighlightPopoverC
29
29
  onRemoveHighlight?: never
30
30
  }
31
31
 
32
- interface SourceColorHighlightPopoverContentProps
33
- extends Omit<ColorHighlightPopoverContentBaseProps, 'editor'> {
32
+ interface SourceColorHighlightPopoverContentProps extends Omit<
33
+ ColorHighlightPopoverContentBaseProps,
34
+ 'editor'
35
+ > {
34
36
  editor?: never
35
37
  mode: 'source'
36
38
  onHighlightColorSelect: (color: HighlightColor) => void
@@ -25,7 +25,8 @@ export type { SourceColorHighlightPopoverProps } from './source-color-highlight-
25
25
  export { SourceColorHighlightPopover } from './source-color-highlight-popover'
26
26
 
27
27
  export interface ColorHighlightPopoverProps
28
- extends Omit<ColorHighlightPopoverButtonProps, 'type'>,
28
+ extends
29
+ Omit<ColorHighlightPopoverButtonProps, 'type'>,
29
30
  Pick<UseColorHighlightConfig, 'editor' | 'onApplied'> {
30
31
  availability?: ControlAvailability
31
32
  /**
@@ -91,7 +92,7 @@ export function ColorHighlightPopover({
91
92
  </PopoverTrigger>
92
93
  <PopoverContent
93
94
  aria-label="Highlight colors"
94
- className="w-auto max-w-[calc(100vw-2rem)] gap-0 p-0 rounded-sm"
95
+ className="w-auto max-w-[calc(100vw-2rem)] gap-0 rounded-sm p-0"
95
96
  >
96
97
  <ColorHighlightPopoverContent
97
98
  editor={editor}
@@ -10,8 +10,10 @@ import {
10
10
  import { ColorHighlightPopoverContent } from './color-highlight-popover-content'
11
11
  import { DEFAULT_HIGHLIGHT_COLORS, type HighlightColor } from './highlight-colors'
12
12
 
13
- export interface SourceColorHighlightPopoverProps
14
- extends Omit<ColorHighlightPopoverButtonProps, 'type'> {
13
+ export interface SourceColorHighlightPopoverProps extends Omit<
14
+ ColorHighlightPopoverButtonProps,
15
+ 'type'
16
+ > {
15
17
  /**
16
18
  * Optional colors to use in the highlight popover.
17
19
  * If not provided, defaults to a predefined set of colors.
@@ -50,7 +52,7 @@ export function SourceColorHighlightPopover({
50
52
  </PopoverTrigger>
51
53
  <PopoverContent
52
54
  aria-label="Highlight colors"
53
- className="w-auto max-w-[calc(100vw-2rem)] gap-0 p-0 rounded-sm"
55
+ className="w-auto max-w-[calc(100vw-2rem)] gap-0 rounded-sm p-0"
54
56
  >
55
57
  <ColorHighlightPopoverContent
56
58
  mode="source"