@frosted-ui/react-native 0.0.1-canary.100

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 (207) hide show
  1. package/README.md +160 -0
  2. package/dist/components/accordion.d.ts +21 -0
  3. package/dist/components/accordion.d.ts.map +1 -0
  4. package/dist/components/accordion.js +94 -0
  5. package/dist/components/accordion.js.map +1 -0
  6. package/dist/components/alert-dialog.d.ts +67 -0
  7. package/dist/components/alert-dialog.d.ts.map +1 -0
  8. package/dist/components/alert-dialog.js +170 -0
  9. package/dist/components/alert-dialog.js.map +1 -0
  10. package/dist/components/aspect-ratio.d.ts +4 -0
  11. package/dist/components/aspect-ratio.d.ts.map +1 -0
  12. package/dist/components/aspect-ratio.js +4 -0
  13. package/dist/components/aspect-ratio.js.map +1 -0
  14. package/dist/components/avatar.d.ts +23 -0
  15. package/dist/components/avatar.d.ts.map +1 -0
  16. package/dist/components/avatar.js +128 -0
  17. package/dist/components/avatar.js.map +1 -0
  18. package/dist/components/badge.d.ts +15 -0
  19. package/dist/components/badge.d.ts.map +1 -0
  20. package/dist/components/badge.js +81 -0
  21. package/dist/components/badge.js.map +1 -0
  22. package/dist/components/button.d.ts +14 -0
  23. package/dist/components/button.d.ts.map +1 -0
  24. package/dist/components/button.js +81 -0
  25. package/dist/components/button.js.map +1 -0
  26. package/dist/components/callout.d.ts +23 -0
  27. package/dist/components/callout.d.ts.map +1 -0
  28. package/dist/components/callout.js +128 -0
  29. package/dist/components/callout.js.map +1 -0
  30. package/dist/components/card.d.ts +9 -0
  31. package/dist/components/card.d.ts.map +1 -0
  32. package/dist/components/card.js +41 -0
  33. package/dist/components/card.js.map +1 -0
  34. package/dist/components/checkbox.d.ts +12 -0
  35. package/dist/components/checkbox.d.ts.map +1 -0
  36. package/dist/components/checkbox.js +100 -0
  37. package/dist/components/checkbox.js.map +1 -0
  38. package/dist/components/circular-progress.d.ts +21 -0
  39. package/dist/components/circular-progress.d.ts.map +1 -0
  40. package/dist/components/circular-progress.js +78 -0
  41. package/dist/components/circular-progress.js.map +1 -0
  42. package/dist/components/code.d.ts +18 -0
  43. package/dist/components/code.d.ts.map +1 -0
  44. package/dist/components/code.js +83 -0
  45. package/dist/components/code.js.map +1 -0
  46. package/dist/components/context-menu.d.ts +65 -0
  47. package/dist/components/context-menu.d.ts.map +1 -0
  48. package/dist/components/context-menu.js +441 -0
  49. package/dist/components/context-menu.js.map +1 -0
  50. package/dist/components/dialog.d.ts +49 -0
  51. package/dist/components/dialog.d.ts.map +1 -0
  52. package/dist/components/dialog.js +141 -0
  53. package/dist/components/dialog.js.map +1 -0
  54. package/dist/components/dropdown-menu.d.ts +65 -0
  55. package/dist/components/dropdown-menu.d.ts.map +1 -0
  56. package/dist/components/dropdown-menu.js +441 -0
  57. package/dist/components/dropdown-menu.js.map +1 -0
  58. package/dist/components/heading.d.ts +15 -0
  59. package/dist/components/heading.d.ts.map +1 -0
  60. package/dist/components/heading.js +8 -0
  61. package/dist/components/heading.js.map +1 -0
  62. package/dist/components/hover-card.d.ts +24 -0
  63. package/dist/components/hover-card.d.ts.map +1 -0
  64. package/dist/components/hover-card.js +49 -0
  65. package/dist/components/hover-card.js.map +1 -0
  66. package/dist/components/icon-button.d.ts +14 -0
  67. package/dist/components/icon-button.d.ts.map +1 -0
  68. package/dist/components/icon-button.js +81 -0
  69. package/dist/components/icon-button.js.map +1 -0
  70. package/dist/components/icon.d.ts +27 -0
  71. package/dist/components/icon.d.ts.map +1 -0
  72. package/dist/components/icon.js +30 -0
  73. package/dist/components/icon.js.map +1 -0
  74. package/dist/components/index.d.ts +37 -0
  75. package/dist/components/index.d.ts.map +1 -0
  76. package/dist/components/index.js +49 -0
  77. package/dist/components/index.js.map +1 -0
  78. package/dist/components/label.d.ts +8 -0
  79. package/dist/components/label.d.ts.map +1 -0
  80. package/dist/components/label.js +26 -0
  81. package/dist/components/label.js.map +1 -0
  82. package/dist/components/link.d.ts +19 -0
  83. package/dist/components/link.d.ts.map +1 -0
  84. package/dist/components/link.js +68 -0
  85. package/dist/components/link.js.map +1 -0
  86. package/dist/components/list.d.ts +37 -0
  87. package/dist/components/list.d.ts.map +1 -0
  88. package/dist/components/list.js +112 -0
  89. package/dist/components/list.js.map +1 -0
  90. package/dist/components/native-only-animated-view.d.ts +219 -0
  91. package/dist/components/native-only-animated-view.d.ts.map +1 -0
  92. package/dist/components/native-only-animated-view.js +26 -0
  93. package/dist/components/native-only-animated-view.js.map +1 -0
  94. package/dist/components/popover.d.ts +24 -0
  95. package/dist/components/popover.d.ts.map +1 -0
  96. package/dist/components/popover.js +52 -0
  97. package/dist/components/popover.js.map +1 -0
  98. package/dist/components/progress.d.ts +14 -0
  99. package/dist/components/progress.d.ts.map +1 -0
  100. package/dist/components/progress.js +52 -0
  101. package/dist/components/progress.js.map +1 -0
  102. package/dist/components/radio-group.d.ts +18 -0
  103. package/dist/components/radio-group.d.ts.map +1 -0
  104. package/dist/components/radio-group.js +122 -0
  105. package/dist/components/radio-group.js.map +1 -0
  106. package/dist/components/segmented-control.d.ts +21 -0
  107. package/dist/components/segmented-control.d.ts.map +1 -0
  108. package/dist/components/segmented-control.js +113 -0
  109. package/dist/components/segmented-control.js.map +1 -0
  110. package/dist/components/select.d.ts +58 -0
  111. package/dist/components/select.d.ts.map +1 -0
  112. package/dist/components/select.js +491 -0
  113. package/dist/components/select.js.map +1 -0
  114. package/dist/components/separator.d.ts +12 -0
  115. package/dist/components/separator.d.ts.map +1 -0
  116. package/dist/components/separator.js +47 -0
  117. package/dist/components/separator.js.map +1 -0
  118. package/dist/components/skeleton.d.ts +28 -0
  119. package/dist/components/skeleton.d.ts.map +1 -0
  120. package/dist/components/skeleton.js +137 -0
  121. package/dist/components/skeleton.js.map +1 -0
  122. package/dist/components/slider.d.ts +30 -0
  123. package/dist/components/slider.d.ts.map +1 -0
  124. package/dist/components/slider.js +248 -0
  125. package/dist/components/slider.js.map +1 -0
  126. package/dist/components/spinner.d.ts +17 -0
  127. package/dist/components/spinner.d.ts.map +1 -0
  128. package/dist/components/spinner.js +199 -0
  129. package/dist/components/spinner.js.map +1 -0
  130. package/dist/components/switch.d.ts +12 -0
  131. package/dist/components/switch.d.ts.map +1 -0
  132. package/dist/components/switch.js +188 -0
  133. package/dist/components/switch.js.map +1 -0
  134. package/dist/components/tabs.d.ts +26 -0
  135. package/dist/components/tabs.d.ts.map +1 -0
  136. package/dist/components/tabs.js +125 -0
  137. package/dist/components/tabs.js.map +1 -0
  138. package/dist/components/text-area.d.ts +16 -0
  139. package/dist/components/text-area.d.ts.map +1 -0
  140. package/dist/components/text-area.js +121 -0
  141. package/dist/components/text-area.js.map +1 -0
  142. package/dist/components/text-field.d.ts +35 -0
  143. package/dist/components/text-field.d.ts.map +1 -0
  144. package/dist/components/text-field.js +300 -0
  145. package/dist/components/text-field.js.map +1 -0
  146. package/dist/components/text.d.ts +23 -0
  147. package/dist/components/text.d.ts.map +1 -0
  148. package/dist/components/text.js +44 -0
  149. package/dist/components/text.js.map +1 -0
  150. package/dist/components/tooltip.d.ts +24 -0
  151. package/dist/components/tooltip.d.ts.map +1 -0
  152. package/dist/components/tooltip.js +63 -0
  153. package/dist/components/tooltip.js.map +1 -0
  154. package/dist/index.d.ts +9 -0
  155. package/dist/index.d.ts.map +1 -0
  156. package/dist/index.js +18 -0
  157. package/dist/index.js.map +1 -0
  158. package/dist/lib/button-styles.d.ts +13 -0
  159. package/dist/lib/button-styles.d.ts.map +1 -0
  160. package/dist/lib/button-styles.js +115 -0
  161. package/dist/lib/button-styles.js.map +1 -0
  162. package/dist/lib/color-utils.d.ts +26 -0
  163. package/dist/lib/color-utils.d.ts.map +1 -0
  164. package/dist/lib/color-utils.js +48 -0
  165. package/dist/lib/color-utils.js.map +1 -0
  166. package/dist/lib/dialog-styles.d.ts +42 -0
  167. package/dist/lib/dialog-styles.d.ts.map +1 -0
  168. package/dist/lib/dialog-styles.js +162 -0
  169. package/dist/lib/dialog-styles.js.map +1 -0
  170. package/dist/lib/full-window-overlay.d.ts +11 -0
  171. package/dist/lib/full-window-overlay.d.ts.map +1 -0
  172. package/dist/lib/full-window-overlay.js +16 -0
  173. package/dist/lib/full-window-overlay.js.map +1 -0
  174. package/dist/lib/panel-styles.d.ts +32 -0
  175. package/dist/lib/panel-styles.d.ts.map +1 -0
  176. package/dist/lib/panel-styles.js +96 -0
  177. package/dist/lib/panel-styles.js.map +1 -0
  178. package/dist/lib/text-input-styles.d.ts +36 -0
  179. package/dist/lib/text-input-styles.d.ts.map +1 -0
  180. package/dist/lib/text-input-styles.js +88 -0
  181. package/dist/lib/text-input-styles.js.map +1 -0
  182. package/dist/lib/theme-context.d.ts +80 -0
  183. package/dist/lib/theme-context.d.ts.map +1 -0
  184. package/dist/lib/theme-context.js +97 -0
  185. package/dist/lib/theme-context.js.map +1 -0
  186. package/dist/lib/theme-tokens.d.ts +222 -0
  187. package/dist/lib/theme-tokens.d.ts.map +1 -0
  188. package/dist/lib/theme-tokens.js +158 -0
  189. package/dist/lib/theme-tokens.js.map +1 -0
  190. package/dist/lib/theme.d.ts +40 -0
  191. package/dist/lib/theme.d.ts.map +1 -0
  192. package/dist/lib/theme.js +194 -0
  193. package/dist/lib/theme.js.map +1 -0
  194. package/dist/lib/types.d.ts +18 -0
  195. package/dist/lib/types.d.ts.map +1 -0
  196. package/dist/lib/types.js +2 -0
  197. package/dist/lib/types.js.map +1 -0
  198. package/dist/lib/use-theme-tokens.d.ts +593 -0
  199. package/dist/lib/use-theme-tokens.d.ts.map +1 -0
  200. package/dist/lib/use-theme-tokens.js +44 -0
  201. package/dist/lib/use-theme-tokens.js.map +1 -0
  202. package/docs/llm/COLOR_SYSTEM.md +799 -0
  203. package/docs/llm/COMPONENTS.md +1329 -0
  204. package/docs/llm/DESIGN_PATTERNS.md +2567 -0
  205. package/docs/llm/README.md +118 -0
  206. package/docs/llm/TYPOGRAPHY.md +516 -0
  207. package/package.json +106 -0
