@coinbase/cds-web 9.1.3 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dts/alpha/select/DefaultSelectControl.d.ts.map +1 -1
  3. package/dts/alpha/select/Select.d.ts.map +1 -1
  4. package/dts/alpha/select/types.d.ts +16 -2
  5. package/dts/alpha/select/types.d.ts.map +1 -1
  6. package/esm/alpha/select/DefaultSelectControl.js +30 -12
  7. package/esm/alpha/select/Select.js +17 -3
  8. package/package.json +3 -3
  9. package/dts/accordion/__figma__/Accordion.figma.d.ts +0 -2
  10. package/dts/accordion/__figma__/Accordion.figma.d.ts.map +0 -1
  11. package/dts/alpha/__figma__/Select.figma.d.ts +0 -2
  12. package/dts/alpha/__figma__/Select.figma.d.ts.map +0 -1
  13. package/dts/alpha/data-card/__figma__/DataCard.figma.d.ts +0 -2
  14. package/dts/alpha/data-card/__figma__/DataCard.figma.d.ts.map +0 -1
  15. package/dts/buttons/__figma__/AvatarButton.figma.d.ts +0 -2
  16. package/dts/buttons/__figma__/AvatarButton.figma.d.ts.map +0 -1
  17. package/dts/buttons/__figma__/Button.figma.d.ts +0 -2
  18. package/dts/buttons/__figma__/Button.figma.d.ts.map +0 -1
  19. package/dts/buttons/__figma__/ButtonGroup.figma.d.ts +0 -2
  20. package/dts/buttons/__figma__/ButtonGroup.figma.d.ts.map +0 -1
  21. package/dts/buttons/__figma__/IconButton.figma.d.ts +0 -2
  22. package/dts/buttons/__figma__/IconButton.figma.d.ts.map +0 -1
  23. package/dts/buttons/__figma__/TileButton.figma.d.ts +0 -2
  24. package/dts/buttons/__figma__/TileButton.figma.d.ts.map +0 -1
  25. package/dts/cards/ContentCard/__figma__/ContentCard.figma.d.ts +0 -2
  26. package/dts/cards/ContentCard/__figma__/ContentCard.figma.d.ts.map +0 -1
  27. package/dts/cards/ContentCard/__figma__/ContentCardBody.figma.d.ts +0 -2
  28. package/dts/cards/ContentCard/__figma__/ContentCardBody.figma.d.ts.map +0 -1
  29. package/dts/cards/ContentCard/__figma__/ContentCardFooter.figma.d.ts +0 -2
  30. package/dts/cards/ContentCard/__figma__/ContentCardFooter.figma.d.ts.map +0 -1
  31. package/dts/cards/ContentCard/__figma__/ContentCardHeader.figma.d.ts +0 -2
  32. package/dts/cards/ContentCard/__figma__/ContentCardHeader.figma.d.ts.map +0 -1
  33. package/dts/cards/MediaCard/__figma__/MediaCard.figma.d.ts +0 -2
  34. package/dts/cards/MediaCard/__figma__/MediaCard.figma.d.ts.map +0 -1
  35. package/dts/cards/MessagingCard/__figma__/MessagingCard.figma.d.ts +0 -2
  36. package/dts/cards/MessagingCard/__figma__/MessagingCard.figma.d.ts.map +0 -1
  37. package/dts/cards/__figma__/AnnouncementCard.figma.d.ts +0 -2
  38. package/dts/cards/__figma__/AnnouncementCard.figma.d.ts.map +0 -1
  39. package/dts/cards/__figma__/ContainedAssetCard.figma.d.ts +0 -2
  40. package/dts/cards/__figma__/ContainedAssetCard.figma.d.ts.map +0 -1
  41. package/dts/cards/__figma__/FloatingAssetCard.figma.d.ts +0 -2
  42. package/dts/cards/__figma__/FloatingAssetCard.figma.d.ts.map +0 -1
  43. package/dts/cards/__figma__/NudgeCard.figma.d.ts +0 -2
  44. package/dts/cards/__figma__/NudgeCard.figma.d.ts.map +0 -1
  45. package/dts/cards/__figma__/UpsellCard.figma.d.ts +0 -2
  46. package/dts/cards/__figma__/UpsellCard.figma.d.ts.map +0 -1
  47. package/dts/carousel/__figma__/Carousel.figma.d.ts +0 -2
  48. package/dts/carousel/__figma__/Carousel.figma.d.ts.map +0 -1
  49. package/dts/cells/__figma__/ContentCell.figma.d.ts +0 -2
  50. package/dts/cells/__figma__/ContentCell.figma.d.ts.map +0 -1
  51. package/dts/cells/__figma__/ListCell.figma.d.ts +0 -2
  52. package/dts/cells/__figma__/ListCell.figma.d.ts.map +0 -1
  53. package/dts/chips/__figma__/InputChip.figma.d.ts +0 -2
  54. package/dts/chips/__figma__/InputChip.figma.d.ts.map +0 -1
  55. package/dts/chips/__figma__/SelectChip.figma.d.ts +0 -2
  56. package/dts/chips/__figma__/SelectChip.figma.d.ts.map +0 -1
  57. package/dts/chips/__figma__/TabbedChips.figma.d.ts +0 -2
  58. package/dts/chips/__figma__/TabbedChips.figma.d.ts.map +0 -1
  59. package/dts/coachmark/__figma__/Coachmark.figma.d.ts +0 -2
  60. package/dts/coachmark/__figma__/Coachmark.figma.d.ts.map +0 -1
  61. package/dts/controls/__figma__/Checkbox.figma.d.ts +0 -2
  62. package/dts/controls/__figma__/Checkbox.figma.d.ts.map +0 -1
  63. package/dts/controls/__figma__/CheckboxCell.figma.d.ts +0 -2
  64. package/dts/controls/__figma__/CheckboxCell.figma.d.ts.map +0 -1
  65. package/dts/controls/__figma__/CheckboxGroup.figma.d.ts +0 -2
  66. package/dts/controls/__figma__/CheckboxGroup.figma.d.ts.map +0 -1
  67. package/dts/controls/__figma__/NativeTextArea.figma.d.ts +0 -2
  68. package/dts/controls/__figma__/NativeTextArea.figma.d.ts.map +0 -1
  69. package/dts/controls/__figma__/RadioCell.figma.d.ts +0 -2
  70. package/dts/controls/__figma__/RadioCell.figma.d.ts.map +0 -1
  71. package/dts/controls/__figma__/RadioGroup.figma.d.ts +0 -2
  72. package/dts/controls/__figma__/RadioGroup.figma.d.ts.map +0 -1
  73. package/dts/controls/__figma__/SearchInput.figma.d.ts +0 -2
  74. package/dts/controls/__figma__/SearchInput.figma.d.ts.map +0 -1
  75. package/dts/controls/__figma__/SelectOption.figma.d.ts +0 -2
  76. package/dts/controls/__figma__/SelectOption.figma.d.ts.map +0 -1
  77. package/dts/controls/__figma__/Switch.figma.d.ts +0 -2
  78. package/dts/controls/__figma__/Switch.figma.d.ts.map +0 -1
  79. package/dts/controls/__figma__/TextInput.figma.d.ts +0 -2
  80. package/dts/controls/__figma__/TextInput.figma.d.ts.map +0 -1
  81. package/dts/dates/__figma__/DatePicker.figma.d.ts +0 -2
  82. package/dts/dates/__figma__/DatePicker.figma.d.ts.map +0 -1
  83. package/dts/dots/__figma__/DotCount.figma.d.ts +0 -2
  84. package/dts/dots/__figma__/DotCount.figma.d.ts.map +0 -1
  85. package/dts/dots/__figma__/DotStatusColor.figma.d.ts +0 -2
  86. package/dts/dots/__figma__/DotStatusColor.figma.d.ts.map +0 -1
  87. package/dts/dots/__figma__/DotSymbol.figma.d.ts +0 -2
  88. package/dts/dots/__figma__/DotSymbol.figma.d.ts.map +0 -1
  89. package/dts/dropdown/__figma__/Dropdown.figma.d.ts +0 -2
  90. package/dts/dropdown/__figma__/Dropdown.figma.d.ts.map +0 -1
  91. package/dts/icons/__figma__/Icon.figma.d.ts +0 -2
  92. package/dts/icons/__figma__/Icon.figma.d.ts.map +0 -1
  93. package/dts/icons/__figma__/LogoMark.figma.d.ts +0 -2
  94. package/dts/icons/__figma__/LogoMark.figma.d.ts.map +0 -1
  95. package/dts/icons/__figma__/LogoWordmark.figma.d.ts +0 -2
  96. package/dts/icons/__figma__/LogoWordmark.figma.d.ts.map +0 -1
  97. package/dts/icons/__figma__/SubBrandLogoMark.figma.d.ts +0 -2
  98. package/dts/icons/__figma__/SubBrandLogoMark.figma.d.ts.map +0 -1
  99. package/dts/icons/__figma__/SubBrandLogoWordmark.figma.d.ts +0 -2
  100. package/dts/icons/__figma__/SubBrandLogoWordmark.figma.d.ts.map +0 -1
  101. package/dts/illustrations/__figma__/HeroSquare.figma.d.ts +0 -2
  102. package/dts/illustrations/__figma__/HeroSquare.figma.d.ts.map +0 -1
  103. package/dts/illustrations/__figma__/Pictogram.figma.d.ts +0 -2
  104. package/dts/illustrations/__figma__/Pictogram.figma.d.ts.map +0 -1
  105. package/dts/illustrations/__figma__/SpotIcon.figma.d.ts +0 -2
  106. package/dts/illustrations/__figma__/SpotIcon.figma.d.ts.map +0 -1
  107. package/dts/illustrations/__figma__/SpotRectangle.figma.d.ts +0 -2
  108. package/dts/illustrations/__figma__/SpotRectangle.figma.d.ts.map +0 -1
  109. package/dts/illustrations/__figma__/SpotSquare.figma.d.ts +0 -2
  110. package/dts/illustrations/__figma__/SpotSquare.figma.d.ts.map +0 -1
  111. package/dts/layout/__figma__/Divider.figma.d.ts +0 -2
  112. package/dts/layout/__figma__/Divider.figma.d.ts.map +0 -1
  113. package/dts/layout/__figma__/Fallback.figma.d.ts +0 -2
  114. package/dts/layout/__figma__/Fallback.figma.d.ts.map +0 -1
  115. package/dts/media/__figma__/Avatar.figma.d.ts +0 -2
  116. package/dts/media/__figma__/Avatar.figma.d.ts.map +0 -1
  117. package/dts/multi-content-module/__figma__/MultiContentModule.figma.d.ts +0 -2
  118. package/dts/multi-content-module/__figma__/MultiContentModule.figma.d.ts.map +0 -1
  119. package/dts/navigation/__figma__/NavLink.figma.d.ts +0 -2
  120. package/dts/navigation/__figma__/NavLink.figma.d.ts.map +0 -1
  121. package/dts/navigation/__figma__/NavigationBar.figma.d.ts +0 -2
  122. package/dts/navigation/__figma__/NavigationBar.figma.d.ts.map +0 -1
  123. package/dts/navigation/__figma__/NavigationTitle.figma.d.ts +0 -2
  124. package/dts/navigation/__figma__/NavigationTitle.figma.d.ts.map +0 -1
  125. package/dts/navigation/__figma__/Sidebar.figma.d.ts +0 -2
  126. package/dts/navigation/__figma__/Sidebar.figma.d.ts.map +0 -1
  127. package/dts/navigation/__figma__/SidebarItem.figma.d.ts +0 -2
  128. package/dts/navigation/__figma__/SidebarItem.figma.d.ts.map +0 -1
  129. package/dts/overlays/__figma__/Alert.figma.d.ts +0 -2
  130. package/dts/overlays/__figma__/Alert.figma.d.ts.map +0 -1
  131. package/dts/overlays/__figma__/Toast.figma.d.ts +0 -2
  132. package/dts/overlays/__figma__/Toast.figma.d.ts.map +0 -1
  133. package/dts/overlays/modal/__figma__/FullscreenModal.figma.d.ts +0 -2
  134. package/dts/overlays/modal/__figma__/FullscreenModal.figma.d.ts.map +0 -1
  135. package/dts/overlays/modal/__figma__/Modal.figma.d.ts +0 -2
  136. package/dts/overlays/modal/__figma__/Modal.figma.d.ts.map +0 -1
  137. package/dts/overlays/tooltip/__figma__/Tooltip.figma.d.ts +0 -2
  138. package/dts/overlays/tooltip/__figma__/Tooltip.figma.d.ts.map +0 -1
  139. package/dts/overlays/tray/__figma__/Tray.figma.d.ts +0 -2
  140. package/dts/overlays/tray/__figma__/Tray.figma.d.ts.map +0 -1
  141. package/dts/page/__figma__/PageFooter.figma.d.ts +0 -2
  142. package/dts/page/__figma__/PageFooter.figma.d.ts.map +0 -1
  143. package/dts/page/__figma__/PageHeader.figma.d.ts +0 -2
  144. package/dts/page/__figma__/PageHeader.figma.d.ts.map +0 -1
  145. package/dts/pagination/__figma__/Pagination.figma.d.ts +0 -2
  146. package/dts/pagination/__figma__/Pagination.figma.d.ts.map +0 -1
  147. package/dts/perf/component-config/Button.component-config.perf-test.d.ts +0 -2
  148. package/dts/perf/component-config/Button.component-config.perf-test.d.ts.map +0 -1
  149. package/dts/perf/component-config/ComponentConfigProvider.perf-test.d.ts +0 -2
  150. package/dts/perf/component-config/ComponentConfigProvider.perf-test.d.ts.map +0 -1
  151. package/dts/perf/component-config/ComponentConfigStickerSheet.perf-test.d.ts +0 -2
  152. package/dts/perf/component-config/ComponentConfigStickerSheet.perf-test.d.ts.map +0 -1
  153. package/dts/section-header/__figma__/SectionHeader.figma.d.ts +0 -2
  154. package/dts/section-header/__figma__/SectionHeader.figma.d.ts.map +0 -1
  155. package/dts/tables/__figma__/TableCell.figma.d.ts +0 -2
  156. package/dts/tables/__figma__/TableCell.figma.d.ts.map +0 -1
  157. package/dts/tabs/__figma__/SegmentedTabs.figma.d.ts +0 -2
  158. package/dts/tabs/__figma__/SegmentedTabs.figma.d.ts.map +0 -1
  159. package/dts/tabs/__figma__/TabNavigation.figma.d.ts +0 -2
  160. package/dts/tabs/__figma__/TabNavigation.figma.d.ts.map +0 -1
  161. package/dts/tag/__figma__/Tag.figma.d.ts +0 -2
  162. package/dts/tag/__figma__/Tag.figma.d.ts.map +0 -1
  163. package/dts/typography/__figma__/Link.figma.d.ts +0 -2
  164. package/dts/typography/__figma__/Link.figma.d.ts.map +0 -1
  165. package/dts/visualizations/__figma__/ProgressBar.figma.d.ts +0 -2
  166. package/dts/visualizations/__figma__/ProgressBar.figma.d.ts.map +0 -1
  167. package/dts/visualizations/__figma__/ProgressCircle.figma.d.ts +0 -2
  168. package/dts/visualizations/__figma__/ProgressCircle.figma.d.ts.map +0 -1
  169. package/dts/visualizations/sparkline/__figma__/Sparkline.figma.d.ts +0 -2
  170. package/dts/visualizations/sparkline/__figma__/Sparkline.figma.d.ts.map +0 -1
  171. package/dts/visualizations/sparkline/sparkline-interactive/__figma__/SparklineInteractive.figma.d.ts +0 -2
  172. package/dts/visualizations/sparkline/sparkline-interactive/__figma__/SparklineInteractive.figma.d.ts.map +0 -1
  173. package/dts/visualizations/sparkline/sparkline-interactive-header/__figma__/SparklineInteractiveHeader.figma.d.ts +0 -2
  174. package/dts/visualizations/sparkline/sparkline-interactive-header/__figma__/SparklineInteractiveHeader.figma.d.ts.map +0 -1
  175. package/esm/accordion/__figma__/Accordion.figma.js +0 -47
  176. package/esm/alpha/__figma__/Select.figma.js +0 -68
  177. package/esm/alpha/data-card/__figma__/DataCard.figma.js +0 -29
  178. package/esm/buttons/__figma__/AvatarButton.figma.js +0 -30
  179. package/esm/buttons/__figma__/Button.figma.js +0 -63
  180. package/esm/buttons/__figma__/ButtonGroup.figma.js +0 -54
  181. package/esm/buttons/__figma__/IconButton.figma.js +0 -35
  182. package/esm/buttons/__figma__/TileButton.figma.js +0 -29
  183. package/esm/cards/ContentCard/__figma__/ContentCard.figma.js +0 -37
  184. package/esm/cards/ContentCard/__figma__/ContentCardBody.figma.js +0 -55
  185. package/esm/cards/ContentCard/__figma__/ContentCardFooter.figma.js +0 -150
  186. package/esm/cards/ContentCard/__figma__/ContentCardHeader.figma.js +0 -29
  187. package/esm/cards/MediaCard/__figma__/MediaCard.figma.js +0 -50
  188. package/esm/cards/MessagingCard/__figma__/MessagingCard.figma.js +0 -42
  189. package/esm/cards/__figma__/AnnouncementCard.figma.js +0 -20
  190. package/esm/cards/__figma__/ContainedAssetCard.figma.js +0 -45
  191. package/esm/cards/__figma__/FloatingAssetCard.figma.js +0 -36
  192. package/esm/cards/__figma__/NudgeCard.figma.js +0 -60
  193. package/esm/cards/__figma__/UpsellCard.figma.js +0 -59
  194. package/esm/carousel/__figma__/Carousel.figma.js +0 -36
  195. package/esm/cells/__figma__/ContentCell.figma.js +0 -40
  196. package/esm/cells/__figma__/ListCell.figma.js +0 -79
  197. package/esm/chips/__figma__/InputChip.figma.js +0 -31
  198. package/esm/chips/__figma__/SelectChip.figma.js +0 -46
  199. package/esm/chips/__figma__/TabbedChips.figma.js +0 -55
  200. package/esm/coachmark/__figma__/Coachmark.figma.js +0 -49
  201. package/esm/controls/__figma__/Checkbox.figma.js +0 -32
  202. package/esm/controls/__figma__/CheckboxCell.figma.js +0 -43
  203. package/esm/controls/__figma__/CheckboxGroup.figma.js +0 -27
  204. package/esm/controls/__figma__/NativeTextArea.figma.js +0 -30
  205. package/esm/controls/__figma__/RadioCell.figma.js +0 -83
  206. package/esm/controls/__figma__/RadioGroup.figma.js +0 -47
  207. package/esm/controls/__figma__/SearchInput.figma.js +0 -44
  208. package/esm/controls/__figma__/SelectOption.figma.js +0 -38
  209. package/esm/controls/__figma__/Switch.figma.js +0 -20
  210. package/esm/controls/__figma__/TextInput.figma.js +0 -130
  211. package/esm/dates/__figma__/DatePicker.figma.js +0 -46
  212. package/esm/dots/__figma__/DotCount.figma.js +0 -19
  213. package/esm/dots/__figma__/DotStatusColor.figma.js +0 -27
  214. package/esm/dots/__figma__/DotSymbol.figma.js +0 -49
  215. package/esm/dropdown/__figma__/Dropdown.figma.js +0 -20
  216. package/esm/icons/__figma__/Icon.figma.js +0 -3909
  217. package/esm/icons/__figma__/LogoMark.figma.js +0 -23
  218. package/esm/icons/__figma__/LogoWordmark.figma.js +0 -35
  219. package/esm/icons/__figma__/SubBrandLogoMark.figma.js +0 -51
  220. package/esm/icons/__figma__/SubBrandLogoWordmark.figma.js +0 -52
  221. package/esm/illustrations/__figma__/HeroSquare.figma.js +0 -2103
  222. package/esm/illustrations/__figma__/Pictogram.figma.js +0 -1773
  223. package/esm/illustrations/__figma__/SpotIcon.figma.js +0 -339
  224. package/esm/illustrations/__figma__/SpotRectangle.figma.js +0 -1101
  225. package/esm/illustrations/__figma__/SpotSquare.figma.js +0 -1191
  226. package/esm/layout/__figma__/Divider.figma.js +0 -31
  227. package/esm/layout/__figma__/Fallback.figma.js +0 -25
  228. package/esm/media/__figma__/Avatar.figma.js +0 -61
  229. package/esm/multi-content-module/__figma__/MultiContentModule.figma.js +0 -39
  230. package/esm/navigation/__figma__/NavLink.figma.js +0 -58
  231. package/esm/navigation/__figma__/NavigationBar.figma.js +0 -284
  232. package/esm/navigation/__figma__/NavigationTitle.figma.js +0 -18
  233. package/esm/navigation/__figma__/Sidebar.figma.js +0 -40
  234. package/esm/navigation/__figma__/SidebarItem.figma.js +0 -24
  235. package/esm/overlays/__figma__/Alert.figma.js +0 -37
  236. package/esm/overlays/__figma__/Toast.figma.js +0 -51
  237. package/esm/overlays/modal/__figma__/FullscreenModal.figma.css +0 -1
  238. package/esm/overlays/modal/__figma__/FullscreenModal.figma.js +0 -104
  239. package/esm/overlays/modal/__figma__/Modal.figma.js +0 -81
  240. package/esm/overlays/tooltip/__figma__/Tooltip.figma.js +0 -93
  241. package/esm/overlays/tray/__figma__/Tray.figma.js +0 -191
  242. package/esm/page/__figma__/PageFooter.figma.js +0 -61
  243. package/esm/page/__figma__/PageHeader.figma.js +0 -57
  244. package/esm/pagination/__figma__/Pagination.figma.js +0 -22
  245. package/esm/perf/component-config/Button.component-config.perf-test.js +0 -43
  246. package/esm/perf/component-config/ComponentConfigProvider.perf-test.js +0 -134
  247. package/esm/perf/component-config/ComponentConfigStickerSheet.perf-test.js +0 -332
  248. package/esm/perf/component-config/README.md +0 -8
  249. package/esm/section-header/__figma__/SectionHeader.figma.js +0 -58
  250. package/esm/tables/__figma__/TableCell.figma.js +0 -116
  251. package/esm/tabs/__figma__/SegmentedTabs.figma.js +0 -82
  252. package/esm/tabs/__figma__/TabNavigation.figma.js +0 -82
  253. package/esm/tag/__figma__/Tag.figma.js +0 -90
  254. package/esm/typography/__figma__/Link.figma.js +0 -32
  255. package/esm/visualizations/__figma__/ProgressBar.figma.js +0 -103
  256. package/esm/visualizations/__figma__/ProgressCircle.figma.js +0 -29
  257. package/esm/visualizations/sparkline/__figma__/Sparkline.figma.js +0 -24
  258. package/esm/visualizations/sparkline/sparkline-interactive/__figma__/SparklineInteractive.figma.js +0 -89
  259. package/esm/visualizations/sparkline/sparkline-interactive-header/__figma__/SparklineInteractiveHeader.figma.js +0 -108
