@designbasekorea/ui 0.2.12 → 0.2.14

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.esm.js CHANGED
@@ -5277,7 +5277,7 @@ const Chip = ({ label, size = 'm', variant = 'default', color = 'primary', delet
5277
5277
  };
5278
5278
  Chip.displayName = 'Chip';
5279
5279
 
5280
- const ColorPicker = ({ size = 'm', type = 'dropdown', value, defaultValue = '#006FFF', showInput = true, showAlpha = false, showFormatSelector = true, showCopyButton = true, disabled = false, readonly = false, onChange, className, }) => {
5280
+ const ColorPicker = ({ size = 'm', type = 'dropdown', position = 'bottom-left', value, defaultValue = '#006FFF', showInput = true, showAlpha = false, showFormatSelector = true, showCopyButton = true, disabled = false, readonly = false, onChange, className, }) => {
5281
5281
  const [selectedColor, setSelectedColor] = useState(value || defaultValue);
5282
5282
  const [isOpen, setIsOpen] = useState(false);
5283
5283
  const [hue, setHue] = useState(211);
@@ -5423,6 +5423,11 @@ const ColorPicker = ({ size = 'm', type = 'dropdown', value, defaultValue = '#00
5423
5423
  const handleInputChange = (e) => {
5424
5424
  const newValue = e.target.value.trim();
5425
5425
  setInputValue(newValue);
5426
+ // HEX 값이 유효하면 실시간으로 색상 업데이트
5427
+ if (/^#[0-9A-F]{6}$/i.test(newValue)) {
5428
+ handleColorChange(newValue.toUpperCase());
5429
+ updateHSLFromHex(newValue);
5430
+ }
5426
5431
  };
5427
5432
  // 입력 필드에서 포커스 아웃 시 검증 및 적용
5428
5433
  const handleInputBlur = () => {
@@ -5510,7 +5515,7 @@ const ColorPicker = ({ size = 'm', type = 'dropdown', value, defaultValue = '#00
5510
5515
  return;
5511
5516
  setIsOpen(!isOpen);
5512
5517
  };
5513
- const classes = clsx('designbase-color-picker', `designbase-color-picker--${size}`, {
5518
+ const classes = clsx('designbase-color-picker', `designbase-color-picker--${size}`, `designbase-color-picker--${position}`, {
5514
5519
  'designbase-color-picker--disabled': disabled,
5515
5520
  'designbase-color-picker--readonly': readonly,
5516
5521
  'designbase-color-picker--open': isOpen,
@@ -9357,7 +9362,7 @@ const ProgressStep = ({ items, size = 'm', layout = 'vertical', currentStep = 0,
9357
9362
  }) }));
9358
9363
  };
9359
9364
 
9360
- const RangeSlider = ({ value, range, min = 0, max = 100, step = 1, size = 'm', variant = 'default', showValue = false, showMarks = false, marks = [], markLabels = {}, disabled = false, readOnly = false, fullWidth = false, vertical = false, onChange, onRangeChange, className, ...props }) => {
9365
+ const RangeSlider = ({ value, range, min = 0, max = 100, step = 1, size = 'm', variant = 'default', showValue = false, valuePosition = 'top', showMarks = false, marks = [], markLabels = {}, disabled = false, readOnly = false, fullWidth = false, vertical = false, onChange, onRangeChange, className, ...props }) => {
9361
9366
  const [internalValue, setInternalValue] = useState(value ?? min);
9362
9367
  const [internalRange, setInternalRange] = useState(range ?? [min, max]);
9363
9368
  const [isDragging, setIsDragging] = useState(false);
@@ -9368,6 +9373,8 @@ const RangeSlider = ({ value, range, min = 0, max = 100, step = 1, size = 'm', v
9368
9373
  const isControlled = value !== undefined || range !== undefined;
9369
9374
  const currentValue = isControlled ? (value ?? internalValue) : internalValue;
9370
9375
  const currentRange = isControlled ? (range ?? internalRange) : internalRange;
9376
+ // 단일 값일 때 기본적으로 우측에 표시
9377
+ const effectiveValuePosition = valuePosition === 'top' && range === undefined ? 'right' : valuePosition;
9371
9378
  // 값 정규화
9372
9379
  const normalizeValue = useCallback((val) => {
9373
9380
  return Math.max(min, Math.min(max, val));
@@ -9537,7 +9544,7 @@ const RangeSlider = ({ value, range, min = 0, max = 100, step = 1, size = 'm', v
9537
9544
  }, "aria-hidden": "true", children: markLabels[mark] && (jsx("span", { className: "designbase-range-slider__mark-label", children: markLabels[mark] })) }, mark));
9538
9545
  });
9539
9546
  };
9540
- const classes = clsx('designbase-range-slider', `designbase-range-slider--${size}`, `designbase-range-slider--${variant}`, {
9547
+ const classes = clsx('designbase-range-slider', `designbase-range-slider--${size}`, `designbase-range-slider--${variant}`, `designbase-range-slider--value-${effectiveValuePosition}`, {
9541
9548
  'designbase-range-slider--disabled': disabled,
9542
9549
  'designbase-range-slider--readonly': readOnly,
9543
9550
  'designbase-range-slider--full-width': fullWidth,