@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,375 +0,0 @@
1
- import { ArrowRight, MagnifyingGlass } from "@phosphor-icons/react";
2
- import { Badge } from "../Badge";
3
- import { Box } from "../Box";
4
- import { Button } from "../Button";
5
- import { Card } from "../Card";
6
- import { DataTable, type DataTableColumn } from "../DataTable";
7
- import { Input } from "../Input";
8
- import { Progress, type ProgressProps } from "../Progress";
9
- import { Select } from "../Select";
10
- import { Separator } from "../Separator";
11
- import { Stack } from "../Stack";
12
- import { Text } from "../Text";
13
- export { PrototypeShell } from "./DashboardLayoutPrototypes.shell";
14
- import styles from "./DashboardLayoutPrototypes.module.scss";
15
-
16
- export type StateVariant = "success" | "warning" | "error" | "info";
17
-
18
- export type AreaRow = {
19
- area: string;
20
- owner: string;
21
- coverage: number;
22
- drift: number;
23
- criticality: string;
24
- state: "Healthy" | "Watching" | "Blocked" | "Review";
25
- variant: StateVariant;
26
- };
27
-
28
- type Activity = {
29
- title: string;
30
- detail: string;
31
- status: string;
32
- time: string;
33
- variant: StateVariant;
34
- };
35
-
36
- export const areas: AreaRow[] = [
37
- {
38
- area: "Checkout",
39
- owner: "Revenue systems",
40
- coverage: 91,
41
- drift: 2,
42
- criticality: "Revenue",
43
- state: "Watching",
44
- variant: "warning",
45
- },
46
- {
47
- area: "Dashboard",
48
- owner: "Cloud product",
49
- coverage: 84,
50
- drift: 4,
51
- criticality: "Core app",
52
- state: "Review",
53
- variant: "info",
54
- },
55
- {
56
- area: "Marketing",
57
- owner: "Growth",
58
- coverage: 68,
59
- drift: 11,
60
- criticality: "Public",
61
- state: "Blocked",
62
- variant: "error",
63
- },
64
- {
65
- area: "Admin",
66
- owner: "Platform",
67
- coverage: 96,
68
- drift: 1,
69
- criticality: "Internal",
70
- state: "Healthy",
71
- variant: "success",
72
- },
73
- ];
74
-
75
- const activity: Activity[] = [
76
- {
77
- title: "Governance scan completed",
78
- detail: "21 findings resolved, 4 new color drift reports opened.",
79
- status: "Completed",
80
- time: "2m ago",
81
- variant: "success",
82
- },
83
- {
84
- title: "Checkout exceeded drift budget",
85
- detail: "Spacing and danger color tokens need review before release.",
86
- status: "Attention",
87
- time: "14m ago",
88
- variant: "warning",
89
- },
90
- {
91
- title: "Setup PR merged",
92
- detail: "fragments/cloud now reports CI findings into Cloud.",
93
- status: "Merged",
94
- time: "1h ago",
95
- variant: "info",
96
- },
97
- ];
98
-
99
- const areaColumns: DataTableColumn<AreaRow>[] = [
100
- { accessorKey: "area", header: "Area", size: 148, truncate: true },
101
- { accessorKey: "owner", header: "Owner", truncate: true },
102
- {
103
- accessorKey: "coverage",
104
- header: "Coverage",
105
- size: 112,
106
- cell: (context) => `${(context.row.original as AreaRow).coverage}%`,
107
- },
108
- {
109
- accessorKey: "drift",
110
- header: "Drift",
111
- size: 84,
112
- align: "right",
113
- },
114
- {
115
- accessorKey: "state",
116
- header: "State",
117
- size: 112,
118
- cell: (context) => {
119
- const row = context.row.original as AreaRow;
120
- return (
121
- <Badge variant={row.variant} size="sm">
122
- {row.state}
123
- </Badge>
124
- );
125
- },
126
- },
127
- ];
128
-
129
- const activityColumns: DataTableColumn<Activity>[] = [
130
- {
131
- accessorKey: "title",
132
- header: "Event",
133
- size: 240,
134
- truncate: true,
135
- },
136
- {
137
- accessorKey: "detail",
138
- header: "Detail",
139
- truncate: true,
140
- },
141
- {
142
- accessorKey: "status",
143
- header: "Status",
144
- size: 116,
145
- cell: (context) => {
146
- const row = context.row.original as Activity;
147
- return (
148
- <Badge variant={row.variant} size="sm">
149
- {row.status}
150
- </Badge>
151
- );
152
- },
153
- },
154
- {
155
- accessorKey: "time",
156
- header: "Time",
157
- size: 96,
158
- align: "right",
159
- },
160
- ];
161
-
162
- export function MetricPanel({
163
- label,
164
- value,
165
- progress,
166
- variant = "default",
167
- }: {
168
- label: string;
169
- value: string;
170
- progress: number;
171
- variant?: ProgressProps["variant"];
172
- }) {
173
- return (
174
- <Card variant="panel" padding="none">
175
- <Card.Header divided>
176
- <Card.Title>{label}</Card.Title>
177
- </Card.Header>
178
- <Card.Body padding="md">
179
- <Stack gap="sm">
180
- <Text size="sm" weight="semibold" tabularNums>
181
- {value}
182
- </Text>
183
- <Progress value={progress} variant={variant} size="sm" aria-label={label} />
184
- </Stack>
185
- </Card.Body>
186
- </Card>
187
- );
188
- }
189
-
190
- export function CoverageHero({ className }: { className?: string } = {}) {
191
- return (
192
- <Card variant="panel" padding="none" className={className}>
193
- <Card.Body padding="none" className={styles.stretchBody}>
194
- <Stack gap="none" className={styles.coverageBody}>
195
- <Stack
196
- direction="row"
197
- justify="between"
198
- align="start"
199
- gap="md"
200
- className={styles.coverageSummary}
201
- >
202
- <Stack gap="xs" className={styles.minWidthZero}>
203
- <Text size="xs" color="tertiary">
204
- Design contract coverage
205
- </Text>
206
- <Text size="lg" weight="semibold" tabularNums>
207
- 82% covered evidence
208
- </Text>
209
- </Stack>
210
- <Text size="xs" color="secondary" className={styles.coverageDelta}>
211
- +8 trend
212
- </Text>
213
- </Stack>
214
- <Box className={styles.coverageChartWrap}>
215
- <svg
216
- className={styles.coverageTrendChart}
217
- viewBox="0 0 240 72"
218
- preserveAspectRatio="none"
219
- role="img"
220
- aria-label="Design contract coverage over time"
221
- >
222
- <defs>
223
- <linearGradient id="coverage-trend" x1="0" x2="0" y1="0" y2="1">
224
- <stop offset="0%" stopColor="currentColor" stopOpacity="0.34" />
225
- <stop offset="100%" stopColor="currentColor" stopOpacity="0.03" />
226
- </linearGradient>
227
- </defs>
228
- <path
229
- d="M 0 56 L 34 50 L 69 45 L 103 47 L 137 35 L 171 31 L 206 23 L 240 20 L 240 72 L 0 72 Z"
230
- fill="url(#coverage-trend)"
231
- />
232
- <path
233
- d="M 0 56 L 34 50 L 69 45 L 103 47 L 137 35 L 171 31 L 206 23 L 240 20"
234
- fill="none"
235
- stroke="currentColor"
236
- strokeWidth="2"
237
- />
238
- </svg>
239
- </Box>
240
- </Stack>
241
- </Card.Body>
242
- </Card>
243
- );
244
- }
245
-
246
- export function AreasTable({ title = "Areas at risk" }: { title?: string }) {
247
- return (
248
- <Card variant="panel" padding="none" className={styles.minWidthZero}>
249
- <Card.Header divided>
250
- <Stack direction="row" justify="between" align="center" gap="md" className={styles.full}>
251
- <Card.Title>{title}</Card.Title>
252
- <Badge variant="warning" size="sm">
253
- 3 need attention
254
- </Badge>
255
- </Stack>
256
- </Card.Header>
257
- <Card.Body padding="sm">
258
- <DataTable
259
- columns={areaColumns}
260
- data={areas}
261
- getRowId={(row) => row.area}
262
- density="condensed"
263
- bordered
264
- caption={title}
265
- captionHidden
266
- />
267
- </Card.Body>
268
- </Card>
269
- );
270
- }
271
-
272
- export function ActionPanel({ className }: { className?: string } = {}) {
273
- return (
274
- <Card variant="panel" padding="none" className={className}>
275
- <Card.Header divided>
276
- <Card.Title>Recommended action</Card.Title>
277
- </Card.Header>
278
- <Card.Body padding="md" className={styles.actionPanelBody}>
279
- <Stack gap="md" justify="between" className={styles.actionPanelContent}>
280
- <Stack gap="xs">
281
- <Text size="sm" weight="semibold">
282
- Review Marketing color drift before release.
283
- </Text>
284
- <Text size="sm" color="secondary">
285
- 11 new findings came from public pages with low contract coverage.
286
- </Text>
287
- </Stack>
288
- <Button variant="primary" size="sm" className={styles.actionButton}>
289
- Open findings <ArrowRight size={14} weight="bold" />
290
- </Button>
291
- </Stack>
292
- </Card.Body>
293
- </Card>
294
- );
295
- }
296
-
297
- export function ActivityPanel() {
298
- return (
299
- <Card variant="panel" padding="none">
300
- <Card.Header divided>
301
- <Card.Title>Recent governance activity</Card.Title>
302
- </Card.Header>
303
- <Card.Body padding="sm">
304
- <ActivityTable />
305
- </Card.Body>
306
- </Card>
307
- );
308
- }
309
-
310
- export function ActivityTable() {
311
- return (
312
- <DataTable
313
- columns={activityColumns}
314
- data={activity}
315
- getRowId={(row) => row.title}
316
- density="condensed"
317
- bordered
318
- caption="Recent governance activity"
319
- captionHidden
320
- />
321
- );
322
- }
323
-
324
- export function StatePanel() {
325
- return (
326
- <Card variant="panel" padding="none">
327
- <Card.Header divided>
328
- <Card.Title>System status</Card.Title>
329
- </Card.Header>
330
- <Card.Body>
331
- <Stack gap="none" separator={<Separator soft />}>
332
- {[
333
- ["CI ingestion", "Live", "success"],
334
- ["GitHub App", "Connected", "success"],
335
- ["Exception debt", "Watching", "warning"],
336
- ["Release gate", "Blocked", "error"],
337
- ].map(([label, value, variant]) => (
338
- <Box key={label} paddingX="md" paddingY="sm">
339
- <Stack direction="row" justify="between" align="center" gap="md">
340
- <Text size="sm" color="secondary">
341
- {label}
342
- </Text>
343
- <Badge variant={variant as StateVariant} size="sm">
344
- {value}
345
- </Badge>
346
- </Stack>
347
- </Box>
348
- ))}
349
- </Stack>
350
- </Card.Body>
351
- </Card>
352
- );
353
- }
354
-
355
- export function FindingsToolbar() {
356
- return (
357
- <Box className={styles.toolbar}>
358
- <Input
359
- aria-label="Search dashboard evidence"
360
- placeholder="Search evidence..."
361
- size="sm"
362
- startAdornment={<MagnifyingGlass size={16} />}
363
- shortcut="⌘K"
364
- withFieldWrapper={false}
365
- />
366
- <Select aria-label="Time range" defaultValue="7d" size="sm">
367
- <Select.Trigger />
368
- <Select.Content>
369
- <Select.Item value="7d">Last 7 days</Select.Item>
370
- <Select.Item value="30d">Last 30 days</Select.Item>
371
- </Select.Content>
372
- </Select>
373
- </Box>
374
- );
375
- }
@@ -1,147 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import {
3
- Clock,
4
- Gear,
5
- GitBranch,
6
- GitPullRequest,
7
- House,
8
- ListChecks,
9
- ShieldCheck,
10
- } from "@phosphor-icons/react";
11
- import { AppShell } from "../AppShell";
12
- import { Avatar } from "../Avatar";
13
- import { Box } from "../Box";
14
- import { Button } from "../Button";
15
- import { Sidebar } from "../Sidebar";
16
- import { Stack } from "../Stack";
17
- import { Text } from "../Text";
18
- import styles from "./DashboardLayoutPrototypes.module.scss";
19
-
20
- export type CloudNavLabel =
21
- | "Dashboard"
22
- | "Pull Requests"
23
- | "Backlog"
24
- | "Governance"
25
- | "Developer setup"
26
- | "Settings";
27
-
28
- function SidebarBrand() {
29
- return (
30
- <Stack direction="row" align="center" gap="sm">
31
- <Box as="span" className={styles.brandMark}>
32
- <GitBranch size={16} weight="bold" />
33
- </Box>
34
- <Stack gap="none" className={styles.truncate}>
35
- <Text variant="section-label" color="tertiary" truncate>
36
- Active repository
37
- </Text>
38
- <Text size="sm" weight="semibold" truncate>
39
- fragments-sdk/ui
40
- </Text>
41
- </Stack>
42
- </Stack>
43
- );
44
- }
45
-
46
- function CloudSidebar({ activeNav }: { activeNav: CloudNavLabel }) {
47
- return (
48
- <>
49
- <Sidebar.Header>
50
- <SidebarBrand />
51
- </Sidebar.Header>
52
- <Sidebar.Nav>
53
- <Sidebar.Section>
54
- <Sidebar.Item icon={<House size={18} />} active={activeNav === "Dashboard"}>
55
- Dashboard
56
- </Sidebar.Item>
57
- <Sidebar.Item icon={<GitPullRequest size={18} />} active={activeNav === "Pull Requests"}>
58
- Pull Requests
59
- </Sidebar.Item>
60
- <Sidebar.Item icon={<ListChecks size={18} />} active={activeNav === "Backlog"} badge={7}>
61
- Backlog
62
- </Sidebar.Item>
63
- <Sidebar.Item icon={<ShieldCheck size={18} />} active={activeNav === "Governance"}>
64
- Governance
65
- </Sidebar.Item>
66
- </Sidebar.Section>
67
- <Sidebar.Section label="Setup">
68
- <Sidebar.Item icon={<Clock size={18} />} active={activeNav === "Developer setup"}>
69
- Developer setup
70
- </Sidebar.Item>
71
- <Sidebar.Item icon={<Gear size={18} />} active={activeNav === "Settings"}>
72
- Settings
73
- </Sidebar.Item>
74
- </Sidebar.Section>
75
- </Sidebar.Nav>
76
- <Sidebar.Footer>
77
- <Stack direction="row" align="center" gap="sm">
78
- <Avatar initials="T" name="Test User" size="md" />
79
- <Stack gap="none" className={styles.truncate}>
80
- <Text size="sm" weight="semibold" truncate>
81
- Test User
82
- </Text>
83
- <Text size="2xs" color="tertiary" truncate>
84
- dev_test@app.usefragments.com
85
- </Text>
86
- </Stack>
87
- </Stack>
88
- </Sidebar.Footer>
89
- </>
90
- );
91
- }
92
-
93
- export function PrototypeShell({
94
- activeNav = "Dashboard",
95
- eyebrow,
96
- title,
97
- description = "Design contract coverage, drift budgets, and release readiness.",
98
- actions,
99
- children,
100
- }: {
101
- activeNav?: CloudNavLabel;
102
- eyebrow?: string;
103
- title: string;
104
- description?: string;
105
- actions?: ReactNode;
106
- children: ReactNode;
107
- }) {
108
- return (
109
- <Box className={styles.frame}>
110
- <AppShell layout="sidebar" bg="var(--fui-app-canvas-bg)" className={styles.shell}>
111
- <AppShell.Sidebar width="260px" collapsible="offcanvas">
112
- <CloudSidebar activeNav={activeNav} />
113
- </AppShell.Sidebar>
114
- <AppShell.Main padding="none" className={styles.main}>
115
- <Stack as="main" gap="lg" className={styles.page}>
116
- <Stack direction="row" justify="between" align="start" gap="md" wrap>
117
- <Stack gap="xs" className={styles.heading}>
118
- {eyebrow ? (
119
- <Text variant="section-label" color="tertiary">
120
- {eyebrow}
121
- </Text>
122
- ) : null}
123
- <Text as="h1" size="xl" weight="bold">
124
- {title}
125
- </Text>
126
- <Text as="p" size="sm" color="secondary">
127
- {description}
128
- </Text>
129
- </Stack>
130
- {actions ?? (
131
- <Stack direction="row" gap="sm" wrap>
132
- <Button variant="outlined" size="sm">
133
- View reports
134
- </Button>
135
- <Button variant="secondary" size="sm">
136
- Learn more
137
- </Button>
138
- </Stack>
139
- )}
140
- </Stack>
141
- {children}
142
- </Stack>
143
- </AppShell.Main>
144
- </AppShell>
145
- </Box>
146
- );
147
- }