@seed-design/react 1.2.15 → 2.0.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 (391) hide show
  1. package/lib/components/Accordion/Accordion.cjs +42 -0
  2. package/lib/components/Accordion/Accordion.d.ts +35 -0
  3. package/lib/components/Accordion/Accordion.d.ts.map +1 -0
  4. package/lib/components/Accordion/Accordion.js +32 -0
  5. package/lib/components/Accordion/Accordion.namespace.cjs +22 -0
  6. package/lib/components/Accordion/Accordion.namespace.d.ts +2 -0
  7. package/lib/components/Accordion/Accordion.namespace.d.ts.map +1 -0
  8. package/lib/components/Accordion/Accordion.namespace.js +17 -0
  9. package/lib/components/Accordion/index.cjs +19 -0
  10. package/lib/components/Accordion/index.d.ts +3 -0
  11. package/lib/components/Accordion/index.d.ts.map +1 -0
  12. package/lib/components/Accordion/index.js +3 -0
  13. package/lib/components/ActionButton/ActionButton.cjs +1 -1
  14. package/lib/components/ActionButton/ActionButton.d.ts +1 -1
  15. package/lib/components/ActionButton/ActionButton.d.ts.map +1 -1
  16. package/lib/components/ActionButton/ActionButton.js +1 -1
  17. package/lib/components/ActionSheet/ActionSheet.cjs +12 -12
  18. package/lib/components/ActionSheet/ActionSheet.d.ts +22 -22
  19. package/lib/components/ActionSheet/ActionSheet.js +12 -12
  20. package/lib/components/Article/Article.d.ts +2 -3
  21. package/lib/components/Article/Article.d.ts.map +1 -1
  22. package/lib/components/AspectRatio/AspectRatio.d.ts +2 -2
  23. package/lib/components/AspectRatio/AspectRatio.d.ts.map +1 -1
  24. package/lib/components/AttachmentDisplay/AttachmentDisplay.cjs +63 -0
  25. package/lib/components/AttachmentDisplay/AttachmentDisplay.d.ts +43 -0
  26. package/lib/components/AttachmentDisplay/AttachmentDisplay.d.ts.map +1 -0
  27. package/lib/components/AttachmentDisplay/AttachmentDisplay.js +49 -0
  28. package/lib/components/AttachmentDisplay/AttachmentDisplay.namespace.cjs +37 -0
  29. package/lib/components/AttachmentDisplay/AttachmentDisplay.namespace.d.ts +5 -0
  30. package/lib/components/AttachmentDisplay/AttachmentDisplay.namespace.d.ts.map +1 -0
  31. package/lib/components/AttachmentDisplay/AttachmentDisplay.namespace.js +32 -0
  32. package/lib/components/AttachmentDisplay/AttachmentDisplayItem.cjs +110 -0
  33. package/lib/components/AttachmentDisplay/AttachmentDisplayItem.d.ts +30 -0
  34. package/lib/components/AttachmentDisplay/AttachmentDisplayItem.d.ts.map +1 -0
  35. package/lib/components/AttachmentDisplay/AttachmentDisplayItem.js +100 -0
  36. package/lib/components/AttachmentDisplay/AttachmentDisplayTrigger.cjs +50 -0
  37. package/lib/components/AttachmentDisplay/AttachmentDisplayTrigger.d.ts +18 -0
  38. package/lib/components/AttachmentDisplay/AttachmentDisplayTrigger.d.ts.map +1 -0
  39. package/lib/components/AttachmentDisplay/AttachmentDisplayTrigger.js +45 -0
  40. package/lib/components/AttachmentDisplay/index.cjs +34 -0
  41. package/lib/components/AttachmentDisplay/index.d.ts +6 -0
  42. package/lib/components/AttachmentDisplay/index.d.ts.map +1 -0
  43. package/lib/components/AttachmentDisplay/index.js +5 -0
  44. package/lib/components/AttachmentInput/AttachmentInput.cjs +37 -0
  45. package/lib/components/AttachmentInput/AttachmentInput.d.ts +23 -0
  46. package/lib/components/AttachmentInput/AttachmentInput.d.ts.map +1 -0
  47. package/lib/components/AttachmentInput/AttachmentInput.js +30 -0
  48. package/lib/components/AttachmentInput/AttachmentInput.namespace.cjs +35 -0
  49. package/lib/components/AttachmentInput/AttachmentInput.namespace.d.ts +6 -0
  50. package/lib/components/AttachmentInput/AttachmentInput.namespace.d.ts.map +1 -0
  51. package/lib/components/AttachmentInput/AttachmentInput.namespace.js +30 -0
  52. package/lib/components/AttachmentInput/AttachmentInput.test.d.ts +2 -0
  53. package/lib/components/AttachmentInput/AttachmentInput.test.d.ts.map +1 -0
  54. package/lib/components/AttachmentInput/AttachmentInputDropzone.cjs +12 -0
  55. package/lib/components/AttachmentInput/AttachmentInputDropzone.d.ts +9 -0
  56. package/lib/components/AttachmentInput/AttachmentInputDropzone.d.ts.map +1 -0
  57. package/lib/components/AttachmentInput/AttachmentInputDropzone.js +10 -0
  58. package/lib/components/AttachmentInput/AttachmentInputItem.cjs +138 -0
  59. package/lib/components/AttachmentInput/AttachmentInputItem.d.ts +36 -0
  60. package/lib/components/AttachmentInput/AttachmentInputItem.d.ts.map +1 -0
  61. package/lib/components/AttachmentInput/AttachmentInputItem.js +126 -0
  62. package/lib/components/AttachmentInput/AttachmentInputTrigger.cjs +54 -0
  63. package/lib/components/AttachmentInput/AttachmentInputTrigger.d.ts +21 -0
  64. package/lib/components/AttachmentInput/AttachmentInputTrigger.d.ts.map +1 -0
  65. package/lib/components/AttachmentInput/AttachmentInputTrigger.js +49 -0
  66. package/lib/components/AttachmentInput/index.cjs +32 -0
  67. package/lib/components/AttachmentInput/index.d.ts +7 -0
  68. package/lib/components/AttachmentInput/index.d.ts.map +1 -0
  69. package/lib/components/AttachmentInput/index.js +6 -0
  70. package/lib/components/BottomSheet/BottomSheet.cjs +36 -9
  71. package/lib/components/BottomSheet/BottomSheet.d.ts +2 -7
  72. package/lib/components/BottomSheet/BottomSheet.d.ts.map +1 -1
  73. package/lib/components/BottomSheet/BottomSheet.js +35 -9
  74. package/lib/components/Box/Box.cjs +10 -3
  75. package/lib/components/Box/Box.d.ts +4 -2
  76. package/lib/components/Box/Box.d.ts.map +1 -1
  77. package/lib/components/Box/Box.js +10 -3
  78. package/lib/components/Checkbox/Checkbox.cjs +2 -6
  79. package/lib/components/Checkbox/Checkbox.d.ts +1 -7
  80. package/lib/components/Checkbox/Checkbox.d.ts.map +1 -1
  81. package/lib/components/Checkbox/Checkbox.js +2 -6
  82. package/lib/components/Chip/Chip.cjs +1 -1
  83. package/lib/components/Chip/Chip.js +1 -1
  84. package/lib/components/ChipTabs/ChipTabs.cjs +0 -1
  85. package/lib/components/ChipTabs/ChipTabs.d.ts.map +1 -1
  86. package/lib/components/ChipTabs/ChipTabs.js +0 -1
  87. package/lib/components/Columns/Columns.d.ts +4 -4
  88. package/lib/components/Columns/Columns.d.ts.map +1 -1
  89. package/lib/components/ExtendedActionSheet/ExtendedActionSheet.cjs +13 -13
  90. package/lib/components/ExtendedActionSheet/ExtendedActionSheet.d.ts +24 -24
  91. package/lib/components/ExtendedActionSheet/ExtendedActionSheet.js +13 -13
  92. package/lib/components/FieldButton/FieldButton.cjs +22 -3
  93. package/lib/components/FieldButton/FieldButton.d.ts +3 -2
  94. package/lib/components/FieldButton/FieldButton.d.ts.map +1 -1
  95. package/lib/components/FieldButton/FieldButton.js +23 -3
  96. package/lib/components/Flex/Flex.d.ts +5 -3
  97. package/lib/components/Flex/Flex.d.ts.map +1 -1
  98. package/lib/components/Footer/Footer.namespace.cjs +11 -0
  99. package/lib/components/Footer/Footer.namespace.d.ts +2 -0
  100. package/lib/components/Footer/Footer.namespace.d.ts.map +1 -0
  101. package/lib/components/Footer/Footer.namespace.js +6 -0
  102. package/lib/components/Footer/FooterLinkText.cjs +23 -0
  103. package/lib/components/Footer/FooterLinkText.d.ts +7 -0
  104. package/lib/components/Footer/FooterLinkText.d.ts.map +1 -0
  105. package/lib/components/Footer/FooterLinkText.js +20 -0
  106. package/lib/components/Footer/index.cjs +10 -0
  107. package/lib/components/Footer/index.d.ts +3 -0
  108. package/lib/components/Footer/index.d.ts.map +1 -0
  109. package/lib/components/Footer/index.js +3 -0
  110. package/lib/components/Grid/Grid.cjs +7 -2
  111. package/lib/components/Grid/Grid.d.ts +7 -5
  112. package/lib/components/Grid/Grid.d.ts.map +1 -1
  113. package/lib/components/Grid/Grid.js +7 -2
  114. package/lib/components/GridItem/GridItem.d.ts +3 -2
  115. package/lib/components/GridItem/GridItem.d.ts.map +1 -1
  116. package/lib/components/HelpBubble/HelpBubble.cjs +4 -7
  117. package/lib/components/HelpBubble/HelpBubble.d.ts.map +1 -1
  118. package/lib/components/HelpBubble/HelpBubble.js +4 -7
  119. package/lib/components/HelpBubbleTooltip/HelpBubbleTooltip.cjs +64 -0
  120. package/lib/components/HelpBubbleTooltip/HelpBubbleTooltip.d.ts +60 -0
  121. package/lib/components/HelpBubbleTooltip/HelpBubbleTooltip.d.ts.map +1 -0
  122. package/lib/components/HelpBubbleTooltip/HelpBubbleTooltip.js +52 -0
  123. package/lib/components/HelpBubbleTooltip/HelpBubbleTooltip.namespace.cjs +23 -0
  124. package/lib/components/HelpBubbleTooltip/HelpBubbleTooltip.namespace.d.ts +2 -0
  125. package/lib/components/HelpBubbleTooltip/HelpBubbleTooltip.namespace.d.ts.map +1 -0
  126. package/lib/components/HelpBubbleTooltip/HelpBubbleTooltip.namespace.js +18 -0
  127. package/lib/components/HelpBubbleTooltip/index.cjs +20 -0
  128. package/lib/components/HelpBubbleTooltip/index.d.ts +3 -0
  129. package/lib/components/HelpBubbleTooltip/index.d.ts.map +1 -0
  130. package/lib/components/HelpBubbleTooltip/index.js +3 -0
  131. package/lib/components/Icon/Icon.d.ts +2 -1
  132. package/lib/components/Icon/Icon.d.ts.map +1 -1
  133. package/lib/components/ImageFrame/ImageFrame.cjs +10 -10
  134. package/lib/components/ImageFrame/ImageFrame.d.ts +3 -11
  135. package/lib/components/ImageFrame/ImageFrame.d.ts.map +1 -1
  136. package/lib/components/ImageFrame/ImageFrame.js +10 -10
  137. package/lib/components/Inline/Inline.d.ts +2 -2
  138. package/lib/components/Inline/Inline.d.ts.map +1 -1
  139. package/lib/components/Layout/Layout.cjs +12 -0
  140. package/lib/components/Layout/Layout.d.ts +10 -0
  141. package/lib/components/Layout/Layout.d.ts.map +1 -0
  142. package/lib/components/Layout/Layout.js +10 -0
  143. package/lib/components/Layout/Layout.namespace.cjs +14 -0
  144. package/lib/components/Layout/Layout.namespace.d.ts +2 -0
  145. package/lib/components/Layout/Layout.namespace.d.ts.map +1 -0
  146. package/lib/components/Layout/Layout.namespace.js +9 -0
  147. package/lib/components/Layout/index.cjs +11 -0
  148. package/lib/components/Layout/index.d.ts +3 -0
  149. package/lib/components/Layout/index.d.ts.map +1 -0
  150. package/lib/components/Layout/index.js +3 -0
  151. package/lib/components/List/List.cjs +1 -1
  152. package/lib/components/List/List.d.ts +1 -1
  153. package/lib/components/List/List.d.ts.map +1 -1
  154. package/lib/components/List/List.js +1 -1
  155. package/lib/components/Menu/Menu.cjs +76 -0
  156. package/lib/components/Menu/Menu.d.ts +42 -0
  157. package/lib/components/Menu/Menu.d.ts.map +1 -0
  158. package/lib/components/Menu/Menu.js +62 -0
  159. package/lib/components/Menu/Menu.namespace.cjs +24 -0
  160. package/lib/components/Menu/Menu.namespace.d.ts +2 -0
  161. package/lib/components/Menu/Menu.namespace.d.ts.map +1 -0
  162. package/lib/components/Menu/Menu.namespace.js +19 -0
  163. package/lib/components/Menu/index.cjs +21 -0
  164. package/lib/components/Menu/index.d.ts +3 -0
  165. package/lib/components/Menu/index.d.ts.map +1 -0
  166. package/lib/components/Menu/index.js +3 -0
  167. package/lib/components/MenuSheet/MenuSheet.cjs +48 -0
  168. package/lib/components/MenuSheet/MenuSheet.d.ts +96 -0
  169. package/lib/components/MenuSheet/MenuSheet.d.ts.map +1 -1
  170. package/lib/components/MenuSheet/MenuSheet.js +48 -0
  171. package/lib/components/NavigationMenu/NavigationMenu.cjs +76 -0
  172. package/lib/components/NavigationMenu/NavigationMenu.d.ts +42 -0
  173. package/lib/components/NavigationMenu/NavigationMenu.d.ts.map +1 -0
  174. package/lib/components/NavigationMenu/NavigationMenu.js +62 -0
  175. package/lib/components/NavigationMenu/NavigationMenu.namespace.cjs +24 -0
  176. package/lib/components/NavigationMenu/NavigationMenu.namespace.d.ts +2 -0
  177. package/lib/components/NavigationMenu/NavigationMenu.namespace.d.ts.map +1 -0
  178. package/lib/components/NavigationMenu/NavigationMenu.namespace.js +19 -0
  179. package/lib/components/NavigationMenu/index.cjs +21 -0
  180. package/lib/components/NavigationMenu/index.d.ts +3 -0
  181. package/lib/components/NavigationMenu/index.d.ts.map +1 -0
  182. package/lib/components/NavigationMenu/index.js +3 -0
  183. package/lib/components/RadioGroup/RadioGroup.cjs +1 -1
  184. package/lib/components/RadioGroup/RadioGroup.js +1 -1
  185. package/lib/components/ResponsivePair/ResponsivePair.cjs +8 -5
  186. package/lib/components/ResponsivePair/ResponsivePair.d.ts +3 -2
  187. package/lib/components/ResponsivePair/ResponsivePair.d.ts.map +1 -1
  188. package/lib/components/ResponsivePair/ResponsivePair.js +8 -5
  189. package/lib/components/ResponsiveSidePanel/ResponsiveSidePanel.cjs +184 -0
  190. package/lib/components/ResponsiveSidePanel/ResponsiveSidePanel.d.ts +65 -0
  191. package/lib/components/ResponsiveSidePanel/ResponsiveSidePanel.d.ts.map +1 -0
  192. package/lib/components/ResponsiveSidePanel/ResponsiveSidePanel.js +170 -0
  193. package/lib/components/ResponsiveSidePanel/ResponsiveSidePanel.namespace.cjs +24 -0
  194. package/lib/components/ResponsiveSidePanel/ResponsiveSidePanel.namespace.d.ts +2 -0
  195. package/lib/components/ResponsiveSidePanel/ResponsiveSidePanel.namespace.d.ts.map +1 -0
  196. package/lib/components/ResponsiveSidePanel/ResponsiveSidePanel.namespace.js +19 -0
  197. package/lib/components/ResponsiveSidePanel/index.cjs +22 -0
  198. package/lib/components/ResponsiveSidePanel/index.d.ts +3 -0
  199. package/lib/components/ResponsiveSidePanel/index.d.ts.map +1 -0
  200. package/lib/components/ResponsiveSidePanel/index.js +3 -0
  201. package/lib/components/ScrollFog/ScrollFog.cjs +1 -2
  202. package/lib/components/ScrollFog/ScrollFog.d.ts.map +1 -1
  203. package/lib/components/ScrollFog/ScrollFog.js +4 -5
  204. package/lib/components/SelectBox/CheckSelectBox.cjs +2 -2
  205. package/lib/components/SelectBox/CheckSelectBox.d.ts +1 -1
  206. package/lib/components/SelectBox/CheckSelectBox.d.ts.map +1 -1
  207. package/lib/components/SelectBox/CheckSelectBox.js +1 -1
  208. package/lib/components/SideNavigation/SideNavigation.cjs +175 -0
  209. package/lib/components/SideNavigation/SideNavigation.d.ts +59 -0
  210. package/lib/components/SideNavigation/SideNavigation.d.ts.map +1 -0
  211. package/lib/components/SideNavigation/SideNavigation.js +157 -0
  212. package/lib/components/SideNavigation/SideNavigation.namespace.cjs +28 -0
  213. package/lib/components/SideNavigation/SideNavigation.namespace.d.ts +3 -0
  214. package/lib/components/SideNavigation/SideNavigation.namespace.d.ts.map +1 -0
  215. package/lib/components/SideNavigation/SideNavigation.namespace.js +23 -0
  216. package/lib/components/SideNavigation/index.cjs +25 -0
  217. package/lib/components/SideNavigation/index.d.ts +4 -0
  218. package/lib/components/SideNavigation/index.d.ts.map +1 -0
  219. package/lib/components/SideNavigation/index.js +3 -0
  220. package/lib/components/SidePanel/SidePanel.cjs +100 -0
  221. package/lib/components/SidePanel/SidePanel.d.ts +41 -0
  222. package/lib/components/SidePanel/SidePanel.d.ts.map +1 -0
  223. package/lib/components/SidePanel/SidePanel.js +87 -0
  224. package/lib/components/SidePanel/SidePanel.namespace.cjs +23 -0
  225. package/lib/components/SidePanel/SidePanel.namespace.d.ts +2 -0
  226. package/lib/components/SidePanel/SidePanel.namespace.d.ts.map +1 -0
  227. package/lib/components/SidePanel/SidePanel.namespace.js +18 -0
  228. package/lib/components/SidePanel/index.cjs +20 -0
  229. package/lib/components/SidePanel/index.d.ts +3 -0
  230. package/lib/components/SidePanel/index.d.ts.map +1 -0
  231. package/lib/components/SidePanel/index.js +3 -0
  232. package/lib/components/Slider/Slider.cjs +2 -2
  233. package/lib/components/Slider/Slider.js +2 -2
  234. package/lib/components/Snackbar/Snackbar.cjs +2 -2
  235. package/lib/components/Snackbar/Snackbar.d.ts +1 -1
  236. package/lib/components/Snackbar/Snackbar.d.ts.map +1 -1
  237. package/lib/components/Snackbar/Snackbar.js +2 -2
  238. package/lib/components/Stack/Stack.d.ts +4 -6
  239. package/lib/components/Stack/Stack.d.ts.map +1 -1
  240. package/lib/components/SwipeableMenuSheet/SwipeableMenuSheet.cjs +123 -0
  241. package/lib/components/SwipeableMenuSheet/SwipeableMenuSheet.d.ts +60 -0
  242. package/lib/components/SwipeableMenuSheet/SwipeableMenuSheet.d.ts.map +1 -0
  243. package/lib/components/SwipeableMenuSheet/SwipeableMenuSheet.js +104 -0
  244. package/lib/components/SwipeableMenuSheet/SwipeableMenuSheet.namespace.cjs +29 -0
  245. package/lib/components/SwipeableMenuSheet/SwipeableMenuSheet.namespace.d.ts +2 -0
  246. package/lib/components/SwipeableMenuSheet/SwipeableMenuSheet.namespace.d.ts.map +1 -0
  247. package/lib/components/SwipeableMenuSheet/SwipeableMenuSheet.namespace.js +24 -0
  248. package/lib/components/SwipeableMenuSheet/index.cjs +26 -0
  249. package/lib/components/SwipeableMenuSheet/index.d.ts +3 -0
  250. package/lib/components/SwipeableMenuSheet/index.d.ts.map +1 -0
  251. package/lib/components/SwipeableMenuSheet/index.js +3 -0
  252. package/lib/components/Switch/Switch.cjs +1 -5
  253. package/lib/components/Switch/Switch.d.ts +1 -7
  254. package/lib/components/Switch/Switch.d.ts.map +1 -1
  255. package/lib/components/Switch/Switch.js +1 -5
  256. package/lib/components/TagGroup/TagGroup.cjs +1 -1
  257. package/lib/components/TagGroup/TagGroup.js +1 -1
  258. package/lib/components/TextField/TextField.cjs +1 -1
  259. package/lib/components/TextField/TextField.js +1 -1
  260. package/lib/components/index.cjs +249 -0
  261. package/lib/components/index.d.ts +12 -0
  262. package/lib/components/index.d.ts.map +1 -1
  263. package/lib/components/index.js +30 -1
  264. package/lib/components/private/useDismissible.d.ts +6 -6
  265. package/lib/hooks/useBreakpoint.cjs +15 -0
  266. package/lib/hooks/useBreakpoint.d.ts +12 -0
  267. package/lib/hooks/useBreakpoint.d.ts.map +1 -0
  268. package/lib/hooks/useBreakpoint.js +13 -0
  269. package/lib/hooks/useBreakpoint.test.d.ts +2 -0
  270. package/lib/hooks/useBreakpoint.test.d.ts.map +1 -0
  271. package/lib/hooks/useBreakpointValue.cjs +23 -0
  272. package/lib/hooks/useBreakpointValue.d.ts +8 -0
  273. package/lib/hooks/useBreakpointValue.d.ts.map +1 -0
  274. package/lib/hooks/useBreakpointValue.js +22 -0
  275. package/lib/hooks/useBreakpointValue.test.d.ts +2 -0
  276. package/lib/hooks/useBreakpointValue.test.d.ts.map +1 -0
  277. package/lib/index.cjs +255 -0
  278. package/lib/index.d.ts +6 -0
  279. package/lib/index.d.ts.map +1 -1
  280. package/lib/index.js +33 -1
  281. package/lib/primitive.cjs +45 -0
  282. package/lib/primitive.d.ts +5 -0
  283. package/lib/primitive.d.ts.map +1 -1
  284. package/lib/primitive.js +5 -0
  285. package/lib/primitives/breakpoint-store.cjs +52 -0
  286. package/lib/primitives/breakpoint-store.d.ts +7 -0
  287. package/lib/primitives/breakpoint-store.d.ts.map +1 -0
  288. package/lib/primitives/breakpoint-store.js +50 -0
  289. package/lib/providers/BreakpointProvider.cjs +20 -0
  290. package/lib/providers/BreakpointProvider.d.ts +8 -0
  291. package/lib/providers/BreakpointProvider.d.ts.map +1 -0
  292. package/lib/providers/BreakpointProvider.js +19 -0
  293. package/lib/types/responsive.cjs +7 -0
  294. package/lib/types/responsive.d.ts +12 -0
  295. package/lib/types/responsive.d.ts.map +1 -0
  296. package/lib/types/responsive.js +7 -0
  297. package/lib/utils/createRenderTrackingContext.cjs +45 -0
  298. package/lib/utils/createRenderTrackingContext.d.ts +28 -0
  299. package/lib/utils/createRenderTrackingContext.d.ts.map +1 -0
  300. package/lib/utils/createRenderTrackingContext.js +44 -0
  301. package/lib/utils/getHelpBubbleArrowTipPath.cjs +14 -0
  302. package/lib/utils/getHelpBubbleArrowTipPath.d.ts +7 -0
  303. package/lib/utils/getHelpBubbleArrowTipPath.d.ts.map +1 -0
  304. package/lib/utils/getHelpBubbleArrowTipPath.js +14 -0
  305. package/lib/utils/styled.cjs +49 -75
  306. package/lib/utils/styled.d.ts +180 -62
  307. package/lib/utils/styled.d.ts.map +1 -1
  308. package/lib/utils/styled.js +49 -76
  309. package/package.json +33 -26
  310. package/src/components/Accordion/Accordion.namespace.ts +22 -0
  311. package/src/components/Accordion/Accordion.tsx +119 -0
  312. package/src/components/Accordion/index.ts +24 -0
  313. package/src/components/ActionButton/ActionButton.tsx +1 -1
  314. package/src/components/ActionSheet/ActionSheet.tsx +22 -22
  315. package/src/components/Article/Article.tsx +1 -1
  316. package/src/components/AspectRatio/AspectRatio.tsx +2 -2
  317. package/src/components/AttachmentDisplay/AttachmentDisplay.namespace.ts +57 -0
  318. package/src/components/AttachmentDisplay/AttachmentDisplay.tsx +165 -0
  319. package/src/components/AttachmentDisplay/AttachmentDisplayItem.tsx +204 -0
  320. package/src/components/AttachmentDisplay/AttachmentDisplayTrigger.tsx +82 -0
  321. package/src/components/AttachmentDisplay/index.ts +59 -0
  322. package/src/components/AttachmentInput/AttachmentInput.namespace.ts +54 -0
  323. package/src/components/AttachmentInput/AttachmentInput.test.tsx +161 -0
  324. package/src/components/AttachmentInput/AttachmentInput.tsx +77 -0
  325. package/src/components/AttachmentInput/AttachmentInputDropzone.tsx +25 -0
  326. package/src/components/AttachmentInput/AttachmentInputItem.tsx +246 -0
  327. package/src/components/AttachmentInput/AttachmentInputTrigger.tsx +85 -0
  328. package/src/components/AttachmentInput/index.ts +56 -0
  329. package/src/components/BottomSheet/BottomSheet.tsx +51 -22
  330. package/src/components/Box/Box.tsx +30 -7
  331. package/src/components/Checkbox/Checkbox.tsx +3 -31
  332. package/src/components/ChipTabs/ChipTabs.tsx +0 -6
  333. package/src/components/Columns/Columns.tsx +4 -3
  334. package/src/components/ExtendedActionSheet/ExtendedActionSheet.tsx +24 -24
  335. package/src/components/FieldButton/FieldButton.tsx +36 -8
  336. package/src/components/Flex/Flex.tsx +5 -3
  337. package/src/components/Footer/Footer.namespace.ts +4 -0
  338. package/src/components/Footer/FooterLinkText.tsx +23 -0
  339. package/src/components/Footer/index.ts +3 -0
  340. package/src/components/Grid/Grid.tsx +15 -8
  341. package/src/components/GridItem/GridItem.tsx +3 -2
  342. package/src/components/HelpBubble/HelpBubble.tsx +2 -5
  343. package/src/components/HelpBubbleTooltip/HelpBubbleTooltip.namespace.ts +24 -0
  344. package/src/components/HelpBubbleTooltip/HelpBubbleTooltip.tsx +169 -0
  345. package/src/components/HelpBubbleTooltip/index.ts +26 -0
  346. package/src/components/Icon/Icon.tsx +2 -1
  347. package/src/components/ImageFrame/ImageFrame.test.tsx +1 -3
  348. package/src/components/ImageFrame/ImageFrame.tsx +29 -35
  349. package/src/components/Inline/Inline.tsx +2 -1
  350. package/src/components/Layout/Layout.namespace.ts +6 -0
  351. package/src/components/Layout/Layout.tsx +21 -0
  352. package/src/components/Layout/index.ts +8 -0
  353. package/src/components/List/List.tsx +5 -1
  354. package/src/components/Menu/Menu.namespace.ts +26 -0
  355. package/src/components/Menu/Menu.tsx +157 -0
  356. package/src/components/Menu/index.ts +28 -0
  357. package/src/components/MenuSheet/MenuSheet.tsx +96 -0
  358. package/src/components/NavigationMenu/NavigationMenu.namespace.ts +26 -0
  359. package/src/components/NavigationMenu/NavigationMenu.tsx +172 -0
  360. package/src/components/NavigationMenu/index.ts +28 -0
  361. package/src/components/ResponsivePair/ResponsivePair.tsx +13 -7
  362. package/src/components/ResponsiveSidePanel/ResponsiveSidePanel.namespace.ts +26 -0
  363. package/src/components/ResponsiveSidePanel/ResponsiveSidePanel.tsx +316 -0
  364. package/src/components/ResponsiveSidePanel/index.ts +29 -0
  365. package/src/components/ScrollFog/ScrollFog.tsx +2 -11
  366. package/src/components/SelectBox/CheckSelectBox.tsx +1 -1
  367. package/src/components/SideNavigation/SideNavigation.namespace.ts +37 -0
  368. package/src/components/SideNavigation/SideNavigation.tsx +342 -0
  369. package/src/components/SideNavigation/index.ts +39 -0
  370. package/src/components/SidePanel/SidePanel.namespace.ts +24 -0
  371. package/src/components/SidePanel/SidePanel.tsx +216 -0
  372. package/src/components/SidePanel/index.ts +26 -0
  373. package/src/components/Snackbar/Snackbar.tsx +2 -4
  374. package/src/components/Stack/Stack.tsx +4 -3
  375. package/src/components/SwipeableMenuSheet/SwipeableMenuSheet.namespace.ts +36 -0
  376. package/src/components/SwipeableMenuSheet/SwipeableMenuSheet.tsx +269 -0
  377. package/src/components/SwipeableMenuSheet/index.ts +38 -0
  378. package/src/components/Switch/Switch.tsx +3 -26
  379. package/src/components/index.ts +12 -0
  380. package/src/hooks/useBreakpoint.test.tsx +94 -0
  381. package/src/hooks/useBreakpoint.ts +24 -0
  382. package/src/hooks/useBreakpointValue.test.tsx +102 -0
  383. package/src/hooks/useBreakpointValue.ts +33 -0
  384. package/src/index.ts +8 -0
  385. package/src/primitive.ts +5 -0
  386. package/src/primitives/breakpoint-store.ts +69 -0
  387. package/src/providers/BreakpointProvider.tsx +26 -0
  388. package/src/types/responsive.ts +19 -0
  389. package/src/utils/createRenderTrackingContext.tsx +50 -0
  390. package/src/utils/getHelpBubbleArrowTipPath.ts +11 -0
  391. package/src/utils/styled.tsx +387 -268
