panelui-native 0.34.0 → 0.35.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  # PanelUI — React Native UI components for Expo, styled with Tailwind CSS
2
2
 
3
3
  **PanelUI** (`panelui-native`) is an accessible, high-performance React Native component
4
- library for Expo apps. 71 typed components — buttons, bottom sheets, dialogs, selects,
4
+ library for Expo apps. 76 typed components — buttons, bottom sheets, dialogs, selects,
5
5
  toasts, forms — styled with Tailwind CSS v4 and animated on the UI thread with Reanimated.
6
6
  Zero native code, so it runs in Expo Go.
7
7
 
@@ -222,6 +222,7 @@ you are done. Unstyled text on a white screen means the styles are not reaching
222
222
  | `Spinner` | Indeterminate loading indicator |
223
223
  | `Steps` | Stepper for multi-step flows |
224
224
  | `Surface` | Elevated container with a variant ladder |
225
+ | `Swipe` | A row that slides aside to reveal the things you can do to it |
225
226
  | `Switch` | Animated on/off toggle |
226
227
  | `Table` | Rows and columns that stay lined up, with sortable headers |
227
228
  | `Tabs` | Segmented navigation with an animated indicator |
@@ -62,25 +62,41 @@ const progressVariants = tv({
62
62
  size: 'md'
63
63
  }
64
64
  });
