@graphprotocol/gds-react 0.1.2 → 0.2.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 (433) hide show
  1. package/dist/GDSContext.d.ts +13 -0
  2. package/dist/GDSContext.d.ts.map +1 -0
  3. package/dist/GDSContext.js +4 -0
  4. package/dist/GDSContext.js.map +1 -0
  5. package/dist/GDSProvider.d.ts +13 -19
  6. package/dist/GDSProvider.d.ts.map +1 -1
  7. package/dist/GDSProvider.js +14 -11
  8. package/dist/GDSProvider.js.map +1 -1
  9. package/dist/components/Address.js +2 -2
  10. package/dist/components/Address.meta.d.ts +1 -13
  11. package/dist/components/Address.meta.d.ts.map +1 -1
  12. package/dist/components/Avatar.d.ts.map +1 -1
  13. package/dist/components/Avatar.js +3 -11
  14. package/dist/components/Avatar.js.map +1 -1
  15. package/dist/components/Avatar.meta.d.ts +0 -2
  16. package/dist/components/Avatar.meta.d.ts.map +1 -1
  17. package/dist/components/AvatarGroup.meta.d.ts +8 -2
  18. package/dist/components/AvatarGroup.meta.d.ts.map +1 -1
  19. package/dist/components/Breadcrumbs.meta.d.ts +2 -3
  20. package/dist/components/Breadcrumbs.meta.d.ts.map +1 -1
  21. package/dist/components/Breadcrumbs.meta.js +3 -1
  22. package/dist/components/Breadcrumbs.meta.js.map +1 -1
  23. package/dist/components/Breadcrumbs.parts.d.ts.map +1 -1
  24. package/dist/components/Breadcrumbs.parts.js +13 -21
  25. package/dist/components/Breadcrumbs.parts.js.map +1 -1
  26. package/dist/components/Button.d.ts.map +1 -1
  27. package/dist/components/Button.js +70 -69
  28. package/dist/components/Button.js.map +1 -1
  29. package/dist/components/Button.meta.d.ts +1 -4
  30. package/dist/components/Button.meta.d.ts.map +1 -1
  31. package/dist/components/ButtonGroup.d.ts.map +1 -1
  32. package/dist/components/ButtonGroup.js +1 -5
  33. package/dist/components/ButtonGroup.js.map +1 -1
  34. package/dist/components/ButtonGroup.meta.d.ts +1 -5
  35. package/dist/components/ButtonGroup.meta.d.ts.map +1 -1
  36. package/dist/components/ButtonGroup.meta.js +8 -0
  37. package/dist/components/ButtonGroup.meta.js.map +1 -1
  38. package/dist/components/Card.js +2 -2
  39. package/dist/components/Card.js.map +1 -1
  40. package/dist/components/Card.meta.d.ts +1 -2
  41. package/dist/components/Card.meta.d.ts.map +1 -1
  42. package/dist/components/Card.meta.js +1 -0
  43. package/dist/components/Card.meta.js.map +1 -1
  44. package/dist/components/Checkbox.meta.d.ts +1 -6
  45. package/dist/components/Checkbox.meta.d.ts.map +1 -1
  46. package/dist/components/Checkbox.meta.js +1 -5
  47. package/dist/components/Checkbox.meta.js.map +1 -1
  48. package/dist/components/Chip.meta.d.ts +2 -4
  49. package/dist/components/Chip.meta.d.ts.map +1 -1
  50. package/dist/components/Chip.parts.d.ts.map +1 -1
  51. package/dist/components/Chip.parts.js +1 -9
  52. package/dist/components/Chip.parts.js.map +1 -1
  53. package/dist/components/Cluster.meta.d.ts +8 -2
  54. package/dist/components/Cluster.meta.d.ts.map +1 -1
  55. package/dist/components/CodeBlock.d.ts +1 -1
  56. package/dist/components/CodeBlock.meta.d.ts +2 -4
  57. package/dist/components/CodeBlock.meta.d.ts.map +1 -1
  58. package/dist/components/CodeBlock.parts.d.ts +6 -7
  59. package/dist/components/CodeBlock.parts.d.ts.map +1 -1
  60. package/dist/components/CodeBlock.parts.js +28 -10
  61. package/dist/components/CodeBlock.parts.js.map +1 -1
  62. package/dist/components/CodeInline.js +3 -3
  63. package/dist/components/CodeInline.meta.d.ts +1 -1
  64. package/dist/components/CodeInline.meta.d.ts.map +1 -1
  65. package/dist/components/CopyButton.d.ts +1 -1
  66. package/dist/components/CopyButton.d.ts.map +1 -1
  67. package/dist/components/CopyButton.js +46 -21
  68. package/dist/components/CopyButton.js.map +1 -1
  69. package/dist/components/CopyButton.meta.d.ts +1 -12
  70. package/dist/components/CopyButton.meta.d.ts.map +1 -1
  71. package/dist/components/CopyButton.meta.js +1 -6
  72. package/dist/components/CopyButton.meta.js.map +1 -1
  73. package/dist/components/CurrencyInput.meta.d.ts +1 -6
  74. package/dist/components/CurrencyInput.meta.d.ts.map +1 -1
  75. package/dist/components/CurrencyInput.meta.js +1 -5
  76. package/dist/components/CurrencyInput.meta.js.map +1 -1
  77. package/dist/components/DescriptionList.meta.d.ts +2 -5
  78. package/dist/components/DescriptionList.meta.d.ts.map +1 -1
  79. package/dist/components/DescriptionList.parts.d.ts +3 -0
  80. package/dist/components/DescriptionList.parts.d.ts.map +1 -1
  81. package/dist/components/DescriptionList.parts.js +1 -0
  82. package/dist/components/DescriptionList.parts.js.map +1 -1
  83. package/dist/components/Divider.meta.d.ts +1 -3
  84. package/dist/components/Divider.meta.d.ts.map +1 -1
  85. package/dist/components/Icon.js +4 -4
  86. package/dist/components/Icon.js.map +1 -1
  87. package/dist/components/Icon.meta.d.ts +0 -2
  88. package/dist/components/Icon.meta.d.ts.map +1 -1
  89. package/dist/components/Icon.meta.js +1 -0
  90. package/dist/components/Icon.meta.js.map +1 -1
  91. package/dist/components/Input.d.ts +5 -4
  92. package/dist/components/Input.d.ts.map +1 -1
  93. package/dist/components/Input.js +3 -2
  94. package/dist/components/Input.js.map +1 -1
  95. package/dist/components/Input.meta.d.ts +1 -6
  96. package/dist/components/Input.meta.d.ts.map +1 -1
  97. package/dist/components/Input.meta.js +1 -5
  98. package/dist/components/Input.meta.js.map +1 -1
  99. package/dist/components/Keyboard.js +1 -1
  100. package/dist/components/Keyboard.meta.d.ts +0 -1
  101. package/dist/components/Keyboard.meta.d.ts.map +1 -1
  102. package/dist/components/Label.meta.d.ts +1 -3
  103. package/dist/components/Label.meta.d.ts.map +1 -1
  104. package/dist/components/Link.d.ts +1 -1
  105. package/dist/components/Link.d.ts.map +1 -1
  106. package/dist/components/Link.js +3 -4
  107. package/dist/components/Link.js.map +1 -1
  108. package/dist/components/Link.meta.d.ts +1 -2
  109. package/dist/components/Link.meta.d.ts.map +1 -1
  110. package/dist/components/Link.meta.js +1 -0
  111. package/dist/components/Link.meta.js.map +1 -1
  112. package/dist/components/Menu.meta.d.ts +31 -2
  113. package/dist/components/Menu.meta.d.ts.map +1 -1
  114. package/dist/components/Menu.meta.js +39 -1
  115. package/dist/components/Menu.meta.js.map +1 -1
  116. package/dist/components/Menu.parts.d.ts +22 -32
  117. package/dist/components/Menu.parts.d.ts.map +1 -1
  118. package/dist/components/Menu.parts.js +286 -300
  119. package/dist/components/Menu.parts.js.map +1 -1
  120. package/dist/components/Modal.d.ts +1 -1
  121. package/dist/components/Modal.meta.d.ts +1 -3
  122. package/dist/components/Modal.meta.d.ts.map +1 -1
  123. package/dist/components/Modal.meta.js +1 -1
  124. package/dist/components/Modal.meta.js.map +1 -1
  125. package/dist/components/Modal.parts.d.ts +14 -15
  126. package/dist/components/Modal.parts.d.ts.map +1 -1
  127. package/dist/components/Modal.parts.js +20 -20
  128. package/dist/components/Modal.parts.js.map +1 -1
  129. package/dist/components/OTCInput.js +1 -1
  130. package/dist/components/OTCInput.meta.d.ts +1 -6
  131. package/dist/components/OTCInput.meta.d.ts.map +1 -1
  132. package/dist/components/OTCInput.meta.js +1 -5
  133. package/dist/components/OTCInput.meta.js.map +1 -1
  134. package/dist/components/Pane.d.ts +9 -0
  135. package/dist/components/Pane.d.ts.map +1 -0
  136. package/dist/components/Pane.js +8 -0
  137. package/dist/components/Pane.js.map +1 -0
  138. package/dist/components/Pane.meta.d.ts +20 -0
  139. package/dist/components/Pane.meta.d.ts.map +1 -0
  140. package/dist/components/Pane.meta.js +30 -0
  141. package/dist/components/Pane.meta.js.map +1 -0
  142. package/dist/components/Pane.parts.d.ts +77 -0
  143. package/dist/components/Pane.parts.d.ts.map +1 -0
  144. package/dist/components/Pane.parts.js +412 -0
  145. package/dist/components/Pane.parts.js.map +1 -0
  146. package/dist/components/Radio.meta.d.ts +1 -6
  147. package/dist/components/Radio.meta.d.ts.map +1 -1
  148. package/dist/components/Radio.meta.js +1 -5
  149. package/dist/components/Radio.meta.js.map +1 -1
  150. package/dist/components/Search.js +1 -1
  151. package/dist/components/Search.meta.d.ts +1 -3
  152. package/dist/components/Search.meta.d.ts.map +1 -1
  153. package/dist/components/SegmentedControl.meta.d.ts +2 -3
  154. package/dist/components/SegmentedControl.meta.d.ts.map +1 -1
  155. package/dist/components/SegmentedControl.meta.js +3 -1
  156. package/dist/components/SegmentedControl.meta.js.map +1 -1
  157. package/dist/components/SegmentedControl.parts.d.ts.map +1 -1
  158. package/dist/components/SegmentedControl.parts.js +4 -9
  159. package/dist/components/SegmentedControl.parts.js.map +1 -1
  160. package/dist/components/Status.meta.d.ts +0 -2
  161. package/dist/components/Status.meta.d.ts.map +1 -1
  162. package/dist/components/Stepper.meta.d.ts +1 -2
  163. package/dist/components/Stepper.meta.d.ts.map +1 -1
  164. package/dist/components/Stepper.meta.js +1 -0
  165. package/dist/components/Stepper.meta.js.map +1 -1
  166. package/dist/components/Stepper.parts.d.ts.map +1 -1
  167. package/dist/components/Stepper.parts.js +1 -1
  168. package/dist/components/Stepper.parts.js.map +1 -1
  169. package/dist/components/Switch.meta.d.ts +1 -6
  170. package/dist/components/Switch.meta.d.ts.map +1 -1
  171. package/dist/components/Switch.meta.js +1 -5
  172. package/dist/components/Switch.meta.js.map +1 -1
  173. package/dist/components/TabSet.meta.d.ts +2 -5
  174. package/dist/components/TabSet.meta.d.ts.map +1 -1
  175. package/dist/components/TabSet.meta.js +3 -1
  176. package/dist/components/TabSet.meta.js.map +1 -1
  177. package/dist/components/Tag.meta.d.ts +0 -2
  178. package/dist/components/Tag.meta.d.ts.map +1 -1
  179. package/dist/components/TextArea.meta.d.ts +1 -6
  180. package/dist/components/TextArea.meta.d.ts.map +1 -1
  181. package/dist/components/TextArea.meta.js +1 -5
  182. package/dist/components/TextArea.meta.js.map +1 -1
  183. package/dist/components/ToggleButton.js +2 -2
  184. package/dist/components/ToggleButton.js.map +1 -1
  185. package/dist/components/ToggleButton.meta.d.ts +1 -12
  186. package/dist/components/ToggleButton.meta.d.ts.map +1 -1
  187. package/dist/components/ToggleButton.meta.js +1 -6
  188. package/dist/components/ToggleButton.meta.js.map +1 -1
  189. package/dist/components/Tooltip.d.ts +2 -2
  190. package/dist/components/Tooltip.d.ts.map +1 -1
  191. package/dist/components/Tooltip.js +2 -2
  192. package/dist/components/Tooltip.js.map +1 -1
  193. package/dist/components/Tooltip.meta.d.ts +12 -7
  194. package/dist/components/Tooltip.meta.d.ts.map +1 -1
  195. package/dist/components/Tooltip.meta.js +13 -2
  196. package/dist/components/Tooltip.meta.js.map +1 -1
  197. package/dist/components/Tooltip.parts.d.ts +31 -22
  198. package/dist/components/Tooltip.parts.d.ts.map +1 -1
  199. package/dist/components/Tooltip.parts.js +127 -98
  200. package/dist/components/Tooltip.parts.js.map +1 -1
  201. package/dist/components/base/Addon.meta.d.ts +1 -1
  202. package/dist/components/base/Addon.meta.d.ts.map +1 -1
  203. package/dist/components/base/Addon.meta.js +3 -1
  204. package/dist/components/base/Addon.meta.js.map +1 -1
  205. package/dist/components/base/ButtonOrLink.d.ts +2 -2
  206. package/dist/components/base/ButtonOrLink.d.ts.map +1 -1
  207. package/dist/components/base/ButtonOrLink.parts.d.ts +14 -6
  208. package/dist/components/base/ButtonOrLink.parts.d.ts.map +1 -1
  209. package/dist/components/base/ButtonOrLink.parts.js +54 -65
  210. package/dist/components/base/ButtonOrLink.parts.js.map +1 -1
  211. package/dist/components/base/Checkable.meta.d.ts +1 -2
  212. package/dist/components/base/Checkable.meta.d.ts.map +1 -1
  213. package/dist/components/base/Checkable.parts.d.ts +6 -6
  214. package/dist/components/base/Checkable.parts.d.ts.map +1 -1
  215. package/dist/components/base/Checkable.parts.js +2 -2
  216. package/dist/components/base/Checkable.parts.js.map +1 -1
  217. package/dist/components/base/Field.meta.d.ts +1 -2
  218. package/dist/components/base/Field.meta.d.ts.map +1 -1
  219. package/dist/components/base/Field.parts.d.ts +5 -4
  220. package/dist/components/base/Field.parts.d.ts.map +1 -1
  221. package/dist/components/base/Field.parts.js +1 -1
  222. package/dist/components/base/Field.parts.js.map +1 -1
  223. package/dist/components/base/MaybeButtonOrLink.d.ts +20 -3
  224. package/dist/components/base/MaybeButtonOrLink.d.ts.map +1 -1
  225. package/dist/components/base/MaybeButtonOrLink.js +5 -3
  226. package/dist/components/base/MaybeButtonOrLink.js.map +1 -1
  227. package/dist/components/base/Portal.d.ts +1 -1
  228. package/dist/components/base/Portal.d.ts.map +1 -1
  229. package/dist/components/base/Portal.js +3 -6
  230. package/dist/components/base/Portal.js.map +1 -1
  231. package/dist/components/base/Presence.d.ts +157 -0
  232. package/dist/components/base/Presence.d.ts.map +1 -0
  233. package/dist/components/base/Presence.js +808 -0
  234. package/dist/components/base/Presence.js.map +1 -0
  235. package/dist/components/base/Render.d.ts +21 -6
  236. package/dist/components/base/Render.d.ts.map +1 -1
  237. package/dist/components/base/Render.js +3 -2
  238. package/dist/components/base/Render.js.map +1 -1
  239. package/dist/components/base/Transition.js +2 -2
  240. package/dist/components/base/Transition.meta.d.ts +1 -1
  241. package/dist/components/base/Transition.meta.d.ts.map +1 -1
  242. package/dist/components/base/Transition.meta.js +1 -0
  243. package/dist/components/base/Transition.meta.js.map +1 -1
  244. package/dist/components/base/index.d.ts +2 -2
  245. package/dist/components/base/index.d.ts.map +1 -1
  246. package/dist/components/base/index.js +2 -2
  247. package/dist/components/base/index.js.map +1 -1
  248. package/dist/components/index.d.ts +3 -1
  249. package/dist/components/index.d.ts.map +1 -1
  250. package/dist/components/index.js +3 -1
  251. package/dist/components/index.js.map +1 -1
  252. package/dist/hooks/index.d.ts +1 -0
  253. package/dist/hooks/index.d.ts.map +1 -1
  254. package/dist/hooks/index.js +1 -0
  255. package/dist/hooks/index.js.map +1 -1
  256. package/dist/hooks/useCSSProp.d.ts.map +1 -1
  257. package/dist/hooks/useCSSProp.js +7 -7
  258. package/dist/hooks/useCSSProp.js.map +1 -1
  259. package/dist/hooks/useCSSProps.d.ts +11 -13
  260. package/dist/hooks/useCSSProps.d.ts.map +1 -1
  261. package/dist/hooks/useCSSProps.js +11 -19
  262. package/dist/hooks/useCSSProps.js.map +1 -1
  263. package/dist/hooks/useCSSPropsPolyfill.d.ts +1 -1
  264. package/dist/hooks/useCSSPropsPolyfill.d.ts.map +1 -1
  265. package/dist/hooks/useCSSPropsPolyfill.js +12 -20
  266. package/dist/hooks/useCSSPropsPolyfill.js.map +1 -1
  267. package/dist/hooks/useCSSState.d.ts.map +1 -1
  268. package/dist/hooks/useCSSState.js +7 -3
  269. package/dist/hooks/useCSSState.js.map +1 -1
  270. package/dist/hooks/useControlled.d.ts.map +1 -1
  271. package/dist/hooks/useControlled.js +6 -4
  272. package/dist/hooks/useControlled.js.map +1 -1
  273. package/dist/hooks/useEffectWithRefDeps.d.ts +2 -2
  274. package/dist/hooks/useEffectWithRefDeps.d.ts.map +1 -1
  275. package/dist/hooks/useEffectWithRefDeps.js +1 -1
  276. package/dist/hooks/useEffectWithRefDeps.js.map +1 -1
  277. package/dist/hooks/useFirstRender.d.ts +14 -0
  278. package/dist/hooks/useFirstRender.d.ts.map +1 -0
  279. package/dist/hooks/useFirstRender.js +20 -0
  280. package/dist/hooks/useFirstRender.js.map +1 -0
  281. package/dist/hooks/useGDS.d.ts +1 -1
  282. package/dist/hooks/useGDS.js +1 -1
  283. package/dist/hooks/useGDS.js.map +1 -1
  284. package/dist/hooks/usePrevious.d.ts +6 -4
  285. package/dist/hooks/usePrevious.d.ts.map +1 -1
  286. package/dist/hooks/usePrevious.js +6 -4
  287. package/dist/hooks/usePrevious.js.map +1 -1
  288. package/dist/hooks/useRefWithInit.d.ts +2 -2
  289. package/dist/hooks/useRefWithInit.d.ts.map +1 -1
  290. package/dist/hooks/useRefWithInit.js.map +1 -1
  291. package/dist/hooks/useStyleObserver.d.ts +2 -2
  292. package/dist/hooks/useStyleObserver.d.ts.map +1 -1
  293. package/dist/hooks/useStyleObserver.js +1 -1
  294. package/dist/hooks/useStyleObserver.js.map +1 -1
  295. package/dist/icons/CalendarDynamicIcon.d.ts +8 -5
  296. package/dist/icons/CalendarDynamicIcon.d.ts.map +1 -1
  297. package/dist/icons/CalendarDynamicIcon.js +5 -2
  298. package/dist/icons/CalendarDynamicIcon.js.map +1 -1
  299. package/dist/icons/CopyInteractiveIcon.d.ts +5 -4
  300. package/dist/icons/CopyInteractiveIcon.d.ts.map +1 -1
  301. package/dist/icons/CopyInteractiveIcon.js +2 -2
  302. package/dist/icons/CopyInteractiveIcon.js.map +1 -1
  303. package/dist/icons/SidebarLeftInteractiveIcon.d.ts +4 -3
  304. package/dist/icons/SidebarLeftInteractiveIcon.d.ts.map +1 -1
  305. package/dist/icons/SidebarLeftInteractiveIcon.js +2 -2
  306. package/dist/icons/SidebarLeftInteractiveIcon.js.map +1 -1
  307. package/dist/icons/SidebarRightInteractiveIcon.d.ts +4 -3
  308. package/dist/icons/SidebarRightInteractiveIcon.d.ts.map +1 -1
  309. package/dist/icons/SidebarRightInteractiveIcon.js +2 -2
  310. package/dist/icons/SidebarRightInteractiveIcon.js.map +1 -1
  311. package/dist/tailwind-plugin.d.ts.map +1 -1
  312. package/dist/tailwind-plugin.js +8 -5
  313. package/dist/tailwind-plugin.js.map +1 -1
  314. package/dist/utils/InlineCounter.d.ts +3 -0
  315. package/dist/utils/InlineCounter.d.ts.map +1 -0
  316. package/dist/utils/InlineCounter.js +7 -0
  317. package/dist/utils/InlineCounter.js.map +1 -0
  318. package/dist/utils/RenderCount.d.ts +3 -0
  319. package/dist/utils/RenderCount.d.ts.map +1 -0
  320. package/dist/utils/RenderCount.js +7 -0
  321. package/dist/utils/RenderCount.js.map +1 -0
  322. package/dist/utils/cn.d.ts +3 -1
  323. package/dist/utils/cn.d.ts.map +1 -1
  324. package/dist/utils/cn.js +3 -1
  325. package/dist/utils/cn.js.map +1 -1
  326. package/dist/utils/getCSSPropsAttributes.d.ts +10 -3
  327. package/dist/utils/getCSSPropsAttributes.d.ts.map +1 -1
  328. package/dist/utils/getCSSPropsAttributes.js +4 -5
  329. package/dist/utils/getCSSPropsAttributes.js.map +1 -1
  330. package/dist/utils/index.d.ts +2 -0
  331. package/dist/utils/index.d.ts.map +1 -1
  332. package/dist/utils/index.js +2 -0
  333. package/dist/utils/index.js.map +1 -1
  334. package/dist/utils/splitProps.d.ts +1 -4
  335. package/dist/utils/splitProps.d.ts.map +1 -1
  336. package/dist/utils/splitProps.js +2 -7
  337. package/dist/utils/splitProps.js.map +1 -1
  338. package/dist/utils/trimReactNode.d.ts +10 -8
  339. package/dist/utils/trimReactNode.d.ts.map +1 -1
  340. package/dist/utils/trimReactNode.js +10 -8
  341. package/dist/utils/trimReactNode.js.map +1 -1
  342. package/package.json +21 -21
  343. package/src/GDSContext.ts +16 -0
  344. package/src/GDSProvider.tsx +31 -40
  345. package/src/components/Address.tsx +2 -2
  346. package/src/components/Avatar.tsx +8 -12
  347. package/src/components/Breadcrumbs.meta.ts +3 -1
  348. package/src/components/Breadcrumbs.parts.tsx +16 -28
  349. package/src/components/Button.tsx +114 -104
  350. package/src/components/ButtonGroup.meta.ts +8 -0
  351. package/src/components/ButtonGroup.tsx +1 -5
  352. package/src/components/Card.meta.ts +1 -0
  353. package/src/components/Card.tsx +2 -2
  354. package/src/components/Checkbox.meta.ts +1 -5
  355. package/src/components/Chip.parts.tsx +1 -11
  356. package/src/components/CodeBlock.parts.tsx +75 -50
  357. package/src/components/CodeInline.tsx +3 -3
  358. package/src/components/CopyButton.meta.ts +1 -6
  359. package/src/components/CopyButton.tsx +50 -27
  360. package/src/components/CurrencyInput.meta.ts +1 -5
  361. package/src/components/DescriptionList.parts.tsx +1 -0
  362. package/src/components/Icon.meta.ts +1 -0
  363. package/src/components/Icon.tsx +4 -4
  364. package/src/components/Input.meta.ts +1 -5
  365. package/src/components/Input.tsx +6 -7
  366. package/src/components/Keyboard.tsx +1 -1
  367. package/src/components/Link.meta.ts +1 -0
  368. package/src/components/Link.tsx +4 -5
  369. package/src/components/Menu.meta.ts +39 -1
  370. package/src/components/Menu.parts.tsx +554 -547
  371. package/src/components/Modal.meta.ts +1 -1
  372. package/src/components/Modal.parts.tsx +40 -46
  373. package/src/components/OTCInput.meta.ts +1 -5
  374. package/src/components/OTCInput.tsx +1 -1
  375. package/src/components/Pane.meta.ts +31 -0
  376. package/src/components/Pane.parts.tsx +713 -0
  377. package/src/components/Pane.tsx +17 -0
  378. package/src/components/Radio.meta.ts +1 -5
  379. package/src/components/Search.tsx +1 -1
  380. package/src/components/SegmentedControl.meta.ts +3 -1
  381. package/src/components/SegmentedControl.parts.tsx +7 -10
  382. package/src/components/Stepper.meta.ts +1 -0
  383. package/src/components/Stepper.parts.tsx +3 -1
  384. package/src/components/Switch.meta.ts +1 -5
  385. package/src/components/TabSet.meta.ts +3 -1
  386. package/src/components/TextArea.meta.ts +1 -5
  387. package/src/components/ToggleButton.meta.ts +1 -6
  388. package/src/components/ToggleButton.tsx +1 -1
  389. package/src/components/Tooltip.meta.ts +13 -2
  390. package/src/components/Tooltip.parts.tsx +241 -169
  391. package/src/components/Tooltip.tsx +2 -2
  392. package/src/components/base/Addon.meta.ts +3 -1
  393. package/src/components/base/ButtonOrLink.parts.tsx +118 -97
  394. package/src/components/base/ButtonOrLink.tsx +1 -0
  395. package/src/components/base/Checkable.parts.tsx +6 -13
  396. package/src/components/base/Field.parts.tsx +5 -5
  397. package/src/components/base/MaybeButtonOrLink.tsx +26 -5
  398. package/src/components/base/Portal.tsx +5 -7
  399. package/src/components/base/Presence.tsx +1375 -0
  400. package/src/components/base/Render.tsx +37 -15
  401. package/src/components/base/Transition.meta.ts +1 -0
  402. package/src/components/base/Transition.tsx +2 -2
  403. package/src/components/base/index.ts +9 -2
  404. package/src/components/index.ts +11 -2
  405. package/src/hooks/index.ts +1 -0
  406. package/src/hooks/useCSSProp.ts +7 -9
  407. package/src/hooks/useCSSProps.ts +13 -22
  408. package/src/hooks/useCSSPropsPolyfill.ts +15 -23
  409. package/src/hooks/useCSSState.ts +11 -6
  410. package/src/hooks/useControlled.ts +16 -8
  411. package/src/hooks/useEffectWithRefDeps.ts +2 -2
  412. package/src/hooks/useFirstRender.ts +36 -0
  413. package/src/hooks/useGDS.ts +1 -1
  414. package/src/hooks/usePrevious.ts +6 -4
  415. package/src/hooks/useRefWithInit.ts +2 -2
  416. package/src/hooks/useStyleObserver.ts +6 -2
  417. package/src/icons/CalendarDynamicIcon.tsx +16 -6
  418. package/src/icons/CopyInteractiveIcon.tsx +10 -5
  419. package/src/icons/SidebarLeftInteractiveIcon.tsx +9 -5
  420. package/src/icons/SidebarRightInteractiveIcon.tsx +9 -5
  421. package/src/tailwind-plugin.ts +8 -5
  422. package/src/utils/InlineCounter.tsx +17 -0
  423. package/src/utils/RenderCount.tsx +7 -0
  424. package/src/utils/cn.ts +3 -1
  425. package/src/utils/getCSSPropsAttributes.ts +13 -8
  426. package/src/utils/index.ts +2 -0
  427. package/src/utils/splitProps.ts +9 -9
  428. package/src/utils/trimReactNode.tsx +10 -8
  429. package/dist/components/base/ButtonOrLink.meta.d.ts +0 -2
  430. package/dist/components/base/ButtonOrLink.meta.d.ts.map +0 -1
  431. package/dist/components/base/ButtonOrLink.meta.js +0 -6
  432. package/dist/components/base/ButtonOrLink.meta.js.map +0 -1
  433. package/src/components/base/ButtonOrLink.meta.ts +0 -6
