@designbasekorea/ui 0.6.0 → 0.6.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.
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +88 -4
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.css.map +1 -1
- package/dist/index.esm.js +62 -3
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +64 -2
- package/dist/index.js.map +1 -1
- package/dist/index.umd.css +1 -1
- package/dist/index.umd.css.map +1 -1
- package/dist/index.umd.js +64 -2
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/index.umd.js
CHANGED
|
@@ -8255,6 +8255,32 @@
|
|
|
8255
8255
|
return (jsxRuntime.jsxs("section", { className: classes, style: containerStyle, children: [renderBackground(), renderOverlay(), jsxRuntime.jsxs("div", { className: "designbase-hero-feature__container", children: [jsxRuntime.jsxs("div", { className: "designbase-hero-feature__content", children: [icon && (jsxRuntime.jsx("div", { className: "designbase-hero-feature__icon", children: icon })), renderBadge(), jsxRuntime.jsx("h1", { className: "designbase-hero-feature__title", children: title }), subtitle && (jsxRuntime.jsx("h2", { className: "designbase-hero-feature__subtitle", children: subtitle })), description && (jsxRuntime.jsx("p", { className: "designbase-hero-feature__description", children: description })), renderButtons(), renderStats()] }), variant === 'split' && renderImage()] }), variant !== 'split' && renderImage()] }));
|
|
8256
8256
|
};
|
|
8257
8257
|
|
|
8258
|
+
/**
|
|
8259
|
+
* ImagePlaceholder 컴포넌트
|
|
8260
|
+
*
|
|
8261
|
+
* 이미지가 없거나 업로드 전 대기 상태일 때 격자 패턴과 라벨을 보여주는 자리표시자입니다.
|
|
8262
|
+
*/
|
|
8263
|
+
const ImagePlaceholder = ({ className, style, label, showLabel = false, patternSize = 20, patternColor = '#f3f3f3', backgroundColor = '#e7e7e7', width = '100%', height, aspectRatio, hoverEffect = false, onClick, }) => {
|
|
8264
|
+
const rootStyle = {
|
|
8265
|
+
width,
|
|
8266
|
+
height,
|
|
8267
|
+
aspectRatio,
|
|
8268
|
+
...style,
|
|
8269
|
+
};
|
|
8270
|
+
const patternStyle = {
|
|
8271
|
+
'--db-placeholder-bg': backgroundColor,
|
|
8272
|
+
'--db-placeholder-pattern': patternColor,
|
|
8273
|
+
'--db-placeholder-size': `${patternSize}px`,
|
|
8274
|
+
'--db-placeholder-half-size': `${patternSize / 2}px`,
|
|
8275
|
+
};
|
|
8276
|
+
const classes = clsx('designbase-image-placeholder', {
|
|
8277
|
+
'designbase-image-placeholder--hover': hoverEffect,
|
|
8278
|
+
'designbase-image-placeholder--clickable': !!onClick,
|
|
8279
|
+
}, className);
|
|
8280
|
+
return (jsxRuntime.jsxs("div", { className: classes, style: rootStyle, onClick: onClick, role: onClick ? 'button' : undefined, tabIndex: onClick ? 0 : undefined, children: [jsxRuntime.jsx("div", { className: "designbase-image-placeholder__pattern", style: patternStyle }), showLabel && label && (jsxRuntime.jsx("div", { className: "designbase-image-placeholder__label-wrap", children: jsxRuntime.jsx("span", { className: "designbase-image-placeholder__label", children: label }) }))] }));
|
|
8281
|
+
};
|
|
8282
|
+
ImagePlaceholder.displayName = 'ImagePlaceholder';
|
|
8283
|
+
|
|
8258
8284
|
const Lightbox = ({ images, currentIndex = 0, size = 'l', isOpen, onOpenChange, onImageChange, enableZoom = true, enableRotate = true, enableDownload = true, enableFullscreen = true, enableKeyboard = true, enableWheelZoom = true, showThumbnails = true, showCounter = true, showCloseButton = true, showNavigationButtons = true, showToolbar = true, closeOnBackdropClick = true, closeOnEscape = true, className, }) => {
|
|
8259
8285
|
const [internalCurrentIndex, setInternalCurrentIndex] = React.useState(currentIndex);
|
|
8260
8286
|
const [zoomLevel, setZoomLevel] = React.useState(1);
|
|
@@ -9354,6 +9380,17 @@
|
|
|
9354
9380
|
};
|
|
9355
9381
|
OnboardingModal.displayName = 'OnboardingModal';
|
|
9356
9382
|
|
|
9383
|
+
/**
|
|
9384
|
+
* PageHeader 컴포넌트
|
|
9385
|
+
*
|
|
9386
|
+
* 브레드크럼, 타이틀, 서브타이틀, 설명 및 액션(버튼, 탭 등)을 포함하는 페이지 헤더 섹션입니다.
|
|
9387
|
+
*/
|
|
9388
|
+
const PageHeader = ({ title, description, subtitle, breadcrumbs, actions, align = 'center', className, }) => {
|
|
9389
|
+
const classes = clsx('designbase-page-header', `designbase-page-header--${align}`, className);
|
|
9390
|
+
return (jsxRuntime.jsxs("div", { className: classes, children: [breadcrumbs && breadcrumbs.length > 0 && (jsxRuntime.jsx("div", { className: "designbase-page-header__breadcrumbs", children: jsxRuntime.jsx(Breadcrumbs, { items: breadcrumbs, size: "s" }) })), jsxRuntime.jsxs("div", { className: "designbase-page-header__content", children: [jsxRuntime.jsx("h1", { className: "designbase-page-header__title", children: title }), subtitle && (jsxRuntime.jsx("h2", { className: "designbase-page-header__subtitle", children: subtitle })), description && (jsxRuntime.jsx("div", { className: "designbase-page-header__description", children: description }))] }), actions && (jsxRuntime.jsx("div", { className: "designbase-page-header__actions", children: actions }))] }));
|
|
9391
|
+
};
|
|
9392
|
+
PageHeader.displayName = 'PageHeader';
|
|
9393
|
+
|
|
9357
9394
|
const Tutorial = ({ steps, currentStep = 0, isActive, onStart, onEnd, onStepChange, onNext, onPrev, indicatorType = 'numbers', indicatorSize = 'm', closeIcon: CloseIconComponent = icons.CloseIcon, prevIcon: PrevIconComponent = icons.ChevronLeftIcon, nextIcon: NextIconComponent = icons.ChevronRightIcon, className, ...props }) => {
|
|
9358
9395
|
const [internalStep, setInternalStep] = React.useState(currentStep);
|
|
9359
9396
|
const [targetElement, setTargetElement] = React.useState(null);
|
|
@@ -10038,7 +10075,7 @@
|
|
|
10038
10075
|
return (jsxRuntime.jsx("div", { className: classes, children: type === 'linear' ? renderLinearProgress() : renderCircularProgress() }));
|
|
10039
10076
|
};
|
|
10040
10077
|
|
|
10041
|
-
const ProgressStep = ({ items, size = 'm', layout = '
|
|
10078
|
+
const ProgressStep = ({ items, size = 'm', layout = 'horizontal', currentStep = 0, clickable = false, fullWidth = false, disabled = false, className, style, onStepClick, }) => {
|
|
10042
10079
|
const handleStepClick = (item, index) => {
|
|
10043
10080
|
if (disabled || item.disabled || !clickable)
|
|
10044
10081
|
return;
|
|
@@ -10076,7 +10113,7 @@
|
|
|
10076
10113
|
e.preventDefault();
|
|
10077
10114
|
handleStepClick(item, index);
|
|
10078
10115
|
}
|
|
10079
|
-
}, children: [status === 'active' && (jsxRuntime.jsx("div", { className: "designbase-progress-step__pulse" })), item.icon ? (jsxRuntime.jsx("div", { className: "designbase-progress-step__icon", children: item.icon })) : (jsxRuntime.jsx("span", { className: "designbase-progress-step__number", children: index + 1 }))] }), !isLast && (jsxRuntime.jsx("div", { className: connectorClasses }))] }), jsxRuntime.jsxs("div", { className: "designbase-progress-step__content", children: [jsxRuntime.
|
|
10116
|
+
}, children: [status === 'active' && (jsxRuntime.jsx("div", { className: "designbase-progress-step__pulse" })), item.icon ? (jsxRuntime.jsx("div", { className: "designbase-progress-step__icon", children: item.icon })) : (jsxRuntime.jsx("div", { className: "designbase-progress-step__icon", children: status === 'completed' ? (jsxRuntime.jsx(icons.DoneIcon, { size: size === 's' ? 12 : size === 'l' ? 20 : 16 })) : status === 'error' ? (jsxRuntime.jsx(icons.WarningFilledIcon, { size: size === 's' ? 12 : size === 'l' ? 20 : 16 })) : (jsxRuntime.jsx("span", { className: "designbase-progress-step__number", children: index + 1 })) }))] }), !isLast && (jsxRuntime.jsx("div", { className: connectorClasses }))] }), jsxRuntime.jsxs("div", { className: "designbase-progress-step__content", children: [jsxRuntime.jsx("div", { className: "designbase-progress-step__header", children: jsxRuntime.jsx("h3", { className: "designbase-progress-step__title", children: item.title }) }), item.description && (jsxRuntime.jsx("p", { className: "designbase-progress-step__description", children: item.description })), item.timestamp && (jsxRuntime.jsx("span", { className: "designbase-progress-step__timestamp", children: item.timestamp }))] })] }, item.id));
|
|
10080
10117
|
}) }));
|
|
10081
10118
|
};
|
|
10082
10119
|
|
|
@@ -12182,6 +12219,28 @@
|
|
|
12182
12219
|
return (jsxRuntime.jsx("div", { className: classes, children: jsxRuntime.jsxs("div", { className: "designbase-toolbar__content", children: [Object.entries(groupedItems).map(([groupName, groupItems], groupIndex) => (jsxRuntime.jsxs("div", { className: "designbase-toolbar__group", children: [groupItems.map(renderItem), groupIndex < Object.keys(groupedItems).length - 1 && (jsxRuntime.jsx("div", { className: "designbase-toolbar__group-separator" }))] }, groupName))), children && (jsxRuntime.jsx("div", { className: "designbase-toolbar__children", children: children }))] }) }));
|
|
12183
12220
|
};
|
|
12184
12221
|
|
|
12222
|
+
/**
|
|
12223
|
+
* TopBanner 컴포넌트
|
|
12224
|
+
*
|
|
12225
|
+
* 페이지 최상단에 위치하여 공지사항이나 프로모션을 안내하는 슬림한 배너입니다.
|
|
12226
|
+
*/
|
|
12227
|
+
const TopBanner = ({ badgeText, content, image, linkText, onLinkPress, onClose, variant = 'primary', fixed = false, className, }) => {
|
|
12228
|
+
const [isVisible, setIsVisible] = React.useState(true);
|
|
12229
|
+
if (!isVisible)
|
|
12230
|
+
return null;
|
|
12231
|
+
const handleClose = () => {
|
|
12232
|
+
setIsVisible(false);
|
|
12233
|
+
onClose?.();
|
|
12234
|
+
};
|
|
12235
|
+
const isDarkBg = variant === 'primary' || variant === 'dark';
|
|
12236
|
+
const classes = clsx('designbase-top-banner', `designbase-top-banner--${variant}`, {
|
|
12237
|
+
'designbase-top-banner--fixed': fixed,
|
|
12238
|
+
'designbase-top-banner--has-image': !!image,
|
|
12239
|
+
}, className);
|
|
12240
|
+
return (jsxRuntime.jsx("div", { className: classes, role: "alert", children: jsxRuntime.jsxs("div", { className: "designbase-top-banner__container", children: [jsxRuntime.jsxs("div", { className: "designbase-top-banner__content", children: [image && (jsxRuntime.jsx("div", { className: "designbase-top-banner__image-wrapper", children: jsxRuntime.jsx("img", { src: image, alt: "", className: "designbase-top-banner__image" }) })), badgeText && (jsxRuntime.jsx(Badge, { size: "s", variant: isDarkBg ? 'secondary' : 'primary', style: "text", className: "designbase-top-banner__badge", children: badgeText })), jsxRuntime.jsx("span", { className: "designbase-top-banner__text", children: content }), linkText && (jsxRuntime.jsx(Button, { className: "designbase-top-banner__link", variant: isDarkBg ? 'secondary' : 'ghost', size: "s", onPress: onLinkPress, endIcon: icons.ChevronRightIcon, children: linkText }))] }), jsxRuntime.jsx(Button, { className: "designbase-top-banner__close", variant: "ghost", size: "m", iconOnly: true, onPress: handleClose, "aria-label": "\uB2EB\uAE30", children: jsxRuntime.jsx(icons.CloseIcon, {}) })] }) }));
|
|
12241
|
+
};
|
|
12242
|
+
TopBanner.displayName = 'TopBanner';
|
|
12243
|
+
|
|
12185
12244
|
const VideoPlayer = ({ src, poster, title, description, size = 'm', variant = 'default', theme = 'auto', autoPlay = false, loop = false, muted = false, showControls = true, enableFullscreen = true, enableKeyboard = true, enableTouch = true, showProgress = true, showTime = true, showVolume = true, showSettings = false, playlist = [], currentIndex = 0, autoPause = true, playbackRates = [0.5, 0.75, 1, 1.25, 1.5, 2], defaultPlaybackRate = 1, qualities = [], defaultQuality = '', subtitles = [], defaultSubtitle = '', onPlay, onPause, onEnded, onTimeUpdate, onVolumeChange, onFullscreenChange, onPlaylistChange, onPlaybackRateChange, onQualityChange, onSubtitleChange, onError, className, }) => {
|
|
12186
12245
|
const videoRef = React.useRef(null);
|
|
12187
12246
|
const containerRef = React.useRef(null);
|
|
@@ -12684,6 +12743,7 @@
|
|
|
12684
12743
|
exports.HeroFeature = HeroFeature;
|
|
12685
12744
|
exports.Image = Image$1;
|
|
12686
12745
|
exports.ImageList = ImageList;
|
|
12746
|
+
exports.ImagePlaceholder = ImagePlaceholder;
|
|
12687
12747
|
exports.Indicator = Indicator;
|
|
12688
12748
|
exports.Input = Input;
|
|
12689
12749
|
exports.Label = Label;
|
|
@@ -12700,6 +12760,7 @@
|
|
|
12700
12760
|
exports.ModalHeader = ModalHeader;
|
|
12701
12761
|
exports.Navbar = Navbar;
|
|
12702
12762
|
exports.OnboardingModal = OnboardingModal;
|
|
12763
|
+
exports.PageHeader = PageHeader;
|
|
12703
12764
|
exports.Pagination = Pagination;
|
|
12704
12765
|
exports.Popover = Popover;
|
|
12705
12766
|
exports.Progress = Progress;
|
|
@@ -12736,6 +12797,7 @@
|
|
|
12736
12797
|
exports.Toggle = Toggle;
|
|
12737
12798
|
exports.Toolbar = Toolbar;
|
|
12738
12799
|
exports.Tooltip = Tooltip;
|
|
12800
|
+
exports.TopBanner = TopBanner;
|
|
12739
12801
|
exports.Tutorial = Tutorial;
|
|
12740
12802
|
exports.VideoPlayer = VideoPlayer;
|
|
12741
12803
|
exports.YouTubePlayer = YouTubePlayer;
|