@frosted-ui/react-native 0.0.1-canary.91 → 0.0.1-canary.94

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 (172) hide show
  1. package/README.md +72 -14
  2. package/dist/components/accordion.js +2 -2
  3. package/dist/components/accordion.js.map +1 -1
  4. package/dist/components/alert-dialog.js +2 -2
  5. package/dist/components/alert-dialog.js.map +1 -1
  6. package/dist/components/avatar.d.ts.map +1 -1
  7. package/dist/components/avatar.js +5 -20
  8. package/dist/components/avatar.js.map +1 -1
  9. package/dist/components/badge.d.ts +2 -4
  10. package/dist/components/badge.d.ts.map +1 -1
  11. package/dist/components/badge.js +8 -22
  12. package/dist/components/badge.js.map +1 -1
  13. package/dist/components/button.d.ts +1 -1
  14. package/dist/components/button.d.ts.map +1 -1
  15. package/dist/components/button.js +13 -17
  16. package/dist/components/button.js.map +1 -1
  17. package/dist/components/callout.d.ts +2 -4
  18. package/dist/components/callout.d.ts.map +1 -1
  19. package/dist/components/callout.js +6 -24
  20. package/dist/components/callout.js.map +1 -1
  21. package/dist/components/card.d.ts +1 -2
  22. package/dist/components/card.d.ts.map +1 -1
  23. package/dist/components/card.js +4 -4
  24. package/dist/components/card.js.map +1 -1
  25. package/dist/components/checkbox.d.ts +1 -2
  26. package/dist/components/checkbox.d.ts.map +1 -1
  27. package/dist/components/checkbox.js +5 -21
  28. package/dist/components/checkbox.js.map +1 -1
  29. package/dist/components/code.d.ts +6 -8
  30. package/dist/components/code.d.ts.map +1 -1
  31. package/dist/components/code.js +7 -7
  32. package/dist/components/code.js.map +1 -1
  33. package/dist/components/context-menu.js +9 -9
  34. package/dist/components/context-menu.js.map +1 -1
  35. package/dist/components/dialog.js +2 -2
  36. package/dist/components/dialog.js.map +1 -1
  37. package/dist/components/dropdown-menu.js +9 -9
  38. package/dist/components/dropdown-menu.js.map +1 -1
  39. package/dist/components/heading.d.ts +6 -6
  40. package/dist/components/heading.d.ts.map +1 -1
  41. package/dist/components/heading.js +2 -2
  42. package/dist/components/heading.js.map +1 -1
  43. package/dist/components/hover-card.js +2 -2
  44. package/dist/components/hover-card.js.map +1 -1
  45. package/dist/components/icon-button.d.ts +2 -2
  46. package/dist/components/icon-button.d.ts.map +1 -1
  47. package/dist/components/icon-button.js +13 -17
  48. package/dist/components/icon-button.js.map +1 -1
  49. package/dist/components/icon.d.ts +6 -7
  50. package/dist/components/icon.d.ts.map +1 -1
  51. package/dist/components/icon.js +9 -24
  52. package/dist/components/icon.js.map +1 -1
  53. package/dist/components/index.d.ts +2 -0
  54. package/dist/components/index.d.ts.map +1 -1
  55. package/dist/components/index.js +2 -0
  56. package/dist/components/index.js.map +1 -1
  57. package/dist/components/label.js +2 -2
  58. package/dist/components/label.js.map +1 -1
  59. package/dist/components/link.d.ts +19 -0
  60. package/dist/components/link.d.ts.map +1 -0
  61. package/dist/components/link.js +68 -0
  62. package/dist/components/link.js.map +1 -0
  63. package/dist/components/list.d.ts +37 -0
  64. package/dist/components/list.d.ts.map +1 -0
  65. package/dist/components/list.js +112 -0
  66. package/dist/components/list.js.map +1 -0
  67. package/dist/components/native-only-animated-view.d.ts +0 -4
  68. package/dist/components/native-only-animated-view.d.ts.map +1 -1
  69. package/dist/components/popover.js +2 -2
  70. package/dist/components/popover.js.map +1 -1
  71. package/dist/components/progress.d.ts +1 -2
  72. package/dist/components/progress.d.ts.map +1 -1
  73. package/dist/components/progress.js +5 -21
  74. package/dist/components/progress.js.map +1 -1
  75. package/dist/components/radio-group.d.ts +1 -2
  76. package/dist/components/radio-group.d.ts.map +1 -1
  77. package/dist/components/radio-group.js +7 -23
  78. package/dist/components/radio-group.js.map +1 -1
  79. package/dist/components/segmented-control.js +3 -3
  80. package/dist/components/segmented-control.js.map +1 -1
  81. package/dist/components/select.d.ts.map +1 -1
  82. package/dist/components/select.js +11 -13
  83. package/dist/components/select.js.map +1 -1
  84. package/dist/components/separator.d.ts +1 -1
  85. package/dist/components/separator.d.ts.map +1 -1
  86. package/dist/components/separator.js +4 -21
  87. package/dist/components/separator.js.map +1 -1
  88. package/dist/components/skeleton.d.ts.map +1 -1
  89. package/dist/components/skeleton.js +10 -26
  90. package/dist/components/skeleton.js.map +1 -1
  91. package/dist/components/spinner.js +2 -2
  92. package/dist/components/spinner.js.map +1 -1
  93. package/dist/components/switch.d.ts +1 -2
  94. package/dist/components/switch.d.ts.map +1 -1
  95. package/dist/components/switch.js +5 -21
  96. package/dist/components/switch.js.map +1 -1
  97. package/dist/components/tabs.d.ts +4 -3
  98. package/dist/components/tabs.d.ts.map +1 -1
  99. package/dist/components/tabs.js +10 -9
  100. package/dist/components/tabs.js.map +1 -1
  101. package/dist/components/text-area.d.ts.map +1 -1
  102. package/dist/components/text-area.js +13 -9
  103. package/dist/components/text-area.js.map +1 -1
  104. package/dist/components/text-field.d.ts.map +1 -1
  105. package/dist/components/text-field.js +62 -18
  106. package/dist/components/text-field.js.map +1 -1
  107. package/dist/components/text.d.ts +6 -6
  108. package/dist/components/text.d.ts.map +1 -1
  109. package/dist/components/text.js +22 -11
  110. package/dist/components/text.js.map +1 -1
  111. package/dist/components/tooltip.js +2 -2
  112. package/dist/components/tooltip.js.map +1 -1
  113. package/dist/index.d.ts +6 -1
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +11 -1
  116. package/dist/index.js.map +1 -1
  117. package/dist/lib/button-styles.d.ts +6 -6
  118. package/dist/lib/button-styles.d.ts.map +1 -1
  119. package/dist/lib/button-styles.js +1 -17
  120. package/dist/lib/button-styles.js.map +1 -1
  121. package/dist/lib/color-utils.d.ts +19 -14
  122. package/dist/lib/color-utils.d.ts.map +1 -1
  123. package/dist/lib/color-utils.js +37 -73
  124. package/dist/lib/color-utils.js.map +1 -1
  125. package/dist/lib/full-window-overlay.d.ts +11 -0
  126. package/dist/lib/full-window-overlay.d.ts.map +1 -0
  127. package/dist/lib/full-window-overlay.js +16 -0
  128. package/dist/lib/full-window-overlay.js.map +1 -0
  129. package/dist/lib/text-input-styles.d.ts +9 -8
  130. package/dist/lib/text-input-styles.d.ts.map +1 -1
  131. package/dist/lib/text-input-styles.js +4 -23
  132. package/dist/lib/text-input-styles.js.map +1 -1
  133. package/dist/lib/theme-context.d.ts +80 -0
  134. package/dist/lib/theme-context.d.ts.map +1 -0
  135. package/dist/lib/theme-context.js +97 -0
  136. package/dist/lib/theme-context.js.map +1 -0
  137. package/dist/lib/{theme-vars.d.ts → theme-tokens.d.ts} +2 -2
  138. package/dist/lib/theme-tokens.d.ts.map +1 -0
  139. package/dist/lib/{theme-vars.js → theme-tokens.js} +4 -19
  140. package/dist/lib/theme-tokens.js.map +1 -0
  141. package/dist/lib/theme.d.ts +14 -54
  142. package/dist/lib/theme.d.ts.map +1 -1
  143. package/dist/lib/theme.js +98 -66
  144. package/dist/lib/theme.js.map +1 -1
  145. package/dist/lib/types.d.ts +6 -2
  146. package/dist/lib/types.d.ts.map +1 -1
  147. package/dist/lib/use-theme-tokens.d.ts +593 -0
  148. package/dist/lib/use-theme-tokens.d.ts.map +1 -0
  149. package/dist/lib/use-theme-tokens.js +44 -0
  150. package/dist/lib/use-theme-tokens.js.map +1 -0
  151. package/docs/llm/COLOR_SYSTEM.md +799 -0
  152. package/docs/llm/COMPONENTS.md +1183 -0
  153. package/docs/llm/DESIGN_PATTERNS.md +2466 -0
  154. package/docs/llm/README.md +117 -0
  155. package/docs/llm/TYPOGRAPHY.md +516 -0
  156. package/package.json +11 -21
  157. package/dist/lib/native-colors.d.ts +0 -8
  158. package/dist/lib/native-colors.d.ts.map +0 -1
  159. package/dist/lib/native-colors.js +0 -67
  160. package/dist/lib/native-colors.js.map +0 -1
  161. package/dist/lib/theme-vars.d.ts.map +0 -1
  162. package/dist/lib/theme-vars.js.map +0 -1
  163. package/dist/lib/use-theme-vars.d.ts +0 -325
  164. package/dist/lib/use-theme-vars.d.ts.map +0 -1
  165. package/dist/lib/use-theme-vars.js +0 -17
  166. package/dist/lib/use-theme-vars.js.map +0 -1
  167. package/dist/lib/utils.d.ts +0 -3
  168. package/dist/lib/utils.d.ts.map +0 -1
  169. package/dist/lib/utils.js +0 -17
  170. package/dist/lib/utils.js.map +0 -1
  171. package/global.css +0 -1813
  172. package/tailwind-preset.js +0 -310
