@x-plat/design-system 0.13.0 → 0.14.0

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.
@@ -32,4 +32,4 @@ type GridColumnConfig = {
32
32
  [K in BreakpointKey]?: GridSpanFor<K>;
33
33
  };
34
34
 
35
- export { BREAKPOINT_KEYS_ORDERED as B, type GridSpanFor as G, type BreakpointKey as a, type GridColumnConfig as b, breakpoints as c, gridColumns as g };
35
+ export { BREAKPOINT_KEYS_ORDERED as B, type GridColumnConfig as G, type BreakpointKey as a, type GridSpanFor as b, breakpoints as c, gridColumns as g };
@@ -32,4 +32,4 @@ type GridColumnConfig = {
32
32
  [K in BreakpointKey]?: GridSpanFor<K>;
33
33
  };
34
34
 
35
- export { BREAKPOINT_KEYS_ORDERED as B, type GridSpanFor as G, type BreakpointKey as a, type GridColumnConfig as b, breakpoints as c, gridColumns as g };
35
+ export { BREAKPOINT_KEYS_ORDERED as B, type GridColumnConfig as G, type BreakpointKey as a, type GridSpanFor as b, breakpoints as c, gridColumns as g };
@@ -1,4 +1,4 @@
1
- export { NotificationBadge as Badge, NotificationBadge, NotificationBadge as default } from '../NotificationBadge/index.cjs';
1
+ export { Badge, Badge as NotificationBadge, Badge as default } from '../NotificationBadge/index.cjs';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../../status-njWqQWFV.cjs';
@@ -1,4 +1,4 @@
1
- export { NotificationBadge as Badge, NotificationBadge, NotificationBadge as default } from '../NotificationBadge/index.js';
1
+ export { Badge, Badge as NotificationBadge, Badge as default } from '../NotificationBadge/index.js';
2
2
  import 'react/jsx-runtime';
3
3
  import 'react';
4
4
  import '../../status-njWqQWFV.js';
