@telefonica/mistica 16.62.0 → 16.63.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.
Files changed (206) hide show
  1. package/css/mistica.css +1 -1
  2. package/dist/accordion.css-mistica.js +6 -6
  3. package/dist/align.css-mistica.js +1 -1
  4. package/dist/autocomplete.css-mistica.js +1 -1
  5. package/dist/avatar.css-mistica.js +1 -1
  6. package/dist/badge.css-mistica.js +1 -1
  7. package/dist/box.css-mistica.js +13 -13
  8. package/dist/boxed.css-mistica.js +26 -26
  9. package/dist/button-group.css-mistica.js +1 -1
  10. package/dist/button-layout.css-mistica.js +14 -14
  11. package/dist/button.css-mistica.js +30 -30
  12. package/dist/callout.css-mistica.js +11 -11
  13. package/dist/card-internal.css-mistica.js +15 -15
  14. package/dist/carousel.css-mistica.js +8 -8
  15. package/dist/checkbox.css-mistica.js +11 -11
  16. package/dist/chip.css-mistica.js +15 -15
  17. package/dist/circle.css-mistica.js +1 -1
  18. package/dist/community/advanced-data-card.css-mistica.js +6 -6
  19. package/dist/community/ai-card.css-mistica.js +2 -2
  20. package/dist/community/blocks.css-mistica.js +2 -2
  21. package/dist/community/example-component.css-mistica.js +1 -1
  22. package/dist/counter.css-mistica.js +1 -1
  23. package/dist/cover-hero.css-mistica.js +2 -2
  24. package/dist/credit-card-number-field.css-mistica.js +3 -3
  25. package/dist/date-field.css-mistica.js +1 -1
  26. package/dist/date-time-picker.css-mistica.js +1 -1
  27. package/dist/dialog.css-mistica.js +4 -4
  28. package/dist/divider.css-mistica.js +7 -7
  29. package/dist/double-field.css-mistica.js +2 -2
  30. package/dist/drawer.css-mistica.js +1 -1
  31. package/dist/empty-state-card.css-mistica.js +1 -1
  32. package/dist/empty-state.css-mistica.js +7 -7
  33. package/dist/fade-in.css-mistica.js +1 -1
  34. package/dist/feedback.css-mistica.js +1 -1
  35. package/dist/file-upload.css-mistica.js +7 -7
  36. package/dist/fixed-footer-layout.css-mistica.js +2 -2
  37. package/dist/form.css-mistica.js +2 -2
  38. package/dist/grid-layout.css-mistica.js +5 -5
  39. package/dist/grid.css-mistica.js +122 -122
  40. package/dist/header.css-mistica.js +1 -1
  41. package/dist/hero.css-mistica.js +2 -2
  42. package/dist/horizontal-scroll.css-mistica.js +1 -1
  43. package/dist/icon-button.css-mistica.js +53 -53
  44. package/dist/icons/icon-chevron.css-mistica.js +2 -2
  45. package/dist/icons/icon-error.css-mistica.js +1 -1
  46. package/dist/image.css-mistica.js +4 -4
  47. package/dist/inline.css-mistica.js +19 -13
  48. package/dist/inline.css.d.ts +2 -0
  49. package/dist/inline.d.ts +10 -1
  50. package/dist/inline.js +29 -28
  51. package/dist/list.css-mistica.js +1 -1
  52. package/dist/loading-bar.css-mistica.js +1 -1
  53. package/dist/loading-screen.css-mistica.js +4 -4
  54. package/dist/logo.css-mistica.js +7 -7
  55. package/dist/menu.css-mistica.js +13 -13
  56. package/dist/menu.d.ts +25 -7
  57. package/dist/menu.js +162 -142
  58. package/dist/mosaic.css-mistica.js +2 -2
  59. package/dist/navigation-bar.css-mistica.js +18 -18
  60. package/dist/navigation-breadcrumbs.css-mistica.js +1 -1
  61. package/dist/package-version.js +1 -1
  62. package/dist/pin-field.css-mistica.js +1 -1
  63. package/dist/popover.css-mistica.js +1 -1
  64. package/dist/progress-bar.css-mistica.js +6 -6
  65. package/dist/radio-button.css-mistica.js +19 -19
  66. package/dist/rating.css-mistica.js +2 -2
  67. package/dist/responsive-layout.css-mistica.js +6 -6
  68. package/dist/screen-reader-only.css-mistica.js +1 -1
  69. package/dist/select.css-mistica.js +15 -15
  70. package/dist/sheet-action-row.css-mistica.js +1 -1
  71. package/dist/sheet-common.css-mistica.js +1 -1
  72. package/dist/sheet-common.js +9 -9
  73. package/dist/sheet-info.css-mistica.js +1 -1
  74. package/dist/skeletons.css-mistica.js +6 -6
  75. package/dist/skins/skin-contract.css-mistica.js +686 -686
  76. package/dist/skip-link.css-mistica.js +1 -1
  77. package/dist/slider.css-mistica.js +18 -18
  78. package/dist/snackbar.css-mistica.js +4 -4
  79. package/dist/spinner.css-mistica.js +1 -1
  80. package/dist/square.css-mistica.js +1 -1
  81. package/dist/stack.css-mistica.js +8 -8
  82. package/dist/stacking-group.css-mistica.js +1 -1
  83. package/dist/stepper.css-mistica.js +2 -2
  84. package/dist/switch-component.css-mistica.js +35 -35
  85. package/dist/table.css-mistica.js +9 -9
  86. package/dist/tabs.css-mistica.js +17 -17
  87. package/dist/tag.css-mistica.js +1 -1
  88. package/dist/text-field-base.css-mistica.js +15 -15
  89. package/dist/text-field-components.css-mistica.js +3 -3
  90. package/dist/text-link.css-mistica.js +6 -6
  91. package/dist/text.css-mistica.js +9 -9
  92. package/dist/theme-context.css-mistica.js +1 -1
  93. package/dist/timeline.css-mistica.js +9 -9
  94. package/dist/timer.css-mistica.js +6 -6
  95. package/dist/tooltip.css-mistica.js +1 -1
  96. package/dist/touchable.css-mistica.js +1 -1
  97. package/dist/utils/aspect-ratio-support.css-mistica.js +2 -2
  98. package/dist/video.css-mistica.js +1 -1
  99. package/dist/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +3 -3
  100. package/dist-es/accordion.css-mistica.js +6 -6
  101. package/dist-es/align.css-mistica.js +1 -1
  102. package/dist-es/autocomplete.css-mistica.js +1 -1
  103. package/dist-es/avatar.css-mistica.js +1 -1
  104. package/dist-es/badge.css-mistica.js +1 -1
  105. package/dist-es/box.css-mistica.js +13 -13
  106. package/dist-es/boxed.css-mistica.js +25 -25
  107. package/dist-es/button-group.css-mistica.js +1 -1
  108. package/dist-es/button-layout.css-mistica.js +14 -14
  109. package/dist-es/button.css-mistica.js +30 -30
  110. package/dist-es/callout.css-mistica.js +11 -11
  111. package/dist-es/card-internal.css-mistica.js +15 -15
  112. package/dist-es/carousel.css-mistica.js +8 -8
  113. package/dist-es/checkbox.css-mistica.js +11 -11
  114. package/dist-es/chip.css-mistica.js +15 -15
  115. package/dist-es/circle.css-mistica.js +1 -1
  116. package/dist-es/community/advanced-data-card.css-mistica.js +6 -6
  117. package/dist-es/community/ai-card.css-mistica.js +2 -2
  118. package/dist-es/community/blocks.css-mistica.js +2 -2
  119. package/dist-es/community/example-component.css-mistica.js +1 -1
  120. package/dist-es/counter.css-mistica.js +1 -1
  121. package/dist-es/cover-hero.css-mistica.js +2 -2
  122. package/dist-es/credit-card-number-field.css-mistica.js +3 -3
  123. package/dist-es/date-field.css-mistica.js +1 -1
  124. package/dist-es/date-time-picker.css-mistica.js +1 -1
  125. package/dist-es/dialog.css-mistica.js +4 -4
  126. package/dist-es/divider.css-mistica.js +7 -7
  127. package/dist-es/double-field.css-mistica.js +2 -2
  128. package/dist-es/drawer.css-mistica.js +1 -1
  129. package/dist-es/empty-state-card.css-mistica.js +1 -1
  130. package/dist-es/empty-state.css-mistica.js +7 -7
  131. package/dist-es/fade-in.css-mistica.js +1 -1
  132. package/dist-es/feedback.css-mistica.js +1 -1
  133. package/dist-es/file-upload.css-mistica.js +7 -7
  134. package/dist-es/fixed-footer-layout.css-mistica.js +2 -2
  135. package/dist-es/form.css-mistica.js +2 -2
  136. package/dist-es/grid-layout.css-mistica.js +4 -4
  137. package/dist-es/grid.css-mistica.js +122 -122
  138. package/dist-es/header.css-mistica.js +1 -1
  139. package/dist-es/hero.css-mistica.js +2 -2
  140. package/dist-es/horizontal-scroll.css-mistica.js +1 -1
  141. package/dist-es/icon-button.css-mistica.js +53 -53
  142. package/dist-es/icons/icon-chevron.css-mistica.js +2 -2
  143. package/dist-es/icons/icon-error.css-mistica.js +1 -1
  144. package/dist-es/image.css-mistica.js +4 -4
  145. package/dist-es/inline.css-mistica.js +11 -11
  146. package/dist-es/inline.js +39 -38
  147. package/dist-es/list.css-mistica.js +1 -1
  148. package/dist-es/loading-bar.css-mistica.js +1 -1
  149. package/dist-es/loading-screen.css-mistica.js +4 -4
  150. package/dist-es/logo.css-mistica.js +7 -7
  151. package/dist-es/menu.css-mistica.js +13 -13
  152. package/dist-es/menu.js +215 -195
  153. package/dist-es/mosaic.css-mistica.js +2 -2
  154. package/dist-es/navigation-bar.css-mistica.js +18 -18
  155. package/dist-es/navigation-breadcrumbs.css-mistica.js +1 -1
  156. package/dist-es/package-version.js +1 -1
  157. package/dist-es/pin-field.css-mistica.js +1 -1
  158. package/dist-es/popover.css-mistica.js +1 -1
  159. package/dist-es/progress-bar.css-mistica.js +6 -6
  160. package/dist-es/radio-button.css-mistica.js +19 -19
  161. package/dist-es/rating.css-mistica.js +2 -2
  162. package/dist-es/responsive-layout.css-mistica.js +6 -6
  163. package/dist-es/screen-reader-only.css-mistica.js +1 -1
  164. package/dist-es/select.css-mistica.js +15 -15
  165. package/dist-es/sheet-action-row.css-mistica.js +1 -1
  166. package/dist-es/sheet-common.css-mistica.js +1 -1
  167. package/dist-es/sheet-common.js +9 -9
  168. package/dist-es/sheet-info.css-mistica.js +1 -1
  169. package/dist-es/skeletons.css-mistica.js +6 -6
  170. package/dist-es/skins/skin-contract.css-mistica.js +686 -686
  171. package/dist-es/skip-link.css-mistica.js +1 -1
  172. package/dist-es/slider.css-mistica.js +18 -18
  173. package/dist-es/snackbar.css-mistica.js +4 -4
  174. package/dist-es/spinner.css-mistica.js +1 -1
  175. package/dist-es/square.css-mistica.js +1 -1
  176. package/dist-es/stack.css-mistica.js +7 -7
  177. package/dist-es/stacking-group.css-mistica.js +1 -1
  178. package/dist-es/stepper.css-mistica.js +2 -2
  179. package/dist-es/style.css +1 -1
  180. package/dist-es/switch-component.css-mistica.js +35 -35
  181. package/dist-es/table.css-mistica.js +9 -9
  182. package/dist-es/tabs.css-mistica.js +17 -17
  183. package/dist-es/tag.css-mistica.js +1 -1
  184. package/dist-es/text-field-base.css-mistica.js +15 -15
  185. package/dist-es/text-field-components.css-mistica.js +3 -3
  186. package/dist-es/text-link.css-mistica.js +6 -6
  187. package/dist-es/text.css-mistica.js +8 -8
  188. package/dist-es/theme-context.css-mistica.js +1 -1
  189. package/dist-es/timeline.css-mistica.js +9 -9
  190. package/dist-es/timer.css-mistica.js +6 -6
  191. package/dist-es/tooltip.css-mistica.js +1 -1
  192. package/dist-es/touchable.css-mistica.js +1 -1
  193. package/dist-es/utils/aspect-ratio-support.css-mistica.js +2 -2
  194. package/dist-es/video.css-mistica.js +1 -1
  195. package/dist-es/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +2 -2
  196. package/doc/components.md +19 -0
  197. package/doc/figma-mcp.md +136 -0
  198. package/doc/layout.md +21 -1
  199. package/doc/llms.md +7 -0
  200. package/doc/patterns.md +6 -17
  201. package/package.json +1 -1
  202. package/src/inline.css.ts +9 -0
  203. package/src/inline.tsx +33 -6
  204. package/src/menu.tsx +82 -24
  205. package/src/package-version.tsx +1 -1
  206. package/src/sheet-common.tsx +8 -9
