@olundot/ui 0.20.0-next.2 → 0.20.0-next.3
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.
- package/CHANGELOG.md +18 -0
- package/dist/index.d.ts +49 -43
- package/dist/index.js +84 -43
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @olundot/ui
|
|
2
2
|
|
|
3
|
+
## 0.20.0-next.3
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- b7176ad: `OlunLogo`가 `@olundot/tokens/brand`의 정본 데이터만 그린다. 모양이 바뀐다.
|
|
8
|
+
|
|
9
|
+
- 워드마크: Pretendard 800 글자(`<span>`) 대신 Montserrat 700 윤곽 SVG(자간 +0.03em). 접근 가능한 이름은 `role="img"` + `aria-label`(`OLUN`, 워드마크만이면 `OLUN.`)이다.
|
|
10
|
+
- MASTER(기본형): SVG 하나로 그리고 `symbolSize` 하나로 통째로 확대·축소한다. 간격 12px(`--space-3`) 대신 대문자 높이 H 기준 고정 비율(링 바깥 지름 1.24H, 궤도 점 끝 → O 0.55H)을 쓴다. 높이는 잉크에 맞춰 예전 심볼 상자보다 낮다(기본 `symbolSize` 28에서 약 17px).
|
|
11
|
+
- `fontSize`: 워드마크만 쓸 때(`showSymbol={false}`)의 글자 크기로만 쓴다. MASTER에서는 무시한다.
|
|
12
|
+
- 워드마크만 쓸 때 마침표 색이 `--accent`에서 `--accent-pop`으로 바뀐다(궤도 점과 같은 색 표식 `olun-accent`).
|
|
13
|
+
- `OlunSymbol`: 모양과 크기는 그대로다.
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- 15f638e: 겹친 오버레이를 한 동작으로 함께 닫아도 포커스가 `<body>`로 떨어지지 않고 바깥 오버레이를 연 요소로 돌아간다. 바깥 오버레이가 먼저 사라지는 동안 안쪽 오버레이가 닫히는 애니메이션 중이어도 해당한다. Trigger가 있는 경우와 닫히는 동안 포커스가 다른 요소로 옮겨 간 경우는 그대로다.
|
|
18
|
+
- Updated dependencies [b7176ad]
|
|
19
|
+
- @olundot/tokens@0.18.0-next.1
|
|
20
|
+
|
|
3
21
|
## 0.20.0-next.2
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -52,10 +52,10 @@ type GhostDefaultActionStyle = {
|
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
declare const buttonCva: (props?: ({
|
|
55
|
-
size?: "
|
|
55
|
+
size?: "default" | "md" | "xs" | "sm" | "lg" | "xl" | "icon" | "icon-xs" | null | undefined;
|
|
56
56
|
appearance?: "filled" | "outline" | "ghost" | null | undefined;
|
|
57
57
|
tone?: "primary" | "neutral" | "danger" | null | undefined;
|
|
58
|
-
variant?: "
|
|
58
|
+
variant?: "default" | "outline" | "ghost" | "primary" | "danger" | "emergency" | "subtle" | "destructive" | "secondary" | "link" | null | undefined;
|
|
59
59
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
60
60
|
type ButtonVariantsOptions = Parameters<typeof buttonCva>[0];
|
|
61
61
|
declare function buttonVariants(options?: ButtonVariantsOptions): string;
|
|
@@ -96,7 +96,7 @@ type CopyButtonProps = Omit<ButtonProps, 'children' | 'leadingIcon' | 'loading'
|
|
|
96
96
|
variant?: ButtonVariant;
|
|
97
97
|
duration?: number;
|
|
98
98
|
};
|
|
99
|
-
declare const CopyButton: React.ForwardRefExoticComponent<Omit<ButtonProps, "
|
|
99
|
+
declare const CopyButton: React.ForwardRefExoticComponent<Omit<ButtonProps, "size" | "variant" | "children" | "leadingIcon" | "trailingIcon" | "loading"> & {
|
|
100
100
|
value: string;
|
|
101
101
|
label?: React.ReactNode;
|
|
102
102
|
copiedLabel?: React.ReactNode;
|
|
@@ -107,13 +107,13 @@ declare const CopyButton: React.ForwardRefExoticComponent<Omit<ButtonProps, "var
|
|
|
107
107
|
} & React.RefAttributes<HTMLButtonElement>>;
|
|
108
108
|
|
|
109
109
|
declare const inputVariants: (props?: ({
|
|
110
|
-
size?: "
|
|
110
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
111
111
|
fullWidth?: boolean | null | undefined;
|
|
112
112
|
surface?: SurfaceLevel | null | undefined;
|
|
113
113
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
114
114
|
declare const inputMessageVariants: (props?: ({
|
|
115
|
-
state?: "
|
|
116
|
-
size?: "
|
|
115
|
+
state?: "default" | "error" | "success" | null | undefined;
|
|
116
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
117
117
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
118
118
|
type InputState = NonNullable<VariantProps<typeof inputMessageVariants>["state"]>;
|
|
119
119
|
/** Canonical size type (0.2.0+). Use `size` prop with these values. */
|
|
@@ -161,11 +161,11 @@ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "
|
|
|
161
161
|
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
162
162
|
|
|
163
163
|
declare const fileUploadZoneVariants: (props?: ({
|
|
164
|
-
size?: "
|
|
164
|
+
size?: "default" | "compact" | null | undefined;
|
|
165
165
|
surface?: SurfaceLevel | null | undefined;
|
|
166
166
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
167
167
|
declare const fileUploadIconVariants: (props?: ({
|
|
168
|
-
size?: "
|
|
168
|
+
size?: "default" | "compact" | null | undefined;
|
|
169
169
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
170
170
|
interface FileUploadZoneProps extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, "onChange">, VariantProps<typeof fileUploadZoneVariants> {
|
|
171
171
|
accept?: string;
|
|
@@ -203,12 +203,12 @@ interface InlineAlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'childre
|
|
|
203
203
|
declare const InlineAlert: React.ForwardRefExoticComponent<InlineAlertProps & React.RefAttributes<HTMLDivElement>>;
|
|
204
204
|
|
|
205
205
|
declare const textareaVariants: (props?: ({
|
|
206
|
-
size?: "
|
|
206
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
207
207
|
fullWidth?: boolean | null | undefined;
|
|
208
208
|
surface?: SurfaceLevel | null | undefined;
|
|
209
209
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
210
210
|
declare const textareaMessageVariants: (props?: ({
|
|
211
|
-
state?: "
|
|
211
|
+
state?: "default" | "error" | "success" | null | undefined;
|
|
212
212
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
213
213
|
type TextareaState = NonNullable<VariantProps<typeof textareaMessageVariants>["state"]>;
|
|
214
214
|
/** Canonical size type (0.2.0+). Use `size` prop with these values. */
|
|
@@ -257,14 +257,14 @@ interface TextareaProps extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaEl
|
|
|
257
257
|
declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
|
|
258
258
|
|
|
259
259
|
declare const selectVariants: (props?: ({
|
|
260
|
-
size?: "
|
|
260
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
261
261
|
fullWidth?: boolean | null | undefined;
|
|
262
262
|
appearance?: "inline" | "field" | null | undefined;
|
|
263
263
|
surface?: SurfaceLevel | null | undefined;
|
|
264
264
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
265
265
|
declare const selectMessageVariants: (props?: ({
|
|
266
|
-
state?: "
|
|
267
|
-
size?: "
|
|
266
|
+
state?: "default" | "error" | "success" | null | undefined;
|
|
267
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
268
268
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
269
269
|
type SelectState = NonNullable<VariantProps<typeof selectMessageVariants>["state"]>;
|
|
270
270
|
/** Canonical size type (0.2.0+). Use `size` prop with these values. */
|
|
@@ -1475,7 +1475,7 @@ interface StatusDotProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'ch
|
|
|
1475
1475
|
declare const StatusDot: React.ForwardRefExoticComponent<StatusDotProps & React.RefAttributes<HTMLSpanElement>>;
|
|
1476
1476
|
|
|
1477
1477
|
declare const notificationBadgeVariants: (props?: ({
|
|
1478
|
-
size?: "
|
|
1478
|
+
size?: "md" | "sm" | null | undefined;
|
|
1479
1479
|
placement?: "none" | "inline" | "corner" | null | undefined;
|
|
1480
1480
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1481
1481
|
type NotificationBadgeSize = NonNullable<VariantProps<typeof notificationBadgeVariants>['size']>;
|
|
@@ -1488,13 +1488,13 @@ declare const NotificationBadge: React.ForwardRefExoticComponent<NotificationBad
|
|
|
1488
1488
|
|
|
1489
1489
|
declare const chipVariants: (props?: ({
|
|
1490
1490
|
variant?: "filter" | "choice" | "removable" | "status-filter" | null | undefined;
|
|
1491
|
-
tone?: "
|
|
1492
|
-
size?: "
|
|
1491
|
+
tone?: "accent" | "neutral" | "danger" | "success" | "warning" | "muted" | null | undefined;
|
|
1492
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
1493
1493
|
pressed?: boolean | null | undefined;
|
|
1494
1494
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1495
1495
|
declare const chipCountVariants: (props?: ({
|
|
1496
|
-
tone?: "
|
|
1497
|
-
size?: "
|
|
1496
|
+
tone?: "accent" | "neutral" | "danger" | "success" | "warning" | "muted" | null | undefined;
|
|
1497
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
1498
1498
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1499
1499
|
type ChipVariant = NonNullable<VariantProps<typeof chipVariants>["variant"]>;
|
|
1500
1500
|
type ChipTone = NonNullable<VariantProps<typeof chipVariants>["tone"]>;
|
|
@@ -1508,7 +1508,7 @@ interface ChipProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>,
|
|
|
1508
1508
|
declare const Chip: React.ForwardRefExoticComponent<ChipProps & React.RefAttributes<HTMLButtonElement>>;
|
|
1509
1509
|
|
|
1510
1510
|
declare const emptyStateBaseVariants: (props?: ({
|
|
1511
|
-
size?: "
|
|
1511
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
1512
1512
|
bordered?: boolean | null | undefined;
|
|
1513
1513
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1514
1514
|
type EmptyStateTone = "neutral" | "muted" | "raised";
|
|
@@ -1519,7 +1519,7 @@ interface EmptyStateVariantOptions extends VariantProps<typeof emptyStateBaseVar
|
|
|
1519
1519
|
}
|
|
1520
1520
|
declare function emptyStateVariants({ size, tone, surface, bordered, className, }?: EmptyStateVariantOptions): string;
|
|
1521
1521
|
declare const emptyStateIconVariants: (props?: ({
|
|
1522
|
-
size?: "
|
|
1522
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
1523
1523
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1524
1524
|
type EmptyStateSize = NonNullable<VariantProps<typeof emptyStateBaseVariants>["size"]>;
|
|
1525
1525
|
interface EmptyStateProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title">, VariantProps<typeof emptyStateBaseVariants> {
|
|
@@ -1538,7 +1538,7 @@ interface EmptyStateProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "ti
|
|
|
1538
1538
|
declare const EmptyState: React.ForwardRefExoticComponent<EmptyStateProps & React.RefAttributes<HTMLDivElement>>;
|
|
1539
1539
|
|
|
1540
1540
|
declare const errorStateVariants: (props?: ({
|
|
1541
|
-
size?: "
|
|
1541
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
1542
1542
|
surface?: SurfaceLevel | null | undefined;
|
|
1543
1543
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1544
1544
|
interface ErrorStateProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title">, VariantProps<typeof errorStateVariants> {
|
|
@@ -1558,7 +1558,7 @@ declare const skeletonVariants: (props?: ({
|
|
|
1558
1558
|
shape?: "text" | "block" | "circle" | null | undefined;
|
|
1559
1559
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1560
1560
|
declare const spinnerVariants: (props?: ({
|
|
1561
|
-
size?: "
|
|
1561
|
+
size?: "md" | "sm" | "lg" | 16 | 24 | 32 | null | undefined;
|
|
1562
1562
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1563
1563
|
interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof skeletonVariants> {
|
|
1564
1564
|
}
|
|
@@ -1591,7 +1591,7 @@ interface SpinnerProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
|
1591
1591
|
declare const Spinner: React.ForwardRefExoticComponent<SpinnerProps & React.RefAttributes<HTMLSpanElement>>;
|
|
1592
1592
|
|
|
1593
1593
|
declare const iconButtonCva: (props?: ({
|
|
1594
|
-
size?: "
|
|
1594
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
1595
1595
|
pressed?: boolean | null | undefined;
|
|
1596
1596
|
appearance?: "filled" | "outline" | "ghost" | null | undefined;
|
|
1597
1597
|
tone?: "primary" | "neutral" | "danger" | null | undefined;
|
|
@@ -1781,7 +1781,7 @@ interface ActionFooterProps extends Omit<React.HTMLAttributes<HTMLDivElement>, '
|
|
|
1781
1781
|
declare const ActionFooter: React.ForwardRefExoticComponent<ActionFooterProps & React.RefAttributes<HTMLDivElement>>;
|
|
1782
1782
|
|
|
1783
1783
|
declare const toastVariants: (props?: ({
|
|
1784
|
-
variant?: "
|
|
1784
|
+
variant?: "default" | "error" | "success" | "info" | "warning" | null | undefined;
|
|
1785
1785
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1786
1786
|
declare const toastViewportVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
1787
1787
|
type ToastVariant = NonNullable<VariantProps<typeof toastVariants>['variant']>;
|
|
@@ -1835,19 +1835,19 @@ interface ToastProviderProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
1835
1835
|
declare function ToastProvider({ children, maxToasts, className, ...props }: ToastProviderProps): react_jsx_runtime.JSX.Element;
|
|
1836
1836
|
|
|
1837
1837
|
declare const otpFieldVariants: (props?: ({
|
|
1838
|
-
size?: "
|
|
1838
|
+
size?: "default" | "compact" | null | undefined;
|
|
1839
1839
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1840
1840
|
declare const otpFieldGroupVariants: (props?: ({
|
|
1841
|
-
size?: "
|
|
1841
|
+
size?: "default" | "compact" | null | undefined;
|
|
1842
1842
|
fluid?: boolean | null | undefined;
|
|
1843
1843
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1844
1844
|
declare const otpCellVariants: (props?: ({
|
|
1845
|
-
size?: "
|
|
1845
|
+
size?: "default" | "compact" | null | undefined;
|
|
1846
1846
|
fluid?: boolean | null | undefined;
|
|
1847
1847
|
surface?: SurfaceLevel | null | undefined;
|
|
1848
1848
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1849
1849
|
declare const otpFieldMessageVariants: (props?: ({
|
|
1850
|
-
state?: "
|
|
1850
|
+
state?: "default" | "error" | null | undefined;
|
|
1851
1851
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1852
1852
|
type OTPFieldSize = NonNullable<VariantProps<typeof otpCellVariants>["size"]>;
|
|
1853
1853
|
interface OTPFieldProps extends Omit<React.FieldsetHTMLAttributes<HTMLFieldSetElement>, "onChange" | "children" | "defaultValue" | "value">, VariantProps<typeof otpFieldVariants> {
|
|
@@ -1874,10 +1874,10 @@ interface OTPFieldProps extends Omit<React.FieldsetHTMLAttributes<HTMLFieldSetEl
|
|
|
1874
1874
|
declare const OTPField: React.ForwardRefExoticComponent<OTPFieldProps & React.RefAttributes<HTMLFieldSetElement>>;
|
|
1875
1875
|
|
|
1876
1876
|
declare const searchFieldVariants: (props?: ({
|
|
1877
|
-
size?: "
|
|
1877
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
1878
1878
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1879
1879
|
declare const searchFieldInputVariants: (props?: ({
|
|
1880
|
-
size?: "
|
|
1880
|
+
size?: "md" | "sm" | "lg" | null | undefined;
|
|
1881
1881
|
hasClear?: boolean | null | undefined;
|
|
1882
1882
|
surface?: SurfaceLevel | null | undefined;
|
|
1883
1883
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
@@ -1901,14 +1901,14 @@ declare const checkboxVariants: (props?: ({
|
|
|
1901
1901
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1902
1902
|
declare const checkboxRootVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
|
|
1903
1903
|
declare const checkboxBoxVariants: (props?: ({
|
|
1904
|
-
size?: "
|
|
1904
|
+
size?: "md" | "sm" | null | undefined;
|
|
1905
1905
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1906
1906
|
declare const checkboxGroupItemVariants: (props?: ({
|
|
1907
|
-
appearance?: "
|
|
1907
|
+
appearance?: "plain" | "card" | null | undefined;
|
|
1908
1908
|
density?: "compact" | "comfortable" | null | undefined;
|
|
1909
1909
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1910
1910
|
declare const checkboxGroupBoxVariants: (props?: ({
|
|
1911
|
-
appearance?: "
|
|
1911
|
+
appearance?: "plain" | "card" | null | undefined;
|
|
1912
1912
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1913
1913
|
type CheckboxSize = NonNullable<VariantProps<typeof checkboxBoxVariants>["size"]>;
|
|
1914
1914
|
type CheckboxCheckedState = React.ComponentProps<typeof Checkbox$1.Root>["checked"];
|
|
@@ -1933,7 +1933,7 @@ interface CheckboxProps extends Omit<React.ComponentPropsWithoutRef<typeof Check
|
|
|
1933
1933
|
declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLButtonElement>>;
|
|
1934
1934
|
|
|
1935
1935
|
declare const checkboxGroupVariants: (props?: ({
|
|
1936
|
-
appearance?: "
|
|
1936
|
+
appearance?: "plain" | "card" | null | undefined;
|
|
1937
1937
|
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
1938
1938
|
columns?: "one" | "two" | "three" | null | undefined;
|
|
1939
1939
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
@@ -1954,16 +1954,16 @@ interface CheckboxGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
|
|
|
1954
1954
|
declare const CheckboxGroup: React.ForwardRefExoticComponent<CheckboxGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
1955
1955
|
|
|
1956
1956
|
declare const radioGroupVariants: (props?: ({
|
|
1957
|
-
appearance?: "
|
|
1957
|
+
appearance?: "plain" | "card" | null | undefined;
|
|
1958
1958
|
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
1959
1959
|
columns?: "one" | "two" | "three" | null | undefined;
|
|
1960
1960
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1961
1961
|
declare const radioVariants: (props?: ({
|
|
1962
|
-
appearance?: "
|
|
1962
|
+
appearance?: "plain" | "card" | null | undefined;
|
|
1963
1963
|
density?: "compact" | "comfortable" | null | undefined;
|
|
1964
1964
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1965
1965
|
declare const radioControlVariants: (props?: ({
|
|
1966
|
-
appearance?: "
|
|
1966
|
+
appearance?: "plain" | "card" | null | undefined;
|
|
1967
1967
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
1968
1968
|
type RadioGroupAppearance = NonNullable<VariantProps<typeof radioGroupVariants>["appearance"]>;
|
|
1969
1969
|
type RadioGroupColumns = NonNullable<VariantProps<typeof radioGroupVariants>["columns"]>;
|
|
@@ -2055,11 +2055,11 @@ declare function TreeView<T extends TreeNode>({ nodes, selectedId, selectionAria
|
|
|
2055
2055
|
/**
|
|
2056
2056
|
* OLUN 브랜드 로고.
|
|
2057
2057
|
*
|
|
2058
|
-
* - symbol: O
|
|
2059
|
-
* - wordmark:
|
|
2060
|
-
* -
|
|
2058
|
+
* - symbol: O 링 + 우하단 accent-pop 궤도 점 (32px 초과/이하 두 광학 비율)
|
|
2059
|
+
* - wordmark: Montserrat 700 윤곽 `OLUN` + 단독일 때 accent-pop 마침표
|
|
2060
|
+
* - MASTER: symbol과 함께 쓰면 wordmark의 "."를 뺀다. 궤도 점이 마침표를 맡는다(점 두 개 경쟁 방지).
|
|
2061
2061
|
*
|
|
2062
|
-
*
|
|
2062
|
+
* 기하는 `@olundot/tokens/brand`의 정본 데이터(scripts/brand/build-brand-svg.mjs가 생성)에서만 온다.
|
|
2063
2063
|
*/
|
|
2064
2064
|
interface OlunSymbolProps {
|
|
2065
2065
|
/** 심볼 크기 px (기본 28) */
|
|
@@ -2068,9 +2068,15 @@ interface OlunSymbolProps {
|
|
|
2068
2068
|
}
|
|
2069
2069
|
declare function OlunSymbol({ size, className }: OlunSymbolProps): react_jsx_runtime.JSX.Element;
|
|
2070
2070
|
interface OlunLogoProps {
|
|
2071
|
-
/**
|
|
2071
|
+
/**
|
|
2072
|
+
* MASTER 크기. 심볼 240 상자 기준 px (기본 28).
|
|
2073
|
+
* 워드마크와 간격은 고정 비율로 함께 커진다. 32px 이하는 아이콘 비율 심볼을 쓴다.
|
|
2074
|
+
*/
|
|
2072
2075
|
symbolSize?: number;
|
|
2073
|
-
/**
|
|
2076
|
+
/**
|
|
2077
|
+
* 워드마크만 쓸 때(`showSymbol={false}`) 글자 크기 px (기본 18).
|
|
2078
|
+
* MASTER에서는 쓰지 않는다. MASTER 크기는 `symbolSize` 하나로 정한다.
|
|
2079
|
+
*/
|
|
2074
2080
|
fontSize?: number;
|
|
2075
2081
|
/** 심볼 표시 여부 (기본 true) */
|
|
2076
2082
|
showSymbol?: boolean;
|
package/dist/index.js
CHANGED
|
@@ -3672,6 +3672,7 @@ function useOverlayAction({
|
|
|
3672
3672
|
|
|
3673
3673
|
// src/lib/use-return-focus.ts
|
|
3674
3674
|
import * as React21 from "react";
|
|
3675
|
+
var closingOverlay = '[role="dialog"][data-state="closed"], [role="alertdialog"][data-state="closed"]';
|
|
3675
3676
|
function useReturnFocus() {
|
|
3676
3677
|
const returnTo = React21.useRef(null);
|
|
3677
3678
|
const onOpenAutoFocus = React21.useCallback((event) => {
|
|
@@ -3687,7 +3688,9 @@ function useReturnFocus() {
|
|
|
3687
3688
|
returnTo.current = null;
|
|
3688
3689
|
if (!target?.isConnected) return;
|
|
3689
3690
|
const active = document.activeElement;
|
|
3690
|
-
if (active instanceof HTMLElement && active !== document.body && active !== target)
|
|
3691
|
+
if (active instanceof HTMLElement && active !== document.body && active !== target && !active.closest(closingOverlay)) {
|
|
3692
|
+
return;
|
|
3693
|
+
}
|
|
3691
3694
|
event.preventDefault();
|
|
3692
3695
|
target.focus();
|
|
3693
3696
|
}, []);
|
|
@@ -10569,36 +10572,46 @@ function TreeView({
|
|
|
10569
10572
|
}
|
|
10570
10573
|
|
|
10571
10574
|
// src/components/branding/olun-logo.tsx
|
|
10572
|
-
import {
|
|
10573
|
-
|
|
10574
|
-
var
|
|
10575
|
+
import { OLUN_MASTER, OLUN_SYMBOL, OLUN_WORDMARK } from "@olundot/tokens/brand";
|
|
10576
|
+
import { Fragment as Fragment13, jsx as jsx64, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
10577
|
+
var ACCENT_FILL = "var(--accent-pop)";
|
|
10578
|
+
var INK = { color: "var(--text-primary)" };
|
|
10579
|
+
var INK_TIGHT = { ...INK, display: "block", overflow: "visible" };
|
|
10580
|
+
function symbolGeometry(size) {
|
|
10581
|
+
return size > OLUN_SYMBOL.smallMax ? OLUN_SYMBOL.large : OLUN_SYMBOL.small;
|
|
10582
|
+
}
|
|
10583
|
+
function SymbolCircles({ size }) {
|
|
10584
|
+
const { ring } = OLUN_SYMBOL;
|
|
10585
|
+
const g = symbolGeometry(size);
|
|
10586
|
+
return /* @__PURE__ */ jsxs50(Fragment13, { children: [
|
|
10587
|
+
/* @__PURE__ */ jsx64(
|
|
10588
|
+
"circle",
|
|
10589
|
+
{
|
|
10590
|
+
className: "olun-logo__ring",
|
|
10591
|
+
cx: ring.cx,
|
|
10592
|
+
cy: ring.cy,
|
|
10593
|
+
r: ring.r,
|
|
10594
|
+
stroke: "currentColor",
|
|
10595
|
+
strokeWidth: g.stroke,
|
|
10596
|
+
fill: "none"
|
|
10597
|
+
}
|
|
10598
|
+
),
|
|
10599
|
+
/* @__PURE__ */ jsx64("circle", { className: "olun-accent olun-logo__dot", cx: g.dot.cx, cy: g.dot.cy, r: g.dot.r, fill: ACCENT_FILL })
|
|
10600
|
+
] });
|
|
10601
|
+
}
|
|
10575
10602
|
function OlunSymbol({ size = 28, className }) {
|
|
10576
|
-
|
|
10577
|
-
return /* @__PURE__ */ jsxs50(
|
|
10603
|
+
return /* @__PURE__ */ jsx64(
|
|
10578
10604
|
"svg",
|
|
10579
10605
|
{
|
|
10580
10606
|
width: size,
|
|
10581
10607
|
height: size,
|
|
10582
|
-
viewBox:
|
|
10608
|
+
viewBox: `0 0 ${OLUN_SYMBOL.box} ${OLUN_SYMBOL.box}`,
|
|
10583
10609
|
fill: "none",
|
|
10584
10610
|
xmlns: "http://www.w3.org/2000/svg",
|
|
10585
10611
|
className,
|
|
10612
|
+
style: INK,
|
|
10586
10613
|
"aria-hidden": "true",
|
|
10587
|
-
children:
|
|
10588
|
-
/* @__PURE__ */ jsx64(
|
|
10589
|
-
"circle",
|
|
10590
|
-
{
|
|
10591
|
-
cx: "108",
|
|
10592
|
-
cy: "120",
|
|
10593
|
-
r: "60",
|
|
10594
|
-
stroke: "currentColor",
|
|
10595
|
-
strokeWidth: g.stroke,
|
|
10596
|
-
fill: "none",
|
|
10597
|
-
style: { color: "var(--text-primary)" }
|
|
10598
|
-
}
|
|
10599
|
-
),
|
|
10600
|
-
/* @__PURE__ */ jsx64("circle", { cx: g.dotX, cy: g.dotY, r: g.dotR, fill: "var(--accent-pop)" })
|
|
10601
|
-
]
|
|
10614
|
+
children: /* @__PURE__ */ jsx64(SymbolCircles, { size })
|
|
10602
10615
|
}
|
|
10603
10616
|
);
|
|
10604
10617
|
}
|
|
@@ -10608,33 +10621,61 @@ function OlunLogo({
|
|
|
10608
10621
|
showSymbol = true,
|
|
10609
10622
|
className
|
|
10610
10623
|
}) {
|
|
10624
|
+
if (!showSymbol) {
|
|
10625
|
+
const { full } = OLUN_WORDMARK;
|
|
10626
|
+
const height2 = fontSize * full.height / OLUN_WORDMARK.unitsPerEm;
|
|
10627
|
+
return /* @__PURE__ */ jsxs50(
|
|
10628
|
+
"svg",
|
|
10629
|
+
{
|
|
10630
|
+
width: height2 * full.width / full.height,
|
|
10631
|
+
height: height2,
|
|
10632
|
+
viewBox: full.viewBox,
|
|
10633
|
+
fill: "none",
|
|
10634
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
10635
|
+
className,
|
|
10636
|
+
style: INK_TIGHT,
|
|
10637
|
+
role: "img",
|
|
10638
|
+
"aria-label": "OLUN.",
|
|
10639
|
+
children: [
|
|
10640
|
+
/* @__PURE__ */ jsx64("path", { className: "olun-logo__wordmark", fill: "currentColor", d: full.letters }),
|
|
10641
|
+
/* @__PURE__ */ jsx64(
|
|
10642
|
+
"circle",
|
|
10643
|
+
{
|
|
10644
|
+
className: "olun-accent olun-logo__period",
|
|
10645
|
+
cx: full.period.cx,
|
|
10646
|
+
cy: full.period.cy,
|
|
10647
|
+
r: full.period.r,
|
|
10648
|
+
fill: ACCENT_FILL
|
|
10649
|
+
}
|
|
10650
|
+
)
|
|
10651
|
+
]
|
|
10652
|
+
}
|
|
10653
|
+
);
|
|
10654
|
+
}
|
|
10655
|
+
const layout = symbolSize > OLUN_SYMBOL.smallMax ? OLUN_MASTER.large : OLUN_MASTER.small;
|
|
10656
|
+
const height = symbolSize * layout.height / (OLUN_SYMBOL.box * layout.symbol.scale);
|
|
10611
10657
|
return /* @__PURE__ */ jsxs50(
|
|
10612
|
-
"
|
|
10658
|
+
"svg",
|
|
10613
10659
|
{
|
|
10660
|
+
width: height * layout.width / layout.height,
|
|
10661
|
+
height,
|
|
10662
|
+
viewBox: layout.viewBox,
|
|
10663
|
+
fill: "none",
|
|
10664
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
10614
10665
|
className,
|
|
10615
|
-
style:
|
|
10616
|
-
|
|
10617
|
-
|
|
10618
|
-
gap: "var(--space-3)"
|
|
10619
|
-
},
|
|
10666
|
+
style: INK_TIGHT,
|
|
10667
|
+
role: "img",
|
|
10668
|
+
"aria-label": "OLUN",
|
|
10620
10669
|
children: [
|
|
10621
|
-
|
|
10622
|
-
|
|
10623
|
-
"span",
|
|
10670
|
+
/* @__PURE__ */ jsx64(
|
|
10671
|
+
"g",
|
|
10624
10672
|
{
|
|
10625
|
-
|
|
10626
|
-
|
|
10627
|
-
|
|
10628
|
-
fontSize: `${fontSize}px`,
|
|
10629
|
-
letterSpacing: "-0.02em",
|
|
10630
|
-
color: "var(--text-primary)"
|
|
10631
|
-
},
|
|
10632
|
-
children: [
|
|
10633
|
-
"OLUN",
|
|
10634
|
-
!showSymbol && /* @__PURE__ */ jsx64("span", { style: { color: "var(--accent)" }, children: "." })
|
|
10635
|
-
]
|
|
10673
|
+
className: "olun-logo__symbol",
|
|
10674
|
+
transform: `translate(${layout.symbol.x} ${layout.symbol.y}) scale(${layout.symbol.scale})`,
|
|
10675
|
+
children: /* @__PURE__ */ jsx64(SymbolCircles, { size: symbolSize })
|
|
10636
10676
|
}
|
|
10637
|
-
)
|
|
10677
|
+
),
|
|
10678
|
+
/* @__PURE__ */ jsx64("path", { className: "olun-logo__wordmark", fill: "currentColor", d: layout.letters })
|
|
10638
10679
|
]
|
|
10639
10680
|
}
|
|
10640
10681
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@olundot/ui",
|
|
3
|
-
"version": "0.20.0-next.
|
|
3
|
+
"version": "0.20.0-next.3",
|
|
4
4
|
"description": "OLUN. shared React UI components built on OLUN design tokens",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"lucide-react": "^1.8.0",
|
|
45
45
|
"radix-ui": "^1.4.3",
|
|
46
46
|
"tailwind-merge": "^3.5.0",
|
|
47
|
-
"@olundot/tokens": "^0.18.0-next.
|
|
47
|
+
"@olundot/tokens": "^0.18.0-next.1"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"react": ">=18",
|