@sovereignfs/ui 0.83.1 → 0.89.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (556) hide show
  1. package/LICENSE +373 -661
  2. package/NOTICE +8 -0
  3. package/README.md +4 -6
  4. package/dist/AppsLauncher.module.css +6 -0
  5. package/dist/Button.module.css +5 -0
  6. package/dist/Card.module.css +6 -0
  7. package/dist/CardTile.module.css +6 -0
  8. package/dist/CheckableListRow.module.css +8 -0
  9. package/dist/Checkbox.module.css +8 -0
  10. package/dist/CodeTextarea.module.css +6 -0
  11. package/dist/ColorPicker.module.css +6 -0
  12. package/dist/Combobox.module.css +6 -0
  13. package/dist/Command.module.css +6 -0
  14. package/dist/ConfirmDialog.module.css +6 -0
  15. package/dist/DatePicker.module.css +6 -0
  16. package/dist/Dialog.module.css +1 -1
  17. package/dist/DragHandleRow.module.css +6 -0
  18. package/dist/FileDropzone.module.css +25 -1
  19. package/dist/Header.module.css +6 -0
  20. package/dist/IconPicker.module.css +14 -4
  21. package/dist/Input.module.css +6 -0
  22. package/dist/LegalLinks.module.css +9 -2
  23. package/dist/Markdown.module.css +5 -0
  24. package/dist/Message.module.css +9 -0
  25. package/dist/MobileAppsDrawer.module.css +9 -5
  26. package/dist/MobileFooter.module.css +6 -0
  27. package/dist/NavList.module.css +11 -2
  28. package/dist/NavTabs.module.css +7 -1
  29. package/dist/NotificationsPanel.module.css +10 -0
  30. package/dist/QrCode.module.css +17 -0
  31. package/dist/QuantityStepper.module.css +4 -2
  32. package/dist/RadioGroup.module.css +6 -0
  33. package/dist/SegmentedControl.module.css +6 -0
  34. package/dist/Select.module.css +6 -0
  35. package/dist/Sheet.module.css +16 -1
  36. package/dist/SplitPane.module.css +1 -1
  37. package/dist/StepStrip.module.css +5 -3
  38. package/dist/SuggestionInput.module.css +12 -1
  39. package/dist/SwipableMobileCarouselDots.module.css +6 -0
  40. package/dist/SystemBanner.module.css +6 -0
  41. package/dist/Tabs.module.css +6 -0
  42. package/dist/TagInput.module.css +6 -0
  43. package/dist/Textarea.module.css +6 -0
  44. package/dist/Toast.module.css +5 -0
  45. package/dist/Toggle.module.css +7 -0
  46. package/dist/Tooltip.module.css +6 -0
  47. package/dist/UserMenu.module.css +5 -0
  48. package/dist/fonts/OFL.txt +93 -0
  49. package/dist/fonts/hanken-grotesk-cyrillic-ext-wght-normal.woff2 +0 -0
  50. package/dist/fonts/hanken-grotesk-latin-ext-wght-normal.woff2 +0 -0
  51. package/dist/fonts/hanken-grotesk-latin-wght-normal.woff2 +0 -0
  52. package/dist/fonts/hanken-grotesk-vietnamese-wght-normal.woff2 +0 -0
  53. package/dist/index.d.ts +121 -43
  54. package/dist/index.js +1410 -1152
  55. package/dist/tokens/fonts.css +53 -0
  56. package/dist/tokens/primitives.css +12 -12
  57. package/dist/tokens.css +2 -1
  58. package/package.json +24 -13
  59. package/src/__tests__/motion.test.tsx +0 -105
  60. package/src/__tests__/package-json.test.ts +0 -8
  61. package/src/components/Accordion/Accordion.module.css +0 -3
  62. package/src/components/Accordion/Accordion.stories.tsx +0 -110
  63. package/src/components/Accordion/Accordion.tsx +0 -53
  64. package/src/components/Accordion/__tests__/Accordion.test.tsx +0 -61
  65. package/src/components/Alert/Alert.module.css +0 -62
  66. package/src/components/Alert/Alert.stories.tsx +0 -96
  67. package/src/components/Alert/Alert.tsx +0 -58
  68. package/src/components/Alert/__tests__/Alert.test.tsx +0 -75
  69. package/src/components/AppsLauncher/AppsLauncher.module.css +0 -96
  70. package/src/components/AppsLauncher/AppsLauncher.stories.tsx +0 -58
  71. package/src/components/AppsLauncher/AppsLauncher.tsx +0 -117
  72. package/src/components/AppsLauncher/__tests__/AppsLauncher.test.tsx +0 -52
  73. package/src/components/AspectRatio/AspectRatio.module.css +0 -15
  74. package/src/components/AspectRatio/AspectRatio.stories.tsx +0 -78
  75. package/src/components/AspectRatio/AspectRatio.tsx +0 -21
  76. package/src/components/AspectRatio/__tests__/AspectRatio.test.tsx +0 -27
  77. package/src/components/Avatar/Avatar.module.css +0 -38
  78. package/src/components/Avatar/Avatar.tsx +0 -42
  79. package/src/components/Badge/Badge.module.css +0 -177
  80. package/src/components/Badge/Badge.stories.tsx +0 -238
  81. package/src/components/Badge/Badge.tsx +0 -84
  82. package/src/components/Badge/__tests__/Badge.test.tsx +0 -90
  83. package/src/components/BalanceChip/BalanceChip.module.css +0 -32
  84. package/src/components/BalanceChip/BalanceChip.stories.tsx +0 -45
  85. package/src/components/BalanceChip/BalanceChip.tsx +0 -33
  86. package/src/components/Breadcrumb/Breadcrumb.module.css +0 -49
  87. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +0 -47
  88. package/src/components/Breadcrumb/Breadcrumb.tsx +0 -57
  89. package/src/components/Breadcrumb/__tests__/Breadcrumb.test.tsx +0 -52
  90. package/src/components/Button/Button.module.css +0 -169
  91. package/src/components/Button/Button.stories.tsx +0 -83
  92. package/src/components/Button/Button.tsx +0 -52
  93. package/src/components/Button/__tests__/Button.test.tsx +0 -66
  94. package/src/components/ButtonGroup/ButtonGroup.module.css +0 -29
  95. package/src/components/ButtonGroup/ButtonGroup.stories.tsx +0 -57
  96. package/src/components/ButtonGroup/ButtonGroup.tsx +0 -27
  97. package/src/components/ButtonGroup/__tests__/ButtonGroup.test.tsx +0 -29
  98. package/src/components/Calendar/Calendar.module.css +0 -126
  99. package/src/components/Calendar/Calendar.tsx +0 -213
  100. package/src/components/Calendar/__tests__/Calendar.test.tsx +0 -98
  101. package/src/components/Calendar/dateUtils.ts +0 -97
  102. package/src/components/Card/Card.module.css +0 -42
  103. package/src/components/Card/Card.tsx +0 -34
  104. package/src/components/CardTile/CardTile.module.css +0 -181
  105. package/src/components/CardTile/CardTile.stories.tsx +0 -86
  106. package/src/components/CardTile/CardTile.tsx +0 -128
  107. package/src/components/CardTile/__tests__/CardTile.test.tsx +0 -56
  108. package/src/components/CheckableListRow/CheckableListRow.module.css +0 -95
  109. package/src/components/CheckableListRow/CheckableListRow.stories.tsx +0 -99
  110. package/src/components/CheckableListRow/CheckableListRow.tsx +0 -89
  111. package/src/components/Checkbox/Checkbox.module.css +0 -111
  112. package/src/components/Checkbox/Checkbox.tsx +0 -78
  113. package/src/components/CodeTextarea/CodeTextarea.module.css +0 -53
  114. package/src/components/CodeTextarea/CodeTextarea.stories.tsx +0 -77
  115. package/src/components/CodeTextarea/CodeTextarea.tsx +0 -36
  116. package/src/components/Collapsible/Collapsible.module.css +0 -70
  117. package/src/components/Collapsible/Collapsible.stories.tsx +0 -62
  118. package/src/components/Collapsible/Collapsible.tsx +0 -66
  119. package/src/components/Collapsible/__tests__/Collapsible.test.tsx +0 -71
  120. package/src/components/ColorPicker/ColorPicker.module.css +0 -132
  121. package/src/components/ColorPicker/ColorPicker.stories.tsx +0 -80
  122. package/src/components/ColorPicker/ColorPicker.tsx +0 -157
  123. package/src/components/ColorPicker/__tests__/ColorPicker.test.tsx +0 -117
  124. package/src/components/Combobox/Combobox.module.css +0 -122
  125. package/src/components/Combobox/Combobox.stories.tsx +0 -79
  126. package/src/components/Combobox/Combobox.tsx +0 -186
  127. package/src/components/Combobox/__tests__/Combobox.test.tsx +0 -158
  128. package/src/components/Command/Command.module.css +0 -80
  129. package/src/components/Command/Command.stories.tsx +0 -104
  130. package/src/components/Command/Command.tsx +0 -168
  131. package/src/components/Command/__tests__/Command.test.tsx +0 -162
  132. package/src/components/ConfirmDialog/ConfirmDialog.module.css +0 -113
  133. package/src/components/ConfirmDialog/ConfirmDialog.tsx +0 -150
  134. package/src/components/ConfirmDialog/__tests__/ConfirmDialog.test.tsx +0 -214
  135. package/src/components/ConsentPrompt/ConsentPrompt.module.css +0 -21
  136. package/src/components/ConsentPrompt/ConsentPrompt.stories.tsx +0 -31
  137. package/src/components/ConsentPrompt/ConsentPrompt.tsx +0 -66
  138. package/src/components/ContextMenu/ContextMenu.stories.tsx +0 -81
  139. package/src/components/ContextMenu/ContextMenu.tsx +0 -100
  140. package/src/components/ContextMenu/__tests__/ContextMenu.test.tsx +0 -87
  141. package/src/components/CurrencyInput/CurrencyInput.stories.tsx +0 -50
  142. package/src/components/CurrencyInput/CurrencyInput.tsx +0 -60
  143. package/src/components/DataTable/DataTable.module.css +0 -28
  144. package/src/components/DataTable/DataTable.stories.tsx +0 -74
  145. package/src/components/DataTable/DataTable.tsx +0 -154
  146. package/src/components/DataTable/__tests__/DataTable.test.tsx +0 -123
  147. package/src/components/DatePicker/DatePicker.module.css +0 -61
  148. package/src/components/DatePicker/DatePicker.tsx +0 -103
  149. package/src/components/DatePicker/__tests__/DatePicker.test.tsx +0 -89
  150. package/src/components/DeviceOnlyGate/DeviceOnlyGate.tsx +0 -58
  151. package/src/components/DeviceOnlyGate/__tests__/DeviceOnlyGate.test.tsx +0 -45
  152. package/src/components/DeviceStorageKeyGate/DeviceStorageKeyGate.tsx +0 -100
  153. package/src/components/DeviceStorageKeyGate/__tests__/DeviceStorageKeyGate.test.tsx +0 -119
  154. package/src/components/Dialog/Dialog.module.css +0 -335
  155. package/src/components/Dialog/Dialog.stories.tsx +0 -324
  156. package/src/components/Dialog/Dialog.tsx +0 -254
  157. package/src/components/Dialog/__tests__/Dialog.test.tsx +0 -318
  158. package/src/components/DragHandleRow/DragHandleRow.module.css +0 -57
  159. package/src/components/DragHandleRow/DragHandleRow.tsx +0 -42
  160. package/src/components/Drawer/Drawer.module.css +0 -121
  161. package/src/components/Drawer/Drawer.stories.tsx +0 -132
  162. package/src/components/Drawer/Drawer.tsx +0 -175
  163. package/src/components/Drawer/__tests__/Drawer.test.tsx +0 -226
  164. package/src/components/EmptyState/EmptyState.module.css +0 -27
  165. package/src/components/EmptyState/EmptyState.tsx +0 -27
  166. package/src/components/FileDropzone/FileDropzone.module.css +0 -63
  167. package/src/components/FileDropzone/FileDropzone.tsx +0 -109
  168. package/src/components/FileDropzone/__tests__/FileDropzone.test.tsx +0 -67
  169. package/src/components/FormField/FormField.module.css +0 -33
  170. package/src/components/FormField/FormField.tsx +0 -78
  171. package/src/components/FormField/__tests__/FormField.test.tsx +0 -83
  172. package/src/components/GripIcon/GripIcon.tsx +0 -27
  173. package/src/components/Header/Header.module.css +0 -62
  174. package/src/components/Header/Header.stories.tsx +0 -452
  175. package/src/components/Header/Header.tsx +0 -102
  176. package/src/components/Header/__tests__/Header.test.tsx +0 -104
  177. package/src/components/HeaderFooterLayout/HeaderFooterLayout.module.css +0 -21
  178. package/src/components/HeaderFooterLayout/HeaderFooterLayout.stories.tsx +0 -111
  179. package/src/components/HeaderFooterLayout/HeaderFooterLayout.tsx +0 -54
  180. package/src/components/HeaderFooterLayout/__tests__/HeaderFooterLayout.test.tsx +0 -58
  181. package/src/components/HoverCard/HoverCard.module.css +0 -3
  182. package/src/components/HoverCard/HoverCard.stories.tsx +0 -66
  183. package/src/components/HoverCard/HoverCard.tsx +0 -111
  184. package/src/components/HoverCard/__tests__/HoverCard.test.tsx +0 -99
  185. package/src/components/Icon/Icon.module.css +0 -27
  186. package/src/components/Icon/Icon.stories.tsx +0 -95
  187. package/src/components/Icon/Icon.tsx +0 -43
  188. package/src/components/Icon/__tests__/Icon.test.tsx +0 -40
  189. package/src/components/Icon/icons/activity.tsx +0 -20
  190. package/src/components/Icon/icons/alert-triangle.tsx +0 -22
  191. package/src/components/Icon/icons/apple.tsx +0 -21
  192. package/src/components/Icon/icons/arrow-left-right.tsx +0 -23
  193. package/src/components/Icon/icons/banana.tsx +0 -21
  194. package/src/components/Icon/icons/beef.tsx +0 -22
  195. package/src/components/Icon/icons/beer.tsx +0 -24
  196. package/src/components/Icon/icons/bell.tsx +0 -21
  197. package/src/components/Icon/icons/bold.tsx +0 -20
  198. package/src/components/Icon/icons/calendar.tsx +0 -23
  199. package/src/components/Icon/icons/candy.tsx +0 -24
  200. package/src/components/Icon/icons/carrot.tsx +0 -22
  201. package/src/components/Icon/icons/check.tsx +0 -20
  202. package/src/components/Icon/icons/chevron-down.tsx +0 -20
  203. package/src/components/Icon/icons/chevron-left.tsx +0 -20
  204. package/src/components/Icon/icons/chevron-right.tsx +0 -20
  205. package/src/components/Icon/icons/chevron-up.tsx +0 -20
  206. package/src/components/Icon/icons/circle-check.tsx +0 -21
  207. package/src/components/Icon/icons/circle-chevron-left.tsx +0 -21
  208. package/src/components/Icon/icons/circle-x.tsx +0 -22
  209. package/src/components/Icon/icons/code.tsx +0 -21
  210. package/src/components/Icon/icons/coffee.tsx +0 -23
  211. package/src/components/Icon/icons/cookie.tsx +0 -25
  212. package/src/components/Icon/icons/copy.tsx +0 -21
  213. package/src/components/Icon/icons/credit-card.tsx +0 -21
  214. package/src/components/Icon/icons/croissant.tsx +0 -24
  215. package/src/components/Icon/icons/cup-soda.tsx +0 -23
  216. package/src/components/Icon/icons/database.tsx +0 -22
  217. package/src/components/Icon/icons/download.tsx +0 -22
  218. package/src/components/Icon/icons/drumstick.tsx +0 -21
  219. package/src/components/Icon/icons/egg.tsx +0 -20
  220. package/src/components/Icon/icons/ellipsis-vertical.tsx +0 -22
  221. package/src/components/Icon/icons/external-link.tsx +0 -22
  222. package/src/components/Icon/icons/eye-off.tsx +0 -23
  223. package/src/components/Icon/icons/eye.tsx +0 -21
  224. package/src/components/Icon/icons/file-text.tsx +0 -24
  225. package/src/components/Icon/icons/file.tsx +0 -21
  226. package/src/components/Icon/icons/fish.tsx +0 -25
  227. package/src/components/Icon/icons/folder-closed.tsx +0 -21
  228. package/src/components/Icon/icons/folder-open.tsx +0 -20
  229. package/src/components/Icon/icons/folder.tsx +0 -20
  230. package/src/components/Icon/icons/folders.tsx +0 -21
  231. package/src/components/Icon/icons/grid-2x2.tsx +0 -22
  232. package/src/components/Icon/icons/hat-glasses.tsx +0 -24
  233. package/src/components/Icon/icons/history.tsx +0 -22
  234. package/src/components/Icon/icons/house.tsx +0 -21
  235. package/src/components/Icon/icons/inbox.tsx +0 -21
  236. package/src/components/Icon/icons/index.ts +0 -394
  237. package/src/components/Icon/icons/info.tsx +0 -22
  238. package/src/components/Icon/icons/italic.tsx +0 -22
  239. package/src/components/Icon/icons/layers.tsx +0 -22
  240. package/src/components/Icon/icons/layout-dashboard.tsx +0 -23
  241. package/src/components/Icon/icons/layout-grid.tsx +0 -23
  242. package/src/components/Icon/icons/link.tsx +0 -21
  243. package/src/components/Icon/icons/list-ordered.tsx +0 -25
  244. package/src/components/Icon/icons/list.tsx +0 -25
  245. package/src/components/Icon/icons/lock.tsx +0 -21
  246. package/src/components/Icon/icons/log-out.tsx +0 -22
  247. package/src/components/Icon/icons/luggage.tsx +0 -24
  248. package/src/components/Icon/icons/mail.tsx +0 -21
  249. package/src/components/Icon/icons/map-pin.tsx +0 -21
  250. package/src/components/Icon/icons/menu.tsx +0 -22
  251. package/src/components/Icon/icons/milk.tsx +0 -22
  252. package/src/components/Icon/icons/minus.tsx +0 -20
  253. package/src/components/Icon/icons/package.tsx +0 -23
  254. package/src/components/Icon/icons/paint-bucket.tsx +0 -23
  255. package/src/components/Icon/icons/panel-left.tsx +0 -21
  256. package/src/components/Icon/icons/pencil.tsx +0 -21
  257. package/src/components/Icon/icons/pin.tsx +0 -21
  258. package/src/components/Icon/icons/pizza.tsx +0 -24
  259. package/src/components/Icon/icons/plus.tsx +0 -21
  260. package/src/components/Icon/icons/rectangle-ellipsis.tsx +0 -23
  261. package/src/components/Icon/icons/refresh-cw.tsx +0 -23
  262. package/src/components/Icon/icons/rotate-ccw.tsx +0 -21
  263. package/src/components/Icon/icons/rotate-cw.tsx +0 -21
  264. package/src/components/Icon/icons/route.tsx +0 -22
  265. package/src/components/Icon/icons/salad.tsx +0 -24
  266. package/src/components/Icon/icons/search.tsx +0 -21
  267. package/src/components/Icon/icons/send.tsx +0 -21
  268. package/src/components/Icon/icons/settings.tsx +0 -21
  269. package/src/components/Icon/icons/share-2.tsx +0 -24
  270. package/src/components/Icon/icons/sheet.tsx +0 -24
  271. package/src/components/Icon/icons/shield.tsx +0 -20
  272. package/src/components/Icon/icons/shopping-basket.tsx +0 -26
  273. package/src/components/Icon/icons/sliders-horizontal.tsx +0 -28
  274. package/src/components/Icon/icons/smartphone.tsx +0 -21
  275. package/src/components/Icon/icons/snowflake.tsx +0 -31
  276. package/src/components/Icon/icons/spray-can.tsx +0 -29
  277. package/src/components/Icon/icons/square-kanban.tsx +0 -23
  278. package/src/components/Icon/icons/table.tsx +0 -23
  279. package/src/components/Icon/icons/trash-2.tsx +0 -24
  280. package/src/components/Icon/icons/upload.tsx +0 -22
  281. package/src/components/Icon/icons/user-round-plus.tsx +0 -23
  282. package/src/components/Icon/icons/user.tsx +0 -21
  283. package/src/components/Icon/icons/users.tsx +0 -23
  284. package/src/components/Icon/icons/wine.tsx +0 -23
  285. package/src/components/Icon/icons/x.tsx +0 -21
  286. package/src/components/IconPicker/IconPicker.module.css +0 -63
  287. package/src/components/IconPicker/IconPicker.stories.tsx +0 -84
  288. package/src/components/IconPicker/IconPicker.tsx +0 -90
  289. package/src/components/Input/Input.module.css +0 -52
  290. package/src/components/Input/Input.stories.tsx +0 -86
  291. package/src/components/Input/Input.tsx +0 -20
  292. package/src/components/Input/__tests__/Input.test.tsx +0 -22
  293. package/src/components/Item/Item.module.css +0 -70
  294. package/src/components/Item/Item.stories.tsx +0 -62
  295. package/src/components/Item/Item.tsx +0 -54
  296. package/src/components/Item/__tests__/Item.test.tsx +0 -39
  297. package/src/components/Kbd/Kbd.module.css +0 -14
  298. package/src/components/Kbd/Kbd.stories.tsx +0 -32
  299. package/src/components/Kbd/Kbd.tsx +0 -12
  300. package/src/components/Kbd/__tests__/Kbd.test.tsx +0 -14
  301. package/src/components/Label/Label.module.css +0 -11
  302. package/src/components/Label/Label.stories.tsx +0 -40
  303. package/src/components/Label/Label.tsx +0 -24
  304. package/src/components/Label/__tests__/Label.test.tsx +0 -32
  305. package/src/components/LegalLinks/LegalLinks.module.css +0 -24
  306. package/src/components/LegalLinks/LegalLinks.stories.tsx +0 -22
  307. package/src/components/LegalLinks/LegalLinks.tsx +0 -40
  308. package/src/components/Markdown/Markdown.module.css +0 -73
  309. package/src/components/Markdown/Markdown.stories.tsx +0 -40
  310. package/src/components/Markdown/Markdown.tsx +0 -305
  311. package/src/components/Markdown/__tests__/Markdown.test.tsx +0 -144
  312. package/src/components/Marker/Marker.module.css +0 -33
  313. package/src/components/Marker/Marker.stories.tsx +0 -39
  314. package/src/components/Marker/Marker.tsx +0 -34
  315. package/src/components/Marker/__tests__/Marker.test.tsx +0 -23
  316. package/src/components/MemberMultiSelect/MemberMultiSelect.module.css +0 -27
  317. package/src/components/MemberMultiSelect/MemberMultiSelect.stories.tsx +0 -74
  318. package/src/components/MemberMultiSelect/MemberMultiSelect.tsx +0 -67
  319. package/src/components/Menu/Menu.module.css +0 -90
  320. package/src/components/Menu/Menu.tsx +0 -209
  321. package/src/components/Menu/__tests__/Menu.test.tsx +0 -227
  322. package/src/components/Menubar/Menubar.stories.tsx +0 -52
  323. package/src/components/Menubar/Menubar.tsx +0 -42
  324. package/src/components/Menubar/__tests__/Menubar.test.tsx +0 -45
  325. package/src/components/Message/Message.module.css +0 -99
  326. package/src/components/Message/Message.stories.tsx +0 -79
  327. package/src/components/Message/Message.tsx +0 -41
  328. package/src/components/Message/__tests__/Message.test.tsx +0 -46
  329. package/src/components/MessageScroller/MessageScroller.module.css +0 -65
  330. package/src/components/MessageScroller/MessageScroller.stories.tsx +0 -84
  331. package/src/components/MessageScroller/MessageScroller.tsx +0 -84
  332. package/src/components/MessageScroller/__tests__/MessageScroller.test.tsx +0 -105
  333. package/src/components/MobileAppsDrawer/MobileAppsDrawer.module.css +0 -82
  334. package/src/components/MobileAppsDrawer/MobileAppsDrawer.tsx +0 -78
  335. package/src/components/MobileAppsDrawer/__tests__/MobileAppsDrawer.test.tsx +0 -80
  336. package/src/components/MobileFooter/MobileFooter.module.css +0 -73
  337. package/src/components/MobileFooter/MobileFooter.stories.tsx +0 -47
  338. package/src/components/MobileFooter/MobileFooter.tsx +0 -122
  339. package/src/components/MobileFooter/__tests__/MobileFooter.test.tsx +0 -129
  340. package/src/components/MobileHeader/MobileHeader.module.css +0 -76
  341. package/src/components/MobileHeader/MobileHeader.stories.tsx +0 -57
  342. package/src/components/MobileHeader/MobileHeader.tsx +0 -90
  343. package/src/components/MobileHeader/__tests__/MobileHeader.test.tsx +0 -113
  344. package/src/components/NavList/NavList.module.css +0 -130
  345. package/src/components/NavList/NavList.tsx +0 -136
  346. package/src/components/NavList/__tests__/NavList.test.tsx +0 -109
  347. package/src/components/NavTabs/NavTabs.module.css +0 -50
  348. package/src/components/NavTabs/NavTabs.tsx +0 -61
  349. package/src/components/NavigationMenu/NavigationMenu.module.css +0 -53
  350. package/src/components/NavigationMenu/NavigationMenu.stories.tsx +0 -58
  351. package/src/components/NavigationMenu/NavigationMenu.tsx +0 -125
  352. package/src/components/NavigationMenu/__tests__/NavigationMenu.test.tsx +0 -93
  353. package/src/components/NotificationsPanel/NotificationsPanel.module.css +0 -258
  354. package/src/components/NotificationsPanel/NotificationsPanel.stories.tsx +0 -61
  355. package/src/components/NotificationsPanel/NotificationsPanel.tsx +0 -187
  356. package/src/components/NotificationsPanel/__tests__/NotificationsPanel.test.tsx +0 -78
  357. package/src/components/OfflineGate/OfflineGate.tsx +0 -44
  358. package/src/components/OfflineGate/__tests__/OfflineGate.test.tsx +0 -66
  359. package/src/components/OverlayHeader/OverlayHeader.module.css +0 -98
  360. package/src/components/OverlayHeader/OverlayHeader.tsx +0 -77
  361. package/src/components/OverlayHeader/__tests__/OverlayHeader.test.tsx +0 -69
  362. package/src/components/PageContainer/PageContainer.module.css +0 -82
  363. package/src/components/PageContainer/PageContainer.tsx +0 -64
  364. package/src/components/PageContainer/__tests__/PageContainer.test.tsx +0 -70
  365. package/src/components/PageHeader/PageHeader.module.css +0 -86
  366. package/src/components/PageHeader/PageHeader.tsx +0 -176
  367. package/src/components/PageHeader/__tests__/PageHeader.test.tsx +0 -103
  368. package/src/components/PageLayout/PageLayout.module.css +0 -51
  369. package/src/components/PageLayout/PageLayout.stories.tsx +0 -73
  370. package/src/components/PageLayout/PageLayout.tsx +0 -51
  371. package/src/components/PageLayout/__tests__/PageLayout.test.tsx +0 -34
  372. package/src/components/Pagination/Pagination.module.css +0 -98
  373. package/src/components/Pagination/Pagination.stories.tsx +0 -49
  374. package/src/components/Pagination/Pagination.tsx +0 -87
  375. package/src/components/Pagination/__tests__/Pagination.test.tsx +0 -56
  376. package/src/components/Popover/Popover.module.css +0 -74
  377. package/src/components/Popover/Popover.stories.tsx +0 -357
  378. package/src/components/Popover/Popover.tsx +0 -290
  379. package/src/components/Popover/__tests__/Popover.test.tsx +0 -263
  380. package/src/components/Progress/Progress.module.css +0 -20
  381. package/src/components/Progress/Progress.stories.tsx +0 -40
  382. package/src/components/Progress/Progress.tsx +0 -35
  383. package/src/components/Progress/__tests__/Progress.test.tsx +0 -31
  384. package/src/components/QuantityStepper/QuantityStepper.module.css +0 -67
  385. package/src/components/QuantityStepper/QuantityStepper.stories.tsx +0 -79
  386. package/src/components/QuantityStepper/QuantityStepper.tsx +0 -107
  387. package/src/components/RadioGroup/RadioGroup.module.css +0 -88
  388. package/src/components/RadioGroup/RadioGroup.stories.tsx +0 -69
  389. package/src/components/RadioGroup/RadioGroup.tsx +0 -99
  390. package/src/components/RadioGroup/__tests__/RadioGroup.test.tsx +0 -59
  391. package/src/components/Resizable/Resizable.module.css +0 -70
  392. package/src/components/Resizable/Resizable.stories.tsx +0 -82
  393. package/src/components/Resizable/Resizable.tsx +0 -313
  394. package/src/components/Resizable/__tests__/Resizable.test.tsx +0 -128
  395. package/src/components/ResponsiveSurface/ResponsiveSurface.tsx +0 -24
  396. package/src/components/ResponsiveSurface/__tests__/ResponsiveSurface.test.tsx +0 -73
  397. package/src/components/RootLayout/RootLayout.module.css +0 -12
  398. package/src/components/RootLayout/RootLayout.stories.tsx +0 -125
  399. package/src/components/RootLayout/RootLayout.tsx +0 -185
  400. package/src/components/RootLayout/__tests__/RootLayout.test.tsx +0 -161
  401. package/src/components/ScrollArea/ScrollArea.module.css +0 -20
  402. package/src/components/ScrollArea/ScrollArea.stories.tsx +0 -57
  403. package/src/components/ScrollArea/ScrollArea.tsx +0 -27
  404. package/src/components/ScrollArea/__tests__/ScrollArea.test.tsx +0 -39
  405. package/src/components/SegmentedControl/SegmentedControl.module.css +0 -55
  406. package/src/components/SegmentedControl/SegmentedControl.stories.tsx +0 -118
  407. package/src/components/SegmentedControl/SegmentedControl.tsx +0 -56
  408. package/src/components/SegmentedControl/__tests__/SegmentedControl.test.tsx +0 -63
  409. package/src/components/Select/Select.module.css +0 -82
  410. package/src/components/Select/Select.stories.tsx +0 -115
  411. package/src/components/Select/Select.tsx +0 -48
  412. package/src/components/Select/__tests__/Select.test.tsx +0 -59
  413. package/src/components/Sheet/Sheet.module.css +0 -58
  414. package/src/components/Sheet/Sheet.tsx +0 -109
  415. package/src/components/Sheet/__tests__/Sheet.test.tsx +0 -99
  416. package/src/components/Slider/Slider.module.css +0 -95
  417. package/src/components/Slider/Slider.stories.tsx +0 -64
  418. package/src/components/Slider/Slider.tsx +0 -77
  419. package/src/components/Slider/__tests__/Slider.test.tsx +0 -45
  420. package/src/components/Spinner/Spinner.module.css +0 -39
  421. package/src/components/Spinner/Spinner.tsx +0 -23
  422. package/src/components/SplitMethodSelector/SplitMethodSelector.stories.tsx +0 -33
  423. package/src/components/SplitMethodSelector/SplitMethodSelector.tsx +0 -43
  424. package/src/components/SplitPane/SplitPane.module.css +0 -85
  425. package/src/components/SplitPane/SplitPane.stories.tsx +0 -160
  426. package/src/components/SplitPane/SplitPane.tsx +0 -149
  427. package/src/components/SplitPane/__tests__/SplitPane.test.tsx +0 -51
  428. package/src/components/StatusBadge/StatusBadge.module.css +0 -59
  429. package/src/components/StatusBadge/StatusBadge.stories.tsx +0 -74
  430. package/src/components/StatusBadge/StatusBadge.tsx +0 -65
  431. package/src/components/StepStrip/StepStrip.module.css +0 -53
  432. package/src/components/StepStrip/StepStrip.tsx +0 -74
  433. package/src/components/SuggestionInput/SuggestionInput.module.css +0 -103
  434. package/src/components/SuggestionInput/SuggestionInput.stories.tsx +0 -144
  435. package/src/components/SuggestionInput/SuggestionInput.tsx +0 -207
  436. package/src/components/SwipableMobileCarousel/SwipableMobileCarousel.module.css +0 -64
  437. package/src/components/SwipableMobileCarousel/SwipableMobileCarousel.tsx +0 -243
  438. package/src/components/SwipableMobileCarousel/SwipableMobileCarouselSlide.tsx +0 -35
  439. package/src/components/SwipableMobileCarousel/SwipableMobileCarouselSlideBody.tsx +0 -42
  440. package/src/components/SwipableMobileCarousel/SwipableMobileCarouselSlideFooter.tsx +0 -18
  441. package/src/components/SwipableMobileCarousel/SwipableMobileCarouselSlideHeader.tsx +0 -21
  442. package/src/components/SwipableMobileCarousel/SwipableMobileCarouselSlideParts.module.css +0 -29
  443. package/src/components/SwipableMobileCarousel/__tests__/SwipableMobileCarousel.test.tsx +0 -214
  444. package/src/components/SwipableMobileCarousel/__tests__/SwipableMobileCarouselDevGuard.test.tsx +0 -61
  445. package/src/components/SwipableMobileCarousel/context.ts +0 -13
  446. package/src/components/SwipableMobileCarouselDots/SwipableMobileCarouselDots.module.css +0 -64
  447. package/src/components/SwipableMobileCarouselDots/SwipableMobileCarouselDots.tsx +0 -73
  448. package/src/components/SwipableMobileCarouselDots/__tests__/SwipableMobileCarouselDots.test.tsx +0 -63
  449. package/src/components/SwipeStack/SwipeStack.module.css +0 -101
  450. package/src/components/SwipeStack/SwipeStack.tsx +0 -199
  451. package/src/components/SwipeStack/SwipeStackCard.tsx +0 -22
  452. package/src/components/SwipeStack/__tests__/SwipeStack.test.tsx +0 -169
  453. package/src/components/SystemBanner/SystemBanner.module.css +0 -79
  454. package/src/components/SystemBanner/SystemBanner.stories.tsx +0 -86
  455. package/src/components/SystemBanner/SystemBanner.tsx +0 -50
  456. package/src/components/SystemBanner/__tests__/SystemBanner.test.tsx +0 -50
  457. package/src/components/Table/Table.module.css +0 -45
  458. package/src/components/Table/Table.stories.tsx +0 -125
  459. package/src/components/Table/Table.tsx +0 -51
  460. package/src/components/Table/__tests__/Table.test.tsx +0 -50
  461. package/src/components/Tabs/Tabs.module.css +0 -56
  462. package/src/components/Tabs/Tabs.stories.tsx +0 -100
  463. package/src/components/Tabs/Tabs.tsx +0 -46
  464. package/src/components/Tabs/__tests__/Tabs.test.tsx +0 -45
  465. package/src/components/TagInput/TagInput.module.css +0 -141
  466. package/src/components/TagInput/TagInput.stories.tsx +0 -109
  467. package/src/components/TagInput/TagInput.tsx +0 -174
  468. package/src/components/TagInput/__tests__/TagInput.test.tsx +0 -69
  469. package/src/components/Textarea/Textarea.module.css +0 -47
  470. package/src/components/Textarea/Textarea.tsx +0 -38
  471. package/src/components/Textarea/__tests__/Textarea.test.tsx +0 -51
  472. package/src/components/ThreeColumnLayout/ThreeColumnLayout.module.css +0 -35
  473. package/src/components/ThreeColumnLayout/ThreeColumnLayout.stories.tsx +0 -152
  474. package/src/components/ThreeColumnLayout/ThreeColumnLayout.tsx +0 -87
  475. package/src/components/ThreeColumnLayout/__tests__/ThreeColumnLayout.test.tsx +0 -78
  476. package/src/components/Toast/Toast.module.css +0 -191
  477. package/src/components/Toast/Toast.stories.tsx +0 -191
  478. package/src/components/Toast/Toast.tsx +0 -139
  479. package/src/components/Toggle/Toggle.module.css +0 -57
  480. package/src/components/Toggle/Toggle.stories.tsx +0 -95
  481. package/src/components/Toggle/Toggle.tsx +0 -39
  482. package/src/components/Toggle/__tests__/Toggle.test.tsx +0 -47
  483. package/src/components/Tooltip/Tooltip.module.css +0 -56
  484. package/src/components/Tooltip/Tooltip.tsx +0 -30
  485. package/src/components/Typography/Typography.module.css +0 -47
  486. package/src/components/Typography/Typography.stories.tsx +0 -62
  487. package/src/components/Typography/Typography.tsx +0 -30
  488. package/src/components/Typography/__tests__/Typography.test.tsx +0 -34
  489. package/src/components/UserMenu/UserMenu.module.css +0 -90
  490. package/src/components/UserMenu/UserMenu.stories.tsx +0 -49
  491. package/src/components/UserMenu/UserMenu.tsx +0 -132
  492. package/src/components/UserMenu/__tests__/UserMenu.test.tsx +0 -77
  493. package/src/css-modules.d.ts +0 -4
  494. package/src/hooks/__tests__/useCarouselRouteSync.test.tsx +0 -126
  495. package/src/hooks/__tests__/useDoubleTap.test.tsx +0 -117
  496. package/src/hooks/__tests__/useIsMobile.test.tsx +0 -80
  497. package/src/hooks/__tests__/useIsOffline.test.tsx +0 -53
  498. package/src/hooks/__tests__/useLongPress.test.tsx +0 -158
  499. package/src/hooks/__tests__/useOfflineTileState.test.tsx +0 -69
  500. package/src/hooks/__tests__/usePublishShellChromeHeight.test.tsx +0 -118
  501. package/src/hooks/__tests__/useReorderSensors.test.ts +0 -26
  502. package/src/hooks/__tests__/useResponsiveLayout.test.tsx +0 -87
  503. package/src/hooks/__tests__/useSnapCarousel.test.tsx +0 -175
  504. package/src/hooks/__tests__/useSwipeReveal.test.tsx +0 -110
  505. package/src/hooks/__tests__/useSwipeStack.test.tsx +0 -155
  506. package/src/hooks/index.ts +0 -33
  507. package/src/hooks/useCarouselRouteSync.ts +0 -92
  508. package/src/hooks/useCommitOnEnterOrBlur.ts +0 -39
  509. package/src/hooks/useDoubleTap.ts +0 -91
  510. package/src/hooks/useIsMobile.ts +0 -33
  511. package/src/hooks/useIsOffline.ts +0 -41
  512. package/src/hooks/useLongPress.ts +0 -185
  513. package/src/hooks/useOfflineTileState.ts +0 -45
  514. package/src/hooks/usePublishShellChromeHeight.ts +0 -96
  515. package/src/hooks/useReorderSensors.ts +0 -88
  516. package/src/hooks/useResponsiveLayout.ts +0 -36
  517. package/src/hooks/useSnapCarousel.ts +0 -284
  518. package/src/hooks/useSwipeReveal.ts +0 -107
  519. package/src/hooks/useSwipeStack.ts +0 -235
  520. package/src/index.ts +0 -311
  521. package/src/motion.ts +0 -78
  522. package/src/overlay-shell.ts +0 -159
  523. package/src/scroll-lock.ts +0 -22
  524. package/src/stories/Avatar.stories.tsx +0 -44
  525. package/src/stories/Card.stories.tsx +0 -35
  526. package/src/stories/Checkbox.stories.tsx +0 -45
  527. package/src/stories/DesignSystemOverview.stories.tsx +0 -3793
  528. package/src/stories/DeviceOnlyGate.stories.tsx +0 -35
  529. package/src/stories/DeviceStorageKeyGate.stories.tsx +0 -57
  530. package/src/stories/DragHandleRow.stories.tsx +0 -41
  531. package/src/stories/EmptyState.stories.tsx +0 -33
  532. package/src/stories/FileDropzone.stories.tsx +0 -69
  533. package/src/stories/FormField.stories.tsx +0 -47
  534. package/src/stories/GripIcon.stories.tsx +0 -29
  535. package/src/stories/InteractionHooks.stories.tsx +0 -925
  536. package/src/stories/LayoutSystem.stories.tsx +0 -639
  537. package/src/stories/MenuEntries.stories.tsx +0 -86
  538. package/src/stories/MobilePatterns.stories.tsx +0 -1536
  539. package/src/stories/NavList.stories.tsx +0 -147
  540. package/src/stories/NavTabs.stories.tsx +0 -53
  541. package/src/stories/OfflineGate.stories.tsx +0 -42
  542. package/src/stories/PageContainer.stories.tsx +0 -82
  543. package/src/stories/PageHeader.stories.tsx +0 -95
  544. package/src/stories/ResponsiveSurface.stories.tsx +0 -47
  545. package/src/stories/Spinner.stories.tsx +0 -25
  546. package/src/stories/StepStrip.stories.tsx +0 -76
  547. package/src/stories/SwipableMobileCarousel.stories.tsx +0 -362
  548. package/src/stories/SwipeStack.stories.tsx +0 -200
  549. package/src/stories/Textarea.stories.tsx +0 -63
  550. package/src/stories/TokenGallery.stories.tsx +0 -652
  551. package/src/stories/Tooltip.stories.tsx +0 -59
  552. package/src/tokens/primitives.css +0 -168
  553. package/src/tokens/semantic.css +0 -162
  554. package/src/tokens/theme-presets.css +0 -33
  555. package/src/tokens/theme-presets.ts +0 -72
  556. package/src/tokens.css +0 -5
