panelui-native 0.66.1 → 0.71.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 +31 -1
- package/lib/module/components/accordion/index.js +28 -9
- package/lib/module/components/accordion/index.js.map +1 -1
- package/lib/module/components/area-chart/index.js +18 -1
- package/lib/module/components/area-chart/index.js.map +1 -1
- package/lib/module/components/bar-chart/index.js +18 -1
- package/lib/module/components/bar-chart/index.js.map +1 -1
- package/lib/module/components/button/index.js +14 -7
- package/lib/module/components/button/index.js.map +1 -1
- package/lib/module/components/candlestick-chart/index.js +18 -1
- package/lib/module/components/candlestick-chart/index.js.map +1 -1
- package/lib/module/components/collapsible/index.js +280 -0
- package/lib/module/components/collapsible/index.js.map +1 -0
- package/lib/module/components/flow/index.js +66 -3
- package/lib/module/components/flow/index.js.map +1 -1
- package/lib/module/components/form/index.js +7 -5
- package/lib/module/components/form/index.js.map +1 -1
- package/lib/module/components/form/typed-form.js +11 -0
- package/lib/module/components/form/typed-form.js.map +1 -0
- package/lib/module/components/form/use-form.js +4 -0
- package/lib/module/components/form/use-form.js.map +1 -1
- package/lib/module/components/heatmap-chart/index.js +27 -1
- package/lib/module/components/heatmap-chart/index.js.map +1 -1
- package/lib/module/components/line-chart/index.js +18 -1
- package/lib/module/components/line-chart/index.js.map +1 -1
- package/lib/module/components/live-line-chart/index.js +103 -9
- package/lib/module/components/live-line-chart/index.js.map +1 -1
- package/lib/module/components/live-line-chart/live-line-accessibility.js +47 -0
- package/lib/module/components/live-line-chart/live-line-accessibility.js.map +1 -0
- package/lib/module/components/live-line-chart/live-line-lifecycle.js +33 -0
- package/lib/module/components/live-line-chart/live-line-lifecycle.js.map +1 -0
- package/lib/module/components/marquee/index.js +194 -0
- package/lib/module/components/marquee/index.js.map +1 -0
- package/lib/module/components/message-scroller/index.js +172 -10
- package/lib/module/components/message-scroller/index.js.map +1 -1
- package/lib/module/components/message-scroller/message-scroller-math.js +23 -0
- package/lib/module/components/message-scroller/message-scroller-math.js.map +1 -1
- package/lib/module/components/meter/index.js +268 -0
- package/lib/module/components/meter/index.js.map +1 -0
- package/lib/module/components/meter/meter-scale.js +142 -0
- package/lib/module/components/meter/meter-scale.js.map +1 -0
- package/lib/module/components/planner/index.js +788 -0
- package/lib/module/components/planner/index.js.map +1 -0
- package/lib/module/components/planner/planner-announcement.js +30 -0
- package/lib/module/components/planner/planner-announcement.js.map +1 -0
- package/lib/module/components/planner/planner-entries.js +132 -0
- package/lib/module/components/planner/planner-entries.js.map +1 -0
- package/lib/module/components/planner/planner-grid-navigation.js +33 -0
- package/lib/module/components/planner/planner-grid-navigation.js.map +1 -0
- package/lib/module/components/planner/planner-lifecycle.js +45 -0
- package/lib/module/components/planner/planner-lifecycle.js.map +1 -0
- package/lib/module/components/popover/index.js +2 -2
- package/lib/module/components/popover/index.js.map +1 -1
- package/lib/module/components/radar-chart/index.js +18 -1
- package/lib/module/components/radar-chart/index.js.map +1 -1
- package/lib/module/components/scatter-chart/index.js +18 -1
- package/lib/module/components/scatter-chart/index.js.map +1 -1
- package/lib/module/components/skeleton/index.js +45 -7
- package/lib/module/components/skeleton/index.js.map +1 -1
- package/lib/module/components/spinner/index.js +63 -14
- package/lib/module/components/spinner/index.js.map +1 -1
- package/lib/module/components/time-picker/index.js +46 -21
- package/lib/module/components/time-picker/index.js.map +1 -1
- package/lib/module/components/time-picker/ruler-window.js +25 -0
- package/lib/module/components/time-picker/ruler-window.js.map +1 -0
- package/lib/module/hooks/breakpoint-contract.js +29 -0
- package/lib/module/hooks/breakpoint-contract.js.map +1 -0
- package/lib/module/hooks/index.js +1 -1
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/hooks/use-breakpoint.js +46 -1
- package/lib/module/hooks/use-breakpoint.js.map +1 -1
- package/lib/module/index.js +5 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/primitives/chart-accessibility.js +68 -0
- package/lib/module/primitives/chart-accessibility.js.map +1 -0
- package/lib/module/primitives/focus-restoration-store.js +52 -0
- package/lib/module/primitives/focus-restoration-store.js.map +1 -0
- package/lib/module/primitives/portal.js +36 -2
- package/lib/module/primitives/portal.js.map +1 -1
- package/lib/typescript/src/components/accordion/index.d.ts +4 -0
- package/lib/typescript/src/components/accordion/index.d.ts.map +1 -1
- package/lib/typescript/src/components/area-chart/index.d.ts +2 -1
- package/lib/typescript/src/components/area-chart/index.d.ts.map +1 -1
- package/lib/typescript/src/components/bar-chart/index.d.ts +2 -1
- package/lib/typescript/src/components/bar-chart/index.d.ts.map +1 -1
- package/lib/typescript/src/components/button/index.d.ts.map +1 -1
- package/lib/typescript/src/components/candlestick-chart/index.d.ts +2 -1
- package/lib/typescript/src/components/candlestick-chart/index.d.ts.map +1 -1
- package/lib/typescript/src/components/collapsible/index.d.ts +76 -0
- package/lib/typescript/src/components/collapsible/index.d.ts.map +1 -0
- package/lib/typescript/src/components/flow/index.d.ts +7 -1
- package/lib/typescript/src/components/flow/index.d.ts.map +1 -1
- package/lib/typescript/src/components/form/index.d.ts +18 -5
- package/lib/typescript/src/components/form/index.d.ts.map +1 -1
- package/lib/typescript/src/components/form/typed-form.d.ts +7 -0
- package/lib/typescript/src/components/form/typed-form.d.ts.map +1 -0
- package/lib/typescript/src/components/form/use-form.d.ts +4 -0
- package/lib/typescript/src/components/form/use-form.d.ts.map +1 -1
- package/lib/typescript/src/components/heatmap-chart/index.d.ts +2 -1
- package/lib/typescript/src/components/heatmap-chart/index.d.ts.map +1 -1
- package/lib/typescript/src/components/line-chart/index.d.ts +2 -1
- package/lib/typescript/src/components/line-chart/index.d.ts.map +1 -1
- package/lib/typescript/src/components/live-line-chart/index.d.ts +21 -7
- package/lib/typescript/src/components/live-line-chart/index.d.ts.map +1 -1
- package/lib/typescript/src/components/live-line-chart/live-line-accessibility.d.ts +22 -0
- package/lib/typescript/src/components/live-line-chart/live-line-accessibility.d.ts.map +1 -0
- package/lib/typescript/src/components/live-line-chart/live-line-lifecycle.d.ts +23 -0
- package/lib/typescript/src/components/live-line-chart/live-line-lifecycle.d.ts.map +1 -0
- package/lib/typescript/src/components/marquee/index.d.ts +73 -0
- package/lib/typescript/src/components/marquee/index.d.ts.map +1 -0
- package/lib/typescript/src/components/message-scroller/index.d.ts +30 -2
- package/lib/typescript/src/components/message-scroller/index.d.ts.map +1 -1
- package/lib/typescript/src/components/message-scroller/message-scroller-math.d.ts +10 -0
- package/lib/typescript/src/components/message-scroller/message-scroller-math.d.ts.map +1 -1
- package/lib/typescript/src/components/meter/index.d.ts +273 -0
- package/lib/typescript/src/components/meter/index.d.ts.map +1 -0
- package/lib/typescript/src/components/meter/meter-scale.d.ts +96 -0
- package/lib/typescript/src/components/meter/meter-scale.d.ts.map +1 -0
- package/lib/typescript/src/components/planner/index.d.ts +274 -0
- package/lib/typescript/src/components/planner/index.d.ts.map +1 -0
- package/lib/typescript/src/components/planner/planner-announcement.d.ts +15 -0
- package/lib/typescript/src/components/planner/planner-announcement.d.ts.map +1 -0
- package/lib/typescript/src/components/planner/planner-entries.d.ts +75 -0
- package/lib/typescript/src/components/planner/planner-entries.d.ts.map +1 -0
- package/lib/typescript/src/components/planner/planner-grid-navigation.d.ts +4 -0
- package/lib/typescript/src/components/planner/planner-grid-navigation.d.ts.map +1 -0
- package/lib/typescript/src/components/planner/planner-lifecycle.d.ts +20 -0
- package/lib/typescript/src/components/planner/planner-lifecycle.d.ts.map +1 -0
- package/lib/typescript/src/components/radar-chart/index.d.ts +4 -0
- package/lib/typescript/src/components/radar-chart/index.d.ts.map +1 -1
- package/lib/typescript/src/components/scatter-chart/index.d.ts +2 -1
- package/lib/typescript/src/components/scatter-chart/index.d.ts.map +1 -1
- package/lib/typescript/src/components/skeleton/index.d.ts +25 -2
- package/lib/typescript/src/components/skeleton/index.d.ts.map +1 -1
- package/lib/typescript/src/components/spinner/index.d.ts +25 -2
- package/lib/typescript/src/components/spinner/index.d.ts.map +1 -1
- package/lib/typescript/src/components/time-picker/index.d.ts +5 -6
- package/lib/typescript/src/components/time-picker/index.d.ts.map +1 -1
- package/lib/typescript/src/components/time-picker/ruler-window.d.ts +12 -0
- package/lib/typescript/src/components/time-picker/ruler-window.d.ts.map +1 -0
- package/lib/typescript/src/hooks/breakpoint-contract.d.ts +6 -0
- package/lib/typescript/src/hooks/breakpoint-contract.d.ts.map +1 -0
- package/lib/typescript/src/hooks/index.d.ts +1 -1
- package/lib/typescript/src/hooks/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/use-breakpoint.d.ts +22 -0
- package/lib/typescript/src/hooks/use-breakpoint.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +5 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/primitives/chart-accessibility.d.ts +33 -0
- package/lib/typescript/src/primitives/chart-accessibility.d.ts.map +1 -0
- package/lib/typescript/src/primitives/focus-restoration-store.d.ts +24 -0
- package/lib/typescript/src/primitives/focus-restoration-store.d.ts.map +1 -0
- package/lib/typescript/src/primitives/portal.d.ts +4 -0
- package/lib/typescript/src/primitives/portal.d.ts.map +1 -1
- package/lib/typescript/types/form-api.type-test.d.ts +2 -0
- package/lib/typescript/types/form-api.type-test.d.ts.map +1 -0
- package/package.json +63 -4
- package/src/components/accordion/index.tsx +31 -8
- package/src/components/area-chart/index.tsx +27 -2
- package/src/components/bar-chart/index.tsx +27 -2
- package/src/components/button/index.tsx +11 -4
- package/src/components/candlestick-chart/index.tsx +30 -2
- package/src/components/collapsible/index.tsx +278 -0
- package/src/components/flow/index.tsx +93 -14
- package/src/components/form/index.tsx +32 -5
- package/src/components/form/typed-form.ts +13 -0
- package/src/components/form/use-form.ts +9 -0
- package/src/components/heatmap-chart/index.tsx +49 -3
- package/src/components/line-chart/index.tsx +27 -2
- package/src/components/live-line-chart/index.tsx +130 -13
- package/src/components/live-line-chart/live-line-accessibility.ts +61 -0
- package/src/components/live-line-chart/live-line-lifecycle.ts +63 -0
- package/src/components/marquee/index.tsx +232 -0
- package/src/components/message-scroller/index.tsx +234 -6
- package/src/components/message-scroller/message-scroller-math.ts +38 -0
- package/src/components/meter/index.tsx +341 -0
- package/src/components/meter/meter-scale.ts +185 -0
- package/src/components/planner/index.tsx +997 -0
- package/src/components/planner/planner-announcement.ts +37 -0
- package/src/components/planner/planner-entries.ts +155 -0
- package/src/components/planner/planner-grid-navigation.ts +45 -0
- package/src/components/planner/planner-lifecycle.ts +76 -0
- package/src/components/popover/index.tsx +3 -3
- package/src/components/radar-chart/index.tsx +24 -0
- package/src/components/scatter-chart/index.tsx +27 -2
- package/src/components/skeleton/index.tsx +59 -5
- package/src/components/spinner/index.tsx +80 -13
- package/src/components/time-picker/index.tsx +57 -29
- package/src/components/time-picker/ruler-window.ts +24 -0
- package/src/hooks/breakpoint-contract.ts +31 -0
- package/src/hooks/index.ts +4 -0
- package/src/hooks/use-breakpoint.ts +61 -10
- package/src/index.ts +43 -0
- package/src/primitives/chart-accessibility.ts +102 -0
- package/src/primitives/focus-restoration-store.ts +70 -0
- package/src/primitives/portal.tsx +34 -2
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Where a reading sits on a meter's scale, and what colour it has earned.
|
|
5
|
+
*
|
|
6
|
+
* Kept apart from the component because it is the part that can be wrong
|
|
7
|
+
* without looking wrong: a threshold picked in the wrong order, or a segment
|
|
8
|
+
* count that rounds a real reading down to nothing, is a meter that lies
|
|
9
|
+
* quietly. None of it touches React, so it can be tested on its own.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/** The token a meter can be painted with. */
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* A point on the scale, and the colour the meter takes from there upwards.
|
|
16
|
+
*
|
|
17
|
+
* `from` is in the same units as `value` — not a percentage of the range — so
|
|
18
|
+
* a threshold on a 0–8 GB meter is written in gigabytes.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/** A bounded block count keeps malformed input from allocating without limit. */
|
|
22
|
+
export const MAX_METER_SEGMENTS = 100;
|
|
23
|
+
/**
|
|
24
|
+
* Make a public scale safe for layout, animation and native accessibility.
|
|
25
|
+
* Invalid bounds fall back to their documented defaults; if those still do
|
|
26
|
+
* not produce a positive span, the scale honestly collapses at its floor.
|
|
27
|
+
*/
|
|
28
|
+
export function normalizeScale(value, min, max) {
|
|
29
|
+
const floor = Number.isFinite(min) ? min : 0;
|
|
30
|
+
const candidateMax = Number.isFinite(max) ? max : 100;
|
|
31
|
+
const ceiling = candidateMax > floor ? candidateMax : floor;
|
|
32
|
+
const held = Number.isNaN(value) ? floor : value === Number.POSITIVE_INFINITY ? ceiling : value === Number.NEGATIVE_INFINITY ? floor : Math.min(Math.max(value, floor), ceiling);
|
|
33
|
+
const magnitude = Math.max(Math.abs(floor), Math.abs(ceiling), 1);
|
|
34
|
+
const position = ceiling > floor ? (held / magnitude - floor / magnitude) / (ceiling / magnitude - floor / magnitude) : 0;
|
|
35
|
+
return {
|
|
36
|
+
min: floor,
|
|
37
|
+
max: ceiling,
|
|
38
|
+
value: held,
|
|
39
|
+
fraction: Math.min(Math.max(position, 0), 1)
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** Positive counts are whole and bounded; zero means the continuous meter. */
|
|
44
|
+
export function normalizeSegments(segments) {
|
|
45
|
+
if (segments == null || !Number.isFinite(segments) || !(segments > 0)) return 0;
|
|
46
|
+
return Math.min(Math.floor(segments), MAX_METER_SEGMENTS);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** `value` held inside the scale, so a stray number cannot escape the track. */
|
|
50
|
+
export function clamp(value, min, max) {
|
|
51
|
+
return normalizeScale(value, min, max).value;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* How far up the scale the value sits, 0–1. An empty or inverted range has no
|
|
56
|
+
* meaningful position in it, so it reads as empty rather than dividing by zero.
|
|
57
|
+
*/
|
|
58
|
+
export function fractionOf(value, min, max) {
|
|
59
|
+
return normalizeScale(value, min, max).fraction;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The colour the reading has earned: the highest threshold at or below the
|
|
64
|
+
* value, or the base colour when it has reached none of them.
|
|
65
|
+
*
|
|
66
|
+
* Highest-wins rather than first-wins, so the caller can list thresholds in
|
|
67
|
+
* any order and get the same answer. A rule that depended on the order would
|
|
68
|
+
* make a reordered array a silent behaviour change.
|
|
69
|
+
*/
|
|
70
|
+
export function colorFor(value, base, thresholds) {
|
|
71
|
+
if (!thresholds?.length) return base;
|
|
72
|
+
let winner;
|
|
73
|
+
for (const threshold of thresholds) {
|
|
74
|
+
if (!Number.isFinite(threshold.from)) continue;
|
|
75
|
+
if (value < threshold.from) continue;
|
|
76
|
+
if (!winner || threshold.from > winner.from) winner = threshold;
|
|
77
|
+
}
|
|
78
|
+
return winner?.color ?? base;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* How many blocks of a segmented meter are lit.
|
|
83
|
+
*
|
|
84
|
+
* Rounded up, so any reading above the floor lights at least one. Rounding
|
|
85
|
+
* down would leave the whole first block of a four-block meter dark, and "a
|
|
86
|
+
* little" looking like "none" is the reading a meter can least afford to get
|
|
87
|
+
* wrong.
|
|
88
|
+
*/
|
|
89
|
+
export function litSegments(fraction, segments) {
|
|
90
|
+
const count = normalizeSegments(segments);
|
|
91
|
+
if (count === 0 || Number.isNaN(fraction) || fraction <= 0) return 0;
|
|
92
|
+
if (!Number.isFinite(fraction) || fraction >= 1) return count;
|
|
93
|
+
return Math.min(Math.ceil(fraction * count), count);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* The value caption: an explicit override, an `Intl` rendering, or a rounded
|
|
98
|
+
* percent.
|
|
99
|
+
*
|
|
100
|
+
* A `percent` style is given the fraction, because that is what a percentage
|
|
101
|
+
* of the scale means; every other style is given the value, because a byte
|
|
102
|
+
* count or a score is a quantity and not a proportion.
|
|
103
|
+
*/
|
|
104
|
+
export function formatValue(value, fraction, valueLabel, formatOptions) {
|
|
105
|
+
if (valueLabel != null) return valueLabel;
|
|
106
|
+
if (formatOptions) {
|
|
107
|
+
try {
|
|
108
|
+
return new Intl.NumberFormat(undefined, formatOptions).format(formatOptions.style === 'percent' ? fraction : value);
|
|
109
|
+
} catch {
|
|
110
|
+
// Some engines ship a partial Intl; fall through to the plain percent.
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return `${Math.round(fraction * 100)}%`;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* The meter's single spoken contract. Visual treatments such as segments,
|
|
118
|
+
* thresholds and motion do not belong here: they do not change the reading.
|
|
119
|
+
*/
|
|
120
|
+
export function meterSemantics({
|
|
121
|
+
value,
|
|
122
|
+
fraction,
|
|
123
|
+
minValue,
|
|
124
|
+
maxValue,
|
|
125
|
+
label,
|
|
126
|
+
accessibilityLabel,
|
|
127
|
+
valueLabel,
|
|
128
|
+
formatOptions
|
|
129
|
+
}) {
|
|
130
|
+
const text = formatValue(value, fraction, valueLabel, formatOptions);
|
|
131
|
+
return {
|
|
132
|
+
label: accessibilityLabel ?? label,
|
|
133
|
+
text,
|
|
134
|
+
value: {
|
|
135
|
+
min: minValue,
|
|
136
|
+
max: maxValue,
|
|
137
|
+
now: value,
|
|
138
|
+
text
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=meter-scale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MAX_METER_SEGMENTS","normalizeScale","value","min","max","floor","Number","isFinite","candidateMax","ceiling","held","isNaN","POSITIVE_INFINITY","NEGATIVE_INFINITY","Math","magnitude","abs","position","fraction","normalizeSegments","segments","clamp","fractionOf","colorFor","base","thresholds","length","winner","threshold","from","color","litSegments","count","ceil","formatValue","valueLabel","formatOptions","Intl","NumberFormat","undefined","format","style","round","meterSemantics","minValue","maxValue","label","accessibilityLabel","text","now"],"sourceRoot":"../../../../src","sources":["components/meter/meter-scale.ts"],"mappings":"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","ignoreList":[]}
|