@@ -0,0 +1,69 @@
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/ToggleChip/index.ts
21
+ var ToggleChip_exports = {};
22
+ __export(ToggleChip_exports, {
23
+ ToggleChip: () => ToggleChip_default
24
+ });
25
+ module.exports = __toCommonJS(ToggleChip_exports);
26
+
27
+ // ../../node_modules/clsx/dist/clsx.mjs
28
+ function r(e) {
29
+ var t, f, n = "";
30
+ if ("string" == typeof e || "number" == typeof e) n += e;
31
+ else if ("object" == typeof e) if (Array.isArray(e)) {
32
+ var o = e.length;
33
+ for (t = 0; t < o; t++) e[t] && (f = r(e[t])) && (n && (n += " "), n += f);
34
+ } else for (f in e) e[f] && (n && (n += " "), n += f);
35
+ return n;
36
+ }
37
+ function clsx() {
38
+ for (var e, t, f = 0, n = "", o = arguments.length; f < o; f++) (e = arguments[f]) && (t = r(e)) && (n && (n += " "), n += t);
39
+ return n;
40
+ }
41
+ var clsx_default = clsx;
42
+
43
+ // src/components/ToggleChip/ToggleChip.tsx
44
+ var import_jsx_runtime = require("react/jsx-runtime");
45
+ var ToggleChip = (props) => {
46
+ const { children, selected = false, onClick, disabled = false, size = "md" } = props;
47
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
48
+ "button",
49
+ {
50
+ type: "button",
51
+ className: clsx_default(
52
+ "lib-xplat-chip",
53
+ "lib-xplat-toggle-chip",
54
+ size,
55
+ selected ? "selected" : "unselected"
56
+ ),
57
+ "aria-pressed": selected,
58
+ disabled,
59
+ onClick,
60
+ children
61
+ }
62
+ );
63
+ };
64
+ ToggleChip.displayName = "ToggleChip";
65
+ var ToggleChip_default = ToggleChip;
66
+ // Annotate the CommonJS export names for ESM import in node:
67
+ 0 && (module.exports = {
68
+ ToggleChip
69
+ });
@@ -0,0 +1,102 @@
1
+ @charset "UTF-8";
2
+
3
+ /* src/components/Chip/chip.scss */
4
+ .lib-xplat-chip {
5
+ border-radius: var(--spacing-radius-full);
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ user-select: none;
10
+ transition: background-color 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94);
11
+ }
12
+ .lib-xplat-chip.sm {
13
+ padding: 1px var(--spacing-space-2);
14
+ font-family: var(--semantic-typo-caption-2-r-font);
15
+ font-size: var(--semantic-typo-caption-2-r-size);
16
+ line-height: var(--semantic-typo-caption-2-r-lh);
17
+ font-weight: var(--semantic-typo-caption-2-r-weight);
18
+ letter-spacing: var(--semantic-typo-caption-2-r-ls);
19
+ }
20
+ .lib-xplat-chip.md {
21
+ padding: 2px var(--spacing-space-3);
22
+ font-family: var(--semantic-typo-caption-1-r-font);
23
+ font-size: var(--semantic-typo-caption-1-r-size);
24
+ line-height: var(--semantic-typo-caption-1-r-lh);
25
+ font-weight: var(--semantic-typo-caption-1-r-weight);
26
+ letter-spacing: var(--semantic-typo-caption-1-r-ls);
27
+ }
28
+ .lib-xplat-chip.lg {
29
+ padding: var(--spacing-space-1) var(--spacing-space-4);
30
+ font-family: var(--semantic-typo-label-2-m-font);
31
+ font-size: var(--semantic-typo-label-2-m-size);
32
+ line-height: var(--semantic-typo-label-2-m-lh);
33
+ font-weight: var(--semantic-typo-label-2-m-weight);
34
+ letter-spacing: var(--semantic-typo-label-2-m-ls);
35
+ }
36
+ .lib-xplat-chip.primary {
37
+ color: var(--semantic-text-inverse);
38
+ background-color: var(--semantic-surface-brand-default);
39
+ }
40
+ .lib-xplat-chip.secondary {
41
+ color: var(--semantic-surface-brand-default);
42
+ background-color: var(--semantic-surface-neutral-primary);
43
+ border: 1px solid var(--semantic-border-primary);
44
+ }
45
+ .lib-xplat-chip.neutral {
46
+ color: var(--semantic-text-secondary);
47
+ background-color: var(--semantic-surface-neutral-secondary);
48
+ border: 1px solid var(--semantic-border-primary);
49
+ }
50
+ .lib-xplat-chip.success {
51
+ color: var(--semantic-text-success);
52
+ background-color: var(--semantic-surface-success-subtle);
53
+ }
54
+ .lib-xplat-chip.error {
55
+ color: var(--semantic-text-error);
56
+ background-color: var(--semantic-surface-error-subtle);
57
+ }
58
+ .lib-xplat-chip.warning {
59
+ color: var(--semantic-text-warning);
60
+ background-color: var(--semantic-surface-warning-subtle);
61
+ }
62
+ .lib-xplat-chip.info {
63
+ color: var(--semantic-text-info);
64
+ background-color: var(--semantic-surface-info-subtle);
65
+ }
66
+
67
+ /* src/components/ToggleChip/togglechip.scss */
68
+ .lib-xplat-toggle-chip {
69
+ cursor: pointer;
70
+ font-family: inherit;
71
+ transition:
72
+ background-color 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94),
73
+ border-color 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94),
74
+ color 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94);
75
+ }
76
+ .lib-xplat-toggle-chip.unselected {
77
+ color: var(--semantic-text-secondary);
78
+ background-color: var(--semantic-surface-neutral-primary);
79
+ border: 1px solid var(--semantic-border-primary);
80
+ }
81
+ .lib-xplat-toggle-chip.unselected:hover:not(:disabled) {
82
+ color: var(--semantic-text-primary);
83
+ background-color: var(--semantic-surface-neutral-secondary);
84
+ }
85
+ .lib-xplat-toggle-chip {
86
+ }
87
+ .lib-xplat-toggle-chip.selected {
88
+ color: var(--semantic-text-brand-primary);
89
+ background-color: var(--semantic-surface-brand-subtle);
90
+ border: 1px solid var(--semantic-border-brand-primary);
91
+ }
92
+ .lib-xplat-toggle-chip.selected:hover:not(:disabled) {
93
+ background-color: var(--semantic-surface-brand-secondary);
94
+ }
95
+ .lib-xplat-toggle-chip:focus-visible {
96
+ outline: 2px solid var(--semantic-interaction-focus-ring);
97
+ outline-offset: 2px;
98
+ }
99
+ .lib-xplat-toggle-chip:disabled {
100
+ cursor: not-allowed;
101
+ opacity: 0.4;
102
+ }
@@ -0,0 +1,37 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React from 'react';
3
+
4
+ type ToggleChipSize = "sm" | "md" | "lg";
5
+ interface ToggleChipProps {
6
+ children: React.ReactNode;
7
+ /** 켜진 상태인가. 색과 `aria-pressed` 가 함께 바뀐다 */
8
+ selected?: boolean;
9
+ /** 누를 때. 켜고 끄는 판단은 쓰는 쪽이 한다 */
10
+ onClick?: () => void;
11
+ /** 흐리게 하고 못 누르게 한다 */
12
+ disabled?: boolean;
13
+ /** 칩 크기. `Chip` 과 같은 눈금이다 */
14
+ size?: ToggleChipSize;
15
+ }
16
+ /**
17
+ * 눌러서 고르는 칩.
18
+ *
19
+ * `Chip` 은 표시 전용이고 `Tag` 의 클릭은 **삭제**다. 이것만이 **켜짐/꺼짐**을
20
+ * 다룬다. 여러 개 고르기와 한 개 고르기 양쪽에 쓴다 — 몇 개까지 켤 수 있는지,
21
+ * 마지막 하나를 뗄 수 있는지 같은 규칙은 쓰는 쪽 사정이라 여기서 정하지 않는다.
22
+ *
23
+ * 모양은 `.lib-xplat-chip` 을 그대로 쓴다. 알약 반지름·크기 눈금·글자 크기가
24
+ * `Chip` 과 **한 곳에서** 정의되므로 둘이 따로 놀 수 없다. 같은 화면에 나란히
25
+ * 놓이는 일이 많아서 이게 중요하다.
26
+ *
27
+ * @example
28
+ * <ToggleChip selected={picked.has("ko")} onClick={() => toggle("ko")}>
29
+ * 한국어
30
+ * </ToggleChip>
31
+ */
32
+ declare const ToggleChip: {
33
+ (props: ToggleChipProps): react_jsx_runtime.JSX.Element;
34
+ displayName: string;
35
+ };
36
+
37
+ export { ToggleChip };
@@ -0,0 +1,37 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import React from 'react';
3
+
4
+ type ToggleChipSize = "sm" | "md" | "lg";
5
+ interface ToggleChipProps {
6
+ children: React.ReactNode;
7
+ /** 켜진 상태인가. 색과 `aria-pressed` 가 함께 바뀐다 */
8
+ selected?: boolean;
9
+ /** 누를 때. 켜고 끄는 판단은 쓰는 쪽이 한다 */
10
+ onClick?: () => void;
11
+ /** 흐리게 하고 못 누르게 한다 */
12
+ disabled?: boolean;
13
+ /** 칩 크기. `Chip` 과 같은 눈금이다 */
14
+ size?: ToggleChipSize;
15
+ }
16
+ /**
17
+ * 눌러서 고르는 칩.
18
+ *
19
+ * `Chip` 은 표시 전용이고 `Tag` 의 클릭은 **삭제**다. 이것만이 **켜짐/꺼짐**을
20
+ * 다룬다. 여러 개 고르기와 한 개 고르기 양쪽에 쓴다 — 몇 개까지 켤 수 있는지,
21
+ * 마지막 하나를 뗄 수 있는지 같은 규칙은 쓰는 쪽 사정이라 여기서 정하지 않는다.
22
+ *
23
+ * 모양은 `.lib-xplat-chip` 을 그대로 쓴다. 알약 반지름·크기 눈금·글자 크기가
24
+ * `Chip` 과 **한 곳에서** 정의되므로 둘이 따로 놀 수 없다. 같은 화면에 나란히
25
+ * 놓이는 일이 많아서 이게 중요하다.
26
+ *
27
+ * @example
28
+ * <ToggleChip selected={picked.has("ko")} onClick={() => toggle("ko")}>
29
+ * 한국어
30
+ * </ToggleChip>
31
+ */
32
+ declare const ToggleChip: {
33
+ (props: ToggleChipProps): react_jsx_runtime.JSX.Element;
34
+ displayName: string;
35
+ };
36
+
37
+ export { ToggleChip };
@@ -0,0 +1,42 @@
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/ToggleChip/ToggleChip.tsx
18
+ import { jsx } from "react/jsx-runtime";
19
+ var ToggleChip = (props) => {
20
+ const { children, selected = false, onClick, disabled = false, size = "md" } = props;
21
+ return /* @__PURE__ */ jsx(
22
+ "button",
23
+ {
24
+ type: "button",
25
+ className: clsx_default(
26
+ "lib-xplat-chip",
27
+ "lib-xplat-toggle-chip",
28
+ size,
29
+ selected ? "selected" : "unselected"
30
+ ),
31
+ "aria-pressed": selected,
32
+ disabled,
33
+ onClick,
34
+ children
35
+ }
36
+ );
37
+ };
38
+ ToggleChip.displayName = "ToggleChip";
39
+ var ToggleChip_default = ToggleChip;
40
+ export {
41
+ ToggleChip_default as ToggleChip
42
+ };
@@ -89,6 +89,7 @@ __export(components_exports, {
89
89
  TextArea: () => TextArea_default,
90
90
  TimePicker: () => TimePicker_default,
91
91
  ToastProvider: () => ToastProvider,
92
+ ToggleChip: () => ToggleChip_default,
92
93
  Tooltip: () => Tooltip_default,
93
94
  Video: () => Video_default,
94
95
  hasError: () => hasError,
@@ -7407,9 +7408,33 @@ var ToastProvider = ({
7407
7408
  };
7408
7409
  ToastProvider.displayName = "ToastProvider";
7409
7410
 
7411
+ // src/components/ToggleChip/ToggleChip.tsx
7412
+ var import_jsx_runtime353 = require("react/jsx-runtime");
7413
+ var ToggleChip = (props) => {
7414
+ const { children, selected = false, onClick, disabled = false, size = "md" } = props;
7415
+ return /* @__PURE__ */ (0, import_jsx_runtime353.jsx)(
7416
+ "button",
7417
+ {
7418
+ type: "button",
7419
+ className: clsx_default(
7420
+ "lib-xplat-chip",
7421
+ "lib-xplat-toggle-chip",
7422
+ size,
7423
+ selected ? "selected" : "unselected"
7424
+ ),
7425
+ "aria-pressed": selected,
7426
+ disabled,
7427
+ onClick,
7428
+ children
7429
+ }
7430
+ );
7431
+ };
7432
+ ToggleChip.displayName = "ToggleChip";
7433
+ var ToggleChip_default = ToggleChip;
7434
+
7410
7435
  // src/components/Tooltip/Tooltip.tsx
7411
7436
  var import_react42 = __toESM(require("react"), 1);
7412
- var import_jsx_runtime353 = require("react/jsx-runtime");
7437
+ var import_jsx_runtime354 = require("react/jsx-runtime");
7413
7438
  var OFFSET = 12;
7414
7439
  var GAP = 8;
7415
7440
  var SHOW_DELAY = 300;
@@ -7514,8 +7539,8 @@ var Tooltip = (props) => {
7514
7539
  window.clearTimeout(delayTimer.current);
7515
7540
  cancelAnimationFrame(rafRef.current);
7516
7541
  }, []);
7517
- if (!title && !description) return /* @__PURE__ */ (0, import_jsx_runtime353.jsx)(import_jsx_runtime353.Fragment, { children });
7518
- return /* @__PURE__ */ (0, import_jsx_runtime353.jsxs)(
7542
+ if (!title && !description) return /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(import_jsx_runtime354.Fragment, { children });
7543
+ return /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)(
7519
7544
  "div",
7520
7545
  {
7521
7546
  ref: triggerRef,
@@ -7528,7 +7553,7 @@ var Tooltip = (props) => {
7528
7553
  onBlur: close,
7529
7554
  children: [
7530
7555
  children,
7531
- visible && /* @__PURE__ */ (0, import_jsx_runtime353.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime353.jsxs)(
7556
+ visible && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)(
7532
7557
  "div",
7533
7558
  {
7534
7559
  ref: tooltipRef,
@@ -7536,8 +7561,8 @@ var Tooltip = (props) => {
7536
7561
  className: clsx_default("lib-xplat-tooltip", shape),
7537
7562
  style: { position: "fixed", left: pos.left, top: pos.top },
7538
7563
  children: [
7539
- title && /* @__PURE__ */ (0, import_jsx_runtime353.jsx)("div", { className: "tooltip-title", children: title }),
7540
- description && /* @__PURE__ */ (0, import_jsx_runtime353.jsx)("div", { className: "tooltip-desc", children: description })
7564
+ title && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)("div", { className: "tooltip-title", children: title }),
7565
+ description && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)("div", { className: "tooltip-desc", children: description })
7541
7566
  ]
7542
7567
  }
7543
7568
  ) })
@@ -7550,10 +7575,10 @@ var Tooltip_default = Tooltip;
7550
7575
 
7551
7576
  // src/components/Video/Video.tsx
7552
7577
  var import_react43 = __toESM(require("react"), 1);
7553
- var import_jsx_runtime354 = require("react/jsx-runtime");
7554
- var PipIcon = () => /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)("svg", { viewBox: "0 0 24 24", width: "1em", height: "1em", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
7555
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2" }),
7556
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)("rect", { x: "12", y: "11", width: "7", height: "6", rx: "1", fill: "currentColor" })
7578
+ var import_jsx_runtime355 = require("react/jsx-runtime");
7579
+ var PipIcon = () => /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)("svg", { viewBox: "0 0 24 24", width: "1em", height: "1em", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
7580
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2" }),
7581
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)("rect", { x: "12", y: "11", width: "7", height: "6", rx: "1", fill: "currentColor" })
7557
7582
  ] });
