@x-plat/design-system 0.6.1 → 0.7.1
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/dist/components/Accordion/index.css +10 -3
- package/dist/components/Alert/index.css +7 -0
- package/dist/components/AutoResizeTextArea/index.css +3 -0
- package/dist/components/Avatar/index.css +13 -1
- package/dist/components/Badge/index.cjs +10 -7
- package/dist/components/Badge/index.css +26 -15
- package/dist/components/Badge/index.d.cts +3 -19
- package/dist/components/Badge/index.d.ts +3 -19
- package/dist/components/Badge/index.js +8 -6
- package/dist/components/Box/index.css +8 -5
- package/dist/components/Breadcrumb/index.css +5 -1
- package/dist/components/Button/index.css +10 -1
- package/dist/components/Calendar/index.css +10 -6
- package/dist/components/CardTab/index.css +14 -2
- package/dist/components/Chart/index.css +32 -11
- package/dist/components/ChatInput/index.css +6 -0
- package/dist/components/CheckBox/index.css +10 -1
- package/dist/components/Chip/index.css +12 -0
- package/dist/components/DatePicker/index.css +51 -12
- package/dist/components/Drawer/index.css +14 -7
- package/dist/components/Dropdown/index.css +5 -1
- package/dist/components/Editor/index.css +49 -10
- package/dist/components/EmptyState/index.css +9 -2
- package/dist/components/FileUpload/index.css +9 -2
- package/dist/components/HtmlTypeWriter/index.cjs +2 -0
- package/dist/components/HtmlTypeWriter/index.css +13 -1
- package/dist/components/HtmlTypeWriter/index.d.cts +3 -3
- package/dist/components/HtmlTypeWriter/index.d.ts +3 -3
- package/dist/components/HtmlTypeWriter/index.js +1 -0
- package/dist/components/ImageSelector/index.css +8 -0
- package/dist/components/Input/index.css +12 -0
- package/dist/components/Modal/index.css +1 -1
- package/dist/components/NotificationBadge/index.cjs +68 -0
- package/dist/components/NotificationBadge/index.css +75 -0
- package/dist/components/NotificationBadge/index.d.cts +47 -0
- package/dist/components/NotificationBadge/index.d.ts +47 -0
- package/dist/components/NotificationBadge/index.js +40 -0
- package/dist/components/Pagination/index.css +25 -1
- package/dist/components/PopOver/index.css +1 -1
- package/dist/components/Progress/index.css +5 -2
- package/dist/components/Radio/index.css +9 -0
- package/dist/components/Select/index.css +20 -3
- package/dist/components/Steps/index.css +14 -4
- package/dist/components/Switch/index.css +1 -1
- package/dist/components/Tab/index.css +16 -1
- package/dist/components/Table/index.cjs +6 -1
- package/dist/components/Table/index.css +12 -0
- package/dist/components/Table/index.d.cts +4 -0
- package/dist/components/Table/index.d.ts +4 -0
- package/dist/components/Table/index.js +6 -1
- package/dist/components/Tag/index.css +12 -0
- package/dist/components/TextArea/index.css +9 -0
- package/dist/components/Toast/index.css +8 -1
- package/dist/components/Tooltip/index.css +8 -4
- package/dist/components/Video/index.css +30 -19
- package/dist/components/index.cjs +274 -265
- package/dist/components/index.css +547 -162
- package/dist/components/index.d.cts +2 -2
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.js +272 -265
- package/dist/index.cjs +274 -265
- package/dist/index.css +547 -162
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +272 -265
- package/dist/layout/index.css +40 -0
- package/guidelines/AGENT_PROMPT.md +1 -1
- package/guidelines/Guidelines.md +1 -1
- package/guidelines/components/accordion.md +1 -1
- package/guidelines/components/avatar.md +1 -1
- package/guidelines/components/card.md +1 -1
- package/guidelines/components/chart.md +1 -1
- package/guidelines/components/data-display.md +4 -4
- package/guidelines/components/dropdown.md +1 -1
- package/guidelines/components/feedback.md +39 -11
- package/guidelines/components/file-media.md +3 -3
- package/guidelines/components/html-typewriter.md +1 -1
- package/guidelines/components/navigation.md +144 -20
- package/guidelines/components/swiper.md +2 -2
- package/guidelines/components/table.md +68 -5
- package/package.json +1 -1
|
@@ -27,18 +27,27 @@
|
|
|
27
27
|
}
|
|
28
28
|
.lib-xplat-input-wrap .lib-xplat-input.sm {
|
|
29
29
|
height: var(--spacing-control-height-sm);
|
|
30
|
+
font-family: var(--semantic-typo-caption-1-r-font);
|
|
30
31
|
font-size: var(--semantic-typo-caption-1-r-size);
|
|
31
32
|
line-height: var(--semantic-typo-caption-1-r-lh);
|
|
33
|
+
font-weight: var(--semantic-typo-caption-1-r-weight);
|
|
34
|
+
letter-spacing: var(--semantic-typo-caption-1-r-ls);
|
|
32
35
|
}
|
|
33
36
|
.lib-xplat-input-wrap .lib-xplat-input.md {
|
|
34
37
|
height: var(--spacing-control-height-md);
|
|
38
|
+
font-family: var(--semantic-typo-label-2-m-font);
|
|
35
39
|
font-size: var(--semantic-typo-label-2-m-size);
|
|
36
40
|
line-height: var(--semantic-typo-label-2-m-lh);
|
|
41
|
+
font-weight: var(--semantic-typo-label-2-m-weight);
|
|
42
|
+
letter-spacing: var(--semantic-typo-label-2-m-ls);
|
|
37
43
|
}
|
|
38
44
|
.lib-xplat-input-wrap .lib-xplat-input.lg {
|
|
39
45
|
height: var(--spacing-control-height-lg);
|
|
46
|
+
font-family: var(--semantic-typo-label-1-m-font);
|
|
40
47
|
font-size: var(--semantic-typo-label-1-m-size);
|
|
41
48
|
line-height: var(--semantic-typo-label-1-m-lh);
|
|
49
|
+
font-weight: var(--semantic-typo-label-1-m-weight);
|
|
50
|
+
letter-spacing: var(--semantic-typo-label-1-m-ls);
|
|
42
51
|
}
|
|
43
52
|
.lib-xplat-input-wrap .lib-xplat-input.disabled {
|
|
44
53
|
background-color: var(--semantic-surface-neutral-disabled);
|
|
@@ -80,8 +89,11 @@
|
|
|
80
89
|
.lib-xplat-input-wrap .lib-xplat-input-validation-wrap > .lib-xplat-input-validation {
|
|
81
90
|
display: flex;
|
|
82
91
|
gap: var(--spacing-space-1);
|
|
92
|
+
font-family: var(--semantic-typo-caption-2-r-font);
|
|
83
93
|
font-size: var(--semantic-typo-caption-2-r-size);
|
|
84
94
|
line-height: var(--semantic-typo-caption-2-r-lh);
|
|
95
|
+
font-weight: var(--semantic-typo-caption-2-r-weight);
|
|
96
|
+
letter-spacing: var(--semantic-typo-caption-2-r-ls);
|
|
85
97
|
align-items: center;
|
|
86
98
|
user-select: none;
|
|
87
99
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/components/NotificationBadge/index.ts
|
|
21
|
+
var NotificationBadge_exports = {};
|
|
22
|
+
__export(NotificationBadge_exports, {
|
|
23
|
+
Badge: () => NotificationBadge_default,
|
|
24
|
+
NotificationBadge: () => NotificationBadge_default
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(NotificationBadge_exports);
|
|
27
|
+
|
|
28
|
+
// ../../node_modules/clsx/dist/clsx.mjs
|
|
29
|
+
function r(e) {
|
|
30
|
+
var t, f, n = "";
|
|
31
|
+
if ("string" == typeof e || "number" == typeof e) n += e;
|
|
32
|
+
else if ("object" == typeof e) if (Array.isArray(e)) {
|
|
33
|
+
var o = e.length;
|
|
34
|
+
for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
|
|
35
|
+
} else for (f in e) e[f] && (n && (n += " "), n += f);
|
|
36
|
+
return n;
|
|
37
|
+
}
|
|
38
|
+
function clsx() {
|
|
39
|
+
for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
|
|
40
|
+
return n;
|
|
41
|
+
}
|
|
42
|
+
var clsx_default = clsx;
|
|
43
|
+
|
|
44
|
+
// src/components/NotificationBadge/NotificationBadge.tsx
|
|
45
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
46
|
+
var NotificationBadge = (props) => {
|
|
47
|
+
const {
|
|
48
|
+
children,
|
|
49
|
+
type = "error",
|
|
50
|
+
count,
|
|
51
|
+
maxCount = 99,
|
|
52
|
+
dot = false,
|
|
53
|
+
size = "md"
|
|
54
|
+
} = props;
|
|
55
|
+
const showBadge = dot || count !== void 0 && count > 0;
|
|
56
|
+
const displayCount = count !== void 0 && count > maxCount ? `${maxCount}+` : count;
|
|
57
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: clsx_default("lib-xplat-notification-badge", size), children: [
|
|
58
|
+
children,
|
|
59
|
+
showBadge && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: clsx_default("badge-indicator", type, { dot }), children: !dot && displayCount })
|
|
60
|
+
] });
|
|
61
|
+
};
|
|
62
|
+
NotificationBadge.displayName = "NotificationBadge";
|
|
63
|
+
var NotificationBadge_default = NotificationBadge;
|
|
64
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
65
|
+
0 && (module.exports = {
|
|
66
|
+
Badge,
|
|
67
|
+
NotificationBadge
|
|
68
|
+
});
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/* src/components/NotificationBadge/notificationBadge.scss */
|
|
2
|
+
.lib-xplat-notification-badge {
|
|
3
|
+
position: relative;
|
|
4
|
+
display: inline-flex;
|
|
5
|
+
}
|
|
6
|
+
.lib-xplat-notification-badge.sm .badge-indicator {
|
|
7
|
+
min-width: var(--spacing-space-4);
|
|
8
|
+
height: var(--spacing-space-4);
|
|
9
|
+
font-family: var(--semantic-typo-caption-2-r-font);
|
|
10
|
+
font-size: var(--semantic-typo-caption-2-r-size);
|
|
11
|
+
line-height: var(--semantic-typo-caption-2-r-lh);
|
|
12
|
+
font-weight: var(--semantic-typo-caption-2-r-weight);
|
|
13
|
+
letter-spacing: var(--semantic-typo-caption-2-r-ls);
|
|
14
|
+
padding: 0 var(--spacing-space-1);
|
|
15
|
+
}
|
|
16
|
+
.lib-xplat-notification-badge.sm .badge-indicator.dot {
|
|
17
|
+
min-width: var(--spacing-space-2);
|
|
18
|
+
height: var(--spacing-space-2);
|
|
19
|
+
}
|
|
20
|
+
.lib-xplat-notification-badge.lg .badge-indicator {
|
|
21
|
+
min-width: var(--spacing-space-6);
|
|
22
|
+
height: var(--spacing-space-6);
|
|
23
|
+
font-family: var(--semantic-typo-caption-1-r-font);
|
|
24
|
+
font-size: var(--semantic-typo-caption-1-r-size);
|
|
25
|
+
line-height: var(--semantic-typo-caption-1-r-lh);
|
|
26
|
+
font-weight: var(--semantic-typo-caption-1-r-weight);
|
|
27
|
+
letter-spacing: var(--semantic-typo-caption-1-r-ls);
|
|
28
|
+
padding: 0 var(--spacing-space-2);
|
|
29
|
+
}
|
|
30
|
+
.lib-xplat-notification-badge.lg .badge-indicator.dot {
|
|
31
|
+
min-width: var(--spacing-space-2);
|
|
32
|
+
height: var(--spacing-space-2);
|
|
33
|
+
}
|
|
34
|
+
.lib-xplat-notification-badge .badge-indicator {
|
|
35
|
+
position: absolute;
|
|
36
|
+
top: 0;
|
|
37
|
+
right: 0;
|
|
38
|
+
transform: translate(50%, -50%);
|
|
39
|
+
display: flex;
|
|
40
|
+
align-items: center;
|
|
41
|
+
justify-content: center;
|
|
42
|
+
border-radius: var(--spacing-radius-full);
|
|
43
|
+
color: var(--semantic-text-inverse);
|
|
44
|
+
font-family: var(--semantic-typo-caption-2-sb-font);
|
|
45
|
+
font-size: var(--semantic-typo-caption-2-sb-size);
|
|
46
|
+
line-height: var(--semantic-typo-caption-2-sb-lh);
|
|
47
|
+
font-weight: var(--semantic-typo-caption-2-sb-weight);
|
|
48
|
+
letter-spacing: var(--semantic-typo-caption-2-sb-ls);
|
|
49
|
+
line-height: 1;
|
|
50
|
+
min-width: var(--spacing-space-4);
|
|
51
|
+
height: var(--spacing-space-4);
|
|
52
|
+
padding: 0 var(--spacing-space-1);
|
|
53
|
+
box-sizing: border-box;
|
|
54
|
+
}
|
|
55
|
+
.lib-xplat-notification-badge .badge-indicator.dot {
|
|
56
|
+
min-width: var(--spacing-space-2);
|
|
57
|
+
height: var(--spacing-space-2);
|
|
58
|
+
padding: 0;
|
|
59
|
+
}
|
|
60
|
+
.lib-xplat-notification-badge .badge-indicator.error {
|
|
61
|
+
background-color: var(--semantic-surface-error-default);
|
|
62
|
+
}
|
|
63
|
+
.lib-xplat-notification-badge .badge-indicator.success {
|
|
64
|
+
background-color: var(--semantic-surface-success-default);
|
|
65
|
+
}
|
|
66
|
+
.lib-xplat-notification-badge .badge-indicator.warning {
|
|
67
|
+
background-color: var(--semantic-surface-warning-default);
|
|
68
|
+
color: var(--semantic-text-primary);
|
|
69
|
+
}
|
|
70
|
+
.lib-xplat-notification-badge .badge-indicator.info {
|
|
71
|
+
background-color: var(--semantic-surface-info-default);
|
|
72
|
+
}
|
|
73
|
+
.lib-xplat-notification-badge .badge-indicator.brand {
|
|
74
|
+
background-color: var(--semantic-surface-brand-default);
|
|
75
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
type NotificationBadgeType = "error" | "success" | "warning" | "info" | "brand";
|
|
5
|
+
type NotificationBadgeSize = "sm" | "md" | "lg";
|
|
6
|
+
/**
|
|
7
|
+
* 알림 뱃지 — 다른 요소의 **우상단 모서리에 얹히는** 작은 원.
|
|
8
|
+
*
|
|
9
|
+
* 아이콘이나 버튼 위에 읽지 않은 개수나 상태 점을 표시한다.
|
|
10
|
+
* 뱃지 자체는 `.badge-indicator` 하나이고, `children` 은 그 뱃지가 올라탈 대상이다.
|
|
11
|
+
*
|
|
12
|
+
* ```tsx
|
|
13
|
+
* <NotificationBadge count={3}><BellIcon /></NotificationBadge>
|
|
14
|
+
* <NotificationBadge dot type="error"><UserIcon /></NotificationBadge>
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* 알약 모양 상태 라벨이 필요하면 이 컴포넌트가 아니라 `Chip`(정보 표시) 또는
|
|
18
|
+
* `Tag`(제거 가능)를 쓴다. `<NotificationBadge>진행중</NotificationBadge>` 처럼
|
|
19
|
+
* 쓰면 `count`/`dot` 이 없어 뱃지가 렌더되지 않고 글자만 그대로 통과한다.
|
|
20
|
+
*/
|
|
21
|
+
interface NotificationBadgeProps {
|
|
22
|
+
/**
|
|
23
|
+
* 뱃지가 올라탈 **대상**. 뱃지에 표시할 내용이 아니다.
|
|
24
|
+
* 보통 아이콘이나 버튼을 넣는다.
|
|
25
|
+
*/
|
|
26
|
+
children: React.ReactNode;
|
|
27
|
+
/**
|
|
28
|
+
* 표시할 개수. `count` 나 `dot` 중 하나가 없으면 **뱃지가 렌더되지 않는다**
|
|
29
|
+
* (`type` 을 줘도 아무 일도 일어나지 않는다).
|
|
30
|
+
* `count={0}` 도 표시하지 않는다 — 읽지 않은 항목이 없으면 숨기는 동작이다.
|
|
31
|
+
*/
|
|
32
|
+
count?: number;
|
|
33
|
+
/** 개수 대신 점만 표시한다. `count` 없이 "새 항목 있음" 만 알릴 때 쓴다 */
|
|
34
|
+
dot?: boolean;
|
|
35
|
+
/** 뱃지 색. 뱃지가 렌더될 때만 의미가 있다 */
|
|
36
|
+
type?: NotificationBadgeType;
|
|
37
|
+
/** `count` 가 이 값을 넘으면 `99+` 처럼 표시한다 */
|
|
38
|
+
maxCount?: number;
|
|
39
|
+
/** 뱃지 크기. 대상의 크기가 아니다 */
|
|
40
|
+
size?: NotificationBadgeSize;
|
|
41
|
+
}
|
|
42
|
+
declare const NotificationBadge: {
|
|
43
|
+
(props: NotificationBadgeProps): react_jsx_runtime.JSX.Element;
|
|
44
|
+
displayName: string;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export { NotificationBadge as Badge, NotificationBadge };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
|
|
4
|
+
type NotificationBadgeType = "error" | "success" | "warning" | "info" | "brand";
|
|
5
|
+
type NotificationBadgeSize = "sm" | "md" | "lg";
|
|
6
|
+
/**
|
|
7
|
+
* 알림 뱃지 — 다른 요소의 **우상단 모서리에 얹히는** 작은 원.
|
|
8
|
+
*
|
|
9
|
+
* 아이콘이나 버튼 위에 읽지 않은 개수나 상태 점을 표시한다.
|
|
10
|
+
* 뱃지 자체는 `.badge-indicator` 하나이고, `children` 은 그 뱃지가 올라탈 대상이다.
|
|
11
|
+
*
|
|
12
|
+
* ```tsx
|
|
13
|
+
* <NotificationBadge count={3}><BellIcon /></NotificationBadge>
|
|
14
|
+
* <NotificationBadge dot type="error"><UserIcon /></NotificationBadge>
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* 알약 모양 상태 라벨이 필요하면 이 컴포넌트가 아니라 `Chip`(정보 표시) 또는
|
|
18
|
+
* `Tag`(제거 가능)를 쓴다. `<NotificationBadge>진행중</NotificationBadge>` 처럼
|
|
19
|
+
* 쓰면 `count`/`dot` 이 없어 뱃지가 렌더되지 않고 글자만 그대로 통과한다.
|
|
20
|
+
*/
|
|
21
|
+
interface NotificationBadgeProps {
|
|
22
|
+
/**
|
|
23
|
+
* 뱃지가 올라탈 **대상**. 뱃지에 표시할 내용이 아니다.
|
|
24
|
+
* 보통 아이콘이나 버튼을 넣는다.
|
|
25
|
+
*/
|
|
26
|
+
children: React.ReactNode;
|
|
27
|
+
/**
|
|
28
|
+
* 표시할 개수. `count` 나 `dot` 중 하나가 없으면 **뱃지가 렌더되지 않는다**
|
|
29
|
+
* (`type` 을 줘도 아무 일도 일어나지 않는다).
|
|
30
|
+
* `count={0}` 도 표시하지 않는다 — 읽지 않은 항목이 없으면 숨기는 동작이다.
|
|
31
|
+
*/
|
|
32
|
+
count?: number;
|
|
33
|
+
/** 개수 대신 점만 표시한다. `count` 없이 "새 항목 있음" 만 알릴 때 쓴다 */
|
|
34
|
+
dot?: boolean;
|
|
35
|
+
/** 뱃지 색. 뱃지가 렌더될 때만 의미가 있다 */
|
|
36
|
+
type?: NotificationBadgeType;
|
|
37
|
+
/** `count` 가 이 값을 넘으면 `99+` 처럼 표시한다 */
|
|
38
|
+
maxCount?: number;
|
|
39
|
+
/** 뱃지 크기. 대상의 크기가 아니다 */
|
|
40
|
+
size?: NotificationBadgeSize;
|
|
41
|
+
}
|
|
42
|
+
declare const NotificationBadge: {
|
|
43
|
+
(props: NotificationBadgeProps): react_jsx_runtime.JSX.Element;
|
|
44
|
+
displayName: string;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export { NotificationBadge as Badge, NotificationBadge };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// ../../node_modules/clsx/dist/clsx.mjs
|
|
2
|
+
function r(e) {
|
|
3
|
+
var t, f, n = "";
|
|
4
|
+
if ("string" == typeof e || "number" == typeof e) n += e;
|
|
5
|
+
else if ("object" == typeof e) if (Array.isArray(e)) {
|
|
6
|
+
var o = e.length;
|
|
7
|
+
for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
|
|
8
|
+
} else for (f in e) e[f] && (n && (n += " "), n += f);
|
|
9
|
+
return n;
|
|
10
|
+
}
|
|
11
|
+
function clsx() {
|
|
12
|
+
for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
|
|
13
|
+
return n;
|
|
14
|
+
}
|
|
15
|
+
var clsx_default = clsx;
|
|
16
|
+
|
|
17
|
+
// src/components/NotificationBadge/NotificationBadge.tsx
|
|
18
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
19
|
+
var NotificationBadge = (props) => {
|
|
20
|
+
const {
|
|
21
|
+
children,
|
|
22
|
+
type = "error",
|
|
23
|
+
count,
|
|
24
|
+
maxCount = 99,
|
|
25
|
+
dot = false,
|
|
26
|
+
size = "md"
|
|
27
|
+
} = props;
|
|
28
|
+
const showBadge = dot || count !== void 0 && count > 0;
|
|
29
|
+
const displayCount = count !== void 0 && count > maxCount ? `${maxCount}+` : count;
|
|
30
|
+
return /* @__PURE__ */ jsxs("div", { className: clsx_default("lib-xplat-notification-badge", size), children: [
|
|
31
|
+
children,
|
|
32
|
+
showBadge && /* @__PURE__ */ jsx("span", { className: clsx_default("badge-indicator", type, { dot }), children: !dot && displayCount })
|
|
33
|
+
] });
|
|
34
|
+
};
|
|
35
|
+
NotificationBadge.displayName = "NotificationBadge";
|
|
36
|
+
var NotificationBadge_default = NotificationBadge;
|
|
37
|
+
export {
|
|
38
|
+
NotificationBadge_default as Badge,
|
|
39
|
+
NotificationBadge_default as NotificationBadge
|
|
40
|
+
};
|
|
@@ -7,12 +7,20 @@
|
|
|
7
7
|
.lib-xplat-pagination.sm .dots {
|
|
8
8
|
width: var(--spacing-control-height-xs);
|
|
9
9
|
height: var(--spacing-control-height-xs);
|
|
10
|
+
font-family: var(--semantic-typo-caption-2-r-font);
|
|
10
11
|
font-size: var(--semantic-typo-caption-2-r-size);
|
|
12
|
+
line-height: var(--semantic-typo-caption-2-r-lh);
|
|
13
|
+
font-weight: var(--semantic-typo-caption-2-r-weight);
|
|
14
|
+
letter-spacing: var(--semantic-typo-caption-2-r-ls);
|
|
11
15
|
}
|
|
12
16
|
.lib-xplat-pagination.sm .page-btn {
|
|
13
17
|
min-width: var(--spacing-control-height-xs);
|
|
14
18
|
height: var(--spacing-control-height-xs);
|
|
19
|
+
font-family: var(--semantic-typo-caption-2-r-font);
|
|
15
20
|
font-size: var(--semantic-typo-caption-2-r-size);
|
|
21
|
+
line-height: var(--semantic-typo-caption-2-r-lh);
|
|
22
|
+
font-weight: var(--semantic-typo-caption-2-r-weight);
|
|
23
|
+
letter-spacing: var(--semantic-typo-caption-2-r-ls);
|
|
16
24
|
}
|
|
17
25
|
.lib-xplat-pagination.sm .page-btn svg {
|
|
18
26
|
font-size: var(--semantic-typo-caption-1-r-size);
|
|
@@ -20,12 +28,20 @@
|
|
|
20
28
|
.lib-xplat-pagination.lg .dots {
|
|
21
29
|
width: var(--spacing-control-height-md);
|
|
22
30
|
height: var(--spacing-control-height-md);
|
|
31
|
+
font-family: var(--semantic-typo-label-2-m-font);
|
|
23
32
|
font-size: var(--semantic-typo-label-2-m-size);
|
|
33
|
+
line-height: var(--semantic-typo-label-2-m-lh);
|
|
34
|
+
font-weight: var(--semantic-typo-label-2-m-weight);
|
|
35
|
+
letter-spacing: var(--semantic-typo-label-2-m-ls);
|
|
24
36
|
}
|
|
25
37
|
.lib-xplat-pagination.lg .page-btn {
|
|
26
38
|
min-width: var(--spacing-control-height-md);
|
|
27
39
|
height: var(--spacing-control-height-md);
|
|
40
|
+
font-family: var(--semantic-typo-label-2-m-font);
|
|
28
41
|
font-size: var(--semantic-typo-label-2-m-size);
|
|
42
|
+
line-height: var(--semantic-typo-label-2-m-lh);
|
|
43
|
+
font-weight: var(--semantic-typo-label-2-m-weight);
|
|
44
|
+
letter-spacing: var(--semantic-typo-label-2-m-ls);
|
|
29
45
|
}
|
|
30
46
|
.lib-xplat-pagination.lg .page-btn svg {
|
|
31
47
|
font-size: var(--semantic-typo-heading-1-m-size);
|
|
@@ -36,7 +52,11 @@
|
|
|
36
52
|
justify-content: center;
|
|
37
53
|
width: var(--spacing-control-height-sm);
|
|
38
54
|
height: var(--spacing-control-height-sm);
|
|
55
|
+
font-family: var(--semantic-typo-caption-1-r-font);
|
|
39
56
|
font-size: var(--semantic-typo-caption-1-r-size);
|
|
57
|
+
line-height: var(--semantic-typo-caption-1-r-lh);
|
|
58
|
+
font-weight: var(--semantic-typo-caption-1-r-weight);
|
|
59
|
+
letter-spacing: var(--semantic-typo-caption-1-r-ls);
|
|
40
60
|
color: var(--semantic-text-tertiary);
|
|
41
61
|
user-select: none;
|
|
42
62
|
}
|
|
@@ -50,7 +70,11 @@
|
|
|
50
70
|
border: none;
|
|
51
71
|
border-radius: var(--spacing-radius-md);
|
|
52
72
|
background: none;
|
|
73
|
+
font-family: var(--semantic-typo-caption-1-r-font);
|
|
53
74
|
font-size: var(--semantic-typo-caption-1-r-size);
|
|
75
|
+
line-height: var(--semantic-typo-caption-1-r-lh);
|
|
76
|
+
font-weight: var(--semantic-typo-caption-1-r-weight);
|
|
77
|
+
letter-spacing: var(--semantic-typo-caption-1-r-ls);
|
|
54
78
|
cursor: pointer;
|
|
55
79
|
color: var(--semantic-text-secondary);
|
|
56
80
|
transition: background-color 0.2s, color 0.2s;
|
|
@@ -64,7 +88,7 @@
|
|
|
64
88
|
}
|
|
65
89
|
.lib-xplat-pagination .page-btn.active {
|
|
66
90
|
color: var(--semantic-text-inverse);
|
|
67
|
-
font-weight:
|
|
91
|
+
font-weight: var(--semantic-typo-caption-1-sb-weight);
|
|
68
92
|
}
|
|
69
93
|
.lib-xplat-pagination .page-btn svg {
|
|
70
94
|
font-size: var(--semantic-typo-label-2-m-size);
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
transition: transform 0.2s ease, opacity 0.2s ease;
|
|
14
14
|
background: var(--semantic-surface-neutral-primary);
|
|
15
15
|
border-radius: var(--spacing-radius-md);
|
|
16
|
-
box-shadow:
|
|
16
|
+
box-shadow: var(--semantic-shadow-md);
|
|
17
17
|
opacity: 0;
|
|
18
18
|
transform: scale(0.8);
|
|
19
19
|
}
|
|
@@ -41,8 +41,11 @@
|
|
|
41
41
|
background-color: var(--semantic-surface-info-default);
|
|
42
42
|
}
|
|
43
43
|
.lib-xplat-progress .label {
|
|
44
|
-
font-
|
|
45
|
-
font-
|
|
44
|
+
font-family: var(--semantic-typo-caption-2-m-font);
|
|
45
|
+
font-size: var(--semantic-typo-caption-2-m-size);
|
|
46
|
+
line-height: var(--semantic-typo-caption-2-m-lh);
|
|
47
|
+
font-weight: var(--semantic-typo-caption-2-m-weight);
|
|
48
|
+
letter-spacing: var(--semantic-typo-caption-2-m-ls);
|
|
46
49
|
color: var(--semantic-text-secondary);
|
|
47
50
|
min-width: 36px;
|
|
48
51
|
text-align: right;
|
|
@@ -20,8 +20,11 @@
|
|
|
20
20
|
height: var(--spacing-space-2);
|
|
21
21
|
}
|
|
22
22
|
.lib-xplat-radio.sm > span {
|
|
23
|
+
font-family: var(--semantic-typo-caption-1-r-font);
|
|
23
24
|
font-size: var(--semantic-typo-caption-1-r-size);
|
|
24
25
|
line-height: var(--semantic-typo-caption-1-r-lh);
|
|
26
|
+
font-weight: var(--semantic-typo-caption-1-r-weight);
|
|
27
|
+
letter-spacing: var(--semantic-typo-caption-1-r-ls);
|
|
25
28
|
}
|
|
26
29
|
.lib-xplat-radio.md > .circle {
|
|
27
30
|
width: var(--spacing-space-5);
|
|
@@ -29,8 +32,11 @@
|
|
|
29
32
|
margin-top: calc((var(--semantic-typo-label-2-m-lh) - var(--spacing-space-5)) / 2);
|
|
30
33
|
}
|
|
31
34
|
.lib-xplat-radio.md > span {
|
|
35
|
+
font-family: var(--semantic-typo-label-2-m-font);
|
|
32
36
|
font-size: var(--semantic-typo-label-2-m-size);
|
|
33
37
|
line-height: var(--semantic-typo-label-2-m-lh);
|
|
38
|
+
font-weight: var(--semantic-typo-label-2-m-weight);
|
|
39
|
+
letter-spacing: var(--semantic-typo-label-2-m-ls);
|
|
34
40
|
}
|
|
35
41
|
.lib-xplat-radio.lg > .circle {
|
|
36
42
|
width: var(--spacing-space-6);
|
|
@@ -41,8 +47,11 @@
|
|
|
41
47
|
height: var(--spacing-space-4);
|
|
42
48
|
}
|
|
43
49
|
.lib-xplat-radio.lg > span {
|
|
50
|
+
font-family: var(--semantic-typo-label-1-m-font);
|
|
44
51
|
font-size: var(--semantic-typo-label-1-m-size);
|
|
45
52
|
line-height: var(--semantic-typo-label-1-m-lh);
|
|
53
|
+
font-weight: var(--semantic-typo-label-1-m-weight);
|
|
54
|
+
letter-spacing: var(--semantic-typo-label-1-m-ls);
|
|
46
55
|
}
|
|
47
56
|
.lib-xplat-radio > .circle {
|
|
48
57
|
border: 2px solid var(--semantic-border-tertiary);
|
|
@@ -11,20 +11,29 @@
|
|
|
11
11
|
.lib-xplat-select.sm .select-trigger {
|
|
12
12
|
height: var(--spacing-control-height-sm);
|
|
13
13
|
padding: 0 var(--spacing-space-2);
|
|
14
|
+
font-family: var(--semantic-typo-caption-1-r-font);
|
|
14
15
|
font-size: var(--semantic-typo-caption-1-r-size);
|
|
15
16
|
line-height: var(--semantic-typo-caption-1-r-lh);
|
|
17
|
+
font-weight: var(--semantic-typo-caption-1-r-weight);
|
|
18
|
+
letter-spacing: var(--semantic-typo-caption-1-r-ls);
|
|
16
19
|
}
|
|
17
20
|
.lib-xplat-select.md .select-trigger {
|
|
18
21
|
height: var(--spacing-control-height-md);
|
|
19
22
|
padding: 0 var(--spacing-space-3);
|
|
23
|
+
font-family: var(--semantic-typo-label-2-m-font);
|
|
20
24
|
font-size: var(--semantic-typo-label-2-m-size);
|
|
21
25
|
line-height: var(--semantic-typo-label-2-m-lh);
|
|
26
|
+
font-weight: var(--semantic-typo-label-2-m-weight);
|
|
27
|
+
letter-spacing: var(--semantic-typo-label-2-m-ls);
|
|
22
28
|
}
|
|
23
29
|
.lib-xplat-select.lg .select-trigger {
|
|
24
30
|
height: var(--spacing-control-height-lg);
|
|
25
31
|
padding: 0 var(--spacing-space-4);
|
|
32
|
+
font-family: var(--semantic-typo-label-1-m-font);
|
|
26
33
|
font-size: var(--semantic-typo-label-1-m-size);
|
|
27
34
|
line-height: var(--semantic-typo-label-1-m-lh);
|
|
35
|
+
font-weight: var(--semantic-typo-label-1-m-weight);
|
|
36
|
+
letter-spacing: var(--semantic-typo-label-1-m-ls);
|
|
28
37
|
}
|
|
29
38
|
.lib-xplat-select .select-trigger {
|
|
30
39
|
cursor: pointer;
|
|
@@ -101,7 +110,7 @@
|
|
|
101
110
|
padding: var(--spacing-space-1) 0;
|
|
102
111
|
border-radius: var(--spacing-radius-md);
|
|
103
112
|
background-color: var(--semantic-surface-neutral-primary);
|
|
104
|
-
box-shadow:
|
|
113
|
+
box-shadow: var(--semantic-shadow-md);
|
|
105
114
|
cursor: default;
|
|
106
115
|
max-height: 220px;
|
|
107
116
|
overflow-y: auto;
|
|
@@ -132,25 +141,33 @@
|
|
|
132
141
|
}
|
|
133
142
|
.lib-xplat-select-content.sm .select-item {
|
|
134
143
|
padding: var(--spacing-space-2) var(--spacing-space-2);
|
|
144
|
+
font-family: var(--semantic-typo-caption-1-r-font);
|
|
135
145
|
font-size: var(--semantic-typo-caption-1-r-size);
|
|
136
146
|
line-height: var(--semantic-typo-caption-1-r-lh);
|
|
147
|
+
font-weight: var(--semantic-typo-caption-1-r-weight);
|
|
148
|
+
letter-spacing: var(--semantic-typo-caption-1-r-ls);
|
|
137
149
|
}
|
|
138
150
|
.lib-xplat-select-content.lg .select-item {
|
|
139
151
|
padding: var(--spacing-space-2) var(--spacing-space-4);
|
|
152
|
+
font-family: var(--semantic-typo-label-1-m-font);
|
|
140
153
|
font-size: var(--semantic-typo-label-1-m-size);
|
|
141
154
|
line-height: var(--semantic-typo-label-1-m-lh);
|
|
155
|
+
font-weight: var(--semantic-typo-label-1-m-weight);
|
|
156
|
+
letter-spacing: var(--semantic-typo-label-1-m-ls);
|
|
142
157
|
}
|
|
143
158
|
.lib-xplat-select-content .select-item {
|
|
144
159
|
padding: var(--spacing-space-2) var(--spacing-space-3);
|
|
160
|
+
font-family: var(--semantic-typo-label-2-m-font);
|
|
145
161
|
font-size: var(--semantic-typo-label-2-m-size);
|
|
146
162
|
line-height: var(--semantic-typo-label-2-m-lh);
|
|
147
|
-
font-weight: var(--semantic-typo-label-
|
|
163
|
+
font-weight: var(--semantic-typo-label-2-m-weight);
|
|
164
|
+
letter-spacing: var(--semantic-typo-label-2-m-ls);
|
|
148
165
|
cursor: pointer;
|
|
149
166
|
transition: background-color 0.15s ease;
|
|
150
167
|
outline: none;
|
|
151
168
|
}
|
|
152
169
|
.lib-xplat-select-content .select-item.is-selected {
|
|
153
|
-
font-weight: var(--semantic-typo-label-
|
|
170
|
+
font-weight: var(--semantic-typo-label-2-sb-weight);
|
|
154
171
|
}
|
|
155
172
|
.lib-xplat-select-content .select-item:hover:not(.disabled) {
|
|
156
173
|
background-color: var(--semantic-surface-neutral-secondary);
|
|
@@ -27,8 +27,11 @@
|
|
|
27
27
|
display: flex;
|
|
28
28
|
align-items: center;
|
|
29
29
|
justify-content: center;
|
|
30
|
-
font-
|
|
31
|
-
font-
|
|
30
|
+
font-family: var(--semantic-typo-caption-1-sb-font);
|
|
31
|
+
font-size: var(--semantic-typo-caption-1-sb-size);
|
|
32
|
+
line-height: var(--semantic-typo-caption-1-sb-lh);
|
|
33
|
+
font-weight: var(--semantic-typo-caption-1-sb-weight);
|
|
34
|
+
letter-spacing: var(--semantic-typo-caption-1-sb-ls);
|
|
32
35
|
flex-shrink: 0;
|
|
33
36
|
z-index: 1;
|
|
34
37
|
transition: background-color 0.2s, color 0.2s;
|
|
@@ -44,12 +47,19 @@
|
|
|
44
47
|
text-align: center;
|
|
45
48
|
}
|
|
46
49
|
.lib-xplat-steps .step-title {
|
|
47
|
-
font-
|
|
48
|
-
font-
|
|
50
|
+
font-family: var(--semantic-typo-caption-1-m-font);
|
|
51
|
+
font-size: var(--semantic-typo-caption-1-m-size);
|
|
52
|
+
line-height: var(--semantic-typo-caption-1-m-lh);
|
|
53
|
+
font-weight: var(--semantic-typo-caption-1-m-weight);
|
|
54
|
+
letter-spacing: var(--semantic-typo-caption-1-m-ls);
|
|
49
55
|
color: var(--semantic-text-primary);
|
|
50
56
|
}
|
|
51
57
|
.lib-xplat-steps .step-description {
|
|
58
|
+
font-family: var(--semantic-typo-caption-2-r-font);
|
|
52
59
|
font-size: var(--semantic-typo-caption-2-r-size);
|
|
60
|
+
line-height: var(--semantic-typo-caption-2-r-lh);
|
|
61
|
+
font-weight: var(--semantic-typo-caption-2-r-weight);
|
|
62
|
+
letter-spacing: var(--semantic-typo-caption-2-r-ls);
|
|
53
63
|
color: var(--semantic-text-tertiary);
|
|
54
64
|
margin-top: 2px;
|
|
55
65
|
}
|
|
@@ -98,6 +98,6 @@
|
|
|
98
98
|
transform: translateY(-50%);
|
|
99
99
|
background-color: var(--semantic-surface-neutral-primary);
|
|
100
100
|
border-radius: var(--spacing-radius-full);
|
|
101
|
-
box-shadow:
|
|
101
|
+
box-shadow: var(--semantic-shadow-sm);
|
|
102
102
|
transition: left 0.25s;
|
|
103
103
|
}
|
|
@@ -14,15 +14,27 @@
|
|
|
14
14
|
}
|
|
15
15
|
.lib-xplat-tab.sm {
|
|
16
16
|
height: var(--spacing-control-height-sm);
|
|
17
|
+
font-family: var(--semantic-typo-caption-1-r-font);
|
|
17
18
|
font-size: var(--semantic-typo-caption-1-r-size);
|
|
19
|
+
line-height: var(--semantic-typo-caption-1-r-lh);
|
|
20
|
+
font-weight: var(--semantic-typo-caption-1-r-weight);
|
|
21
|
+
letter-spacing: var(--semantic-typo-caption-1-r-ls);
|
|
18
22
|
}
|
|
19
23
|
.lib-xplat-tab.md {
|
|
20
24
|
height: var(--spacing-control-height-md);
|
|
25
|
+
font-family: var(--semantic-typo-label-2-m-font);
|
|
21
26
|
font-size: var(--semantic-typo-label-2-m-size);
|
|
27
|
+
line-height: var(--semantic-typo-label-2-m-lh);
|
|
28
|
+
font-weight: var(--semantic-typo-label-2-m-weight);
|
|
29
|
+
letter-spacing: var(--semantic-typo-label-2-m-ls);
|
|
22
30
|
}
|
|
23
31
|
.lib-xplat-tab.lg {
|
|
24
32
|
height: var(--spacing-control-height-lg);
|
|
33
|
+
font-family: var(--semantic-typo-label-1-m-font);
|
|
25
34
|
font-size: var(--semantic-typo-label-1-m-size);
|
|
35
|
+
line-height: var(--semantic-typo-label-1-m-lh);
|
|
36
|
+
font-weight: var(--semantic-typo-label-1-m-weight);
|
|
37
|
+
letter-spacing: var(--semantic-typo-label-1-m-ls);
|
|
26
38
|
}
|
|
27
39
|
.lib-xplat-tab.type-default {
|
|
28
40
|
width: 100%;
|
|
@@ -60,8 +72,11 @@
|
|
|
60
72
|
justify-content: center;
|
|
61
73
|
white-space: nowrap;
|
|
62
74
|
padding: 0 var(--spacing-space-3);
|
|
75
|
+
font-family: var(--semantic-typo-label-2-m-font);
|
|
63
76
|
font-size: var(--semantic-typo-label-2-m-size);
|
|
64
|
-
|
|
77
|
+
line-height: var(--semantic-typo-label-2-m-lh);
|
|
78
|
+
font-weight: var(--semantic-typo-label-2-m-weight);
|
|
79
|
+
letter-spacing: var(--semantic-typo-label-2-m-ls);
|
|
65
80
|
height: 100%;
|
|
66
81
|
background: none;
|
|
67
82
|
border: none;
|
|
@@ -133,6 +133,8 @@ var TableCell = import_react4.default.memo((props) => {
|
|
|
133
133
|
isSticky = false,
|
|
134
134
|
width,
|
|
135
135
|
nowrap = false,
|
|
136
|
+
scope = "col",
|
|
137
|
+
colSpan,
|
|
136
138
|
onClick
|
|
137
139
|
} = props;
|
|
138
140
|
const { registerStickyCell, stickyCells } = useTableRowContext();
|
|
@@ -164,7 +166,8 @@ var TableCell = import_react4.default.memo((props) => {
|
|
|
164
166
|
}
|
|
165
167
|
return () => observer.disconnect();
|
|
166
168
|
}, [isSticky, registerStickyCell, calculateLeft]);
|
|
167
|
-
const
|
|
169
|
+
const isHeaderCell = headContext !== null;
|
|
170
|
+
const CellTag = isHeaderCell ? "th" : "td";
|
|
168
171
|
const isLastSticky = isSticky && stickyCells[stickyCells.length - 1] === cellRef;
|
|
169
172
|
const enableHover = headContext && headContext.cellHover;
|
|
170
173
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
@@ -179,6 +182,8 @@ var TableCell = import_react4.default.memo((props) => {
|
|
|
179
182
|
enableHover && "cell-hover",
|
|
180
183
|
nowrap && "nowrap"
|
|
181
184
|
),
|
|
185
|
+
scope: isHeaderCell ? scope : void 0,
|
|
186
|
+
colSpan,
|
|
182
187
|
style: {
|
|
183
188
|
...isSticky ? { left } : null,
|
|
184
189
|
...width != null ? { width: typeof width === "number" ? `${width}px` : width } : null
|