@sanity/ui 3.3.2 → 3.3.4

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 (437) hide show
  1. package/dist/index.d.mts +8 -8
  2. package/dist/index.d.mts.map +1 -1
  3. package/dist/index.d.ts +8 -8
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +16 -16
  6. package/dist/index.mjs +16 -16
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/tabList.js +2 -2
  9. package/dist/tabList.mjs +2 -2
  10. package/dist/tabList.mjs.map +1 -1
  11. package/dist/useTheme.d.mts +3 -3
  12. package/dist/useTheme.d.mts.map +1 -1
  13. package/dist/useTheme.d.ts +3 -3
  14. package/dist/useTheme.d.ts.map +1 -1
  15. package/package.json +8 -13
  16. package/exports/_visual-editing.ts +0 -32
  17. package/exports/index.ts +0 -1
  18. package/exports/theme.ts +0 -1
  19. package/src/core/_compat.ts +0 -294
  20. package/src/core/components/autocomplete/autocomplete.styles.tsx +0 -39
  21. package/src/core/components/autocomplete/autocomplete.tsx +0 -775
  22. package/src/core/components/autocomplete/autocompleteOption.tsx +0 -46
  23. package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
  24. package/src/core/components/autocomplete/constants.ts +0 -28
  25. package/src/core/components/autocomplete/index.ts +0 -2
  26. package/src/core/components/autocomplete/types.ts +0 -108
  27. package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +0 -18
  28. package/src/core/components/breadcrumbs/breadcrumbs.test.tsx +0 -54
  29. package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -136
  30. package/src/core/components/breadcrumbs/index.ts +0 -1
  31. package/src/core/components/dialog/dialog.tsx +0 -433
  32. package/src/core/components/dialog/dialogContext.ts +0 -20
  33. package/src/core/components/dialog/dialogProvider.tsx +0 -35
  34. package/src/core/components/dialog/index.ts +0 -4
  35. package/src/core/components/dialog/styles.ts +0 -77
  36. package/src/core/components/dialog/useDialog.ts +0 -11
  37. package/src/core/components/hotkeys/hotkeys.test.tsx +0 -47
  38. package/src/core/components/hotkeys/hotkeys.tsx +0 -68
  39. package/src/core/components/hotkeys/index.ts +0 -1
  40. package/src/core/components/index.ts +0 -9
  41. package/src/core/components/menu/helpers.ts +0 -82
  42. package/src/core/components/menu/index.ts +0 -5
  43. package/src/core/components/menu/menu.spacing.test.tsx +0 -68
  44. package/src/core/components/menu/menu.test.tsx +0 -128
  45. package/src/core/components/menu/menu.tsx +0 -180
  46. package/src/core/components/menu/menuButton.tsx +0 -276
  47. package/src/core/components/menu/menuContext.ts +0 -18
  48. package/src/core/components/menu/menuDivider.ts +0 -24
  49. package/src/core/components/menu/menuGroup.spacing.test.tsx +0 -66
  50. package/src/core/components/menu/menuGroup.tsx +0 -237
  51. package/src/core/components/menu/menuItem.spacing.test.tsx +0 -62
  52. package/src/core/components/menu/menuItem.tsx +0 -201
  53. package/src/core/components/menu/useMenu.ts +0 -21
  54. package/src/core/components/menu/useMenuController.ts +0 -233
  55. package/src/core/components/skeleton/index.ts +0 -2
  56. package/src/core/components/skeleton/skeleton.tsx +0 -58
  57. package/src/core/components/skeleton/styles.ts +0 -50
  58. package/src/core/components/skeleton/textSkeleton.tsx +0 -122
  59. package/src/core/components/tab/index.ts +0 -3
  60. package/src/core/components/tab/tab.tsx +0 -102
  61. package/src/core/components/tab/tabList.test.tsx +0 -50
  62. package/src/core/components/tab/tabList.tsx +0 -71
  63. package/src/core/components/tab/tabPanel.tsx +0 -39
  64. package/src/core/components/toast/index.ts +0 -4
  65. package/src/core/components/toast/styles.ts +0 -77
  66. package/src/core/components/toast/toast.test.tsx +0 -106
  67. package/src/core/components/toast/toast.tsx +0 -199
  68. package/src/core/components/toast/toastContext.ts +0 -7
  69. package/src/core/components/toast/toastLayer.tsx +0 -52
  70. package/src/core/components/toast/toastProvider.tsx +0 -113
  71. package/src/core/components/toast/toastState.ts +0 -6
  72. package/src/core/components/toast/types.ts +0 -26
  73. package/src/core/components/toast/useToast.ts +0 -25
  74. package/src/core/components/tree/helpers.ts +0 -105
  75. package/src/core/components/tree/index.ts +0 -4
  76. package/src/core/components/tree/style.ts +0 -105
  77. package/src/core/components/tree/tree.test.tsx +0 -60
  78. package/src/core/components/tree/tree.tsx +0 -242
  79. package/src/core/components/tree/treeContext.ts +0 -10
  80. package/src/core/components/tree/treeGroup.tsx +0 -29
  81. package/src/core/components/tree/treeItem.test.tsx +0 -70
  82. package/src/core/components/tree/treeItem.tsx +0 -225
  83. package/src/core/components/tree/types.ts +0 -25
  84. package/src/core/components/tree/useTree.ts +0 -17
  85. package/src/core/constants.ts +0 -79
  86. package/src/core/helpers/animation.ts +0 -27
  87. package/src/core/helpers/element.ts +0 -55
  88. package/src/core/helpers/focus.ts +0 -100
  89. package/src/core/helpers/index.ts +0 -4
  90. package/src/core/helpers/scroll.ts +0 -15
  91. package/src/core/hooks/index.ts +0 -13
  92. package/src/core/hooks/useArrayProp.ts +0 -17
  93. package/src/core/hooks/useClickOutside.test.tsx +0 -510
  94. package/src/core/hooks/useClickOutside.ts +0 -118
  95. package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -119
  96. package/src/core/hooks/useClickOutsideEvent.ts +0 -73
  97. package/src/core/hooks/useCustomValidity.ts +0 -13
  98. package/src/core/hooks/useDelayed.test.ts +0 -89
  99. package/src/core/hooks/useDelayedState.ts +0 -36
  100. package/src/core/hooks/useElementRect/index.ts +0 -1
  101. package/src/core/hooks/useElementRect/useElementRect.ts +0 -14
  102. package/src/core/hooks/useElementSize.ts +0 -19
  103. package/src/core/hooks/useForwardedRef.ts +0 -20
  104. package/src/core/hooks/useGlobalKeyDown.ts +0 -24
  105. package/src/core/hooks/useIsomorphicEffect.ts +0 -7
  106. package/src/core/hooks/useMatchMedia.ts +0 -28
  107. package/src/core/hooks/useMediaIndex/index.ts +0 -1
  108. package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -37
  109. package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -102
  110. package/src/core/hooks/useMounted.ts +0 -15
  111. package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -58
  112. package/src/core/hooks/usePrefersDark.test.tsx +0 -21
  113. package/src/core/hooks/usePrefersDark.ts +0 -16
  114. package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -58
  115. package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -21
  116. package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
  117. package/src/core/index.ts +0 -10
  118. package/src/core/lib/createGlobalScopedContext.ts +0 -37
  119. package/src/core/lib/globalScope.ts +0 -20
  120. package/src/core/lib/isRecord.ts +0 -3
  121. package/src/core/middleware/origin.ts +0 -47
  122. package/src/core/observers/elementSizeObserver.ts +0 -117
  123. package/src/core/observers/index.ts +0 -2
  124. package/src/core/observers/resizeObserver.ts +0 -9
  125. package/src/core/primitives/_selectable/index.ts +0 -1
  126. package/src/core/primitives/_selectable/selectable.tsx +0 -15
  127. package/src/core/primitives/_selectable/style.ts +0 -115
  128. package/src/core/primitives/avatar/avatar.tsx +0 -200
  129. package/src/core/primitives/avatar/avatarCounter.tsx +0 -91
  130. package/src/core/primitives/avatar/avatarStack.tsx +0 -101
  131. package/src/core/primitives/avatar/index.ts +0 -4
  132. package/src/core/primitives/avatar/styles.ts +0 -167
  133. package/src/core/primitives/avatar/types.ts +0 -17
  134. package/src/core/primitives/badge/badge.test.tsx +0 -17
  135. package/src/core/primitives/badge/badge.tsx +0 -72
  136. package/src/core/primitives/badge/index.ts +0 -1
  137. package/src/core/primitives/badge/styles.ts +0 -20
  138. package/src/core/primitives/badge/types.ts +0 -8
  139. package/src/core/primitives/box/box.test.tsx +0 -155
  140. package/src/core/primitives/box/box.tsx +0 -162
  141. package/src/core/primitives/box/index.ts +0 -1
  142. package/src/core/primitives/button/button.test.tsx +0 -86
  143. package/src/core/primitives/button/button.tsx +0 -214
  144. package/src/core/primitives/button/index.ts +0 -1
  145. package/src/core/primitives/button/styles.ts +0 -118
  146. package/src/core/primitives/card/card.tsx +0 -125
  147. package/src/core/primitives/card/index.ts +0 -2
  148. package/src/core/primitives/card/styles.ts +0 -147
  149. package/src/core/primitives/card/types.ts +0 -12
  150. package/src/core/primitives/checkbox/checkbox.tsx +0 -73
  151. package/src/core/primitives/checkbox/index.ts +0 -1
  152. package/src/core/primitives/checkbox/styles.ts +0 -128
  153. package/src/core/primitives/code/code.tsx +0 -56
  154. package/src/core/primitives/code/index.ts +0 -1
  155. package/src/core/primitives/code/refractor.tsx +0 -22
  156. package/src/core/primitives/code/styles.ts +0 -77
  157. package/src/core/primitives/container/container.tsx +0 -55
  158. package/src/core/primitives/container/index.ts +0 -2
  159. package/src/core/primitives/container/styles.ts +0 -23
  160. package/src/core/primitives/container/types.ts +0 -6
  161. package/src/core/primitives/flex/flex.tsx +0 -63
  162. package/src/core/primitives/flex/index.ts +0 -1
  163. package/src/core/primitives/grid/grid.test.tsx +0 -86
  164. package/src/core/primitives/grid/grid.tsx +0 -77
  165. package/src/core/primitives/grid/index.ts +0 -1
  166. package/src/core/primitives/heading/heading.tsx +0 -89
  167. package/src/core/primitives/heading/index.ts +0 -1
  168. package/src/core/primitives/heading/styles.ts +0 -64
  169. package/src/core/primitives/heading/types.ts +0 -7
  170. package/src/core/primitives/index.ts +0 -27
  171. package/src/core/primitives/inline/index.ts +0 -1
  172. package/src/core/primitives/inline/inline.test.tsx +0 -55
  173. package/src/core/primitives/inline/inline.tsx +0 -66
  174. package/src/core/primitives/inline/styles.ts +0 -32
  175. package/src/core/primitives/inline/types.ts +0 -6
  176. package/src/core/primitives/kbd/index.ts +0 -1
  177. package/src/core/primitives/kbd/kbd.tsx +0 -73
  178. package/src/core/primitives/label/index.ts +0 -1
  179. package/src/core/primitives/label/label.tsx +0 -88
  180. package/src/core/primitives/label/styles.ts +0 -45
  181. package/src/core/primitives/popover/constants.ts +0 -22
  182. package/src/core/primitives/popover/floating-ui/size.ts +0 -99
  183. package/src/core/primitives/popover/helpers.ts +0 -31
  184. package/src/core/primitives/popover/index.ts +0 -2
  185. package/src/core/primitives/popover/popover.tsx +0 -512
  186. package/src/core/primitives/popover/popoverCard.tsx +0 -167
  187. package/src/core/primitives/popover/types.ts +0 -6
  188. package/src/core/primitives/radio/index.ts +0 -1
  189. package/src/core/primitives/radio/radio.tsx +0 -51
  190. package/src/core/primitives/radio/styles.ts +0 -117
  191. package/src/core/primitives/select/index.ts +0 -1
  192. package/src/core/primitives/select/select.test.tsx +0 -56
  193. package/src/core/primitives/select/select.tsx +0 -95
  194. package/src/core/primitives/select/styles.ts +0 -166
  195. package/src/core/primitives/spinner/index.ts +0 -1
  196. package/src/core/primitives/spinner/spinner.tsx +0 -46
  197. package/src/core/primitives/stack/index.ts +0 -1
  198. package/src/core/primitives/stack/stack.test.tsx +0 -61
  199. package/src/core/primitives/stack/stack.tsx +0 -59
  200. package/src/core/primitives/stack/styles.ts +0 -33
  201. package/src/core/primitives/switch/index.ts +0 -1
  202. package/src/core/primitives/switch/styles.ts +0 -173
  203. package/src/core/primitives/switch/switch.tsx +0 -68
  204. package/src/core/primitives/text/index.ts +0 -1
  205. package/src/core/primitives/text/styles.ts +0 -74
  206. package/src/core/primitives/text/text.tsx +0 -90
  207. package/src/core/primitives/textArea/index.ts +0 -1
  208. package/src/core/primitives/textArea/textArea.tsx +0 -120
  209. package/src/core/primitives/textInput/index.ts +0 -1
  210. package/src/core/primitives/textInput/textInput.test.tsx +0 -52
  211. package/src/core/primitives/textInput/textInput.tsx +0 -398
  212. package/src/core/primitives/tooltip/constants.ts +0 -23
  213. package/src/core/primitives/tooltip/index.ts +0 -2
  214. package/src/core/primitives/tooltip/tooltip.test.tsx +0 -485
  215. package/src/core/primitives/tooltip/tooltip.tsx +0 -497
  216. package/src/core/primitives/tooltip/tooltipCard.tsx +0 -110
  217. package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
  218. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
  219. package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -57
  220. package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -12
  221. package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
  222. package/src/core/primitives/types.ts +0 -179
  223. package/src/core/styles/border/borderStyle.ts +0 -56
  224. package/src/core/styles/border/index.ts +0 -2
  225. package/src/core/styles/border/types.ts +0 -10
  226. package/src/core/styles/box/boxStyle.ts +0 -69
  227. package/src/core/styles/box/index.ts +0 -2
  228. package/src/core/styles/box/types.ts +0 -11
  229. package/src/core/styles/card/_cardColorStyle.ts +0 -108
  230. package/src/core/styles/card/index.ts +0 -1
  231. package/src/core/styles/flex/flexItemStyle.ts +0 -27
  232. package/src/core/styles/flex/flexStyle.ts +0 -70
  233. package/src/core/styles/flex/index.ts +0 -3
  234. package/src/core/styles/flex/types.ts +0 -24
  235. package/src/core/styles/focusRing/index.ts +0 -25
  236. package/src/core/styles/font/codeFontStyle.ts +0 -13
  237. package/src/core/styles/font/headingFontStyle.ts +0 -13
  238. package/src/core/styles/font/index.ts +0 -6
  239. package/src/core/styles/font/labelFontStyle.ts +0 -13
  240. package/src/core/styles/font/responsiveFont.ts +0 -100
  241. package/src/core/styles/font/textAlignStyle.ts +0 -19
  242. package/src/core/styles/font/textFontStyle.ts +0 -13
  243. package/src/core/styles/font/types.ts +0 -33
  244. package/src/core/styles/grid/gridItemStyle.ts +0 -82
  245. package/src/core/styles/grid/gridStyle.ts +0 -109
  246. package/src/core/styles/grid/index.ts +0 -3
  247. package/src/core/styles/grid/types.ts +0 -37
  248. package/src/core/styles/helpers.ts +0 -72
  249. package/src/core/styles/index.ts +0 -5
  250. package/src/core/styles/input/index.ts +0 -2
  251. package/src/core/styles/input/responsiveInputPaddingStyle.ts +0 -78
  252. package/src/core/styles/input/textInputStyle.ts +0 -263
  253. package/src/core/styles/internal.ts +0 -12
  254. package/src/core/styles/margin/index.ts +0 -2
  255. package/src/core/styles/margin/marginStyle.ts +0 -22
  256. package/src/core/styles/margin/marginsStyle.test.ts +0 -34
  257. package/src/core/styles/margin/types.ts +0 -9
  258. package/src/core/styles/padding/index.ts +0 -2
  259. package/src/core/styles/padding/paddingStyle.test.ts +0 -34
  260. package/src/core/styles/padding/paddingStyle.ts +0 -22
  261. package/src/core/styles/padding/types.ts +0 -12
  262. package/src/core/styles/radius/index.ts +0 -2
  263. package/src/core/styles/radius/radiusStyle.ts +0 -23
  264. package/src/core/styles/radius/types.ts +0 -8
  265. package/src/core/styles/shadow/index.ts +0 -2
  266. package/src/core/styles/shadow/shadowStyle.ts +0 -29
  267. package/src/core/styles/shadow/types.ts +0 -6
  268. package/src/core/styles/types.ts +0 -8
  269. package/src/core/theme/index.ts +0 -5
  270. package/src/core/theme/theme.test.tsx +0 -77
  271. package/src/core/theme/themeColorProvider.tsx +0 -29
  272. package/src/core/theme/themeContext.ts +0 -10
  273. package/src/core/theme/themeProvider.tsx +0 -62
  274. package/src/core/theme/types.ts +0 -12
  275. package/src/core/theme/useRootTheme.ts +0 -18
  276. package/src/core/theme/useTheme.ts +0 -18
  277. package/src/core/types/avatar.ts +0 -14
  278. package/src/core/types/badge.ts +0 -12
  279. package/src/core/types/box.ts +0 -19
  280. package/src/core/types/button.ts +0 -21
  281. package/src/core/types/card.ts +0 -6
  282. package/src/core/types/component.ts +0 -32
  283. package/src/core/types/dialog.ts +0 -4
  284. package/src/core/types/flex.ts +0 -30
  285. package/src/core/types/grid.ts +0 -14
  286. package/src/core/types/gridItem.ts +0 -29
  287. package/src/core/types/index.ts +0 -15
  288. package/src/core/types/placement.ts +0 -18
  289. package/src/core/types/popover.ts +0 -4
  290. package/src/core/types/radius.ts +0 -4
  291. package/src/core/types/selectable.ts +0 -6
  292. package/src/core/types/text.ts +0 -4
  293. package/src/core/utils/arrow/arrow.tsx +0 -124
  294. package/src/core/utils/arrow/cmds.ts +0 -91
  295. package/src/core/utils/arrow/index.ts +0 -1
  296. package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -105
  297. package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -7
  298. package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
  299. package/src/core/utils/boundaryElement/index.ts +0 -3
  300. package/src/core/utils/boundaryElement/types.ts +0 -7
  301. package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -26
  302. package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -22
  303. package/src/core/utils/conditionalWrapper/index.ts +0 -1
  304. package/src/core/utils/elementQuery/elementQuery.tsx +0 -53
  305. package/src/core/utils/elementQuery/helpers.ts +0 -27
  306. package/src/core/utils/elementQuery/index.ts +0 -1
  307. package/src/core/utils/errorBoundary.tsx +0 -48
  308. package/src/core/utils/getElementRef.ts +0 -31
  309. package/src/core/utils/index.ts +0 -9
  310. package/src/core/utils/layer/getLayerContext.test.ts +0 -32
  311. package/src/core/utils/layer/getLayerContext.ts +0 -21
  312. package/src/core/utils/layer/index.ts +0 -4
  313. package/src/core/utils/layer/layer.test.tsx +0 -113
  314. package/src/core/utils/layer/layer.tsx +0 -99
  315. package/src/core/utils/layer/layerContext.ts +0 -7
  316. package/src/core/utils/layer/layerProvider.tsx +0 -111
  317. package/src/core/utils/layer/types.ts +0 -9
  318. package/src/core/utils/layer/useLayer.ts +0 -28
  319. package/src/core/utils/portal/index.ts +0 -4
  320. package/src/core/utils/portal/portal.test.tsx +0 -108
  321. package/src/core/utils/portal/portal.ts +0 -32
  322. package/src/core/utils/portal/portalContext.ts +0 -31
  323. package/src/core/utils/portal/portalProvider.tsx +0 -48
  324. package/src/core/utils/portal/types.ts +0 -9
  325. package/src/core/utils/portal/usePortal.ts +0 -25
  326. package/src/core/utils/spanWithTextOverflow.tsx +0 -10
  327. package/src/core/utils/srOnly/index.ts +0 -1
  328. package/src/core/utils/srOnly/srOnly.tsx +0 -36
  329. package/src/core/utils/virtualList/index.ts +0 -1
  330. package/src/core/utils/virtualList/virtualList.tsx +0 -201
  331. package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -86
  332. package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -58
  333. package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -27
  334. package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -60
  335. package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -66
  336. package/src/theme/build/_deprecated/color/color.test.ts +0 -67
  337. package/src/theme/build/_deprecated/color/defaults.ts +0 -391
  338. package/src/theme/build/_deprecated/color/factory.ts +0 -178
  339. package/src/theme/build/_deprecated/color/index.ts +0 -1
  340. package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -86
  341. package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -58
  342. package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -23
  343. package/src/theme/build/buildColorTheme.test.ts +0 -185
  344. package/src/theme/build/buildColorTheme.ts +0 -507
  345. package/src/theme/build/buildTheme.test.ts +0 -89
  346. package/src/theme/build/buildTheme.ts +0 -36
  347. package/src/theme/build/colorToken/colorToken.ts +0 -19
  348. package/src/theme/build/colorToken/compileColorToken.ts +0 -21
  349. package/src/theme/build/colorToken/index.ts +0 -2
  350. package/src/theme/build/colorToken/types.ts +0 -6
  351. package/src/theme/build/index.ts +0 -3
  352. package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
  353. package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
  354. package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
  355. package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
  356. package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -70
  357. package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
  358. package/src/theme/build/lib/color-fns/convert.ts +0 -150
  359. package/src/theme/build/lib/color-fns/index.ts +0 -6
  360. package/src/theme/build/lib/color-fns/parse.ts +0 -60
  361. package/src/theme/build/lib/color-fns/rgba.ts +0 -10
  362. package/src/theme/build/lib/color-fns/types.ts +0 -28
  363. package/src/theme/build/lib/isRecord.ts +0 -3
  364. package/src/theme/build/lib/lazy.ts +0 -30
  365. package/src/theme/build/lib/utils.ts +0 -19
  366. package/src/theme/build/merge.ts +0 -31
  367. package/src/theme/build/mixThemeColor.test.ts +0 -23
  368. package/src/theme/build/mixThemeColor.ts +0 -53
  369. package/src/theme/build/renderColorTheme.ts +0 -538
  370. package/src/theme/build/renderColorValue.ts +0 -83
  371. package/src/theme/build/resolveColorTokens.ts +0 -274
  372. package/src/theme/build/theme.test.ts +0 -29
  373. package/src/theme/config/helpers.ts +0 -60
  374. package/src/theme/config/index.ts +0 -4
  375. package/src/theme/config/system.ts +0 -117
  376. package/src/theme/config/tokens/color/index.ts +0 -1
  377. package/src/theme/config/tokens/color/types.ts +0 -135
  378. package/src/theme/config/tokens/index.ts +0 -4
  379. package/src/theme/config/tokens/parseTokenKey.test.ts +0 -66
  380. package/src/theme/config/tokens/parseTokenKey.ts +0 -67
  381. package/src/theme/config/tokens/parseTokenValue.test.ts +0 -44
  382. package/src/theme/config/tokens/parseTokenValue.ts +0 -134
  383. package/src/theme/config/tokens/types.ts +0 -53
  384. package/src/theme/config/types.ts +0 -46
  385. package/src/theme/defaults/colorPalette.ts +0 -5
  386. package/src/theme/defaults/colorTokens.ts +0 -648
  387. package/src/theme/defaults/config.ts +0 -84
  388. package/src/theme/defaults/fonts.ts +0 -227
  389. package/src/theme/getScopedTheme.ts +0 -103
  390. package/src/theme/index.ts +0 -5
  391. package/src/theme/system/avatar.ts +0 -14
  392. package/src/theme/system/color/_constants.ts +0 -45
  393. package/src/theme/system/color/_helpers.ts +0 -28
  394. package/src/theme/system/color/_system.ts +0 -40
  395. package/src/theme/system/color/avatar.ts +0 -15
  396. package/src/theme/system/color/badge.ts +0 -16
  397. package/src/theme/system/color/button.ts +0 -17
  398. package/src/theme/system/color/color.ts +0 -34
  399. package/src/theme/system/color/index.ts +0 -13
  400. package/src/theme/system/color/input.ts +0 -25
  401. package/src/theme/system/color/kbd.ts +0 -8
  402. package/src/theme/system/color/selectable.ts +0 -12
  403. package/src/theme/system/color/shadow.ts +0 -7
  404. package/src/theme/system/color/state.ts +0 -43
  405. package/src/theme/system/color/syntax.ts +0 -41
  406. package/src/theme/system/css.ts +0 -14
  407. package/src/theme/system/focusRing.ts +0 -7
  408. package/src/theme/system/font.ts +0 -52
  409. package/src/theme/system/index.ts +0 -11
  410. package/src/theme/system/input.ts +0 -33
  411. package/src/theme/system/layer.ts +0 -8
  412. package/src/theme/system/shadow.ts +0 -19
  413. package/src/theme/system/styles.ts +0 -13
  414. package/src/theme/system/theme.ts +0 -142
  415. package/src/theme/system/v0/avatar.ts +0 -10
  416. package/src/theme/system/v0/color/_generic.ts +0 -35
  417. package/src/theme/system/v0/color/_system.ts +0 -18
  418. package/src/theme/system/v0/color/base.ts +0 -21
  419. package/src/theme/system/v0/color/button.ts +0 -56
  420. package/src/theme/system/v0/color/card.ts +0 -25
  421. package/src/theme/system/v0/color/color.ts +0 -51
  422. package/src/theme/system/v0/color/index.ts +0 -11
  423. package/src/theme/system/v0/color/input.ts +0 -40
  424. package/src/theme/system/v0/color/muted.ts +0 -37
  425. package/src/theme/system/v0/color/selectable.ts +0 -42
  426. package/src/theme/system/v0/color/solid.ts +0 -37
  427. package/src/theme/system/v0/color/spot.ts +0 -14
  428. package/src/theme/system/v0/index.ts +0 -3
  429. package/src/theme/system/v0/input.ts +0 -23
  430. package/src/theme/versioning/getTheme_v2.ts +0 -72
  431. package/src/theme/versioning/index.ts +0 -5
  432. package/src/theme/versioning/is_v0.ts +0 -6
  433. package/src/theme/versioning/is_v2.ts +0 -6
  434. package/src/theme/versioning/themeColor_v0_v2.ts +0 -250
  435. package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -50
  436. package/src/theme/versioning/v0_v2.ts +0 -106
  437. package/src/theme/versioning/v2_v0.ts +0 -153
