sh-ui-cli 0.52.0 → 0.52.2

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 (89) hide show
  1. package/data/changelog/versions.json +25 -0
  2. package/data/registry/react/components/_smoke/vanilla-extract.test.ts +33 -0
  3. package/data/registry/react/components/input/styles.css.ts +6 -6
  4. package/data/registry/react/registry.json +35 -852
  5. package/package.json +2 -2
  6. package/src/api.d.ts +3 -4
  7. package/src/constants.js +9 -5
  8. package/src/create/plugins/pluginSchema.js +5 -3
  9. package/src/mcp.mjs +4 -3
  10. package/data/registry/react/components/accordion/index.vanilla-extract.tsx +0 -97
  11. package/data/registry/react/components/accordion/styles.css.ts +0 -131
  12. package/data/registry/react/components/avatar/index.vanilla-extract.tsx +0 -73
  13. package/data/registry/react/components/avatar/styles.css.ts +0 -68
  14. package/data/registry/react/components/badge/index.vanilla-extract.tsx +0 -40
  15. package/data/registry/react/components/badge/styles.css.ts +0 -71
  16. package/data/registry/react/components/breadcrumb/index.vanilla-extract.tsx +0 -152
  17. package/data/registry/react/components/breadcrumb/styles.css.ts +0 -95
  18. package/data/registry/react/components/calendar/index.vanilla-extract.tsx +0 -806
  19. package/data/registry/react/components/calendar/styles.css.ts +0 -250
  20. package/data/registry/react/components/carousel/index.vanilla-extract.tsx +0 -430
  21. package/data/registry/react/components/carousel/styles.css.ts +0 -169
  22. package/data/registry/react/components/checkbox/index.vanilla-extract.tsx +0 -96
  23. package/data/registry/react/components/checkbox/styles.css.ts +0 -74
  24. package/data/registry/react/components/code-editor/index.vanilla-extract.tsx +0 -230
  25. package/data/registry/react/components/code-editor/styles.css.ts +0 -97
  26. package/data/registry/react/components/code-panel/index.vanilla-extract.tsx +0 -191
  27. package/data/registry/react/components/code-panel/styles.css.ts +0 -151
  28. package/data/registry/react/components/color-picker/index.vanilla-extract.tsx +0 -467
  29. package/data/registry/react/components/color-picker/styles.css.ts +0 -169
  30. package/data/registry/react/components/combobox/index.vanilla-extract.tsx +0 -165
  31. package/data/registry/react/components/combobox/styles.css.ts +0 -174
  32. package/data/registry/react/components/context-menu/index.vanilla-extract.tsx +0 -251
  33. package/data/registry/react/components/context-menu/styles.css.ts +0 -167
  34. package/data/registry/react/components/date-picker/index.vanilla-extract.tsx +0 -520
  35. package/data/registry/react/components/date-picker/styles.css.ts +0 -111
  36. package/data/registry/react/components/dialog/index.vanilla-extract.tsx +0 -95
  37. package/data/registry/react/components/dialog/styles.css.ts +0 -140
  38. package/data/registry/react/components/dropdown-menu/index.vanilla-extract.tsx +0 -255
  39. package/data/registry/react/components/dropdown-menu/styles.css.ts +0 -175
  40. package/data/registry/react/components/file-upload/index.vanilla-extract.tsx +0 -487
  41. package/data/registry/react/components/file-upload/styles.css.ts +0 -193
  42. package/data/registry/react/components/form/index.vanilla-extract.tsx +0 -61
  43. package/data/registry/react/components/form/styles.css.ts +0 -56
  44. package/data/registry/react/components/header/index.vanilla-extract.tsx +0 -805
  45. package/data/registry/react/components/header/styles.css.ts +0 -413
  46. package/data/registry/react/components/label/index.vanilla-extract.tsx +0 -52
  47. package/data/registry/react/components/label/styles.css.ts +0 -141
  48. package/data/registry/react/components/markdown-editor/index.vanilla-extract.tsx +0 -119
  49. package/data/registry/react/components/markdown-editor/styles.css.ts +0 -231
  50. package/data/registry/react/components/menubar/index.vanilla-extract.tsx +0 -32
  51. package/data/registry/react/components/menubar/styles.css.ts +0 -53
  52. package/data/registry/react/components/numeric-input/index.vanilla-extract.tsx +0 -148
  53. package/data/registry/react/components/numeric-input/styles.css.ts +0 -65
  54. package/data/registry/react/components/page-toc/index.vanilla-extract.tsx +0 -174
  55. package/data/registry/react/components/page-toc/styles.css.ts +0 -97
  56. package/data/registry/react/components/pagination/index.vanilla-extract.tsx +0 -269
  57. package/data/registry/react/components/pagination/styles.css.ts +0 -113
  58. package/data/registry/react/components/popover/index.vanilla-extract.tsx +0 -113
  59. package/data/registry/react/components/popover/styles.css.ts +0 -78
  60. package/data/registry/react/components/progress/index.vanilla-extract.tsx +0 -54
  61. package/data/registry/react/components/progress/styles.css.ts +0 -53
  62. package/data/registry/react/components/radio/index.vanilla-extract.tsx +0 -65
  63. package/data/registry/react/components/radio/styles.css.ts +0 -79
  64. package/data/registry/react/components/rich-text-editor/index.vanilla-extract.tsx +0 -348
  65. package/data/registry/react/components/rich-text-editor/styles.css.ts +0 -243
  66. package/data/registry/react/components/select/index.vanilla-extract.tsx +0 -234
  67. package/data/registry/react/components/select/styles.css.ts +0 -225
  68. package/data/registry/react/components/separator/index.vanilla-extract.tsx +0 -46
  69. package/data/registry/react/components/separator/styles.css.ts +0 -24
  70. package/data/registry/react/components/sidebar/index.vanilla-extract.tsx +0 -1067
  71. package/data/registry/react/components/sidebar/styles.css.ts +0 -578
  72. package/data/registry/react/components/skeleton/index.vanilla-extract.tsx +0 -22
  73. package/data/registry/react/components/skeleton/styles.css.ts +0 -30
  74. package/data/registry/react/components/slider/index.vanilla-extract.tsx +0 -298
  75. package/data/registry/react/components/slider/styles.css.ts +0 -75
  76. package/data/registry/react/components/spinner/index.vanilla-extract.tsx +0 -38
  77. package/data/registry/react/components/spinner/styles.css.ts +0 -60
  78. package/data/registry/react/components/switch/index.vanilla-extract.tsx +0 -39
  79. package/data/registry/react/components/switch/styles.css.ts +0 -87
  80. package/data/registry/react/components/tabs/index.vanilla-extract.tsx +0 -91
  81. package/data/registry/react/components/tabs/styles.css.ts +0 -145
  82. package/data/registry/react/components/textarea/index.vanilla-extract.tsx +0 -23
  83. package/data/registry/react/components/textarea/styles.css.ts +0 -55
  84. package/data/registry/react/components/toast/index.vanilla-extract.tsx +0 -258
  85. package/data/registry/react/components/toast/styles.css.ts +0 -307
  86. package/data/registry/react/components/toggle/index.vanilla-extract.tsx +0 -131
  87. package/data/registry/react/components/toggle/styles.css.ts +0 -109
  88. package/data/registry/react/components/tooltip/index.vanilla-extract.tsx +0 -83
  89. package/data/registry/react/components/tooltip/styles.css.ts +0 -59