65
- function clamp(value) {
66
- 'worklet';
67
-
68
- if (value < 0) return 0;
69
- if (value > 100) return 100;
65
+ /** `value` held inside the range, so a stray number cannot escape the track. */
66
+ function clamp(value, min, max) {
67
+ if (!(value > min)) return min;
68
+ if (value > max) return max;
70
69
  return value;
71
70
  }
72
71
 
73
- /** The right-hand caption: an explicit override, an Intl fraction, or a percent. */
74
- function formatValue(value, valueLabel, formatOptions) {
72
+ /**
73
+ * How far along the bar is, 0–1. An empty or inverted range has no meaningful
74
+ * position in it, so it reads as empty rather than dividing by zero.
75
+ */
76
+ function fractionOf(value, min, max) {
77
+ const span = max - min;
78
+ if (!(span > 0)) return 0;
79
+ return clamp((value - min) / span, 0, 1);
80
+ }
81
+
82
+ /**
83
+ * The right-hand caption: an explicit override, an `Intl` rendering, or a
84
+ * rounded percent.
85
+ *
86
+ * A `percent` style is given the fraction, because that is what a percentage
87
+ * of the range means; every other style is given the value, because a currency
88
+ * or a byte count is a quantity and not a proportion.
89
+ */
90
+ function formatValue(value, fraction, valueLabel, formatOptions) {
75
91
  if (valueLabel != null) return valueLabel;
76
92
  if (formatOptions) {
77
93
  try {
78
- return new Intl.NumberFormat(undefined, formatOptions).format(value / 100);
94
+ return new Intl.NumberFormat(undefined, formatOptions).format(formatOptions.style === 'percent' ? fraction : value);
79
95
  } catch {
80
96
  // Some engines ship a partial Intl; fall through to the plain percent.
81
97
  }
82
98
  }
83
- return `${Math.round(value)}%`;
99
+ return `${Math.round(fraction * 100)}%`;
84
100
  }
85
101
 
86
102
  /**
@@ -90,12 +106,20 @@ function formatValue(value, valueLabel, formatOptions) {
90
106
  *
91
107
  * Pass `label` or `showValueLabel` to caption the bar with a header row; the
92
108
  * bare track renders when neither is set, so existing call sites are untouched.
109
+ *
110
+ * The value is read against `minValue` / `maxValue`, which default to 0 and
111
+ * 100 — so a percentage needs neither. Set them and the bar speaks in whatever
112
+ * the work is actually counted in: bytes uploaded, seats filled, points
113
+ * scored. Nothing has to be converted to a percent on the way in, and the
114
+ * screen reader is told the real range rather than a derived one.
93
115
  */
94
116
  export const Progress = /*#__PURE__*/forwardRef(({
95
117
  className,
96
118
  indicatorClassName,
97
119
  headerClassName,
98
120
  value = 0,
121
+ minValue = 0,
122
+ maxValue = 100,
99
123
  indeterminate = false,
100
124
  label,
101
125
  showValueLabel = false,
@@ -113,20 +137,32 @@ export const Progress = /*#__PURE__*/forwardRef(({
113
137
  // Yoga mirrors the track; the bar sliding along it is a transform, so it
114
138
  // has to be turned around itself.
115
139
  const sign = useDirectionSign();
116
- const progress = useSharedValue(clamp(value) / 100);
140
+ const target = fractionOf(value, minValue, maxValue);
141
+ const progress = useSharedValue(target);
117
142
  const slide = useSharedValue(0);
118
- const target = clamp(value) / 100;
143
+
144
+ /**
145
+ * The loop is tied to `indeterminate` alone. Restarting it whenever the
146
+ * value moved used to leave `withRepeat` cycling from wherever the bar had
147
+ * got to, so a bar that kept receiving values while looping ended up
148
+ * sweeping a shrinking sliver of the track instead of crossing it.
149
+ */
119
150
  useEffect(() => {
120
- if (indeterminate) {
121
- slide.value = withRepeat(withTiming(1, {
122
- duration: 1100,
123
- easing: Easing.inOut(Easing.ease)
124
- }), -1, false);
125
- return () => cancelAnimation(slide);
126
- }
151
+ if (!indeterminate) return undefined;
152
+ slide.value = 0;
153
+ slide.value = withRepeat(withTiming(1, {
154
+ duration: 1100,
155
+ easing: Easing.inOut(Easing.ease)
156
+ }), -1, false);
157
+ return () => cancelAnimation(slide);
158
+ }, [indeterminate, slide]);
159
+
160
+ // The fill follows the value, and picks up from wherever the loop left it
161
+ // when a bar stops being indeterminate mid-flight.
162
+ useEffect(() => {
163
+ if (indeterminate) return;
127
164
  progress.value = withSpring(target, SPRING);
128
- return undefined;
129
- }, [indeterminate, target, progress, slide]);
165
+ }, [indeterminate, target, progress]);
130
166
  const onLayout = event => {
131
167
  trackWidth.value = event.nativeEvent.layout.width;
132
168
  };
@@ -148,14 +184,18 @@ export const Progress = /*#__PURE__*/forwardRef(({
148
184
  // The value label is meaningless while looping, so it is dropped there.
149
185
  const showValue = showValueLabel && !indeterminate;
150
186
  const hasHeader = label != null || showValue;
187
+ const spoken = formatValue(clamp(value, minValue, maxValue), target, valueLabel, formatOptions);
151
188
  const track = /*#__PURE__*/_jsx(View, {
152
189
  ref: ref,
153
190
  accessibilityRole: "progressbar",
154
191
  accessibilityLabel: label,
155
192
  accessibilityValue: indeterminate ? undefined : {
156
- min: 0,
157
- max: 100,
158
- now: clamp(value)
193
+ min: minValue,
194
+ max: maxValue,
195
+ now: clamp(value, minValue, maxValue),
196
+ // Without this the range is read as a bare number. `text` is
197
+ // what carries the unit — the percent sign, the currency.
198
+ text: spoken
159
199
  },
160
200
  className: slots.track({
161
201
  className
@@ -185,7 +225,7 @@ export const Progress = /*#__PURE__*/forwardRef(({
185
225
  size: "sm",
186
226
  muted: true,
187
227
  className: cn(label == null && 'ms-auto'),
188
- children: formatValue(clamp(value), valueLabel, formatOptions)
228
+ children: spoken
189
229
  }) : null]
190
230
  }), track]
191
231
  });
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","useEffect","View","Animated","Easing","cancelAnimation","interpolate","useAnimatedStyle","useSharedValue","withRepeat","withSpring","withTiming","tv","useDirectionSign","Text","cn","jsx","_jsx","jsxs","_jsxs","SPRING","damping","stiffness","mass","INDETERMINATE_WIDTH","progressVariants","slots","root","header","track","indicator","variants","color","primary","success","warning","destructive","info","size","sm","md","lg","defaultVariants","clamp","value","formatValue","valueLabel","formatOptions","Intl","NumberFormat","undefined","format","Math","round","Progress","className","indicatorClassName","headerClassName","indeterminate","label","showValueLabel","props","ref","trackWidth","sign","progress","slide","target","duration","easing","inOut","ease","onLayout","event","nativeEvent","layout","width","determinateStyle","indeterminateStyle","barWidth","transform","translateX","showValue","hasHeader","accessibilityRole","accessibilityLabel","accessibilityValue","min","max","now","children","style","weight","numberOfLines","muted","displayName"],"sourceRoot":"../../../../src","sources":["components/progress/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,SAAS,QAAQ,OAAO;AAC7C,SAASC,IAAI,QAAgD,cAAc;AAC3E,OAAOC,QAAQ,IACbC,MAAM,EACNC,eAAe,EACfC,WAAW,EACXC,gBAAgB,EAChBC,cAAc,EACdC,UAAU,EACVC,UAAU,EACVC,UAAU,QACL,yBAAyB;AAChC,SAASC,EAAE,QAA2B,mBAAmB;AACzD,SAASC,gBAAgB,QAAQ,8BAA2B;AAC5D,SAASC,IAAI,QAAQ,0BAAuB;AAC5C,SAASC,EAAE,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpC,MAAMC,MAAM,GAAG;EAAEC,OAAO,EAAE,EAAE;EAAEC,SAAS,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAI,CAAU;AAClE;AACA,MAAMC,mBAAmB,GAAG,GAAG;AAE/B,MAAMC,gBAAgB,GAAGb,EAAE,CAAC;EAC1Bc,KAAK,EAAE;IACLC,IAAI,EAAE,cAAc;IACpBC,MAAM,EAAE,uCAAuC;IAC/CC,KAAK,EAAE,qCAAqC;IAC5CC,SAAS,EAAE;EACb,CAAC;EACDC,QAAQ,EAAE;IACRC,KAAK,EAAE;MACLC,OAAO,EAAE;QAAEJ,KAAK,EAAE,eAAe;QAAEC,SAAS,EAAE;MAAa,CAAC;MAC5DI,OAAO,EAAE;QAAEL,KAAK,EAAE,eAAe;QAAEC,SAAS,EAAE;MAAa,CAAC;MAC5DK,OAAO,EAAE;QAAEN,KAAK,EAAE,eAAe;QAAEC,SAAS,EAAE;MAAa,CAAC;MAC5DM,WAAW,EAAE;QAAEP,KAAK,EAAE,mBAAmB;QAAEC,SAAS,EAAE;MAAiB,CAAC;MACxEO,IAAI,EAAE;QAAER,KAAK,EAAE,YAAY;QAAEC,SAAS,EAAE;MAAU;IACpD,CAAC;IACDQ,IAAI,EAAE;MACJC,EAAE,EAAE;QAAEV,KAAK,EAAE;MAAQ,CAAC;MACtBW,EAAE,EAAE;QAAEX,KAAK,EAAE;MAAM,CAAC;MACpBY,EAAE,EAAE;QAAEZ,KAAK,EAAE;MAAM;IACrB;EACF,CAAC;EACDa,eAAe,EAAE;IACfV,KAAK,EAAE,SAAS;IAChBM,IAAI,EAAE;EACR;AACF,CAAC,CAAC;AAwCF,SAASK,KAAKA,CAACC,KAAa,EAAE;EAC5B,SAAS;;EACT,IAAIA,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC;EACvB,IAAIA,KAAK,GAAG,GAAG,EAAE,OAAO,GAAG;EAC3B,OAAOA,KAAK;AACd;;AAEA;AACA,SAASC,WAAWA,CAClBD,KAAa,EACbE,UAAmB,EACnBC,aAAwC,EACxC;EACA,IAAID,UAAU,IAAI,IAAI,EAAE,OAAOA,UAAU;EACzC,IAAIC,aAAa,EAAE;IACjB,IAAI;MACF,OAAO,IAAIC,IAAI,CAACC,YAAY,CAACC,SAAS,EAAEH,aAAa,CAAC,CAACI,MAAM,CAACP,KAAK,GAAG,GAAG,CAAC;IAC5E,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ;EACA,OAAO,GAAGQ,IAAI,CAACC,KAAK,CAACT,KAAK,CAAC,GAAG;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMU,QAAQ,gBAAGtD,UAAU,CAChC,CACE;EACEuD,SAAS;EACTC,kBAAkB;EAClBC,eAAe;EACfb,KAAK,GAAG,CAAC;EACTc,aAAa,GAAG,KAAK;EACrBC,KAAK;EACLC,cAAc,GAAG,KAAK;EACtBd,UAAU;EACVC,aAAa;EACbf,KAAK;EACLM,IAAI;EACJ,GAAGuB;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAMpC,KAAK,GAAGD,gBAAgB,CAAC;IAAEO,KAAK;IAAEM;EAAK,CAAC,CAAC;EAC/C,MAAMyB,UAAU,GAAGvD,cAAc,CAAC,CAAC,CAAC;EACpC;EACA;EACA,MAAMwD,IAAI,GAAGnD,gBAAgB,CAAC,CAAC;EAC/B,MAAMoD,QAAQ,GAAGzD,cAAc,CAACmC,KAAK,CAACC,KAAK,CAAC,GAAG,GAAG,CAAC;EACnD,MAAMsB,KAAK,GAAG1D,cAAc,CAAC,CAAC,CAAC;EAE/B,MAAM2D,MAAM,GAAGxB,KAAK,CAACC,KAAK,CAAC,GAAG,GAAG;EAEjC3C,SAAS,CAAC,MAAM;IACd,IAAIyD,aAAa,EAAE;MACjBQ,KAAK,CAACtB,KAAK,GAAGnC,UAAU,CACtBE,UAAU,CAAC,CAAC,EAAE;QAAEyD,QAAQ,EAAE,IAAI;QAAEC,MAAM,EAAEjE,MAAM,CAACkE,KAAK,CAAClE,MAAM,CAACmE,IAAI;MAAE,CAAC,CAAC,EACpE,CAAC,CAAC,EACF,KACF,CAAC;MACD,OAAO,MAAMlE,eAAe,CAAC6D,KAAK,CAAC;IACrC;IACAD,QAAQ,CAACrB,KAAK,GAAGlC,UAAU,CAACyD,MAAM,EAAE/C,MAAM,CAAC;IAC3C,OAAO8B,SAAS;EAClB,CAAC,EAAE,CAACQ,aAAa,EAAES,MAAM,EAAEF,QAAQ,EAAEC,KAAK,CAAC,CAAC;EAE5C,MAAMM,QAAQ,GAAIC,KAAwB,IAAK;IAC7CV,UAAU,CAACnB,KAAK,GAAG6B,KAAK,CAACC,WAAW,CAACC,MAAM,CAACC,KAAK;EACnD,CAAC;EAED,MAAMC,gBAAgB,GAAGtE,gBAAgB,CAAC,OAAO;IAC/CqE,KAAK,EAAEb,UAAU,CAACnB,KAAK,GAAGqB,QAAQ,CAACrB;EACrC,CAAC,CAAC,CAAC;EAEH,MAAMkC,kBAAkB,GAAGvE,gBAAgB,CAAC,MAAM;IAChD,MAAMwE,QAAQ,GAAGhB,UAAU,CAACnB,KAAK,GAAGpB,mBAAmB;IACvD,OAAO;MACLoD,KAAK,EAAEG,QAAQ;MACfC,SAAS,EAAE,CACT;QACE;QACA;QACAC,UAAU,EAAE3E,WAAW,CACrB4D,KAAK,CAACtB,KAAK,EACX,CAAC,CAAC,EAAE,CAAC,CAAC,EACNoB,IAAI,KAAK,CAAC,GACN,CAAC,CAACe,QAAQ,EAAEhB,UAAU,CAACnB,KAAK,CAAC,GAC7B,CAACmB,UAAU,CAACnB,KAAK,EAAE,CAACmC,QAAQ,CAClC;MACF,CAAC;IAEL,CAAC;EACH,CAAC,CAAC;;EAEF;EACA,MAAMG,SAAS,GAAGtB,cAAc,IAAI,CAACF,aAAa;EAClD,MAAMyB,SAAS,GAAGxB,KAAK,IAAI,IAAI,IAAIuB,SAAS;EAE5C,MAAMrD,KAAK,gBACTZ,IAAA,CAACf,IAAI;IACH4D,GAAG,EAAEA,GAAI;IACTsB,iBAAiB,EAAC,aAAa;IAC/BC,kBAAkB,EAAE1B,KAAM;IAC1B2B,kBAAkB,EAChB5B,aAAa,GAAGR,SAAS,GAAG;MAAEqC,GAAG,EAAE,CAAC;MAAEC,GAAG,EAAE,GAAG;MAAEC,GAAG,EAAE9C,KAAK,CAACC,KAAK;IAAE,CACnE;IACDW,SAAS,EAAE7B,KAAK,CAACG,KAAK,CAAC;MAAE0B;IAAU,CAAC,CAAE;IACtCiB,QAAQ,EAAEA,QAAS;IAAA,GACfX,KAAK;IAAA6B,QAAA,eAETzE,IAAA,CAACd,QAAQ,CAACD,IAAI;MACZyF,KAAK,EAAEjC,aAAa,GAAGoB,kBAAkB,GAAGD,gBAAiB;MAC7DtB,SAAS,EAAE7B,KAAK,CAACI,SAAS,CAAC;QAAEyB,SAAS,EAAEC;MAAmB,CAAC;IAAE,CAC/D;EAAC,CACE,CACP;EAED,IAAI,CAAC2B,SAAS,EAAE,OAAOtD,KAAK;EAE5B,oBACEV,KAAA,CAACjB,IAAI;IAACqD,SAAS,EAAE7B,KAAK,CAACC,IAAI,CAAC,CAAE;IAAA+D,QAAA,gBAC5BvE,KAAA,CAACjB,IAAI;MAACqD,SAAS,EAAE7B,KAAK,CAACE,MAAM,CAAC;QAAE2B,SAAS,EAAEE;MAAgB,CAAC,CAAE;MAAAiC,QAAA,GAC3D/B,KAAK,IAAI,IAAI,gBACZ1C,IAAA,CAACH,IAAI;QAACwB,IAAI,EAAC,IAAI;QAACsD,MAAM,EAAC,QAAQ;QAACC,aAAa,EAAE,CAAE;QAAAH,QAAA,EAC9C/B;MAAK,CACF,CAAC,gBAEP1C,IAAA,CAACf,IAAI,IAAE,CACR,EACAgF,SAAS,gBACRjE,IAAA,CAACH,IAAI;QAACwB,IAAI,EAAC,IAAI;QAACwD,KAAK;QAACvC,SAAS,EAAExC,EAAE,CAAC4C,KAAK,IAAI,IAAI,IAAI,SAAS,CAAE;QAAA+B,QAAA,EAC7D7C,WAAW,CAACF,KAAK,CAACC,KAAK,CAAC,EAAEE,UAAU,EAAEC,aAAa;MAAC,CACjD,CAAC,GACL,IAAI;IAAA,CACJ,CAAC,EACNlB,KAAK;EAAA,CACF,CAAC;AAEX,CACF,CAAC;AAEDyB,QAAQ,CAACyC,WAAW,GAAG,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","useEffect","View","Animated","Easing","cancelAnimation","interpolate","useAnimatedStyle","useSharedValue","withRepeat","withSpring","withTiming","tv","useDirectionSign","Text","cn","jsx","_jsx","jsxs","_jsxs","SPRING","damping","stiffness","mass","INDETERMINATE_WIDTH","progressVariants","slots","root","header","track","indicator","variants","color","primary","success","warning","destructive","info","size","sm","md","lg","defaultVariants","clamp","value","min","max","fractionOf","span","formatValue","fraction","valueLabel","formatOptions","Intl","NumberFormat","undefined","format","style","Math","round","Progress","className","indicatorClassName","headerClassName","minValue","maxValue","indeterminate","label","showValueLabel","props","ref","trackWidth","sign","target","progress","slide","duration","easing","inOut","ease","onLayout","event","nativeEvent","layout","width","determinateStyle","indeterminateStyle","barWidth","transform","translateX","showValue","hasHeader","spoken","accessibilityRole","accessibilityLabel","accessibilityValue","now","text","children","weight","numberOfLines","muted","displayName"],"sourceRoot":"../../../../src","sources":["components/progress/index.tsx"],"mappings":"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","ignoreList":[]}