@parity-app/cli 0.0.0 → 0.2.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 +88 -3
- package/dist/bin.mjs +1133 -273
- package/dist/client-Cf66-n3R.mjs +724 -0
- package/dist/index.d.mts +211 -17
- package/dist/index.mjs +1 -1
- package/dist/libraries/aria.lib.par +5 -5
- package/dist/libraries/baseui.lib.par +25 -25
- package/dist/libraries/chakra.lib.par +61 -22
- package/dist/libraries/fluent.lib.par +27 -27
- package/dist/libraries/luma.lib.par +20 -20
- package/dist/libraries/lyra.lib.par +20 -20
- package/dist/libraries/maia.lib.par +20 -20
- package/dist/libraries/mantine.lib.par +14 -14
- package/dist/libraries/mira.lib.par +20 -20
- package/dist/libraries/mui.lib.par +5 -5
- package/dist/libraries/nova.lib.par +20 -20
- package/dist/libraries/radix.lib.par +11 -11
- package/dist/libraries/recharts.lib.par +5445 -0
- package/dist/libraries/rhea.lib.par +20 -20
- package/dist/libraries/sera.lib.par +20 -20
- package/dist/libraries/vega.lib.par +20 -20
- package/dist/{src-C8DCd2a1.mjs → src-BOUQtcWB.mjs} +1 -1
- package/dist/{src-WcAfq6g1.mjs → src-BRgxMRtE.mjs} +3 -2
- package/dist/{src-CSeISXoZ.mjs → src-BZ1p_ip_.mjs} +135 -38
- package/dist/{src-uPmBVSsB.mjs → src-CAm6EBIK.mjs} +1 -1
- package/dist/{src-rlZNC2MU.mjs → src-CcWc-KsX.mjs} +593 -212
- package/package.json +8 -6
- package/skills/SKILL.md +61 -14
- package/skills/document.md +6 -1
- package/skills/execute.md +96 -8
- package/skills/guide/states-and-modes.md +5 -3
- package/LICENSE +0 -21
- package/dist/client-DsTLQ2lT.mjs +0 -286
package/dist/index.d.mts
CHANGED
|
@@ -1,36 +1,220 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Where running copies of Parity say how to reach them (PAR-514): one entry per copy, named by its main process, in
|
|
3
|
+
* `~/.parity/agents`. Each copy writes and removes only its own. The app and the CLI both go through here, so the
|
|
4
|
+
* format and the place live in one module. What a copy has open isn't here: the CLI asks each copy, live.
|
|
5
|
+
*
|
|
6
|
+
* `PARITY_AGENT_FILE` names one file instead, for a copy kept apart from the person's, as `pnpm perf`, the end-to-end
|
|
7
|
+
* tests and the backtest run: that copy writes only that file, and a CLI given it reaches only that copy.
|
|
8
|
+
*/
|
|
9
|
+
interface Registry {
|
|
10
|
+
/** The folder of entries, or the one file a copy kept apart uses. */
|
|
11
|
+
kind: "folder" | "file";
|
|
12
|
+
path: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Why an agent's call failed, as a stable code it can act on without reading the message. The CLI and MCP publish
|
|
16
|
+
* these; the app throws them where it knows the cause.
|
|
17
|
+
*/
|
|
18
|
+
declare const errorCodes: readonly [
|
|
19
|
+
/** The request is malformed: a field is missing, of the wrong type or out of range. */
|
|
20
|
+
"invalid_input",
|
|
21
|
+
/** The app isn't running, so there's nowhere to send the call. */
|
|
22
|
+
"not_running",
|
|
23
|
+
/** The app is running but didn't answer. */
|
|
24
|
+
"not_answering", "unknown_tab",
|
|
25
|
+
/** The tab is still opening, or failed to open. */
|
|
26
|
+
"tab_not_ready", "unknown_design", "unknown_node",
|
|
27
|
+
/** A reference matches more than one thing; the alternatives say how to name each. */
|
|
28
|
+
"ambiguous_reference", "unknown_state", "unknown_mode", "unknown_viewport", "unknown_component", "unknown_icon_set",
|
|
29
|
+
/** A retry named a failed snippet the app doesn't have, so the whole snippet has to be sent again. */
|
|
30
|
+
"unknown_edit_id",
|
|
31
|
+
/** The call's changes collided with edits made in the editor meanwhile. Running it again may succeed. */
|
|
32
|
+
"conflict",
|
|
33
|
+
/** A snippet threw. Retry it with its editId and edits. */
|
|
34
|
+
"execution_failed",
|
|
35
|
+
/** Anything else the app reported. */
|
|
36
|
+
"app_error"];
|
|
37
|
+
type ErrorCode = (typeof errorCodes)[number];
|
|
38
|
+
/**
|
|
39
|
+
* A failed call, the same in CLI `--json` and MCP `structuredContent`: a stable code to branch on, the message people
|
|
40
|
+
* read, whether the same request can succeed when sent again, the input at fault, and what to use instead.
|
|
41
|
+
*/
|
|
42
|
+
interface OperationError {
|
|
43
|
+
code: ErrorCode;
|
|
44
|
+
message: string;
|
|
45
|
+
/** Whether sending the same request again, unchanged, can succeed: the app was starting, or edits collided. */
|
|
46
|
+
retryable: boolean;
|
|
47
|
+
/** A JSON pointer to the input at fault, such as `/design` or `/edits/0/find`, in the operation's field names. */
|
|
48
|
+
path?: string;
|
|
49
|
+
/** Valid ids to use instead of an unknown or ambiguous one, closest first, at most 20. */
|
|
50
|
+
alternatives?: string[];
|
|
51
|
+
/** A failed snippet's id: retry it with `editId` and `edits` instead of sending it again. */
|
|
52
|
+
editId?: string;
|
|
53
|
+
}
|
|
54
|
+
interface Edit {
|
|
55
|
+
find: string;
|
|
56
|
+
replace: string;
|
|
57
|
+
all?: boolean;
|
|
58
|
+
}
|
|
59
|
+
interface Screenshot {
|
|
4
60
|
path: string;
|
|
5
61
|
png: string;
|
|
6
62
|
design: string;
|
|
7
63
|
state: string;
|
|
8
64
|
mode: string;
|
|
9
65
|
}
|
|
10
|
-
|
|
66
|
+
/** The canonical result. Structured output is this without the screenshots' image data. */
|
|
67
|
+
interface ExecResponse {
|
|
11
68
|
ok: boolean;
|
|
12
69
|
applied: boolean;
|
|
13
70
|
output: string[];
|
|
14
71
|
warnings: string[];
|
|
15
|
-
|
|
16
|
-
|
|
72
|
+
/** Set when the call failed, with the editId to retry a snippet by. */
|
|
73
|
+
error?: OperationError;
|
|
17
74
|
created: Record<string, string>;
|
|
18
75
|
screenshots: Screenshot[];
|
|
19
76
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
77
|
+
/**
|
|
78
|
+
* Where running copies of the app say how to reach them: `~/.parity/agents`, or the one file `PARITY_AGENT_FILE` names
|
|
79
|
+
* for a copy kept apart from the person's.
|
|
80
|
+
*/
|
|
81
|
+
export declare const registry: Registry;
|
|
25
82
|
/**
|
|
26
83
|
* Names who's calling in later calls, so the canvas can say who's at work. The MCP server learns the name from its
|
|
27
84
|
* client, and is one session: its calls share an id, apart from any other session of the same agent.
|
|
28
85
|
*/
|
|
29
86
|
export declare function setCaller(name: string | undefined, session?: boolean): void;
|
|
30
|
-
/**
|
|
31
|
-
|
|
87
|
+
/**
|
|
88
|
+
* How a call finds its copy of the app (PAR-514): `tab` goes to the copy that has the tab's project open, `open` to the
|
|
89
|
+
* copy that has the project or else the one the person used last, and `copies` asks every copy, for their tabs.
|
|
90
|
+
*/
|
|
91
|
+
export type Routing = "tab" | "open" | "copies";
|
|
92
|
+
/**
|
|
93
|
+
* Calls the running Parity app: the copy that has the call's project open, with the exact tab it chose, by the rules
|
|
94
|
+
* in `@parity-app/agent/routing`. Fails with a clear message, and a code, when no copy is running, none has the
|
|
95
|
+
* project, or the call fails: the app's own code when it gives one.
|
|
96
|
+
*/
|
|
97
|
+
export declare function call<T>(method: string, params?: Record<string, unknown>, routing?: Routing): Promise<T>;
|
|
32
98
|
/** A readable account of an exec call, for terminals and for agents. */
|
|
33
99
|
export declare function describeExec(result: ExecResponse): string;
|
|
100
|
+
/** One open project. */
|
|
101
|
+
export interface TabSummary {
|
|
102
|
+
id: string;
|
|
103
|
+
name: string;
|
|
104
|
+
root: string;
|
|
105
|
+
active: boolean;
|
|
106
|
+
status: "loading" | "ready" | "error";
|
|
107
|
+
error?: string;
|
|
108
|
+
designs: number;
|
|
109
|
+
}
|
|
110
|
+
export interface TabsResponse {
|
|
111
|
+
tabs: TabSummary[];
|
|
112
|
+
}
|
|
113
|
+
export interface StatusResponse {
|
|
114
|
+
tab: {
|
|
115
|
+
id: string;
|
|
116
|
+
name: string;
|
|
117
|
+
};
|
|
118
|
+
/** Opaque: the same only while nothing in the tab has changed. */
|
|
119
|
+
revision: string;
|
|
120
|
+
/** Something applied (and undoable) isn't on disk yet. */
|
|
121
|
+
dirty: boolean;
|
|
122
|
+
/** Changes save themselves a moment later; otherwise they wait for the person to save. */
|
|
123
|
+
autosave: boolean;
|
|
124
|
+
unsaved: {
|
|
125
|
+
path: string;
|
|
126
|
+
kind: "document" | "stylesheet";
|
|
127
|
+
designs?: {
|
|
128
|
+
added: string[];
|
|
129
|
+
changed: string[];
|
|
130
|
+
removed: string[];
|
|
131
|
+
};
|
|
132
|
+
modes?: boolean;
|
|
133
|
+
tokens?: string[];
|
|
134
|
+
more?: number;
|
|
135
|
+
}[];
|
|
136
|
+
tokenEdits: number;
|
|
137
|
+
save: {
|
|
138
|
+
status: "saved" | "unsaved" | "saving" | "failed";
|
|
139
|
+
error?: string;
|
|
140
|
+
};
|
|
141
|
+
errors: {
|
|
142
|
+
path: string;
|
|
143
|
+
error: string;
|
|
144
|
+
}[];
|
|
145
|
+
undo: {
|
|
146
|
+
count: number;
|
|
147
|
+
labels?: string[];
|
|
148
|
+
};
|
|
149
|
+
redo: {
|
|
150
|
+
count: number;
|
|
151
|
+
labels?: string[];
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/** Where a tab's edits stand: the revision, what's applied and undoable, what's on disk, and what failed to write. */
|
|
155
|
+
export declare function describeStatus(result: StatusResponse): string;
|
|
156
|
+
export interface ModesResponse {
|
|
157
|
+
tab: {
|
|
158
|
+
id: string;
|
|
159
|
+
name: string;
|
|
160
|
+
};
|
|
161
|
+
variables: {
|
|
162
|
+
id: string;
|
|
163
|
+
name: string;
|
|
164
|
+
kind: "viewport" | "theme" | "locale" | "custom";
|
|
165
|
+
options: {
|
|
166
|
+
id: string;
|
|
167
|
+
name: string;
|
|
168
|
+
width?: number;
|
|
169
|
+
height?: number;
|
|
170
|
+
device?: string;
|
|
171
|
+
className?: string;
|
|
172
|
+
attributes?: Record<string, string>;
|
|
173
|
+
}[];
|
|
174
|
+
}[];
|
|
175
|
+
/** Viewport options: the ids Responsive takes, with the window each stands for. */
|
|
176
|
+
viewports: {
|
|
177
|
+
id: string;
|
|
178
|
+
name: string;
|
|
179
|
+
width: number;
|
|
180
|
+
height: number;
|
|
181
|
+
device?: string;
|
|
182
|
+
}[];
|
|
183
|
+
/** Modes: the ids renders take, each a combination of one option per variable. */
|
|
184
|
+
modes: {
|
|
185
|
+
id: string;
|
|
186
|
+
name: string;
|
|
187
|
+
primary: boolean;
|
|
188
|
+
viewport: string;
|
|
189
|
+
width: number;
|
|
190
|
+
height: number;
|
|
191
|
+
values: Record<string, string>;
|
|
192
|
+
classNames: string[];
|
|
193
|
+
attributes: Record<string, string>;
|
|
194
|
+
}[];
|
|
195
|
+
designs: {
|
|
196
|
+
id: string;
|
|
197
|
+
name: string;
|
|
198
|
+
state: string;
|
|
199
|
+
states: string[];
|
|
200
|
+
main: string;
|
|
201
|
+
beside: string[];
|
|
202
|
+
frames?: {
|
|
203
|
+
mode: string;
|
|
204
|
+
width: number;
|
|
205
|
+
height?: number;
|
|
206
|
+
window: {
|
|
207
|
+
width: number;
|
|
208
|
+
height: number;
|
|
209
|
+
};
|
|
210
|
+
}[];
|
|
211
|
+
}[];
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* The project's viewports (what Responsive takes), its other variables, its modes (what renders take) and what each
|
|
215
|
+
* design's board shows, with a named design's frames.
|
|
216
|
+
*/
|
|
217
|
+
export declare function describeModes(result: ModesResponse): string;
|
|
34
218
|
export interface AccessibilityFinding {
|
|
35
219
|
state: string;
|
|
36
220
|
mode: string;
|
|
@@ -86,8 +270,14 @@ export interface TokenInfo {
|
|
|
86
270
|
source: string;
|
|
87
271
|
values: Record<string, string>;
|
|
88
272
|
}
|
|
273
|
+
export interface TokensResponse {
|
|
274
|
+
tokens: TokenInfo[];
|
|
275
|
+
/** How many matched, before the limit. */
|
|
276
|
+
total: number;
|
|
277
|
+
truncated: boolean;
|
|
278
|
+
}
|
|
89
279
|
/** Tokens by category, each with its value in every theme that sets one. */
|
|
90
|
-
export declare function describeTokens(tokens:
|
|
280
|
+
export declare function describeTokens({ tokens, total, truncated }: TokensResponse): string;
|
|
91
281
|
export interface ComponentsResponse {
|
|
92
282
|
components: string[];
|
|
93
283
|
iconLibraries?: string[];
|
|
@@ -106,10 +296,9 @@ export interface ComponentsResponse {
|
|
|
106
296
|
problem: "provider" | "server" | "async" | "error";
|
|
107
297
|
reason: string;
|
|
108
298
|
}[];
|
|
109
|
-
/** The person's corrections in the main project file, saved or not: exports listed by hand
|
|
299
|
+
/** The person's corrections in the main project file, saved or not: exports listed by hand. */
|
|
110
300
|
corrections?: {
|
|
111
301
|
include?: ComponentRef[];
|
|
112
|
-
exclude?: ComponentRef[];
|
|
113
302
|
};
|
|
114
303
|
}
|
|
115
304
|
/** One of the app's exports, by its file and export name. */
|
|
@@ -154,7 +343,12 @@ export interface ConsoleResponse {
|
|
|
154
343
|
id: string;
|
|
155
344
|
name: string;
|
|
156
345
|
};
|
|
346
|
+
/** The newest entries, up to the limit, oldest first. */
|
|
157
347
|
entries: ConsoleEntry[];
|
|
348
|
+
/** How many there were, before the limit. */
|
|
349
|
+
total: number;
|
|
350
|
+
truncated: boolean;
|
|
158
351
|
}
|
|
159
352
|
/** A readable account of what a project's code wrote to the console, oldest first, with where each came from. */
|
|
160
|
-
export declare function describeConsole(result: ConsoleResponse): string;
|
|
353
|
+
export declare function describeConsole(result: ConsoleResponse): string;
|
|
354
|
+
export type { Edit, ExecResponse, OperationError, Screenshot };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as
|
|
1
|
+
export { t as call, n as describeAccessibility, r as describeComponents, i as describeConsole, a as describeExec, o as describeModes, s as describeProblems, c as describeProps, l as describeStatus, u as describeTokens, d as registry, f as setCaller } from "./client-Cf66-n3R.mjs";
|
|
@@ -4061,7 +4061,7 @@
|
|
|
4061
4061
|
"children": [
|
|
4062
4062
|
{
|
|
4063
4063
|
"$render": [
|
|
4064
|
-
"DropzoneArea isHovered: isFocused: isFocusVisible
|
|
4064
|
+
"DropzoneArea isHovered: isFocused: isFocusVisible…"
|
|
4065
4065
|
]
|
|
4066
4066
|
}
|
|
4067
4067
|
]
|
|
@@ -9023,7 +9023,7 @@
|
|
|
9023
9023
|
"children": [
|
|
9024
9024
|
{
|
|
9025
9025
|
"$render": [
|
|
9026
|
-
"Details Drag the handle up to expand this sheet to full
|
|
9026
|
+
"Details Drag the handle up to expand this sheet to full…"
|
|
9027
9027
|
]
|
|
9028
9028
|
}
|
|
9029
9029
|
]
|
|
@@ -9235,7 +9235,7 @@
|
|
|
9235
9235
|
"children": [
|
|
9236
9236
|
{
|
|
9237
9237
|
"$render": [
|
|
9238
|
-
"Sign up First Name: Last Name: Submit In an iPhone app
|
|
9238
|
+
"Sign up First Name: Last Name: Submit In an iPhone app…"
|
|
9239
9239
|
]
|
|
9240
9240
|
}
|
|
9241
9241
|
]
|
|
@@ -9365,7 +9365,7 @@
|
|
|
9365
9365
|
"children": [
|
|
9366
9366
|
{
|
|
9367
9367
|
"$render": [
|
|
9368
|
-
"Details Drag the handle up to expand this sheet to full
|
|
9368
|
+
"Details Drag the handle up to expand this sheet to full…"
|
|
9369
9369
|
]
|
|
9370
9370
|
}
|
|
9371
9371
|
]
|
|
@@ -9512,7 +9512,7 @@
|
|
|
9512
9512
|
"children": [
|
|
9513
9513
|
{
|
|
9514
9514
|
"$render": [
|
|
9515
|
-
"Details Drag the handle up to expand this sheet to full
|
|
9515
|
+
"Details Drag the handle up to expand this sheet to full…"
|
|
9516
9516
|
]
|
|
9517
9517
|
}
|
|
9518
9518
|
]
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
{
|
|
59
59
|
"component": "Accordion.Panel",
|
|
60
60
|
"children": [
|
|
61
|
-
"Base UI is a library of high-quality unstyled React
|
|
61
|
+
"Base UI is a library of high-quality unstyled React…"
|
|
62
62
|
]
|
|
63
63
|
}
|
|
64
64
|
]
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"parentsFrom": "example",
|
|
84
84
|
"sample": {
|
|
85
85
|
"children": [
|
|
86
|
-
"Base UI is a library of high-quality unstyled React
|
|
86
|
+
"Base UI is a library of high-quality unstyled React…"
|
|
87
87
|
]
|
|
88
88
|
},
|
|
89
89
|
"fingerprint": "a6e70d5d",
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
{
|
|
121
121
|
"component": "Accordion.Panel",
|
|
122
122
|
"children": [
|
|
123
|
-
"Standard shipping takes 3–5 business days.
|
|
123
|
+
"Standard shipping takes 3–5 business days."
|
|
124
124
|
]
|
|
125
125
|
}
|
|
126
126
|
]
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
{
|
|
143
143
|
"component": "Accordion.Panel",
|
|
144
144
|
"children": [
|
|
145
|
-
"You can return any item within 30 days of delivery.
|
|
145
|
+
"You can return any item within 30 days of delivery."
|
|
146
146
|
]
|
|
147
147
|
}
|
|
148
148
|
]
|
|
@@ -164,7 +164,7 @@
|
|
|
164
164
|
{
|
|
165
165
|
"component": "Accordion.Panel",
|
|
166
166
|
"children": [
|
|
167
|
-
"Yes, we ship to over 40 countries.
|
|
167
|
+
"Yes, we ship to over 40 countries."
|
|
168
168
|
]
|
|
169
169
|
}
|
|
170
170
|
]
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
{
|
|
187
187
|
"component": "Accordion.Panel",
|
|
188
188
|
"children": [
|
|
189
|
-
"Once your order ships, you’ll receive a tracking link by
|
|
189
|
+
"Once your order ships, you’ll receive a tracking link by…"
|
|
190
190
|
]
|
|
191
191
|
}
|
|
192
192
|
]
|
|
@@ -1705,7 +1705,7 @@
|
|
|
1705
1705
|
"Right click here"
|
|
1706
1706
|
]
|
|
1707
1707
|
},
|
|
1708
|
-
"Add to Library Add to Playlist Play Next Play Last Favorite
|
|
1708
|
+
"Add to Library Add to Playlist Play Next Play Last Favorite…"
|
|
1709
1709
|
]
|
|
1710
1710
|
},
|
|
1711
1711
|
"fingerprint": "163e37d4",
|
|
@@ -1996,7 +1996,7 @@
|
|
|
1996
1996
|
{
|
|
1997
1997
|
"component": "Dialog.Popup",
|
|
1998
1998
|
"children": [
|
|
1999
|
-
"Dialog This layout keeps the popup fully on screen while
|
|
1999
|
+
"Dialog This layout keeps the popup fully on screen while…",
|
|
2000
2000
|
"Close"
|
|
2001
2001
|
]
|
|
2002
2002
|
}
|
|
@@ -2088,11 +2088,11 @@
|
|
|
2088
2088
|
{
|
|
2089
2089
|
"component": "Drawer.Description",
|
|
2090
2090
|
"children": [
|
|
2091
|
-
"Review sign-in activity and update your security
|
|
2091
|
+
"Review sign-in activity and update your security…"
|
|
2092
2092
|
]
|
|
2093
2093
|
},
|
|
2094
|
-
"Passkeys enabled 2FA via authenticator app 3 signed-in
|
|
2095
|
-
"Advanced options Advanced This drawer is taller to
|
|
2094
|
+
"Passkeys enabled 2FA via authenticator app 3 signed-in…",
|
|
2095
|
+
"Advanced options Advanced This drawer is taller to…"
|
|
2096
2096
|
]
|
|
2097
2097
|
},
|
|
2098
2098
|
"fingerprint": "c413c506",
|
|
@@ -2115,7 +2115,7 @@
|
|
|
2115
2115
|
"parentsFrom": "example",
|
|
2116
2116
|
"sample": {
|
|
2117
2117
|
"children": [
|
|
2118
|
-
"This is a drawer that slides in from the side.
|
|
2118
|
+
"This is a drawer that slides in from the side."
|
|
2119
2119
|
]
|
|
2120
2120
|
},
|
|
2121
2121
|
"fingerprint": "beb84af4",
|
|
@@ -2134,7 +2134,7 @@
|
|
|
2134
2134
|
"parentsFrom": "example",
|
|
2135
2135
|
"sample": {
|
|
2136
2136
|
"children": [
|
|
2137
|
-
"Open drawer Notifications You are all caught up. Good job!
|
|
2137
|
+
"Open drawer Notifications You are all caught up. Good job!"
|
|
2138
2138
|
]
|
|
2139
2139
|
},
|
|
2140
2140
|
"fingerprint": "141c3ab0",
|
|
@@ -2181,11 +2181,11 @@
|
|
|
2181
2181
|
{
|
|
2182
2182
|
"component": "Drawer.Description",
|
|
2183
2183
|
"children": [
|
|
2184
|
-
"Review sign-in activity and update your security
|
|
2184
|
+
"Review sign-in activity and update your security…"
|
|
2185
2185
|
]
|
|
2186
2186
|
},
|
|
2187
|
-
"Passkeys enabled 2FA via authenticator app 3 signed-in
|
|
2188
|
-
"Advanced options Advanced This drawer is taller to
|
|
2187
|
+
"Passkeys enabled 2FA via authenticator app 3 signed-in…",
|
|
2188
|
+
"Advanced options Advanced This drawer is taller to…"
|
|
2189
2189
|
]
|
|
2190
2190
|
}
|
|
2191
2191
|
]
|
|
@@ -2251,7 +2251,7 @@
|
|
|
2251
2251
|
"visual": false,
|
|
2252
2252
|
"sample": {
|
|
2253
2253
|
"children": [
|
|
2254
|
-
"Open drawer Notifications You are all caught up. Good job!
|
|
2254
|
+
"Open drawer Notifications You are all caught up. Good job!"
|
|
2255
2255
|
]
|
|
2256
2256
|
},
|
|
2257
2257
|
"fingerprint": "a761e30b",
|
|
@@ -2417,11 +2417,11 @@
|
|
|
2417
2417
|
{
|
|
2418
2418
|
"component": "Drawer.Description",
|
|
2419
2419
|
"children": [
|
|
2420
|
-
"Review sign-in activity and update your security
|
|
2420
|
+
"Review sign-in activity and update your security…"
|
|
2421
2421
|
]
|
|
2422
2422
|
},
|
|
2423
|
-
"Passkeys enabled 2FA via authenticator app 3 signed-in
|
|
2424
|
-
"Advanced options Advanced This drawer is taller to
|
|
2423
|
+
"Passkeys enabled 2FA via authenticator app 3 signed-in…",
|
|
2424
|
+
"Advanced options Advanced This drawer is taller to…"
|
|
2425
2425
|
]
|
|
2426
2426
|
}
|
|
2427
2427
|
]
|
|
@@ -5909,8 +5909,8 @@
|
|
|
5909
5909
|
"parentsFrom": "example",
|
|
5910
5910
|
"sample": {
|
|
5911
5911
|
"children": [
|
|
5912
|
-
"Vernacular architecture is building done outside any
|
|
5913
|
-
"This type of architecture usually serves immediate, local
|
|
5912
|
+
"Vernacular architecture is building done outside any…",
|
|
5913
|
+
"This type of architecture usually serves immediate, local…"
|
|
5914
5914
|
]
|
|
5915
5915
|
},
|
|
5916
5916
|
"fingerprint": "1c72c9cc",
|
|
@@ -6030,8 +6030,8 @@
|
|
|
6030
6030
|
{
|
|
6031
6031
|
"component": "ScrollArea.Content",
|
|
6032
6032
|
"children": [
|
|
6033
|
-
"Vernacular architecture is building done outside any
|
|
6034
|
-
"This type of architecture usually serves immediate, local
|
|
6033
|
+
"Vernacular architecture is building done outside any…",
|
|
6034
|
+
"This type of architecture usually serves immediate, local…"
|
|
6035
6035
|
]
|
|
6036
6036
|
}
|
|
6037
6037
|
]
|
|
@@ -7259,7 +7259,7 @@
|
|
|
7259
7259
|
}
|
|
7260
7260
|
]
|
|
7261
7261
|
},
|
|
7262
|
-
"Workspace stats and activity. Milestones and deadlines.
|
|
7262
|
+
"Workspace stats and activity. Milestones and deadlines."
|
|
7263
7263
|
]
|
|
7264
7264
|
},
|
|
7265
7265
|
"fingerprint": "53a7c0df",
|