@buoy-gg/time-machine 7.0.22 → 7.0.23
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/lib/commonjs/components/TimeMachineBody.js +147 -677
- package/lib/commonjs/components/TimeMachineBody.js.map +1 -1
- package/lib/commonjs/components/TimeMachineModal.js +10 -11
- package/lib/commonjs/components/TimeMachineModal.js.map +1 -1
- package/lib/commonjs/components/confirm.js +39 -0
- package/lib/commonjs/components/confirm.js.map +1 -0
- package/lib/commonjs/components/format.js +24 -0
- package/lib/commonjs/components/format.js.map +1 -0
- package/lib/commonjs/components/list/CaptureBar.js +95 -0
- package/lib/commonjs/components/list/CaptureBar.js.map +1 -0
- package/lib/commonjs/components/list/RestoreOutcomeCard.js +162 -0
- package/lib/commonjs/components/list/RestoreOutcomeCard.js.map +1 -0
- package/lib/commonjs/components/list/SnapshotRow.js +141 -0
- package/lib/commonjs/components/list/SnapshotRow.js.map +1 -0
- package/lib/commonjs/components/list/SourcesStrip.js +126 -0
- package/lib/commonjs/components/list/SourcesStrip.js.map +1 -0
- package/lib/commonjs/components/list/UndoDeleteBar.js +81 -0
- package/lib/commonjs/components/list/UndoDeleteBar.js.map +1 -0
- package/lib/commonjs/components/list/WipeAllRow.js +46 -0
- package/lib/commonjs/components/list/WipeAllRow.js.map +1 -0
- package/lib/commonjs/components/preview/ItemDiffPanel.js +77 -0
- package/lib/commonjs/components/preview/ItemDiffPanel.js.map +1 -0
- package/lib/commonjs/components/preview/PreviewFlow.js +51 -0
- package/lib/commonjs/components/preview/PreviewFlow.js.map +1 -0
- package/lib/commonjs/components/preview/RestorePointNameRow.js +83 -0
- package/lib/commonjs/components/preview/RestorePointNameRow.js.map +1 -0
- package/lib/commonjs/components/preview/RestorePreviewScreen.js +549 -635
- package/lib/commonjs/components/preview/RestorePreviewScreen.js.map +1 -1
- package/lib/commonjs/components/preview/verdictMeta.js +8 -8
- package/lib/commonjs/components/preview/verdictMeta.js.map +1 -1
- package/lib/commonjs/components/sources.js +72 -0
- package/lib/commonjs/components/sources.js.map +1 -0
- package/lib/commonjs/store/snapshotVault.js +93 -9
- package/lib/commonjs/store/snapshotVault.js.map +1 -1
- package/lib/commonjs/store/timeMachineStore.js +125 -6
- package/lib/commonjs/store/timeMachineStore.js.map +1 -1
- package/lib/commonjs/sync/timeMachineSyncAdapter.js +41 -0
- package/lib/commonjs/sync/timeMachineSyncAdapter.js.map +1 -1
- package/lib/commonjs/ui/SwipeActionsRow.js +167 -0
- package/lib/commonjs/ui/SwipeActionsRow.js.map +1 -0
- package/lib/commonjs/ui/primitives.js +164 -0
- package/lib/commonjs/ui/primitives.js.map +1 -0
- package/lib/commonjs/ui/tmTheme.js +103 -0
- package/lib/commonjs/ui/tmTheme.js.map +1 -0
- package/lib/module/components/TimeMachineBody.js +150 -680
- package/lib/module/components/TimeMachineBody.js.map +1 -1
- package/lib/module/components/TimeMachineModal.js +11 -12
- package/lib/module/components/TimeMachineModal.js.map +1 -1
- package/lib/module/components/confirm.js +34 -0
- package/lib/module/components/confirm.js.map +1 -0
- package/lib/module/components/format.js +19 -0
- package/lib/module/components/format.js.map +1 -0
- package/lib/module/components/list/CaptureBar.js +90 -0
- package/lib/module/components/list/CaptureBar.js.map +1 -0
- package/lib/module/components/list/RestoreOutcomeCard.js +156 -0
- package/lib/module/components/list/RestoreOutcomeCard.js.map +1 -0
- package/lib/module/components/list/SnapshotRow.js +138 -0
- package/lib/module/components/list/SnapshotRow.js.map +1 -0
- package/lib/module/components/list/SourcesStrip.js +121 -0
- package/lib/module/components/list/SourcesStrip.js.map +1 -0
- package/lib/module/components/list/UndoDeleteBar.js +78 -0
- package/lib/module/components/list/UndoDeleteBar.js.map +1 -0
- package/lib/module/components/list/WipeAllRow.js +41 -0
- package/lib/module/components/list/WipeAllRow.js.map +1 -0
- package/lib/module/components/preview/ItemDiffPanel.js +72 -0
- package/lib/module/components/preview/ItemDiffPanel.js.map +1 -0
- package/lib/module/components/preview/PreviewFlow.js +46 -0
- package/lib/module/components/preview/PreviewFlow.js.map +1 -0
- package/lib/module/components/preview/RestorePointNameRow.js +78 -0
- package/lib/module/components/preview/RestorePointNameRow.js.map +1 -0
- package/lib/module/components/preview/RestorePreviewScreen.js +552 -638
- package/lib/module/components/preview/RestorePreviewScreen.js.map +1 -1
- package/lib/module/components/preview/verdictMeta.js +9 -8
- package/lib/module/components/preview/verdictMeta.js.map +1 -1
- package/lib/module/components/sources.js +66 -0
- package/lib/module/components/sources.js.map +1 -0
- package/lib/module/store/snapshotVault.js +87 -9
- package/lib/module/store/snapshotVault.js.map +1 -1
- package/lib/module/store/timeMachineStore.js +125 -7
- package/lib/module/store/timeMachineStore.js.map +1 -1
- package/lib/module/sync/timeMachineSyncAdapter.js +41 -0
- package/lib/module/sync/timeMachineSyncAdapter.js.map +1 -1
- package/lib/module/ui/SwipeActionsRow.js +162 -0
- package/lib/module/ui/SwipeActionsRow.js.map +1 -0
- package/lib/module/ui/primitives.js +156 -0
- package/lib/module/ui/primitives.js.map +1 -0
- package/lib/module/ui/tmTheme.js +99 -0
- package/lib/module/ui/tmTheme.js.map +1 -0
- package/lib/typescript/components/TimeMachineBody.d.ts.map +1 -1
- package/lib/typescript/components/TimeMachineModal.d.ts.map +1 -1
- package/lib/typescript/components/confirm.d.ts +2 -0
- package/lib/typescript/components/confirm.d.ts.map +1 -0
- package/lib/typescript/components/format.d.ts +4 -0
- package/lib/typescript/components/format.d.ts.map +1 -0
- package/lib/typescript/components/list/CaptureBar.d.ts +6 -0
- package/lib/typescript/components/list/CaptureBar.d.ts.map +1 -0
- package/lib/typescript/components/list/RestoreOutcomeCard.d.ts +11 -0
- package/lib/typescript/components/list/RestoreOutcomeCard.d.ts.map +1 -0
- package/lib/typescript/components/list/SnapshotRow.d.ts +12 -0
- package/lib/typescript/components/list/SnapshotRow.d.ts.map +1 -0
- package/lib/typescript/components/list/SourcesStrip.d.ts +5 -0
- package/lib/typescript/components/list/SourcesStrip.d.ts.map +1 -0
- package/lib/typescript/components/list/UndoDeleteBar.d.ts +8 -0
- package/lib/typescript/components/list/UndoDeleteBar.d.ts.map +1 -0
- package/lib/typescript/components/list/WipeAllRow.d.ts +5 -0
- package/lib/typescript/components/list/WipeAllRow.d.ts.map +1 -0
- package/lib/typescript/components/preview/ItemDiffPanel.d.ts +5 -0
- package/lib/typescript/components/preview/ItemDiffPanel.d.ts.map +1 -0
- package/lib/typescript/components/preview/PreviewFlow.d.ts +9 -0
- package/lib/typescript/components/preview/PreviewFlow.d.ts.map +1 -0
- package/lib/typescript/components/preview/RestorePointNameRow.d.ts +5 -0
- package/lib/typescript/components/preview/RestorePointNameRow.d.ts.map +1 -0
- package/lib/typescript/components/preview/RestorePreviewScreen.d.ts +1 -5
- package/lib/typescript/components/preview/RestorePreviewScreen.d.ts.map +1 -1
- package/lib/typescript/components/preview/verdictMeta.d.ts +5 -0
- package/lib/typescript/components/preview/verdictMeta.d.ts.map +1 -1
- package/lib/typescript/components/sources.d.ts +36 -0
- package/lib/typescript/components/sources.d.ts.map +1 -0
- package/lib/typescript/store/snapshotVault.d.ts +48 -0
- package/lib/typescript/store/snapshotVault.d.ts.map +1 -1
- package/lib/typescript/store/timeMachineStore.d.ts +35 -1
- package/lib/typescript/store/timeMachineStore.d.ts.map +1 -1
- package/lib/typescript/sync/timeMachineSyncAdapter.d.ts +17 -0
- package/lib/typescript/sync/timeMachineSyncAdapter.d.ts.map +1 -1
- package/lib/typescript/ui/SwipeActionsRow.d.ts +32 -0
- package/lib/typescript/ui/SwipeActionsRow.d.ts.map +1 -0
- package/lib/typescript/ui/primitives.d.ts +57 -0
- package/lib/typescript/ui/primitives.d.ts.map +1 -0
- package/lib/typescript/ui/tmTheme.d.ts +67 -0
- package/lib/typescript/ui/tmTheme.d.ts.map +1 -0
- package/package.json +7 -7
- package/src/components/TimeMachineBody.tsx +183 -817
- package/src/components/TimeMachineModal.tsx +10 -11
- package/src/components/confirm.ts +35 -0
- package/src/components/format.ts +17 -0
- package/src/components/list/CaptureBar.tsx +100 -0
- package/src/components/list/RestoreOutcomeCard.tsx +159 -0
- package/src/components/list/SnapshotRow.tsx +155 -0
- package/src/components/list/SourcesStrip.tsx +124 -0
- package/src/components/list/UndoDeleteBar.tsx +76 -0
- package/src/components/list/WipeAllRow.tsx +42 -0
- package/src/components/preview/ItemDiffPanel.tsx +77 -0
- package/src/components/preview/PreviewFlow.tsx +70 -0
- package/src/components/preview/RestorePointNameRow.tsx +80 -0
- package/src/components/preview/RestorePreviewScreen.tsx +535 -535
- package/src/components/preview/verdictMeta.ts +8 -8
- package/src/components/sources.ts +92 -0
- package/src/store/snapshotVault.ts +131 -9
- package/src/store/timeMachineStore.ts +136 -5
- package/src/sync/timeMachineSyncAdapter.ts +30 -0
- package/src/ui/SwipeActionsRow.tsx +199 -0
- package/src/ui/primitives.tsx +157 -0
- package/src/ui/tmTheme.ts +107 -0
- package/lib/commonjs/components/preview/ItemDetailScreen.js +0 -189
- package/lib/commonjs/components/preview/ItemDetailScreen.js.map +0 -1
- package/lib/module/components/preview/ItemDetailScreen.js +0 -184
- package/lib/module/components/preview/ItemDetailScreen.js.map +0 -1
- package/lib/typescript/components/preview/ItemDetailScreen.d.ts +0 -11
- package/lib/typescript/components/preview/ItemDetailScreen.d.ts.map +0 -1
- package/src/components/preview/ItemDetailScreen.tsx +0 -172
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* Baseline snapshots always use this path (clear + reload).
|
|
16
16
|
*/
|
|
17
17
|
import { type StateSnapshotRestoreResult, type StateSnapshotPreviewItem } from "@buoy-gg/shared-ui";
|
|
18
|
-
import { type SnapshotMeta } from "./snapshotVault";
|
|
18
|
+
import { type SnapshotMeta, type StoredSnapshot } from "./snapshotVault";
|
|
19
19
|
import { type RouteRestoreResult } from "./routeRestore";
|
|
20
20
|
export declare const RESTORE_ORDER: string[];
|
|
21
21
|
export type RestoreMode = "live" | "reload";
|
|
@@ -33,6 +33,12 @@ export interface RestoreOutcome {
|
|
|
33
33
|
*/
|
|
34
34
|
route?: RouteRestoreResult;
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Will restoring this point also navigate back to its route? Having a route
|
|
38
|
+
* means wanting it back unless the point says otherwise — the same rule
|
|
39
|
+
* `restore` applies, exported so the UI can't drift from it.
|
|
40
|
+
*/
|
|
41
|
+
export declare function willRestoreRoute(meta: SnapshotMeta): boolean;
|
|
36
42
|
/** Extra knobs a restore accepts beyond mode + exclusions. */
|
|
37
43
|
export interface RestoreOptions {
|
|
38
44
|
/**
|
|
@@ -86,6 +92,14 @@ export interface TimeMachineState {
|
|
|
86
92
|
* (Buoy Desktop). Null on-device, where the live router is probed directly.
|
|
87
93
|
*/
|
|
88
94
|
remoteRoute: RouteToolStatus | null;
|
|
95
|
+
/**
|
|
96
|
+
* The last deleted record, held in memory so the list can offer an undo.
|
|
97
|
+
* The vault row is already gone — this is the only copy until it expires.
|
|
98
|
+
*/
|
|
99
|
+
recentlyDeleted: {
|
|
100
|
+
stored: StoredSnapshot;
|
|
101
|
+
at: number;
|
|
102
|
+
} | null;
|
|
89
103
|
}
|
|
90
104
|
/** Whether this device can capture and return to routes, and where it is now. */
|
|
91
105
|
export interface RouteToolStatus {
|
|
@@ -129,7 +143,21 @@ declare class TimeMachineStore {
|
|
|
129
143
|
restore(id: string, mode: RestoreMode, excludeKeys?: readonly string[], options?: RestoreOptions): Promise<RestoreOutcome>;
|
|
130
144
|
private restoreSource;
|
|
131
145
|
private scheduleReload;
|
|
146
|
+
/**
|
|
147
|
+
* Delete, holding the whole record in memory so `undoDelete` can put it
|
|
148
|
+
* back. Swipe-and-tap is deliberate but not recoverable, and those are
|
|
149
|
+
* different properties — a restore point can represent state that takes
|
|
150
|
+
* ten minutes and a cooperative backend to rebuild.
|
|
151
|
+
*/
|
|
132
152
|
delete(id: string): Promise<void>;
|
|
153
|
+
/** Put the last deleted point back. No-op once the window has passed. */
|
|
154
|
+
undoDelete(): Promise<void>;
|
|
155
|
+
/** Drop the undo offer — on timeout, or when the user moves on. */
|
|
156
|
+
clearRecentlyDeleted(): void;
|
|
157
|
+
/** Turn this point's route restore on or off. */
|
|
158
|
+
setRestoreRoute(id: string, restoreRoute: boolean): Promise<void>;
|
|
159
|
+
/** Copy a point so a variation can start from a known-good base. */
|
|
160
|
+
duplicate(id: string): Promise<SnapshotMeta | null>;
|
|
133
161
|
rename(id: string, name: string): Promise<void>;
|
|
134
162
|
/**
|
|
135
163
|
* Save (or clear with null/empty) a snapshot's restore scope — compound
|
|
@@ -137,6 +165,12 @@ declare class TimeMachineStore {
|
|
|
137
165
|
* its scoped items.
|
|
138
166
|
*/
|
|
139
167
|
setScope(id: string, scope: string[] | null): Promise<void>;
|
|
168
|
+
/**
|
|
169
|
+
* Save (or clear with null/empty) the items every later restore of this
|
|
170
|
+
* snapshot must leave untouched — what the restore preview's checkboxes
|
|
171
|
+
* write when you save a selection.
|
|
172
|
+
*/
|
|
173
|
+
setExclusions(id: string, excludedKeys: string[] | null): Promise<void>;
|
|
140
174
|
clearLastOutcome(): void;
|
|
141
175
|
/**
|
|
142
176
|
* Wipe every clearable source to fresh-install state and reload — the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeMachineStore.d.ts","sourceRoot":"","sources":["../../../src/store/timeMachineStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAML,KAAK,0BAA0B,EAE/B,KAAK,wBAAwB,EAE9B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,
|
|
1
|
+
{"version":3,"file":"timeMachineStore.d.ts","sourceRoot":"","sources":["../../../src/store/timeMachineStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,23 @@ export declare const timeMachineSyncAdapter: {
|
|
|
58
58
|
id: string;
|
|
59
59
|
name: string;
|
|
60
60
|
}>;
|
|
61
|
+
/**
|
|
62
|
+
* Save (or clear with null/empty) the items a restore of this snapshot
|
|
63
|
+
* must leave alone — the persisted form of the preview's checkboxes.
|
|
64
|
+
*/
|
|
65
|
+
setExclusions: (params: unknown) => Promise<{
|
|
66
|
+
id: string;
|
|
67
|
+
excluded: number;
|
|
68
|
+
}>;
|
|
69
|
+
/** Turn a restore point's route restore on or off. */
|
|
70
|
+
setRestoreRoute: (params: unknown) => Promise<{
|
|
71
|
+
id: string;
|
|
72
|
+
restoreRoute: boolean;
|
|
73
|
+
}>;
|
|
74
|
+
/** Copy a restore point so a variation can start from a known base. */
|
|
75
|
+
duplicate: (params: unknown) => Promise<{
|
|
76
|
+
snapshot: import("..").SnapshotMeta;
|
|
77
|
+
}>;
|
|
61
78
|
/** Save (or clear with null/empty) a snapshot's targeted-restore scope. */
|
|
62
79
|
setScope: (params: unknown) => Promise<{
|
|
63
80
|
scoped: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeMachineSyncAdapter.d.ts","sourceRoot":"","sources":["../../../src/sync/timeMachineSyncAdapter.ts"],"names":[],"mappings":"AAmBA,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,2BAA2B,CAAC;AA0DnC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;0BAIX,MAAM,IAAI;;;;;;;;;;;;;;;;;;0BAWN,OAAO;;;;;;;;QAW/B,uEAAuE;;QAGvE;;kCAE0B;0BACF,OAAO;yBAaR,OAAO;;;;yBAOP,OAAO;;;;;QAO9B,2EAA2E;2BAClD,OAAO;;;;;QAQhC;;;;WAIG;0BACqB,OAAO;;;;;;;;;;;;;;;;;;;;;;QAoC/B,2EAA2E;0BACnD,OAAO;;;;;;;CAmBlC,CAAC"}
|
|
1
|
+
{"version":3,"file":"timeMachineSyncAdapter.d.ts","sourceRoot":"","sources":["../../../src/sync/timeMachineSyncAdapter.ts"],"names":[],"mappings":"AAmBA,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,2BAA2B,CAAC;AA0DnC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;0BAIX,MAAM,IAAI;;;;;;;;;;;;;;;;;;0BAWN,OAAO;;;;;;;;QAW/B,uEAAuE;;QAGvE;;kCAE0B;0BACF,OAAO;yBAaR,OAAO;;;;yBAOP,OAAO;;;;;QAO9B;;;WAGG;gCAC2B,OAAO;;;;QAQrC,sDAAsD;kCACtB,OAAO;;;;QAQvC,uEAAuE;4BAC7C,OAAO;;;QAQjC,2EAA2E;2BAClD,OAAO;;;;;QAQhC;;;;WAIG;0BACqB,OAAO;;;;;;;;;;;;;;;;;;;;;;QAoC/B,2EAA2E;0BACnD,OAAO;;;;;;;CAmBlC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Swipe-left-to-reveal-actions wrapper for a grouped-list row.
|
|
3
|
+
*
|
|
4
|
+
* Deliberately dependency-free (Animated + PanResponder): the package has no
|
|
5
|
+
* gesture-handler peer and a devtool must not add one to the host app.
|
|
6
|
+
*
|
|
7
|
+
* Gesture contract, in the order the checks matter:
|
|
8
|
+
* - The pan only claims the gesture once the finger has moved LEFT past a
|
|
9
|
+
* threshold and is travelling more horizontally than vertically, so taps
|
|
10
|
+
* still reach the row and vertical drags still scroll the list.
|
|
11
|
+
* - Releasing past half the action width latches open; anything less snaps
|
|
12
|
+
* shut, so a hesitant swipe never leaves a half-open row.
|
|
13
|
+
* - Only one row stays open at a time (module-level latch below) — matching
|
|
14
|
+
* iOS, and it means "swipe, then tap an action" can't hit the wrong row.
|
|
15
|
+
*/
|
|
16
|
+
import { type ReactNode } from "react";
|
|
17
|
+
export interface SwipeAction {
|
|
18
|
+
label: string;
|
|
19
|
+
/** Called after the row closes itself. */
|
|
20
|
+
onPress: () => void;
|
|
21
|
+
/** Fill behind the row. Defaults to the neutral action fill. */
|
|
22
|
+
background?: string;
|
|
23
|
+
color?: string;
|
|
24
|
+
testID?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function SwipeActionsRow({ children, actions, testID, }: {
|
|
27
|
+
children: ReactNode;
|
|
28
|
+
/** Rightmost is the one furthest from the content, iOS-style. */
|
|
29
|
+
actions: SwipeAction[];
|
|
30
|
+
testID?: string;
|
|
31
|
+
}): import("react").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=SwipeActionsRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwipeActionsRow.d.ts","sourceRoot":"","sources":["../../../src/ui/SwipeActionsRow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AA+E1D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,OAAO,EACP,MAAM,GACP,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,iEAAiE;IACjE,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,+BAmDA"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grouped-inset list primitives — the building blocks of the Time Machine
|
|
3
|
+
* surface (see ./tmTheme for the tokens and the promotion plan).
|
|
4
|
+
*
|
|
5
|
+
* The shape they compose to:
|
|
6
|
+
*
|
|
7
|
+
* SectionLabel SOURCES ← outside the card, uppercase
|
|
8
|
+
* Group ┌──────────────────┐
|
|
9
|
+
* <row> │ All sources … 6 ›│ ← rows are plain children;
|
|
10
|
+
* <row> ├──────────────────┤ Group draws the hairlines
|
|
11
|
+
* └──────────────────┘
|
|
12
|
+
* Footnote Route is captured with… ← explains the group above
|
|
13
|
+
*
|
|
14
|
+
* Rows are whatever a screen needs — Group only owns the card, the clipping
|
|
15
|
+
* and the separators, so a row never has to know its position in the list.
|
|
16
|
+
*/
|
|
17
|
+
import { type ReactNode } from "react";
|
|
18
|
+
import { type ViewStyle } from "react-native";
|
|
19
|
+
/** Uppercase section label that sits above a Group. */
|
|
20
|
+
export declare function SectionLabel({ children }: {
|
|
21
|
+
children: string;
|
|
22
|
+
}): import("react").JSX.Element;
|
|
23
|
+
/**
|
|
24
|
+
* Explanatory line under a Group ("Swipe a restore point to delete it").
|
|
25
|
+
* `centered` matches the iOS convention for a footnote under a lone button.
|
|
26
|
+
*/
|
|
27
|
+
export declare function Footnote({ children, centered, tone, }: {
|
|
28
|
+
children: ReactNode;
|
|
29
|
+
centered?: boolean;
|
|
30
|
+
tone?: "secondary" | "warning";
|
|
31
|
+
}): import("react").JSX.Element;
|
|
32
|
+
/**
|
|
33
|
+
* A rounded grouped card. Draws a hairline between consecutive children and
|
|
34
|
+
* clips them, so a row can paint edge-to-edge (swipe actions, press washes)
|
|
35
|
+
* without punching through the corners.
|
|
36
|
+
*/
|
|
37
|
+
export declare function Group({ children, style, }: {
|
|
38
|
+
children: ReactNode;
|
|
39
|
+
style?: ViewStyle;
|
|
40
|
+
}): import("react").JSX.Element;
|
|
41
|
+
/**
|
|
42
|
+
* Trailing disclosure chevron for a row that opens or expands.
|
|
43
|
+
*
|
|
44
|
+
* A real glyph, not two rotated hairlines: at this size the hand-built
|
|
45
|
+
* version's strokes never met at the vertex, so it read as a broken arrow.
|
|
46
|
+
*/
|
|
47
|
+
export declare function DisclosureChevron(): import("react").JSX.Element;
|
|
48
|
+
/**
|
|
49
|
+
* Pill button. Parameterized by color rather than by variant flags so a
|
|
50
|
+
* screen can name its own (`CapturePill`, `RestorePill`) in one line.
|
|
51
|
+
*/
|
|
52
|
+
export declare function PillLabel({ label, color, background, }: {
|
|
53
|
+
label: string;
|
|
54
|
+
color: string;
|
|
55
|
+
background: string;
|
|
56
|
+
}): import("react").JSX.Element;
|
|
57
|
+
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/ui/primitives.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAA0B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAItE,uDAAuD;AACvD,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,+BAE9D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,QAAQ,EACR,IAAkB,GACnB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAChC,+BAYA;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,+BAcA;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,gCAEhC;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,UAAU,GACX,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,+BAMA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export declare const tm: {
|
|
2
|
+
readonly color: {
|
|
3
|
+
/** Sheet background behind the grouped cards. */
|
|
4
|
+
readonly sheet: "#121212";
|
|
5
|
+
/** A grouped card. */
|
|
6
|
+
readonly group: "#1A1A1A";
|
|
7
|
+
/** Row press / hover wash on top of a group. */
|
|
8
|
+
readonly rowPressed: "#242424";
|
|
9
|
+
/** Hairline between rows, inset from the left like iOS. */
|
|
10
|
+
readonly separator: "#333333";
|
|
11
|
+
/** Neutral control fill (icon discs, chips, round buttons). */
|
|
12
|
+
readonly fill: "#2A2A2A";
|
|
13
|
+
readonly fillStrong: "#444444";
|
|
14
|
+
readonly label: "#E0E0E0";
|
|
15
|
+
readonly labelSecondary: "#A0A0A0";
|
|
16
|
+
readonly labelTertiary: "#888888";
|
|
17
|
+
/** Primary action + "this is healthy" (Buoy teal). */
|
|
18
|
+
readonly accent: "#20C997";
|
|
19
|
+
readonly accentSoft: "#20C9972E";
|
|
20
|
+
readonly accentSoftStrong: "#20C9974D";
|
|
21
|
+
/** Text/icons ON an accent fill — the palette's teal wants dark ink. */
|
|
22
|
+
readonly onAccent: "#0A0A0A";
|
|
23
|
+
readonly warning: "#FFA94D";
|
|
24
|
+
readonly warningSoft: "#FFA94D2E";
|
|
25
|
+
readonly danger: "#EF4444";
|
|
26
|
+
readonly dangerSoft: "#EF44442E";
|
|
27
|
+
/** Text/icons ON a danger fill. */
|
|
28
|
+
readonly onDanger: "#FFFFFF";
|
|
29
|
+
readonly info: "#00B8E6";
|
|
30
|
+
};
|
|
31
|
+
readonly radius: {
|
|
32
|
+
/** Grouped card + the capture field that visually matches one. */
|
|
33
|
+
readonly group: 14;
|
|
34
|
+
/** Fully rounded pills and status circles. */
|
|
35
|
+
readonly pill: 99;
|
|
36
|
+
};
|
|
37
|
+
/** Horizontal inset of the grouped cards from the sheet edge. */
|
|
38
|
+
readonly gutter: 14;
|
|
39
|
+
/** Extra inset for labels/footnotes, measured from the card edge. */
|
|
40
|
+
readonly textInset: 16;
|
|
41
|
+
/** Left inset of a row separator, measured from the card edge. */
|
|
42
|
+
readonly separatorInset: 16;
|
|
43
|
+
readonly font: {
|
|
44
|
+
/** Row titles and primary values. */
|
|
45
|
+
readonly row: 17;
|
|
46
|
+
/** Buttons and pill labels. */
|
|
47
|
+
readonly control: 15;
|
|
48
|
+
/** Section labels, row captions, footnotes. */
|
|
49
|
+
readonly footnote: 13;
|
|
50
|
+
/** Route paths and other monospace detail. */
|
|
51
|
+
readonly mono: 12;
|
|
52
|
+
};
|
|
53
|
+
/** iOS tracks display text slightly tighter than the default. */
|
|
54
|
+
readonly tracking: {
|
|
55
|
+
readonly row: -0.43;
|
|
56
|
+
readonly control: -0.2;
|
|
57
|
+
};
|
|
58
|
+
/** Standard grouped-row height before content forces it taller. */
|
|
59
|
+
readonly rowMinHeight: 52;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Monospace family. RN native resolves a single family name only (no CSS
|
|
63
|
+
* stack), and "monospace" is the one token both platforms honor — it is what
|
|
64
|
+
* the rest of the design system uses.
|
|
65
|
+
*/
|
|
66
|
+
export declare const TM_MONO = "monospace";
|
|
67
|
+
//# sourceMappingURL=tmTheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tmTheme.d.ts","sourceRoot":"","sources":["../../../src/ui/tmTheme.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,EAAE;;QAEX,iDAAiD;;QAEjD,sBAAsB;;QAEtB,gDAAgD;;QAEhD,2DAA2D;;QAE3D,+DAA+D;;;;;;QAQ/D,sDAAsD;;;;QAItD,wEAAwE;;;;;;QAQxE,mCAAmC;;;;;QAOnC,kEAAkE;;QAElE,8CAA8C;;;IAIhD,iEAAiE;;IAEjE,qEAAqE;;IAErE,kEAAkE;;;QAIhE,qCAAqC;;QAErC,+BAA+B;;QAE/B,+CAA+C;;QAE/C,8CAA8C;;;IAIhD,iEAAiE;;;;;IAMjE,mEAAmE;;CAE3D,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,OAAO,cAAc,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@buoy-gg/time-machine",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.23",
|
|
4
4
|
"description": "Time Machine - snapshot & restore app state (storage, redux, zustand, jotai, react-query) for React Native DevTools",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
@@ -17,21 +17,21 @@
|
|
|
17
17
|
"./lib/module/index.js"
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@buoy-gg/floating-tools-core": "^7.0.
|
|
21
|
-
"@buoy-gg/shared-ui": "^7.0.
|
|
20
|
+
"@buoy-gg/floating-tools-core": "^7.0.23",
|
|
21
|
+
"@buoy-gg/shared-ui": "^7.0.23"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
|
-
"@buoy-gg/license": "7.0.
|
|
24
|
+
"@buoy-gg/license": "7.0.23",
|
|
25
25
|
"react": "*",
|
|
26
26
|
"react-native": "*",
|
|
27
|
-
"@buoy-gg/core": "^7.0.
|
|
27
|
+
"@buoy-gg/core": "^7.0.23"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@types/react": "^19.1.0",
|
|
31
31
|
"@types/react-native": "^0.73.0",
|
|
32
32
|
"typescript": "~5.8.3",
|
|
33
|
-
"@buoy-gg/license": "^7.0.
|
|
34
|
-
"@buoy-gg/core": "^7.0.
|
|
33
|
+
"@buoy-gg/license": "^7.0.23",
|
|
34
|
+
"@buoy-gg/core": "^7.0.23"
|
|
35
35
|
},
|
|
36
36
|
"react-native-builder-bob": {
|
|
37
37
|
"source": "src",
|