@graphprotocol/gds-react 0.1.2 → 0.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 (373) hide show
  1. package/dist/GDSProvider.d.ts +12 -10
  2. package/dist/GDSProvider.d.ts.map +1 -1
  3. package/dist/GDSProvider.js +10 -8
  4. package/dist/GDSProvider.js.map +1 -1
  5. package/dist/components/Address.js +2 -2
  6. package/dist/components/Address.meta.d.ts +1 -13
  7. package/dist/components/Address.meta.d.ts.map +1 -1
  8. package/dist/components/Avatar.d.ts.map +1 -1
  9. package/dist/components/Avatar.js +2 -10
  10. package/dist/components/Avatar.js.map +1 -1
  11. package/dist/components/Avatar.meta.d.ts +0 -2
  12. package/dist/components/Avatar.meta.d.ts.map +1 -1
  13. package/dist/components/AvatarGroup.meta.d.ts +8 -2
  14. package/dist/components/AvatarGroup.meta.d.ts.map +1 -1
  15. package/dist/components/Breadcrumbs.meta.d.ts +2 -3
  16. package/dist/components/Breadcrumbs.meta.d.ts.map +1 -1
  17. package/dist/components/Breadcrumbs.meta.js +3 -1
  18. package/dist/components/Breadcrumbs.meta.js.map +1 -1
  19. package/dist/components/Breadcrumbs.parts.d.ts.map +1 -1
  20. package/dist/components/Breadcrumbs.parts.js +13 -21
  21. package/dist/components/Breadcrumbs.parts.js.map +1 -1
  22. package/dist/components/Button.d.ts.map +1 -1
  23. package/dist/components/Button.js +10 -9
  24. package/dist/components/Button.js.map +1 -1
  25. package/dist/components/Button.meta.d.ts +1 -4
  26. package/dist/components/Button.meta.d.ts.map +1 -1
  27. package/dist/components/ButtonGroup.d.ts.map +1 -1
  28. package/dist/components/ButtonGroup.js +1 -5
  29. package/dist/components/ButtonGroup.js.map +1 -1
  30. package/dist/components/ButtonGroup.meta.d.ts +1 -5
  31. package/dist/components/ButtonGroup.meta.d.ts.map +1 -1
  32. package/dist/components/ButtonGroup.meta.js +8 -0
  33. package/dist/components/ButtonGroup.meta.js.map +1 -1
  34. package/dist/components/Card.meta.d.ts +1 -2
  35. package/dist/components/Card.meta.d.ts.map +1 -1
  36. package/dist/components/Card.meta.js +1 -0
  37. package/dist/components/Card.meta.js.map +1 -1
  38. package/dist/components/Checkbox.meta.d.ts +1 -6
  39. package/dist/components/Checkbox.meta.d.ts.map +1 -1
  40. package/dist/components/Checkbox.meta.js +1 -5
  41. package/dist/components/Checkbox.meta.js.map +1 -1
  42. package/dist/components/Chip.meta.d.ts +2 -4
  43. package/dist/components/Chip.meta.d.ts.map +1 -1
  44. package/dist/components/Chip.parts.d.ts.map +1 -1
  45. package/dist/components/Chip.parts.js +1 -9
  46. package/dist/components/Chip.parts.js.map +1 -1
  47. package/dist/components/Cluster.meta.d.ts +8 -2
  48. package/dist/components/Cluster.meta.d.ts.map +1 -1
  49. package/dist/components/CodeBlock.d.ts +1 -1
  50. package/dist/components/CodeBlock.meta.d.ts +2 -4
  51. package/dist/components/CodeBlock.meta.d.ts.map +1 -1
  52. package/dist/components/CodeBlock.parts.d.ts +6 -7
  53. package/dist/components/CodeBlock.parts.d.ts.map +1 -1
  54. package/dist/components/CodeBlock.parts.js +28 -10
  55. package/dist/components/CodeBlock.parts.js.map +1 -1
  56. package/dist/components/CodeInline.js +3 -3
  57. package/dist/components/CodeInline.meta.d.ts +1 -1
  58. package/dist/components/CodeInline.meta.d.ts.map +1 -1
  59. package/dist/components/CopyButton.d.ts.map +1 -1
  60. package/dist/components/CopyButton.js +2 -4
  61. package/dist/components/CopyButton.js.map +1 -1
  62. package/dist/components/CopyButton.meta.d.ts +1 -12
  63. package/dist/components/CopyButton.meta.d.ts.map +1 -1
  64. package/dist/components/CopyButton.meta.js +1 -6
  65. package/dist/components/CopyButton.meta.js.map +1 -1
  66. package/dist/components/CurrencyInput.meta.d.ts +1 -6
  67. package/dist/components/CurrencyInput.meta.d.ts.map +1 -1
  68. package/dist/components/CurrencyInput.meta.js +1 -5
  69. package/dist/components/CurrencyInput.meta.js.map +1 -1
  70. package/dist/components/DescriptionList.meta.d.ts +2 -5
  71. package/dist/components/DescriptionList.meta.d.ts.map +1 -1
  72. package/dist/components/DescriptionList.parts.d.ts +3 -0
  73. package/dist/components/DescriptionList.parts.d.ts.map +1 -1
  74. package/dist/components/DescriptionList.parts.js +1 -0
  75. package/dist/components/DescriptionList.parts.js.map +1 -1
  76. package/dist/components/Divider.meta.d.ts +1 -3
  77. package/dist/components/Divider.meta.d.ts.map +1 -1
  78. package/dist/components/Icon.js +4 -4
  79. package/dist/components/Icon.js.map +1 -1
  80. package/dist/components/Icon.meta.d.ts +0 -2
  81. package/dist/components/Icon.meta.d.ts.map +1 -1
  82. package/dist/components/Icon.meta.js +1 -0
  83. package/dist/components/Icon.meta.js.map +1 -1
  84. package/dist/components/Input.d.ts +5 -4
  85. package/dist/components/Input.d.ts.map +1 -1
  86. package/dist/components/Input.js +1 -0
  87. package/dist/components/Input.js.map +1 -1
  88. package/dist/components/Input.meta.d.ts +1 -6
  89. package/dist/components/Input.meta.d.ts.map +1 -1
  90. package/dist/components/Input.meta.js +1 -5
  91. package/dist/components/Input.meta.js.map +1 -1
  92. package/dist/components/Keyboard.js +1 -1
  93. package/dist/components/Keyboard.meta.d.ts +0 -1
  94. package/dist/components/Keyboard.meta.d.ts.map +1 -1
  95. package/dist/components/Label.meta.d.ts +1 -3
  96. package/dist/components/Label.meta.d.ts.map +1 -1
  97. package/dist/components/Link.d.ts +1 -1
  98. package/dist/components/Link.d.ts.map +1 -1
  99. package/dist/components/Link.js +1 -2
  100. package/dist/components/Link.js.map +1 -1
  101. package/dist/components/Link.meta.d.ts +1 -2
  102. package/dist/components/Link.meta.d.ts.map +1 -1
  103. package/dist/components/Link.meta.js +1 -0
  104. package/dist/components/Link.meta.js.map +1 -1
  105. package/dist/components/Menu.meta.d.ts +31 -2
  106. package/dist/components/Menu.meta.d.ts.map +1 -1
  107. package/dist/components/Menu.meta.js +39 -1
  108. package/dist/components/Menu.meta.js.map +1 -1
  109. package/dist/components/Menu.parts.d.ts +23 -32
  110. package/dist/components/Menu.parts.d.ts.map +1 -1
  111. package/dist/components/Menu.parts.js +284 -303
  112. package/dist/components/Menu.parts.js.map +1 -1
  113. package/dist/components/Modal.d.ts +1 -1
  114. package/dist/components/Modal.meta.d.ts +1 -3
  115. package/dist/components/Modal.meta.d.ts.map +1 -1
  116. package/dist/components/Modal.meta.js +1 -1
  117. package/dist/components/Modal.meta.js.map +1 -1
  118. package/dist/components/Modal.parts.d.ts +14 -15
  119. package/dist/components/Modal.parts.d.ts.map +1 -1
  120. package/dist/components/Modal.parts.js +36 -32
  121. package/dist/components/Modal.parts.js.map +1 -1
  122. package/dist/components/OTCInput.js +1 -1
  123. package/dist/components/OTCInput.meta.d.ts +1 -6
  124. package/dist/components/OTCInput.meta.d.ts.map +1 -1
  125. package/dist/components/OTCInput.meta.js +1 -5
  126. package/dist/components/OTCInput.meta.js.map +1 -1
  127. package/dist/components/Radio.meta.d.ts +1 -6
  128. package/dist/components/Radio.meta.d.ts.map +1 -1
  129. package/dist/components/Radio.meta.js +1 -5
  130. package/dist/components/Radio.meta.js.map +1 -1
  131. package/dist/components/Search.meta.d.ts +1 -3
  132. package/dist/components/Search.meta.d.ts.map +1 -1
  133. package/dist/components/SegmentedControl.meta.d.ts +2 -3
  134. package/dist/components/SegmentedControl.meta.d.ts.map +1 -1
  135. package/dist/components/SegmentedControl.meta.js +3 -1
  136. package/dist/components/SegmentedControl.meta.js.map +1 -1
  137. package/dist/components/SegmentedControl.parts.d.ts.map +1 -1
  138. package/dist/components/SegmentedControl.parts.js +4 -9
  139. package/dist/components/SegmentedControl.parts.js.map +1 -1
  140. package/dist/components/Status.meta.d.ts +0 -2
  141. package/dist/components/Status.meta.d.ts.map +1 -1
  142. package/dist/components/Stepper.meta.d.ts +1 -2
  143. package/dist/components/Stepper.meta.d.ts.map +1 -1
  144. package/dist/components/Stepper.meta.js +1 -0
  145. package/dist/components/Stepper.meta.js.map +1 -1
  146. package/dist/components/Stepper.parts.d.ts.map +1 -1
  147. package/dist/components/Stepper.parts.js +1 -1
  148. package/dist/components/Stepper.parts.js.map +1 -1
  149. package/dist/components/Switch.meta.d.ts +1 -6
  150. package/dist/components/Switch.meta.d.ts.map +1 -1
  151. package/dist/components/Switch.meta.js +1 -5
  152. package/dist/components/Switch.meta.js.map +1 -1
  153. package/dist/components/TabSet.meta.d.ts +2 -5
  154. package/dist/components/TabSet.meta.d.ts.map +1 -1
  155. package/dist/components/TabSet.meta.js +3 -1
  156. package/dist/components/TabSet.meta.js.map +1 -1
  157. package/dist/components/Tag.meta.d.ts +0 -2
  158. package/dist/components/Tag.meta.d.ts.map +1 -1
  159. package/dist/components/TextArea.meta.d.ts +1 -6
  160. package/dist/components/TextArea.meta.d.ts.map +1 -1
  161. package/dist/components/TextArea.meta.js +1 -5
  162. package/dist/components/TextArea.meta.js.map +1 -1
  163. package/dist/components/ToggleButton.js +2 -2
  164. package/dist/components/ToggleButton.js.map +1 -1
  165. package/dist/components/ToggleButton.meta.d.ts +1 -12
  166. package/dist/components/ToggleButton.meta.d.ts.map +1 -1
  167. package/dist/components/ToggleButton.meta.js +1 -6
  168. package/dist/components/ToggleButton.meta.js.map +1 -1
  169. package/dist/components/Tooltip.d.ts +2 -2
  170. package/dist/components/Tooltip.d.ts.map +1 -1
  171. package/dist/components/Tooltip.js +2 -2
  172. package/dist/components/Tooltip.js.map +1 -1
  173. package/dist/components/Tooltip.meta.d.ts +12 -7
  174. package/dist/components/Tooltip.meta.d.ts.map +1 -1
  175. package/dist/components/Tooltip.meta.js +13 -2
  176. package/dist/components/Tooltip.meta.js.map +1 -1
  177. package/dist/components/Tooltip.parts.d.ts +20 -20
  178. package/dist/components/Tooltip.parts.d.ts.map +1 -1
  179. package/dist/components/Tooltip.parts.js +129 -88
  180. package/dist/components/Tooltip.parts.js.map +1 -1
  181. package/dist/components/base/Addon.meta.d.ts +1 -1
  182. package/dist/components/base/Addon.meta.d.ts.map +1 -1
  183. package/dist/components/base/Addon.meta.js +3 -1
  184. package/dist/components/base/Addon.meta.js.map +1 -1
  185. package/dist/components/base/ButtonOrLink.d.ts +1 -1
  186. package/dist/components/base/ButtonOrLink.parts.d.ts +6 -5
  187. package/dist/components/base/ButtonOrLink.parts.d.ts.map +1 -1
  188. package/dist/components/base/ButtonOrLink.parts.js +28 -31
  189. package/dist/components/base/ButtonOrLink.parts.js.map +1 -1
  190. package/dist/components/base/Checkable.meta.d.ts +1 -2
  191. package/dist/components/base/Checkable.meta.d.ts.map +1 -1
  192. package/dist/components/base/Checkable.parts.d.ts +6 -6
  193. package/dist/components/base/Checkable.parts.d.ts.map +1 -1
  194. package/dist/components/base/Checkable.parts.js +2 -2
  195. package/dist/components/base/Checkable.parts.js.map +1 -1
  196. package/dist/components/base/Field.meta.d.ts +1 -2
  197. package/dist/components/base/Field.meta.d.ts.map +1 -1
  198. package/dist/components/base/Field.parts.d.ts +5 -4
  199. package/dist/components/base/Field.parts.d.ts.map +1 -1
  200. package/dist/components/base/Field.parts.js +1 -1
  201. package/dist/components/base/Field.parts.js.map +1 -1
  202. package/dist/components/base/MaybeButtonOrLink.d.ts +1 -1
  203. package/dist/components/base/MaybeButtonOrLink.d.ts.map +1 -1
  204. package/dist/components/base/Portal.d.ts +1 -1
  205. package/dist/components/base/Portal.d.ts.map +1 -1
  206. package/dist/components/base/Portal.js +3 -6
  207. package/dist/components/base/Portal.js.map +1 -1
  208. package/dist/components/base/Render.d.ts +21 -6
  209. package/dist/components/base/Render.d.ts.map +1 -1
  210. package/dist/components/base/Render.js +3 -2
  211. package/dist/components/base/Render.js.map +1 -1
  212. package/dist/components/base/Transition.js +2 -2
  213. package/dist/components/base/Transition.meta.d.ts +1 -1
  214. package/dist/components/base/Transition.meta.d.ts.map +1 -1
  215. package/dist/components/base/Transition.meta.js +1 -0
  216. package/dist/components/base/Transition.meta.js.map +1 -1
  217. package/dist/components/base/index.d.ts +1 -2
  218. package/dist/components/base/index.d.ts.map +1 -1
  219. package/dist/components/base/index.js +1 -2
  220. package/dist/components/base/index.js.map +1 -1
  221. package/dist/components/index.d.ts +1 -1
  222. package/dist/components/index.d.ts.map +1 -1
  223. package/dist/components/index.js +1 -1
  224. package/dist/components/index.js.map +1 -1
  225. package/dist/hooks/index.d.ts +1 -0
  226. package/dist/hooks/index.d.ts.map +1 -1
  227. package/dist/hooks/index.js +1 -0
  228. package/dist/hooks/index.js.map +1 -1
  229. package/dist/hooks/useCSSProp.d.ts.map +1 -1
  230. package/dist/hooks/useCSSProp.js +6 -6
  231. package/dist/hooks/useCSSProp.js.map +1 -1
  232. package/dist/hooks/useCSSProps.d.ts +11 -13
  233. package/dist/hooks/useCSSProps.d.ts.map +1 -1
  234. package/dist/hooks/useCSSProps.js +11 -19
  235. package/dist/hooks/useCSSProps.js.map +1 -1
  236. package/dist/hooks/useCSSPropsPolyfill.d.ts +1 -1
  237. package/dist/hooks/useCSSPropsPolyfill.d.ts.map +1 -1
  238. package/dist/hooks/useCSSPropsPolyfill.js +12 -20
  239. package/dist/hooks/useCSSPropsPolyfill.js.map +1 -1
  240. package/dist/hooks/useCSSState.d.ts.map +1 -1
  241. package/dist/hooks/useCSSState.js +7 -3
  242. package/dist/hooks/useCSSState.js.map +1 -1
  243. package/dist/hooks/useEffectWithRefDeps.d.ts +2 -2
  244. package/dist/hooks/useEffectWithRefDeps.d.ts.map +1 -1
  245. package/dist/hooks/useEffectWithRefDeps.js +1 -1
  246. package/dist/hooks/useEffectWithRefDeps.js.map +1 -1
  247. package/dist/hooks/useFirstRender.d.ts +14 -0
  248. package/dist/hooks/useFirstRender.d.ts.map +1 -0
  249. package/dist/hooks/useFirstRender.js +20 -0
  250. package/dist/hooks/useFirstRender.js.map +1 -0
  251. package/dist/hooks/useGDS.d.ts +1 -1
  252. package/dist/hooks/usePrevious.d.ts +6 -4
  253. package/dist/hooks/usePrevious.d.ts.map +1 -1
  254. package/dist/hooks/usePrevious.js +6 -4
  255. package/dist/hooks/usePrevious.js.map +1 -1
  256. package/dist/hooks/useRefWithInit.d.ts +2 -2
  257. package/dist/hooks/useRefWithInit.d.ts.map +1 -1
  258. package/dist/hooks/useRefWithInit.js.map +1 -1
  259. package/dist/hooks/useStyleObserver.d.ts +2 -2
  260. package/dist/hooks/useStyleObserver.d.ts.map +1 -1
  261. package/dist/hooks/useStyleObserver.js.map +1 -1
  262. package/dist/icons/CalendarDynamicIcon.d.ts +8 -5
  263. package/dist/icons/CalendarDynamicIcon.d.ts.map +1 -1
  264. package/dist/icons/CalendarDynamicIcon.js +5 -2
  265. package/dist/icons/CalendarDynamicIcon.js.map +1 -1
  266. package/dist/icons/CopyInteractiveIcon.d.ts +5 -4
  267. package/dist/icons/CopyInteractiveIcon.d.ts.map +1 -1
  268. package/dist/icons/CopyInteractiveIcon.js +2 -2
  269. package/dist/icons/CopyInteractiveIcon.js.map +1 -1
  270. package/dist/icons/SidebarLeftInteractiveIcon.d.ts +4 -3
  271. package/dist/icons/SidebarLeftInteractiveIcon.d.ts.map +1 -1
  272. package/dist/icons/SidebarLeftInteractiveIcon.js +2 -2
  273. package/dist/icons/SidebarLeftInteractiveIcon.js.map +1 -1
  274. package/dist/icons/SidebarRightInteractiveIcon.d.ts +4 -3
  275. package/dist/icons/SidebarRightInteractiveIcon.d.ts.map +1 -1
  276. package/dist/icons/SidebarRightInteractiveIcon.js +2 -2
  277. package/dist/icons/SidebarRightInteractiveIcon.js.map +1 -1
  278. package/dist/tailwind-plugin.js +5 -5
  279. package/dist/tailwind-plugin.js.map +1 -1
  280. package/dist/utils/cn.d.ts +3 -1
  281. package/dist/utils/cn.d.ts.map +1 -1
  282. package/dist/utils/cn.js +3 -1
  283. package/dist/utils/cn.js.map +1 -1
  284. package/dist/utils/getCSSPropsAttributes.d.ts +10 -3
  285. package/dist/utils/getCSSPropsAttributes.d.ts.map +1 -1
  286. package/dist/utils/getCSSPropsAttributes.js +4 -5
  287. package/dist/utils/getCSSPropsAttributes.js.map +1 -1
  288. package/dist/utils/splitProps.d.ts +1 -4
  289. package/dist/utils/splitProps.d.ts.map +1 -1
  290. package/dist/utils/splitProps.js +2 -7
  291. package/dist/utils/splitProps.js.map +1 -1
  292. package/dist/utils/trimReactNode.d.ts +10 -8
  293. package/dist/utils/trimReactNode.d.ts.map +1 -1
  294. package/dist/utils/trimReactNode.js +10 -8
  295. package/dist/utils/trimReactNode.js.map +1 -1
  296. package/package.json +17 -17
  297. package/src/GDSProvider.tsx +11 -9
  298. package/src/components/Address.tsx +2 -2
  299. package/src/components/Avatar.tsx +5 -10
  300. package/src/components/Breadcrumbs.meta.ts +3 -1
  301. package/src/components/Breadcrumbs.parts.tsx +16 -28
  302. package/src/components/Button.tsx +14 -10
  303. package/src/components/ButtonGroup.meta.ts +8 -0
  304. package/src/components/ButtonGroup.tsx +1 -5
  305. package/src/components/Card.meta.ts +1 -0
  306. package/src/components/Checkbox.meta.ts +1 -5
  307. package/src/components/Chip.parts.tsx +1 -11
  308. package/src/components/CodeBlock.parts.tsx +75 -50
  309. package/src/components/CodeInline.tsx +3 -3
  310. package/src/components/CopyButton.meta.ts +1 -6
  311. package/src/components/CopyButton.tsx +3 -4
  312. package/src/components/CurrencyInput.meta.ts +1 -5
  313. package/src/components/DescriptionList.parts.tsx +1 -0
  314. package/src/components/Icon.meta.ts +1 -0
  315. package/src/components/Icon.tsx +4 -4
  316. package/src/components/Input.meta.ts +1 -5
  317. package/src/components/Input.tsx +5 -6
  318. package/src/components/Keyboard.tsx +1 -1
  319. package/src/components/Link.meta.ts +1 -0
  320. package/src/components/Link.tsx +2 -3
  321. package/src/components/Menu.meta.ts +39 -1
  322. package/src/components/Menu.parts.tsx +553 -549
  323. package/src/components/Modal.meta.ts +1 -1
  324. package/src/components/Modal.parts.tsx +67 -68
  325. package/src/components/OTCInput.meta.ts +1 -5
  326. package/src/components/OTCInput.tsx +1 -1
  327. package/src/components/Radio.meta.ts +1 -5
  328. package/src/components/SegmentedControl.meta.ts +3 -1
  329. package/src/components/SegmentedControl.parts.tsx +7 -10
  330. package/src/components/Stepper.meta.ts +1 -0
  331. package/src/components/Stepper.parts.tsx +3 -1
  332. package/src/components/Switch.meta.ts +1 -5
  333. package/src/components/TabSet.meta.ts +3 -1
  334. package/src/components/TextArea.meta.ts +1 -5
  335. package/src/components/ToggleButton.meta.ts +1 -6
  336. package/src/components/ToggleButton.tsx +1 -1
  337. package/src/components/Tooltip.meta.ts +13 -2
  338. package/src/components/Tooltip.parts.tsx +215 -158
  339. package/src/components/Tooltip.tsx +2 -2
  340. package/src/components/base/Addon.meta.ts +3 -1
  341. package/src/components/base/ButtonOrLink.parts.tsx +52 -51
  342. package/src/components/base/Checkable.parts.tsx +6 -13
  343. package/src/components/base/Field.parts.tsx +5 -5
  344. package/src/components/base/Portal.tsx +5 -7
  345. package/src/components/base/Render.tsx +37 -15
  346. package/src/components/base/Transition.meta.ts +1 -0
  347. package/src/components/base/Transition.tsx +2 -2
  348. package/src/components/base/index.ts +8 -2
  349. package/src/components/index.ts +1 -2
  350. package/src/hooks/index.ts +1 -0
  351. package/src/hooks/useCSSProp.ts +6 -8
  352. package/src/hooks/useCSSProps.ts +13 -22
  353. package/src/hooks/useCSSPropsPolyfill.ts +15 -23
  354. package/src/hooks/useCSSState.ts +11 -6
  355. package/src/hooks/useEffectWithRefDeps.ts +2 -2
  356. package/src/hooks/useFirstRender.ts +36 -0
  357. package/src/hooks/usePrevious.ts +6 -4
  358. package/src/hooks/useRefWithInit.ts +2 -2
  359. package/src/hooks/useStyleObserver.ts +5 -1
  360. package/src/icons/CalendarDynamicIcon.tsx +16 -6
  361. package/src/icons/CopyInteractiveIcon.tsx +10 -5
  362. package/src/icons/SidebarLeftInteractiveIcon.tsx +9 -5
  363. package/src/icons/SidebarRightInteractiveIcon.tsx +9 -5
  364. package/src/tailwind-plugin.ts +5 -5
  365. package/src/utils/cn.ts +3 -1
  366. package/src/utils/getCSSPropsAttributes.ts +13 -8
  367. package/src/utils/splitProps.ts +9 -9
  368. package/src/utils/trimReactNode.tsx +10 -8
  369. package/dist/components/base/ButtonOrLink.meta.d.ts +0 -2
  370. package/dist/components/base/ButtonOrLink.meta.d.ts.map +0 -1
  371. package/dist/components/base/ButtonOrLink.meta.js +0 -6
  372. package/dist/components/base/ButtonOrLink.meta.js.map +0 -1
  373. package/src/components/base/ButtonOrLink.meta.ts +0 -6
