@keepkit/ui 0.15.0 → 0.16.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/README.md +46 -2
- package/dist/index.d.ts +383 -37
- package/dist/index.js +436 -115
- package/dist/index.js.map +1 -1
- package/dist/styles/collection.css +180 -8
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -60,7 +60,29 @@ function SavedArticles() {
|
|
|
60
60
|
`KeepItemCard`は`href`、`onOpen`、`linkTarget`、`linkComponent`に対応し、保存アイテムから詳細ページへ遷移できます。非公開・期限切れ等の`status`を持つアイテムは自動的にリンクを無効化します。`KeepBackup`はJSONのエクスポート、merge / replaceインポート、結果件数、容量エラー表示を提供します。
|
|
61
61
|
外部URLの詳細リンクには`target="_blank"`と`rel="noreferrer"`が既定で補完され、利用できないカードには`aria-disabled="true"`と`data-item-status`が付与されます。同期競合ダイアログではローカルとリモートの更新日時・メモを並べて確認できます。
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
`KeepList`は初回ロード中、`layout`に合う`KeepItemCardSkeleton`を既定で6枚表示します。`loadingCount`で枚数を変更でき、従来の`loading`または`renderLoading`で完全に差し替えられます。`layout="auto"`は画面幅ではなく配置コンテナ幅に追従し、サイドバーやモーダルでも1列から複数列へ切り替わります。スケルトンのパルスは`prefers-reduced-motion`で静止表示になります。
|
|
64
|
+
|
|
65
|
+
カードの一部だけを配置し直す場合はCompound APIを利用できます。画像alt、タイトルリンク、タグ一覧のARIAラベル、保存操作の状態は各パーツでも維持されます。
|
|
66
|
+
|
|
67
|
+
```tsx
|
|
68
|
+
<KeepItemCard item={item} href={`/items/${item.id}`} getImageProps={getImageProps}>
|
|
69
|
+
<KeepItemCard.Media fallback="No image" />
|
|
70
|
+
<KeepItemCard.Content>
|
|
71
|
+
<KeepItemCard.Title />
|
|
72
|
+
<KeepItemCard.Tags />
|
|
73
|
+
</KeepItemCard.Content>
|
|
74
|
+
<KeepItemCard.Actions />
|
|
75
|
+
</KeepItemCard>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
`KeepKitProvider` / `KeepUiProvider`の`onFeedback`は`item-saved`、`item-removed`、`item-restored`、`sync-completed`、`sync-failed`、`stale-pruned`を通知します。削除系イベントには`undo`と現在ロケールの`undoLabel`が含まれます。Sonner互換の関数なら次の1行で接続できます(ライブラリ依存は追加されません)。
|
|
79
|
+
|
|
80
|
+
```tsx
|
|
81
|
+
const onFeedback = useKeepToastFeedback(toast);
|
|
82
|
+
<KeepKitProvider storage={storage} onFeedback={onFeedback}>{children}</KeepKitProvider>;
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
v0.16.0では`KeepCollection urlSync layout="list" | "grid" | "compact"`、`KeepBulkActions selectionScope="page" | "query" | "all"`、`KeepUndo`を利用できます。`createNextPagesRouterAdapter`はNext.js Pages Router用の注入adapterです。`locale`は英語、日本語、韓国語、中国語簡体字・繁体字、タイ語、フランス語、スペイン語、ポルトガル語、イタリア語、ドイツ語、ロシア語、フィリピン語、ベトナム語、インドネシア語、マレー語の16言語に対応し、`labels`で上書きできます。認証付き同期は`createAuthenticatedSyncKit`から利用できます。
|
|
64
86
|
Phase 4の状態UIとして`KeepItemStatusBadge`、`KeepStaleNotice`、`KeepPruneStaleButton`、`KeepSyncStatusBanner`、`KeepSyncRecoveryDialog`を利用できます。`import "@keepkit/ui/theme.css"`でテーマCSSを有効にできます。
|
|
65
87
|
|
|
66
88
|
### Tailwind/shadcnテーマ
|
|
@@ -151,7 +173,29 @@ The opt-in theme adds neutral borders, surfaces, shadows, focus treatment, and d
|
|
|
151
173
|
`KeepItemCard` accepts `href`, `onOpen`, `linkTarget`, and `linkComponent` for detail-page navigation. Links are disabled for unavailable `status` values such as private or expired. `KeepBackup` provides JSON export, merge/replace import, result counts, and quota-error messaging.
|
|
152
174
|
External detail URLs receive `target="_blank"` and `rel="noreferrer"` defaults. Unavailable cards expose `aria-disabled="true"` and normalized `data-item-status` values, and the sync recovery dialog compares local and remote updated dates and notes side by side.
|
|
153
175
|
|
|
154
|
-
|
|
176
|
+
During initial loading, `KeepList` renders six layout-matched `KeepItemCardSkeleton` placeholders by default. Change the count with `loadingCount`, or replace them with the existing `loading` prop or its `renderLoading` alias. `layout="auto"` responds to the available container width rather than viewport width, so embedded sidebars and dialogs collapse to one column. Skeleton pulses become static under `prefers-reduced-motion`.
|
|
177
|
+
|
|
178
|
+
Use the compound parts to rearrange only the card regions you own while preserving image alt text, linked headings, the labelled tag list, and action state:
|
|
179
|
+
|
|
180
|
+
```tsx
|
|
181
|
+
<KeepItemCard item={item} href={`/items/${item.id}`} getImageProps={getImageProps}>
|
|
182
|
+
<KeepItemCard.Media fallback="No image" />
|
|
183
|
+
<KeepItemCard.Content>
|
|
184
|
+
<KeepItemCard.Title />
|
|
185
|
+
<KeepItemCard.Tags />
|
|
186
|
+
</KeepItemCard.Content>
|
|
187
|
+
<KeepItemCard.Actions />
|
|
188
|
+
</KeepItemCard>
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
`onFeedback` on `KeepKitProvider` / `KeepUiProvider` receives `item-saved`, `item-removed`, `item-restored`, `sync-completed`, `sync-failed`, and `stale-pruned`. Removal events include an `undo` function and locale-aware `undoLabel`. Connect a Sonner-compatible function without adding a package dependency:
|
|
192
|
+
|
|
193
|
+
```tsx
|
|
194
|
+
const onFeedback = useKeepToastFeedback(toast);
|
|
195
|
+
<KeepKitProvider storage={storage} onFeedback={onFeedback}>{children}</KeepKitProvider>;
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
In v0.16.0, use `KeepCollection urlSync` with `layout="list" | "grid" | "compact"`, `KeepBulkActions selectionScope="page" | "query" | "all"`, and `KeepUndo`. `createNextPagesRouterAdapter` is the injected adapter for Next.js Pages Router. `locale` includes complete dictionaries for 16 built-in locales; `labels` overrides individual entries. Authenticated sync is available through `createAuthenticatedSyncKit`.
|
|
155
199
|
Phase 4 adds `KeepItemStatusBadge`, `KeepStaleNotice`, `KeepPruneStaleButton`, `KeepSyncStatusBanner`, and `KeepSyncRecoveryDialog` for unavailable items, sync failures, conflict resolution, and backup recovery. Import `@keepkit/ui/theme.css` or `@keepkit/ui/tailwind.css` for the opt-in theme layer.
|
|
156
200
|
|
|
157
201
|
### Tailwind and shadcn theme
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,70 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { ReactNode, HTMLAttributes, ComponentType, ImgHTMLAttributes, MouseEvent, HTMLAttributeAnchorTarget, InputHTMLAttributes, FormHTMLAttributes, ButtonHTMLAttributes, SelectHTMLAttributes, CSSProperties } from 'react';
|
|
3
|
+
import { KeepItem, ImportItemsResult, KeepListQuery, KeepUrlSyncOptions, KeepItemStatus, KeepSyncConflict, KeepItemInput } from '@keepkit/core/core';
|
|
4
4
|
export { AuthenticatedSyncAuthContext, AuthenticatedSyncKit, AuthenticatedSyncKitOptions, AuthenticatedSyncRequestContext, AuthenticatedSyncTransport, KeepItem, KeepItemInput, KeepListQuery, KeepScope, KeepSyncConflict, KeepSyncResolution, KeepSyncState, KeepSyncStatus, KeepUndoState, KeepUrlSyncOptions, createAuthenticatedSyncKit } from '@keepkit/core/core';
|
|
5
5
|
import { KeepButtonProps as KeepButtonProps$1, UseKeepListResult, KeepErrorBoundaryProps, CreateKeepKitOptions as CreateKeepKitOptions$1, KeepProviderProps, useKeepContext, useKeepItem, useKeepList, KeepShortcutOptions } from '@keepkit/core/react';
|
|
6
6
|
export { KeepButtonState, KeepContextValue, KeepErrorBoundary, KeepErrorBoundaryProps, KeepProvider, KeepProviderProps, KeepShortcutOptions, useKeepContext, useKeepItem, useKeepList, useKeepShortcut } from '@keepkit/core/react';
|
|
7
7
|
export { FallbackStorageAdapter, IndexedDBAdapter, IndexedDBSyncQueueAdapter, LocalStorageAdapter, LocalStorageSyncQueueAdapter, SyncStorageAdapter, createBrowserStorageAdapter, createStorageAdapter } from '@keepkit/core/storage';
|
|
8
8
|
|
|
9
|
+
type KeepUiLabelKey = "save" | "saved" | "remove" | "loading" | "saving" | "syncing" | "error" | "allTags" | "tags" | "filterTags" | "note" | "saveNote" | "noItems" | "loadingItems" | "errorItems" | "search" | "sort" | "newest" | "oldest" | "savedNewest" | "savedOldest" | "updatedNewest" | "updatedOldest" | "previousPage" | "nextPage" | "pagination" | "page" | "selectItems" | "selectedCount" | "deleteSelected" | "tagsToApply" | "applyTags" | "savedMessage" | "removedMessage" | "restoredMessage" | "syncFailedMessage" | "stalePrunedMessage" | "undo" | "undoAvailable" | "selectionScope" | "currentPage" | "searchResults" | "allItems" | "localVersion" | "remoteVersion" | "updatedAt" | "statusAvailable" | "noteSavedMessage" | "exportData" | "importData" | "importMode" | "merge" | "replace" | "importedCount" | "failedCount" | "storageQuotaError" | "statusExpired" | "statusRemoved" | "statusDeleted" | "statusPrivate" | "statusUnknown" | "retry" | "removeFromList" | "pruneStale" | "retrySync" | "resolveSync" | "keepLocal" | "useServer" | "manualMerge" | "close" | "backupRecovery" | "backupRecoveryDescription" | "syncPending" | "syncSynced" | "syncConflict";
|
|
10
|
+
type KeepUiLabels = Partial<Record<KeepUiLabelKey, string>>;
|
|
11
|
+
type KeepUiLocaleLabels = Record<KeepUiLabelKey, string>;
|
|
12
|
+
|
|
13
|
+
declare const KEEP_BUILT_IN_LOCALES: readonly ["en", "ja", "ko", "zh-Hans", "zh-Hant", "th", "fr", "es", "pt-BR", "it", "de", "ru", "fil", "vi", "id", "ms"];
|
|
14
|
+
type KeepUiLocale = (typeof KEEP_BUILT_IN_LOCALES)[number];
|
|
15
|
+
declare function getKeepLocaleLabels(locale?: string): KeepUiLocaleLabels;
|
|
16
|
+
|
|
17
|
+
type KeepUiLabelContext = {
|
|
18
|
+
locale?: string;
|
|
19
|
+
labels: Readonly<Record<KeepUiLabelKey, string>>;
|
|
20
|
+
customLabels?: KeepUiLabels;
|
|
21
|
+
labelResolver?: (key: KeepUiLabelKey, context: {
|
|
22
|
+
locale?: string;
|
|
23
|
+
}) => string | undefined;
|
|
24
|
+
emitFeedback: <TMeta>(event: KeepUiFeedbackEvent<TMeta>) => void;
|
|
25
|
+
};
|
|
26
|
+
type KeepUiFeedbackBase<TType extends string> = {
|
|
27
|
+
type: TType;
|
|
28
|
+
message: string;
|
|
29
|
+
};
|
|
30
|
+
type KeepUiFeedbackEvent<TMeta = Record<string, unknown>> = (KeepUiFeedbackBase<"item-saved"> & {
|
|
31
|
+
item: KeepItem<TMeta>;
|
|
32
|
+
}) | (KeepUiFeedbackBase<"item-removed"> & {
|
|
33
|
+
item: KeepItem<TMeta>;
|
|
34
|
+
undo: () => void | Promise<void>;
|
|
35
|
+
undoLabel: string;
|
|
36
|
+
}) | (KeepUiFeedbackBase<"item-restored"> & {
|
|
37
|
+
item?: KeepItem<TMeta>;
|
|
38
|
+
items: KeepItem<TMeta>[];
|
|
39
|
+
}) | KeepUiFeedbackBase<"sync-completed"> | (KeepUiFeedbackBase<"sync-failed"> & {
|
|
40
|
+
error: unknown;
|
|
41
|
+
}) | (KeepUiFeedbackBase<"stale-pruned"> & {
|
|
42
|
+
item?: KeepItem<TMeta>;
|
|
43
|
+
items: KeepItem<TMeta>[];
|
|
44
|
+
undo: () => void | Promise<void>;
|
|
45
|
+
undoLabel: string;
|
|
46
|
+
});
|
|
47
|
+
type KeepUiProviderProps<TMeta = Record<string, unknown>> = {
|
|
48
|
+
labels?: KeepUiLabels;
|
|
49
|
+
locale?: string;
|
|
50
|
+
labelResolver?: KeepUiLabelContext["labelResolver"];
|
|
51
|
+
onFeedback?: (event: KeepUiFeedbackEvent<TMeta>) => void;
|
|
52
|
+
children?: ReactNode;
|
|
53
|
+
};
|
|
54
|
+
/** Provides one complete locale-aware label source to every UI primitive. */
|
|
55
|
+
declare function KeepUiProvider<TMeta = Record<string, unknown>>({ labels, locale, labelResolver, onFeedback, children, }: KeepUiProviderProps<TMeta>): react.JSX.Element;
|
|
56
|
+
declare function useKeepUiLabels(): KeepUiLabelContext;
|
|
57
|
+
|
|
58
|
+
type KeepToastFeedbackOptions = {
|
|
59
|
+
action?: {
|
|
60
|
+
label: string;
|
|
61
|
+
onClick: () => void;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
type KeepToastHandler = (message: string, options?: KeepToastFeedbackOptions) => unknown;
|
|
65
|
+
/** Adapts KeepKit feedback to Sonner-like toast functions without adding a toast dependency. */
|
|
66
|
+
declare function useKeepToastFeedback<TMeta = Record<string, unknown>>(showToast: KeepToastHandler): (event: KeepUiFeedbackEvent<TMeta>) => void;
|
|
67
|
+
|
|
9
68
|
type KeepBackupProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
10
69
|
filename?: string;
|
|
11
70
|
onExport?: (data: string) => void;
|
|
@@ -82,7 +141,7 @@ type KeepButtonProps<TMeta = Record<string, unknown>> = KeepButtonProps$1<TMeta>
|
|
|
82
141
|
iconClassName?: string;
|
|
83
142
|
};
|
|
84
143
|
/** A style-free save toggle with localized labels and the core button's ARIA/asChild behavior. */
|
|
85
|
-
declare function KeepButton<TMeta = Record<string, unknown>>({ labels, icons, iconOnly, showLabel, iconClassName, ...props }: KeepButtonProps<TMeta>): react.JSX.Element;
|
|
144
|
+
declare function KeepButton<TMeta = Record<string, unknown>>({ labels, icons, iconOnly, showLabel, iconClassName, onClick, onToggleError, ...props }: KeepButtonProps<TMeta>): react.JSX.Element;
|
|
86
145
|
|
|
87
146
|
type KeepItemCardState<TMeta = Record<string, unknown>> = {
|
|
88
147
|
item: KeepItem<TMeta>;
|
|
@@ -130,8 +189,315 @@ type KeepItemCardProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HT
|
|
|
130
189
|
linkTargetAttribute?: HTMLAttributeAnchorTarget;
|
|
131
190
|
linkRel?: string;
|
|
132
191
|
};
|
|
133
|
-
|
|
134
|
-
|
|
192
|
+
type KeepItemCardMediaProps = Omit<HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
193
|
+
children?: ReactNode;
|
|
194
|
+
fallback?: ReactNode;
|
|
195
|
+
};
|
|
196
|
+
type KeepItemCardContentProps = HTMLAttributes<HTMLDivElement>;
|
|
197
|
+
type KeepItemCardTitleProps = Omit<HTMLAttributes<HTMLHeadingElement>, "title"> & {
|
|
198
|
+
as?: "h2" | "h3" | "h4" | "h5" | "h6";
|
|
199
|
+
};
|
|
200
|
+
type KeepItemCardTagsProps = HTMLAttributes<HTMLUListElement>;
|
|
201
|
+
type KeepItemCardActionsProps = HTMLAttributes<HTMLDivElement>;
|
|
202
|
+
type KeepItemCardSkeletonProps = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
203
|
+
layout?: KeepLayoutPreset;
|
|
204
|
+
};
|
|
205
|
+
/** A low-dependency item presentation primitive with composable card parts. */
|
|
206
|
+
declare function KeepItemCardRoot<TMeta = Record<string, unknown>>({ item, title, getTitle, getImageProps, imageComponent: ImageComponent, renderImage, renderTags, showTags, showSavedAt, imageAlt, render, children, removeLabel, onRemoveError, onRemoved, onRetry, showSaveButton, saveButtonLabels, asChild, href: hrefOption, onOpen, linkTarget, linkComponent: LinkComponent, linkTargetAttribute, linkRel, className, ...rootProps }: KeepItemCardProps<TMeta>): react.JSX.Element;
|
|
207
|
+
declare function KeepItemCardMedia({ children, fallback, ...props }: KeepItemCardMediaProps): react.JSX.Element;
|
|
208
|
+
declare function KeepItemCardContent({ children, ...props }: KeepItemCardContentProps): react.JSX.Element;
|
|
209
|
+
declare function KeepItemCardTitle({ as, children, ...props }: KeepItemCardTitleProps): react.DetailedReactHTMLElement<{
|
|
210
|
+
"data-keep-card-part": string;
|
|
211
|
+
onChange?: react.ChangeEventHandler<HTMLHeadingElement, Element> | undefined;
|
|
212
|
+
onError?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
213
|
+
className?: string | undefined | undefined;
|
|
214
|
+
id?: string | undefined | undefined;
|
|
215
|
+
role?: react.AriaRole | undefined;
|
|
216
|
+
tabIndex?: number | undefined | undefined;
|
|
217
|
+
"aria-label"?: string | undefined | undefined;
|
|
218
|
+
"aria-labelledby"?: string | undefined | undefined;
|
|
219
|
+
"aria-describedby"?: string | undefined | undefined;
|
|
220
|
+
style?: react.CSSProperties | undefined;
|
|
221
|
+
onClick?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
222
|
+
"aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
|
|
223
|
+
defaultChecked?: boolean | undefined | undefined;
|
|
224
|
+
defaultValue?: string | number | readonly string[] | undefined;
|
|
225
|
+
suppressContentEditableWarning?: boolean | undefined | undefined;
|
|
226
|
+
suppressHydrationWarning?: boolean | undefined | undefined;
|
|
227
|
+
accessKey?: string | undefined | undefined;
|
|
228
|
+
autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
|
|
229
|
+
autoFocus?: boolean | undefined | undefined;
|
|
230
|
+
contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
|
|
231
|
+
contextMenu?: string | undefined | undefined;
|
|
232
|
+
dir?: string | undefined | undefined;
|
|
233
|
+
draggable?: (boolean | "true" | "false") | undefined;
|
|
234
|
+
enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
|
|
235
|
+
hidden?: boolean | undefined | undefined;
|
|
236
|
+
lang?: string | undefined | undefined;
|
|
237
|
+
nonce?: string | undefined | undefined;
|
|
238
|
+
slot?: string | undefined | undefined;
|
|
239
|
+
spellCheck?: (boolean | "true" | "false") | undefined;
|
|
240
|
+
translate?: "yes" | "no" | undefined | undefined;
|
|
241
|
+
radioGroup?: string | undefined | undefined;
|
|
242
|
+
about?: string | undefined | undefined;
|
|
243
|
+
content?: string | undefined | undefined;
|
|
244
|
+
datatype?: string | undefined | undefined;
|
|
245
|
+
inlist?: any;
|
|
246
|
+
prefix?: string | undefined | undefined;
|
|
247
|
+
property?: string | undefined | undefined;
|
|
248
|
+
rel?: string | undefined | undefined;
|
|
249
|
+
resource?: string | undefined | undefined;
|
|
250
|
+
rev?: string | undefined | undefined;
|
|
251
|
+
typeof?: string | undefined | undefined;
|
|
252
|
+
vocab?: string | undefined | undefined;
|
|
253
|
+
autoCorrect?: string | undefined | undefined;
|
|
254
|
+
autoSave?: string | undefined | undefined;
|
|
255
|
+
color?: string | undefined | undefined;
|
|
256
|
+
itemProp?: string | undefined | undefined;
|
|
257
|
+
itemScope?: boolean | undefined | undefined;
|
|
258
|
+
itemType?: string | undefined | undefined;
|
|
259
|
+
itemID?: string | undefined | undefined;
|
|
260
|
+
itemRef?: string | undefined | undefined;
|
|
261
|
+
results?: number | undefined | undefined;
|
|
262
|
+
security?: string | undefined | undefined;
|
|
263
|
+
unselectable?: "on" | "off" | undefined | undefined;
|
|
264
|
+
popover?: "" | "auto" | "manual" | "hint" | undefined | undefined;
|
|
265
|
+
popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
|
|
266
|
+
popoverTarget?: string | undefined | undefined;
|
|
267
|
+
inert?: boolean | undefined | undefined;
|
|
268
|
+
inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
|
|
269
|
+
is?: string | undefined | undefined;
|
|
270
|
+
exportparts?: string | undefined | undefined;
|
|
271
|
+
part?: string | undefined | undefined;
|
|
272
|
+
"aria-activedescendant"?: string | undefined | undefined;
|
|
273
|
+
"aria-atomic"?: (boolean | "true" | "false") | undefined;
|
|
274
|
+
"aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
|
|
275
|
+
"aria-braillelabel"?: string | undefined | undefined;
|
|
276
|
+
"aria-brailleroledescription"?: string | undefined | undefined;
|
|
277
|
+
"aria-busy"?: (boolean | "true" | "false") | undefined;
|
|
278
|
+
"aria-checked"?: boolean | "false" | "mixed" | "true" | undefined | undefined;
|
|
279
|
+
"aria-colcount"?: number | undefined | undefined;
|
|
280
|
+
"aria-colindex"?: number | undefined | undefined;
|
|
281
|
+
"aria-colindextext"?: string | undefined | undefined;
|
|
282
|
+
"aria-colspan"?: number | undefined | undefined;
|
|
283
|
+
"aria-controls"?: string | undefined | undefined;
|
|
284
|
+
"aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined | undefined;
|
|
285
|
+
"aria-description"?: string | undefined | undefined;
|
|
286
|
+
"aria-details"?: string | undefined | undefined;
|
|
287
|
+
"aria-disabled"?: (boolean | "true" | "false") | undefined;
|
|
288
|
+
"aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
|
|
289
|
+
"aria-errormessage"?: string | undefined | undefined;
|
|
290
|
+
"aria-expanded"?: (boolean | "true" | "false") | undefined;
|
|
291
|
+
"aria-flowto"?: string | undefined | undefined;
|
|
292
|
+
"aria-grabbed"?: (boolean | "true" | "false") | undefined;
|
|
293
|
+
"aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined | undefined;
|
|
294
|
+
"aria-hidden"?: (boolean | "true" | "false") | undefined;
|
|
295
|
+
"aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined | undefined;
|
|
296
|
+
"aria-keyshortcuts"?: string | undefined | undefined;
|
|
297
|
+
"aria-level"?: number | undefined | undefined;
|
|
298
|
+
"aria-live"?: "off" | "assertive" | "polite" | undefined | undefined;
|
|
299
|
+
"aria-modal"?: (boolean | "true" | "false") | undefined;
|
|
300
|
+
"aria-multiline"?: (boolean | "true" | "false") | undefined;
|
|
301
|
+
"aria-multiselectable"?: (boolean | "true" | "false") | undefined;
|
|
302
|
+
"aria-orientation"?: "horizontal" | "vertical" | undefined | undefined;
|
|
303
|
+
"aria-owns"?: string | undefined | undefined;
|
|
304
|
+
"aria-placeholder"?: string | undefined | undefined;
|
|
305
|
+
"aria-posinset"?: number | undefined | undefined;
|
|
306
|
+
"aria-readonly"?: (boolean | "true" | "false") | undefined;
|
|
307
|
+
"aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
|
|
308
|
+
"aria-required"?: (boolean | "true" | "false") | undefined;
|
|
309
|
+
"aria-roledescription"?: string | undefined | undefined;
|
|
310
|
+
"aria-rowcount"?: number | undefined | undefined;
|
|
311
|
+
"aria-rowindex"?: number | undefined | undefined;
|
|
312
|
+
"aria-rowindextext"?: string | undefined | undefined;
|
|
313
|
+
"aria-rowspan"?: number | undefined | undefined;
|
|
314
|
+
"aria-selected"?: (boolean | "true" | "false") | undefined;
|
|
315
|
+
"aria-setsize"?: number | undefined | undefined;
|
|
316
|
+
"aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
|
|
317
|
+
"aria-valuemax"?: number | undefined | undefined;
|
|
318
|
+
"aria-valuemin"?: number | undefined | undefined;
|
|
319
|
+
"aria-valuenow"?: number | undefined | undefined;
|
|
320
|
+
"aria-valuetext"?: string | undefined | undefined;
|
|
321
|
+
dangerouslySetInnerHTML?: {
|
|
322
|
+
__html: string | TrustedHTML;
|
|
323
|
+
} | undefined | undefined;
|
|
324
|
+
onCopy?: react.ClipboardEventHandler<HTMLHeadingElement> | undefined;
|
|
325
|
+
onCopyCapture?: react.ClipboardEventHandler<HTMLHeadingElement> | undefined;
|
|
326
|
+
onCut?: react.ClipboardEventHandler<HTMLHeadingElement> | undefined;
|
|
327
|
+
onCutCapture?: react.ClipboardEventHandler<HTMLHeadingElement> | undefined;
|
|
328
|
+
onPaste?: react.ClipboardEventHandler<HTMLHeadingElement> | undefined;
|
|
329
|
+
onPasteCapture?: react.ClipboardEventHandler<HTMLHeadingElement> | undefined;
|
|
330
|
+
onCompositionEnd?: react.CompositionEventHandler<HTMLHeadingElement> | undefined;
|
|
331
|
+
onCompositionEndCapture?: react.CompositionEventHandler<HTMLHeadingElement> | undefined;
|
|
332
|
+
onCompositionStart?: react.CompositionEventHandler<HTMLHeadingElement> | undefined;
|
|
333
|
+
onCompositionStartCapture?: react.CompositionEventHandler<HTMLHeadingElement> | undefined;
|
|
334
|
+
onCompositionUpdate?: react.CompositionEventHandler<HTMLHeadingElement> | undefined;
|
|
335
|
+
onCompositionUpdateCapture?: react.CompositionEventHandler<HTMLHeadingElement> | undefined;
|
|
336
|
+
onFocus?: react.FocusEventHandler<HTMLHeadingElement> | undefined;
|
|
337
|
+
onFocusCapture?: react.FocusEventHandler<HTMLHeadingElement> | undefined;
|
|
338
|
+
onBlur?: react.FocusEventHandler<HTMLHeadingElement> | undefined;
|
|
339
|
+
onBlurCapture?: react.FocusEventHandler<HTMLHeadingElement> | undefined;
|
|
340
|
+
onChangeCapture?: react.ChangeEventHandler<HTMLHeadingElement, Element> | undefined;
|
|
341
|
+
onBeforeInput?: react.InputEventHandler<HTMLHeadingElement> | undefined;
|
|
342
|
+
onBeforeInputCapture?: react.InputEventHandler<HTMLHeadingElement> | undefined;
|
|
343
|
+
onInput?: react.InputEventHandler<HTMLHeadingElement> | undefined;
|
|
344
|
+
onInputCapture?: react.InputEventHandler<HTMLHeadingElement> | undefined;
|
|
345
|
+
onReset?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
346
|
+
onResetCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
347
|
+
onSubmit?: react.SubmitEventHandler<HTMLHeadingElement> | undefined;
|
|
348
|
+
onSubmitCapture?: react.SubmitEventHandler<HTMLHeadingElement> | undefined;
|
|
349
|
+
onInvalid?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
350
|
+
onInvalidCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
351
|
+
onLoad?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
352
|
+
onLoadCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
353
|
+
onErrorCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
354
|
+
onKeyDown?: react.KeyboardEventHandler<HTMLHeadingElement> | undefined;
|
|
355
|
+
onKeyDownCapture?: react.KeyboardEventHandler<HTMLHeadingElement> | undefined;
|
|
356
|
+
onKeyPress?: react.KeyboardEventHandler<HTMLHeadingElement> | undefined;
|
|
357
|
+
onKeyPressCapture?: react.KeyboardEventHandler<HTMLHeadingElement> | undefined;
|
|
358
|
+
onKeyUp?: react.KeyboardEventHandler<HTMLHeadingElement> | undefined;
|
|
359
|
+
onKeyUpCapture?: react.KeyboardEventHandler<HTMLHeadingElement> | undefined;
|
|
360
|
+
onAbort?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
361
|
+
onAbortCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
362
|
+
onCanPlay?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
363
|
+
onCanPlayCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
364
|
+
onCanPlayThrough?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
365
|
+
onCanPlayThroughCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
366
|
+
onDurationChange?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
367
|
+
onDurationChangeCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
368
|
+
onEmptied?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
369
|
+
onEmptiedCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
370
|
+
onEncrypted?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
371
|
+
onEncryptedCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
372
|
+
onEnded?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
373
|
+
onEndedCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
374
|
+
onLoadedData?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
375
|
+
onLoadedDataCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
376
|
+
onLoadedMetadata?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
377
|
+
onLoadedMetadataCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
378
|
+
onLoadStart?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
379
|
+
onLoadStartCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
380
|
+
onPause?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
381
|
+
onPauseCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
382
|
+
onPlay?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
383
|
+
onPlayCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
384
|
+
onPlaying?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
385
|
+
onPlayingCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
386
|
+
onProgress?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
387
|
+
onProgressCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
388
|
+
onRateChange?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
389
|
+
onRateChangeCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
390
|
+
onSeeked?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
391
|
+
onSeekedCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
392
|
+
onSeeking?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
393
|
+
onSeekingCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
394
|
+
onStalled?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
395
|
+
onStalledCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
396
|
+
onSuspend?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
397
|
+
onSuspendCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
398
|
+
onTimeUpdate?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
399
|
+
onTimeUpdateCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
400
|
+
onVolumeChange?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
401
|
+
onVolumeChangeCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
402
|
+
onWaiting?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
403
|
+
onWaitingCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
404
|
+
onAuxClick?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
405
|
+
onAuxClickCapture?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
406
|
+
onClickCapture?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
407
|
+
onContextMenu?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
408
|
+
onContextMenuCapture?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
409
|
+
onDoubleClick?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
410
|
+
onDoubleClickCapture?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
411
|
+
onDrag?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
412
|
+
onDragCapture?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
413
|
+
onDragEnd?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
414
|
+
onDragEndCapture?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
415
|
+
onDragEnter?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
416
|
+
onDragEnterCapture?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
417
|
+
onDragExit?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
418
|
+
onDragExitCapture?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
419
|
+
onDragLeave?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
420
|
+
onDragLeaveCapture?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
421
|
+
onDragOver?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
422
|
+
onDragOverCapture?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
423
|
+
onDragStart?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
424
|
+
onDragStartCapture?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
425
|
+
onDrop?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
426
|
+
onDropCapture?: react.DragEventHandler<HTMLHeadingElement> | undefined;
|
|
427
|
+
onMouseDown?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
428
|
+
onMouseDownCapture?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
429
|
+
onMouseEnter?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
430
|
+
onMouseLeave?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
431
|
+
onMouseMove?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
432
|
+
onMouseMoveCapture?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
433
|
+
onMouseOut?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
434
|
+
onMouseOutCapture?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
435
|
+
onMouseOver?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
436
|
+
onMouseOverCapture?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
437
|
+
onMouseUp?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
438
|
+
onMouseUpCapture?: react.MouseEventHandler<HTMLHeadingElement> | undefined;
|
|
439
|
+
onSelect?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
440
|
+
onSelectCapture?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
441
|
+
onTouchCancel?: react.TouchEventHandler<HTMLHeadingElement> | undefined;
|
|
442
|
+
onTouchCancelCapture?: react.TouchEventHandler<HTMLHeadingElement> | undefined;
|
|
443
|
+
onTouchEnd?: react.TouchEventHandler<HTMLHeadingElement> | undefined;
|
|
444
|
+
onTouchEndCapture?: react.TouchEventHandler<HTMLHeadingElement> | undefined;
|
|
445
|
+
onTouchMove?: react.TouchEventHandler<HTMLHeadingElement> | undefined;
|
|
446
|
+
onTouchMoveCapture?: react.TouchEventHandler<HTMLHeadingElement> | undefined;
|
|
447
|
+
onTouchStart?: react.TouchEventHandler<HTMLHeadingElement> | undefined;
|
|
448
|
+
onTouchStartCapture?: react.TouchEventHandler<HTMLHeadingElement> | undefined;
|
|
449
|
+
onPointerDown?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
450
|
+
onPointerDownCapture?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
451
|
+
onPointerMove?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
452
|
+
onPointerMoveCapture?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
453
|
+
onPointerUp?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
454
|
+
onPointerUpCapture?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
455
|
+
onPointerCancel?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
456
|
+
onPointerCancelCapture?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
457
|
+
onPointerEnter?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
458
|
+
onPointerLeave?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
459
|
+
onPointerOver?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
460
|
+
onPointerOverCapture?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
461
|
+
onPointerOut?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
462
|
+
onPointerOutCapture?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
463
|
+
onGotPointerCapture?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
464
|
+
onGotPointerCaptureCapture?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
465
|
+
onLostPointerCapture?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
466
|
+
onLostPointerCaptureCapture?: react.PointerEventHandler<HTMLHeadingElement> | undefined;
|
|
467
|
+
onScroll?: react.UIEventHandler<HTMLHeadingElement> | undefined;
|
|
468
|
+
onScrollCapture?: react.UIEventHandler<HTMLHeadingElement> | undefined;
|
|
469
|
+
onScrollEnd?: react.UIEventHandler<HTMLHeadingElement> | undefined;
|
|
470
|
+
onScrollEndCapture?: react.UIEventHandler<HTMLHeadingElement> | undefined;
|
|
471
|
+
onWheel?: react.WheelEventHandler<HTMLHeadingElement> | undefined;
|
|
472
|
+
onWheelCapture?: react.WheelEventHandler<HTMLHeadingElement> | undefined;
|
|
473
|
+
onAnimationStart?: react.AnimationEventHandler<HTMLHeadingElement> | undefined;
|
|
474
|
+
onAnimationStartCapture?: react.AnimationEventHandler<HTMLHeadingElement> | undefined;
|
|
475
|
+
onAnimationEnd?: react.AnimationEventHandler<HTMLHeadingElement> | undefined;
|
|
476
|
+
onAnimationEndCapture?: react.AnimationEventHandler<HTMLHeadingElement> | undefined;
|
|
477
|
+
onAnimationIteration?: react.AnimationEventHandler<HTMLHeadingElement> | undefined;
|
|
478
|
+
onAnimationIterationCapture?: react.AnimationEventHandler<HTMLHeadingElement> | undefined;
|
|
479
|
+
onToggle?: react.ToggleEventHandler<HTMLHeadingElement> | undefined;
|
|
480
|
+
onBeforeToggle?: react.ToggleEventHandler<HTMLHeadingElement> | undefined;
|
|
481
|
+
onTransitionCancel?: react.TransitionEventHandler<HTMLHeadingElement> | undefined;
|
|
482
|
+
onTransitionCancelCapture?: react.TransitionEventHandler<HTMLHeadingElement> | undefined;
|
|
483
|
+
onTransitionEnd?: react.TransitionEventHandler<HTMLHeadingElement> | undefined;
|
|
484
|
+
onTransitionEndCapture?: react.TransitionEventHandler<HTMLHeadingElement> | undefined;
|
|
485
|
+
onTransitionRun?: react.TransitionEventHandler<HTMLHeadingElement> | undefined;
|
|
486
|
+
onTransitionRunCapture?: react.TransitionEventHandler<HTMLHeadingElement> | undefined;
|
|
487
|
+
onTransitionStart?: react.TransitionEventHandler<HTMLHeadingElement> | undefined;
|
|
488
|
+
onTransitionStartCapture?: react.TransitionEventHandler<HTMLHeadingElement> | undefined;
|
|
489
|
+
}, HTMLElement>;
|
|
490
|
+
declare function KeepItemCardTags({ children, ...props }: KeepItemCardTagsProps): string | number | bigint | true | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react.JSX.Element | null;
|
|
491
|
+
declare function KeepItemCardActions({ children, ...props }: KeepItemCardActionsProps): react.JSX.Element;
|
|
492
|
+
declare const KeepItemCard: typeof KeepItemCardRoot & {
|
|
493
|
+
Media: typeof KeepItemCardMedia;
|
|
494
|
+
Content: typeof KeepItemCardContent;
|
|
495
|
+
Title: typeof KeepItemCardTitle;
|
|
496
|
+
Tags: typeof KeepItemCardTags;
|
|
497
|
+
Actions: typeof KeepItemCardActions;
|
|
498
|
+
};
|
|
499
|
+
/** A non-interactive placeholder that preserves the selected card layout while data loads. */
|
|
500
|
+
declare function KeepItemCardSkeleton({ layout, ...props }: KeepItemCardSkeletonProps): react.JSX.Element;
|
|
135
501
|
|
|
136
502
|
type KeepListState<TMeta = Record<string, unknown>> = UseKeepListResult<TMeta>;
|
|
137
503
|
type KeepListProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
@@ -139,6 +505,9 @@ type KeepListProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLEl
|
|
|
139
505
|
children?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
140
506
|
renderItem?: (item: KeepItem<TMeta>, state: KeepListState<TMeta>) => ReactNode;
|
|
141
507
|
loading?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
508
|
+
/** Alias for `loading`. When neither is provided, layout-matched skeletons are rendered. */
|
|
509
|
+
renderLoading?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
510
|
+
loadingCount?: number;
|
|
142
511
|
empty?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
143
512
|
error?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
144
513
|
itemCardProps?: Omit<KeepItemCardProps<TMeta>, "item" | "children" | "render">;
|
|
@@ -182,7 +551,7 @@ declare function createNextPagesRouterAdapter(router: KeepPagesRouterLike): Keep
|
|
|
182
551
|
declare function useKeepUrlSync<TMeta = Record<string, unknown>>({ enabled, query, onQueryChange, options, adapter: providedAdapter, }: KeepUrlSyncProps<TMeta>): void;
|
|
183
552
|
|
|
184
553
|
type KeepCollectionFeature = "search" | "sort" | "pagination" | "tagFilter" | "bulkActions";
|
|
185
|
-
type KeepLayoutPreset = "list" | "grid" | "compact";
|
|
554
|
+
type KeepLayoutPreset = "list" | "grid" | "compact" | "auto";
|
|
186
555
|
type KeepCollectionProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
187
556
|
query?: KeepListQuery<TMeta>;
|
|
188
557
|
pageSize?: number;
|
|
@@ -193,6 +562,9 @@ type KeepCollectionProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<
|
|
|
193
562
|
renderItem?: (item: KeepItem<TMeta>, state: KeepListState<TMeta>) => ReactNode;
|
|
194
563
|
itemCardProps?: Omit<KeepItemCardProps<TMeta>, "item" | "children" | "render">;
|
|
195
564
|
loading?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
565
|
+
/** Alias for `loading`. When neither is provided, KeepList renders skeleton cards. */
|
|
566
|
+
renderLoading?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
567
|
+
loadingCount?: number;
|
|
196
568
|
empty?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
197
569
|
error?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
198
570
|
fallback?: KeepErrorBoundaryProps["fallback"];
|
|
@@ -223,7 +595,7 @@ type KeepLayoutProps = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
|
223
595
|
layout?: KeepLayoutPreset;
|
|
224
596
|
children?: ReactNode;
|
|
225
597
|
};
|
|
226
|
-
/** A
|
|
598
|
+
/** A container-aware layout wrapper with a stable preset attribute for host or theme CSS. */
|
|
227
599
|
declare function KeepLayout({ layout, children, ...props }: KeepLayoutProps): react.JSX.Element;
|
|
228
600
|
|
|
229
601
|
type KeepNoteEditorState<TMeta = Record<string, unknown>> = {
|
|
@@ -435,39 +807,13 @@ type KeepThemeProviderProps = {
|
|
|
435
807
|
/** Scopes KeepKit tokens and opt-in component styles to one subtree. */
|
|
436
808
|
declare function KeepThemeProvider({ children, theme, mode, density, radius, accentColor, highContrast, reducedMotion, variables, style, className, asChild, ...props }: KeepThemeProviderProps): react.JSX.Element;
|
|
437
809
|
|
|
438
|
-
type
|
|
439
|
-
type KeepUiLabels = Partial<Record<KeepUiLabelKey, string>>;
|
|
440
|
-
type KeepUiLocaleLabels = Record<KeepUiLabelKey, string>;
|
|
441
|
-
|
|
442
|
-
declare const KEEP_BUILT_IN_LOCALES: readonly ["en", "ja", "ko", "zh-Hans", "zh-Hant", "th", "fr", "es", "pt-BR", "it", "de", "ru", "fil", "vi", "id", "ms"];
|
|
443
|
-
type KeepUiLocale = (typeof KEEP_BUILT_IN_LOCALES)[number];
|
|
444
|
-
declare function getKeepLocaleLabels(locale?: string): KeepUiLocaleLabels;
|
|
445
|
-
|
|
446
|
-
type KeepUiLabelContext = {
|
|
447
|
-
locale?: string;
|
|
448
|
-
labels: Readonly<Record<KeepUiLabelKey, string>>;
|
|
449
|
-
customLabels?: KeepUiLabels;
|
|
450
|
-
labelResolver?: (key: KeepUiLabelKey, context: {
|
|
451
|
-
locale?: string;
|
|
452
|
-
}) => string | undefined;
|
|
453
|
-
};
|
|
454
|
-
type KeepUiProviderProps = {
|
|
455
|
-
labels?: KeepUiLabels;
|
|
456
|
-
locale?: string;
|
|
457
|
-
labelResolver?: KeepUiLabelContext["labelResolver"];
|
|
458
|
-
children?: ReactNode;
|
|
459
|
-
};
|
|
460
|
-
/** Provides one complete locale-aware label source to every UI primitive. */
|
|
461
|
-
declare function KeepUiProvider({ labels, locale, labelResolver, children }: KeepUiProviderProps): react.JSX.Element;
|
|
462
|
-
declare function useKeepUiLabels(): KeepUiLabelContext;
|
|
463
|
-
|
|
464
|
-
type KeepKitProviderProps<TMeta = Record<string, unknown>> = Omit<KeepProviderProps<TMeta>, "children"> & Omit<KeepUiProviderProps, "children"> & Omit<KeepThemeProviderProps, "children"> & {
|
|
810
|
+
type KeepKitProviderProps<TMeta = Record<string, unknown>> = Omit<KeepProviderProps<TMeta>, "children"> & Omit<KeepUiProviderProps<TMeta>, "children"> & Omit<KeepThemeProviderProps, "children"> & {
|
|
465
811
|
children?: ReactNode;
|
|
466
812
|
};
|
|
467
813
|
/** Combines the core store, UI labels, and the global live announcer. */
|
|
468
|
-
declare function KeepKitProvider<TMeta = Record<string, unknown>>({ labels, locale, labelResolver, theme, mode, density, radius, accentColor, highContrast, reducedMotion, variables, className: themeClassName, style: themeStyle, asChild: themeAsChild, children, ...providerProps }: KeepKitProviderProps<TMeta>): react.JSX.Element;
|
|
814
|
+
declare function KeepKitProvider<TMeta = Record<string, unknown>>({ labels, locale, labelResolver, onFeedback, theme, mode, density, radius, accentColor, highContrast, reducedMotion, variables, className: themeClassName, style: themeStyle, asChild: themeAsChild, children, ...providerProps }: KeepKitProviderProps<TMeta>): react.JSX.Element;
|
|
469
815
|
|
|
470
|
-
type CreateKeepKitOptions<TMeta = Record<string, unknown>> = CreateKeepKitOptions$1<TMeta> & Omit<KeepUiProviderProps
|
|
816
|
+
type CreateKeepKitOptions<TMeta = Record<string, unknown>> = CreateKeepKitOptions$1<TMeta> & Omit<KeepUiProviderProps<TMeta>, "children"> & {
|
|
471
817
|
theme?: KeepThemeName;
|
|
472
818
|
mode?: KeepThemeMode;
|
|
473
819
|
density?: KeepThemeDensity;
|
|
@@ -494,4 +840,4 @@ type KeepKit<TMeta = Record<string, unknown>> = {
|
|
|
494
840
|
/** Create one typed application API for the core and standard UI layer. */
|
|
495
841
|
declare function createKeepKit<TMeta = Record<string, unknown>>(options?: CreateKeepKitOptions<TMeta>): KeepKit<TMeta>;
|
|
496
842
|
|
|
497
|
-
export { type CreateKeepKitOptions, KeepAnnouncements, type KeepAnnouncementsProps, KeepAnnouncer, KeepBackup, type KeepBackupProps, KeepBulkActions, type KeepBulkActionsProps, type KeepBulkActionsState, KeepButton, type KeepButtonIcon, type KeepButtonIconProps, type KeepButtonIcons, type KeepButtonLabels, type KeepButtonProps, KeepCollection, type KeepCollectionFeature, type KeepCollectionProps, type KeepDisplayStatus, KeepEmptyState, type KeepEmptyStateProps, type KeepImageProps, KeepItemCard, type KeepItemCardLinkProps, type KeepItemCardProps, type KeepItemCardState, KeepItemCheckbox, type KeepItemCheckboxProps, KeepItemStatusBadge, type KeepItemStatusBadgeProps, type KeepKit, KeepKitProvider, type KeepKitProviderProps, KeepLayout, type KeepLayoutPreset, type KeepLayoutProps, KeepList, type KeepListProps, type KeepListState, KeepNoteEditor, type KeepNoteEditorProps, type KeepNoteEditorState, type KeepPagesRouterLike, KeepPagination, type KeepPaginationProps, type KeepPaginationState, KeepPruneStaleButton, type KeepPruneStaleButtonProps, KeepSearchInput, type KeepSearchInputProps, type KeepSelectionScope, KeepSortSelect, type KeepSortSelectProps, type KeepSortValue, KeepStaleNotice, type KeepStaleNoticeProps, KeepStatus, type KeepStatusLabels, type KeepStatusProps, type KeepStatusState, type KeepStatusValue, KeepSyncRecoveryDialog, type KeepSyncRecoveryDialogProps, KeepSyncStatusBanner, type KeepSyncStatusBannerProps, KeepTagEditor, type KeepTagEditorProps, type KeepTagEditorState, KeepTagFilter, type KeepTagFilterProps, type KeepTagFilterState, type KeepThemeDensity, type KeepThemeMode, type KeepThemeName, KeepThemeProvider, type KeepThemeProviderProps, type KeepThemeRadius, type KeepThemeVariables, type KeepUiLabelContext, type KeepUiLabelKey, type KeepUiLabels, type KeepUiLocale, type KeepUiLocaleLabels, KeepUiProvider, type KeepUiProviderProps, KeepUndo, type KeepUndoProps, type KeepUrlAdapter, type RenderProp, createKeepKit, createNextPagesRouterAdapter, getKeepLocaleLabels, isAllSelected, keepThemeNames, toggleSelectAll, useKeepUiLabels, useKeepUrlSync };
|
|
843
|
+
export { type CreateKeepKitOptions, KeepAnnouncements, type KeepAnnouncementsProps, KeepAnnouncer, KeepBackup, type KeepBackupProps, KeepBulkActions, type KeepBulkActionsProps, type KeepBulkActionsState, KeepButton, type KeepButtonIcon, type KeepButtonIconProps, type KeepButtonIcons, type KeepButtonLabels, type KeepButtonProps, KeepCollection, type KeepCollectionFeature, type KeepCollectionProps, type KeepDisplayStatus, KeepEmptyState, type KeepEmptyStateProps, type KeepImageProps, KeepItemCard, type KeepItemCardActionsProps, type KeepItemCardContentProps, type KeepItemCardLinkProps, type KeepItemCardMediaProps, type KeepItemCardProps, KeepItemCardSkeleton, type KeepItemCardSkeletonProps, type KeepItemCardState, type KeepItemCardTagsProps, type KeepItemCardTitleProps, KeepItemCheckbox, type KeepItemCheckboxProps, KeepItemStatusBadge, type KeepItemStatusBadgeProps, type KeepKit, KeepKitProvider, type KeepKitProviderProps, KeepLayout, type KeepLayoutPreset, type KeepLayoutProps, KeepList, type KeepListProps, type KeepListState, KeepNoteEditor, type KeepNoteEditorProps, type KeepNoteEditorState, type KeepPagesRouterLike, KeepPagination, type KeepPaginationProps, type KeepPaginationState, KeepPruneStaleButton, type KeepPruneStaleButtonProps, KeepSearchInput, type KeepSearchInputProps, type KeepSelectionScope, KeepSortSelect, type KeepSortSelectProps, type KeepSortValue, KeepStaleNotice, type KeepStaleNoticeProps, KeepStatus, type KeepStatusLabels, type KeepStatusProps, type KeepStatusState, type KeepStatusValue, KeepSyncRecoveryDialog, type KeepSyncRecoveryDialogProps, KeepSyncStatusBanner, type KeepSyncStatusBannerProps, KeepTagEditor, type KeepTagEditorProps, type KeepTagEditorState, KeepTagFilter, type KeepTagFilterProps, type KeepTagFilterState, type KeepThemeDensity, type KeepThemeMode, type KeepThemeName, KeepThemeProvider, type KeepThemeProviderProps, type KeepThemeRadius, type KeepThemeVariables, type KeepToastFeedbackOptions, type KeepToastHandler, type KeepUiFeedbackEvent, type KeepUiLabelContext, type KeepUiLabelKey, type KeepUiLabels, type KeepUiLocale, type KeepUiLocaleLabels, KeepUiProvider, type KeepUiProviderProps, KeepUndo, type KeepUndoProps, type KeepUrlAdapter, type RenderProp, createKeepKit, createNextPagesRouterAdapter, getKeepLocaleLabels, isAllSelected, keepThemeNames, toggleSelectAll, useKeepToastFeedback, useKeepUiLabels, useKeepUrlSync };
|