@coinbase/cds-mobile 8.46.1 → 8.47.1

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.
package/CHANGELOG.md CHANGED
@@ -8,6 +8,18 @@ All notable changes to this project will be documented in this file.
8
8
 
9
9
  <!-- template-start -->
10
10
 
11
+ ## 8.47.1 (2/19/2026 PST)
12
+
13
+ #### 🐞 Fixes
14
+
15
+ - Fix Tray title spacing and overflow. [[#414](https://github.com/coinbase/cds/pull/414)]
16
+
17
+ ## 8.47.0 (2/19/2026 PST)
18
+
19
+ #### 🚀 Updates
20
+
21
+ - Feat: enable Button text customization via font props. [[#408](https://github.com/coinbase/cds/pull/408)]
22
+
11
23
  ## 8.46.1 (2/12/2026 PST)
12
24
 
13
25
  #### 🐞 Fixes
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/buttons/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiE,MAAM,OAAO,CAAC;AACtF,OAAO,EAIL,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,wBAAwB,EACxB,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAejB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,WAAW,GACvC,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,GACpD,kBAAkB,GAAG;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,yBAAyB;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,iDAAiD;IACjD,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uBAAuB;IACvB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEJ,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AAE1C,eAAO,MAAM,MAAM;;;;;;;;;IA/Cf;;;OAGG;cACO,aAAa;IACvB,mCAAmC;eACxB,OAAO;IAClB,wDAAwD;cAC9C,OAAO;IACjB,2EAA2E;kBAC7D,OAAO;IACrB,0DAA0D;YAClD,OAAO;IACf,yDAAyD;cAC/C,OAAO;IACjB,4CAA4C;cAClC,KAAK,CAAC,SAAS;IACzB,yBAAyB;YACjB,KAAK,CAAC,SAAS;IACvB,iDAAiD;gBACrC,QAAQ;IACpB,uCAAuC;sBACrB,OAAO;IACzB,uBAAuB;UACjB,KAAK,CAAC,SAAS;IACrB,+CAA+C;cACrC,QAAQ;IAClB,qCAAqC;oBACrB,OAAO;IACvB;;;OAGG;YACK,OAAO,GAAG,KAAK;IACvB,kDAAkD;WAC3C,MAAM;IACb,oCAAoC;qBACnB,OAAO;IACxB;;;OAGG;oBACa,MAAM;+BAsJzB,CAAC"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/buttons/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiE,MAAM,OAAO,CAAC;AACtF,OAAO,EAIL,KAAK,IAAI,EACV,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACR,wBAAwB,EACxB,WAAW,EACZ,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAejB,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,WAAW,GACvC,IAAI,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,GACpD,kBAAkB,GAAG;IACnB;;;OAGG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,yBAAyB;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,iDAAiD;IACjD,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,uBAAuB;IACvB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,qCAAqC;IACrC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEJ,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC;AAE1C,eAAO,MAAM,MAAM;;;;;;;;;IA/Cf;;;OAGG;cACO,aAAa;IACvB,mCAAmC;eACxB,OAAO;IAClB,wDAAwD;cAC9C,OAAO;IACjB,2EAA2E;kBAC7D,OAAO;IACrB,0DAA0D;YAClD,OAAO;IACf,yDAAyD;cAC/C,OAAO;IACjB,4CAA4C;cAClC,KAAK,CAAC,SAAS;IACzB,yBAAyB;YACjB,KAAK,CAAC,SAAS;IACvB,iDAAiD;gBACrC,QAAQ;IACpB,uCAAuC;sBACrB,OAAO;IACzB,uBAAuB;UACjB,KAAK,CAAC,SAAS;IACrB,+CAA+C;cACrC,QAAQ;IAClB,qCAAqC;oBACrB,OAAO;IACvB;;;OAGG;YACK,OAAO,GAAG,KAAK;IACvB,kDAAkD;WAC3C,MAAM;IACb,oCAAoC;qBACnB,OAAO;IACxB;;;OAGG;oBACa,MAAM;+BAgKzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/overlays/drawer/Drawer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/overlays/drawer/Drawer.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tray.d.ts","sourceRoot":"","sources":["../../../src/overlays/tray/Tray.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAqB,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAM5D,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,EAAE,CAAC;IAAE,WAAW,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG;IACtE,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,kBAAkB,CAAC;IAChD,6CAA6C;IAC7C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,kBAAkB,CAAC;IAC9C;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,6CAA6C;IAC7C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,kBAAkB,CAAC;IAC9C;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC;IAC7D,gDAAgD;IAChD,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,aAAa,GACnC,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG;IACtC,GAAG,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG;QAC/B,2BAA2B;QAC3B,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,6BAA6B;QAC7B,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,yBAAyB;QACzB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KAC9B,CAAC;CACH,CAAC;AAEJ,eAAO,MAAM,WAAW;oCACU,MAAM;iBACzB,MAAM;EAInB,CAAC;AAEH,eAAO,MAAM,IAAI;IA1Cf,8CAA8C;eACnC,KAAK,CAAC,SAAS,GAAG,kBAAkB;IAC/C,6CAA6C;aACpC,KAAK,CAAC,SAAS,GAAG,kBAAkB;IAC7C;;;OAGG;sBACe,eAAe;IACjC,6CAA6C;aACpC,KAAK,CAAC,SAAS,GAAG,kBAAkB;IAC7C;;;;OAIG;yBACkB,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,KAAK,IAAI;IAC5D,gDAAgD;YACxC,KAAK,CAAC,SAAS;;UAKf,WAAW,CAAC,KAAK,CAAC;aACf,WAAW,CAAC,QAAQ,CAAC,GAAG;QAC/B,2BAA2B;QAC3B,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,6BAA6B;QAC7B,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,yBAAyB;QACzB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KAC9B;6CAmIJ,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CAQrE,CAAC"}
1
+ {"version":3,"file":"Tray.d.ts","sourceRoot":"","sources":["../../../src/overlays/tray/Tray.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAqB,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAM5D,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACxB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,EAAE,CAAC;IAAE,WAAW,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG;IACtE,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,kBAAkB,CAAC;IAChD,6CAA6C;IAC7C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,kBAAkB,CAAC;IAC9C;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,6CAA6C;IAC7C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,kBAAkB,CAAC;IAC9C;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC;IAC7D,gDAAgD;IAChD,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,aAAa,GACnC,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG;IACtC,GAAG,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG;QAC/B,2BAA2B;QAC3B,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,6BAA6B;QAC7B,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,yBAAyB;QACzB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KAC9B,CAAC;CACH,CAAC;AAEJ,eAAO,MAAM,WAAW;oCACU,MAAM;iBACzB,MAAM;EAInB,CAAC;AAEH,eAAO,MAAM,IAAI;IA1Cf,8CAA8C;eACnC,KAAK,CAAC,SAAS,GAAG,kBAAkB;IAC/C,6CAA6C;aACpC,KAAK,CAAC,SAAS,GAAG,kBAAkB;IAC7C;;;OAGG;sBACe,eAAe;IACjC,6CAA6C;aACpC,KAAK,CAAC,SAAS,GAAG,kBAAkB;IAC7C;;;;OAIG;yBACkB,CAAC,OAAO,EAAE,SAAS,GAAG,QAAQ,KAAK,IAAI;IAC5D,gDAAgD;YACxC,KAAK,CAAC,SAAS;;UAKf,WAAW,CAAC,KAAK,CAAC;aACf,WAAW,CAAC,QAAQ,CAAC,GAAG;QAC/B,2BAA2B;QAC3B,OAAO,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC/B,6BAA6B;QAC7B,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,yBAAyB;QACzB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;KAC9B;6CAqIJ,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,cAAc;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,4CAQrE,CAAC"}
@@ -1,4 +1,4 @@
1
- const _excluded = ["variant", "loading", "transparent", "block", "compact", "children", "start", "startIcon", "startIconActive", "end", "endIcon", "endIconActive", "flush", "noScaleOnPress", "numberOfLines", "background", "color", "style", "wrapperStyles", "feedback", "borderColor", "borderWidth", "borderRadius", "accessibilityLabel", "accessibilityHint"];
1
+ const _excluded = ["variant", "loading", "transparent", "block", "compact", "children", "start", "startIcon", "startIconActive", "end", "endIcon", "endIconActive", "flush", "noScaleOnPress", "numberOfLines", "font", "fontFamily", "fontSize", "fontWeight", "lineHeight", "background", "color", "style", "wrapperStyles", "feedback", "borderColor", "borderWidth", "borderRadius", "accessibilityLabel", "accessibilityHint"];
2
2
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
3
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
4
4
  import React, { forwardRef, isValidElement, memo, useCallback, useMemo } from 'react';
@@ -45,6 +45,11 @@ export const Button = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Button(
45
45
  flush,
46
46
  noScaleOnPress,
47
47
  numberOfLines = 1,
48
+ font = 'headline',
49
+ fontFamily,
50
+ fontSize,
51
+ fontWeight,
52
+ lineHeight,
48
53
  background,
49
54
  color,
50
55
  style,
@@ -81,13 +86,17 @@ export const Button = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Button(
81
86
  const childrenNode = useMemo(() => /*#__PURE__*/isValidElement(children) && Boolean(children.props.children) ? children : /*#__PURE__*/_jsx(Text, {
82
87
  align: "center",
83
88
  color: colorValue,
84
- font: "headline",
89
+ font: font,
90
+ fontFamily: fontFamily,
91
+ fontSize: fontSize,
92
+ fontWeight: fontWeight,
93
+ lineHeight: lineHeight,
85
94
  numberOfLines: numberOfLines,
86
95
  selectable: false,
87
96
  style: styles.text,
88
97
  testID: "text-headline",
89
98
  children: children
90
- }), [children, colorValue, numberOfLines]);
99
+ }), [children, colorValue, font, fontFamily, fontSize, fontWeight, lineHeight, numberOfLines]);
91
100
  return /*#__PURE__*/_jsx(Pressable, _extends({
92
101
  ref: ref,
93
102
  accessibilityHint: loading ? 'Button is loading' : accessibilityHint,
@@ -121,6 +121,25 @@ const ButtonScreen = () => {
121
121
  children: /*#__PURE__*/_jsx(Button, {
122
122
  children: "Some really really really long button text that should get truncated after wrapping two lines"
123
123
  })
124
+ }), /*#__PURE__*/_jsx(Example, {
125
+ title: "Typography props",
126
+ children: /*#__PURE__*/_jsxs(VStack, {
127
+ alignItems: "flex-start",
128
+ gap: 2,
129
+ children: [/*#__PURE__*/_jsx(Button, {
130
+ children: "I am a headline button"
131
+ }), /*#__PURE__*/_jsx(Button, {
132
+ font: "body",
133
+ children: "I am a body button"
134
+ }), /*#__PURE__*/_jsx(Button, {
135
+ font: "title3",
136
+ children: "I am a title3 button"
137
+ }), /*#__PURE__*/_jsx(Button, {
138
+ fontSize: "title3",
139
+ fontWeight: "body",
140
+ children: "I have custom fontSize & fontWeight"
141
+ })]
142
+ })
124
143
  }), /*#__PURE__*/_jsx(Example, {
125
144
  title: "Custom endIcon on Button",
126
145
  children: /*#__PURE__*/_jsx(VStack, {
@@ -2,14 +2,36 @@ import { Carousel, CarouselItem } from '@coinbase/cds-mobile/carousel';
2
2
  import figma from '@figma/code-connect/react';
3
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  figma.connect(Carousel, 'https://www.figma.com/design/k5CtyJccNQUGMI5bI4lJ2g/%E2%9C%A8-CDS-Components?node-id=48671-10433', {
5
+ variant: {
6
+ platform: 'mobile'
7
+ },
5
8
  imports: ["import { Carousel, CarouselItem } from '@coinbase/cds-mobile/carousel'"],
6
- example: () => /*#__PURE__*/_jsxs(Carousel, {
7
- children: [/*#__PURE__*/_jsx(CarouselItem, {
8
- id: "1"
9
- }), /*#__PURE__*/_jsx(CarouselItem, {
10
- id: "2"
11
- }), /*#__PURE__*/_jsx(CarouselItem, {
12
- id: "3"
13
- })]
14
- })
9
+ props: {
10
+ title: figma.boolean('show header', {
11
+ true: figma.string('title'),
12
+ false: undefined
13
+ }),
14
+ hidePagination: figma.boolean('show pagination', {
15
+ true: undefined,
16
+ false: true
17
+ })
18
+ },
19
+ example: _ref => {
20
+ let {
21
+ title,
22
+ hidePagination
23
+ } = _ref;
24
+ return /*#__PURE__*/_jsxs(Carousel, {
25
+ hidePagination: hidePagination,
26
+ paginationVariant: "dot",
27
+ title: title,
28
+ children: [/*#__PURE__*/_jsx(CarouselItem, {
29
+ id: "1"
30
+ }), /*#__PURE__*/_jsx(CarouselItem, {
31
+ id: "2"
32
+ }), /*#__PURE__*/_jsx(CarouselItem, {
33
+ id: "3"
34
+ })]
35
+ });
36
+ }
15
37
  });
@@ -1,10 +1,22 @@
1
- import React, { useCallback, useRef, useState } from 'react';
1
+ const _excluded = ["key"];
2
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
4
+ import React, { memo, useCallback, useRef, useState } from 'react';
5
+ import { Platform } from 'react-native';
6
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
2
7
  import { Button } from '../../buttons/Button';
8
+ import { ListCell } from '../../cells/ListCell';
3
9
  import { Example, ExampleScreen } from '../../examples/ExampleScreen';
10
+ import { useDimensions } from '../../hooks/useDimensions';
11
+ import { Icon } from '../../icons';
4
12
  import { SpotRectangle } from '../../illustrations';
5
- import { Box, VStack } from '../../layout';
13
+ import { Box, HStack, VStack } from '../../layout';
6
14
  import { StickyFooter } from '../../sticky-footer/StickyFooter';
15
+ import { ThemeProvider } from '../../system/ThemeProvider';
16
+ import { defaultTheme } from '../../themes/defaultTheme';
7
17
  import { Text } from '../../typography/Text';
18
+ import { TextBody } from '../../typography/TextBody';
19
+ import { TextTitle1 } from '../../typography/TextTitle1';
8
20
  import { Tray, TrayStickyFooter } from '../tray/Tray';
9
21
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
22
  export const Default = () => {
@@ -64,11 +76,240 @@ export const Default = () => {
64
76
  });
65
77
  };
66
78
  export const PromotionalTrayScreen = () => {
67
- return /*#__PURE__*/_jsx(ExampleScreen, {
68
- children: /*#__PURE__*/_jsx(Example, {
79
+ return /*#__PURE__*/_jsxs(ExampleScreen, {
80
+ children: [/*#__PURE__*/_jsx(Example, {
69
81
  title: "Promotional Tray",
70
82
  children: /*#__PURE__*/_jsx(Default, {})
71
- })
83
+ }), /*#__PURE__*/_jsx(Example, {
84
+ title: "Credit Card Add Assets Tray",
85
+ children: /*#__PURE__*/_jsx(CreditCardAddAssetsTrayExample, {})
86
+ }), /*#__PURE__*/_jsx(Example, {
87
+ title: "Product Upsell Tray",
88
+ children: /*#__PURE__*/_jsx(ProductUpsellTrayExample, {})
89
+ })]
90
+ });
91
+ };
92
+ const quickActions = [{
93
+ name: 'buy',
94
+ title: 'Buy',
95
+ description: 'Buy crypto with cash'
96
+ }, {
97
+ name: 'transfer',
98
+ title: 'Deposit',
99
+ description: 'Transfer funds from your bank'
100
+ }, {
101
+ name: 'receive',
102
+ title: 'Receive crypto',
103
+ description: 'From another crypto wallet'
104
+ }];
105
+ const CreditCardAddAssetsTrayExample = () => {
106
+ const [isTrayVisible, setIsTrayVisible] = useState(false);
107
+ const [trayContentType, setTrayContentType] = useState('addFundsInfo');
108
+ const setIsTrayVisibleOff = useCallback(() => {
109
+ setTrayContentType('addFundsInfo');
110
+ setIsTrayVisible(false);
111
+ }, []);
112
+ const setIsTrayVisibleOn = useCallback(() => setIsTrayVisible(true), []);
113
+ const handleCTAPress = useCallback(() => {
114
+ setTrayContentType('addAssets');
115
+ }, []);
116
+ return /*#__PURE__*/_jsxs(_Fragment, {
117
+ children: [/*#__PURE__*/_jsx(Button, {
118
+ onPress: setIsTrayVisibleOn,
119
+ children: "Open"
120
+ }), isTrayVisible && /*#__PURE__*/_jsx(Tray, {
121
+ handleBarAccessibilityLabel: "Information about rewards details",
122
+ onCloseComplete: setIsTrayVisibleOff,
123
+ title: trayContentType === 'addFundsInfo' ? /*#__PURE__*/_jsx(VStack, {
124
+ gap: 0.5,
125
+ paddingTop: 3,
126
+ paddingX: 3,
127
+ children: /*#__PURE__*/_jsx(Text, {
128
+ font: "title3",
129
+ children: "Lifetime rewards details"
130
+ })
131
+ }) : null,
132
+ children: trayContentType === 'addFundsInfo' ? /*#__PURE__*/_jsxs(VStack, {
133
+ paddingX: 3,
134
+ children: [/*#__PURE__*/_jsx(Text, {
135
+ font: "body",
136
+ children: "Here's a breakdown of your lifetime rewards earned through your Coinbase Card purchases and transactions."
137
+ }), /*#__PURE__*/_jsx(VStack, {
138
+ paddingTop: 3,
139
+ children: /*#__PURE__*/_jsx(Button, {
140
+ block: true,
141
+ onPress: handleCTAPress,
142
+ children: "Got it"
143
+ })
144
+ })]
145
+ }) : /*#__PURE__*/_jsx(VStack, {
146
+ children: quickActions.map(action => /*#__PURE__*/_jsx(ListCell, {
147
+ accessory: "arrow",
148
+ description: action.description,
149
+ onPress: () => alert(action.title + " pressed"),
150
+ spacingVariant: "condensed",
151
+ title: action.title
152
+ }, action.name))
153
+ })
154
+ })]
155
+ });
156
+ };
157
+ const TOP_TRAY_OFFSET = 20;
158
+ const SAFE_AREA_OVERFLOW_MULTIPLIER = 2;
159
+ const BACKGROUND_COLOR = '#011C92';
160
+ const UPSELL_BENEFITS = [{
161
+ key: '1',
162
+ icon: 'cash',
163
+ text: 'Earn rewards on every purchase'
164
+ }, {
165
+ key: '2',
166
+ icon: 'lock',
167
+ text: 'No annual fee, ever'
168
+ }, {
169
+ key: '3',
170
+ icon: 'star',
171
+ text: 'Instant cashback in crypto'
172
+ }];
173
+ const UpsellBenefitPoint = /*#__PURE__*/memo(function UpsellBenefitPoint(_ref2) {
174
+ let {
175
+ icon,
176
+ text
177
+ } = _ref2;
178
+ return /*#__PURE__*/_jsxs(HStack, {
179
+ gap: 2,
180
+ children: [/*#__PURE__*/_jsx(Icon, {
181
+ color: "fg",
182
+ name: icon,
183
+ paddingTop: 0.5,
184
+ size: "s"
185
+ }), /*#__PURE__*/_jsx(Box, {
186
+ maxWidth: "90%",
187
+ children: /*#__PURE__*/_jsx(TextBody, {
188
+ color: "fg",
189
+ children: text
190
+ })
191
+ })]
192
+ });
193
+ });
194
+ const ProductUpsellTrayExample = () => {
195
+ const [isTrayVisible, setIsTrayVisible] = useState(false);
196
+ const setIsTrayVisibleOff = useCallback(() => setIsTrayVisible(false), []);
197
+ const setIsTrayVisibleOn = useCallback(() => setIsTrayVisible(true), []);
198
+ return /*#__PURE__*/_jsxs(_Fragment, {
199
+ children: [/*#__PURE__*/_jsx(Button, {
200
+ onPress: setIsTrayVisibleOn,
201
+ children: "Open"
202
+ }), isTrayVisible && /*#__PURE__*/_jsx(Tray, {
203
+ handleBarAccessibilityLabel: "Product upsell details",
204
+ onCloseComplete: setIsTrayVisibleOff,
205
+ verticalDrawerPercentageOfView: 0.95,
206
+ children: _ref3 => {
207
+ let {
208
+ handleClose
209
+ } = _ref3;
210
+ return /*#__PURE__*/_jsx(ProductUpsellTrayContent, {
211
+ benefits: UPSELL_BENEFITS,
212
+ dismiss: handleClose
213
+ });
214
+ }
215
+ })]
72
216
  });
73
217
  };
218
+ const ProductUpsellTrayContent = /*#__PURE__*/memo(function ProductUpsellTrayContent(_ref4) {
219
+ let {
220
+ benefits,
221
+ dismiss
222
+ } = _ref4;
223
+ const {
224
+ screenWidth
225
+ } = useDimensions();
226
+ const insets = useSafeAreaInsets();
227
+ const bottom = Platform.OS === 'android' ? Math.max(insets.bottom, 24) : insets.bottom;
228
+ const handlePrimaryCtaPress = useCallback(() => {
229
+ alert('Primary CTA pressed');
230
+ dismiss();
231
+ }, [dismiss]);
232
+ return /*#__PURE__*/_jsx(ThemeProvider, {
233
+ activeColorScheme: "dark",
234
+ theme: defaultTheme,
235
+ children: /*#__PURE__*/_jsxs(VStack, {
236
+ position: "relative",
237
+ children: [/*#__PURE__*/_jsx(Box, {
238
+ bottom: -bottom * SAFE_AREA_OVERFLOW_MULTIPLIER,
239
+ dangerouslySetBackground: BACKGROUND_COLOR,
240
+ height: bottom * SAFE_AREA_OVERFLOW_MULTIPLIER,
241
+ left: 0,
242
+ position: "absolute",
243
+ right: 0,
244
+ width: "100%"
245
+ }), /*#__PURE__*/_jsx(Box, {
246
+ dangerouslySetBackground: BACKGROUND_COLOR,
247
+ height: TOP_TRAY_OFFSET,
248
+ left: 0,
249
+ position: "absolute",
250
+ right: 0,
251
+ top: -TOP_TRAY_OFFSET
252
+ }), /*#__PURE__*/_jsxs(VStack, {
253
+ dangerouslySetBackground: BACKGROUND_COLOR,
254
+ gap: 4,
255
+ paddingTop: 5,
256
+ paddingX: 3,
257
+ children: [/*#__PURE__*/_jsx(Box, {
258
+ alignItems: "center",
259
+ justifyContent: "center",
260
+ children: /*#__PURE__*/_jsx(SpotRectangle, {
261
+ name: "creditCardExcitement"
262
+ })
263
+ }), /*#__PURE__*/_jsxs(VStack, {
264
+ children: [/*#__PURE__*/_jsxs(VStack, {
265
+ gap: 1,
266
+ paddingBottom: 2,
267
+ children: [/*#__PURE__*/_jsx(TextTitle1, {
268
+ align: "center",
269
+ color: "fg",
270
+ children: "Upgrade your experience"
271
+ }), /*#__PURE__*/_jsx(TextBody, {
272
+ align: "center",
273
+ color: "fg",
274
+ children: "Unlock premium features and earn more rewards."
275
+ })]
276
+ }), /*#__PURE__*/_jsx(VStack, {
277
+ gap: 3,
278
+ paddingY: 1,
279
+ children: benefits.map(_ref5 => {
280
+ let {
281
+ key
282
+ } = _ref5,
283
+ benefit = _objectWithoutPropertiesLoose(_ref5, _excluded);
284
+ return /*#__PURE__*/_jsx(UpsellBenefitPoint, _extends({}, benefit), key);
285
+ })
286
+ }), /*#__PURE__*/_jsxs(VStack, {
287
+ paddingTop: 4,
288
+ children: [/*#__PURE__*/_jsx(Button, {
289
+ block: true,
290
+ onPress: handlePrimaryCtaPress,
291
+ children: "Get started"
292
+ }), /*#__PURE__*/_jsx(Box, {
293
+ paddingTop: 1,
294
+ children: /*#__PURE__*/_jsx(Button, {
295
+ block: true,
296
+ onPress: dismiss,
297
+ variant: "secondary",
298
+ children: "Maybe later"
299
+ })
300
+ }), /*#__PURE__*/_jsx(Box, {
301
+ opacity: 0.6,
302
+ paddingTop: 2,
303
+ children: /*#__PURE__*/_jsx(TextBody, {
304
+ align: "center",
305
+ color: "fgMuted",
306
+ children: "By continuing, you agree to the terms and conditions. Rewards are subject to eligibility requirements."
307
+ })
308
+ })]
309
+ })]
310
+ })]
311
+ })]
312
+ })
313
+ });
314
+ });
74
315
  export default PromotionalTrayScreen;
@@ -148,8 +148,8 @@ export const Drawer = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Drawer(
148
148
  const rootStyle = useMemo(() => [style, styles == null ? void 0 : styles.root], [style, styles == null ? void 0 : styles.root]);
149
149
  const containerStyle = useMemo(() => [drawerAnimationStyles, styles == null ? void 0 : styles.container], [drawerAnimationStyles, styles == null ? void 0 : styles.container]);
150
150
  const drawerStyle = useMemo(() => [paddingStyles, {
151
- overflow: showHandleBarOutside ? 'visible' : 'hidden'
152
- }, styles == null ? void 0 : styles.drawer], [paddingStyles, showHandleBarOutside, styles == null ? void 0 : styles.drawer]);
151
+ overflow: 'hidden'
152
+ }, styles == null ? void 0 : styles.drawer], [paddingStyles, styles == null ? void 0 : styles.drawer]);
153
153
  const handleBar = useMemo(() => /*#__PURE__*/_jsx(HandleBar, {
154
154
  accessibilityLabel: handleBarAccessibilityLabel,
155
155
  accessibilityRole: "button",
@@ -197,10 +197,10 @@ export const Drawer = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Drawer(
197
197
  elevation: 2,
198
198
  maxHeight: !isSideDrawer ? verticalDrawerMaxHeight : '100%',
199
199
  style: drawerStyle,
200
- children: [showHandleBarInside && handleBar, /*#__PURE__*/_jsx(View, {
200
+ children: [showHandleBarInside && handleBar, showHandleBarInside ? /*#__PURE__*/_jsx(View, {
201
201
  style: overflowStyle,
202
202
  children: content
203
- })]
203
+ }) : content]
204
204
  })]
205
205
  }))]
206
206
  })
@@ -29,6 +29,7 @@ export const Tray = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Tray(_ref
29
29
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
30
30
  const [titleHeight, setTitleHeight] = useState(0);
31
31
  const isInsideHandleBar = handleBarVariant === 'inside';
32
+ const isTitleString = typeof title === 'string';
32
33
  const {
33
34
  contentStyle,
34
35
  headerStyle,
@@ -78,10 +79,10 @@ export const Tray = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Tray(_ref
78
79
  children: [title && /*#__PURE__*/_jsx(Box, {
79
80
  justifyContent: "center",
80
81
  onLayout: onTitleLayout,
81
- paddingBottom: isInsideHandleBar ? 0.75 : 2,
82
- paddingTop: isInsideHandleBar ? 0 : 3,
83
- paddingX: 3,
84
- children: typeof title === 'string' ? /*#__PURE__*/_jsx(Text, {
82
+ paddingBottom: isInsideHandleBar ? 0.75 : isTitleString ? 2 : 0,
83
+ paddingTop: isInsideHandleBar ? 0 : isTitleString ? 3 : 0,
84
+ paddingX: isInsideHandleBar || isTitleString ? 3 : 0,
85
+ children: isTitleString ? /*#__PURE__*/_jsx(Text, {
85
86
  font: "title3",
86
87
  style: titleStyle,
87
88
  children: title
@@ -95,7 +96,7 @@ export const Tray = /*#__PURE__*/memo(/*#__PURE__*/forwardRef(function Tray(_ref
95
96
  children: content
96
97
  }), footerContent]
97
98
  });
98
- }, [title, contentStyle, onTitleLayout, isInsideHandleBar, headerElevation, headerStyle, titleStyle, header, children, footer]);
99
+ }, [title, isTitleString, contentStyle, onTitleLayout, isInsideHandleBar, headerElevation, headerStyle, titleStyle, header, children, footer]);
99
100
  useEffect(() => {
100
101
  onVisibilityChange == null || onVisibilityChange('visible');
101
102
  return () => {
@@ -1,47 +1,52 @@
1
- import { useRef, useState } from 'react';
1
+ import React, { useState } from 'react';
2
2
  import { figma } from '@figma/code-connect';
3
3
  import { Button } from '../../../buttons/Button';
4
4
  import { Box, VStack } from '../../../layout';
5
- import { TextBody, TextTitle1 } from '../../../typography';
6
- import { Tray, TrayStickyFooter } from '../Tray';
7
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
5
+ import { StickyFooter } from '../../../sticky-footer/StickyFooter';
6
+ import { Text } from '../../../typography/Text';
7
+ import { Tray } from '../Tray';
8
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
8
9
  figma.connect(Tray, 'https://www.figma.com/design/k5CtyJccNQUGMI5bI4lJ2g/✨-CDS-Components?node-id=14729-33327&m=dev', {
9
- imports: ["import { Tray } from '@coinbase/cds-mobile/overlays/tray/Tray'"],
10
+ imports: ["import { Tray } from '@coinbase/cds-mobile/overlays/tray/Tray'", "import { StickyFooter } from '@coinbase/cds-mobile/sticky-footer/StickyFooter'"],
10
11
  props: {
11
12
  title: figma.boolean('show section header', {
12
13
  true: figma.textContent('SectionHeader'),
13
14
  false: undefined
14
15
  }),
15
- stickyFooter: figma.children('StickyFooter'),
16
16
  content: figma.children('.Select Option*')
17
17
  },
18
18
  example: function TrayExample(_ref) {
19
19
  let {
20
- stickyFooter,
21
20
  content,
22
21
  title
23
22
  } = _ref;
24
23
  const [isTrayVisible, setIsTrayVisible] = useState(false);
25
- const trayRef = useRef(null);
26
24
  return /*#__PURE__*/_jsxs(_Fragment, {
27
25
  children: [/*#__PURE__*/_jsx(Button, {
28
26
  onPress: () => setIsTrayVisible(true),
29
- children: "Open"
27
+ children: "Open Tray"
30
28
  }), isTrayVisible && /*#__PURE__*/_jsx(Tray, {
31
- ref: trayRef,
32
- disableCapturePanGestureToDismiss: true,
33
- handleBarAccessibilityLabel: "Dismiss",
34
- onCloseComplete: () => setIsTrayVisible(false),
35
- onVisibilityChange: () => {},
36
- title: title,
37
- children: _ref2 => {
29
+ footer: _ref2 => {
38
30
  let {
39
31
  handleClose
40
32
  } = _ref2;
41
- return /*#__PURE__*/_jsxs(TrayStickyFooter, {
42
- children: [content, stickyFooter]
33
+ return /*#__PURE__*/_jsx(StickyFooter, {
34
+ background: "bgElevation2",
35
+ paddingX: 3,
36
+ children: /*#__PURE__*/_jsx(Button, {
37
+ block: true,
38
+ onPress: handleClose,
39
+ children: "Close"
40
+ })
43
41
  });
44
- }
42
+ },
43
+ handleBarVariant: "inside",
44
+ onCloseComplete: () => setIsTrayVisible(false),
45
+ title: title,
46
+ children: /*#__PURE__*/_jsx(VStack, {
47
+ paddingX: 3,
48
+ children: content
49
+ })
45
50
  })]
46
51
  });
47
52
  }
@@ -53,95 +58,97 @@ figma.connect(Tray, 'https://www.figma.com/design/k5CtyJccNQUGMI5bI4lJ2g/✨-CDS
53
58
  true: figma.children('Spot Square/blockchain'),
54
59
  false: undefined
55
60
  }),
56
- title: figma.textContent('SectionHeader'),
57
- stickyFooter: figma.children('StickyFooter')
61
+ sectionTitle: figma.textContent('SectionHeader')
58
62
  },
59
63
  example: function TrayExample(_ref3) {
60
64
  let {
61
65
  pictogram,
62
- title,
63
- stickyFooter
66
+ sectionTitle
64
67
  } = _ref3;
65
68
  const [isTrayVisible, setIsTrayVisible] = useState(false);
66
- const trayRef = useRef(null);
67
69
  return /*#__PURE__*/_jsxs(_Fragment, {
68
70
  children: [/*#__PURE__*/_jsx(Button, {
69
71
  onPress: () => setIsTrayVisible(true),
70
- children: "Open"
72
+ children: "Open Tray"
71
73
  }), isTrayVisible && /*#__PURE__*/_jsx(Tray, {
72
- ref: trayRef,
73
- disableCapturePanGestureToDismiss: true,
74
- handleBarAccessibilityLabel: "Dismiss",
74
+ accessibilityLabel: sectionTitle,
75
+ handleBarVariant: "inside",
75
76
  onCloseComplete: () => setIsTrayVisible(false),
76
- onVisibilityChange: () => {},
77
- title: title,
78
- children: _ref4 => {
79
- let {
80
- handleClose
81
- } = _ref4;
82
- return /*#__PURE__*/_jsxs(TrayStickyFooter, {
83
- children: [pictogram, /*#__PURE__*/_jsx(TextBody, {
84
- children: "Lorem ipsum dolor sit amet consectetur. Lacus vitae vulputate maecenas sed ac cursus enim elementum euismod. Ac vulputate gravida mauris id nulla imperdiet eget. Dictum vitae enim eget ut. Maecenas hendrerit amet integer sagittis cras. Fermentum ultricies malesuada interdum"
85
- }), stickyFooter]
86
- });
87
- }
77
+ title: /*#__PURE__*/_jsxs(VStack, {
78
+ gap: 1.5,
79
+ children: [pictogram, /*#__PURE__*/_jsx(Text, {
80
+ font: "title3",
81
+ children: sectionTitle
82
+ })]
83
+ }),
84
+ children: /*#__PURE__*/_jsx(VStack, {
85
+ paddingX: 3,
86
+ children: /*#__PURE__*/_jsx(Text, {
87
+ color: "fgMuted",
88
+ font: "body",
89
+ paddingBottom: 2,
90
+ children: "Content goes here."
91
+ })
92
+ })
88
93
  })]
89
94
  });
90
95
  }
91
96
  });
92
97
  figma.connect(Tray, 'https://www.figma.com/design/k5CtyJccNQUGMI5bI4lJ2g/✨-CDS-Components?node-id=14729-33505&m=dev', {
93
- imports: ["import { Tray } from '@coinbase/cds-mobile/overlays/tray/Tray'"],
98
+ imports: ["import { Tray } from '@coinbase/cds-mobile/overlays/tray/Tray'", "import { StickyFooter } from '@coinbase/cds-mobile/sticky-footer/StickyFooter'"],
94
99
  props: {
95
100
  spotRectangle: figma.instance('spot rectangle'),
96
101
  title: figma.string('title'),
97
- body: figma.string('body'),
98
- stickyFooter: figma.children('StickyFooter')
102
+ body: figma.string('body')
99
103
  },
100
- example: function TrayExample(_ref5) {
104
+ example: function TrayExample(_ref4) {
101
105
  let {
102
106
  spotRectangle,
103
107
  title,
104
- body,
105
- stickyFooter
106
- } = _ref5;
108
+ body
109
+ } = _ref4;
107
110
  const [isTrayVisible, setIsTrayVisible] = useState(false);
108
- const trayRef = useRef(null);
109
111
  return /*#__PURE__*/_jsxs(_Fragment, {
110
112
  children: [/*#__PURE__*/_jsx(Button, {
111
113
  onPress: () => setIsTrayVisible(true),
112
- children: "Open"
114
+ children: "Open Tray"
113
115
  }), isTrayVisible && /*#__PURE__*/_jsx(Tray, {
114
- ref: trayRef,
115
- disableCapturePanGestureToDismiss: true,
116
- handleBarAccessibilityLabel: "Dismiss",
117
- onCloseComplete: () => setIsTrayVisible(false),
118
- onVisibilityChange: () => {},
119
- children: _ref6 => {
116
+ accessibilityLabel: title,
117
+ footer: _ref5 => {
120
118
  let {
121
119
  handleClose
122
- } = _ref6;
123
- return /*#__PURE__*/_jsxs(TrayStickyFooter, {
124
- children: [/*#__PURE__*/_jsxs(VStack, {
125
- paddingBottom: 1,
126
- paddingTop: 1,
127
- paddingX: 3,
128
- children: [/*#__PURE__*/_jsx(Box, {
129
- alignItems: "center",
130
- paddingBottom: 3,
131
- children: spotRectangle
132
- }), /*#__PURE__*/_jsx(TextTitle1, {
133
- align: "center",
134
- paddingBottom: 2,
135
- children: title
136
- }), /*#__PURE__*/_jsx(TextBody, {
137
- align: "center",
138
- color: "fgMuted",
139
- paddingBottom: 2,
140
- children: body
141
- })]
142
- }), stickyFooter]
120
+ } = _ref5;
121
+ return /*#__PURE__*/_jsx(StickyFooter, {
122
+ background: "bgElevation2",
123
+ paddingX: 3,
124
+ children: /*#__PURE__*/_jsx(Button, {
125
+ block: true,
126
+ onPress: handleClose,
127
+ children: "Close"
128
+ })
143
129
  });
144
- }
130
+ },
131
+ handleBarVariant: "inside",
132
+ onCloseComplete: () => setIsTrayVisible(false),
133
+ children: /*#__PURE__*/_jsxs(VStack, {
134
+ paddingX: 3,
135
+ children: [/*#__PURE__*/_jsx(Box, {
136
+ alignItems: "center",
137
+ paddingBottom: 3,
138
+ children: spotRectangle
139
+ }), /*#__PURE__*/_jsx(Text, {
140
+ align: "center",
141
+ font: "title1",
142
+ paddingBottom: 2,
143
+ children: title
144
+ }), /*#__PURE__*/_jsx(Text, {
145
+ align: "center",
146
+ color: "fgMuted",
147
+ font: "body",
148
+ paddingBottom: 2,
149
+ children: body
150
+ })]
151
+ })
145
152
  })]
146
153
  });
147
154
  }
@@ -151,71 +158,65 @@ figma.connect(Tray, 'https://www.figma.com/design/k5CtyJccNQUGMI5bI4lJ2g/✨-CDS
151
158
  props: {
152
159
  children: figma.children('*')
153
160
  },
154
- example: function TrayExample(_ref7) {
161
+ example: function TrayExample(_ref6) {
155
162
  let {
156
163
  children
157
- } = _ref7;
164
+ } = _ref6;
158
165
  const [isTrayVisible, setIsTrayVisible] = useState(false);
159
- const trayRef = useRef(null);
160
166
  return /*#__PURE__*/_jsxs(_Fragment, {
161
167
  children: [/*#__PURE__*/_jsx(Button, {
162
168
  onPress: () => setIsTrayVisible(true),
163
- children: "Open"
169
+ children: "Open Tray"
164
170
  }), isTrayVisible && /*#__PURE__*/_jsx(Tray, {
165
- ref: trayRef,
166
- disableCapturePanGestureToDismiss: true,
167
- handleBarAccessibilityLabel: "Dismiss",
171
+ handleBarVariant: "inside",
168
172
  onCloseComplete: () => setIsTrayVisible(false),
169
- onVisibilityChange: () => {},
170
- children: _ref8 => {
171
- let {
172
- handleClose
173
- } = _ref8;
174
- return /*#__PURE__*/_jsx(TrayStickyFooter, {
175
- children: children
176
- });
177
- }
173
+ title: "Title",
174
+ children: children
178
175
  })]
179
176
  });
180
177
  }
181
178
  });
182
179
  figma.connect(Tray, 'https://www.figma.com/design/k5CtyJccNQUGMI5bI4lJ2g/✨-CDS-Components?node-id=14729-77780&m=dev', {
183
- imports: ["import { Tray } from '@coinbase/cds-mobile/overlays/tray/Tray'"],
180
+ imports: ["import { Tray } from '@coinbase/cds-mobile/overlays/tray/Tray'", "import { StickyFooter } from '@coinbase/cds-mobile/sticky-footer/StickyFooter'"],
184
181
  props: {
185
182
  content: figma.instance('content'),
186
- stickyFooter: figma.children('StickyFooter'),
187
183
  title: figma.boolean('show section header', {
188
184
  true: figma.textContent('SectionHeader'),
189
185
  false: undefined
190
186
  })
191
187
  },
192
- example: function TrayExample(_ref9) {
188
+ example: function TrayExample(_ref7) {
193
189
  let {
194
190
  content,
195
- stickyFooter,
196
191
  title
197
- } = _ref9;
192
+ } = _ref7;
198
193
  const [isTrayVisible, setIsTrayVisible] = useState(false);
199
- const trayRef = useRef(null);
200
194
  return /*#__PURE__*/_jsxs(_Fragment, {
201
195
  children: [/*#__PURE__*/_jsx(Button, {
202
196
  onPress: () => setIsTrayVisible(true),
203
- children: "Open"
197
+ children: "Open Tray"
204
198
  }), isTrayVisible && /*#__PURE__*/_jsx(Tray, {
205
- ref: trayRef,
206
- disableCapturePanGestureToDismiss: true,
207
- handleBarAccessibilityLabel: "Dismiss",
208
- onCloseComplete: () => setIsTrayVisible(false),
209
- onVisibilityChange: () => {},
210
- title: title,
211
- children: _ref0 => {
199
+ footer: _ref8 => {
212
200
  let {
213
201
  handleClose
214
- } = _ref0;
215
- return /*#__PURE__*/_jsxs(TrayStickyFooter, {
216
- children: [content, stickyFooter]
202
+ } = _ref8;
203
+ return /*#__PURE__*/_jsx(StickyFooter, {
204
+ background: "bgElevation2",
205
+ paddingX: 3,
206
+ children: /*#__PURE__*/_jsx(Button, {
207
+ block: true,
208
+ onPress: handleClose,
209
+ children: "Close"
210
+ })
217
211
  });
218
- }
212
+ },
213
+ handleBarVariant: "inside",
214
+ onCloseComplete: () => setIsTrayVisible(false),
215
+ title: title,
216
+ children: /*#__PURE__*/_jsx(VStack, {
217
+ paddingX: 3,
218
+ children: content
219
+ })
219
220
  })]
220
221
  });
221
222
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinbase/cds-mobile",
3
- "version": "8.46.1",
3
+ "version": "8.47.1",
4
4
  "description": "Coinbase Design System - Mobile",
5
5
  "repository": {
6
6
  "type": "git",
@@ -198,7 +198,7 @@
198
198
  "react-native-svg": "^14.1.0"
199
199
  },
200
200
  "dependencies": {
201
- "@coinbase/cds-common": "^8.46.1",
201
+ "@coinbase/cds-common": "^8.47.1",
202
202
  "@coinbase/cds-icons": "^5.11.0",
203
203
  "@coinbase/cds-illustrations": "^4.31.0",
204
204
  "@coinbase/cds-lottie-files": "^3.3.4",