sh-ui-cli 0.58.2 → 0.58.4

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 (104) hide show
  1. package/data/changelog/versions.json +35 -4
  2. package/data/registry/react/components/accordion/index.tailwind.tsx +1 -1
  3. package/data/registry/react/components/accordion/styles.css +1 -1
  4. package/data/registry/react/components/accordion/styles.module.css +1 -1
  5. package/data/registry/react/components/breadcrumb/index.tailwind.tsx +1 -1
  6. package/data/registry/react/components/breadcrumb/styles.css +1 -1
  7. package/data/registry/react/components/breadcrumb/styles.module.css +1 -1
  8. package/data/registry/react/components/button/index.tailwind.tsx +1 -1
  9. package/data/registry/react/components/button/styles.css +1 -2
  10. package/data/registry/react/components/button/styles.css.ts +1 -2
  11. package/data/registry/react/components/button/styles.module.css +1 -2
  12. package/data/registry/react/components/calendar/index.tailwind.tsx +3 -3
  13. package/data/registry/react/components/calendar/styles.css +3 -3
  14. package/data/registry/react/components/calendar/styles.module.css +3 -3
  15. package/data/registry/react/components/card/index.tailwind.tsx +1 -1
  16. package/data/registry/react/components/card/styles.css +1 -0
  17. package/data/registry/react/components/card/styles.css.ts +1 -0
  18. package/data/registry/react/components/card/styles.module.css +1 -0
  19. package/data/registry/react/components/carousel/index.tailwind.tsx +2 -2
  20. package/data/registry/react/components/carousel/styles.css +2 -2
  21. package/data/registry/react/components/carousel/styles.module.css +2 -2
  22. package/data/registry/react/components/checkbox/index.tailwind.tsx +1 -1
  23. package/data/registry/react/components/checkbox/styles.css +2 -2
  24. package/data/registry/react/components/checkbox/styles.module.css +2 -2
  25. package/data/registry/react/components/code-editor/index.tailwind.tsx +1 -1
  26. package/data/registry/react/components/code-editor/styles.css +1 -1
  27. package/data/registry/react/components/code-editor/styles.module.css +1 -1
  28. package/data/registry/react/components/code-panel/styles.css +1 -1
  29. package/data/registry/react/components/code-panel/styles.module.css +1 -1
  30. package/data/registry/react/components/color-picker/index.tailwind.tsx +2 -2
  31. package/data/registry/react/components/color-picker/styles.css +3 -3
  32. package/data/registry/react/components/color-picker/styles.module.css +3 -3
  33. package/data/registry/react/components/combobox/index.tailwind.tsx +1 -1
  34. package/data/registry/react/components/combobox/styles.css +1 -1
  35. package/data/registry/react/components/combobox/styles.module.css +1 -1
  36. package/data/registry/react/components/date-picker/index.tailwind.tsx +1 -1
  37. package/data/registry/react/components/date-picker/styles.css +2 -2
  38. package/data/registry/react/components/date-picker/styles.module.css +2 -2
  39. package/data/registry/react/components/dialog/index.tailwind.tsx +2 -2
  40. package/data/registry/react/components/dialog/styles.css +2 -2
  41. package/data/registry/react/components/dialog/styles.module.css +2 -2
  42. package/data/registry/react/components/dropdown-menu/index.tailwind.tsx +1 -1
  43. package/data/registry/react/components/dropdown-menu/styles.css +1 -1
  44. package/data/registry/react/components/dropdown-menu/styles.module.css +1 -1
  45. package/data/registry/react/components/file-upload/index.tailwind.tsx +3 -3
  46. package/data/registry/react/components/file-upload/styles.css +3 -3
  47. package/data/registry/react/components/file-upload/styles.module.css +3 -3
  48. package/data/registry/react/components/header/index.tailwind.tsx +3 -3
  49. package/data/registry/react/components/header/styles.css +3 -3
  50. package/data/registry/react/components/header/styles.module.css +3 -3
  51. package/data/registry/react/components/input/index.tailwind.tsx +3 -3
  52. package/data/registry/react/components/input/styles.css +5 -5
  53. package/data/registry/react/components/input/styles.css.ts +3 -3
  54. package/data/registry/react/components/input/styles.module.css +5 -5
  55. package/data/registry/react/components/menubar/styles.css +1 -1
  56. package/data/registry/react/components/menubar/styles.module.css +1 -1
  57. package/data/registry/react/components/numeric-input/index.tailwind.tsx +1 -1
  58. package/data/registry/react/components/numeric-input/styles.css +1 -1
  59. package/data/registry/react/components/numeric-input/styles.module.css +1 -1
  60. package/data/registry/react/components/page-toc/index.tailwind.tsx +1 -1
  61. package/data/registry/react/components/page-toc/styles.css +1 -1
  62. package/data/registry/react/components/page-toc/styles.module.css +1 -1
  63. package/data/registry/react/components/pagination/index.tailwind.tsx +1 -1
  64. package/data/registry/react/components/pagination/styles.css +1 -1
  65. package/data/registry/react/components/pagination/styles.module.css +1 -1
  66. package/data/registry/react/components/popover/index.tailwind.tsx +1 -1
  67. package/data/registry/react/components/popover/styles.css +1 -1
  68. package/data/registry/react/components/popover/styles.module.css +1 -1
  69. package/data/registry/react/components/radio/index.tailwind.tsx +1 -1
  70. package/data/registry/react/components/radio/styles.css +2 -2
  71. package/data/registry/react/components/radio/styles.module.css +2 -2
  72. package/data/registry/react/components/rich-text-editor/index.tailwind.tsx +2 -2
  73. package/data/registry/react/components/rich-text-editor/styles.css +2 -2
  74. package/data/registry/react/components/rich-text-editor/styles.module.css +2 -2
  75. package/data/registry/react/components/select/index.tailwind.tsx +1 -1
  76. package/data/registry/react/components/select/styles.css +2 -2
  77. package/data/registry/react/components/select/styles.module.css +2 -2
  78. package/data/registry/react/components/sidebar/index.tailwind.tsx +2 -2
  79. package/data/registry/react/components/sidebar/styles.css +2 -2
  80. package/data/registry/react/components/sidebar/styles.module.css +2 -2
  81. package/data/registry/react/components/slider/index.tailwind.tsx +1 -1
  82. package/data/registry/react/components/slider/styles.css +1 -1
  83. package/data/registry/react/components/slider/styles.module.css +1 -1
  84. package/data/registry/react/components/switch/index.tailwind.tsx +1 -1
  85. package/data/registry/react/components/switch/styles.css +1 -1
  86. package/data/registry/react/components/switch/styles.module.css +1 -1
  87. package/data/registry/react/components/tabs/index.tailwind.tsx +2 -2
  88. package/data/registry/react/components/tabs/styles.css +2 -2
  89. package/data/registry/react/components/tabs/styles.module.css +2 -2
  90. package/data/registry/react/components/textarea/index.tailwind.tsx +1 -1
  91. package/data/registry/react/components/textarea/styles.css +2 -2
  92. package/data/registry/react/components/textarea/styles.module.css +2 -2
  93. package/data/registry/react/components/toast/index.tailwind.tsx +1 -1
  94. package/data/registry/react/components/toast/styles.css +1 -1
  95. package/data/registry/react/components/toast/styles.module.css +1 -1
  96. package/data/registry/react/components/toggle/index.tailwind.tsx +1 -1
  97. package/data/registry/react/components/toggle/styles.css +1 -1
  98. package/data/registry/react/components/toggle/styles.module.css +1 -1
  99. package/package.json +1 -1
  100. package/templates/nextjs-standalone/_arch/flat/lib/styles/tokens.css +1 -0
  101. package/templates/nextjs-standalone/_arch/fsd/src/shared/styles/tokens.css +1 -0
  102. package/templates/nextjs-standalone/app/globals.css +1 -0
  103. package/templates/ui-app-template/src/styles/globals.css +1 -0
  104. package/templates/ui-app-template/src/styles/tokens.css +1 -0
