@nation-a/ui 0.16.4 → 0.16.6

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/README.md CHANGED
@@ -8,6 +8,7 @@ Nation-A 디자인 시스템의 UI 컴포넌트 라이브러리입니다. 모던
8
8
  - **접근성 중심**: Ark UI를 활용한 접근성 준수 컴포넌트
9
9
  - **테마 지원**: 다크모드와 라이트모드를 포함한 테마 지원
10
10
  - **Storybook 문서화**: 모든 컴포넌트에 대한 사용 예시와 문서
11
+ - **테스트**: 컴포넌트 테스트를 통한 품질 보장
11
12
 
12
13
  ## 설치
13
14
 
@@ -42,6 +43,33 @@ pnpm panda
42
43
  pnpm build
43
44
  ```
44
45
 
46
+ ## 테스트
47
+
48
+ ```bash
49
+ # 모든 테스트 실행
50
+ pnpm test
51
+
52
+ # 감시 모드로 테스트 실행
53
+ pnpm test:watch
54
+
55
+ # 테스트 커버리지 확인
56
+ pnpm test:coverage
57
+
58
+ # 새 컴포넌트를 위한 테스트 파일 생성
59
+ pnpm generate-tests
60
+ ```
61
+
62
+ ### 테스트 환경
63
+
64
+ 테스트 환경은 다음 도구를 사용합니다:
65
+
66
+ - Vitest - 테스트 실행기
67
+ - React Testing Library - React 컴포넌트 테스트
68
+ - Happy DOM - DOM 시뮬레이션
69
+ - Jest DOM - DOM 매처 확장
70
+
71
+ 자세한 내용은 `src/test/README.md`를 참조하세요.
72
+
45
73
  ## 의존성
46
74
 
47
75
  - React 18.x
package/dist/index.cjs CHANGED
@@ -298,7 +298,7 @@ function normalizeHTMLProps(props) {
298
298
  return Object.fromEntries(Object.entries(props).map(([key, value]) => [convert(key), value]));
299
299
  }
300
300
  normalizeHTMLProps.keys = htmlProps;
301
- const conditionsStr = "_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_collapsed,_off,_on,sm,smOnly,smDown,md,mdOnly,mdDown,lg,lgOnly,lgDown,xl,xlOnly,xlDown,2xl,2xlOnly,2xlDown,smToMd,smToLg,smToXl,smTo2xl,mdToLg,mdToXl,mdTo2xl,lgToXl,lgTo2xl,xlTo2xl,base";
301
+ const conditionsStr = "_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_collapsed,_off,_on,xs,xsOnly,xsDown,sm,smOnly,smDown,md,mdOnly,mdDown,lg,lgOnly,lgDown,xl,xlOnly,xlDown,2xl,2xlOnly,2xlDown,xsToSm,xsToMd,xsToLg,xsToXl,xsTo2xl,smToMd,smToLg,smToXl,smTo2xl,mdToLg,mdToXl,mdTo2xl,lgToXl,lgTo2xl,xlTo2xl,base";
302
302
  const conditions$1 = new Set(conditionsStr.split(","));
303
303
  const conditionRegex = /^@|&|&$/;
304
304
  function isCondition(value) {
@@ -344,7 +344,7 @@ const context = {
344
344
  conditions: {
345
345
  shift: sortConditions,
346
346
  finalize: finalizeConditions,
347
- breakpoints: { keys: ["base", "sm", "md", "lg", "xl", "2xl"] }
347
+ breakpoints: { keys: ["base", "xs", "sm", "md", "lg", "xl", "2xl"] }
348
348
  },
349
349
  utility: {
350
350
  transform: (prop, value) => {
@@ -802,7 +802,7 @@ const Spinner = React.forwardRef(({ className, size: size2, color: color2, ...pr
802
802
  setLottieComponent(() => mod.default);
803
803
  });
804
804
  }, []);
805
- return /* @__PURE__ */ jsxRuntime.jsx(Box2, { ref, ...props, className: cx(spinnerRecipe({ size: size2 }), css$1({ color: color2 }), className), children: LottieComponent && /* @__PURE__ */ jsxRuntime.jsx(
805
+ return /* @__PURE__ */ jsxRuntime.jsx(Box2, { ref, id: "spinner", ...props, className: cx(spinnerRecipe({ size: size2 }), css$1({ color: color2 }), className), children: LottieComponent && /* @__PURE__ */ jsxRuntime.jsx(
806
806
  LottieComponent,
807
807
  {
808
808
  options: {
@@ -9952,7 +9952,18 @@ const TabsRoot = React.forwardRef((props, ref) => {
9952
9952
  return /* @__PURE__ */ jsxRuntime.jsx(TabsProvider, { value: tabs, children: /* @__PURE__ */ jsxRuntime.jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsxRuntime.jsx(ark.div, { ...mergedProps, ref }) }) });
9953
9953
  });
9954
9954
  TabsRoot.displayName = "TabsRoot";
9955
- const Button = ({ loading, disabled, loadingText, children, color: color2, variant, size: size2, radius, ...rest }) => {
9955
+ const Button = ({
9956
+ loading,
9957
+ disabled,
9958
+ loadingText,
9959
+ children,
9960
+ color: color2,
9961
+ variant,
9962
+ size: size2,
9963
+ radius,
9964
+ onClick,
9965
+ ...rest
9966
+ }) => {
9956
9967
  const StyledButton = styled(ark.button, buttonRecipe);
9957
9968
  return /* @__PURE__ */ jsxRuntime.jsx(
9958
9969
  StyledButton,
@@ -9963,6 +9974,7 @@ const Button = ({ loading, disabled, loadingText, children, color: color2, varia
9963
9974
  size: size2,
9964
9975
  radius,
9965
9976
  css: { pointerEvents: loading ? "none" : "auto" },
9977
+ onClick: disabled || loading ? void 0 : onClick,
9966
9978
  ...rest,
9967
9979
  children: loading ? loadingText || /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9968
9980
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -10196,16 +10208,16 @@ const dialogRecipe = sva({
10196
10208
  }
10197
10209
  }
10198
10210
  });
10199
- const { withRootProvider: withRootProvider$3, withContext: withContext$6 } = createStyleContext(dialogRecipe);
10200
- const Root$7 = withRootProvider$3(DialogRoot);
10201
- const Backdrop$1 = withContext$6(DialogBackdrop, "backdrop");
10202
- const Trigger$3 = withContext$6(DialogTrigger, "trigger");
10203
- const Content$4 = withContext$6(DialogContent, "content");
10204
- const Title = withContext$6(DialogTitle, "title");
10205
- const Description$2 = withContext$6(DialogDescription, "description");
10206
- const Positioner = withContext$6(DialogPositioner, "positioner");
10207
- const Header$1 = withContext$6(ark.header, "header");
10208
- const Footer = withContext$6(
10211
+ const { withRootProvider: withRootProvider$4, withContext: withContext$7 } = createStyleContext(dialogRecipe);
10212
+ const Root$8 = withRootProvider$4(DialogRoot);
10213
+ const Backdrop$1 = withContext$7(DialogBackdrop, "backdrop");
10214
+ const Trigger$3 = withContext$7(DialogTrigger, "trigger");
10215
+ const Content$4 = withContext$7(DialogContent, "content");
10216
+ const Title = withContext$7(DialogTitle, "title");
10217
+ const Description$2 = withContext$7(DialogDescription, "description");
10218
+ const Positioner = withContext$7(DialogPositioner, "positioner");
10219
+ const Header$1 = withContext$7(ark.header, "header");
10220
+ const Footer = withContext$7(
10209
10221
  ({ orientation = "horizontal", className, ...props }) => {
10210
10222
  return /* @__PURE__ */ jsxRuntime.jsx(
10211
10223
  ark.footer,
@@ -10223,10 +10235,10 @@ const Footer = withContext$6(
10223
10235
  },
10224
10236
  "footer"
10225
10237
  );
10226
- const Body = withContext$6(ark.main, "body");
10227
- const CloseTrigger = withContext$6(DialogCloseTrigger, "closeTrigger");
10238
+ const Body = withContext$7(ark.main, "body");
10239
+ const CloseTrigger = withContext$7(DialogCloseTrigger, "closeTrigger");
10228
10240
  const Dialog = {
10229
- Root: Root$7,
10241
+ Root: Root$8,
10230
10242
  Backdrop: Backdrop$1,
10231
10243
  Trigger: Trigger$3,
10232
10244
  Content: Content$4,
@@ -19365,20 +19377,20 @@ const navigationRecipe = sva({
19365
19377
  }
19366
19378
  }
19367
19379
  });
19368
- const { withRootProvider: withRootProvider$2, withContext: withContext$5 } = createStyleContext(navigationRecipe);
19369
- const Root$6 = withRootProvider$2(TabsRoot);
19370
- const Trigger$2 = withContext$5(
19380
+ const { withRootProvider: withRootProvider$3, withContext: withContext$6 } = createStyleContext(navigationRecipe);
19381
+ const Root$7 = withRootProvider$3(TabsRoot);
19382
+ const Trigger$2 = withContext$6(
19371
19383
  ({ icon, label, ...props }) => /* @__PURE__ */ jsxRuntime.jsxs(TabTrigger, { ...props, children: [
19372
19384
  icon,
19373
19385
  label
19374
19386
  ] }),
19375
19387
  "trigger"
19376
19388
  );
19377
- const List$1 = withContext$5(TabList, "list");
19389
+ const List$2 = withContext$6(TabList, "list");
19378
19390
  const Navigation = {
19379
- Root: Root$6,
19391
+ Root: Root$7,
19380
19392
  Item: Trigger$2,
19381
- List: List$1
19393
+ List: List$2
19382
19394
  };
19383
19395
  const tagRecipe = cva({
19384
19396
  base: {
@@ -20142,15 +20154,15 @@ const tabsRecipe = sva({
20142
20154
  shadow: false
20143
20155
  }
20144
20156
  });
20145
- const { withRootProvider: withRootProvider$1, withContext: withContext$4 } = createStyleContext(tabsRecipe);
20146
- const Root$5 = withRootProvider$1(TabsRoot);
20147
- const List = withContext$4(TabList, "list");
20148
- const Trigger$1 = withContext$4(TabTrigger, "trigger");
20149
- const Content$2 = withContext$4(TabContent, "content");
20150
- const Indicator$1 = withContext$4(TabIndicator, "indicator");
20151
- const Tabs = Object.assign(Root$5, {
20152
- Root: Root$5,
20153
- List,
20157
+ const { withRootProvider: withRootProvider$2, withContext: withContext$5 } = createStyleContext(tabsRecipe);
20158
+ const Root$6 = withRootProvider$2(TabsRoot);
20159
+ const List$1 = withContext$5(TabList, "list");
20160
+ const Trigger$1 = withContext$5(TabTrigger, "trigger");
20161
+ const Content$2 = withContext$5(TabContent, "content");
20162
+ const Indicator$1 = withContext$5(TabIndicator, "indicator");
20163
+ const Tabs = Object.assign(Root$6, {
20164
+ Root: Root$6,
20165
+ List: List$1,
20154
20166
  Trigger: Trigger$1,
20155
20167
  Content: Content$2,
20156
20168
  Indicator: Indicator$1
@@ -20635,13 +20647,13 @@ const toastRecipe = sva({
20635
20647
  }
20636
20648
  });
20637
20649
  const DEFAULT_DURATION = 3e3;
20638
- const Root$4 = React.forwardRef(
20650
+ const Root$5 = React.forwardRef(
20639
20651
  ({ children, className, width = "fit", ...props }, ref) => {
20640
20652
  const styles2 = toastRecipe({ width });
20641
20653
  return /* @__PURE__ */ jsxRuntime.jsx(Box$1, { ref, className: cx(styles2.root, className), ...props, children });
20642
20654
  }
20643
20655
  );
20644
- Root$4.displayName = "Toast.Root";
20656
+ Root$5.displayName = "Toast.Root";
20645
20657
  const Content$1 = React.forwardRef(
20646
20658
  ({ children, className }, ref) => {
20647
20659
  const styles2 = toastRecipe();
@@ -20687,7 +20699,7 @@ Toaster.displayName = "Toast.Toaster";
20687
20699
  const Toast = React.forwardRef((props, ref) => {
20688
20700
  return /* @__PURE__ */ jsxRuntime.jsx(Box$1, { ref, ...props });
20689
20701
  });
20690
- Toast.Root = Root$4;
20702
+ Toast.Root = Root$5;
20691
20703
  Toast.Content = Content$1;
20692
20704
  Toast.Description = Description$1;
20693
20705
  Toast.Icon = Icon;
@@ -20879,27 +20891,27 @@ const selectRecipe = sva({
20879
20891
  disabled: false
20880
20892
  }
20881
20893
  });
20882
- const { withRootProvider, withContext: withContext$3 } = createStyleContext(selectRecipe);
20883
- const Root$3 = withRootProvider(withContext$3(SelectRoot, "root"));
20884
- const Label$2 = withContext$3(SelectLabel, "label");
20885
- const Trigger = withContext$3(({ description, ...props }) => {
20894
+ const { withRootProvider: withRootProvider$1, withContext: withContext$4 } = createStyleContext(selectRecipe);
20895
+ const Root$4 = withRootProvider$1(withContext$4(SelectRoot, "root"));
20896
+ const Label$2 = withContext$4(SelectLabel, "label");
20897
+ const Trigger = withContext$4(({ description, ...props }) => {
20886
20898
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
20887
20899
  /* @__PURE__ */ jsxRuntime.jsx(SelectTrigger, { ...props }),
20888
20900
  description && /* @__PURE__ */ jsxRuntime.jsx(Description, { text: description })
20889
20901
  ] });
20890
20902
  }, "trigger");
20891
- const ValueText = withContext$3(SelectValueText, "valueText");
20892
- const Description = withContext$3(({ className, text, ...props }) => {
20903
+ const ValueText = withContext$4(SelectValueText, "valueText");
20904
+ const Description = withContext$4(({ className, text, ...props }) => {
20893
20905
  return /* @__PURE__ */ jsxRuntime.jsx(Text, { className, ...props, children: text });
20894
20906
  }, "description");
20895
- const Content = withContext$3(SelectContent, "content");
20896
- const Item$1 = withContext$3(SelectItem, "item");
20907
+ const Content = withContext$4(SelectContent, "content");
20908
+ const Item$2 = withContext$4(SelectItem, "item");
20897
20909
  const Select = {
20898
- Root: Root$3,
20910
+ Root: Root$4,
20899
20911
  Label: Label$2,
20900
20912
  Trigger,
20901
20913
  Content,
20902
- Item: Item$1,
20914
+ Item: Item$2,
20903
20915
  ValueText,
20904
20916
  Description
20905
20917
  };
@@ -20970,27 +20982,27 @@ const radioGroupRecipe = sva({
20970
20982
  }
20971
20983
  }
20972
20984
  });
20973
- const { withProvider: withProvider$2, withContext: withContext$2 } = createStyleContext(radioGroupRecipe);
20985
+ const { withProvider: withProvider$2, withContext: withContext$3 } = createStyleContext(radioGroupRecipe);
20974
20986
  withProvider$2(RadioGroupRootProvider, "root");
20975
- const Root$2 = withProvider$2(RadioGroupRoot, "root");
20976
- const ItemControl = withContext$2(
20987
+ const Root$3 = withProvider$2(RadioGroupRoot, "root");
20988
+ const ItemControl = withContext$3(
20977
20989
  RadioGroupItemControl,
20978
20990
  "itemControl"
20979
20991
  );
20980
- const Item = withContext$2(
20992
+ const Item$1 = withContext$3(
20981
20993
  RadioGroupItem$1,
20982
20994
  "item"
20983
20995
  );
20984
- const ItemText = withContext$2(
20996
+ const ItemText = withContext$3(
20985
20997
  RadioGroupItemText,
20986
20998
  "itemText"
20987
20999
  );
20988
- const Label$1 = withContext$2(
21000
+ const Label$1 = withContext$3(
20989
21001
  RadioGroupLabel,
20990
21002
  "label"
20991
21003
  );
20992
- const RadioGroupItem = withContext$2(
20993
- ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsxs(Item, { ...props, children: [
21004
+ const RadioGroupItem = withContext$3(
21005
+ ({ children, ...props }) => /* @__PURE__ */ jsxRuntime.jsxs(Item$1, { ...props, children: [
20994
21006
  /* @__PURE__ */ jsxRuntime.jsx(ItemControl, {}),
20995
21007
  children && /* @__PURE__ */ jsxRuntime.jsx(ItemText, { children }),
20996
21008
  /* @__PURE__ */ jsxRuntime.jsx(RadioGroupItemHiddenInput, {})
@@ -20998,7 +21010,7 @@ const RadioGroupItem = withContext$2(
20998
21010
  "item"
20999
21011
  );
21000
21012
  const RadioGroup = {
21001
- Root: Root$2,
21013
+ Root: Root$3,
21002
21014
  Item: RadioGroupItem,
21003
21015
  Label: Label$1,
21004
21016
  Context: RadioGroupContext
@@ -21092,28 +21104,28 @@ const checkboxRecipe = sva({
21092
21104
  variant: "square"
21093
21105
  }
21094
21106
  });
21095
- const { withProvider: withProvider$1, withContext: withContext$1 } = createStyleContext(checkboxRecipe);
21107
+ const { withProvider: withProvider$1, withContext: withContext$2 } = createStyleContext(checkboxRecipe);
21096
21108
  withProvider$1(CheckboxRootProvider, "root");
21097
- const Root$1 = withProvider$1(CheckboxRoot, "root");
21098
- const Control$1 = withContext$1(
21109
+ const Root$2 = withProvider$1(CheckboxRoot, "root");
21110
+ const Control$1 = withContext$2(
21099
21111
  CheckboxControl,
21100
21112
  "control"
21101
21113
  );
21102
- withContext$1(
21114
+ withContext$2(
21103
21115
  CheckboxGroup,
21104
21116
  "group"
21105
21117
  );
21106
- const Indicator = withContext$1(
21118
+ const Indicator = withContext$2(
21107
21119
  CheckboxIndicator,
21108
21120
  "indicator"
21109
21121
  );
21110
- const Label = withContext$1(
21122
+ const Label = withContext$2(
21111
21123
  CheckboxLabel,
21112
21124
  "label"
21113
21125
  );
21114
21126
  const Checkbox = React.forwardRef((props, ref) => {
21115
21127
  const { children, ...rootProps } = props;
21116
- return /* @__PURE__ */ jsxRuntime.jsxs(Root$1, { ref, ...rootProps, children: [
21128
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root$2, { ref, ...rootProps, children: [
21117
21129
  /* @__PURE__ */ jsxRuntime.jsxs(Control$1, { children: [
21118
21130
  /* @__PURE__ */ jsxRuntime.jsx(Indicator, { children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, {}) }),
21119
21131
  /* @__PURE__ */ jsxRuntime.jsx(Indicator, { indeterminate: true, children: /* @__PURE__ */ jsxRuntime.jsx(MinusIcon, {}) })
@@ -21275,23 +21287,23 @@ const switchRecipe = sva({
21275
21287
  }
21276
21288
  }
21277
21289
  });
21278
- const { withProvider, withContext } = createStyleContext(switchRecipe);
21290
+ const { withProvider, withContext: withContext$1 } = createStyleContext(switchRecipe);
21279
21291
  withProvider(SwitchRootProvider, "root");
21280
- const Root = withProvider(SwitchRoot, "root");
21281
- const Control = withContext(
21292
+ const Root$1 = withProvider(SwitchRoot, "root");
21293
+ const Control = withContext$1(
21282
21294
  SwitchControl,
21283
21295
  "control"
21284
21296
  );
21285
- withContext(
21297
+ withContext$1(
21286
21298
  SwitchLabel,
21287
21299
  "label"
21288
21300
  );
21289
- const Thumb = withContext(
21301
+ const Thumb = withContext$1(
21290
21302
  SwitchThumb,
21291
21303
  "thumb"
21292
21304
  );
21293
21305
  const Switch = React.forwardRef((props, ref) => {
21294
- return /* @__PURE__ */ jsxRuntime.jsxs(Root, { ref, ...props, children: [
21306
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root$1, { ref, ...props, children: [
21295
21307
  /* @__PURE__ */ jsxRuntime.jsx(Control, { children: /* @__PURE__ */ jsxRuntime.jsx(Thumb, {}) }),
21296
21308
  /* @__PURE__ */ jsxRuntime.jsx(SwitchHiddenInput, {})
21297
21309
  ] });
@@ -21406,6 +21418,88 @@ const Fab = React.forwardRef(({ loading, disabled, children, color: color2, ...r
21406
21418
  });
21407
21419
  Fab.displayName = "Fab";
21408
21420
  const index = React.memo(withPolymorphicComponent(Fab));
21421
+ const listRecipe = sva({
21422
+ className: "list",
21423
+ slots: ["item", "root"],
21424
+ base: {
21425
+ root: {
21426
+ display: "flex",
21427
+ flexDir: "column",
21428
+ w: "full"
21429
+ },
21430
+ item: {
21431
+ gap: 2,
21432
+ py: 2,
21433
+ w: "full",
21434
+ rounded: "sm",
21435
+ transition: "background-color 0.1s ease-in-out",
21436
+ cursor: "pointer",
21437
+ "& .label": {
21438
+ color: "content.neutral.default"
21439
+ },
21440
+ "& .sub-label": {
21441
+ color: "content.neutral.subtlest"
21442
+ },
21443
+ _hover: {
21444
+ bg: "background.neutral.selected"
21445
+ },
21446
+ _disabled: {
21447
+ _hover: {
21448
+ bg: "transparent"
21449
+ },
21450
+ "& .label": {
21451
+ color: "content.neutral.disabled"
21452
+ },
21453
+ "& .sub-label": {
21454
+ color: "content.neutral.disabled"
21455
+ },
21456
+ cursor: "not-allowed"
21457
+ }
21458
+ }
21459
+ },
21460
+ variants: {
21461
+ size: {
21462
+ sm: {
21463
+ item: {
21464
+ h: "52px"
21465
+ }
21466
+ },
21467
+ lg: {
21468
+ item: { h: "68px" }
21469
+ }
21470
+ },
21471
+ density: {
21472
+ 1: { item: { px: 2 } },
21473
+ 2: { item: { pl: 12, pr: 2 } }
21474
+ }
21475
+ },
21476
+ defaultVariants: {
21477
+ size: "sm",
21478
+ density: 1
21479
+ }
21480
+ });
21481
+ const { withRootProvider, withContext } = createStyleContext(listRecipe);
21482
+ const Root = withRootProvider(withContext(styled.ul, "root"));
21483
+ const Item = withContext(
21484
+ ({ startAdornment, endAdornment, label, subLabel, disabled, ...rest }) => {
21485
+ return /* @__PURE__ */ jsxRuntime.jsxs(HStack2, { gap: 2, justify: "space-between", as: "li", ...rest, disabled, children: [
21486
+ /* @__PURE__ */ jsxRuntime.jsxs(HStack2, { children: [
21487
+ startAdornment,
21488
+ /* @__PURE__ */ jsxRuntime.jsxs(Stack2, { gap: 0, children: [
21489
+ /* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "label.md", className: "label", children: label }),
21490
+ subLabel && /* @__PURE__ */ jsxRuntime.jsx(Text, { variant: "label.sm", className: "sub-label", children: subLabel })
21491
+ ] })
21492
+ ] }),
21493
+ /* @__PURE__ */ jsxRuntime.jsx(HStack2, { children: endAdornment })
21494
+ ] });
21495
+ },
21496
+ "item"
21497
+ );
21498
+ Item.displayName = "Item";
21499
+ const List = Object.assign(Root, {
21500
+ Root,
21501
+ Item
21502
+ });
21409
21503
  function definePreset(preset2) {
21410
21504
  return preset2;
21411
21505
  }
@@ -21508,6 +21602,7 @@ const conditions = {
21508
21602
  }
21509
21603
  };
21510
21604
  const breakpoints = {
21605
+ xs: "480px",
21511
21606
  sm: "640px",
21512
21607
  md: "768px",
21513
21608
  lg: "1024px",
@@ -21729,6 +21824,7 @@ exports.GridItem = GridItem2;
21729
21824
  exports.HStack = HStack2;
21730
21825
  exports.IconButton = index$4;
21731
21826
  exports.Input = index$2;
21827
+ exports.List = List;
21732
21828
  exports.Navigation = Navigation;
21733
21829
  exports.Portal = Portal;
21734
21830
  exports.RadioGroup = RadioGroup;