@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,446 +0,0 @@
1
- import type { ReactNode } from "react";
2
- import type { Meta, StoryObj } from "@storybook/react";
3
- import {
4
- CheckCircle,
5
- Clock,
6
- Cube,
7
- DotsThree,
8
- Gear,
9
- GitBranch,
10
- House,
11
- MagnifyingGlass,
12
- Palette,
13
- ShieldCheck,
14
- WarningCircle,
15
- XCircle,
16
- } from "@phosphor-icons/react";
17
- import { AppShell } from "../AppShell";
18
- import { Avatar } from "../Avatar";
19
- import { Badge } from "../Badge";
20
- import { Box } from "../Box";
21
- import { Button } from "../Button";
22
- import { ButtonGroup } from "../ButtonGroup";
23
- import { Card } from "../Card";
24
- import { DataTable, type DataTableColumn } from "../DataTable";
25
- import { Grid } from "../Grid";
26
- import { Input } from "../Input";
27
- import { Progress, type ProgressProps } from "../Progress";
28
- import { Select } from "../Select";
29
- import { Separator } from "../Separator";
30
- import { Sidebar } from "../Sidebar";
31
- import { Stack } from "../Stack";
32
- import { Tabs } from "../Tabs";
33
- import { Text } from "../Text";
34
- import styles from "./CloudGovernanceShell.module.scss";
35
-
36
- const meta = {
37
- title: "Cloud/Governance Shell",
38
- parameters: {
39
- layout: "fullscreen",
40
- backgrounds: { default: "dark" },
41
- docs: {
42
- description: {
43
- component:
44
- "Cloud-specific product shell for dogfooding Fragments UI across layout, navigation, controls, tables, cards, and semantic states.",
45
- },
46
- },
47
- },
48
- } satisfies Meta;
49
-
50
- export default meta;
51
-
52
- type Story = StoryObj<typeof meta>;
53
-
54
- type GovernanceRow = {
55
- token: string;
56
- surface: string;
57
- status: "Healthy" | "Watching" | "Blocked" | "Review";
58
- severity: "success" | "warning" | "error" | "info";
59
- lastSeen: string;
60
- };
61
-
62
- const rows: GovernanceRow[] = [
63
- {
64
- token: "color.background.surface",
65
- surface: "Cloud dashboard shell",
66
- status: "Healthy",
67
- severity: "success",
68
- lastSeen: "2m ago",
69
- },
70
- {
71
- token: "space.4",
72
- surface: "Components index cards",
73
- status: "Watching",
74
- severity: "warning",
75
- lastSeen: "14m ago",
76
- },
77
- {
78
- token: "color.danger.text",
79
- surface: "Findings table badges",
80
- status: "Review",
81
- severity: "info",
82
- lastSeen: "31m ago",
83
- },
84
- {
85
- token: "radius.card",
86
- surface: "Governance setup panel",
87
- status: "Blocked",
88
- severity: "error",
89
- lastSeen: "1h ago",
90
- },
91
- ];
92
-
93
- const badgeVariant = {
94
- success: "success",
95
- warning: "warning",
96
- error: "error",
97
- info: "info",
98
- } satisfies Record<GovernanceRow["severity"], "success" | "warning" | "error" | "info">;
99
-
100
- const columns: DataTableColumn<GovernanceRow>[] = [
101
- {
102
- accessorKey: "token",
103
- header: "Token",
104
- size: 248,
105
- truncate: true,
106
- },
107
- {
108
- accessorKey: "surface",
109
- header: "Surface",
110
- truncate: true,
111
- },
112
- {
113
- accessorKey: "status",
114
- header: "Status",
115
- size: 126,
116
- cell: (context) => {
117
- const row = context.row.original as GovernanceRow;
118
- return (
119
- <Badge variant={badgeVariant[row.severity]} size="sm">
120
- {row.status}
121
- </Badge>
122
- );
123
- },
124
- },
125
- {
126
- accessorKey: "lastSeen",
127
- header: "Seen",
128
- align: "right",
129
- size: 92,
130
- },
131
- {
132
- id: "actions",
133
- header: "",
134
- align: "right",
135
- size: 48,
136
- enableSorting: false,
137
- cell: () => (
138
- <Button variant="icon" size="xs" aria-label="Open row actions">
139
- <DotsThree size={16} weight="bold" />
140
- </Button>
141
- ),
142
- },
143
- ];
144
-
145
- function SidebarBrand() {
146
- return (
147
- <Stack direction="row" gap="sm" align="center">
148
- <Box as="span" className={styles.brandMark}>
149
- <GitBranch size={16} weight="bold" />
150
- </Box>
151
- <Stack gap="none" className={styles.brandCopy}>
152
- <Text variant="section-label" color="tertiary" truncate>
153
- Active repository
154
- </Text>
155
- <Text size="sm" weight="semibold" truncate>
156
- fragments-sdk/ui
157
- </Text>
158
- </Stack>
159
- </Stack>
160
- );
161
- }
162
-
163
- function MetricCard({
164
- value,
165
- label,
166
- progress,
167
- variant = "default",
168
- }: {
169
- value: string;
170
- label: string;
171
- progress: number;
172
- variant?: ProgressProps["variant"];
173
- }) {
174
- return (
175
- <Card variant="panel" padding="none">
176
- <Card.Header divided>
177
- <Card.Title>{label}</Card.Title>
178
- </Card.Header>
179
- <Card.Body padding="md">
180
- <Stack gap="sm">
181
- <Text size="sm" weight="semibold" tabularNums>
182
- {value}
183
- </Text>
184
- <Progress value={progress} variant={variant} size="sm" aria-label={`${label} progress`} />
185
- </Stack>
186
- </Card.Body>
187
- </Card>
188
- );
189
- }
190
-
191
- function StateRow({ label, children }: { label: string; children: ReactNode }) {
192
- return (
193
- <Box paddingX="md" paddingY="xs">
194
- <Stack direction="row" align="center" justify="between" gap="sm" className={styles.stateRow}>
195
- <Text size="sm" color="secondary">
196
- {label}
197
- </Text>
198
- {children}
199
- </Stack>
200
- </Box>
201
- );
202
- }
203
-
204
- function CloudSidebar() {
205
- return (
206
- <>
207
- <Sidebar.Header>
208
- <SidebarBrand />
209
- </Sidebar.Header>
210
-
211
- <Sidebar.Nav>
212
- <Sidebar.Section>
213
- <Sidebar.Item icon={<House size={18} />} active>
214
- Dashboard
215
- </Sidebar.Item>
216
- <Sidebar.Item icon={<Cube size={18} />}>Components</Sidebar.Item>
217
- <Sidebar.Item icon={<Palette size={18} />}>Tokens</Sidebar.Item>
218
- <Sidebar.Item icon={<WarningCircle size={18} />} badge={7}>
219
- Findings
220
- </Sidebar.Item>
221
- <Sidebar.Item icon={<ShieldCheck size={18} />}>Governance</Sidebar.Item>
222
- </Sidebar.Section>
223
- <Sidebar.Section label="Setup">
224
- <Sidebar.Item icon={<Clock size={18} />}>Developer setup</Sidebar.Item>
225
- <Sidebar.Item icon={<Gear size={18} />}>Settings</Sidebar.Item>
226
- </Sidebar.Section>
227
- </Sidebar.Nav>
228
-
229
- <Sidebar.Footer>
230
- <Stack direction="row" align="center" gap="sm">
231
- <Avatar initials="T" name="Test User" size="md" />
232
- <Stack gap="none" className={styles.brandCopy}>
233
- <Text size="sm" weight="semibold" truncate>
234
- Test User
235
- </Text>
236
- <Text size="2xs" color="tertiary" truncate>
237
- dev_test@app.usefragments.com
238
- </Text>
239
- </Stack>
240
- </Stack>
241
- </Sidebar.Footer>
242
- </>
243
- );
244
- }
245
-
246
- function FindingsPanel() {
247
- return (
248
- <Card variant="panel" padding="none" className={styles.tableColumn}>
249
- <Card.Header divided>
250
- <Stack
251
- direction="row"
252
- align="center"
253
- justify="between"
254
- gap="sm"
255
- className={styles.panelHeader}
256
- >
257
- <Stack gap="xs">
258
- <Card.Title>Governance findings</Card.Title>
259
- <Card.Description>
260
- Shared state colors across tables, badges, and rows.
261
- </Card.Description>
262
- </Stack>
263
- <Badge variant="info" size="sm">
264
- Live
265
- </Badge>
266
- </Stack>
267
- </Card.Header>
268
- <Card.Body>
269
- <Box padding="sm">
270
- <Stack gap="sm">
271
- <Box className={styles.toolbar}>
272
- <Input
273
- aria-label="Search findings"
274
- placeholder="Search findings..."
275
- size="sm"
276
- startAdornment={<MagnifyingGlass size={16} />}
277
- shortcut="⌘K"
278
- withFieldWrapper={false}
279
- />
280
- <Select aria-label="Date range" defaultValue="15d" size="sm">
281
- <Select.Trigger />
282
- <Select.Content>
283
- <Select.Item value="7d">Last 7 days</Select.Item>
284
- <Select.Item value="15d">Last 15 days</Select.Item>
285
- <Select.Item value="30d">Last 30 days</Select.Item>
286
- </Select.Content>
287
- </Select>
288
- <Select aria-label="Status" defaultValue="all" size="sm">
289
- <Select.Trigger />
290
- <Select.Content>
291
- <Select.Item value="all">All statuses</Select.Item>
292
- <Select.Item value="healthy">Healthy</Select.Item>
293
- <Select.Item value="blocked">Blocked</Select.Item>
294
- </Select.Content>
295
- </Select>
296
- </Box>
297
- <DataTable
298
- columns={columns}
299
- data={rows}
300
- getRowId={(row) => row.token}
301
- density="condensed"
302
- bordered
303
- sortable
304
- caption="Governance findings"
305
- captionHidden
306
- />
307
- </Stack>
308
- </Box>
309
- </Card.Body>
310
- </Card>
311
- );
312
- }
313
-
314
- function StatePanel() {
315
- return (
316
- <Card variant="panel" padding="none">
317
- <Card.Header divided>
318
- <Card.Title>System states</Card.Title>
319
- </Card.Header>
320
- <Card.Body>
321
- <Stack gap="none" separator={<Separator soft />}>
322
- <StateRow label="Ready to ship">
323
- <Badge variant="success" size="sm" icon={<CheckCircle size={14} />}>
324
- Success
325
- </Badge>
326
- </StateRow>
327
- <StateRow label="Needs attention">
328
- <Badge variant="warning" size="sm" icon={<WarningCircle size={14} />}>
329
- Warning
330
- </Badge>
331
- </StateRow>
332
- <StateRow label="Deploy blocked">
333
- <Badge variant="error" size="sm" icon={<XCircle size={14} />}>
334
- Danger
335
- </Badge>
336
- </StateRow>
337
- <StateRow label="Informational">
338
- <Badge variant="info" size="sm">
339
- Info
340
- </Badge>
341
- </StateRow>
342
- </Stack>
343
- </Card.Body>
344
- </Card>
345
- );
346
- }
347
-
348
- function ActionsPanel() {
349
- return (
350
- <Card variant="panel" padding="md">
351
- <Stack gap="md">
352
- <Stack gap="xs">
353
- <Card.Title>Actions</Card.Title>
354
- <Card.Description>
355
- Button states use the same border, hover, and semantic recipes.
356
- </Card.Description>
357
- </Stack>
358
- <ButtonGroup gap="sm" wrap className={styles.actions}>
359
- <Button variant="primary" size="sm">
360
- Create setup PR
361
- </Button>
362
- <Button variant="outlined" size="sm">
363
- Copy MCP config
364
- </Button>
365
- <Button variant="danger" size="sm">
366
- Disconnect repository
367
- </Button>
368
- </ButtonGroup>
369
- </Stack>
370
- </Card>
371
- );
372
- }
373
-
374
- export const GovernanceShell: Story = {
375
- render: () => (
376
- <Box className={styles.frame}>
377
- <AppShell layout="sidebar" bg="var(--fui-app-canvas-bg)" className={styles.shell}>
378
- <AppShell.Sidebar width="260px" collapsible="offcanvas">
379
- <CloudSidebar />
380
- </AppShell.Sidebar>
381
-
382
- <AppShell.Main padding="none" className={styles.main}>
383
- <Stack as="main" gap="lg" className={styles.page}>
384
- <Stack direction="row" align="start" justify="between" gap="md" wrap>
385
- <Stack gap="xs">
386
- <Text as="h1" size="2xl" weight="bold">
387
- Dashboard
388
- </Text>
389
- <Text as="p" size="sm" color="secondary">
390
- Design system health, coverage, and governance status.
391
- </Text>
392
- </Stack>
393
- <Button variant="outlined" size="sm">
394
- Take a tour
395
- </Button>
396
- </Stack>
397
-
398
- <Grid columns="auto" minChildWidth="220px" gap="md">
399
- <MetricCard value="94%" label="Component coverage" progress={94} variant="success" />
400
- <MetricCard value="312" label="Tracked tokens" progress={78} />
401
- <MetricCard value="7" label="Open findings" progress={38} variant="warning" />
402
- <MetricCard value="1" label="Blocking drift" progress={14} variant="danger" />
403
- </Grid>
404
-
405
- <Box as="section" className={styles.contentGrid}>
406
- <Box className={styles.tableColumn}>
407
- <Tabs defaultValue="findings" variant="pills">
408
- <Tabs.List>
409
- <Tabs.Tab value="findings">Findings</Tabs.Tab>
410
- <Tabs.Tab value="activity">Activity</Tabs.Tab>
411
- <Tabs.Tab value="changes">Changes</Tabs.Tab>
412
- </Tabs.List>
413
-
414
- <Tabs.Panel value="findings" flush>
415
- <FindingsPanel />
416
- </Tabs.Panel>
417
- <Tabs.Panel value="activity" flush>
418
- <Card variant="panel" padding="md">
419
- <Card.Title>Activity</Card.Title>
420
- <Card.Description>
421
- The same panel chrome carries secondary content.
422
- </Card.Description>
423
- </Card>
424
- </Tabs.Panel>
425
- <Tabs.Panel value="changes" flush>
426
- <Card variant="panel" padding="md">
427
- <Card.Title>Changes</Card.Title>
428
- <Card.Description>
429
- Token changes inherit the same surface and border model.
430
- </Card.Description>
431
- </Card>
432
- </Tabs.Panel>
433
- </Tabs>
434
- </Box>
435
-
436
- <Stack as="aside" gap="md">
437
- <StatePanel />
438
- <ActionsPanel />
439
- </Stack>
440
- </Box>
441
- </Stack>
442
- </AppShell.Main>
443
- </AppShell>
444
- </Box>
445
- ),
446
- };
@@ -1,49 +0,0 @@
1
- .frame {
2
- min-height: 100vh;
3
- background: var(--fui-app-main-bg, var(--fui-bg-primary));
4
- }
5
-
6
- .content {
7
- width: min(1180px, 100%);
8
- margin-inline: auto;
9
- }
10
-
11
- .section {
12
- width: 100%;
13
- }
14
-
15
- .sizeRow {
16
- width: 100%;
17
- }
18
-
19
- .samples {
20
- flex: 1 1 auto;
21
- min-width: 0;
22
- }
23
-
24
- .sizeMeta {
25
- flex: 0 0 96px;
26
- }
27
-
28
- .sample {
29
- min-width: 0;
30
- }
31
-
32
- .control {
33
- width: 100%;
34
- }
35
-
36
- .compactControl {
37
- width: max-content;
38
- }
39
-
40
- .tabsSlot {
41
- width: max-content;
42
- max-width: 100%;
43
- }
44
-
45
- @media (max-width: 720px) {
46
- .sizeMeta {
47
- flex-basis: auto;
48
- }
49
- }