@@ -51,7 +51,7 @@
51
51
  }
52
52
 
53
53
  .dialog__content:focus-visible {
54
- outline: var(--border-width-strong) solid var(--foreground);
54
+ outline: var(--border-width-strong) solid var(--ring);
55
55
  outline-offset: 2px;
56
56
  }
57
57
 
@@ -110,7 +110,7 @@
110
110
  color: var(--foreground);
111
111
  }
112
112
  .dialog__close:focus-visible {
113
- outline: var(--border-width-strong) solid var(--foreground);
113
+ outline: var(--border-width-strong) solid var(--ring);
114
114
  outline-offset: 2px;
115
115
  }
116
116
 
@@ -21,7 +21,7 @@ export const DropdownMenuTrigger = React.forwardRef<
21
21
  <BaseMenu.Trigger
22
22
  ref={ref}
23
23
  className={cn(
24
- "font-[inherit] cursor-pointer focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-2",
24
+ "font-[inherit] cursor-pointer focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-2",
25
25
  className,
26
26
  )}
27
27
  {...props}
@@ -9,7 +9,7 @@
9
9
  }
10
10
 
11
11
  .sh-ui-dm__trigger:focus-visible {
12
- outline: var(--border-width-strong) solid var(--foreground);
12
+ outline: var(--border-width-strong) solid var(--ring);
13
13
  outline-offset: 2px;
14
14
  }
15
15
 
@@ -9,7 +9,7 @@
9
9
  }
10
10
 
11
11
  .dm__trigger:focus-visible {
12
- outline: var(--border-width-strong) solid var(--foreground);
12
+ outline: var(--border-width-strong) solid var(--ring);
13
13
  outline-offset: 2px;
14
14
  }
15
15
 
@@ -153,7 +153,7 @@ export const FileUploadDropzone = React.forwardRef<HTMLDivElement, FileUploadDro
153
153
  aria-disabled={disabled || undefined}
154
154
  data-dragging={dragging || undefined}
