@cdx-ui/components 0.0.1-beta.50 → 0.0.1-beta.52

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 (159) hide show
  1. package/lib/commonjs/components/AlertDialog/index.js +4 -3
  2. package/lib/commonjs/components/AlertDialog/index.js.map +1 -1
  3. package/lib/commonjs/components/Button/index.js +4 -0
  4. package/lib/commonjs/components/Button/index.js.map +1 -1
  5. package/lib/commonjs/components/Button/styles.js +59 -0
  6. package/lib/commonjs/components/Button/styles.js.map +1 -1
  7. package/lib/commonjs/components/Dialog/index.js +71 -16
  8. package/lib/commonjs/components/Dialog/index.js.map +1 -1
  9. package/lib/commonjs/components/Dialog/styles.js +60 -14
  10. package/lib/commonjs/components/Dialog/styles.js.map +1 -1
  11. package/lib/commonjs/figma/AlertDialog.Description.figma.js +20 -0
  12. package/lib/commonjs/figma/AlertDialog.Description.figma.js.map +1 -0
  13. package/lib/commonjs/figma/AlertDialog.Footer.figma.js +41 -0
  14. package/lib/commonjs/figma/AlertDialog.Footer.figma.js.map +1 -0
  15. package/lib/commonjs/figma/AlertDialog.Header.figma.js +28 -0
  16. package/lib/commonjs/figma/AlertDialog.Header.figma.js.map +1 -0
  17. package/lib/commonjs/figma/AlertDialog.Text.figma.js +20 -0
  18. package/lib/commonjs/figma/AlertDialog.Text.figma.js.map +1 -0
  19. package/lib/commonjs/figma/AlertDialog.Title.figma.js +27 -0
  20. package/lib/commonjs/figma/AlertDialog.Title.figma.js.map +1 -0
  21. package/lib/commonjs/figma/AlertDialog.figma.js +43 -0
  22. package/lib/commonjs/figma/AlertDialog.figma.js.map +1 -0
  23. package/lib/commonjs/figma/Dialog.Description.figma.js +20 -0
  24. package/lib/commonjs/figma/Dialog.Description.figma.js.map +1 -0
  25. package/lib/commonjs/figma/Dialog.Footer.figma.js +30 -0
  26. package/lib/commonjs/figma/Dialog.Footer.figma.js.map +1 -0
  27. package/lib/commonjs/figma/Dialog.Header.figma.js +29 -0
  28. package/lib/commonjs/figma/Dialog.Header.figma.js.map +1 -0
  29. package/lib/commonjs/figma/Dialog.Text.figma.js +20 -0
  30. package/lib/commonjs/figma/Dialog.Text.figma.js.map +1 -0
  31. package/lib/commonjs/figma/Dialog.Title.figma.js +27 -0
  32. package/lib/commonjs/figma/Dialog.Title.figma.js.map +1 -0
  33. package/lib/commonjs/figma/Dialog.figma.js +51 -0
  34. package/lib/commonjs/figma/Dialog.figma.js.map +1 -0
  35. package/lib/commonjs/hooks/index.js +19 -0
  36. package/lib/commonjs/hooks/index.js.map +1 -0
  37. package/lib/commonjs/hooks/useForgeBottomTabScreenOptions.js +246 -0
  38. package/lib/commonjs/hooks/useForgeBottomTabScreenOptions.js.map +1 -0
  39. package/lib/commonjs/index.js +24 -0
  40. package/lib/commonjs/index.js.map +1 -1
  41. package/lib/commonjs/navigation/forgeTabIcon.js +43 -0
  42. package/lib/commonjs/navigation/forgeTabIcon.js.map +1 -0
  43. package/lib/commonjs/navigation/forgeTabIcon.native.js +35 -0
  44. package/lib/commonjs/navigation/forgeTabIcon.native.js.map +1 -0
  45. package/lib/commonjs/navigation/index.js +13 -0
  46. package/lib/commonjs/navigation/index.js.map +1 -0
  47. package/lib/commonjs/navigation/types.js +40 -0
  48. package/lib/commonjs/navigation/types.js.map +1 -0
  49. package/lib/module/components/AlertDialog/index.js +4 -3
  50. package/lib/module/components/AlertDialog/index.js.map +1 -1
  51. package/lib/module/components/Button/index.js +4 -0
  52. package/lib/module/components/Button/index.js.map +1 -1
  53. package/lib/module/components/Button/styles.js +59 -0
  54. package/lib/module/components/Button/styles.js.map +1 -1
  55. package/lib/module/components/Dialog/index.js +74 -19
  56. package/lib/module/components/Dialog/index.js.map +1 -1
  57. package/lib/module/components/Dialog/styles.js +60 -14
  58. package/lib/module/components/Dialog/styles.js.map +1 -1
  59. package/lib/module/figma/AlertDialog.Description.figma.js +14 -0
  60. package/lib/module/figma/AlertDialog.Description.figma.js.map +1 -0
  61. package/lib/module/figma/AlertDialog.Footer.figma.js +35 -0
  62. package/lib/module/figma/AlertDialog.Footer.figma.js.map +1 -0
  63. package/lib/module/figma/AlertDialog.Header.figma.js +22 -0
  64. package/lib/module/figma/AlertDialog.Header.figma.js.map +1 -0
  65. package/lib/module/figma/AlertDialog.Text.figma.js +14 -0
  66. package/lib/module/figma/AlertDialog.Text.figma.js.map +1 -0
  67. package/lib/module/figma/AlertDialog.Title.figma.js +21 -0
  68. package/lib/module/figma/AlertDialog.Title.figma.js.map +1 -0
  69. package/lib/module/figma/AlertDialog.figma.js +37 -0
  70. package/lib/module/figma/AlertDialog.figma.js.map +1 -0
  71. package/lib/module/figma/Dialog.Description.figma.js +14 -0
  72. package/lib/module/figma/Dialog.Description.figma.js.map +1 -0
  73. package/lib/module/figma/Dialog.Footer.figma.js +24 -0
  74. package/lib/module/figma/Dialog.Footer.figma.js.map +1 -0
  75. package/lib/module/figma/Dialog.Header.figma.js +23 -0
  76. package/lib/module/figma/Dialog.Header.figma.js.map +1 -0
  77. package/lib/module/figma/Dialog.Text.figma.js +14 -0
  78. package/lib/module/figma/Dialog.Text.figma.js.map +1 -0
  79. package/lib/module/figma/Dialog.Title.figma.js +21 -0
  80. package/lib/module/figma/Dialog.Title.figma.js.map +1 -0
  81. package/lib/module/figma/Dialog.figma.js +45 -0
  82. package/lib/module/figma/Dialog.figma.js.map +1 -0
  83. package/lib/module/hooks/index.js +4 -0
  84. package/lib/module/hooks/index.js.map +1 -0
  85. package/lib/module/hooks/useForgeBottomTabScreenOptions.js +242 -0
  86. package/lib/module/hooks/useForgeBottomTabScreenOptions.js.map +1 -0
  87. package/lib/module/index.js +2 -0
  88. package/lib/module/index.js.map +1 -1
  89. package/lib/module/navigation/forgeTabIcon.js +39 -0
  90. package/lib/module/navigation/forgeTabIcon.js.map +1 -0
  91. package/lib/module/navigation/forgeTabIcon.native.js +31 -0
  92. package/lib/module/navigation/forgeTabIcon.native.js.map +1 -0
  93. package/lib/module/navigation/index.js +4 -0
  94. package/lib/module/navigation/index.js.map +1 -0
  95. package/lib/module/navigation/types.js +38 -0
  96. package/lib/module/navigation/types.js.map +1 -0
  97. package/lib/typescript/components/AlertDialog/index.d.ts +3 -2
  98. package/lib/typescript/components/AlertDialog/index.d.ts.map +1 -1
  99. package/lib/typescript/components/Avatar/styles.d.ts +4 -4
  100. package/lib/typescript/components/Button/styles.d.ts +2 -0
  101. package/lib/typescript/components/Button/styles.d.ts.map +1 -1
  102. package/lib/typescript/components/Dialog/index.d.ts +16 -10
  103. package/lib/typescript/components/Dialog/index.d.ts.map +1 -1
  104. package/lib/typescript/components/Dialog/styles.d.ts +16 -5
  105. package/lib/typescript/components/Dialog/styles.d.ts.map +1 -1
  106. package/lib/typescript/components/Heading/styles.d.ts +1 -1
  107. package/lib/typescript/components/Stack/styles.d.ts +2 -2
  108. package/lib/typescript/components/Text/styles.d.ts +1 -1
  109. package/lib/typescript/figma/AlertDialog.Description.figma.d.ts +8 -0
  110. package/lib/typescript/figma/AlertDialog.Description.figma.d.ts.map +1 -0
  111. package/lib/typescript/figma/AlertDialog.Footer.figma.d.ts +8 -0
  112. package/lib/typescript/figma/AlertDialog.Footer.figma.d.ts.map +1 -0
  113. package/lib/typescript/figma/AlertDialog.Header.figma.d.ts +8 -0
  114. package/lib/typescript/figma/AlertDialog.Header.figma.d.ts.map +1 -0
  115. package/lib/typescript/figma/AlertDialog.Text.figma.d.ts +8 -0
  116. package/lib/typescript/figma/AlertDialog.Text.figma.d.ts.map +1 -0
  117. package/lib/typescript/figma/AlertDialog.Title.figma.d.ts +8 -0
  118. package/lib/typescript/figma/AlertDialog.Title.figma.d.ts.map +1 -0
  119. package/lib/typescript/figma/AlertDialog.figma.d.ts +8 -0
  120. package/lib/typescript/figma/AlertDialog.figma.d.ts.map +1 -0
  121. package/lib/typescript/figma/Dialog.Description.figma.d.ts +8 -0
  122. package/lib/typescript/figma/Dialog.Description.figma.d.ts.map +1 -0
  123. package/lib/typescript/figma/Dialog.Footer.figma.d.ts +8 -0
  124. package/lib/typescript/figma/Dialog.Footer.figma.d.ts.map +1 -0
  125. package/lib/typescript/figma/Dialog.Header.figma.d.ts +8 -0
  126. package/lib/typescript/figma/Dialog.Header.figma.d.ts.map +1 -0
  127. package/lib/typescript/figma/Dialog.Text.figma.d.ts +8 -0
  128. package/lib/typescript/figma/Dialog.Text.figma.d.ts.map +1 -0
  129. package/lib/typescript/figma/Dialog.Title.figma.d.ts +8 -0
  130. package/lib/typescript/figma/Dialog.Title.figma.d.ts.map +1 -0
  131. package/lib/typescript/figma/Dialog.figma.d.ts +8 -0
  132. package/lib/typescript/figma/Dialog.figma.d.ts.map +1 -0
  133. package/lib/typescript/hooks/index.d.ts +2 -0
  134. package/lib/typescript/hooks/index.d.ts.map +1 -0
  135. package/lib/typescript/hooks/useForgeBottomTabScreenOptions.d.ts +137 -0
  136. package/lib/typescript/hooks/useForgeBottomTabScreenOptions.d.ts.map +1 -0
  137. package/lib/typescript/index.d.ts +2 -0
  138. package/lib/typescript/index.d.ts.map +1 -1
  139. package/lib/typescript/navigation/forgeTabIcon.d.ts +27 -0
  140. package/lib/typescript/navigation/forgeTabIcon.d.ts.map +1 -0
  141. package/lib/typescript/navigation/forgeTabIcon.native.d.ts +15 -0
  142. package/lib/typescript/navigation/forgeTabIcon.native.d.ts.map +1 -0
  143. package/lib/typescript/navigation/index.d.ts +4 -0
  144. package/lib/typescript/navigation/index.d.ts.map +1 -0
  145. package/lib/typescript/navigation/types.d.ts +37 -0
  146. package/lib/typescript/navigation/types.d.ts.map +1 -0
  147. package/package.json +6 -4
  148. package/src/components/AlertDialog/index.tsx +7 -5
  149. package/src/components/Button/index.tsx +2 -2
  150. package/src/components/Button/styles.ts +29 -0
  151. package/src/components/Dialog/index.tsx +95 -29
  152. package/src/components/Dialog/styles.ts +72 -30
  153. package/src/hooks/index.ts +5 -0
  154. package/src/hooks/useForgeBottomTabScreenOptions.ts +245 -0
  155. package/src/index.ts +2 -0
  156. package/src/navigation/forgeTabIcon.native.ts +36 -0
  157. package/src/navigation/forgeTabIcon.ts +33 -0
  158. package/src/navigation/index.ts +3 -0
  159. package/src/navigation/types.ts +55 -0
