@kjun-ui/native 0.6.1 → 0.7.0
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.cjs +338 -292
- package/dist/index.js +307 -261
- package/dist/index.web.cjs +338 -292
- package/dist/index.web.js +307 -261
- package/dist/styles.css +46 -10
- package/dist/types/packages/native/src/data-state.d.cts +3 -1
- package/dist/types/packages/native/src/data-state.d.ts +3 -1
- package/dist/types/packages/native/src/kpi-hero.d.cts +2 -0
- package/dist/types/packages/native/src/kpi-hero.d.ts +2 -0
- package/dist/types/packages/native/src/kpi-row.d.cts +3 -1
- package/dist/types/packages/native/src/kpi-row.d.ts +3 -1
- package/dist/types/packages/native/src/market-model.d.cts +5 -0
- package/dist/types/packages/native/src/market-model.d.ts +5 -0
- package/dist/types/packages/native/src/table-cards.d.cts +1 -1
- package/dist/types/packages/native/src/table-cards.d.ts +1 -1
- package/dist/types/packages/native/src/table-grid.d.cts +1 -1
- package/dist/types/packages/native/src/table-grid.d.ts +1 -1
- package/dist/types/shared/package-runtime/table-presentation.d.cts +2 -0
- package/dist/types/shared/package-runtime/table-presentation.d.ts +2 -0
- package/dist/types/shared/package-runtime/table.d.cts +5 -0
- package/dist/types/shared/package-runtime/table.d.ts +5 -0
- package/dist/types/shared/package-runtime/use-loading-reveal.d.cts +2 -0
- package/dist/types/shared/package-runtime/use-loading-reveal.d.ts +2 -0
- package/package.json +3 -3
package/dist/styles.css
CHANGED
|
@@ -686,6 +686,9 @@
|
|
|
686
686
|
--_kjun-state-opacity-pending: 0.55;
|
|
687
687
|
--_kjun-state-opacity-heat-minimum: 0.08;
|
|
688
688
|
--_kjun-state-opacity-heat-maximum: 0.4;
|
|
689
|
+
--_kjun-state-opacity-deviation-low: 0.08;
|
|
690
|
+
--_kjun-state-opacity-deviation-medium: 0.14;
|
|
691
|
+
--_kjun-state-opacity-deviation-strong: 0.22;
|
|
689
692
|
--_kjun-state-focus-width: 2px;
|
|
690
693
|
--_kjun-state-focus-offset: 2px;
|
|
691
694
|
--_kjun-state-focus-choice-offset: 3px;
|
|
@@ -1137,7 +1140,6 @@
|
|
|
1137
1140
|
.kjun-scope .kjun-field--suffix { padding-right: calc(var(--_kjun-field-padding) + var(--_kjun-field-clear-size) + var(--_kjun-field-affix-gap) - var(--_kjun-border-control-width)); }
|
|
1138
1141
|
.kjun-scope .kjun-input-native.kjun-field--prefix { padding-left: calc(var(--_kjun-field-padding) + var(--_kjun-input-prefix-width) + var(--_kjun-field-affix-gap) - var(--_kjun-border-control-width)); }
|
|
1139
1142
|
.kjun-scope .kjun-input-native.kjun-field--suffix { padding-right: calc(var(--_kjun-field-padding) + var(--_kjun-input-suffix-width) + var(--_kjun-field-affix-gap) - var(--_kjun-border-control-width)); }
|
|
1140
|
-
.kjun-scope .kjun-field--clearable > .kj-truncate { padding-right: calc(var(--_kjun-field-clear-size) + var(--_kjun-field-affix-gap)); }
|
|
1141
1143
|
.kjun-scope .kjun-field--select { display: flex; align-items: center; justify-content: space-between; text-align: left; gap: var(--_kjun-geometry-dimension-value8); }
|
|
1142
1144
|
.kjun-scope .kjun-field--textarea { height: auto; padding-top: var(--_kjun-field-textarea-padding-y); padding-bottom: var(--_kjun-field-textarea-padding-y); }
|
|
1143
1145
|
.kjun-scope .kjun-field-shell { position: relative; min-width: 0; --_kjun-input-prefix-width: 0px; --_kjun-input-suffix-width: 0px; }
|
|
@@ -1160,7 +1162,7 @@
|
|
|
1160
1162
|
.kjun-scope .kjun-form-group { margin-bottom: var(--_kjun-extension-form-item-gap); min-width: 0; }
|
|
1161
1163
|
.kjun-scope .kjun-form-group:last-child { margin-bottom: 0; }
|
|
1162
1164
|
/* 그리드·툴바는 부모 gap을 사용하고, 일반 문서 흐름의 기존 폼만 기본 간격을 유지한다. */
|
|
1163
|
-
.kjun-scope :where(
|
|
1165
|
+
.kjun-scope :where([data-kjun-layout="form"]) > .kjun-form-group { margin-bottom: 0; }
|
|
1164
1166
|
.kjun-scope .kjun-field-menu {
|
|
1165
1167
|
padding: var(--_kjun-extension-menu-padding);
|
|
1166
1168
|
border: var(--_kjun-border-default-width) solid var(--_kjun-border-primary);
|
|
@@ -1382,12 +1384,12 @@
|
|
|
1382
1384
|
.kjun-scope .kjun-type-control-large { font-size: var(--_kjun-type-control-large-size); line-height: var(--_kjun-type-control-large-line); font-weight: var(--_kjun-type-control-large-weight); letter-spacing: var(--_kjun-type-control-large-tracking); }
|
|
1383
1385
|
.kjun-scope .kjun-type-section-title { font-size: var(--_kjun-type-section-title-size); line-height: var(--_kjun-type-section-title-line); font-weight: var(--_kjun-type-section-title-weight); letter-spacing: var(--_kjun-type-section-title-tracking); }
|
|
1384
1386
|
.kjun-scope .kjun-type-page-title { font-size: var(--_kjun-type-page-title-size); line-height: var(--_kjun-type-page-title-line); font-weight: var(--_kjun-type-page-title-weight); letter-spacing: var(--_kjun-type-page-title-tracking); }
|
|
1385
|
-
.kjun-scope .kjun-type-number-sm { font-size: var(--_kjun-type-number-sm-size); line-height: var(--_kjun-type-number-sm-line); font-weight: var(--_kjun-type-number-sm-weight); letter-spacing: var(--_kjun-type-number-sm-tracking); font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
|
|
1386
|
-
.kjun-scope .kjun-type-number-md { font-size: var(--_kjun-type-number-md-size); line-height: var(--_kjun-type-number-md-line); font-weight: var(--_kjun-type-number-md-weight); letter-spacing: var(--_kjun-type-number-md-tracking); font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
|
|
1387
|
-
.kjun-scope .kjun-type-number-lg { font-size: var(--_kjun-type-number-lg-size); line-height: var(--_kjun-type-number-lg-line); font-weight: var(--_kjun-type-number-lg-weight); letter-spacing: var(--_kjun-type-number-lg-tracking); font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
|
|
1388
|
-
.kjun-scope .kjun-type-display-sm { font-size: var(--_kjun-type-display-sm-size); line-height: var(--_kjun-type-display-sm-line); font-weight: var(--_kjun-type-display-sm-weight); letter-spacing: var(--_kjun-type-display-sm-tracking); font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
|
|
1389
|
-
.kjun-scope .kjun-type-display-md { font-size: var(--_kjun-type-display-md-size); line-height: var(--_kjun-type-display-md-line); font-weight: var(--_kjun-type-display-md-weight); letter-spacing: var(--_kjun-type-display-md-tracking); font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
|
|
1390
|
-
.kjun-scope .kjun-type-display-lg { font-size: var(--_kjun-type-display-lg-size); line-height: var(--_kjun-type-display-lg-line); font-weight: var(--_kjun-type-display-lg-weight); letter-spacing: var(--_kjun-type-display-lg-tracking); font-family: var(--font-numeric); font-variant-numeric: tabular-nums; }
|
|
1387
|
+
.kjun-scope .kjun-type-number-sm { font-size: var(--_kjun-type-number-sm-size); line-height: var(--_kjun-type-number-sm-line); font-weight: var(--_kjun-type-number-sm-weight); letter-spacing: var(--_kjun-type-number-sm-tracking); font-family: var(--_kjun-font-numeric); font-variant-numeric: tabular-nums; }
|
|
1388
|
+
.kjun-scope .kjun-type-number-md { font-size: var(--_kjun-type-number-md-size); line-height: var(--_kjun-type-number-md-line); font-weight: var(--_kjun-type-number-md-weight); letter-spacing: var(--_kjun-type-number-md-tracking); font-family: var(--_kjun-font-numeric); font-variant-numeric: tabular-nums; }
|
|
1389
|
+
.kjun-scope .kjun-type-number-lg { font-size: var(--_kjun-type-number-lg-size); line-height: var(--_kjun-type-number-lg-line); font-weight: var(--_kjun-type-number-lg-weight); letter-spacing: var(--_kjun-type-number-lg-tracking); font-family: var(--_kjun-font-numeric); font-variant-numeric: tabular-nums; }
|
|
1390
|
+
.kjun-scope .kjun-type-display-sm { font-size: var(--_kjun-type-display-sm-size); line-height: var(--_kjun-type-display-sm-line); font-weight: var(--_kjun-type-display-sm-weight); letter-spacing: var(--_kjun-type-display-sm-tracking); font-family: var(--_kjun-font-numeric); font-variant-numeric: tabular-nums; }
|
|
1391
|
+
.kjun-scope .kjun-type-display-md { font-size: var(--_kjun-type-display-md-size); line-height: var(--_kjun-type-display-md-line); font-weight: var(--_kjun-type-display-md-weight); letter-spacing: var(--_kjun-type-display-md-tracking); font-family: var(--_kjun-font-numeric); font-variant-numeric: tabular-nums; }
|
|
1392
|
+
.kjun-scope .kjun-type-display-lg { font-size: var(--_kjun-type-display-lg-size); line-height: var(--_kjun-type-display-lg-line); font-weight: var(--_kjun-type-display-lg-weight); letter-spacing: var(--_kjun-type-display-lg-tracking); font-family: var(--_kjun-font-numeric); font-variant-numeric: tabular-nums; }
|
|
1391
1393
|
|
|
1392
1394
|
@keyframes kjun-price-flash-up {
|
|
1393
1395
|
0%, 20% {
|
|
@@ -2954,12 +2956,14 @@
|
|
|
2954
2956
|
opacity: var(--_kjun-state-opacity-disabled);
|
|
2955
2957
|
cursor: not-allowed;
|
|
2956
2958
|
}
|
|
2957
|
-
.kjun-icon-toggle svg {
|
|
2959
|
+
.kjun-icon-toggle svg:not([data-kjun-color-class]) {
|
|
2958
2960
|
color: var(--_kjun-icon-toggle-color, currentColor);
|
|
2961
|
+
}
|
|
2962
|
+
.kjun-icon-toggle svg {
|
|
2959
2963
|
transition: color var(--_kjun-motion-control) var(--_kjun-ease-out), transform var(--_kjun-motion-control) var(--_kjun-ease-out);
|
|
2960
2964
|
}
|
|
2961
2965
|
/* Like RefreshButton, an inactive icon darkens on hover; the selected color stays as set. */
|
|
2962
|
-
.kjun-icon-toggle[aria-pressed="false"]:hover:not(:disabled) svg {
|
|
2966
|
+
.kjun-icon-toggle[aria-pressed="false"]:hover:not(:disabled) svg:not([data-kjun-color-class]) {
|
|
2963
2967
|
color: var(--_kjun-color-text-secondary);
|
|
2964
2968
|
}
|
|
2965
2969
|
.kjun-icon-toggle:hover:not(:disabled) svg {
|
|
@@ -4126,6 +4130,22 @@
|
|
|
4126
4130
|
}
|
|
4127
4131
|
}
|
|
4128
4132
|
|
|
4133
|
+
/* 좁은 화면에서 보조 지표가 셋 이상이면 두 열로 감싼다. 한 줄에 몰아 숫자가 자릿수 사이에서 끊기지 않게 한다. */
|
|
4134
|
+
@media (width <= 400px) {
|
|
4135
|
+
.kjun-kpi-hero:not(.kjun-kpi-hero--sm) .kjun-kpi-hero__secondary:has(> .kjun-kpi-hero__sec-item:nth-child(3)) {
|
|
4136
|
+
display: grid;
|
|
4137
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
4138
|
+
row-gap: var(--_kjun-extension-kpi-hero-mobile-secondary-padding);
|
|
4139
|
+
}
|
|
4140
|
+
.kjun-kpi-hero:not(.kjun-kpi-hero--sm) .kjun-kpi-hero__secondary:has(> .kjun-kpi-hero__sec-item:nth-child(3)) > .kjun-kpi-hero__sec-item:nth-child(odd) {
|
|
4141
|
+
padding-left: 0;
|
|
4142
|
+
border-left: none;
|
|
4143
|
+
}
|
|
4144
|
+
.kjun-kpi-hero:not(.kjun-kpi-hero--sm) .kjun-kpi-hero__secondary:has(> .kjun-kpi-hero__sec-item:nth-child(3)) > .kjun-kpi-hero__sec-item:nth-child(even) {
|
|
4145
|
+
padding-right: 0;
|
|
4146
|
+
}
|
|
4147
|
+
}
|
|
4148
|
+
|
|
4129
4149
|
/* size=sm — 모달, 컴팩트 카드 내부용 */
|
|
4130
4150
|
.kjun-kpi-hero--sm {
|
|
4131
4151
|
padding: var(--_kjun-extension-kpi-hero-sm-padding-y) var(--_kjun-extension-kpi-hero-sm-padding-x);
|
|
@@ -4167,6 +4187,14 @@
|
|
|
4167
4187
|
}
|
|
4168
4188
|
}
|
|
4169
4189
|
|
|
4190
|
+
/* surface="none": 앱의 카드·모달·전폭 목록 안에서는 자체 카드 표면을 그리지 않는다. 미디어 규칙보다 뒤에 두어 좁은 화면에서도 이긴다. */
|
|
4191
|
+
/* 클래스를 겹쳐 모바일 규칙(.kjun-kpi-hero:not(.kjun-kpi-hero--sm))보다 명시도를 높인다. */
|
|
4192
|
+
.kjun-kpi-hero.kjun-kpi-hero[data-surface="none"] {
|
|
4193
|
+
padding: 0;
|
|
4194
|
+
background: transparent;
|
|
4195
|
+
border-radius: 0;
|
|
4196
|
+
}
|
|
4197
|
+
|
|
4170
4198
|
.kjun-kpi-row {
|
|
4171
4199
|
display: flex;
|
|
4172
4200
|
padding: var(--_kjun-extension-kpi-row-md-padding-y) var(--_kjun-extension-kpi-row-md-padding-x);
|
|
@@ -4455,6 +4483,14 @@
|
|
|
4455
4483
|
}
|
|
4456
4484
|
}
|
|
4457
4485
|
|
|
4486
|
+
/* surface="none": 앱의 카드·모달·전폭 목록 안에서는 자체 카드 표면을 그리지 않는다. 미디어 규칙보다 뒤에 두어 좁은 화면에서도 이긴다. */
|
|
4487
|
+
/* 클래스를 겹쳐 모바일 요약 규칙(.kjun-kpi-row.kjun-kpi-row--mobile-summary:not(...))과 같은 명시도로 맞춘다. */
|
|
4488
|
+
.kjun-kpi-row.kjun-kpi-row[data-surface="none"] {
|
|
4489
|
+
padding: 0;
|
|
4490
|
+
background: transparent;
|
|
4491
|
+
border-radius: 0;
|
|
4492
|
+
}
|
|
4493
|
+
|
|
4458
4494
|
.kjun-card {
|
|
4459
4495
|
position: relative;
|
|
4460
4496
|
min-width: 0;
|
|
@@ -19,6 +19,8 @@ export interface KjunDataStateProps extends QueryDisplayProps {
|
|
|
19
19
|
emptyIcon?: string;
|
|
20
20
|
emptyActionText?: string;
|
|
21
21
|
loadingText?: string;
|
|
22
|
+
/** Milliseconds a first load must last before its loading display shows; the box keeps its space meanwhile. */
|
|
23
|
+
loadingDelay?: number;
|
|
22
24
|
retryText?: string;
|
|
23
25
|
size?: "sm" | "md" | "lg";
|
|
24
26
|
skeleton?: boolean;
|
|
@@ -31,7 +33,7 @@ export interface KjunDataStateProps extends QueryDisplayProps {
|
|
|
31
33
|
onRetry?: () => void;
|
|
32
34
|
onEmptyAction?: () => void;
|
|
33
35
|
}
|
|
34
|
-
export declare function KjunDataState({ preserveContent, refreshing, refreshError, refreshingText, loadingPadding, empty, emptyText, emptyIcon, emptyActionText, loadingText, retryText, size, skeleton, skeletonType, skeletonCount, children, loadingContent, emptyContent, errorContent, onRetry, onEmptyAction, ...query }: KjunDataStateProps): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
export declare function KjunDataState({ preserveContent, refreshing, refreshError, refreshingText, loadingPadding, empty, emptyText, emptyIcon, emptyActionText, loadingText, loadingDelay, retryText, size, skeleton, skeletonType, skeletonCount, children, loadingContent, emptyContent, errorContent, onRetry, onEmptyAction, ...query }: KjunDataStateProps): import("react/jsx-runtime").JSX.Element;
|
|
35
37
|
export interface KjunErrorBoundaryProps {
|
|
36
38
|
children: ReactNode;
|
|
37
39
|
fallbackMessage?: string;
|
|
@@ -19,6 +19,8 @@ export interface KjunDataStateProps extends QueryDisplayProps {
|
|
|
19
19
|
emptyIcon?: string;
|
|
20
20
|
emptyActionText?: string;
|
|
21
21
|
loadingText?: string;
|
|
22
|
+
/** Milliseconds a first load must last before its loading display shows; the box keeps its space meanwhile. */
|
|
23
|
+
loadingDelay?: number;
|
|
22
24
|
retryText?: string;
|
|
23
25
|
size?: "sm" | "md" | "lg";
|
|
24
26
|
skeleton?: boolean;
|
|
@@ -31,7 +33,7 @@ export interface KjunDataStateProps extends QueryDisplayProps {
|
|
|
31
33
|
onRetry?: () => void;
|
|
32
34
|
onEmptyAction?: () => void;
|
|
33
35
|
}
|
|
34
|
-
export declare function KjunDataState({ preserveContent, refreshing, refreshError, refreshingText, loadingPadding, empty, emptyText, emptyIcon, emptyActionText, loadingText, retryText, size, skeleton, skeletonType, skeletonCount, children, loadingContent, emptyContent, errorContent, onRetry, onEmptyAction, ...query }: KjunDataStateProps): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
export declare function KjunDataState({ preserveContent, refreshing, refreshError, refreshingText, loadingPadding, empty, emptyText, emptyIcon, emptyActionText, loadingText, loadingDelay, retryText, size, skeleton, skeletonType, skeletonCount, children, loadingContent, emptyContent, errorContent, onRetry, onEmptyAction, ...query }: KjunDataStateProps): import("react/jsx-runtime").JSX.Element;
|
|
35
37
|
export interface KjunErrorBoundaryProps {
|
|
36
38
|
children: ReactNode;
|
|
37
39
|
fallbackMessage?: string;
|
|
@@ -27,6 +27,8 @@ export interface KjunKpiHeroProps {
|
|
|
27
27
|
secondary?: KpiValue[];
|
|
28
28
|
animated?: boolean;
|
|
29
29
|
size?: "md" | "sm";
|
|
30
|
+
/** "none" drops the card background, padding and radius, for a KPI placed inside a card, modal or full-width list. */
|
|
31
|
+
surface?: "card" | "none";
|
|
30
32
|
aside?: ReactNode;
|
|
31
33
|
formatter?: (value: number) => string;
|
|
32
34
|
deltaFormatter?: (value: number, kind: "absolute" | "percent") => string;
|
|
@@ -27,6 +27,8 @@ export interface KjunKpiHeroProps {
|
|
|
27
27
|
secondary?: KpiValue[];
|
|
28
28
|
animated?: boolean;
|
|
29
29
|
size?: "md" | "sm";
|
|
30
|
+
/** "none" drops the card background, padding and radius, for a KPI placed inside a card, modal or full-width list. */
|
|
31
|
+
surface?: "card" | "none";
|
|
30
32
|
aside?: ReactNode;
|
|
31
33
|
formatter?: (value: number) => string;
|
|
32
34
|
deltaFormatter?: (value: number, kind: "absolute" | "percent") => string;
|
|
@@ -25,8 +25,10 @@ export interface KjunKpiRowProps {
|
|
|
25
25
|
loading?: boolean;
|
|
26
26
|
items: KpiRowItem[];
|
|
27
27
|
size?: "md" | "sm";
|
|
28
|
+
/** "none" drops the card background, padding and radius, for a KPI placed inside a card, modal or full-width list. */
|
|
29
|
+
surface?: "card" | "none";
|
|
28
30
|
mobileSummary?: boolean;
|
|
29
31
|
onItemClick?: (item: KpiRowItem, index: number) => void;
|
|
30
32
|
renderValue?: (item: KpiRowItem, index: number) => ReactNode;
|
|
31
33
|
}
|
|
32
|
-
export declare function KjunKpiRow({ loading, items, size, mobileSummary, onItemClick, renderValue, }: KjunKpiRowProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
export declare function KjunKpiRow({ loading, items, size, surface, mobileSummary, onItemClick, renderValue, }: KjunKpiRowProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -25,8 +25,10 @@ export interface KjunKpiRowProps {
|
|
|
25
25
|
loading?: boolean;
|
|
26
26
|
items: KpiRowItem[];
|
|
27
27
|
size?: "md" | "sm";
|
|
28
|
+
/** "none" drops the card background, padding and radius, for a KPI placed inside a card, modal or full-width list. */
|
|
29
|
+
surface?: "card" | "none";
|
|
28
30
|
mobileSummary?: boolean;
|
|
29
31
|
onItemClick?: (item: KpiRowItem, index: number) => void;
|
|
30
32
|
renderValue?: (item: KpiRowItem, index: number) => ReactNode;
|
|
31
33
|
}
|
|
32
|
-
export declare function KjunKpiRow({ loading, items, size, mobileSummary, onItemClick, renderValue, }: KjunKpiRowProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
export declare function KjunKpiRow({ loading, items, size, surface, mobileSummary, onItemClick, renderValue, }: KjunKpiRowProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -17,6 +17,11 @@ export interface MarketBaseProps<Row extends object> extends QueryDisplayProps {
|
|
|
17
17
|
subMeta?: (row: Row) => string;
|
|
18
18
|
emptyMessage?: string;
|
|
19
19
|
emptySubMessage?: string;
|
|
20
|
+
/** false shows the shared spinner and loadingText instead of the skeleton. Default true. */
|
|
21
|
+
skeleton?: boolean;
|
|
22
|
+
loadingText?: string;
|
|
23
|
+
/** Milliseconds a first load must last before its loading display shows. */
|
|
24
|
+
loadingDelay?: number;
|
|
20
25
|
showFooter?: boolean;
|
|
21
26
|
calculatedAt?: string | null;
|
|
22
27
|
footerNote?: string;
|
|
@@ -17,6 +17,11 @@ export interface MarketBaseProps<Row extends object> extends QueryDisplayProps {
|
|
|
17
17
|
subMeta?: (row: Row) => string;
|
|
18
18
|
emptyMessage?: string;
|
|
19
19
|
emptySubMessage?: string;
|
|
20
|
+
/** false shows the shared spinner and loadingText instead of the skeleton. Default true. */
|
|
21
|
+
skeleton?: boolean;
|
|
22
|
+
loadingText?: string;
|
|
23
|
+
/** Milliseconds a first load must last before its loading display shows. */
|
|
24
|
+
loadingDelay?: number;
|
|
20
25
|
showFooter?: boolean;
|
|
21
26
|
calculatedAt?: string | null;
|
|
22
27
|
footerNote?: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { TableCardsProps } from "../../../shared/package-runtime/table-presentation.cjs";
|
|
2
|
-
export declare function TableCards<Row extends object>({ initialLoading, skeletonRows, state, onRowClick, selectable, checkbox, cell, expandable, expand, renderExpand, emptyContent, emptyText, layout }: TableCardsProps<Row>): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function TableCards<Row extends object>({ initialLoading, skeletonRows, skeletonHidden, state, onRowClick, selectable, checkbox, cell, expandable, expand, renderExpand, emptyContent, emptyText, layout }: TableCardsProps<Row>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { TableCardsProps } from "../../../shared/package-runtime/table-presentation.js";
|
|
2
|
-
export declare function TableCards<Row extends object>({ initialLoading, skeletonRows, state, onRowClick, selectable, checkbox, cell, expandable, expand, renderExpand, emptyContent, emptyText, layout }: TableCardsProps<Row>): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function TableCards<Row extends object>({ initialLoading, skeletonRows, skeletonHidden, state, onRowClick, selectable, checkbox, cell, expandable, expand, renderExpand, emptyContent, emptyText, layout }: TableCardsProps<Row>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { TableGridProps } from "../../../shared/package-runtime/table-presentation.cjs";
|
|
2
|
-
export declare function TableGrid<Row extends object>({ initialLoading, skeletonRows, state, onRowClick, selectable, checkbox, cell, expandable, expand, renderExpand, emptyContent, emptyText, visible, maxHeight, stickyHeader, sortable, compact, striped, hoverable }: TableGridProps<Row, number>): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function TableGrid<Row extends object>({ initialLoading, skeletonRows, skeletonHidden, state, onRowClick, selectable, checkbox, cell, expandable, expand, renderExpand, emptyContent, emptyText, visible, maxHeight, stickyHeader, sortable, compact, striped, hoverable }: TableGridProps<Row, number>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { TableGridProps } from "../../../shared/package-runtime/table-presentation.js";
|
|
2
|
-
export declare function TableGrid<Row extends object>({ initialLoading, skeletonRows, state, onRowClick, selectable, checkbox, cell, expandable, expand, renderExpand, emptyContent, emptyText, visible, maxHeight, stickyHeader, sortable, compact, striped, hoverable }: TableGridProps<Row, number>): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare function TableGrid<Row extends object>({ initialLoading, skeletonRows, skeletonHidden, state, onRowClick, selectable, checkbox, cell, expandable, expand, renderExpand, emptyContent, emptyText, visible, maxHeight, stickyHeader, sortable, compact, striped, hoverable }: TableGridProps<Row, number>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -18,6 +18,8 @@ export declare function tableCellValue<Row extends object>(props: TableProps<Row
|
|
|
18
18
|
export interface TableRowsProps<Row extends object> {
|
|
19
19
|
initialLoading: boolean;
|
|
20
20
|
skeletonRows: number;
|
|
21
|
+
/** A loadingDelay is still running: the skeleton keeps its space but stays out of sight. */
|
|
22
|
+
skeletonHidden?: boolean;
|
|
21
23
|
state: Pick<ReturnType<typeof useTableModel<Row>>, "rows" | "key" | "expanded" | "selectedRow">;
|
|
22
24
|
onRowClick: TableProps<Row>["onRowClick"];
|
|
23
25
|
selectable: boolean;
|
|
@@ -18,6 +18,8 @@ export declare function tableCellValue<Row extends object>(props: TableProps<Row
|
|
|
18
18
|
export interface TableRowsProps<Row extends object> {
|
|
19
19
|
initialLoading: boolean;
|
|
20
20
|
skeletonRows: number;
|
|
21
|
+
/** A loadingDelay is still running: the skeleton keeps its space but stays out of sight. */
|
|
22
|
+
skeletonHidden?: boolean;
|
|
21
23
|
state: Pick<ReturnType<typeof useTableModel<Row>>, "rows" | "key" | "expanded" | "selectedRow">;
|
|
22
24
|
onRowClick: TableProps<Row>["onRowClick"];
|
|
23
25
|
selectable: boolean;
|
|
@@ -38,6 +38,11 @@ export interface TableProps<Row extends object = Record<string, unknown>, MaxHei
|
|
|
38
38
|
data?: Row[];
|
|
39
39
|
rowKey?: string;
|
|
40
40
|
skeletonRows?: number;
|
|
41
|
+
/** false shows the shared spinner and loadingText instead of skeleton rows. Default true. */
|
|
42
|
+
skeleton?: boolean;
|
|
43
|
+
loadingText?: string;
|
|
44
|
+
/** Milliseconds a first load must last before its loading display shows. */
|
|
45
|
+
loadingDelay?: number;
|
|
41
46
|
emptyText?: string;
|
|
42
47
|
sortable?: boolean;
|
|
43
48
|
sort?: TableSort | null;
|
|
@@ -38,6 +38,11 @@ export interface TableProps<Row extends object = Record<string, unknown>, MaxHei
|
|
|
38
38
|
data?: Row[];
|
|
39
39
|
rowKey?: string;
|
|
40
40
|
skeletonRows?: number;
|
|
41
|
+
/** false shows the shared spinner and loadingText instead of skeleton rows. Default true. */
|
|
42
|
+
skeleton?: boolean;
|
|
43
|
+
loadingText?: string;
|
|
44
|
+
/** Milliseconds a first load must last before its loading display shows. */
|
|
45
|
+
loadingDelay?: number;
|
|
41
46
|
emptyText?: string;
|
|
42
47
|
sortable?: boolean;
|
|
43
48
|
sort?: TableSort | null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kjun-ui/native",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"homepage": "https://ui.kjun.dev",
|
|
6
6
|
"repository": {
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
"./package.json": "./package.json"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@kjun-ui/tokens": "0.
|
|
51
|
-
"@kjun-ui/icons": "0.
|
|
50
|
+
"@kjun-ui/tokens": "0.7.0",
|
|
51
|
+
"@kjun-ui/icons": "0.7.0"
|
|
52
52
|
},
|
|
53
53
|
"peerDependencies": {
|
|
54
54
|
"react": "^19.2.3",
|