7558
7583
  var formatTime = (sec) => {
7559
7584
  if (!Number.isFinite(sec) || sec < 0) return "0:00";
@@ -7728,13 +7753,13 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7728
7753
  const volumePct = (isMuted ? 0 : volume) * 100;
7729
7754
  const VolumeGlyph = isMuted || volume === 0 ? VolumeXIcon_default : volume < 0.5 ? VolumeIcon_default : Volume2Icon_default;
7730
7755
  const pipSupported = typeof document !== "undefined" && "pictureInPictureEnabled" in document && document.pictureInPictureEnabled;
7731
- return /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)(
7756
+ return /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)(
7732
7757
  "div",
7733
7758
  {
7734
7759
  ref: containerRef,
7735
7760
  className: clsx_default("lib-xplat-video", showControls && "has-controls"),
7736
7761
  children: [
7737
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7762
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7738
7763
  "video",
7739
7764
  {
7740
7765
  ref: setRefs,
@@ -7755,7 +7780,7 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7755
7780
  children
7756
7781
  }
7757
7782
  ),
7758
- showCenterPlay && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7783
+ showCenterPlay && /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7759
7784
  "button",
7760
7785
  {
7761
7786
  type: "button",
@@ -7767,11 +7792,11 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7767
7792
  onClick: togglePlay,
7768
7793
  "aria-label": isPlaying ? "\uC77C\uC2DC\uC815\uC9C0" : "\uC7AC\uC0DD",
7769
7794
  tabIndex: -1,
7770
- children: /* @__PURE__ */ (0, import_jsx_runtime354.jsx)("span", { className: "center-play-icon", children: /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(PlayCircleIcon_default, {}) })
7795
+ children: /* @__PURE__ */ (0, import_jsx_runtime355.jsx)("span", { className: "center-play-icon", children: /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(PlayCircleIcon_default, {}) })
7771
7796
  }
7772
7797
  ),
7773
- showControls && /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)("div", { className: "controls", onClick: (e) => e.stopPropagation(), children: [
7774
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7798
+ showControls && /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)("div", { className: "controls", onClick: (e) => e.stopPropagation(), children: [
7799
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7775
7800
  "input",
7776
7801
  {
7777
7802
  type: "range",
@@ -7788,29 +7813,29 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7788
7813
  }
7789
7814
  }
7790
7815
  ),
7791
- /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)("div", { className: "controls-row", children: [
7792
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7816
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)("div", { className: "controls-row", children: [
7817
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7793
7818
  "button",
7794
7819
  {
7795
7820
  type: "button",
7796
7821
  className: "control-btn",
7797
7822
  onClick: togglePlay,
7798
7823
  "aria-label": isPlaying ? "\uC77C\uC2DC\uC815\uC9C0" : "\uC7AC\uC0DD",
7799
- children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(PauseIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(PlayIcon_default, {})
7824
+ children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(PauseIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(PlayIcon_default, {})
7800
7825
  }
7801
7826
  ),
7802
- /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)("div", { className: "volume-group", children: [
7803
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7827
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)("div", { className: "volume-group", children: [
7828
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7804
7829
  "button",
7805
7830
  {
7806
7831
  type: "button",
7807
7832
  className: "control-btn",
7808
7833
  onClick: toggleMute,
7809
7834
  "aria-label": isMuted ? "\uC74C\uC18C\uAC70 \uD574\uC81C" : "\uC74C\uC18C\uAC70",
7810
- children: /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(VolumeGlyph, {})
7835
+ children: /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(VolumeGlyph, {})
7811
7836
  }
7812
7837
  ),
7813
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7838
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7814
7839
  "input",
7815
7840
  {
7816
7841
  type: "range",
@@ -7825,14 +7850,14 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7825
7850
  }
7826
7851
  )
7827
7852
  ] }),
7828
- /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)("span", { className: "time", children: [
7853
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)("span", { className: "time", children: [
7829
7854
  formatTime(currentTime),
7830
7855
  " / ",
7831
7856
  formatTime(duration)
7832
7857
  ] }),
7833
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)("div", { className: "controls-spacer" }),
7834
- playbackRates && playbackRates.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)("div", { className: clsx_default("rate-group", rateMenuOpen && "is-open"), children: [
7835
- /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)(
7858
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)("div", { className: "controls-spacer" }),
7859
+ playbackRates && playbackRates.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)("div", { className: clsx_default("rate-group", rateMenuOpen && "is-open"), children: [
7860
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)(
7836
7861
  "button",
7837
7862
  {
7838
7863
  type: "button",
@@ -7846,7 +7871,7 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7846
7871
  ]
7847
7872
  }
7848
7873
  ),
7849
- rateMenuOpen && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)("ul", { className: "rate-menu", role: "menu", children: playbackRates.map((r2) => /* @__PURE__ */ (0, import_jsx_runtime354.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)(
7874
+ rateMenuOpen && /* @__PURE__ */ (0, import_jsx_runtime355.jsx)("ul", { className: "rate-menu", role: "menu", children: playbackRates.map((r2) => /* @__PURE__ */ (0, import_jsx_runtime355.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)(
7850
7875
  "button",
7851
7876
  {
7852
7877
  type: "button",
@@ -7860,7 +7885,7 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7860
7885
  }
7861
7886
  ) }, r2)) })
7862
7887
  ] }),
7863
- showCaptions && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7888
+ showCaptions && /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7864
7889
  "button",
7865
7890
  {
7866
7891
  type: "button",
@@ -7868,37 +7893,37 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7868
7893
  onClick: toggleCaptions,
7869
7894
  "aria-label": captionsOn ? "\uC790\uB9C9 \uB044\uAE30" : "\uC790\uB9C9 \uCF1C\uAE30",
7870
7895
  "aria-pressed": captionsOn,
7871
- children: /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(TypeIcon_default, {})
7896
+ children: /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(TypeIcon_default, {})
7872
7897
  }
7873
7898
  ),
7874
- showPip && pipSupported && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7899
+ showPip && pipSupported && /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7875
7900
  "button",
7876
7901
  {
7877
7902
  type: "button",
7878
7903
  className: clsx_default("control-btn", isPip && "is-active"),
7879
7904
  onClick: togglePip,
7880
7905
  "aria-label": isPip ? "PIP \uC885\uB8CC" : "PIP",
7881
- children: /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(PipIcon, {})
7906
+ children: /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(PipIcon, {})
7882
7907
  }
7883
7908
  ),
7884
- showDownload && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7909
+ showDownload && /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7885
7910
  "a",
7886
7911
  {
7887
7912
  className: "control-btn",
7888
7913
  href: src,
7889
7914
  download: downloadFileName ?? true,
7890
7915
  "aria-label": "\uB2E4\uC6B4\uB85C\uB4DC",
7891
- children: /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(DownloadIcon_default, {})
7916
+ children: /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(DownloadIcon_default, {})
7892
7917
  }
7893
7918
  ),
7894
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7919
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7895
7920
  "button",
7896
7921
  {
7897
7922
  type: "button",
7898
7923
  className: "control-btn",
7899
7924
  onClick: toggleFullscreen,
7900
7925
  "aria-label": isFullscreen ? "\uC804\uCCB4\uD654\uBA74 \uC885\uB8CC" : "\uC804\uCCB4\uD654\uBA74",
7901
- children: isFullscreen ? /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(MinimizeIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(MaximizeIcon_default, {})
7926
+ children: isFullscreen ? /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(MinimizeIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(MaximizeIcon_default, {})
7902
7927
  }
7903
7928
  )
7904
7929
  ] })
@@ -7970,6 +7995,7 @@ var Video_default = Video;
7970
7995
  TextArea,
7971
7996
  TimePicker,
7972
7997
  ToastProvider,
7998
+ ToggleChip,
7973
7999
  Tooltip,
7974
8000
  Video,
7975
8001
  hasError,
@@ -5806,6 +5806,43 @@
5806
5806
  }
