@x-plat/design-system 0.13.0 → 0.14.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.
Files changed (43) hide show
  1. package/dist/{breakpoints-DsXkJgdl.d.cts → breakpoints-CKkNxA-y.d.cts} +1 -1
  2. package/dist/{breakpoints-DsXkJgdl.d.ts → breakpoints-CKkNxA-y.d.ts} +1 -1
  3. package/dist/components/Badge/index.d.cts +1 -1
  4. package/dist/components/Badge/index.d.ts +1 -1
  5. package/dist/components/Dropdown/index.cjs +5 -15
  6. package/dist/components/Dropdown/index.css +0 -3
  7. package/dist/components/Dropdown/index.js +5 -15
  8. package/dist/components/PopOver/index.cjs +3 -14
  9. package/dist/components/PopOver/index.css +0 -3
  10. package/dist/components/PopOver/index.js +3 -14
  11. package/dist/components/Select/index.cjs +4 -14
  12. package/dist/components/Select/index.css +0 -3
  13. package/dist/components/Select/index.js +4 -14
  14. package/dist/components/TimePicker/index.cjs +4 -14
  15. package/dist/components/TimePicker/index.css +0 -3
  16. package/dist/components/TimePicker/index.js +4 -14
  17. package/dist/components/ToggleChip/index.cjs +69 -0
  18. package/dist/components/ToggleChip/index.css +102 -0
  19. package/dist/components/ToggleChip/index.d.cts +37 -0
  20. package/dist/components/ToggleChip/index.d.ts +37 -0
  21. package/dist/components/ToggleChip/index.js +42 -0
  22. package/dist/components/index.cjs +69 -54
  23. package/dist/components/index.css +37 -12
  24. package/dist/components/index.d.cts +2 -1
  25. package/dist/components/index.d.ts +2 -1
  26. package/dist/components/index.js +59 -45
  27. package/dist/index.cjs +88 -73
  28. package/dist/index.css +37 -12
  29. package/dist/index.d.cts +4 -3
  30. package/dist/index.d.ts +4 -3
  31. package/dist/index.js +76 -62
  32. package/dist/layout/Grid/Item/index.d.cts +1 -1
  33. package/dist/layout/Grid/Item/index.d.ts +1 -1
  34. package/dist/layout/Grid/index.d.cts +1 -1
  35. package/dist/layout/Grid/index.d.ts +1 -1
  36. package/dist/layout/index.d.cts +1 -1
  37. package/dist/layout/index.d.ts +1 -1
  38. package/dist/tokens/index.d.cts +1 -1
  39. package/dist/tokens/index.d.ts +1 -1
  40. package/guidelines/Guidelines.md +1 -1
  41. package/guidelines/MIGRATION.md +51 -0
  42. package/guidelines/components/chip-tag.md +80 -2
  43. package/package.json +1 -1