@@ -1,485 +0,0 @@
1
- /** @vitest-environment jsdom */
2
-
3
- import {act, fireEvent, screen} from '@testing-library/react'
4
-
5
- // oxlint-disable-next-line no-unassigned-import
6
- import '../../../../test/mocks/resizeObserver.mock'
7
- // oxlint-disable-next-line no-unassigned-import
8
- import '../../../../test/mocks/matchMedia.mock'
9
- import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest'
10
-
11
- import {render} from '../../../../test'
12
- import {Button, Text} from '../../primitives'
13
- import {Tooltip, TooltipDelayGroupProvider} from '../tooltip'
14
-
15
- beforeEach(() => {
16
- vi.useFakeTimers()
17
- })
18
-
19
- // Run all pending timers and switch back to real timers
20
- afterEach(() => {
21
- vi.runOnlyPendingTimers()
22
- vi.useRealTimers()
23
- })
24
-
25
- describe('Tooltip', () => {
26
- describe('Using same delay for open and close', () => {
27
- it('should hide and show the tooltip content when hovered, with no delay', () => {
28
- render(
29
- <Tooltip content={<Text size={1}>{'Tooltip content'}</Text>} placement={'top'}>
30
- <Button mode="bleed" text="Hover me" />
31
- </Tooltip>,
32
- )
33
-
34
- const button = screen.getByText('Hover me')
35
-
36
- // Validate tooltip content is not rendered
37
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
38
-
39
- fireEvent.mouseEnter(button)
40
-
41
- // Validate tooltip content is rendered
42
- screen.getByText('Tooltip content')
43
-
44
- fireEvent.mouseOut(button)
45
- // Validate tooltip content is not rendered anymore
46
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
47
- })
48
- it('should support delays to show and hide the tooltip.', () => {
49
- vi.useFakeTimers()
50
- const delay = 200
51
-
52
- render(
53
- <Tooltip
54
- content={<Text size={1}>{'Tooltip content'}</Text>}
55
- placement={'top'}
56
- delay={delay}
57
- >
58
- <Button mode="bleed" text="Hover me" />
59
- </Tooltip>,
60
- )
61
-
62
- const button = screen.getByText('Hover me')
63
-
64
- // Validate tooltip content is not rendered
65
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
66
-
67
- fireEvent.mouseEnter(button)
68
-
69
- // oxlint-disable-next-line no-floating-promises
70
- act(() => vi.advanceTimersByTime(delay / 2))
71
- // Content should not be rendered yet
72
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
73
- // oxlint-disable-next-line no-floating-promises
74
- act(() => vi.advanceTimersByTime(delay / 2))
75
-
76
- // Validate tooltip content is rendered
77
- screen.getByText('Tooltip content')
78
-
79
- fireEvent.mouseOut(button)
80
- // Validate tooltip content is still showing.
81
- screen.getByText('Tooltip content')
82
- // oxlint-disable-next-line no-floating-promises
83
- act(() => vi.advanceTimersByTime(delay))
84
- // Validate tooltip content is not rendered anymore
85
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
86
- })
87
- it('should support different open and close delays to show and hide the tooltip.', () => {
88
- vi.useFakeTimers()
89
- const openDelay = 200
90
- const closeDelay = 150
91
-
92
- render(
93
- <Tooltip
94
- content={<Text size={1}>{'Tooltip content'}</Text>}
95
- placement={'top'}
96
- delay={{
97
- open: openDelay,
98
- close: closeDelay,
99
- }}
100
- >
101
- <Button mode="bleed" text="Hover me" />
102
- </Tooltip>,
103
- )
104
-
105
- const button = screen.getByText('Hover me')
106
-
107
- // Validate tooltip content is not rendered
108
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
109
-
110
- fireEvent.mouseEnter(button)
111
-
112
- // oxlint-disable-next-line no-floating-promises
113
- act(() => vi.advanceTimersByTime(openDelay / 2))
114
- // Content should not be rendered yet
115
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
116
- // oxlint-disable-next-line no-floating-promises
117
- act(() => vi.advanceTimersByTime(openDelay / 2))
118
-
119
- // Validate tooltip content is rendered
120
- screen.getByText('Tooltip content')
121
-
122
- fireEvent.mouseOut(button)
123
- // Validate tooltip content is still showing.
124
- screen.getByText('Tooltip content')
125
- // oxlint-disable-next-line no-floating-promises
126
- act(() => vi.advanceTimersByTime(closeDelay))
127
- // Validate tooltip content is not rendered anymore
128
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
129
- })
130
- })
131
-
132
- describe('Using the <TooltipDelayGroupProvider />', () => {
133
- it('should support groups with the same delay to open and close.', () => {
134
- const delay = 150
135
-
136
- vi.useFakeTimers()
137
- render(
138
- <TooltipDelayGroupProvider delay={delay}>
139
- <Tooltip content={<Text size={1}>{'Tooltip 1'}</Text>} placement={'top'} delay={400}>
140
- <Button mode="bleed" text="Button 1" />
141
- </Tooltip>
142
- <Tooltip
143
- content={<Text size={1}>{'Tooltip 2'}</Text>}
144
- placement={'top'}
145
- delay={400} // This should be overridden by the group delay
146
- >
147
- <Button mode="bleed" text="Button 2" />
148
- </Tooltip>
149
- </TooltipDelayGroupProvider>,
150
- )
151
-
152
- const button1 = screen.getByText('Button 1')
153
- const button2 = screen.getByText('Button 2')
154
-
155
- // Validate tooltip content is not rendered
156
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
157
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
158
-
159
- // Hovers on first button, it should show first tooltip only
160
- fireEvent.mouseEnter(button1)
161
- // oxlint-disable-next-line no-floating-promises
162
- act(() => vi.advanceTimersByTime(delay / 2))
163
- // Content should not be rendered yet, we have a delay of 150ms
164
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
165
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
166
- // oxlint-disable-next-line no-floating-promises
167
- act(() => vi.advanceTimersByTime(delay / 2))
168
-
169
- // Validate Tooltip 1 is rendered
170
- screen.getByText('Tooltip 1')
171
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
172
-
173
- // Hovers on second button.
174
- fireEvent.mouseOut(button1)
175
- fireEvent.mouseEnter(button2)
176
-
177
- // Validate Tooltip 1 is not rendered, now tooltip 2 is open.
178
- // oxlint-disable-next-line no-floating-promises
179
- act(() => vi.advanceTimersByTime(1))
180
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
181
- screen.getByText('Tooltip 2')
182
-
183
- // Validate tooltip content is not rendered anymore
184
- fireEvent.mouseOut(button2)
185
- // oxlint-disable-next-line no-floating-promises
186
- act(() => vi.advanceTimersByTime(delay + 1))
187
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
188
-
189
- // Hovering again, should trigger the tooltip to show immediately, as the group is not deactivated yet
190
- fireEvent.mouseEnter(button2)
191
- // oxlint-disable-next-line no-floating-promises
192
- act(() => vi.advanceTimersByTime(1))
193
- screen.getByText('Tooltip 2')
194
-
195
- // Validate tooltip content is not rendered anymore
196
- fireEvent.mouseOut(button2)
197
- // oxlint-disable-next-line no-floating-promises
198
- act(() => vi.advanceTimersByTime(delay + 1))
199
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
200
-
201
- // Wait 200ms, the group is deactivated, hovering again should trigger the delay
202
- // oxlint-disable-next-line no-floating-promises
203
- act(() => vi.advanceTimersByTime(200))
204
- fireEvent.mouseEnter(button2)
205
- // oxlint-disable-next-line no-floating-promises
206
- act(() => vi.advanceTimersByTime(delay / 2))
207
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
208
- // oxlint-disable-next-line no-floating-promises
209
- act(() => vi.advanceTimersByTime(delay / 2))
210
- screen.getByText('Tooltip 2')
211
- })
212
- it('should support groups with different open and close delay.', () => {
213
- const openDelay = 250
214
- const closeDelay = 150
215
-
216
- vi.useFakeTimers()
217
- render(
218
- <TooltipDelayGroupProvider
219
- delay={{
220
- open: openDelay,
221
- close: closeDelay,
222
- }}
223
- >
224
- <Tooltip content={<Text size={1}>{'Tooltip 1'}</Text>} placement={'top'} delay={400}>
225
- <Button mode="bleed" text="Button 1" />
226
- </Tooltip>
227
- <Tooltip
228
- content={<Text size={1}>{'Tooltip 2'}</Text>}
229
- placement={'top'}
230
- delay={400} // This should be overridden by the group delay
231
- >
232
- <Button mode="bleed" text="Button 2" />
233
- </Tooltip>
234
- </TooltipDelayGroupProvider>,
235
- )
236
-
237
- const button1 = screen.getByText('Button 1')
238
- const button2 = screen.getByText('Button 2')
239
-
240
- // Validate tooltip content is not rendered
241
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
242
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
243
-
244
- // Hovers on first button, it should show first tooltip only
245
- fireEvent.mouseEnter(button1)
246
- // oxlint-disable-next-line no-floating-promises
247
- act(() => vi.advanceTimersByTime(openDelay / 2))
248
- // Content should not be rendered yet, we have a delay of2150ms
249
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
250
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
251
- // oxlint-disable-next-line no-floating-promises
252
- act(() => vi.advanceTimersByTime(openDelay / 2))
253
-
254
- // Validate Tooltip 1 is rendered
255
- screen.getByText('Tooltip 1')
256
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
257
-
258
- // Hovers on second button.
259
- fireEvent.mouseOut(button1)
260
- fireEvent.mouseEnter(button2)
261
-
262
- // Validate Tooltip 1 is not rendered, now tooltip 2 is open.
263
- // oxlint-disable-next-line no-floating-promises
264
- act(() => vi.advanceTimersByTime(1))
265
- expect(screen.queryByText('Tooltip 1')).not.toBeInTheDocument()
266
- screen.getByText('Tooltip 2')
267
-
268
- // Validate tooltip content is not rendered anymore
269
- fireEvent.mouseOut(button2)
270
- // oxlint-disable-next-line no-floating-promises
271
- act(() => vi.advanceTimersByTime(closeDelay + 1))
272
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
273
-
274
- // Hovering again, should trigger the tooltip to show immediately, as the group is not deactivated yet
275
- fireEvent.mouseEnter(button2)
276
- // oxlint-disable-next-line no-floating-promises
277
- act(() => vi.advanceTimersByTime(1))
278
- screen.getByText('Tooltip 2')
279
-
280
- // Validate tooltip content is not rendered anymore
281
- fireEvent.mouseOut(button2)
282
- // oxlint-disable-next-line no-floating-promises
283
- act(() => vi.advanceTimersByTime(closeDelay + 1))
284
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
285
-
286
- // Wait 200ms, the group is deactivated, hovering again should trigger the delay
287
- // oxlint-disable-next-line no-floating-promises
288
- act(() => vi.advanceTimersByTime(200))
289
- fireEvent.mouseEnter(button2)
290
- // oxlint-disable-next-line no-floating-promises
291
- act(() => vi.advanceTimersByTime(openDelay / 2))
292
- expect(screen.queryByText('Tooltip 2')).not.toBeInTheDocument()
293
- // oxlint-disable-next-line no-floating-promises
294
- act(() => vi.advanceTimersByTime(openDelay / 2))
295
- screen.getByText('Tooltip 2')
296
- })
297
- })
298
-
299
- describe('Closing the <Tooltip /> with the Escape key', () => {
300
- it('Standalone tooltip closes immediately with Escape key', () => {
301
- const delay = 150
302
-
303
- vi.useFakeTimers()
304
-
305
- render(
306
- <Tooltip
307
- content={<Text size={1}>{'Tooltip content'}</Text>}
308
- placement={'top'}
309
- delay={delay}
310
- >
311
- <Button mode="bleed" text="Hover me" />
312
- </Tooltip>,
313
- )
314
-
315
- const button = screen.getByText('Hover me')
316
-
317
- // Validate tooltip content is not rendered
318
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
319
- fireEvent.focus(button)
320
- // oxlint-disable-next-line no-floating-promises
321
- act(() => vi.advanceTimersByTime(delay))
322
-
323
- // Validate tooltip content is rendered
324
- screen.getByText('Tooltip content')
325
-
326
- act(() => {
327
- fireEvent.keyDown(button, {key: 'Escape', code: 'Escape'})
328
- })
329
- // Validate tooltip content is not rendered anymore
330
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
331
- })
332
- it('With <TooltipDelayGroupProvider /> closes immediately with Escape key', () => {
333
- const delay = 150
334
-
335
- vi.useFakeTimers()
336
-
337
- render(
338
- <TooltipDelayGroupProvider delay={{close: delay}}>
339
- <Tooltip
340
- content={<Text size={1}>{'Tooltip content'}</Text>}
341
- placement={'top'}
342
- delay={{close: delay}}
343
- >
344
- <Button mode="bleed" text="Hover me" />
345
- </Tooltip>
346
- </TooltipDelayGroupProvider>,
347
- )
348
-
349
- const button = screen.getByText('Hover me')
350
-
351
- // Validate tooltip content is not rendered
352
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
353
- fireEvent.focus(button)
354
-
355
- // oxlint-disable-next-line no-floating-promises
356
- act(() => vi.advanceTimersByTime(delay))
357
-
358
- // Validate tooltip content is rendered
359
- screen.getByText('Tooltip content')
360
-
361
- act(() => {
362
- fireEvent.keyDown(button, {key: 'Escape', code: 'Escape'})
363
- })
364
- // Validate tooltip content is not rendered anymore
365
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
366
- })
367
- })
368
-
369
- describe('Clicking the <Tooltip /> child should close the tooltip', () => {
370
- it('Should close the tooltip when clicked', () => {
371
- const delay = 150
372
-
373
- render(
374
- <Tooltip content={<Text size={1}>{'Tooltip content'}</Text>} delay={delay}>
375
- <Button mode="bleed" text="Hover me" />
376
- </Tooltip>,
377
- )
378
-
379
- const button = screen.getByText('Hover me')
380
-
381
- // Assertion: tooltip does not exist in the document
382
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
383
- fireEvent.focus(button)
384
-
385
- // oxlint-disable-next-line no-floating-promises
386
- act(() => vi.advanceTimersByTime(delay))
387
-
388
- // Assertion: the tooltip is not visible
389
- expect(screen.queryByText('Tooltip content')).toBeVisible()
390
-
391
- // oxlint-disable-next-line no-floating-promises
392
- act(() => fireEvent.click(button))
393
-
394
- // Assertion: tooltip does not exist in the document
395
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
396
- })
397
-
398
- it('Should close the tooltip when the context menu is opened (right click)', () => {
399
- const delay = 150
400
-
401
- render(
402
- <Tooltip content={<Text size={1}>{'Tooltip content'}</Text>} delay={delay}>
403
- <Button mode="bleed" text="Hover me" />
404
- </Tooltip>,
405
- )
406
-
407
- const button = screen.getByText('Hover me')
408
-
409
- // Assertion: tooltip does not exist in the document
410
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
411
- fireEvent.focus(button)
412
-
413
- // oxlint-disable-next-line no-floating-promises
414
- act(() => vi.advanceTimersByTime(delay))
415
-
416
- // Assertion: the tooltip is not visible
417
- expect(screen.queryByText('Tooltip content')).toBeVisible()
418
-
419
- // oxlint-disable-next-line no-floating-promises
420
- act(() => fireEvent.contextMenu(button))
421
-
422
- // Assertion: tooltip does not exist in the document
423
- expect(screen.queryByText('Tooltip content')).not.toBeInTheDocument()
424
- })
425
- })
426
-
427
- describe('Used defined events on <Tooltip /> child should fire correctly', () => {
428
- const handleBlur = vi.fn()
429
- const handleClick = vi.fn()
430
- const handleContextMenu = vi.fn()
431
- const handleFocus = vi.fn()
432
- const handleMouseEnter = vi.fn()
433
- const handleMouseLeave = vi.fn()
434
-
435
- beforeEach(() => {
436
- render(
437
- <Tooltip content={<Text size={1}>{'Tooltip content'}</Text>}>
438
- <Button
439
- data-testid="btn"
440
- mode="bleed"
441
- onBlur={handleBlur}
442
- onClick={handleClick}
443
- onContextMenu={handleContextMenu}
444
- onFocus={handleFocus}
445
- onMouseEnter={handleMouseEnter}
446
- onMouseLeave={handleMouseLeave}
447
- text="Hover me"
448
- />
449
- </Tooltip>,
450
- )
451
- })
452
-
453
- afterEach(() => vi.clearAllMocks())
454
-
455
- it('should fire the onBlur event', () => {
456
- fireEvent.blur(screen.getByTestId('btn'))
457
- expect(handleBlur).toHaveBeenCalledTimes(1)
458
- })
459
-
460
- it('should fire the onClick event', () => {
461
- fireEvent.click(screen.getByTestId('btn'))
462
- expect(handleClick).toHaveBeenCalledTimes(1)
463
- })
464
-
465
- it('should fire the onContextMenu event', () => {
466
- fireEvent.contextMenu(screen.getByTestId('btn'))
467
- expect(handleContextMenu).toHaveBeenCalledTimes(1)
468
- })
469
-
470
- it('should fire the onFocus event', () => {
471
- fireEvent.focus(screen.getByTestId('btn'))
472
- expect(handleFocus).toHaveBeenCalledTimes(1)
473
- })
474
-
475
- it('should fire the onMouseEnter event', () => {
476
- fireEvent.mouseEnter(screen.getByTestId('btn'))
477
- expect(handleMouseEnter).toHaveBeenCalledTimes(1)
478
- })
479
-
480
- it('should fire the onMouseLeave event', () => {
481
- fireEvent.mouseLeave(screen.getByTestId('btn'))
482
- expect(handleMouseLeave).toHaveBeenCalledTimes(1)
483
- })
484
- })
485
- })