@usefragments/ui 1.0.2 → 1.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 (326) hide show
  1. package/README.md +16 -16
  2. package/dist/assets/fragments-wordmark.cjs +30 -0
  3. package/dist/assets/fragments-wordmark.d.ts +13 -0
  4. package/dist/assets/fragments-wordmark.d.ts.map +1 -0
  5. package/dist/assets/fragments-wordmark.js +30 -0
  6. package/dist/assets/ui.css +3234 -3116
  7. package/dist/components/Accordion/Accordion.module.scss.cjs +8 -8
  8. package/dist/components/Accordion/Accordion.module.scss.js +8 -8
  9. package/dist/components/Accordion/index.cjs +22 -10
  10. package/dist/components/Accordion/index.d.ts.map +1 -1
  11. package/dist/components/Accordion/index.js +22 -10
  12. package/dist/components/Alert/Alert.module.scss.cjs +13 -13
  13. package/dist/components/Alert/Alert.module.scss.js +13 -13
  14. package/dist/components/AppShell/AppShell.module.scss.cjs +22 -10
  15. package/dist/components/AppShell/AppShell.module.scss.js +22 -10
  16. package/dist/components/AppShell/index.cjs +1 -1
  17. package/dist/components/AppShell/index.js +1 -1
  18. package/dist/components/Avatar/Avatar.module.scss.cjs +13 -13
  19. package/dist/components/Avatar/Avatar.module.scss.js +13 -13
  20. package/dist/components/Badge/Badge.module.scss.cjs +16 -16
  21. package/dist/components/Badge/Badge.module.scss.js +16 -16
  22. package/dist/components/BentoGrid/BentoGrid.module.scss.cjs +14 -14
  23. package/dist/components/BentoGrid/BentoGrid.module.scss.js +14 -14
  24. package/dist/components/Box/Box.module.scss.cjs +152 -152
  25. package/dist/components/Box/Box.module.scss.js +152 -152
  26. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.cjs +8 -8
  27. package/dist/components/Breadcrumbs/Breadcrumbs.module.scss.js +8 -8
  28. package/dist/components/Button/Button.module.scss.cjs +13 -13
  29. package/dist/components/Button/Button.module.scss.js +13 -13
  30. package/dist/components/Card/Card.module.scss.cjs +17 -17
  31. package/dist/components/Card/Card.module.scss.js +17 -17
  32. package/dist/components/Card/index.d.ts +3 -3
  33. package/dist/components/Card/index.d.ts.map +1 -1
  34. package/dist/components/Chart/Chart.module.scss.cjs +15 -15
  35. package/dist/components/Chart/Chart.module.scss.js +15 -15
  36. package/dist/components/Checkbox/Checkbox.module.scss.cjs +11 -11
  37. package/dist/components/Checkbox/Checkbox.module.scss.js +11 -11
  38. package/dist/components/Chip/Chip.module.scss.cjs +15 -15
  39. package/dist/components/Chip/Chip.module.scss.js +15 -15
  40. package/dist/components/CodeBlock/CodeBlock.module.scss.cjs +21 -21
  41. package/dist/components/CodeBlock/CodeBlock.module.scss.js +21 -21
  42. package/dist/components/Collapsible/Collapsible.module.scss.cjs +10 -10
  43. package/dist/components/Collapsible/Collapsible.module.scss.js +10 -10
  44. package/dist/components/ColorPicker/ColorPicker.module.scss.cjs +14 -14
  45. package/dist/components/ColorPicker/ColorPicker.module.scss.js +14 -14
  46. package/dist/components/Combobox/Combobox.module.scss.cjs +23 -23
  47. package/dist/components/Combobox/Combobox.module.scss.js +23 -23
  48. package/dist/components/Combobox/index.cjs +106 -9
  49. package/dist/components/Combobox/index.d.ts.map +1 -1
  50. package/dist/components/Combobox/index.js +106 -9
  51. package/dist/components/Command/Command.module.scss.cjs +11 -11
  52. package/dist/components/Command/Command.module.scss.js +11 -11
  53. package/dist/components/ConversationList/ConversationList.module.scss.cjs +10 -10
  54. package/dist/components/ConversationList/ConversationList.module.scss.js +10 -10
  55. package/dist/components/DataTable/DataTable.module.scss.cjs +37 -34
  56. package/dist/components/DataTable/DataTable.module.scss.js +37 -34
  57. package/dist/components/DataTable/index.d.ts +3 -1
  58. package/dist/components/DataTable/index.d.ts.map +1 -1
  59. package/dist/components/DatePicker/DatePicker.module.scss.cjs +33 -33
  60. package/dist/components/DatePicker/DatePicker.module.scss.js +33 -33
  61. package/dist/components/DatePicker/index.d.ts +1 -1
  62. package/dist/components/DatePicker/index.d.ts.map +1 -1
  63. package/dist/components/Dialog/Dialog.module.scss.cjs +14 -14
  64. package/dist/components/Dialog/Dialog.module.scss.js +14 -14
  65. package/dist/components/Drawer/Drawer.module.scss.cjs +28 -28
  66. package/dist/components/Drawer/Drawer.module.scss.js +28 -28
  67. package/dist/components/Drawer/index.cjs +20 -3
  68. package/dist/components/Drawer/index.d.ts.map +1 -1
  69. package/dist/components/Drawer/index.js +20 -3
  70. package/dist/components/Editor/Editor.module.scss.cjs +17 -17
  71. package/dist/components/Editor/Editor.module.scss.js +17 -17
  72. package/dist/components/EmptyState/EmptyState.module.scss.cjs +8 -8
  73. package/dist/components/EmptyState/EmptyState.module.scss.js +8 -8
  74. package/dist/components/Field/Field.module.scss.cjs +4 -4
  75. package/dist/components/Field/Field.module.scss.js +4 -4
  76. package/dist/components/Field/index.cjs +10 -9
  77. package/dist/components/Field/index.d.ts +7 -7
  78. package/dist/components/Field/index.d.ts.map +1 -1
  79. package/dist/components/Field/index.js +10 -9
  80. package/dist/components/Fieldset/Fieldset.module.scss.cjs +3 -3
  81. package/dist/components/Fieldset/Fieldset.module.scss.js +3 -3
  82. package/dist/components/Header/Header.module.scss.cjs +44 -29
  83. package/dist/components/Header/Header.module.scss.js +44 -29
  84. package/dist/components/Header/index.cjs +56 -3
  85. package/dist/components/Header/index.d.ts +25 -3
  86. package/dist/components/Header/index.d.ts.map +1 -1
  87. package/dist/components/Header/index.js +56 -3
  88. package/dist/components/Icon/Icon.module.scss.cjs +8 -8
  89. package/dist/components/Icon/Icon.module.scss.js +8 -8
  90. package/dist/components/IconButton/IconButton.module.scss.cjs +8 -8
  91. package/dist/components/IconButton/IconButton.module.scss.js +8 -8
  92. package/dist/components/Image/Image.module.scss.cjs +27 -27
  93. package/dist/components/Image/Image.module.scss.js +27 -27
  94. package/dist/components/Input/Input.module.scss.cjs +19 -19
  95. package/dist/components/Input/Input.module.scss.js +19 -19
  96. package/dist/components/Link/Link.module.scss.cjs +10 -10
  97. package/dist/components/Link/Link.module.scss.js +10 -10
  98. package/dist/components/List/List.module.scss.cjs +19 -19
  99. package/dist/components/List/List.module.scss.js +19 -19
  100. package/dist/components/Listbox/Listbox.module.scss.cjs +8 -8
  101. package/dist/components/Listbox/Listbox.module.scss.js +8 -8
  102. package/dist/components/Loading/Loading.module.scss.cjs +30 -30
  103. package/dist/components/Loading/Loading.module.scss.js +30 -30
  104. package/dist/components/Main/Main.module.scss.cjs +26 -0
  105. package/dist/components/Main/Main.module.scss.js +26 -0
  106. package/dist/components/Main/index.cjs +128 -0
  107. package/dist/components/Main/index.d.ts +22 -0
  108. package/dist/components/Main/index.d.ts.map +1 -0
  109. package/dist/components/Main/index.js +111 -0
  110. package/dist/components/Markdown/Markdown.module.scss.cjs +1 -1
  111. package/dist/components/Markdown/Markdown.module.scss.js +1 -1
  112. package/dist/components/Menu/Menu.module.scss.cjs +14 -14
  113. package/dist/components/Menu/Menu.module.scss.js +14 -14
  114. package/dist/components/Message/Message.module.scss.cjs +18 -18
  115. package/dist/components/Message/Message.module.scss.js +18 -18
  116. package/dist/components/NavigationMenu/NavigationMenu.module.scss.cjs +28 -28
  117. package/dist/components/NavigationMenu/NavigationMenu.module.scss.js +28 -28
  118. package/dist/components/Pagination/Pagination.module.scss.cjs +7 -7
  119. package/dist/components/Pagination/Pagination.module.scss.js +7 -7
  120. package/dist/components/Popover/Popover.module.scss.cjs +10 -10
  121. package/dist/components/Popover/Popover.module.scss.js +10 -10
  122. package/dist/components/Popover/index.cjs +27 -2
  123. package/dist/components/Popover/index.d.ts.map +1 -1
  124. package/dist/components/Popover/index.js +27 -2
  125. package/dist/components/Progress/Progress.module.scss.cjs +25 -25
  126. package/dist/components/Progress/Progress.module.scss.js +25 -25
  127. package/dist/components/Prompt/Prompt.module.scss.cjs +18 -18
  128. package/dist/components/Prompt/Prompt.module.scss.js +18 -18
  129. package/dist/components/RadioGroup/RadioGroup.module.scss.cjs +17 -17
  130. package/dist/components/RadioGroup/RadioGroup.module.scss.js +17 -17
  131. package/dist/components/RadioGroup/index.cjs +2 -0
  132. package/dist/components/RadioGroup/index.d.ts +2 -0
  133. package/dist/components/RadioGroup/index.d.ts.map +1 -1
  134. package/dist/components/RadioGroup/index.js +2 -0
  135. package/dist/components/ScrollArea/ScrollArea.module.scss.cjs +10 -10
  136. package/dist/components/ScrollArea/ScrollArea.module.scss.js +10 -10
  137. package/dist/components/Select/Select.module.scss.cjs +17 -17
  138. package/dist/components/Select/Select.module.scss.js +17 -17
  139. package/dist/components/Separator/Separator.module.scss.cjs +10 -10
  140. package/dist/components/Separator/Separator.module.scss.js +10 -10
  141. package/dist/components/Sidebar/Sidebar.module.scss.cjs +42 -42
  142. package/dist/components/Sidebar/Sidebar.module.scss.js +42 -42
  143. package/dist/components/Skeleton/Skeleton.module.scss.cjs +38 -38
  144. package/dist/components/Skeleton/Skeleton.module.scss.js +38 -38
  145. package/dist/components/Slider/Slider.module.scss.cjs +12 -12
  146. package/dist/components/Slider/Slider.module.scss.js +12 -12
  147. package/dist/components/Table/Table.module.scss.cjs +19 -19
  148. package/dist/components/Table/Table.module.scss.js +19 -19
  149. package/dist/components/TableOfContents/TableOfContents.module.scss.cjs +15 -15
  150. package/dist/components/TableOfContents/TableOfContents.module.scss.js +15 -15
  151. package/dist/components/TableOfContents/index.cjs +22 -42
  152. package/dist/components/TableOfContents/index.d.ts +3 -3
  153. package/dist/components/TableOfContents/index.d.ts.map +1 -1
  154. package/dist/components/TableOfContents/index.js +22 -42
  155. package/dist/components/Tabs/Tabs.module.scss.cjs +12 -12
  156. package/dist/components/Tabs/Tabs.module.scss.js +12 -12
  157. package/dist/components/Text/Text.module.scss.cjs +51 -51
  158. package/dist/components/Text/Text.module.scss.js +51 -51
  159. package/dist/components/Textarea/Textarea.module.scss.cjs +23 -23
  160. package/dist/components/Textarea/Textarea.module.scss.js +23 -23
  161. package/dist/components/Theme/ThemeToggle.module.scss.cjs +6 -6
  162. package/dist/components/Theme/ThemeToggle.module.scss.js +6 -6
  163. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.cjs +13 -13
  164. package/dist/components/ThinkingIndicator/ThinkingIndicator.module.scss.js +13 -13
  165. package/dist/components/Toast/Toast.module.scss.cjs +21 -21
  166. package/dist/components/Toast/Toast.module.scss.js +21 -21
  167. package/dist/components/Toggle/Toggle.module.scss.cjs +13 -13
  168. package/dist/components/Toggle/Toggle.module.scss.js +13 -13
  169. package/dist/components/ToggleGroup/ToggleGroup.module.scss.cjs +17 -17
  170. package/dist/components/ToggleGroup/ToggleGroup.module.scss.js +17 -17
  171. package/dist/components/Tooltip/Tooltip.module.scss.cjs +3 -3
  172. package/dist/components/Tooltip/Tooltip.module.scss.js +3 -3
  173. package/dist/data-table.cjs +58 -41
  174. package/dist/data-table.js +59 -41
  175. package/dist/datepicker.cjs +32 -72
  176. package/dist/datepicker.js +32 -72
  177. package/dist/index.cjs +89 -85
  178. package/dist/index.d.ts +2 -0
  179. package/dist/index.d.ts.map +1 -1
  180. package/dist/index.js +4 -0
  181. package/fragments.json +1 -1
  182. package/package.json +9 -8
  183. package/src/assets/fragments-wordmark.tsx +47 -0
  184. package/src/components/Accordion/index.tsx +13 -3
  185. package/src/components/Alert/Alert.module.scss +15 -2
  186. package/src/components/AppShell/AppShell.module.scss +73 -15
  187. package/src/components/AppShell/index.tsx +1 -1
  188. package/src/components/Button/Button.module.scss +19 -20
  189. package/src/components/Card/Card.module.scss +3 -3
  190. package/src/components/Card/index.tsx +3 -3
  191. package/src/components/Checkbox/Checkbox.contract.json +5 -24
  192. package/src/components/Checkbox/Checkbox.module.scss +4 -2
  193. package/src/components/Chip/Chip.contract.json +11 -28
  194. package/src/components/Chip/Chip.module.scss +21 -45
  195. package/src/components/CodeBlock/CodeBlock.module.scss +2 -7
  196. package/src/components/Combobox/Combobox.contract.json +6 -24
  197. package/src/components/Combobox/Combobox.module.scss +3 -2
  198. package/src/components/Combobox/index.tsx +132 -6
  199. package/src/components/DataTable/DataTable.contract.json +16 -23
  200. package/src/components/DataTable/DataTable.module.scss +31 -8
  201. package/src/components/DataTable/index.tsx +25 -4
  202. package/src/components/DatePicker/index.tsx +32 -84
  203. package/src/components/Drawer/index.tsx +38 -12
  204. package/src/components/Field/index.tsx +35 -35
  205. package/src/components/Header/Header.contract.json +41 -1
  206. package/src/components/Header/Header.module.scss +40 -0
  207. package/src/components/Header/index.tsx +88 -2
  208. package/src/components/IconButton/IconButton.contract.json +120 -0
  209. package/src/components/Listbox/Listbox.module.scss +5 -4
  210. package/src/components/Main/Main.contract.json +79 -0
  211. package/src/components/Main/Main.module.scss +31 -0
  212. package/src/components/Main/index.tsx +124 -0
  213. package/src/components/Menu/Menu.module.scss +8 -10
  214. package/src/components/Popover/index.tsx +34 -2
  215. package/src/components/RadioGroup/RadioGroup.contract.json +13 -27
  216. package/src/components/RadioGroup/index.tsx +4 -0
  217. package/src/components/Select/Select.module.scss +13 -12
  218. package/src/components/Table/Table.module.scss +22 -5
  219. package/src/components/TableOfContents/TableOfContents.contract.json +6 -16
  220. package/src/components/TableOfContents/TableOfContents.module.scss +20 -14
  221. package/src/components/TableOfContents/index.tsx +27 -38
  222. package/src/components/Toast/Toast.module.scss +15 -2
  223. package/src/components/ToggleGroup/ToggleGroup.module.scss +4 -1
  224. package/src/index.ts +4 -0
  225. package/src/styles/globals.scss +13 -10
  226. package/src/tokens/_component-properties.scss +26 -0
  227. package/src/tokens/_computed.scss +22 -4
  228. package/src/tokens/_derive.scss +55 -6
  229. package/src/tokens/_palettes.scss +24 -0
  230. package/src/tokens/_seeds.scss +20 -12
  231. package/src/tokens/_variables.scss +110 -63
  232. package/dist/components/Cloud/DashboardLayoutPrototypes.shared.d.ts +0 -33
  233. package/dist/components/Cloud/DashboardLayoutPrototypes.shared.d.ts.map +0 -1
  234. package/dist/components/Cloud/DashboardLayoutPrototypes.shell.d.ts +0 -11
  235. package/dist/components/Cloud/DashboardLayoutPrototypes.shell.d.ts.map +0 -1
  236. package/dist/components/Cloud/PullRequestsPrototypes.content.d.ts +0 -5
  237. package/dist/components/Cloud/PullRequestsPrototypes.content.d.ts.map +0 -1
  238. package/dist/components/Cloud/PullRequestsPrototypes.detail-panels.d.ts +0 -4
  239. package/dist/components/Cloud/PullRequestsPrototypes.detail-panels.d.ts.map +0 -1
  240. package/dist/components/Cloud/PullRequestsPrototypes.detail.d.ts +0 -3
  241. package/dist/components/Cloud/PullRequestsPrototypes.detail.d.ts.map +0 -1
  242. package/dist/components/Cloud/PullRequestsPrototypes.id-data.d.ts +0 -86
  243. package/dist/components/Cloud/PullRequestsPrototypes.id-data.d.ts.map +0 -1
  244. package/dist/components/Cloud/PullRequestsPrototypes.id-page.d.ts +0 -2
  245. package/dist/components/Cloud/PullRequestsPrototypes.id-page.d.ts.map +0 -1
  246. package/src/components/Accordion/Accordion.stories.tsx +0 -106
  247. package/src/components/Alert/Alert.stories.tsx +0 -119
  248. package/src/components/AppShell/AppShell.stories.tsx +0 -156
  249. package/src/components/Avatar/Avatar.stories.tsx +0 -74
  250. package/src/components/Badge/Badge.stories.tsx +0 -92
  251. package/src/components/BentoGrid/BentoGrid.stories.tsx +0 -98
  252. package/src/components/Box/Box.stories.tsx +0 -150
  253. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +0 -87
  254. package/src/components/Button/Button.stories.tsx +0 -103
  255. package/src/components/ButtonGroup/ButtonGroup.stories.tsx +0 -97
  256. package/src/components/Card/Card.stories.tsx +0 -144
  257. package/src/components/Chart/Chart.stories.tsx +0 -119
  258. package/src/components/Checkbox/Checkbox.stories.tsx +0 -68
  259. package/src/components/Chip/Chip.stories.tsx +0 -70
  260. package/src/components/Cloud/CloudGovernanceShell.module.scss +0 -88
  261. package/src/components/Cloud/CloudGovernanceShell.stories.tsx +0 -446
  262. package/src/components/Cloud/ControlSizing.module.scss +0 -49
  263. package/src/components/Cloud/ControlSizing.stories.tsx +0 -238
  264. package/src/components/Cloud/DashboardLayoutPrototypes.module.scss +0 -462
  265. package/src/components/Cloud/DashboardLayoutPrototypes.shared.tsx +0 -375
  266. package/src/components/Cloud/DashboardLayoutPrototypes.shell.tsx +0 -147
  267. package/src/components/Cloud/DashboardLayoutPrototypes.stories.tsx +0 -328
  268. package/src/components/Cloud/PullRequestsPrototypes.content.tsx +0 -283
  269. package/src/components/Cloud/PullRequestsPrototypes.detail-panels.tsx +0 -381
  270. package/src/components/Cloud/PullRequestsPrototypes.detail.tsx +0 -204
  271. package/src/components/Cloud/PullRequestsPrototypes.id-data.ts +0 -395
  272. package/src/components/Cloud/PullRequestsPrototypes.id-page.tsx +0 -349
  273. package/src/components/Cloud/PullRequestsPrototypes.stories.tsx +0 -81
  274. package/src/components/CodeBlock/CodeBlock.stories.tsx +0 -147
  275. package/src/components/Collapsible/Collapsible.stories.tsx +0 -94
  276. package/src/components/ColorPicker/ColorPicker.stories.tsx +0 -74
  277. package/src/components/Combobox/Combobox.stories.tsx +0 -133
  278. package/src/components/Command/Command.stories.tsx +0 -102
  279. package/src/components/ConversationList/ConversationList.stories.tsx +0 -93
  280. package/src/components/DataTable/DataTable.stories.tsx +0 -129
  281. package/src/components/DatePicker/DatePicker.stories.tsx +0 -129
  282. package/src/components/Dialog/Dialog.stories.tsx +0 -154
  283. package/src/components/Drawer/Drawer.stories.tsx +0 -144
  284. package/src/components/Editor/Editor.stories.tsx +0 -99
  285. package/src/components/EmptyState/EmptyState.stories.tsx +0 -97
  286. package/src/components/Field/Field.stories.tsx +0 -109
  287. package/src/components/Fieldset/Fieldset.stories.tsx +0 -116
  288. package/src/components/Form/Form.stories.tsx +0 -142
  289. package/src/components/Grid/Grid.stories.tsx +0 -125
  290. package/src/components/Header/Header.stories.tsx +0 -133
  291. package/src/components/Icon/Icon.stories.tsx +0 -80
  292. package/src/components/IconButton/IconButton.stories.tsx +0 -78
  293. package/src/components/Image/Image.stories.tsx +0 -109
  294. package/src/components/Input/Input.stories.tsx +0 -104
  295. package/src/components/Link/Link.stories.tsx +0 -67
  296. package/src/components/List/List.stories.tsx +0 -95
  297. package/src/components/Listbox/Listbox.stories.tsx +0 -81
  298. package/src/components/Loading/Loading.stories.tsx +0 -69
  299. package/src/components/Markdown/Markdown.stories.tsx +0 -75
  300. package/src/components/Menu/Menu.stories.tsx +0 -113
  301. package/src/components/Message/Message.stories.tsx +0 -85
  302. package/src/components/NavigationMenu/NavigationMenu.stories.tsx +0 -161
  303. package/src/components/Pagination/Pagination.stories.tsx +0 -81
  304. package/src/components/Popover/Popover.stories.tsx +0 -152
  305. package/src/components/Progress/Progress.stories.tsx +0 -64
  306. package/src/components/Prompt/Prompt.stories.tsx +0 -93
  307. package/src/components/RadioGroup/RadioGroup.stories.tsx +0 -107
  308. package/src/components/ScrollArea/ScrollArea.stories.tsx +0 -97
  309. package/src/components/Select/Select.stories.tsx +0 -127
  310. package/src/components/Separator/Separator.stories.tsx +0 -84
  311. package/src/components/Sidebar/Sidebar.stories.tsx +0 -122
  312. package/src/components/Skeleton/Skeleton.stories.tsx +0 -80
  313. package/src/components/Slider/Slider.stories.tsx +0 -73
  314. package/src/components/Stack/Stack.stories.tsx +0 -73
  315. package/src/components/Switch/Switch.stories.tsx +0 -59
  316. package/src/components/Table/Table.stories.tsx +0 -219
  317. package/src/components/TableOfContents/TableOfContents.stories.tsx +0 -120
  318. package/src/components/Tabs/Tabs.stories.tsx +0 -136
  319. package/src/components/Text/Text.stories.tsx +0 -133
  320. package/src/components/Textarea/Textarea.stories.tsx +0 -107
  321. package/src/components/Theme/Theme.stories.tsx +0 -95
  322. package/src/components/ThinkingIndicator/ThinkingIndicator.stories.tsx +0 -85
  323. package/src/components/Toast/Toast.stories.tsx +0 -91
  324. package/src/components/ToggleGroup/ToggleGroup.stories.tsx +0 -114
  325. package/src/components/Tooltip/Tooltip.stories.tsx +0 -95
  326. package/src/components/VisuallyHidden/VisuallyHidden.stories.tsx +0 -78