155
155
  className={cn(
156
- "relative flex flex-col items-center justify-center gap-[var(--space-2)] py-[var(--space-8)] px-[var(--space-6)] min-h-40 bg-background-subtle text-foreground-muted border-[1.5px] border-dashed border-border rounded-[var(--radius)] cursor-pointer text-center transition-[border-color,background-color,color] duration-[var(--duration-fast)] hover:border-border-strong hover:text-foreground focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-2 focus-visible:border-foreground motion-reduce:transition-none",
156
+ "relative flex flex-col items-center justify-center gap-[var(--space-2)] py-[var(--space-8)] px-[var(--space-6)] min-h-40 bg-background-subtle text-foreground-muted border-[1.5px] border-dashed border-border rounded-[var(--radius)] cursor-pointer text-center transition-[border-color,background-color,color] duration-[var(--duration-fast)] hover:border-border-strong hover:text-foreground focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-2 focus-visible:border-primary motion-reduce:transition-none",
157
157
  dragging && "border-foreground bg-background-muted text-foreground",
158
158
  disabled && "opacity-[var(--opacity-disabled)] cursor-not-allowed pointer-events-none",
159
159
  className,
@@ -189,7 +189,7 @@ export const FileUploadTrigger = React.forwardRef<HTMLButtonElement, FileUploadT
189
189
  type={type ?? "button"}
190
190
  disabled={disabled || rest.disabled}
191
191
  className={cn(
192
- "inline-flex items-center justify-center gap-[var(--space-2)] py-[var(--space-2)] px-[var(--space-3)] text-[length:var(--text-sm)] font-medium text-foreground bg-background border border-border rounded-[calc(var(--radius)-2px)] cursor-pointer transition-[background-color,border-color] duration-[var(--duration-fast)] hover:not-disabled:bg-background-muted hover:not-disabled:border-border-strong focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-2 disabled:opacity-[var(--opacity-disabled)] disabled:cursor-not-allowed",
192
+ "inline-flex items-center justify-center gap-[var(--space-2)] py-[var(--space-2)] px-[var(--space-3)] text-[length:var(--text-sm)] font-medium text-foreground bg-background border border-border rounded-[calc(var(--radius)-2px)] cursor-pointer transition-[background-color,border-color] duration-[var(--duration-fast)] hover:not-disabled:bg-background-muted hover:not-disabled:border-border-strong focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-2 disabled:opacity-[var(--opacity-disabled)] disabled:cursor-not-allowed",
193
193
  className,
194
194
  )}
195
195
  onClick={(e) => {
@@ -250,7 +250,7 @@ export const FileUploadItem = React.forwardRef<HTMLLIElement, FileUploadItemProp
250
250
  <span className="text-[length:var(--text-xs)] text-foreground-muted shrink-0">{formatBytes(file.size)}</span>
251
251
  <button
252
252
  type="button"
253
- className="inline-flex items-center justify-center w-6 h-6 p-0 bg-transparent border-none rounded-[calc(var(--radius)-4px)] text-foreground-muted cursor-pointer transition-[color,background-color] duration-[var(--duration-fast)] shrink-0 hover:not-disabled:text-foreground hover:not-disabled:bg-background-muted focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-2 disabled:opacity-[var(--opacity-disabled)] disabled:cursor-not-allowed motion-reduce:transition-none"
253
+ className="inline-flex items-center justify-center w-6 h-6 p-0 bg-transparent border-none rounded-[calc(var(--radius)-4px)] text-foreground-muted cursor-pointer transition-[color,background-color] duration-[var(--duration-fast)] shrink-0 hover:not-disabled:text-foreground hover:not-disabled:bg-background-muted focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-2 disabled:opacity-[var(--opacity-disabled)] disabled:cursor-not-allowed motion-reduce:transition-none"
254
254
  onClick={() => remove(index)}
255
255
  disabled={disabled}
256
256
  aria-label={`${file.name} 제거`}
@@ -29,7 +29,7 @@
29
29
  }
30
30
 
31
31
  .sh-ui-file-upload__dropzone:focus-visible {
32
- outline: var(--border-width-strong) solid var(--foreground);
32
+ outline: var(--border-width-strong) solid var(--ring);
33
33
  outline-offset: 2px;
34
34
  border-color: var(--foreground);
35
35
  }
@@ -93,7 +93,7 @@
93
93
  border-color: var(--border-strong);
94
94
  }
95
95
  .sh-ui-file-upload__trigger:focus-visible {
96
- outline: var(--border-width-strong) solid var(--foreground);
96
+ outline: var(--border-width-strong) solid var(--ring);
97
97
  outline-offset: 2px;
98
98
  }
99
99
  .sh-ui-file-upload__trigger:disabled {
@@ -161,7 +161,7 @@
161
161
  background: var(--background-muted);
162
162
  }
163
163
  .sh-ui-file-upload__remove:focus-visible {
164
- outline: var(--border-width-strong) solid var(--foreground);
164
+ outline: var(--border-width-strong) solid var(--ring);
165
165
  outline-offset: 2px;
166
166
  }
167
167
  .sh-ui-file-upload__remove:disabled {
@@ -29,7 +29,7 @@
29
29
  }
30
30
 
31
31
  .file-upload__dropzone:focus-visible {
32
- outline: var(--border-width-strong) solid var(--foreground);
32
+ outline: var(--border-width-strong) solid var(--ring);
33
33
  outline-offset: 2px;
34
34
  border-color: var(--foreground);
35
35
  }
@@ -93,7 +93,7 @@
93
93
  border-color: var(--border-strong);
94
94
  }
95
95
  .file-upload__trigger:focus-visible {
96
- outline: var(--border-width-strong) solid var(--foreground);
96
+ outline: var(--border-width-strong) solid var(--ring);
97
97
  outline-offset: 2px;
98
98
  }
99
99
  .file-upload__trigger:disabled {
@@ -161,7 +161,7 @@
161
161
  background: var(--background-muted);
162
162
  }
163
163
  .file-upload__remove:focus-visible {
164
- outline: var(--border-width-strong) solid var(--foreground);
164
+ outline: var(--border-width-strong) solid var(--ring);
165
165
  outline-offset: 2px;
166
166
  }
167
167
  .file-upload__remove:disabled {
@@ -197,7 +197,7 @@ export const HeaderTrigger = React.forwardRef<HTMLButtonElement, React.ButtonHTM
197
197
  ref={setRefs}
198
198
  type="button"
199
199
  className={cn(
200
- "hidden items-center justify-center w-9 h-9 p-0 bg-transparent border-0 text-foreground rounded-[calc(var(--radius)-2px)] cursor-pointer transition-[background-color] duration-[var(--duration-fast)] hover:bg-[var(--sh-ui-header-hover-bg)] focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-2 max-md:inline-flex max-md:order-[-1]",
200
+ "hidden items-center justify-center w-9 h-9 p-0 bg-transparent border-0 text-foreground rounded-[calc(var(--radius)-2px)] cursor-pointer transition-[background-color] duration-[var(--duration-fast)] hover:bg-[var(--sh-ui-header-hover-bg)] focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-2 max-md:inline-flex max-md:order-[-1]",
201
201
  className,
202
202
  )}
203
203
  aria-label={open ? "메뉴 닫기" : "메뉴 열기"}
@@ -292,7 +292,7 @@ export const HeaderItem = React.forwardRef<
292
292
  ref={ref}
293
293
  href={href}
294
294
  className={cn(
295
- "inline-flex items-center gap-[var(--space-1)] py-[var(--space-2)] px-[var(--space-3)] text-[length:var(--text-sm)] font-medium text-foreground-muted no-underline bg-transparent border-0 rounded-[calc(var(--radius)-2px)] cursor-pointer whitespace-nowrap transition-[color,background-color] duration-[var(--duration-fast)] hover:text-foreground hover:bg-[var(--sh-ui-header-hover-bg)] data-[active]:text-foreground data-[active]:font-semibold focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-2 motion-reduce:transition-none max-md:py-[var(--space-3)] max-md:px-[var(--space-3)]",
295
+ "inline-flex items-center gap-[var(--space-1)] py-[var(--space-2)] px-[var(--space-3)] text-[length:var(--text-sm)] font-medium text-foreground-muted no-underline bg-transparent border-0 rounded-[calc(var(--radius)-2px)] cursor-pointer whitespace-nowrap transition-[color,background-color] duration-[var(--duration-fast)] hover:text-foreground hover:bg-[var(--sh-ui-header-hover-bg)] data-[active]:text-foreground data-[active]:font-semibold focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-2 motion-reduce:transition-none max-md:py-[var(--space-3)] max-md:px-[var(--space-3)]",
296
296
  className,
297
297
  )}
298
298
  data-active={computedActive ? "" : undefined}
@@ -437,7 +437,7 @@ export const HeaderMenuTrigger = React.forwardRef<HTMLButtonElement, React.Butto
437
437
  aria-controls={contentId}
438
438
  data-open={open ? "" : undefined}
439
439
  className={cn(
440
- "inline-flex items-center gap-[var(--space-1)] py-[var(--space-2)] px-[var(--space-3)] text-[length:var(--text-sm)] font-medium text-foreground-muted bg-transparent border-0 rounded-[calc(var(--radius)-2px)] cursor-pointer whitespace-nowrap transition-[color,background-color] duration-[var(--duration-fast)] hover:text-foreground hover:bg-[var(--sh-ui-header-hover-bg)] data-[open]:text-foreground data-[open]:bg-[var(--sh-ui-header-hover-bg)] focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-2 motion-reduce:transition-none",
440
+ "inline-flex items-center gap-[var(--space-1)] py-[var(--space-2)] px-[var(--space-3)] text-[length:var(--text-sm)] font-medium text-foreground-muted bg-transparent border-0 rounded-[calc(var(--radius)-2px)] cursor-pointer whitespace-nowrap transition-[color,background-color] duration-[var(--duration-fast)] hover:text-foreground hover:bg-[var(--sh-ui-header-hover-bg)] data-[open]:text-foreground data-[open]:bg-[var(--sh-ui-header-hover-bg)] focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-2 motion-reduce:transition-none",
441
441
  location === "drawer" && "max-md:justify-between max-md:w-full max-md:py-[var(--space-3)] max-md:px-[var(--space-3)]",
442
442
  className,
443
443
  )}
@@ -91,7 +91,7 @@
91
91
  background: var(--sh-ui-header-hover-bg);
92
92
  }
93
93
  .sh-ui-header__trigger:focus-visible {
94
- outline: var(--border-width-strong) solid var(--foreground);
94
+ outline: var(--border-width-strong) solid var(--ring);
95
95
  outline-offset: 2px;
96
96
  }
97
97
 
@@ -135,7 +135,7 @@
135
135
  font-weight: var(--weight-semibold);
136
136
  }