@@ -0,0 +1,102 @@
1
+ import { act, renderHook } from "@testing-library/react";
2
+ import { beforeEach, describe, expect, it, mock } from "bun:test";
3
+
4
+ import { useBreakpointValue } from "./useBreakpointValue";
5
+
6
+ type ChangeHandler = (e: { matches: boolean }) => void;
7
+
8
+ let currentWidth = 0;
9
+ const entries = new Map<string, { minWidth: number; handlers: Set<ChangeHandler> }>();
10
+
11
+ function mockMatchMedia(query: string) {
12
+ const match = query.match(/min-width:\s*(\d+)px/);
13
+ const minWidth = match ? Number(match[1]) : 0;
14
+ const entry = entries.get(query) ?? { minWidth, handlers: new Set<ChangeHandler>() };
15
+ entries.set(query, entry);
16
+ return {
17
+ get matches() {
18
+ return currentWidth >= entry.minWidth;
19
+ },
20
+ media: query,
21
+ addEventListener(_: string, handler: ChangeHandler) {
22
+ entry.handlers.add(handler);
23
+ },
24
+ removeEventListener(_: string, handler: ChangeHandler) {
25
+ entry.handlers.delete(handler);
26
+ },
27
+ onchange: null,
28
+ addListener: mock(),
29
+ removeListener: mock(),
30
+ dispatchEvent: () => false,
31
+ };
32
+ }
33
+
34
+ function setViewport(minWidthPx: number) {
35
+ currentWidth = minWidthPx;
36
+ for (const [, entry] of entries) {
37
+ const nowMatches = currentWidth >= entry.minWidth;
38
+ for (const handler of entry.handlers) {
39
+ handler({ matches: nowMatches });
40
+ }
41
+ }
42
+ }
43
+
44
+ beforeEach(() => {
45
+ currentWidth = 0;
46
+ entries.clear();
47
+ window.matchMedia = mockMatchMedia as unknown as typeof window.matchMedia;
48
+ });
49
+
50
+ describe("useBreakpointValue", () => {
51
+ it("passes through a single value", () => {
52
+ const { result } = renderHook(() => useBreakpointValue(42));
53
+ expect(result.current).toBe(42);
54
+ });
55
+
56
+ it("passes through a string value", () => {
57
+ const { result } = renderHook(() => useBreakpointValue("hello"));
58
+ expect(result.current).toBe("hello");
59
+ });
60
+
61
+ it("resolves base value at base breakpoint", () => {
62
+ const { result } = renderHook(() => useBreakpointValue({ base: 1, md: 2, xl: 4 }));
63
+ expect(result.current).toBe(1);
64
+ });
65
+
66
+ it("falls back to base when current breakpoint has no value", () => {
67
+ currentWidth = 480; // sm
68
+ const { result } = renderHook(() => useBreakpointValue({ base: 1, md: 2 }));
69
+ // sm is not defined, falls back to base
70
+ expect(result.current).toBe(1);
71
+ });
72
+
73
+ it("resolves md value at md breakpoint", () => {
74
+ currentWidth = 768;
75
+ const { result } = renderHook(() => useBreakpointValue({ base: 1, md: 2, xl: 4 }));
76
+ expect(result.current).toBe(2);
77
+ });
78
+
79
+ it("falls back to md at lg when lg is not defined", () => {
80
+ currentWidth = 1280; // lg
81
+ const { result } = renderHook(() => useBreakpointValue({ base: 1, md: 2, xl: 4 }));
82
+ // lg not defined, falls back to md
83
+ expect(result.current).toBe(2);
84
+ });
85
+
86
+ it("resolves xl value at xl breakpoint", () => {
87
+ currentWidth = 1440;
88
+ const { result } = renderHook(() => useBreakpointValue({ base: 1, md: 2, xl: 4 }));
89
+ expect(result.current).toBe(4);
90
+ });
91
+
92
+ it("updates when viewport changes", () => {
93
+ const { result } = renderHook(() => useBreakpointValue({ base: "compact", md: "full" }));
94
+ expect(result.current).toBe("compact");
95
+
96
+ act(() => setViewport(768));
97
+ expect(result.current).toBe("full");
98
+
99
+ act(() => setViewport(0));
100
+ expect(result.current).toBe("compact");
101
+ });
102
+ });
@@ -0,0 +1,33 @@
1
+ import { type Breakpoint, breakpointNames } from "@seed-design/css/breakpoints";
2
+ import { useMemo } from "react";
3
+
4
+ import type { ResponsiveValue } from "../types/responsive";
5
+ import { isResponsiveObject } from "../types/responsive";
6
+ import { type UseBreakpointOptions, useBreakpoint } from "./useBreakpoint";
7
+
8
+ export function resolveResponsiveValue<T>(
9
+ values: { [K in Breakpoint]?: T },
10
+ breakpoint: Breakpoint,
11
+ ): T | undefined {
12
+ const idx = breakpointNames.indexOf(breakpoint);
13
+ for (let i = idx; i >= 0; i--) {
14
+ const val = values[breakpointNames[i]];
15
+
16
+ if (val !== undefined) return val;
17
+ }
18
+
19
+ return undefined;
20
+ }
21
+
22
+ export function useBreakpointValue<T>(
23
+ values: ResponsiveValue<T>,
24
+ options?: UseBreakpointOptions,
25
+ ): T | undefined {
26
+ const breakpoint = useBreakpoint(options);
27
+
28
+ return useMemo(() => {
29
+ if (!isResponsiveObject(values)) return values;
30
+
31
+ return resolveResponsiveValue(values, breakpoint);
32
+ }, [values, breakpoint]);
33
+ }
package/src/index.ts CHANGED
@@ -1,4 +1,12 @@
1
1
  export * from "./components";
