panelui-native 0.99.0 → 0.101.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.
Files changed (46) hide show
  1. package/README.md +2 -0
  2. package/lib/module/components/animated-badge/index.js +24 -2
  3. package/lib/module/components/animated-badge/index.js.map +1 -1
  4. package/lib/module/components/bump-chart/index.js +1236 -0
  5. package/lib/module/components/bump-chart/index.js.map +1 -0
  6. package/lib/module/components/compare/index.js +576 -0
  7. package/lib/module/components/compare/index.js.map +1 -0
  8. package/lib/module/components/mirror-area-chart/index.js +1113 -0
  9. package/lib/module/components/mirror-area-chart/index.js.map +1 -0
  10. package/lib/module/components/sankey-chart/index.js +933 -0
  11. package/lib/module/components/sankey-chart/index.js.map +1 -0
  12. package/lib/module/components/sankey-chart/sankey-layout.js +530 -0
  13. package/lib/module/components/sankey-chart/sankey-layout.js.map +1 -0
  14. package/lib/module/icons/index.js +15 -3
  15. package/lib/module/icons/index.js.map +1 -1
  16. package/lib/module/index.js +4 -0
  17. package/lib/module/index.js.map +1 -1
  18. package/lib/module/utils/chart.js +101 -0
  19. package/lib/module/utils/chart.js.map +1 -1
  20. package/lib/typescript/src/components/animated-badge/index.d.ts +5 -0
  21. package/lib/typescript/src/components/animated-badge/index.d.ts.map +1 -1
  22. package/lib/typescript/src/components/bump-chart/index.d.ts +267 -0
  23. package/lib/typescript/src/components/bump-chart/index.d.ts.map +1 -0
  24. package/lib/typescript/src/components/compare/index.d.ts +183 -0
  25. package/lib/typescript/src/components/compare/index.d.ts.map +1 -0
  26. package/lib/typescript/src/components/mirror-area-chart/index.d.ts +263 -0
  27. package/lib/typescript/src/components/mirror-area-chart/index.d.ts.map +1 -0
  28. package/lib/typescript/src/components/sankey-chart/index.d.ts +307 -0
  29. package/lib/typescript/src/components/sankey-chart/index.d.ts.map +1 -0
  30. package/lib/typescript/src/components/sankey-chart/sankey-layout.d.ts +107 -0
  31. package/lib/typescript/src/components/sankey-chart/sankey-layout.d.ts.map +1 -0
  32. package/lib/typescript/src/icons/index.d.ts.map +1 -1
  33. package/lib/typescript/src/index.d.ts +4 -0
  34. package/lib/typescript/src/index.d.ts.map +1 -1
  35. package/lib/typescript/src/utils/chart.d.ts +40 -0
  36. package/lib/typescript/src/utils/chart.d.ts.map +1 -1
  37. package/package.json +1 -1
  38. package/src/components/animated-badge/index.tsx +35 -2
  39. package/src/components/bump-chart/index.tsx +1455 -0
  40. package/src/components/compare/index.tsx +650 -0
  41. package/src/components/mirror-area-chart/index.tsx +1333 -0
  42. package/src/components/sankey-chart/index.tsx +1165 -0
  43. package/src/components/sankey-chart/sankey-layout.ts +645 -0
  44. package/src/icons/index.tsx +20 -6
  45. package/src/index.ts +62 -0
  46. package/src/utils/chart.ts +116 -0
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Children","createContext","forwardRef","isValidElement","useContext","useEffect","useImperativeHandle","useMemo","useRef","useState","Platform","Pressable","View","Animated","Easing","useAnimatedProps","useDerivedValue","useReducedMotion","useSharedValue","withTiming","Svg","G","Path","Rect","useCSSVariable","ChartAccessibilityData","Text","compactNumber","flowPath","seriesColorAt","useSeriesColor","cn","useDirection","useSkeletonHandoff","sankeyLayout","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","AnimatedPath","createAnimatedComponent","AnimatedRect","AnimatedG","DEFAULT_HEIGHT","DEFAULT_NODE_WIDTH","DEFAULT_NODE_PADDING","DEFAULT_ITERATIONS","CURVE","LINK_OPACITY","LINK_ACTIVE_OPACITY","LINK_DIM_OPACITY","DEFAULT_DURATION","STAGGER","SELECT_DURATION","LABEL_GAP","MIN_TARGET","SKELETON_COLUMNS","HIDDEN","OS","accessibilityElementsHidden","importantForAccessibility","SankeyChartContext","useChart","component","context","Error","useSankeyChart","nodes","layout","activeId","placed","find","node","id","undefined","activeNode","activeValue","incoming","outgoing","position","indexOf","link","links","target","value","source","SankeyChartRoot","className","height","nodeWidth","nodePadding","align","iterations","curve","color","animationDuration","staggerDelay","status","activeIdProp","onActiveIdChange","onDropLinks","accessibilityLabel","accessibilityHint","accessibilityLabelForDatum","onAccessibilityDatumPress","children","props","ref","width","setWidth","internalActive","setInternalActive","reveal","reducedMotion","direction","controlled","setActiveId","mirrored","length","map","x0","x1","dropped","c1","c2","c3","c4","c5","palette","colors","index","labelFor","names","Map","label","get","stagger","Math","max","columns","total","windows","Array","from","_","column","to","playReveal","duration","easing","linear","loading","revealed","current","replay","onLayout","event","next","round","nativeEvent","slots","svg","overlay","header","footer","labelled","forEach","child","slot","type","displayName","push","ChildSlot","Provider","style","pointerEvents","chart","data","disabled","valueOf","placedNode","progress","clock","range","raw","clamped","SankeyChartLinks","opacity","activeOpacity","dimOpacity","touching","window","layer","Ribbon","cy0","y0","cy1","y1","thickness","fill","input","settled","animatedProps","grown","d","fillOpacity","SankeyChartNodes","radius","NodeBar","x","extent","centre","y","rx","SankeyChartLabels","formatValue","showValue","minHeight","format","edges","includes","sort","a","b","nextEdge","edge","previousEdge","found","datum","after","before","trailing","name","selected","slack","top","min","accessibilityRole","accessibilityState","hitSlop","bottom","onPress","justifyContent","left","alignItems","size","weight","numberOfLines","textAlign","muted","SankeyChartTooltip","CARD","SankeyChartSkeleton","token","mounted","shape","bar","step","band","i","ribbons","SankeyChartHeader","title","caption","SankeyChart","Object","assign","Header","Links","Nodes","Labels","Tooltip","Skeleton"],"sourceRoot":"../../../../src","sources":["components/sankey-chart/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,530 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Where a flow diagram's nodes and ribbons go.
5
+ *
6
+ * Kept apart from the component for the same reason the splitter's maths is:
7
+ * it is the part with answers that can be checked, and a test that has to
8
+ * mount a chart to check them is a test nobody writes twice.
9
+ *
10
+ * ## The problem the layout is solving
11
+ *
12
+ * A node's column is decided by the flow, not by the caller — a stage that
13
+ * receives from another has to be drawn after it or the ribbon runs backwards.
14
+ * Its height is its value. Neither of those is a choice. What is left over is
15
+ * the *order within a column*, and that is the whole difficulty: the same graph
16
+ * drawn in two orders is the same numbers with a different number of crossings,
17
+ * and crossings are the only thing that makes one of these unreadable.
18
+ *
19
+ * There is no cheap exact answer — minimising crossings is the kind of problem
20
+ * that is only solved by trying — so the order is settled by relaxation. Every
21
+ * node is pulled towards the average height of what it connects to, the pull
22
+ * weakens each round, and nodes that end up overlapping are pushed apart. Six
23
+ * rounds is where the picture stops visibly improving.
24
+ *
25
+ * ## Why it never throws
26
+ *
27
+ * A flow that loops back on itself has no left-to-right reading at all, and the
28
+ * textbook answer is to refuse the graph. A chart cannot refuse: the data is
29
+ * usually arriving from somewhere nobody in the room controls, and a screen
30
+ * that crashes on a bad row is worse than one that draws the rows it can. So a
31
+ * link that closes a loop is dropped, counted, and reported on the layout —
32
+ * the caller can say so, and the rest of the diagram is still true.
33
+ */
34
+
35
+ /** Which column a node is pushed into when the flow leaves a choice. */
36
+
37
+ const EMPTY = {
38
+ nodes: [],
39
+ links: [],
40
+ columns: 0,
41
+ dropped: 0
42
+ };
43
+
44
+ /** The most of the height the gaps in one column may take between them. */
45
+ const MAX_PADDING_SHARE = 0.5;
46
+ function ascendingBreadth(a, b) {
47
+ return a.y0 - b.y0;
48
+ }
49
+ function ascendingSourceBreadth(a, b) {
50
+ return ascendingBreadth(a.source, b.source) || a.index - b.index;
51
+ }
52
+ function ascendingTargetBreadth(a, b) {
53
+ return ascendingBreadth(a.target, b.target) || a.index - b.index;
54
+ }
55
+ function sumValues(links) {
56
+ let total = 0;
57
+ for (const link of links) total += link.value;
58
+ return total;
59
+ }
60
+
61
+ /**
62
+ * The links worth drawing, with the ones that close a loop taken out.
63
+ *
64
+ * Depth-first, colouring a node grey while it is on the stack: a link to a grey
65
+ * node is a link back into the run currently being walked, which is the
66
+ * definition of a loop. Dropping that one link is the smallest cut that breaks
67
+ * it, and it keeps every other link in the cycle — so a diagram of mostly-good
68
+ * data loses one ribbon rather than a whole branch.
69
+ *
70
+ * Iterative rather than recursive: a deep chain of stages is ordinary data, and
71
+ * a blown call stack is not an acceptable failure for one.
72
+ */
73
+ function withoutCycles(nodes, links) {
74
+ const WHITE = 0;
75
+ const GREY = 1;
76
+ const BLACK = 2;
77
+ const state = new Uint8Array(nodes.length);
78
+ const back = new Set();
79
+ for (const root of nodes) {
80
+ if (state[root.slot] !== WHITE) continue;
81
+ // Each frame is a node and how far through its outgoing links we are.
82
+ const stack = [{
83
+ node: root,
84
+ cursor: 0
85
+ }];
86
+ state[root.slot] = GREY;
87
+ while (stack.length) {
88
+ const frame = stack[stack.length - 1];
89
+ const outgoing = frame.node.sourceLinks;
90
+ if (frame.cursor >= outgoing.length) {
91
+ state[frame.node.slot] = BLACK;
92
+ stack.pop();
93
+ continue;
94
+ }
95
+ const link = outgoing[frame.cursor];
96
+ frame.cursor += 1;
97
+ if (back.has(link.index)) continue;
98
+ const next = link.target;
99
+ if (state[next.slot] === GREY) {
100
+ back.add(link.index);
101
+ } else if (state[next.slot] === WHITE) {
102
+ state[next.slot] = GREY;
103
+ stack.push({
104
+ node: next,
105
+ cursor: 0
106
+ });
107
+ }
108
+ }
109
+ }
110
+ if (!back.size) return {
111
+ kept: links,
112
+ dropped: 0
113
+ };
114
+ return {
115
+ kept: links.filter(link => !back.has(link.index)),
116
+ dropped: back.size
117
+ };
118
+ }
119
+
120
+ /** How far a node is from the start of the flow, the long way round. */
121
+ function computeDepths(nodes) {
122
+ let current = new Set(nodes);
123
+ let next = new Set();
124
+ let x = 0;
125
+ while (current.size) {
126
+ for (const node of current) {
127
+ node.depth = x;
128
+ for (const link of node.sourceLinks) next.add(link.target);
129
+ }
130
+ // The graph is acyclic by here, so this cannot run away — the guard is for
131
+ // the case where it is not, which is a bug rather than bad data.
132
+ if (++x > nodes.length) break;
133
+ current = next;
134
+ next = new Set();
135
+ }
136
+ }
137
+
138
+ /** And how far it is from the end of it. */
139
+ function computeToSink(nodes) {
140
+ let current = new Set(nodes);
141
+ let next = new Set();
142
+ let x = 0;
143
+ while (current.size) {
144
+ for (const node of current) {
145
+ node.toSink = x;
146
+ for (const link of node.targetLinks) next.add(link.source);
147
+ }
148
+ if (++x > nodes.length) break;
149
+ current = next;
150
+ next = new Set();
151
+ }
152
+ }
153
+
154
+ /**
155
+ * Which column a node belongs in.
156
+ *
157
+ * `left` reads the flow from where things start, `right` from where they end,
158
+ * and the two disagree about everything in between. `justify` is the default
159
+ * because it does the one thing a reader expects of the edges: every node that
160
+ * feeds nothing is pushed to the last column, so the diagram ends in a straight
161
+ * line of destinations rather than a ragged one.
162
+ */
163
+ function layerOf(node, columns, align) {
164
+ switch (align) {
165
+ case 'left':
166
+ return node.depth;
167
+ case 'right':
168
+ return columns - 1 - node.toSink;
169
+ case 'center':
170
+ {
171
+ if (node.targetLinks.length) return node.depth;
172
+ if (!node.sourceLinks.length) return 0;
173
+ let least = Infinity;
174
+ for (const link of node.sourceLinks) least = Math.min(least, link.target.depth);
175
+ return least - 1;
176
+ }
177
+ default:
178
+ return node.sourceLinks.length ? node.depth : columns - 1;
179
+ }
180
+ }
181
+
182
+ /**
183
+ * The height a target would sit at for its ribbon from `source` to run flat.
184
+ *
185
+ * Every link leaving a node is stacked against its neighbours, so "flat" is not
186
+ * the node's own height — it is that height plus whatever is stacked above this
187
+ * particular ribbon at one end, minus what is stacked above it at the other.
188
+ */
189
+ function targetTop(source, target, padding) {
190
+ let y = source.y0 - (source.sourceLinks.length - 1) * padding / 2;
191
+ for (const link of source.sourceLinks) {
192
+ if (link.target === target) break;
193
+ y += link.width + padding;
194
+ }
195
+ for (const link of target.targetLinks) {
196
+ if (link.source === source) break;
197
+ y -= link.width;
198
+ }
199
+ return y;
200
+ }
201
+
202
+ /** The same reading, taken from the target's end. */
203
+ function sourceTop(source, target, padding) {
204
+ let y = target.y0 - (target.targetLinks.length - 1) * padding / 2;
205
+ for (const link of target.targetLinks) {
206
+ if (link.source === source) break;
207
+ y += link.width + padding;
208
+ }
209
+ for (const link of source.sourceLinks) {
210
+ if (link.target === target) break;
211
+ y -= link.width;
212
+ }
213
+ return y;
214
+ }
215
+ function reorderNodeLinks(node) {
216
+ for (const link of node.targetLinks) {
217
+ link.source.sourceLinks.sort(ascendingTargetBreadth);
218
+ }
219
+ for (const link of node.sourceLinks) {
220
+ link.target.targetLinks.sort(ascendingSourceBreadth);
221
+ }
222
+ }
223
+
224
+ /** Push nodes down until none of them overlaps the one above it. */
225
+ function resolveDown(column, y, from, alpha, padding) {
226
+ let edge = y;
227
+ for (let i = from; i < column.length; i += 1) {
228
+ const node = column[i];
229
+ const shift = (edge - node.y0) * alpha;
230
+ if (shift > 1e-6) {
231
+ node.y0 += shift;
232
+ node.y1 += shift;
233
+ }
234
+ edge = node.y1 + padding;
235
+ }
236
+ }
237
+
238
+ /** And up, for the ones that have run off the bottom. */
239
+ function resolveUp(column, y, from, alpha, padding) {
240
+ let edge = y;
241
+ for (let i = from; i >= 0; i -= 1) {
242
+ const node = column[i];
243
+ const shift = (node.y1 - edge) * alpha;
244
+ if (shift > 1e-6) {
245
+ node.y0 -= shift;
246
+ node.y1 -= shift;
247
+ }
248
+ edge = node.y0 - padding;
249
+ }
250
+ }
251
+
252
+ /**
253
+ * Four passes, pivoting on the middle node of the column.
254
+ *
255
+ * Starting from the middle rather than the top is what keeps a column centred:
256
+ * resolving downwards from the top pushes the whole column towards the bottom
257
+ * every round, and after six rounds everything is piled against the floor. The
258
+ * last two passes are the ones that catch a column that has been pushed past
259
+ * an edge, and they run outside-in for the same reason.
260
+ */
261
+ function resolveCollisions(column, alpha, padding, height) {
262
+ const middle = column.length >> 1;
263
+ const pivot = column[middle];
264
+ if (!pivot) return;
265
+ resolveUp(column, pivot.y0 - padding, middle - 1, alpha, padding);
266
+ resolveDown(column, pivot.y1 + padding, middle + 1, alpha, padding);
267
+ resolveUp(column, height, column.length - 1, alpha, padding);
268
+ resolveDown(column, 0, 0, alpha, padding);
269
+ }
270
+
271
+ /**
272
+ * Lays out a flow diagram.
273
+ *
274
+ * Returns positions in points inside a `width` by `height` box. An input that
275
+ * cannot be drawn — no nodes, no room, nothing carrying a value — comes back
276
+ * empty rather than as a diagram of zeroes.
277
+ */
278
+ export function sankeyLayout(nodeInput, linkInput, options) {
279
+ const {
280
+ width,
281
+ height,
282
+ align,
283
+ iterations
284
+ } = options;
285
+ const nodeWidth = Math.max(0, options.nodeWidth);
286
+ const requestedPadding = Math.max(0, options.nodePadding);
287
+ if (!nodeInput.length || !(width > 0) || !(height > 0)) return EMPTY;
288
+ const nodes = [];
289
+ const byId = new Map();
290
+ for (const [index, input] of nodeInput.entries()) {
291
+ // A repeated id would give the links two nodes to mean; the first wins, so
292
+ // the diagram is the one the earlier row described rather than a mix.
293
+ if (byId.has(input.id)) continue;
294
+ const node = {
295
+ id: input.id,
296
+ index,
297
+ slot: nodes.length,
298
+ fixedValue: typeof input.value === 'number' && Number.isFinite(input.value) && input.value >= 0 ? input.value : undefined,
299
+ value: 0,
300
+ depth: 0,
301
+ toSink: 0,
302
+ layer: 0,
303
+ x0: 0,
304
+ x1: 0,
305
+ y0: 0,
306
+ y1: 0,
307
+ sourceLinks: [],
308
+ targetLinks: []
309
+ };
310
+ nodes.push(node);
311
+ byId.set(input.id, node);
312
+ }
313
+ let dropped = 0;
314
+ const links = [];
315
+ for (const [inputIndex, input] of linkInput.entries()) {
316
+ const source = byId.get(input.source);
317
+ const target = byId.get(input.target);
318
+ const value = input.value;
319
+ // A link to nowhere, a link to itself, and a link carrying nothing are all
320
+ // undrawable for different reasons and all silently skipped.
321
+ if (!source || !target || source === target) {
322
+ dropped += 1;
323
+ continue;
324
+ }
325
+ if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) {
326
+ dropped += 1;
327
+ continue;
328
+ }
329
+ links.push({
330
+ index: links.length,
331
+ input: inputIndex,
332
+ source,
333
+ target,
334
+ value,
335
+ width: 0,
336
+ y0: 0,
337
+ y1: 0
338
+ });
339
+ }
340
+ for (const link of links) {
341
+ link.source.sourceLinks.push(link);
342
+ link.target.targetLinks.push(link);
343
+ }
344
+ const cut = withoutCycles(nodes, links);
345
+ if (cut.dropped) {
346
+ dropped += cut.dropped;
347
+ for (const node of nodes) {
348
+ node.sourceLinks = [];
349
+ node.targetLinks = [];
350
+ }
351
+ cut.kept.forEach((link, index) => {
352
+ link.index = index;
353
+ link.source.sourceLinks.push(link);
354
+ link.target.targetLinks.push(link);
355
+ });
356
+ }
357
+ const kept = cut.kept;
358
+ for (const node of nodes) {
359
+ node.value = node.fixedValue ?? Math.max(sumValues(node.sourceLinks), sumValues(node.targetLinks));
360
+ }
361
+ computeDepths(nodes);
362
+ computeToSink(nodes);
363
+ let columnCount = 0;
364
+ for (const node of nodes) columnCount = Math.max(columnCount, node.depth);
365
+ columnCount += 1;
366
+ const columns = Array.from({
367
+ length: columnCount
368
+ }, () => []);
369
+ // One column has nowhere to spread to, so its node sits at the left edge
370
+ // rather than dividing by a gap that does not exist.
371
+ const kx = columnCount > 1 ? (width - nodeWidth) / (columnCount - 1) : 0;
372
+ for (const node of nodes) {
373
+ const layer = Math.max(0, Math.min(columnCount - 1, Math.floor(layerOf(node, columnCount, align))));
374
+ node.layer = layer;
375
+ node.x0 = layer * kx;
376
+ node.x1 = node.x0 + nodeWidth;
377
+ columns[layer].push(node);
378
+ }
379
+ let tallest = 0;
380
+ for (const column of columns) tallest = Math.max(tallest, column.length);
381
+
382
+ /*
383
+ * The gap asked for is a maximum, not a promise. A column of twelve nodes at
384
+ * a padding of twelve is 132 points of gap, which on a phone is most of the
385
+ * chart — so a crowded column gives up its spacing rather than its bars,
386
+ * because a bar is the reading and the gap is only the separation.
387
+ *
388
+ * Hence the share as well as the count. Dividing the whole height by the gaps
389
+ * is the obvious cap and it is the wrong one: at twelve nodes in 120 points it
390
+ * hands every point to the gaps and leaves the bars exactly nothing, so the
391
+ * chart goes blank at precisely the crowding this is meant to survive. Half
392
+ * the height is the most the gaps may ever take between them.
393
+ */
394
+ const padding = tallest > 1 ? Math.min(requestedPadding, height * MAX_PADDING_SHARE / (tallest - 1)) : requestedPadding;
395
+
396
+ /*
397
+ * One scale for every column, taken from whichever column it fits worst.
398
+ * A scale per column would draw two nodes of the same value at two different
399
+ * heights, which is the one thing this chart cannot do and still be read.
400
+ */
401
+ let ky = Infinity;
402
+ for (const column of columns) {
403
+ if (!column.length) continue;
404
+ let total = 0;
405
+ for (const node of column) total += node.value;
406
+ if (total <= 0) continue;
407
+ ky = Math.min(ky, (height - (column.length - 1) * padding) / total);
408
+ }
409
+ if (!Number.isFinite(ky) || ky <= 0) return {
410
+ ...EMPTY,
411
+ columns: columnCount,
412
+ dropped
413
+ };
414
+ for (const column of columns) {
415
+ let y = 0;
416
+ for (const node of column) {
417
+ node.y0 = y;
418
+ node.y1 = y + node.value * ky;
419
+ y = node.y1 + padding;
420
+ for (const link of node.sourceLinks) link.width = link.value * ky;
421
+ }
422
+ // Whatever the column did not use is shared out as extra space between its
423
+ // nodes, which centres a short column instead of hanging it from the top.
424
+ const slack = (height - y + padding) / (column.length + 1);
425
+ column.forEach((node, i) => {
426
+ node.y0 += slack * (i + 1);
427
+ node.y1 += slack * (i + 1);
428
+ });
429
+ for (const node of column) {
430
+ node.sourceLinks.sort(ascendingTargetBreadth);
431
+ node.targetLinks.sort(ascendingSourceBreadth);
432
+ }
433
+ }
434
+ const rounds = Math.max(0, Math.floor(iterations));
435
+ for (let i = 0; i < rounds; i += 1) {
436
+ /*
437
+ * The pull weakens and the shove strengthens as the rounds go by. Early on
438
+ * the nodes are still finding their neighbourhood and a firm pull is what
439
+ * gets them there; by the end the arrangement is settled and the only thing
440
+ * left worth doing is making sure nothing overlaps.
441
+ */
442
+ const alpha = 0.99 ** i;
443
+ const beta = Math.max(1 - alpha, (i + 1) / rounds);
444
+ for (let c = columnCount - 2; c >= 0; c -= 1) {
445
+ const column = columns[c];
446
+ for (const node of column) {
447
+ let weighted = 0;
448
+ let weight = 0;
449
+ for (const link of node.sourceLinks) {
450
+ // A ribbon that spans three columns is three times as expensive to
451
+ // bend as one that spans a single column, so it pulls three times
452
+ // as hard on where its ends sit.
453
+ const span = link.value * (link.target.layer - node.layer);
454
+ weighted += sourceTop(node, link.target, padding) * span;
455
+ weight += span;
456
+ }
457
+ if (!(weight > 0)) continue;
458
+ const shift = (weighted / weight - node.y0) * alpha;
459
+ node.y0 += shift;
460
+ node.y1 += shift;
461
+ reorderNodeLinks(node);
462
+ }
463
+ column.sort(ascendingBreadth);
464
+ resolveCollisions(column, beta, padding, height);
465
+ }
466
+ for (let c = 1; c < columnCount; c += 1) {
467
+ const column = columns[c];
468
+ for (const node of column) {
469
+ let weighted = 0;
470
+ let weight = 0;
471
+ for (const link of node.targetLinks) {
472
+ const span = link.value * (node.layer - link.source.layer);
473
+ weighted += targetTop(link.source, node, padding) * span;
474
+ weight += span;
475
+ }
476
+ if (!(weight > 0)) continue;
477
+ const shift = (weighted / weight - node.y0) * alpha;
478
+ node.y0 += shift;
479
+ node.y1 += shift;
480
+ reorderNodeLinks(node);
481
+ }
482
+ column.sort(ascendingBreadth);
483
+ resolveCollisions(column, beta, padding, height);
484
+ }
485
+ }
486
+
487
+ /*
488
+ * The ribbons are stacked against each node's edge in the order they were
489
+ * sorted into, and each one is recorded by its centre — which is where a
490
+ * stroked or filled ribbon of that thickness wants to be anchored.
491
+ */
492
+ for (const node of nodes) {
493
+ let out = node.y0;
494
+ for (const link of node.sourceLinks) {
495
+ link.y0 = out + link.width / 2;
496
+ out += link.width;
497
+ }
498
+ let into = node.y0;
499
+ for (const link of node.targetLinks) {
500
+ link.y1 = into + link.width / 2;
501
+ into += link.width;
502
+ }
503
+ }
504
+ const order = new Map(nodes.map((node, i) => [node, i]));
505
+ return {
506
+ columns: columnCount,
507
+ dropped,
508
+ nodes: nodes.map(node => ({
509
+ id: node.id,
510
+ index: node.index,
511
+ layer: node.layer,
512
+ value: node.value,
513
+ x0: node.x0,
514
+ x1: node.x1,
515
+ y0: node.y0,
516
+ y1: node.y1
517
+ })),
518
+ links: kept.map((link, index) => ({
519
+ index,
520
+ input: link.input,
521
+ source: order.get(link.source),
522
+ target: order.get(link.target),
523
+ value: link.value,
524
+ width: link.width,
525
+ y0: link.y0,
526
+ y1: link.y1
527
+ }))
528
+ };
529
+ }
530
+ //# sourceMappingURL=sankey-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EMPTY","nodes","links","columns","dropped","MAX_PADDING_SHARE","ascendingBreadth","a","b","y0","ascendingSourceBreadth","source","index","ascendingTargetBreadth","target","sumValues","total","link","value","withoutCycles","WHITE","GREY","BLACK","state","Uint8Array","length","back","Set","root","slot","stack","node","cursor","frame","outgoing","sourceLinks","pop","has","next","add","push","size","kept","filter","computeDepths","current","x","depth","computeToSink","toSink","targetLinks","layerOf","align","least","Infinity","Math","min","targetTop","padding","y","width","sourceTop","reorderNodeLinks","sort","resolveDown","column","from","alpha","edge","i","shift","y1","resolveUp","resolveCollisions","height","middle","pivot","sankeyLayout","nodeInput","linkInput","options","iterations","nodeWidth","max","requestedPadding","nodePadding","byId","Map","input","entries","id","fixedValue","Number","isFinite","undefined","layer","x0","x1","set","inputIndex","get","cut","forEach","columnCount","Array","kx","floor","tallest","ky","slack","rounds","beta","c","weighted","weight","span","out","into","order","map"],"sourceRoot":"../../../../src","sources":["components/sankey-chart/sankey-layout.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AA4GA,MAAMA,KAAmB,GAAG;EAAEC,KAAK,EAAE,EAAE;EAAEC,KAAK,EAAE,EAAE;EAAEC,OAAO,EAAE,CAAC;EAAEC,OAAO,EAAE;AAAE,CAAC;;AAE5E;AACA,MAAMC,iBAAiB,GAAG,GAAG;AAE7B,SAASC,gBAAgBA,CAACC,CAAO,EAAEC,CAAO,EAAU;EAClD,OAAOD,CAAC,CAACE,EAAE,GAAGD,CAAC,CAACC,EAAE;AACpB;AAEA,SAASC,sBAAsBA,CAACH,CAAO,EAAEC,CAAO,EAAU;EACxD,OAAOF,gBAAgB,CAACC,CAAC,CAACI,MAAM,EAAEH,CAAC,CAACG,MAAM,CAAC,IAAIJ,CAAC,CAACK,KAAK,GAAGJ,CAAC,CAACI,KAAK;AAClE;AAEA,SAASC,sBAAsBA,CAACN,CAAO,EAAEC,CAAO,EAAU;EACxD,OAAOF,gBAAgB,CAACC,CAAC,CAACO,MAAM,EAAEN,CAAC,CAACM,MAAM,CAAC,IAAIP,CAAC,CAACK,KAAK,GAAGJ,CAAC,CAACI,KAAK;AAClE;AAEA,SAASG,SAASA,CAACb,KAAa,EAAU;EACxC,IAAIc,KAAK,GAAG,CAAC;EACb,KAAK,MAAMC,IAAI,IAAIf,KAAK,EAAEc,KAAK,IAAIC,IAAI,CAACC,KAAK;EAC7C,OAAOF,KAAK;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,aAAaA,CAAClB,KAAa,EAAEC,KAAa,EAAqC;EACtF,MAAMkB,KAAK,GAAG,CAAC;EACf,MAAMC,IAAI,GAAG,CAAC;EACd,MAAMC,KAAK,GAAG,CAAC;EACf,MAAMC,KAAK,GAAG,IAAIC,UAAU,CAACvB,KAAK,CAACwB,MAAM,CAAC;EAC1C,MAAMC,IAAI,GAAG,IAAIC,GAAG,CAAS,CAAC;EAE9B,KAAK,MAAMC,IAAI,IAAI3B,KAAK,EAAE;IACxB,IAAIsB,KAAK,CAACK,IAAI,CAACC,IAAI,CAAC,KAAKT,KAAK,EAAE;IAChC;IACA,MAAMU,KAAuC,GAAG,CAAC;MAAEC,IAAI,EAAEH,IAAI;MAAEI,MAAM,EAAE;IAAE,CAAC,CAAC;IAC3ET,KAAK,CAACK,IAAI,CAACC,IAAI,CAAC,GAAGR,IAAI;IAEvB,OAAOS,KAAK,CAACL,MAAM,EAAE;MACnB,MAAMQ,KAAK,GAAGH,KAAK,CAACA,KAAK,CAACL,MAAM,GAAG,CAAC,CAAE;MACtC,MAAMS,QAAQ,GAAGD,KAAK,CAACF,IAAI,CAACI,WAAW;MAEvC,IAAIF,KAAK,CAACD,MAAM,IAAIE,QAAQ,CAACT,MAAM,EAAE;QACnCF,KAAK,CAACU,KAAK,CAACF,IAAI,CAACF,IAAI,CAAC,GAAGP,KAAK;QAC9BQ,KAAK,CAACM,GAAG,CAAC,CAAC;QACX;MACF;MAEA,MAAMnB,IAAI,GAAGiB,QAAQ,CAACD,KAAK,CAACD,MAAM,CAAE;MACpCC,KAAK,CAACD,MAAM,IAAI,CAAC;MACjB,IAAIN,IAAI,CAACW,GAAG,CAACpB,IAAI,CAACL,KAAK,CAAC,EAAE;MAE1B,MAAM0B,IAAI,GAAGrB,IAAI,CAACH,MAAM;MACxB,IAAIS,KAAK,CAACe,IAAI,CAACT,IAAI,CAAC,KAAKR,IAAI,EAAE;QAC7BK,IAAI,CAACa,GAAG,CAACtB,IAAI,CAACL,KAAK,CAAC;MACtB,CAAC,MAAM,IAAIW,KAAK,CAACe,IAAI,CAACT,IAAI,CAAC,KAAKT,KAAK,EAAE;QACrCG,KAAK,CAACe,IAAI,CAACT,IAAI,CAAC,GAAGR,IAAI;QACvBS,KAAK,CAACU,IAAI,CAAC;UAAET,IAAI,EAAEO,IAAI;UAAEN,MAAM,EAAE;QAAE,CAAC,CAAC;MACvC;IACF;EACF;EAEA,IAAI,CAACN,IAAI,CAACe,IAAI,EAAE,OAAO;IAAEC,IAAI,EAAExC,KAAK;IAAEE,OAAO,EAAE;EAAE,CAAC;EAClD,OAAO;IAAEsC,IAAI,EAAExC,KAAK,CAACyC,MAAM,CAAE1B,IAAI,IAAK,CAACS,IAAI,CAACW,GAAG,CAACpB,IAAI,CAACL,KAAK,CAAC,CAAC;IAAER,OAAO,EAAEsB,IAAI,CAACe;EAAK,CAAC;AACpF;;AAEA;AACA,SAASG,aAAaA,CAAC3C,KAAa,EAAQ;EAC1C,IAAI4C,OAAO,GAAG,IAAIlB,GAAG,CAAC1B,KAAK,CAAC;EAC5B,IAAIqC,IAAI,GAAG,IAAIX,GAAG,CAAO,CAAC;EAC1B,IAAImB,CAAC,GAAG,CAAC;EAET,OAAOD,OAAO,CAACJ,IAAI,EAAE;IACnB,KAAK,MAAMV,IAAI,IAAIc,OAAO,EAAE;MAC1Bd,IAAI,CAACgB,KAAK,GAAGD,CAAC;MACd,KAAK,MAAM7B,IAAI,IAAIc,IAAI,CAACI,WAAW,EAAEG,IAAI,CAACC,GAAG,CAACtB,IAAI,CAACH,MAAM,CAAC;IAC5D;IACA;IACA;IACA,IAAI,EAAEgC,CAAC,GAAG7C,KAAK,CAACwB,MAAM,EAAE;IACxBoB,OAAO,GAAGP,IAAI;IACdA,IAAI,GAAG,IAAIX,GAAG,CAAC,CAAC;EAClB;AACF;;AAEA;AACA,SAASqB,aAAaA,CAAC/C,KAAa,EAAQ;EAC1C,IAAI4C,OAAO,GAAG,IAAIlB,GAAG,CAAC1B,KAAK,CAAC;EAC5B,IAAIqC,IAAI,GAAG,IAAIX,GAAG,CAAO,CAAC;EAC1B,IAAImB,CAAC,GAAG,CAAC;EAET,OAAOD,OAAO,CAACJ,IAAI,EAAE;IACnB,KAAK,MAAMV,IAAI,IAAIc,OAAO,EAAE;MAC1Bd,IAAI,CAACkB,MAAM,GAAGH,CAAC;MACf,KAAK,MAAM7B,IAAI,IAAIc,IAAI,CAACmB,WAAW,EAAEZ,IAAI,CAACC,GAAG,CAACtB,IAAI,CAACN,MAAM,CAAC;IAC5D;IACA,IAAI,EAAEmC,CAAC,GAAG7C,KAAK,CAACwB,MAAM,EAAE;IACxBoB,OAAO,GAAGP,IAAI;IACdA,IAAI,GAAG,IAAIX,GAAG,CAAC,CAAC;EAClB;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASwB,OAAOA,CAACpB,IAAU,EAAE5B,OAAe,EAAEiD,KAAkB,EAAU;EACxE,QAAQA,KAAK;IACX,KAAK,MAAM;MACT,OAAOrB,IAAI,CAACgB,KAAK;IACnB,KAAK,OAAO;MACV,OAAO5C,OAAO,GAAG,CAAC,GAAG4B,IAAI,CAACkB,MAAM;IAClC,KAAK,QAAQ;MAAE;QACb,IAAIlB,IAAI,CAACmB,WAAW,CAACzB,MAAM,EAAE,OAAOM,IAAI,CAACgB,KAAK;QAC9C,IAAI,CAAChB,IAAI,CAACI,WAAW,CAACV,MAAM,EAAE,OAAO,CAAC;QACtC,IAAI4B,KAAK,GAAGC,QAAQ;QACpB,KAAK,MAAMrC,IAAI,IAAIc,IAAI,CAACI,WAAW,EAAEkB,KAAK,GAAGE,IAAI,CAACC,GAAG,CAACH,KAAK,EAAEpC,IAAI,CAACH,MAAM,CAACiC,KAAK,CAAC;QAC/E,OAAOM,KAAK,GAAG,CAAC;MAClB;IACA;MACE,OAAOtB,IAAI,CAACI,WAAW,CAACV,MAAM,GAAGM,IAAI,CAACgB,KAAK,GAAG5C,OAAO,GAAG,CAAC;EAC7D;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASsD,SAASA,CAAC9C,MAAY,EAAEG,MAAY,EAAE4C,OAAe,EAAU;EACtE,IAAIC,CAAC,GAAGhD,MAAM,CAACF,EAAE,GAAI,CAACE,MAAM,CAACwB,WAAW,CAACV,MAAM,GAAG,CAAC,IAAIiC,OAAO,GAAI,CAAC;EACnE,KAAK,MAAMzC,IAAI,IAAIN,MAAM,CAACwB,WAAW,EAAE;IACrC,IAAIlB,IAAI,CAACH,MAAM,KAAKA,MAAM,EAAE;IAC5B6C,CAAC,IAAI1C,IAAI,CAAC2C,KAAK,GAAGF,OAAO;EAC3B;EACA,KAAK,MAAMzC,IAAI,IAAIH,MAAM,CAACoC,WAAW,EAAE;IACrC,IAAIjC,IAAI,CAACN,MAAM,KAAKA,MAAM,EAAE;IAC5BgD,CAAC,IAAI1C,IAAI,CAAC2C,KAAK;EACjB;EACA,OAAOD,CAAC;AACV;;AAEA;AACA,SAASE,SAASA,CAAClD,MAAY,EAAEG,MAAY,EAAE4C,OAAe,EAAU;EACtE,IAAIC,CAAC,GAAG7C,MAAM,CAACL,EAAE,GAAI,CAACK,MAAM,CAACoC,WAAW,CAACzB,MAAM,GAAG,CAAC,IAAIiC,OAAO,GAAI,CAAC;EACnE,KAAK,MAAMzC,IAAI,IAAIH,MAAM,CAACoC,WAAW,EAAE;IACrC,IAAIjC,IAAI,CAACN,MAAM,KAAKA,MAAM,EAAE;IAC5BgD,CAAC,IAAI1C,IAAI,CAAC2C,KAAK,GAAGF,OAAO;EAC3B;EACA,KAAK,MAAMzC,IAAI,IAAIN,MAAM,CAACwB,WAAW,EAAE;IACrC,IAAIlB,IAAI,CAACH,MAAM,KAAKA,MAAM,EAAE;IAC5B6C,CAAC,IAAI1C,IAAI,CAAC2C,KAAK;EACjB;EACA,OAAOD,CAAC;AACV;AAEA,SAASG,gBAAgBA,CAAC/B,IAAU,EAAQ;EAC1C,KAAK,MAAMd,IAAI,IAAIc,IAAI,CAACmB,WAAW,EAAE;IACnCjC,IAAI,CAACN,MAAM,CAACwB,WAAW,CAAC4B,IAAI,CAAClD,sBAAsB,CAAC;EACtD;EACA,KAAK,MAAMI,IAAI,IAAIc,IAAI,CAACI,WAAW,EAAE;IACnClB,IAAI,CAACH,MAAM,CAACoC,WAAW,CAACa,IAAI,CAACrD,sBAAsB,CAAC;EACtD;AACF;;AAEA;AACA,SAASsD,WAAWA,CAACC,MAAc,EAAEN,CAAS,EAAEO,IAAY,EAAEC,KAAa,EAAET,OAAe,EAAQ;EAClG,IAAIU,IAAI,GAAGT,CAAC;EACZ,KAAK,IAAIU,CAAC,GAAGH,IAAI,EAAEG,CAAC,GAAGJ,MAAM,CAACxC,MAAM,EAAE4C,CAAC,IAAI,CAAC,EAAE;IAC5C,MAAMtC,IAAI,GAAGkC,MAAM,CAACI,CAAC,CAAE;IACvB,MAAMC,KAAK,GAAG,CAACF,IAAI,GAAGrC,IAAI,CAACtB,EAAE,IAAI0D,KAAK;IACtC,IAAIG,KAAK,GAAG,IAAI,EAAE;MAChBvC,IAAI,CAACtB,EAAE,IAAI6D,KAAK;MAChBvC,IAAI,CAACwC,EAAE,IAAID,KAAK;IAClB;IACAF,IAAI,GAAGrC,IAAI,CAACwC,EAAE,GAAGb,OAAO;EAC1B;AACF;;AAEA;AACA,SAASc,SAASA,CAACP,MAAc,EAAEN,CAAS,EAAEO,IAAY,EAAEC,KAAa,EAAET,OAAe,EAAQ;EAChG,IAAIU,IAAI,GAAGT,CAAC;EACZ,KAAK,IAAIU,CAAC,GAAGH,IAAI,EAAEG,CAAC,IAAI,CAAC,EAAEA,CAAC,IAAI,CAAC,EAAE;IACjC,MAAMtC,IAAI,GAAGkC,MAAM,CAACI,CAAC,CAAE;IACvB,MAAMC,KAAK,GAAG,CAACvC,IAAI,CAACwC,EAAE,GAAGH,IAAI,IAAID,KAAK;IACtC,IAAIG,KAAK,GAAG,IAAI,EAAE;MAChBvC,IAAI,CAACtB,EAAE,IAAI6D,KAAK;MAChBvC,IAAI,CAACwC,EAAE,IAAID,KAAK;IAClB;IACAF,IAAI,GAAGrC,IAAI,CAACtB,EAAE,GAAGiD,OAAO;EAC1B;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASe,iBAAiBA,CAACR,MAAc,EAAEE,KAAa,EAAET,OAAe,EAAEgB,MAAc,EAAQ;EAC/F,MAAMC,MAAM,GAAGV,MAAM,CAACxC,MAAM,IAAI,CAAC;EACjC,MAAMmD,KAAK,GAAGX,MAAM,CAACU,MAAM,CAAC;EAC5B,IAAI,CAACC,KAAK,EAAE;EACZJ,SAAS,CAACP,MAAM,EAAEW,KAAK,CAACnE,EAAE,GAAGiD,OAAO,EAAEiB,MAAM,GAAG,CAAC,EAAER,KAAK,EAAET,OAAO,CAAC;EACjEM,WAAW,CAACC,MAAM,EAAEW,KAAK,CAACL,EAAE,GAAGb,OAAO,EAAEiB,MAAM,GAAG,CAAC,EAAER,KAAK,EAAET,OAAO,CAAC;EACnEc,SAAS,CAACP,MAAM,EAAES,MAAM,EAAET,MAAM,CAACxC,MAAM,GAAG,CAAC,EAAE0C,KAAK,EAAET,OAAO,CAAC;EAC5DM,WAAW,CAACC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAEE,KAAK,EAAET,OAAO,CAAC;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASmB,YAAYA,CAC1BC,SAA2C,EAC3CC,SAA2C,EAC3CC,OAA4B,EACd;EACd,MAAM;IAAEpB,KAAK;IAAEc,MAAM;IAAEtB,KAAK;IAAE6B;EAAW,CAAC,GAAGD,OAAO;EACpD,MAAME,SAAS,GAAG3B,IAAI,CAAC4B,GAAG,CAAC,CAAC,EAAEH,OAAO,CAACE,SAAS,CAAC;EAChD,MAAME,gBAAgB,GAAG7B,IAAI,CAAC4B,GAAG,CAAC,CAAC,EAAEH,OAAO,CAACK,WAAW,CAAC;EAEzD,IAAI,CAACP,SAAS,CAACrD,MAAM,IAAI,EAAEmC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAEc,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO1E,KAAK;EAEpE,MAAMC,KAAa,GAAG,EAAE;EACxB,MAAMqF,IAAI,GAAG,IAAIC,GAAG,CAAe,CAAC;EACpC,KAAK,MAAM,CAAC3E,KAAK,EAAE4E,KAAK,CAAC,IAAIV,SAAS,CAACW,OAAO,CAAC,CAAC,EAAE;IAChD;IACA;IACA,IAAIH,IAAI,CAACjD,GAAG,CAACmD,KAAK,CAACE,EAAE,CAAC,EAAE;IACxB,MAAM3D,IAAU,GAAG;MACjB2D,EAAE,EAAEF,KAAK,CAACE,EAAE;MACZ9E,KAAK;MACLiB,IAAI,EAAE5B,KAAK,CAACwB,MAAM;MAClBkE,UAAU,EACR,OAAOH,KAAK,CAACtE,KAAK,KAAK,QAAQ,IAAI0E,MAAM,CAACC,QAAQ,CAACL,KAAK,CAACtE,KAAK,CAAC,IAAIsE,KAAK,CAACtE,KAAK,IAAI,CAAC,GAC/EsE,KAAK,CAACtE,KAAK,GACX4E,SAAS;MACf5E,KAAK,EAAE,CAAC;MACR6B,KAAK,EAAE,CAAC;MACRE,MAAM,EAAE,CAAC;MACT8C,KAAK,EAAE,CAAC;MACRC,EAAE,EAAE,CAAC;MACLC,EAAE,EAAE,CAAC;MACLxF,EAAE,EAAE,CAAC;MACL8D,EAAE,EAAE,CAAC;MACLpC,WAAW,EAAE,EAAE;MACfe,WAAW,EAAE;IACf,CAAC;IACDjD,KAAK,CAACuC,IAAI,CAACT,IAAI,CAAC;IAChBuD,IAAI,CAACY,GAAG,CAACV,KAAK,CAACE,EAAE,EAAE3D,IAAI,CAAC;EAC1B;EAEA,IAAI3B,OAAO,GAAG,CAAC;EACf,MAAMF,KAAa,GAAG,EAAE;EACxB,KAAK,MAAM,CAACiG,UAAU,EAAEX,KAAK,CAAC,IAAIT,SAAS,CAACU,OAAO,CAAC,CAAC,EAAE;IACrD,MAAM9E,MAAM,GAAG2E,IAAI,CAACc,GAAG,CAACZ,KAAK,CAAC7E,MAAM,CAAC;IACrC,MAAMG,MAAM,GAAGwE,IAAI,CAACc,GAAG,CAACZ,KAAK,CAAC1E,MAAM,CAAC;IACrC,MAAMI,KAAK,GAAGsE,KAAK,CAACtE,KAAK;IACzB;IACA;IACA,IAAI,CAACP,MAAM,IAAI,CAACG,MAAM,IAAIH,MAAM,KAAKG,MAAM,EAAE;MAC3CV,OAAO,IAAI,CAAC;MACZ;IACF;IACA,IAAI,OAAOc,KAAK,KAAK,QAAQ,IAAI,CAAC0E,MAAM,CAACC,QAAQ,CAAC3E,KAAK,CAAC,IAAIA,KAAK,IAAI,CAAC,EAAE;MACtEd,OAAO,IAAI,CAAC;MACZ;IACF;IACAF,KAAK,CAACsC,IAAI,CAAC;MACT5B,KAAK,EAAEV,KAAK,CAACuB,MAAM;MACnB+D,KAAK,EAAEW,UAAU;MACjBxF,MAAM;MACNG,MAAM;MACNI,KAAK;MACL0C,KAAK,EAAE,CAAC;MACRnD,EAAE,EAAE,CAAC;MACL8D,EAAE,EAAE;IACN,CAAC,CAAC;EACJ;EAEA,KAAK,MAAMtD,IAAI,IAAIf,KAAK,EAAE;IACxBe,IAAI,CAACN,MAAM,CAACwB,WAAW,CAACK,IAAI,CAACvB,IAAI,CAAC;IAClCA,IAAI,CAACH,MAAM,CAACoC,WAAW,CAACV,IAAI,CAACvB,IAAI,CAAC;EACpC;EAEA,MAAMoF,GAAG,GAAGlF,aAAa,CAAClB,KAAK,EAAEC,KAAK,CAAC;EACvC,IAAImG,GAAG,CAACjG,OAAO,EAAE;IACfA,OAAO,IAAIiG,GAAG,CAACjG,OAAO;IACtB,KAAK,MAAM2B,IAAI,IAAI9B,KAAK,EAAE;MACxB8B,IAAI,CAACI,WAAW,GAAG,EAAE;MACrBJ,IAAI,CAACmB,WAAW,GAAG,EAAE;IACvB;IACAmD,GAAG,CAAC3D,IAAI,CAAC4D,OAAO,CAAC,CAACrF,IAAI,EAAEL,KAAK,KAAK;MAChCK,IAAI,CAACL,KAAK,GAAGA,KAAK;MAClBK,IAAI,CAACN,MAAM,CAACwB,WAAW,CAACK,IAAI,CAACvB,IAAI,CAAC;MAClCA,IAAI,CAACH,MAAM,CAACoC,WAAW,CAACV,IAAI,CAACvB,IAAI,CAAC;IACpC,CAAC,CAAC;EACJ;EACA,MAAMyB,IAAI,GAAG2D,GAAG,CAAC3D,IAAI;EAErB,KAAK,MAAMX,IAAI,IAAI9B,KAAK,EAAE;IACxB8B,IAAI,CAACb,KAAK,GACRa,IAAI,CAAC4D,UAAU,IACfpC,IAAI,CAAC4B,GAAG,CAACpE,SAAS,CAACgB,IAAI,CAACI,WAAW,CAAC,EAAEpB,SAAS,CAACgB,IAAI,CAACmB,WAAW,CAAC,CAAC;EACtE;EAEAN,aAAa,CAAC3C,KAAK,CAAC;EACpB+C,aAAa,CAAC/C,KAAK,CAAC;EAEpB,IAAIsG,WAAW,GAAG,CAAC;EACnB,KAAK,MAAMxE,IAAI,IAAI9B,KAAK,EAAEsG,WAAW,GAAGhD,IAAI,CAAC4B,GAAG,CAACoB,WAAW,EAAExE,IAAI,CAACgB,KAAK,CAAC;EACzEwD,WAAW,IAAI,CAAC;EAEhB,MAAMpG,OAAiB,GAAGqG,KAAK,CAACtC,IAAI,CAAC;IAAEzC,MAAM,EAAE8E;EAAY,CAAC,EAAE,MAAM,EAAE,CAAC;EACvE;EACA;EACA,MAAME,EAAE,GAAGF,WAAW,GAAG,CAAC,GAAG,CAAC3C,KAAK,GAAGsB,SAAS,KAAKqB,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC;EACxE,KAAK,MAAMxE,IAAI,IAAI9B,KAAK,EAAE;IACxB,MAAM8F,KAAK,GAAGxC,IAAI,CAAC4B,GAAG,CAAC,CAAC,EAAE5B,IAAI,CAACC,GAAG,CAAC+C,WAAW,GAAG,CAAC,EAAEhD,IAAI,CAACmD,KAAK,CAACvD,OAAO,CAACpB,IAAI,EAAEwE,WAAW,EAAEnD,KAAK,CAAC,CAAC,CAAC,CAAC;IACnGrB,IAAI,CAACgE,KAAK,GAAGA,KAAK;IAClBhE,IAAI,CAACiE,EAAE,GAAGD,KAAK,GAAGU,EAAE;IACpB1E,IAAI,CAACkE,EAAE,GAAGlE,IAAI,CAACiE,EAAE,GAAGd,SAAS;IAC7B/E,OAAO,CAAC4F,KAAK,CAAC,CAAEvD,IAAI,CAACT,IAAI,CAAC;EAC5B;EAEA,IAAI4E,OAAO,GAAG,CAAC;EACf,KAAK,MAAM1C,MAAM,IAAI9D,OAAO,EAAEwG,OAAO,GAAGpD,IAAI,CAAC4B,GAAG,CAACwB,OAAO,EAAE1C,MAAM,CAACxC,MAAM,CAAC;;EAExE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMiC,OAAO,GACXiD,OAAO,GAAG,CAAC,GACPpD,IAAI,CAACC,GAAG,CAAC4B,gBAAgB,EAAGV,MAAM,GAAGrE,iBAAiB,IAAKsG,OAAO,GAAG,CAAC,CAAC,CAAC,GACxEvB,gBAAgB;;EAEtB;AACF;AACA;AACA;AACA;EACE,IAAIwB,EAAE,GAAGtD,QAAQ;EACjB,KAAK,MAAMW,MAAM,IAAI9D,OAAO,EAAE;IAC5B,IAAI,CAAC8D,MAAM,CAACxC,MAAM,EAAE;IACpB,IAAIT,KAAK,GAAG,CAAC;IACb,KAAK,MAAMe,IAAI,IAAIkC,MAAM,EAAEjD,KAAK,IAAIe,IAAI,CAACb,KAAK;IAC9C,IAAIF,KAAK,IAAI,CAAC,EAAE;IAChB4F,EAAE,GAAGrD,IAAI,CAACC,GAAG,CAACoD,EAAE,EAAE,CAAClC,MAAM,GAAG,CAACT,MAAM,CAACxC,MAAM,GAAG,CAAC,IAAIiC,OAAO,IAAI1C,KAAK,CAAC;EACrE;EACA,IAAI,CAAC4E,MAAM,CAACC,QAAQ,CAACe,EAAE,CAAC,IAAIA,EAAE,IAAI,CAAC,EAAE,OAAO;IAAE,GAAG5G,KAAK;IAAEG,OAAO,EAAEoG,WAAW;IAAEnG;EAAQ,CAAC;EAEvF,KAAK,MAAM6D,MAAM,IAAI9D,OAAO,EAAE;IAC5B,IAAIwD,CAAC,GAAG,CAAC;IACT,KAAK,MAAM5B,IAAI,IAAIkC,MAAM,EAAE;MACzBlC,IAAI,CAACtB,EAAE,GAAGkD,CAAC;MACX5B,IAAI,CAACwC,EAAE,GAAGZ,CAAC,GAAG5B,IAAI,CAACb,KAAK,GAAG0F,EAAE;MAC7BjD,CAAC,GAAG5B,IAAI,CAACwC,EAAE,GAAGb,OAAO;MACrB,KAAK,MAAMzC,IAAI,IAAIc,IAAI,CAACI,WAAW,EAAElB,IAAI,CAAC2C,KAAK,GAAG3C,IAAI,CAACC,KAAK,GAAG0F,EAAE;IACnE;IACA;IACA;IACA,MAAMC,KAAK,GAAG,CAACnC,MAAM,GAAGf,CAAC,GAAGD,OAAO,KAAKO,MAAM,CAACxC,MAAM,GAAG,CAAC,CAAC;IAC1DwC,MAAM,CAACqC,OAAO,CAAC,CAACvE,IAAI,EAAEsC,CAAC,KAAK;MAC1BtC,IAAI,CAACtB,EAAE,IAAIoG,KAAK,IAAIxC,CAAC,GAAG,CAAC,CAAC;MAC1BtC,IAAI,CAACwC,EAAE,IAAIsC,KAAK,IAAIxC,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,KAAK,MAAMtC,IAAI,IAAIkC,MAAM,EAAE;MACzBlC,IAAI,CAACI,WAAW,CAAC4B,IAAI,CAAClD,sBAAsB,CAAC;MAC7CkB,IAAI,CAACmB,WAAW,CAACa,IAAI,CAACrD,sBAAsB,CAAC;IAC/C;EACF;EAEA,MAAMoG,MAAM,GAAGvD,IAAI,CAAC4B,GAAG,CAAC,CAAC,EAAE5B,IAAI,CAACmD,KAAK,CAACzB,UAAU,CAAC,CAAC;EAClD,KAAK,IAAIZ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGyC,MAAM,EAAEzC,CAAC,IAAI,CAAC,EAAE;IAClC;AACJ;AACA;AACA;AACA;AACA;IACI,MAAMF,KAAK,GAAG,IAAI,IAAIE,CAAC;IACvB,MAAM0C,IAAI,GAAGxD,IAAI,CAAC4B,GAAG,CAAC,CAAC,GAAGhB,KAAK,EAAE,CAACE,CAAC,GAAG,CAAC,IAAIyC,MAAM,CAAC;IAElD,KAAK,IAAIE,CAAC,GAAGT,WAAW,GAAG,CAAC,EAAES,CAAC,IAAI,CAAC,EAAEA,CAAC,IAAI,CAAC,EAAE;MAC5C,MAAM/C,MAAM,GAAG9D,OAAO,CAAC6G,CAAC,CAAE;MAC1B,KAAK,MAAMjF,IAAI,IAAIkC,MAAM,EAAE;QACzB,IAAIgD,QAAQ,GAAG,CAAC;QAChB,IAAIC,MAAM,GAAG,CAAC;QACd,KAAK,MAAMjG,IAAI,IAAIc,IAAI,CAACI,WAAW,EAAE;UACnC;UACA;UACA;UACA,MAAMgF,IAAI,GAAGlG,IAAI,CAACC,KAAK,IAAID,IAAI,CAACH,MAAM,CAACiF,KAAK,GAAGhE,IAAI,CAACgE,KAAK,CAAC;UAC1DkB,QAAQ,IAAIpD,SAAS,CAAC9B,IAAI,EAAEd,IAAI,CAACH,MAAM,EAAE4C,OAAO,CAAC,GAAGyD,IAAI;UACxDD,MAAM,IAAIC,IAAI;QAChB;QACA,IAAI,EAAED,MAAM,GAAG,CAAC,CAAC,EAAE;QACnB,MAAM5C,KAAK,GAAG,CAAC2C,QAAQ,GAAGC,MAAM,GAAGnF,IAAI,CAACtB,EAAE,IAAI0D,KAAK;QACnDpC,IAAI,CAACtB,EAAE,IAAI6D,KAAK;QAChBvC,IAAI,CAACwC,EAAE,IAAID,KAAK;QAChBR,gBAAgB,CAAC/B,IAAI,CAAC;MACxB;MACAkC,MAAM,CAACF,IAAI,CAACzD,gBAAgB,CAAC;MAC7BmE,iBAAiB,CAACR,MAAM,EAAE8C,IAAI,EAAErD,OAAO,EAAEgB,MAAM,CAAC;IAClD;IAEA,KAAK,IAAIsC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGT,WAAW,EAAES,CAAC,IAAI,CAAC,EAAE;MACvC,MAAM/C,MAAM,GAAG9D,OAAO,CAAC6G,CAAC,CAAE;MAC1B,KAAK,MAAMjF,IAAI,IAAIkC,MAAM,EAAE;QACzB,IAAIgD,QAAQ,GAAG,CAAC;QAChB,IAAIC,MAAM,GAAG,CAAC;QACd,KAAK,MAAMjG,IAAI,IAAIc,IAAI,CAACmB,WAAW,EAAE;UACnC,MAAMiE,IAAI,GAAGlG,IAAI,CAACC,KAAK,IAAIa,IAAI,CAACgE,KAAK,GAAG9E,IAAI,CAACN,MAAM,CAACoF,KAAK,CAAC;UAC1DkB,QAAQ,IAAIxD,SAAS,CAACxC,IAAI,CAACN,MAAM,EAAEoB,IAAI,EAAE2B,OAAO,CAAC,GAAGyD,IAAI;UACxDD,MAAM,IAAIC,IAAI;QAChB;QACA,IAAI,EAAED,MAAM,GAAG,CAAC,CAAC,EAAE;QACnB,MAAM5C,KAAK,GAAG,CAAC2C,QAAQ,GAAGC,MAAM,GAAGnF,IAAI,CAACtB,EAAE,IAAI0D,KAAK;QACnDpC,IAAI,CAACtB,EAAE,IAAI6D,KAAK;QAChBvC,IAAI,CAACwC,EAAE,IAAID,KAAK;QAChBR,gBAAgB,CAAC/B,IAAI,CAAC;MACxB;MACAkC,MAAM,CAACF,IAAI,CAACzD,gBAAgB,CAAC;MAC7BmE,iBAAiB,CAACR,MAAM,EAAE8C,IAAI,EAAErD,OAAO,EAAEgB,MAAM,CAAC;IAClD;EACF;;EAEA;AACF;AACA;AACA;AACA;EACE,KAAK,MAAM3C,IAAI,IAAI9B,KAAK,EAAE;IACxB,IAAImH,GAAG,GAAGrF,IAAI,CAACtB,EAAE;IACjB,KAAK,MAAMQ,IAAI,IAAIc,IAAI,CAACI,WAAW,EAAE;MACnClB,IAAI,CAACR,EAAE,GAAG2G,GAAG,GAAGnG,IAAI,CAAC2C,KAAK,GAAG,CAAC;MAC9BwD,GAAG,IAAInG,IAAI,CAAC2C,KAAK;IACnB;IACA,IAAIyD,IAAI,GAAGtF,IAAI,CAACtB,EAAE;IAClB,KAAK,MAAMQ,IAAI,IAAIc,IAAI,CAACmB,WAAW,EAAE;MACnCjC,IAAI,CAACsD,EAAE,GAAG8C,IAAI,GAAGpG,IAAI,CAAC2C,KAAK,GAAG,CAAC;MAC/ByD,IAAI,IAAIpG,IAAI,CAAC2C,KAAK;IACpB;EACF;EAEA,MAAM0D,KAAK,GAAG,IAAI/B,GAAG,CAACtF,KAAK,CAACsH,GAAG,CAAC,CAACxF,IAAI,EAAEsC,CAAC,KAAK,CAACtC,IAAI,EAAEsC,CAAC,CAAC,CAAC,CAAC;EAExD,OAAO;IACLlE,OAAO,EAAEoG,WAAW;IACpBnG,OAAO;IACPH,KAAK,EAAEA,KAAK,CAACsH,GAAG,CAAExF,IAAI,KAAM;MAC1B2D,EAAE,EAAE3D,IAAI,CAAC2D,EAAE;MACX9E,KAAK,EAAEmB,IAAI,CAACnB,KAAK;MACjBmF,KAAK,EAAEhE,IAAI,CAACgE,KAAK;MACjB7E,KAAK,EAAEa,IAAI,CAACb,KAAK;MACjB8E,EAAE,EAAEjE,IAAI,CAACiE,EAAE;MACXC,EAAE,EAAElE,IAAI,CAACkE,EAAE;MACXxF,EAAE,EAAEsB,IAAI,CAACtB,EAAE;MACX8D,EAAE,EAAExC,IAAI,CAACwC;IACX,CAAC,CAAC,CAAC;IACHrE,KAAK,EAAEwC,IAAI,CAAC6E,GAAG,CAAC,CAACtG,IAAI,EAAEL,KAAK,MAAM;MAChCA,KAAK;MACL4E,KAAK,EAAEvE,IAAI,CAACuE,KAAK;MACjB7E,MAAM,EAAE2G,KAAK,CAAClB,GAAG,CAACnF,IAAI,CAACN,MAAM,CAAE;MAC/BG,MAAM,EAAEwG,KAAK,CAAClB,GAAG,CAACnF,IAAI,CAACH,MAAM,CAAE;MAC/BI,KAAK,EAAED,IAAI,CAACC,KAAK;MACjB0C,KAAK,EAAE3C,IAAI,CAAC2C,KAAK;MACjBnD,EAAE,EAAEQ,IAAI,CAACR,EAAE;MACX8D,EAAE,EAAEtD,IAAI,CAACsD;IACX,CAAC,CAAC;EACJ,CAAC;AACH","ignoreList":[]}
@@ -52,7 +52,7 @@
52
52
  * outline could only ignore. All four are drawn here rather than mapped.
