@xenition/ui 0.1.0 → 0.1.2

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 (121) hide show
  1. package/dist/native/commerce/GenerativeCover.d.ts +14 -9
  2. package/dist/native/commerce/GenerativeCover.d.ts.map +1 -1
  3. package/dist/native/commerce/GenerativeCover.js +31 -7
  4. package/dist/native/commerce/GenerativeCover.js.map +1 -1
  5. package/dist/native/marketing/AnnouncementBar.d.ts +33 -0
  6. package/dist/native/marketing/AnnouncementBar.d.ts.map +1 -0
  7. package/dist/native/marketing/AnnouncementBar.js +101 -0
  8. package/dist/native/marketing/AnnouncementBar.js.map +1 -0
  9. package/dist/native/marketing/AuroraBackground.d.ts +35 -0
  10. package/dist/native/marketing/AuroraBackground.d.ts.map +1 -0
  11. package/dist/native/marketing/AuroraBackground.js +56 -0
  12. package/dist/native/marketing/AuroraBackground.js.map +1 -0
  13. package/dist/native/marketing/Bento.d.ts +54 -0
  14. package/dist/native/marketing/Bento.d.ts.map +1 -0
  15. package/dist/native/marketing/Bento.js +139 -0
  16. package/dist/native/marketing/Bento.js.map +1 -0
  17. package/dist/native/marketing/Carousel.d.ts +26 -0
  18. package/dist/native/marketing/Carousel.d.ts.map +1 -0
  19. package/dist/native/marketing/Carousel.js +95 -0
  20. package/dist/native/marketing/Carousel.js.map +1 -0
  21. package/dist/native/marketing/ComparisonTable.d.ts +38 -0
  22. package/dist/native/marketing/ComparisonTable.d.ts.map +1 -0
  23. package/dist/native/marketing/ComparisonTable.js +84 -0
  24. package/dist/native/marketing/ComparisonTable.js.map +1 -0
  25. package/dist/native/marketing/Countdown.d.ts +25 -0
  26. package/dist/native/marketing/Countdown.d.ts.map +1 -0
  27. package/dist/native/marketing/Countdown.js +107 -0
  28. package/dist/native/marketing/Countdown.js.map +1 -0
  29. package/dist/native/marketing/CoverGallery.d.ts +38 -0
  30. package/dist/native/marketing/CoverGallery.d.ts.map +1 -0
  31. package/dist/native/marketing/CoverGallery.js +41 -0
  32. package/dist/native/marketing/CoverGallery.js.map +1 -0
  33. package/dist/native/marketing/EditorialGrid.d.ts +73 -0
  34. package/dist/native/marketing/EditorialGrid.d.ts.map +1 -0
  35. package/dist/native/marketing/EditorialGrid.js +34 -0
  36. package/dist/native/marketing/EditorialGrid.js.map +1 -0
  37. package/dist/native/marketing/FeatureSplit.d.ts +29 -0
  38. package/dist/native/marketing/FeatureSplit.d.ts.map +1 -0
  39. package/dist/native/marketing/FeatureSplit.js +37 -0
  40. package/dist/native/marketing/FeatureSplit.js.map +1 -0
  41. package/dist/native/marketing/LocationBlock.d.ts +37 -0
  42. package/dist/native/marketing/LocationBlock.d.ts.map +1 -0
  43. package/dist/native/marketing/LocationBlock.js +49 -0
  44. package/dist/native/marketing/LocationBlock.js.map +1 -0
  45. package/dist/native/marketing/Navbar.d.ts +34 -0
  46. package/dist/native/marketing/Navbar.d.ts.map +1 -0
  47. package/dist/native/marketing/Navbar.js +100 -0
  48. package/dist/native/marketing/Navbar.js.map +1 -0
  49. package/dist/native/marketing/NewsletterSignup.d.ts +33 -0
  50. package/dist/native/marketing/NewsletterSignup.d.ts.map +1 -0
  51. package/dist/native/marketing/NewsletterSignup.js +97 -0
  52. package/dist/native/marketing/NewsletterSignup.js.map +1 -0
  53. package/dist/native/marketing/OrnamentRule.d.ts +23 -0
  54. package/dist/native/marketing/OrnamentRule.d.ts.map +1 -0
  55. package/dist/native/marketing/OrnamentRule.js +43 -0
  56. package/dist/native/marketing/OrnamentRule.js.map +1 -0
  57. package/dist/native/marketing/ParticleField.d.ts +25 -0
  58. package/dist/native/marketing/ParticleField.d.ts.map +1 -0
  59. package/dist/native/marketing/ParticleField.js +92 -0
  60. package/dist/native/marketing/ParticleField.js.map +1 -0
  61. package/dist/native/marketing/PointerHalo.d.ts +22 -0
  62. package/dist/native/marketing/PointerHalo.d.ts.map +1 -0
  63. package/dist/native/marketing/PointerHalo.js +15 -0
  64. package/dist/native/marketing/PointerHalo.js.map +1 -0
  65. package/dist/native/marketing/PriceList.d.ts +30 -0
  66. package/dist/native/marketing/PriceList.d.ts.map +1 -0
  67. package/dist/native/marketing/PriceList.js +42 -0
  68. package/dist/native/marketing/PriceList.js.map +1 -0
  69. package/dist/native/marketing/PricingToggle.d.ts +30 -0
  70. package/dist/native/marketing/PricingToggle.d.ts.map +1 -0
  71. package/dist/native/marketing/PricingToggle.js +55 -0
  72. package/dist/native/marketing/PricingToggle.js.map +1 -0
  73. package/dist/native/marketing/ProcessSteps.d.ts +24 -0
  74. package/dist/native/marketing/ProcessSteps.d.ts.map +1 -0
  75. package/dist/native/marketing/ProcessSteps.js +52 -0
  76. package/dist/native/marketing/ProcessSteps.js.map +1 -0
  77. package/dist/native/marketing/ProductMock.d.ts +47 -0
  78. package/dist/native/marketing/ProductMock.d.ts.map +1 -0
  79. package/dist/native/marketing/ProductMock.js +270 -0
  80. package/dist/native/marketing/ProductMock.js.map +1 -0
  81. package/dist/native/marketing/RichText.d.ts +40 -0
  82. package/dist/native/marketing/RichText.d.ts.map +1 -0
  83. package/dist/native/marketing/RichText.js +134 -0
  84. package/dist/native/marketing/RichText.js.map +1 -0
  85. package/dist/native/marketing/SectionDivider.d.ts +34 -0
  86. package/dist/native/marketing/SectionDivider.d.ts.map +1 -0
  87. package/dist/native/marketing/SectionDivider.js +41 -0
  88. package/dist/native/marketing/SectionDivider.js.map +1 -0
  89. package/dist/native/marketing/TeamGrid.d.ts +27 -0
  90. package/dist/native/marketing/TeamGrid.d.ts.map +1 -0
  91. package/dist/native/marketing/TeamGrid.js +37 -0
  92. package/dist/native/marketing/TeamGrid.js.map +1 -0
  93. package/dist/native/marketing/VideoEmbed.d.ts +23 -0
  94. package/dist/native/marketing/VideoEmbed.d.ts.map +1 -0
  95. package/dist/native/marketing/VideoEmbed.js +38 -0
  96. package/dist/native/marketing/VideoEmbed.js.map +1 -0
  97. package/dist/native/marketing/index.d.ts +48 -0
  98. package/dist/native/marketing/index.d.ts.map +1 -1
  99. package/dist/native/marketing/index.js +55 -1
  100. package/dist/native/marketing/index.js.map +1 -1
  101. package/dist/native/motion/AnimatedCounter.d.ts +24 -0
  102. package/dist/native/motion/AnimatedCounter.d.ts.map +1 -0
  103. package/dist/native/motion/AnimatedCounter.js +76 -0
  104. package/dist/native/motion/AnimatedCounter.js.map +1 -0
  105. package/dist/native/motion/Marquee.d.ts +23 -0
  106. package/dist/native/motion/Marquee.d.ts.map +1 -0
  107. package/dist/native/motion/Marquee.js +79 -0
  108. package/dist/native/motion/Marquee.js.map +1 -0
  109. package/dist/native/motion/index.d.ts +10 -5
  110. package/dist/native/motion/index.d.ts.map +1 -1
  111. package/dist/native/motion/index.js +11 -6
  112. package/dist/native/motion/index.js.map +1 -1
  113. package/dist/native/primitives/Wordmark.d.ts +27 -0
  114. package/dist/native/primitives/Wordmark.d.ts.map +1 -0
  115. package/dist/native/primitives/Wordmark.js +41 -0
  116. package/dist/native/primitives/Wordmark.js.map +1 -0
  117. package/dist/native/primitives/index.d.ts +2 -0
  118. package/dist/native/primitives/index.d.ts.map +1 -1
  119. package/dist/native/primitives/index.js +4 -2
  120. package/dist/native/primitives/index.js.map +1 -1
  121. package/package.json +1 -1
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TeamGrid = TeamGrid;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const theme_1 = require("../theme");
7
+ const Card_1 = require("../primitives/Card");
8
+ const Avatar_1 = require("../primitives/Avatar");
9
+ /**
10
+ * Responsive grid of team/member cards — the native mirror of the web
11
+ * `TeamGrid`. Cards wrap via flex `basis` rather than CSS grid breakpoints,
12
+ * with an initials-fallback avatar. The web `socials` link row is dropped
13
+ * (no `href` navigation surface on these cards). Token-only.
14
+ */
15
+ function TeamGrid({ members, columns = 2, style, }) {
16
+ const { colors, tokens } = (0, theme_1.useXenitionTheme)();
17
+ const basis = `${100 / columns}%`;
18
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { testID: "xen-team-grid", style: [
19
+ { flexDirection: 'row', flexWrap: 'wrap', gap: tokens.spacing.lg },
20
+ style,
21
+ ], children: members.map((member, index) => ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: { flexGrow: 1, flexBasis: basis, minWidth: 160 }, children: (0, jsx_runtime_1.jsxs)(Card_1.Card, { style: { flex: 1, alignItems: 'center', gap: tokens.spacing.sm }, children: [(0, jsx_runtime_1.jsx)(Avatar_1.Avatar, { src: member.avatar, name: member.name, size: "lg" }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: { alignItems: 'center', gap: tokens.spacing.xs }, children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: {
22
+ color: colors.onSurface,
23
+ fontSize: tokens.typography.scale.base,
24
+ fontWeight: '600',
25
+ textAlign: 'center',
26
+ }, children: member.name }), member.role ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: {
27
+ color: colors.primary,
28
+ fontSize: tokens.typography.scale.sm,
29
+ fontWeight: '500',
30
+ textAlign: 'center',
31
+ }, children: member.role })) : null] }), member.bio ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: {
32
+ color: colors.muted,
33
+ fontSize: tokens.typography.scale.sm,
34
+ textAlign: 'center',
35
+ }, children: member.bio })) : null] }) }, index))) }));
36
+ }
37
+ //# sourceMappingURL=TeamGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TeamGrid.js","sourceRoot":"","sources":["../../../src/native/marketing/TeamGrid.tsx"],"names":[],"mappings":";;AA+BA,4BA+DC;;AA7FD,+CAA0E;AAC1E,oCAA4C;AAC5C,6CAA0C;AAC1C,iDAA8C;AAqB9C;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,OAAO,GAAG,CAAC,EACX,KAAK,GACS;IACd,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,wBAAgB,GAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,OAAO,GAA6B,CAAC;IAE5D,OAAO,CACL,uBAAC,mBAAI,IACH,MAAM,EAAC,eAAe,EACtB,KAAK,EAAE;YACL,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE;YAClE,KAAK;SACN,YAEA,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9B,uBAAC,mBAAI,IAEH,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,YAEvD,wBAAC,WAAI,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,aACpE,uBAAC,eAAM,IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAC,IAAI,GAAG,EAC3D,wBAAC,mBAAI,IAAC,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,aAC3D,uBAAC,mBAAI,IACH,KAAK,EAAE;oCACL,KAAK,EAAE,MAAM,CAAC,SAAS;oCACvB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI;oCACtC,UAAU,EAAE,KAAK;oCACjB,SAAS,EAAE,QAAQ;iCACpB,YAEA,MAAM,CAAC,IAAI,GACP,EACN,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CACb,uBAAC,mBAAI,IACH,KAAK,EAAE;oCACL,KAAK,EAAE,MAAM,CAAC,OAAO;oCACrB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;oCACpC,UAAU,EAAE,KAAK;oCACjB,SAAS,EAAE,QAAQ;iCACpB,YAEA,MAAM,CAAC,IAAI,GACP,CACR,CAAC,CAAC,CAAC,IAAI,IACH,EACN,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CACZ,uBAAC,mBAAI,IACH,KAAK,EAAE;4BACL,KAAK,EAAE,MAAM,CAAC,KAAK;4BACnB,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;4BACpC,SAAS,EAAE,QAAQ;yBACpB,YAEA,MAAM,CAAC,GAAG,GACN,CACR,CAAC,CAAC,CAAC,IAAI,IACH,IAxCF,KAAK,CAyCL,CACR,CAAC,GACG,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ import * as React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ export interface VideoEmbedProps {
4
+ /** Video URL (kept for parity; actual playback needs `expo-av`, out of scope). */
5
+ url: string;
6
+ /** Accessible title. */
7
+ title: string;
8
+ /** Poster image shown before playback. */
9
+ poster?: string;
10
+ /** Fired when the play affordance is pressed (wire to a player / deep link). */
11
+ onPress?: () => void;
12
+ style?: StyleProp<ViewStyle>;
13
+ }
14
+ /**
15
+ * A 16:9 video card with a poster + play affordance — the native mirror of the
16
+ * web `VideoEmbed`. React Native has no `<iframe>`/`<video>`, so this renders a
17
+ * token-styled poster thumbnail with a circular play button; `onPress` is the
18
+ * hook a caller uses to launch playback. Real inline playback requires
19
+ * `expo-av` (out of scope here); the `url`/`title` props are preserved so a
20
+ * host app can pass them straight through. Token-only.
21
+ */
22
+ export declare function VideoEmbed({ url: _url, title, poster, onPress, style, }: VideoEmbedProps): React.ReactElement;
23
+ //# sourceMappingURL=VideoEmbed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoEmbed.d.ts","sourceRoot":"","sources":["../../../src/native/marketing/VideoEmbed.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAgC,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAG5F,MAAM,WAAW,eAAe;IAC9B,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAC;IACZ,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EACzB,GAAG,EAAE,IAAI,EACT,KAAK,EACL,MAAM,EACN,OAAO,EACP,KAAK,GACN,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAuDtC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VideoEmbed = VideoEmbed;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_native_1 = require("react-native");
6
+ const theme_1 = require("../theme");
7
+ /**
8
+ * A 16:9 video card with a poster + play affordance — the native mirror of the
9
+ * web `VideoEmbed`. React Native has no `<iframe>`/`<video>`, so this renders a
10
+ * token-styled poster thumbnail with a circular play button; `onPress` is the
11
+ * hook a caller uses to launch playback. Real inline playback requires
12
+ * `expo-av` (out of scope here); the `url`/`title` props are preserved so a
13
+ * host app can pass them straight through. Token-only.
14
+ */
15
+ function VideoEmbed({ url: _url, title, poster, onPress, style, }) {
16
+ const { colors, tokens } = (0, theme_1.useXenitionTheme)();
17
+ const content = ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: {
18
+ aspectRatio: 16 / 9,
19
+ width: '100%',
20
+ overflow: 'hidden',
21
+ borderRadius: tokens.radius.lg,
22
+ borderWidth: 1,
23
+ borderColor: colors.border,
24
+ backgroundColor: tokens.ramps.neutral[900],
25
+ alignItems: 'center',
26
+ justifyContent: 'center',
27
+ }, children: [poster ? ((0, jsx_runtime_1.jsx)(react_native_1.Image, { source: { uri: poster }, accessible: true, accessibilityLabel: title, resizeMode: "cover", style: { position: 'absolute', width: '100%', height: '100%' } })) : null, (0, jsx_runtime_1.jsx)(react_native_1.View, { style: {
28
+ height: 64,
29
+ width: 64,
30
+ borderRadius: tokens.radius.full,
31
+ alignItems: 'center',
32
+ justifyContent: 'center',
33
+ backgroundColor: colors.primary,
34
+ opacity: 0.9,
35
+ }, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: { color: colors.onPrimary, fontSize: tokens.typography.scale['2xl'] }, children: '▶' }) })] }));
36
+ return ((0, jsx_runtime_1.jsx)(react_native_1.Pressable, { testID: "xen-video-embed", accessibilityRole: "button", accessibilityLabel: title, onPress: onPress, style: ({ pressed }) => [{ opacity: pressed ? 0.95 : 1 }, style], children: content }));
37
+ }
38
+ //# sourceMappingURL=VideoEmbed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VideoEmbed.js","sourceRoot":"","sources":["../../../src/native/marketing/VideoEmbed.tsx"],"names":[],"mappings":";;AAwBA,gCA6DC;;AApFD,+CAA4F;AAC5F,oCAA4C;AAc5C;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,EACzB,GAAG,EAAE,IAAI,EACT,KAAK,EACL,MAAM,EACN,OAAO,EACP,KAAK,GACW;IAChB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,wBAAgB,GAAE,CAAC;IAE9C,MAAM,OAAO,GAAG,CACd,wBAAC,mBAAI,IACH,KAAK,EAAE;YACL,WAAW,EAAE,EAAE,GAAG,CAAC;YACnB,KAAK,EAAE,MAAM;YACb,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;YAC9B,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAC1C,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;SACzB,aAEA,MAAM,CAAC,CAAC,CAAC,CACR,uBAAC,oBAAK,IACJ,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EACvB,UAAU,QACV,kBAAkB,EAAE,KAAK,EACzB,UAAU,EAAC,OAAO,EAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAC9D,CACH,CAAC,CAAC,CAAC,IAAI,EACR,uBAAC,mBAAI,IACH,KAAK,EAAE;oBACL,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,EAAE;oBACT,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;oBAChC,UAAU,EAAE,QAAQ;oBACpB,cAAc,EAAE,QAAQ;oBACxB,eAAe,EAAE,MAAM,CAAC,OAAO;oBAC/B,OAAO,EAAE,GAAG;iBACb,YAED,uBAAC,mBAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,YAC/E,GAAG,GACC,GACF,IACF,CACR,CAAC;IAEF,OAAO,CACL,uBAAC,wBAAS,IACR,MAAM,EAAC,iBAAiB,EACxB,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,KAAK,EACzB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,YAE/D,OAAO,GACE,CACb,CAAC;AACJ,CAAC"}
@@ -11,6 +11,8 @@ export { GradientHero } from './GradientHero';
11
11
  export type { GradientHeroProps } from './GradientHero';