137
137
  .sh-ui-header__item:focus-visible {
138
- outline: var(--border-width-strong) solid var(--foreground);
138
+ outline: var(--border-width-strong) solid var(--ring);
139
139
  outline-offset: 2px;
140
140
  }
141
141
 
@@ -216,7 +216,7 @@
216
216
  background: var(--sh-ui-header-hover-bg);
217
217
  }
218
218
  .sh-ui-header__menu-trigger:focus-visible {
219
- outline: var(--border-width-strong) solid var(--foreground);
219
+ outline: var(--border-width-strong) solid var(--ring);
220
220
  outline-offset: 2px;
221
221
  }
222
222
  .sh-ui-header__chevron {
@@ -91,7 +91,7 @@
91
91
  background: var(--sh-ui-header-hover-bg);
92
92
  }
93
93
  .header__trigger:focus-visible {
94
- outline: var(--border-width-strong) solid var(--foreground);
94
+ outline: var(--border-width-strong) solid var(--ring);
95
95
  outline-offset: 2px;
96
96
  }
97
97
 
@@ -135,7 +135,7 @@
135
135
  font-weight: var(--weight-semibold);
136
136
  }
137
137
  .header__item:focus-visible {
138
- outline: var(--border-width-strong) solid var(--foreground);
138
+ outline: var(--border-width-strong) solid var(--ring);
139
139
  outline-offset: 2px;
140
140
  }
141
141
 
@@ -216,7 +216,7 @@
216
216
  background: var(--sh-ui-header-hover-bg);
217
217
  }
218
218
  .header__menu-trigger:focus-visible {
219
- outline: var(--border-width-strong) solid var(--foreground);
219
+ outline: var(--border-width-strong) solid var(--ring);
220
220
  outline-offset: 2px;
221
221
  }