@@ -1,6 +1,7 @@
1
1
  'use client'
2
2
 
3
3
  import { useRef, useState } from 'react'
4
+ import { useMergedRefs } from '@base-ui/utils/useMergedRefs'
4
5
 
5
6
  import type { GDSComponentProps } from '@graphprotocol/gds-css'
6
7
  import { CopyInteractiveIcon } from '@graphprotocol/gds-react/icons'
@@ -9,7 +10,6 @@ import { useGDS } from '../hooks/index.ts'
9
10
  import { cn, isReactNode } from '../utils/index.ts'
10
11
  import { Button, type ButtonProps } from './Button.tsx'
11
12
  import type { CopyButtonMeta } from './CopyButton.meta.ts'
12
- import { TooltipMeta } from './Tooltip.meta.ts'
13
13
  import { Tooltip } from './Tooltip.tsx'
14
14
 
15
15
  export interface CopyButtonProps
@@ -22,58 +22,81 @@ export interface CopyButtonProps
22
22
  }
23
23
 
24
24
  export function CopyButton({
25
+ ref: passedRef,
25
26
  value,
26
27
  addonAfter,
27
28
  tooltip,
28
29
  onCopy,
29
- onClick: passedOnClick,
30
30
  className,
31
31
  children,
32
32
  ...props
33
33
  }: CopyButtonProps) {
34
34
  useGDS()
35
35
 
36
- const [status, privateSetStatus] = useState<'idle' | 'copied' | 'copied-exit'>('idle')
37
- const timeoutRef = useRef<number>(undefined)
36
+ const buttonRef = useRef<HTMLButtonElement>(null)
37
+ const buttonPassedRef = useMergedRefs(buttonRef, passedRef)
38
38
 
39
- const setStatus = (newStatus: typeof status) => {
40
- window.clearTimeout(timeoutRef.current)
41
- privateSetStatus(newStatus)
42
- if (newStatus === 'copied') {
43
- timeoutRef.current = window.setTimeout(() => setStatus('copied-exit'), 1000)
44
- } else if (newStatus === 'copied-exit') {
45
- timeoutRef.current = window.setTimeout(() => setStatus('idle'), 100)
39
+ const [copied, privateSetCopied] = useState(false)
40
+ const copiedTimeoutRef = useRef<number>(undefined)
41
+
42
+ const setCopied = (newCopied: boolean) => {
43
+ window.clearTimeout(copiedTimeoutRef.current)
44
+ privateSetCopied(newCopied)
45
+ if (newCopied) {
46
+ setTooltipOpen(true)
47
+ copiedTimeoutRef.current = window.setTimeout(() => setCopied(false), 1000)
48
+ } else {
49
+ // Ensure the original tooltip is shown again when leaving the button and coming back while copied
50
+ copiedTimeoutRef.current = window.setTimeout(() => {
51
+ if (!tooltipOpenRef.current && buttonRef.current?.matches(':hover, :focus-visible')) {
52
+ setTooltipOpen(true)
53
+ }
54
+ }, 150)
46
55
  }
47
56
  }
48
57
 
49
58
  const hasChildren = children != null
50
- const copyIcon = <CopyInteractiveIcon copied={status === 'copied'} />
51
- const tooltipCSSProps =
52
- tooltip && !isReactNode(tooltip)
53
- ? Object.fromEntries(
54
- Object.entries(tooltip).filter(([propName]) => propName in TooltipMeta.cssProps),
55
- )
56
- : {}
59
+ const copyIcon = <CopyInteractiveIcon copied={copied} />
60
+ const tooltipProps = isReactNode(tooltip) ? { content: tooltip } : tooltip
61
+ const [tooltipOpen, setTooltipOpen] = useState(false)
62
+ const tooltipOpenRef = useRef(tooltipOpen)
63
+ tooltipOpenRef.current = tooltipOpen
57
64
 
58
65
  return (
59
66
  <Tooltip
60
- {...(status !== 'idle'
61
- ? { content: 'Copied!', open: status === 'copied' }
62
- : { content: null })}
63
- {...tooltipCSSProps}
67
+ {...tooltipProps}
68
+ content="Copied!"
69
+ {...(copied
70
+ ? {
71
+ open: true,
72
+ onOpenChange: (newOpen, reason) => {
73
+ if (reason === 'disabled') return
74
+ setTooltipOpen(newOpen)
75
+ },
76
+ className: cn('i:prop-disabled-false', tooltipProps?.className),
77
+ }
78
+ : { disabled: true })}
64
79
  >
65
80
  <Button
81
+ ref={buttonPassedRef}
66
82
  addonAfter={addonAfter !== undefined ? addonAfter : hasChildren ? copyIcon : undefined}
67
- tooltip={tooltip}
83
+ tooltip={{
84
+ open: tooltipOpen,
85
+ onOpenChange: (newOpen) => {
86
+ if (copied) return
87
+ setTooltipOpen(newOpen)
88
+ },
89
+ ...tooltipProps,
90
+ }}
91
+ className={cn('gds-copy-button', className)}
92
+ {...props}
68
93
  onClick={async (event) => {
69
- passedOnClick?.(event)
94
+ props.onClick?.(event)
70
95
  if (event.defaultPrevented) return
71
96
  await navigator.clipboard.writeText(value)
72
97
  onCopy?.(value)
73
- setStatus('copied')
98
+ setCopied(true)
74
99
  }}
75
- className={cn('gds-copy-button', className)}
76
- {...props}
77
100
  >
78
101
  {hasChildren ? children : copyIcon}
79
102
  </Button>
@@ -3,9 +3,5 @@ import { createComponent } from '@graphprotocol/gds-css'
3
3
  import { FieldMeta } from './base/Field.meta.ts'
4
4
 
5
5
  export const CurrencyInputMeta = createComponent('CurrencyInput', {
6
- containerName: 'gds-field',
7
- cssProps: {
8
- /** @default 'medium' */
9
- size: FieldMeta.cssProps.size,
10
- },
6
+ extends: FieldMeta,
11
7
  })
@@ -56,6 +56,7 @@ export function DescriptionListRoot({
56
56
  </div>
57
57
  )
58
58
  }
59
+ DescriptionListRoot.displayName = 'DescriptionList'
59
60
 
60
61
  export interface DescriptionListItemProps
61
62
  extends ComponentProps<'div'>, GDSComponentProps<typeof DescriptionListItemMeta> {
@@ -1,6 +1,7 @@
1
1
  import { createComponent } from '@graphprotocol/gds-css'
2
2
 
3
3
  export const IconMeta = createComponent('Icon', {
4
+ isolate: 'allow-inheritance',
4
5
  addonCompatible: true,
5
6
  cssProps: {
6
7
  /** @default '1em' */
@@ -13,7 +13,7 @@ import type { GDSComponentProps } from '@graphprotocol/gds-css'
13
13
  import { useGDS } from '../hooks/index.ts'
14
14
  import { cn, getCSSPropsAttributes } from '../utils/index.ts'
15
15
  import { IconMeta } from './Icon.meta.ts'
16
- import { useCollectTooltip } from './Tooltip.tsx'
16
+ import { useTooltipCollector } from './Tooltip.tsx'
17
17
 
18
18
  export interface IconProps
19
19
  extends Omit<ComponentProps<'span'>, 'children' | 'color'>, GDSComponentProps<typeof IconMeta> {
@@ -35,10 +35,10 @@ export function Icon({ src, alt, size, color, className, style, ...props }: Icon
35
35
  useGDS()
36
36
 
37
37
  const iconContent = isValidElement(src) ? src : createElement(src)
38
- const collectTooltip = useCollectTooltip()
38
+ const collectTooltipContent = useTooltipCollector()
39
39
 
40
- if (collectTooltip && alt) {
41
- collectTooltip(alt)
40
+ if (collectTooltipContent && alt) {
41
+ collectTooltipContent(alt)
42
42
  }
43
43
 
44
44
  if ('variant' in props) {
@@ -3,9 +3,5 @@ import { createComponent } from '@graphprotocol/gds-css'
3
3
  import { FieldMeta } from './base/Field.meta.ts'
4
4
 
5
5
  export const InputMeta = createComponent('Input', {
6
- containerName: 'gds-field',
7
- cssProps: {
8
- /** @default 'medium' */
9
- size: FieldMeta.cssProps.size,
10
- },
6
+ extends: FieldMeta,
11
7
  })
@@ -1,6 +1,6 @@
1
1
  'use client'
2
2
 
3
- import type { ComponentProps, ReactElement, ReactNode } from 'react'
3
+ import type { ComponentProps, ReactNode } from 'react'
4
4
 
5
5
  import type { GDSComponentProps } from '@graphprotocol/gds-css'
6
6
  import { parseNumber } from '@graphprotocol/gds-utils'
@@ -8,10 +8,10 @@ import { parseNumber } from '@graphprotocol/gds-utils'
8
8
  import { useControlled, useGDS } from '../hooks/index.ts'
9
9
  import { cn, splitProps } from '../utils/index.ts'
10
10
  import { Field, type FieldProps } from './base/Field.tsx'
11
- import { Render } from './base/Render.tsx'
11
+ import { Render, type RenderProp } from './base/Render.tsx'
12
12
  import type { InputMeta } from './Input.meta.ts'
13
13
 
14
- export interface InputState {
14
+ export type InputState = {
15
15
  inputProps: ComponentProps<'input'>
16
16
  inputWithUnitAndAction: ReactNode
17
17
  }
@@ -39,9 +39,7 @@ export interface InputProps
39
39
  message?: FieldProps['message'] | undefined
40
40
  unit?: ReactNode | undefined
41
41
  action?: ReactNode | undefined
42
- renderInput?:
43
- | ((renderProps: ComponentProps<'div'>, state: InputState) => ReactElement)
44
- | undefined
42
+ renderInput?: RenderProp<InputState> | undefined
45
43
  }
46
44
 
47
45
  export function Input({
@@ -168,6 +166,7 @@ export function Input({
168
166
  **:button:default-variant-tertiary
169
167
  @prop-size-small/field:pe-0.5
170
168
  @prop-size-small/field:**:button:var-[radius=var(--radius-4)]
169
+ @prop-size-small/field:**:button-group:var-[gap=--spacing(0.5)]
171
170
  @prop-size-medium/field:pe-1.5
172
171
  @prop-size-large/field:pe-2
173
172
  @prop-size-small/field:**:button-or-group:prop-size-xsmall
@@ -185,12 +184,12 @@ export function Input({
185
184
 
186
185
  return (
187
186
  <Render
188
- {...renderProps}
189
187
  render={renderInput ?? <Field.Box>{inputWithUnitAndAction}</Field.Box>}
190
188
  state={{
191
189
  inputProps,
192
190
  inputWithUnitAndAction,
193
191
  }}
192
+ {...renderProps}
194
193
  />
195
194
  )
196
195
  }}
@@ -48,7 +48,7 @@ export function Keyboard({
48
48
  <kbd
49
49
  ref={cssPropsPolyfillPassedRef}
50
50
  className={cn(
51
- `gds-keyboard root-inline u:shrink-0 u:font-mono u:font-regular u:whitespace-nowrap u:text-default
51
+ `gds-keyboard root-inline u:shrink-0 u:font-mono u:whitespace-nowrap
52
52
  i:leading-0`,
53
53
  className,
54
54
  )}
@@ -1,6 +1,7 @@
1
1
  import { createComponent } from '@graphprotocol/gds-css'
2
2
 
3
3
  export const LinkMeta = createComponent('Link', {
4
+ isolate: 'allow-inheritance',
4
5
  cssProps: {
5
6
  /** @default 'primary' */
6
7
  variant: {
@@ -15,7 +15,7 @@ export declare namespace LinkProps {
15
15
  /** @default 'primary' */
16
16
  variant?: 'primary' | 'secondary' | undefined
17
17
  addonBefore?: AddonValue | undefined
18
- /** Defaults to `ArrowUpRightInteractiveIcon` if `href` is set and `target` is `_blank` */
18
+ /** Defaults to `ArrowUpRightInteractiveIcon` if `href` is defined and `target` is `_blank` */
19
19
  addonAfter?: AddonValue | undefined
20
20
  }
21
21
  interface ButtonProps
@@ -70,8 +70,7 @@ export function Link({
70
70
  disabled={disabled}
71
71
  data-variant={cssProps.variant}
72
72
  className={cn(
73
- `gds-link isolate ${/* Allow nested elements (e.g. `CodeInline`) to have a negative `z-index` to appear behind the underline */ ''}
74
- root-inline u:w-max u:max-w-full u:wrap-anywhere u:outline-0
73
+ `gds-link root-inline u:w-max u:max-w-full u:wrap-anywhere u:outline-0
75
74
  u:hover:state-hover
76
75
  u:focus-visible:state-focus
77
76
  u:active:state-active
@@ -85,7 +84,7 @@ export function Link({
85
84
  {...getCSSPropsAttributes(LinkMeta, { variant }, style)}
86
85
  {...cssPropsPolyfillAttributes}
87
86
  {...props}
88
- render={(renderProps, { Element, target }) => {
87
+ render={(renderProps, { Element, elementProps, target }) => {
89
88
  const addonAfter: AddonValue =
90
89
  passedAddonAfter !== undefined ? (
91
90
  passedAddonAfter
@@ -93,7 +92,7 @@ export function Link({
93
92
  <ArrowUpRightInteractiveIcon />
94
93
  ) : undefined
95
94
  return (
96
- <Element {...renderProps}>
95
+ <Element {...renderProps} {...elementProps}>
97
96
  <span
98
97
  className={`
99
98
  nested/link-paint -mx-1 rounded-[max(--spacing(1),0.25em)] p-1 whitespace-nowrap transition
@@ -1,5 +1,43 @@
1
1
  import { createComponent } from '@graphprotocol/gds-css'
2
2
 
3
- export const MenuMeta = createComponent('Menu')
3
+ export const MenuMeta = createComponent('Menu', {
4
+ isolate: false,
5
+ cssProps: {
6
+ /** @default 'bottom' // or for nested menus, 'end' */
7
+ side: {
8
+ type: 'values',
9
+ values: ['top', 'bottom', 'start', 'end'],
10
+ defaultValue: 'bottom',
11
+ },
12
+ /** @default 1 // or for nested menus, 3 */
13
+ gap: {
14
+ type: 'number',
15
+ defaultValue: 1,
16
+ },
17
+ /** @default 'start' */
18
+ align: {
19
+ type: 'values',
20
+ values: ['start', 'center', 'end'],
21
+ defaultValue: 'start',
22
+ },
23
+ /** @default 0 // or for nested menus, -2 */
24
+ alignOffset: {
25
+ type: 'number',
26
+ defaultValue: 0,
27
+ },
28
+ /** @default false */
29
+ matchTriggerWidth: {
30
+ type: 'values',
31
+ values: [false, true, 'at-least', 'at-most'],
32
+ defaultValue: false,
33
+ },
34
+ /** @default false */
35
+ matchTriggerHeight: {
36
+ type: 'values',
37
+ values: [false, true, 'at-least', 'at-most'],
38
+ defaultValue: false,
39
+ },
40
+ },
41
+ })
4
42
 
5
43
  export const MenuItemMeta = createComponent('MenuItem')