12
12
  export { SectionHeading } from './SectionHeading';
13
13
  export type { SectionHeadingProps } from './SectionHeading';
14
+ export { RichText, parseRichText } from './RichText';
15
+ export type { RichTextProps } from './RichText';
14
16
  export { CTABanner } from './CTABanner';
15
17
  export type { CTABannerProps } from './CTABanner';
16
18
  export { Footer } from './Footer';
@@ -27,4 +29,50 @@ export { StatBar, Stat } from './StatBar';
27
29
  export type { StatBarProps, StatItem } from './StatBar';
28
30
  export { LogoCloud } from './LogoCloud';
29
31
  export type { LogoCloudProps } from './LogoCloud';
32
+ export { BentoGrid, BentoCard } from './Bento';
33
+ export type { BentoGridProps, BentoCardProps, BentoCardData } from './Bento';
34
+ export { EditorialGrid, EditorialItem } from './EditorialGrid';
35
+ export type { EditorialGridProps, EditorialItemProps, EditorialItemData } from './EditorialGrid';
36
+ export { OrnamentRule } from './OrnamentRule';
37
+ export type { OrnamentRuleProps, OrnamentShape, OrnamentTone } from './OrnamentRule';
38
+ export { SectionDivider } from './SectionDivider';
39
+ export type { SectionDividerProps, SectionDividerVariant } from './SectionDivider';
40
+ export { AnnouncementBar } from './AnnouncementBar';
41
+ export type { AnnouncementBarProps, AnnouncementTone } from './AnnouncementBar';
42
+ export { PriceList } from './PriceList';
43
+ export type { PriceListProps, PriceRow } from './PriceList';
44
+ export { PricingToggle } from './PricingToggle';
45
+ export type { PricingToggleProps, PricingToggleOption } from './PricingToggle';
46
+ export { ComparisonTable } from './ComparisonTable';
47
+ export type { ComparisonTableProps, ComparisonColumn, ComparisonRow } from './ComparisonTable';
48
+ export { Navbar } from './Navbar';
49
+ export type { NavbarProps, NavbarLink } from './Navbar';
50
+ export { ProductMock } from './ProductMock';
51
+ export type { ProductMockProps, ProductMockVariant, ProductMockChart, ProductMockKpi, } from './ProductMock';
52
+ export { ProcessSteps } from './ProcessSteps';
53
+ export type { ProcessStepsProps, ProcessStep } from './ProcessSteps';
54
+ export { TeamGrid } from './TeamGrid';
55
+ export type { TeamGridProps, TeamMember } from './TeamGrid';
56
+ export { FeatureSplit } from './FeatureSplit';
57
+ export type { FeatureSplitProps } from './FeatureSplit';
58
+ export { LocationBlock } from './LocationBlock';
59
+ export type { LocationBlockProps, LocationHour } from './LocationBlock';
60
+ export { Carousel } from './Carousel';
61
+ export type { CarouselProps } from './Carousel';
62
+ export { CoverGallery } from './CoverGallery';
63
+ export type { CoverGalleryProps, CoverGalleryItem } from './CoverGallery';
64
+ export { VideoEmbed } from './VideoEmbed';
65
+ export type { VideoEmbedProps } from './VideoEmbed';
66
+ export { Countdown } from './Countdown';
67
+ export type { CountdownProps } from './Countdown';
68
+ export { NewsletterSignup } from './NewsletterSignup';
69
+ export type { NewsletterSignupProps } from './NewsletterSignup';
70
+ export { AuroraBackground } from './AuroraBackground';
71
+ export type { AuroraBackgroundProps, AuroraVariant, AuroraPattern } from './AuroraBackground';
72
+ export { ParticleField } from './ParticleField';
73
+ export type { ParticleFieldProps, ParticleMood } from './ParticleField';
74
+ export { PointerHalo } from './PointerHalo';
75
+ export type { PointerHaloProps, PointerHaloMode } from './PointerHalo';
76
+ export { GenerativeCover } from '../commerce/GenerativeCover';
77
+ export type { GenerativeCoverProps } from '../commerce/GenerativeCover';
30
78
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/native/marketing/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/native/marketing/index.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  * no DOM.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.LogoCloud = exports.Stat = exports.StatBar = exports.PricingTable = exports.FAQ = exports.initialsFromName = exports.Testimonials = exports.FeatureGrid = exports.Footer = exports.CTABanner = exports.SectionHeading = exports.GradientHero = exports.EntityCard = void 0;
10
+ exports.GenerativeCover = exports.PointerHalo = exports.ParticleField = exports.AuroraBackground = exports.NewsletterSignup = exports.Countdown = exports.VideoEmbed = exports.CoverGallery = exports.Carousel = exports.LocationBlock = exports.FeatureSplit = exports.TeamGrid = exports.ProcessSteps = exports.ProductMock = exports.Navbar = exports.ComparisonTable = exports.PricingToggle = exports.PriceList = exports.AnnouncementBar = exports.SectionDivider = exports.OrnamentRule = exports.EditorialItem = exports.EditorialGrid = exports.BentoCard = exports.BentoGrid = exports.LogoCloud = exports.Stat = exports.StatBar = exports.PricingTable = exports.FAQ = exports.initialsFromName = exports.Testimonials = exports.FeatureGrid = exports.Footer = exports.CTABanner = exports.parseRichText = exports.RichText = exports.SectionHeading = exports.GradientHero = exports.EntityCard = void 0;
11
11
  var EntityCard_1 = require("./EntityCard");
