@xaui/native 0.9.1-alpha.13 → 0.9.1-alpha.14

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.
@@ -2,7 +2,7 @@ import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
3
  import * as react_native from 'react-native';
4
4
  import { StyleProp, TextStyle, ViewStyle, TextProps, PressableStateCallbackType } from 'react-native';
5
- import { a as IconContextValue, b as IconProps, w as TextStyleProps, P as PressableFeedbackProps, x as ViewStyleProps, g as Recipe, o as SlotStyles, c as AnimationProp } from '../../create-recipe-3OPwcC6P.js';
5
+ import { a as IconContextValue, b as IconProps, w as TextStyleProps, P as PressableFeedbackProps, x as ViewStyleProps, g as Recipe, o as SlotStyles, c as AnimationProp } from '../../create-recipe-DD9W6m9b.js';
6
6
  import { S as Size, R as RadiusKey, g as XAUITheme } from '../../theme.type-C9bFJKFm.js';
7
7
  import 'react-native-reanimated';
8
8
 
@@ -55,11 +55,15 @@ type ButtonOwnProps = {
55
55
  type ButtonBehaviourProps = Omit<PressableFeedbackProps, 'isPressed' | 'isDisabled' | 'style' | 'children'>;
56
56
  /**
57
57
  * R14 — the button's own props, the press behaviour it forwards, and every `ViewStyle`
58
- * key the two do not already claim. `height` therefore beats the height `size` chose and
59
- * `width="100%"` is what replaced `fullWidth`, both because the style props resolve after
60
- * the recipe. That is the escape hatch, not the normal path.
58
+ * key its own vocabulary does not already claim. `height` therefore beats the height
59
+ * `size` chose and `width="100%"` is what replaced `fullWidth`, both because the style
60
+ * props resolve after the recipe. That is the escape hatch, not the normal path.
61
+ *
62
+ * `PressableFeedback` carries the same keys, so the third term is redundant today. It
63
+ * stays because it is the `Button` that owes them: a root states the rule for its own
64
+ * node rather than inheriting it from whatever it happens to render.
61
65
  */
62
- type ButtonProps = ButtonOwnProps & ButtonBehaviourProps & Omit<ViewStyleProps, keyof ButtonOwnProps | keyof ButtonBehaviourProps>;
66
+ type ButtonProps = ButtonOwnProps & ButtonBehaviourProps & Omit<ViewStyleProps, keyof ButtonOwnProps>;
63
67
  /** `Text`'s own props win over the `TextStyle` keys of the same name (R14). */
64
68
  type ButtonLabelProps = TextProps & Omit<TextStyleProps, keyof TextProps> & {
65
69
  children?: ReactNode;
@@ -212,54 +216,14 @@ declare const Button: react.ForwardRefExoticComponent<{
212
216
  style?: react_native.StyleProp<react_native.ViewStyle> | ((state: react_native.PressableStateCallbackType) => react_native.StyleProp<react_native.ViewStyle>);
213
217
  children?: react.ReactNode;
214
218
  } & {
215
- id?: string | undefined | undefined;
216
- onLayout?: ((event: react_native.LayoutChangeEvent) => void) | undefined | undefined;
217
- testID?: string | undefined | undefined;
218
- nativeID?: string | undefined | undefined;
219
- accessible?: boolean | undefined | undefined;
220
- accessibilityActions?: readonly Readonly<{
221
- name: react_native.AccessibilityActionName | string;
222
- label?: string | undefined;
223
- }>[] | undefined;
224
- accessibilityLabel?: string | undefined | undefined;
225
- 'aria-label'?: string | undefined | undefined;
226
- accessibilityRole?: react_native.AccessibilityRole | undefined;
227
- accessibilityState?: react_native.AccessibilityState | undefined;
228
- 'aria-busy'?: boolean | undefined | undefined;
229
- 'aria-checked'?: boolean | "mixed" | undefined | undefined;
230
- 'aria-disabled'?: boolean | undefined | undefined;
231
- 'aria-expanded'?: boolean | undefined | undefined;
232
- 'aria-selected'?: boolean | undefined | undefined;
233
- accessibilityHint?: string | undefined | undefined;
234
- accessibilityValue?: react_native.AccessibilityValue | undefined;
235
- 'aria-valuemax'?: number | undefined;
236
- 'aria-valuemin'?: number | undefined;
237
- 'aria-valuenow'?: number | undefined;
238
- 'aria-valuetext'?: string | undefined;
239
- onAccessibilityAction?: ((event: react_native.AccessibilityActionEvent) => void) | undefined | undefined;
240
- importantForAccessibility?: ("auto" | "yes" | "no" | "no-hide-descendants") | undefined | undefined;
241
- 'aria-hidden'?: boolean | undefined | undefined;
242
- 'aria-modal'?: boolean | undefined | undefined;
243
- role?: react_native.Role | undefined;
244
- accessibilityLabelledBy?: string | string[] | undefined | undefined;
245
- 'aria-labelledby'?: string | undefined | undefined;
246
- accessibilityLiveRegion?: "none" | "polite" | "assertive" | undefined | undefined;
247
- 'aria-live'?: ("polite" | "assertive" | "off") | undefined | undefined;
248
- screenReaderFocusable?: boolean | undefined | undefined;
249
- accessibilityElementsHidden?: boolean | undefined | undefined;
250
- accessibilityViewIsModal?: boolean | undefined | undefined;
251
- onAccessibilityEscape?: (() => void) | undefined | undefined;
252
- onAccessibilityTap?: (() => void) | undefined | undefined;
253
- onMagicTap?: (() => void) | undefined | undefined;
254
- accessibilityIgnoresInvertColors?: boolean | undefined | undefined;
255
- accessibilityLanguage?: string | undefined | undefined;
256
- accessibilityShowsLargeContentViewer?: boolean | undefined | undefined;
257
- accessibilityLargeContentTitle?: string | undefined | undefined;
258
- accessibilityRespondsToUserInteraction?: boolean | undefined | undefined;
259
219
  hitSlop?: number | react_native.Insets | null | undefined;
220
+ id?: string | undefined | undefined;
260
221
  needsOffscreenAlphaCompositing?: boolean | undefined | undefined;
222
+ onLayout?: ((event: react_native.LayoutChangeEvent) => void) | undefined | undefined;
261
223
  pointerEvents?: "box-none" | "none" | "box-only" | "auto" | undefined | undefined;
262
224
  removeClippedSubviews?: boolean | undefined | undefined;
225
+ testID?: string | undefined | undefined;
226
+ nativeID?: string | undefined | undefined;
263
227
  collapsable?: boolean | undefined | undefined;
264
228
  collapsableChildren?: boolean | undefined | undefined;
265
229
  onBlur?: null | ((event: react_native.NativeSyntheticEvent<react_native.TargetedEvent>) => void) | undefined | undefined;
@@ -303,6 +267,46 @@ declare const Button: react.ForwardRefExoticComponent<{
303
267
  onPointerDownCapture?: ((event: react_native.PointerEvent) => void) | undefined | undefined;
304
268
  onPointerUp?: ((event: react_native.PointerEvent) => void) | undefined | undefined;
305
269
  onPointerUpCapture?: ((event: react_native.PointerEvent) => void) | undefined | undefined;
270
+ accessible?: boolean | undefined | undefined;
271
+ accessibilityActions?: readonly Readonly<{
272
+ name: react_native.AccessibilityActionName | string;
273
+ label?: string | undefined;
274
+ }>[] | undefined;
275
+ accessibilityLabel?: string | undefined | undefined;
276
+ 'aria-label'?: string | undefined | undefined;
277
+ accessibilityRole?: react_native.AccessibilityRole | undefined;
278
+ accessibilityState?: react_native.AccessibilityState | undefined;
279
+ 'aria-busy'?: boolean | undefined | undefined;
280
+ 'aria-checked'?: boolean | "mixed" | undefined | undefined;
281
+ 'aria-disabled'?: boolean | undefined | undefined;
282
+ 'aria-expanded'?: boolean | undefined | undefined;
283
+ 'aria-selected'?: boolean | undefined | undefined;
284
+ accessibilityHint?: string | undefined | undefined;
285
+ accessibilityValue?: react_native.AccessibilityValue | undefined;
286
+ 'aria-valuemax'?: number | undefined;
287
+ 'aria-valuemin'?: number | undefined;
288
+ 'aria-valuenow'?: number | undefined;
289
+ 'aria-valuetext'?: string | undefined;
290
+ onAccessibilityAction?: ((event: react_native.AccessibilityActionEvent) => void) | undefined | undefined;
291
+ importantForAccessibility?: ("auto" | "yes" | "no" | "no-hide-descendants") | undefined | undefined;
292
+ 'aria-hidden'?: boolean | undefined | undefined;
293
+ 'aria-modal'?: boolean | undefined | undefined;
294
+ role?: react_native.Role | undefined;
295
+ accessibilityLabelledBy?: string | string[] | undefined | undefined;
296
+ 'aria-labelledby'?: string | undefined | undefined;
297
+ accessibilityLiveRegion?: "none" | "polite" | "assertive" | undefined | undefined;
298
+ 'aria-live'?: ("polite" | "assertive" | "off") | undefined | undefined;
299
+ screenReaderFocusable?: boolean | undefined | undefined;
300
+ accessibilityElementsHidden?: boolean | undefined | undefined;
301
+ accessibilityViewIsModal?: boolean | undefined | undefined;
302
+ onAccessibilityEscape?: (() => void) | undefined | undefined;
303
+ onAccessibilityTap?: (() => void) | undefined | undefined;
304
+ onMagicTap?: (() => void) | undefined | undefined;
305
+ accessibilityIgnoresInvertColors?: boolean | undefined | undefined;
306
+ accessibilityLanguage?: string | undefined | undefined;
307
+ accessibilityShowsLargeContentViewer?: boolean | undefined | undefined;
308
+ accessibilityLargeContentTitle?: string | undefined | undefined;
309
+ accessibilityRespondsToUserInteraction?: boolean | undefined | undefined;
306
310
  onHoverIn?: null | ((event: react_native.MouseEvent) => void) | undefined | undefined;
307
311
  onHoverOut?: null | ((event: react_native.MouseEvent) => void) | undefined | undefined;
308
312
  onPress?: null | ((event: react_native.GestureResponderEvent) => void) | undefined | undefined;
@@ -318,9 +322,320 @@ declare const Button: react.ForwardRefExoticComponent<{
318
322
  android_ripple?: react_native.PressableAndroidRippleConfig | null | undefined;
319
323
  testOnly_pressed?: null | boolean | undefined | undefined;
320
324
  unstable_pressDelay?: number | undefined | undefined;
325
+ backfaceVisibility?: "visible" | "hidden" | undefined | undefined;
326
+ backgroundColor?: react_native.ColorValue | undefined;
327
+ borderBlockColor?: react_native.ColorValue | undefined;
328
+ borderBlockEndColor?: react_native.ColorValue | undefined;
329
+ borderBlockStartColor?: react_native.ColorValue | undefined;
330
+ borderBottomColor?: react_native.ColorValue | undefined;
331
+ borderBottomEndRadius?: string | react_native.AnimatableNumericValue | undefined;
332
+ borderBottomStartRadius?: string | react_native.AnimatableNumericValue | undefined;
333
+ borderColor?: react_native.ColorValue | undefined;
334
+ borderCurve?: "circular" | "continuous" | undefined | undefined;
335
+ borderEndColor?: react_native.ColorValue | undefined;
336
+ borderEndEndRadius?: string | react_native.AnimatableNumericValue | undefined;
337
+ borderEndStartRadius?: string | react_native.AnimatableNumericValue | undefined;
338
+ borderRadius?: string | react_native.AnimatableNumericValue | undefined;
339
+ borderStartColor?: react_native.ColorValue | undefined;
340
+ borderStartEndRadius?: string | react_native.AnimatableNumericValue | undefined;
341
+ borderStartStartRadius?: string | react_native.AnimatableNumericValue | undefined;
342
+ borderStyle?: "solid" | "dotted" | "dashed" | undefined | undefined;
343
+ borderTopColor?: react_native.ColorValue | undefined;
344
+ borderTopEndRadius?: string | react_native.AnimatableNumericValue | undefined;
345
+ borderTopStartRadius?: string | react_native.AnimatableNumericValue | undefined;
346
+ outlineColor?: react_native.ColorValue | undefined;
347
+ outlineOffset?: react_native.AnimatableNumericValue | undefined;
348
+ outlineStyle?: "solid" | "dotted" | "dashed" | undefined | undefined;
349
+ outlineWidth?: react_native.AnimatableNumericValue | undefined;
350
+ opacity?: react_native.AnimatableNumericValue | undefined;
351
+ elevation?: number | undefined | undefined;
352
+ isolation?: "auto" | "isolate" | undefined | undefined;
353
+ cursor?: react_native.CursorValue | undefined;
354
+ boxShadow?: string | readonly react_native.BoxShadowValue[] | undefined;
355
+ filter?: string | readonly react_native.FilterFunction[] | undefined;
356
+ mixBlendMode?: react_native.BlendMode | undefined;
357
+ experimental_backgroundImage?: string | readonly react_native.GradientValue[] | undefined;
358
+ alignContent?: "flex-start" | "flex-end" | "center" | "stretch" | "space-between" | "space-around" | "space-evenly" | undefined | undefined;
359
+ alignItems?: react_native.FlexAlignType | undefined;
360
+ alignSelf?: "auto" | react_native.FlexAlignType | undefined;
361
+ aspectRatio?: number | string | undefined | undefined;
362
+ borderBottomWidth?: number | undefined | undefined;
363
+ borderEndWidth?: number | undefined | undefined;
364
+ borderStartWidth?: number | undefined | undefined;
365
+ borderTopWidth?: number | undefined | undefined;
366
+ borderWidth?: number | undefined | undefined;
367
+ bottom?: react_native.DimensionValue | undefined;
368
+ boxSizing?: "border-box" | "content-box" | undefined | undefined;
369
+ display?: "none" | "flex" | "contents" | undefined | undefined;
370
+ end?: react_native.DimensionValue | undefined;
371
+ flex?: number | undefined | undefined;
372
+ flexBasis?: react_native.DimensionValue | undefined;
373
+ flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined | undefined;
374
+ rowGap?: number | string | undefined | undefined;
375
+ gap?: number | string | undefined | undefined;
376
+ columnGap?: number | string | undefined | undefined;
377
+ flexGrow?: number | undefined | undefined;
378
+ flexShrink?: number | undefined | undefined;
379
+ flexWrap?: "wrap" | "nowrap" | "wrap-reverse" | undefined | undefined;
380
+ height?: react_native.DimensionValue | undefined;
381
+ justifyContent?: "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly" | undefined | undefined;
382
+ margin?: react_native.DimensionValue | undefined;
383
+ marginBottom?: react_native.DimensionValue | undefined;
384
+ marginEnd?: react_native.DimensionValue | undefined;
385
+ marginHorizontal?: react_native.DimensionValue | undefined;
386
+ marginStart?: react_native.DimensionValue | undefined;
387
+ marginTop?: react_native.DimensionValue | undefined;
388
+ marginVertical?: react_native.DimensionValue | undefined;
389
+ maxHeight?: react_native.DimensionValue | undefined;
390
+ maxWidth?: react_native.DimensionValue | undefined;
391
+ minHeight?: react_native.DimensionValue | undefined;
392
+ minWidth?: react_native.DimensionValue | undefined;
393
+ overflow?: "visible" | "hidden" | "scroll" | undefined | undefined;
394
+ padding?: react_native.DimensionValue | undefined;
395
+ paddingBottom?: react_native.DimensionValue | undefined;
396
+ paddingEnd?: react_native.DimensionValue | undefined;
397
+ paddingHorizontal?: react_native.DimensionValue | undefined;
398
+ paddingStart?: react_native.DimensionValue | undefined;
399
+ paddingTop?: react_native.DimensionValue | undefined;
400
+ paddingVertical?: react_native.DimensionValue | undefined;
401
+ position?: "absolute" | "relative" | "static" | undefined | undefined;
402
+ start?: react_native.DimensionValue | undefined;
403
+ top?: react_native.DimensionValue | undefined;
404
+ width?: react_native.DimensionValue | undefined;
405
+ zIndex?: number | undefined | undefined;
406
+ direction?: "inherit" | "ltr" | "rtl" | undefined | undefined;
407
+ inset?: react_native.DimensionValue | undefined;
408
+ insetBlock?: react_native.DimensionValue | undefined;
409
+ insetBlockEnd?: react_native.DimensionValue | undefined;
410
+ insetBlockStart?: react_native.DimensionValue | undefined;
411
+ insetInline?: react_native.DimensionValue | undefined;
412
+ insetInlineEnd?: react_native.DimensionValue | undefined;
413
+ insetInlineStart?: react_native.DimensionValue | undefined;
414
+ marginBlock?: react_native.DimensionValue | undefined;
415
+ marginBlockEnd?: react_native.DimensionValue | undefined;
416
+ marginBlockStart?: react_native.DimensionValue | undefined;
417
+ marginInline?: react_native.DimensionValue | undefined;
418
+ marginInlineEnd?: react_native.DimensionValue | undefined;
419
+ marginInlineStart?: react_native.DimensionValue | undefined;
420
+ paddingBlock?: react_native.DimensionValue | undefined;
421
+ paddingBlockEnd?: react_native.DimensionValue | undefined;
422
+ paddingBlockStart?: react_native.DimensionValue | undefined;
423
+ paddingInline?: react_native.DimensionValue | undefined;
424
+ paddingInlineEnd?: react_native.DimensionValue | undefined;
425
+ paddingInlineStart?: react_native.DimensionValue | undefined;
426
+ shadowColor?: react_native.ColorValue | undefined;
427
+ shadowOffset?: Readonly<{
428
+ width: number;
429
+ height: number;
430
+ }> | undefined;
431
+ shadowOpacity?: react_native.AnimatableNumericValue | undefined;
432
+ shadowRadius?: number | undefined | undefined;
433
+ transform?: string | readonly (({
434
+ scaleX: react_native.AnimatableNumericValue;
435
+ } & {
436
+ scaleY?: undefined;
437
+ translateX?: undefined;
438
+ translateY?: undefined;
439
+ perspective?: undefined;
440
+ rotate?: undefined;
441
+ rotateX?: undefined;
442
+ rotateY?: undefined;
443
+ rotateZ?: undefined;
444
+ scale?: undefined;
445
+ skewX?: undefined;
446
+ skewY?: undefined;
447
+ matrix?: undefined;
448
+ }) | ({
449
+ scaleY: react_native.AnimatableNumericValue;
450
+ } & {
451
+ scaleX?: undefined;
452
+ translateX?: undefined;
453
+ translateY?: undefined;
454
+ perspective?: undefined;
455
+ rotate?: undefined;
456
+ rotateX?: undefined;
457
+ rotateY?: undefined;
458
+ rotateZ?: undefined;
459
+ scale?: undefined;
460
+ skewX?: undefined;
461
+ skewY?: undefined;
462
+ matrix?: undefined;
463
+ }) | ({
464
+ translateX: react_native.AnimatableNumericValue | `${number}%`;
465
+ } & {
466
+ scaleX?: undefined;
467
+ scaleY?: undefined;
468
+ translateY?: undefined;
469
+ perspective?: undefined;
470
+ rotate?: undefined;
471
+ rotateX?: undefined;
472
+ rotateY?: undefined;
473
+ rotateZ?: undefined;
474
+ scale?: undefined;
475
+ skewX?: undefined;
476
+ skewY?: undefined;
477
+ matrix?: undefined;
478
+ }) | ({
479
+ translateY: react_native.AnimatableNumericValue | `${number}%`;
480
+ } & {
481
+ scaleX?: undefined;
482
+ scaleY?: undefined;
483
+ translateX?: undefined;
484
+ perspective?: undefined;
485
+ rotate?: undefined;
486
+ rotateX?: undefined;
487
+ rotateY?: undefined;
488
+ rotateZ?: undefined;
489
+ scale?: undefined;
490
+ skewX?: undefined;
491
+ skewY?: undefined;
492
+ matrix?: undefined;
493
+ }) | ({
494
+ perspective: react_native.AnimatableNumericValue;
495
+ } & {
496
+ scaleX?: undefined;
497
+ scaleY?: undefined;
498
+ translateX?: undefined;
499
+ translateY?: undefined;
500
+ rotate?: undefined;
501
+ rotateX?: undefined;
502
+ rotateY?: undefined;
503
+ rotateZ?: undefined;
504
+ scale?: undefined;
505
+ skewX?: undefined;
506
+ skewY?: undefined;
507
+ matrix?: undefined;
508
+ }) | ({
509
+ rotate: react_native.AnimatableStringValue;
510
+ } & {
511
+ scaleX?: undefined;
512
+ scaleY?: undefined;
513
+ translateX?: undefined;
514
+ translateY?: undefined;
515
+ perspective?: undefined;
516
+ rotateX?: undefined;
517
+ rotateY?: undefined;
518
+ rotateZ?: undefined;
519
+ scale?: undefined;
520
+ skewX?: undefined;
521
+ skewY?: undefined;
522
+ matrix?: undefined;
523
+ }) | ({
524
+ rotateX: react_native.AnimatableStringValue;
525
+ } & {
526
+ scaleX?: undefined;
527
+ scaleY?: undefined;
528
+ translateX?: undefined;
529
+ translateY?: undefined;
530
+ perspective?: undefined;
531
+ rotate?: undefined;
532
+ rotateY?: undefined;
533
+ rotateZ?: undefined;
534
+ scale?: undefined;
535
+ skewX?: undefined;
536
+ skewY?: undefined;
537
+ matrix?: undefined;
538
+ }) | ({
539
+ rotateY: react_native.AnimatableStringValue;
540
+ } & {
541
+ scaleX?: undefined;
542
+ scaleY?: undefined;
543
+ translateX?: undefined;
544
+ translateY?: undefined;
545
+ perspective?: undefined;
546
+ rotate?: undefined;
547
+ rotateX?: undefined;
548
+ rotateZ?: undefined;
549
+ scale?: undefined;
550
+ skewX?: undefined;
551
+ skewY?: undefined;
552
+ matrix?: undefined;
553
+ }) | ({
554
+ rotateZ: react_native.AnimatableStringValue;
555
+ } & {
556
+ scaleX?: undefined;
557
+ scaleY?: undefined;
558
+ translateX?: undefined;
559
+ translateY?: undefined;
560
+ perspective?: undefined;
561
+ rotate?: undefined;
562
+ rotateX?: undefined;
563
+ rotateY?: undefined;
564
+ scale?: undefined;
565
+ skewX?: undefined;
566
+ skewY?: undefined;
567
+ matrix?: undefined;
568
+ }) | ({
569
+ scale: react_native.AnimatableNumericValue;
570
+ } & {
571
+ scaleX?: undefined;
572
+ scaleY?: undefined;
573
+ translateX?: undefined;
574
+ translateY?: undefined;
575
+ perspective?: undefined;
576
+ rotate?: undefined;
577
+ rotateX?: undefined;
578
+ rotateY?: undefined;
579
+ rotateZ?: undefined;
580
+ skewX?: undefined;
581
+ skewY?: undefined;
582
+ matrix?: undefined;
583
+ }) | ({
584
+ skewX: react_native.AnimatableStringValue;
585
+ } & {
586
+ scaleX?: undefined;
587
+ scaleY?: undefined;
588
+ translateX?: undefined;
589
+ translateY?: undefined;
590
+ perspective?: undefined;
591
+ rotate?: undefined;
592
+ rotateX?: undefined;
593
+ rotateY?: undefined;
594
+ rotateZ?: undefined;
595
+ scale?: undefined;
596
+ skewY?: undefined;
597
+ matrix?: undefined;
598
+ }) | ({
599
+ skewY: react_native.AnimatableStringValue;
600
+ } & {
601
+ scaleX?: undefined;
602
+ scaleY?: undefined;
603
+ translateX?: undefined;
604
+ translateY?: undefined;
605
+ perspective?: undefined;
606
+ rotate?: undefined;
607
+ rotateX?: undefined;
608
+ rotateY?: undefined;
609
+ rotateZ?: undefined;
610
+ scale?: undefined;
611
+ skewX?: undefined;
612
+ matrix?: undefined;
613
+ }) | ({
614
+ matrix: react_native.AnimatableNumericValue[];
615
+ } & {
616
+ scaleX?: undefined;
617
+ scaleY?: undefined;
618
+ translateX?: undefined;
619
+ translateY?: undefined;
620
+ perspective?: undefined;
621
+ rotate?: undefined;
622
+ rotateX?: undefined;
623
+ rotateY?: undefined;
624
+ rotateZ?: undefined;
625
+ scale?: undefined;
626
+ skewX?: undefined;
627
+ skewY?: undefined;
628
+ }))[] | undefined;
629
+ transformOrigin?: string | (string | number)[] | undefined;
630
+ transformMatrix?: number[] | undefined;
631
+ rotation?: react_native.AnimatableNumericValue | undefined;
632
+ scaleX?: react_native.AnimatableNumericValue | undefined;
633
+ scaleY?: react_native.AnimatableNumericValue | undefined;
634
+ translateX?: react_native.AnimatableNumericValue | undefined;
635
+ translateY?: react_native.AnimatableNumericValue | undefined;
321
636
  asChild?: boolean | undefined;
322
637
  animation?: AnimationProp | undefined;
323
- } & Omit<ViewStyleProps, "id" | "onLayout" | "testID" | "nativeID" | "accessible" | "accessibilityActions" | "accessibilityLabel" | "aria-label" | "accessibilityRole" | "accessibilityState" | "aria-busy" | "aria-checked" | "aria-disabled" | "aria-expanded" | "aria-selected" | "accessibilityHint" | "accessibilityValue" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "onAccessibilityAction" | "importantForAccessibility" | "aria-hidden" | "aria-modal" | "role" | "accessibilityLabelledBy" | "aria-labelledby" | "accessibilityLiveRegion" | "aria-live" | "screenReaderFocusable" | "accessibilityElementsHidden" | "accessibilityViewIsModal" | "onAccessibilityEscape" | "onAccessibilityTap" | "onMagicTap" | "accessibilityIgnoresInvertColors" | "accessibilityLanguage" | "accessibilityShowsLargeContentViewer" | "accessibilityLargeContentTitle" | "accessibilityRespondsToUserInteraction" | "hitSlop" | "needsOffscreenAlphaCompositing" | "pointerEvents" | "removeClippedSubviews" | "collapsable" | "collapsableChildren" | "onBlur" | "onFocus" | "renderToHardwareTextureAndroid" | "focusable" | "tabIndex" | "shouldRasterizeIOS" | "isTVSelectable" | "hasTVPreferredFocus" | "tvParallaxShiftDistanceX" | "tvParallaxShiftDistanceY" | "tvParallaxTiltAngle" | "tvParallaxMagnification" | "onStartShouldSetResponder" | "onMoveShouldSetResponder" | "onResponderEnd" | "onResponderGrant" | "onResponderReject" | "onResponderMove" | "onResponderRelease" | "onResponderStart" | "onResponderTerminationRequest" | "onResponderTerminate" | "onStartShouldSetResponderCapture" | "onMoveShouldSetResponderCapture" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "onTouchCancel" | "onTouchEndCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerUp" | "onPointerUpCapture" | "onHoverIn" | "onHoverOut" | "onPress" | "onPressIn" | "onPressOut" | "onLongPress" | "cancelable" | "delayHoverIn" | "delayHoverOut" | "delayLongPress" | "pressRetentionOffset" | "android_disableSound" | "android_ripple" | "testOnly_pressed" | "unstable_pressDelay" | "asChild" | "animation" | keyof {
638
+ } & Omit<ViewStyleProps, keyof {
324
639
  variant?: ButtonVariant;
325
640
  size?: ButtonSize;
326
641
  radius?: RadiusKey;
@@ -2,8 +2,8 @@ import {
2
2
  Button,
3
3
  buttonRecipe,
4
4
  useButton
5
- } from "../../chunk-RWLODK55.js";
6
- import "../../chunk-B3EAZ2CC.js";
5
+ } from "../../chunk-H2USQQUD.js";
6
+ import "../../chunk-CLU6QDYC.js";
7
7
  import "../../chunk-XJARE6SC.js";
8
8
  export {
9
9
  Button,
@@ -1,8 +1,36 @@
1
1
  import { ComponentType, ReactNode } from 'react';
2
- import { ImageSourcePropType, StyleProp, ImageStyle, PressableProps, ViewStyle, TextStyle } from 'react-native';
2
+ import { ImageStyle, TextStyle, ViewStyle, ImageSourcePropType, StyleProp, PressableProps } from 'react-native';
3
3
  import { SharedValue } from 'react-native-reanimated';
4
4
  import { g as XAUITheme, X as XAUIColors } from './theme.type-C9bFJKFm.cjs';
5
5
 
6
+ /**
7
+ * R13 — React Native mirrors a layout under RTL through the Start/End properties and only
8
+ * those. A props API is exactly where someone writes `paddingLeft` without thinking, so
9
+ * the type removes the temptation instead of leaving it to a review.
10
+ */
11
+ type DirectionalStyleKey = 'left' | 'right' | 'paddingLeft' | 'paddingRight' | 'marginLeft' | 'marginRight' | 'borderLeftWidth' | 'borderRightWidth' | 'borderLeftColor' | 'borderRightColor' | 'borderTopLeftRadius' | 'borderTopRightRadius' | 'borderBottomLeftRadius' | 'borderBottomRightRadius';
12
+ /**
13
+ * `pointerEvents` is a style key *and* a `View` prop. R14 says the component's own prop
14
+ * wins, so it stays the prop it has always been and is not exposed twice — the one name
15
+ * where the two vocabularies collide.
16
+ */
17
+ type ComponentOwnedStyleKey = 'pointerEvents';
18
+ /**
19
+ * The style keys of a node, exposed as props (R14). Not a maintained list: it derives
20
+ * from the React Native type, minus what R13 forbids.
21
+ *
22
+ * ```ts
23
+ * type CardProps = ViewStyleProps & { variant?: CardVariant }
24
+ * ```
25
+ */
26
+ type StyleProps<Style> = Omit<Style, DirectionalStyleKey | ComponentOwnedStyleKey>;
27
+ /** A root, or any slot that renders a view. */
28
+ type ViewStyleProps = StyleProps<ViewStyle>;
29
+ /** A text slot — `color`, `fontSize`, `letterSpacing`… */
30
+ type TextStyleProps = StyleProps<TextStyle>;
31
+ /** An image slot — `resizeMode`, `tintColor`… */
32
+ type ImageStyleProps = StyleProps<ImageStyle>;
33
+
6
34
  /**
7
35
  * The props Lucide, Ionicons and `react-native-vector-icons` all accept — the shape
8
36
  * `as` is handed. It is a convention rather than an interface anyone published, which is
@@ -12,7 +40,12 @@ type IconComponentProps = {
12
40
  size?: number;
13
41
  color?: string;
14
42
  };
15
- type IconProps = {
43
+ /**
44
+ * R14 reaches the **`source` form only**, exactly like `style` below and for the same
45
+ * reason: it is the one of the three forms where we render the node. On the other two,
46
+ * `size` and `color` are what shapes the icon.
47
+ */
48
+ type IconProps = ImageStyleProps & {
16
49
  /** An icon component. `size` and `color` are injected into it. */
17
50
  as?: ComponentType<IconComponentProps>;
18
51
  /** A raw `react-native-svg` element, cloned with the resolved size and colour. */
@@ -59,7 +92,12 @@ type ResolvedAnimation = {
59
92
  /** Propagated to descendants through context. */
60
93
  disableAll: boolean;
61
94
  };
62
- type PressableFeedbackProps = Omit<PressableProps, 'style' | 'children' | 'disabled'> & {
95
+ /**
96
+ * R14 — it renders a `Pressable`, so it takes that node's style keys as props. The
97
+ * primitive every pressable component in the library is built on cannot be the one place
98
+ * where `padding={16}` has to become an object again.
99
+ */
100
+ type PressableFeedbackProps = Omit<PressableProps, 'style' | 'children' | 'disabled'> & ViewStyleProps & {
63
101
  /** Controlled: the root owns the state, because its recipe resolves on it (R5). */
64
102
  isPressed?: boolean;
65
103
  /** R8: `disabled` is not part of the public vocabulary, `isX` is. */
@@ -154,34 +192,6 @@ type FeedbackContext = {
154
192
  waves?: readonly [RippleWave, RippleWave];
155
193
  };
156
194
 
157
- /**
158
- * R13 — React Native mirrors a layout under RTL through the Start/End properties and only
159
- * those. A props API is exactly where someone writes `paddingLeft` without thinking, so
160
- * the type removes the temptation instead of leaving it to a review.
161
- */
162
- type DirectionalStyleKey = 'left' | 'right' | 'paddingLeft' | 'paddingRight' | 'marginLeft' | 'marginRight' | 'borderLeftWidth' | 'borderRightWidth' | 'borderLeftColor' | 'borderRightColor' | 'borderTopLeftRadius' | 'borderTopRightRadius' | 'borderBottomLeftRadius' | 'borderBottomRightRadius';
163
- /**
164
- * `pointerEvents` is a style key *and* a `View` prop. R14 says the component's own prop
165
- * wins, so it stays the prop it has always been and is not exposed twice — the one name
166
- * where the two vocabularies collide.
167
- */
168
- type ComponentOwnedStyleKey = 'pointerEvents';
169
- /**
170
- * The style keys of a node, exposed as props (R14). Not a maintained list: it derives
171
- * from the React Native type, minus what R13 forbids.
172
- *
173
- * ```ts
174
- * type CardProps = ViewStyleProps & { variant?: CardVariant }
175
- * ```
176
- */
177
- type StyleProps<Style> = Omit<Style, DirectionalStyleKey | ComponentOwnedStyleKey>;
178
- /** A root, or any slot that renders a view. */
179
- type ViewStyleProps = StyleProps<ViewStyle>;
180
- /** A text slot — `color`, `fontSize`, `letterSpacing`… */
181
- type TextStyleProps = StyleProps<TextStyle>;
182
- /** An image slot — `resizeMode`, `tintColor`… */
183
- type ImageStyleProps = StyleProps<ImageStyle>;
184
-
185
195
  /**
186
196
  * A slot is a view or a text node, and a recipe writes one object per slot, so the two
187
197
  * RN style shapes are merged rather than discriminated per slot.
@@ -1,8 +1,36 @@
1
1
  import { ComponentType, ReactNode } from 'react';
2
- import { ImageSourcePropType, StyleProp, ImageStyle, PressableProps, ViewStyle, TextStyle } from 'react-native';
2
+ import { ImageStyle, TextStyle, ViewStyle, ImageSourcePropType, StyleProp, PressableProps } from 'react-native';
3
3
  import { SharedValue } from 'react-native-reanimated';
4
4
  import { g as XAUITheme, X as XAUIColors } from './theme.type-C9bFJKFm.js';
5
5
 
6
+ /**
7
+ * R13 — React Native mirrors a layout under RTL through the Start/End properties and only
8
+ * those. A props API is exactly where someone writes `paddingLeft` without thinking, so
9
+ * the type removes the temptation instead of leaving it to a review.
10
+ */
11
+ type DirectionalStyleKey = 'left' | 'right' | 'paddingLeft' | 'paddingRight' | 'marginLeft' | 'marginRight' | 'borderLeftWidth' | 'borderRightWidth' | 'borderLeftColor' | 'borderRightColor' | 'borderTopLeftRadius' | 'borderTopRightRadius' | 'borderBottomLeftRadius' | 'borderBottomRightRadius';
12
+ /**
13
+ * `pointerEvents` is a style key *and* a `View` prop. R14 says the component's own prop
14
+ * wins, so it stays the prop it has always been and is not exposed twice — the one name
15
+ * where the two vocabularies collide.
16
+ */
17
+ type ComponentOwnedStyleKey = 'pointerEvents';
18
+ /**
19
+ * The style keys of a node, exposed as props (R14). Not a maintained list: it derives
20
+ * from the React Native type, minus what R13 forbids.
21
+ *
22
+ * ```ts
23
+ * type CardProps = ViewStyleProps & { variant?: CardVariant }
24
+ * ```
25
+ */
26
+ type StyleProps<Style> = Omit<Style, DirectionalStyleKey | ComponentOwnedStyleKey>;
27
+ /** A root, or any slot that renders a view. */
28
+ type ViewStyleProps = StyleProps<ViewStyle>;
29
+ /** A text slot — `color`, `fontSize`, `letterSpacing`… */
30
+ type TextStyleProps = StyleProps<TextStyle>;
31
+ /** An image slot — `resizeMode`, `tintColor`… */
32
+ type ImageStyleProps = StyleProps<ImageStyle>;
33
+
6
34
  /**
7
35
  * The props Lucide, Ionicons and `react-native-vector-icons` all accept — the shape
8
36
  * `as` is handed. It is a convention rather than an interface anyone published, which is
@@ -12,7 +40,12 @@ type IconComponentProps = {
12
40
  size?: number;
13
41
  color?: string;
14
42
  };
15
- type IconProps = {
43
+ /**
44
+ * R14 reaches the **`source` form only**, exactly like `style` below and for the same
45
+ * reason: it is the one of the three forms where we render the node. On the other two,
46
+ * `size` and `color` are what shapes the icon.
47
+ */
48
+ type IconProps = ImageStyleProps & {
16
49
  /** An icon component. `size` and `color` are injected into it. */
17
50
  as?: ComponentType<IconComponentProps>;
18
51
  /** A raw `react-native-svg` element, cloned with the resolved size and colour. */
@@ -59,7 +92,12 @@ type ResolvedAnimation = {
59
92
  /** Propagated to descendants through context. */
60
93
  disableAll: boolean;
61
94
  };
62
- type PressableFeedbackProps = Omit<PressableProps, 'style' | 'children' | 'disabled'> & {
95
+ /**
96
+ * R14 — it renders a `Pressable`, so it takes that node's style keys as props. The
97
+ * primitive every pressable component in the library is built on cannot be the one place
98
+ * where `padding={16}` has to become an object again.
99
+ */
100
+ type PressableFeedbackProps = Omit<PressableProps, 'style' | 'children' | 'disabled'> & ViewStyleProps & {
63
101
  /** Controlled: the root owns the state, because its recipe resolves on it (R5). */
64
102
  isPressed?: boolean;
65
103
  /** R8: `disabled` is not part of the public vocabulary, `isX` is. */
@@ -154,34 +192,6 @@ type FeedbackContext = {
154
192
  waves?: readonly [RippleWave, RippleWave];
155
193
  };
156
194
 
157
- /**
158
- * R13 — React Native mirrors a layout under RTL through the Start/End properties and only
159
- * those. A props API is exactly where someone writes `paddingLeft` without thinking, so
160
- * the type removes the temptation instead of leaving it to a review.
161
- */
162
- type DirectionalStyleKey = 'left' | 'right' | 'paddingLeft' | 'paddingRight' | 'marginLeft' | 'marginRight' | 'borderLeftWidth' | 'borderRightWidth' | 'borderLeftColor' | 'borderRightColor' | 'borderTopLeftRadius' | 'borderTopRightRadius' | 'borderBottomLeftRadius' | 'borderBottomRightRadius';
163
- /**
164
- * `pointerEvents` is a style key *and* a `View` prop. R14 says the component's own prop
165
- * wins, so it stays the prop it has always been and is not exposed twice — the one name
166
- * where the two vocabularies collide.
167
- */
168
- type ComponentOwnedStyleKey = 'pointerEvents';
169
- /**
170
- * The style keys of a node, exposed as props (R14). Not a maintained list: it derives
171
- * from the React Native type, minus what R13 forbids.
172
- *
173
- * ```ts
174
- * type CardProps = ViewStyleProps & { variant?: CardVariant }
175
- * ```
176
- */
177
- type StyleProps<Style> = Omit<Style, DirectionalStyleKey | ComponentOwnedStyleKey>;
178
- /** A root, or any slot that renders a view. */
179
- type ViewStyleProps = StyleProps<ViewStyle>;
180
- /** A text slot — `color`, `fontSize`, `letterSpacing`… */
181
- type TextStyleProps = StyleProps<TextStyle>;
182
- /** An image slot — `resizeMode`, `tintColor`… */
183
- type ImageStyleProps = StyleProps<ImageStyle>;
184
-
185
195
  /**
186
196
  * A slot is a view or a text node, and a recipe writes one object per slot, so the two
187
197
  * RN style shapes are merged rather than discriminated per slot.