@sincpro/mobile-ui 0.7.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. package/README.md +575 -230
  2. package/dist/Actions/Actions.Button.d.ts +98 -93
  3. package/dist/Actions/Actions.Button.js +58 -52
  4. package/dist/Actions/Actions.FAB.d.ts +3 -1
  5. package/dist/Actions/Actions.FAB.js +12 -8
  6. package/dist/Actions/Actions.FilterButton.d.ts +10 -2
  7. package/dist/Actions/Actions.FilterButton.js +23 -8
  8. package/dist/Actions/Actions.IconButton.d.ts +36 -33
  9. package/dist/Actions/Actions.IconButton.js +10 -6
  10. package/dist/Actions/index.d.ts +12 -12
  11. package/dist/Actions/index.js +6 -6
  12. package/dist/Dialog/BottomSheet/BottomSheet.Root.js +1 -1
  13. package/dist/Dialog/BottomSheet/index.d.ts +1 -1
  14. package/dist/Dialog/BottomSheet/index.js +1 -1
  15. package/dist/Dialog/Confirmation.context.js +3 -3
  16. package/dist/Dialog/Dialog.ActionSheet.d.ts +2 -1
  17. package/dist/Dialog/Dialog.ActionSheet.js +19 -9
  18. package/dist/Dialog/Dialog.Confirmation.js +7 -7
  19. package/dist/Dialog/Dialog.EditValue.js +4 -4
  20. package/dist/Dialog/Dialog.NativeSheet.d.ts +10 -0
  21. package/dist/Dialog/Dialog.NativeSheet.js +21 -0
  22. package/dist/Dialog/Dialog.Sheet.d.ts +5 -1
  23. package/dist/Dialog/Dialog.Sheet.js +19 -11
  24. package/dist/Dialog/index.d.ts +5 -5
  25. package/dist/Dialog/index.js +5 -5
  26. package/dist/Display/Display.Accordion.js +5 -5
  27. package/dist/Display/Display.Avatar.d.ts +30 -30
  28. package/dist/Display/Display.Avatar.js +2 -2
  29. package/dist/Display/Display.AvatarGroup.js +3 -3
  30. package/dist/Display/Display.Badge.d.ts +3 -3
  31. package/dist/Display/Display.Badge.js +1 -1
  32. package/dist/Display/Display.Card.d.ts +15 -15
  33. package/dist/Display/Display.Card.js +4 -4
  34. package/dist/Display/Display.Carousel.js +2 -2
  35. package/dist/Display/Display.Chip.d.ts +3 -3
  36. package/dist/Display/Display.Chip.js +12 -12
  37. package/dist/Display/Display.CircleButton.d.ts +1 -1
  38. package/dist/Display/Display.CircleButton.js +3 -3
  39. package/dist/Display/Display.CopyableText.d.ts +9 -2
  40. package/dist/Display/Display.CopyableText.js +76 -8
  41. package/dist/Display/Display.CountRecords.js +2 -2
  42. package/dist/Display/Display.DataTable.js +2 -2
  43. package/dist/Display/Display.Date.d.ts +1 -1
  44. package/dist/Display/Display.Date.js +5 -5
  45. package/dist/Display/Display.Divider.d.ts +24 -24
  46. package/dist/Display/Display.Divider.js +1 -1
  47. package/dist/Display/Display.GradientSurface.d.ts +58 -39
  48. package/dist/Display/Display.GradientSurface.js +31 -15
  49. package/dist/Display/Display.Icon.d.ts +1 -1
  50. package/dist/Display/Display.Icon.js +2 -1
  51. package/dist/Display/Display.IconBadge.js +3 -3
  52. package/dist/Display/Display.Image.js +4 -4
  53. package/dist/Display/Display.KeyValue.d.ts +11 -4
  54. package/dist/Display/Display.KeyValue.js +8 -6
  55. package/dist/Display/Display.ListGroup.d.ts +23 -0
  56. package/dist/Display/Display.ListGroup.js +17 -0
  57. package/dist/Display/Display.ListItem.d.ts +16 -2
  58. package/dist/Display/Display.ListItem.js +29 -12
  59. package/dist/Display/Display.Logo.d.ts +3 -3
  60. package/dist/Display/Display.Logo.js +2 -2
  61. package/dist/Display/Display.MediaCard.js +4 -4
  62. package/dist/Display/Display.MediaEmbed.js +7 -7
  63. package/dist/Display/Display.MenuButton.d.ts +4 -4
  64. package/dist/Display/Display.MenuButton.js +6 -6
  65. package/dist/Display/Display.MenuCard.d.ts +1 -1
  66. package/dist/Display/Display.MenuCard.js +3 -3
  67. package/dist/Display/Display.MenuGrid.d.ts +1 -1
  68. package/dist/Display/Display.MenuGrid.js +1 -1
  69. package/dist/Display/Display.Monetary.d.ts +1 -1
  70. package/dist/Display/Display.Monetary.js +2 -2
  71. package/dist/Display/Display.Pattern.d.ts +33 -12
  72. package/dist/Display/Display.Pattern.js +60 -14
  73. package/dist/Display/Display.PriceTag.js +2 -2
  74. package/dist/Display/Display.ProductCard.js +7 -7
  75. package/dist/Display/Display.Rating.js +3 -3
  76. package/dist/Display/Display.SearchHistory.js +6 -6
  77. package/dist/Display/Display.SectionHeader.d.ts +11 -1
  78. package/dist/Display/Display.SectionHeader.js +14 -5
  79. package/dist/Display/Display.Stat.js +2 -2
  80. package/dist/Display/Display.StatCard.js +4 -4
  81. package/dist/Display/Display.StatusDot.js +3 -3
  82. package/dist/Display/Display.Story.js +3 -3
  83. package/dist/Display/Display.StoryTray.js +5 -5
  84. package/dist/Display/Display.StoryViewer.js +4 -4
  85. package/dist/Display/Display.SwipeableRow.d.ts +3 -1
  86. package/dist/Display/Display.SwipeableRow.js +7 -7
  87. package/dist/Display/Display.Tag.js +2 -2
  88. package/dist/Display/Display.Timeline.js +4 -4
  89. package/dist/Display/Display.Tooltip.js +3 -3
  90. package/dist/Display/index.d.ts +49 -45
  91. package/dist/Display/index.js +44 -42
  92. package/dist/Feedback/ErrorBoundary.d.ts +1 -1
  93. package/dist/Feedback/ErrorBoundary.js +1 -1
  94. package/dist/Feedback/Feedback.Banner.d.ts +3 -3
  95. package/dist/Feedback/Feedback.Banner.js +6 -6
  96. package/dist/Feedback/Feedback.DomainSplashScreen.js +5 -4
  97. package/dist/Feedback/Feedback.Empty.js +3 -3
  98. package/dist/Feedback/Feedback.EmptyState.d.ts +2 -1
  99. package/dist/Feedback/Feedback.EmptyState.js +7 -7
  100. package/dist/Feedback/Feedback.Error.d.ts +3 -1
  101. package/dist/Feedback/Feedback.Error.js +7 -6
  102. package/dist/Feedback/Feedback.Loading.d.ts +1 -1
  103. package/dist/Feedback/Feedback.Loading.js +2 -2
  104. package/dist/Feedback/Feedback.PermissionCard.js +5 -5
  105. package/dist/Feedback/Feedback.Progress.js +2 -2
  106. package/dist/Feedback/Feedback.ProgressCircle.js +1 -1
  107. package/dist/Feedback/Feedback.Skeleton.js +2 -2
  108. package/dist/Feedback/Feedback.Spinner.js +3 -3
  109. package/dist/Feedback/Feedback.Splash.d.ts +1 -1
  110. package/dist/Feedback/Feedback.Splash.js +7 -6
  111. package/dist/Feedback/Toast.context.js +7 -7
  112. package/dist/Feedback/index.d.ts +13 -13
  113. package/dist/Feedback/index.js +13 -13
  114. package/dist/Form/Form.Button.d.ts +2 -2
  115. package/dist/Form/Form.Button.js +1 -1
  116. package/dist/Form/Form.Checkbox.d.ts +4 -1
  117. package/dist/Form/Form.Checkbox.js +5 -5
  118. package/dist/Form/Form.ControlledCheckbox.js +1 -1
  119. package/dist/Form/Form.ControlledInput.js +1 -1
  120. package/dist/Form/Form.ControlledMonetaryInput.js +1 -1
  121. package/dist/Form/Form.ControlledRadioButton.js +1 -1
  122. package/dist/Form/Form.DatePicker.d.ts +2 -1
  123. package/dist/Form/Form.DatePicker.js +8 -7
  124. package/dist/Form/Form.Dropdown.js +7 -7
  125. package/dist/Form/Form.FAB.d.ts +2 -2
  126. package/dist/Form/Form.FAB.js +1 -1
  127. package/dist/Form/Form.FilterButton.d.ts +2 -2
  128. package/dist/Form/Form.FilterButton.js +1 -1
  129. package/dist/Form/Form.FractionalQuantityInput.js +4 -4
  130. package/dist/Form/Form.IconButton.d.ts +2 -2
  131. package/dist/Form/Form.IconButton.js +1 -1
  132. package/dist/Form/Form.Input.d.ts +5 -3
  133. package/dist/Form/Form.Input.js +5 -5
  134. package/dist/Form/Form.InputField.d.ts +1 -1
  135. package/dist/Form/Form.InputField.js +3 -3
  136. package/dist/Form/Form.KeyboardForm.d.ts +11 -0
  137. package/dist/Form/Form.KeyboardForm.js +9 -0
  138. package/dist/Form/Form.KeyboardToolbar.d.ts +21 -0
  139. package/dist/Form/Form.KeyboardToolbar.js +70 -0
  140. package/dist/Form/Form.MonetaryInput.js +5 -4
  141. package/dist/Form/Form.PasswordInput.d.ts +1 -1
  142. package/dist/Form/Form.PasswordInput.js +3 -3
  143. package/dist/Form/Form.PinInput.js +5 -5
  144. package/dist/Form/Form.QuantitySelector.js +3 -3
  145. package/dist/Form/Form.RadioButton.js +4 -4
  146. package/dist/Form/Form.SearchBar.js +4 -4
  147. package/dist/Form/Form.Select.d.ts +3 -1
  148. package/dist/Form/Form.Select.js +27 -14
  149. package/dist/Form/Form.Slider.js +3 -3
  150. package/dist/Form/Form.Switch.js +4 -4
  151. package/dist/Form/Form.TextInput.js +3 -3
  152. package/dist/Form/index.d.ts +33 -27
  153. package/dist/Form/index.js +29 -25
  154. package/dist/Navigation/Navigation.AppBar.d.ts +11 -6
  155. package/dist/Navigation/Navigation.AppBar.js +16 -16
  156. package/dist/Navigation/Navigation.BottomNav.d.ts +4 -2
  157. package/dist/Navigation/Navigation.BottomNav.js +34 -21
  158. package/dist/Navigation/Navigation.CollapsingHeader.d.ts +1 -1
  159. package/dist/Navigation/Navigation.CollapsingHeader.js +3 -3
  160. package/dist/Navigation/Navigation.FloatingBar.js +2 -2
  161. package/dist/Navigation/Navigation.Header.js +6 -6
  162. package/dist/Navigation/Navigation.HeaderToolbar.js +5 -5
  163. package/dist/Navigation/Navigation.Menu.js +6 -6
  164. package/dist/Navigation/Navigation.MenuSection.js +2 -2
  165. package/dist/Navigation/Navigation.RowItem.d.ts +2 -2
  166. package/dist/Navigation/Navigation.RowItem.js +4 -4
  167. package/dist/Navigation/Navigation.SearchBar.d.ts +6 -1
  168. package/dist/Navigation/Navigation.SearchBar.js +33 -12
  169. package/dist/Navigation/Navigation.SearchSuggestions.d.ts +14 -0
  170. package/dist/Navigation/Navigation.SearchSuggestions.js +7 -0
  171. package/dist/Navigation/Navigation.SegmentedControl.d.ts +3 -1
  172. package/dist/Navigation/Navigation.SegmentedControl.js +6 -5
  173. package/dist/Navigation/Navigation.Steps.js +5 -5
  174. package/dist/Navigation/Navigation.TabIcon.js +2 -2
  175. package/dist/Navigation/Navigation.TabItem.js +2 -2
  176. package/dist/Navigation/Navigation.Tabs.js +5 -5
  177. package/dist/Navigation/index.d.ts +23 -19
  178. package/dist/Navigation/index.js +17 -15
  179. package/dist/Typography/Typography.Heading.d.ts +1 -1
  180. package/dist/Typography/Typography.Heading.js +2 -2
  181. package/dist/Typography/Typography.SelectableText.d.ts +10 -0
  182. package/dist/Typography/Typography.SelectableText.js +16 -0
  183. package/dist/Typography/Typography.Text.d.ts +2 -2
  184. package/dist/Typography/Typography.Text.js +5 -19
  185. package/dist/Typography/index.d.ts +5 -2
  186. package/dist/Typography/index.js +5 -2
  187. package/dist/branding.d.ts +22 -0
  188. package/dist/branding.js +20 -3
  189. package/dist/icons/AddItemIcon.d.ts +1 -1
  190. package/dist/icons/ArrangeCircle.d.ts +1 -1
  191. package/dist/icons/ArrowDownIcon.d.ts +1 -1
  192. package/dist/icons/ArrowUpIcon.d.ts +1 -1
  193. package/dist/icons/BoxIcon.d.ts +1 -1
  194. package/dist/icons/BoxTimeIcon.d.ts +1 -1
  195. package/dist/icons/CalendarIcon.d.ts +1 -1
  196. package/dist/icons/CardIcon.d.ts +1 -1
  197. package/dist/icons/CashierIcon.d.ts +1 -1
  198. package/dist/icons/DuoIcon.d.ts +1 -1
  199. package/dist/icons/HomeIcon.d.ts +1 -1
  200. package/dist/icons/HomeIconOutlined.d.ts +1 -1
  201. package/dist/icons/LogoIcon.d.ts +1 -1
  202. package/dist/icons/MoneyReceiveIcon.d.ts +1 -1
  203. package/dist/icons/PinIcon.d.ts +1 -1
  204. package/dist/icons/PrinterIcon.d.ts +1 -1
  205. package/dist/icons/ProfileIcon.d.ts +1 -1
  206. package/dist/icons/SettingsIcon.d.ts +1 -1
  207. package/dist/icons/SinpeIcon.d.ts +1 -1
  208. package/dist/icons/ToggleOffIcon.d.ts +1 -1
  209. package/dist/icons/WalletMoneyIcon.d.ts +1 -1
  210. package/dist/index.d.ts +24 -23
  211. package/dist/index.js +26 -24
  212. package/dist/layouts/AuthContainer.d.ts +9 -3
  213. package/dist/layouts/AuthContainer.js +8 -8
  214. package/dist/layouts/Container.js +1 -1
  215. package/dist/layouts/GradientContainer.js +1 -1
  216. package/dist/layouts/ScrollContainer.js +1 -1
  217. package/dist/layouts/TabNavigatorLayout.js +4 -4
  218. package/dist/primitives/AspectRatio.js +1 -1
  219. package/dist/primitives/BaseButton.d.ts +92 -87
  220. package/dist/primitives/BaseButton.js +52 -54
  221. package/dist/primitives/Box.js +1 -1
  222. package/dist/primitives/Pressable.js +1 -1
  223. package/dist/primitives/Row.js +1 -1
  224. package/dist/primitives/Stack.js +1 -1
  225. package/dist/primitives/index.d.ts +6 -6
  226. package/dist/primitives/index.js +6 -6
  227. package/dist/theme/active.d.ts +1 -1
  228. package/dist/theme/active.js +14 -1
  229. package/dist/theme/build.d.ts +33 -0
  230. package/dist/theme/build.js +118 -0
  231. package/dist/theme/color.d.ts +26 -0
  232. package/dist/theme/color.js +109 -0
  233. package/dist/theme/components/index.d.ts +1 -1
  234. package/dist/theme/components/index.js +1 -1
  235. package/dist/theme/contrast.d.ts +29 -0
  236. package/dist/theme/contrast.js +57 -0
  237. package/dist/theme/css-vars.d.ts +3 -1
  238. package/dist/theme/css-vars.js +29 -3
  239. package/dist/theme/dark.d.ts +3 -4
  240. package/dist/theme/dark.js +91 -48
  241. package/dist/theme/default.d.ts +5 -1
  242. package/dist/theme/default.js +89 -41
  243. package/dist/theme/define.d.ts +4 -1
  244. package/dist/theme/define.js +4 -1
  245. package/dist/theme/globals.css +61 -46
  246. package/dist/theme/index.d.ts +14 -10
  247. package/dist/theme/index.js +13 -9
  248. package/dist/theme/theme.d.ts +1 -1
  249. package/dist/theme/theme.js +2 -2
  250. package/dist/theme/types.d.ts +77 -16
  251. package/dist/theme/types.js +13 -3
  252. package/dist/theme/typography.d.ts +19 -4
  253. package/dist/theme/typography.js +45 -28
  254. package/dist/theme/useTheme.d.ts +1 -1
  255. package/dist/theme/useTheme.js +1 -1
  256. package/dist/theme/validate.d.ts +16 -0
  257. package/dist/theme/validate.js +200 -0
  258. package/dist/tokens/index.d.ts +2 -2
  259. package/dist/tokens/index.js +2 -2
  260. package/dist/utils/criteria.d.ts +56 -0
  261. package/dist/utils/criteria.js +99 -0
  262. package/dist/utils/reorder.d.ts +4 -0
  263. package/dist/utils/reorder.js +32 -0
  264. package/dist/views/AppSplashView.d.ts +2 -2
  265. package/dist/views/AppSplashView.js +3 -3
  266. package/dist/views/AuthFormView.d.ts +5 -2
  267. package/dist/views/AuthFormView.js +5 -5
  268. package/dist/views/FormViewV2.d.ts +9 -4
  269. package/dist/views/FormViewV2.js +44 -25
  270. package/dist/views/ListViewV2.d.ts +12 -9
  271. package/dist/views/ListViewV2.js +49 -36
  272. package/dist/views/Wizard/Wizard.context.js +1 -1
  273. package/dist/views/Wizard/Wizard.d.ts +1 -1
  274. package/dist/views/Wizard/Wizard.js +1 -1
  275. package/dist/views/Wizard/index.d.ts +4 -4
  276. package/dist/views/Wizard/index.js +2 -2
  277. package/dist/views/types/IFormView.d.ts +1 -1
  278. package/dist/views/types/IListView.d.ts +1 -1
  279. package/dist/widgets/CircleButton.d.ts +2 -2
  280. package/dist/widgets/CircleButton.js +1 -1
  281. package/dist/widgets/CollectionOptions.d.ts +15 -0
  282. package/dist/widgets/CollectionOptions.js +127 -0
  283. package/dist/widgets/FilterBar.d.ts +21 -0
  284. package/dist/widgets/FilterBar.js +14 -0
  285. package/dist/widgets/FilterBuilder.d.ts +10 -0
  286. package/dist/widgets/FilterBuilder.js +115 -0
  287. package/dist/widgets/GeoPermissionCard.js +3 -3
  288. package/dist/widgets/HomeHeader.js +3 -3
  289. package/dist/widgets/JSONViewer.js +2 -2
  290. package/dist/widgets/MenuCard.d.ts +2 -2
  291. package/dist/widgets/MenuCard.js +1 -1
  292. package/dist/widgets/MenuGrid.d.ts +3 -3
  293. package/dist/widgets/MenuGrid.js +1 -1
  294. package/dist/widgets/MenuSection.d.ts +2 -2
  295. package/dist/widgets/MenuSection.js +1 -1
  296. package/dist/widgets/PromoBanner.js +3 -3
  297. package/dist/widgets/PromoModal.js +3 -3
  298. package/dist/widgets/QueryChoice.d.ts +10 -0
  299. package/dist/widgets/QueryChoice.js +13 -0
  300. package/dist/widgets/QuickActions.js +3 -3
  301. package/dist/widgets/ReorderableList.d.ts +51 -0
  302. package/dist/widgets/ReorderableList.js +138 -0
  303. package/dist/widgets/ScreenHeader.js +2 -2
  304. package/dist/widgets/TimeZoneSelector.d.ts +1 -1
  305. package/dist/widgets/TimeZoneSelector.js +4 -4
  306. package/dist/widgets/TimeZoneSelectorModal.d.ts +1 -1
  307. package/dist/widgets/TimeZoneSelectorModal.js +5 -5
  308. package/dist/widgets/index.d.ts +20 -16
  309. package/dist/widgets/index.js +13 -10
  310. package/package.json +70 -50
  311. package/tailwind.preset.js +19 -0
  312. package/dist/icons/icon_getters.d.ts +0 -6
  313. package/dist/icons/icon_getters.js +0 -23