@@ -1,152 +0,0 @@
1
- import * as React from "react";
2
- import { byKey, breadcrumb, breadcrumb__list, breadcrumb__item, breadcrumb__link, breadcrumb__page, breadcrumb__separator, breadcrumb__ellipsis, breadcrumbEllipsisSr } from "./styles.css";
3
-
4
-
5
- import { cn } from "@SH_UI_UTILS@";
6
- /* ───────── Breadcrumb (nav) ─────────
7
- * 시맨틱: <nav aria-label="Breadcrumb"><ol>...</ol></nav>.
8
- */
9
-
10
- /**
11
- * 현재 페이지의 위치를 사이트 계층 위에서 보여주는 내비게이션. 항상 `BreadcrumbList`로
12
- * 감싸고, 마지막 항목은 링크 대신 `BreadcrumbPage`로 표기해 현재 위치를 알린다.
13
- */
14
- export const Breadcrumb = React.forwardRef<
15
- HTMLElement,
16
- React.HTMLAttributes<HTMLElement>
17
- >(function Breadcrumb({ className, ...props }, ref) {
18
- return (
19
- <nav
20
- ref={ref}
21
- aria-label="Breadcrumb"
22
- className={cn(breadcrumb, className)}
23
- {...props}
24
- />
25
- );
26
- });
27
-
28
- /* ───────── List (ol) ───────── */
29
-
30
- /** 항목들을 담는 정렬 리스트(`<ol>`). Breadcrumb 직계 자식으로 사용. */
31
- export const BreadcrumbList = React.forwardRef<
32
- HTMLOListElement,
33
- React.OlHTMLAttributes<HTMLOListElement>
34
- >(function BreadcrumbList({ className, ...props }, ref) {
35
- return (
36
- <ol
37
- ref={ref}
38
- className={cn(breadcrumb__list, className)}
39
- {...props}
40
- />
41
- );
42
- });
43
-
44
- /* ───────── Item (li) ───────── */
45
-
46
- /** 한 단계의 항목(`<li>`). 안에 `BreadcrumbLink` 또는 `BreadcrumbPage`를 둔다. */
47
- export const BreadcrumbItem = React.forwardRef<
48
- HTMLLIElement,
49
- React.LiHTMLAttributes<HTMLLIElement>
50
- >(function BreadcrumbItem({ className, ...props }, ref) {
51
- return (
52
- <li
53
- ref={ref}
54
- className={cn(breadcrumb__item, className)}
55
- {...props}
56
- />
57
- );
58
- });
59
-
60
- /* ───────── Link ───────── */
61
-
62
- /** 상위 단계로 이동하는 링크. 라우터 사용 시 `asChild` 패턴 대신 직접 `<a>` 속성으로 전달. */
63
- export const BreadcrumbLink = React.forwardRef<
64
- HTMLAnchorElement,
65
- React.AnchorHTMLAttributes<HTMLAnchorElement>
66
- >(function BreadcrumbLink({ className, ...props }, ref) {
67
- return (
68
- <a
69
- ref={ref}
70
- className={cn(breadcrumb__link, className)}
71
- {...props}
72
- />
73
- );
74
- });
75
-
76
- /* ───────── Page (현재 위치 — 링크 아님) ───────── */
77
-
78
- /** 마지막(현재) 항목. 링크가 아니므로 `aria-current="page"`가 자동 부여된다. */
79
- export const BreadcrumbPage = React.forwardRef<
80
- HTMLSpanElement,
81
- React.HTMLAttributes<HTMLSpanElement>
82
- >(function BreadcrumbPage({ className, ...props }, ref) {
83
- return (
84
- <span
85
- ref={ref}
86
- role="link"
87
- aria-current="page"
88
- aria-disabled="true"
89
- className={cn(breadcrumb__page, className)}
90
- {...props}
91
- />
92
- );
93
- });
94
-
95
- /* ───────── Separator ───────── */
96
-
97
- /** 항목 사이 구분자. 기본은 `>` 아이콘이며 children으로 교체 가능. 스크린리더에서는 무시된다. */
98
- export const BreadcrumbSeparator = React.forwardRef<
99
- HTMLLIElement,
100
- React.LiHTMLAttributes<HTMLLIElement>
101
- >(function BreadcrumbSeparator({ className, children, ...props }, ref) {
102
- return (
103
- <li
104
- ref={ref}
105
- role="presentation"
106
- aria-hidden="true"
107
- className={cn(breadcrumb__separator, className)}
108
- {...props}
109
- >
110
- {children ?? <ChevronRightIcon />}
111
- </li>
112
- );
113
- });
114
-
115
- /* ───────── Ellipsis — 중간 항목 축약 ───────── */
116
-
117
- /** 깊은 경로에서 중간 항목들을 축약하는 점 3개 표시. 클릭 가능한 전체 경로 메뉴와 함께 쓰면 유용. */
118
- export const BreadcrumbEllipsis = React.forwardRef<
119
- HTMLSpanElement,
120
- React.HTMLAttributes<HTMLSpanElement>
121
- >(function BreadcrumbEllipsis({ className, ...props }, ref) {
122
- return (
123
- <span
124
- ref={ref}
125
- role="presentation"
126
- aria-hidden="true"
127
- className={cn(breadcrumb__ellipsis, className)}
128
- {...props}
129
- >
130
- <svg width="14" height="14" viewBox="0 0 16 16" fill="currentColor" aria-hidden>
131
- <circle cx="3" cy="8" r="1.25" />
132
- <circle cx="8" cy="8" r="1.25" />
133
- <circle cx="13" cy="8" r="1.25" />
134
- </svg>
135
- <span className={breadcrumbEllipsisSr}>더 보기</span>
136
- </span>
137
- );
138
- });
139
-
140
- function ChevronRightIcon() {
141
- return (
142
- <svg width="14" height="14" viewBox="0 0 16 16" fill="none" aria-hidden>
143
- <path
144
- d="M6 4l4 4-4 4"
145
- stroke="currentColor"
146
- strokeWidth="1.5"
147
- strokeLinecap="round"
148
- strokeLinejoin="round"
149
- />
150
- </svg>
151
- );
152
- }
@@ -1,95 +0,0 @@
1
- import { style } from "@vanilla-extract/css";
2
-
3
- export const breadcrumb = style({
4
- fontSize: "var(--text-sm)",
5
- color: "var(--foreground-muted)",
6
- });
7
-
8
- export const breadcrumb__list = style({
9
- display: "flex",
10
- alignItems: "center",
11
- flexWrap: "wrap",
12
- gap: "0.375rem",
13
- margin: 0,
14
- padding: 0,
15
- listStyle: "none",
16
- });
17
-
18
- export const breadcrumb__item = style({
19
- display: "inline-flex",
20
- alignItems: "center",
21
- gap: "0.375rem",
22
- minWidth: 0,
23
- });
24
-
25
- export const breadcrumb__link = style({
26
- color: "var(--foreground-muted)",
27
- textDecoration: "none",
28
- borderRadius: "calc(var(--radius) - 2px)",
29
- padding: "0 0.125rem",
30
- transition: "color var(--duration-fast)",
31
- selectors: {
32
- "&:hover": {
33
- color: "var(--foreground)",
34
- textDecoration: "underline",
35
- textUnderlineOffset: "3px",
36
- },
37
- "&:focus-visible": {
38
- outline: "var(--border-width-strong) solid var(--foreground)",
39
- outlineOffset: "2px",
40
- },
41
- },
42
- "@media": {
43
- "(prefers-reduced-motion: reduce)": {
44
- transition: "none",
45
- },
46
- },
47
- });
48
-
49
- export const breadcrumb__page = style({
50
- color: "var(--foreground)",
51
- fontWeight: "var(--weight-medium)",
52
- overflow: "hidden",
53
- textOverflow: "ellipsis",
54
- whiteSpace: "nowrap",
55
- });
56
-
57
- export const breadcrumb__separator = style({
58
- display: "inline-flex",
59
- alignItems: "center",
60
- color: "var(--foreground-muted)",
61
- opacity: 0.6,
62
- });
63
-
64
- export const breadcrumb__ellipsis = style({
65
- display: "inline-flex",
66
- alignItems: "center",
67
- width: "1.5rem",
68
- height: "1.5rem",
69
- justifyContent: "center",
70
- color: "var(--foreground-muted)",
71
- });
72
-
73
- export const breadcrumbEllipsisSr = style({
74
- position: "absolute",
75
- width: "1px",
76
- height: "1px",
77
- padding: 0,
78
- margin: "-1px",
79
- overflow: "hidden",
80
- clip: "rect(0, 0, 0, 0)",
81
- whiteSpace: "nowrap",
82
- border: 0,
83
- });
84
-
85
- /** 동적 키로 클래스 참조용 — `byKey[\`badge--${variant}\`]` 같은 패턴 지원. */
86
- export const byKey: Record<string, string> = {
87
- "breadcrumb": breadcrumb,
88
- "breadcrumb__list": breadcrumb__list,
89
- "breadcrumb__item": breadcrumb__item,
90
- "breadcrumb__link": breadcrumb__link,
91
- "breadcrumb__page": breadcrumb__page,
92
- "breadcrumb__separator": breadcrumb__separator,
93
- "breadcrumb__ellipsis": breadcrumb__ellipsis,
94
- "breadcrumb__ellipsis-sr": breadcrumbEllipsisSr,
95
- };