@keepkit/ui 0.17.0 → 0.19.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 +10 -4
- package/dist/index.d.ts +239 -192
- package/dist/index.js +1854 -1374
- package/dist/index.js.map +1 -1
- package/dist/styles/base.css +16 -0
- package/dist/styles/collection.css +163 -0
- package/dist/styles/status.css +76 -0
- package/dist/styles/sync.css +45 -32
- package/dist/theme.css +1 -0
- package/package.json +5 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,69 +1,40 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { HTMLAttributes, ReactNode, ComponentType, ReactElement, InputHTMLAttributes, ImgHTMLAttributes, MouseEvent, HTMLAttributeAnchorTarget, KeyboardEvent, FormHTMLAttributes, SelectHTMLAttributes, ButtonHTMLAttributes, CSSProperties } from 'react';
|
|
3
|
+
import { KeepListQuery, KeepUrlSyncOptions, ImportItemsResult, KeepItem, 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, UseKeepNavigatorResult, CreateKeepKitOptions as CreateKeepKitOptions$1, KeepProviderProps, useKeepContext, useKeepItem, useKeepList, UseKeepNavigatorOptions, KeepShortcutOptions } from '@keepkit/core/react';
|
|
6
6
|
export { KeepButtonState, KeepContextValue, KeepErrorBoundary, KeepErrorBoundaryProps, KeepProvider, KeepProviderProps, KeepShortcutOptions, useKeepContext, useKeepItem, useKeepList, useKeepNavigator, useKeepShortcut } from '@keepkit/core/react';
|
|
7
7
|
export { FallbackStorageAdapter, IndexedDBAdapter, IndexedDBSyncQueueAdapter, LocalStorageAdapter, LocalStorageSyncQueueAdapter, SyncStorageAdapter, createBrowserStorageAdapter, createStorageAdapter } from '@keepkit/core/storage';
|
|
8
8
|
|
|
9
|
-
type
|
|
10
|
-
|
|
11
|
-
|
|
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;
|
|
9
|
+
type KeepUrlAdapter = {
|
|
10
|
+
getUrl: () => string;
|
|
11
|
+
subscribe?: (listener: () => void) => () => void;
|
|
12
|
+
navigate: (url: string, mode: "replace" | "push") => void;
|
|
53
13
|
};
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
14
|
+
type KeepPagesRouterLike = {
|
|
15
|
+
asPath?: string;
|
|
16
|
+
push: (url: string, as?: string, options?: {
|
|
17
|
+
shallow?: boolean;
|
|
18
|
+
}) => Promise<boolean> | boolean;
|
|
19
|
+
replace: (url: string, as?: string, options?: {
|
|
20
|
+
shallow?: boolean;
|
|
21
|
+
}) => Promise<boolean> | boolean;
|
|
22
|
+
events?: {
|
|
23
|
+
on: (event: string, listener: () => void) => void;
|
|
24
|
+
off: (event: string, listener: () => void) => void;
|
|
62
25
|
};
|
|
63
26
|
};
|
|
64
|
-
type
|
|
65
|
-
|
|
66
|
-
|
|
27
|
+
type KeepUrlSyncProps<TMeta = Record<string, unknown>> = {
|
|
28
|
+
enabled?: boolean;
|
|
29
|
+
query: KeepListQuery<TMeta>;
|
|
30
|
+
onQueryChange: (query: KeepListQuery<TMeta> | ((previous: KeepListQuery<TMeta>) => KeepListQuery<TMeta>)) => void;
|
|
31
|
+
options?: KeepUrlSyncOptions;
|
|
32
|
+
adapter?: KeepUrlAdapter;
|
|
33
|
+
};
|
|
34
|
+
/** Adapter for Next.js Pages Router. It intentionally uses structural typing and has no Next dependency. */
|
|
35
|
+
declare function createNextPagesRouterAdapter(router: KeepPagesRouterLike): KeepUrlAdapter;
|
|
36
|
+
/** Synchronizes collection filters with browser history and supports back/forward restoration. */
|
|
37
|
+
declare function useKeepUrlSync<TMeta = Record<string, unknown>>({ enabled, query, onQueryChange, options, adapter: providedAdapter, }: KeepUrlSyncProps<TMeta>): void;
|
|
67
38
|
|
|
68
39
|
type KeepBackupProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
69
40
|
filename?: string;
|
|
@@ -101,6 +72,12 @@ type KeepButtonIcons = {
|
|
|
101
72
|
loading?: KeepButtonIcon;
|
|
102
73
|
error?: KeepButtonIcon;
|
|
103
74
|
};
|
|
75
|
+
type MergeableProps = Record<string, unknown>;
|
|
76
|
+
/** Chains child and component event handlers while preserving both handlers' event order. */
|
|
77
|
+
declare function chainedFunction<T extends (...args: never[]) => unknown>(childHandler: T | undefined, parentHandler: T | undefined): T | undefined;
|
|
78
|
+
/** Merges slot props without dropping child classes, styles, ARIA attributes, or events. */
|
|
79
|
+
declare function mergeProps<T extends MergeableProps>(childProps: T, parentProps: Partial<T> & MergeableProps): T;
|
|
80
|
+
declare function createSlot(child: ReactElement<MergeableProps>, props: MergeableProps, body?: ReactNode): ReactElement<MergeableProps>;
|
|
104
81
|
|
|
105
82
|
/** Returns whether every visible item is selected. Empty lists are never all selected. */
|
|
106
83
|
declare function isAllSelected<TMeta>(items: readonly Pick<KeepItem<TMeta>, "id">[], selectedIds: readonly string[]): boolean;
|
|
@@ -150,6 +127,22 @@ type KeepButtonProps<TMeta = Record<string, unknown>> = KeepButtonProps$1<TMeta>
|
|
|
150
127
|
/** A style-free save toggle with localized labels and the core button's ARIA/asChild behavior. */
|
|
151
128
|
declare function KeepButton<TMeta = Record<string, unknown>>({ labels, icons, iconOnly, showLabel, iconClassName, onClick, onToggleError, ...props }: KeepButtonProps<TMeta>): react.JSX.Element;
|
|
152
129
|
|
|
130
|
+
type KeepItemCheckboxProps<TMeta = Record<string, unknown>> = Omit<InputHTMLAttributes<HTMLInputElement>, "type" | "checked" | "defaultChecked" | "onChange"> & {
|
|
131
|
+
item: KeepItem<TMeta>;
|
|
132
|
+
checked?: boolean;
|
|
133
|
+
label?: ReactNode;
|
|
134
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
135
|
+
};
|
|
136
|
+
/** A reusable accessible selection checkbox for a saved item. */
|
|
137
|
+
declare function KeepItemCheckbox<TMeta = Record<string, unknown>>({ item, checked, label, onCheckedChange, "aria-label": ariaLabel, ...props }: KeepItemCheckboxProps<TMeta>): react.JSX.Element;
|
|
138
|
+
|
|
139
|
+
type KeepUndoProps = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
140
|
+
children?: ReactNode;
|
|
141
|
+
label?: ReactNode;
|
|
142
|
+
};
|
|
143
|
+
/** Presents the short-lived undo action created by removeWithUndo/removeBatchWithUndo. */
|
|
144
|
+
declare function KeepUndo({ children, label, ...props }: KeepUndoProps): react.JSX.Element | null;
|
|
145
|
+
|
|
153
146
|
type KeepItemCardState<TMeta = Record<string, unknown>> = {
|
|
154
147
|
item: KeepItem<TMeta>;
|
|
155
148
|
isSaved: boolean;
|
|
@@ -216,6 +209,7 @@ declare function KeepItemCardMedia({ children, fallback, ...props }: KeepItemCar
|
|
|
216
209
|
declare function KeepItemCardContent({ children, ...props }: KeepItemCardContentProps): react.JSX.Element;
|
|
217
210
|
declare function KeepItemCardTitle({ as, children, ...props }: KeepItemCardTitleProps): react.DetailedReactHTMLElement<{
|
|
218
211
|
"data-keep-card-part": string;
|
|
212
|
+
"data-line-clamp": string;
|
|
219
213
|
onChange?: react.ChangeEventHandler<HTMLHeadingElement, Element> | undefined;
|
|
220
214
|
onError?: react.ReactEventHandler<HTMLHeadingElement> | undefined;
|
|
221
215
|
className?: string | undefined | undefined;
|
|
@@ -518,6 +512,7 @@ type KeepListProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLEl
|
|
|
518
512
|
loadingCount?: number;
|
|
519
513
|
empty?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
520
514
|
error?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
515
|
+
onClearFilters?: () => void;
|
|
521
516
|
itemCardProps?: Omit<KeepItemCardProps<TMeta>, "item" | "children" | "render">;
|
|
522
517
|
layout?: KeepLayoutPreset;
|
|
523
518
|
asChild?: boolean;
|
|
@@ -528,36 +523,6 @@ type KeepListProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLEl
|
|
|
528
523
|
/** A list primitive with built-in loading, empty, error, and removal states. */
|
|
529
524
|
declare function KeepList<TMeta = Record<string, unknown>>(props: KeepListProps<TMeta>): react.JSX.Element;
|
|
530
525
|
|
|
531
|
-
type KeepUrlAdapter = {
|
|
532
|
-
getUrl: () => string;
|
|
533
|
-
subscribe?: (listener: () => void) => () => void;
|
|
534
|
-
navigate: (url: string, mode: "replace" | "push") => void;
|
|
535
|
-
};
|
|
536
|
-
type KeepPagesRouterLike = {
|
|
537
|
-
asPath?: string;
|
|
538
|
-
push: (url: string, as?: string, options?: {
|
|
539
|
-
shallow?: boolean;
|
|
540
|
-
}) => Promise<boolean> | boolean;
|
|
541
|
-
replace: (url: string, as?: string, options?: {
|
|
542
|
-
shallow?: boolean;
|
|
543
|
-
}) => Promise<boolean> | boolean;
|
|
544
|
-
events?: {
|
|
545
|
-
on: (event: string, listener: () => void) => void;
|
|
546
|
-
off: (event: string, listener: () => void) => void;
|
|
547
|
-
};
|
|
548
|
-
};
|
|
549
|
-
type KeepUrlSyncProps<TMeta = Record<string, unknown>> = {
|
|
550
|
-
enabled?: boolean;
|
|
551
|
-
query: KeepListQuery<TMeta>;
|
|
552
|
-
onQueryChange: (query: KeepListQuery<TMeta> | ((previous: KeepListQuery<TMeta>) => KeepListQuery<TMeta>)) => void;
|
|
553
|
-
options?: KeepUrlSyncOptions;
|
|
554
|
-
adapter?: KeepUrlAdapter;
|
|
555
|
-
};
|
|
556
|
-
/** Adapter for Next.js Pages Router. It intentionally uses structural typing and has no Next dependency. */
|
|
557
|
-
declare function createNextPagesRouterAdapter(router: KeepPagesRouterLike): KeepUrlAdapter;
|
|
558
|
-
/** Synchronizes collection filters with browser history and supports back/forward restoration. */
|
|
559
|
-
declare function useKeepUrlSync<TMeta = Record<string, unknown>>({ enabled, query, onQueryChange, options, adapter: providedAdapter, }: KeepUrlSyncProps<TMeta>): void;
|
|
560
|
-
|
|
561
526
|
type KeepCollectionFeature = "search" | "sort" | "pagination" | "tagFilter" | "bulkActions";
|
|
562
527
|
type KeepLayoutPreset = "list" | "grid" | "compact" | "auto";
|
|
563
528
|
type KeepCollectionProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
@@ -573,6 +538,7 @@ type KeepCollectionProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<
|
|
|
573
538
|
/** Alias for `loading`. When neither is provided, KeepList renders skeleton cards. */
|
|
574
539
|
renderLoading?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
575
540
|
loadingCount?: number;
|
|
541
|
+
activeFilters?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
576
542
|
empty?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
577
543
|
error?: ReactNode | RenderProp<KeepListState<TMeta>>;
|
|
578
544
|
fallback?: KeepErrorBoundaryProps["fallback"];
|
|
@@ -582,23 +548,6 @@ type KeepCollectionProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<
|
|
|
582
548
|
/** A batteries-included collection with query controls and accessible status feedback. */
|
|
583
549
|
declare function KeepCollection<TMeta = Record<string, unknown>>(props: KeepCollectionProps<TMeta>): react.JSX.Element;
|
|
584
550
|
|
|
585
|
-
type KeepItemCheckboxProps<TMeta = Record<string, unknown>> = Omit<InputHTMLAttributes<HTMLInputElement>, "type" | "checked" | "defaultChecked" | "onChange"> & {
|
|
586
|
-
item: KeepItem<TMeta>;
|
|
587
|
-
checked?: boolean;
|
|
588
|
-
label?: ReactNode;
|
|
589
|
-
onCheckedChange?: (checked: boolean) => void;
|
|
590
|
-
};
|
|
591
|
-
/** A reusable accessible selection checkbox for a saved item. */
|
|
592
|
-
declare function KeepItemCheckbox<TMeta = Record<string, unknown>>({ item, checked, label, onCheckedChange, "aria-label": ariaLabel, ...props }: KeepItemCheckboxProps<TMeta>): react.JSX.Element;
|
|
593
|
-
|
|
594
|
-
type KeepItemStatusBadgeProps = Omit<HTMLAttributes<HTMLSpanElement>, "children"> & {
|
|
595
|
-
status?: KeepItemStatus | "restricted";
|
|
596
|
-
label?: ReactNode;
|
|
597
|
-
};
|
|
598
|
-
type KeepDisplayStatus = "available" | "expired" | "removed" | "restricted";
|
|
599
|
-
/** Displays the normalized availability state of a saved item. */
|
|
600
|
-
declare function KeepItemStatusBadge({ status, label, className, ...props }: KeepItemStatusBadgeProps): react.JSX.Element;
|
|
601
|
-
|
|
602
551
|
type KeepLayoutProps = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
603
552
|
layout?: KeepLayoutPreset;
|
|
604
553
|
children?: ReactNode;
|
|
@@ -606,31 +555,6 @@ type KeepLayoutProps = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
|
606
555
|
/** A container-aware layout wrapper with a stable preset attribute for host or theme CSS. */
|
|
607
556
|
declare function KeepLayout({ layout, children, onKeyDown, onFocusCapture, ...props }: KeepLayoutProps): react.JSX.Element;
|
|
608
557
|
|
|
609
|
-
type KeepNoteEditorState<TMeta = Record<string, unknown>> = {
|
|
610
|
-
item: KeepItem<TMeta>;
|
|
611
|
-
note: string;
|
|
612
|
-
setNote: (note: string) => void;
|
|
613
|
-
isDirty: boolean;
|
|
614
|
-
isSaving: boolean;
|
|
615
|
-
error: unknown | null;
|
|
616
|
-
save: () => Promise<void>;
|
|
617
|
-
};
|
|
618
|
-
type KeepNoteEditorProps<TMeta = Record<string, unknown>> = Omit<FormHTMLAttributes<HTMLFormElement>, "children" | "onSubmit"> & {
|
|
619
|
-
item: KeepItem<TMeta>;
|
|
620
|
-
label?: ReactNode;
|
|
621
|
-
saveLabel?: ReactNode;
|
|
622
|
-
placeholder?: string;
|
|
623
|
-
/** Automatically save dirty notes after this delay; set to 0 to disable auto-save. */
|
|
624
|
-
debounceMs?: number;
|
|
625
|
-
onSaved?: (note?: string) => void;
|
|
626
|
-
onSaveError?: (error: unknown) => void;
|
|
627
|
-
render?: RenderProp<KeepNoteEditorState<TMeta>>;
|
|
628
|
-
children?: ReactNode | RenderProp<KeepNoteEditorState<TMeta>>;
|
|
629
|
-
asChild?: boolean;
|
|
630
|
-
};
|
|
631
|
-
/** A controlled-by-default note editor that persists through useKeepItem. */
|
|
632
|
-
declare function KeepNoteEditor<TMeta = Record<string, unknown>>({ item, label, saveLabel, placeholder, debounceMs, onSaved, onSaveError, render, children, asChild, className, ...formProps }: KeepNoteEditorProps<TMeta>): react.JSX.Element;
|
|
633
|
-
|
|
634
558
|
type KeepReorderableItemState = {
|
|
635
559
|
index: number;
|
|
636
560
|
isDragging: boolean;
|
|
@@ -638,6 +562,7 @@ type KeepReorderableItemState = {
|
|
|
638
562
|
role: "button";
|
|
639
563
|
tabIndex: 0;
|
|
640
564
|
draggable: true;
|
|
565
|
+
"data-drag-handle": "true";
|
|
641
566
|
"aria-label": string;
|
|
642
567
|
"aria-grabbed": boolean;
|
|
643
568
|
onDragStart: () => void;
|
|
@@ -660,45 +585,31 @@ declare function KeepReorderableList<TItem extends {
|
|
|
660
585
|
id: string;
|
|
661
586
|
} = KeepItem>({ items, onReorder, renderItem, itemLabel, ...props }: KeepReorderableListProps<TItem>): react.JSX.Element;
|
|
662
587
|
|
|
663
|
-
type
|
|
588
|
+
type KeepNoteEditorState<TMeta = Record<string, unknown>> = {
|
|
664
589
|
item: KeepItem<TMeta>;
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
590
|
+
note: string;
|
|
591
|
+
setNote: (note: string) => void;
|
|
592
|
+
isDirty: boolean;
|
|
593
|
+
isSaving: boolean;
|
|
594
|
+
error: unknown | null;
|
|
595
|
+
save: () => Promise<void>;
|
|
670
596
|
};
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
type KeepPruneStaleButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
|
|
674
|
-
statuses?: KeepItemStatus[];
|
|
597
|
+
type KeepNoteEditorProps<TMeta = Record<string, unknown>> = Omit<FormHTMLAttributes<HTMLFormElement>, "children" | "onSubmit"> & {
|
|
598
|
+
item: KeepItem<TMeta>;
|
|
675
599
|
label?: ReactNode;
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
onManualMerge?: (conflict: KeepSyncConflict<TMeta>) => KeepItem<TMeta> | Promise<KeepItem<TMeta>>;
|
|
687
|
-
backup?: ReactNode;
|
|
688
|
-
showBackupControls?: boolean;
|
|
689
|
-
title?: ReactNode;
|
|
690
|
-
children?: ReactNode;
|
|
691
|
-
};
|
|
692
|
-
/** Resolves queued sync conflicts and guides users to restore a backup after data corruption. */
|
|
693
|
-
declare function KeepSyncRecoveryDialog<TMeta = Record<string, unknown>>({ open, onOpenChange, conflicts, onManualMerge, backup, showBackupControls, title, children, className, ...props }: KeepSyncRecoveryDialogProps<TMeta>): react.JSX.Element | null;
|
|
694
|
-
|
|
695
|
-
type KeepSyncStatusBannerProps = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
696
|
-
onRetry?: () => void | Promise<void>;
|
|
697
|
-
onResolveConflicts?: () => void;
|
|
698
|
-
children?: ReactNode;
|
|
600
|
+
saveLabel?: ReactNode;
|
|
601
|
+
placeholder?: string;
|
|
602
|
+
/** Automatically save dirty notes after this delay; set to 0 to disable auto-save. */
|
|
603
|
+
debounceMs?: number;
|
|
604
|
+
showShortcutHint?: boolean;
|
|
605
|
+
onSaved?: (note?: string) => void;
|
|
606
|
+
onSaveError?: (error: unknown) => void;
|
|
607
|
+
render?: RenderProp<KeepNoteEditorState<TMeta>>;
|
|
608
|
+
children?: ReactNode | RenderProp<KeepNoteEditorState<TMeta>>;
|
|
609
|
+
asChild?: boolean;
|
|
699
610
|
};
|
|
700
|
-
/**
|
|
701
|
-
declare function
|
|
611
|
+
/** A controlled-by-default note editor that persists through useKeepItem. */
|
|
612
|
+
declare function KeepNoteEditor<TMeta = Record<string, unknown>>({ item, label, saveLabel, placeholder, debounceMs, showShortcutHint, onSaved, onSaveError, render, children, asChild, className, ...formProps }: KeepNoteEditorProps<TMeta>): react.JSX.Element;
|
|
702
613
|
|
|
703
614
|
type KeepTagEditorState = {
|
|
704
615
|
tags: string[];
|
|
@@ -716,27 +627,79 @@ type KeepTagEditorProps<TMeta = Record<string, unknown>> = Omit<FormHTMLAttribut
|
|
|
716
627
|
/** Edits one item's normalized tag set; Enter adds and Backspace removes the last tag. */
|
|
717
628
|
declare function KeepTagEditor<TMeta = Record<string, unknown>>({ item, availableTags, onSaved, onSaveError, render, ...props }: KeepTagEditorProps<TMeta>): react.JSX.Element;
|
|
718
629
|
|
|
719
|
-
type
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
630
|
+
type KeepUiLabelKey = "save" | "saved" | "remove" | "loading" | "saving" | "syncing" | "error" | "allTags" | "tags" | "filterTags" | "activeFilters" | "clearFilters" | "clearAllFilters" | "removeFilter" | "noFilteredItems" | "noFilteredItemsDescription" | "emptyStorageDescription" | "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";
|
|
631
|
+
type KeepUiLabels = Partial<Record<KeepUiLabelKey, string>>;
|
|
632
|
+
type KeepUiLocaleLabels = Record<KeepUiLabelKey, string>;
|
|
633
|
+
|
|
634
|
+
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"];
|
|
635
|
+
type KeepUiLocale = (typeof KEEP_BUILT_IN_LOCALES)[number];
|
|
636
|
+
declare function getKeepLocaleLabels(locale?: string): KeepUiLocaleLabels;
|
|
637
|
+
|
|
638
|
+
type KeepUiLabelContext = {
|
|
639
|
+
locale?: string;
|
|
640
|
+
labels: Readonly<Record<KeepUiLabelKey, string>>;
|
|
641
|
+
customLabels?: KeepUiLabels;
|
|
642
|
+
labelResolver?: (key: KeepUiLabelKey, context: {
|
|
643
|
+
locale?: string;
|
|
644
|
+
}) => string | undefined;
|
|
645
|
+
emitFeedback: <TMeta>(event: KeepUiFeedbackEvent<TMeta>) => void;
|
|
724
646
|
};
|
|
725
|
-
type
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
defaultValue?: string;
|
|
729
|
-
onChange?: (tag?: string) => void;
|
|
730
|
-
onValueChange?: (tag?: string) => void;
|
|
731
|
-
allLabel?: ReactNode;
|
|
732
|
-
ariaLabel?: string;
|
|
733
|
-
renderTag?: (tag: string, count: number, selected: boolean) => ReactNode;
|
|
734
|
-
render?: RenderProp<KeepTagFilterState>;
|
|
735
|
-
children?: ReactNode | RenderProp<KeepTagFilterState>;
|
|
736
|
-
asChild?: boolean;
|
|
647
|
+
type KeepUiFeedbackBase<TType extends string> = {
|
|
648
|
+
type: TType;
|
|
649
|
+
message: string;
|
|
737
650
|
};
|
|
738
|
-
|
|
739
|
-
|
|
651
|
+
type KeepUiFeedbackEvent<TMeta = Record<string, unknown>> = (KeepUiFeedbackBase<"item-saved"> & {
|
|
652
|
+
item: KeepItem<TMeta>;
|
|
653
|
+
}) | (KeepUiFeedbackBase<"item-removed"> & {
|
|
654
|
+
item: KeepItem<TMeta>;
|
|
655
|
+
undo: () => void | Promise<void>;
|
|
656
|
+
undoLabel: string;
|
|
657
|
+
}) | (KeepUiFeedbackBase<"item-restored"> & {
|
|
658
|
+
item?: KeepItem<TMeta>;
|
|
659
|
+
items: KeepItem<TMeta>[];
|
|
660
|
+
}) | KeepUiFeedbackBase<"sync-completed"> | (KeepUiFeedbackBase<"sync-failed"> & {
|
|
661
|
+
error: unknown;
|
|
662
|
+
}) | (KeepUiFeedbackBase<"stale-pruned"> & {
|
|
663
|
+
item?: KeepItem<TMeta>;
|
|
664
|
+
items: KeepItem<TMeta>[];
|
|
665
|
+
undo: () => void | Promise<void>;
|
|
666
|
+
undoLabel: string;
|
|
667
|
+
});
|
|
668
|
+
type KeepUiProviderProps<TMeta = Record<string, unknown>> = {
|
|
669
|
+
labels?: KeepUiLabels;
|
|
670
|
+
locale?: string;
|
|
671
|
+
labelResolver?: KeepUiLabelContext["labelResolver"];
|
|
672
|
+
onFeedback?: (event: KeepUiFeedbackEvent<TMeta>) => void;
|
|
673
|
+
children?: ReactNode;
|
|
674
|
+
};
|
|
675
|
+
/** Provides one complete locale-aware label source to every UI primitive. */
|
|
676
|
+
declare function KeepUiProvider<TMeta = Record<string, unknown>>({ labels, locale, labelResolver, onFeedback, children, }: KeepUiProviderProps<TMeta>): react.JSX.Element;
|
|
677
|
+
declare function useKeepUiLabels(): KeepUiLabelContext;
|
|
678
|
+
|
|
679
|
+
type KeepToastFeedbackOptions = {
|
|
680
|
+
action?: {
|
|
681
|
+
label: string;
|
|
682
|
+
onClick: () => void;
|
|
683
|
+
};
|
|
684
|
+
};
|
|
685
|
+
type KeepToastHandler = (message: string, options?: KeepToastFeedbackOptions) => unknown;
|
|
686
|
+
/** Adapts KeepKit feedback to Sonner-like toast functions without adding a toast dependency. */
|
|
687
|
+
declare function useKeepToastFeedback<TMeta = Record<string, unknown>>(showToast: KeepToastHandler): (event: KeepUiFeedbackEvent<TMeta>) => void;
|
|
688
|
+
|
|
689
|
+
type KeepItemStatusBadgeProps = Omit<HTMLAttributes<HTMLSpanElement>, "children"> & {
|
|
690
|
+
status?: KeepItemStatus | "restricted";
|
|
691
|
+
label?: ReactNode;
|
|
692
|
+
};
|
|
693
|
+
type KeepDisplayStatus = "available" | "expired" | "removed" | "restricted";
|
|
694
|
+
/** Displays the normalized availability state of a saved item. */
|
|
695
|
+
declare function KeepItemStatusBadge({ status, label, className, ...props }: KeepItemStatusBadgeProps): react.JSX.Element;
|
|
696
|
+
|
|
697
|
+
type KeepShortcutHintProps = Omit<HTMLAttributes<HTMLSpanElement>, "children"> & {
|
|
698
|
+
shortcut: string | readonly string[];
|
|
699
|
+
separator?: ReactNode;
|
|
700
|
+
};
|
|
701
|
+
/** Displays a keyboard shortcut using semantic kbd elements. */
|
|
702
|
+
declare function KeepShortcutHint({ shortcut, separator, ...props }: KeepShortcutHintProps): react.JSX.Element;
|
|
740
703
|
|
|
741
704
|
type KeepTourShortcutsOptions = {
|
|
742
705
|
onNext: () => void | Promise<void>;
|
|
@@ -766,19 +729,59 @@ type KeepTourBarProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTM
|
|
|
766
729
|
nextLabel?: string;
|
|
767
730
|
backLabel?: string;
|
|
768
731
|
keyboardShortcuts?: boolean;
|
|
732
|
+
showShortcutHint?: boolean;
|
|
769
733
|
shortcutOptions?: Omit<KeepTourShortcutsOptions, "onNext" | "onPrev">;
|
|
770
734
|
progress?: ReactNode;
|
|
735
|
+
getItemTitle?: (item: KeepItem<TMeta>) => ReactNode;
|
|
736
|
+
children?: ReactNode;
|
|
737
|
+
asChild?: boolean;
|
|
771
738
|
};
|
|
772
739
|
/** Headless previous/current/next navigation with optional URL links and keyboard shortcuts. */
|
|
773
|
-
declare function KeepTourBar<TMeta = Record<string, unknown>>({ navigation: providedNavigation, currentId, initialIndex, showProgress, prevHref, nextHref, backHref, onPrev, onNext, onBack, prevLabel, nextLabel, backLabel, keyboardShortcuts, shortcutOptions, progress, ...props }: KeepTourBarProps<TMeta>): react.
|
|
740
|
+
declare function KeepTourBar<TMeta = Record<string, unknown>>({ navigation: providedNavigation, currentId, initialIndex, showProgress, prevHref, nextHref, backHref, onPrev, onNext, onBack, prevLabel, nextLabel, backLabel, keyboardShortcuts, showShortcutHint, shortcutOptions, progress, getItemTitle, children, asChild, ...props }: KeepTourBarProps<TMeta>): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
774
741
|
declare const KeepNavigator: typeof KeepTourBar;
|
|
775
742
|
|
|
776
|
-
type
|
|
777
|
-
|
|
778
|
-
|
|
743
|
+
type KeepActiveFiltersSummaryProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
744
|
+
query?: KeepListQuery<TMeta>;
|
|
745
|
+
search?: string;
|
|
746
|
+
tags?: readonly string[];
|
|
747
|
+
onSearchChange?: (value: string) => void;
|
|
748
|
+
onTagChange?: (tag: string) => void;
|
|
749
|
+
onClear?: () => void;
|
|
750
|
+
children?: ReactNode | RenderProp<KeepActiveFiltersSummaryState>;
|
|
751
|
+
asChild?: boolean;
|
|
779
752
|
};
|
|
780
|
-
|
|
781
|
-
|
|
753
|
+
type KeepActiveFiltersSummaryState = {
|
|
754
|
+
search: string;
|
|
755
|
+
tags: string[];
|
|
756
|
+
hasFilters: boolean;
|
|
757
|
+
clear: () => void;
|
|
758
|
+
removeSearch: () => void;
|
|
759
|
+
removeTag: (tag: string) => void;
|
|
760
|
+
};
|
|
761
|
+
/** Lists active search and tag filters with one-tap recovery actions. */
|
|
762
|
+
declare function KeepActiveFiltersSummary<TMeta = Record<string, unknown>>({ query, search: providedSearch, tags: providedTags, onSearchChange, onTagChange, onClear, children, asChild, className, ...rootProps }: KeepActiveFiltersSummaryProps<TMeta>): ReactElement<unknown, string | react.JSXElementConstructor<any>> | null;
|
|
763
|
+
|
|
764
|
+
type KeepTagFilterState = {
|
|
765
|
+
tags: string[];
|
|
766
|
+
tagCounts: Record<string, number>;
|
|
767
|
+
value?: string;
|
|
768
|
+
select: (tag?: string) => void;
|
|
769
|
+
};
|
|
770
|
+
type KeepTagFilterProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLElement>, "children" | "onChange"> & {
|
|
771
|
+
query?: KeepListQuery<TMeta>;
|
|
772
|
+
value?: string;
|
|
773
|
+
defaultValue?: string;
|
|
774
|
+
onChange?: (tag?: string) => void;
|
|
775
|
+
onValueChange?: (tag?: string) => void;
|
|
776
|
+
allLabel?: ReactNode;
|
|
777
|
+
ariaLabel?: string;
|
|
778
|
+
renderTag?: (tag: string, count: number, selected: boolean) => ReactNode;
|
|
779
|
+
render?: RenderProp<KeepTagFilterState>;
|
|
780
|
+
children?: ReactNode | RenderProp<KeepTagFilterState>;
|
|
781
|
+
asChild?: boolean;
|
|
782
|
+
};
|
|
783
|
+
/** An ARIA button group for tag filtering; consumers can connect value to a collection query. */
|
|
784
|
+
declare function KeepTagFilter<TMeta = Record<string, unknown>>({ query, value: controlledValue, defaultValue, onChange, onValueChange, allLabel, ariaLabel, renderTag, render, children, asChild, className, ...rootProps }: KeepTagFilterProps<TMeta>): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
782
785
|
|
|
783
786
|
type KeepSearchInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, "value" | "defaultValue" | "onChange"> & {
|
|
784
787
|
value?: string;
|
|
@@ -813,15 +816,38 @@ type KeepPaginationProps = Omit<React.HTMLAttributes<HTMLElement>, "children"> &
|
|
|
813
816
|
/** Accessible pagination with previous/next controls and numbered page buttons. */
|
|
814
817
|
declare function KeepPagination({ totalCount, pageSize, page, maxPageButtons, onPageChange, render, ...props }: KeepPaginationProps): react.JSX.Element;
|
|
815
818
|
|
|
819
|
+
type KeepStaleNoticeProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
820
|
+
item: KeepItem<TMeta>;
|
|
821
|
+
onRetry?: (item: KeepItem<TMeta>) => void | Promise<void>;
|
|
822
|
+
onRemoved?: (item: KeepItem<TMeta>) => void;
|
|
823
|
+
retryLabel?: ReactNode;
|
|
824
|
+
removeLabel?: ReactNode;
|
|
825
|
+
children?: ReactNode;
|
|
826
|
+
};
|
|
827
|
+
/** Provides retry and remove actions for an item whose source is no longer available. */
|
|
828
|
+
declare function KeepStaleNotice<TMeta = Record<string, unknown>>({ item, onRetry, onRemoved, retryLabel, removeLabel, children, className, ...props }: KeepStaleNoticeProps<TMeta>): react.JSX.Element;
|
|
829
|
+
type KeepPruneStaleButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
|
|
830
|
+
statuses?: KeepItemStatus[];
|
|
831
|
+
label?: ReactNode;
|
|
832
|
+
onPruned?: (ids: string[]) => void;
|
|
833
|
+
children?: ReactNode;
|
|
834
|
+
};
|
|
835
|
+
/** Removes all unavailable items through the provider's undo-capable batch action. */
|
|
836
|
+
declare function KeepPruneStaleButton<TMeta = Record<string, unknown>>({ statuses, label, onPruned, children, disabled, ...props }: KeepPruneStaleButtonProps): react.JSX.Element;
|
|
837
|
+
|
|
838
|
+
type KeepEmptyStateVariant = "empty-storage" | "empty-filtered";
|
|
816
839
|
type KeepEmptyStateProps = Omit<HTMLAttributes<HTMLElement>, "children" | "title"> & {
|
|
817
840
|
title?: ReactNode;
|
|
818
841
|
description?: ReactNode;
|
|
819
842
|
action?: ReactNode;
|
|
820
843
|
children?: ReactNode;
|
|
844
|
+
variant?: KeepEmptyStateVariant;
|
|
845
|
+
onClearFilters?: () => void;
|
|
821
846
|
asChild?: boolean;
|
|
822
847
|
};
|
|
823
|
-
/**
|
|
824
|
-
declare function KeepEmptyState({ title, description, action, children, asChild, className, ...rootProps }: KeepEmptyStateProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
848
|
+
/** An accessible empty state that distinguishes an empty store from an empty filter result. */
|
|
849
|
+
declare function KeepEmptyState({ title, description, action, children, variant, onClearFilters, asChild, className, ...rootProps }: KeepEmptyStateProps): react.ReactElement<unknown, string | react.JSXElementConstructor<any>>;
|
|
850
|
+
|
|
825
851
|
type KeepStatusValue = "idle" | "empty" | "loading" | "saving" | "syncing" | "error";
|
|
826
852
|
type KeepStatusLabels = Partial<Record<KeepStatusValue, ReactNode>>;
|
|
827
853
|
type KeepStatusState<TMeta = Record<string, unknown>> = {
|
|
@@ -847,6 +873,27 @@ declare function KeepAnnouncements<TMeta = Record<string, unknown>>({ messages,
|
|
|
847
873
|
/** Singular alias for applications that mount one announcer explicitly. */
|
|
848
874
|
declare const KeepAnnouncer: typeof KeepAnnouncements;
|
|
849
875
|
|
|
876
|
+
type KeepSyncRecoveryDialogProps<TMeta = Record<string, unknown>> = Omit<HTMLAttributes<HTMLElement>, "children" | "title"> & {
|
|
877
|
+
open?: boolean;
|
|
878
|
+
onOpenChange?: (open: boolean) => void;
|
|
879
|
+
conflicts?: KeepSyncConflict<TMeta>[];
|
|
880
|
+
onManualMerge?: (conflict: KeepSyncConflict<TMeta>) => KeepItem<TMeta> | Promise<KeepItem<TMeta>>;
|
|
881
|
+
backup?: ReactNode;
|
|
882
|
+
showBackupControls?: boolean;
|
|
883
|
+
title?: ReactNode;
|
|
884
|
+
children?: ReactNode;
|
|
885
|
+
};
|
|
886
|
+
/** Resolves queued sync conflicts and guides users to restore a backup after data corruption. */
|
|
887
|
+
declare function KeepSyncRecoveryDialog<TMeta = Record<string, unknown>>({ open, onOpenChange, conflicts, onManualMerge, backup, showBackupControls, title, children, className, ...props }: KeepSyncRecoveryDialogProps<TMeta>): react.JSX.Element | null;
|
|
888
|
+
|
|
889
|
+
type KeepSyncStatusBannerProps = Omit<HTMLAttributes<HTMLElement>, "children"> & {
|
|
890
|
+
onRetry?: () => void | Promise<void>;
|
|
891
|
+
onResolveConflicts?: () => void;
|
|
892
|
+
children?: ReactNode;
|
|
893
|
+
};
|
|
894
|
+
/** Announces synchronization failures and exposes retry or conflict-recovery entry points. */
|
|
895
|
+
declare function KeepSyncStatusBanner({ onRetry, onResolveConflicts, children, className, ...props }: KeepSyncStatusBannerProps): react.JSX.Element | null;
|
|
896
|
+
|
|
850
897
|
declare const keepThemeNames: readonly ["default", "ocean", "forest", "sunset", "lavender", "compact", "minimal", "rounded", "high-contrast", "dark"];
|
|
851
898
|
type KeepThemeName = (typeof keepThemeNames)[number];
|
|
852
899
|
type KeepThemeMode = "light" | "dark" | "system";
|
|
@@ -913,4 +960,4 @@ type KeepKit<TMeta = Record<string, unknown>> = {
|
|
|
913
960
|
/** Create one typed application API for the core and standard UI layer. */
|
|
914
961
|
declare function createKeepKit<TMeta = Record<string, unknown>>(options?: CreateKeepKitOptions<TMeta>): KeepKit<TMeta>;
|
|
915
962
|
|
|
916
|
-
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, KeepHighlight, type KeepHighlightProps, 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, KeepNavigator, KeepNoteEditor, type KeepNoteEditorProps, type KeepNoteEditorState, type KeepPagesRouterLike, KeepPagination, type KeepPaginationProps, type KeepPaginationState, KeepPruneStaleButton, type KeepPruneStaleButtonProps, type KeepReorderableItemState, KeepReorderableList, type KeepReorderableListProps, 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, KeepTourBar, type KeepTourBarProps, type KeepTourShortcutsOptions, 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, highlightText, isAllSelected, keepThemeNames, toggleSelectAll, useKeepToastFeedback, useKeepTourShortcuts, useKeepUiLabels, useKeepUrlSync };
|
|
963
|
+
export { type CreateKeepKitOptions, KeepActiveFiltersSummary, type KeepActiveFiltersSummaryProps, type KeepActiveFiltersSummaryState, 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 KeepEmptyStateVariant, KeepHighlight, type KeepHighlightProps, 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, KeepNavigator, KeepNoteEditor, type KeepNoteEditorProps, type KeepNoteEditorState, type KeepPagesRouterLike, KeepPagination, type KeepPaginationProps, type KeepPaginationState, KeepPruneStaleButton, type KeepPruneStaleButtonProps, type KeepReorderableItemState, KeepReorderableList, type KeepReorderableListProps, KeepSearchInput, type KeepSearchInputProps, type KeepSelectionScope, KeepShortcutHint, type KeepShortcutHintProps, 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, KeepTourBar, type KeepTourBarProps, type KeepTourShortcutsOptions, type KeepUiFeedbackEvent, type KeepUiLabelContext, type KeepUiLabelKey, type KeepUiLabels, type KeepUiLocale, type KeepUiLocaleLabels, KeepUiProvider, type KeepUiProviderProps, KeepUndo, type KeepUndoProps, type KeepUrlAdapter, type RenderProp, chainedFunction, createKeepKit, createNextPagesRouterAdapter, createSlot, getKeepLocaleLabels, highlightText, isAllSelected, keepThemeNames, mergeProps, toggleSelectAll, useKeepToastFeedback, useKeepTourShortcuts, useKeepUiLabels, useKeepUrlSync };
|