@@ -1,4 +1,4 @@
1
- import { type VariantProps } from "../theme/tw";
1
+ import { type VariantProps } from "../theme/tw.js";
2
2
  declare const badge: import("tailwind-variants").TVReturnType<{
3
3
  variant: {
4
4
  info: {
@@ -59,7 +59,7 @@ declare const badge: import("tailwind-variants").TVReturnType<{
59
59
  }, {
60
60
  root: string;
61
61
  text: string;
62
- }, import("tailwind-variants").TVReturnType<{
62
+ }, import("tailwind-variants").TVReturnTypeLike<{
63
63
  variant: {
64
64
  info: {
65
65
  root: string;
@@ -89,7 +89,7 @@ declare const badge: import("tailwind-variants").TVReturnType<{
89
89
  }, {
90
90
  root: string;
91
91
  text: string;
92
- }, undefined, unknown, unknown, undefined>>;
92
+ }>>;
93
93
  export type BadgeVariant = VariantProps<typeof badge>["variant"];
94
94
  export declare enum BadgeVariants {
95
95
  INFO = "info",
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "nativewind/jsx-runtime";
2
- import { tv } from "../theme/tw";
2
+ import { tv } from "../theme/tw.js";
3
3
  import { Text, View } from "react-native";
4
4
  const badge = tv({
5
5
  slots: {
@@ -1,27 +1,27 @@
1
- import { type VariantProps } from "../theme/tw";
1
+ import { type VariantProps } from "../theme/tw.js";
2
2
  import type { ReactNode } from "react";
3
3
  declare const card: import("tailwind-variants").TVReturnType<{
4
4
  padding: {
5
- none: string;
6
- sm: string;
7
- md: string;
8
- lg: string;
5
+ none: "p-0";
6
+ sm: "p-3";
7
+ md: "p-4";
8
+ lg: "p-6";
9
9
  };
10
10
  }, undefined, "bg-bg-card rounded-lg border border-border-light", {
11
11
  padding: {
12
- none: string;
13
- sm: string;
14
- md: string;
15
- lg: string;
12
+ none: "p-0";
13
+ sm: "p-3";
14
+ md: "p-4";
15
+ lg: "p-6";
16
16
  };
17
- }, undefined, import("tailwind-variants").TVReturnType<{
17
+ }, undefined, import("tailwind-variants").TVReturnTypeLike<{
18
18
  padding: {
19
- none: string;
20
- sm: string;
21
- md: string;
22
- lg: string;
19
+ none: "p-0";
20
+ sm: "p-3";
21
+ md: "p-4";
22
+ lg: "p-6";
23
23
  };
24
- }, undefined, "bg-bg-card rounded-lg border border-border-light", unknown, unknown, undefined>>;
24
+ }, undefined>>;
25
25
  export interface CardProps extends VariantProps<typeof card> {
26
26
  elevation?: "none" | "sm" | "md" | "lg";
27
27
  onPress?: () => void;
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "nativewind/jsx-runtime";
2
- import Pressable from "../primitives/Pressable";
3
- import { theme } from "../theme";
4
- import { cn, tv } from "../theme/tw";
5
- import { Typography } from "../Typography";
2
+ import Pressable from "../primitives/Pressable.js";
3
+ import { theme } from "../theme/index.js";
4
+ import { cn, tv } from "../theme/tw.js";
5
+ import { Typography } from "../Typography/index.js";
6
6
  import { View } from "react-native";
7
7
  const card = tv({
8
8
  base: "bg-bg-card rounded-lg border border-border-light",
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "nativewind/jsx-runtime";
2
- import { theme } from "../theme";
3
- import { cn } from "../theme/tw";
2
+ import { theme } from "../theme/index.js";
3
+ import { cn } from "../theme/tw.js";
4
4
  import { useState } from "react";
5
5
  import { ScrollView, View, } from "react-native";
6
6
  function Carousel({ data, renderItem, keyExtractor, itemWidth, gap = 12, showDots = true, className, testID, }) {
@@ -1,4 +1,4 @@
1
- import { type VariantProps } from "../theme/tw";
1
+ import { type VariantProps } from "../theme/tw.js";
2
2
  declare const chip: import("tailwind-variants").TVReturnType<{
3
3
  tone: {
4
4
  neutral: {
@@ -61,7 +61,7 @@ declare const chip: import("tailwind-variants").TVReturnType<{
61
61
  }, {
62
62
  root: string;
63
63
  label: string;
64
- }, import("tailwind-variants").TVReturnType<{
64
+ }, import("tailwind-variants").TVReturnTypeLike<{
65
65
  tone: {
66
66
  neutral: {
67
67
  root: string;
@@ -92,7 +92,7 @@ declare const chip: import("tailwind-variants").TVReturnType<{
92
92
  }, {
93
93
  root: string;
94
94
  label: string;
95
- }, undefined, unknown, unknown, undefined>>;
95
+ }>>;
96
96
  export interface ChipProps extends VariantProps<typeof chip> {
97
97
  label: string;
98
98
  onPress?: () => void;
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "nativewind/jsx-runtime";
2
- import Icon from "../Display/Display.Icon";
3
- import Pressable from "../primitives/Pressable";
4
- import { theme } from "../theme";
5
- import { tv } from "../theme/tw";
2
+ import Icon from "./Display.Icon.js";
3
+ import Pressable from "../primitives/Pressable.js";
4
+ import { theme } from "../theme/index.js";
5
+ import { tv } from "../theme/tw.js";
6
6
  import { Text, View } from "react-native";
7
7
  const chip = tv({
8
8
  slots: {
@@ -12,10 +12,10 @@ const chip = tv({
12
12
  variants: {
13
13
  tone: {
14
14
  neutral: { root: "bg-bg-muted", label: "text-text-secondary" },
15
- primary: { root: "bg-bg-accent", label: "text-text-accent" },
16
- success: { root: "bg-success-light", label: "text-success" },
17
- warning: { root: "bg-warning-light", label: "text-warning" },
18
- danger: { root: "bg-danger-light", label: "text-danger" },
15
+ primary: { root: "bg-container-primary", label: "text-container-on-primary" },
16
+ success: { root: "bg-container-success", label: "text-container-on-success" },
17
+ warning: { root: "bg-container-warning", label: "text-container-on-warning" },
18
+ danger: { root: "bg-container-danger", label: "text-container-on-danger" },
19
19
  },
20
20
  selected: {
21
21
  true: { root: "border border-primary" },
@@ -28,10 +28,10 @@ const chip = tv({
28
28
  });
29
29
  const removeIconColor = {
30
30
  neutral: theme.text.secondary,
31
- primary: theme.text.accent,
32
- success: theme.success,
33
- warning: theme.warning,
34
- danger: theme.danger,
31
+ primary: theme.container.onPrimary,
32
+ success: theme.container.onSuccess,
33
+ warning: theme.container.onWarning,
34
+ danger: theme.container.onDanger,
35
35
  };
36
36
  function Chip({ label, tone = "neutral", selected = false, onPress, onRemove, className, testID, }) {
37
37
  const styles = chip({ tone, selected });
@@ -1,4 +1,4 @@
1
- import { IconType } from "../utils/icon";
1
+ import { IconType } from "../utils/icon.js";
2
2
  import { ComponentType } from "react";
3
3
  export interface CircleButtonProps {
4
4
  iconType?: IconType;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "nativewind/jsx-runtime";
2
- import Icon from "../Display/Display.Icon";
3
- import { useTheme } from "../theme";
4
- import { cn } from "../theme/tw";
2
+ import Icon from "./Display.Icon.js";
3
+ import { useTheme } from "../theme/index.js";
4
+ import { cn } from "../theme/tw.js";
5
5
  import { View } from "react-native";
6
6
  import { tv } from "tailwind-variants";
7
7
  const circleButtonVariants = tv({
@@ -1,4 +1,4 @@
1
- type CopyableTextProps = {
1
+ export type CopyableTextProps = ({
2
2
  value: string;
3
3
  getValue?: never;
4
4
  label?: string;
@@ -8,6 +8,13 @@ type CopyableTextProps = {
8
8
  getValue: () => string;
9
9
  label?: string;
10
10
  className?: string;
11
+ }) & {
12
+ accessibilityLabel?: string;
13
+ testID?: string;
14
+ disabled?: boolean;
15
+ onCopied?: (value: string) => void;
16
+ onCopyError?: (error: Error) => void;
17
+ selectable?: boolean;
11
18
  };
12
- declare function CopyableText({ value, getValue, label, className }: CopyableTextProps): import("react").JSX.Element;
19
+ declare function CopyableText({ value, getValue, label, className, accessibilityLabel, testID, disabled, onCopied, onCopyError, selectable, }: CopyableTextProps): import("react").JSX.Element;
13
20
  export default CopyableText;
@@ -1,14 +1,82 @@
1
- import { jsx as _jsx } from "nativewind/jsx-runtime";
2
- import { Typography } from "../Typography";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "nativewind/jsx-runtime";
2
+ import Icon from "./Display.Icon.js";
3
+ import Pressable from "../primitives/Pressable.js";
4
+ import { useTheme } from "../theme/index.js";
5
+ import { Typography } from "../Typography/index.js";
3
6
  import * as Clipboard from "expo-clipboard";
4
- import { TouchableOpacity } from "react-native";
5
- function CopyableText({ value, getValue, label, className }) {
7
+ import { useEffect, useRef, useState } from "react";
8
+ import { AccessibilityInfo, ActivityIndicator, View } from "react-native";
9
+ function CopyableText({ value, getValue, label, className, accessibilityLabel, testID, disabled = false, onCopied, onCopyError, selectable = false, }) {
10
+ const theme = useTheme();
11
+ const pending = useRef(false);
12
+ const [status, setStatus] = useState("idle");
13
+ const [copiedValue, setCopiedValue] = useState();
6
14
  const hasStaticValue = value !== undefined;
7
- const displayText = label || value;
15
+ const isCopied = status === "copied" && (!hasStaticValue || copiedValue === value);
16
+ const displayText = label || value || "Copiar";
17
+ const copyLabel = accessibilityLabel ?? `Copiar ${displayText}`;
18
+ useEffect(() => {
19
+ if (status !== "copied")
20
+ return;
21
+ const timer = setTimeout(() => setStatus("idle"), 3000);
22
+ return () => clearTimeout(timer);
23
+ }, [status]);
8
24
  const handleCopy = async () => {
9
- const textToCopy = hasStaticValue ? value : getValue();
10
- await Clipboard.setStringAsync(textToCopy);
25
+ if (pending.current || disabled)
26
+ return;
27
+ pending.current = true;
28
+ setStatus("copying");
29
+ let textToCopy;
30
+ try {
31
+ textToCopy = hasStaticValue ? value : getValue();
32
+ const copied = await Clipboard.setStringAsync(textToCopy);
33
+ if (!copied)
34
+ throw new Error("El portapapeles no pudo copiar el texto");
35
+ }
36
+ catch (cause) {
37
+ const error = cause instanceof Error ? cause : new Error(String(cause));
38
+ setStatus("error");
39
+ AccessibilityInfo.announceForAccessibility("No se pudo copiar. Toca para reintentar.");
40
+ pending.current = false;
41
+ console.error("CopyableText: no se pudo copiar", error);
42
+ onCopyError?.(error);
43
+ return;
44
+ }
45
+ pending.current = false;
46
+ setCopiedValue(textToCopy);
47
+ setStatus("copied");
48
+ AccessibilityInfo.announceForAccessibility("Copiado");
49
+ onCopied?.(textToCopy);
11
50
  };
12
- return (_jsx(TouchableOpacity, { onPress: handleCopy, children: _jsx(Typography.Text, { className: className || "text-primary", semibold: true, variant: "bodySmall", children: displayText }) }));
51
+ return (_jsxs(View, { children: [_jsxs(View, { style: {
52
+ flexDirection: "row",
53
+ alignItems: selectable ? "flex-start" : "center",
54
+ gap: 8,
55
+ }, children: [selectable ? (_jsx(Typography.SelectableText, { className: className, style: { flex: 1 }, value: displayText, variant: "body" })) : null, _jsxs(Pressable, { accessibilityHint: selectable ? "Copia el texto completo" : "Toca para copiar", accessibilityLabel: isCopied ? `${copyLabel}. Copiado` : copyLabel, accessibilityState: {
56
+ disabled: disabled || status === "copying",
57
+ busy: status === "copying",
58
+ }, accessibilityValue: {
59
+ text: isCopied
60
+ ? "Copiado"
61
+ : status === "copying"
62
+ ? "Copiando"
63
+ : status === "error"
64
+ ? "Error al copiar"
65
+ : "",
66
+ }, disabled: disabled || status === "copying", onPress: () => {
67
+ void handleCopy();
68
+ }, style: {
69
+ minHeight: 48,
70
+ minWidth: 48,
71
+ flexDirection: "row",
72
+ alignItems: "center",
73
+ justifyContent: selectable ? "center" : "flex-start",
74
+ gap: 8,
75
+ flexShrink: selectable ? 0 : 1,
76
+ }, testID: testID, children: [!selectable ? (_jsx(Typography.Text, { className: className, style: { flexShrink: 1 }, variant: "body", children: displayText })) : null, _jsx(View, { accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants", style: { width: 24, alignItems: "center" }, children: status === "copying" ? (_jsx(ActivityIndicator, { color: theme.text.accent, size: "small" })) : (_jsx(Icon, { color: isCopied ? theme.success : theme.text.accent, name: isCopied
77
+ ? "checkmark"
78
+ : status === "error"
79
+ ? "alert-circle-outline"
80
+ : "copy-outline", size: 20 })) })] })] }), status === "error" ? (_jsx(Typography.Text, { accessibilityLiveRegion: "polite", className: "text-danger", variant: "bodySmall", children: "No se pudo copiar. Toca para reintentar." })) : null] }));
13
81
  }
14
82
  export default CopyableText;
@@ -1,6 +1,6 @@
1
1
  import { jsxs as _jsxs } from "nativewind/jsx-runtime";
2
- import { cn } from "../theme/tw";
3
- import { Typography } from "../Typography";
2
+ import { cn } from "../theme/tw.js";
3
+ import { Typography } from "../Typography/index.js";
4
4
  import { View } from "react-native";
5
5
  function CountRecords({ name, count, withPadding = true, className }) {
6
6
  return (_jsxs(View, { className: cn("flex-row py-2", withPadding && "px-4", className), children: [_jsxs(Typography.Text, { semibold: true, variant: "bodySmall", children: ["Total ", " ", `${name || "Registros"} `] }), _jsxs(Typography.Text, { className: "text-text-secondary", variant: "bodySmall", children: ["( ", count, " )"] })] }));
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "nativewind/jsx-runtime";
2
- import { cn } from "../theme/tw";
3
- import { Typography } from "../Typography";
2
+ import { cn } from "../theme/tw.js";
3
+ import { Typography } from "../Typography/index.js";
4
4
  import { ScrollView, View } from "react-native";
5
5
  const alignClass = {
6
6
  left: "text-left",
@@ -1,4 +1,4 @@
1
- import { typographyVariants } from "../theme/typography";
1
+ import { typographyVariants } from "../theme/typography.js";
2
2
  import { type StyleProp, type TextStyle } from "react-native";
3
3
  type DateFormat = "short" | "long" | "numeric";
4
4
  /**
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "nativewind/jsx-runtime";
2
- import Icon from "../Display/Display.Icon";
3
- import { theme } from "../theme";
4
- import { cn } from "../theme/tw";
5
- import { Typography } from "../Typography";
6
- import { formatDate, formatDateWithDefaultTimezone } from "../utils/date";
2
+ import Icon from "./Display.Icon.js";
3
+ import { theme } from "../theme/index.js";
4
+ import { cn } from "../theme/tw.js";
5
+ import { Typography } from "../Typography/index.js";
6
+ import { formatDate, formatDateWithDefaultTimezone } from "../utils/date.js";
7
7
  import { View } from "react-native";
8
8
  function relativeTime(value) {
9
9
  const then = new Date(value).getTime();
@@ -1,41 +1,41 @@
1
- import { type VariantProps } from "../theme/tw";
1
+ import { type VariantProps } from "../theme/tw.js";
2
2
  declare const divider: import("tailwind-variants").TVReturnType<{
3
3
  spacing: {
4
- none: string;
5
- sm: string;
6
- md: string;
7
- lg: string;
4
+ none: "my-0";
5
+ sm: "my-1";
6
+ md: "my-2";
7
+ lg: "my-3";
8
8
  };
9
9
  colorScheme: {
10
- light: string;
11
- default: string;
12
- dark: string;
10
+ light: "bg-border-divider opacity-50";
11
+ default: "bg-border-divider";
12
+ dark: "bg-border-divider opacity-100";
13
13
  };
14
14
  }, undefined, "w-full bg-border-divider", {
15
15
  spacing: {
16
- none: string;
17
- sm: string;
18
- md: string;
19
- lg: string;
16
+ none: "my-0";
17
+ sm: "my-1";
18
+ md: "my-2";
19
+ lg: "my-3";
20
20
  };
21
21
  colorScheme: {
22
- light: string;
23
- default: string;
24
- dark: string;
22
+ light: "bg-border-divider opacity-50";
23
+ default: "bg-border-divider";
24
+ dark: "bg-border-divider opacity-100";
25
25
  };
26
- }, undefined, import("tailwind-variants").TVReturnType<{
26
+ }, undefined, import("tailwind-variants").TVReturnTypeLike<{
27
27
  spacing: {
28
- none: string;
29
- sm: string;
30
- md: string;
31
- lg: string;
28
+ none: "my-0";
29
+ sm: "my-1";
30
+ md: "my-2";
31
+ lg: "my-3";
32
32
  };
33
33
  colorScheme: {
34
- light: string;
35
- default: string;
36
- dark: string;
34
+ light: "bg-border-divider opacity-50";
35
+ default: "bg-border-divider";
36
+ dark: "bg-border-divider opacity-100";
37
37
  };
38
- }, undefined, "w-full bg-border-divider", unknown, unknown, undefined>>;
38
+ }, undefined>>;
39
39
  interface DividerProps extends VariantProps<typeof divider> {
40
40
  thickness?: number;
41
41
  className?: string;
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "nativewind/jsx-runtime";
2
- import { cn, tv } from "../theme/tw";
2
+ import { cn, tv } from "../theme/tw.js";
3
3
  import { View } from "react-native";
4
4
  const divider = tv({
5
5
  base: "w-full bg-border-divider",
@@ -1,15 +1,26 @@
1
- import { type VariantProps } from "../theme/tw";
1
+ import { type VariantProps } from "../theme/tw.js";
2
2
  import { type LinearGradientPoint } from "expo-linear-gradient";
3
3
  import type { ReactNode } from "react";
4
4
  import { type ViewStyle } from "react-native";
5
5
  /**
6
- * Decorative gradient presets (2026 art direction). `brand` is themeable (reads
7
- * `theme.gradient.primary`); the rest are intentional design constants for heroes/splash.
8
- * Each is [from, …, to].
6
+ * Decorative gradient presets. `brand` is themeable (reads `theme.gradient.primary`) —
7
+ * use it when you want the surface to follow whatever the app's active theme defines.
8
+ * Other presets are static constants for one-off uses. Each is [from, …, to].
9
9
  */
10
10
  declare const GRADIENT_PRESETS: {
11
+ readonly warm: {
12
+ readonly colors: readonly ["#1A1714", "#C89B3C", "#B88A2E"];
13
+ readonly start: {
14
+ readonly x: 0;
15
+ readonly y: 0;
16
+ };
17
+ readonly end: {
18
+ readonly x: 1;
19
+ readonly y: 1;
20
+ };
21
+ };
11
22
  readonly "neon-teal": {
12
- readonly colors: readonly ["#22E584", "#0FB8A0"];
23
+ readonly colors: readonly ["#0F5C6E", "#5CC4D8"];
13
24
  readonly start: {
14
25
  readonly x: 0;
15
26
  readonly y: 0;
@@ -20,7 +31,7 @@ declare const GRADIENT_PRESETS: {
20
31
  };
21
32
  };
22
33
  readonly "night-green": {
23
- readonly colors: readonly ["#0B1410", "#0E2A1E", "#08120D"];
34
+ readonly colors: readonly ["#0B101E", "#18223A"];
24
35
  readonly start: {
25
36
  readonly x: 0;
26
37
  readonly y: 0;
@@ -31,7 +42,7 @@ declare const GRADIENT_PRESETS: {
31
42
  };
32
43
  };
33
44
  readonly mesh: {
34
- readonly colors: readonly ["#0B1410", "#10B981", "#0B1410", "#1E1B8A"];
45
+ readonly colors: readonly ["#1C3765", "#2A4A85", "#8FA9E8"];
35
46
  readonly start: {
36
47
  readonly x: 0;
37
48
  readonly y: 0;
@@ -42,7 +53,7 @@ declare const GRADIENT_PRESETS: {
42
53
  };
43
54
  };
44
55
  readonly emerald: {
45
- readonly colors: readonly ["#00C357", "#00A862"];
56
+ readonly colors: readonly ["#2F6B3C", "#6FCF8B"];
46
57
  readonly start: {
47
58
  readonly x: 0;
48
59
  readonly y: 0;
@@ -53,49 +64,57 @@ declare const GRADIENT_PRESETS: {
53
64
  };
54
65
  };
55
66
  };
56
- export type GradientPreset = keyof typeof GRADIENT_PRESETS | "brand";
67
+ /**
68
+ * Aliases kept for backwards compatibility. These were the original names; the
69
+ * canonical ones are above. Use the canonical names in new code.
70
+ * @deprecated use `warm` instead of `gold-mesh`.
71
+ */
72
+ declare const DEPRECATED_PRESETS: {
73
+ readonly "gold-mesh": "warm";
74
+ };
75
+ export type GradientPreset = keyof typeof GRADIENT_PRESETS | keyof typeof DEPRECATED_PRESETS | "brand";
57
76
  declare const surface: import("tailwind-variants").TVReturnType<{
58
77
  radius: {
59
- none: string;
60
- md: string;
61
- lg: string;
62
- full: string;
78
+ none: "rounded-none";
79
+ md: "rounded-xl";
80
+ lg: "rounded-2xl";
81
+ full: "rounded-full";
63
82
  };
64
83
  padding: {
65
- none: string;
66
- sm: string;
67
- md: string;
68
- lg: string;
84
+ none: "p-0";
85
+ sm: "p-3";
86
+ md: "p-4";
87
+ lg: "p-6";
69
88
  };
70
89
  }, undefined, undefined, {
71
90
  radius: {
72
- none: string;
73
- md: string;
74
- lg: string;
75
- full: string;
91
+ none: "rounded-none";
92
+ md: "rounded-xl";
93
+ lg: "rounded-2xl";
94
+ full: "rounded-full";
76
95
  };
77
96
  padding: {
78
- none: string;
79
- sm: string;
80
- md: string;
81
- lg: string;
97
+ none: "p-0";
98
+ sm: "p-3";
99
+ md: "p-4";
100
+ lg: "p-6";
82
101
  };
83
- }, undefined, import("tailwind-variants").TVReturnType<{
102
+ }, undefined, import("tailwind-variants").TVReturnTypeLike<{
84
103
  radius: {
85
- none: string;
86
- md: string;
87
- lg: string;
88
- full: string;
104
+ none: "rounded-none";
105
+ md: "rounded-xl";
106
+ lg: "rounded-2xl";
107
+ full: "rounded-full";
89
108
  };
90
109
  padding: {
91
- none: string;
92
- sm: string;
93
- md: string;
94
- lg: string;
110
+ none: "p-0";
111
+ sm: "p-3";
112
+ md: "p-4";
113
+ lg: "p-6";
95
114
  };
96
- }, undefined, undefined, unknown, unknown, undefined>>;
115
+ }, undefined>>;
97
116
  export interface GradientSurfaceProps extends VariantProps<typeof surface> {
98
- /** Named brand preset. Ignored if `colors` is provided. */
117
+ /** Named gradient preset. Ignored if `colors` is provided. */
99
118
  preset?: GradientPreset;
100
119
  /** Custom gradient stops (overrides `preset`). */
101
120
  colors?: readonly [string, string, ...string[]];
@@ -107,9 +126,9 @@ export interface GradientSurfaceProps extends VariantProps<typeof surface> {
107
126
  testID?: string;
108
127
  }
109
128
  /**
110
- * Modern gradient surface (delivery/fintech 2026 look). Wraps `expo-linear-gradient` with
111
- * named brand presets + tokenized radius/padding. iOS + Android (no native dep beyond the
112
- * already-peer `expo-linear-gradient`). Replaces the legacy `GradientContainer`.
129
+ * Modern gradient surface. Wraps `expo-linear-gradient` with named presets +
130
+ * tokenized radius/padding. iOS + Android (no native dep beyond the already-peer
131
+ * `expo-linear-gradient`). Replaces the legacy `GradientContainer`.
113
132
  */
114
133
  declare function GradientSurface({ preset, colors, start, end, radius, padding, children, className, style, testID, }: GradientSurfaceProps): import("react").JSX.Element;
115
134
  export default GradientSurface;