sellmate-design-system-react 9.0.0-beta.7 → 9.0.0-beta.9

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.d.ts CHANGED
@@ -53,6 +53,7 @@ export * from './components/SCheckbox';
53
53
  export * from './components/SRadio';
54
54
  export * from './components/SRadioButton';
55
55
  export * from './components/SInput';
56
+ export * from './components/SSearchInput';
56
57
  export * from './components/STextarea';
57
58
  export * from './components/SSelect';
58
59
  export * from './components/SNumberInput';
package/dist/index.js CHANGED
@@ -9204,10 +9204,7 @@ var PAGE_BACKGROUNDS = ["frame", "neutral", "screen"];
9204
9204
  var PAGE_CONTENT_HEIGHTS = ["auto", "fill"];
9205
9205
 
9206
9206
  // src/components/STabs/tabs.config.ts
9207
- var TAB_MAIN_SIZE = {
9208
- md: { height: 36, paddingX: 24 },
9209
- lg: { height: 44, paddingX: 32 }
9210
- };
9207
+ var TAB_MAIN_SIZE = { height: 36, paddingX: 24 };
9211
9208
  var TAB_TYPOGRAPHY = { fontSize: 12, lineHeight: 20 };
9212
9209
  var TAB_MAIN_COLORS = {
9213
9210
  selected: {
@@ -9229,13 +9226,11 @@ function STabs({
9229
9226
  value,
9230
9227
  tabs,
9231
9228
  onValueChange,
9232
- size = "md",
9233
9229
  isSub = false,
9234
9230
  vertical = false,
9235
9231
  className,
9236
9232
  style
9237
9233
  }) {
9238
- const s = TAB_MAIN_SIZE[size];
9239
9234
  const blue = TAB_MAIN_COLORS.selected.border;
9240
9235
  const isVertical = isSub && vertical;
9241
9236
  const tabRefs = useRef([]);
@@ -9276,8 +9271,8 @@ function STabs({
9276
9271
  const border = selected ? TAB_MAIN_COLORS.selected.border : TAB_MAIN_COLORS.default.border;
9277
9272
  const selectedBg = TAB_MAIN_COLORS.selected.bg;
9278
9273
  tabStyle = {
9279
- height: s.height,
9280
- padding: `0 ${s.paddingX}px`,
9274
+ height: TAB_MAIN_SIZE.height,
9275
+ padding: `0 ${TAB_MAIN_SIZE.paddingX}px`,
9281
9276
  fontSize: TAB_TYPOGRAPHY.fontSize,
9282
9277
  lineHeight: `${TAB_TYPOGRAPHY.lineHeight}px`,
9283
9278
  background: selected ? TAB_MAIN_COLORS.selected.bg : TAB_MAIN_COLORS.default.bg,
@@ -14469,6 +14464,119 @@ function SRadioButton({
14469
14464
  }
14470
14465
  );
14471
14466
  }
14467
+ var FONT2 = {
14468
+ sm: {
14469
+ fontSize: 12,
14470
+ lineHeight: 20,
14471
+ paddingX: "var(--cmp-textinput-sm-paddingX)",
14472
+ gap: "var(--cmp-textinput-sm-gap)"
14473
+ },
14474
+ md: {
14475
+ fontSize: 14,
14476
+ lineHeight: 24,
14477
+ paddingX: "var(--cmp-textinput-md-paddingX)",
14478
+ gap: "var(--cmp-textinput-md-gap)"
14479
+ }
14480
+ };
14481
+ var SSearchInput = /* @__PURE__ */ forwardRef(function SSearchInput2({
14482
+ value,
14483
+ onValueChange,
14484
+ onChange,
14485
+ onSearch,
14486
+ size = "sm",
14487
+ placeholder = "\uACB0\uACFC \uB0B4 \uAC80\uC0C9",
14488
+ clearable = false,
14489
+ disabled = false,
14490
+ width,
14491
+ focused,
14492
+ hovered,
14493
+ inputClass,
14494
+ inputStyle,
14495
+ className,
14496
+ style,
14497
+ onKeyDown,
14498
+ ...rest
14499
+ }, ref) {
14500
+ const f = FONT2[size];
14501
+ const hasValue = value !== void 0 && value !== null && String(value) !== "";
14502
+ return /* @__PURE__ */ jsx(
14503
+ SField,
14504
+ {
14505
+ size,
14506
+ width,
14507
+ focused,
14508
+ hovered,
14509
+ disabled,
14510
+ className,
14511
+ style,
14512
+ children: /* @__PURE__ */ jsxs(
14513
+ "div",
14514
+ {
14515
+ className: "flex h-full w-full items-center",
14516
+ style: {
14517
+ gap: f.gap,
14518
+ padding: `0 ${f.paddingX}`,
14519
+ fontSize: f.fontSize,
14520
+ lineHeight: `${f.lineHeight}px`
14521
+ },
14522
+ children: [
14523
+ /* @__PURE__ */ jsx(
14524
+ SIcon,
14525
+ {
14526
+ name: "search",
14527
+ size: 16,
14528
+ color: disabled ? "var(--sys-color-disabled-icon)" : "var(--cmp-textinput-icon-default)",
14529
+ className: "flex-shrink-0"
14530
+ }
14531
+ ),
14532
+ /* @__PURE__ */ jsx(
14533
+ "input",
14534
+ {
14535
+ ref,
14536
+ type: "search",
14537
+ value: value ?? "",
14538
+ disabled,
14539
+ placeholder,
14540
+ onChange: (e) => {
14541
+ onChange?.(e);
14542
+ onValueChange?.(e.target.value);
14543
+ },
14544
+ onKeyDown: (e) => {
14545
+ onKeyDown?.(e);
14546
+ if (e.key === "Enter" && !e.nativeEvent.isComposing) {
14547
+ onSearch?.(e.currentTarget.value);
14548
+ }
14549
+ },
14550
+ className: cn(
14551
+ // type="search" 의 브라우저 기본 취소 버튼은 clearable 과 겹치므로 지운다
14552
+ "h-full min-w-0 flex-1 border-0 bg-transparent p-0 outline-none placeholder:text-[color:var(--sys-color-field-text-placeholder)] disabled:cursor-not-allowed [&::-webkit-search-cancel-button]:hidden",
14553
+ AUTOFILL_RESET_CLASS,
14554
+ inputClass
14555
+ ),
14556
+ style: {
14557
+ // fontSize/lineHeight 는 컨테이너에서 상속 (원본 font-size: inherit)
14558
+ color: disabled ? "var(--cmp-textinput-text-disabled)" : "var(--sys-color-field-text-default)",
14559
+ ...inputStyle
14560
+ },
14561
+ ...rest
14562
+ }
14563
+ ),
14564
+ clearable && hasValue && !disabled && /* @__PURE__ */ jsx(
14565
+ SGhostButton,
14566
+ {
14567
+ icon: "close",
14568
+ size: "xxs",
14569
+ ariaLabel: "\uC9C0\uC6B0\uAE30",
14570
+ className: "flex-shrink-0",
14571
+ onClick: () => onValueChange?.("")
14572
+ }
14573
+ )
14574
+ ]
14575
+ }
14576
+ )
14577
+ }
14578
+ );
14579
+ });
14472
14580
  var CHIPFILTER_LISTBOX_WIDTH = 240;
14473
14581
  var CHIPFILTER_DATE_PRESET_LISTBOX_WIDTH = 246;
14474
14582
  var CHIPFILTER = {
@@ -16352,7 +16460,7 @@ var SChipInput = /* @__PURE__ */ forwardRef(function SChipInput2({
16352
16460
  }
16353
16461
  );
16354
16462
  });
16355
- var FONT2 = {
16463
+ var FONT3 = {
16356
16464
  sm: {
16357
16465
  fontSize: 12,
16358
16466
  paddingX: "var(--cmp-textinput-sm-paddingX)",
@@ -16400,7 +16508,7 @@ var SBarcodeInput = /* @__PURE__ */ forwardRef(
16400
16508
  className,
16401
16509
  style
16402
16510
  }, ref) {
16403
- const f = FONT2[size];
16511
+ const f = FONT3[size];
16404
16512
  const [ruleError, setRuleError] = useState("");
16405
16513
  const hasValue = value !== void 0 && value !== null && String(value) !== "";
16406
16514
  useFormField({
@@ -17421,6 +17529,6 @@ function STimeRangePicker({
17421
17529
  );
17422
17530
  }
17423
17531
 
17424
- export { BADGE_COLORS, BUTTON_COLORS, BUTTON_SIZES, COLOR_KEYS, GNB_COLORS, GNB_COMMON, GNB_FOLD_MS, GNB_FULL_LOGO_WIDTH, GNB_HEADER, GNB_MENU, GNB_MENU_WIDTH, GNB_RAIL, GNB_RAIL_WIDTH, ICONS, IMAGE_FITS, PAGE_BACKGROUNDS, PAGE_CONTENT_HEIGHTS, RangeCalendar, SActionModal, SBadge, SBarcodeInput, SButton, SCROLL_AREA_AXES, SCalendar, SCallout, SCard, SCheckbox, SChip2 as SChip, SChipFilter, SChipInput, SCircleProgress, SConfirmModal, SDatePicker, SDatePickerMonthListbox, SDatePickerYearListbox, SDateRangePicker, SDivider, SDraggableGroup, SDraggableItem2 as SDraggableItem, SDraggableList, SDraggableProvider, SDrawer, SDropdownButton2 as SDropdownButton, SExpansionItem, SExpansionList2 as SExpansionList, SField, SFilePicker, SForm, SGhostButton, SGnb, SGuide, SIcon, SImage, SInput, SKeyValueTable, SLAYOUT_MIN_WIDTH, SLayout, SLayoutContext, SLinearProgress, SList2 as SList, SListItem2 as SListItem, SLoadingContainer, SLoadingModal, SLoadingViewport, SModal, SModalOutlet, SNumberInput, SPage, SPagination, SPopover, SPopup, SPortal, SRadio, SRadioButton, SRadioGroup, SSPLITTER_UNITS, SScrollArea, SSectionHeaderCard2 as SSectionHeaderCard, SSelect2 as SSelect, SSplitter2 as SSplitter, SStepper, SSwitch, STEPPER_SIZES, STable, STableBar, STabs, STag, STextLink, STextarea, STimePicker, STimeRangePicker, SToast, SToastContainer, SToggle, STooltip2 as STooltip, STree2 as STree, STreeItem2 as STreeItem, TAG_COLORS, TAG_SHAPES, TAG_SIZES, TIMEPICKER_SIZES, TIMEPICKER_SIZE_CONFIG, buttonPreset, cn, findGnbAncestors, findGnbRailValue, isColorKey, loading, resolveColor, useSLayout };
17532
+ export { BADGE_COLORS, BUTTON_COLORS, BUTTON_SIZES, COLOR_KEYS, GNB_COLORS, GNB_COMMON, GNB_FOLD_MS, GNB_FULL_LOGO_WIDTH, GNB_HEADER, GNB_MENU, GNB_MENU_WIDTH, GNB_RAIL, GNB_RAIL_WIDTH, ICONS, IMAGE_FITS, PAGE_BACKGROUNDS, PAGE_CONTENT_HEIGHTS, RangeCalendar, SActionModal, SBadge, SBarcodeInput, SButton, SCROLL_AREA_AXES, SCalendar, SCallout, SCard, SCheckbox, SChip2 as SChip, SChipFilter, SChipInput, SCircleProgress, SConfirmModal, SDatePicker, SDatePickerMonthListbox, SDatePickerYearListbox, SDateRangePicker, SDivider, SDraggableGroup, SDraggableItem2 as SDraggableItem, SDraggableList, SDraggableProvider, SDrawer, SDropdownButton2 as SDropdownButton, SExpansionItem, SExpansionList2 as SExpansionList, SField, SFilePicker, SForm, SGhostButton, SGnb, SGuide, SIcon, SImage, SInput, SKeyValueTable, SLAYOUT_MIN_WIDTH, SLayout, SLayoutContext, SLinearProgress, SList2 as SList, SListItem2 as SListItem, SLoadingContainer, SLoadingModal, SLoadingViewport, SModal, SModalOutlet, SNumberInput, SPage, SPagination, SPopover, SPopup, SPortal, SRadio, SRadioButton, SRadioGroup, SSPLITTER_UNITS, SScrollArea, SSearchInput, SSectionHeaderCard2 as SSectionHeaderCard, SSelect2 as SSelect, SSplitter2 as SSplitter, SStepper, SSwitch, STEPPER_SIZES, STable, STableBar, STabs, STag, STextLink, STextarea, STimePicker, STimeRangePicker, SToast, SToastContainer, SToggle, STooltip2 as STooltip, STree2 as STree, STreeItem2 as STreeItem, TAG_COLORS, TAG_SHAPES, TAG_SIZES, TIMEPICKER_SIZES, TIMEPICKER_SIZE_CONFIG, buttonPreset, cn, findGnbAncestors, findGnbRailValue, isColorKey, loading, resolveColor, useSLayout };
17425
17533
  //# sourceMappingURL=index.js.map
17426
17534
  //# sourceMappingURL=index.js.map