@@ -0,0 +1,63 @@
1
+ import { NativeOnlyAnimatedView } from '../components/native-only-animated-view';
2
+ import { Text } from '../components/text';
3
+ import { useThemeTokens } from '../lib/use-theme-tokens';
4
+ import * as TooltipPrimitive from '@rn-primitives/tooltip';
5
+ import * as React from 'react';
6
+ import { Platform, StyleSheet, View } from 'react-native';
7
+ import { FadeIn, FadeOut } from 'react-native-reanimated';
8
+ import { FullWindowOverlay as RNFullWindowOverlay } from 'react-native-screens';
9
+ const FullWindowOverlay = Platform.OS === 'ios' ? RNFullWindowOverlay : React.Fragment;
10
+ /**
11
+ * Tooltip component matching web version.
12
+ * Uses reversed theme appearance (light mode shows dark tooltip, dark mode shows light tooltip).
13
+ */
14
+ function Tooltip({ children, content, delayDuration = 400, sideOffset = 4, side = 'top', portalHost, ...rootProps }) {
15
+ const { invertedColors } = useThemeTokens();
16
+ // Use inverted theme colors - tooltip shows opposite of current theme
17
+ const backgroundColor = invertedColors.background;
18
+ const textColor = invertedColors.palettes.gray['12'];
19
+ // Shadow style
20
+ const shadowStyle = Platform.select({
21
+ web: {
22
+ boxShadow: `
23
+ 0 4px 16px -8px rgba(0, 0, 0, 0.08),
24
+ 0 3px 12px -4px rgba(0, 0, 0, 0.05),
25
+ 0 2px 3px -2px rgba(0, 0, 61, 0.05)
26
+ `.trim(),
27
+ },
28
+ default: {
29
+ shadowColor: '#000',
30
+ shadowOffset: { width: 0, height: 2 },
31
+ shadowOpacity: 0.1,
32
+ shadowRadius: 8,
33
+ elevation: 4,
34
+ },
35
+ });
36
+ const contentStyle = {
37
+ backgroundColor,
38
+ paddingVertical: 4, // space-1
39
+ paddingHorizontal: 8, // space-2
40
+ borderRadius: 10, // radius-4
41
+ ...shadowStyle,
42
+ };
43
+ return (<TooltipPrimitive.Root delayDuration={delayDuration} {...rootProps}>
44
+ <TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger>
45
+ <TooltipPrimitive.Portal hostName={portalHost}>
46
+ <FullWindowOverlay>
47
+ <TooltipPrimitive.Overlay style={Platform.select({ native: StyleSheet.absoluteFill })}>
48
+ <NativeOnlyAnimatedView entering={FadeIn.duration(100)} exiting={FadeOut.duration(100)}>
49
+ <TooltipPrimitive.Content sideOffset={sideOffset} side={side}>
50
+ <View style={contentStyle}>
51
+ <Text size="2" style={{ color: textColor }}>
52
+ {content}
53
+ </Text>
54
+ </View>
55
+ </TooltipPrimitive.Content>
56
+ </NativeOnlyAnimatedView>
57
+ </TooltipPrimitive.Overlay>
58
+ </FullWindowOverlay>
59
+ </TooltipPrimitive.Portal>
60
+ </TooltipPrimitive.Root>);
61
+ }
62
+ export { Tooltip };
63
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from './components';
2
+ export { isSemanticColor, resolveAccentFromColor } from './lib/color-utils';
3
+ export * from './lib/types';
4
+ export * from './lib/use-theme-tokens';
5
+ export { defaultSemanticColors, ThemeProvider, useTheme } from './lib/theme-context';
6
+ export type { ColorScheme, DangerColor, InfoColor, SemanticColorConfig, SuccessColor, ThemeContextValue, ThemeProviderProps, WarningColor, } from './lib/theme-context';
7
+ export { NAV_THEME, useNavTheme } from './lib/theme';
8
+ export { PortalHost } from '@rn-primitives/portal';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAC;AAI7B,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AAIvC,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACrF,YAAY,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAIrD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ // COMPONENTS
2
+ //------------------------------------------------------------------------------
3
+ export * from './components';
4
+ // UTILITIES
5
+ //------------------------------------------------------------------------------
6
+ export { isSemanticColor, resolveAccentFromColor } from './lib/color-utils';
7
+ export * from './lib/types';
8
+ export * from './lib/use-theme-tokens';
9
+ // THEME
10
+ //------------------------------------------------------------------------------
11
+ export { defaultSemanticColors, ThemeProvider, useTheme } from './lib/theme-context';
12
+ // NAVIGATION
13
+ //------------------------------------------------------------------------------
14
+ export { NAV_THEME, useNavTheme } from './lib/theme';
15
+ // PORTAL
16
+ //------------------------------------------------------------------------------
17
+ export { PortalHost } from '@rn-primitives/portal';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,gFAAgF;AAChF,cAAc,cAAc,CAAC;AAE7B,YAAY;AACZ,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AAEvC,QAAQ;AACR,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAYrF,aAAa;AACb,gFAAgF;AAChF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAErD,SAAS;AACT,gFAAgF;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { useThemeTokens } from '../lib/use-theme-tokens';
2
+ import type { ViewStyle } from 'react-native';
3
+ export type ButtonSize = '1' | '2' | '3' | '4';
4
+ export type ButtonVariant = 'solid' | 'soft' | 'surface' | 'ghost';
5
+ type Palette = ReturnType<typeof useThemeTokens>['colors']['palettes']['gray'];
6
+ export declare function getButtonSizeStyle(size: ButtonSize, isIconButton?: boolean): ViewStyle;
7
+ export declare function getButtonVariantStyle(variant: ButtonVariant, colors: ReturnType<typeof useThemeTokens>['colors'], palette: Palette, gray: Palette, disabled: boolean, pressed: boolean, hovered: boolean): ViewStyle;
8
+ export declare function getButtonShadowStyle(variant: ButtonVariant, disabled: boolean, pressed: boolean): ViewStyle | undefined;
9
+ export declare function getButtonFocusStyle(palette: Palette, focused: boolean, disabled: boolean): ViewStyle | undefined;
10
+ export declare function getButtonPressedFilter(variant: ButtonVariant, pressed: boolean, disabled: boolean): ViewStyle | undefined;
11
+ export declare function getButtonTextColor(variant: ButtonVariant, palette: Palette, gray: Palette, disabled: boolean): string;
12
+ export {};
13
+ //# sourceMappingURL=button-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-styles.d.ts","sourceRoot":"","sources":["../../src/lib/button-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAGnE,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,UAAQ,GAAG,SAAS,CA+BpF;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,QAAQ,CAAC,EACnD,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,GACf,SAAS,CA+CX;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,OAAO,GACf,SAAS,GAAG,SAAS,CAWvB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,GAChB,SAAS,GAAG,SAAS,CAUvB;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,GAChB,SAAS,GAAG,SAAS,CAKvB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,OAAO,GAChB,MAAM,CAQR"}
@@ -0,0 +1,115 @@
1
+ import { Platform } from 'react-native';
2
+ export function getButtonSizeStyle(size, isIconButton = false) {
3
+ // Based on web CSS:
4
+ // Size 1: height=space-5(24), gap=space-1(4), padding=space-2(8), radius=6
5
+ // Size 2: height=space-6(32), gap=space-1*1.5(6), padding=space-3(12), radius=8
6
+ // Size 3: height=space-7(40), gap=space-2(8), padding=space-4(16), radius=10
7
+ // Size 4: height=space-8(48), gap=space-3(12), padding=space-4(16), radius=14
8
+ const baseSize = size === '1'
9
+ ? { height: 24, borderRadius: 6, gap: 4 }
10
+ : size === '2'
11
+ ? { height: 32, borderRadius: 8, gap: 6 }
12
+ : size === '3'
13
+ ? { height: 40, borderRadius: 10, gap: 8 }
14
+ : { height: 48, borderRadius: 14, gap: 12 };
15
+ if (isIconButton) {
16
+ // IconButton: square (width = height), no horizontal padding
17
+ return {
18
+ ...baseSize,
19
+ width: baseSize.height,
20
+ paddingHorizontal: 0,
21
+ };
22
+ }
23
+ // Regular Button: horizontal padding based on size
24
+ const paddingHorizontal = size === '1' ? 8 : size === '2' ? 12 : size === '3' ? 16 : 16;
25
+ return {
26
+ ...baseSize,
27
+ paddingHorizontal,
28
+ };
29
+ }
30
+ export function getButtonVariantStyle(variant, colors, palette, gray, disabled, pressed, hovered) {
31
+ let backgroundColor;
32
+ let borderColor;
33
+ let borderWidth;
34
+ if (disabled) {
35
+ switch (variant) {
36
+ case 'solid':
37
+ case 'soft':
38
+ backgroundColor = gray.a3;
39
+ break;
40
+ case 'surface':
41
+ backgroundColor = gray.a2;
42
+ borderColor = gray.a6;
43
+ borderWidth = 1;
44
+ break;
45
+ case 'ghost':
46
+ backgroundColor = 'transparent';
47
+ break;
48
+ }
49
+ }
50
+ else {
51
+ switch (variant) {
52
+ case 'solid':
53
+ backgroundColor = pressed ? palette['10'] : hovered ? palette['10'] : palette['9'];
54
+ break;
55
+ case 'soft':
56
+ backgroundColor = pressed ? palette.a5 : hovered ? palette.a4 : palette.a3;
57
+ break;
58
+ case 'surface':
59
+ // Default: panelSolid bg, gray-a5 border (stroke), outer shadow
60
+ // Hover: same bg, gray-a7 border, outer shadow
61
+ // Pressed: gray-a3 bg, gray-a6 border, no outer shadow
62
+ backgroundColor = pressed ? gray['3'] : colors.panelSolid;
63
+ borderColor = pressed ? gray.a6 : hovered ? gray.a7 : gray.a5;
64
+ borderWidth = 1;
65
+ break;
66
+ case 'ghost':
67
+ backgroundColor = pressed ? palette.a4 : hovered ? palette.a3 : undefined;
68
+ break;
69
+ }
70
+ }
71
+ return {
72
+ backgroundColor,
73
+ borderColor,
74
+ borderWidth,
75
+ };
76
+ }
77
+ export function getButtonShadowStyle(variant, disabled, pressed) {
78
+ if (!disabled && !pressed && variant === 'surface') {
79
+ return {
80
+ shadowColor: '#000000',
81
+ shadowOpacity: 0.05,
82
+ shadowOffset: { width: 0, height: 1 },
83
+ shadowRadius: 2,
84
+ elevation: 2,
85
+ };
86
+ }
87
+ return undefined;
88
+ }
89
+ export function getButtonFocusStyle(palette, focused, disabled) {
90
+ if (focused && !disabled) {
91
+ return {
92
+ outlineWidth: 2,
93
+ outlineStyle: 'solid',
94
+ outlineColor: palette.a8,
95
+ outlineOffset: 2,
96
+ };
97
+ }
98
+ return undefined;
99
+ }
100
+ export function getButtonPressedFilter(variant, pressed, disabled) {
101
+ if (Platform.OS === 'web' && pressed && !disabled && variant === 'solid') {
102
+ return { filter: 'brightness(0.92) saturate(1.1)' };
103
+ }
104
+ return undefined;
105
+ }
106
+ export function getButtonTextColor(variant, palette, gray, disabled) {
107
+ if (disabled) {
108
+ return gray.a8;
109
+ }
110
+ if (variant === 'solid') {
111
+ return palette['9-contrast'];
112
+ }
113
+ return palette.a11 || palette['11'];
114
+ }
115
+ //# sourceMappingURL=button-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-styles.js","sourceRoot":"","sources":["../../src/lib/button-styles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type SemanticColorConfig } from './theme-context';
2
+ import type { AccentColor, Color, SemanticColor } from './types';
3
+ /**
4
+ * Resolves a Color (which can be an AccentColor or SemanticColor) to an AccentColor.
5
+ * Semantic colors are resolved using the provided semantic color configuration.
6
+ *
7
+ * @param color - The color to resolve (can be 'danger', 'warning', 'success', 'info', or any AccentColor)
8
+ * @param semanticColors - The semantic color configuration from ThemeProvider (optional, uses defaults if not provided)
9
+ * @param defaultColor - The default color to return if no color is provided (defaults to 'blue')
10
+ * @returns The resolved AccentColor
11
+ */
12
+ export declare function resolveAccentFromColor(color: Color | undefined, semanticColors?: SemanticColorConfig, defaultColor?: AccentColor): AccentColor;
13
+ /**
14
+ * Checks if a color is a semantic color.
15
+ */
16
+ export declare function isSemanticColor(color: Color): color is SemanticColor;
17
+ /**
18
+ * Hook that returns a function to resolve colors using the current theme's semantic color configuration.
19
+ * Use this in components to properly respect ThemeProvider's color settings.
20
+ *
21
+ * @example
22
+ * const resolveColor = useResolveColor();
23
+ * const accentColor = resolveColor(props.color); // Respects ThemeProvider config
24
+ */
25
+ export declare function useResolveColor(): (color: Color | undefined, defaultColor?: AccentColor) => AccentColor;
26
+ //# sourceMappingURL=color-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-utils.d.ts","sourceRoot":"","sources":["../../src/lib/color-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEjE;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,cAAc,GAAE,mBAA2C,EAC3D,YAAY,GAAE,WAAoB,GACjC,WAAW,CAiBb;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,aAAa,CAEpE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,YAKjB,KAAK,GAAG,SAAS,iBAAgB,WAAW,KAAY,WAAW,CAIhF"}
@@ -0,0 +1,48 @@
1
+ import { useMemo } from 'react';
2
+ import { defaultSemanticColors, useSemanticColors, } from './theme-context';
3
+ /**
4
+ * Resolves a Color (which can be an AccentColor or SemanticColor) to an AccentColor.
5
+ * Semantic colors are resolved using the provided semantic color configuration.
6
+ *
7
+ * @param color - The color to resolve (can be 'danger', 'warning', 'success', 'info', or any AccentColor)
8
+ * @param semanticColors - The semantic color configuration from ThemeProvider (optional, uses defaults if not provided)
9
+ * @param defaultColor - The default color to return if no color is provided (defaults to 'blue')
10
+ * @returns The resolved AccentColor
11
+ */
12
+ export function resolveAccentFromColor(color, semanticColors = defaultSemanticColors, defaultColor = 'blue') {
13
+ if (!color)
14
+ return defaultColor;
15
+ switch (color) {
16
+ case 'accent':
17
+ return semanticColors.accentColor;
18
+ case 'danger':
19
+ return semanticColors.dangerColor;
20
+ case 'warning':
21
+ return semanticColors.warningColor;
22
+ case 'success':
23
+ return semanticColors.successColor;
24
+ case 'info':
25
+ return semanticColors.infoColor;
26
+ default:
27
+ return color;
28
+ }
29
+ }
30
+ /**
31
+ * Checks if a color is a semantic color.
32
+ */
33
+ export function isSemanticColor(color) {
34
+ return color === 'danger' || color === 'warning' || color === 'success' || color === 'info';
35
+ }
36
+ /**
37
+ * Hook that returns a function to resolve colors using the current theme's semantic color configuration.
38
+ * Use this in components to properly respect ThemeProvider's color settings.
39
+ *
40
+ * @example
41
+ * const resolveColor = useResolveColor();
42
+ * const accentColor = resolveColor(props.color); // Respects ThemeProvider config
43
+ */
44
+ export function useResolveColor() {
45
+ const semanticColors = useSemanticColors();
46
+ return useMemo(() => (color, defaultColor = 'blue') => resolveAccentFromColor(color, semanticColors, defaultColor), [semanticColors]);
47
+ }
48
+ //# sourceMappingURL=color-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-utils.js","sourceRoot":"","sources":["../../src/lib/color-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAElB,MAAM,iBAAiB,CAAC;AAGzB;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAwB,EACxB,iBAAsC,qBAAqB,EAC3D,eAA4B,MAAM;IAElC,IAAI,CAAC,KAAK;QAAE,OAAO,YAAY,CAAC;IAEhC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,WAAW,CAAC;QACpC,KAAK,QAAQ;YACX,OAAO,cAAc,CAAC,WAAW,CAAC;QACpC,KAAK,SAAS;YACZ,OAAO,cAAc,CAAC,YAAY,CAAC;QACrC,KAAK,SAAS;YACZ,OAAO,cAAc,CAAC,YAAY,CAAC;QACrC,KAAK,MAAM;YACT,OAAO,cAAc,CAAC,SAAS,CAAC;QAClC;YACE,OAAO,KAAoB,CAAC;IAChC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAY;IAC1C,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,MAAM,CAAC;AAC9F,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,OAAO,OAAO,CACZ,GAAG,EAAE,CACH,CAAC,KAAwB,EAAE,eAA4B,MAAM,EAAe,EAAE,CAC5E,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,CAAC,EAC/D,CAAC,cAAc,CAAC,CACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { type StyleProp, type ViewStyle } from 'react-native';
2
+ export type DialogSize = '1' | '2' | '3' | '4';
3
+ interface ThemeColors {
4
+ panelSolid: string;
5
+ palettes: {
6
+ gray: {
7
+ a3: string;
8
+ a6: string;
9
+ a7: string;
10
+ };
11
+ black: {
12
+ a3: string;
13
+ a4: string;
14
+ a6: string;
15
+ a11: string;
16
+ };
17
+ };
18
+ }
19
+ export declare function getDialogSizeStyles(size: DialogSize): {
20
+ padding: number;
21
+ borderRadius: number;
22
+ titleMarginBottom: number;
23
+ descriptionMarginBottom: number;
24
+ minWidth: number;
25
+ };
26
+ export declare function getDialogTitleSize(size: DialogSize): '3' | '5' | '6';
27
+ export declare function getDialogDescriptionSize(size: DialogSize): '1' | '2' | '3';
28
+ export declare function getDialogShadowStyle(gray: {
29
+ a3: string;
30
+ a6: string;
31
+ a7: string;
32
+ }, black: {
33
+ a3: string;
34
+ a4: string;
35
+ a6: string;
36
+ a11: string;
37
+ }, isDark: boolean): ViewStyle;
38
+ export declare function getDialogOverlayStyle(): ViewStyle;
39
+ export declare function getDialogBackdropStyle(): ViewStyle;
40
+ export declare function getDialogContentStyle(size: DialogSize, colors: ThemeColors, isDark: boolean, windowWidth: number, userStyle?: StyleProp<ViewStyle>): ViewStyle;
41
+ export {};
42
+ //# sourceMappingURL=dialog-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-styles.d.ts","sourceRoot":"","sources":["../../src/lib/dialog-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMxE,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAE/C,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,MAAM,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;SACZ,CAAC;QACF,KAAK,EAAE;YACL,EAAE,EAAE,MAAM,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH,CAAC;CACH;AAMD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU;;;;;;EAmCnD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAUpE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAU1E;AAMD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAC5C,KAAK,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAC1D,MAAM,EAAE,OAAO,GACd,SAAS,CAoBX;AAMD,wBAAgB,qBAAqB,IAAI,SAAS,CAejD;AAED,wBAAgB,sBAAsB,IAAI,SAAS,CAsBlD;AAMD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,GAC/B,SAAS,CAsCX"}
@@ -0,0 +1,162 @@
1
+ import { Platform } from 'react-native';
2
+ // ============================================================================
3
+ // Size helpers
4
+ // ============================================================================
5
+ export function getDialogSizeStyles(size) {
6
+ switch (size) {
7
+ case '1':
8
+ return {
9
+ padding: 12, // space-3
10
+ borderRadius: 8,
11
+ titleMarginBottom: 4, // space-1
12
+ descriptionMarginBottom: 12, // space-3
13
+ minWidth: 200,
14
+ };
15
+ case '2':
16
+ return {
17
+ padding: 16, // space-4
18
+ borderRadius: 12,
19
+ titleMarginBottom: 8, // space-2
20
+ descriptionMarginBottom: 16, // space-4
21
+ minWidth: 240,
22
+ };
23
+ case '3':
24
+ return {
25
+ padding: 20,
26
+ borderRadius: 16,
27
+ titleMarginBottom: 12, // space-3
28
+ descriptionMarginBottom: 20,
29
+ minWidth: 280,
30
+ };
31
+ case '4':
32
+ return {
33
+ padding: 24, // space-5
34
+ borderRadius: 20,
35
+ titleMarginBottom: 12, // space-3
36
+ descriptionMarginBottom: 24, // space-5
37
+ minWidth: 320,
38
+ };
39
+ }
40
+ }
41
+ export function getDialogTitleSize(size) {
42
+ switch (size) {
43
+ case '1':
44
+ return '3';
45
+ case '2':
46
+ case '3':
47
+ return '5';
48
+ case '4':
49
+ return '6';
50
+ }
51
+ }
52
+ export function getDialogDescriptionSize(size) {
53
+ switch (size) {
54
+ case '1':
55
+ return '1';
56
+ case '2':
57
+ case '3':
58
+ return '2';
59
+ case '4':
60
+ return '3';
61
+ }
62
+ }
63
+ // ============================================================================
64
+ // Shadow helper (shadow-6)
65
+ // ============================================================================
66
+ export function getDialogShadowStyle(gray, black, isDark) {
67
+ if (Platform.OS === 'web') {
68
+ const boxShadow = isDark
69
+ ? `0 0 0 1px ${gray.a6}, 0 12px 60px ${black.a4}, 0 16px 64px ${black.a6}, 0 16px 36px -20px ${black.a11}`
70
+ : `0 0 0 1px ${gray.a3}, 0 12px 60px ${black.a3}, 0 16px 64px ${gray.a3}, 0 16px 36px -20px ${gray.a7}`;
71
+ return { boxShadow };
72
+ }
73
+ // Native shadow approximation
74
+ return {
75
+ shadowColor: '#000',
76
+ shadowOffset: { width: 0, height: 16 },
77
+ shadowOpacity: isDark ? 0.5 : 0.25,
78
+ shadowRadius: 32,
79
+ elevation: 24,
80
+ // Add border for native
81
+ borderWidth: 1,
82
+ borderColor: isDark ? gray.a6 : gray.a3,
83
+ };
84
+ }
85
+ // ============================================================================
86
+ // Overlay styles
87
+ // ============================================================================
88
+ export function getDialogOverlayStyle() {
89
+ return {
90
+ position: Platform.OS === 'web' ? 'fixed' : 'absolute',
91
+ top: 0,
92
+ left: 0,
93
+ right: 0,
94
+ bottom: 0,
95
+ zIndex: 50,
96
+ alignItems: 'center',
97
+ justifyContent: 'center',
98
+ paddingTop: 16, // space-4
99
+ paddingBottom: 32, // max(space-4, 4vh) approximation
100
+ paddingLeft: 16, // space-4
101
+ paddingRight: 16, // space-4
102
+ };
103
+ }
104
+ export function getDialogBackdropStyle() {
105
+ if (Platform.OS === 'web') {
106
+ return {
107
+ position: 'absolute',
108
+ top: 0,
109
+ left: 0,
110
+ right: 0,
111
+ bottom: 0,
112
+ backdropFilter: 'blur(3px) brightness(0.7)',
113
+ WebkitBackdropFilter: 'blur(3px) brightness(0.7)',
114
+ };
115
+ }
116
+ // Native: semi-transparent black backdrop
117
+ return {
118
+ position: 'absolute',
119
+ top: 0,
120
+ left: 0,
121
+ right: 0,
122
+ bottom: 0,
123
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
124
+ };
125
+ }
126
+ // ============================================================================
127
+ // Content styles
128
+ // ============================================================================
129
+ export function getDialogContentStyle(size, colors, isDark, windowWidth, userStyle) {
130
+ const sizeStyles = getDialogSizeStyles(size);
131
+ const gray = colors.palettes.gray;
132
+ const black = colors.palettes.black;
133
+ const shadowStyle = getDialogShadowStyle(gray, black, isDark);
134
+ // Calculate available width (screen width minus overlay padding)
135
+ const overlayPadding = 16; // space-4
136
+ const availableWidth = windowWidth - overlayPadding * 2;
137
+ const defaultMaxWidth = 580;
138
+ // Extract maxWidth from style prop if provided
139
+ const flatStyle = userStyle
140
+ ? Array.isArray(userStyle)
141
+ ? Object.assign({}, ...userStyle.filter((s) => s != null && typeof s === 'object'))
142
+ : typeof userStyle === 'object' && userStyle != null
143
+ ? userStyle
144
+ : {}
145
+ : {};
146
+ const userMaxWidth = flatStyle.maxWidth;
147
+ const effectiveMaxWidth = typeof userMaxWidth === 'number' ? userMaxWidth : defaultMaxWidth;
148
+ return {
149
+ // On web, width: '100%' works with flexbox centering
150
+ // On native, we calculate a fixed width based on available space and maxWidth
151
+ width: Platform.OS === 'web' ? '100%' : Math.min(availableWidth, effectiveMaxWidth),
152
+ minWidth: sizeStyles.minWidth,
153
+ maxWidth: defaultMaxWidth,
154
+ backgroundColor: colors.panelSolid,
155
+ padding: sizeStyles.padding,
156
+ borderRadius: sizeStyles.borderRadius,
157
+ overflow: Platform.OS === 'web' ? 'auto' : 'hidden',
158
+ zIndex: 1,
159
+ ...shadowStyle,
160
+ };
161
+ }
162
+ //# sourceMappingURL=dialog-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-styles.js","sourceRoot":"","sources":["../../src/lib/dialog-styles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ /**
3
+ * A wrapper that uses FullWindowOverlay on iOS and a Fragment on other platforms.
4
+ * This is implemented as a component rather than a top-level constant to avoid
5
+ * accessing Platform.OS at module load time, which can cause issues in monorepos
6
+ * where modules are loaded before React Native is fully initialized.
7
+ */
8
+ export declare function FullWindowOverlay({ children }: {
9
+ children: React.ReactNode;
10
+ }): React.JSX.Element;
11
+ //# sourceMappingURL=full-window-overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-window-overlay.d.ts","sourceRoot":"","sources":["../../src/lib/full-window-overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAK5E"}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { Platform } from 'react-native';
3
+ import { FullWindowOverlay as RNFullWindowOverlay } from 'react-native-screens';
4
+ /**
5
+ * A wrapper that uses FullWindowOverlay on iOS and a Fragment on other platforms.
6
+ * This is implemented as a component rather than a top-level constant to avoid
7
+ * accessing Platform.OS at module load time, which can cause issues in monorepos
8
+ * where modules are loaded before React Native is fully initialized.
9
+ */
10
+ export function FullWindowOverlay({ children }) {
11
+ if (Platform.OS === 'ios') {
12
+ return <RNFullWindowOverlay>{children}</RNFullWindowOverlay>;
13
+ }
14
+ return <>{children}</>;
15
+ }
16
+ //# sourceMappingURL=full-window-overlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"full-window-overlay.js","sourceRoot":"","sources":["../../src/lib/full-window-overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,iBAAiB,IAAI,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAAiC;IAC3E,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QAC1B,OAAO,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC;AACzB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { type ViewStyle } from 'react-native';
2
+ type PanelSize = '1' | '2' | '3' | '4';
3
+ type PanelVariant = 'solid' | 'translucent';
4
+ interface ThemeColors {
5
+ panelSolid: string;
6
+ panelTranslucent: string;
7
+ palettes: {
8
+ gray: {
9
+ a6: string;
10
+ };
11
+ };
12
+ }
13
+ interface PanelStyleOptions {
14
+ size: PanelSize;
15
+ variant: PanelVariant;
16
+ colors: ThemeColors;
17
+ isDark: boolean;
18
+ }
19
+ /**
20
+ * Get padding and border radius for panel content based on size
21
+ */
22
+ declare function getPanelSizeStyle(size: PanelSize): {
23
+ padding: number;
24
+ borderRadius: number;
25
+ };
26
+ /**
27
+ * Get complete panel content style
28
+ */
29
+ declare function getPanelContentStyle(options: PanelStyleOptions): ViewStyle;
30
+ export { getPanelContentStyle, getPanelSizeStyle };
31
+ export type { PanelSize, PanelStyleOptions, PanelVariant };
32
+ //# sourceMappingURL=panel-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-styles.d.ts","sourceRoot":"","sources":["../../src/lib/panel-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAExD,KAAK,SAAS,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACvC,KAAK,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC;AAE5C,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,MAAM,CAAC;SACZ,CAAC;KACH,CAAC;CACH;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,iBAAS,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAWrF;AA6DD;;GAEG;AACH,iBAAS,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CA0BnE;AAED,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;AACnD,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC"}