@lateralus-ai/shipping-ui 1.4.16 → 2.0.0-dev.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 (438) hide show
  1. package/README.md +70 -53
  2. package/dist/components/Checkbox.d.ts +9 -0
  3. package/dist/components/Chip.d.ts +15 -0
  4. package/dist/components/EmptyState.d.ts +10 -0
  5. package/dist/components/Entry.d.ts +13 -0
  6. package/dist/components/Header.d.ts +9 -0
  7. package/dist/components/Input.d.ts +11 -0
  8. package/dist/components/InputType.d.ts +10 -0
  9. package/dist/components/ModalPanel.d.ts +7 -7
  10. package/dist/components/PdfViewer/ImageViewer.d.ts +2 -2
  11. package/dist/components/PdfViewer/PdfViewer.d.ts +2 -2
  12. package/dist/components/ReportInput.d.ts +10 -0
  13. package/dist/components/Tab.d.ts +7 -0
  14. package/dist/components/Tabs.d.ts +11 -12
  15. package/dist/components/index.d.ts +11 -4
  16. package/dist/domain/Filters/FilterPill.d.ts +6 -0
  17. package/dist/domain/Filters/FilteredPill.d.ts +8 -0
  18. package/dist/domain/Filters/FiltersBar.d.ts +12 -0
  19. package/dist/domain/Filters/index.d.ts +3 -0
  20. package/dist/domain/Forms/FormCard.d.ts +12 -0
  21. package/dist/domain/Forms/FormHeader.d.ts +8 -0
  22. package/dist/domain/Forms/ListRow.d.ts +8 -0
  23. package/dist/domain/Forms/RiskMeter.d.ts +8 -0
  24. package/dist/domain/Forms/index.d.ts +4 -0
  25. package/dist/domain/Library/File.d.ts +8 -0
  26. package/dist/domain/Library/Folder.d.ts +8 -0
  27. package/dist/domain/Library/Folders.d.ts +11 -0
  28. package/dist/domain/Library/ListRow.d.ts +8 -0
  29. package/dist/domain/Library/Navigation.d.ts +7 -0
  30. package/dist/domain/Library/index.d.ts +5 -0
  31. package/dist/domain/Report/InfoHeading.d.ts +7 -0
  32. package/dist/domain/Report/InfoRow.d.ts +8 -0
  33. package/dist/domain/Report/Report.d.ts +7 -0
  34. package/dist/domain/Report/SectionHeader.d.ts +10 -0
  35. package/dist/domain/Report/TaskRow.d.ts +11 -0
  36. package/dist/domain/Report/index.d.ts +5 -0
  37. package/dist/domain/Settings/EquipmentRow.d.ts +8 -0
  38. package/dist/domain/Settings/MemberRow.d.ts +11 -0
  39. package/dist/domain/Settings/SettingRow.d.ts +10 -0
  40. package/dist/domain/Settings/index.d.ts +3 -0
  41. package/dist/domain/Ships/ShipRow.d.ts +10 -0
  42. package/dist/domain/Ships/index.d.ts +1 -0
  43. package/dist/domain/Workflows/GroupHeader.d.ts +8 -0
  44. package/dist/domain/Workflows/Importance.d.ts +8 -0
  45. package/dist/domain/Workflows/Progress.d.ts +7 -0
  46. package/dist/domain/Workflows/Question.d.ts +9 -0
  47. package/dist/domain/Workflows/StatusPopover.d.ts +7 -0
  48. package/dist/domain/Workflows/Task.d.ts +9 -0
  49. package/dist/domain/Workflows/TaskHeader.d.ts +9 -0
  50. package/dist/domain/Workflows/WorkflowFilters.d.ts +6 -0
  51. package/dist/domain/Workflows/WorkflowForm.d.ts +8 -0
  52. package/dist/domain/Workflows/WorkflowHeader.d.ts +11 -0
  53. package/dist/domain/Workflows/WorkflowListItem.d.ts +11 -0
  54. package/dist/domain/Workflows/WorkflowProgress.d.ts +6 -0
  55. package/dist/domain/Workflows/WorkflowRow.d.ts +10 -0
  56. package/dist/domain/Workflows/index.d.ts +13 -0
  57. package/dist/domain/index.d.ts +7 -0
  58. package/dist/icons/ArrowIcon.d.ts +8 -0
  59. package/dist/icons/ChevronIcon.d.ts +8 -0
  60. package/dist/icons/Icon.d.ts +96 -0
  61. package/dist/icons/arrow-paths.d.ts +12 -0
  62. package/dist/icons/chevron-paths.d.ts +27 -0
  63. package/dist/icons/createIcon.d.ts +34 -0
  64. package/dist/icons/generated.d.ts +68 -0
  65. package/dist/icons/icon-sizes.d.ts +5 -0
  66. package/dist/icons/icons-data.d.ts +1023 -0
  67. package/dist/icons/index.d.ts +13 -0
  68. package/dist/icons/types.d.ts +10 -0
  69. package/dist/illustrations/AuditPreparation.d.ts +4 -0
  70. package/dist/illustrations/CompletedTasks.d.ts +4 -0
  71. package/dist/illustrations/Creation.d.ts +4 -0
  72. package/dist/illustrations/InternalAudit.d.ts +4 -0
  73. package/dist/illustrations/Invite.d.ts +4 -0
  74. package/dist/illustrations/PortStateControl.d.ts +4 -0
  75. package/dist/illustrations/Processing.d.ts +4 -0
  76. package/dist/illustrations/QuestionsDone.d.ts +4 -0
  77. package/dist/illustrations/RightShipInspection.d.ts +4 -0
  78. package/dist/illustrations/Upload.d.ts +4 -0
  79. package/dist/illustrations/WorkflowCreated.d.ts +4 -0
  80. package/dist/illustrations/Workflows.d.ts +4 -0
  81. package/dist/illustrations/createIllustration.d.ts +11 -0
  82. package/dist/illustrations/index.d.ts +13 -0
  83. package/dist/index.cjs +64 -80
  84. package/dist/index.d.ts +9 -3
  85. package/dist/index.esm.js +10964 -36537
  86. package/dist/patterns/Chat/Attachment.d.ts +6 -0
  87. package/dist/patterns/Chat/ChatEntry.d.ts +10 -0
  88. package/dist/patterns/Chat/ChatHeader.d.ts +7 -0
  89. package/dist/patterns/Chat/ChatInput.d.ts +5 -0
  90. package/dist/patterns/Chat/ChatStatus.d.ts +6 -0
  91. package/dist/patterns/Chat/ChatTile.d.ts +9 -0
  92. package/dist/patterns/Chat/Copilot.d.ts +8 -0
  93. package/dist/patterns/Chat/Draft.d.ts +5 -0
  94. package/dist/patterns/Chat/Greeting.d.ts +7 -0
  95. package/dist/patterns/Chat/Reference.d.ts +6 -0
  96. package/dist/patterns/Chat/Source.d.ts +6 -0
  97. package/dist/patterns/Chat/Sources.d.ts +5 -0
  98. package/dist/patterns/Chat/Suggestion.d.ts +5 -0
  99. package/dist/patterns/Chat/Suggestions.d.ts +4 -0
  100. package/dist/patterns/Chat/index.d.ts +14 -0
  101. package/dist/patterns/Modal/Invitee.d.ts +8 -0
  102. package/dist/patterns/Modal/ModalFooter.d.ts +6 -0
  103. package/dist/patterns/Modal/ModalHeader.d.ts +10 -0
  104. package/dist/patterns/Modal/index.d.ts +3 -0
  105. package/dist/patterns/Search/Pill.d.ts +10 -0
  106. package/dist/patterns/Search/PillInfo.d.ts +8 -0
  107. package/dist/patterns/Search/ResultRow.d.ts +10 -0
  108. package/dist/patterns/Search/SearchModal.d.ts +6 -0
  109. package/dist/patterns/Search/SectionHeader.d.ts +5 -0
  110. package/dist/patterns/Search/index.d.ts +5 -0
  111. package/dist/patterns/Sidebar/Account.d.ts +22 -0
  112. package/dist/patterns/Sidebar/ActivityNavGroup.d.ts +17 -0
  113. package/dist/patterns/Sidebar/CollapsibleNavGroup.d.ts +24 -0
  114. package/dist/patterns/Sidebar/Indicator.d.ts +6 -0
  115. package/dist/patterns/Sidebar/NewChat.d.ts +10 -0
  116. package/dist/patterns/Sidebar/Sidebar.d.ts +13 -0
  117. package/dist/patterns/Sidebar/SidebarAction.d.ts +11 -0
  118. package/dist/patterns/Sidebar/SidebarEntry.d.ts +25 -0
  119. package/dist/patterns/Sidebar/SidebarHeading.d.ts +11 -0
  120. package/dist/patterns/Sidebar/SidebarLink.d.ts +22 -0
  121. package/dist/patterns/Sidebar/SidebarShell.d.ts +11 -0
  122. package/dist/patterns/Sidebar/Switcher.d.ts +8 -0
  123. package/dist/patterns/Sidebar/constants.d.ts +2 -0
  124. package/dist/patterns/Sidebar/figma-assets.d.ts +3 -0
  125. package/dist/patterns/Sidebar/figma-demo-content.d.ts +75 -0
  126. package/dist/patterns/Sidebar/figma-sidebar-nav.d.ts +12 -0
  127. package/dist/patterns/Sidebar/index.d.ts +13 -0
  128. package/dist/patterns/Sidebar/sidebar-styles.d.ts +45 -0
  129. package/dist/patterns/Skeleton/Skeleton.d.ts +6 -0
  130. package/dist/patterns/Skeleton/index.d.ts +1 -0
  131. package/dist/patterns/index.d.ts +5 -0
  132. package/dist/primitives/Avatar.d.ts +10 -0
  133. package/dist/primitives/Badge.d.ts +11 -0
  134. package/dist/primitives/Button.d.ts +13 -0
  135. package/dist/primitives/Callout.d.ts +7 -0
  136. package/dist/primitives/Count.d.ts +5 -0
  137. package/dist/primitives/DropdownMenu.d.ts +15 -0
  138. package/dist/primitives/GroupedAvatars.d.ts +7 -0
  139. package/dist/primitives/IconButton.d.ts +16 -0
  140. package/dist/primitives/Logo.d.ts +8 -0
  141. package/dist/primitives/MenuItem.d.ts +7 -0
  142. package/dist/primitives/Switch.d.ts +7 -0
  143. package/dist/primitives/ThinkingDot.d.ts +4 -0
  144. package/dist/primitives/Tooltip.d.ts +12 -0
  145. package/dist/primitives/index.d.ts +13 -0
  146. package/dist/style.css +1 -1
  147. package/dist/tailwind-theme.d.ts +234 -198
  148. package/dist/tokens/colors.d.ts +148 -0
  149. package/dist/tokens/elevation.d.ts +11 -0
  150. package/dist/tokens/index.d.ts +4 -0
  151. package/dist/tokens/semantic.d.ts +89 -0
  152. package/dist/tokens/typography.d.ts +85 -0
  153. package/package.json +27 -5
  154. package/src/components/Checkbox.tsx +77 -0
  155. package/src/components/Chip.tsx +69 -0
  156. package/src/components/EmptyState.tsx +44 -0
  157. package/src/components/Entry.tsx +64 -0
  158. package/src/components/Header.tsx +39 -0
  159. package/src/components/Input.tsx +69 -0
  160. package/src/components/InputType.tsx +76 -0
  161. package/src/components/ModalPanel.tsx +22 -37
  162. package/src/components/PdfViewer/ImageViewer.tsx +121 -182
  163. package/src/components/PdfViewer/PdfViewer.tsx +103 -155
  164. package/src/components/ReportInput.tsx +65 -0
  165. package/src/components/Tab.tsx +33 -0
  166. package/src/components/Tabs.tsx +43 -38
  167. package/src/components/index.ts +11 -4
  168. package/src/domain/Filters/FilterPill.tsx +25 -0
  169. package/src/domain/Filters/FilteredPill.tsx +39 -0
  170. package/src/domain/Filters/FiltersBar.tsx +76 -0
  171. package/src/domain/Filters/index.ts +3 -0
  172. package/src/domain/Forms/FormCard.tsx +61 -0
  173. package/src/domain/Forms/FormHeader.tsx +34 -0
  174. package/src/domain/Forms/ListRow.tsx +40 -0
  175. package/src/domain/Forms/RiskMeter.tsx +50 -0
  176. package/src/domain/Forms/index.ts +4 -0
  177. package/src/domain/Library/File.tsx +59 -0
  178. package/src/domain/Library/Folder.tsx +55 -0
  179. package/src/domain/Library/Folders.tsx +43 -0
  180. package/src/domain/Library/ListRow.tsx +40 -0
  181. package/src/domain/Library/Navigation.tsx +31 -0
  182. package/src/domain/Library/index.ts +5 -0
  183. package/src/domain/Report/InfoHeading.tsx +25 -0
  184. package/src/domain/Report/InfoRow.tsx +35 -0
  185. package/src/domain/Report/Report.tsx +53 -0
  186. package/src/domain/Report/SectionHeader.tsx +43 -0
  187. package/src/domain/Report/TaskRow.tsx +57 -0
  188. package/src/domain/Report/index.ts +5 -0
  189. package/src/domain/Settings/EquipmentRow.tsx +39 -0
  190. package/src/domain/Settings/MemberRow.tsx +53 -0
  191. package/src/domain/Settings/SettingRow.tsx +66 -0
  192. package/src/domain/Settings/index.ts +3 -0
  193. package/src/domain/Ships/ShipRow.tsx +49 -0
  194. package/src/domain/Ships/index.ts +1 -0
  195. package/src/domain/Workflows/GroupHeader.tsx +48 -0
  196. package/src/domain/Workflows/Importance.tsx +48 -0
  197. package/src/domain/Workflows/Progress.tsx +55 -0
  198. package/src/domain/Workflows/Question.tsx +42 -0
  199. package/src/domain/Workflows/StatusPopover.tsx +53 -0
  200. package/src/domain/Workflows/Task.tsx +46 -0
  201. package/src/domain/Workflows/TaskHeader.tsx +51 -0
  202. package/src/domain/Workflows/WorkflowFilters.tsx +40 -0
  203. package/src/domain/Workflows/WorkflowForm.tsx +40 -0
  204. package/src/domain/Workflows/WorkflowHeader.tsx +62 -0
  205. package/src/domain/Workflows/WorkflowListItem.tsx +45 -0
  206. package/src/domain/Workflows/WorkflowProgress.tsx +36 -0
  207. package/src/domain/Workflows/WorkflowRow.tsx +43 -0
  208. package/src/domain/Workflows/index.ts +13 -0
  209. package/src/domain/index.ts +37 -0
  210. package/src/icons/ArrowIcon.tsx +42 -0
  211. package/src/icons/ChevronIcon.tsx +42 -0
  212. package/src/icons/Icon.tsx +184 -0
  213. package/src/icons/arrow-paths.ts +8 -0
  214. package/src/icons/chevron-paths.ts +17 -0
  215. package/src/icons/createIcon.tsx +128 -0
  216. package/src/icons/generated.tsx +71 -0
  217. package/src/icons/icon-sizes.ts +20 -0
  218. package/src/icons/icons-data.ts +656 -0
  219. package/src/icons/index.ts +25 -0
  220. package/src/icons/types.ts +18 -0
  221. package/src/illustrations/AuditPreparation.tsx +15 -0
  222. package/src/illustrations/CompletedTasks.tsx +16 -0
  223. package/src/illustrations/Creation.tsx +13 -0
  224. package/src/illustrations/InternalAudit.tsx +13 -0
  225. package/src/illustrations/Invite.tsx +13 -0
  226. package/src/illustrations/PortStateControl.tsx +13 -0
  227. package/src/illustrations/Processing.tsx +17 -0
  228. package/src/illustrations/QuestionsDone.tsx +16 -0
  229. package/src/illustrations/RightShipInspection.tsx +18 -0
  230. package/src/illustrations/Upload.tsx +12 -0
  231. package/src/illustrations/WorkflowCreated.tsx +13 -0
  232. package/src/illustrations/Workflows.tsx +13 -0
  233. package/src/illustrations/createIllustration.tsx +30 -0
  234. package/src/illustrations/index.ts +14 -0
  235. package/src/index.ts +49 -3
  236. package/src/patterns/Chat/Attachment.tsx +27 -0
  237. package/src/patterns/Chat/ChatEntry.tsx +41 -0
  238. package/src/patterns/Chat/ChatHeader.tsx +39 -0
  239. package/src/patterns/Chat/ChatInput.tsx +35 -0
  240. package/src/patterns/Chat/ChatStatus.tsx +26 -0
  241. package/src/patterns/Chat/ChatTile.tsx +40 -0
  242. package/src/patterns/Chat/Copilot.tsx +50 -0
  243. package/src/patterns/Chat/Draft.tsx +23 -0
  244. package/src/patterns/Chat/Greeting.tsx +32 -0
  245. package/src/patterns/Chat/Reference.tsx +26 -0
  246. package/src/patterns/Chat/Source.tsx +27 -0
  247. package/src/patterns/Chat/Sources.tsx +23 -0
  248. package/src/patterns/Chat/Suggestion.tsx +23 -0
  249. package/src/patterns/Chat/Suggestions.tsx +21 -0
  250. package/src/patterns/Chat/index.ts +14 -0
  251. package/src/patterns/Modal/Invitee.tsx +44 -0
  252. package/src/patterns/Modal/ModalFooter.tsx +39 -0
  253. package/src/patterns/Modal/ModalHeader.tsx +77 -0
  254. package/src/patterns/Modal/index.ts +3 -0
  255. package/src/patterns/Search/Pill.tsx +44 -0
  256. package/src/patterns/Search/PillInfo.tsx +41 -0
  257. package/src/patterns/Search/ResultRow.tsx +52 -0
  258. package/src/patterns/Search/SearchModal.tsx +88 -0
  259. package/src/patterns/Search/SectionHeader.tsx +20 -0
  260. package/src/patterns/Search/index.ts +5 -0
  261. package/src/patterns/Sidebar/Account.tsx +193 -0
  262. package/src/patterns/Sidebar/ActivityNavGroup.tsx +71 -0
  263. package/src/patterns/Sidebar/CollapsibleNavGroup.tsx +106 -0
  264. package/src/patterns/Sidebar/Indicator.tsx +14 -0
  265. package/src/patterns/Sidebar/NewChat.tsx +71 -0
  266. package/src/patterns/Sidebar/Sidebar.tsx +363 -0
  267. package/src/patterns/Sidebar/SidebarAction.tsx +55 -0
  268. package/src/patterns/Sidebar/SidebarEntry.tsx +129 -0
  269. package/src/patterns/Sidebar/SidebarHeading.tsx +38 -0
  270. package/src/patterns/Sidebar/SidebarLink.tsx +125 -0
  271. package/src/patterns/Sidebar/SidebarShell.tsx +32 -0
  272. package/src/patterns/Sidebar/Switcher.tsx +116 -0
  273. package/src/patterns/Sidebar/assets/account-avatar-24.jpg +0 -0
  274. package/src/patterns/Sidebar/assets/account-avatar.jpg +0 -0
  275. package/src/patterns/Sidebar/assets/indicator-compliance.png +0 -0
  276. package/src/patterns/Sidebar/assets/indicator-technical.png +0 -0
  277. package/src/patterns/Sidebar/assets/logo-compliance-mark.png +5 -0
  278. package/src/patterns/Sidebar/assets/logo-compliance-mask.png +13 -0
  279. package/src/patterns/Sidebar/assets/logo-compliance.svg +17 -0
  280. package/src/patterns/Sidebar/assets/logo-technical-avatar.svg +17 -0
  281. package/src/patterns/Sidebar/assets/logo-technical-mark.png +5 -0
  282. package/src/patterns/Sidebar/assets/logo-technical.svg +16 -0
  283. package/src/patterns/Sidebar/constants.ts +2 -0
  284. package/src/patterns/Sidebar/figma-assets.ts +4 -0
  285. package/src/patterns/Sidebar/figma-demo-content.ts +30 -0
  286. package/src/patterns/Sidebar/figma-sidebar-nav.ts +79 -0
  287. package/src/patterns/Sidebar/index.ts +13 -0
  288. package/src/patterns/Sidebar/sidebar-styles.ts +101 -0
  289. package/src/patterns/Skeleton/Skeleton.tsx +57 -0
  290. package/src/patterns/Skeleton/index.ts +1 -0
  291. package/src/patterns/index.ts +5 -0
  292. package/src/primitives/Avatar.tsx +71 -0
  293. package/src/primitives/Badge.tsx +34 -0
  294. package/src/primitives/Button.tsx +67 -0
  295. package/src/primitives/Callout.tsx +21 -0
  296. package/src/primitives/Count.tsx +18 -0
  297. package/src/primitives/DropdownMenu.tsx +60 -0
  298. package/src/primitives/GroupedAvatars.tsx +36 -0
  299. package/src/primitives/IconButton.tsx +56 -0
  300. package/src/primitives/Logo.tsx +43 -0
  301. package/src/primitives/MenuItem.tsx +35 -0
  302. package/src/primitives/Switch.tsx +38 -0
  303. package/src/primitives/ThinkingDot.tsx +34 -0
  304. package/src/primitives/Tooltip.tsx +42 -0
  305. package/src/primitives/index.ts +13 -0
  306. package/src/stories/_layout/FigmaPage.tsx +94 -0
  307. package/src/stories/_layout/index.ts +8 -0
  308. package/src/stories/canvases/ButtonsCanvas.tsx +57 -0
  309. package/src/stories/canvases/ButtonsMatrixCanvas.tsx +64 -0
  310. package/src/stories/canvases/ChatCanvas.tsx +130 -0
  311. package/src/stories/canvases/ColorTokensCanvas.tsx +16 -0
  312. package/src/stories/canvases/ColorsCanvas.tsx +101 -0
  313. package/src/stories/canvases/ContentCanvas.tsx +88 -0
  314. package/src/stories/canvases/CoreCanvas.tsx +125 -0
  315. package/src/stories/canvases/DomainFormsCanvas.tsx +67 -0
  316. package/src/stories/canvases/FiltersCanvas.tsx +41 -0
  317. package/src/stories/canvases/FormsCanvas.tsx +71 -0
  318. package/src/stories/canvases/IconsCanvas.tsx +99 -0
  319. package/src/stories/canvases/IllustrationsCanvas.tsx +50 -0
  320. package/src/stories/canvases/LibraryCanvas.tsx +67 -0
  321. package/src/stories/canvases/ModalsCanvas.tsx +54 -0
  322. package/src/stories/canvases/RaiseLevelsCanvas.tsx +27 -0
  323. package/src/stories/canvases/ReportCanvas.tsx +33 -0
  324. package/src/stories/canvases/ReportLayoutCanvas.tsx +19 -0
  325. package/src/stories/canvases/SearchCanvas.tsx +65 -0
  326. package/src/stories/canvases/SettingsCanvas.tsx +41 -0
  327. package/src/stories/canvases/ShipsCanvas.tsx +38 -0
  328. package/src/stories/canvases/SidebarCanvas.tsx +147 -0
  329. package/src/stories/canvases/SidebarLayoutsCanvas.tsx +71 -0
  330. package/src/stories/canvases/SidebarPlayground.tsx +35 -0
  331. package/src/stories/canvases/SkeletonsCanvas.tsx +30 -0
  332. package/src/stories/canvases/TypographyCanvas.tsx +53 -0
  333. package/src/stories/canvases/WorkflowsCanvas.tsx +129 -0
  334. package/src/stories/canvases/figma-icons-layout.ts +318 -0
  335. package/src/stories/canvases/figma-sidebar-layout.ts +212 -0
  336. package/src/stories/canvases/figma-sidebar-layouts-layout.ts +84 -0
  337. package/src/stories/canvases/figma-widths.ts +28 -0
  338. package/src/stories/canvases/helpers.tsx +163 -0
  339. package/src/stories/components/Buttons.stories.tsx +12 -0
  340. package/src/stories/components/Chat.stories.tsx +12 -0
  341. package/src/stories/components/Content.stories.tsx +12 -0
  342. package/src/stories/components/Core.stories.tsx +12 -0
  343. package/src/stories/components/DomainForms.stories.tsx +12 -0
  344. package/src/stories/components/Filters.stories.tsx +12 -0
  345. package/src/stories/components/Forms.stories.tsx +12 -0
  346. package/src/stories/components/Icons.stories.tsx +12 -0
  347. package/src/stories/components/Illustrations.stories.tsx +12 -0
  348. package/src/stories/components/Library.stories.tsx +12 -0
  349. package/src/stories/components/Modals.stories.tsx +12 -0
  350. package/src/stories/components/Report.stories.tsx +12 -0
  351. package/src/stories/components/ReportLayout.stories.tsx +12 -0
  352. package/src/stories/components/Search.stories.tsx +12 -0
  353. package/src/stories/components/Settings.stories.tsx +12 -0
  354. package/src/stories/components/Ships.stories.tsx +12 -0
  355. package/src/stories/components/Sidebar.stories.tsx +37 -0
  356. package/src/stories/components/SidebarLayouts.stories.tsx +12 -0
  357. package/src/stories/components/Skeletons.stories.tsx +12 -0
  358. package/src/stories/components/Workflows.stories.tsx +12 -0
  359. package/src/stories/style-guide/Buttons.stories.tsx +12 -0
  360. package/src/stories/style-guide/ColorTokens.stories.tsx +12 -0
  361. package/src/stories/style-guide/Colors.stories.tsx +12 -0
  362. package/src/stories/style-guide/RaiseLevels.stories.tsx +12 -0
  363. package/src/stories/style-guide/Typography.stories.tsx +12 -0
  364. package/src/style.css +169 -2
  365. package/src/tailwind-theme.ts +164 -240
  366. package/src/tokens/colors.ts +82 -0
  367. package/src/tokens/elevation.ts +12 -0
  368. package/src/tokens/index.ts +4 -0
  369. package/src/tokens/semantic.ts +89 -0
  370. package/src/tokens/typography.ts +21 -0
  371. package/dist/components/HelloWorld.d.ts +0 -1
  372. package/dist/components/InputPrompt.d.ts +0 -20
  373. package/dist/components/SearchModal.d.ts +0 -24
  374. package/dist/components/Sidebar/Button.d.ts +0 -7
  375. package/dist/components/Sidebar/Container.d.ts +0 -5
  376. package/dist/components/Sidebar/Item.d.ts +0 -9
  377. package/dist/components/Sidebar/Layout.d.ts +0 -10
  378. package/dist/components/Sidebar/Provider.d.ts +0 -14
  379. package/dist/components/Sidebar/SecondaryItem.d.ts +0 -9
  380. package/dist/components/Sidebar/SideContainer.d.ts +0 -5
  381. package/dist/components/Sidebar/ToggleCollapseButton.d.ts +0 -1
  382. package/dist/components/Sidebar/index.d.ts +0 -8
  383. package/dist/components/icons/CloseSidebarIcon.d.ts +0 -2
  384. package/dist/components/icons/CloseSidebarMidIcon.d.ts +0 -1
  385. package/dist/components/icons/ExpandIcon.d.ts +0 -3
  386. package/dist/components/icons/SendArrowIcon.d.ts +0 -4
  387. package/dist/components/icons/SendArrowIconGreen.d.ts +0 -4
  388. package/dist/components/icons/SettingsIcon.d.ts +0 -3
  389. package/dist/components/icons/XIcon.d.ts +0 -3
  390. package/dist/material-theme.d.ts +0 -442
  391. package/dist/stories/Buttons.d.ts +0 -1
  392. package/dist/stories/Checkbox.d.ts +0 -1
  393. package/dist/stories/ColorPalette.d.ts +0 -1
  394. package/dist/stories/Dropdowns.d.ts +0 -1
  395. package/dist/stories/InputPrompt.d.ts +0 -1
  396. package/dist/stories/SearchModal.d.ts +0 -1
  397. package/dist/stories/Sidebar.d.ts +0 -1
  398. package/dist/stories/Typography.d.ts +0 -1
  399. package/src/components/HelloWorld.tsx +0 -3
  400. package/src/components/InputPrompt.tsx +0 -96
  401. package/src/components/SearchModal.tsx +0 -320
  402. package/src/components/Sidebar/Button.tsx +0 -20
  403. package/src/components/Sidebar/Container.tsx +0 -31
  404. package/src/components/Sidebar/Item.tsx +0 -39
  405. package/src/components/Sidebar/Layout.tsx +0 -32
  406. package/src/components/Sidebar/Provider.tsx +0 -47
  407. package/src/components/Sidebar/SecondaryItem.tsx +0 -39
  408. package/src/components/Sidebar/SideContainer.tsx +0 -31
  409. package/src/components/Sidebar/ToggleCollapseButton.tsx +0 -24
  410. package/src/components/Sidebar/index.ts +0 -8
  411. package/src/components/icons/CloseSidebarIcon.tsx +0 -19
  412. package/src/components/icons/CloseSidebarMidIcon.tsx +0 -19
  413. package/src/components/icons/ExpandIcon.tsx +0 -21
  414. package/src/components/icons/SendArrowIcon.tsx +0 -23
  415. package/src/components/icons/SendArrowIconGreen.tsx +0 -17
  416. package/src/components/icons/SettingsIcon.tsx +0 -33
  417. package/src/components/icons/XIcon.tsx +0 -21
  418. package/src/material-theme.ts +0 -477
  419. package/src/stories/Buttons.stories.tsx +0 -15
  420. package/src/stories/Buttons.tsx +0 -52
  421. package/src/stories/Checkbox.stories.tsx +0 -15
  422. package/src/stories/Checkbox.tsx +0 -56
  423. package/src/stories/ColorPalette.stories.tsx +0 -15
  424. package/src/stories/ColorPalette.tsx +0 -85
  425. package/src/stories/DocumentEditor.stories.tsx +0 -287
  426. package/src/stories/Dropdowns.stories.tsx +0 -15
  427. package/src/stories/Dropdowns.tsx +0 -52
  428. package/src/stories/InputPrompt.stories.tsx +0 -15
  429. package/src/stories/InputPrompt.tsx +0 -63
  430. package/src/stories/ModalHeader.stories.tsx +0 -36
  431. package/src/stories/PDFViewer.stories.tsx +0 -39
  432. package/src/stories/SearchModal.stories.tsx +0 -132
  433. package/src/stories/SearchModal.tsx +0 -82
  434. package/src/stories/Sidebar.stories.tsx +0 -15
  435. package/src/stories/Sidebar.tsx +0 -108
  436. package/src/stories/Tabs.stories.tsx +0 -51
  437. package/src/stories/Typography.stories.tsx +0 -15
  438. package/src/stories/Typography.tsx +0 -110