5807
5807
  }
5808
5808
 
5809
+ /* src/components/ToggleChip/togglechip.scss */
5810
+ .lib-xplat-toggle-chip {
5811
+ cursor: pointer;
5812
+ font-family: inherit;
5813
+ transition:
5814
+ background-color 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94),
5815
+ border-color 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94),
5816
+ color 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94);
5817
+ }
5818
+ .lib-xplat-toggle-chip.unselected {
5819
+ color: var(--semantic-text-secondary);
5820
+ background-color: var(--semantic-surface-neutral-primary);
5821
+ border: 1px solid var(--semantic-border-primary);
5822
+ }
5823
+ .lib-xplat-toggle-chip.unselected:hover:not(:disabled) {
5824
+ color: var(--semantic-text-primary);
5825
+ background-color: var(--semantic-surface-neutral-secondary);
5826
+ }
5827
+ .lib-xplat-toggle-chip {
5828
+ }
5829
+ .lib-xplat-toggle-chip.selected {
5830
+ color: var(--semantic-text-brand-primary);
5831
+ background-color: var(--semantic-surface-brand-subtle);
5832
+ border: 1px solid var(--semantic-border-brand-primary);
5833
+ }
5834
+ .lib-xplat-toggle-chip.selected:hover:not(:disabled) {
5835
+ background-color: var(--semantic-surface-brand-secondary);
5836
+ }
5837
+ .lib-xplat-toggle-chip:focus-visible {
5838
+ outline: 2px solid var(--semantic-interaction-focus-ring);
5839
+ outline-offset: 2px;
5840
+ }
5841
+ .lib-xplat-toggle-chip:disabled {
5842
+ cursor: not-allowed;
5843
+ opacity: 0.4;
5844
+ }
5845
+
5809
5846
  /* src/components/Video/video.scss */