@@ -20,7 +20,7 @@ export function useEffectWithRefDeps<T, RefDeps extends readonly Ref<T>[]>(
20
20
  effect: EffectCallback,
21
21
  regularDeps: unknown[],
22
22
  refDeps: [...RefDeps],
23
- options: { deepCompare?: boolean; hook?: EffectHook } = {},
23
+ options: { deepCompare?: boolean | undefined; hook?: EffectHook | undefined } = {},
24
24
  ) {
25
25
  const { deepCompare = false, hook = useEffect } = options
26
26
 
@@ -53,7 +53,7 @@ export function useEffectWithRefDeps<T, RefDeps extends readonly Ref<T>[]>(
53
53
 
54
54
  const runEffectNextTick = useCallback(() => {
55
55
  const token = ++runEffectToken.current
56
- queueMicrotask(() => {
56
+ window.queueMicrotask(() => {
57
57
  if (runEffectToken.current === token) {
58
58
  runEffect()
59
59
  }
@@ -0,0 +1,36 @@
1
+ import { useEffect, useRef } from 'react'
2
+
3
+ import { useForceRerender } from './useForceRerender.ts'
4
+
5
+ interface UseFirstRenderOptions {
6
+ /** Callback to run on first render. */
7
+ callback?: () => void
8
+ /**
9
+ * If true, immediately triggers a re-render after the first render.
10
+ *
11
+ * @default false
12
+ */
13
+ immediatelyRerender?: boolean | undefined
14
+ }
15
+
16
+ export function useFirstRender(callback?: () => void): boolean
17
+ export function useFirstRender(options: UseFirstRenderOptions): boolean
18
+ export function useFirstRender(callbackOrOptions?: (() => void) | UseFirstRenderOptions) {
19
+ const options = typeof callbackOrOptions === 'function' ? undefined : callbackOrOptions
20
+ const callback = typeof callbackOrOptions === 'function' ? callbackOrOptions : options?.callback
21
+
22
+ const firstRender = useRef(true)
23
+ const [rerender] = useForceRerender()
24
+
25
+ useEffect(() => {
26
+ if (!firstRender.current) return
27
+ firstRender.current = false
28
+ callback?.()
29
+ if (options?.immediatelyRerender) {
30
+ rerender()
31
+ }
32
+ // oxlint-disable-next-line react-hooks/exhaustive-deps
33
+ }, [])
34
+
35
+ return firstRender.current
36
+ }
@@ -12,10 +12,12 @@ const NOT_SET = Symbol('NOT_SET')
12
12
  *
13
13
  * @example
14
14
  *
15
- * const previous = usePrevious(someValue)
16
- * if (previous.hasChanged) {
17
- * // Value changed from `previous.value` to `someValue`
18
- * }
15
+ * ```ts
16
+ * const previous = usePrevious(someValue)
17
+ * if (previous.hasChanged) {
18
+ * // Value changed from `previous.value` to `someValue`
19
+ * }
20
+ * ```
19
21
  */
20
22
  export function usePrevious<T>(value: T) {
21
23
  const previousRenderValueRef = useRef<T | typeof NOT_SET>(NOT_SET)
@@ -1,4 +1,4 @@
1
- import { useRef, type MutableRefObject } from 'react'
1
+ import { useRef, type RefObject } from 'react'
2
2
 
3
3
  /**
4
4
  * Works like `useRef` but accepts an initializer function that runs once on the first render, like
@@ -11,5 +11,5 @@ export function useRefWithInit<T>(initFn: () => T) {
11
11
  ref.current = initFn()
12
12
  }
13
13
 
14
- return ref as MutableRefObject<T>
14
+ return ref as RefObject<T>
15
15
  }
@@ -17,7 +17,11 @@ export function useStyleObserver<T extends string>(
17
17
  properties: T[],
18
18
  onChange: (records: Record<T>[]) => void,
19
19
  deps: unknown[],
20
- options: { ref?: Ref<HTMLElement> | undefined; immediate?: boolean; disabled?: boolean } = {},
20
+ options: {
21
+ ref?: Ref<HTMLElement> | undefined
22
+ immediate?: boolean | undefined
23
+ disabled?: boolean | undefined
24
+ } = {},
21
25
  ) {
22
26
  const { ref: passedRef, immediate = false, disabled = false } = options
23
27
  const elementRef = useRef<HTMLElement>(null)
@@ -2,17 +2,21 @@ import { useId } from 'react'
2
2
 
3
3
  import { Icon, type IconProps } from '../components/Icon.tsx'
4
4
 
5
- export interface CalendarDynamicIconProps extends IconProps {
5
+ export interface CalendarDynamicIconProps extends Omit<IconProps, 'alt'> {
6
+ /** Defaults to a formatted version of `date`. */
7
+ alt?: string
6
8
  /**
7
- * Day of the month.
9
+ * Day of the month, or a full date. If the latter, the icon will only display the day part, but
10
+ * the default `alt` will be the full formatted date.
8
11
  *
9
- * @default new Date().getDate()
12
+ * @default new Date()
10
13
  */
11
- date?: number
14
+ date?: number | Date
12
15
  }
13
16
 
14
17
  export function CalendarDynamicIcon({
15
- date = new Date().getDate(),
18
+ alt,
19
+ date = new Date(),
16
20
  ...props
17
21
  }: CalendarDynamicIconProps) {
18
22
  const uniqueId = useId()
@@ -37,13 +41,19 @@ export function CalendarDynamicIcon({
37
41
  fontSize="7px"
38
42
  fontWeight="bold"
39
43
  >
40
- {date}
44
+ {typeof date === 'number' ? date : date.getDate()}
41
45
  </text>
42
46
  </mask>
43
47
  </defs>
44
48
  <use href={`#${uniqueId}-calendar-path`} mask={`url(#${uniqueId}-text-mask)`} />
45
49
  </svg>
46
50
  }
51
+ alt={
52
+ alt ??
53
+ (typeof date === 'number'
54
+ ? `Day ${date} of the month`
55
+ : date.toLocaleDateString(undefined, { dateStyle: 'long' }))
56
+ }
47
57
  data-name="CalendarDynamic"
48
58
  {...props}
49
59
  />
@@ -1,14 +1,19 @@
1
1
  import { useId } from 'react'
2
- import type { SetOptional } from 'type-fest'
3
2
 
4
3
  import { Icon, type IconProps } from '../components/Icon.tsx'
5
4
 
6
- export interface CopyInteractiveIconProps extends SetOptional<IconProps, 'alt'> {
5
+ export interface CopyInteractiveIconProps extends Omit<IconProps, 'alt'> {
6
+ /** @default 'Copy' */
7
+ alt?: IconProps['alt']
7
8
  /** @default false */
8
- copied?: boolean
9
+ copied?: boolean | undefined
9
10
  }
10
11
 
11
- export function CopyInteractiveIcon({ copied = false, ...props }: CopyInteractiveIconProps) {
12
+ export function CopyInteractiveIcon({
13
+ alt = 'Copy',
14
+ copied = false,
15
+ ...props
16
+ }: CopyInteractiveIconProps) {
12
17
  const uniqueId = useId()
13
18
 
14
19
  return (
@@ -85,7 +90,7 @@ export function CopyInteractiveIcon({ copied = false, ...props }: CopyInteractiv
85
90
  </g>
86
91
  </svg>
87
92
  }
88
- alt="Copy"
93
+ alt={alt}
89
94
  data-name="CopyAnimated"
90
95
  {...props}
91
96
  />
@@ -1,10 +1,14 @@
1
- import type { SetOptional } from 'type-fest'
2
-
3
1
  import { Icon, type IconProps } from '../components/Icon.tsx'
4
2
 
5
- export interface SidebarLeftInteractiveIconProps extends SetOptional<IconProps, 'alt'> {}
3
+ export interface SidebarLeftInteractiveIconProps extends Omit<IconProps, 'alt'> {
4
+ /** @default 'Toggle sidebar' */
5
+ alt?: IconProps['alt']
6
+ }
6
7
 
7
- export function SidebarLeftInteractiveIcon(props: SidebarLeftInteractiveIconProps) {
8
+ export function SidebarLeftInteractiveIcon({
9
+ alt = 'Toggle sidebar',
10
+ ...props
11
+ }: SidebarLeftInteractiveIconProps) {
8
12
  return (
9
13
  <Icon
10
14
  src={
@@ -19,7 +23,7 @@ export function SidebarLeftInteractiveIcon(props: SidebarLeftInteractiveIconProp
19
23
  />
20
24
  </svg>
21
25
  }
22
- alt=""
26
+ alt={alt}
23
27
  data-name="SidebarLeftInteractive"
24
28
  {...props}
25
29
  />
@@ -1,10 +1,14 @@
1
- import type { SetOptional } from 'type-fest'
2
-
3
1
  import { Icon, type IconProps } from '../components/Icon.tsx'
4
2
 
5
- export interface SidebarRightInteractiveIconProps extends SetOptional<IconProps, 'alt'> {}
3
+ export interface SidebarRightInteractiveIconProps extends Omit<IconProps, 'alt'> {
4
+ /** @default 'Toggle sidebar' */
5
+ alt?: IconProps['alt']
6
+ }
6
7
 
7
- export function SidebarRightInteractiveIcon(props: SidebarRightInteractiveIconProps) {
8
+ export function SidebarRightInteractiveIcon({
9
+ alt = 'Toggle sidebar',
10
+ ...props
11
+ }: SidebarRightInteractiveIconProps) {
8
12
  return (
9
13
  <Icon
10
14
  src={
@@ -19,7 +23,7 @@ export function SidebarRightInteractiveIcon(props: SidebarRightInteractiveIconPr
19
23
  />
20
24
  </svg>
21
25
  }
22
- alt=""
26
+ alt={alt}
23
27
  data-name="SidebarRightInteractive"
24
28
  {...props}
25
29
  />
@@ -7,7 +7,6 @@ import { AddressMeta } from './components/Address.meta.ts'
7
7
  import { AvatarMeta } from './components/Avatar.meta.ts'
8
8
  import { AvatarGroupMeta } from './components/AvatarGroup.meta.ts'
9
9
  import { AddonMeta } from './components/base/Addon.meta.ts'
10
- import { ButtonOrLinkMeta } from './components/base/ButtonOrLink.meta.ts'
11
10
  import { CheckableMeta } from './components/base/Checkable.meta.ts'
12
11
  import { FieldMeta } from './components/base/Field.meta.ts'
13
12
  import { TransitionMeta } from './components/base/Transition.meta.ts'
@@ -19,6 +18,7 @@ import { CheckboxMeta } from './components/Checkbox.meta.ts'
19
18
  import { ChipGroupMeta, ChipMeta } from './components/Chip.meta.ts'
20
19
  import { ClusterMeta } from './components/Cluster.meta.ts'
21
20
  import { CodeBlockMeta, CodeBlockTabsMeta } from './components/CodeBlock.meta.ts'
21
+ import { CodeInlineMeta } from './components/CodeInline.meta.ts'
22
22
  import { CopyButtonMeta } from './components/CopyButton.meta.ts'
23
23
  import { CurrencyInputMeta } from './components/CurrencyInput.meta.ts'
24
24
  import { DescriptionListItemMeta, DescriptionListMeta } from './components/DescriptionList.meta.ts'
@@ -78,17 +78,17 @@ const gdsTailwindPluginWithComponents: ReturnType<typeof createPlugin> = createP
78
78
  AvatarGroupMeta,
79
79
  BreadcrumbsItemMeta,
80
80
  BreadcrumbsMeta,
81
- ButtonOrLinkMeta,
82
81
  ButtonMeta,
83
82
  ButtonGroupMeta,
84
83
  CardMeta,
85
- CodeBlockMeta,
86
- CodeBlockTabsMeta,
87
84
  CheckableMeta,
88
85
  CheckboxMeta,
89
86
  ChipMeta,
90
87
  ChipGroupMeta,
91
88
  ClusterMeta,
89
+ CodeBlockMeta,
90
+ CodeBlockTabsMeta,
91
+ CodeInlineMeta,
92
92
  CopyButtonMeta,
93
93
  CurrencyInputMeta,
94
94
  DescriptionListItemMeta,
@@ -111,8 +111,8 @@ const gdsTailwindPluginWithComponents: ReturnType<typeof createPlugin> = createP
111
111
  StatusMeta,
112
112
  StepperMeta,
113
113
  SwitchMeta,
114
- TabSetTabsMeta,
115
114
  TabSetTabMeta,
115
+ TabSetTabsMeta,
116
116
  TagMeta,
117
117
  TextAreaMeta,
118
118
  ToggleButtonMeta,
package/src/utils/cn.ts CHANGED
@@ -3,7 +3,9 @@
3
3
  *
4
4
  * @example
5
5
  *
6
- * cn('base-class', condition && 'conditional-class', className)
6
+ * ```ts
7
+ * cn('base-class', condition && 'conditional-class', className)
8
+ * ```
7
9
  */
8
10
  export function cn(...classes: (string | undefined | null | false)[]): string {
9
11
  return classes.filter(Boolean).join(' ')
@@ -12,8 +12,14 @@ type AllCSSProps<C extends GDSComponent> = {
12
12
  [K in keyof ComponentCSSProps<C>]-?: ComponentCSSProps<C>[K] | undefined
13
13
  }
14
14
 
15
- // For props with a `defaultValue`, ensure they can be `undefined` (preventing destructuring defaults like `{ size = 'medium' }`).
16
- // For props without a `defaultValue`, allow any value since they're required and will never be `undefined`.
15
+ /**
16
+ * Validates the passed values object:
17
+ *
18
+ * - Rejects keys that are not CSS props.
19
+ * - For props with a `defaultValue`, ensures they can be `undefined` (preventing destructuring
20
+ * defaults, which would break `default-*` utilities).
21
+ * - For props without a `defaultValue`, allows any value since they're required.
22
+ */
17
23
  type ValidatePassedValues<C extends GDSComponent, T extends AllCSSProps<C>> = {
18
24
  [K in keyof T]: K extends keyof ComponentCSSPropsConfig<C>
19
25
  ? 'defaultValue' extends keyof ComponentCSSPropsConfig<C>[K]
@@ -21,12 +27,11 @@ type ValidatePassedValues<C extends GDSComponent, T extends AllCSSProps<C>> = {
21
27
  ? T[K]
22
28
  : never
23
29
  : T[K]
24
- : T[K]
30
+ : `"${K & string}" is not a CSS prop of this component`
25
31
  }
26
32
 
27
33
  /**
28
- * Returns attributes to spread on the root element of a component that supports CSS Props. This
29
- * enables the CSS Props system to apply prop-based styling.
34
+ * Returns attributes to spread on the root element of a component that supports CSS props.
30
35
  *
31
36
  * @param component The component metadata object created with createComponent.
32
37
  * @param passedValues Object containing all the CSS prop values from the component props.
@@ -41,13 +46,13 @@ export function getCSSPropsAttributes<C extends GDSComponent, V extends AllCSSPr
41
46
  const customProperties: Record<string, string> = {}
42
47
 
43
48
  for (const propName in passedValues) {
44
- const prop = component.getCSSPropByName(propName)
49
+ const cssProp = component.getCSSPropByName(propName)
45
50
  const value = passedValues[propName]
46
51
  if (value === undefined) continue
47
- customProperties[`--gds-passed-${prop.kebabName}`] = getCSSPropRawValue(prop, value)
52
+ customProperties[`--gds-passed-${cssProp.kebabName}`] = getCSSPropRawValue(cssProp, value)
48
53
  }
49
54
 
50
55
  return {
51
- style: { ...style, ...customProperties },
56
+ style: { ...customProperties, ...style },
52
57
  }
53
58
  }
@@ -10,28 +10,22 @@
10
10
  * destructured), `style`, `inert`, `hidden`, and `aria-hidden` go in `rootProps`, along with data
11
11
  * attributes, since they can be coupled to the `className` to apply styles conditionally, e.g.
12
12
  * `<Button data-highlighted={highlighted} className="data-[highlighted]:prop-variant-primary" />`.
13
- * However, data attributes can also be needed on the underlying element in some cases, so they are
14
- * also included in the `nestedProps`, except the ones starting with `data-gds-`, to avoid messing
15
- * with the CSS props or states systems.
16
13
  */
17
14
  export function splitProps<T extends Record<string, unknown>>(props: T) {
18
15
  const rootProps: Record<string, unknown> = {}
19
16
  const nestedProps: Record<string, unknown> = {}
20
17
 
21
18
  for (const [key, value] of Object.entries(props)) {
22
- const isDataAttribute = key.startsWith('data-')
23
- const isGDSDataAttribute = key.startsWith('data-gds-')
24
19
  const isRootProp =
25
20
  key === 'className' ||
26
21
  key === 'style' ||
27
22
  key === 'inert' ||
28
23
  key === 'hidden' ||
29
24
  key === 'aria-hidden' ||
30
- isDataAttribute
25
+ key.startsWith('data-')
31
26
  if (isRootProp) {
32
27
  rootProps[key] = value
33
- }
34
- if (!isRootProp || (isDataAttribute && !isGDSDataAttribute)) {
28
+ } else {
35
29
  nestedProps[key] = value
36
30
  }
37
31
  }
@@ -49,7 +43,13 @@ export function splitProps<T extends Record<string, unknown>>(props: T) {
49
43
  : never]: T[K]
50
44
  }
51
45
  nestedProps: {
52
- [K in keyof T as K extends 'className' | 'style' | 'inert' | 'hidden' | 'aria-hidden'
46
+ [K in keyof T as K extends
47
+ | 'className'
48
+ | 'style'
49
+ | 'inert'
50
+ | 'hidden'
51
+ | 'aria-hidden'
52
+ | `data-${string}`
53
53
  ? never
54
54
  : K]: T[K]
55
55
  }
@@ -12,14 +12,16 @@ import { Children, isValidElement, type ReactElement, type ReactNode } from 'rea
12
12
  *
13
13
  * @example
14
14
  *
15
- * trimReactNode(' hello ') // 'hello'
16
- * trimReactNode(
17
- * <>
18
- * {' '}
19
- * <span>test</span>{' '}
20
- * </>,
21
- * ) // <><span>test</span></>
22
- * trimReactNode([' ', <div>content</div>, ' ']) // [<div>content</div>]
15
+ * ```tsx
16
+ * trimReactNode(' hello ') // 'hello'
17
+ * trimReactNode(
18
+ * <>
19
+ * {' '}
20
+ * <span>test</span>{' '}
21
+ * </>,
22
+ * ) // <><span>test</span></>
23
+ * trimReactNode([' ', <div>content</div>, ' ']) // [<div>content</div>]
24
+ * ```
23
25
  *
24
26
  * @param node - The `ReactNode` to trim.
25
27
  * @returns A new `ReactNode` with leading and trailing whitespace removed.
@@ -1,2 +0,0 @@
1
- export declare const ButtonOrLinkMeta: import("@graphprotocol/gds-css").GDSComponent<import("@graphprotocol/gds-css").CSSPropsConfig, boolean>;
2
- //# sourceMappingURL=ButtonOrLink.meta.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ButtonOrLink.meta.d.ts","sourceRoot":"","sources":["../../../src/components/base/ButtonOrLink.meta.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,yGAE3B,CAAA"}
@@ -1,6 +0,0 @@
1
- import { createComponent } from '@graphprotocol/gds-css';
2
- // `ButtonOrLink` doesn't use CSS Props, but we register it for the `*-button-or-link` variants
3
- export const ButtonOrLinkMeta = createComponent('ButtonOrLink', {
4
- containerName: null,
5
- });
6
- //# sourceMappingURL=ButtonOrLink.meta.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ButtonOrLink.meta.js","sourceRoot":"","sources":["../../../src/components/base/ButtonOrLink.meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC,cAAc,EAAE;IAC9D,aAAa,EAAE,IAAI;CACpB,CAAC,CAAA"}
@@ -1,6 +0,0 @@
1
- import { createComponent } from '@graphprotocol/gds-css'
2
-
3
- // `ButtonOrLink` doesn't use CSS Props, but we register it for the `*-button-or-link` variants
4
- export const ButtonOrLinkMeta = createComponent('ButtonOrLink', {
5
- containerName: null,
6
- })