@@ -1,147 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import { NavList } from '../components/NavList/NavList';
3
-
4
- const overviewGroup = {
5
- id: 'overview',
6
- items: [
7
- { id: 'overview', label: 'Overview', href: '#overview', icon: 'layout-dashboard' as const },
8
- ],
9
- };
10
-
11
- const peopleGroup = {
12
- id: 'people',
13
- label: 'People',
14
- items: [
15
- { id: 'users', label: 'Users', href: '#users', icon: 'users' as const },
16
- { id: 'groups', label: 'Groups', href: '#groups', icon: 'layers' as const },
17
- ],
18
- };
19
-
20
- const appsGroup = {
21
- id: 'apps',
22
- label: 'Apps',
23
- items: [
24
- { id: 'plugins', label: 'Apps', href: '#plugins', icon: 'layout-grid' as const },
25
- { id: 'entitlements', label: 'Entitlements', href: '#entitlements', icon: 'shield' as const },
26
- ],
27
- };
28
-
29
- const meta = {
30
- title: 'Components/NavList',
31
- component: NavList,
32
- parameters: { layout: 'padded' },
33
- args: {
34
- groups: [overviewGroup, peopleGroup, appsGroup],
35
- variant: 'static',
36
- 'aria-label': 'Example sections',
37
- },
38
- } satisfies Meta<typeof NavList>;
39
-
40
- export default meta;
41
- type Story = StoryObj<typeof meta>;
42
-
43
- /** Desktop sidebar shape — active row highlighted, no chevron. */
44
- export const StaticActiveItem: Story = {
45
- args: {
46
- groups: [
47
- {
48
- id: 'overview',
49
- items: [
50
- {
51
- id: 'overview',
52
- label: 'Overview',
53
- href: '#overview',
54
- icon: 'layout-dashboard',
55
- active: true,
56
- },
57
- ],
58
- },
59
- peopleGroup,
60
- appsGroup,
61
- ],
62
- },
63
- };
64
-
65
- /**
66
- * `density="compact"` — shrinks row height/padding for a short, always-
67
- * visible `static` list (e.g. Warden's sidebar "New chat"/"Providers"/
68
- * "Models" rows above its longer session list), where the default's full
69
- * touch-target height reads as needlessly spaced out. Only meaningful with
70
- * `variant="static"`; every other story on this page stays at the default
71
- * density, unaffected.
72
- */
73
- export const CompactDensity: Story = {
74
- args: {
75
- density: 'compact',
76
- groups: [
77
- {
78
- id: 'primary',
79
- items: [
80
- { id: 'new', label: 'New chat', href: '#new', icon: 'plus' },
81
- { id: 'providers', label: 'Providers', href: '#providers', icon: 'link' },
82
- { id: 'models', label: 'Models', href: '#models', icon: 'layers' },
83
- ],
84
- },
85
- ],
86
- },
87
- };
88
-
89
- /** Mobile index shape — every row gets a trailing chevron, no active state; tapping navigates to a full-screen section. */
90
- export const Drilldown: Story = {
91
- args: { variant: 'drilldown' },
92
- parameters: { viewport: { defaultViewport: 'mobile' } },
93
- };
94
-
95
- /** `group.label` omitted entirely renders a flat list with no section headers. */
96
- export const Ungrouped: Story = {
97
- args: {
98
- groups: [
99
- {
100
- id: 'flat',
101
- items: [
102
- { id: 'a', label: 'First', href: '#a', icon: 'house' },
103
- { id: 'b', label: 'Second', href: '#b', icon: 'settings' },
104
- ],
105
- },
106
- ],
107
- },
108
- };
109
-
110
- /** Simulates a consumer swapping in a client-side router link (e.g. Next's `<Link>`) instead of a plain `<a>`. */
111
- export const WithCustomLinkRenderer: Story = {
112
- args: {
113
- groups: [
114
- {
115
- id: 'overview',
116
- items: [
117
- {
118
- id: 'overview',
119
- label: 'Overview',
120
- href: '#overview',
121
- icon: 'layout-dashboard',
122
- active: true,
123
- },
124
- ],
125
- },
126
- peopleGroup,
127
- ],
128
- renderLink: (item, linkProps) => (
129
- <button
130
- type="button"
131
- className={linkProps.className}
132
- aria-current={linkProps['aria-current']}
133
- onClick={() => console.log(`client-side navigate to ${item.href}`)}
134
- style={{
135
- background: 'none',
136
- border: 'none',
137
- cursor: 'pointer',
138
- font: 'inherit',
139
- textAlign: 'left',
140
- width: '100%',
141
- }}
142
- >
143
- {linkProps.children}
144
- </button>
145
- ),
146
- },
147
- };
@@ -1,53 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import { NavTabs } from '../components/NavTabs/NavTabs';
3
-
4
- const items = [
5
- { label: 'Overview', href: '#overview', active: true },
6
- { label: 'Users', href: '#users' },
7
- { label: 'Plugins', href: '#plugins' },
8
- { label: 'Settings', href: '#settings' },
9
- ];
10
-
11
- const meta = {
12
- title: 'Components/NavTabs',
13
- component: NavTabs,
14
- parameters: { layout: 'padded' },
15
- args: { items },
16
- } satisfies Meta<typeof NavTabs>;
17
-
18
- export default meta;
19
- type Story = StoryObj<typeof meta>;
20
-
21
- export const Default: Story = {};
22
-
23
- export const ManyTabs: Story = {
24
- args: {
25
- items: [
26
- { label: 'Profile', href: '#profile', active: true },
27
- { label: 'Security', href: '#security' },
28
- { label: 'Notifications', href: '#notifications' },
29
- { label: 'Preferences', href: '#preferences' },
30
- { label: 'Data & Privacy', href: '#data' },
31
- { label: 'Sessions', href: '#sessions' },
32
- ],
33
- },
34
- parameters: { viewport: { defaultViewport: 'mobile' } },
35
- };
36
-
37
- /** Simulates a consumer swapping in a client-side router link (e.g. Next's
38
- * `<Link replace>` inside an overlay-shell plugin) instead of a plain `<a>`. */
39
- export const WithCustomLinkRenderer: Story = {
40
- args: {
41
- renderLink: (item, linkProps) => (
42
- <button
43
- type="button"
44
- className={linkProps.className}
45
- aria-current={linkProps['aria-current']}
46
- onClick={() => console.log(`client-side navigate to ${item.href}`)}
47
- style={{ background: 'none', border: 'none', cursor: 'pointer', font: 'inherit' }}
48
- >
49
- {linkProps.children}
50
- </button>
51
- ),
52
- },
53
- };
@@ -1,42 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import { OfflineGate } from '../components/OfflineGate/OfflineGate';
3
- import { EmptyState } from '../components/EmptyState/EmptyState';
4
-
5
- const sampleContent = (
6
- <div style={{ padding: 'var(--sv-space-4)' }}>
7
- <p style={{ margin: 0, fontFamily: 'var(--sv-font-family)' }}>
8
- The wrapped content — a user list, a settings form, anything that shouldn&rsquo;t operate
9
- against a stale cached snapshot.
10
- </p>
11
- </div>
12
- );
13
-
14
- const meta = {
15
- title: 'Components/OfflineGate',
16
- component: OfflineGate,
17
- parameters: { layout: 'padded' },
18
- } satisfies Meta<typeof OfflineGate>;
19
-
20
- export default meta;
21
- type Story = StoryObj<typeof meta>;
22
-
23
- // `OfflineGate` reads the live `useIsOffline()` hook, which Storybook can't
24
- // drive via args — toggle DevTools > Network > Offline (or throttling) in this
25
- // preview to see it swap `children` for the blocked state below.
26
- export const Default: Story = {
27
- args: { children: sampleContent, surfaceName: 'Console' },
28
- };
29
-
30
- // The offline state is not independently controllable here (same reason as
31
- // Default), so this renders the exact EmptyState output OfflineGate produces
32
- // when useIsOffline() is true, for visual review without a live toggle.
33
- export const OfflineState: Story = {
34
- args: { children: sampleContent, surfaceName: 'Console' },
35
- render: () => (
36
- <EmptyState
37
- icon="alert-triangle"
38
- heading="You're offline"
39
- description="Console needs a connection — reconnect to continue."
40
- />
41
- ),
42
- };
@@ -1,82 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import { PageContainer } from '../components/PageContainer/PageContainer';
3
-
4
- const demoBlock = (
5
- <div
6
- style={{
7
- background: 'var(--sv-color-surface-raised)',
8
- border: '1px dashed var(--sv-color-border)',
9
- borderRadius: 'var(--sv-radius-md)',
10
- padding: 'var(--sv-space-4)',
11
- }}
12
- >
13
- Page content goes here. This component supplies the page&apos;s gutter and constrains its width
14
- — the runtime shell contributes neither.
15
- </div>
16
- );
17
-
18
- const meta = {
19
- title: 'Components/PageContainer',
20
- component: PageContainer,
21
- parameters: {
22
- layout: 'fullscreen',
23
- docs: {
24
- description: {
25
- component:
26
- 'The wrapper every plugin page renders through. `padding` is the page gutter (the ' +
27
- 'runtime shell no longer applies one) and `maxWidth` constrains content, padding ' +
28
- 'included. Both default to the common case: a full-width page with the standard ' +
29
- '32px/16px gutter.',
30
- },
31
- },
32
- },
33
- args: { children: demoBlock },
34
- } satisfies Meta<typeof PageContainer>;
35
-
36
- export default meta;
37
- type Story = StoryObj<typeof meta>;
38
-
39
- /** Defaults: full width, `md` gutter. */
40
- export const Default: Story = {};
41
-
42
- // ── maxWidth ──────────────────────────────────────────────────────────────
43
-
44
- export const WidthSmall: Story = { args: { maxWidth: 'sm' } };
45
- export const WidthMedium: Story = { args: { maxWidth: 'md' } };
46
- export const WidthLarge: Story = { args: { maxWidth: 'lg' } };
47
-
48
- // ── padding ───────────────────────────────────────────────────────────────
49
-
50
- /** For a page whose ancestor already supplies the gutter, or a full-bleed layout. */
51
- export const PaddingNone: Story = { args: { padding: 'none' } };
52
- export const PaddingSmall: Story = { args: { padding: 'sm' } };
53
- export const PaddingLarge: Story = { args: { padding: 'lg' } };
54
-
55
- /** Every gutter step tightens below 768px. */
56
- export const MobileViewport: Story = {
57
- args: { maxWidth: 'md' },
58
- parameters: { viewport: { defaultViewport: 'mobile1' } },
59
- };
60
-
61
- /**
62
- * An ancestor that already pads its content sets `--sv-page-gutter: 0` and
63
- * PageContainer stands its own gutter down — how `Dialog` keeps an overlay
64
- * plugin from being padded twice when the same page renders inside it.
65
- */
66
- export const GutterSuppressedByAncestor: Story = {
67
- args: { maxWidth: 'md' },
68
- decorators: [
69
- (Story) => (
70
- <div
71
- style={{
72
- // eslint-disable-next-line @typescript-eslint/no-explicit-any -- CSS custom property
73
- ['--sv-page-gutter' as any]: '0px',
74
- border: '1px solid var(--sv-color-border)',
75
- padding: 'var(--sv-space-6)',
76
- }}
77
- >
78
- <Story />
79
- </div>
80
- ),
81
- ],
82
- };
@@ -1,95 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import { PageHeader } from '../components/PageHeader/PageHeader';
3
- import { Button } from '../components/Button/Button';
4
-
5
- const meta = {
6
- title: 'Components/PageHeader',
7
- component: PageHeader,
8
- parameters: {
9
- layout: 'padded',
10
- docs: {
11
- description: {
12
- component:
13
- "A page's title section. Web: title + description on the left, action on the right. Mobile: an optional back button, a single-line title (description drops out), the same action slot, and an optional vertical-ellipsis menu trigger — a compact single row, generalized from Kanban's own hand-rolled MobileBoardHeader. The web/mobile fork is ResponsiveSurface; only one tree is ever mounted.",
14
- },
15
- },
16
- },
17
- } satisfies Meta<typeof PageHeader>;
18
-
19
- export default meta;
20
- type Story = StoryObj<typeof meta>;
21
-
22
- export const Default: Story = {
23
- args: { title: 'Users' },
24
- };
25
-
26
- export const WithDescription: Story = {
27
- args: {
28
- title: 'Users',
29
- description: 'Manage who has access to this instance.',
30
- },
31
- };
32
-
33
- export const WithAction: Story = {
34
- args: {
35
- title: 'Users',
36
- description: 'Manage who has access to this instance.',
37
- action: <Button size="sm">Invite user</Button>,
38
- },
39
- };
40
-
41
- /** A leading icon before the title text, on both breakpoints — e.g. a
42
- * folder-detail page pairing `folder-open` with the folder's own name. */
43
- export const WithIcon: Story = {
44
- args: {
45
- title: 'Handbook',
46
- icon: 'folder-open',
47
- action: <Button size="sm">Share</Button>,
48
- },
49
- };
50
-
51
- /** For use under a shell/plugin that already renders its own `<h1>` — e.g.
52
- * Console's per-page headers sitting below `<h1>Console</h1>`. Visually
53
- * identical to the default story; only the rendered tag changes. */
54
- export const NestedHeadingLevel: Story = {
55
- args: {
56
- title: 'Users',
57
- description: 'Manage who has access to this instance.',
58
- headingLevel: 2,
59
- },
60
- };
61
-
62
- /** Below the mobile breakpoint: description drops out of the compact row
63
- * (generalized from Kanban's own hand-rolled MobileBoardHeader, which has
64
- * no subtitle handling either), action stays — same content, adapts itself
65
- * if it needs to look different at this width. */
66
- export const Mobile: Story = {
67
- parameters: { viewport: { defaultViewport: 'mobile1' } },
68
- args: {
69
- title: 'Users',
70
- description: 'Manage who has access to this instance.',
71
- action: <Button size="sm">Invite user</Button>,
72
- },
73
- };
74
-
75
- /** onBack shows a back button to the left of the title — mobile only, no
76
- * web equivalent. */
77
- export const MobileWithBack: Story = {
78
- parameters: { viewport: { defaultViewport: 'mobile1' } },
79
- args: {
80
- title: 'Sv Wallet',
81
- onBack: () => undefined,
82
- },
83
- };
84
-
85
- /** onMenuClick shows a vertical-ellipsis trigger at the far right — mobile
86
- * only, no web equivalent. Typically opens a drawer/menu; PageHeader has no
87
- * opinion on what it contains. */
88
- export const MobileWithMenu: Story = {
89
- parameters: { viewport: { defaultViewport: 'mobile1' } },
90
- args: {
91
- title: 'Sovereign Platform',
92
- onBack: () => undefined,
93
- onMenuClick: () => undefined,
94
- },
95
- };
@@ -1,47 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import { ResponsiveSurface } from '../components/ResponsiveSurface/ResponsiveSurface';
3
-
4
- function demoTree(label: string) {
5
- return (
6
- <div
7
- style={{
8
- padding: 'var(--sv-space-6)',
9
- textAlign: 'center',
10
- fontFamily: 'var(--sv-font-family)',
11
- fontSize: 'var(--sv-font-size-sm)',
12
- color: 'var(--sv-color-text-primary)',
13
- border: '1px dashed var(--sv-color-border)',
14
- borderRadius: 'var(--sv-radius-md)',
15
- }}
16
- >
17
- {label}
18
- </div>
19
- );
20
- }
21
-
22
- const meta = {
23
- title: 'Components/ResponsiveSurface',
24
- component: ResponsiveSurface,
25
- parameters: {
26
- layout: 'padded',
27
- docs: {
28
- description: {
29
- component:
30
- 'Renders an entirely different component tree below a breakpoint, not a CSS squeeze of the same one — only the active side is ever mounted. See also the useResponsiveLayout hook for non-JSX values.',
31
- },
32
- },
33
- },
34
- args: {
35
- web: demoTree('Web tree — e.g. a three-column layout'),
36
- mobile: demoTree('Mobile tree — an entirely different component'),
37
- },
38
- } satisfies Meta<typeof ResponsiveSurface>;
39
-
40
- export default meta;
41
- type Story = StoryObj<typeof meta>;
42
-
43
- export const Default: Story = {};
44
-
45
- export const MobileViewport: Story = {
46
- parameters: { viewport: { defaultViewport: 'mobile1' } },
47
- };
@@ -1,25 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import { Spinner } from '../components/Spinner/Spinner';
3
-
4
- const meta = {
5
- title: 'Components/Spinner',
6
- component: Spinner,
7
- parameters: { layout: 'centered' },
8
- } satisfies Meta<typeof Spinner>;
9
-
10
- export default meta;
11
- type Story = StoryObj<typeof meta>;
12
-
13
- export const Default: Story = {};
14
- export const Small: Story = { args: { size: 'sm' } };
15
- export const Large: Story = { args: { size: 'lg' } };
16
-
17
- export const AllSizes: Story = {
18
- render: () => (
19
- <div style={{ display: 'flex', alignItems: 'center', gap: 16 }}>
20
- <Spinner size="sm" />
21
- <Spinner size="md" />
22
- <Spinner size="lg" />
23
- </div>
24
- ),
25
- };
@@ -1,76 +0,0 @@
1
- import { useState } from 'react';
2
- import type { Meta, StoryObj } from '@storybook/react-vite';
3
- import { StepStrip, type StepStripItem } from '../components/StepStrip/StepStrip';
4
-
5
- const meta: Meta<typeof StepStrip> = {
6
- title: 'Components/StepStrip',
7
- component: StepStrip,
8
- parameters: { layout: 'padded' },
9
- tags: ['autodocs'],
10
- };
11
-
12
- export default meta;
13
- type Story = StoryObj<typeof StepStrip>;
14
-
15
- interface Stop extends StepStripItem {
16
- label: string;
17
- sublabel: string;
18
- }
19
-
20
- const STOPS: Stop[] = [
21
- { id: 'lisbon', label: 'Lisbon', sublabel: 'Aug 26 – 28 · 2 days' },
22
- { id: 'porto', label: 'Porto', sublabel: 'Aug 28 – 30 · 2 days' },
23
- ];
24
-
25
- const chipStyle = (isActive: boolean) => ({
26
- boxSizing: 'border-box' as const,
27
- minWidth: '160px',
28
- padding: 'var(--sv-space-3) var(--sv-space-4)',
29
- borderRadius: 'var(--sv-radius-lg)',
30
- border: `1px solid ${isActive ? 'var(--sv-color-text-primary)' : 'var(--sv-color-border)'}`,
31
- background: isActive ? 'var(--sv-color-text-primary)' : 'var(--sv-color-surface-raised)',
32
- color: isActive ? 'var(--sv-color-surface)' : 'var(--sv-color-text-primary)',
33
- cursor: 'pointer',
34
- textAlign: 'left' as const,
35
- });
36
-
37
- function StopStripDemo() {
38
- const [activeId, setActiveId] = useState<string>('lisbon');
39
-
40
- return (
41
- <StepStrip
42
- items={STOPS}
43
- activeId={activeId}
44
- aria-label="Trip stops"
45
- onAdd={() => alert('Add a stop')}
46
- addLabel="Add a stop"
47
- renderItem={(stop, { isActive }) => (
48
- <button type="button" style={chipStyle(isActive)} onClick={() => setActiveId(stop.id)}>
49
- <div style={{ fontWeight: 600, fontSize: 'var(--sv-font-size-sm)' }}>{stop.label}</div>
50
- <div style={{ fontSize: 'var(--sv-font-size-xs)', opacity: 0.8 }}>{stop.sublabel}</div>
51
- </button>
52
- )}
53
- />
54
- );
55
- }
56
-
57
- export const Default: Story = {
58
- render: () => <StopStripDemo />,
59
- name: 'Stop strip (click to select, trailing add chip)',
60
- };
61
-
62
- export const NoAddAffordance: Story = {
63
- render: () => (
64
- <StepStrip
65
- items={STOPS}
66
- activeId="porto"
67
- aria-label="Trip stops"
68
- renderItem={(stop, { isActive }) => (
69
- <div style={chipStyle(isActive)}>
70
- <div style={{ fontWeight: 600, fontSize: 'var(--sv-font-size-sm)' }}>{stop.label}</div>
71
- <div style={{ fontSize: 'var(--sv-font-size-xs)', opacity: 0.8 }}>{stop.sublabel}</div>
72
- </div>
73
- )}
74
- />
75
- ),
76
- };