5810
5847
  .lib-xplat-video {
5811
5848
  position: relative;
@@ -26,7 +26,7 @@ export { Input, PasswordInput } from './Input/index.cjs';
26
26
  export { Link } from './Link/index.cjs';
27
27
  export { LinkButton } from './LinkButton/index.cjs';
28
28
  export { Modal } from './Modal/index.cjs';
29
- export { NotificationBadge as Badge, NotificationBadge } from './NotificationBadge/index.cjs';
29
+ export { Badge, Badge as NotificationBadge } from './NotificationBadge/index.cjs';
30
30
  export { Pagination } from './Pagination/index.cjs';
31
31
  export { PopOver } from './PopOver/index.cjs';
32
32
  export { Progress } from './Progress/index.cjs';
@@ -44,6 +44,7 @@ export { Tag } from './Tag/index.cjs';
44
44
  export { TextArea } from './TextArea/index.cjs';
45
45
  export { TimePicker } from './TimePicker/index.cjs';
46
46
  export { ToastProvider, useToast } from './Toast/index.cjs';
47
+ export { ToggleChip } from './ToggleChip/index.cjs';
47
48
  export { Tooltip } from './Tooltip/index.cjs';
48
49
  export { Video, VideoProps } from './Video/index.cjs';
49
50
  import 'react';
@@ -26,7 +26,7 @@ export { Input, PasswordInput } from './Input/index.js';
26
26
  export { Link } from './Link/index.js';
27
27
  export { LinkButton } from './LinkButton/index.js';
28
28
  export { Modal } from './Modal/index.js';
29
- export { NotificationBadge as Badge, NotificationBadge } from './NotificationBadge/index.js';
29
+ export { Badge, Badge as NotificationBadge } from './NotificationBadge/index.js';
30
30
  export { Pagination } from './Pagination/index.js';
31
31
  export { PopOver } from './PopOver/index.js';
32
32
  export { Progress } from './Progress/index.js';
@@ -44,6 +44,7 @@ export { Tag } from './Tag/index.js';
44
44
  export { TextArea } from './TextArea/index.js';
45
45
  export { TimePicker } from './TimePicker/index.js';
46
46
  export { ToastProvider, useToast } from './Toast/index.js';
47
+ export { ToggleChip } from './ToggleChip/index.js';
47
48
  export { Tooltip } from './Tooltip/index.js';
48
49
  export { Video, VideoProps } from './Video/index.js';
49
50
  import 'react';