@@ -1,15 +1,15 @@
1
1
  import { Text } from '../components/text';
2
- import { themeVars } from '../lib/theme-vars';
3
- import type { AccentColor } from '../lib/types';
2
+ import { themeTokens } from '../lib/theme-tokens';
3
+ import type { Color } from '../lib/types';
4
4
  import type * as React from 'react';
5
- type HeadingSize = keyof typeof themeVars.typography;
6
- type HeadingWeight = keyof typeof themeVars.fontWeights;
5
+ type HeadingSize = keyof typeof themeTokens.typography;
6
+ type HeadingWeight = keyof typeof themeTokens.fontWeights;
7
7
  type HeadingProps = Omit<React.ComponentProps<typeof Text>, 'variant' | 'color'> & {
8
8
  size?: HeadingSize;
9
9
  weight?: HeadingWeight;
10
- color?: AccentColor;
10
+ color?: Color;
11
11
  };
12
- declare function Heading({ size, weight, color, className, role: roleProp, ...props }: HeadingProps): React.JSX.Element;
12
+ declare function Heading({ size, weight, color, role: roleProp, ...props }: HeadingProps): React.JSX.Element;
13
13
  export { Heading };
14
14
  export type { HeadingProps };
15
15
  //# sourceMappingURL=heading.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../src/components/heading.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,KAAK,WAAW,GAAG,MAAM,OAAO,SAAS,CAAC,UAAU,CAAC;AACrD,KAAK,aAAa,GAAG,MAAM,OAAO,SAAS,CAAC,WAAW,CAAC;AAExD,KAAK,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG;IACjF,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF,iBAAS,OAAO,CAAC,EACf,IAAU,EACV,MAAe,EACf,KAAK,EACL,SAAS,EACT,IAAI,EAAE,QAAQ,EACd,GAAG,KAAK,EACT,EAAE,YAAY,qBAMd;AAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,YAAY,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../src/components/heading.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,KAAK,WAAW,GAAG,MAAM,OAAO,WAAW,CAAC,UAAU,CAAC;AACvD,KAAK,aAAa,GAAG,MAAM,OAAO,WAAW,CAAC,WAAW,CAAC;AAE1D,KAAK,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG;IACjF,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,iBAAS,OAAO,CAAC,EAAE,IAAU,EAAE,MAAe,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,qBAI9F;AAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,YAAY,EAAE,YAAY,EAAE,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { Text } from '../components/text';