2
2
 
3
+ export type { ResponsiveValue, UnwrapResponsive, BreakpointThreshold } from "./types/responsive";
4
+
5
+ export { useBreakpoint } from "./hooks/useBreakpoint";
6
+ export type { UseBreakpointOptions } from "./hooks/useBreakpoint";
7
+ export { useBreakpointValue } from "./hooks/useBreakpointValue";
8
+ export { BreakpointProvider } from "./providers/BreakpointProvider";
9
+ export type { BreakpointProviderProps } from "./providers/BreakpointProvider";
10
+
3
11
  // unstable_StyleProps is unstable and will be changed or removed without prior notice
4
12
  export type { StyleProps as unstable_StyleProps } from "./utils/styled";
package/src/primitive.ts CHANGED
@@ -1,10 +1,15 @@
1
+ export * from "@seed-design/react-attachment-display";
1
2
  export * from "@seed-design/react-avatar";
2
3
  export * from "@seed-design/react-checkbox";
3
4
  export * from "@seed-design/react-dialog";
5
+ export * from "@seed-design/react-file-upload";
6
+ export * from "@seed-design/react-middle-truncate";
7
+ export * from "@seed-design/react-navigation-menu";
4
8
  export * from "@seed-design/react-popover";
5
9
  export * from "@seed-design/react-progress";