@@ -1,238 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import type { Meta, StoryObj } from "@storybook/react";
3
- import { Gear, MagnifyingGlass } from "@phosphor-icons/react";
4
- import { Box } from "../Box";
5
- import { Button } from "../Button";
6
- import { Card } from "../Card";
7
- import { ColorPicker } from "../ColorPicker";
8
- import { Combobox } from "../Combobox";
9
- import { DatePicker } from "../DatePicker";
10
- import { Grid } from "../Grid";
11
- import { IconButton } from "../IconButton";
12
- import { Input } from "../Input";
13
- import { Select } from "../Select";
14
- import { Stack } from "../Stack";
15
- import { Tabs } from "../Tabs";
16
- import { Text } from "../Text";
17
- import { Textarea } from "../Textarea";
18
- import { ToggleGroup } from "../ToggleGroup";
19
- import styles from "./ControlSizing.module.scss";
20
-
21
- const meta = {
22
- title: "Cloud/Control Sizing",
23
- parameters: {
24
- layout: "fullscreen",
25
- backgrounds: { default: "dark" },
26
- docs: {
27
- description: {
28
- component:
29
- "Cloud dogfood matrix for checking shared control heights across fields, buttons, pickers, tabs, and segmented controls.",
30
- },
31
- },
32
- },
33
- } satisfies Meta;
34
-
35
- export default meta;
36
-
37
- type Story = StoryObj<typeof meta>;
38
- type ControlSize = "sm" | "md" | "lg";
39
-
40
- const sizes = [
41
- { size: "sm", expected: "32px" },
42
- { size: "md", expected: "40px" },
43
- { size: "lg", expected: "44px" },
44
- ] as const satisfies Array<{ size: ControlSize; expected: string }>;
45
-
46
- const selectOptions = [
47
- { value: "all", label: "All statuses" },
48
- { value: "healthy", label: "Healthy" },
49
- { value: "blocked", label: "Blocked" },
50
- ];
51
-
52
- function Sample({ label, children }: { label: string; children: ReactNode }) {
53
- return (
54
- <Stack gap="xs" className={styles.sample}>
55
- <Text size="xs" color="tertiary" weight="medium">
56
- {label}
57
- </Text>
58
- {children}
59
- </Stack>
60
- );
61
- }
62
-
63
- function SizeRow({ size, expected }: { size: ControlSize; expected: string }) {
64
- return (
65
- <Stack
66
- direction={{ base: "column", md: "row" }}
67
- gap="lg"
68
- align="start"
69
- className={styles.sizeRow}
70
- data-size-row={size}
71
- >
72
- <Stack gap="xs" className={styles.sizeMeta}>
73
- <Text size="xs" color="tertiary" weight="medium">
74
- {size.toUpperCase()}
75
- </Text>
76
- <Text size="xs" color="secondary" font="mono">
77
- {expected}
78
- </Text>
79
- </Stack>
80
-
81
- <Grid
82
- columns="auto"
83
- minChildWidth="220px"
84
- gap="md"
85
- alignItems="start"
86
- className={styles.samples}
87
- >
88
- <Sample label="Input">
89
- <Input
90
- withFieldWrapper={false}
91
- size={size}
92
- placeholder="Search"
93
- startAdornment={<MagnifyingGlass size={14} />}
94
- rootProps={{ "data-control-size": size }}
95
- />
96
- </Sample>
97
-
98
- <Sample label="Button">
99
- <Button
100
- className={styles.control}
101
- size={size}
102
- variant="secondary"
103
- data-control-size={size}
104
- >
105
- Create PR
106
- </Button>
107
- </Sample>
108
-
109
- <Sample label="IconButton">
110
- <IconButton
111
- className={styles.compactControl}
112
- size={size}
113
- variant="outlined"
114
- aria-label="Settings"
115
- data-control-size={size}
116
- >
117
- <Gear />
118
- </IconButton>
119
- </Sample>
120
-
121
- <Sample label="Select">
122
- <Select
123
- className={styles.control}
124
- size={size}
125
- placeholder="Status"
126
- options={selectOptions}
127
- />
128
- </Sample>
129
-
130
- <Sample label="Combobox">
131
- <Combobox className={styles.control} size={size} placeholder="Repository">
132
- <Combobox.Input data-control-size={size} />
133
- <Combobox.Content>
134
- <Combobox.Item value="ui">fragments-sdk/ui</Combobox.Item>
135
- <Combobox.Item value="cloud">fragments/cloud</Combobox.Item>
136
- </Combobox.Content>
137
- </Combobox>
138
- </Sample>
139
-
140
- <Sample label="DatePicker">
141
- <DatePicker className={styles.control} size={size} placeholder="Last scanned">
142
- <DatePicker.Trigger data-control-size={size} />
143
- <DatePicker.Content>
144
- <DatePicker.Calendar />
145
- </DatePicker.Content>
146
- </DatePicker>
147
- </Sample>
148
-
149
- <Sample label="ColorPicker">
150
- <ColorPicker className={styles.control} size={size} value="#635bff" showInput />
151
- </Sample>
152
-
153
- <Sample label="Textarea">
154
- <Textarea
155
- className={styles.control}
156
- size={size}
157
- rows={1}
158
- resize="none"
159
- placeholder="Finding note"
160
- />
161
- </Sample>
162
- </Grid>
163
- </Stack>
164
- );
165
- }
166
-
167
- function SharedControls() {
168
- return (
169
- <Grid
170
- columns="auto"
171
- minChildWidth="220px"
172
- gap="md"
173
- alignItems="start"
174
- className={styles.samples}
175
- >
176
- <Sample label="Tabs">
177
- <Box className={styles.tabsSlot} data-control-size="sm">
178
- <Tabs defaultValue="findings" variant="pills">
179
- <Tabs.List>
180
- <Tabs.Tab value="findings">Findings</Tabs.Tab>
181
- <Tabs.Tab value="activity">Activity</Tabs.Tab>
182
- </Tabs.List>
183
- <Tabs.Panel value="findings" flush />
184
- <Tabs.Panel value="activity" flush />
185
- </Tabs>
186
- </Box>
187
- </Sample>
188
-
189
- <Sample label="ToggleGroup">
190
- <ToggleGroup defaultValue="all" size="sm" data-control-size="sm">
191
- <ToggleGroup.Item value="all">All</ToggleGroup.Item>
192
- <ToggleGroup.Item value="open">Open</ToggleGroup.Item>
193
- <ToggleGroup.Item value="closed">Closed</ToggleGroup.Item>
194
- </ToggleGroup>
195
- </Sample>
196
- </Grid>
197
- );
198
- }
199
-
200
- export const ControlSizing: Story = {
201
- render: () => (
202
- <Box className={styles.frame} padding="lg">
203
- <Stack gap="lg" className={styles.content}>
204
- <Stack gap="xs">
205
- <Text as="h1" size="xl" weight="semibold">
206
- Control sizing
207
- </Text>
208
- <Text color="secondary">
209
- Small controls share a 32px floor. Default and large controls align field and action
210
- heights through the same density scale.
211
- </Text>
212
- </Stack>
213
-
214
- <Card className={styles.section}>
215
- <Card.Body>
216
- <Stack gap="lg">
217
- {sizes.map((item) => (
218
- <SizeRow key={item.size} size={item.size} expected={item.expected} />
219
- ))}
220
- </Stack>
221
- </Card.Body>
222
- </Card>
223
-
224
- <Card className={styles.section}>
225
- <Card.Header>
226
- <Card.Title>Shared 32px controls</Card.Title>
227
- <Card.Description>
228
- Components without a full size scale still use the shared small-control rhythm.
229
- </Card.Description>
230
- </Card.Header>
231
- <Card.Body>
232
- <SharedControls />
233
- </Card.Body>
234
- </Card>
235
- </Stack>
236
- </Box>
237
- ),
238
- };
@@ -1,462 +0,0 @@
1
- .frame {
2
- position: fixed;
3
- inset: 0;
4
- overflow: hidden;
5
- color: var(--fui-text-primary);
6
- background: var(--fui-app-canvas-bg);
7
- }
8
-
9
- .shell {
10
- height: 100%;
11
- min-height: 0;
12
- }
13
-
14
- .main {
15
- overflow: auto;
16
- }
17
-
18
- .page {
19
- width: 100%;
20
- max-width: 1400px;
21
- margin-inline: auto;
22
- padding: clamp(var(--fui-space-4), 3vw, var(--fui-space-6));
23
- }
24
-
25
- .heading {
26
- min-width: min(100%, 360px);
27
- }
28
-
29
- .brandMark {
30
- display: grid;
31
- width: var(--fui-target-size-min);
32
- height: var(--fui-target-size-min);
33
- flex: 0 0 auto;
34
- place-items: center;
35
- color: var(--fui-text-primary);
36
- background: var(--fui-bg-elevated);
37
- border: 1px solid var(--fui-border-strong);
38
- border-radius: var(--fui-radius-md);
39
- }
40
-
41
- .truncate,
42
- .minWidthZero {
43
- min-width: 0;
44
- }
45
-
46
- .full {
47
- width: 100%;
48
- }
49
-
50
- .heroActionGrid {
51
- display: grid;
52
- grid-template-columns: minmax(0, 3fr) minmax(300px, 2fr);
53
- gap: var(--fui-space-4);
54
- align-items: stretch;
55
- }
56
-
57
- .stretchCard {
58
- display: flex;
59
- flex-direction: column;
60
- height: 100%;
61
- }
62
-
63
- .stretchBody {
64
- flex: 1;
65
- min-height: 0;
66
- }
67
-
68
- .actionPanelBody {
69
- display: flex;
70
- flex: 1;
71
- }
72
-
73
- .actionPanelContent {
74
- width: 100%;
75
- }
76
-
77
- .actionButton {
78
- align-self: flex-start;
79
- }
80
-
81
- .coverageBody {
82
- position: relative;
83
- height: 100%;
84
- min-height: 132px;
85
- overflow: hidden;
86
- }
87
-
88
- .coverageChartWrap {
89
- position: absolute;
90
- inset: 0;
91
- overflow: hidden;
92
- background:
93
- linear-gradient(
94
- to bottom,
95
- color-mix(in srgb, var(--fui-bg-elevated) 82%, transparent),
96
- transparent
97
- ),
98
- var(--fui-bg-subtle);
99
- color: var(--fui-color-success-text);
100
- opacity: 0.74;
101
- pointer-events: none;
102
- }
103
-
104
- .coverageSummary {
105
- position: relative;
106
- z-index: 1;
107
- padding: var(--fui-space-2);
108
- }
109
-
110
- .coverageDelta {
111
- color: var(--fui-color-success-text);
112
- }
113
-
114
- .coverageTrendChart {
115
- display: block;
116
- width: 100%;
117
- height: 100%;
118
- }
119
-
120
- .twoColumn {
121
- display: grid;
122
- grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
123
- gap: var(--fui-space-4);
124
- align-items: start;
125
- }
126
-
127
- .areaDriftCard {
128
- min-width: 0;
129
- overflow: hidden;
130
- }
131
-
132
- .areaDriftSummary {
133
- padding: var(--fui-space-2);
134
- }
135
-
136
- .areaDelta[data-trend="up"] {
137
- color: var(--fui-color-danger-text);
138
- }
139
-
140
- .areaDelta[data-trend="down"] {
141
- color: var(--fui-color-success-text);
142
- }
143
-
144
- .chartWrap {
145
- overflow: hidden;
146
- background:
147
- linear-gradient(
148
- to bottom,
149
- color-mix(in srgb, var(--fui-bg-elevated) 64%, transparent),
150
- transparent
151
- ),
152
- var(--fui-bg-subtle);
153
- border-block-start: 1px solid var(--fui-border-subtle);
154
- }
155
-
156
- .driftChart {
157
- display: block;
158
- width: 100%;
159
- height: 112px;
160
- color: var(--fui-text-tertiary);
161
- }
162
-
163
- .toolbar {
164
- display: grid;
165
- grid-template-columns: minmax(260px, 1fr) minmax(160px, 200px);
166
- gap: var(--fui-space-2);
167
- align-items: center;
168
- }
169
-
170
- .prToolbar {
171
- display: grid;
172
- grid-template-columns:
173
- minmax(260px, 1fr)
174
- minmax(150px, 180px)
175
- minmax(150px, 180px)
176
- minmax(150px, 180px);
177
- gap: var(--fui-space-2);
178
- align-items: center;
179
- }
180
-
181
- .prDetailSummary {
182
- min-width: 0;
183
- padding-block-end: var(--fui-space-3);
184
- border-block-end: 1px solid var(--fui-border-subtle);
185
- }
186
-
187
- .prTable {
188
- min-width: 0;
189
- max-width: 100%;
190
- }
191
-
192
- .prRowActions {
193
- display: flex;
194
- flex-wrap: nowrap;
195
- justify-content: flex-end;
196
- gap: var(--fui-space-1);
197
- min-width: 0;
198
- }
199
-
200
- .prIdHeader {
201
- min-width: 0;
202
- padding-block-end: var(--fui-space-3);
203
- border-block-end: 1px solid var(--fui-border-subtle);
204
- }
205
-
206
- .prIdTabs {
207
- display: flex;
208
- gap: var(--fui-space-3);
209
- align-items: center;
210
- overflow-x: auto;
211
- border-block-end: 1px solid var(--fui-border-subtle);
212
- }
213
-
214
- .prIdTabs span {
215
- display: inline-flex;
216
- gap: var(--fui-space-1);
217
- align-items: center;
218
- min-height: var(--fui-target-size-min);
219
- color: var(--fui-text-secondary);
220
- border-block-end: 2px solid transparent;
221
- white-space: nowrap;
222
- }
223
-
224
- .prIdTabs span[data-active="true"] {
225
- color: var(--fui-text-primary);
226
- border-block-end-color: var(--fui-color-info-text);
227
- }
228
-
229
- .prIdGithubLayout {
230
- display: grid;
231
- grid-template-columns: minmax(0, 1fr) minmax(280px, 320px);
232
- gap: var(--fui-space-5);
233
- align-items: start;
234
- }
235
-
236
- .prIdTimeline {
237
- min-width: 0;
238
- }
239
-
240
- .prIdTimelineItem {
241
- display: grid;
242
- grid-template-columns: var(--fui-target-size-min) minmax(0, 1fr);
243
- gap: var(--fui-space-3);
244
- align-items: start;
245
- min-width: 0;
246
- }
247
-
248
- .prIdAvatar {
249
- display: grid;
250
- width: var(--fui-target-size-min);
251
- height: var(--fui-target-size-min);
252
- place-items: center;
253
- color: var(--fui-text-primary);
254
- background: var(--fui-bg-elevated);
255
- border: 1px solid var(--fui-border-strong);
256
- border-radius: var(--fui-radius-full);
257
- font-size: var(--fui-font-size-xs);
258
- font-weight: var(--fui-font-weight-semibold);
259
- }
260
-
261
- .prIdAvatar[data-tone="designer"] {
262
- color: var(--fui-color-info-text);
263
- background: var(--fui-color-info-bg);
264
- border-color: var(--fui-color-info-border);
265
- }
266
-
267
- .prIdCommentBox,
268
- .prIdReviewThread {
269
- min-width: 0;
270
- }
271
-
272
- .prIdCommentBox {
273
- overflow: hidden;
274
- background: var(--fui-bg-elevated);
275
- border: 1px solid var(--fui-border-subtle);
276
- border-radius: var(--fui-radius-md);
277
- }
278
-
279
- .prIdCommentChrome,
280
- .prIdFileHeader {
281
- display: flex;
282
- gap: var(--fui-space-2);
283
- align-items: center;
284
- justify-content: space-between;
285
- min-width: 0;
286
- padding: var(--fui-space-2) var(--fui-space-3);
287
- background: var(--fui-bg-subtle);
288
- border-block-end: 1px solid var(--fui-border-subtle);
289
- }
290
-
291
- .prIdCommentBody {
292
- min-width: 0;
293
- padding: var(--fui-space-3);
294
- }
295
-
296
- .prIdPrBodyTable,
297
- .prIdReportTable {
298
- overflow: hidden;
299
- border: 1px solid var(--fui-border-subtle);
300
- border-radius: var(--fui-radius-md);
301
- }
302
-
303
- .prIdSummaryRow,
304
- .prIdReportRow {
305
- display: grid;
306
- gap: var(--fui-space-2);
307
- align-items: center;
308
- padding: var(--fui-space-2) var(--fui-space-3);
309
- border-block-end: 1px solid var(--fui-border-subtle);
310
- }
311
-
312
- .prIdSummaryRow {
313
- grid-template-columns: minmax(110px, 160px) minmax(0, 1fr);
314
- }
315
-
316
- .prIdReportRow {
317
- grid-template-columns: minmax(100px, 1fr) minmax(92px, 120px) minmax(82px, 110px) auto;
318
- }
319
-
320
- .prIdSummaryRow:last-child,
321
- .prIdReportRow:last-child {
322
- border-block-end: 0;
323
- }
324
-
325
- .prIdFileHeader {
326
- border: 1px solid var(--fui-border-subtle);
327
- border-end-start-radius: 0;
328
- border-end-end-radius: 0;
329
- border-start-start-radius: var(--fui-radius-md);
330
- border-start-end-radius: var(--fui-radius-md);
331
- }
332
-
333
- .prIdReviewThread .prIdCommentBox {
334
- border-start-start-radius: 0;
335
- border-start-end-radius: 0;
336
- }
337
-
338
- .prIdSidebar {
339
- position: sticky;
340
- top: var(--fui-space-4);
341
- min-width: 0;
342
- border-block-start: 1px solid var(--fui-border-subtle);
343
- }
344
-
345
- .prIdSidebarSection {
346
- display: grid;
347
- gap: var(--fui-space-2);
348
- padding-block: var(--fui-space-3);
349
- border-block-end: 1px solid var(--fui-border-subtle);
350
- }
351
-
352
- .prIdSidebarRow,
353
- .prIdCheckSummary {
354
- min-width: 0;
355
- }
356
-
357
- .prIdSidebarRow {
358
- display: flex;
359
- gap: var(--fui-space-2);
360
- align-items: baseline;
361
- justify-content: space-between;
362
- }
363
-
364
- .prIdSidebarRow[data-variant="error"] :last-child {
365
- color: var(--fui-color-danger-text);
366
- }
367
-
368
- .prIdSidebarRow[data-variant="warning"] :last-child {
369
- color: var(--fui-color-warning-text);
370
- }
371
-
372
- .prIdSidebarRow[data-variant="success"] :last-child {
373
- color: var(--fui-color-success-text);
374
- }
375
-
376
- .prIdCheckSummary {
377
- display: grid;
378
- grid-template-columns: auto minmax(0, 1fr);
379
- gap: var(--fui-space-2);
380
- align-items: start;
381
- }
382
-
383
- .prIdCheckIcon {
384
- display: grid;
385
- width: var(--fui-space-3);
386
- height: var(--fui-space-3);
387
- place-items: center;
388
- margin-block-start: var(--fui-space-1);
389
- }
390
-
391
- .prIdCheckIcon[data-state="passed"] {
392
- color: var(--fui-color-success-text);
393
- }
394
-
395
- .prIdCheckIcon[data-state="warning"] {
396
- color: var(--fui-color-warning-text);
397
- }
398
-
399
- .prIdCheckIcon[data-state="failed"] {
400
- color: var(--fui-color-danger-text);
401
- }
402
-
403
- .prDetailRail {
404
- position: sticky;
405
- top: var(--fui-space-4);
406
- display: grid;
407
- gap: var(--fui-space-4);
408
- min-width: 0;
409
- }
410
-
411
- .prFindingsToolbar {
412
- display: flex;
413
- flex-wrap: wrap;
414
- gap: var(--fui-space-2);
415
- align-items: center;
416
- justify-content: space-between;
417
- }
418
-
419
- @media (max-width: 1120px) {
420
- .heroActionGrid {
421
- grid-template-columns: 1fr;
422
- }
423
-
424
- .twoColumn {
425
- grid-template-columns: 1fr;
426
- }
427
-
428
- .prIdGithubLayout {
429
- grid-template-columns: 1fr;
430
- }
431
-
432
- .prIdSidebar,
433
- .prDetailRail {
434
- position: static;
435
- }
436
- }
437
-
438
- @media (max-width: 760px) {
439
- .page {
440
- padding: var(--fui-space-3);
441
- }
442
-
443
- .toolbar {
444
- grid-template-columns: 1fr;
445
- }
446
-
447
- .prToolbar {
448
- grid-template-columns: 1fr;
449
- }
450
-
451
- .prIdTimelineItem {
452
- grid-template-columns: 1fr;
453
- }
454
-
455
- .prIdAvatar {
456
- display: none;
457
- }
458
-
459
- .prIdReportRow {
460
- grid-template-columns: 1fr;
461
- }
462
- }