2
2
  import { Platform } from 'react-native';
3
- function Heading({ size = '6', weight = 'bold', color, className, role: roleProp, ...props }) {
3
+ function Heading({ size = '6', weight = 'bold', color, role: roleProp, ...props }) {
4
4
  const role = Platform.OS === 'web' ? (roleProp ?? 'heading') : roleProp;
5
- return (<Text size={size} weight={weight} className={className} color={color} role={role} {...props}/>);
5
+ return <Text size={size} weight={weight} color={color} role={role} {...props}/>;
6
6
  }
7
7
  export { Heading };
8
8
  //# sourceMappingURL=heading.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heading.js","sourceRoot":"","sources":["../../src/components/heading.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAIzC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAWxC,SAAS,OAAO,CAAC,EACf,IAAI,GAAG,GAAG,EACV,MAAM,GAAG,MAAM,EACf,KAAK,EACL,SAAS,EACT,IAAI,EAAE,QAAQ,EACd,GAAG,KAAK,EACK;IACb,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAExE,OAAO,CACL,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CAChG,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"heading.js","sourceRoot":"","sources":["../../src/components/heading.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAIzC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAWxC,SAAS,OAAO,CAAC,EAAE,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAgB;IAC7F,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAExE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AACnF,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { NativeOnlyAnimatedView } from '../components/native-only-animated-view';
2
2
  import { getPanelContentStyle } from '../lib/panel-styles';
3
- import { useThemeVars } from '../lib/use-theme-vars';
3
+ import { useThemeTokens } from '../lib/use-theme-tokens';
4
4
  import * as HoverCardPrimitive from '@rn-primitives/hover-card';
5
5
  import * as React from 'react';
6
6
  import { Platform, StyleSheet, View } from 'react-native';
@@ -18,7 +18,7 @@ const HoverCardTrigger = HoverCardPrimitive.Trigger;
18
18
  // ============================================================================
19
19
  const FullWindowOverlay = Platform.OS === 'ios' ? RNFullWindowOverlay : React.Fragment;
20
20
  function HoverCardContent({ size = '2', variant = 'translucent', align = 'start', sideOffset = 8, style, children, ...props }) {
21
- const { colors, isDark } = useThemeVars();
21
+ const { colors, isDark } = useThemeTokens();
22
22
  const contentStyle = getPanelContentStyle({
23
23
  size: size,
24
24
  variant,
@@ -1 +1 @@
1
- {"version":3,"file":"hover-card.js","sourceRoot":"","sources":["../../src/components/hover-card.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAqC,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,IAAI,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAmBhF,SAAS,aAAa,CAAC,EAAE,SAAS,GAAG,GAAG,EAAE,UAAU,GAAG,GAAG,EAAE,GAAG,KAAK,EAAsB;IACxF,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AAC9F,CAAC;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,gBAAgB,GAAsC,kBAAkB,CAAC,OAAO,CAAC;AAEvF,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,iBAAiB,GAAG,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;AAOvF,SAAS,gBAAgB,CAAC,EACxB,IAAI,GAAG,GAAG,EACV,OAAO,GAAG,aAAa,EACvB,KAAK,GAAG,OAAO,EACf,UAAU,GAAG,CAAC,EACd,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACc;IACtB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;IAE1C,MAAM,YAAY,GAAG,oBAAoB,CAAC;QACxC,IAAI,EAAE,IAAiB;QACvB,OAAO;QACP,MAAM;QACN,MAAM;KACP,CAAC,CAAC;IAEH,OAAO,CACL,CAAC,kBAAkB,CAAC,MAAM,CACxB;MAAA,CAAC,iBAAiB,CAChB;QAAA,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CACtF;UAAA,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CACzD;YAAA,CAAC,kBAAkB,CAAC,OAAO,CACzB,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CACjD,IAAI,KAAK,CAAC,CACV;cAAA,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CACtD;YAAA,EAAE,kBAAkB,CAAC,OAAO,CAC9B;UAAA,EAAE,sBAAsB,CAC1B;QAAA,EAAE,kBAAkB,CAAC,OAAO,CAC9B;MAAA,EAAE,iBAAiB,CACrB;IAAA,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,6BAA6B;AAC7B,+EAA+E;AAE/E,MAAM,SAAS,GAIX;IACF,IAAI,EAAE,aAAa;IACnB,OAAO,EAAE,gBAAgB;IACzB,OAAO,EAAE,gBAAgB;CAC1B,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"hover-card.js","sourceRoot":"","sources":["../../src/components/hover-card.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { Color } from '../lib/types';
2
1
  import { type ButtonSize, type ButtonVariant } from '../lib/button-styles';
2
+ import type { Color } from '../lib/types';
3
3
  import * as React from 'react';
4
4
  import { Pressable, type StyleProp, type ViewStyle } from 'react-native';
5
5
  type IconButtonProps = Omit<React.ComponentProps<typeof Pressable>, 'style'> & {
@@ -8,7 +8,7 @@ type IconButtonProps = Omit<React.ComponentProps<typeof Pressable>, 'style'> & {
8
8
  color?: Color;
9
9
  style?: StyleProp<ViewStyle>;
10
10
  };
11
- declare function IconButton({ className, variant, size, color, style, disabled, children, onPressIn, onPressOut, onFocus, onBlur, onHoverIn, onHoverOut, ...pressableProps }: IconButtonProps): React.JSX.Element;
11
+ declare function IconButton({ variant, size, color, style, disabled, children, onPressIn, onPressOut, onFocus, onBlur, onHoverIn, onHoverOut, ...pressableProps }: IconButtonProps): React.JSX.Element;
12
12
  export { IconButton };
13
13
  export type { IconButtonProps };
14
14
  //# sourceMappingURL=icon-button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.d.ts","sourceRoot":"","sources":["../../src/components/icon-button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAQL,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAY,SAAS,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzF,KAAK,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,EAAE,OAAO,CAAC,GAAG;IAC7E,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,OAAmB,EACnB,IAAU,EACV,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,OAAO,EACP,MAAM,EACN,SAAS,EACT,UAAU,EACV,GAAG,cAAc,EAClB,EAAE,eAAe,qBAmIjB;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"icon-button.d.ts","sourceRoot":"","sources":["../../src/components/icon-button.tsx"],"names":[],"mappings":"AACA,OAAO,EAOL,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAY,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEnF,KAAK,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,EAAE,OAAO,CAAC,GAAG;IAC7E,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAEF,iBAAS,UAAU,CAAC,EAClB,OAAmB,EACnB,IAAU,EACV,KAAK,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,OAAO,EACP,MAAM,EACN,SAAS,EACT,UAAU,EACV,GAAG,cAAc,EAClB,EAAE,eAAe,qBAgIjB;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -1,19 +1,17 @@
1
1
  import { TextStyleContext } from '../components/text';
2
- import { getButtonFocusStyle, getButtonPressedFilter, getButtonShadowStyle, getButtonSizeStyle, getButtonTextColor, getButtonVariantStyle, resolveAccentFromColor, } from '../lib/button-styles';
3
- import { useThemeVars } from '../lib/use-theme-vars';
4
- import { cn } from '../lib/utils';
2
+ import { getButtonFocusStyle, getButtonPressedFilter, getButtonShadowStyle, getButtonSizeStyle, getButtonTextColor, getButtonVariantStyle, } from '../lib/button-styles';
3
+ import { useThemeTokens } from '../lib/use-theme-tokens';
5
4
  import * as React from 'react';
6
- import { Platform, Pressable, View } from 'react-native';
7
- function IconButton({ className, variant = 'surface', size = '2', color, style, disabled, children, onPressIn, onPressOut, onFocus, onBlur, onHoverIn, onHoverOut, ...pressableProps }) {
8
- const { colors } = useThemeVars();
5
+ import { Platform, Pressable } from 'react-native';
6
+ function IconButton({ variant = 'surface', size = '3', color, style, disabled, children, onPressIn, onPressOut, onFocus, onBlur, onHoverIn, onHoverOut, ...pressableProps }) {
7
+ const { colors } = useThemeTokens();
9
8
  const [pressed, setPressed] = React.useState(false);
10
9
  const [hovered, setHovered] = React.useState(false);
11
10
  const [focused, setFocused] = React.useState(false);
12
- const accentColor = resolveAccentFromColor(color);
13
11
  const gray = colors.palettes.gray;
14
- // All AccentColors should be in palettes, but TypeScript's index signature types
15
- // don't guarantee it with bracket notation. Fallback to gray as defensive programming.
16
- const palette = colors.palettes[accentColor] ?? gray;
12
+ // Semantic colors (accent, danger, etc.) are added by useThemeTokens
13
+ // Fallback to gray if palette key doesn't exist
14
+ const palette = colors.palettes[color ?? 'accent'] ?? gray;
17
15
  const textColor = getButtonTextColor(variant, palette, gray, disabled ?? false);
18
16
  // Base layout
19
17
  const baseStyle = {
@@ -69,17 +67,15 @@ function IconButton({ className, variant = 'surface', size = '2', color, style,
69
67
  setFocused(false);
70
68
  onBlur?.(e);
71
69
  }, [onBlur]);
72
- return (<View className={cn(className)} style={style}>
73
- <TextStyleContext.Provider value={{
70
+ return (<TextStyleContext.Provider value={{
74
71
  size: size,
75
72
  weight: 'medium',
76
73
  color: textColor,
77
74
  }}>
78
- <Pressable style={combinedStyle} role="button" disabled={disabled} onPressIn={handlePressIn} onPressOut={handlePressOut} onHoverIn={handleHoverIn} onHoverOut={handleHoverOut} onFocus={handleFocus} onBlur={handleBlur} {...pressableProps}>
79
- {children}
80
- </Pressable>
81
- </TextStyleContext.Provider>
82
- </View>);
75
+ <Pressable style={[combinedStyle, style]} role="button" disabled={disabled} onPressIn={handlePressIn} onPressOut={handlePressOut} onHoverIn={handleHoverIn} onHoverOut={handleHoverOut} onFocus={handleFocus} onBlur={handleBlur} {...pressableProps}>
76
+ {children}
77
+ </Pressable>
78
+ </TextStyleContext.Provider>);
83
79
  }
84
80
  export { IconButton };
85
81
  //# sourceMappingURL=icon-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../src/components/icon-button.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../src/components/icon-button.tsx"],"names":[],"mappings":"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"}
@@ -4,25 +4,24 @@ type IconProps = LucideProps & {
4
4
  as: LucideIcon;
5
5
  };
6
6
  /**
7
- * A wrapper component for Lucide icons with Nativewind `className` support via `cssInterop`.
7
+ * A wrapper component for Lucide icons.
8
8
  *
9
- * This component allows you to render any Lucide icon while applying utility classes
10
- * using `nativewind`. It avoids the need to wrap or configure each icon individually.
9
+ * This component allows you to render any Lucide icon with automatic color
10
+ * inheritance from TextStyleContext.
11
11
  *
12
12
  * @component
13
13
  * @example
14
14
  * ```tsx
15
15
  * import { ArrowRight } from 'lucide-react-native';
16
- * import { Icon } from '@/registry/components/ui/icon';
16
+ * import { Icon } from '@frosted-ui/react-native';
17
17
  *
18
- * <Icon as={ArrowRight} className="text-red-500" size={16} />
18
+ * <Icon as={ArrowRight} size={16} />
19
19
  * ```
20
20
  *
21
21
  * @param {LucideIcon} as - The Lucide icon component to render.
22
- * @param {string} className - Utility classes to style the icon using Nativewind.
23
22
  * @param {number} size - Icon size (defaults to 14).
24
23
  * @param {...LucideProps} ...props - Additional Lucide icon props passed to the "as" icon.
25
24
  */
26
- declare function Icon({ as: IconComponent, className, size, color, ...props }: IconProps): React.JSX.Element;
25
+ declare function Icon({ as: IconComponent, size, color, ...props }: IconProps): React.JSX.Element;
27
26
  export { Icon };
28
27
  //# sourceMappingURL=icon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../src/components/icon.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,SAAS,GAAG,WAAW,GAAG;IAC7B,EAAE,EAAE,UAAU,CAAC;CAChB,CAAC;AAgBF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,iBAAS,IAAI,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,IAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,qBAgBpF;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../src/components/icon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,SAAS,GAAG,WAAW,GAAG;IAC7B,EAAE,EAAE,UAAU,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,iBAAS,IAAI,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,IAAS,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,qBAQzE;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -1,45 +1,30 @@
1
1
  import { TextStyleContext } from '../components/text';
2
- import { themeVars } from '../lib/theme-vars';
3
- import { cn } from '../lib/utils';
4
- import { cssInterop } from 'nativewind';
2
+ import { themeTokens } from '../lib/theme-tokens';
5
3
  import * as React from 'react';
6
- function IconImpl({ as: IconComponent, ...props }) {
7
- return <IconComponent {...props}/>;
8
- }
9
- cssInterop(IconImpl, {
10
- className: {
11
- target: 'style',
12
- nativeStyleToProp: {
13
- height: 'size',
14
- width: 'size',
15
- },
16
- },
17
- });
18
4
  /**
19
- * A wrapper component for Lucide icons with Nativewind `className` support via `cssInterop`.
5
+ * A wrapper component for Lucide icons.
20
6
  *
21
- * This component allows you to render any Lucide icon while applying utility classes
22
- * using `nativewind`. It avoids the need to wrap or configure each icon individually.
7
+ * This component allows you to render any Lucide icon with automatic color
8
+ * inheritance from TextStyleContext.
23
9
  *
24
10
  * @component
25
11
  * @example
26
12
  * ```tsx
27
13
  * import { ArrowRight } from 'lucide-react-native';
28
- * import { Icon } from '@/registry/components/ui/icon';
14
+ * import { Icon } from '@frosted-ui/react-native';
29
15
  *
30
- * <Icon as={ArrowRight} className="text-red-500" size={16} />
16
+ * <Icon as={ArrowRight} size={16} />
31
17
  * ```
32
18
  *
33
19
  * @param {LucideIcon} as - The Lucide icon component to render.
34
- * @param {string} className - Utility classes to style the icon using Nativewind.
35
20
  * @param {number} size - Icon size (defaults to 14).
36
21
  * @param {...LucideProps} ...props - Additional Lucide icon props passed to the "as" icon.
37
22
  */
38
- function Icon({ as: IconComponent, className, size = 14, color, ...props }) {
23
+ function Icon({ as: IconComponent, size = 14, color, ...props }) {
39
24
  const textStyleContext = React.useContext(TextStyleContext);
40
25
  // Use color from context if available, otherwise default to gray-12
41
- const resolvedColor = color ?? textStyleContext?.color ?? themeVars.colors.light.palettes.gray['12'];
42
- return (<IconImpl as={IconComponent} className={cn(className)} size={size} color={resolvedColor} {...props}/>);
26
+ const resolvedColor = color ?? textStyleContext?.color ?? themeTokens.colors.light.palettes.gray['12'];
27
+ return <IconComponent size={size} color={resolvedColor} {...props}/>;
43
28
  }
44
29
  export { Icon };
45
30
  //# sourceMappingURL=icon.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../src/components/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,SAAS,QAAQ,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,KAAK,EAAa;IAC1D,OAAO,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AACtC,CAAC;AAED,UAAU,CAAC,QAAQ,EAAE;IACnB,SAAS,EAAE;QACT,MAAM,EAAE,OAAO;QACf,iBAAiB,EAAE;YACjB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,MAAM;SACd;KACF;CACF,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,IAAI,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAa;IACnF,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAE5D,oEAAoE;IACpE,MAAM,aAAa,GACjB,KAAK,IAAI,gBAAgB,EAAE,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEjF,OAAO,CACL,CAAC,QAAQ,CACP,EAAE,CAAC,CAAC,aAAa,CAAC,CAClB,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CACzB,IAAI,CAAC,CAAC,IAAI,CAAC,CACX,KAAK,CAAC,CAAC,aAAa,CAAC,CACrB,IAAI,KAAK,CAAC,EACV,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../src/components/icon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,IAAI,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,EAAa;IACxE,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAE5D,oEAAoE;IACpE,MAAM,aAAa,GACjB,KAAK,IAAI,gBAAgB,EAAE,KAAK,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnF,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,EAAG,CAAC;AACxE,CAAC;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from './aspect-ratio';
2
2
  export * from './heading';
3
+ export * from './link';
3
4
  export * from './text';
4
5
  export * from './code';
5
6
  export * from './checkbox';
@@ -25,6 +26,7 @@ export * from './callout';
25
26
  export * from './card';
26
27
  export * from './icon';
27
28
  export * from './icon-button';
29
+ export * from './list';
28
30
  export * from './segmented-control';
29
31
  export * from './separator';
30
32
  export * from './skeleton';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAC;AAI/B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AAIvB,cAAc,QAAQ,CAAC;AAIvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAI7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAI1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAC;AAI/B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AAIvB,cAAc,QAAQ,CAAC;AAIvB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAI7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAI1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC"}
@@ -4,6 +4,7 @@ export * from './aspect-ratio';
4
4
  // TYPOGRAPHY
5
5
  //------------------------------------------------------------------------------
6
6
  export * from './heading';
7
+ export * from './link';
7
8
  export * from './text';
8
9
  // FORMATTING
9
10
  //------------------------------------------------------------------------------
@@ -37,6 +38,7 @@ export * from './callout';
37
38
  export * from './card';
38
39
  export * from './icon';
39
40
  export * from './icon-button';
41
+ export * from './list';
40
42
  export * from './segmented-control';
41
43
  export * from './separator';
42
44
  export * from './skeleton';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,gFAAgF;AAChF,cAAc,gBAAgB,CAAC;AAE/B,aAAa;AACb,gFAAgF;AAChF,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AAEvB,aAAa;AACb,gFAAgF;AAChF,cAAc,QAAQ,CAAC;AAEvB,QAAQ;AACR,gFAAgF;AAChF,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,WAAW;AACX,gFAAgF;AAChF,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAE1B,aAAa;AACb,gFAAgF;AAChF,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,SAAS;AACT,gFAAgF;AAChF,cAAc,gBAAgB,CAAC;AAE/B,aAAa;AACb,gFAAgF;AAChF,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AAEvB,aAAa;AACb,gFAAgF;AAChF,cAAc,QAAQ,CAAC;AAEvB,QAAQ;AACR,gFAAgF;AAChF,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,WAAW;AACX,gFAAgF;AAChF,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAE1B,aAAa;AACb,gFAAgF;AAChF,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC"}
@@ -1,8 +1,8 @@
1
- import { useThemeVars } from '../lib/use-theme-vars';
1
+ import { useThemeTokens } from '../lib/use-theme-tokens';
2
2
  import * as LabelPrimitive from '@rn-primitives/label';
3
3
  import { StyleSheet } from 'react-native';
4
4
  function Label({ onPress, onLongPress, onPressIn, onPressOut, disabled, style, ...props }) {
5
- const { colors, typography, fontWeights } = useThemeVars();
5
+ const { colors, typography, fontWeights } = useThemeTokens();
6
6
  const rootStyle = {
7
7
  flexDirection: 'row',
8
8
  alignItems: 'center',
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","sourceRoot":"","sources":["../../src/components/label.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAkC,MAAM,cAAc,CAAC;AAM1E,SAAS,KAAK,CAAC,EACb,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACG;IACX,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE,CAAC;IAE3D,MAAM,SAAS,GAAc;QAC3B,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,CAAC;QACN,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAwB;KACtE,CAAC;IAEF,MAAM,SAAS,GAAc;QAC3B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ;QAClC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU;QACtC,aAAa,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,aAAa;QAC5C,UAAU,EAAE,WAAW,CAAC,MAAM;KAC/B,CAAC;IAEF,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAEjE,OAAO,CACL,CAAC,cAAc,CAAC,IAAI,CAClB,KAAK,CAAC,CAAC,SAAS,CAAC,CACjB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB;MAAA,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,KAAK,CAAC,EAC3D;IAAA,EAAE,cAAc,CAAC,IAAI,CAAC,CACvB,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../src/components/label.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAkC,MAAM,cAAc,CAAC;AAM1E,SAAS,KAAK,CAAC,EACb,OAAO,EACP,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACG;IACX,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC;IAE7D,MAAM,SAAS,GAAc;QAC3B,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,CAAC;QACN,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAwB;KACtE,CAAC;IAEF,MAAM,SAAS,GAAc;QAC3B,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ;QAClC,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU;QACtC,aAAa,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,aAAa;QAC5C,UAAU,EAAE,WAAW,CAAC,MAAM;KAC/B,CAAC;IAEF,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAEjE,OAAO,CACL,CAAC,cAAc,CAAC,IAAI,CAClB,KAAK,CAAC,CAAC,SAAS,CAAC,CACjB,OAAO,CAAC,CAAC,OAAO,CAAC,CACjB,WAAW,CAAC,CAAC,WAAW,CAAC,CACzB,SAAS,CAAC,CAAC,SAAS,CAAC,CACrB,UAAU,CAAC,CAAC,UAAU,CAAC,CACvB,QAAQ,CAAC,CAAC,QAAQ,CAAC,CACnB;MAAA,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,KAAK,CAAC,EAC3D;IAAA,EAAE,cAAc,CAAC,IAAI,CAAC,CACvB,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { themeTokens } from '../lib/theme-tokens';
2
+ import type { Color } from '../lib/types';
3
+ import * as React from 'react';
4
+ import { type TextProps as RNTextProps, type TextStyle } from 'react-native';
5
+ type LinkSize = keyof typeof themeTokens.typography;
6
+ type LinkWeight = keyof typeof themeTokens.fontWeights;
7
+ type LinkUnderline = 'auto' | 'hover' | 'always';
8
+ type LinkProps = Omit<RNTextProps, 'style'> & {
9
+ size?: LinkSize;
10
+ weight?: LinkWeight;
11
+ color?: Color;
12
+ underline?: LinkUnderline;
13
+ disabled?: boolean;
14
+ style?: TextStyle;
15
+ };
16
+ declare function Link({ size, weight, color, underline, children, style, disabled, onPress, onPressIn, onPressOut, ...textProps }: LinkProps): React.JSX.Element;
17
+ export { Link };
18
+ export type { LinkProps, LinkSize, LinkUnderline };
19
+ //# sourceMappingURL=link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/components/link.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAIL,KAAK,SAAS,IAAI,WAAW,EAC7B,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,KAAK,QAAQ,GAAG,MAAM,OAAO,WAAW,CAAC,UAAU,CAAC;AACpD,KAAK,UAAU,GAAG,MAAM,OAAO,WAAW,CAAC,WAAW,CAAC;AACvD,KAAK,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEjD,KAAK,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG;IAC5C,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,iBAAS,IAAI,CAAC,EACZ,IAAI,EACJ,MAAM,EACN,KAAK,EACL,SAAkB,EAClB,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,EACV,GAAG,SAAS,EACb,EAAE,SAAS,qBA6FX;AAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { TextStyleContext } from '../components/text';
2
+ import { useThemeTokens } from '../lib/use-theme-tokens';
3
+ import * as React from 'react';
4
+ import { Platform, Text as RNText, } from 'react-native';
5
+ function Link({ size, weight, color, underline = 'auto', children, style, disabled, onPress, onPressIn, onPressOut, ...textProps }) {
6
+ const { colors, typography, fontWeights } = useThemeTokens();
7
+ const textStyleContext = React.useContext(TextStyleContext);
8
+ const [hovered, setHovered] = React.useState(false);
9
+ const [pressed, setPressed] = React.useState(false);
10
+ // Inherit size from context, fallback to '3'
11
+ const effectiveSize = size ?? textStyleContext?.size ?? '3';
12
+ const effectiveWeight = weight ?? textStyleContext?.weight;
13
+ // Resolve color palette - default to accent
14
+ const palette = colors.palettes[color ?? 'accent'] ?? colors.palettes.accent;
15
+ const gray = colors.palettes.gray;
16
+ // Text color: accent a11 by default
17
+ const textColor = palette.a11;
18
+ // Underline color: mix of accent and gray (approximating the CSS color-mix)
19
+ const underlineColor = palette.a7;
20
+ // Typography
21
+ const typo = typography[effectiveSize];
22
+ const fontWeightValue = effectiveWeight ? fontWeights[effectiveWeight] : undefined;
23
+ // Determine if underline should show
24
+ // - 'always': always show
25
+ // - 'auto'/'hover': show on hover (web) or press (mobile)
26
+ const isInteracting = hovered || pressed;
27
+ const showUnderline = underline === 'always' || ((underline === 'auto' || underline === 'hover') && isInteracting);
28
+ const textStyle = {
29
+ fontSize: typo.fontSize,
30
+ lineHeight: typo.lineHeight,
31
+ letterSpacing: typo.letterSpacing,
32
+ color: disabled ? gray.a8 : textColor,
33
+ ...(fontWeightValue ? { fontWeight: fontWeightValue } : {}),
34
+ ...(showUnderline
35
+ ? {
36
+ textDecorationLine: 'underline',
37
+ textDecorationColor: underlineColor,
38
+ textDecorationStyle: 'solid',
39
+ }
40
+ : {}),
41
+ ...style,
42
+ };
43
+ const handlePressIn = React.useCallback((e) => {
44
+ setPressed(true);
45
+ onPressIn?.(e);
46
+ }, [onPressIn]);
47
+ const handlePressOut = React.useCallback((e) => {
48
+ setPressed(false);
49
+ onPressOut?.(e);
50
+ }, [onPressOut]);
51
+ const handlePress = React.useCallback((e) => {
52
+ if (!disabled) {
53
+ onPress?.(e);
54
+ }
55
+ }, [disabled, onPress]);
56
+ // Web-specific hover handlers
57
+ const webProps = Platform.OS === 'web'
58
+ ? {
59
+ onMouseEnter: () => setHovered(true),
60
+ onMouseLeave: () => setHovered(false),
61
+ }
62
+ : {};
63
+ return (<RNText style={textStyle} onPress={handlePress} onPressIn={handlePressIn} onPressOut={handlePressOut} suppressHighlighting {...webProps} {...textProps}>
64
+ {children}
65
+ </RNText>);
66
+ }
67
+ export { Link };
68
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/components/link.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { type CardVariant } from '../components/card';
2
+ import * as React from 'react';
3
+ import { type PressableProps, type TextProps, type TextStyle, type ViewProps, type ViewStyle } from 'react-native';
4
+ type ListRootProps = ViewProps & {
5
+ variant?: CardVariant;
6
+ };
7
+ declare function ListRoot({ variant, style, children, ...props }: ListRootProps): React.JSX.Element;
8
+ type ListItemProps = Omit<PressableProps, 'style'> & {
9
+ style?: ViewStyle;
10
+ };
11
+ declare function ListItem({ children, onPress, disabled, style, ...props }: ListItemProps): React.JSX.Element;
12
+ type ListItemSlotProps = ViewProps;
13
+ declare function ListItemSlot({ children, style, ...props }: ListItemSlotProps): React.JSX.Element;
14
+ type ListItemContentProps = ViewProps;
15
+ declare function ListItemContent({ children, style, ...props }: ListItemContentProps): React.JSX.Element;
16
+ type ListItemTitleProps = Omit<TextProps, 'style'> & {
17
+ style?: TextStyle;
18
+ };
19
+ declare function ListItemTitle({ children, style, ...props }: ListItemTitleProps): React.JSX.Element;
20
+ type ListItemDescriptionProps = Omit<TextProps, 'style'> & {
21
+ style?: TextStyle;
22
+ };
23
+ declare function ListItemDescription({ children, style, ...props }: ListItemDescriptionProps): React.JSX.Element;
24
+ type ListSeparatorProps = ViewProps;
25
+ declare function ListSeparator({ style, ...props }: ListSeparatorProps): React.JSX.Element;
26
+ declare const List: {
27
+ Root: typeof ListRoot;
28
+ Item: typeof ListItem;
29
+ ItemSlot: typeof ListItemSlot;
30
+ ItemContent: typeof ListItemContent;
31
+ ItemTitle: typeof ListItemTitle;
32
+ ItemDescription: typeof ListItemDescription;
33
+ Separator: typeof ListSeparator;
34
+ };
35
+ export { List };
36
+ export type { ListItemContentProps, ListItemDescriptionProps, ListItemProps, ListItemSlotProps, ListItemTitleProps, ListRootProps, ListSeparatorProps, };
37
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/components/list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAMtB,KAAK,aAAa,GAAG,SAAS,GAAG;IAC/B,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,iBAAS,QAAQ,CAAC,EAAE,OAAmB,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,qBAMlF;AAMD,KAAK,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,GAAG;IACnD,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,iBAAS,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,qBAyChF;AAMD,KAAK,iBAAiB,GAAG,SAAS,CAAC;AAEnC,iBAAS,YAAY,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,qBAkBrE;AAMD,KAAK,oBAAoB,GAAG,SAAS,CAAC;AAEtC,iBAAS,eAAe,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,qBAY3E;AAMD,KAAK,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG;IACnD,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,iBAAS,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,qBAiBvE;AAMD,KAAK,wBAAwB,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG;IACzD,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,iBAAS,mBAAmB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,wBAAwB,qBAgBnF;AAMD,KAAK,kBAAkB,GAAG,SAAS,CAAC;AAEpC,iBAAS,aAAa,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,qBAS7D;AAMD,QAAA,MAAM,IAAI;;;;;;;;CAQT,CAAC;AAEF,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,YAAY,EACV,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,GACnB,CAAC"}
@@ -0,0 +1,112 @@
1
+ import { Card } from '../components/card';
2
+ import { TextStyleContext } from '../components/text';
3
+ import { useThemeTokens } from '../lib/use-theme-tokens';
4
+ import * as React from 'react';
5
+ import { Platform, Pressable, Text, View, } from 'react-native';
6
+ function ListRoot({ variant = 'surface', style, children, ...props }) {
7
+ return (<Card variant={variant} style={[{ padding: 0 }, style]} {...props}>
8
+ {children}
9
+ </Card>);
10
+ }
11
+ function ListItem({ children, onPress, disabled, style, ...props }) {
12
+ const { colors } = useThemeTokens();
13
+ const [pressed, setPressed] = React.useState(false);
14
+ const [hovered, setHovered] = React.useState(false);
15
+ const isInteractive = !!onPress && !disabled;
16
+ const isHighlighted = isInteractive && (pressed || hovered);
17
+ const itemStyle = {
18
+ flexDirection: 'row',
19
+ alignItems: 'center',
20
+ gap: 12,
21
+ paddingVertical: 12,
22
+ paddingHorizontal: 16,
23
+ backgroundColor: isHighlighted ? colors.palettes.gray.a3 : undefined,
24
+ ...(Platform.OS === 'web' && isInteractive
25
+ ? { cursor: 'pointer', userSelect: 'none' }
26
+ : {}),
27
+ };
28
+ // Web hover handlers
29
+ const webProps = Platform.OS === 'web' && isInteractive
30
+ ? {
31
+ onMouseEnter: () => setHovered(true),
32
+ onMouseLeave: () => setHovered(false),
33
+ }
34
+ : {};
35
+ return (<Pressable onPress={onPress} onPressIn={() => setPressed(true)} onPressOut={() => setPressed(false)} disabled={disabled || !onPress} style={[itemStyle, style]} {...webProps} {...props}>
36
+ {children}
37
+ </Pressable>);
38
+ }
39
+ function ListItemSlot({ children, style, ...props }) {
40
+ const { colors } = useThemeTokens();
41
+ const slotStyle = {
42
+ alignItems: 'center',
43
+ justifyContent: 'center',
44
+ minWidth: 24,
45
+ minHeight: 24,
46
+ };
47
+ // Provide icon color context
48
+ return (<TextStyleContext.Provider value={{ color: colors.palettes.gray.a11 }}>
49
+ <View style={[slotStyle, style]} {...props}>
50
+ {children}
51
+ </View>
52
+ </TextStyleContext.Provider>);
53
+ }
54
+ function ListItemContent({ children, style, ...props }) {
55
+ const contentStyle = {
56
+ flex: 1,
57
+ gap: 2,
58
+ justifyContent: 'center',
59
+ };
60
+ return (<View style={[contentStyle, style]} {...props}>
61
+ {children}
62
+ </View>);
63
+ }
64
+ function ListItemTitle({ children, style, ...props }) {
65
+ const { colors, typography, fontWeights } = useThemeTokens();
66
+ const typo = typography['3'];
67
+ const titleStyle = {
68
+ fontSize: typo.fontSize,
69
+ lineHeight: typo.lineHeight,
70
+ letterSpacing: typo.letterSpacing,
71
+ fontWeight: fontWeights.medium,
72
+ color: colors.palettes.gray['12'],
73
+ };
74
+ return (<Text style={[titleStyle, style]} {...props}>
75
+ {children}
76
+ </Text>);
77
+ }
78
+ function ListItemDescription({ children, style, ...props }) {
79
+ const { colors, typography } = useThemeTokens();
80
+ const typo = typography['2'];
81
+ const descriptionStyle = {
82
+ fontSize: typo.fontSize,
83
+ lineHeight: typo.lineHeight,
84
+ letterSpacing: typo.letterSpacing,
85
+ color: colors.palettes.gray.a11,
86
+ };
87
+ return (<Text style={[descriptionStyle, style]} {...props}>
88
+ {children}
89
+ </Text>);
90
+ }
91
+ function ListSeparator({ style, ...props }) {
92
+ const { colors } = useThemeTokens();
93
+ const separatorStyle = {
94
+ height: 1,
95
+ backgroundColor: colors.stroke,
96
+ };
97
+ return <View style={[separatorStyle, style]} {...props}/>;
98
+ }
99
+ // ============================================================================
100
+ // Exports
101
+ // ============================================================================
102
+ const List = {
103
+ Root: ListRoot,
104
+ Item: ListItem,
105
+ ItemSlot: ListItemSlot,
106
+ ItemContent: ListItemContent,
107
+ ItemTitle: ListItemTitle,
108
+ ItemDescription: ListItemDescription,
109
+ Separator: ListSeparator,
110
+ };
111
+ export { List };
112
+ //# sourceMappingURL=list.js.map