@m1kapp/kit 0.0.30 → 0.0.31
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/bin/skills/m1kapp-clean.md +71 -0
- package/bin/skills.mjs +4 -0
- package/bin/stats.mjs +418 -2
- package/dist/index.d.mts +77 -41
- package/dist/index.d.ts +77 -41
- package/dist/index.js +4 -4
- package/dist/index.mjs +4 -4
- package/dist/meta.json +41 -11
- package/dist/ogimage.js +1 -1
- package/dist/ogimage.mjs +1 -1
- package/dist/pwa.d.mts +12 -11
- package/dist/pwa.d.ts +12 -11
- package/dist/pwa.js +2 -2
- package/dist/pwa.mjs +2 -2
- package/dist/styles.css +1 -1
- package/dist/utils.d.mts +15 -1
- package/dist/utils.d.ts +15 -1
- package/dist/utils.js +1 -1
- package/dist/utils.mjs +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -304,6 +304,55 @@ interface TextareaProps extends InputBaseProps {
|
|
|
304
304
|
}
|
|
305
305
|
declare function Textarea({ value, onChange, placeholder, rows, disabled, onFocus, onBlur, className, }: TextareaProps): react_jsx_runtime.JSX.Element;
|
|
306
306
|
|
|
307
|
+
interface MediaCardProps {
|
|
308
|
+
/** 16:9 썸네일 이미지 URL */
|
|
309
|
+
thumbnail: string;
|
|
310
|
+
/** 썸네일 우하단 배지 (재생시간 등) */
|
|
311
|
+
badge?: string;
|
|
312
|
+
/** horizontal: 썸네일 좌측 절반 / vertical: 썸네일 상단 풀폭 */
|
|
313
|
+
layout?: "horizontal" | "vertical";
|
|
314
|
+
onClick?: () => void;
|
|
315
|
+
/** 제목·메타 등 본문 — 폰트/색은 호출부 소유 */
|
|
316
|
+
children: ReactNode;
|
|
317
|
+
className?: string;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* 썸네일 + 본문 미디어 카드 (영상·플레이리스트 목록용).
|
|
321
|
+
*
|
|
322
|
+
* @example
|
|
323
|
+
* <MediaCard thumbnail={v.thumbnail} badge={v.duration} onClick={open}>
|
|
324
|
+
* <p className="text-base line-clamp-2">{v.title}</p>
|
|
325
|
+
* <p className="text-xs text-zinc-400">조회수 {formatKoreanNumber(v.viewCount)}회</p>
|
|
326
|
+
* </MediaCard>
|
|
327
|
+
*/
|
|
328
|
+
declare function MediaCard({ thumbnail, badge, layout, onClick, children, className, }: MediaCardProps): react_jsx_runtime.JSX.Element;
|
|
329
|
+
|
|
330
|
+
interface UnderlineTab<T extends string = string> {
|
|
331
|
+
id: T;
|
|
332
|
+
label: string;
|
|
333
|
+
}
|
|
334
|
+
interface UnderlineTabsProps<T extends string = string> {
|
|
335
|
+
tabs: UnderlineTab<T>[];
|
|
336
|
+
active: T;
|
|
337
|
+
onChange: (id: T) => void;
|
|
338
|
+
/** 스크롤 상단 고정 */
|
|
339
|
+
sticky?: boolean;
|
|
340
|
+
/** 좁은 탭 간격 (요일 등 짧은 라벨 다수일 때) */
|
|
341
|
+
compact?: boolean;
|
|
342
|
+
/** 활성 탭 색. Default: currentColor 기반 (dark 셸에선 white) */
|
|
343
|
+
activeColor?: string;
|
|
344
|
+
className?: string;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* 하단 언더라인 인디케이터 탭 (콘텐츠 필터용) — 하단 내비 TabBar와 별개.
|
|
348
|
+
* SegmentedControl(박스형)과 달리 미디어 앱의 카테고리 탭 UX.
|
|
349
|
+
*
|
|
350
|
+
* @example
|
|
351
|
+
* <UnderlineTabs tabs={[{ id: "all", label: "전체" }, { id: "music", label: "음악" }]}
|
|
352
|
+
* active={tab} onChange={setTab} sticky />
|
|
353
|
+
*/
|
|
354
|
+
declare function UnderlineTabs<T extends string>({ tabs, active, onChange, sticky, compact, activeColor, className, }: UnderlineTabsProps<T>): react_jsx_runtime.JSX.Element;
|
|
355
|
+
|
|
307
356
|
interface SectionProps {
|
|
308
357
|
children: ReactNode;
|
|
309
358
|
className?: string;
|
|
@@ -419,12 +468,7 @@ interface WatermarkProps {
|
|
|
419
468
|
total?: number;
|
|
420
469
|
};
|
|
421
470
|
}
|
|
422
|
-
/**
|
|
423
|
-
* Full-screen colored background with repeating animated text watermark pattern.
|
|
424
|
-
*
|
|
425
|
-
* Renders as a single SVG element with a <pattern> — zero extra DOM nodes per tile.
|
|
426
|
-
* Sponsor tiles inside the pattern are clickable and support hover effects.
|
|
427
|
-
*/
|
|
471
|
+
/** Estimate rendered width of a string. CJK chars ≈ 1.0×, Latin ≈ 0.62× font size. */
|
|
428
472
|
declare function Watermark({ children, color, text, maxWidth, sponsor, speed, hidePoweredBy, trackSlug, track, claimed, counts, }: WatermarkProps): react_jsx_runtime.JSX.Element;
|
|
429
473
|
|
|
430
474
|
declare const colors: {
|
|
@@ -1168,18 +1212,6 @@ interface StepperProps {
|
|
|
1168
1212
|
accent?: string;
|
|
1169
1213
|
className?: string;
|
|
1170
1214
|
}
|
|
1171
|
-
/**
|
|
1172
|
-
* Horizontal multi-step progress indicator with connectors. Steps before the
|
|
1173
|
-
* cursor show a check, the current step is highlighted, the rest are muted.
|
|
1174
|
-
* Great for wizards, multi-phase flows, and onboarding.
|
|
1175
|
-
*
|
|
1176
|
-
* @example
|
|
1177
|
-
* <Stepper current={phase} onStepClick={setPhase} steps={[
|
|
1178
|
-
* { label: "분석", icon: "📝" },
|
|
1179
|
-
* { label: "준비", icon: "📸" },
|
|
1180
|
-
* { label: "생성", icon: "✨" },
|
|
1181
|
-
* ]} />
|
|
1182
|
-
*/
|
|
1183
1215
|
declare function Stepper({ steps, current, completedThrough, onStepClick, accent, className, }: StepperProps): react_jsx_runtime.JSX.Element;
|
|
1184
1216
|
|
|
1185
1217
|
interface CollapsibleProps {
|
|
@@ -1201,17 +1233,6 @@ interface CollapsibleProps {
|
|
|
1201
1233
|
children: ReactNode;
|
|
1202
1234
|
className?: string;
|
|
1203
1235
|
}
|
|
1204
|
-
/**
|
|
1205
|
-
* Collapsible card with a header (leading marker, title, optional subtitle/badge)
|
|
1206
|
-
* and a body that shows when `open`. State-aware styling for expanded/completed.
|
|
1207
|
-
* Good for step lists, accordions, and disclosure sections.
|
|
1208
|
-
*
|
|
1209
|
-
* @example
|
|
1210
|
-
* <Collapsible leading={1} title="페르소나 분석" subtitle="스타일 파악"
|
|
1211
|
-
* open={open === 1} onToggle={() => setOpen(open === 1 ? null : 1)} completed>
|
|
1212
|
-
* <p>…</p>
|
|
1213
|
-
* </Collapsible>
|
|
1214
|
-
*/
|
|
1215
1236
|
declare function Collapsible({ title, subtitle, badge, leading, open, onToggle, completed, optionalTag, accent, children, className, }: CollapsibleProps): react_jsx_runtime.JSX.Element;
|
|
1216
1237
|
|
|
1217
1238
|
/**
|
|
@@ -1494,6 +1515,18 @@ interface UsePWAInstallReturn {
|
|
|
1494
1515
|
}
|
|
1495
1516
|
declare function usePWAInstall(): UsePWAInstallReturn;
|
|
1496
1517
|
|
|
1518
|
+
interface IOSInstallSheetProps {
|
|
1519
|
+
open: boolean;
|
|
1520
|
+
onClose(): void;
|
|
1521
|
+
appName: string;
|
|
1522
|
+
iconSrc?: string;
|
|
1523
|
+
}
|
|
1524
|
+
/**
|
|
1525
|
+
* Bottom-sheet guide for iOS "Add to Home Screen".
|
|
1526
|
+
* Can also be used standalone if you need custom trigger UI.
|
|
1527
|
+
*/
|
|
1528
|
+
declare function IOSInstallSheet({ open, onClose, appName, iconSrc }: IOSInstallSheetProps): react_jsx_runtime.JSX.Element | null;
|
|
1529
|
+
|
|
1497
1530
|
interface PWAInstallButtonProps {
|
|
1498
1531
|
/** App name shown in iOS guide sheet */
|
|
1499
1532
|
appName?: string;
|
|
@@ -1517,17 +1550,6 @@ interface PWAInstallButtonProps {
|
|
|
1517
1550
|
* <PWAInstallButton appName="My App" iconSrc="/icon.png" />
|
|
1518
1551
|
*/
|
|
1519
1552
|
declare function PWAInstallButton({ appName, iconSrc, label, installedLabel, className, }: PWAInstallButtonProps): react_jsx_runtime.JSX.Element | null;
|
|
1520
|
-
interface IOSInstallSheetProps {
|
|
1521
|
-
open: boolean;
|
|
1522
|
-
onClose(): void;
|
|
1523
|
-
appName: string;
|
|
1524
|
-
iconSrc?: string;
|
|
1525
|
-
}
|
|
1526
|
-
/**
|
|
1527
|
-
* Bottom-sheet guide for iOS "Add to Home Screen".
|
|
1528
|
-
* Can also be used standalone if you need custom trigger UI.
|
|
1529
|
-
*/
|
|
1530
|
-
declare function IOSInstallSheet({ open, onClose, appName, iconSrc }: IOSInstallSheetProps): react_jsx_runtime.JSX.Element | null;
|
|
1531
1553
|
|
|
1532
1554
|
/**
|
|
1533
1555
|
* Drop into <head> in your root layout to pre-load kit styles and
|
|
@@ -1709,5 +1731,19 @@ interface DateCount {
|
|
|
1709
1731
|
* // [{date:"2026-07-01",count:0}, …, {date:"2026-07-06",count:3}, {date:"2026-07-07",count:0}]
|
|
1710
1732
|
*/
|
|
1711
1733
|
declare function fillDateSeries(daily: DateCount[], days: number, timeZone?: string): DateCount[];
|
|
1734
|
+
/**
|
|
1735
|
+
* 한국식 수 축약 (내림). 조회수·좋아요 표기용 — 단위는 호출부에서
|
|
1736
|
+
* `${formatKoreanNumber(n)}회`처럼 붙인다.
|
|
1737
|
+
*/
|
|
1738
|
+
declare function formatKoreanNumber(n: number | string): string;
|
|
1739
|
+
interface IsoDuration {
|
|
1740
|
+
hours: number;
|
|
1741
|
+
minutes: number;
|
|
1742
|
+
seconds: number;
|
|
1743
|
+
}
|
|
1744
|
+
/** "PT1H2M3S" → { hours: 1, minutes: 2, seconds: 3 } */
|
|
1745
|
+
declare function parseIsoDuration(duration: string): IsoDuration;
|
|
1746
|
+
/** "PT1H2M3S" → 3723 (초) */
|
|
1747
|
+
declare function isoDurationToSec(duration: string): number;
|
|
1712
1748
|
|
|
1713
|
-
export { ActionCard, type ActionCardLabels, type ActionCardProps, type ActionCardState, type ApiClient, type ApiClientOptions, ApiError, AppShell, AppShellContent, type AppShellContentProps, AppShellHeader, type AppShellHeaderProps, type AppShellProps, AsyncList, type AsyncListProps, type AsyncListStatus, Avatar, type AvatarProps, Badge, type BadgeProps, BarList, type BarListItem, type BarListProps, Button, type ButtonProps, Carousel, type CarouselProps, ChatBubble, type ChatBubbleProps, type ChatMessage, type ChatRole, CodeBlock, type CodeBlockProps, Collapsible, type CollapsibleProps, type ColorName, ColorPicker, type ColorPickerProps, CopyButton, type CopyButtonProps, Countdown, type CountdownLabels, type CountdownProps, type DateCount, type DayGroup, Dialog, type DialogProps, Divider, type DividerProps, EmojiButton, type EmojiButtonProps, EmojiPicker, type EmojiPickerLabels, type EmojiPickerProps, EmptyState, type EmptyStateProps, Fab, type FabProps, FetchProgress, type FetchProgressProps, Field, type FieldProps, FontLinks, type FontName, GrassMap, type GrassMapData, type GrassMapLabels, type GrassMapProps, IOSInstallSheet, IconButton, type IconButtonProps, Img, type ImgProps, InAppSheet, type InAppSheetProps, InlineEdit, type InlineEditProps, Input, type InputProps, KitStyles, LinkifiedText, type LinkifiedTextProps, ListRow, type ListRowProps, MessageList, type MessageListProps, PWAInstallButton, type PWAInstallState, PoweredByKit, type PoweredByKitProps, ProgressRing, type ProgressRingProps, Section, SectionHeader, type SectionHeaderProps, type SectionProps, type SegmentOption, SegmentedControl, type SegmentedControlProps, Select, type SelectOption, type SelectProps, ShareButton, type ShareButtonProps, Skeleton, type SkeletonProps, StatChip, type StatChipProps, type Step, Stepper, type StepperProps, Switch, type SwitchProps, THEME_SCRIPT, Tab, TabBar, type TabBarProps, type TabProps, type TabRootProps, Textarea, type TextareaProps, ThemeButton, type ThemeButtonProps, ThemeDialog, type ThemeDialogLabels, type ThemeDialogProps, type ToastOptions, ToastProvider, type ToastVariant, Tooltip, type TooltipProps, Typewriter, type TypewriterProps, TypingIndicator, type TypingIndicatorProps, type UseFetchOptions, type UseFetchResult, type UseFormSubmitOptions, type UseFormSubmitResult, type UseInViewOptions, type UseInViewResult, type UsePWAInstallReturn, type UsePollingOptions, type UsePollingResult, type UseShareOptions, type UseShareReturn, Watermark, type WatermarkProps, type WatermarkSponsor, clearFetchCache, cn, colors, createApiClient, createManifest, fillDateSeries, fontFamily, fonts, formatDayLabel, formatDuration, formatNumber, formatPrice, getFetchActiveCount, groupByDay, invalidateFetch, mobileViewport, postJson, relativeTime, subscribeFetchActivity, svgIcon, useCopy, useDebounce, useEscapeKey, useFetch, useFocusTrap, useFormSubmit, useImageLoader, useInView, useLocalStorage, usePWAInstall, usePolling, usePortalTarget, useScrollLock, useShare, useToast };
|
|
1749
|
+
export { ActionCard, type ActionCardLabels, type ActionCardProps, type ActionCardState, type ApiClient, type ApiClientOptions, ApiError, AppShell, AppShellContent, type AppShellContentProps, AppShellHeader, type AppShellHeaderProps, type AppShellProps, AsyncList, type AsyncListProps, type AsyncListStatus, Avatar, type AvatarProps, Badge, type BadgeProps, BarList, type BarListItem, type BarListProps, Button, type ButtonProps, Carousel, type CarouselProps, ChatBubble, type ChatBubbleProps, type ChatMessage, type ChatRole, CodeBlock, type CodeBlockProps, Collapsible, type CollapsibleProps, type ColorName, ColorPicker, type ColorPickerProps, CopyButton, type CopyButtonProps, Countdown, type CountdownLabels, type CountdownProps, type DateCount, type DayGroup, Dialog, type DialogProps, Divider, type DividerProps, EmojiButton, type EmojiButtonProps, EmojiPicker, type EmojiPickerLabels, type EmojiPickerProps, EmptyState, type EmptyStateProps, Fab, type FabProps, FetchProgress, type FetchProgressProps, Field, type FieldProps, FontLinks, type FontName, GrassMap, type GrassMapData, type GrassMapLabels, type GrassMapProps, IOSInstallSheet, IconButton, type IconButtonProps, Img, type ImgProps, InAppSheet, type InAppSheetProps, InlineEdit, type InlineEditProps, Input, type InputProps, type IsoDuration, KitStyles, LinkifiedText, type LinkifiedTextProps, ListRow, type ListRowProps, MediaCard, type MediaCardProps, MessageList, type MessageListProps, PWAInstallButton, type PWAInstallState, PoweredByKit, type PoweredByKitProps, ProgressRing, type ProgressRingProps, Section, SectionHeader, type SectionHeaderProps, type SectionProps, type SegmentOption, SegmentedControl, type SegmentedControlProps, Select, type SelectOption, type SelectProps, ShareButton, type ShareButtonProps, Skeleton, type SkeletonProps, StatChip, type StatChipProps, type Step, Stepper, type StepperProps, Switch, type SwitchProps, THEME_SCRIPT, Tab, TabBar, type TabBarProps, type TabProps, type TabRootProps, Textarea, type TextareaProps, ThemeButton, type ThemeButtonProps, ThemeDialog, type ThemeDialogLabels, type ThemeDialogProps, type ToastOptions, ToastProvider, type ToastVariant, Tooltip, type TooltipProps, Typewriter, type TypewriterProps, TypingIndicator, type TypingIndicatorProps, type UnderlineTab, UnderlineTabs, type UnderlineTabsProps, type UseFetchOptions, type UseFetchResult, type UseFormSubmitOptions, type UseFormSubmitResult, type UseInViewOptions, type UseInViewResult, type UsePWAInstallReturn, type UsePollingOptions, type UsePollingResult, type UseShareOptions, type UseShareReturn, Watermark, type WatermarkProps, type WatermarkSponsor, clearFetchCache, cn, colors, createApiClient, createManifest, fillDateSeries, fontFamily, fonts, formatDayLabel, formatDuration, formatKoreanNumber, formatNumber, formatPrice, getFetchActiveCount, groupByDay, invalidateFetch, isoDurationToSec, mobileViewport, parseIsoDuration, postJson, relativeTime, subscribeFetchActivity, svgIcon, useCopy, useDebounce, useEscapeKey, useFetch, useFocusTrap, useFormSubmit, useImageLoader, useInView, useLocalStorage, usePWAInstall, usePolling, usePortalTarget, useScrollLock, useShare, useToast };
|
package/dist/index.d.ts
CHANGED
|
@@ -304,6 +304,55 @@ interface TextareaProps extends InputBaseProps {
|
|
|
304
304
|
}
|
|
305
305
|
declare function Textarea({ value, onChange, placeholder, rows, disabled, onFocus, onBlur, className, }: TextareaProps): react_jsx_runtime.JSX.Element;
|
|
306
306
|
|
|
307
|
+
interface MediaCardProps {
|
|
308
|
+
/** 16:9 썸네일 이미지 URL */
|
|
309
|
+
thumbnail: string;
|
|
310
|
+
/** 썸네일 우하단 배지 (재생시간 등) */
|
|
311
|
+
badge?: string;
|
|
312
|
+
/** horizontal: 썸네일 좌측 절반 / vertical: 썸네일 상단 풀폭 */
|
|
313
|
+
layout?: "horizontal" | "vertical";
|
|
314
|
+
onClick?: () => void;
|
|
315
|
+
/** 제목·메타 등 본문 — 폰트/색은 호출부 소유 */
|
|
316
|
+
children: ReactNode;
|
|
317
|
+
className?: string;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* 썸네일 + 본문 미디어 카드 (영상·플레이리스트 목록용).
|
|
321
|
+
*
|
|
322
|
+
* @example
|
|
323
|
+
* <MediaCard thumbnail={v.thumbnail} badge={v.duration} onClick={open}>
|
|
324
|
+
* <p className="text-base line-clamp-2">{v.title}</p>
|
|
325
|
+
* <p className="text-xs text-zinc-400">조회수 {formatKoreanNumber(v.viewCount)}회</p>
|
|
326
|
+
* </MediaCard>
|
|
327
|
+
*/
|
|
328
|
+
declare function MediaCard({ thumbnail, badge, layout, onClick, children, className, }: MediaCardProps): react_jsx_runtime.JSX.Element;
|
|
329
|
+
|
|
330
|
+
interface UnderlineTab<T extends string = string> {
|
|
331
|
+
id: T;
|
|
332
|
+
label: string;
|
|
333
|
+
}
|
|
334
|
+
interface UnderlineTabsProps<T extends string = string> {
|
|
335
|
+
tabs: UnderlineTab<T>[];
|
|
336
|
+
active: T;
|
|
337
|
+
onChange: (id: T) => void;
|
|
338
|
+
/** 스크롤 상단 고정 */
|
|
339
|
+
sticky?: boolean;
|
|
340
|
+
/** 좁은 탭 간격 (요일 등 짧은 라벨 다수일 때) */
|
|
341
|
+
compact?: boolean;
|
|
342
|
+
/** 활성 탭 색. Default: currentColor 기반 (dark 셸에선 white) */
|
|
343
|
+
activeColor?: string;
|
|
344
|
+
className?: string;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* 하단 언더라인 인디케이터 탭 (콘텐츠 필터용) — 하단 내비 TabBar와 별개.
|
|
348
|
+
* SegmentedControl(박스형)과 달리 미디어 앱의 카테고리 탭 UX.
|
|
349
|
+
*
|
|
350
|
+
* @example
|
|
351
|
+
* <UnderlineTabs tabs={[{ id: "all", label: "전체" }, { id: "music", label: "음악" }]}
|
|
352
|
+
* active={tab} onChange={setTab} sticky />
|
|
353
|
+
*/
|
|
354
|
+
declare function UnderlineTabs<T extends string>({ tabs, active, onChange, sticky, compact, activeColor, className, }: UnderlineTabsProps<T>): react_jsx_runtime.JSX.Element;
|
|
355
|
+
|
|
307
356
|
interface SectionProps {
|
|
308
357
|
children: ReactNode;
|
|
309
358
|
className?: string;
|
|
@@ -419,12 +468,7 @@ interface WatermarkProps {
|
|
|
419
468
|
total?: number;
|
|
420
469
|
};
|
|
421
470
|
}
|
|
422
|
-
/**
|
|
423
|
-
* Full-screen colored background with repeating animated text watermark pattern.
|
|
424
|
-
*
|
|
425
|
-
* Renders as a single SVG element with a <pattern> — zero extra DOM nodes per tile.
|
|
426
|
-
* Sponsor tiles inside the pattern are clickable and support hover effects.
|
|
427
|
-
*/
|
|
471
|
+
/** Estimate rendered width of a string. CJK chars ≈ 1.0×, Latin ≈ 0.62× font size. */
|
|
428
472
|
declare function Watermark({ children, color, text, maxWidth, sponsor, speed, hidePoweredBy, trackSlug, track, claimed, counts, }: WatermarkProps): react_jsx_runtime.JSX.Element;
|
|
429
473
|
|
|
430
474
|
declare const colors: {
|
|
@@ -1168,18 +1212,6 @@ interface StepperProps {
|
|
|
1168
1212
|
accent?: string;
|
|
1169
1213
|
className?: string;
|
|
1170
1214
|
}
|
|
1171
|
-
/**
|
|
1172
|
-
* Horizontal multi-step progress indicator with connectors. Steps before the
|
|
1173
|
-
* cursor show a check, the current step is highlighted, the rest are muted.
|
|
1174
|
-
* Great for wizards, multi-phase flows, and onboarding.
|
|
1175
|
-
*
|
|
1176
|
-
* @example
|
|
1177
|
-
* <Stepper current={phase} onStepClick={setPhase} steps={[
|
|
1178
|
-
* { label: "분석", icon: "📝" },
|
|
1179
|
-
* { label: "준비", icon: "📸" },
|
|
1180
|
-
* { label: "생성", icon: "✨" },
|
|
1181
|
-
* ]} />
|
|
1182
|
-
*/
|
|
1183
1215
|
declare function Stepper({ steps, current, completedThrough, onStepClick, accent, className, }: StepperProps): react_jsx_runtime.JSX.Element;
|
|
1184
1216
|
|
|
1185
1217
|
interface CollapsibleProps {
|
|
@@ -1201,17 +1233,6 @@ interface CollapsibleProps {
|
|
|
1201
1233
|
children: ReactNode;
|
|
1202
1234
|
className?: string;
|
|
1203
1235
|
}
|
|
1204
|
-
/**
|
|
1205
|
-
* Collapsible card with a header (leading marker, title, optional subtitle/badge)
|
|
1206
|
-
* and a body that shows when `open`. State-aware styling for expanded/completed.
|
|
1207
|
-
* Good for step lists, accordions, and disclosure sections.
|
|
1208
|
-
*
|
|
1209
|
-
* @example
|
|
1210
|
-
* <Collapsible leading={1} title="페르소나 분석" subtitle="스타일 파악"
|
|
1211
|
-
* open={open === 1} onToggle={() => setOpen(open === 1 ? null : 1)} completed>
|
|
1212
|
-
* <p>…</p>
|
|
1213
|
-
* </Collapsible>
|
|
1214
|
-
*/
|
|
1215
1236
|
declare function Collapsible({ title, subtitle, badge, leading, open, onToggle, completed, optionalTag, accent, children, className, }: CollapsibleProps): react_jsx_runtime.JSX.Element;
|
|
1216
1237
|
|
|
1217
1238
|
/**
|
|
@@ -1494,6 +1515,18 @@ interface UsePWAInstallReturn {
|
|
|
1494
1515
|
}
|
|
1495
1516
|
declare function usePWAInstall(): UsePWAInstallReturn;
|
|
1496
1517
|
|
|
1518
|
+
interface IOSInstallSheetProps {
|
|
1519
|
+
open: boolean;
|
|
1520
|
+
onClose(): void;
|
|
1521
|
+
appName: string;
|
|
1522
|
+
iconSrc?: string;
|
|
1523
|
+
}
|
|
1524
|
+
/**
|
|
1525
|
+
* Bottom-sheet guide for iOS "Add to Home Screen".
|
|
1526
|
+
* Can also be used standalone if you need custom trigger UI.
|
|
1527
|
+
*/
|
|
1528
|
+
declare function IOSInstallSheet({ open, onClose, appName, iconSrc }: IOSInstallSheetProps): react_jsx_runtime.JSX.Element | null;
|
|
1529
|
+
|
|
1497
1530
|
interface PWAInstallButtonProps {
|
|
1498
1531
|
/** App name shown in iOS guide sheet */
|
|
1499
1532
|
appName?: string;
|
|
@@ -1517,17 +1550,6 @@ interface PWAInstallButtonProps {
|
|
|
1517
1550
|
* <PWAInstallButton appName="My App" iconSrc="/icon.png" />
|
|
1518
1551
|
*/
|
|
1519
1552
|
declare function PWAInstallButton({ appName, iconSrc, label, installedLabel, className, }: PWAInstallButtonProps): react_jsx_runtime.JSX.Element | null;
|
|
1520
|
-
interface IOSInstallSheetProps {
|
|
1521
|
-
open: boolean;
|
|
1522
|
-
onClose(): void;
|
|
1523
|
-
appName: string;
|
|
1524
|
-
iconSrc?: string;
|
|
1525
|
-
}
|
|
1526
|
-
/**
|
|
1527
|
-
* Bottom-sheet guide for iOS "Add to Home Screen".
|
|
1528
|
-
* Can also be used standalone if you need custom trigger UI.
|
|
1529
|
-
*/
|
|
1530
|
-
declare function IOSInstallSheet({ open, onClose, appName, iconSrc }: IOSInstallSheetProps): react_jsx_runtime.JSX.Element | null;
|
|
1531
1553
|
|
|
1532
1554
|
/**
|
|
1533
1555
|
* Drop into <head> in your root layout to pre-load kit styles and
|
|
@@ -1709,5 +1731,19 @@ interface DateCount {
|
|
|
1709
1731
|
* // [{date:"2026-07-01",count:0}, …, {date:"2026-07-06",count:3}, {date:"2026-07-07",count:0}]
|
|
1710
1732
|
*/
|
|
1711
1733
|
declare function fillDateSeries(daily: DateCount[], days: number, timeZone?: string): DateCount[];
|
|
1734
|
+
/**
|
|
1735
|
+
* 한국식 수 축약 (내림). 조회수·좋아요 표기용 — 단위는 호출부에서
|
|
1736
|
+
* `${formatKoreanNumber(n)}회`처럼 붙인다.
|
|
1737
|
+
*/
|
|
1738
|
+
declare function formatKoreanNumber(n: number | string): string;
|
|
1739
|
+
interface IsoDuration {
|
|
1740
|
+
hours: number;
|
|
1741
|
+
minutes: number;
|
|
1742
|
+
seconds: number;
|
|
1743
|
+
}
|
|
1744
|
+
/** "PT1H2M3S" → { hours: 1, minutes: 2, seconds: 3 } */
|
|
1745
|
+
declare function parseIsoDuration(duration: string): IsoDuration;
|
|
1746
|
+
/** "PT1H2M3S" → 3723 (초) */
|
|
1747
|
+
declare function isoDurationToSec(duration: string): number;
|
|
1712
1748
|
|
|
1713
|
-
export { ActionCard, type ActionCardLabels, type ActionCardProps, type ActionCardState, type ApiClient, type ApiClientOptions, ApiError, AppShell, AppShellContent, type AppShellContentProps, AppShellHeader, type AppShellHeaderProps, type AppShellProps, AsyncList, type AsyncListProps, type AsyncListStatus, Avatar, type AvatarProps, Badge, type BadgeProps, BarList, type BarListItem, type BarListProps, Button, type ButtonProps, Carousel, type CarouselProps, ChatBubble, type ChatBubbleProps, type ChatMessage, type ChatRole, CodeBlock, type CodeBlockProps, Collapsible, type CollapsibleProps, type ColorName, ColorPicker, type ColorPickerProps, CopyButton, type CopyButtonProps, Countdown, type CountdownLabels, type CountdownProps, type DateCount, type DayGroup, Dialog, type DialogProps, Divider, type DividerProps, EmojiButton, type EmojiButtonProps, EmojiPicker, type EmojiPickerLabels, type EmojiPickerProps, EmptyState, type EmptyStateProps, Fab, type FabProps, FetchProgress, type FetchProgressProps, Field, type FieldProps, FontLinks, type FontName, GrassMap, type GrassMapData, type GrassMapLabels, type GrassMapProps, IOSInstallSheet, IconButton, type IconButtonProps, Img, type ImgProps, InAppSheet, type InAppSheetProps, InlineEdit, type InlineEditProps, Input, type InputProps, KitStyles, LinkifiedText, type LinkifiedTextProps, ListRow, type ListRowProps, MessageList, type MessageListProps, PWAInstallButton, type PWAInstallState, PoweredByKit, type PoweredByKitProps, ProgressRing, type ProgressRingProps, Section, SectionHeader, type SectionHeaderProps, type SectionProps, type SegmentOption, SegmentedControl, type SegmentedControlProps, Select, type SelectOption, type SelectProps, ShareButton, type ShareButtonProps, Skeleton, type SkeletonProps, StatChip, type StatChipProps, type Step, Stepper, type StepperProps, Switch, type SwitchProps, THEME_SCRIPT, Tab, TabBar, type TabBarProps, type TabProps, type TabRootProps, Textarea, type TextareaProps, ThemeButton, type ThemeButtonProps, ThemeDialog, type ThemeDialogLabels, type ThemeDialogProps, type ToastOptions, ToastProvider, type ToastVariant, Tooltip, type TooltipProps, Typewriter, type TypewriterProps, TypingIndicator, type TypingIndicatorProps, type UseFetchOptions, type UseFetchResult, type UseFormSubmitOptions, type UseFormSubmitResult, type UseInViewOptions, type UseInViewResult, type UsePWAInstallReturn, type UsePollingOptions, type UsePollingResult, type UseShareOptions, type UseShareReturn, Watermark, type WatermarkProps, type WatermarkSponsor, clearFetchCache, cn, colors, createApiClient, createManifest, fillDateSeries, fontFamily, fonts, formatDayLabel, formatDuration, formatNumber, formatPrice, getFetchActiveCount, groupByDay, invalidateFetch, mobileViewport, postJson, relativeTime, subscribeFetchActivity, svgIcon, useCopy, useDebounce, useEscapeKey, useFetch, useFocusTrap, useFormSubmit, useImageLoader, useInView, useLocalStorage, usePWAInstall, usePolling, usePortalTarget, useScrollLock, useShare, useToast };
|
|
1749
|
+
export { ActionCard, type ActionCardLabels, type ActionCardProps, type ActionCardState, type ApiClient, type ApiClientOptions, ApiError, AppShell, AppShellContent, type AppShellContentProps, AppShellHeader, type AppShellHeaderProps, type AppShellProps, AsyncList, type AsyncListProps, type AsyncListStatus, Avatar, type AvatarProps, Badge, type BadgeProps, BarList, type BarListItem, type BarListProps, Button, type ButtonProps, Carousel, type CarouselProps, ChatBubble, type ChatBubbleProps, type ChatMessage, type ChatRole, CodeBlock, type CodeBlockProps, Collapsible, type CollapsibleProps, type ColorName, ColorPicker, type ColorPickerProps, CopyButton, type CopyButtonProps, Countdown, type CountdownLabels, type CountdownProps, type DateCount, type DayGroup, Dialog, type DialogProps, Divider, type DividerProps, EmojiButton, type EmojiButtonProps, EmojiPicker, type EmojiPickerLabels, type EmojiPickerProps, EmptyState, type EmptyStateProps, Fab, type FabProps, FetchProgress, type FetchProgressProps, Field, type FieldProps, FontLinks, type FontName, GrassMap, type GrassMapData, type GrassMapLabels, type GrassMapProps, IOSInstallSheet, IconButton, type IconButtonProps, Img, type ImgProps, InAppSheet, type InAppSheetProps, InlineEdit, type InlineEditProps, Input, type InputProps, type IsoDuration, KitStyles, LinkifiedText, type LinkifiedTextProps, ListRow, type ListRowProps, MediaCard, type MediaCardProps, MessageList, type MessageListProps, PWAInstallButton, type PWAInstallState, PoweredByKit, type PoweredByKitProps, ProgressRing, type ProgressRingProps, Section, SectionHeader, type SectionHeaderProps, type SectionProps, type SegmentOption, SegmentedControl, type SegmentedControlProps, Select, type SelectOption, type SelectProps, ShareButton, type ShareButtonProps, Skeleton, type SkeletonProps, StatChip, type StatChipProps, type Step, Stepper, type StepperProps, Switch, type SwitchProps, THEME_SCRIPT, Tab, TabBar, type TabBarProps, type TabProps, type TabRootProps, Textarea, type TextareaProps, ThemeButton, type ThemeButtonProps, ThemeDialog, type ThemeDialogLabels, type ThemeDialogProps, type ToastOptions, ToastProvider, type ToastVariant, Tooltip, type TooltipProps, Typewriter, type TypewriterProps, TypingIndicator, type TypingIndicatorProps, type UnderlineTab, UnderlineTabs, type UnderlineTabsProps, type UseFetchOptions, type UseFetchResult, type UseFormSubmitOptions, type UseFormSubmitResult, type UseInViewOptions, type UseInViewResult, type UsePWAInstallReturn, type UsePollingOptions, type UsePollingResult, type UseShareOptions, type UseShareReturn, Watermark, type WatermarkProps, type WatermarkSponsor, clearFetchCache, cn, colors, createApiClient, createManifest, fillDateSeries, fontFamily, fonts, formatDayLabel, formatDuration, formatKoreanNumber, formatNumber, formatPrice, getFetchActiveCount, groupByDay, invalidateFetch, isoDurationToSec, mobileViewport, parseIsoDuration, postJson, relativeTime, subscribeFetchActivity, svgIcon, useCopy, useDebounce, useEscapeKey, useFetch, useFocusTrap, useFormSubmit, useImageLoader, useInView, useLocalStorage, usePWAInstall, usePolling, usePortalTarget, useScrollLock, useShare, useToast };
|