12
12
  Object.defineProperty(exports, "EntityCard", { enumerable: true, get: function () { return EntityCard_1.EntityCard; } });
13
13
  // ── native marketing sections (parity with @xenition/ui/marketing) ────
@@ -15,6 +15,9 @@ var GradientHero_1 = require("./GradientHero");
15
15
  Object.defineProperty(exports, "GradientHero", { enumerable: true, get: function () { return GradientHero_1.GradientHero; } });
16
16
  var SectionHeading_1 = require("./SectionHeading");
17
17
  Object.defineProperty(exports, "SectionHeading", { enumerable: true, get: function () { return SectionHeading_1.SectionHeading; } });
18
+ var RichText_1 = require("./RichText");
19
+ Object.defineProperty(exports, "RichText", { enumerable: true, get: function () { return RichText_1.RichText; } });
20
+ Object.defineProperty(exports, "parseRichText", { enumerable: true, get: function () { return RichText_1.parseRichText; } });
18
21
  var CTABanner_1 = require("./CTABanner");
19
22
  Object.defineProperty(exports, "CTABanner", { enumerable: true, get: function () { return CTABanner_1.CTABanner; } });
20
23
  var Footer_1 = require("./Footer");
@@ -33,4 +36,55 @@ Object.defineProperty(exports, "StatBar", { enumerable: true, get: function () {
33
36
  Object.defineProperty(exports, "Stat", { enumerable: true, get: function () { return StatBar_1.Stat; } });
34
37
  var LogoCloud_1 = require("./LogoCloud");
35
38
  Object.defineProperty(exports, "LogoCloud", { enumerable: true, get: function () { return LogoCloud_1.LogoCloud; } });
39
+ // ── full parity with @xenition/ui/marketing (native ports) ────────────
40
+ var Bento_1 = require("./Bento");
41
+ Object.defineProperty(exports, "BentoGrid", { enumerable: true, get: function () { return Bento_1.BentoGrid; } });
42
+ Object.defineProperty(exports, "BentoCard", { enumerable: true, get: function () { return Bento_1.BentoCard; } });
43
+ var EditorialGrid_1 = require("./EditorialGrid");
44
+ Object.defineProperty(exports, "EditorialGrid", { enumerable: true, get: function () { return EditorialGrid_1.EditorialGrid; } });
45
+ Object.defineProperty(exports, "EditorialItem", { enumerable: true, get: function () { return EditorialGrid_1.EditorialItem; } });
46
+ var OrnamentRule_1 = require("./OrnamentRule");
47
+ Object.defineProperty(exports, "OrnamentRule", { enumerable: true, get: function () { return OrnamentRule_1.OrnamentRule; } });
48
+ var SectionDivider_1 = require("./SectionDivider");
49
+ Object.defineProperty(exports, "SectionDivider", { enumerable: true, get: function () { return SectionDivider_1.SectionDivider; } });
50
+ var AnnouncementBar_1 = require("./AnnouncementBar");
51
+ Object.defineProperty(exports, "AnnouncementBar", { enumerable: true, get: function () { return AnnouncementBar_1.AnnouncementBar; } });
52
+ var PriceList_1 = require("./PriceList");
53
+ Object.defineProperty(exports, "PriceList", { enumerable: true, get: function () { return PriceList_1.PriceList; } });
54
+ var PricingToggle_1 = require("./PricingToggle");
55
+ Object.defineProperty(exports, "PricingToggle", { enumerable: true, get: function () { return PricingToggle_1.PricingToggle; } });
56
+ var ComparisonTable_1 = require("./ComparisonTable");
57
+ Object.defineProperty(exports, "ComparisonTable", { enumerable: true, get: function () { return ComparisonTable_1.ComparisonTable; } });
58
+ var Navbar_1 = require("./Navbar");
59
+ Object.defineProperty(exports, "Navbar", { enumerable: true, get: function () { return Navbar_1.Navbar; } });
60
+ var ProductMock_1 = require("./ProductMock");
61
+ Object.defineProperty(exports, "ProductMock", { enumerable: true, get: function () { return ProductMock_1.ProductMock; } });
62
+ var ProcessSteps_1 = require("./ProcessSteps");
63
+ Object.defineProperty(exports, "ProcessSteps", { enumerable: true, get: function () { return ProcessSteps_1.ProcessSteps; } });
64
+ var TeamGrid_1 = require("./TeamGrid");
65
+ Object.defineProperty(exports, "TeamGrid", { enumerable: true, get: function () { return TeamGrid_1.TeamGrid; } });
66
+ var FeatureSplit_1 = require("./FeatureSplit");
67
+ Object.defineProperty(exports, "FeatureSplit", { enumerable: true, get: function () { return FeatureSplit_1.FeatureSplit; } });
68
+ var LocationBlock_1 = require("./LocationBlock");
69
+ Object.defineProperty(exports, "LocationBlock", { enumerable: true, get: function () { return LocationBlock_1.LocationBlock; } });
70
+ var Carousel_1 = require("./Carousel");
71
+ Object.defineProperty(exports, "Carousel", { enumerable: true, get: function () { return Carousel_1.Carousel; } });
72
+ var CoverGallery_1 = require("./CoverGallery");
73
+ Object.defineProperty(exports, "CoverGallery", { enumerable: true, get: function () { return CoverGallery_1.CoverGallery; } });
74
+ var VideoEmbed_1 = require("./VideoEmbed");
75
+ Object.defineProperty(exports, "VideoEmbed", { enumerable: true, get: function () { return VideoEmbed_1.VideoEmbed; } });
76
+ var Countdown_1 = require("./Countdown");
77
+ Object.defineProperty(exports, "Countdown", { enumerable: true, get: function () { return Countdown_1.Countdown; } });
78
+ var NewsletterSignup_1 = require("./NewsletterSignup");
79
+ Object.defineProperty(exports, "NewsletterSignup", { enumerable: true, get: function () { return NewsletterSignup_1.NewsletterSignup; } });
80
+ var AuroraBackground_1 = require("./AuroraBackground");
81
+ Object.defineProperty(exports, "AuroraBackground", { enumerable: true, get: function () { return AuroraBackground_1.AuroraBackground; } });
82
+ var ParticleField_1 = require("./ParticleField");
83
+ Object.defineProperty(exports, "ParticleField", { enumerable: true, get: function () { return ParticleField_1.ParticleField; } });
84
+ var PointerHalo_1 = require("./PointerHalo");
85
+ Object.defineProperty(exports, "PointerHalo", { enumerable: true, get: function () { return PointerHalo_1.PointerHalo; } });
86
+ // GenerativeCover: re-export the existing native commerce implementation
87
+ // (mirrors how the web marketing index surfaces GenerativeCover).
88
+ var GenerativeCover_1 = require("../commerce/GenerativeCover");
89
+ Object.defineProperty(exports, "GenerativeCover", { enumerable: true, get: function () { return GenerativeCover_1.GenerativeCover; } });
36
90
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/native/marketing/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAGnB,yEAAyE;AACzE,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAEf,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AAEpB,+CAAgE;AAAvD,4GAAA,YAAY,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAEvC,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AAEZ,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,qCAA0C;AAAjC,kGAAA,OAAO,OAAA;AAAE,+FAAA,IAAI,OAAA;AAEtB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/native/marketing/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAGnB,yEAAyE;AACzE,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,uCAAqD;AAA5C,oGAAA,QAAQ,OAAA;AAAE,yGAAA,aAAa,OAAA;AAEhC,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAEf,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AAEpB,+CAAgE;AAAvD,4GAAA,YAAY,OAAA;AAAE,gHAAA,gBAAgB,OAAA;AAEvC,6BAA4B;AAAnB,0FAAA,GAAG,OAAA;AAEZ,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,qCAA0C;AAAjC,kGAAA,OAAO,OAAA;AAAE,+FAAA,IAAI,OAAA;AAEtB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAGlB,yEAAyE;AACzE,iCAA+C;AAAtC,kGAAA,SAAS,OAAA;AAAE,kGAAA,SAAS,OAAA;AAE7B,iDAA+D;AAAtD,8GAAA,aAAa,OAAA;AAAE,8GAAA,aAAa,OAAA;AAErC,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AAExB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AAExB,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAEf,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AAOpB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAEjB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAEjB,+CAA8C;AAArC,4GAAA,YAAY,OAAA;AAErB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAEnB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAElB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAEzB,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AAEzB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AAEpB,yEAAyE;AACzE,kEAAkE;AAClE,+DAA8D;AAArD,kHAAA,eAAe,OAAA"}
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ import { type StyleProp, type TextStyle } from 'react-native';
3
+ export interface AnimatedCounterProps {
4
+ /** Final value. */
5
+ to: number;
6
+ /** Starting value (default 0). */
7
+ from?: number;
8
+ /** Count duration in ms (default 1500). */
9
+ duration?: number;
10
+ /** Formats the current value for display. Defaults to rounded `toLocaleString()`. */
11
+ format?: (value: number) => string;
12
+ style?: StyleProp<TextStyle>;
13
+ }
14
+ /**
15
+ * Counts up (or down) on mount — the native mirror of the web `AnimatedCounter`.
16
+ * On mobile the norm is a **mount** entrance (like the native `Reveal`), so
17
+ * instead of the web's scroll-into-view trigger this counts as soon as it
18
+ * mounts, driven by the RN `Animated` clock with an ease-out curve. Under the
19
+ * OS "Reduce Motion" setting the final value renders immediately. The animated
20
+ * value is read on the JS thread (to format each frame), so this uses
21
+ * `useNativeDriver: false`. Motion-only — inherit color via `style`.
22
+ */
23
+ export declare function AnimatedCounter({ to, from, duration, format, style, }: AnimatedCounterProps): React.ReactElement;
24
+ //# sourceMappingURL=AnimatedCounter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimatedCounter.d.ts","sourceRoot":"","sources":["../../../src/native/motion/AnimatedCounter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA0B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAGtF,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAID;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,IAAQ,EACR,QAAe,EACf,MAAsB,EACtB,KAAK,GACN,EAAE,oBAAoB,GAAG,KAAK,CAAC,YAAY,CA0B3C"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.AnimatedCounter = AnimatedCounter;
37
+ const jsx_runtime_1 = require("react/jsx-runtime");
38
+ const React = __importStar(require("react"));
39
+ const react_native_1 = require("react-native");
40
+ const useReducedMotion_1 = require("../primitives/internal/useReducedMotion");
41
+ const defaultFormat = (value) => Math.round(value).toLocaleString('en-US');
42
+ /**
43
+ * Counts up (or down) on mount — the native mirror of the web `AnimatedCounter`.
44
+ * On mobile the norm is a **mount** entrance (like the native `Reveal`), so
45
+ * instead of the web's scroll-into-view trigger this counts as soon as it
46
+ * mounts, driven by the RN `Animated` clock with an ease-out curve. Under the
47
+ * OS "Reduce Motion" setting the final value renders immediately. The animated
48
+ * value is read on the JS thread (to format each frame), so this uses
49
+ * `useNativeDriver: false`. Motion-only — inherit color via `style`.
50
+ */
51
+ function AnimatedCounter({ to, from = 0, duration = 1500, format = defaultFormat, style, }) {
52
+ const reduced = (0, useReducedMotion_1.useReducedMotion)();
53
+ const anim = React.useRef(new react_native_1.Animated.Value(from)).current;
54
+ const [value, setValue] = React.useState(from);
55
+ React.useEffect(() => {
56
+ if (reduced || duration <= 0) {
57
+ setValue(to);
58
+ return undefined;
59
+ }
60
+ anim.setValue(from);
61
+ const id = anim.addListener(({ value: v }) => setValue(v));
62
+ const animation = react_native_1.Animated.timing(anim, {
63
+ toValue: to,
64
+ duration,
65
+ easing: react_native_1.Easing.out(react_native_1.Easing.cubic),
66
+ useNativeDriver: false,
67
+ });
68
+ animation.start();
69
+ return () => {
70
+ animation.stop();
71
+ anim.removeListener(id);
72
+ };
73
+ }, [reduced, from, to, duration, anim]);
74
+ return (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: style, children: format(value) });
75
+ }
76
+ //# sourceMappingURL=AnimatedCounter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimatedCounter.js","sourceRoot":"","sources":["../../../src/native/motion/AnimatedCounter.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,0CAgCC;;AA3DD,6CAA+B;AAC/B,+CAAsF;AACtF,8EAA2E;AAc3E,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAE3F;;;;;;;;GAQG;AACH,SAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,IAAI,GAAG,CAAC,EACR,QAAQ,GAAG,IAAI,EACf,MAAM,GAAG,aAAa,EACtB,KAAK,GACgB;IACrB,MAAM,OAAO,GAAG,IAAA,mCAAgB,GAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,uBAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,OAAO,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YAC7B,QAAQ,CAAC,EAAE,CAAC,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,uBAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;YACtC,OAAO,EAAE,EAAE;YACX,QAAQ;YACR,MAAM,EAAE,qBAAM,CAAC,GAAG,CAAC,qBAAM,CAAC,KAAK,CAAC;YAChC,eAAe,EAAE,KAAK;SACvB,CAAC,CAAC;QACH,SAAS,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAExC,OAAO,uBAAC,mBAAI,IAAC,KAAK,EAAE,KAAK,YAAG,MAAM,CAAC,KAAK,CAAC,GAAQ,CAAC;AACpD,CAAC"}
@@ -0,0 +1,23 @@
1
+ import * as React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ export interface MarqueeProps {
4
+ /** Scroll speed in px/s (loop duration is derived from the content width). */
5
+ speed?: number;
6
+ /** Gap between the repeated copies (default the theme's `lg` spacing). */
7
+ gap?: number;
8
+ /** Style override on the clipping container. */
9
+ style?: StyleProp<ViewStyle>;
10
+ children?: React.ReactNode;
11
+ }
12
+ /**
13
+ * Infinite horizontal loop — the native mirror of the web `Marquee`. The web
14
+ * version is a scroll-independent CSS keyframe loop, which maps directly onto
15
+ * React Native's `Animated` (no scroll position / `IntersectionObserver`
16
+ * needed), so unlike the pointer/scroll-driven `Parallax`/`TiltCard` this one
17
+ * *does* have a native form. The content is rendered twice; the track
18
+ * translates by one copy's width so the second copy seamlessly takes the
19
+ * first's place. Under the OS "Reduce Motion" setting it renders as a single
20
+ * static row. Motion-only — no literal colors.
21
+ */
22
+ export declare function Marquee({ speed, gap, style, children, }: MarqueeProps): React.ReactElement;
23
+ //# sourceMappingURL=Marquee.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Marquee.d.ts","sourceRoot":"","sources":["../../../src/native/motion/Marquee.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA0B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAItF,MAAM,WAAW,YAAY;IAC3B,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,EACtB,KAAU,EACV,GAAG,EACH,KAAK,EACL,QAAQ,GACT,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAuDnC"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Marquee = Marquee;
37
+ const jsx_runtime_1 = require("react/jsx-runtime");
38
+ const React = __importStar(require("react"));
39
+ const react_native_1 = require("react-native");
40
+ const theme_1 = require("../theme");
41
+ const useReducedMotion_1 = require("../primitives/internal/useReducedMotion");
42
+ /**
43
+ * Infinite horizontal loop — the native mirror of the web `Marquee`. The web
44
+ * version is a scroll-independent CSS keyframe loop, which maps directly onto
45
+ * React Native's `Animated` (no scroll position / `IntersectionObserver`
46
+ * needed), so unlike the pointer/scroll-driven `Parallax`/`TiltCard` this one
47
+ * *does* have a native form. The content is rendered twice; the track
48
+ * translates by one copy's width so the second copy seamlessly takes the
49
+ * first's place. Under the OS "Reduce Motion" setting it renders as a single
50
+ * static row. Motion-only — no literal colors.
51
+ */
52
+ function Marquee({ speed = 40, gap, style, children, }) {
53
+ const { tokens } = (0, theme_1.useXenitionTheme)();
54
+ const reduced = (0, useReducedMotion_1.useReducedMotion)();
55
+ const trackGap = gap ?? tokens.spacing.lg;
56
+ const [width, setWidth] = React.useState(0);
57
+ const x = React.useRef(new react_native_1.Animated.Value(0)).current;
58
+ React.useEffect(() => {
59
+ if (reduced || width === 0 || speed <= 0)
60
+ return undefined;
61
+ const distance = width + trackGap;
62
+ const duration = (distance / speed) * 1000;
63
+ x.setValue(0);
64
+ const loop = react_native_1.Animated.loop(react_native_1.Animated.timing(x, {
65
+ toValue: -distance,
66
+ duration,
67
+ easing: react_native_1.Easing.linear,
68
+ useNativeDriver: true,
69
+ }));
70
+ loop.start();
71
+ return () => loop.stop();
72
+ }, [reduced, width, speed, trackGap, x]);
73
+ // Reduced motion: a single static row (still clipped so it can't overflow).
74
+ if (reduced) {
75
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [{ overflow: 'hidden' }, style], children: (0, jsx_runtime_1.jsx)(react_native_1.View, { style: { flexDirection: 'row', alignItems: 'center', gap: trackGap }, children: children }) }));
76
+ }
77
+ return ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [{ overflow: 'hidden' }, style], children: (0, jsx_runtime_1.jsxs)(react_native_1.Animated.View, { style: { flexDirection: 'row', alignItems: 'center', transform: [{ translateX: x }] }, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { onLayout: (e) => setWidth(e.nativeEvent.layout.width), style: { flexDirection: 'row', alignItems: 'center', gap: trackGap }, children: children }), (0, jsx_runtime_1.jsx)(react_native_1.View, { style: { flexDirection: 'row', alignItems: 'center', gap: trackGap, marginLeft: trackGap }, children: children })] }) }));
78
+ }
79
+ //# sourceMappingURL=Marquee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Marquee.js","sourceRoot":"","sources":["../../../src/native/motion/Marquee.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,0BA4DC;;AArFD,6CAA+B;AAC/B,+CAAsF;AACtF,oCAA4C;AAC5C,8EAA2E;AAY3E;;;;;;;;;GASG;AACH,SAAgB,OAAO,CAAC,EACtB,KAAK,GAAG,EAAE,EACV,GAAG,EACH,KAAK,EACL,QAAQ,GACK;IACb,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,wBAAgB,GAAE,CAAC;IACtC,MAAM,OAAO,GAAG,IAAA,mCAAgB,GAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IAE1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,uBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAEtD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,OAAO,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QAC3D,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;QAClC,MAAM,QAAQ,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;QAC3C,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACd,MAAM,IAAI,GAAG,uBAAQ,CAAC,IAAI,CACxB,uBAAQ,CAAC,MAAM,CAAC,CAAC,EAAE;YACjB,OAAO,EAAE,CAAC,QAAQ;YAClB,QAAQ;YACR,MAAM,EAAE,qBAAM,CAAC,MAAM;YACrB,eAAe,EAAE,IAAI;SACtB,CAAC,CACH,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzC,4EAA4E;IAC5E,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CACL,uBAAC,mBAAI,IAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,YAC1C,uBAAC,mBAAI,IAAC,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,YACvE,QAAQ,GACJ,GACF,CACR,CAAC;IACJ,CAAC;IAED,OAAO,CACL,uBAAC,mBAAI,IAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,CAAC,YAC1C,wBAAC,uBAAQ,CAAC,IAAI,IACZ,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,aAErF,uBAAC,mBAAI,IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EACrD,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,YAEnE,QAAQ,GACJ,EACP,uBAAC,mBAAI,IACH,KAAK,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,YAEzF,QAAQ,GACJ,IACO,GACX,CACR,CAAC;AACJ,CAAC"}
@@ -5,15 +5,20 @@
5
5
  * "Reduce Motion" setting: content renders immediately with animations off.