package/doc/patterns.md CHANGED
@@ -2,19 +2,8 @@
2
2
 
3
3
  ## Critical rules
4
4
 
5
- 1. **NEVER hardcode colors in app/component UI code.** Always use `skinVars.colors.*` from
6
- `@telefonica/mistica`. For skins and theme-level customization, see [theme-config.md](./theme-config.md).
7
- 2. **NEVER use raw `<div>` for layout.** Use `Box`, `Stack`, `Inline`, `ResponsiveLayout`, `GridLayout`,
8
- `Grid`.
9
- 3. **NEVER set font sizes manually.** Use text components (`Text1`-`Text10`, `Title1`-`Title4`). If those
10
- don't cover your necessities you can set custom sizes with `Text` component.
11
- 4. **NEVER set border radius manually.** Use `skinVars.borderRadii.*` or components that handle it (`Boxed`,
12
- cards, etc.). For theme-level visual customization without a dedicated component prop, use a custom skin.
13
- 5. **Always wrap your app** with `ThemeContextProvider` and import `@telefonica/mistica/css/mistica.css`.
14
- 6. **Always namespace React hooks**: `React.useState`, `React.useEffect`, `React.useRef`, etc.
15
- 7. **Add `'use client';`** directive to client components when using Next.js app router.
16
- 8. **Set `font-family` and `body` background color.** See [llms.md](./llms.md) rules 9–10 and
17
- [fonts.md](./fonts.md) for the per-skin font table, `@font-face` setup, and the `GlobalStyles` pattern.
5
+ See [Critical Rules in `llms.md`](./llms.md#critical-rules) the single source of truth. These rules apply
6
+ throughout this document.
18
7
 
19
8
  ## Page layout composition
20
9
 
@@ -501,10 +490,10 @@ return (
501
490
  <ResponsiveLayout>
502
491
  <Stack space={24}>
503
492
  <Stepper currentIndex={currentStep} steps={['Personal', 'Address', 'Payment', 'Confirm']} />
504
- {currentStep === 0 && <PersonalInfoForm />}
505
- {currentStep === 1 && <AddressForm />}
506
- {currentStep === 2 && <PaymentForm />}
507
- {currentStep === 3 && <ConfirmationScreen />}
493
+ {currentStep === 0 && <PersonalInfoForm />}
494
+ {currentStep === 1 && <AddressForm />}
495
+ {currentStep === 2 && <PaymentForm />}
496
+ {currentStep === 3 && <ConfirmationScreen />}
508
497
  </Stack>
509
498
  </ResponsiveLayout>
510
499
  </Stack>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telefonica/mistica",
3
- "version": "16.62.0",
3
+ "version": "16.63.1",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
package/src/inline.css.ts CHANGED
@@ -98,6 +98,15 @@ export const stringSpaceWithWrap = style({
98
98
  justifyContent: space,
99
99
  });
100
100
 
101
+ export const expand = style({
102
+ width: '100%',
103
+ display: 'flex',
104
+ });
105
+
106
+ export const expandItem = style({
107
+ flex: 1,
108
+ });
109
+
101
110
  globalStyle(`${marginInline} > div`, {
102
111
  marginLeft: space,
103
112
  marginTop: fallbackVar(verticalSpace, space),
package/src/inline.tsx CHANGED
@@ -79,6 +79,23 @@ type Props = {
79
79
  fullWidth?: boolean;
80
80
  dataAttributes?: DataAttributes;
81
81
  wrap?: boolean;
82
+ /**
83
+ * Index or indexes of the children that should grow to fill the available space.
84
+ * Indexes refer to entries in `React.Children.toArray(children)`, so empty nodes
85
+ * (`null`, `undefined` and booleans) are ignored, but React elements still count
86
+ * even if they ultimately render no content.
87
+ *
88
+ * This prop has no effect when `wrap` is enabled.
89
+ */
90
+ expand?: number | ReadonlyArray<number>;
91
+ };
92
+
93
+ const shouldExpandItem = (expand: Props['expand'], index: number): boolean => {
94
+ if (expand === undefined) {
95
+ return false;
96
+ }
97
+
98
+ return Array.isArray(expand) ? expand.includes(index) : expand === index;
82
99
  };
83
100
 
84
101
  const Inline = ({
@@ -93,17 +110,26 @@ const Inline = ({
93
110
  fullWidth,
94
111
  wrap,
95
112
  dataAttributes,
113
+ expand,
96
114
  }: Props): JSX.Element => {
97
115
  const {platformOverrides} = useTheme();
98
116
  const isStringSpace = typeof space === 'string';
117
+ const childrenArray = React.Children.toArray(children).filter(Boolean);
99
118
 
119
+ const hasExpandItem = childrenArray.some((_, index) => shouldExpandItem(expand, index));
120
+ const shouldExpand = hasExpandItem && !wrap;
100
121
  return (
101
122
  <div
102
123
  className={classnames(
103
124
  className,
104
125
  styles.inline,
105
- wrap ? styles.wrap : fullWidth ? styles.fullWidth : styles.noFullWidth,
106
- isStringSpace ? (wrap ? styles.stringSpaceWithWrap : styles.stringSpace) : styles.marginInline
126
+ wrap ? styles.wrap : fullWidth || shouldExpand ? styles.fullWidth : styles.noFullWidth,
127
+ isStringSpace
128
+ ? wrap
129
+ ? styles.stringSpaceWithWrap
130
+ : styles.stringSpace
131
+ : styles.marginInline,
132
+ shouldExpand && styles.expand
107
133
  )}
108
134
  style={{...applyCssVars(calcInlineVars(space, verticalSpace)), alignItems}}
109
135
  role={role}
@@ -111,10 +137,11 @@ const Inline = ({
111
137
  aria-labelledby={ariaLabel ? undefined : ariaLabelledBy}
112
138
  {...getPrefixedDataAttributes(dataAttributes, 'Inline')}
113
139
  >
114
- {React.Children.map(children, (child) =>
115
- !!child || child === 0 ? (
140
+ {React.Children.map(childrenArray, (child, index) => {
141
+ return (
116
142
  <div
117
143
  role={role === 'list' ? 'listitem' : undefined}
144
+ className={classnames(shouldExpandItem(expand, index) && styles.expandItem)}
118
145
  style={{
119
146
  // Hack to fix https://jira.tid.es/browse/WEB-1683
120
147
  // In iOS the inline component sometimes cuts the last line of the content
@@ -126,8 +153,8 @@ const Inline = ({
126
153
  >
127
154
  {child}
128
155
  </div>
129
- ) : null
130
- )}
156
+ );
157
+ })}
131
158
  </div>
132
159
  );
133
160
  };
package/src/menu.tsx CHANGED
@@ -57,21 +57,40 @@ interface MenuItemBaseProps {
57
57
  Icon?: (props: IconProps) => JSX.Element;
58
58
  destructive?: boolean;
59
59
  disabled?: boolean;
60
- onPress: (item: number) => void;
61
60
  dataAttributes?: DataAttributes;
62
61
  }
63
62
 
64
- interface MenuItemWithoutControlProps extends MenuItemBaseProps {
63
+ interface MenuItemOnPressProps extends MenuItemBaseProps {
64
+ onPress: (item: number) => void;
65
+ controlType?: 'checkbox';
66
+ checked?: boolean;
67
+ href?: undefined;
68
+ to?: undefined;
69
+ }
70
+
71
+ interface MenuItemHrefProps extends MenuItemBaseProps {
72
+ href: string;
73
+ newTab?: boolean;
74
+ loadOnTop?: boolean;
75
+ onNavigate?: () => void | Promise<void>;
76
+ onPress?: undefined;
77
+ to?: undefined;
65
78
  controlType?: undefined;
66
79
  checked?: undefined;
67
80
  }
68
81
 
69
- interface MenuItemWithControlProps extends MenuItemBaseProps {
70
- controlType?: 'checkbox';
71
- checked?: boolean;
82
+ interface MenuItemToProps extends MenuItemBaseProps {
83
+ to: string;
84
+ newTab?: boolean;
85
+ fullPageOnWebView?: boolean;
86
+ onNavigate?: () => void | Promise<void>;
87
+ onPress?: undefined;
88
+ href?: undefined;
89
+ controlType?: undefined;
90
+ checked?: undefined;
72
91
  }
73
92
 
74
- type MenuItemProps = ExclusifyUnion<MenuItemWithControlProps | MenuItemWithoutControlProps>;
93
+ type MenuItemProps = ExclusifyUnion<MenuItemOnPressProps | MenuItemHrefProps | MenuItemToProps>;
75
94
 
76
95
  export const MenuItem = ({
77
96
  label,
@@ -79,6 +98,12 @@ export const MenuItem = ({
79
98
  destructive,
80
99
  disabled,
81
100
  onPress,
101
+ href,
102
+ to,
103
+ newTab,
104
+ loadOnTop,
105
+ fullPageOnWebView,
106
+ onNavigate,
82
107
  controlType,
83
108
  checked,
84
109
  description,
@@ -108,6 +133,17 @@ export const MenuItem = ({
108
133
  </div>
109
134
  );
110
135
 
136
+ const renderItemContent = (labelId?: string) => (
137
+ <div className={styles.itemContent}>
138
+ {Icon && (
139
+ <div className={styles.iconContainer}>
140
+ <Icon size={24} color={contentColor} />
141
+ </div>
142
+ )}
143
+ {renderTextContent(labelId)}
144
+ </div>
145
+ );
146
+
111
147
  const renderContent = () =>
112
148
  controlType === 'checkbox' ? (
113
149
  <Checkbox
@@ -116,7 +152,7 @@ export const MenuItem = ({
116
152
  checked={checked}
117
153
  onChange={() => {
118
154
  if (isMenuOpen && itemIndex !== null) {
119
- onPress(itemIndex);
155
+ onPress?.(itemIndex);
120
156
  closeMenu();
121
157
  }
122
158
  }}
@@ -126,25 +162,54 @@ export const MenuItem = ({
126
162
  render={({controlElement, labelId}) => (
127
163
  <Box paddingX={8} paddingY={12}>
128
164
  <Inline space="between" alignItems="center">
129
- <div className={styles.itemContent}>
130
- {Icon && (
131
- <div className={styles.iconContainer}>
132
- <Icon size={24} color={contentColor} />
133
- </div>
134
- )}
135
- {renderTextContent(labelId)}
136
- </div>
165
+ {renderItemContent(labelId)}
137
166
  <Box paddingLeft={16}>{controlElement}</Box>
138
167
  </Inline>
139
168
  </Box>
140
169
  )}
141
170
  />
171
+ ) : href ? (
172
+ <Touchable
173
+ ref={itemRef}
174
+ href={href}
175
+ newTab={newTab}
176
+ loadOnTop={loadOnTop}
177
+ onNavigate={() => {
178
+ closeMenu();
179
+ onNavigate?.();
180
+ }}
181
+ disabled={disabled}
182
+ role="menuitem"
183
+ dataAttributes={menuItemDataAttributes}
184
+ >
185
+ <Box paddingX={8} paddingY={12}>
186
+ {renderItemContent()}
187
+ </Box>
188
+ </Touchable>
189
+ ) : to ? (
190
+ <Touchable
191
+ ref={itemRef}
192
+ to={to}
193
+ newTab={newTab}
194
+ fullPageOnWebView={fullPageOnWebView}
195
+ onNavigate={() => {
196
+ closeMenu();
197
+ onNavigate?.();
198
+ }}
199
+ disabled={disabled}
200
+ role="menuitem"
201
+ dataAttributes={menuItemDataAttributes}
202
+ >
203
+ <Box paddingX={8} paddingY={12}>
204
+ {renderItemContent()}
205
+ </Box>
206
+ </Touchable>
142
207
  ) : (
143
208
  <Touchable
144
209
  ref={itemRef}
145
210
  onPress={() => {
146
211
  if (isMenuOpen && itemIndex !== null) {
147
- onPress(itemIndex);
212
+ onPress?.(itemIndex);
148
213
  closeMenu();
149
214
  }
150
215
  }}
@@ -153,14 +218,7 @@ export const MenuItem = ({
153
218
  dataAttributes={menuItemDataAttributes}
154
219
  >
155
220
  <Box paddingX={8} paddingY={12}>
156
- <div className={styles.itemContent}>
157
- {Icon && (
158
- <div className={styles.iconContainer}>
159
- <Icon size={24} color={contentColor} />
160
- </div>
161
- )}
162
- {renderTextContent()}
163
- </div>
221
+ {renderItemContent()}
164
222
  </Box>
165
223
  </Touchable>
166
224
  );
@@ -1,2 +1,2 @@
1
1
  // DO NOT EDIT THIS FILE. It's autogenerated by set-version.js
2
- export const PACKAGE_VERSION = '16.62.0' as string;
2
+ export const PACKAGE_VERSION = '16.63.1' as string;
@@ -247,7 +247,6 @@ const Sheet = React.forwardRef<HTMLDivElement, SheetProps>(({onClose, children,
247
247
  * the content in order to be able to drag the sheet
248
248
  */}
249
249
  <div className={styles.sheetTopDraggingArea} />
250
-
251
250
  <section
252
251
  role="dialog"
253
252
  aria-modal="true"
@@ -264,15 +263,15 @@ const Sheet = React.forwardRef<HTMLDivElement, SheetProps>(({onClose, children,
264
263
  <div className={styles.handleContainer}>
265
264
  <div className={styles.handleBar} />
266
265
  </div>
267
- <div className={styles.dismissButton}>
268
- <IconButton
269
- small={isTabletOrSmaller}
270
- onPress={closeModal}
271
- aria-label={texts.modalClose || t(tokens.modalClose)}
272
- Icon={IconCloseRegular}
273
- />
274
- </div>
275
266
  </section>
267
+ <div className={styles.dismissButton}>
268
+ <IconButton
269
+ small={isTabletOrSmaller}
270
+ onPress={closeModal}
271
+ aria-label={texts.modalClose || t(tokens.modalClose)}
272
+ Icon={IconCloseRegular}
273
+ />
274
+ </div>
276
275
  </div>
277
276
  </div>
278
277
  </div>