panelui-native 0.78.0 → 0.79.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/lib/module/components/map/index.js +63 -39
- package/lib/module/components/map/index.js.map +1 -1
- package/lib/module/components/map/map-children.js +54 -0
- package/lib/module/components/map/map-children.js.map +1 -0
- package/lib/module/components/map/maplibre.js +31 -3
- package/lib/module/components/map/maplibre.js.map +1 -1
- package/lib/module/components/markdown-editor/index.js +288 -34
- package/lib/module/components/markdown-editor/index.js.map +1 -1
- package/lib/module/components/markdown-editor/markdown-transforms.js +272 -9
- package/lib/module/components/markdown-editor/markdown-transforms.js.map +1 -1
- package/lib/module/components/marquee/index.js +119 -46
- package/lib/module/components/marquee/index.js.map +1 -1
- package/lib/module/components/panelside/index.js +162 -34
- package/lib/module/components/panelside/index.js.map +1 -1
- package/lib/module/components/progress-button/index.js +279 -52
- package/lib/module/components/progress-button/index.js.map +1 -1
- package/lib/module/components/progress-button/progress-button-hold.js +40 -6
- package/lib/module/components/progress-button/progress-button-hold.js.map +1 -1
- package/lib/module/components/theme-selector/index.js +239 -0
- package/lib/module/components/theme-selector/index.js.map +1 -0
- package/lib/module/components/theme-selector/theme-preview.js +320 -0
- package/lib/module/components/theme-selector/theme-preview.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/components/map/index.d.ts +8 -4
- package/lib/typescript/src/components/map/index.d.ts.map +1 -1
- package/lib/typescript/src/components/map/map-children.d.ts +41 -0
- package/lib/typescript/src/components/map/map-children.d.ts.map +1 -0
- package/lib/typescript/src/components/map/maplibre.d.ts +8 -4
- package/lib/typescript/src/components/map/maplibre.d.ts.map +1 -1
- package/lib/typescript/src/components/markdown-editor/index.d.ts +64 -5
- package/lib/typescript/src/components/markdown-editor/index.d.ts.map +1 -1
- package/lib/typescript/src/components/markdown-editor/markdown-transforms.d.ts +33 -5
- package/lib/typescript/src/components/markdown-editor/markdown-transforms.d.ts.map +1 -1
- package/lib/typescript/src/components/marquee/index.d.ts.map +1 -1
- package/lib/typescript/src/components/panelside/index.d.ts +79 -4
- package/lib/typescript/src/components/panelside/index.d.ts.map +1 -1
- package/lib/typescript/src/components/progress-button/index.d.ts +29 -13
- package/lib/typescript/src/components/progress-button/index.d.ts.map +1 -1
- package/lib/typescript/src/components/progress-button/progress-button-hold.d.ts +26 -6
- package/lib/typescript/src/components/progress-button/progress-button-hold.d.ts.map +1 -1
- package/lib/typescript/src/components/theme-selector/index.d.ts +107 -0
- package/lib/typescript/src/components/theme-selector/index.d.ts.map +1 -0
- package/lib/typescript/src/components/theme-selector/theme-preview.d.ts +32 -0
- package/lib/typescript/src/components/theme-selector/theme-preview.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +4 -3
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/map/index.tsx +63 -36
- package/src/components/map/map-children.ts +66 -0
- package/src/components/map/maplibre.ts +32 -4
- package/src/components/markdown-editor/index.tsx +413 -35
- package/src/components/markdown-editor/markdown-transforms.ts +274 -10
- package/src/components/marquee/index.tsx +128 -55
- package/src/components/panelside/index.tsx +179 -40
- package/src/components/progress-button/index.tsx +264 -45
- package/src/components/progress-button/progress-button-hold.ts +37 -6
- package/src/components/theme-selector/index.tsx +281 -0
- package/src/components/theme-selector/theme-preview.tsx +205 -0
- package/src/index.ts +15 -0
|
@@ -76,6 +76,26 @@ export function toggleWrap(text, selection, marker) {
|
|
|
76
76
|
}
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
|
+
|
|
80
|
+
/*
|
|
81
|
+
* A selection that crosses a line break is wrapped line by line.
|
|
82
|
+
*
|
|
83
|
+
* `**one\ntwo**` is not bold in any reader — an inline marker cannot span a
|
|
84
|
+
* paragraph break — so wrapping the whole span produces asterisks the writer
|
|
85
|
+
* can see and no emphasis they asked for. Each line gets its own pair, and
|
|
86
|
+
* blank lines are left alone rather than given an empty pair of markers.
|
|
87
|
+
*/
|
|
88
|
+
if (selected.includes('\n')) {
|
|
89
|
+
const wrapped = selected.split('\n').map(line => line.trim() === '' ? line : marker + line + marker).join('\n');
|
|
90
|
+
const next = text.slice(0, start) + wrapped + text.slice(end);
|
|
91
|
+
return {
|
|
92
|
+
text: next,
|
|
93
|
+
selection: {
|
|
94
|
+
start,
|
|
95
|
+
end: start + wrapped.length
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
}
|
|
79
99
|
const next = text.slice(0, start) + marker + selected + marker + text.slice(end);
|
|
80
100
|
|
|
81
101
|
// Nothing selected: the caret goes between the markers, which is where the
|
|
@@ -131,6 +151,64 @@ function replaceBlock(text, range, replacement) {
|
|
|
131
151
|
};
|
|
132
152
|
}
|
|
133
153
|
|
|
154
|
+
/**
|
|
155
|
+
* The same replacement, with the caret left where the writer's was.
|
|
156
|
+
*
|
|
157
|
+
* A line-level action applies to whole lines, but the writer's caret was in the
|
|
158
|
+
* middle of one of them, and handing back the whole block selected means the
|
|
159
|
+
* next thing they type replaces the list they just made. So the caret is put
|
|
160
|
+
* back at the same distance from the start of the block, shifted by however
|
|
161
|
+
* much the text before it grew.
|
|
162
|
+
*/
|
|
163
|
+
function replaceBlockKeepingCaret(text, range, replacement, selection) {
|
|
164
|
+
const next = text.slice(0, range.start) + replacement + text.slice(range.end);
|
|
165
|
+
const {
|
|
166
|
+
start,
|
|
167
|
+
end
|
|
168
|
+
} = normalise(text, selection);
|
|
169
|
+
|
|
170
|
+
// A real selection is kept as a selection over the same lines; only a caret
|
|
171
|
+
// is followed precisely.
|
|
172
|
+
if (start !== end) {
|
|
173
|
+
return {
|
|
174
|
+
text: next,
|
|
175
|
+
selection: {
|
|
176
|
+
start: range.start,
|
|
177
|
+
end: range.start + replacement.length
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
const before = text.slice(range.start, start);
|
|
182
|
+
const line = before.split('\n').length - 1;
|
|
183
|
+
const column = before.length - (before.lastIndexOf('\n') + 1);
|
|
184
|
+
const oldLines = text.slice(range.start, range.end).split('\n');
|
|
185
|
+
const newLines = replacement.split('\n');
|
|
186
|
+
const index = Math.min(line, newLines.length - 1);
|
|
187
|
+
const oldLine = oldLines[Math.min(line, oldLines.length - 1)] ?? '';
|
|
188
|
+
const newLine = newLines[index] ?? '';
|
|
189
|
+
|
|
190
|
+
/*
|
|
191
|
+
* The caret keeps its distance from the *end* of its line, not from the
|
|
192
|
+
* start of it.
|
|
193
|
+
*
|
|
194
|
+
* These actions change what is in front of the text: a caret held at the
|
|
195
|
+
* same column ends up inside the bullet it just gained, and after removing
|
|
196
|
+
* one it ends up two characters into the word. The distance to the end of
|
|
197
|
+
* the line is the thing a prefix cannot move.
|
|
198
|
+
*/
|
|
199
|
+
const fromEnd = Math.max(0, oldLine.length - column);
|
|
200
|
+
const nextColumn = Math.max(0, newLine.length - fromEnd);
|
|
201
|
+
const offsetToLine = newLines.slice(0, index).reduce((total, each) => total + each.length + 1, 0);
|
|
202
|
+
const at = range.start + offsetToLine + Math.min(nextColumn, newLine.length);
|
|
203
|
+
return {
|
|
204
|
+
text: next,
|
|
205
|
+
selection: {
|
|
206
|
+
start: at,
|
|
207
|
+
end: at
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
|
|
134
212
|
/**
|
|
135
213
|
* Puts `prefix` on the front of every line the selection touches, or takes it
|
|
136
214
|
* off if every one of them already has it.
|
|
@@ -143,7 +221,7 @@ export function toggleLinePrefix(text, selection, prefix) {
|
|
|
143
221
|
const lines = text.slice(range.start, range.end).split('\n');
|
|
144
222
|
const has = line => line.startsWith(prefix);
|
|
145
223
|
const next = lines.every(has) ? lines.map(line => line.slice(prefix.length)) : lines.map(line => has(line) ? line : prefix + line);
|
|
146
|
-
return
|
|
224
|
+
return replaceBlockKeepingCaret(text, range, next.join('\n'), selection);
|
|
147
225
|
}
|
|
148
226
|
|
|
149
227
|
/** How an ordered-list line starts, so it can be recognised and removed. */
|
|
@@ -161,7 +239,7 @@ export function toggleOrderedList(text, selection) {
|
|
|
161
239
|
const range = lineRange(text, selection);
|
|
162
240
|
const lines = text.slice(range.start, range.end).split('\n');
|
|
163
241
|
const next = lines.every(line => ORDERED.test(line)) ? lines.map(line => line.replace(ORDERED, '')) : lines.map((line, i) => `${i + 1}. ${line.replace(ORDERED, '')}`);
|
|
164
|
-
return
|
|
242
|
+
return replaceBlockKeepingCaret(text, range, next.join('\n'), selection);
|
|
165
243
|
}
|
|
166
244
|
|
|
167
245
|
/* -------------------------------------------------------------------------- *
|
|
@@ -218,20 +296,60 @@ export function insertLink(text, selection) {
|
|
|
218
296
|
* makes room for itself: a blank line before it when it is not already at the
|
|
219
297
|
* start of a paragraph, and one after it at the end.
|
|
220
298
|
*/
|
|
299
|
+
/**
|
|
300
|
+
* The whole fenced block the selection is inside, or `null`.
|
|
301
|
+
*
|
|
302
|
+
* Scanned from the top of the document rather than read off the lines the
|
|
303
|
+
* selection touches, because a caret sitting on a line of code touches one
|
|
304
|
+
* line and that line says nothing about the fence around it. Without this,
|
|
305
|
+
* pressing the code button inside a fence wrapped it in a second one.
|
|
306
|
+
*/
|
|
307
|
+
function enclosingFence(text, selection) {
|
|
308
|
+
const {
|
|
309
|
+
start,
|
|
310
|
+
end
|
|
311
|
+
} = normalise(text, selection);
|
|
312
|
+
let offset = 0;
|
|
313
|
+
let openedAt = null;
|
|
314
|
+
for (const line of text.split('\n')) {
|
|
315
|
+
const lineStart = offset;
|
|
316
|
+
const lineEnd = offset + line.length;
|
|
317
|
+
if (line.startsWith('```')) {
|
|
318
|
+
if (openedAt === null) openedAt = lineStart;else {
|
|
319
|
+
if (start >= openedAt && end <= lineEnd) return {
|
|
320
|
+
start: openedAt,
|
|
321
|
+
end: lineEnd
|
|
322
|
+
};
|
|
323
|
+
openedAt = null;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
offset = lineEnd + 1;
|
|
327
|
+
}
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
221
330
|
export function toggleFence(text, selection) {
|
|
331
|
+
const enclosing = enclosingFence(text, selection);
|
|
332
|
+
if (enclosing) {
|
|
333
|
+
const inner = text.slice(enclosing.start, enclosing.end).split('\n').slice(1, -1).join('\n');
|
|
334
|
+
return replaceBlock(text, enclosing, inner);
|
|
335
|
+
}
|
|
222
336
|
const range = lineRange(text, selection);
|
|
223
337
|
const block = text.slice(range.start, range.end);
|
|
224
|
-
const lines = block.split('\n');
|
|
225
|
-
if (lines.length >= 2 && lines[0]?.startsWith('```') && lines.at(-1) === '```') {
|
|
226
|
-
return replaceBlock(text, range, lines.slice(1, -1).join('\n'));
|
|
227
|
-
}
|
|
228
338
|
const leadIn = range.start > 0 && text[range.start - 1] !== '\n' ? '\n' : '';
|
|
229
|
-
|
|
339
|
+
// And a blank line after it, unless the fence already ends the document or
|
|
340
|
+
// the line below it is blank. A paragraph butted up against a closing fence
|
|
341
|
+
// is a paragraph some readers swallow into the code block.
|
|
342
|
+
const rest = text.slice(range.end);
|
|
343
|
+
const leadOut = rest === '' || rest.startsWith('\n\n') ? '' : '\n';
|
|
344
|
+
const opener = `${leadIn}\`\`\`\n`;
|
|
345
|
+
const fenced = `${opener}${block}\n\`\`\`${leadOut}`;
|
|
230
346
|
const result = replaceBlock(text, range, fenced);
|
|
231
347
|
|
|
232
348
|
// Inside the fence, on the line the code goes on — not around the whole
|
|
233
|
-
// block, which would be selecting the markers along with the content.
|
|
234
|
-
|
|
349
|
+
// block, which would be selecting the markers along with the content. The
|
|
350
|
+
// offset is the opener's own length rather than a written-down number, so it
|
|
351
|
+
// cannot drift from the string above it.
|
|
352
|
+
const inner = range.start + opener.length;
|
|
235
353
|
return {
|
|
236
354
|
text: result.text,
|
|
237
355
|
selection: {
|
|
@@ -240,4 +358,149 @@ export function toggleFence(text, selection) {
|
|
|
240
358
|
}
|
|
241
359
|
};
|
|
242
360
|
}
|
|
361
|
+
|
|
362
|
+
/* -------------------------------------------------------------------------- *
|
|
363
|
+
* Images
|
|
364
|
+
* -------------------------------------------------------------------------- */
|
|
365
|
+
|
|
366
|
+
/** Placeholder left where an image's description goes. */
|
|
367
|
+
export const IMAGE_PLACEHOLDER = 'description';
|
|
368
|
+
|
|
369
|
+
/**
|
|
370
|
+
* Inserts an image, and selects the part that still needs filling in.
|
|
371
|
+
*
|
|
372
|
+
* The description first, not the URL. An image with no alt text is the failure
|
|
373
|
+
* that actually happens, and the writer is far more likely to have the URL on
|
|
374
|
+
* the clipboard than the sentence describing what is in it — so the sentence is
|
|
375
|
+
* what the caret is left on.
|
|
376
|
+
*/
|
|
377
|
+
export function insertImage(text, selection) {
|
|
378
|
+
const {
|
|
379
|
+
start,
|
|
380
|
+
end
|
|
381
|
+
} = normalise(text, selection);
|
|
382
|
+
const label = text.slice(start, end);
|
|
383
|
+
const alt = label || IMAGE_PLACEHOLDER;
|
|
384
|
+
const inserted = ``;
|
|
385
|
+
const next = text.slice(0, start) + inserted + text.slice(end);
|
|
386
|
+
|
|
387
|
+
// With a description already written, what is missing is the target.
|
|
388
|
+
if (label) {
|
|
389
|
+
const from = start + label.length + 4; // `([-*+])(\s+)(.*)$/;
|
|
414
|
+
/** A numbered line, split the same way. */
|
|
415
|
+
const NUMBERED = /^(\s*)(\d+)\.(\s+)(.*)$/;
|
|
416
|
+
|
|
417
|
+
/**
|
|
418
|
+
* What Return should do inside a list.
|
|
419
|
+
*
|
|
420
|
+
* Returns `null` when the caret is not on a list line, which is the signal to
|
|
421
|
+
* let the newline happen normally. Otherwise it either starts the next item or,
|
|
422
|
+
* on an item with nothing in it, ends the list — because a writer pressing
|
|
423
|
+
* Return on an empty bullet is telling you they have run out of items, and the
|
|
424
|
+
* alternative is a trail of empty bullets they have to delete by hand.
|
|
425
|
+
*/
|
|
426
|
+
export function continueList(text, selection) {
|
|
427
|
+
const {
|
|
428
|
+
start,
|
|
429
|
+
end
|
|
430
|
+
} = normalise(text, selection);
|
|
431
|
+
// Only a caret continues a list. With a range selected, Return replaces it,
|
|
432
|
+
// and guessing which end of it the writer meant is worse than not guessing.
|
|
433
|
+
if (start !== end) return null;
|
|
434
|
+
const lineStart = text.lastIndexOf('\n', start - 1) + 1;
|
|
435
|
+
const line = text.slice(lineStart, start);
|
|
436
|
+
const bullet = BULLET.exec(line);
|
|
437
|
+
const numbered = bullet ? null : NUMBERED.exec(line);
|
|
438
|
+
if (!bullet && !numbered) return null;
|
|
439
|
+
const [, indent = '', marker = '', gap = ' ', content = ''] = bullet ?? numbered;
|
|
440
|
+
|
|
441
|
+
// An item with nothing in it ends the list: the line becomes empty and the
|
|
442
|
+
// caret stays on it, ready for an ordinary paragraph.
|
|
443
|
+
if (content.trim() === '') {
|
|
444
|
+
const next = text.slice(0, lineStart) + text.slice(start);
|
|
445
|
+
return {
|
|
446
|
+
text: next,
|
|
447
|
+
selection: {
|
|
448
|
+
start: lineStart,
|
|
449
|
+
end: lineStart
|
|
450
|
+
}
|
|
451
|
+
};
|
|
452
|
+
}
|
|
453
|
+
const opener = numbered ? `${indent}${Number(marker) + 1}.${gap}` : `${indent}${marker}${gap}`;
|
|
454
|
+
const inserted = `\n${opener}`;
|
|
455
|
+
const next = text.slice(0, start) + inserted + text.slice(start);
|
|
456
|
+
const at = start + inserted.length;
|
|
457
|
+
return {
|
|
458
|
+
text: next,
|
|
459
|
+
selection: {
|
|
460
|
+
start: at,
|
|
461
|
+
end: at
|
|
462
|
+
}
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
/* -------------------------------------------------------------------------- *
|
|
467
|
+
* What is already applied
|
|
468
|
+
* -------------------------------------------------------------------------- */
|
|
469
|
+
|
|
470
|
+
/**
|
|
471
|
+
* Whether an inline marker is already around the caret or the selection.
|
|
472
|
+
*
|
|
473
|
+
* Both arrangements count, for the same reason `toggleWrap` accepts both: the
|
|
474
|
+
* writer may have selected `**bold**` or selected `bold` inside it, and with
|
|
475
|
+
* nothing selected at all the caret may simply be sitting between the markers.
|
|
476
|
+
*/
|
|
477
|
+
export function hasWrap(text, selection, marker) {
|
|
478
|
+
const {
|
|
479
|
+
start,
|
|
480
|
+
end
|
|
481
|
+
} = normalise(text, selection);
|
|
482
|
+
const selected = text.slice(start, end);
|
|
483
|
+
const len = marker.length;
|
|
484
|
+
if (selected.length >= len * 2 && selected.startsWith(marker) && selected.endsWith(marker)) {
|
|
485
|
+
return true;
|
|
486
|
+
}
|
|
487
|
+
return text.slice(Math.max(0, start - len), start) === marker && text.slice(end, end + len) === marker;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
/** Whether every line the selection touches already starts with `prefix`. */
|
|
491
|
+
export function hasLinePrefix(text, selection, prefix) {
|
|
492
|
+
const range = lineRange(text, selection);
|
|
493
|
+
return text.slice(range.start, range.end).split('\n').every(line => line.startsWith(prefix));
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
/** Whether every line the selection touches is already numbered. */
|
|
497
|
+
export function hasOrderedList(text, selection) {
|
|
498
|
+
const range = lineRange(text, selection);
|
|
499
|
+
return text.slice(range.start, range.end).split('\n').every(line => ORDERED.test(line));
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
/** Whether the selection is inside a fence. */
|
|
503
|
+
export function hasFence(text, selection) {
|
|
504
|
+
return enclosingFence(text, selection) !== null;
|
|
505
|
+
}
|
|
243
506
|
//# sourceMappingURL=markdown-transforms.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["normalise","text","selection","a","Math","max","min","length","start","b","end","toggleWrap","marker","selected","slice","len","startsWith","endsWith","inner","before","after","next","lineRange","from","lastIndexOf","lineEnd","indexOf","replaceBlock","range","replacement","toggleLinePrefix","prefix","lines","split","has","line","every","map","join","ORDERED","toggleOrderedList","test","replace","i","LINK_PLACEHOLDER","insertLink","label","inserted","toggleFence","block","at","leadIn","fenced","result"],"sourceRoot":"../../../../src","sources":["components/markdown-editor/markdown-transforms.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["normalise","text","selection","a","Math","max","min","length","start","b","end","toggleWrap","marker","selected","slice","len","startsWith","endsWith","inner","before","after","includes","wrapped","split","map","line","trim","join","next","lineRange","from","lastIndexOf","lineEnd","indexOf","replaceBlock","range","replacement","replaceBlockKeepingCaret","column","oldLines","newLines","index","oldLine","newLine","fromEnd","nextColumn","offsetToLine","reduce","total","each","at","toggleLinePrefix","prefix","lines","has","every","ORDERED","toggleOrderedList","test","replace","i","LINK_PLACEHOLDER","insertLink","label","inserted","enclosingFence","offset","openedAt","lineStart","toggleFence","enclosing","block","leadIn","rest","leadOut","opener","fenced","result","IMAGE_PLACEHOLDER","insertImage","alt","BULLET","NUMBERED","continueList","bullet","exec","numbered","indent","gap","content","Number","hasWrap","hasLinePrefix","hasOrderedList","hasFence"],"sourceRoot":"../../../../src","sources":["components/markdown-editor/markdown-transforms.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
* Screen readers get one copy. The rest are duplicates of content already
|
|
47
47
|
* announced, and hearing a sponsor list four times over is not thoroughness.
|
|
48
48
|
*/
|
|
49
|
-
import { createContext, useContext, useEffect, useMemo, useState } from 'react';
|
|
49
|
+
import { createContext, useCallback, useContext, useEffect, useId, useMemo, useState } from 'react';
|
|
50
50
|
import { Platform, Pressable, ScrollView, StyleSheet, View } from 'react-native';
|
|
51
|
-
import Animated, { cancelAnimation, Easing, useAnimatedStyle, useReducedMotion, useSharedValue, withRepeat, withTiming } from 'react-native-reanimated';
|
|
51
|
+
import Animated, { cancelAnimation, Easing, useAnimatedStyle, useReducedMotion, useSharedValue, withRepeat, withSequence, withTiming } from 'react-native-reanimated';
|
|
52
52
|
import { useDirectionSign } from "../../hooks/use-direction.js";
|
|
53
53
|
import { Text } from "../../primitives/text.js";
|
|
54
54
|
import { cn } from "../../utils/cn.js";
|
|
@@ -110,14 +110,46 @@ function MarqueeRoot({
|
|
|
110
110
|
}, (_, index) => index);
|
|
111
111
|
}, [layout.count]);
|
|
112
112
|
const offset = useSharedValue(0);
|
|
113
|
+
|
|
114
|
+
/*
|
|
115
|
+
* A re-measure is the only thing allowed to move the content back to the
|
|
116
|
+
* start. The loop length has changed, so an offset taken against the old one
|
|
117
|
+
* no longer means anything.
|
|
118
|
+
*/
|
|
113
119
|
useEffect(() => {
|
|
114
120
|
cancelAnimation(offset);
|
|
115
121
|
offset.value = 0;
|
|
122
|
+
}, [offset, period]);
|
|
123
|
+
|
|
124
|
+
/*
|
|
125
|
+
* Pausing freezes where it is. `cancelAnimation` already leaves the shared
|
|
126
|
+
* value at whatever it had reached, so stopping is simply not starting again
|
|
127
|
+
* — the content stays exactly where the reader stopped it, which is the
|
|
128
|
+
* whole point of a pause control on something they are trying to read.
|
|
129
|
+
*
|
|
130
|
+
* Resuming picks up from there. The first leg is shortened to the distance
|
|
131
|
+
* actually left, or the lap after a pause would run at a fraction of the
|
|
132
|
+
* speed every other lap runs at.
|
|
133
|
+
*/
|
|
134
|
+
useEffect(() => {
|
|
135
|
+
cancelAnimation(offset);
|
|
116
136
|
if (reducedMotion || !moving || period <= 0 || speed <= 0) return undefined;
|
|
117
|
-
|
|
118
|
-
|
|
137
|
+
const cycle = period / speed * 1000;
|
|
138
|
+
const from = (offset.value % period + period) % period;
|
|
139
|
+
const remaining = period - from;
|
|
140
|
+
offset.value = from;
|
|
141
|
+
offset.value = withSequence(withTiming(period, {
|
|
142
|
+
duration: cycle * (remaining / period),
|
|
119
143
|
easing: Easing.linear
|
|
120
|
-
}),
|
|
144
|
+
}),
|
|
145
|
+
// Back to the seam in no time at all. The state at `period` is the state
|
|
146
|
+
// at `0`, so this is a bookkeeping step rather than a visible one.
|
|
147
|
+
withTiming(0, {
|
|
148
|
+
duration: 0
|
|
149
|
+
}), withRepeat(withTiming(period, {
|
|
150
|
+
duration: cycle,
|
|
151
|
+
easing: Easing.linear
|
|
152
|
+
}), -1, false));
|
|
121
153
|
return () => cancelAnimation(offset);
|
|
122
154
|
}, [offset, period, moving, reducedMotion, speed]);
|
|
123
155
|
const trackStyle = useAnimatedStyle(() => {
|
|
@@ -149,6 +181,24 @@ function MarqueeRoot({
|
|
|
149
181
|
setContent(horizontal ? width : height);
|
|
150
182
|
};
|
|
151
183
|
|
|
184
|
+
/*
|
|
185
|
+
* Whether there is motion here at all: content that measured, a speed to
|
|
186
|
+
* travel it at, and a `playing` that has not already stopped it from
|
|
187
|
+
* outside. A control offering to pause a still marquee is the same lie as a
|
|
188
|
+
* disabled button with no reason on it.
|
|
189
|
+
*/
|
|
190
|
+
const live = playing && !reducedMotion && period > 0 && speed > 0;
|
|
191
|
+
|
|
192
|
+
// Reported to the group, if there is one, so its single control can be
|
|
193
|
+
// decided the same way this one's is.
|
|
194
|
+
const id = useId();
|
|
195
|
+
const report = group?.report;
|
|
196
|
+
useEffect(() => {
|
|
197
|
+
if (!report) return undefined;
|
|
198
|
+
report(id, live);
|
|
199
|
+
return () => report(id, false);
|
|
200
|
+
}, [report, id, live]);
|
|
201
|
+
|
|
152
202
|
// Nothing to loop, so nothing to clip or clone: render the content plainly
|
|
153
203
|
// and let it sit where it falls.
|
|
154
204
|
if (reducedMotion) {
|
|
@@ -161,48 +211,58 @@ function MarqueeRoot({
|
|
|
161
211
|
});
|
|
162
212
|
}
|
|
163
213
|
return /*#__PURE__*/_jsxs(View, {
|
|
164
|
-
className: cn('
|
|
214
|
+
className: cn('gap-3', className),
|
|
165
215
|
style: style,
|
|
166
|
-
onLayout:
|
|
216
|
+
onLayout: onLayout,
|
|
167
217
|
...props,
|
|
168
|
-
children: [/*#__PURE__*/
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
children:
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
style: [StyleSheet.absoluteFill, trackStyle],
|
|
182
|
-
pointerEvents: "box-none",
|
|
183
|
-
children: copies.map(index => {
|
|
184
|
-
// Index 1 is the copy that starts flush with the container's edge,
|
|
185
|
-
// and it is the one a screen reader is given.
|
|
186
|
-
const spoken = index === 1;
|
|
187
|
-
const at = (index - 1) * period;
|
|
188
|
-
return /*#__PURE__*/_jsx(InertView, {
|
|
189
|
-
style: [styles.copy, horizontal ? {
|
|
190
|
-
left: at
|
|
191
|
-
} : {
|
|
192
|
-
top: at
|
|
193
|
-
}],
|
|
194
|
-
pointerEvents: spoken ? 'box-none' : 'none',
|
|
195
|
-
inert: Platform.OS === 'web' && !spoken ? true : undefined,
|
|
196
|
-
"aria-hidden": !spoken,
|
|
197
|
-
accessibilityElementsHidden: !spoken,
|
|
198
|
-
importantForAccessibility: spoken ? 'auto' : 'no-hide-descendants',
|
|
218
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
219
|
+
className: "flex-1 overflow-hidden",
|
|
220
|
+
onLayout: onContainerLayout,
|
|
221
|
+
children: [/*#__PURE__*/_jsx(ScrollView, {
|
|
222
|
+
horizontal: horizontal,
|
|
223
|
+
scrollEnabled: false,
|
|
224
|
+
style: styles.measure,
|
|
225
|
+
pointerEvents: "none",
|
|
226
|
+
accessibilityElementsHidden: true,
|
|
227
|
+
importantForAccessibility: "no-hide-descendants",
|
|
228
|
+
children: /*#__PURE__*/_jsx(InertView, {
|
|
229
|
+
inert: Platform.OS === 'web' ? true : undefined,
|
|
230
|
+
onLayout: onContentLayout,
|
|
199
231
|
children: children
|
|
200
|
-
}
|
|
201
|
-
})
|
|
202
|
-
|
|
232
|
+
})
|
|
233
|
+
}), /*#__PURE__*/_jsx(Animated.View, {
|
|
234
|
+
style: [StyleSheet.absoluteFill, trackStyle],
|
|
235
|
+
pointerEvents: "box-none",
|
|
236
|
+
children: copies.map(index => {
|
|
237
|
+
// Index 1 is the copy that starts flush with the container's edge,
|
|
238
|
+
// and it is the one a screen reader is given.
|
|
239
|
+
const spoken = index === 1;
|
|
240
|
+
const at = (index - 1) * period;
|
|
241
|
+
return /*#__PURE__*/_jsx(InertView, {
|
|
242
|
+
style: [styles.copy, horizontal ? {
|
|
243
|
+
left: at
|
|
244
|
+
} : {
|
|
245
|
+
top: at
|
|
246
|
+
}],
|
|
247
|
+
pointerEvents: spoken ? 'box-none' : 'none',
|
|
248
|
+
inert: Platform.OS === 'web' && !spoken ? true : undefined,
|
|
249
|
+
"aria-hidden": !spoken,
|
|
250
|
+
accessibilityElementsHidden: !spoken,
|
|
251
|
+
importantForAccessibility: spoken ? 'auto' : 'no-hide-descendants',
|
|
252
|
+
children: children
|
|
253
|
+
}, index);
|
|
254
|
+
})
|
|
255
|
+
})]
|
|
256
|
+
}), showControl && live ? /*#__PURE__*/_jsx(Pressable, {
|
|
203
257
|
accessibilityRole: "button",
|
|
204
|
-
accessibilityLabel: userPaused ? playLabel : pauseLabel
|
|
205
|
-
|
|
258
|
+
accessibilityLabel: userPaused ? playLabel : pauseLabel
|
|
259
|
+
/*
|
|
260
|
+
* Below the content, in flow, the way a group's control already is.
|
|
261
|
+
* Floating over the track it was clipped by the track's own
|
|
262
|
+
* `overflow-hidden` — a 48pt target on a strip of badges half that
|
|
263
|
+
* tall — and it covered the content it was there to let you read.
|
|
264
|
+
*/,
|
|
265
|
+
className: "min-h-12 self-end items-center justify-center rounded-full border border-border bg-background px-4",
|
|
206
266
|
onPress: () => {
|
|
207
267
|
const next = !userPaused;
|
|
208
268
|
setUserPaused(next);
|
|
@@ -248,15 +308,28 @@ function MarqueeGroup({
|
|
|
248
308
|
...props
|
|
249
309
|
}) {
|
|
250
310
|
const [userPaused, setUserPaused] = useState(false);
|
|
311
|
+
const [liveRows, setLiveRows] = useState(() => new Set());
|
|
251
312
|
const reducedMotion = useReducedMotion();
|
|
313
|
+
|
|
314
|
+
// Each marquee inside says whether it has a loop to stop, and the group's
|
|
315
|
+
// control is drawn only if at least one of them does.
|
|
316
|
+
const report = useCallback((id, live) => {
|
|
317
|
+
setLiveRows(current => {
|
|
318
|
+
if (current.has(id) === live) return current;
|
|
319
|
+
const next = new Set(current);
|
|
320
|
+
if (live) next.add(id);else next.delete(id);
|
|
321
|
+
return next;
|
|
322
|
+
});
|
|
323
|
+
}, []);
|
|
252
324
|
const value = useMemo(() => ({
|
|
253
|
-
paused: userPaused
|
|
254
|
-
|
|
325
|
+
paused: userPaused,
|
|
326
|
+
report
|
|
327
|
+
}), [userPaused, report]);
|
|
255
328
|
|
|
256
329
|
// Nothing is moving, so there is nothing to stop. The control is not hidden
|
|
257
330
|
// to save space — offering to pause content that is already still is the
|
|
258
331
|
// same lie as a disabled button with no reason on it.
|
|
259
|
-
const showControl = showPauseControl && playing && !reducedMotion;
|
|
332
|
+
const showControl = showPauseControl && playing && !reducedMotion && liveRows.size > 0;
|
|
260
333
|
return /*#__PURE__*/_jsx(MarqueeGroupContext.Provider, {
|
|
261
334
|
value: value,
|
|
262
335
|
children: /*#__PURE__*/_jsxs(View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","useContext","useEffect","useMemo","useState","Platform","Pressable","ScrollView","StyleSheet","View","Animated","cancelAnimation","Easing","useAnimatedStyle","useReducedMotion","useSharedValue","withRepeat","withTiming","useDirectionSign","Text","cn","DEFAULT_MARQUEE_SPEED","marqueeCopyCount","normalizeMarqueeSpeed","jsx","_jsx","jsxs","_jsxs","InertView","MarqueeGroupContext","MarqueeRoot","className","children","speed","speedProp","spacing","direction","reverse","playing","showPauseControl","pauseLabel","playLabel","onPlayingChange","style","onLayout","props","horizontal","reducedMotion","sign","flip","viewport","setViewport","content","setContent","userPaused","setUserPaused","group","showControl","moving","paused","layout","period","copies","Array","from","length","count","_","index","offset","value","undefined","duration","easing","linear","trackStyle","travel","transform","translateX","translateY","onContainerLayout","event","width","height","nativeEvent","onContentLayout","scrollEnabled","styles","measure","pointerEvents","accessibilityElementsHidden","importantForAccessibility","inert","OS","absoluteFill","map","spoken","at","copy","left","top","accessibilityRole","accessibilityLabel","onPress","next","MarqueeGroup","Provider","displayName","Marquee","Object","assign","Group","create","opacity","zIndex","position"],"sourceRoot":"../../../../src","sources":["components/marquee/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createContext","useCallback","useContext","useEffect","useId","useMemo","useState","Platform","Pressable","ScrollView","StyleSheet","View","Animated","cancelAnimation","Easing","useAnimatedStyle","useReducedMotion","useSharedValue","withRepeat","withSequence","withTiming","useDirectionSign","Text","cn","DEFAULT_MARQUEE_SPEED","marqueeCopyCount","normalizeMarqueeSpeed","jsx","_jsx","jsxs","_jsxs","InertView","MarqueeGroupContext","MarqueeRoot","className","children","speed","speedProp","spacing","direction","reverse","playing","showPauseControl","pauseLabel","playLabel","onPlayingChange","style","onLayout","props","horizontal","reducedMotion","sign","flip","viewport","setViewport","content","setContent","userPaused","setUserPaused","group","showControl","moving","paused","layout","period","copies","Array","from","length","count","_","index","offset","value","undefined","cycle","remaining","duration","easing","linear","trackStyle","travel","transform","translateX","translateY","onContainerLayout","event","width","height","nativeEvent","onContentLayout","live","id","report","scrollEnabled","styles","measure","pointerEvents","accessibilityElementsHidden","importantForAccessibility","inert","OS","absoluteFill","map","spoken","at","copy","left","top","accessibilityRole","accessibilityLabel","onPress","next","MarqueeGroup","liveRows","setLiveRows","Set","current","has","add","delete","size","Provider","displayName","Marquee","Object","assign","Group","create","opacity","zIndex","position"],"sourceRoot":"../../../../src","sources":["components/marquee/index.tsx"],"mappings":"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","ignoreList":[]}
|