@@ -1,43 +0,0 @@
1
- import React from 'react';
2
- import { measurePerformance } from 'reassure';
3
- import { Button } from '../../buttons/Button';
4
- import { ComponentConfigProvider } from '../../system/ComponentConfigProvider';
5
- import { DefaultThemeProvider } from '../../utils/test';
6
- import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
7
- const buttonCount = 1000;
8
- const ButtonList = () => {
9
- return /*#__PURE__*/_jsx(_Fragment, {
10
- children: Array.from({
11
- length: buttonCount
12
- }, (_, index) => /*#__PURE__*/_jsx(Button, {
13
- children: "Child"
14
- }, index))
15
- });
16
- };
17
- const Wrapper = _ref => {
18
- let {
19
- children
20
- } = _ref;
21
- return /*#__PURE__*/_jsx(DefaultThemeProvider, {
22
- children: children
23
- });
24
- };
25
- describe('Button component-config performance (web)', () => {
26
- it('no provider', async () => {
27
- await measurePerformance(/*#__PURE__*/_jsx(Wrapper, {
28
- children: /*#__PURE__*/_jsx(ButtonList, {})
29
- }));
30
- });
31
- it('provider customization', async () => {
32
- await measurePerformance(/*#__PURE__*/_jsx(Wrapper, {
33
- children: /*#__PURE__*/_jsx(ComponentConfigProvider, {
34
- value: {
35
- Button: {
36
- compact: true
37
- }
38
- },
39
- children: /*#__PURE__*/_jsx(ButtonList, {})
40
- })
41
- }));
42
- });
43
- });
@@ -1,134 +0,0 @@
1
- import React from 'react';
2
- import { fireEvent, screen } from '@testing-library/react';
3
- import { measurePerformance } from 'reassure';
4
- import { useComponentConfig } from '../../hooks/useComponentConfig';
5
- import { ComponentConfigProvider } from '../../system/ComponentConfigProvider';
6
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
7
- const consumerCount = 1000;
8
- const updateIterations = 50;
9
- const stableButtonConfig = () => ({
10
- compact: true
11
- });
12
- const stableAvatarConfig = () => ({});
13
- const ButtonConfigConsumer = _ref => {
14
- let {
15
- index
16
- } = _ref;
17
- const mergedProps = useComponentConfig('Button', {
18
- compact: false,
19
- variant: 'primary'
20
- });
21
- return /*#__PURE__*/_jsx("div", {
22
- "data-compact": String(mergedProps.compact),
23
- "data-index": index
24
- });
25
- };
26
- const ButtonConfigConsumerList = _ref2 => {
27
- let {
28
- count
29
- } = _ref2;
30
- return /*#__PURE__*/_jsx(_Fragment, {
31
- children: Array.from({
32
- length: count
33
- }, (_, index) => /*#__PURE__*/_jsx(ButtonConfigConsumer, {
34
- index: index
35
- }, index))
36
- });
37
- };
38
- const UnrelatedKeyUpdateHarness = _ref3 => {
39
- let {
40
- count
41
- } = _ref3;
42
- const [unrelatedUpdates, setUnrelatedUpdates] = React.useState(0);
43
- const value = React.useMemo(() => ({
44
- Avatar: () => unrelatedUpdates % 2 === 0 ? {} : {},
45
- Button: stableButtonConfig
46
- }), [unrelatedUpdates]);
47
- return /*#__PURE__*/_jsxs(_Fragment, {
48
- children: [/*#__PURE__*/_jsx("button", {
49
- "data-testid": "update-unrelated-key",
50
- onClick: () => setUnrelatedUpdates(v => v + 1),
51
- children: "Update unrelated key"
52
- }), /*#__PURE__*/_jsx(ComponentConfigProvider, {
53
- value: value,
54
- children: /*#__PURE__*/_jsx(ButtonConfigConsumerList, {
55
- count: count
56
- })
57
- })]
58
- });
59
- };
60
- const TargetKeyUpdateHarness = _ref4 => {
61
- let {
62
- count
63
- } = _ref4;
64
- const [targetUpdates, setTargetUpdates] = React.useState(0);
65
- const value = React.useMemo(() => ({
66
- Avatar: stableAvatarConfig,
67
- Button: () => ({
68
- compact: targetUpdates % 2 === 0
69
- })
70
- }), [targetUpdates]);
71
- return /*#__PURE__*/_jsxs(_Fragment, {
72
- children: [/*#__PURE__*/_jsx("button", {
73
- "data-testid": "update-target-key",
74
- onClick: () => setTargetUpdates(v => v + 1),
75
- children: "Update target key"
76
- }), /*#__PURE__*/_jsx(ComponentConfigProvider, {
77
- value: value,
78
- children: /*#__PURE__*/_jsx(ButtonConfigConsumerList, {
79
- count: count
80
- })
81
- })]
82
- });
83
- };
84
- describe('ComponentConfigProvider performance tests', () => {
85
- it('Scenario A: renders 1000 consumers under one provider', async () => {
86
- await measurePerformance(/*#__PURE__*/_jsx(ComponentConfigProvider, {
87
- value: {
88
- Button: stableButtonConfig
89
- },
90
- children: /*#__PURE__*/_jsx(ButtonConfigConsumerList, {
91
- count: consumerCount
92
- })
93
- }));
94
- });
95
- it('Scenario B: updates unrelated component key 50 times', async () => {
96
- const scenario = async () => {
97
- for (let i = 0; i < updateIterations; i += 1) {
98
- fireEvent.click(screen.getByTestId('update-unrelated-key'));
99
- }
100
- };
101
- await measurePerformance(/*#__PURE__*/_jsx(UnrelatedKeyUpdateHarness, {
102
- count: consumerCount
103
- }), {
104
- scenario
105
- });
106
- });
107
- it('Scenario C: updates target component key 50 times', async () => {
108
- const scenario = async () => {
109
- for (let i = 0; i < updateIterations; i += 1) {
110
- fireEvent.click(screen.getByTestId('update-target-key'));
111
- }
112
- };
113
- await measurePerformance(/*#__PURE__*/_jsx(TargetKeyUpdateHarness, {
114
- count: consumerCount
115
- }), {
116
- scenario
117
- });
118
- });
119
- it('Scenario D (baseline): no provider with 1000 consumers', async () => {
120
- await measurePerformance(/*#__PURE__*/_jsx(ButtonConfigConsumerList, {
121
- count: consumerCount
122
- }));
123
- });
124
- it('Scenario D (provider): provider enabled with 1000 consumers', async () => {
125
- await measurePerformance(/*#__PURE__*/_jsx(ComponentConfigProvider, {
126
- value: {
127
- Button: stableButtonConfig
128
- },
129
- children: /*#__PURE__*/_jsx(ButtonConfigConsumerList, {
130
- count: consumerCount
131
- })
132
- }));
133
- });
134
- });
@@ -1,332 +0,0 @@
1
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
- import React from 'react';
7
- import { fireEvent, screen } from '@testing-library/react';
8
- import { measurePerformance } from 'reassure';
9
- import { Button } from '../../buttons/Button';
10
- import { IconButton } from '../../buttons/IconButton';
11
- import { ListCell } from '../../cells/ListCell';
12
- import { Chip } from '../../chips/Chip';
13
- import { SearchInput } from '../../controls/SearchInput';
14
- import { TextInput } from '../../controls/TextInput';
15
- import { DotCount } from '../../dots/DotCount';
16
- import { Icon } from '../../icons/Icon';
17
- import { HStack } from '../../layout/HStack';
18
- import { VStack } from '../../layout/VStack';
19
- import { Avatar } from '../../media/Avatar';
20
- import { ComponentConfigProvider } from '../../system/ComponentConfigProvider';
21
- import { ThemeProvider } from '../../system/ThemeProvider';
22
- import { Tag } from '../../tag/Tag';
23
- import { defaultTheme } from '../../themes/defaultTheme';
24
- import { Text } from '../../typography/Text';
25
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
26
- const updateIterations = 50;
27
- const customPerfTheme = _objectSpread(_objectSpread({}, defaultTheme), {}, {
28
- id: 'component-config-perf-baseline-theme',
29
- lightColor: _objectSpread(_objectSpread({}, defaultTheme.lightColor), {}, {
30
- bgAlternate: defaultTheme.lightColor.bgSecondary
31
- }),
32
- darkColor: _objectSpread(_objectSpread({}, defaultTheme.darkColor), {}, {
33
- bgAlternate: defaultTheme.darkColor.bgSecondary
34
- })
35
- });
36
- const customComponentConfig = {
37
- Button: props => ({
38
- borderRadius: 200,
39
- height: props.compact ? 24 : 32,
40
- font: props.compact ? 'label1' : 'headline'
41
- }),
42
- IconButton: props => ({
43
- borderRadius: 200,
44
- height: props.compact ? 24 : 32,
45
- width: props.compact ? 24 : 32
46
- }),
47
- TextInput: props => ({
48
- bordered: false,
49
- inputBackground: 'bgAlternate',
50
- font: props.compact ? 'label2' : 'body',
51
- variant: 'foregroundMuted',
52
- focusedBorderWidth: 100
53
- }),
54
- SearchInput: props => ({
55
- borderRadius: 200,
56
- height: props.compact ? 24 : 32
57
- }),
58
- Chip: {
59
- borderRadius: 200
60
- },
61
- ListCell: props => {
62
- var _props$spacingVariant;
63
- const spacingVariant = (_props$spacingVariant = props.spacingVariant) !== null && _props$spacingVariant !== void 0 ? _props$spacingVariant : props.compact ? 'compact' : 'normal';
64
- return spacingVariant === 'normal' ? {
65
- minHeight: '36px'
66
- } : {};
67
- }
68
- };
69
- const ComplexStickerSheetLike = _ref => {
70
- let {
71
- tick = 0
72
- } = _ref;
73
- return /*#__PURE__*/_jsx(VStack, {
74
- alignItems: "center",
75
- background: "bgAlternate",
76
- gap: 2,
77
- padding: 2,
78
- children: /*#__PURE__*/_jsxs(HStack, {
79
- gap: 2,
80
- children: [/*#__PURE__*/_jsxs(VStack, {
81
- gap: 2,
82
- width: 420,
83
- children: [/*#__PURE__*/_jsx(HStack, {
84
- gap: 1,
85
- children: Array.from({
86
- length: 12
87
- }, (_, i) => /*#__PURE__*/_jsx(Button, {
88
- variant: "primary",
89
- children: "Primary"
90
- }, "primary-".concat(i)))
91
- }), /*#__PURE__*/_jsx(HStack, {
92
- gap: 1,
93
- children: Array.from({
94
- length: 12
95
- }, (_, i) => /*#__PURE__*/_jsx(Button, {
96
- compact: true,
97
- variant: "secondary",
98
- children: "Secondary"
99
- }, "secondary-".concat(i)))
100
- }), /*#__PURE__*/_jsx(VStack, {
101
- gap: 1,
102
- children: Array.from({
103
- length: 8
104
- }, (_, i) => /*#__PURE__*/_jsx(TextInput, {
105
- label: "Label ".concat(i),
106
- placeholder: "Input value"
107
- }, "input-".concat(i)))
108
- }), /*#__PURE__*/_jsx(VStack, {
109
- gap: 1,
110
- children: Array.from({
111
- length: 8
112
- }, (_, i) => /*#__PURE__*/_jsx(SearchInput, {
113
- label: "Search ".concat(i),
114
- onChangeText: () => {},
115
- placeholder: "Search value"
116
- }, "search-".concat(i)))
117
- }), /*#__PURE__*/_jsx(VStack, {
118
- gap: 1,
119
- children: Array.from({
120
- length: 8
121
- }, (_, i) => /*#__PURE__*/_jsx(ListCell, {
122
- accessibilityLabel: "List row ".concat(i),
123
- description: "$100",
124
- media: /*#__PURE__*/_jsx(Avatar, {
125
- name: "A",
126
- size: "m"
127
- }),
128
- onClick: () => {},
129
- subtitle: "Subtitle",
130
- title: "Row ".concat(i)
131
- }, "cell-".concat(i)))
132
- })]
133
- }), /*#__PURE__*/_jsxs(VStack, {
134
- gap: 2,
135
- width: 600,
136
- children: [/*#__PURE__*/_jsx(HStack, {
137
- gap: 1,
138
- children: Array.from({
139
- length: 16
140
- }, (_, i) => /*#__PURE__*/_jsx(IconButton, {
141
- accessibilityLabel: "Icon button ".concat(i),
142
- name: "add",
143
- variant: "tertiary"
144
- }, "icon-".concat(i)))
145
- }), /*#__PURE__*/_jsx(HStack, {
146
- flexWrap: "wrap",
147
- gap: 1,
148
- children: Array.from({
149
- length: 24
150
- }, (_, i) => /*#__PURE__*/_jsxs(Chip, {
151
- accessibilityLabel: "Chip ".concat(i),
152
- onClick: () => {},
153
- children: ["Chip ", i]
154
- }, "chip-".concat(i)))
155
- }), /*#__PURE__*/_jsx(HStack, {
156
- gap: 1,
157
- children: Array.from({
158
- length: 20
159
- }, (_, i) => /*#__PURE__*/_jsxs(Tag, {
160
- intent: i % 2 === 0 ? 'informational' : 'promotional',
161
- children: ["Tag ", i]
162
- }, "tag-".concat(i)))
163
- }), /*#__PURE__*/_jsx(HStack, {
164
- gap: 1,
165
- children: Array.from({
166
- length: 10
167
- }, (_, i) => /*#__PURE__*/_jsx(DotCount, {
168
- count: i + 1,
169
- children: /*#__PURE__*/_jsx(Icon, {
170
- name: "bell",
171
- size: "l"
172
- })
173
- }, "dot-".concat(i)))
174
- }), /*#__PURE__*/_jsx(Text, {
175
- font: "title3",
176
- children: "Complex story-like surface"
177
- })]
178
- })]
179
- })
180
- });
181
- };
182
- const BaselineHarness = () => /*#__PURE__*/_jsx(ThemeProvider, {
183
- activeColorScheme: "light",
184
- theme: defaultTheme,
185
- children: /*#__PURE__*/_jsx(ComplexStickerSheetLike, {})
186
- });
187
- const CustomThemeNoProviderHarness = () => /*#__PURE__*/_jsx(ThemeProvider, {
188
- activeColorScheme: "dark",
189
- theme: customPerfTheme,
190
- children: /*#__PURE__*/_jsx(ComplexStickerSheetLike, {})
191
- });
192
- const CustomThemeNoProviderStateUpdateHarness = () => {
193
- const [tick, setTick] = React.useState(0);
194
- return /*#__PURE__*/_jsxs(_Fragment, {
195
- children: [/*#__PURE__*/_jsx("button", {
196
- "data-testid": "update-page-state-no-provider",
197
- onClick: () => setTick(v => v + 1),
198
- children: "Update page state"
199
- }), /*#__PURE__*/_jsx(ThemeProvider, {
200
- activeColorScheme: "dark",
201
- theme: customPerfTheme,
202
- children: /*#__PURE__*/_jsx(ComplexStickerSheetLike, {
203
- tick: tick
204
- })
205
- })]
206
- });
207
- };
208
- const CustomHarness = () => /*#__PURE__*/_jsx(ThemeProvider, {
209
- activeColorScheme: "dark",
210
- theme: defaultTheme,
211
- children: /*#__PURE__*/_jsx(ComponentConfigProvider, {
212
- value: customComponentConfig,
213
- children: /*#__PURE__*/_jsx(ComplexStickerSheetLike, {})
214
- })
215
- });
216
- const UnrelatedConfigUpdateHarness = () => {
217
- const [tick, setTick] = React.useState(0);
218
- const value = React.useMemo(() => _objectSpread(_objectSpread({}, customComponentConfig), {}, {
219
- // Toggling a key that is not rendered by StickerSheet isolates cross-key churn.
220
- Tour: tick % 2 === 0 ? {} : {}
221
- }), [tick]);
222
- return /*#__PURE__*/_jsxs(_Fragment, {
223
- children: [/*#__PURE__*/_jsx("button", {
224
- "data-testid": "update-unrelated-config",
225
- onClick: () => setTick(v => v + 1),
226
- children: "Update unrelated config"
227
- }), /*#__PURE__*/_jsx(ThemeProvider, {
228
- activeColorScheme: "dark",
229
- theme: defaultTheme,
230
- children: /*#__PURE__*/_jsx(ComponentConfigProvider, {
231
- value: value,
232
- children: /*#__PURE__*/_jsx(ComplexStickerSheetLike, {})
233
- })
234
- })]
235
- });
236
- };
237
- const TargetedConfigUpdateHarness = () => {
238
- const [tick, setTick] = React.useState(0);
239
- const value = React.useMemo(() => _objectSpread(_objectSpread({}, customComponentConfig), {}, {
240
- // Intentionally churn a hot key used broadly in StickerSheet.
241
- Button: props => ({
242
- borderRadius: tick % 2 === 0 ? 200 : 300,
243
- height: props.compact ? 24 : 32,
244
- font: props.compact ? 'label1' : 'headline'
245
- })
246
- }), [tick]);
247
- return /*#__PURE__*/_jsxs(_Fragment, {
248
- children: [/*#__PURE__*/_jsx("button", {
249
- "data-testid": "update-targeted-config",
250
- onClick: () => setTick(v => v + 1),
251
- children: "Update targeted config"
252
- }), /*#__PURE__*/_jsx(ThemeProvider, {
253
- activeColorScheme: "dark",
254
- theme: defaultTheme,
255
- children: /*#__PURE__*/_jsx(ComponentConfigProvider, {
256
- value: value,
257
- children: /*#__PURE__*/_jsx(ComplexStickerSheetLike, {})
258
- })
259
- })]
260
- });
261
- };
262
- const RandomStateUpdateHarness = () => {
263
- const [tick, setTick] = React.useState(0);
264
- return /*#__PURE__*/_jsxs(_Fragment, {
265
- children: [/*#__PURE__*/_jsx("button", {
266
- "data-testid": "update-random-state",
267
- onClick: () => setTick(v => v + 1),
268
- children: "Update random state"
269
- }), /*#__PURE__*/_jsx(ThemeProvider, {
270
- activeColorScheme: "dark",
271
- theme: defaultTheme,
272
- children: /*#__PURE__*/_jsx(ComponentConfigProvider, {
273
- value: customComponentConfig,
274
- children: /*#__PURE__*/_jsx(ComplexStickerSheetLike, {
275
- tick: tick
276
- })
277
- })
278
- })]
279
- });
280
- };
281
- describe('ComponentConfig StickerSheet performance tests', () => {
282
- jest.setTimeout(60000);
283
- it('renders StickerSheet baseline (no provider)', async () => {
284
- await measurePerformance(/*#__PURE__*/_jsx(BaselineHarness, {}));
285
- });
286
- it('renders StickerSheet custom story (theme + component config)', async () => {
287
- await measurePerformance(/*#__PURE__*/_jsx(CustomHarness, {}));
288
- });
289
- it('renders custom theme with no provider', async () => {
290
- await measurePerformance(/*#__PURE__*/_jsx(CustomThemeNoProviderHarness, {}));
291
- });
292
- it('updates page state 50 times with custom theme and no provider', async () => {
293
- const scenario = async () => {
294
- for (let i = 0; i < updateIterations; i += 1) {
295
- fireEvent.click(screen.getByTestId('update-page-state-no-provider'));
296
- }
297
- };
298
- await measurePerformance(/*#__PURE__*/_jsx(CustomThemeNoProviderStateUpdateHarness, {}), {
299
- scenario
300
- });
301
- });
302
- it('updates unrelated config key 50 times', async () => {
303
- const scenario = async () => {
304
- for (let i = 0; i < updateIterations; i += 1) {
305
- fireEvent.click(screen.getByTestId('update-unrelated-config'));
306
- }
307
- };
308
- await measurePerformance(/*#__PURE__*/_jsx(UnrelatedConfigUpdateHarness, {}), {
309
- scenario
310
- });
311
- });
312
- it('updates targeted config key 50 times', async () => {
313
- const scenario = async () => {
314
- for (let i = 0; i < updateIterations; i += 1) {
315
- fireEvent.click(screen.getByTestId('update-targeted-config'));
316
- }
317
- };
318
- await measurePerformance(/*#__PURE__*/_jsx(TargetedConfigUpdateHarness, {}), {
319
- scenario
320
- });
321
- });
322
- it('updates random local state 50 times (provider enabled)', async () => {
323
- const scenario = async () => {
324
- for (let i = 0; i < updateIterations; i += 1) {
325
- fireEvent.click(screen.getByTestId('update-random-state'));
326
- }
327
- };
328
- await measurePerformance(/*#__PURE__*/_jsx(RandomStateUpdateHarness, {}), {
329
- scenario
330
- });
331
- });
332
- });
@@ -1,8 +0,0 @@
1
- # Component Config Perf Tests
2
-
3
- This folder contains manual performance benchmarks for component config behavior.
4
-
5
- ## Run
6
-
7
- - Web + mobile together:
8
- - `yarn perf:component-config`
@@ -1,58 +0,0 @@
1
- const _excluded = ["searchNode"];
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
6
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
- function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
8
- 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; }
9
- import { figma } from '@figma/code-connect';
10
- import { HStack } from '../../layout';
11
- import { SectionHeader } from '../SectionHeader';
12
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
- figma.connect(SectionHeader, 'https://www.figma.com/design/k5CtyJccNQUGMI5bI4lJ2g/✨-CDS-Components?node-id=19270%3A19118', {
14
- imports: ["import { SectionHeader } from '@coinbase/cds-web/section-header/SectionHeader'"],
15
- props: {
16
- title: figma.children('string.section title'),
17
- balance: figma.enum('type', {
18
- 'with balance (bottom)': figma.children(['Balance Header', 'Subdetails'])
19
- }),
20
- searchNode: figma.boolean('show search', {
21
- true: figma.children('Search Input (Desktop)'),
22
- false: undefined
23
- }),
24
- spacingTop: figma.boolean('show bottom spacing', {
25
- true: undefined,
26
- false: 2
27
- }),
28
- spacingVertical: figma.boolean('show bottom spacing', {
29
- true: undefined,
30
- false: 0
31
- }),
32
- start: figma.boolean('show start', {
33
- true: figma.instance('↳ start'),
34
- false: undefined
35
- }),
36
- icon: figma.boolean('show icon', {
37
- true: figma.children('icon'),
38
- false: undefined
39
- }),
40
- description: figma.boolean('show description', {
41
- true: figma.string('↳ string'),
42
- false: undefined
43
- }),
44
- end: figma.boolean('show start', {
45
- true: figma.instance('↳ end'),
46
- false: undefined
47
- })
48
- },
49
- example: _ref => {
50
- let {
51
- searchNode
52
- } = _ref,
53
- props = _objectWithoutProperties(_ref, _excluded);
54
- return /*#__PURE__*/_jsxs(HStack, {
55
- children: [/*#__PURE__*/_jsx(SectionHeader, _objectSpread({}, props)), searchNode]
56
- });
57
- }
58
- });