6
6
  *
7
7
  * On mobile the norm is a **mount** entrance, so `Reveal` animates in on mount
8
- * rather than on scroll. The scroll/pointer-driven web pieces
9
- * (`Parallax`, `Marquee`, `TiltCard`) and `AnimatedCounter` are **web-only**
10
- * they depend on scroll position / pointer events / `IntersectionObserver` that
11
- * have no direct React Native analogue; use them from `@xenition/ui/motion` in
12
- * web templates.
8
+ * rather than on scroll, and `AnimatedCounter` counts on mount rather than on
9
+ * scroll-into-view. `Marquee` is a scroll-independent continuous loop, so it
10
+ * maps directly onto the RN `Animated` clock. The genuinely pointer/scroll-
11
+ * driven pieces (`Parallax`, `TiltCard`) remain **web-only** they depend on
12
+ * scroll position / pointer events that have no direct React Native analogue;
13
+ * use them from `@xenition/ui/motion` in web templates.
13
14
  */
14
15
  export { Reveal } from './Reveal';
15
16
  export type { RevealProps, RevealEffect } from './Reveal';
16
17
  export { Stagger } from './Stagger';
17
18
  export type { StaggerProps, StaggerConfig } from './Stagger';
19
+ export { Marquee } from './Marquee';
20
+ export type { MarqueeProps } from './Marquee';
21
+ export { AnimatedCounter } from './AnimatedCounter';
22
+ export type { AnimatedCounterProps } from './AnimatedCounter';
18
23
  export { useReducedMotion } from '../primitives/internal/useReducedMotion';