53
53
  */
54
54
  import { createContext, useContext } from 'react';
55
- import { View } from 'react-native';
55
+ import { Platform, View } from 'react-native';
56
56
  import { HugeiconsIcon } from '@hugeicons/react-native';
57
57
  import Svg, { G, Path } from 'react-native-svg';
58
58
  import { useDirection } from "../hooks/use-direction.js";
@@ -160,8 +160,20 @@ function useResolvedColor(explicit, fallback) {
160
160
  return explicit ?? inherited ?? fallback;
161
161
  }
162
162
 
163
- /** Props for icons that must never be announced by a screen reader. */
164
- const decorative = {
163
+ /**
164
+ * Props for icons that must never be announced by a screen reader.
165
+ *
166
+ * Two sets, because the two platforms take the instruction differently.
167
+ * `accessibilityElementsHidden` and `importantForAccessibility` are native
168
+ * props: on web they reach the DOM `<svg>` untranslated, where React warns
169
+ * about the casing of the second one and neither has any effect — so the glyph
170
+ * stays in the accessibility tree inside every button and field that already
171
+ * carries its own name, and every icon on the page logs an error while it does.
172
+ * `aria-hidden` is what says it there.
173
+ */
174
+ const decorative = Platform.OS === 'web' ? {
175
+ 'aria-hidden': true
176
+ } : {
165
177
  accessibilityElementsHidden: true,
166
178
  importantForAccessibility: 'no-hide-descendants'
167
179
  };