@@ -1,7 +1,7 @@
1
1
  import { type ReactNode } from 'react';
2
- import { Text, View, type ViewProps } from 'react-native';
3
- import { type IDialogBodyProps, type IDialogCloseProps, type IDialogContentProps, type IDialogDescriptionProps, type IDialogFooterProps, type IDialogHeaderProps, type IDialogRootProps, type IDialogTitleProps, type IDialogTriggerProps } from '@cdx-ui/primitives';
4
- import { type DialogVariantProps } from './styles';
2
+ import { Text, View, type TextProps, type ViewProps } from 'react-native';
3
+ import { type IDialogCloseProps, type IDialogContentProps, type IDialogDescriptionProps, type IDialogFooterProps, type IDialogHeaderProps, type IDialogPopupProps, type IDialogRootProps, type IDialogTitleProps, type IDialogTriggerProps } from '@cdx-ui/primitives';
4
+ import { type DialogTitleVariantProps, type DialogVariantProps } from './styles';
5
5
  export { useDialog } from '@cdx-ui/primitives';
6
6
  export interface DialogRootProps extends Omit<ViewProps, 'children' | 'role'>, IDialogRootProps, DialogVariantProps {
7
7
  className?: string;
@@ -12,17 +12,17 @@ export interface DialogTriggerProps extends IDialogTriggerProps {
12
12
  children?: ReactNode;
13
13
  }
14
14
  declare const DialogTrigger: import("react").ForwardRefExoticComponent<DialogTriggerProps & import("react").RefAttributes<View>>;
15
- export interface DialogContentProps extends IDialogContentProps, DialogVariantProps {
15
+ export interface DialogPopupProps extends IDialogPopupProps, Pick<DialogVariantProps, 'size'> {
16
16
  className?: string;
17
17
  children?: ReactNode;
18
18
  }
19
- declare const DialogContent: import("react").ForwardRefExoticComponent<DialogContentProps & import("react").RefAttributes<View>>;
19
+ declare const DialogPopup: import("react").ForwardRefExoticComponent<DialogPopupProps & import("react").RefAttributes<View>>;
20
20
  export interface DialogHeaderProps extends IDialogHeaderProps {
21
21
  className?: string;
22
22
  children?: ReactNode;
23
23
  }
24
24
  declare const DialogHeader: import("react").ForwardRefExoticComponent<DialogHeaderProps & import("react").RefAttributes<View>>;
25
- export interface DialogTitleProps extends IDialogTitleProps {
25
+ export interface DialogTitleProps extends IDialogTitleProps, DialogTitleVariantProps {
26
26
  className?: string;
27
27
  children?: ReactNode;
28
28
  }
@@ -32,11 +32,16 @@ export interface DialogDescriptionProps extends IDialogDescriptionProps {
32
32
  children?: ReactNode;
33
33
  }
34
34
  declare const DialogDescription: import("react").ForwardRefExoticComponent<DialogDescriptionProps & import("react").RefAttributes<Text>>;
35
- export interface DialogBodyProps extends IDialogBodyProps {
35
+ export interface DialogContentProps extends IDialogContentProps {
36
36
  className?: string;
37
37
  children?: ReactNode;
38
38
  }
39
- declare const DialogBody: import("react").ForwardRefExoticComponent<DialogBodyProps & import("react").RefAttributes<View>>;
39
+ declare const DialogContent: import("react").ForwardRefExoticComponent<DialogContentProps & import("react").RefAttributes<View>>;
40
+ export interface DialogTextProps extends TextProps {
41
+ className?: string;
42
+ children?: ReactNode;
43
+ }
44
+ declare const DialogText: import("react").ForwardRefExoticComponent<DialogTextProps & import("react").RefAttributes<Text>>;
40
45
  export interface DialogFooterProps extends IDialogFooterProps {
41
46
  className?: string;
42
47
  children?: ReactNode;
@@ -49,11 +54,12 @@ export interface DialogCloseProps extends IDialogCloseProps {
49
54
  declare const DialogClose: import("react").ForwardRefExoticComponent<DialogCloseProps & import("react").RefAttributes<View>>;
50
55
  type DialogCompoundComponent = typeof DialogRoot & {
51
56
  Trigger: typeof DialogTrigger;
52
- Content: typeof DialogContent;
57
+ Popup: typeof DialogPopup;
53
58
  Header: typeof DialogHeader;
54
59
  Title: typeof DialogTitle;
55
60
  Description: typeof DialogDescription;
56
- Body: typeof DialogBody;
61
+ Content: typeof DialogContent;
62
+ Text: typeof DialogText;
57
63
  Footer: typeof DialogFooter;
58
64
  Close: typeof DialogClose;
59
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Dialog/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAa,IAAI,EAAE,IAAI,EAAuB,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1F,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,KAAK,kBAAkB,EAUxB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA4C/C,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,gBAAgB,EAAE,kBAAkB;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,UAAU,kGAMf,CAAC;AAQF,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,aAAa,qGAMlB,CAAC;AAQF,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB,EAAE,kBAAkB;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,aAAa,qGAYlB,CAAC;AAQF,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,YAAY,oGAUjB,CAAC;AAQF,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,WAAW,mGAUhB,CAAC;AAQF,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACrE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,iBAAiB,yGAUtB,CAAC;AAQF,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,UAAU,kGAUf,CAAC;AAQF,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,YAAY,oGAUjB,CAAC;AAQF,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,QAAA,MAAM,WAAW,mGAkBhB,CAAC;AAQF,KAAK,uBAAuB,GAAG,OAAO,UAAU,GAAG;IACjD,OAAO,EAAE,OAAO,aAAa,CAAC;IAC9B,OAAO,EAAE,OAAO,aAAa,CAAC;IAC9B,MAAM,EAAE,OAAO,YAAY,CAAC;IAC5B,KAAK,EAAE,OAAO,WAAW,CAAC;IAC1B,WAAW,EAAE,OAAO,iBAAiB,CAAC;IACtC,IAAI,EAAE,OAAO,UAAU,CAAC;IACxB,MAAM,EAAE,OAAO,YAAY,CAAC;IAC5B,KAAK,EAAE,OAAO,WAAW,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,MAAM,EASb,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Dialog/index.tsx"],"names":[],"mappings":"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"}
@@ -1,14 +1,25 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  export declare const dialogOverlayVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
3
- export declare const dialogContentVariants: (props?: ({
4
- size?: "sm" | "md" | "lg" | "full" | null | undefined;
3
+ export declare const dialogPopupVariants: (props?: ({
4
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | "full" | null | undefined;
5
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
6
  export declare const dialogHeaderVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
7
- export declare const dialogTitleVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
7
+ export declare const dialogTitleVariants: (props?: ({
8
+ appearance?: "danger" | "warning" | "success" | "default" | null | undefined;
9
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
10
+ export declare const dialogTitleIconVariants: (props?: ({
11
+ appearance?: "danger" | "warning" | "success" | "default" | null | undefined;
12
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
13
  export declare const dialogDescriptionVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
9
- export declare const dialogBodyVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
14
+ export declare const dialogContentVariants: (props?: ({
15
+ fullBleed?: boolean | null | undefined;
16
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
17
+ export declare const dialogTextVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
10
18
  export declare const dialogFooterVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
11
19
  export declare const dialogCloseVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
12
20
  export declare const dialogCloseIconVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
13
- export type DialogVariantProps = VariantProps<typeof dialogContentVariants>;
21
+ export type DialogVariantProps = VariantProps<typeof dialogPopupVariants> & {
22
+ fullBleed?: boolean;
23
+ };
24
+ export type DialogTitleVariantProps = VariantProps<typeof dialogTitleVariants>;
14
25
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Dialog/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAclE,eAAO,MAAM,qBAAqB,oFAA4D,CAAC;AAI/F,eAAO,MAAM,qBAAqB;;8EAqBjC,CAAC;AAIF,eAAO,MAAM,oBAAoB,oFAG/B,CAAC;AAIH,eAAO,MAAM,mBAAmB,oFAAqD,CAAC;AAItF,eAAO,MAAM,yBAAyB,oFAA8C,CAAC;AAIrF,eAAO,MAAM,kBAAkB,oFAAoC,CAAC;AAIpE,eAAO,MAAM,oBAAoB,oFAG/B,CAAC;AAIH,eAAO,MAAM,mBAAmB,oFAW9B,CAAC;AAIH,eAAO,MAAM,uBAAuB,oFAAiC,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Dialog/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAKlE,eAAO,MAAM,qBAAqB,oFAAmD,CAAC;AAItF,eAAO,MAAM,mBAAmB;;8EAsB/B,CAAC;AAIF,eAAO,MAAM,oBAAoB,oFAG/B,CAAC;AAIH,eAAO,MAAM,mBAAmB;;8EAY9B,CAAC;AAIH,eAAO,MAAM,uBAAuB;;8EAYlC,CAAC;AAIH,eAAO,MAAM,yBAAyB,oFAAkD,CAAC;AAIzF,eAAO,MAAM,qBAAqB;;8EAUhC,CAAC;AAIH,eAAO,MAAM,kBAAkB,oFAA2C,CAAC;AAI3E,eAAO,MAAM,oBAAoB,oFAG/B,CAAC;AAIH,eAAO,MAAM,mBAAmB,oFAa9B,CAAC;AAIH,eAAO,MAAM,uBAAuB,oFAAwC,CAAC;AAI7E,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,GAAG;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  export declare const headingStyle: (props?: ({
3
- size?: "sm" | "md" | "lg" | "xs" | "xl" | null | undefined;
3
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
4
4
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
5
  export type HeadingVariantProps = VariantProps<typeof headingStyle>;
6
6
  //# sourceMappingURL=styles.d.ts.map
@@ -13,11 +13,11 @@ declare const spaceMap: {
13
13
  export type StackSpace = keyof typeof spaceMap;
14
14
  export declare const hStackRootVariants: (props?: ({
15
15
  reversed?: boolean | null | undefined;
16
- space?: "sm" | "md" | "lg" | "xs" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | null | undefined;
16
+ space?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | null | undefined;
17
17
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
18
18
  export declare const vStackRootVariants: (props?: ({
19
19
  reversed?: boolean | null | undefined;
20
- space?: "sm" | "md" | "lg" | "xs" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | null | undefined;
20
+ space?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl" | null | undefined;
21
21
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
22
22
  export {};
23
23
  //# sourceMappingURL=styles.d.ts.map
@@ -1,6 +1,6 @@
1
1
  import { type VariantProps } from 'class-variance-authority';
2
2
  export declare const textStyle: (props?: ({
3
- size?: "sm" | "md" | "lg" | "xs" | "xl" | null | undefined;
3
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
4
4
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
5
5
  export type TextVariantProps = VariantProps<typeof textStyle>;
6
6
  //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1,8 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ id: string;
4
+ imports: string[];
5
+ example: figma.TemplateStringResult;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=AlertDialog.Description.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertDialog.Description.figma.d.ts","sourceRoot":"","sources":["../../../src/figma/AlertDialog.Description.figma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AAM1B,wBAIE"}
@@ -0,0 +1,8 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ id: string;
4
+ imports: string[];
5
+ example: figma.TemplateStringResult;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=AlertDialog.Footer.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertDialog.Footer.figma.d.ts","sourceRoot":"","sources":["../../../src/figma/AlertDialog.Footer.figma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AAgC1B,wBASE"}
@@ -0,0 +1,8 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ id: string;
4
+ imports: string[];
5
+ example: figma.TemplateStringResult;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=AlertDialog.Header.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertDialog.Header.figma.d.ts","sourceRoot":"","sources":["../../../src/figma/AlertDialog.Header.figma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AAgB1B,wBAQE"}
@@ -0,0 +1,8 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ id: string;
4
+ imports: string[];
5
+ example: figma.TemplateStringResult;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=AlertDialog.Text.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertDialog.Text.figma.d.ts","sourceRoot":"","sources":["../../../src/figma/AlertDialog.Text.figma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AAM1B,wBAIE"}
@@ -0,0 +1,8 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ id: string;
4
+ imports: string[];
5
+ example: figma.TemplateStringResult;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=AlertDialog.Title.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertDialog.Title.figma.d.ts","sourceRoot":"","sources":["../../../src/figma/AlertDialog.Title.figma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AAe1B,wBAIE"}
@@ -0,0 +1,8 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ id: string;
4
+ imports: string[];
5
+ example: figma.TemplateStringResult;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=AlertDialog.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertDialog.figma.d.ts","sourceRoot":"","sources":["../../../src/figma/AlertDialog.figma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AAyB1B,wBAYE"}
@@ -0,0 +1,8 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ id: string;
4
+ imports: string[];
5
+ example: figma.TemplateStringResult;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=Dialog.Description.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.Description.figma.d.ts","sourceRoot":"","sources":["../../../src/figma/Dialog.Description.figma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AAM1B,wBAIE"}
@@ -0,0 +1,8 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ id: string;
4
+ imports: string[];
5
+ example: figma.TemplateStringResult;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=Dialog.Footer.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.Footer.figma.d.ts","sourceRoot":"","sources":["../../../src/figma/Dialog.Footer.figma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AAgB1B,wBASE"}
@@ -0,0 +1,8 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ id: string;
4
+ imports: string[];
5
+ example: figma.TemplateStringResult;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=Dialog.Header.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.Header.figma.d.ts","sourceRoot":"","sources":["../../../src/figma/Dialog.Header.figma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AAgB1B,wBASE"}
@@ -0,0 +1,8 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ id: string;
4
+ imports: string[];
5
+ example: figma.TemplateStringResult;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=Dialog.Text.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.Text.figma.d.ts","sourceRoot":"","sources":["../../../src/figma/Dialog.Text.figma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AAM1B,wBAIE"}
@@ -0,0 +1,8 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ id: string;
4
+ imports: string[];
5
+ example: figma.TemplateStringResult;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=Dialog.Title.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.Title.figma.d.ts","sourceRoot":"","sources":["../../../src/figma/Dialog.Title.figma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AAe1B,wBAIE"}
@@ -0,0 +1,8 @@
1
+ import figma from 'figma';
2
+ declare const _default: {
3
+ id: string;
4
+ imports: string[];
5
+ example: figma.TemplateStringResult;
6
+ };
7
+ export default _default;
8
+ //# sourceMappingURL=Dialog.figma.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dialog.figma.d.ts","sourceRoot":"","sources":["../../../src/figma/Dialog.figma.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;;;;;;AAiC1B,wBAYE"}
@@ -0,0 +1,2 @@
1
+ export { useForgeBottomTabScreenOptions, mergeForgeBottomTabScreenOptions, type ForgeReactNavigationBottomTabScreenOptions, } from './useForgeBottomTabScreenOptions';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,EAChC,KAAK,0CAA0C,GAChD,MAAM,kCAAkC,CAAC"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * useForgeBottomTabScreenOptions
3
+ *
4
+ * Returns a `screenOptions` object for **React Navigation bottom tab navigators**
5
+ * (`@react-navigation/bottom-tabs` v7+), populated with CDX UI design-system
6
+ * token values.
7
+ *
8
+ * CDX UI does not import `@react-navigation` — the consumer passes the returned
9
+ * object to their own navigator. This keeps the dependency out of
10
+ * `@cdx-ui/components` and works with any React Navigation tab variant:
11
+ * `createNativeBottomTabNavigator` (iOS/Android) or `createBottomTabNavigator`
12
+ * (web/JS).
13
+ *
14
+ * **Not compatible with:**
15
+ * - Expo Router `<NativeTabs>` — uses different prop names
16
+ * - React Router or DOM tab components — these are not React Navigation
17
+ *
18
+ * ## Basic usage
19
+ *
20
+ * ```tsx
21
+ * import { useForgeBottomTabScreenOptions } from '@cdx-ui/components';
22
+ * import { createNativeBottomTabNavigator } from '@react-navigation/bottom-tabs/unstable';
23
+ *
24
+ * const Tab = createNativeBottomTabNavigator<AppTabs>();
25
+ *
26
+ * function AppTabs() {
27
+ * const screenOptions = useForgeBottomTabScreenOptions();
28
+ * return (
29
+ * <Tab.Navigator screenOptions={screenOptions}>
30
+ * <Tab.Screen name="Home" component={HomeScreen} />
31
+ * </Tab.Navigator>
32
+ * );
33
+ * }
34
+ * ```
35
+ *
36
+ * ## Overriding individual tokens
37
+ *
38
+ * Spread the returned object and override only the keys you need.
39
+ * Nested style objects (`tabBarLabelStyle`, `tabBarStyle`, `tabBarBadgeStyle`)
40
+ * must be spread individually to preserve unrelated DS defaults:
41
+ *
42
+ * ```tsx
43
+ * const dsOptions = useForgeBottomTabScreenOptions();
44
+ * const screenOptions = {
45
+ * ...dsOptions,
46
+ * tabBarActiveTintColor: '#custom',
47
+ * tabBarLabelStyle: { ...dsOptions.tabBarLabelStyle, fontFamily: 'MyFont' },
48
+ * };
49
+ * ```
50
+ *
51
+ * ## Token variable names
52
+ *
53
+ * | screenOption | CSS variable |
54
+ * | ---------------------------------- | ---------------------------------- |
55
+ * | tabBarActiveTintColor | --color-content-action |
56
+ * | tabBarInactiveTintColor | --color-content-secondary |
57
+ * | tabBarStyle.backgroundColor | --color-surface-primary |
58
+ * | tabBarLabelStyle.fontFamily | --font-body |
59
+ * | tabBarLabelStyle.fontSize | --text-xs (via `text-xs` class) |
60
+ * | tabBarLabelStyle.fontWeight | --font-weight-medium |
61
+ * | tabBarBadgeStyle.backgroundColor | --color-surface-danger-strong |
62
+ *
63
+ * ## Platform notes
64
+ *
65
+ * - `tabBarInactiveTintColor` has no effect on iOS — inactive items always use
66
+ * system grey.
67
+ * - `tabBarStyle.backgroundColor` is ignored on iOS 26+ (liquid glass takes
68
+ * over). It is honoured on iOS ≤18 and all Android versions.
69
+ * - The hook resolves CSS variables via Uniwind's `useCSSVariable`. If the
70
+ * Uniwind runtime is not set up (e.g. in a plain Jest test without a CSS
71
+ * context), each variable resolves to `undefined` and the hardcoded fallback
72
+ * is used instead — fallbacks intentionally match the CDX UI light-theme
73
+ * values.
74
+ * - `tabBarLabelStyle.fontSize` is resolved via Uniwind's
75
+ * `useResolveClassNames('text-xs')` rather than reading the rem-valued
76
+ * `--text-xs` variable directly. React Navigation v7 requires a numeric
77
+ * `fontSize`, and letting Uniwind resolve the class means the rem→px
78
+ * conversion uses the consumer's configured rem base (default 16px,
79
+ * overridable via the `polyfills.rem` Metro option) instead of a constant
80
+ * hardcoded here.
81
+ */
82
+ import type { TextStyle } from 'react-native';
83
+ /**
84
+ * The `screenOptions` shape returned by `useForgeBottomTabScreenOptions`.
85
+ *
86
+ * These are concrete types (not the broad `StyleProp<…>` React Navigation
87
+ * uses internally) so consumers get precise IDE completion. The compile-time
88
+ * drift guard below ensures this type stays assignable to
89
+ * `BottomTabNavigationOptions` — the TypeScript compiler will error if CDX UI
90
+ * adds a key or value that React Navigation no longer accepts.
91
+ *
92
+ * Pass directly as `screenOptions` on a `createNativeBottomTabNavigator` or
93
+ * `createBottomTabNavigator` navigator, or spread and override individual keys.
94
+ */
95
+ export interface ForgeReactNavigationBottomTabScreenOptions {
96
+ tabBarActiveTintColor: string;
97
+ tabBarInactiveTintColor: string;
98
+ tabBarStyle: {
99
+ backgroundColor: string;
100
+ };
101
+ tabBarLabelStyle: {
102
+ fontFamily: string;
103
+ /** Pixel size — React Navigation requires a number for tab label fontSize. */
104
+ fontSize: number;
105
+ fontWeight: TextStyle['fontWeight'];
106
+ };
107
+ tabBarBadgeStyle: {
108
+ backgroundColor: string;
109
+ };
110
+ }
111
+ /**
112
+ * Returns a `screenOptions` object for **React Navigation bottom tab
113
+ * navigators** (`@react-navigation/bottom-tabs` v7+), populated with CDX UI
114
+ * design-system token values.
115
+ *
116
+ * Must be called inside a React component or custom hook (React hook rules
117
+ * apply).
118
+ */
119
+ /**
120
+ * Deep-merges consumer overrides into a base `ForgeReactNavigationBottomTabScreenOptions`
121
+ * object. Nested style objects (`tabBarLabelStyle`, `tabBarStyle`,
122
+ * `tabBarBadgeStyle`) are merged property-by-property so consumers can override
123
+ * individual style properties without losing unrelated DS defaults.
124
+ *
125
+ * Use with `useForgeBottomTabScreenOptions` to apply targeted overrides:
126
+ *
127
+ * ```tsx
128
+ * const dsOptions = useForgeBottomTabScreenOptions();
129
+ * const screenOptions = mergeForgeBottomTabScreenOptions(dsOptions, {
130
+ * tabBarActiveTintColor: '#custom',
131
+ * tabBarLabelStyle: { fontFamily: 'MyFont' }, // fontSize + fontWeight preserved
132
+ * });
133
+ * ```
134
+ */
135
+ export declare function mergeForgeBottomTabScreenOptions(base: ForgeReactNavigationBottomTabScreenOptions, overrides: Partial<ForgeReactNavigationBottomTabScreenOptions>): ForgeReactNavigationBottomTabScreenOptions;
136
+ export declare function useForgeBottomTabScreenOptions(): ForgeReactNavigationBottomTabScreenOptions;
137
+ //# sourceMappingURL=useForgeBottomTabScreenOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useForgeBottomTabScreenOptions.d.ts","sourceRoot":"","sources":["../../../src/hooks/useForgeBottomTabScreenOptions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM9C;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,0CAA0C;IACzD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,uBAAuB,EAAE,MAAM,CAAC;IAChC,WAAW,EAAE;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,gBAAgB,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,8EAA8E;QAC9E,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;KACrC,CAAC;IACF,gBAAgB,EAAE;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAyED;;;;;;;GAOG;AACH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,0CAA0C,EAChD,SAAS,EAAE,OAAO,CAAC,0CAA0C,CAAC,GAC7D,0CAA0C,CAQ5C;AAED,wBAAgB,8BAA8B,IAAI,0CAA0C,CAwB3F"}
@@ -1,5 +1,7 @@
1
1
  /// <reference types="uniwind/types" preserve="true" />
2
2
  export * from './components';
3
+ export * from './hooks';
4
+ export * from './navigation';
3
5
  export { View, ScrollView, KeyboardAvoidingView } from 'react-native';
4
6
  export { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { ForgeTabIcon } from '@cdx-ui/icons/tab-icons';
2
+ import type { ForgeTabBarIcon } from './types';
3
+ /**
4
+ * forgeTabIcon — web/JS-navigator implementation.
5
+ *
6
+ * Maps a {@link ForgeTabIcon} descriptor to a React Navigation `tabBarIcon`
7
+ * value that renders the same Forge UI icon on every platform:
8
+ *
9
+ * - **Web** (`createBottomTabNavigator`): renders the SVG icon component with
10
+ * `filled={focused}` and the navigator-supplied `color`/`size` — pair with
11
+ * `useForgeBottomTabScreenOptions` so tints come from design tokens.
12
+ * - **iOS/Android** (`createNativeBottomTabNavigator`): the `.native` module
13
+ * of this file returns a tinted template-image descriptor instead.
14
+ *
15
+ * ```tsx
16
+ * import { useForgeBottomTabScreenOptions, forgeTabIcon } from '@cdx-ui/components';
17
+ * import { HomeTabIcon } from '@cdx-ui/icons/tab-icons';
18
+ *
19
+ * <Tab.Screen
20
+ * name="Home"
21
+ * component={HomeScreen}
22
+ * options={{ title: 'Home', tabBarIcon: forgeTabIcon(HomeTabIcon) }}
23
+ * />
24
+ * ```
25
+ */
26
+ export declare function forgeTabIcon(icon: ForgeTabIcon): ForgeTabBarIcon;
27
+ //# sourceMappingURL=forgeTabIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forgeTabIcon.d.ts","sourceRoot":"","sources":["../../../src/navigation/forgeTabIcon.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,eAAe,CAKhE"}
@@ -0,0 +1,15 @@
1
+ import type { ForgeTabIcon } from '@cdx-ui/icons/tab-icons';
2
+ import type { ForgeTabBarIcon } from './types';
3
+ /**
4
+ * forgeTabIcon — iOS/Android implementation (see `forgeTabIcon.ts` for the
5
+ * full contract and usage example).
6
+ *
7
+ * Returns a `tabBarIcon` function for `createNativeBottomTabNavigator` that
8
+ * resolves the descriptor's pre-rasterized template PNGs: outlined at rest,
9
+ * filled when focused (iOS only — Android tabs use one static icon and
10
+ * express selection via tint). `tinted: true` makes the native tab bar apply
11
+ * `tabBarActiveTintColor` / `tabBarInactiveTintColor` at runtime, so theming
12
+ * and dark mode flow through `useForgeBottomTabScreenOptions` unchanged.
13
+ */
14
+ export declare function forgeTabIcon(icon: ForgeTabIcon): ForgeTabBarIcon;
15
+ //# sourceMappingURL=forgeTabIcon.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forgeTabIcon.native.d.ts","sourceRoot":"","sources":["../../../src/navigation/forgeTabIcon.native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAA4B,eAAe,EAAE,MAAM,SAAS,CAAC;AAEzE;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,eAAe,CAqBhE"}
@@ -0,0 +1,4 @@
1
+ export { forgeTabIcon } from './forgeTabIcon';
2
+ export type { ForgeNativeBottomTabIcon, ForgeTabBarIcon } from './types';
3
+ export type { ForgeTabIcon, ForgeTabIconNativeSources } from '@cdx-ui/icons/tab-icons';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/navigation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACzE,YAAY,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { ImageSourcePropType } from 'react-native';
3
+ /**
4
+ * Structural mirror of the `image` arm of `NativeBottomTabIcon` from
5
+ * `@react-navigation/bottom-tabs/unstable`. Declared locally so
6
+ * `@cdx-ui/components` carries no runtime React Navigation dependency —
7
+ * the drift guards below fail the build if the upstream shape changes.
8
+ */
9
+ export interface ForgeNativeBottomTabIcon {
10
+ type: 'image';
11
+ /** Metro-resolved asset (e.g. a static `require('./icon.png')`). */
12
+ source: ImageSourcePropType;
13
+ /**
14
+ * Render as a template image tinted with the tab bar's active/inactive
15
+ * tint color. iOS-only flag — Android always tints tab icons.
16
+ */
17
+ tinted?: boolean;
18
+ }
19
+ /**
20
+ * The value `forgeTabIcon()` returns — callable as `tabBarIcon` on **both**
21
+ * React Navigation bottom tab navigators. The intersection carries both call
22
+ * signatures; the platform-split implementation guarantees the matching one
23
+ * at runtime:
24
+ *
25
+ * - `createBottomTabNavigator` (web/JS) invokes it with
26
+ * `{ focused, color, size }` and renders the returned element.
27
+ * - `createNativeBottomTabNavigator` (iOS/Android) invokes it with
28
+ * `{ focused }` and receives a native icon descriptor.
29
+ */
30
+ export type ForgeTabBarIcon = ((props: {
31
+ focused: boolean;
32
+ color: string;
33
+ size: number;
34
+ }) => ReactElement) & ((props: {
35
+ focused: boolean;
36
+ }) => ForgeNativeBottomTabIcon);
37
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/navigation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIxD;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,oEAAoE;IACpE,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,EAAE;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,KAAK,YAAY,CAAC,GACjB,CAAC,CAAC,KAAK,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAK,wBAAwB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cdx-ui/components",
3
- "version": "0.0.1-beta.50",
3
+ "version": "0.0.1-beta.52",
4
4
  "main": "lib/commonjs/index.js",
5
5
  "module": "lib/module/index.js",
6
6
  "react-native": "src/index.ts",
@@ -67,11 +67,13 @@
67
67
  "@gorhom/bottom-sheet": "^5.2.6",
68
68
  "class-variance-authority": "^0.7.1",
69
69
  "uniwind": "1.6.1",
70
- "@cdx-ui/primitives": "0.0.1-beta.50",
71
- "@cdx-ui/utils": "0.0.1-beta.50",
72
- "@cdx-ui/icons": "0.0.1-beta.50"
70
+ "@cdx-ui/primitives": "0.0.1-beta.52",
71
+ "@cdx-ui/utils": "0.0.1-beta.52",
72
+ "@cdx-ui/icons": "0.0.1-beta.52"
73
73
  },
74
74
  "devDependencies": {
75
+ "@react-navigation/bottom-tabs": "*",
76
+ "react-native-screens": "*",
75
77
  "@types/react": "*",
76
78
  "@types/react-dom": "*",
77
79
  "react": "*",