sellmate-design-system-react 9.0.0-beta.80 → 9.0.0-beta.85

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/index.cjs CHANGED
@@ -4875,8 +4875,22 @@ function useFormField(field) {
4875
4875
  }, [ctx, name]);
4876
4876
  }
4877
4877
  var FIELD_SIZE = {
4878
- sm: { height: 28, radius: 4, fieldGap: 12, labelGap: 6, fontSize: 12, lineHeight: 20, icon: 16 },
4879
- md: { height: 36, radius: 6, fieldGap: 16, labelGap: 8, fontSize: 14, lineHeight: 24, icon: 16 }
4878
+ sm: {
4879
+ height: 28,
4880
+ radius: 4,
4881
+ fieldGap: 12,
4882
+ labelGap: 6,
4883
+ labelTypo: "typo-field-sm-bold",
4884
+ icon: 16
4885
+ },
4886
+ md: {
4887
+ height: 36,
4888
+ radius: 6,
4889
+ fieldGap: 16,
4890
+ labelGap: 8,
4891
+ labelTypo: "typo-field-md-bold",
4892
+ icon: 16
4893
+ }
4880
4894
  };
4881
4895
  var ALIGN = {
4882
4896
  start: "flex-start",
@@ -4986,7 +5000,10 @@ var SField = /* @__PURE__ */ react.forwardRef(function SField2({
4986
5000
  label !== "" && /* @__PURE__ */ jsxRuntime.jsxs(
4987
5001
  "div",
4988
5002
  {
4989
- className: "flex shrink-0 items-center font-bold text-(--sys-color-field-text-default)",
5003
+ className: cn(
5004
+ "flex shrink-0 items-center text-(--sys-color-field-text-default)",
5005
+ s.labelTypo
5006
+ ),
4990
5007
  style: {
4991
5008
  // 위에 선 라벨은 제 글줄 높이만 차지한다 — 컨트롤 높이에 맞춰 늘리면
4992
5009
  // 라벨과 컨트롤 사이가 간격 토큰보다 넓어진다. 줄 세우기용 labelWidth 도
@@ -4995,9 +5012,7 @@ var SField = /* @__PURE__ */ react.forwardRef(function SField2({
4995
5012
  height: cssLen(labelHeight) ?? s.height,
4996
5013
  marginRight: s.fieldGap,
4997
5014
  width: cssLen(labelWidth)
4998
- },
4999
- fontSize: s.fontSize,
5000
- lineHeight: `${s.lineHeight}px`
5015
+ }
5001
5016
  },
5002
5017
  children: [
5003
5018
  icon && /* @__PURE__ */ jsxRuntime.jsx(
@@ -5170,16 +5185,22 @@ var STextarea = /* @__PURE__ */ react.forwardRef(function STextarea2({
5170
5185
  },
5171
5186
  [ref]
5172
5187
  );
5188
+ const autoSizedRef = react.useRef(false);
5189
+ const styleHeight = textareaStyle?.height;
5173
5190
  react.useLayoutEffect(() => {
5174
5191
  const el = innerRef.current;
5175
5192
  if (el == null) return;
5176
5193
  if (!autogrow) {
5177
- el.style.height = "";
5194
+ if (autoSizedRef.current) {
5195
+ el.style.height = typeof styleHeight === "number" ? `${styleHeight}px` : styleHeight ?? "";
5196
+ autoSizedRef.current = false;
5197
+ }
5178
5198
  return;
5179
5199
  }
5180
5200
  el.style.height = "auto";
5181
5201
  el.style.height = `${el.scrollHeight}px`;
5182
- }, [autogrow, maxHeight, minHeight, rows, value]);
5202
+ autoSizedRef.current = true;
5203
+ }, [autogrow, maxHeight, minHeight, rows, styleHeight, value]);
5183
5204
  useFormField({
5184
5205
  name: rest.name,
5185
5206
  validate: () => {
@@ -18794,7 +18815,8 @@ function SCalendar({
18794
18815
  className: cn(
18795
18816
  "flex h-[var(--cmp-datepicker-calendar-day-circle-size)] w-[var(--cmp-datepicker-calendar-day-circle-size)] items-center justify-center rounded-[var(--cmp-datepicker-calendar-day-circle-radius)] border border-solid border-transparent text-[14px] leading-[var(--cmp-datepicker-calendar-day-circle-size)]",
18796
18817
  selected ? "bg-[var(--cmp-datepicker-calendar-day-select-bg)] text-[color:var(--cmp-datepicker-calendar-day-select-text)]" : disabled ? "text-[color:var(--cmp-datepicker-calendar-day-disabled-text)]" : "text-[color:var(--cmp-datepicker-calendar-day-default-text)] hover:border-[color:var(--cmp-datepicker-calendar-day-hover-border)] hover:text-[color:var(--cmp-datepicker-calendar-day-hover-text)]",
18797
- isToday && !disabled && "font-bold"
18818
+ // 오늘: datepicker.calendar.day.typography.bold (→ typography.field.md.bold) 의 굵기
18819
+ isToday && !disabled && "font-semibold"
18798
18820
  ),
18799
18821
  children: cell.inCurrentMonth ? cell.day : ""
18800
18822
  }
@@ -19522,7 +19544,8 @@ function RangeCalendar({
19522
19544
  "relative z-[1] flex h-[var(--cmp-datepicker-calendar-day-circle-size)] w-[var(--cmp-datepicker-calendar-day-circle-size)] items-center justify-center rounded-[var(--cmp-datepicker-calendar-day-circle-radius)] border border-solid border-transparent bg-transparent text-[14px]",
19523
19545
  !cell.inCurrentMonth ? "invisible pointer-events-none" : disabled ? "cursor-not-allowed" : "cursor-pointer",
19524
19546
  isEdge ? "bg-[var(--cmp-datepicker-calendar-day-select-bg)] text-[color:var(--cmp-datepicker-calendar-day-select-text)]" : disabled ? "text-[color:var(--cmp-datepicker-calendar-day-disabled-text)]" : "text-[color:var(--cmp-datepicker-calendar-day-default-text)] hover:border-[color:var(--cmp-datepicker-calendar-day-hover-border)] hover:text-[color:var(--cmp-datepicker-calendar-day-hover-text)]",
19525
- isToday && !disabled && "font-bold"
19547
+ // 오늘: datepicker.calendar.day.typography.bold (→ typography.field.md.bold) 의 굵기
19548
+ isToday && !disabled && "font-semibold"
19526
19549
  ),
19527
19550
  children: cell.inCurrentMonth ? cell.day : ""
19528
19551
  }
@@ -21754,32 +21777,57 @@ var SLineChart = /* @__PURE__ */ react.forwardRef(function SLineChart2({
21754
21777
  `area-gradient-${seriesIndex}`
21755
21778
  )) });
21756
21779
  }, [area, plotted, colorAt, gradientId]);
21757
- const lines = react.useMemo(
21780
+ const linePaths = react.useMemo(
21758
21781
  () => plotted.flatMap(
21759
- (row, seriesIndex) => runsOf(row).map((run, runIndex) => {
21782
+ (row, seriesIndex) => runsOf(row).flatMap((run, runIndex) => {
21760
21783
  const d = linePath(run, smooth);
21761
- if (!d) return null;
21762
- return /* @__PURE__ */ jsxRuntime.jsx(
21784
+ return d ? [{ key: `${seriesIndex}-${runIndex}`, seriesIndex, d }] : [];
21785
+ })
21786
+ ),
21787
+ [plotted, smooth]
21788
+ );
21789
+ const strokeShape = {
21790
+ strokeWidth: LINE_WIDTH,
21791
+ strokeDasharray: lineStyle === "dashed" ? LINE_DASH : void 0
21792
+ };
21793
+ const lines = linePaths.map(({ key, seriesIndex, d }) => /* @__PURE__ */ jsxRuntime.jsx(
21794
+ "path",
21795
+ {
21796
+ "aria-hidden": true,
21797
+ d,
21798
+ fill: "none",
21799
+ strokeLinecap: "round",
21800
+ strokeLinejoin: "round",
21801
+ style: { ...strokeShape, stroke: colorAt(seriesIndex), strokeOpacity: LINE_OPACITY }
21802
+ },
21803
+ `line-${key}`
21804
+ ));
21805
+ const areaMaskId = `${gradientId}-area-mask`;
21806
+ const areaMask = area ? /* @__PURE__ */ jsxRuntime.jsxs(
21807
+ "mask",
21808
+ {
21809
+ id: areaMaskId,
21810
+ maskUnits: "userSpaceOnUse",
21811
+ x: 0,
21812
+ y: 0,
21813
+ width: size.width,
21814
+ height: size.height,
21815
+ children: [
21816
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { x: 0, y: 0, width: size.width, height: size.height, style: { fill: "white" } }),
21817
+ linePaths.map(({ key, d }) => /* @__PURE__ */ jsxRuntime.jsx(
21763
21818
  "path",
21764
21819
  {
21765
- "aria-hidden": true,
21766
21820
  d,
21767
21821
  fill: "none",
21768
21822
  strokeLinecap: "round",
21769
21823
  strokeLinejoin: "round",
21770
- style: {
21771
- stroke: colorAt(seriesIndex),
21772
- strokeWidth: LINE_WIDTH,
21773
- strokeOpacity: LINE_OPACITY,
21774
- strokeDasharray: lineStyle === "dashed" ? LINE_DASH : void 0
21775
- }
21824
+ style: { ...strokeShape, stroke: "black" }
21776
21825
  },
21777
- `line-${seriesIndex}-${runIndex}`
21778
- );
21779
- })
21780
- ),
21781
- [plotted, smooth, colorAt, lineStyle]
21782
- );
21826
+ `mask-${key}`
21827
+ ))
21828
+ ]
21829
+ }
21830
+ ) : null;
21783
21831
  const { pointHalos, pointDots } = react.useMemo(() => {
21784
21832
  const halos = [];
21785
21833
  const dots = [];
@@ -21953,7 +22001,8 @@ var SLineChart = /* @__PURE__ */ react.forwardRef(function SLineChart2({
21953
22001
  }
21954
22002
  ),
21955
22003
  areaGradients,
21956
- areas,
22004
+ areaMask,
22005
+ area && /* @__PURE__ */ jsxRuntime.jsx("g", { mask: `url(#${areaMaskId})`, children: areas }),
21957
22006
  lines,
21958
22007
  pointHalos,
21959
22008
  pointDots,
@@ -22649,10 +22698,13 @@ var SKELETON_TYPES = [
22649
22698
  "switch"
22650
22699
  ];
22651
22700
  var SKELETON_ANIMATIONS = ["wave", "pulse", "fade", "none"];
22701
+ var SKELETON_MODES = ["light", "dark"];
22652
22702
  var SKELETON_TYPE_CONFIG = {
22653
- rect: { radius: "var(--sys-radius-control-sm)" },
22703
+ rect: { radius: "var(--cmp-skeleton-radius)" },
22654
22704
  circle: { width: "48px", height: "48px", radius: "50%" },
22655
- text: { radius: "var(--sys-radius-control-sm)" },
22705
+ // 세로를 절반(scale-y-50)으로 줄여 그리므로 세로 반지름을 두 배로 줘야 모서리가 둥글게 남는다.
22706
+ // 칠하는 높이가 한 줄의 절반이라 스켈레톤 radius 는 알약처럼 보여 한 단계 작은 값을 쓴다
22707
+ text: { radius: "var(--radius-2) / calc(var(--radius-2) * 2)" },
22656
22708
  button: {
22657
22709
  width: "90px",
22658
22710
  height: "var(--cmp-button-sm-height)",
@@ -22676,13 +22728,18 @@ var SKELETON_TYPE_CONFIG = {
22676
22728
  radius: "var(--cmp-switch-radius)"
22677
22729
  }
22678
22730
  };
22731
+ var wave = (alpha) => `linear-gradient(90deg, transparent, color-mix(in srgb, var(--cmp-skeleton-highlight) ${alpha}, transparent), transparent)`;
22679
22732
  var SKELETON_COLORS = {
22680
- /** Quasar rgba(0,0,0,.12) ≈ 흰 바탕 위 #E1E1E1 */
22681
- bg: "var(--sys-color-disabled-bg)",
22682
- /** Quasar rgba(0,0,0,.05) 테두리 — 배경보다 한 단계 짙게 */
22683
- border: "color-mix(in srgb, var(--sys-color-border-strong) 25%, transparent)",
22684
- /** Quasar rgba(255,255,255,.5) 하이라이트 띠 */
22685
- wave: "linear-gradient(90deg, transparent, color-mix(in srgb, var(--sys-color-bg-frame) 50%, transparent), transparent)"
22733
+ light: {
22734
+ bg: "color-mix(in srgb, var(--cmp-skeleton-bg-dark) var(--cmp-skeleton-opacity), transparent)",
22735
+ /** Quasar rgba(255,255,255,.5) 하이라이트 띠 */
22736
+ wave: wave("50%")
22737
+ },
22738
+ dark: {
22739
+ bg: "color-mix(in srgb, var(--cmp-skeleton-bg-light) var(--cmp-skeleton-opacity), transparent)",
22740
+ /** 어두운 면에서 50% 흰 띠는 너무 튀어 바탕과 같은 투명도로 낮춘다 (Quasar dark 도 .1) */
22741
+ wave: wave("var(--cmp-skeleton-opacity)")
22742
+ }
22686
22743
  };
22687
22744
  var ANIMATION_CLASS = {
22688
22745
  pulse: "animate-skeleton-pulse",
@@ -22691,10 +22748,10 @@ var ANIMATION_CLASS = {
22691
22748
  var toCss = (v) => typeof v === "number" ? `${v}px` : v;
22692
22749
  var SSkeleton = /* @__PURE__ */ react.forwardRef(function SSkeleton2({
22693
22750
  type = "rect",
22751
+ mode = "light",
22694
22752
  animation = "wave",
22695
22753
  animationSpeed = 1500,
22696
22754
  square = false,
22697
- bordered = false,
22698
22755
  size,
22699
22756
  width,
22700
22757
  height,
@@ -22703,6 +22760,7 @@ var SSkeleton = /* @__PURE__ */ react.forwardRef(function SSkeleton2({
22703
22760
  ...props
22704
22761
  }, ref) {
22705
22762
  const t = SKELETON_TYPE_CONFIG[type];
22763
+ const colors = SKELETON_COLORS[mode];
22706
22764
  const duration = `${animationSpeed}ms`;
22707
22765
  return /* @__PURE__ */ jsxRuntime.jsxs(
22708
22766
  "div",
@@ -22714,7 +22772,6 @@ var SSkeleton = /* @__PURE__ */ react.forwardRef(function SSkeleton2({
22714
22772
  "box-border cursor-wait select-none",
22715
22773
  // text 는 transform 이 아니라 scale 속성으로 줄여서 pulse 의 transform 애니메이션과 겹치지 않는다
22716
22774
  type === "text" && "scale-y-50",
22717
- bordered && "border border-solid",
22718
22775
  animation === "wave" && "relative overflow-hidden",
22719
22776
  animation !== "wave" && animation !== "none" && ANIMATION_CLASS[animation],
22720
22777
  "motion-reduce:animate-none",
@@ -22724,8 +22781,7 @@ var SSkeleton = /* @__PURE__ */ react.forwardRef(function SSkeleton2({
22724
22781
  width: toCss(width ?? size) ?? t.width,
22725
22782
  height: toCss(height ?? size) ?? t.height,
22726
22783
  borderRadius: square ? 0 : t.radius,
22727
- background: SKELETON_COLORS.bg,
22728
- borderColor: bordered ? SKELETON_COLORS.border : void 0,
22784
+ background: colors.bg,
22729
22785
  animationDuration: animation === "pulse" || animation === "fade" ? duration : void 0,
22730
22786
  ...style
22731
22787
  },
@@ -22735,13 +22791,81 @@ var SSkeleton = /* @__PURE__ */ react.forwardRef(function SSkeleton2({
22735
22791
  "span",
22736
22792
  {
22737
22793
  className: "absolute inset-0 animate-skeleton-wave motion-reduce:hidden",
22738
- style: { background: SKELETON_COLORS.wave, animationDuration: duration }
22794
+ style: {
22795
+ background: colors.wave,
22796
+ animationDuration: duration,
22797
+ transform: "translateX(-100%)"
22798
+ }
22739
22799
  }
22740
22800
  )
22741
22801
  ]
22742
22802
  }
22743
22803
  );
22744
22804
  });
22805
+ var STimelineImpl = /* @__PURE__ */ react.forwardRef(function STimeline({ groups, emptyText = "\uB0B4\uC5ED\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.", className, ...rest }, ref) {
22806
+ const filled = groups.filter((group) => group.entries.length > 0);
22807
+ if (filled.length === 0) {
22808
+ return /* @__PURE__ */ jsxRuntime.jsx(
22809
+ "div",
22810
+ {
22811
+ ref,
22812
+ className: cn(
22813
+ "typo-body-sm-default flex h-full items-center justify-center text-[color:var(--cmp-timeline-empty-color)]",
22814
+ className
22815
+ ),
22816
+ ...rest,
22817
+ children: emptyText
22818
+ }
22819
+ );
22820
+ }
22821
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex flex-col", className), ...rest, children: filled.map((group, groupIndex) => {
22822
+ const isLastGroup = groupIndex === filled.length - 1;
22823
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { children: [
22824
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "typo-body-sm-bold py-[var(--cmp-timeline-heading-paddingY)] text-[color:var(--cmp-timeline-heading-color)]", children: group.heading }),
22825
+ /* @__PURE__ */ jsxRuntime.jsx("ol", { className: "m-0 flex list-none flex-col p-0", children: group.entries.map((entry, entryIndex) => {
22826
+ const isFirstEntry = entryIndex === 0;
22827
+ const isLastEntry = entryIndex === group.entries.length - 1;
22828
+ return (
22829
+ // 시각 열 너비는 토큰이 없다 — 줄마다 grid 가 따로라 auto 로 두면 열이 어긋나므로 고정한다.
22830
+ /* @__PURE__ */ jsxRuntime.jsxs(
22831
+ "li",
22832
+ {
22833
+ className: "grid grid-cols-[52px_var(--cmp-timeline-rail-dot-size)_minmax(0,1fr)]",
22834
+ children: [
22835
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "typo-body-sm-medium whitespace-nowrap pr-[var(--cmp-timeline-entry-horizontalGap)] text-right text-[color:var(--cmp-timeline-time-color)]", children: entry.time }),
22836
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { "aria-hidden": true, className: "relative", children: [
22837
+ !(isLastGroup && isLastEntry) && /* @__PURE__ */ jsxRuntime.jsx(
22838
+ "span",
22839
+ {
22840
+ className: cn(
22841
+ "absolute left-1/2 w-[var(--cmp-timeline-rail-line-width)] -translate-x-1/2 bg-[var(--cmp-timeline-rail-line-color)]",
22842
+ isFirstEntry && groupIndex > 0 ? "top-0" : "top-[14px]",
22843
+ isLastEntry ? "bottom-0" : "bottom-[-8px]"
22844
+ )
22845
+ }
22846
+ ),
22847
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute left-0 top-[6px] size-[var(--cmp-timeline-rail-dot-size)] rounded-[var(--cmp-timeline-rail-dot-radius)] bg-[var(--cmp-timeline-rail-dot-bg)]" })
22848
+ ] }),
22849
+ /* @__PURE__ */ jsxRuntime.jsx(
22850
+ "div",
22851
+ {
22852
+ className: cn(
22853
+ "min-w-0 pl-[var(--cmp-timeline-entry-horizontalGap)]",
22854
+ !isLastEntry && "pb-[var(--cmp-timeline-entry-gap)]"
22855
+ ),
22856
+ children: entry.content
22857
+ }
22858
+ )
22859
+ ]
22860
+ },
22861
+ entry.key
22862
+ )
22863
+ );
22864
+ }) })
22865
+ ] }, group.key ?? groupIndex);
22866
+ }) });
22867
+ });
22868
+ var STimeline2 = /* @__PURE__ */ withDisplayName(STimelineImpl, "STimeline");
22745
22869
  var SForm = /* @__PURE__ */ react.forwardRef(function SForm2({ formClassName, onSubmit, onValidationError, children, className, style }, ref) {
22746
22870
  const formRef = react.useRef(null);
22747
22871
  const fieldsRef = react.useRef(/* @__PURE__ */ new Set());
@@ -22827,6 +22951,7 @@ function SRadioButton({
22827
22951
  value,
22828
22952
  size = "sm",
22829
22953
  disabled = false,
22954
+ readOnly = false,
22830
22955
  name,
22831
22956
  showTooltip = false,
22832
22957
  onValueChange,
@@ -22844,11 +22969,13 @@ function SRadioButton({
22844
22969
  {
22845
22970
  role: "radiogroup",
22846
22971
  "aria-disabled": disabled,
22972
+ "aria-readonly": readOnly || void 0,
22847
22973
  className: cn("inline-flex isolate", className),
22848
22974
  style,
22849
22975
  children: options.map((o, i) => {
22850
22976
  const selected = o.value === value;
22851
22977
  const od = disabled || o.disabled;
22978
+ const ro = readOnly && !od;
22852
22979
  const first = i === 0;
22853
22980
  const last = i === options.length - 1;
22854
22981
  const tooltip = showTooltip && o.tooltip ? o.tooltip : void 0;
@@ -22860,7 +22987,7 @@ function SRadioButton({
22860
22987
  name,
22861
22988
  "aria-checked": selected,
22862
22989
  disabled: od,
22863
- onClick: () => !od && !selected && onValueChange?.(o.value),
22990
+ onClick: () => !od && !ro && !selected && onValueChange?.(o.value),
22864
22991
  onMouseEnter: tooltip ? () => setHoveredValue(o.value) : void 0,
22865
22992
  onMouseLeave: tooltip ? () => setHoveredValue(null) : void 0,
22866
22993
  onFocus: tooltip ? () => setHoveredValue(o.value) : void 0,
@@ -22869,8 +22996,8 @@ function SRadioButton({
22869
22996
  "relative box-border grow inline-flex items-center justify-center whitespace-nowrap border border-solid font-medium transition-colors",
22870
22997
  first ? "" : "-ml-px",
22871
22998
  selected ? "z-10" : "",
22872
- !od && !selected && "hover:!bg-[var(--cmp-radioButton-bg-hover)] hover:!text-[color:var(--cmp-radioButton-content-hover)] hover:!border-[color:var(--cmp-radioButton-bg-hover)] hover:z-10",
22873
- od ? "cursor-not-allowed" : "cursor-pointer"
22999
+ !od && !ro && !selected && "hover:!bg-[var(--cmp-radioButton-bg-hover)] hover:!text-[color:var(--cmp-radioButton-content-hover)] hover:!border-[color:var(--cmp-radioButton-bg-hover)] hover:z-10",
23000
+ od ? "cursor-not-allowed" : ro ? "cursor-default" : "cursor-pointer"
22874
23001
  ),
22875
23002
  style: {
22876
23003
  height: `var(--cmp-radioButton-${size}-height)`,
@@ -22883,9 +23010,9 @@ function SRadioButton({
22883
23010
  last ? s.radius : "0",
22884
23011
  first ? s.radius : "0"
22885
23012
  ].join(" "),
22886
- background: od ? "var(--cmp-radioButton-bg-disabled)" : "var(--cmp-radioButton-bg-default)",
22887
- borderColor: od ? "var(--cmp-radioButton-border-disabled)" : selected ? "var(--cmp-radioButton-border-select)" : "var(--cmp-radioButton-border-default)",
22888
- color: od ? "var(--cmp-radioButton-content-disabled)" : selected ? "var(--cmp-radioButton-content-select)" : "var(--cmp-radioButton-content-default)"
23013
+ background: od ? "var(--cmp-radioButton-bg-disabled)" : ro ? "var(--cmp-radioButton-bg-readOnly)" : "var(--cmp-radioButton-bg-default)",
23014
+ borderColor: od ? "var(--cmp-radioButton-border-disabled)" : selected ? ro ? "var(--cmp-radioButton-border-readOnly)" : "var(--cmp-radioButton-border-select)" : "var(--cmp-radioButton-border-default)",
23015
+ color: od ? "var(--cmp-radioButton-content-disabled)" : selected && !ro ? "var(--cmp-radioButton-content-select)" : "var(--cmp-radioButton-content-default)"
22889
23016
  },
22890
23017
  children: o.label
22891
23018
  },
@@ -28598,6 +28725,7 @@ exports.SIcon = SIcon;
28598
28725
  exports.SImage = SImage;
28599
28726
  exports.SInput = SInput;
28600
28727
  exports.SKELETON_ANIMATIONS = SKELETON_ANIMATIONS;
28728
+ exports.SKELETON_MODES = SKELETON_MODES;
28601
28729
  exports.SKELETON_TYPES = SKELETON_TYPES;
28602
28730
  exports.SKELETON_TYPE_CONFIG = SKELETON_TYPE_CONFIG;
28603
28731
  exports.SKeyValueTable = SKeyValueTable;
@@ -28648,6 +28776,7 @@ exports.STextLink = STextLink;
28648
28776
  exports.STextarea = STextarea;
28649
28777
  exports.STimePicker = STimePicker;
28650
28778
  exports.STimeRangePicker = STimeRangePicker;
28779
+ exports.STimeline = STimeline2;
28651
28780
  exports.SToast = SToast;
28652
28781
  exports.SToastContainer = SToastContainer;
28653
28782
  exports.SToggle = SToggle;