@@ -0,0 +1,71 @@
1
+ import { ReportIcon } from "../../icons";
2
+ import {
3
+ Checkbox,
4
+ Chip,
5
+ Input,
6
+ InputType,
7
+ ReportInput,
8
+ } from "../../components";
9
+ import {
10
+ FigmaContent,
11
+ FigmaGrid,
12
+ FigmaPage,
13
+ FigmaRow,
14
+ FigmaSection,
15
+ } from "../_layout";
16
+ import { FIGMA_WIDTHS } from "./figma-widths";
17
+
18
+ export const FormsCanvas = () => (
19
+ <FigmaPage title="Forms" width={FIGMA_WIDTHS.forms}>
20
+ <FigmaContent>
21
+ <FigmaSection label="Input">
22
+ <div className="max-w-sm space-y-4">
23
+ <Input label="Vessel name" placeholder="Enter vessel name" />
24
+ <Input label="IMO number" value="9876543" state="edit" />
25
+ <Input label="Email" error="Invalid email address" />
26
+ <Input label="Port" placeholder="Enter port" state="disabled" />
27
+ </div>
28
+ </FigmaSection>
29
+
30
+ <FigmaSection label="Report Input">
31
+ <div className="max-w-sm space-y-4">
32
+ <ReportInput />
33
+ <ReportInput value="Inspection findings summary..." state="edit" />
34
+ </div>
35
+ </FigmaSection>
36
+
37
+ <FigmaSection label="Input Type">
38
+ <FigmaGrid gap={16}>
39
+ <InputType type="text" state="on" />
40
+ <InputType type="text" state="off" />
41
+ <InputType type="binary" state="on" />
42
+ <InputType type="binary" state="off" />
43
+ </FigmaGrid>
44
+ </FigmaSection>
45
+
46
+ <FigmaSection label="Chip">
47
+ <FigmaGrid gap={16}>
48
+ <Chip variant="label" label="Status" />
49
+ <Chip variant="dot" label="Critical" dotColor="red" />
50
+ <Chip variant="icon" label="Report" icon={<ReportIcon size="small" />} />
51
+ <Chip variant="multiple" label="3 members" />
52
+ <Chip
53
+ variant="avatar"
54
+ label="Jordan Lee"
55
+ avatar={{ chief: "initials", initials: "JL" }}
56
+ onRemove={() => {}}
57
+ />
58
+ </FigmaGrid>
59
+ </FigmaSection>
60
+
61
+ <FigmaSection label="Checkbox">
62
+ <FigmaRow label="States">
63
+ <Checkbox label="Accept terms" />
64
+ <Checkbox checked label="Completed" />
65
+ <Checkbox indeterminate label="Partial selection" />
66
+ <Checkbox disabled label="Disabled" />
67
+ </FigmaRow>
68
+ </FigmaSection>
69
+ </FigmaContent>
70
+ </FigmaPage>
71
+ );
@@ -0,0 +1,99 @@
1
+ import type { ComponentType, SVGProps } from "react";
2
+ import { ArrowIcon, ChevronIcon, iconRegistry } from "../../icons";
3
+ import type { IconProps } from "../../icons";
4
+ import { FigmaContent, FigmaPage } from "../_layout";
5
+ import { FIGMA_WIDTHS } from "./figma-widths";
6
+ import {
7
+ FIGMA_ICONS_CONTENT,
8
+ FIGMA_ICON_FRAMES,
9
+ FIGMA_ICONS_GRID_HEIGHT,
10
+ FIGMA_ICONS_GRID_TOP,
11
+ FIGMA_ICON_RENDER_OFFSET,
12
+ type IconFrameSlot,
13
+ } from "./figma-icons-layout";
14
+
15
+ const renderSlot = (slot: IconFrameSlot, key: string) => {
16
+ if (slot.kind === "arrow") {
17
+ return (
18
+ <ArrowIcon
19
+ key={key}
20
+ direction={slot.direction}
21
+ size="large"
22
+ className="block text-display-on-light-primary"
23
+ />
24
+ );
25
+ }
26
+
27
+ if (slot.kind === "chevron") {
28
+ return (
29
+ <ChevronIcon
30
+ key={key}
31
+ direction={slot.direction}
32
+ size="small"
33
+ className="block text-display-on-light-primary"
34
+ />
35
+ );
36
+ }
37
+
38
+ const IconComponent = iconRegistry[slot.name] as ComponentType<
39
+ IconProps & SVGProps<SVGSVGElement>
40
+ >;
41
+
42
+ return (
43
+ <IconComponent
44
+ key={key}
45
+ size={slot.size}
46
+ filled={slot.filled}
47
+ variant={slot.variant}
48
+ className="block text-display-on-light-primary"
49
+ />
50
+ );
51
+ };
52
+
53
+ export const IconsCanvas = () => (
54
+ <FigmaPage title="Icons" width={FIGMA_WIDTHS.icons}>
55
+ <FigmaContent padding={0}>
56
+ <div
57
+ data-figma-icons-grid
58
+ className="relative overflow-hidden"
59
+ style={{
60
+ width: FIGMA_ICONS_CONTENT.width,
61
+ height: FIGMA_ICONS_GRID_HEIGHT,
62
+ }}
63
+ >
64
+ <div
65
+ className="relative"
66
+ style={{
67
+ width: FIGMA_ICONS_CONTENT.width,
68
+ height: FIGMA_ICONS_CONTENT.height,
69
+ marginTop: -FIGMA_ICONS_GRID_TOP,
70
+ transform: `translate(${FIGMA_ICON_RENDER_OFFSET.x}px, ${FIGMA_ICON_RENDER_OFFSET.y}px)`,
71
+ }}
72
+ >
73
+ {FIGMA_ICON_FRAMES.map((frame, frameIndex) => (
74
+ <div
75
+ key={frameIndex}
76
+ className="absolute rounded border border-dashed border-[#9747FF]"
77
+ style={{
78
+ left: frame.x,
79
+ top: frame.y,
80
+ width: frame.width,
81
+ height: frame.height,
82
+ }}
83
+ >
84
+ {frame.slots.map((slot, slotIndex) => (
85
+ <div
86
+ key={slotIndex}
87
+ className="absolute"
88
+ style={{ left: slot.x, top: slot.y }}
89
+ >
90
+ {renderSlot(slot, `${frameIndex}-${slotIndex}`)}
91
+ </div>
92
+ ))}
93
+ </div>
94
+ ))}
95
+ </div>
96
+ </div>
97
+ </FigmaContent>
98
+ </FigmaPage>
99
+ );
@@ -0,0 +1,50 @@
1
+ import {
2
+ AuditPreparationIllustration,
3
+ CompletedTasksIllustration,
4
+ CreationIllustration,
5
+ InternalAuditIllustration,
6
+ InviteIllustration,
7
+ PortStateControlIllustration,
8
+ ProcessingIllustration,
9
+ QuestionsDoneIllustration,
10
+ RightShipInspectionIllustration,
11
+ UploadIllustration,
12
+ WorkflowCreatedIllustration,
13
+ WorkflowsIllustration,
14
+ } from "../../illustrations";
15
+ import {
16
+ FigmaContent,
17
+ FigmaGrid,
18
+ FigmaPage,
19
+ FigmaVariant,
20
+ } from "../_layout";
21
+ import { FIGMA_WIDTHS } from "./figma-widths";
22
+
23
+ const illustrations = [
24
+ { label: "Workflows", Component: WorkflowsIllustration },
25
+ { label: "Upload", Component: UploadIllustration },
26
+ { label: "Processing", Component: ProcessingIllustration },
27
+ { label: "Invite", Component: InviteIllustration },
28
+ { label: "Creation", Component: CreationIllustration },
29
+ { label: "Completed Tasks", Component: CompletedTasksIllustration },
30
+ { label: "Workflow Created", Component: WorkflowCreatedIllustration },
31
+ { label: "Audit Preparation", Component: AuditPreparationIllustration },
32
+ { label: "Port State Control", Component: PortStateControlIllustration },
33
+ { label: "RightShip Inspection", Component: RightShipInspectionIllustration },
34
+ { label: "Internal Audit", Component: InternalAuditIllustration },
35
+ { label: "Questions Done", Component: QuestionsDoneIllustration },
36
+ ] as const;
37
+
38
+ export const IllustrationsCanvas = () => (
39
+ <FigmaPage title="Illustrations" width={FIGMA_WIDTHS.illustrations}>
40
+ <FigmaContent>
41
+ <FigmaGrid gap={32}>
42
+ {illustrations.map(({ label, Component }) => (
43
+ <FigmaVariant key={label} label={label}>
44
+ <Component className="h-32 w-40" />
45
+ </FigmaVariant>
46
+ ))}
47
+ </FigmaGrid>
48
+ </FigmaContent>
49
+ </FigmaPage>
50
+ );
@@ -0,0 +1,67 @@
1
+ import {
2
+ File,
3
+ Folder,
4
+ Folders,
5
+ ListRow as LibraryListRow,
6
+ Navigation,
7
+ } from "../../domain/Library";
8
+ import {
9
+ FigmaContent,
10
+ FigmaGrid,
11
+ FigmaPage,
12
+ FigmaSection,
13
+ FigmaVariant,
14
+ } from "../_layout";
15
+ import { FIGMA_WIDTHS } from "./figma-widths";
16
+
17
+ export const LibraryCanvas = () => (
18
+ <FigmaPage title="Library" width={FIGMA_WIDTHS.library}>
19
+ <FigmaContent>
20
+ <FigmaSection label="Folder">
21
+ <FigmaGrid gap={16}>
22
+ <Folder />
23
+ <Folder name="Crew documents" fileCount={12} state="selected" />
24
+ <Folder name="Certificates" fileCount={5} state="hover" />
25
+ </FigmaGrid>
26
+ </FigmaSection>
27
+
28
+ <FigmaSection label="File">
29
+ <FigmaGrid gap={16}>
30
+ <File />
31
+ <File state="uploading" />
32
+ <File state="waiting" />
33
+ <File state="uploaded" name="Safety certificate.pdf" />
34
+ </FigmaGrid>
35
+ </FigmaSection>
36
+
37
+ <FigmaSection label="Navigation">
38
+ <div className="max-w-xs space-y-2">
39
+ <Navigation />
40
+ <Navigation label="Certificates" nested="on" />
41
+ </div>
42
+ </FigmaSection>
43
+
44
+ <FigmaSection label="Folders">
45
+ <FigmaGrid gap={24}>
46
+ <FigmaVariant label="Expanded">
47
+ <div className="w-64">
48
+ <Folders />
49
+ </div>
50
+ </FigmaVariant>
51
+ <FigmaVariant label="Collapsed">
52
+ <div className="w-64">
53
+ <Folders layout="collapsed" />
54
+ </div>
55
+ </FigmaVariant>
56
+ </FigmaGrid>
57
+ </FigmaSection>
58
+
59
+ <FigmaSection label="List Row">
60
+ <div className="max-w-xl space-y-2">
61
+ <LibraryListRow />
62
+ <LibraryListRow name="Safety certificate.pdf" updatedAt="Updated today" state="hover" />
63
+ </div>
64
+ </FigmaSection>
65
+ </FigmaContent>
66
+ </FigmaPage>
67
+ );
@@ -0,0 +1,54 @@
1
+ import { Invitee, ModalFooter, ModalHeader } from "../../patterns/Modal";
2
+ import {
3
+ FigmaContent,
4
+ FigmaGrid,
5
+ FigmaPage,
6
+ FigmaSection,
7
+ FigmaVariant,
8
+ } from "../_layout";
9
+ import { FIGMA_WIDTHS } from "./figma-widths";
10
+
11
+ const headerVariants = [
12
+ "issue",
13
+ "thinking",
14
+ "generic",
15
+ "settings",
16
+ "audit",
17
+ "forms",
18
+ ] as const;
19
+
20
+ export const ModalsCanvas = () => (
21
+ <FigmaPage title="Modals" width={FIGMA_WIDTHS.modals}>
22
+ <FigmaContent>
23
+ <FigmaSection label="Modal Header">
24
+ <FigmaGrid gap={24}>
25
+ {headerVariants.map((variant) => (
26
+ <FigmaVariant key={variant} label={variant}>
27
+ <div className="w-96">
28
+ <ModalHeader variant={variant} onClose={() => {}} />
29
+ </div>
30
+ </FigmaVariant>
31
+ ))}
32
+ </FigmaGrid>
33
+ </FigmaSection>
34
+
35
+ <FigmaSection label="Modal Footer">
36
+ <FigmaGrid gap={24}>
37
+ <div className="w-96">
38
+ <ModalFooter />
39
+ </div>
40
+ <div className="w-96">
41
+ <ModalFooter chief="compliance" />
42
+ </div>
43
+ </FigmaGrid>
44
+ </FigmaSection>
45
+
46
+ <FigmaSection label="Invitee">
47
+ <FigmaGrid gap={24}>
48
+ <Invitee />
49
+ <Invitee variant="multiple" names={["Jordan Lee", "Sam Patel", "Alex Morgan"]} />
50
+ </FigmaGrid>
51
+ </FigmaSection>
52
+ </FigmaContent>
53
+ </FigmaPage>
54
+ );
@@ -0,0 +1,27 @@
1
+ import { elevation } from "../../tokens/elevation";
2
+ import { FigmaContent, FigmaGrid, FigmaPage } from "../_layout";
3
+ import { FIGMA_WIDTHS } from "./figma-widths";
4
+
5
+ const raiseLevels = [
6
+ { label: "Raise 1", shadow: elevation.raise1 },
7
+ { label: "Raise 2", shadow: elevation.raise2 },
8
+ { label: "Raise 3", shadow: elevation.raise3 },
9
+ ] as const;
10
+
11
+ export const RaiseLevelsCanvas = () => (
12
+ <FigmaPage title="Raise Levels" width={FIGMA_WIDTHS.raiseLevels}>
13
+ <FigmaContent>
14
+ <FigmaGrid gap={24}>
15
+ {raiseLevels.map((level) => (
16
+ <div
17
+ key={level.label}
18
+ className="flex size-[200px] items-center justify-center rounded-control bg-white text-heading text-display-on-light-primary"
19
+ style={{ boxShadow: level.shadow }}
20
+ >
21
+ {level.label}
22
+ </div>
23
+ ))}
24
+ </FigmaGrid>
25
+ </FigmaContent>
26
+ </FigmaPage>
27
+ );
@@ -0,0 +1,33 @@
1
+ import { SectionHeader, TaskRow } from "../../domain/Report";
2
+ import {
3
+ FigmaContent,
4
+ FigmaPage,
5
+ FigmaSection,
6
+ } from "../_layout";
7
+ import { FIGMA_WIDTHS } from "./figma-widths";
8
+
9
+ export const ReportCanvas = () => (
10
+ <FigmaPage title="Report" width={FIGMA_WIDTHS.report}>
11
+ <FigmaContent>
12
+ <FigmaSection label="Section Header">
13
+ <div className="max-w-xl space-y-4">
14
+ <SectionHeader />
15
+ <SectionHeader title="Outstanding actions" subtitle="2 tasks remaining">
16
+ <TaskRow label="Review fire safety documentation" />
17
+ <TaskRow label="Confirm crew certification records" />
18
+ </SectionHeader>
19
+ <SectionHeader title="Completed" collapsed="on" />
20
+ </div>
21
+ </FigmaSection>
22
+
23
+ <FigmaSection label="Task Row">
24
+ <div className="max-w-xl space-y-2">
25
+ <TaskRow />
26
+ <TaskRow label="Confirm crew certification records" strikethrough="on" />
27
+ <TaskRow variant="add-more" />
28
+ <TaskRow hover="on" />
29
+ </div>
30
+ </FigmaSection>
31
+ </FigmaContent>
32
+ </FigmaPage>
33
+ );
@@ -0,0 +1,19 @@
1
+ import { Report } from "../../domain/Report";
2
+ import {
3
+ FigmaContent,
4
+ FigmaPage,
5
+ FigmaSection,
6
+ } from "../_layout";
7
+ import { FIGMA_WIDTHS } from "./figma-widths";
8
+
9
+ export const ReportLayoutCanvas = () => (
10
+ <FigmaPage title="Report Layout" width={FIGMA_WIDTHS.reportLayout}>
11
+ <FigmaContent>
12
+ <FigmaSection label="Report">
13
+ <div className="max-w-3xl">
14
+ <Report title="Internal Audit Report" />
15
+ </div>
16
+ </FigmaSection>
17
+ </FigmaContent>
18
+ </FigmaPage>
19
+ );
@@ -0,0 +1,65 @@
1
+ import { Pill, PillInfo, ResultRow, SearchModal, SectionHeader } from "../../patterns/Search";
2
+ import {
3
+ FigmaContent,
4
+ FigmaGrid,
5
+ FigmaPage,
6
+ FigmaSection,
7
+ FigmaVariant,
8
+ } from "../_layout";
9
+ import { FIGMA_WIDTHS } from "./figma-widths";
10
+
11
+ export const SearchCanvas = () => (
12
+ <FigmaPage title="Search" width={FIGMA_WIDTHS.search}>
13
+ <FigmaContent>
14
+ <FigmaSection label="Pill">
15
+ <FigmaGrid gap={16}>
16
+ <Pill>All</Pill>
17
+ <Pill state="active">Reports</Pill>
18
+ <Pill size="small">Issues</Pill>
19
+ <Pill size="small" state="active">Chats</Pill>
20
+ </FigmaGrid>
21
+ </FigmaSection>
22
+
23
+ <FigmaSection label="Pill Info">
24
+ <FigmaGrid gap={16}>
25
+ <PillInfo />
26
+ <PillInfo type="completed" />
27
+ </FigmaGrid>
28
+ </FigmaSection>
29
+
30
+ <FigmaSection label="Result Row">
31
+ <div className="max-w-xl space-y-2">
32
+ <ResultRow />
33
+ <ResultRow variant="chat" title="Port state control discussion" subtitle="2 days ago" />
34
+ <ResultRow variant="issue" title="Critical valve malfunction" subtitle="Open · High priority" />
35
+ </div>
36
+ </FigmaSection>
37
+
38
+ <FigmaSection label="Section Header">
39
+ <div className="max-w-xl">
40
+ <SectionHeader label="Reports" />
41
+ </div>
42
+ </FigmaSection>
43
+
44
+ <FigmaSection label="Search Modal">
45
+ <FigmaGrid gap={32}>
46
+ <FigmaVariant label="Idle">
47
+ <div className="w-[480px]">
48
+ <SearchModal state="idle" />
49
+ </div>
50
+ </FigmaVariant>
51
+ <FigmaVariant label="Loading">
52
+ <div className="w-[480px]">
53
+ <SearchModal state="loading" />
54
+ </div>
55
+ </FigmaVariant>
56
+ <FigmaVariant label="Results">
57
+ <div className="w-[480px]">
58
+ <SearchModal state="results" />
59
+ </div>
60
+ </FigmaVariant>
61
+ </FigmaGrid>
62
+ </FigmaSection>
63
+ </FigmaContent>
64
+ </FigmaPage>
65
+ );
@@ -0,0 +1,41 @@
1
+ import { EquipmentRow, MemberRow, SettingRow } from "../../domain/Settings";
2
+ import {
3
+ FigmaContent,
4
+ FigmaGrid,
5
+ FigmaPage,
6
+ FigmaSection,
7
+ } from "../_layout";
8
+ import { FIGMA_WIDTHS } from "./figma-widths";
9
+
10
+ export const SettingsCanvas = () => (
11
+ <FigmaPage title="Settings" width={FIGMA_WIDTHS.settings}>
12
+ <FigmaContent>
13
+ <FigmaSection label="Setting Row">
14
+ <div className="max-w-xl space-y-2">
15
+ <SettingRow />
16
+ <SettingRow variant="user" label="Jane Doe" subtitle="Admin" state="selected" />
17
+ <SettingRow state="hover" />
18
+ </div>
19
+ </FigmaSection>
20
+
21
+ <FigmaSection label="Member Row">
22
+ <div className="max-w-xl space-y-2">
23
+ <MemberRow />
24
+ <MemberRow name="Sam Patel" role="Captain" action="button" />
25
+ <MemberRow name="Alex Morgan" role="Chief Engineer" state="hover" />
26
+ </div>
27
+ </FigmaSection>
28
+
29
+ <FigmaSection label="Equipment Row">
30
+ <FigmaGrid gap={16}>
31
+ <div className="w-96">
32
+ <EquipmentRow />
33
+ </div>
34
+ <div className="w-96">
35
+ <EquipmentRow name="Auxiliary engine" type="Wärtsilä 6L20" editable="off" />
36
+ </div>
37
+ </FigmaGrid>
38
+ </FigmaSection>
39
+ </FigmaContent>
40
+ </FigmaPage>
41
+ );
@@ -0,0 +1,38 @@
1
+ import { ShipRow } from "../../domain/Ships";
2
+ import {
3
+ FigmaContent,
4
+ FigmaGrid,
5
+ FigmaPage,
6
+ FigmaSection,
7
+ FigmaVariant,
8
+ } from "../_layout";
9
+ import { FIGMA_WIDTHS } from "./figma-widths";
10
+
11
+ export const ShipsCanvas = () => (
12
+ <FigmaPage title="Ships" width={FIGMA_WIDTHS.ships}>
13
+ <FigmaContent>
14
+ <FigmaSection label="Ship Row">
15
+ <div className="max-w-xl space-y-2">
16
+ <ShipRow />
17
+ <ShipRow name="MV Atlantic Star" chatCount={5} issueCount={2} unreadCount={3} />
18
+ <ShipRow name="MV Pacific Dawn" state="hover" chatCount={1} issueCount={0} />
19
+ </div>
20
+ </FigmaSection>
21
+
22
+ <FigmaSection label="Variants">
23
+ <FigmaGrid gap={24}>
24
+ <FigmaVariant label="Idle">
25
+ <div className="w-80">
26
+ <ShipRow name="MV Nordic Wind" />
27
+ </div>
28
+ </FigmaVariant>
29
+ <FigmaVariant label="Hover">
30
+ <div className="w-80">
31
+ <ShipRow name="MV Nordic Wind" state="hover" />
32
+ </div>
33
+ </FigmaVariant>
34
+ </FigmaGrid>
35
+ </FigmaSection>
36
+ </FigmaContent>
37
+ </FigmaPage>
38
+ );