@keepkit/ui 0.14.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/dist/index.d.ts CHANGED
@@ -1,11 +1,70 @@
1
1
  import * as react from 'react';
2
- import { HTMLAttributes, ReactNode, ComponentType, ImgHTMLAttributes, MouseEvent, HTMLAttributeAnchorTarget, InputHTMLAttributes, FormHTMLAttributes, ButtonHTMLAttributes, SelectHTMLAttributes, CSSProperties } from 'react';
3
- import { ImportItemsResult, KeepListQuery, KeepItem, KeepUrlSyncOptions, KeepItemStatus, KeepSyncConflict, KeepItemInput } from '@keepkit/core/core';
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;
@@ -36,6 +95,11 @@ type KeepButtonIcons = {
36
95
  error?: KeepButtonIcon;
37
96
  };
38
97
 
98
+ /** Returns whether every visible item is selected. Empty lists are never all selected. */
99
+ declare function isAllSelected<TMeta>(items: readonly Pick<KeepItem<TMeta>, "id">[], selectedIds: readonly string[]): boolean;
100
+ /** Toggles only the visible items, preserving selections outside the current query or page. */
101
+ declare function toggleSelectAll<TMeta>(items: readonly Pick<KeepItem<TMeta>, "id">[], selectedIds: readonly string[]): string[];
102
+
39
103
  type KeepBulkActionsState<TMeta = Record<string, unknown>> = {
40
104
  items: KeepItem<TMeta>[];
41
105
  selectedIds: string[];
@@ -54,10 +118,6 @@ type KeepBulkActionsState<TMeta = Record<string, unknown>> = {
54
118
  setSelectionScope: (scope: KeepSelectionScope) => void;
55
119
  };
56
120
  type KeepSelectionScope = "page" | "query" | "all";
57
- /** Returns whether every visible item is selected. Empty lists are never all selected. */
58
- declare function isAllSelected<TMeta>(items: readonly Pick<KeepItem<TMeta>, "id">[], selectedIds: readonly string[]): boolean;
59
- /** Toggles only the visible items, preserving selections outside the current query or page. */
60
- declare function toggleSelectAll<TMeta>(items: readonly Pick<KeepItem<TMeta>, "id">[], selectedIds: readonly string[]): string[];
61
121
  type KeepBulkActionsProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLElement>, "children"> & {
62
122
  query?: KeepListQuery<TMeta>;
63
123
  selectedIds?: string[];
@@ -81,7 +141,7 @@ type KeepButtonProps<TMeta = Record<string, unknown>> = KeepButtonProps$1<TMeta>
81
141
  iconClassName?: string;
82
142
  };
83
143
  /** A style-free save toggle with localized labels and the core button's ARIA/asChild behavior. */
84
- 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;
85
145
 
86
146
  type KeepItemCardState<TMeta = Record<string, unknown>> = {
87
147
  item: KeepItem<TMeta>;
@@ -129,8 +189,315 @@ type KeepItemCardProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HT
129
189
  linkTargetAttribute?: HTMLAttributeAnchorTarget;
130
190
  linkRel?: string;
131
191
  };
132
- /** A low-dependency item presentation primitive. The default markup can be replaced with render props. */
133
- declare function KeepItemCard<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.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
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;
134
501
 
135
502
  type KeepListState<TMeta = Record<string, unknown>> = UseKeepListResult<TMeta>;
136
503
  type KeepListProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLElement>, "children"> & {
@@ -138,6 +505,9 @@ type KeepListProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLEl
138
505
  children?: ReactNode | RenderProp<KeepListState<TMeta>>;
139
506
  renderItem?: (item: KeepItem<TMeta>, state: KeepListState<TMeta>) => ReactNode;
140
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;
141
511
  empty?: ReactNode | RenderProp<KeepListState<TMeta>>;
142
512
  error?: ReactNode | RenderProp<KeepListState<TMeta>>;
143
513
  itemCardProps?: Omit<KeepItemCardProps<TMeta>, "item" | "children" | "render">;
@@ -181,7 +551,7 @@ declare function createNextPagesRouterAdapter(router: KeepPagesRouterLike): Keep
181
551
  declare function useKeepUrlSync<TMeta = Record<string, unknown>>({ enabled, query, onQueryChange, options, adapter: providedAdapter, }: KeepUrlSyncProps<TMeta>): void;
182
552
 
183
553
  type KeepCollectionFeature = "search" | "sort" | "pagination" | "tagFilter" | "bulkActions";
184
- type KeepLayoutPreset = "list" | "grid" | "compact";
554
+ type KeepLayoutPreset = "list" | "grid" | "compact" | "auto";
185
555
  type KeepCollectionProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLElement>, "children"> & {
186
556
  query?: KeepListQuery<TMeta>;
187
557
  pageSize?: number;
@@ -192,6 +562,9 @@ type KeepCollectionProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<
192
562
  renderItem?: (item: KeepItem<TMeta>, state: KeepListState<TMeta>) => ReactNode;
193
563
  itemCardProps?: Omit<KeepItemCardProps<TMeta>, "item" | "children" | "render">;
194
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;
195
568
  empty?: ReactNode | RenderProp<KeepListState<TMeta>>;
196
569
  error?: ReactNode | RenderProp<KeepListState<TMeta>>;
197
570
  fallback?: KeepErrorBoundaryProps["fallback"];
@@ -222,7 +595,7 @@ type KeepLayoutProps = Omit<HTMLAttributes<HTMLElement>, "children"> & {
222
595
  layout?: KeepLayoutPreset;
223
596
  children?: ReactNode;
224
597
  };
225
- /** A style-free layout wrapper with a stable preset attribute for host or theme CSS. */
598
+ /** A container-aware layout wrapper with a stable preset attribute for host or theme CSS. */
226
599
  declare function KeepLayout({ layout, children, ...props }: KeepLayoutProps): react.JSX.Element;
227
600
 
228
601
  type KeepNoteEditorState<TMeta = Record<string, unknown>> = {
@@ -402,7 +775,8 @@ declare function KeepAnnouncements<TMeta = Record<string, unknown>>({ messages,
402
775
  /** Singular alias for applications that mount one announcer explicitly. */
403
776
  declare const KeepAnnouncer: typeof KeepAnnouncements;
404
777
 
405
- type KeepThemeName = "default" | "compact" | "minimal" | "rounded" | "high-contrast" | "dark";
778
+ declare const keepThemeNames: readonly ["default", "ocean", "forest", "sunset", "lavender", "compact", "minimal", "rounded", "high-contrast", "dark"];
779
+ type KeepThemeName = (typeof keepThemeNames)[number];
406
780
  type KeepThemeMode = "light" | "dark" | "system";
407
781
  type KeepThemeDensity = "compact" | "comfortable" | "spacious";
408
782
  type KeepThemeRadius = "none" | "small" | "medium" | "large" | "full";
@@ -433,39 +807,13 @@ type KeepThemeProviderProps = {
433
807
  /** Scopes KeepKit tokens and opt-in component styles to one subtree. */
434
808
  declare function KeepThemeProvider({ children, theme, mode, density, radius, accentColor, highContrast, reducedMotion, variables, style, className, asChild, ...props }: KeepThemeProviderProps): react.JSX.Element;
435
809
 
436
- 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" | "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";
437
- type KeepUiLabels = Partial<Record<KeepUiLabelKey, string>>;
438
- type KeepUiLocaleLabels = Record<KeepUiLabelKey, string>;
439
-
440
- 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"];
441
- type KeepUiLocale = (typeof KEEP_BUILT_IN_LOCALES)[number];
442
- declare function getKeepLocaleLabels(locale?: string): KeepUiLocaleLabels;
443
-
444
- type KeepUiLabelContext = {
445
- locale?: string;
446
- labels: Readonly<Record<KeepUiLabelKey, string>>;
447
- customLabels?: KeepUiLabels;
448
- labelResolver?: (key: KeepUiLabelKey, context: {
449
- locale?: string;
450
- }) => string | undefined;
451
- };
452
- type KeepUiProviderProps = {
453
- labels?: KeepUiLabels;
454
- locale?: string;
455
- labelResolver?: KeepUiLabelContext["labelResolver"];
456
- children?: ReactNode;
457
- };
458
- /** Provides one complete locale-aware label source to every UI primitive. */
459
- declare function KeepUiProvider({ labels, locale, labelResolver, children }: KeepUiProviderProps): react.JSX.Element;
460
- declare function useKeepUiLabels(): KeepUiLabelContext;
461
-
462
- 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"> & {
463
811
  children?: ReactNode;
464
812
  };
465
813
  /** Combines the core store, UI labels, and the global live announcer. */
466
- 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;
467
815
 
468
- type CreateKeepKitOptions<TMeta = Record<string, unknown>> = CreateKeepKitOptions$1<TMeta> & Omit<KeepUiProviderProps, "children"> & {
816
+ type CreateKeepKitOptions<TMeta = Record<string, unknown>> = CreateKeepKitOptions$1<TMeta> & Omit<KeepUiProviderProps<TMeta>, "children"> & {
469
817
  theme?: KeepThemeName;
470
818
  mode?: KeepThemeMode;
471
819
  density?: KeepThemeDensity;
@@ -492,4 +840,4 @@ type KeepKit<TMeta = Record<string, unknown>> = {
492
840
  /** Create one typed application API for the core and standard UI layer. */
493
841
  declare function createKeepKit<TMeta = Record<string, unknown>>(options?: CreateKeepKitOptions<TMeta>): KeepKit<TMeta>;
494
842
 
495
- 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, 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 };