222
222
  .header__chevron {
@@ -14,13 +14,13 @@ export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElem
14
14
  /* ───────── Base utility 묶음 (반복 줄이기) ───────── */
15
15
 
16
16
  const baseInputClasses =
17
- "block w-full h-[var(--control-md)] px-[var(--space-3)] bg-background text-foreground border border-border rounded-[var(--radius)] font-[inherit] text-[length:var(--text-sm)] leading-none transition-[border-color,box-shadow] duration-[var(--duration-fast)] placeholder:text-foreground-subtle hover:not-disabled:not-focus:border-border-strong focus:outline-none focus:border-foreground focus:shadow-[0_0_0_1px_var(--foreground)] disabled:opacity-[var(--opacity-disabled)] disabled:cursor-not-allowed disabled:bg-background-subtle read-only:bg-background-subtle aria-[invalid=true]:border-danger aria-[invalid=true]:focus:shadow-[0_0_0_1px_var(--danger)]";
17
+ "block w-full h-[var(--control-md)] px-[var(--space-3)] bg-background text-foreground border border-border rounded-[var(--radius)] font-[inherit] text-[length:var(--text-sm)] leading-none transition-[border-color,box-shadow] duration-[var(--duration-fast)] placeholder:text-foreground-subtle hover:not-disabled:not-focus:border-border-strong focus:outline-none focus:border-primary focus:shadow-[0_0_0_1px_var(--primary)] disabled:opacity-[var(--opacity-disabled)] disabled:cursor-not-allowed disabled:bg-background-subtle read-only:bg-background-subtle aria-[invalid=true]:border-danger aria-[invalid=true]:focus:shadow-[0_0_0_1px_var(--danger)]";
18
18
 
19
19
  const inGroupOverrides =
20
20
  "data-[in-group]:flex-1 data-[in-group]:min-w-0 data-[in-group]:h-auto data-[in-group]:p-0 data-[in-group]:bg-transparent data-[in-group]:border-none data-[in-group]:rounded-none data-[in-group]:shadow-none data-[in-group]:hover:border-none data-[in-group]:focus:border-none data-[in-group]:focus:outline-none data-[in-group]:focus:shadow-none data-[in-group]:disabled:bg-transparent";
21
21
 
22
22
  const baseGroupClasses =
23
- "flex items-center w-full min-h-[var(--control-md)] px-[var(--space-2)] gap-[var(--space-2)] bg-background text-foreground border border-border rounded-[var(--radius)] transition-[border-color,box-shadow] duration-[var(--duration-fast)] cursor-text hover:not-data-[disabled]:not-focus-within:border-border-strong focus-within:border-foreground focus-within:shadow-[0_0_0_1px_var(--foreground)] aria-[invalid=true]:border-danger aria-[invalid=true]:focus-within:shadow-[0_0_0_1px_var(--danger)] data-[disabled]:opacity-[var(--opacity-disabled)] data-[disabled]:cursor-not-allowed data-[disabled]:bg-background-subtle";
23
+ "flex items-center w-full min-h-[var(--control-md)] px-[var(--space-2)] gap-[var(--space-2)] bg-background text-foreground border border-border rounded-[var(--radius)] transition-[border-color,box-shadow] duration-[var(--duration-fast)] cursor-text hover:not-data-[disabled]:not-focus-within:border-border-strong focus-within:border-primary focus-within:shadow-[0_0_0_1px_var(--primary)] aria-[invalid=true]:border-danger aria-[invalid=true]:focus-within:shadow-[0_0_0_1px_var(--danger)] data-[disabled]:opacity-[var(--opacity-disabled)] data-[disabled]:cursor-not-allowed data-[disabled]:bg-background-subtle";
24
24
 
25
25
  /* ───────── InputGroup + InputAdornment (compound) ───────── */
26
26
 
@@ -149,7 +149,7 @@ Input.displayName = "Input";
149
149
  /* ───────── PasswordInput ───────── */
150
150
 
151
151
  const passwordToggleClasses =
152
- "inline-flex items-center justify-center w-8 h-8 p-0 bg-transparent border-none rounded-[calc(var(--radius)-2px)] text-foreground-muted cursor-pointer transition-[color,background-color] duration-[var(--duration-fast)] hover:text-foreground hover:bg-background-muted focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-2";
152
+ "inline-flex items-center justify-center w-8 h-8 p-0 bg-transparent border-none rounded-[calc(var(--radius)-2px)] text-foreground-muted cursor-pointer transition-[color,background-color] duration-[var(--duration-fast)] hover:text-foreground hover:bg-background-muted focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-2";
153
153
 
154
154
  function EyeIcon() {
155
155
  return (
@@ -32,8 +32,8 @@
32
32
 
33
33
  .sh-ui-input:focus {
34
34
  outline: none;
35
- border-color: var(--foreground);
36
- box-shadow: 0 0 0 1px var(--foreground);
35
+ border-color: var(--primary);
36
+ box-shadow: 0 0 0 1px var(--primary);
37
37
  }
38
38
 
39
39
  .sh-ui-input:disabled {
@@ -102,7 +102,7 @@
102
102
  }
103
103
  .sh-ui-input__toggle:hover { color: var(--foreground); background: var(--background-muted); }
104
104
  .sh-ui-input__toggle:focus-visible {
105
- outline: var(--border-width-strong) solid var(--foreground);
105
+ outline: var(--border-width-strong) solid var(--ring);
106
106
  outline-offset: 2px;
107
107
  }
108
108
 
@@ -143,8 +143,8 @@
143
143
  }
144
144
 
145
145
  .sh-ui-input-group:focus-within {
146
- border-color: var(--foreground);
147
- box-shadow: 0 0 0 1px var(--foreground);
146
+ border-color: var(--primary);
147
+ box-shadow: 0 0 0 1px var(--primary);
148
148
  }
149
149
 
150
150
  .sh-ui-input-group[aria-invalid="true"] {
@@ -25,7 +25,7 @@ export const input = style({
25
25
  "&:focus": {
26
26
  outline: "none",
27
27
  borderColor: "var(--foreground)",
28
- boxShadow: "0 0 0 1px var(--foreground)",
28
+ boxShadow: "0 0 0 1px var(--primary)",
29
29
  },
30
30
  "&:disabled": {
31
31
  opacity: "var(--opacity-disabled)",
@@ -137,7 +137,7 @@ export const toggle = style({
137
137
  background: "var(--background-muted)",
138
138
  },
139
139
  "&:focus-visible": {
140
- outline: "var(--border-width-strong) solid var(--foreground)",
140
+ outline: "var(--border-width-strong) solid var(--ring)",
141
141
  outlineOffset: "2px",
142
142
  },
143
143
  },
@@ -164,7 +164,7 @@ export const group = style({
164
164
  },
165
165
  "&:focus-within": {
166
166
  borderColor: "var(--foreground)",
167
- boxShadow: "0 0 0 1px var(--foreground)",
167
+ boxShadow: "0 0 0 1px var(--primary)",
168
168
  },
169
169
  '&[aria-invalid="true"]': {
170
170
  borderColor: "var(--danger)",
@@ -32,8 +32,8 @@
32
32
 
33
33
  .input:focus {
34
34
  outline: none;
35
- border-color: var(--foreground);
36
- box-shadow: 0 0 0 1px var(--foreground);
35
+ border-color: var(--primary);
36
+ box-shadow: 0 0 0 1px var(--primary);
37
37
  }
38
38
 
39
39
  .input:disabled {
@@ -100,7 +100,7 @@
100
100
  }
101
101
  .toggle:hover { color: var(--foreground); background: var(--background-muted); }
102
102
  .toggle:focus-visible {
103
- outline: var(--border-width-strong) solid var(--foreground);
103
+ outline: var(--border-width-strong) solid var(--ring);
104
104
  outline-offset: 2px;
105
105
  }
106
106
 
@@ -141,8 +141,8 @@
141
141
  }
142
142
 
143
143
  .group:focus-within {
144
- border-color: var(--foreground);
145
- box-shadow: 0 0 0 1px var(--foreground);
144
+ border-color: var(--primary);
145
+ box-shadow: 0 0 0 1px var(--primary);
146
146
  }
147
147
 
148
148
  .group[aria-invalid="true"] {
@@ -34,7 +34,7 @@
34
34
  }
35
35
 
36
36
  .sh-ui-menubar .sh-ui-dm__trigger:focus-visible {
37
- outline: var(--border-width-strong) solid var(--foreground);
37
+ outline: var(--border-width-strong) solid var(--ring);
38
38
  outline-offset: -1px;
39
39
  }
40
40
 
@@ -34,7 +34,7 @@
34
34
  }
35
35
 
36
36
  .menubar .dm__trigger:focus-visible {
37
- outline: var(--border-width-strong) solid var(--foreground);
37
+ outline: var(--border-width-strong) solid var(--ring);
38
38
  outline-offset: -1px;
39
39
  }
40
40
 
@@ -19,7 +19,7 @@ export interface NumericInputProps
19
19
  }
20
20
 
21
21
  const inputClasses =
22
- "w-10 px-1 py-0.5 font-mono text-[length:var(--text-xs)] leading-tight text-right border border-transparent rounded-[calc(var(--radius)-4px)] bg-transparent text-foreground appearance-none [-moz-appearance:textfield] transition-[border-color,background-color] duration-[var(--duration-fast)] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:m-0 [&::-webkit-outer-spin-button]:m-0 hover:not-disabled:not-focus:border-border focus:outline-none focus:border-foreground focus:bg-background focus-visible:outline-none focus-visible:border-foreground disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]";
22
+ "w-10 px-1 py-0.5 font-mono text-[length:var(--text-xs)] leading-tight text-right border border-transparent rounded-[calc(var(--radius)-4px)] bg-transparent text-foreground appearance-none [-moz-appearance:textfield] transition-[border-color,background-color] duration-[var(--duration-fast)] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:m-0 [&::-webkit-outer-spin-button]:m-0 hover:not-disabled:not-focus:border-border focus:outline-none focus:border-primary focus:bg-background focus-visible:outline-none focus-visible:border-primary disabled:cursor-not-allowed disabled:opacity-[var(--opacity-disabled)]";
23
23
 
24
24
  export const NumericInput = React.forwardRef<HTMLInputElement, NumericInputProps>(
25
25
  (
@@ -40,7 +40,7 @@
40
40
  .sh-ui-numeric-input__input:focus,
41
41
  .sh-ui-numeric-input__input:focus-visible {
42
42
  outline: none;
43
- border-color: var(--foreground);
43
+ border-color: var(--primary);
44
44
  background: var(--background);
45
45
  }
46
46
 
@@ -40,7 +40,7 @@
40
40
  .numeric-input__input:focus,
41
41
  .numeric-input__input:focus-visible {
42
42
  outline: none;
43
- border-color: var(--foreground);
43
+ border-color: var(--primary);
44
44
  background: var(--background);
45
45
  }
46
46
 
@@ -32,7 +32,7 @@ const cx = (...args: (string | undefined | false | null)[]) =>
32
32
  args.filter(Boolean).join(" ");
33
33
 
34
34
  const linkBase =
35
- "block px-2 py-1 rounded-[calc(var(--radius)-4px)] text-foreground-muted no-underline leading-snug transition-[color,background-color] duration-[var(--duration-fast)] hover:text-foreground hover:bg-background-subtle focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-2 data-[active=true]:text-foreground data-[active=true]:font-semibold data-[active=true]:bg-background-subtle motion-reduce:transition-none";
35
+ "block px-2 py-1 rounded-[calc(var(--radius)-4px)] text-foreground-muted no-underline leading-snug transition-[color,background-color] duration-[var(--duration-fast)] hover:text-foreground hover:bg-background-subtle focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-2 data-[active=true]:text-foreground data-[active=true]:font-semibold data-[active=true]:bg-background-subtle motion-reduce:transition-none";
36
36
 
37
37
  export function PageTOC({
38
38
  containerSelector = "main",
@@ -59,7 +59,7 @@
59
59
  background: var(--background-subtle);
60
60
  }
61
61
  .sh-ui-page-toc__link:focus-visible {
62
- outline: var(--border-width-strong) solid var(--foreground);
62
+ outline: var(--border-width-strong) solid var(--ring);
63
63
  outline-offset: 2px;
64
64
  }
65
65
  .sh-ui-page-toc__link[data-active="true"] {
@@ -59,7 +59,7 @@
59
59
  background: var(--background-subtle);
60
60
  }
61
61
  .page-toc__link:focus-visible {
62
- outline: var(--border-width-strong) solid var(--foreground);
62
+ outline: var(--border-width-strong) solid var(--ring);
63
63
  outline-offset: 2px;
64
64
  }
65
65
  .page-toc__link[data-active="true"] {
@@ -34,7 +34,7 @@ export const PaginationItem = React.forwardRef<HTMLLIElement, React.LiHTMLAttrib
34
34
  );
35
35
 
36
36
  const linkBase =
37
- "inline-flex items-center justify-center gap-1.5 min-w-9 h-9 px-3 rounded-[calc(var(--radius)-2px)] border border-transparent bg-transparent text-foreground no-underline transition-[background-color,border-color,color] duration-[var(--duration-fast)] cursor-pointer select-none hover:bg-background-muted focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-2 data-[active]:bg-foreground data-[active]:text-background data-[active]:font-medium data-[active]:hover:opacity-90 aria-disabled:pointer-events-none aria-disabled:opacity-45 data-[disabled]:pointer-events-none data-[disabled]:opacity-45 data-[size=sm]:min-w-8 data-[size=sm]:h-8 data-[size=sm]:px-2 motion-reduce:transition-none";
37
+ "inline-flex items-center justify-center gap-1.5 min-w-9 h-9 px-3 rounded-[calc(var(--radius)-2px)] border border-transparent bg-transparent text-foreground no-underline transition-[background-color,border-color,color] duration-[var(--duration-fast)] cursor-pointer select-none hover:bg-background-muted focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-2 data-[active]:bg-foreground data-[active]:text-background data-[active]:font-medium data-[active]:hover:opacity-90 aria-disabled:pointer-events-none aria-disabled:opacity-45 data-[disabled]:pointer-events-none data-[disabled]:opacity-45 data-[size=sm]:min-w-8 data-[size=sm]:h-8 data-[size=sm]:px-2 motion-reduce:transition-none";
38
38
 
39
39
  export interface PaginationLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
40
40
  isActive?: boolean;
@@ -52,7 +52,7 @@
52
52
  }
53
53
 
54
54
  .sh-ui-pagination__link:focus-visible {
55
- outline: var(--border-width-strong) solid var(--foreground);
55
+ outline: var(--border-width-strong) solid var(--ring);
56
56
  outline-offset: 2px;
57
57
  }
58
58
 
@@ -52,7 +52,7 @@
52
52
  }
53
53
 
54
54
  .pagination__link:focus-visible {
55
- outline: var(--border-width-strong) solid var(--foreground);
55
+ outline: var(--border-width-strong) solid var(--ring);
56
56
  outline-offset: 2px;
57
57
  }
58
58
 
@@ -34,7 +34,7 @@ export const PopoverContent = React.forwardRef<HTMLDivElement, PopoverContentPro
34
34
  <BasePopover.Popup
35
35
  ref={ref}
36
36
  className={cn(
37
- "min-w-48 p-[var(--space-2)] bg-background text-foreground border border-border rounded-[var(--radius)] shadow-[0_8px_24px_rgba(0,0,0,0.12)] outline-none text-[length:var(--text-sm)] leading-snug origin-[var(--transform-origin)] transition-[opacity,transform] duration-[140ms] ease-out motion-reduce:transition-none data-[starting-style]:opacity-0 data-[starting-style]:scale-95 data-[ending-style]:opacity-0 data-[ending-style]:scale-95 motion-reduce:data-[starting-style]:scale-100 motion-reduce:data-[ending-style]:scale-100 focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-2",
37
+ "min-w-48 p-[var(--space-2)] bg-background text-foreground border border-border rounded-[var(--radius)] shadow-[0_8px_24px_rgba(0,0,0,0.12)] outline-none text-[length:var(--text-sm)] leading-snug origin-[var(--transform-origin)] transition-[opacity,transform] duration-[140ms] ease-out motion-reduce:transition-none data-[starting-style]:opacity-0 data-[starting-style]:scale-95 data-[ending-style]:opacity-0 data-[ending-style]:scale-95 motion-reduce:data-[starting-style]:scale-100 motion-reduce:data-[ending-style]:scale-100 focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-2",
38
38
  className,
39
39
  )}
40
40
  {...props}
@@ -30,7 +30,7 @@
30
30
  }
31
31
 
32
32
  .sh-ui-popover__content:focus-visible {
33
- outline: var(--border-width-strong) solid var(--foreground);
33
+ outline: var(--border-width-strong) solid var(--ring);
34
34
  outline-offset: 2px;
35
35
  }
36
36
 
@@ -30,7 +30,7 @@
30
30
  }
31
31
 
32
32
  .popover__content:focus-visible {
33
- outline: var(--border-width-strong) solid var(--foreground);
33
+ outline: var(--border-width-strong) solid var(--ring);
34
34
  outline-offset: 2px;
35
35
  }
36
36
 
@@ -16,7 +16,7 @@ export const Radio = React.forwardRef<HTMLElement, RadioProps>(
16
16
  <BaseRadio.Root
17
17
  ref={ref}
18
18
  className={cn(
19
- "inline-flex items-center justify-center w-[1.125rem] h-[1.125rem] border border-border-strong rounded-full bg-background cursor-pointer shrink-0 transition-[border-color] duration-[var(--duration-fast)] hover:not-data-[disabled]:border-foreground focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-2 data-[checked]:border-primary data-[disabled]:opacity-[var(--opacity-disabled)] data-[disabled]:cursor-not-allowed motion-reduce:transition-none [@media(hover:none)_and_(pointer:coarse)]:w-5 [@media(hover:none)_and_(pointer:coarse)]:h-5",
19
+ "inline-flex items-center justify-center w-[1.125rem] h-[1.125rem] border border-border-strong rounded-full bg-background cursor-pointer shrink-0 transition-[border-color] duration-[var(--duration-fast)] hover:not-data-[disabled]:border-foreground focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-2 data-[checked]:border-primary data-[disabled]:opacity-[var(--opacity-disabled)] data-[disabled]:cursor-not-allowed motion-reduce:transition-none [@media(hover:none)_and_(pointer:coarse)]:w-5 [@media(hover:none)_and_(pointer:coarse)]:h-5",
20
20
  className,
21
21
  )}
22
22
  {...props}
@@ -16,11 +16,11 @@
16
16
  }
17
17
 
18
18
  .sh-ui-radio:hover:not([data-disabled]) {
19
- border-color: var(--foreground);
19
+ border-color: var(--primary);
20
20
  }
21
21
 
22
22
  .sh-ui-radio:focus-visible {
23
- outline: var(--border-width-strong) solid var(--foreground);
23
+ outline: var(--border-width-strong) solid var(--ring);
24
24
  outline-offset: 2px;
25
25
  }
26
26
 
@@ -16,11 +16,11 @@
16
16
  }
17
17
 
18
18
  .radio:hover:not([data-disabled]) {
19
- border-color: var(--foreground);
19
+ border-color: var(--primary);
20
20
  }
21
21
 
22
22
  .radio:focus-visible {
23
- outline: var(--border-width-strong) solid var(--foreground);
23
+ outline: var(--border-width-strong) solid var(--ring);
24
24
  outline-offset: 2px;
25
25
  }
26
26
 
@@ -67,7 +67,7 @@ export function RichTextEditor({
67
67
  return (
68
68
  <div
69
69
  className={cn(
70
- "sh-ui-rte flex flex-col border border-border rounded-[var(--radius)] bg-background overflow-hidden transition-[border-color] duration-[var(--duration-fast)] focus-within:border-foreground focus-within:outline-[length:var(--border-width-strong)] focus-within:outline-foreground focus-within:outline-offset-2 data-[readonly]:bg-background-subtle motion-reduce:transition-none",
70
+ "sh-ui-rte flex flex-col border border-border rounded-[var(--radius)] bg-background overflow-hidden transition-[border-color] duration-[var(--duration-fast)] focus-within:border-primary focus-within:outline-[length:var(--border-width-strong)] focus-within:outline-ring focus-within:outline-offset-2 data-[readonly]:bg-background-subtle motion-reduce:transition-none",
71
71
  className,
72
72
  )}
73
73
  data-readonly={readOnly || undefined}
@@ -157,7 +157,7 @@ function ToolbarButton({ editor, label, icon, isActive, canRun, run, disabled }:
157
157
  <button
158
158
  type="button"
159
159
  className={cn(
160
- "inline-flex items-center justify-center w-7 h-7 p-0 bg-transparent text-foreground-muted border border-transparent rounded-[calc(var(--radius)-2px)] cursor-pointer transition-[color,background-color,border-color] duration-[var(--duration-fast)] hover:not-disabled:text-foreground hover:not-disabled:bg-background hover:not-disabled:border-border focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-1 disabled:opacity-50 disabled:cursor-not-allowed motion-reduce:transition-none",
160
+ "inline-flex items-center justify-center w-7 h-7 p-0 bg-transparent text-foreground-muted border border-transparent rounded-[calc(var(--radius)-2px)] cursor-pointer transition-[color,background-color,border-color] duration-[var(--duration-fast)] hover:not-disabled:text-foreground hover:not-disabled:bg-background hover:not-disabled:border-border focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-1 disabled:opacity-50 disabled:cursor-not-allowed motion-reduce:transition-none",
161
161
  isActive && "text-foreground bg-background border-border-strong",
162
162
  )}
163
163
  aria-label={label}
@@ -9,7 +9,7 @@
9
9
  }
10
10
  .sh-ui-rte:focus-within {
11
11
  border-color: var(--foreground);
12
- outline: var(--border-width-strong) solid var(--foreground);
12
+ outline: var(--border-width-strong) solid var(--ring);
13
13
  outline-offset: 2px;
14
14
  }
15
15
  .sh-ui-rte[data-readonly] {
@@ -50,7 +50,7 @@
50
50
  border-color: var(--border);
51
51
  }
52
52
  .sh-ui-rte__btn:focus-visible {
53
- outline: var(--border-width-strong) solid var(--foreground);
53
+ outline: var(--border-width-strong) solid var(--ring);
54
54
  outline-offset: 1px;
55
55
  }
56
56
  .sh-ui-rte__btn.is-active {
@@ -9,7 +9,7 @@
9
9
  }
10
10
  .rte:focus-within {
11
11
  border-color: var(--foreground);
12
- outline: var(--border-width-strong) solid var(--foreground);
12
+ outline: var(--border-width-strong) solid var(--ring);
13
13
  outline-offset: 2px;
14
14
  }
15
15
  .rte[data-readonly] {
@@ -50,7 +50,7 @@
50
50
  border-color: var(--border);
51
51
  }
52
52
  .rte__btn:focus-visible {
53
- outline: var(--border-width-strong) solid var(--foreground);
53
+ outline: var(--border-width-strong) solid var(--ring);
54
54
  outline-offset: 1px;
55
55
  }
56
56
  .rte__btn.is-active {
@@ -30,7 +30,7 @@ export const SelectTrigger = React.forwardRef<
30
30
  <BaseSelect.Trigger
31
31
  ref={ref}
32
32
  className={cn(
33
- "inline-flex items-center justify-between gap-[var(--space-2)] min-w-40 h-[var(--control-md)] px-[var(--space-3)] bg-background text-foreground border border-border rounded-[var(--radius)] text-[length:var(--text-sm)] leading-none cursor-pointer transition-[border-color,background-color] duration-[var(--duration-fast)] select-none hover:not-disabled:border-border-strong focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-foreground focus-visible:outline-offset-2 data-[popup-open]:border-border-strong disabled:opacity-[var(--opacity-disabled)] disabled:pointer-events-none",
33
+ "inline-flex items-center justify-between gap-[var(--space-2)] min-w-40 h-[var(--control-md)] px-[var(--space-3)] bg-background text-foreground border border-border rounded-[var(--radius)] text-[length:var(--text-sm)] leading-none cursor-pointer transition-[border-color,background-color] duration-[var(--duration-fast)] select-none hover:not-disabled:border-border-strong focus-visible:outline-[length:var(--border-width-strong)] focus-visible:outline-ring focus-visible:outline-offset-2 data-[popup-open]:border-border-strong disabled:opacity-[var(--opacity-disabled)] disabled:pointer-events-none",
34
34
  className,
35
35
  )}
36
36
  {...props}
@@ -23,7 +23,7 @@
23
23
  }
24
24
 
25
25
  .sh-ui-select__trigger:focus-visible {
26
- outline: var(--border-width-strong) solid var(--foreground);
26
+ outline: var(--border-width-strong) solid var(--ring);
27
27
  outline-offset: 2px;
28
28
  }
29
29
 
@@ -188,6 +188,6 @@
188
188
  color: var(--foreground);
189
189
  }
190
190
  .sh-ui-select__chip-remove:focus-visible {
191
- outline: var(--border-width-strong) solid var(--foreground);
191
+ outline: var(--border-width-strong) solid var(--ring);
192
192
  outline-offset: 1px;
193
193
  }
@@ -23,7 +23,7 @@
23
23
  }
24
24
 
25
25
  .select__trigger:focus-visible {
26
- outline: var(--border-width-strong) solid var(--foreground);
26
+ outline: var(--border-width-strong) solid var(--ring);
27
27
  outline-offset: 2px;
28
28
  }
29
29
 
@@ -188,6 +188,6 @@
188
188
  color: var(--foreground);
189
189
  }
190
190
  .select__chip-remove:focus-visible {
191
- outline: var(--border-width-strong) solid var(--foreground);
191
+ outline: var(--border-width-strong) solid var(--ring);
192
192
  outline-offset: 1px;
193
193
  }