19
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/native/motion/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/native/motion/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC"}
@@ -6,18 +6,23 @@
6
6
  * "Reduce Motion" setting: content renders immediately with animations off.
7
7
  *
8
8
  * On mobile the norm is a **mount** entrance, so `Reveal` animates in on mount
9
- * rather than on scroll. The scroll/pointer-driven web pieces
10
- * (`Parallax`, `Marquee`, `TiltCard`) and `AnimatedCounter` are **web-only**
11
- * they depend on scroll position / pointer events / `IntersectionObserver` that
12
- * have no direct React Native analogue; use them from `@xenition/ui/motion` in
13
- * web templates.
9
+ * rather than on scroll, and `AnimatedCounter` counts on mount rather than on
10
+ * scroll-into-view. `Marquee` is a scroll-independent continuous loop, so it
11
+ * maps directly onto the RN `Animated` clock. The genuinely pointer/scroll-
12
+ * driven pieces (`Parallax`, `TiltCard`) remain **web-only** they depend on
13
+ * scroll position / pointer events that have no direct React Native analogue;
14
+ * use them from `@xenition/ui/motion` in web templates.
14
15
  */
15
16
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.useReducedMotion = exports.Stagger = exports.Reveal = void 0;
17
+ exports.useReducedMotion = exports.AnimatedCounter = exports.Marquee = exports.Stagger = exports.Reveal = void 0;
17
18
  var Reveal_1 = require("./Reveal");
