create-nextjs-cms 0.5.20 → 0.5.23

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 (139) hide show
  1. package/package.json +5 -5
  2. package/templates/default/_gitignore +1 -1
  3. package/templates/default/app/(auth)/auth/login/LoginPage.tsx +5 -5
  4. package/templates/default/app/api/video/route.ts +1 -1
  5. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/LICENSE +191 -0
  6. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/README.md +118 -0
  7. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/install/build.js +38 -0
  8. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/install/check.js +14 -0
  9. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/channel.js +177 -0
  10. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/colour.js +195 -0
  11. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/composite.js +212 -0
  12. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/constructor.js +499 -0
  13. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/index.d.ts +1971 -0
  14. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/index.js +16 -0
  15. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/input.js +809 -0
  16. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/is.js +143 -0
  17. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/libvips.js +207 -0
  18. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/operation.js +1016 -0
  19. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/output.js +1666 -0
  20. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/resize.js +595 -0
  21. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/sharp.js +121 -0
  22. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/lib/utility.js +291 -0
  23. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/package.json +202 -0
  24. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/binding.gyp +298 -0
  25. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/common.cc +1130 -0
  26. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/common.h +402 -0
  27. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/metadata.cc +346 -0
  28. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/metadata.h +90 -0
  29. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/operations.cc +499 -0
  30. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/operations.h +137 -0
  31. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/pipeline.cc +1814 -0
  32. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/pipeline.h +408 -0
  33. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/sharp.cc +43 -0
  34. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/stats.cc +186 -0
  35. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/stats.h +62 -0
  36. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/utilities.cc +288 -0
  37. package/templates/default/apps/cms/node_modules/next/node_modules/sharp/src/utilities.h +22 -0
  38. package/templates/default/apps/cms/node_modules/sharp/LICENSE +191 -0
  39. package/templates/default/apps/cms/node_modules/sharp/README.md +118 -0
  40. package/templates/default/apps/cms/node_modules/sharp/install/check.js +41 -0
  41. package/templates/default/apps/cms/node_modules/sharp/lib/channel.js +174 -0
  42. package/templates/default/apps/cms/node_modules/sharp/lib/colour.js +180 -0
  43. package/templates/default/apps/cms/node_modules/sharp/lib/composite.js +210 -0
  44. package/templates/default/apps/cms/node_modules/sharp/lib/constructor.js +452 -0
  45. package/templates/default/apps/cms/node_modules/sharp/lib/index.d.ts +1754 -0
  46. package/templates/default/apps/cms/node_modules/sharp/lib/index.js +16 -0
  47. package/templates/default/apps/cms/node_modules/sharp/lib/input.js +658 -0
  48. package/templates/default/apps/cms/node_modules/sharp/lib/is.js +169 -0
  49. package/templates/default/apps/cms/node_modules/sharp/lib/libvips.js +203 -0
  50. package/templates/default/apps/cms/node_modules/sharp/lib/operation.js +958 -0
  51. package/templates/default/apps/cms/node_modules/sharp/lib/output.js +1587 -0
  52. package/templates/default/apps/cms/node_modules/sharp/lib/resize.js +587 -0
  53. package/templates/default/apps/cms/node_modules/sharp/lib/sharp.js +114 -0
  54. package/templates/default/apps/cms/node_modules/sharp/lib/utility.js +296 -0
  55. package/templates/default/apps/cms/node_modules/sharp/package.json +222 -0
  56. package/templates/default/apps/cms/node_modules/sharp/src/binding.gyp +280 -0
  57. package/templates/default/apps/cms/node_modules/sharp/src/common.cc +1091 -0
  58. package/templates/default/apps/cms/node_modules/sharp/src/common.h +393 -0
  59. package/templates/default/apps/cms/node_modules/sharp/src/metadata.cc +320 -0
  60. package/templates/default/apps/cms/node_modules/sharp/src/metadata.h +85 -0
  61. package/templates/default/apps/cms/node_modules/sharp/src/operations.cc +475 -0
  62. package/templates/default/apps/cms/node_modules/sharp/src/operations.h +125 -0
  63. package/templates/default/apps/cms/node_modules/sharp/src/pipeline.cc +1758 -0
  64. package/templates/default/apps/cms/node_modules/sharp/src/pipeline.h +393 -0
  65. package/templates/default/apps/cms/node_modules/sharp/src/sharp.cc +40 -0
  66. package/templates/default/apps/cms/node_modules/sharp/src/stats.cc +183 -0
  67. package/templates/default/apps/cms/node_modules/sharp/src/stats.h +59 -0
  68. package/templates/default/apps/cms/node_modules/sharp/src/utilities.cc +269 -0
  69. package/templates/default/apps/cms/node_modules/sharp/src/utilities.h +19 -0
  70. package/templates/default/components/AdminCard.tsx +1 -1
  71. package/templates/default/components/AdminsPage.tsx +1 -1
  72. package/templates/default/components/AdvancedSettingsPage.tsx +1 -1
  73. package/templates/default/components/AnalyticsPage.tsx +1 -1
  74. package/templates/default/components/BrowsePage.tsx +2 -2
  75. package/templates/default/components/CategorizedSectionPage.tsx +3 -3
  76. package/templates/default/components/CategoryDeleteConfirmPage.tsx +4 -4
  77. package/templates/default/components/CategorySectionSelectInput.tsx +1 -1
  78. package/templates/default/components/ContainerBox.tsx +1 -1
  79. package/templates/default/components/DashboardPage.tsx +1 -1
  80. package/templates/default/components/EmailCard.tsx +1 -1
  81. package/templates/default/components/EmailPasswordForm.tsx +2 -2
  82. package/templates/default/components/EmailQuotaForm.tsx +1 -1
  83. package/templates/default/components/EmailsPage.tsx +1 -1
  84. package/templates/default/components/GalleryPhoto.tsx +1 -1
  85. package/templates/default/components/ItemEditPage.tsx +2 -2
  86. package/templates/default/components/Layout.tsx +1 -1
  87. package/templates/default/components/LogPage.tsx +1 -1
  88. package/templates/default/components/Navbar.tsx +2 -2
  89. package/templates/default/components/NavbarAlt.tsx +6 -6
  90. package/templates/default/components/NewAdminForm.tsx +2 -2
  91. package/templates/default/components/NewEmailForm.tsx +3 -3
  92. package/templates/default/components/NewPage.tsx +2 -2
  93. package/templates/default/components/NewVariantComponent.tsx +1 -1
  94. package/templates/default/components/SectionItemCard.tsx +1 -1
  95. package/templates/default/components/SectionItemStatusBadge.tsx +1 -1
  96. package/templates/default/components/SectionPage.tsx +2 -2
  97. package/templates/default/components/SelectBox.tsx +2 -2
  98. package/templates/default/components/SettingsPage.tsx +1 -1
  99. package/templates/default/components/Sidebar.tsx +3 -3
  100. package/templates/default/components/VariantEditPage.tsx +2 -2
  101. package/templates/default/components/form/Form.tsx +1 -1
  102. package/templates/default/components/form/FormInputElement.tsx +1 -1
  103. package/templates/default/components/form/helpers/{_section-hot-reload.ts → _section-hot-reload.js} +1 -1
  104. package/templates/default/components/form/helpers/util.ts +1 -1
  105. package/templates/default/components/form/inputs/ColorFormInput.tsx +1 -1
  106. package/templates/default/components/form/inputs/DateFormInput.tsx +1 -1
  107. package/templates/default/components/form/inputs/DocumentFormInput.tsx +3 -3
  108. package/templates/default/components/form/inputs/NumberFormInput.tsx +1 -1
  109. package/templates/default/components/form/inputs/PasswordFormInput.tsx +1 -1
  110. package/templates/default/components/form/inputs/PhotoFormInput.tsx +4 -4
  111. package/templates/default/components/form/inputs/SelectFormInput.tsx +1 -1
  112. package/templates/default/components/form/inputs/TagsFormInput.tsx +1 -1
  113. package/templates/default/components/form/inputs/TextFormInput.tsx +1 -1
  114. package/templates/default/components/form/inputs/TextareaFormInput.tsx +1 -1
  115. package/templates/default/components/form/inputs/VideoFormInput.tsx +3 -3
  116. package/templates/default/components/ui/badge.tsx +6 -6
  117. package/templates/default/components/ui/button.tsx +5 -5
  118. package/templates/default/components/ui/card.tsx +1 -1
  119. package/templates/default/components/ui/checkbox.tsx +1 -1
  120. package/templates/default/components/ui/dropdown-menu.tsx +6 -6
  121. package/templates/default/components/ui/input.tsx +1 -1
  122. package/templates/default/components/ui/popover.tsx +1 -1
  123. package/templates/default/components/ui/scroll-area.tsx +2 -2
  124. package/templates/default/components/ui/select.tsx +4 -4
  125. package/templates/default/components/ui/sheet.tsx +1 -1
  126. package/templates/default/components/ui/switch.tsx +1 -1
  127. package/templates/default/components/ui/table.tsx +3 -3
  128. package/templates/default/components/ui/tabs.tsx +2 -2
  129. package/templates/default/components/ui/toast.tsx +4 -4
  130. package/templates/default/eslint.config.mjs +38 -0
  131. package/templates/default/lz.config.ts +25 -17
  132. package/templates/default/next-env.d.ts +1 -1
  133. package/templates/default/package.json +24 -33
  134. package/templates/default/postcss.config.mjs +7 -0
  135. package/templates/default/{middleware.ts → proxy.ts} +2 -3
  136. package/templates/default/styles/globals.css +107 -4
  137. package/templates/default/tsconfig.json +45 -44
  138. package/templates/default/postcss.config.js +0 -6
  139. package/templates/default/tailwind.config.js +0 -95