6
10
  export * from "@seed-design/react-pull-to-refresh";
7
11
  export * from "@seed-design/react-radio-group";
12
+ export * from "@seed-design/react-side-navigation";
8
13
  export * from "@seed-design/react-slider";
9
14
  export * from "@seed-design/react-snackbar";
10
15
  export * from "@seed-design/react-switch";
@@ -0,0 +1,69 @@
1
+ import { type Breakpoint, breakpointNames, mediaQueries } from "@seed-design/css/breakpoints";
2
+
3
+ type Listener = () => void;
4
+
5
+ const thresholds = breakpointNames.filter(
6
+ (name): name is Exclude<Breakpoint, "base"> => name !== "base",
7
+ );
8
+
9
+ let listeners: Set<Listener> | null = null;
10
+ let mediaQueryLists: MediaQueryList[] | null = null;
11
+ let currentBreakpoint: Breakpoint = "base";
12
+
13
+ function computeBreakpoint(): Breakpoint {
14
+ if (!mediaQueryLists) return "base";
15
+ for (let i = thresholds.length - 1; i >= 0; i--) {
16
+ if (mediaQueryLists[i].matches) return thresholds[i];
17
+ }
18
+ return "base";
19
+ }
20
+
21
+ function handleChange() {
22
+ const next = computeBreakpoint();
23
+ if (next !== currentBreakpoint) {
24
+ currentBreakpoint = next;
25
+ for (const fn of listeners ?? []) fn();
26
+ }
27
+ }
28
+
29
+ function init() {
30
+ mediaQueryLists = thresholds.map((name) => window.matchMedia(mediaQueries[name]));
31
+ currentBreakpoint = computeBreakpoint();
32
+ for (const mql of mediaQueryLists) {
33
+ mql.addEventListener("change", handleChange);
34
+ }
35
+ }
36
+
37
+ function teardown() {
38
+ if (mediaQueryLists) {
39
+ for (const mql of mediaQueryLists) {
40
+ mql.removeEventListener("change", handleChange);
41
+ }
42
+ mediaQueryLists = null;
43
+ }
44
+ currentBreakpoint = "base";
45
+ }
46
+
47
+ export function subscribe(listener: Listener): () => void {
48
+ if (!listeners) {
49
+ listeners = new Set();
50
+ init();
51
+ }
52
+ listeners.add(listener);
53
+
54
+ return () => {
55
+ listeners?.delete(listener);
56
+ if (listeners?.size === 0) {
57
+ teardown();
58
+ listeners = null;
59
+ }
60
+ };
61
+ }
62
+
63
+ export function getSnapshot(): Breakpoint {
64
+ return currentBreakpoint;
65
+ }
66
+
67
+ export function getServerSnapshot(): Breakpoint {
68
+ return "base";
69
+ }
@@ -0,0 +1,26 @@
1
+ import type { Breakpoint } from "@seed-design/css/breakpoints";
2
+ import type * as React from "react";
3
+ import { useMemo, useSyncExternalStore } from "react";
4
+
5
+ import { BreakpointContext } from "../hooks/useBreakpoint";
6
+ import * as store from "../primitives/breakpoint-store";
7
+
8
+ export interface BreakpointProviderProps {
9
+ defaultBreakpoint?: Breakpoint;
10
+ children: React.ReactNode;
11
+ }
12
+
13
+ export function BreakpointProvider({
14
+ defaultBreakpoint = "base",
15
+ children,
16
+ }: BreakpointProviderProps) {
17
+ const breakpoint = useSyncExternalStore(
18
+ store.subscribe,
19
+ store.getSnapshot,
20
+ () => defaultBreakpoint,
21
+ );
22
+
23
+ const value = useMemo(() => ({ breakpoint, defaultBreakpoint }), [breakpoint, defaultBreakpoint]);
24
+
25
+ return <BreakpointContext.Provider value={value}>{children}</BreakpointContext.Provider>;
26
+ }
@@ -0,0 +1,19 @@
1
+ import type { Breakpoint } from "@seed-design/css/breakpoints";
2
+
3
+ // Before: `T | { [K in Breakpoint]?: T }`
4
+ // When T is an object (e.g. ButtonProps), union excess property check is weak
5
+ // and allows mixing T's keys with Breakpoint keys without error.
6
+ // The intersection with `never`-mapped keys forces TypeScript to reject the mix.
7
+ type ResponsiveObject<T> = { [K in Breakpoint]?: T } & (T extends object
8
+ ? { [K in Exclude<keyof T & string, Breakpoint>]?: never }
9
+ : {});
10
+
11
+ export type ResponsiveValue<T> = T | ResponsiveObject<T>;
12
+
13
+ export type UnwrapResponsive<T> = T extends ResponsiveValue<infer U> ? U : T;
14
+
15
+ export type BreakpointThreshold = Exclude<Breakpoint, "base">;
16
+
17
+ export function isResponsiveObject<T>(value: ResponsiveValue<T>): value is ResponsiveObject<T> {
18
+ return typeof value === "object" && value !== null && !Array.isArray(value);
19
+ }
@@ -0,0 +1,50 @@
1
+ import { createContext, useCallback, useContext, useMemo, useState } from "react";
2
+
3
+ interface RenderTrackingContextValue {
4
+ /** Whether the tracked sibling element is currently rendered. */
5
+ isRendered: boolean;
6
+ /** Ref callback the tracked element composes onto its node to register that it is rendered. */
7
+ trackRef: (node: HTMLElement | null) => void;
8
+ }
9
+
10
+ /**
11
+ * Tracks whether an optional sub-component is rendered, so a sibling slot can emit a
12
+ * styling-only data-attribute (e.g. `data-show-close-button`, `data-has-overlay`).
13
+ *
14
+ * This lives in the styled `@seed-design/react` layer on purpose: the attribute exists
15
+ * solely to drive a `@seed-design/css` selector, so the styled layer — which already holds
16
+ * the version contract with css — owns it, rather than leaking a css↔headless contract.
17
+ *
18
+ * Unrelated to `@seed-design/react-presence`: that handles enter/exit animation, whereas
19
+ * this only records whether a sibling is in the tree.
20
+ */
21
+ export function createRenderTrackingContext(name: string) {
22
+ const RenderTrackingContext = createContext<RenderTrackingContextValue | null>(null);
23
+
24
+ function Provider({ children }: { children: React.ReactNode }) {
25
+ const [isRendered, setIsRendered] = useState(false);
26
+ const trackRef = useCallback((node: HTMLElement | null) => {
27
+ setIsRendered(!!node);
28
+ }, []);
29
+
30
+ const value = useMemo<RenderTrackingContextValue>(
31
+ () => ({ isRendered, trackRef }),
32
+ [isRendered, trackRef],
33
+ );
34
+
35
+ return (
36
+ <RenderTrackingContext.Provider value={value}>{children}</RenderTrackingContext.Provider>
37
+ );
38
+ }
39
+ Provider.displayName = `${name}RenderTrackingProvider`;
40
+
41
+ function useRenderTracking() {
42
+ const context = useContext(RenderTrackingContext);
43
+ if (context === null) {
44
+ throw new Error(`use${name}RenderTracking must be used within ${name}RenderTrackingProvider`);
45
+ }
46
+ return context;
47
+ }
48
+
49
+ return { Provider, useRenderTracking };
50
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Builds the SVG path for a HelpBubble arrow tip given its measured size.
3
+ * Shared by HelpBubble (dialog) and HelpBubbleTooltip (tooltip) so the arrow
4
+ * geometry stays in a single place.
5
+ */
6
+ export const getHelpBubbleArrowTipPath = (width: number, height: number, tipRadius: number) =>
7
+ `M0,0
8
+ H${width}
9
+ L${width / 2 + tipRadius},${height - tipRadius}
10
+ Q${width / 2},${height} ${width / 2 - tipRadius},${height - tipRadius}
11
+ Z`;