panelui-native 0.106.0 → 0.107.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.
@@ -260,6 +260,7 @@ export const Button = /*#__PURE__*/forwardRef(({
260
260
  fullWidth,
261
261
  disabled,
262
262
  loading = false,
263
+ spinnerProps,
263
264
  startContent,
264
265
  endContent,
265
266
  native,
@@ -429,9 +430,17 @@ export const Button = /*#__PURE__*/forwardRef(({
429
430
  disabled: isDisabled,
430
431
  busy: loading
431
432
  },
432
- children: [loading ? /*#__PURE__*/_jsx(Spinner, {
433
+ children: [loading ?
434
+ /*#__PURE__*/
435
+ // The caller's props after the defaults, so a size they pick wins;
436
+ // the class goes through the slot so their tokens replace the
437
+ // variant's rather than competing with them.
438
+ _jsx(Spinner, {
433
439
  size: SPINNER_SIZE[resolvedSize ?? 'md'],
434
- className: spinner()
440
+ ...spinnerProps,
441
+ className: spinner({
442
+ className: spinnerProps?.className
443
+ })
435
444
  }) : startContent, textChildren(children, text => /*#__PURE__*/_jsx(Text, {
436
445
  className: label({
437
446
  className: labelClassName
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","forwardRef","useContext","View","tv","useCSSVariable","AnimatedPressable","Text","textChildren","cn","IconColorProvider","NativeHost","getNativeUI","getSwiftUIModifiers","Spinner","jsx","_jsx","jsxs","_jsxs","buttonVariants","slots","root","label","spinner","variants","variant","primary","secondary","outline","ghost","destructive","social","size","sm","md","lg","xl","icon","fullWidth","true","disabled","defaultVariants","ButtonGroupContext","ButtonGroupProvider","value","children","Provider","useButtonGroup","ATTACHED","SPINNER_SIZE","BUTTON_HIT_SLOP","CONTENT_COLOR_VAR","NATIVE_HEIGHT","NATIVE_ICON_PADDING","NATIVE_ICON_FRAME","NATIVE_CONTROL_SIZE","NATIVE_VARIANT","Button","className","labelClassName","loading","startContent","endContent","native","systemImage","glass","accessibilityState","props","ref","isDisabled","nativeUI","group","attached","resolvedVariant","resolvedSize","themedColor","contentColor","undefined","Host","NativeButton","RNHostView","isStringLabel","prominent","swiftUI","nativeModifiers","buttonStyle","buttonBorderShape","controlSize","filter","Boolean","nativeContent","hostFrame","width","height","host","matchContents","horizontal","ignoreSafeArea","style","modifiers","length","onPress","padding","alignItems","justifyContent","color","text","hitSlop","pressScale","accessibilityRole","busy","displayName"],"sourceRoot":"../../../../src","sources":["components/button/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createContext","forwardRef","useContext","View","tv","useCSSVariable","AnimatedPressable","Text","textChildren","cn","IconColorProvider","NativeHost","getNativeUI","getSwiftUIModifiers","Spinner","jsx","_jsx","jsxs","_jsxs","buttonVariants","slots","root","label","spinner","variants","variant","primary","secondary","outline","ghost","destructive","social","size","sm","md","lg","xl","icon","fullWidth","true","disabled","defaultVariants","ButtonGroupContext","ButtonGroupProvider","value","children","Provider","useButtonGroup","ATTACHED","SPINNER_SIZE","BUTTON_HIT_SLOP","CONTENT_COLOR_VAR","NATIVE_HEIGHT","NATIVE_ICON_PADDING","NATIVE_ICON_FRAME","NATIVE_CONTROL_SIZE","NATIVE_VARIANT","Button","className","labelClassName","loading","spinnerProps","startContent","endContent","native","systemImage","glass","accessibilityState","props","ref","isDisabled","nativeUI","group","attached","resolvedVariant","resolvedSize","themedColor","contentColor","undefined","Host","NativeButton","RNHostView","isStringLabel","prominent","swiftUI","nativeModifiers","buttonStyle","buttonBorderShape","controlSize","filter","Boolean","nativeContent","hostFrame","width","height","host","matchContents","horizontal","ignoreSafeArea","style","modifiers","length","onPress","padding","alignItems","justifyContent","color","text","hitSlop","pressScale","accessibilityRole","busy","displayName"],"sourceRoot":"../../../../src","sources":["components/button/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@ import { type ReactNode } from 'react';
2
2
  import { View } from 'react-native';
3
3
  import { type VariantProps } from 'tailwind-variants';
4
4
  import { type AnimatedPressableProps } from '../../primitives/animated-pressable.js';
5
+ import { type SpinnerProps } from '../spinner/index.js';
5
6
  declare const buttonVariants: import("tailwind-variants").TVReturnType<{
6
7
  variant: {
7
8
  primary: {
@@ -237,6 +238,20 @@ export interface ButtonProps extends Omit<AnimatedPressableProps, 'children' | '
237
238
  disabled?: boolean;
238
239
  /** Show a spinner and block presses while an action is in flight. */
239
240
  loading?: boolean;
241
+ /**
242
+ * Props for the spinner `loading` shows. Leave it unset and the spinner is
243
+ * drawn in the label's colour, at a size picked from the button's.
244
+ *
245
+ * `color` paints the turning arc and `trackColor` the faint ring under it —
246
+ * any colour React Native accepts. `className` takes theme tokens instead,
247
+ * such as `border-t-success`. On a filled button, set the track as well as
248
+ * the arc: the default track is a tint of the label colour, and beside an
249
+ * arc in another colour it reads as a second spinner.
250
+ *
251
+ * There is no `label`. The button already announces itself as busy while it
252
+ * loads, so a label on the spinner would announce the same wait twice.
253
+ */
254
+ spinnerProps?: Omit<SpinnerProps, 'label'>;
240
255
  /** Content rendered before the label (replaced by the spinner while loading). */
241
256
  startContent?: ReactNode;
242
257
  /** Content rendered after the label. */
@@ -248,8 +263,8 @@ export interface ButtonProps extends Omit<AnimatedPressableProps, 'children' | '
248
263
  * optional `@expo/ui` package; without it this prop does nothing.
249
264
  *
250
265
  * **Theme tokens do not apply** — the platform draws the button, so
251
- * `className`, `fullWidth`, `startContent`, `endContent` and `loading` are
252
- * all ignored. `variant` maps onto the nearest platform style:
266
+ * `className`, `fullWidth`, `startContent`, `endContent`, `loading` and
267
+ * `spinnerProps` are all ignored. `variant` maps onto the nearest platform style:
253
268
  * `primary`/`destructive` → filled, `outline` → outlined, everything else
254
269
  * → text; `size` sets the height.
255
270
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/button/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,wCAAqC,CAAC;AAO7C,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqCd,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAA7E,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAA7E,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAkCjF,CAAC;AAEH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAE9D,0BAA0B;AAC1B,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;AACvE,+CAA+C;AAC/C,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AAWjE,MAAM,WAAW,uBAAuB;IACtC,qDAAqD;IACrD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,oEAAoE;IACpE,QAAQ,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,SAAS,EAAE,OAAO,CAAC;CACpB;AAID,yEAAyE;AACzE,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,uBAAuB,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAEA;AAED,gFAAgF;AAChF,wBAAgB,cAAc,IAAI,uBAAuB,GAAG,IAAI,CAE/D;AAoCD,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,UAAU,CAAC,EAC3D,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;IACtC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iFAAiF;IACjF,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,wCAAwC;IACxC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAkFD,eAAO,MAAM,MAAM,8FA4MlB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/button/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAM,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,wCAAqC,CAAC;AAK7C,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,qBAAY,CAAC;AAExD,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;QAqCd,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAA7E,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAA7E,6EAA6E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAkCjF,CAAC;AAEH,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;AAE9D,0BAA0B;AAC1B,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;AACvE,+CAA+C;AAC/C,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AAWjE,MAAM,WAAW,uBAAuB;IACtC,qDAAqD;IACrD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,oEAAoE;IACpE,QAAQ,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,SAAS,EAAE,OAAO,CAAC;CACpB;AAID,yEAAyE;AACzE,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,uBAAuB,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAEA;AAED,gFAAgF;AAChF,wBAAgB,cAAc,IAAI,uBAAuB,GAAG,IAAI,CAE/D;AAoCD,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,sBAAsB,EAAE,UAAU,GAAG,UAAU,CAAC,EAC3D,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;IACtC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;;;;OAYG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAC3C,iFAAiF;IACjF,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,wCAAwC;IACxC,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAkFD,eAAO,MAAM,MAAM,8FAoNlB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "panelui-native",
3
- "version": "0.106.0",
3
+ "version": "0.107.0",
4
4
  "description": "High-performance React Native UI components for Expo. Semantic design tokens, powered by Uniwind (Tailwind v4) and Reanimated.",
5
5
  "main": "./lib/module/index.js",
6
6
  "module": "./lib/module/index.js",
@@ -10,7 +10,7 @@ import { Text, textChildren } from '../../primitives/text';
10
10
  import { cn } from '../../utils/cn';
11
11
  import { IconColorProvider } from '../../icons';
12
12
  import { NativeHost, getNativeUI, getSwiftUIModifiers } from '../../native';
13
- import { Spinner } from '../spinner';
13
+ import { Spinner, type SpinnerProps } from '../spinner';
14
14
 
15
15
  const buttonVariants = tv({
16
16
  slots: {
@@ -171,6 +171,20 @@ export interface ButtonProps
171
171
  disabled?: boolean;
172
172
  /** Show a spinner and block presses while an action is in flight. */
173
173
  loading?: boolean;
174
+ /**
175
+ * Props for the spinner `loading` shows. Leave it unset and the spinner is
176
+ * drawn in the label's colour, at a size picked from the button's.
177
+ *
178
+ * `color` paints the turning arc and `trackColor` the faint ring under it —
179
+ * any colour React Native accepts. `className` takes theme tokens instead,
180
+ * such as `border-t-success`. On a filled button, set the track as well as
181
+ * the arc: the default track is a tint of the label colour, and beside an
182
+ * arc in another colour it reads as a second spinner.
183
+ *
184
+ * There is no `label`. The button already announces itself as busy while it
185
+ * loads, so a label on the spinner would announce the same wait twice.
186
+ */
187
+ spinnerProps?: Omit<SpinnerProps, 'label'>;
174
188
  /** Content rendered before the label (replaced by the spinner while loading). */
175
189
  startContent?: ReactNode;
176
190
  /** Content rendered after the label. */
@@ -182,8 +196,8 @@ export interface ButtonProps
182
196
  * optional `@expo/ui` package; without it this prop does nothing.
183
197
  *
184
198
  * **Theme tokens do not apply** — the platform draws the button, so
185
- * `className`, `fullWidth`, `startContent`, `endContent` and `loading` are
186
- * all ignored. `variant` maps onto the nearest platform style:
199
+ * `className`, `fullWidth`, `startContent`, `endContent`, `loading` and
200
+ * `spinnerProps` are all ignored. `variant` maps onto the nearest platform style:
187
201
  * `primary`/`destructive` → filled, `outline` → outlined, everything else
188
202
  * → text; `size` sets the height.
189
203
  *
@@ -321,6 +335,7 @@ export const Button = forwardRef<View, ButtonProps>(
321
335
  fullWidth,
322
336
  disabled,
323
337
  loading = false,
338
+ spinnerProps,
324
339
  startContent,
325
340
  endContent,
326
341
  native,
@@ -502,7 +517,14 @@ export const Button = forwardRef<View, ButtonProps>(
502
517
  accessibilityState={{ ...accessibilityState, disabled: isDisabled, busy: loading }}
503
518
  >
504
519
  {loading ? (
505
- <Spinner size={SPINNER_SIZE[resolvedSize ?? 'md']} className={spinner()} />
520
+ // The caller's props after the defaults, so a size they pick wins;
521
+ // the class goes through the slot so their tokens replace the
522
+ // variant's rather than competing with them.
523
+ <Spinner
524
+ size={SPINNER_SIZE[resolvedSize ?? 'md']}
525
+ {...spinnerProps}
526
+ className={spinner({ className: spinnerProps?.className })}
527
+ />
506
528
  ) : (
507
529
  startContent
508
530
  )}