@@ -67,7 +67,7 @@ export default function SectionItemCard({
67
67
 
68
68
  return (
69
69
  <>
70
- <Card className='relative mx-auto w-full max-w-md overflow-hidden rounded-lg border-secondary-foreground pb-[85px] shadow'>
70
+ <Card className='relative mx-auto w-full max-w-md overflow-hidden rounded-lg border-secondary-foreground pb-[85px] shadow-sm'>
71
71
  {item.coverPhoto ? (
72
72
  <div className='relative h-[200px]'>
73
73
  {[0, 1].includes(item.permission) ? <SectionItemStatusBadge status={item.permission} /> : null}
@@ -6,7 +6,7 @@ const SectionItemStatusBadge = ({ status }: { status: number }) => {
6
6
  return (
7
7
  <Badge
8
8
  variant={status === 1 ? 'success' : 'destructive'}
9
- className='absolute top-3 shadow left-3 z-30 font-bold'
9
+ className='absolute top-3 shadow-sm left-3 z-30 font-bold'
10
10
  >
11
11
  {status === 1 ? getString('approved') : getString('pending_approval')}
12
12
  </Badge>
@@ -100,8 +100,8 @@ export default function SectionPage({ section }: { section: string }) {
100
100
  {isError ? <div>{error?.message}</div> : null}
101
101
  {data ? (
102
102
  <div className='flex w-full flex-col'>
103
- <div className='relative z-[1] border-b-2 p-8 pt-12 font-extrabold text-foreground'>
104
- <div className='absolute left-0 top-0 z-[2] h-4 w-full bg-gradient-to-r from-emerald-800 via-emerald-400 to-sky-600'></div>
103
+ <div className='relative z-1 border-b-2 p-8 pt-12 font-extrabold text-foreground'>
104
+ <div className='absolute left-0 top-0 z-2 h-4 w-full bg-linear-to-r from-emerald-800 via-emerald-400 to-sky-600'></div>
105
105
  <h1 className='pb-4 text-4xl'>{data.section?.title}</h1>
106
106
  <span>
107
107
  /{getString('edit')} {data.section?.title}
@@ -44,7 +44,7 @@ export default function SelectBox({
44
44
  <>
45
45
  {/*<Listbox.Label className='block text-sm font-medium leading-6 text-gray-900'>Fabrics</Listbox.Label>*/}
46
46
  <div className={`relative ${classname}`}>
47
- <ListboxButton className='relative w-full cursor-default rounded bg-input p-3 pe-1 ps-1 text-start text-foreground shadow-sm outline-0 ring-2 ring-gray-300 hover:ring-gray-400 focus:outline-none focus:ring-2 focus:ring-blue-500 sm:text-sm sm:leading-6'>
47
+ <ListboxButton className='relative w-full cursor-default rounded bg-input p-3 pe-1 ps-1 text-start text-foreground shadow-xs outline-0 ring-2 ring-gray-300 hover:ring-gray-400 focus:outline-hidden focus:ring-2 focus:ring-blue-500 sm:text-sm sm:leading-6'>
48
48
  <span className='ml-3 block truncate'>{selected?.label ? selected.label : ''}</span>
49
49
  <span className='pointer-events-none absolute inset-y-0 right-0 ml-3 flex items-center pr-2'>
50
50
  <ChevronDownIcon className='h-5 w-5 text-gray-400' aria-hidden='true' />
@@ -58,7 +58,7 @@ export default function SelectBox({
58
58
  leaveFrom='opacity-100'
59
59
  leaveTo='opacity-0'
60
60
  >
61
- <ListboxOptions className='absolute z-40 mt-1 max-h-56 w-full overflow-auto rounded-md border bg-background py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm'>
61
+ <ListboxOptions className='absolute z-40 mt-1 max-h-56 w-full overflow-auto rounded-md border bg-background py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-hidden sm:text-sm'>
62
62
  {items.map((item: SelectOption, index: number) => (
63
63
  <ListboxOption
64
64
  key={`${item.label}-${index}`}
@@ -113,7 +113,7 @@ export default function SettingsPage() {
113
113
  return (
114
114
  <div>
115
115
  <div className='w-full overflow-hidden bg-background'>
116
- <div className='bg-gradient-to-r from-rose-200 via-rose-400 to-sky-400 p-8 font-extrabold text-black'>
116
+ <div className='bg-linear-to-r from-rose-200 via-rose-400 to-sky-400 p-8 font-extrabold text-black'>
117
117
  <h1 className='text-3xl'>{getString('accountSettings')}</h1>
118
118
  </div>
119
119
  <div className='flex w-full flex-col'>
@@ -32,7 +32,7 @@ const Sidebar = (props: SidebarProps) => {
32
32
  return (
33
33
  <div
34
34
  className={classNames({
35
- 'fixed z-20 h-full bg-gradient-to-br from-indigo-600 to-sky-500 text-zinc-50 dark:from-slate-950 dark:to-pink-950 md:translate-x-0':
35
+ 'fixed z-20 h-full bg-linear-to-br from-indigo-600 to-sky-500 text-zinc-50 dark:from-slate-950 dark:to-pink-950 md:translate-x-0':
36
36
  true,
37
37
  'transition-all duration-100 ease-in-out': true,
38
38
  'w-[300px] md:w-[275px]': true,
@@ -55,7 +55,7 @@ const Sidebar = (props: SidebarProps) => {
55
55
  LAZEMNI
56
56
  </span>
57
57
  </div>
58
- <ScrollArea type='always' className='flex-grow'>
58
+ <ScrollArea type='always' className='grow'>
59
59
  <ul
60
60
  className={classNames({
61
61
  'my-2 flex flex-col items-stretch gap-2': true,
@@ -182,7 +182,7 @@ const Sidebar = (props: SidebarProps) => {
182
182
  width={40}
183
183
  height={40}
184
184
  // fill={true}
185
- className='rounded-full ring ring-foreground'
185
+ className='rounded-full ring-3 ring-foreground'
186
186
  />
187
187
  ) : (
188
188
  <Image
@@ -154,7 +154,7 @@ export default function VariantEditPage({
154
154
  <div>
155
155
  <div className='w-full overflow-hidden'>
156
156
  <form onSubmit={handleSubmit}>
157
- <div className='bg-gradient-to-r from-sky-200 via-emerald-300 to-blue-600 p-8 font-extrabold text-black'>
157
+ <div className='bg-linear-to-r from-sky-200 via-emerald-300 to-blue-600 p-8 font-extrabold text-black'>
158
158
  {data && data.variant && (
159
159
  <>
160
160
  <h1 className='pb-4 text-4xl'>{data?.variant?.variant_html_name_en}</h1>
@@ -200,7 +200,7 @@ export default function VariantEditPage({
200
200
  <div className='mt-5'>
201
201
  <button
202
202
  className={classNames({
203
- 'w-full rounded bg-gradient-to-r p-2 font-bold text-white drop-shadow':
203
+ 'w-full rounded bg-linear-to-r p-2 font-bold text-white drop-shadow-sm':
204
204
  true,
205
205
  'from-emerald-700 via-green-700 to-green-500': !isSubmitting,
206
206
  'from-gray-600 via-gray-500 to-gray-400': isSubmitting,
@@ -263,7 +263,7 @@ export default function Form({
263
263
  className={classNames({
264
264
  'w-full': buttonType === 'big',
265
265
  'float-end': buttonType === 'small',
266
- 'rounded bg-gradient-to-r px-4 py-2 font-bold text-white drop-shadow':
266
+ 'rounded bg-linear-to-r px-4 py-2 font-bold text-white drop-shadow-sm':
267
267
  true,
268
268
  'from-emerald-700 via-green-700 to-green-500 dark:from-blue-800 dark:via-sky-800 dark:to-slate-500':
269
269
  !isSubmitting,
@@ -53,7 +53,7 @@ export default function FormInputElement({
53
53
  })}
54
54
  >
55
55
  {readonly ? (
56
- <div className='w-full rounded bg-input p-3 text-foreground shadow-sm outline-0'>{value}</div>
56
+ <div className='w-full rounded bg-input p-3 text-foreground shadow-xs outline-0'>{value}</div>
57
57
  ) : (
58
58
  <>
59
59
  {children}
@@ -8,4 +8,4 @@ export const revalidate = 0
8
8
 
9
9
  // @refresh reset
10
10
 
11
- export const sectionSchemaLastUpdated = 1765720351721
11
+ export const sectionSchemaLastUpdated = 1765925556117
@@ -9,7 +9,7 @@ try {
9
9
  // Try to import the auto-generated file from root
10
10
  // Using dynamic require to handle missing file gracefully
11
11
  // @/ alias resolves to the app root directory
12
- const sectionInfo = require('./_section-hot-reload.ts')
12
+ const sectionInfo = require('./_section-hot-reload.js')
13
13
  sectionSchemaLastUpdated = sectionInfo?.sectionSchemaLastUpdated ?? Date.now()
14
14
  } catch {
15
15
  // If file doesn't exist or can't be loaded, use current timestamp as fallback
@@ -37,7 +37,7 @@ export default function ColorFormInput({ input }: { input: ColorFieldClientConfi
37
37
  onBlur={field.onBlur}
38
38
  value={field.value}
39
39
  ref={field.ref}
40
- className='h-10 w-full rounded bg-input p-1 text-foreground shadow-sm outline-0 ring-2 ring-blue-300 focus:ring-blue-500'
40
+ className='h-10 w-full rounded bg-input p-1 text-foreground shadow-xs outline-0 ring-2 ring-blue-300 focus:ring-blue-500'
41
41
  />
42
42
  </FormInputElement>
43
43
  )
@@ -69,7 +69,7 @@ export default function DateFormInput({ input }: { input: DateFieldClientConfig
69
69
  <Button
70
70
  variant={'outline'}
71
71
  className={cn(
72
- 'min-w-[250px] justify-start rounded bg-input px-3 py-6 text-start font-normal text-foreground shadow-sm outline-0 ring-2 ring-gray-300 hover:ring-gray-400 focus:ring-blue-500',
72
+ 'min-w-[250px] justify-start rounded bg-input px-3 py-6 text-start font-normal text-foreground shadow-xs outline-0 ring-2 ring-gray-300 hover:ring-gray-400 focus:ring-blue-500',
73
73
  !date && 'text-muted-foreground',
74
74
  )}
75
75
  >
@@ -44,7 +44,7 @@ export default function DocumentFormInput({
44
44
  file={input.value}
45
45
  width={450}
46
46
  height={620}
47
- className='mb-4 rounded p-1 ring ring-gray-400'
47
+ className='mb-4 rounded p-1 ring-3 ring-gray-400'
48
48
  />
49
49
  )
50
50
 
@@ -79,7 +79,7 @@ export default function DocumentFormInput({
79
79
  />
80
80
  <embed
81
81
  src={image}
82
- className='mb-4 max-w-full rounded p-1 ring ring-green-600'
82
+ className='mb-4 max-w-full rounded p-1 ring-3 ring-green-600'
83
83
  width={350}
84
84
  height={520}
85
85
  />
@@ -105,7 +105,7 @@ export default function DocumentFormInput({
105
105
  <div className='w-full flex-1 md:flex-[0.5]'>
106
106
  <button
107
107
  type='button'
108
- className='w-full rounded border bg-gradient-to-r from-blue-700 to-sky-500 p-2 text-center text-sm font-bold uppercase text-white drop-shadow'
108
+ className='w-full rounded border bg-linear-to-r from-blue-700 to-sky-500 p-2 text-center text-sm font-bold uppercase text-white drop-shadow-sm'
109
109
  onClick={() => {
110
110
  if (fileInputContainerRef.current?.firstChild) {
111
111
  ;(fileInputContainerRef.current.firstChild as HTMLInputElement).click()
@@ -35,7 +35,7 @@ export default function NumberFormInput({ input }: { input: NumberFieldClientCon
35
35
  onBlur={field.onBlur}
36
36
  value={field.value}
37
37
  ref={field.ref}
38
- className='w-full rounded bg-input p-3 text-foreground shadow-sm outline-0 ring-2 ring-gray-300 hover:ring-gray-400 focus:ring-blue-500'
38
+ className='w-full rounded bg-input p-3 text-foreground shadow-xs outline-0 ring-2 ring-gray-300 hover:ring-gray-400 focus:ring-blue-500'
39
39
  />
40
40
  </FormInputElement>
41
41
  )
@@ -40,7 +40,7 @@ export default function PasswordFormInput({
40
40
  onBlur={field.onBlur}
41
41
  value={field.value}
42
42
  ref={field.ref}
43
- className='w-full rounded bg-input p-3 text-foreground shadow-sm outline-0 ring-2 ring-gray-300 hover:ring-gray-400 focus:ring-blue-500'
43
+ className='w-full rounded bg-input p-3 text-foreground shadow-xs outline-0 ring-2 ring-gray-300 hover:ring-gray-400 focus:ring-blue-500'
44
44
  />
45
45
  </FormInputElement>
46
46
  )
@@ -47,7 +47,7 @@ export default function PhotoFormInput({ input, sectionName }: { input: PhotoFie
47
47
  alt={'admin'}
48
48
  width={imageWidth}
49
49
  height={imageHeight}
50
- className='rounded p-1 ring ring-gray-400'
50
+ className='rounded p-1 ring-3 ring-gray-400'
51
51
  />
52
52
  )
53
53
 
@@ -123,7 +123,7 @@ export default function PhotoFormInput({ input, sectionName }: { input: PhotoFie
123
123
  }}
124
124
  />
125
125
  <Image
126
- className='mb-4 rounded p-1 ring ring-green-600'
126
+ className='mb-4 rounded p-1 ring-3 ring-green-600'
127
127
  src={image}
128
128
  alt='new'
129
129
  fill={true}
@@ -156,7 +156,7 @@ export default function PhotoFormInput({ input, sectionName }: { input: PhotoFie
156
156
  <div className='w-[400px] max-w-full'>
157
157
  <button
158
158
  type='button'
159
- className='flex w-full flex-wrap items-center justify-center gap-1.5 rounded border bg-gradient-to-r from-red-600 to-amber-500 p-2 text-center text-sm font-bold uppercase text-white drop-shadow hover:from-red-400 hover:to-amber-400'
159
+ className='flex w-full flex-wrap items-center justify-center gap-1.5 rounded border bg-linear-to-r from-red-600 to-amber-500 p-2 text-center text-sm font-bold uppercase text-white drop-shadow-sm hover:from-red-400 hover:to-amber-400'
160
160
  onClick={() => {
161
161
  setModal({
162
162
  title: getString('deletePhoto'),
@@ -196,7 +196,7 @@ export default function PhotoFormInput({ input, sectionName }: { input: PhotoFie
196
196
  <div className='dark:border-neutral my-2 flex w-[400px] max-w-full flex-col gap-1 rounded-lg border border-gray-400 p-2'>
197
197
  <button
198
198
  type='button'
199
- className='flex w-full flex-wrap items-center justify-center gap-1.5 rounded border bg-gradient-to-r from-blue-700 to-sky-500 p-2 text-center text-sm font-bold uppercase text-white drop-shadow hover:from-blue-500 hover:to-sky-400'
199
+ className='flex w-full flex-wrap items-center justify-center gap-1.5 rounded border bg-linear-to-r from-blue-700 to-sky-500 p-2 text-center text-sm font-bold uppercase text-white drop-shadow-sm hover:from-blue-500 hover:to-sky-400'
200
200
  onClick={() => {
201
201
  if (fileInputContainerRef.current?.firstChild) {
202
202
  ;(fileInputContainerRef.current.firstChild as HTMLInputElement).click()
@@ -131,7 +131,7 @@ export default function SelectFormInput({
131
131
  field.onChange(value.value)
132
132
  if (value) setValue(value)
133
133
  }}
134
- classname='w-full shadow-sm'
134
+ classname='w-full shadow-xs'
135
135
  />
136
136
  </FormInputElement>
137
137
  <div ref={parent}>
@@ -42,7 +42,7 @@ export default function TagsFormInput({ input }: { input: TagsFieldClientConfig
42
42
  <TextField
43
43
  {...params}
44
44
  label={input.label}
45
- // className='ring-2 outline-0 focus:ring-blue-500 hover:ring-gray-400 ring-gray-300 shadow-sm rounded w-full bg-input text-foreground'
45
+ // className='ring-2 outline-0 focus:ring-blue-500 hover:ring-gray-400 ring-gray-300 shadow-xs rounded w-full bg-input text-foreground'
46
46
  placeholder={input.placeholder ? input.placeholder : getString('start_typing')}
47
47
  />
48
48
  )}
@@ -41,7 +41,7 @@ export default function TextFormInput({
41
41
  onBlur={field.onBlur}
42
42
  value={field.value}
43
43
  ref={field.ref}
44
- className='w-full rounded bg-input p-3 text-foreground shadow-sm outline-0 ring-2 ring-gray-300 hover:ring-gray-400 focus:ring-blue-500'
44
+ className='w-full rounded bg-input p-3 text-foreground shadow-xs outline-0 ring-2 ring-gray-300 hover:ring-gray-400 focus:ring-blue-500'
45
45
  />
46
46
  </FormInputElement>
47
47
  )
@@ -40,7 +40,7 @@ export default function TextareaFormInput({
40
40
  onBlur={field.onBlur}
41
41
  value={field.value}
42
42
  ref={field.ref}
43
- className='h-[150px] w-full rounded bg-input p-3 text-foreground shadow-sm outline-0 ring-2 ring-gray-300 hover:ring-gray-400 focus:ring-blue-500'
43
+ className='h-[150px] w-full rounded bg-input p-3 text-foreground shadow-xs outline-0 ring-2 ring-gray-300 hover:ring-gray-400 focus:ring-blue-500'
44
44
  ></textarea>
45
45
  </FormInputElement>
46
46
  )
@@ -38,7 +38,7 @@ export default function VideoFormInput({ input, sectionName }: { input: VideoFie
38
38
  file={input.value}
39
39
  width={400}
40
40
  height={280}
41
- className='mb-4 rounded p-1 ring ring-gray-400'
41
+ className='mb-4 rounded p-1 ring-3 ring-gray-400'
42
42
  />
43
43
  )
44
44
 
@@ -72,7 +72,7 @@ export default function VideoFormInput({ input, sectionName }: { input: VideoFie
72
72
  />
73
73
  <embed
74
74
  src={image}
75
- className='mb-4 max-w-full rounded p-1 ring ring-green-600'
75
+ className='mb-4 max-w-full rounded p-1 ring-3 ring-green-600'
76
76
  width={300}
77
77
  height={190}
78
78
  />
@@ -98,7 +98,7 @@ export default function VideoFormInput({ input, sectionName }: { input: VideoFie
98
98
  <div className='w-full flex-1 md:flex-[0.5]'>
99
99
  <button
100
100
  type='button'
101
- className='w-full rounded border bg-gradient-to-r from-blue-700 to-sky-500 p-2 text-center text-sm font-bold uppercase text-white drop-shadow'
101
+ className='w-full rounded border bg-linear-to-r from-blue-700 to-sky-500 p-2 text-center text-sm font-bold uppercase text-white drop-shadow-sm'
102
102
  onClick={() => {
103
103
  if (fileInputContainerRef.current?.firstChild) {
104
104
  ;(fileInputContainerRef.current.firstChild as HTMLInputElement).click()
@@ -4,18 +4,18 @@ import { cva, type VariantProps } from 'class-variance-authority'
4
4
  import { cn } from 'nextjs-cms/utils'
5
5
 
6
6
  const badgeVariants = cva(
7
- 'inline-flex items-center rounded-md border px-1.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',
7
+ 'inline-flex items-center rounded-md border px-1.5 py-0.5 text-xs font-semibold transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2',
8
8
  {
9
9
  variants: {
10
10
  variant: {
11
- default: 'border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80',
11
+ default: 'border-transparent bg-primary text-primary-foreground shadow-sm hover:bg-primary/80',
12
12
  secondary: 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',
13
13
  destructive:
14
- 'border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80',
14
+ 'border-transparent bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/80',
15
15
  outline: 'text-foreground',
16
- primary: 'border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80',
17
- success: 'border-transparent bg-success text-success-foreground shadow hover:bg-success/80',
18
- warning: 'border-transparent bg-warning text-warning-foreground shadow hover:bg-warning/80',
16
+ primary: 'border-transparent bg-primary text-primary-foreground shadow-sm hover:bg-primary/80',
17
+ success: 'border-transparent bg-success text-success-foreground shadow-sm hover:bg-success/80',
18
+ warning: 'border-transparent bg-warning text-warning-foreground shadow-sm hover:bg-warning/80',
19
19
  },
20
20
  },
21
21
  defaultVariants: {
@@ -5,18 +5,18 @@ import { cva, type VariantProps } from "class-variance-authority"
5
5
  import { cn } from 'nextjs-cms/utils'
6
6
 
7
7
  const buttonVariants = cva(
8
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
8
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
9
9
  {
10
10
  variants: {
11
11
  variant: {
12
12
  default:
13
- "bg-primary text-primary-foreground shadow hover:bg-primary/90",
13
+ "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90",
14
14
  destructive:
15
- "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
15
+ "bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90",
16
16
  outline:
17
- "border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",
17
+ "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground",
18
18
  secondary:
19
- "bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",
19
+ "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
20
20
  ghost: "hover:bg-accent hover:text-accent-foreground",
21
21
  link: "text-primary underline-offset-4 hover:underline",
22
22
  },
@@ -9,7 +9,7 @@ const Card = React.forwardRef<
9
9
  <div
10
10
  ref={ref}
11
11
  className={cn(
12
- "rounded-xl border bg-card text-card-foreground shadow",
12
+ "rounded-xl border bg-card text-card-foreground shadow-sm",
13
13
  className
14
14
  )}
15
15
  {...props}
@@ -13,7 +13,7 @@ const Checkbox = React.forwardRef<
13
13
  <CheckboxPrimitive.Root
14
14
  ref={ref}
15
15
  className={cn(
16
- 'peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state="indeterminate"]:bg-gray-300 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state="indeterminate"]:bg-gray-500',
16
+ 'peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow-sm focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state="indeterminate"]:bg-gray-300 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state="indeterminate"]:bg-gray-500',
17
17
  className,
18
18
  )}
19
19
  {...props}
@@ -31,7 +31,7 @@ const DropdownMenuSubTrigger = React.forwardRef<
31
31
  <DropdownMenuPrimitive.SubTrigger
32
32
  ref={ref}
33
33
  className={cn(
34
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",
34
+ "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden focus:bg-accent data-[state=open]:bg-accent",
35
35
  inset && "pl-8",
36
36
  className
37
37
  )}
@@ -51,7 +51,7 @@ const DropdownMenuSubContent = React.forwardRef<
51
51
  <DropdownMenuPrimitive.SubContent
52
52
  ref={ref}
53
53
  className={cn(
54
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
54
+ "z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
55
55
  className
56
56
  )}
57
57
  {...props}
@@ -69,7 +69,7 @@ const DropdownMenuContent = React.forwardRef<
69
69
  ref={ref}
70
70
  sideOffset={sideOffset}
71
71
  className={cn(
72
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
72
+ "z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md",
73
73
  "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
74
74
  className
75
75
  )}
@@ -88,7 +88,7 @@ const DropdownMenuItem = React.forwardRef<
88
88
  <DropdownMenuPrimitive.Item
89
89
  ref={ref}
90
90
  className={cn(
91
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
91
+ "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
92
92
  inset && "pl-8",
93
93
  className
94
94
  )}
@@ -104,7 +104,7 @@ const DropdownMenuCheckboxItem = React.forwardRef<
104
104
  <DropdownMenuPrimitive.CheckboxItem
105
105
  ref={ref}
106
106
  className={cn(
107
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
107
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
108
108
  className
109
109
  )}
110
110
  checked={checked}
@@ -128,7 +128,7 @@ const DropdownMenuRadioItem = React.forwardRef<
128
128
  <DropdownMenuPrimitive.RadioItem
129
129
  ref={ref}
130
130
  className={cn(
131
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
131
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-hidden transition-colors focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
132
132
  className
133
133
  )}
134
134
  {...props}
@@ -11,7 +11,7 @@ const Input = React.forwardRef<HTMLInputElement, InputProps>(
11
11
  <input
12
12
  type={type}
13
13
  className={cn(
14
- "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
14
+ "flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",
15
15
  className
16
16
  )}
17
17
  ref={ref}
@@ -19,7 +19,7 @@ const PopoverContent = React.forwardRef<
19
19
  align={align}
20
20
  sideOffset={sideOffset}
21
21
  className={cn(
22
- "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
22
+ "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
23
23
  className
24
24
  )}
25
25
  {...props}
@@ -28,8 +28,8 @@ const ScrollBar = React.forwardRef<
28
28
  orientation={orientation}
29
29
  className={cn(
30
30
  'flex touch-none select-none transition-colors',
31
- orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent p-[1px]',
32
- orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent p-[1px]',
31
+ orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent p-px',
32
+ orientation === 'horizontal' && 'h-2.5 flex-col border-t border-t-transparent p-px',
33
33
  className,
34
34
  )}
35
35
  {...props}
@@ -24,7 +24,7 @@ const SelectTrigger = React.forwardRef<
24
24
  <SelectPrimitive.Trigger
25
25
  ref={ref}
26
26
  className={cn(
27
- "flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
27
+ "flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-xs ring-offset-background placeholder:text-muted-foreground focus:outline-hidden focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
28
28
  className
29
29
  )}
30
30
  {...props}
@@ -80,7 +80,7 @@ const SelectContent = React.forwardRef<
80
80
  <SelectPrimitive.Content
81
81
  ref={ref}
82
82
  className={cn(
83
- "relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
83
+ "relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
84
84
  position === "popper" &&
85
85
  "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
86
86
  className
@@ -93,7 +93,7 @@ const SelectContent = React.forwardRef<
93
93
  className={cn(
94
94
  "p-1",
95
95
  position === "popper" &&
96
- "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
96
+ "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)"
97
97
  )}
98
98
  >
99
99
  {children}
@@ -123,7 +123,7 @@ const SelectItem = React.forwardRef<
123
123
  <SelectPrimitive.Item
124
124
  ref={ref}
125
125
  className={cn(
126
- "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
126
+ "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50",
127
127
  className
128
128
  )}
129
129
  {...props}
@@ -57,7 +57,7 @@ const SheetContent = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Con
57
57
  <SheetOverlay />
58
58
  <SheetPrimitive.Content ref={ref} className={cn(sheetVariants({ side }), className)} {...props}>
59
59
  {children}
60
- <SheetPrimitive.Close className='absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary'>
60
+ <SheetPrimitive.Close className='absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary'>
61
61
  <Cross2Icon className='h-4 w-4' />
62
62
  <span className='sr-only'>Close</span>
63
63
  </SheetPrimitive.Close>
@@ -11,7 +11,7 @@ const Switch = React.forwardRef<
11
11
  >(({ className, ...props }, ref) => (
12
12
  <SwitchPrimitives.Root
13
13
  className={cn(
14
- "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
14
+ "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-xs transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
15
15
  className
16
16
  )}
17
17
  {...props}
@@ -43,7 +43,7 @@ const TableFooter = React.forwardRef<
43
43
  <tfoot
44
44
  ref={ref}
45
45
  className={cn(
46
- "border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
46
+ "border-t bg-muted/50 font-medium last:[&>tr]:border-b-0",
47
47
  className
48
48
  )}
49
49
  {...props}
@@ -73,7 +73,7 @@ const TableHead = React.forwardRef<
73
73
  <th
74
74
  ref={ref}
75
75
  className={cn(
76
- "h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
76
+ "h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 *:[[role=checkbox]]:translate-y-[2px]",
77
77
  className
78
78
  )}
79
79
  {...props}
@@ -88,7 +88,7 @@ const TableCell = React.forwardRef<
88
88
  <td
89
89
  ref={ref}
90
90
  className={cn(
91
- "p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
91
+ "p-2 align-middle [&:has([role=checkbox])]:pr-0 *:[[role=checkbox]]:translate-y-[2px]",
92
92
  className
93
93
  )}
94
94
  {...props}
@@ -29,7 +29,7 @@ const TabsTrigger = React.forwardRef<
29
29
  <TabsPrimitive.Trigger
30
30
  ref={ref}
31
31
  className={cn(
32
- "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
32
+ "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
33
33
  className
34
34
  )}
35
35
  {...props}
@@ -44,7 +44,7 @@ const TabsContent = React.forwardRef<
44
44
  <TabsPrimitive.Content
45
45
  ref={ref}
46
46
  className={cn(
47
- "mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
47
+ "mt-2 ring-offset-background focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
48
48
  className
49
49
  )}
50
50
  {...props}