@@ -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,
@@ -3977,10 +3978,8 @@ var import_react19 = __toESM(require("react"), 1);
3977
3978
  var useAutoPosition = (triggerRef, popRef, enabled = true) => {
3978
3979
  const [position, setPosition] = import_react19.default.useState({
3979
3980
  position: {},
3980
- direction: "bottom",
3981
- repositioning: false
3981
+ direction: "bottom"
3982
3982
  });
3983
- const placedRef = import_react19.default.useRef(false);
3984
3983
  const calculatePosition = import_react19.default.useCallback(() => {
3985
3984
  if (!triggerRef.current || !popRef.current) return;
3986
3985
  const triggerRect = triggerRef.current.getBoundingClientRect();
@@ -4003,18 +4002,10 @@ var useAutoPosition = (triggerRef, popRef, enabled = true) => {
4003
4002
  left = triggerRect.right - popW;
4004
4003
  }
4005
4004
  if (left < 8) left = 8;
4006
- setPosition({
4007
- position: { top, left },
4008
- direction,
4009
- repositioning: placedRef.current
4010
- });
4011
- placedRef.current = true;
4005
+ setPosition({ position: { top, left }, direction });
4012
4006
  }, [triggerRef, popRef]);
4013
4007
  import_react19.default.useLayoutEffect(() => {
4014
- if (!enabled) {
4015
- placedRef.current = false;
4016
- return;
4017
- }
4008
+ if (!enabled) return;
4018
4009
  calculatePosition();
4019
4010
  const raf = requestAnimationFrame(calculatePosition);
4020
4011
  return () => cancelAnimationFrame(raf);
@@ -4080,7 +4071,7 @@ var Dropdown = (props) => {
4080
4071
  const [visible, setVisible] = import_react21.default.useState(false);
4081
4072
  const triggerRef = import_react21.default.useRef(null);
4082
4073
  const menuRef = import_react21.default.useRef(null);
4083
- const { position, direction, repositioning } = useAutoPosition_default(triggerRef, menuRef, mounted);
4074
+ const { position, direction } = useAutoPosition_default(triggerRef, menuRef, mounted);
4084
4075
  useClickOutside_default([triggerRef, menuRef], () => setIsOpen(false), isOpen);
4085
4076
  useEscapeKey(isOpen, () => {
4086
4077
  setIsOpen(false);
@@ -4115,7 +4106,7 @@ var Dropdown = (props) => {
4115
4106
  "div",
4116
4107
  {
4117
4108
  ref: menuRef,
4118
- className: clsx_default("lib-xplat-dropdown-menu", direction, { visible }, repositioning && "repositioning"),
4109
+ className: clsx_default("lib-xplat-dropdown-menu", direction, { visible }),
4119
4110
  style: { top: position.top, left: position.left },
4120
4111
  role: "menu",
4121
4112
  children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime322.jsx)(
@@ -6047,7 +6038,6 @@ var PopOver = (props) => {
6047
6038
  className: clsx_default(
6048
6039
  "lib-xplat-pop-over-content",
6049
6040
  position.direction,
6050
- position.repositioning && "repositioning",
6051
6041
  eventTrigger && "visible"
6052
6042
  ),
6053
6043
  ref: popRef,
@@ -6394,7 +6384,7 @@ var SelectRoot = (props) => {
6394
6384
  mounted && /* @__PURE__ */ (0, import_jsx_runtime337.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime337.jsxs)(
6395
6385
  "div",
6396
6386
  {
6397
- className: clsx_default("lib-xplat-select-content", size, position.direction, stateClass, position.repositioning && "repositioning"),
6387
+ className: clsx_default("lib-xplat-select-content", size, position.direction, stateClass),
6398
6388
  ref: contentRef,
6399
6389
  style: { ...position.position, width: triggerRef.current?.offsetWidth },
6400
6390
  role: "listbox",
@@ -7287,7 +7277,7 @@ var TimePicker = (props) => {
7287
7277
  "div",
7288
7278
  {
7289
7279
  ref: contentRef,
7290
- className: clsx_default("lib-xplat-time-picker-content", size, visible ? "enter" : "exit", position.repositioning && "repositioning"),
7280
+ className: clsx_default("lib-xplat-time-picker-content", size, visible ? "enter" : "exit"),
7291
7281
  style: { ...position.position, width: triggerRef.current?.offsetWidth },
7292
7282
  role: "listbox",
7293
7283
  children: options.map((t) => /* @__PURE__ */ (0, import_jsx_runtime351.jsx)(
@@ -7407,9 +7397,33 @@ var ToastProvider = ({
7407
7397
  };
7408
7398
  ToastProvider.displayName = "ToastProvider";
7409
7399
 
7400
+ // src/components/ToggleChip/ToggleChip.tsx
7401
+ var import_jsx_runtime353 = require("react/jsx-runtime");
7402
+ var ToggleChip = (props) => {
7403
+ const { children, selected = false, onClick, disabled = false, size = "md" } = props;
7404
+ return /* @__PURE__ */ (0, import_jsx_runtime353.jsx)(
7405
+ "button",
7406
+ {
7407
+ type: "button",
7408
+ className: clsx_default(
7409
+ "lib-xplat-chip",
7410
+ "lib-xplat-toggle-chip",
7411
+ size,
7412
+ selected ? "selected" : "unselected"
7413
+ ),
7414
+ "aria-pressed": selected,
7415
+ disabled,
7416
+ onClick,
7417
+ children
7418
+ }
7419
+ );
7420
+ };
7421
+ ToggleChip.displayName = "ToggleChip";
7422
+ var ToggleChip_default = ToggleChip;
7423
+
7410
7424
  // src/components/Tooltip/Tooltip.tsx
7411
7425
  var import_react42 = __toESM(require("react"), 1);
7412
- var import_jsx_runtime353 = require("react/jsx-runtime");
7426
+ var import_jsx_runtime354 = require("react/jsx-runtime");
7413
7427
  var OFFSET = 12;
7414
7428
  var GAP = 8;
7415
7429
  var SHOW_DELAY = 300;
@@ -7514,8 +7528,8 @@ var Tooltip = (props) => {
7514
7528
  window.clearTimeout(delayTimer.current);
7515
7529
  cancelAnimationFrame(rafRef.current);
7516
7530
  }, []);
7517
- if (!title && !description) return /* @__PURE__ */ (0, import_jsx_runtime353.jsx)(import_jsx_runtime353.Fragment, { children });
7518
- return /* @__PURE__ */ (0, import_jsx_runtime353.jsxs)(
7531
+ if (!title && !description) return /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(import_jsx_runtime354.Fragment, { children });
7532
+ return /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)(
7519
7533
  "div",
7520
7534
  {
7521
7535
  ref: triggerRef,
@@ -7528,7 +7542,7 @@ var Tooltip = (props) => {
7528
7542
  onBlur: close,
7529
7543
  children: [
7530
7544
  children,
7531
- visible && /* @__PURE__ */ (0, import_jsx_runtime353.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime353.jsxs)(
7545
+ visible && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(Portal_default, { children: /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)(
7532
7546
  "div",
7533
7547
  {
7534
7548
  ref: tooltipRef,
@@ -7536,8 +7550,8 @@ var Tooltip = (props) => {
7536
7550
  className: clsx_default("lib-xplat-tooltip", shape),
7537
7551
  style: { position: "fixed", left: pos.left, top: pos.top },
7538
7552
  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 })
7553
+ title && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)("div", { className: "tooltip-title", children: title }),
7554
+ description && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)("div", { className: "tooltip-desc", children: description })
7541
7555
  ]
7542
7556
  }
7543
7557
  ) })
@@ -7550,10 +7564,10 @@ var Tooltip_default = Tooltip;
7550
7564
 
7551
7565
  // src/components/Video/Video.tsx
7552
7566
  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" })
7567
+ var import_jsx_runtime355 = require("react/jsx-runtime");
7568
+ 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: [
7569
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)("rect", { x: "3", y: "5", width: "18", height: "14", rx: "2" }),
7570
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)("rect", { x: "12", y: "11", width: "7", height: "6", rx: "1", fill: "currentColor" })
7557
7571
  ] });
7558
7572
  var formatTime = (sec) => {
7559
7573
  if (!Number.isFinite(sec) || sec < 0) return "0:00";
@@ -7728,13 +7742,13 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7728
7742
  const volumePct = (isMuted ? 0 : volume) * 100;
7729
7743
  const VolumeGlyph = isMuted || volume === 0 ? VolumeXIcon_default : volume < 0.5 ? VolumeIcon_default : Volume2Icon_default;
7730
7744
  const pipSupported = typeof document !== "undefined" && "pictureInPictureEnabled" in document && document.pictureInPictureEnabled;
7731
- return /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)(
7745
+ return /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)(
7732
7746
  "div",
7733
7747
  {
7734
7748
  ref: containerRef,
7735
7749
  className: clsx_default("lib-xplat-video", showControls && "has-controls"),
7736
7750
  children: [
7737
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7751
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7738
7752
  "video",
7739
7753
  {
7740
7754
  ref: setRefs,
@@ -7755,7 +7769,7 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7755
7769
  children
7756
7770
  }
7757
7771
  ),
7758
- showCenterPlay && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7772
+ showCenterPlay && /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7759
7773
  "button",
7760
7774
  {
7761
7775
  type: "button",
@@ -7767,11 +7781,11 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7767
7781
  onClick: togglePlay,
7768
7782
  "aria-label": isPlaying ? "\uC77C\uC2DC\uC815\uC9C0" : "\uC7AC\uC0DD",
7769
7783
  tabIndex: -1,
7770
- children: /* @__PURE__ */ (0, import_jsx_runtime354.jsx)("span", { className: "center-play-icon", children: /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(PlayCircleIcon_default, {}) })
7784
+ children: /* @__PURE__ */ (0, import_jsx_runtime355.jsx)("span", { className: "center-play-icon", children: /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(PlayCircleIcon_default, {}) })
7771
7785
  }
7772
7786
  ),
7773
- showControls && /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)("div", { className: "controls", onClick: (e) => e.stopPropagation(), children: [
7774
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7787
+ showControls && /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)("div", { className: "controls", onClick: (e) => e.stopPropagation(), children: [
7788
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7775
7789
  "input",
7776
7790
  {
7777
7791
  type: "range",
@@ -7788,29 +7802,29 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7788
7802
  }
7789
7803
  }
7790
7804
  ),
7791
- /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)("div", { className: "controls-row", children: [
7792
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7805
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)("div", { className: "controls-row", children: [
7806
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7793
7807
  "button",
7794
7808
  {
7795
7809
  type: "button",
7796
7810
  className: "control-btn",
7797
7811
  onClick: togglePlay,
7798
7812
  "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, {})
7813
+ children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(PauseIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(PlayIcon_default, {})
7800
7814
  }
7801
7815
  ),
7802
- /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)("div", { className: "volume-group", children: [
7803
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7816
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)("div", { className: "volume-group", children: [
7817
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7804
7818
  "button",
7805
7819
  {
7806
7820
  type: "button",
7807
7821
  className: "control-btn",
7808
7822
  onClick: toggleMute,
7809
7823
  "aria-label": isMuted ? "\uC74C\uC18C\uAC70 \uD574\uC81C" : "\uC74C\uC18C\uAC70",
7810
- children: /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(VolumeGlyph, {})
7824
+ children: /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(VolumeGlyph, {})
7811
7825
  }
7812
7826
  ),
7813
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7827
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7814
7828
  "input",
7815
7829
  {
7816
7830
  type: "range",
@@ -7825,14 +7839,14 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7825
7839
  }
7826
7840
  )
7827
7841
  ] }),
7828
- /* @__PURE__ */ (0, import_jsx_runtime354.jsxs)("span", { className: "time", children: [
7842
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)("span", { className: "time", children: [
7829
7843
  formatTime(currentTime),
7830
7844
  " / ",
7831
7845
  formatTime(duration)
7832
7846
  ] }),
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)(
7847
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)("div", { className: "controls-spacer" }),
7848
+ playbackRates && playbackRates.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)("div", { className: clsx_default("rate-group", rateMenuOpen && "is-open"), children: [
7849
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsxs)(
7836
7850
  "button",
7837
7851
  {
7838
7852
  type: "button",
@@ -7846,7 +7860,7 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7846
7860
  ]
7847
7861
  }
7848
7862
  ),
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)(
7863
+ 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
7864
  "button",
7851
7865
  {
7852
7866
  type: "button",
@@ -7860,7 +7874,7 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7860
7874
  }
7861
7875
  ) }, r2)) })
7862
7876
  ] }),
7863
- showCaptions && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7877
+ showCaptions && /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7864
7878
  "button",
7865
7879
  {
7866
7880
  type: "button",
@@ -7868,37 +7882,37 @@ var Video = import_react43.default.forwardRef((props, ref) => {
7868
7882
  onClick: toggleCaptions,
7869
7883
  "aria-label": captionsOn ? "\uC790\uB9C9 \uB044\uAE30" : "\uC790\uB9C9 \uCF1C\uAE30",
7870
7884
  "aria-pressed": captionsOn,
7871
- children: /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(TypeIcon_default, {})
7885
+ children: /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(TypeIcon_default, {})
7872
7886
  }
7873
7887
  ),
7874
- showPip && pipSupported && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7888
+ showPip && pipSupported && /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7875
7889
  "button",
7876
7890
  {
7877
7891
  type: "button",
7878
7892
  className: clsx_default("control-btn", isPip && "is-active"),
7879
7893
  onClick: togglePip,
7880
7894
  "aria-label": isPip ? "PIP \uC885\uB8CC" : "PIP",
7881
- children: /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(PipIcon, {})
7895
+ children: /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(PipIcon, {})
7882
7896
  }
7883
7897
  ),
7884
- showDownload && /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7898
+ showDownload && /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7885
7899
  "a",
7886
7900
  {
7887
7901
  className: "control-btn",
7888
7902
  href: src,
7889
7903
  download: downloadFileName ?? true,
7890
7904
  "aria-label": "\uB2E4\uC6B4\uB85C\uB4DC",
7891
- children: /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(DownloadIcon_default, {})
7905
+ children: /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(DownloadIcon_default, {})
7892
7906
  }
7893
7907
  ),
7894
- /* @__PURE__ */ (0, import_jsx_runtime354.jsx)(
7908
+ /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(
7895
7909
  "button",
7896
7910
  {
7897
7911
  type: "button",
7898
7912
  className: "control-btn",
7899
7913
  onClick: toggleFullscreen,
7900
7914
  "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, {})
7915
+ children: isFullscreen ? /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(MinimizeIcon_default, {}) : /* @__PURE__ */ (0, import_jsx_runtime355.jsx)(MaximizeIcon_default, {})
7902
7916
  }
7903
7917
  )
7904
7918
  ] })
@@ -7970,6 +7984,7 @@ var Video_default = Video;
7970
7984
  TextArea,
7971
7985
  TimePicker,
7972
7986
  ToastProvider,
7987
+ ToggleChip,
7973
7988
  Tooltip,
7974
7989
  Video,
7975
7990
  hasError,
@@ -3322,9 +3322,6 @@
3322
3322
  color: var(--semantic-text-disabled);
3323
3323
  cursor: not-allowed;
3324
3324
  }
3325
- .lib-xplat-dropdown-menu.repositioning {
3326
- transition: none;
3327
- }
3328
3325
 
3329
3326
  /* src/components/Editor/editor.scss */
3330
3327
  .lib-xplat-editor {
@@ -4183,9 +4180,6 @@
4183
4180
  opacity: 1;
4184
4181
  transform: scale(1);
4185
4182
  }
4186
- .lib-xplat-pop-over-content.repositioning {
4187
- transition: none;
4188
- }
4189
4183
 
4190
4184
  /* src/components/Progress/progress.scss */
4191
4185
  .lib-xplat-progress {
@@ -4580,9 +4574,6 @@
4580
4574
  cursor: not-allowed;
4581
4575
  color: var(--semantic-text-disabled);
4582
4576
  }
4583
- .lib-xplat-select-content.repositioning {
4584
- transition: none;
4585
- }
4586
4577
 
4587
4578
  /* src/components/Skeleton/skeleton.scss */
4588
4579
  .lib-xplat-skeleton {
@@ -5683,9 +5674,6 @@
5683
5674
  font-weight: var(--semantic-typo-label-1-m-weight);
5684
5675
  letter-spacing: var(--semantic-typo-label-1-m-ls);
5685
5676
  }
5686
- .lib-xplat-time-picker-content.repositioning {
5687
- transition: none;
5688
- }
5689
5677
 
5690
5678
  /* src/components/Toast/toast.scss */
5691
5679
  .lib-xplat-toast-container {
@@ -5806,6 +5794,43 @@
5806
5794
  }
5807
5795
  }
5808
5796
 
5797
+ /* src/components/ToggleChip/togglechip.scss */
5798
+ .lib-xplat-toggle-chip {
5799
+ cursor: pointer;
5800
+ font-family: inherit;
5801
+ transition:
5802
+ background-color 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94),
5803
+ border-color 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94),
5804
+ color 0.28s cubic-bezier(0.25, 0.46, 0.45, 0.94);
5805
+ }
5806
+ .lib-xplat-toggle-chip.unselected {
5807
+ color: var(--semantic-text-secondary);
5808
+ background-color: var(--semantic-surface-neutral-primary);
5809
+ border: 1px solid var(--semantic-border-primary);
5810
+ }
5811
+ .lib-xplat-toggle-chip.unselected:hover:not(:disabled) {
5812
+ color: var(--semantic-text-primary);
5813
+ background-color: var(--semantic-surface-neutral-secondary);
5814
+ }
5815
+ .lib-xplat-toggle-chip {
5816
+ }
5817
+ .lib-xplat-toggle-chip.selected {
5818
+ color: var(--semantic-text-brand-primary);
5819
+ background-color: var(--semantic-surface-brand-subtle);
5820
+ border: 1px solid var(--semantic-border-brand-primary);
5821
+ }
5822
+ .lib-xplat-toggle-chip.selected:hover:not(:disabled) {
5823
+ background-color: var(--semantic-surface-brand-secondary);
5824
+ }
5825
+ .lib-xplat-toggle-chip:focus-visible {
5826
+ outline: 2px solid var(--semantic-interaction-focus-ring);
5827
+ outline-offset: 2px;
5828
+ }
5829
+ .lib-xplat-toggle-chip:disabled {
5830
+ cursor: not-allowed;
5831
+ opacity: 0.4;
5832
+ }
5833
+
5809
5834
  /* src/components/Video/video.scss */
5810
5835
  .lib-xplat-video {
5811
5836
  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';