18
19
  Object.defineProperty(exports, "Reveal", { enumerable: true, get: function () { return Reveal_1.Reveal; } });
19
20
  var Stagger_1 = require("./Stagger");
20
21
  Object.defineProperty(exports, "Stagger", { enumerable: true, get: function () { return Stagger_1.Stagger; } });
22
+ var Marquee_1 = require("./Marquee");
23
+ Object.defineProperty(exports, "Marquee", { enumerable: true, get: function () { return Marquee_1.Marquee; } });
24
+ var AnimatedCounter_1 = require("./AnimatedCounter");
25
+ Object.defineProperty(exports, "AnimatedCounter", { enumerable: true, get: function () { return AnimatedCounter_1.AnimatedCounter; } });
21
26
  var useReducedMotion_1 = require("../primitives/internal/useReducedMotion");
22
27
  Object.defineProperty(exports, "useReducedMotion", { enumerable: true, get: function () { return useReducedMotion_1.useReducedMotion; } });
23
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/native/motion/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAEf,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAEhB,4EAA2E;AAAlE,oHAAA,gBAAgB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/native/motion/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAEH,mCAAkC;AAAzB,gGAAA,MAAM,OAAA;AAEf,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAEhB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAEhB,qDAAoD;AAA3C,kHAAA,eAAe,OAAA;AAExB,4EAA2E;AAAlE,oHAAA,gBAAgB,OAAA"}
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ import { type StyleProp, type ViewStyle } from 'react-native';
3
+ export type WordmarkSize = 'sm' | 'md' | 'lg';
4
+ export interface WordmarkProps {
5
+ /** Brand name rendered bold in the heading weight. */
6
+ name: string;
7
+ /**
8
+ * Leading logomark slot. Omit for the default themed token square; pass a
9
+ * node to override, or `null` to render the name alone.
10
+ */
11
+ mark?: React.ReactNode;
12
+ /** Type + mark scale (default `md`). */
13
+ size?: WordmarkSize;
14
+ /** When set, the wordmark becomes pressable (the native swap for `as="a"`). */
15
+ onPress?: () => void;
16
+ style?: StyleProp<ViewStyle>;
17
+ }
18
+ /**
19
+ * Themed brand wordmark — the native mirror of the web `Wordmark`. A token
20
+ * logomark square (primary, rounded) plus the name in bold `onSurface`. Native
21
+ * headings convey the heading font via weight (no `fontFamily`), matching every
22
+ * other native marketing/primitive component. Pass `onPress` to make it a
23
+ * tappable header brand; omit for a static label. Token-only — no literal
24
+ * colors.
25
+ */
26
+ export declare function Wordmark({ name, mark, size, onPress, style, }: WordmarkProps): React.ReactElement;
27
+ //# sourceMappingURL=Wordmark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Wordmark.d.ts","sourceRoot":"","sources":["../../../src/native/primitives/Wordmark.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAyB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAGrF,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9C,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,wCAAwC;IACxC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AASD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,IAAI,EACJ,IAAW,EACX,OAAO,EACP,KAAK,GACN,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CAuCpC"}