@lateralus-ai/shipping-ui 1.4.16 → 2.0.0-dev.10

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 (451) 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 +33 -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/Modal.d.ts +36 -0
  10. package/dist/components/ModalPanel.d.ts +7 -7
  11. package/dist/components/PdfViewer/ImageViewer.d.ts +2 -2
  12. package/dist/components/PdfViewer/PdfViewer.d.ts +2 -2
  13. package/dist/components/ReportInput.d.ts +10 -0
  14. package/dist/components/Tab.d.ts +7 -0
  15. package/dist/components/Tabs.d.ts +26 -12
  16. package/dist/components/index.d.ts +12 -4
  17. package/dist/domain/Filters/FilterPill.d.ts +6 -0
  18. package/dist/domain/Filters/FilteredPill.d.ts +8 -0
  19. package/dist/domain/Filters/FiltersBar.d.ts +12 -0
  20. package/dist/domain/Filters/index.d.ts +3 -0
  21. package/dist/domain/Forms/FormCard.d.ts +12 -0
  22. package/dist/domain/Forms/FormHeader.d.ts +8 -0
  23. package/dist/domain/Forms/ListRow.d.ts +8 -0
  24. package/dist/domain/Forms/RiskMeter.d.ts +8 -0
  25. package/dist/domain/Forms/index.d.ts +4 -0
  26. package/dist/domain/Library/File.d.ts +8 -0
  27. package/dist/domain/Library/Folder.d.ts +8 -0
  28. package/dist/domain/Library/Folders.d.ts +11 -0
  29. package/dist/domain/Library/ListRow.d.ts +8 -0
  30. package/dist/domain/Library/Navigation.d.ts +7 -0
  31. package/dist/domain/Library/index.d.ts +5 -0
  32. package/dist/domain/Report/InfoHeading.d.ts +7 -0
  33. package/dist/domain/Report/InfoRow.d.ts +8 -0
  34. package/dist/domain/Report/Report.d.ts +7 -0
  35. package/dist/domain/Report/SectionHeader.d.ts +10 -0
  36. package/dist/domain/Report/TaskRow.d.ts +11 -0
  37. package/dist/domain/Report/index.d.ts +5 -0
  38. package/dist/domain/Settings/EquipmentRow.d.ts +8 -0
  39. package/dist/domain/Settings/MemberRow.d.ts +11 -0
  40. package/dist/domain/Settings/SettingRow.d.ts +10 -0
  41. package/dist/domain/Settings/index.d.ts +3 -0
  42. package/dist/domain/Ships/ShipRow.d.ts +10 -0
  43. package/dist/domain/Ships/index.d.ts +1 -0
  44. package/dist/domain/Workflows/GroupHeader.d.ts +8 -0
  45. package/dist/domain/Workflows/Importance.d.ts +8 -0
  46. package/dist/domain/Workflows/Progress.d.ts +7 -0
  47. package/dist/domain/Workflows/Question.d.ts +9 -0
  48. package/dist/domain/Workflows/StatusPopover.d.ts +7 -0
  49. package/dist/domain/Workflows/Task.d.ts +9 -0
  50. package/dist/domain/Workflows/TaskHeader.d.ts +9 -0
  51. package/dist/domain/Workflows/WorkflowFilters.d.ts +6 -0
  52. package/dist/domain/Workflows/WorkflowForm.d.ts +8 -0
  53. package/dist/domain/Workflows/WorkflowHeader.d.ts +11 -0
  54. package/dist/domain/Workflows/WorkflowListItem.d.ts +11 -0
  55. package/dist/domain/Workflows/WorkflowProgress.d.ts +6 -0
  56. package/dist/domain/Workflows/WorkflowRow.d.ts +10 -0
  57. package/dist/domain/Workflows/index.d.ts +13 -0
  58. package/dist/domain/index.d.ts +7 -0
  59. package/dist/icons/ArrowIcon.d.ts +8 -0
  60. package/dist/icons/ChevronIcon.d.ts +8 -0
  61. package/dist/icons/Icon.d.ts +96 -0
  62. package/dist/icons/arrow-paths.d.ts +12 -0
  63. package/dist/icons/chevron-paths.d.ts +27 -0
  64. package/dist/icons/createIcon.d.ts +34 -0
  65. package/dist/icons/generated.d.ts +68 -0
  66. package/dist/icons/icon-sizes.d.ts +5 -0
  67. package/dist/icons/icons-data.d.ts +1023 -0
  68. package/dist/icons/index.d.ts +13 -0
  69. package/dist/icons/types.d.ts +10 -0
  70. package/dist/illustrations/AuditPreparation.d.ts +4 -0
  71. package/dist/illustrations/CompletedTasks.d.ts +4 -0
  72. package/dist/illustrations/Creation.d.ts +4 -0
  73. package/dist/illustrations/InternalAudit.d.ts +4 -0
  74. package/dist/illustrations/Invite.d.ts +4 -0
  75. package/dist/illustrations/PortStateControl.d.ts +4 -0
  76. package/dist/illustrations/Processing.d.ts +4 -0
  77. package/dist/illustrations/QuestionsDone.d.ts +4 -0
  78. package/dist/illustrations/RightShipInspection.d.ts +4 -0
  79. package/dist/illustrations/Upload.d.ts +4 -0
  80. package/dist/illustrations/WorkflowCreated.d.ts +4 -0
  81. package/dist/illustrations/Workflows.d.ts +4 -0
  82. package/dist/illustrations/createIllustration.d.ts +11 -0
  83. package/dist/illustrations/index.d.ts +13 -0
  84. package/dist/index.cjs +64 -80
  85. package/dist/index.d.ts +9 -3
  86. package/dist/index.esm.js +11535 -36619
  87. package/dist/patterns/Chat/Attachment.d.ts +6 -0
  88. package/dist/patterns/Chat/ChatEntry.d.ts +10 -0
  89. package/dist/patterns/Chat/ChatHeader.d.ts +7 -0
  90. package/dist/patterns/Chat/ChatInput.d.ts +5 -0
  91. package/dist/patterns/Chat/ChatStatus.d.ts +6 -0
  92. package/dist/patterns/Chat/ChatTile.d.ts +9 -0
  93. package/dist/patterns/Chat/Copilot.d.ts +8 -0
  94. package/dist/patterns/Chat/Draft.d.ts +5 -0
  95. package/dist/patterns/Chat/Greeting.d.ts +7 -0
  96. package/dist/patterns/Chat/Reference.d.ts +6 -0
  97. package/dist/patterns/Chat/Source.d.ts +6 -0
  98. package/dist/patterns/Chat/Sources.d.ts +5 -0
  99. package/dist/patterns/Chat/Suggestion.d.ts +5 -0
  100. package/dist/patterns/Chat/Suggestions.d.ts +4 -0
  101. package/dist/patterns/Chat/index.d.ts +14 -0
  102. package/dist/patterns/Modal/Invitee.d.ts +8 -0
  103. package/dist/patterns/Modal/ModalFooter.d.ts +6 -0
  104. package/dist/patterns/Modal/ModalHeader.d.ts +10 -0
  105. package/dist/patterns/Modal/index.d.ts +3 -0
  106. package/dist/patterns/Search/Pill.d.ts +10 -0
  107. package/dist/patterns/Search/PillInfo.d.ts +8 -0
  108. package/dist/patterns/Search/ResultRow.d.ts +19 -0
  109. package/dist/patterns/Search/SearchModal.d.ts +88 -0
  110. package/dist/patterns/Search/SectionHeader.d.ts +5 -0
  111. package/dist/patterns/Search/index.d.ts +5 -0
  112. package/dist/patterns/Sidebar/Account.d.ts +22 -0
  113. package/dist/patterns/Sidebar/ActivityNavGroup.d.ts +17 -0
  114. package/dist/patterns/Sidebar/CollapsibleNavGroup.d.ts +24 -0
  115. package/dist/patterns/Sidebar/Indicator.d.ts +6 -0
  116. package/dist/patterns/Sidebar/NewChat.d.ts +10 -0
  117. package/dist/patterns/Sidebar/Sidebar.d.ts +13 -0
  118. package/dist/patterns/Sidebar/SidebarAction.d.ts +11 -0
  119. package/dist/patterns/Sidebar/SidebarEntry.d.ts +25 -0
  120. package/dist/patterns/Sidebar/SidebarHeading.d.ts +11 -0
  121. package/dist/patterns/Sidebar/SidebarLink.d.ts +22 -0
  122. package/dist/patterns/Sidebar/SidebarShell.d.ts +11 -0
  123. package/dist/patterns/Sidebar/Switcher.d.ts +8 -0
  124. package/dist/patterns/Sidebar/constants.d.ts +2 -0
  125. package/dist/patterns/Sidebar/figma-assets.d.ts +3 -0
  126. package/dist/patterns/Sidebar/figma-demo-content.d.ts +75 -0
  127. package/dist/patterns/Sidebar/figma-sidebar-nav.d.ts +12 -0
  128. package/dist/patterns/Sidebar/index.d.ts +13 -0
  129. package/dist/patterns/Sidebar/sidebar-styles.d.ts +45 -0
  130. package/dist/patterns/Skeleton/Skeleton.d.ts +6 -0
  131. package/dist/patterns/Skeleton/index.d.ts +1 -0
  132. package/dist/patterns/index.d.ts +5 -0
  133. package/dist/primitives/Avatar.d.ts +10 -0
  134. package/dist/primitives/Badge.d.ts +14 -0
  135. package/dist/primitives/Button.d.ts +22 -0
  136. package/dist/primitives/Callout.d.ts +7 -0
  137. package/dist/primitives/Count.d.ts +5 -0
  138. package/dist/primitives/DropdownMenu.d.ts +15 -0
  139. package/dist/primitives/GroupedAvatars.d.ts +7 -0
  140. package/dist/primitives/IconButton.d.ts +16 -0
  141. package/dist/primitives/Logo.d.ts +8 -0
  142. package/dist/primitives/MenuItem.d.ts +7 -0
  143. package/dist/primitives/Switch.d.ts +7 -0
  144. package/dist/primitives/ThinkingDot.d.ts +4 -0
  145. package/dist/primitives/Tooltip.d.ts +12 -0
  146. package/dist/primitives/button-styles.d.ts +4 -0
  147. package/dist/primitives/index.d.ts +15 -0
  148. package/dist/style.css +1 -1
  149. package/dist/tailwind-theme.d.ts +234 -198
  150. package/dist/theme-entry-BUK3MJUJ.mjs +261 -0
  151. package/dist/theme-entry-ygTpGaNC.js +1 -0
  152. package/dist/theme-entry.d.ts +2 -0
  153. package/dist/theme.cjs +1 -0
  154. package/dist/theme.d.ts +2 -0
  155. package/dist/theme.esm.js +5 -0
  156. package/dist/tokens/colors.d.ts +148 -0
  157. package/dist/tokens/elevation.d.ts +11 -0
  158. package/dist/tokens/index.d.ts +4 -0
  159. package/dist/tokens/semantic.d.ts +89 -0
  160. package/dist/tokens/typography.d.ts +85 -0
  161. package/package.json +36 -7
  162. package/src/components/Checkbox.tsx +77 -0
  163. package/src/components/Chip.tsx +69 -0
  164. package/src/components/EmptyState.tsx +44 -0
  165. package/src/components/Entry.tsx +138 -0
  166. package/src/components/Header.tsx +39 -0
  167. package/src/components/Input.tsx +69 -0
  168. package/src/components/InputType.tsx +76 -0
  169. package/src/components/Modal.tsx +141 -0
  170. package/src/components/ModalPanel.tsx +22 -37
  171. package/src/components/PdfViewer/ImageViewer.tsx +121 -182
  172. package/src/components/PdfViewer/PdfViewer.tsx +103 -155
  173. package/src/components/ReportInput.tsx +65 -0
  174. package/src/components/Tab.tsx +33 -0
  175. package/src/components/Tabs.tsx +146 -43
  176. package/src/components/index.ts +43 -6
  177. package/src/domain/Filters/FilterPill.tsx +25 -0
  178. package/src/domain/Filters/FilteredPill.tsx +39 -0
  179. package/src/domain/Filters/FiltersBar.tsx +76 -0
  180. package/src/domain/Filters/index.ts +3 -0
  181. package/src/domain/Forms/FormCard.tsx +61 -0
  182. package/src/domain/Forms/FormHeader.tsx +34 -0
  183. package/src/domain/Forms/ListRow.tsx +40 -0
  184. package/src/domain/Forms/RiskMeter.tsx +50 -0
  185. package/src/domain/Forms/index.ts +4 -0
  186. package/src/domain/Library/File.tsx +59 -0
  187. package/src/domain/Library/Folder.tsx +55 -0
  188. package/src/domain/Library/Folders.tsx +43 -0
  189. package/src/domain/Library/ListRow.tsx +40 -0
  190. package/src/domain/Library/Navigation.tsx +31 -0
  191. package/src/domain/Library/index.ts +5 -0
  192. package/src/domain/Report/InfoHeading.tsx +25 -0
  193. package/src/domain/Report/InfoRow.tsx +35 -0
  194. package/src/domain/Report/Report.tsx +53 -0
  195. package/src/domain/Report/SectionHeader.tsx +43 -0
  196. package/src/domain/Report/TaskRow.tsx +57 -0
  197. package/src/domain/Report/index.ts +5 -0
  198. package/src/domain/Settings/EquipmentRow.tsx +39 -0
  199. package/src/domain/Settings/MemberRow.tsx +53 -0
  200. package/src/domain/Settings/SettingRow.tsx +66 -0
  201. package/src/domain/Settings/index.ts +3 -0
  202. package/src/domain/Ships/ShipRow.tsx +49 -0
  203. package/src/domain/Ships/index.ts +1 -0
  204. package/src/domain/Workflows/GroupHeader.tsx +48 -0
  205. package/src/domain/Workflows/Importance.tsx +48 -0
  206. package/src/domain/Workflows/Progress.tsx +55 -0
  207. package/src/domain/Workflows/Question.tsx +42 -0
  208. package/src/domain/Workflows/StatusPopover.tsx +53 -0
  209. package/src/domain/Workflows/Task.tsx +46 -0
  210. package/src/domain/Workflows/TaskHeader.tsx +51 -0
  211. package/src/domain/Workflows/WorkflowFilters.tsx +40 -0
  212. package/src/domain/Workflows/WorkflowForm.tsx +40 -0
  213. package/src/domain/Workflows/WorkflowHeader.tsx +62 -0
  214. package/src/domain/Workflows/WorkflowListItem.tsx +45 -0
  215. package/src/domain/Workflows/WorkflowProgress.tsx +36 -0
  216. package/src/domain/Workflows/WorkflowRow.tsx +43 -0
  217. package/src/domain/Workflows/index.ts +13 -0
  218. package/src/domain/index.ts +37 -0
  219. package/src/icons/ArrowIcon.tsx +42 -0
  220. package/src/icons/ChevronIcon.tsx +42 -0
  221. package/src/icons/Icon.tsx +184 -0
  222. package/src/icons/arrow-paths.ts +8 -0
  223. package/src/icons/chevron-paths.ts +17 -0
  224. package/src/icons/createIcon.tsx +128 -0
  225. package/src/icons/generated.tsx +71 -0
  226. package/src/icons/icon-sizes.ts +20 -0
  227. package/src/icons/icons-data.ts +656 -0
  228. package/src/icons/index.ts +25 -0
  229. package/src/icons/types.ts +18 -0
  230. package/src/illustrations/AuditPreparation.tsx +15 -0
  231. package/src/illustrations/CompletedTasks.tsx +16 -0
  232. package/src/illustrations/Creation.tsx +13 -0
  233. package/src/illustrations/InternalAudit.tsx +13 -0
  234. package/src/illustrations/Invite.tsx +13 -0
  235. package/src/illustrations/PortStateControl.tsx +13 -0
  236. package/src/illustrations/Processing.tsx +17 -0
  237. package/src/illustrations/QuestionsDone.tsx +16 -0
  238. package/src/illustrations/RightShipInspection.tsx +18 -0
  239. package/src/illustrations/Upload.tsx +12 -0
  240. package/src/illustrations/WorkflowCreated.tsx +13 -0
  241. package/src/illustrations/Workflows.tsx +13 -0
  242. package/src/illustrations/createIllustration.tsx +30 -0
  243. package/src/illustrations/index.ts +14 -0
  244. package/src/index.ts +76 -4
  245. package/src/patterns/Chat/Attachment.tsx +27 -0
  246. package/src/patterns/Chat/ChatEntry.tsx +41 -0
  247. package/src/patterns/Chat/ChatHeader.tsx +39 -0
  248. package/src/patterns/Chat/ChatInput.tsx +35 -0
  249. package/src/patterns/Chat/ChatStatus.tsx +26 -0
  250. package/src/patterns/Chat/ChatTile.tsx +40 -0
  251. package/src/patterns/Chat/Copilot.tsx +50 -0
  252. package/src/patterns/Chat/Draft.tsx +23 -0
  253. package/src/patterns/Chat/Greeting.tsx +32 -0
  254. package/src/patterns/Chat/Reference.tsx +26 -0
  255. package/src/patterns/Chat/Source.tsx +27 -0
  256. package/src/patterns/Chat/Sources.tsx +23 -0
  257. package/src/patterns/Chat/Suggestion.tsx +23 -0
  258. package/src/patterns/Chat/Suggestions.tsx +21 -0
  259. package/src/patterns/Chat/index.ts +14 -0
  260. package/src/patterns/Modal/Invitee.tsx +44 -0
  261. package/src/patterns/Modal/ModalFooter.tsx +39 -0
  262. package/src/patterns/Modal/ModalHeader.tsx +77 -0
  263. package/src/patterns/Modal/index.ts +3 -0
  264. package/src/patterns/Search/Pill.tsx +44 -0
  265. package/src/patterns/Search/PillInfo.tsx +41 -0
  266. package/src/patterns/Search/ResultRow.tsx +44 -0
  267. package/src/patterns/Search/SearchModal.tsx +310 -0
  268. package/src/patterns/Search/SectionHeader.tsx +20 -0
  269. package/src/patterns/Search/index.ts +31 -0
  270. package/src/patterns/Sidebar/Account.tsx +193 -0
  271. package/src/patterns/Sidebar/ActivityNavGroup.tsx +71 -0
  272. package/src/patterns/Sidebar/CollapsibleNavGroup.tsx +106 -0
  273. package/src/patterns/Sidebar/Indicator.tsx +14 -0
  274. package/src/patterns/Sidebar/NewChat.tsx +71 -0
  275. package/src/patterns/Sidebar/Sidebar.tsx +363 -0
  276. package/src/patterns/Sidebar/SidebarAction.tsx +55 -0
  277. package/src/patterns/Sidebar/SidebarEntry.tsx +129 -0
  278. package/src/patterns/Sidebar/SidebarHeading.tsx +38 -0
  279. package/src/patterns/Sidebar/SidebarLink.tsx +125 -0
  280. package/src/patterns/Sidebar/SidebarShell.tsx +32 -0
  281. package/src/patterns/Sidebar/Switcher.tsx +116 -0
  282. package/src/patterns/Sidebar/assets/account-avatar-24.jpg +0 -0
  283. package/src/patterns/Sidebar/assets/account-avatar.jpg +0 -0
  284. package/src/patterns/Sidebar/assets/indicator-compliance.png +0 -0
  285. package/src/patterns/Sidebar/assets/indicator-technical.png +0 -0
  286. package/src/patterns/Sidebar/assets/logo-compliance-mark.png +5 -0
  287. package/src/patterns/Sidebar/assets/logo-compliance-mask.png +13 -0
  288. package/src/patterns/Sidebar/assets/logo-compliance.svg +17 -0
  289. package/src/patterns/Sidebar/assets/logo-technical-avatar.svg +17 -0
  290. package/src/patterns/Sidebar/assets/logo-technical-mark.png +5 -0
  291. package/src/patterns/Sidebar/assets/logo-technical.svg +16 -0
  292. package/src/patterns/Sidebar/constants.ts +2 -0
  293. package/src/patterns/Sidebar/figma-assets.ts +4 -0
  294. package/src/patterns/Sidebar/figma-demo-content.ts +30 -0
  295. package/src/patterns/Sidebar/figma-sidebar-nav.ts +79 -0
  296. package/src/patterns/Sidebar/index.ts +13 -0
  297. package/src/patterns/Sidebar/sidebar-styles.ts +101 -0
  298. package/src/patterns/Skeleton/Skeleton.tsx +56 -0
  299. package/src/patterns/Skeleton/index.ts +1 -0
  300. package/src/patterns/index.ts +5 -0
  301. package/src/primitives/Avatar.tsx +71 -0
  302. package/src/primitives/Badge.tsx +44 -0
  303. package/src/primitives/Button.tsx +231 -0
  304. package/src/primitives/Callout.tsx +21 -0
  305. package/src/primitives/Count.tsx +18 -0
  306. package/src/primitives/DropdownMenu.tsx +60 -0
  307. package/src/primitives/GroupedAvatars.tsx +36 -0
  308. package/src/primitives/IconButton.tsx +56 -0
  309. package/src/primitives/Logo.tsx +43 -0
  310. package/src/primitives/MenuItem.tsx +35 -0
  311. package/src/primitives/Switch.tsx +38 -0
  312. package/src/primitives/ThinkingDot.tsx +34 -0
  313. package/src/primitives/Tooltip.tsx +42 -0
  314. package/src/primitives/button-styles.ts +92 -0
  315. package/src/primitives/index.ts +18 -0
  316. package/src/stories/_layout/FigmaPage.tsx +94 -0
  317. package/src/stories/_layout/index.ts +8 -0
  318. package/src/stories/canvases/ButtonsCanvas.tsx +107 -0
  319. package/src/stories/canvases/ButtonsMatrixCanvas.tsx +65 -0
  320. package/src/stories/canvases/ChatCanvas.tsx +130 -0
  321. package/src/stories/canvases/ColorTokensCanvas.tsx +16 -0
  322. package/src/stories/canvases/ColorsCanvas.tsx +101 -0
  323. package/src/stories/canvases/ContentCanvas.tsx +157 -0
  324. package/src/stories/canvases/CoreCanvas.tsx +125 -0
  325. package/src/stories/canvases/DomainFormsCanvas.tsx +67 -0
  326. package/src/stories/canvases/FiltersCanvas.tsx +41 -0
  327. package/src/stories/canvases/FormsCanvas.tsx +71 -0
  328. package/src/stories/canvases/IconsCanvas.tsx +99 -0
  329. package/src/stories/canvases/IllustrationsCanvas.tsx +50 -0
  330. package/src/stories/canvases/LibraryCanvas.tsx +67 -0
  331. package/src/stories/canvases/ModalsCanvas.tsx +54 -0
  332. package/src/stories/canvases/RaiseLevelsCanvas.tsx +27 -0
  333. package/src/stories/canvases/ReportCanvas.tsx +33 -0
  334. package/src/stories/canvases/ReportLayoutCanvas.tsx +19 -0
  335. package/src/stories/canvases/SearchCanvas.tsx +150 -0
  336. package/src/stories/canvases/SettingsCanvas.tsx +41 -0
  337. package/src/stories/canvases/ShipsCanvas.tsx +38 -0
  338. package/src/stories/canvases/SidebarCanvas.tsx +147 -0
  339. package/src/stories/canvases/SidebarLayoutsCanvas.tsx +71 -0
  340. package/src/stories/canvases/SidebarPlayground.tsx +35 -0
  341. package/src/stories/canvases/SkeletonsCanvas.tsx +30 -0
  342. package/src/stories/canvases/TypographyCanvas.tsx +53 -0
  343. package/src/stories/canvases/WorkflowsCanvas.tsx +129 -0
  344. package/src/stories/canvases/figma-buttons-layout.ts +83 -0
  345. package/src/stories/canvases/figma-icons-layout.ts +318 -0
  346. package/src/stories/canvases/figma-sidebar-layout.ts +212 -0
  347. package/src/stories/canvases/figma-sidebar-layouts-layout.ts +84 -0
  348. package/src/stories/canvases/figma-widths.ts +28 -0
  349. package/src/stories/canvases/helpers.tsx +146 -0
  350. package/src/stories/components/Buttons.stories.tsx +12 -0
  351. package/src/stories/components/Chat.stories.tsx +12 -0
  352. package/src/stories/components/Content.stories.tsx +12 -0
  353. package/src/stories/components/Core.stories.tsx +12 -0
  354. package/src/stories/components/DomainForms.stories.tsx +12 -0
  355. package/src/stories/components/Filters.stories.tsx +12 -0
  356. package/src/stories/components/Forms.stories.tsx +12 -0
  357. package/src/stories/components/Icons.stories.tsx +12 -0
  358. package/src/stories/components/Illustrations.stories.tsx +12 -0
  359. package/src/stories/components/Library.stories.tsx +12 -0
  360. package/src/stories/components/Modals.stories.tsx +12 -0
  361. package/src/stories/components/Report.stories.tsx +12 -0
  362. package/src/stories/components/ReportLayout.stories.tsx +12 -0
  363. package/src/stories/components/Search.stories.tsx +12 -0
  364. package/src/stories/components/Settings.stories.tsx +12 -0
  365. package/src/stories/components/Ships.stories.tsx +12 -0
  366. package/src/stories/components/Sidebar.stories.tsx +37 -0
  367. package/src/stories/components/SidebarLayouts.stories.tsx +12 -0
  368. package/src/stories/components/Skeletons.stories.tsx +12 -0
  369. package/src/stories/components/Workflows.stories.tsx +12 -0
  370. package/src/stories/style-guide/Buttons.stories.tsx +12 -0
  371. package/src/stories/style-guide/ColorTokens.stories.tsx +12 -0
  372. package/src/stories/style-guide/Colors.stories.tsx +12 -0
  373. package/src/stories/style-guide/RaiseLevels.stories.tsx +12 -0
  374. package/src/stories/style-guide/Typography.stories.tsx +12 -0
  375. package/src/style.css +169 -2
  376. package/src/tailwind-theme.ts +164 -240
  377. package/src/theme-entry.ts +2 -0
  378. package/src/tokens/colors.ts +82 -0
  379. package/src/tokens/elevation.ts +12 -0
  380. package/src/tokens/index.ts +4 -0
  381. package/src/tokens/semantic.ts +89 -0
  382. package/src/tokens/typography.ts +21 -0
  383. package/tailwind.config.ts +12 -0
  384. package/dist/components/HelloWorld.d.ts +0 -1
  385. package/dist/components/InputPrompt.d.ts +0 -20
  386. package/dist/components/SearchModal.d.ts +0 -24
  387. package/dist/components/Sidebar/Button.d.ts +0 -7
  388. package/dist/components/Sidebar/Container.d.ts +0 -5
  389. package/dist/components/Sidebar/Item.d.ts +0 -9
  390. package/dist/components/Sidebar/Layout.d.ts +0 -10
  391. package/dist/components/Sidebar/Provider.d.ts +0 -14
  392. package/dist/components/Sidebar/SecondaryItem.d.ts +0 -9
  393. package/dist/components/Sidebar/SideContainer.d.ts +0 -5
  394. package/dist/components/Sidebar/ToggleCollapseButton.d.ts +0 -1
  395. package/dist/components/Sidebar/index.d.ts +0 -8
  396. package/dist/components/icons/CloseSidebarIcon.d.ts +0 -2
  397. package/dist/components/icons/CloseSidebarMidIcon.d.ts +0 -1
  398. package/dist/components/icons/ExpandIcon.d.ts +0 -3
  399. package/dist/components/icons/SendArrowIcon.d.ts +0 -4
  400. package/dist/components/icons/SendArrowIconGreen.d.ts +0 -4
  401. package/dist/components/icons/SettingsIcon.d.ts +0 -3
  402. package/dist/components/icons/XIcon.d.ts +0 -3
  403. package/dist/material-theme.d.ts +0 -442
  404. package/dist/stories/Buttons.d.ts +0 -1
  405. package/dist/stories/Checkbox.d.ts +0 -1
  406. package/dist/stories/ColorPalette.d.ts +0 -1
  407. package/dist/stories/Dropdowns.d.ts +0 -1
  408. package/dist/stories/InputPrompt.d.ts +0 -1
  409. package/dist/stories/SearchModal.d.ts +0 -1
  410. package/dist/stories/Sidebar.d.ts +0 -1
  411. package/dist/stories/Typography.d.ts +0 -1
  412. package/src/components/HelloWorld.tsx +0 -3
  413. package/src/components/InputPrompt.tsx +0 -96
  414. package/src/components/SearchModal.tsx +0 -320
  415. package/src/components/Sidebar/Button.tsx +0 -20
  416. package/src/components/Sidebar/Container.tsx +0 -31
  417. package/src/components/Sidebar/Item.tsx +0 -39
  418. package/src/components/Sidebar/Layout.tsx +0 -32
  419. package/src/components/Sidebar/Provider.tsx +0 -47
  420. package/src/components/Sidebar/SecondaryItem.tsx +0 -39
  421. package/src/components/Sidebar/SideContainer.tsx +0 -31
  422. package/src/components/Sidebar/ToggleCollapseButton.tsx +0 -24
  423. package/src/components/Sidebar/index.ts +0 -8
  424. package/src/components/icons/CloseSidebarIcon.tsx +0 -19
  425. package/src/components/icons/CloseSidebarMidIcon.tsx +0 -19
  426. package/src/components/icons/ExpandIcon.tsx +0 -21
  427. package/src/components/icons/SendArrowIcon.tsx +0 -23
  428. package/src/components/icons/SendArrowIconGreen.tsx +0 -17
  429. package/src/components/icons/SettingsIcon.tsx +0 -33
  430. package/src/components/icons/XIcon.tsx +0 -21
  431. package/src/material-theme.ts +0 -477
  432. package/src/stories/Buttons.stories.tsx +0 -15
  433. package/src/stories/Buttons.tsx +0 -52
  434. package/src/stories/Checkbox.stories.tsx +0 -15
  435. package/src/stories/Checkbox.tsx +0 -56
  436. package/src/stories/ColorPalette.stories.tsx +0 -15
  437. package/src/stories/ColorPalette.tsx +0 -85
  438. package/src/stories/DocumentEditor.stories.tsx +0 -287
  439. package/src/stories/Dropdowns.stories.tsx +0 -15
  440. package/src/stories/Dropdowns.tsx +0 -52
  441. package/src/stories/InputPrompt.stories.tsx +0 -15
  442. package/src/stories/InputPrompt.tsx +0 -63
  443. package/src/stories/ModalHeader.stories.tsx +0 -36
  444. package/src/stories/PDFViewer.stories.tsx +0 -39
  445. package/src/stories/SearchModal.stories.tsx +0 -132
  446. package/src/stories/SearchModal.tsx +0 -82
  447. package/src/stories/Sidebar.stories.tsx +0 -15
  448. package/src/stories/Sidebar.tsx +0 -108
  449. package/src/stories/Tabs.stories.tsx +0 -51
  450. package/src/stories/Typography.stories.tsx +0 -15
  451. 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,150 @@
1
+ import {
2
+ Pill,
3
+ PillInfo,
4
+ ResultRow,
5
+ SearchModalPanel,
6
+ SectionHeader,
7
+ } from "../../patterns/Search";
8
+ import {
9
+ FigmaContent,
10
+ FigmaGrid,
11
+ FigmaPage,
12
+ FigmaSection,
13
+ FigmaVariant,
14
+ } from "../_layout";
15
+ import { FIGMA_WIDTHS } from "./figma-widths";
16
+
17
+ const recentItems = [
18
+ { variant: "report" as const, title: "Engine Room Oil Leak" },
19
+ { variant: "chat" as const, title: "Low Water Pressure on Board" },
20
+ {
21
+ variant: "chat" as const,
22
+ title: "Generator Vibrating Excessively",
23
+ state: "active" as const,
24
+ },
25
+ {
26
+ variant: "issue" as const,
27
+ title:
28
+ "Intermittent Flickering of Navigation Lights Possibly Due to Bulb Failure or Signal Unit Errors",
29
+ },
30
+ ];
31
+
32
+ const resultItems = [
33
+ {
34
+ variant: "report" as const,
35
+ title: "Persistent Engine Room Oil Leak",
36
+ subtitle: (
37
+ <>
38
+ We’ve got a persistent oil leak from the{" "}
39
+ <span className="text-caption-2-em text-display-on-light-primary">
40
+ fuel pump
41
+ </span>
42
+ . I’ve tightened what I could, but it keeps seeping.
43
+ </>
44
+ ),
45
+ },
46
+ {
47
+ variant: "chat" as const,
48
+ title: "Ballast Pump Not Starting",
49
+ subtitle: (
50
+ <>
51
+ The{" "}
52
+ <span className="text-caption-2-em text-display-on-light-primary">
53
+ fuel pump
54
+ </span>{" "}
55
+ won’t start consistently. Sometimes it works, sometimes it doesn’t.
56
+ </>
57
+ ),
58
+ },
59
+ {
60
+ variant: "issue" as const,
61
+ title:
62
+ "Excessive Rust on Fuel Pump and Piping with Unclear Material Specifications and Corrosion Protection Measures",
63
+ subtitle: "Created by Jake Silva on March 28",
64
+ state: "active" as const,
65
+ },
66
+ {
67
+ variant: "report" as const,
68
+ title: "Engine Room Oil Leak",
69
+ subtitle: (
70
+ <>
71
+ We’ve spotted a steady oil leak near the{" "}
72
+ <span className="text-caption-2-em text-display-on-light-primary">
73
+ fuel pump
74
+ </span>
75
+ . Not sure if it’s a gasket or a cracked line.
76
+ </>
77
+ ),
78
+ },
79
+ ];
80
+
81
+ export const SearchCanvas = () => (
82
+ <FigmaPage title="Search" width={FIGMA_WIDTHS.search}>
83
+ <FigmaContent>
84
+ <FigmaSection label="Pill">
85
+ <FigmaGrid gap={16}>
86
+ <Pill>All</Pill>
87
+ <Pill state="active">Reports</Pill>
88
+ <Pill size="small">Issues</Pill>
89
+ <Pill size="small" state="active">
90
+ Chats
91
+ </Pill>
92
+ </FigmaGrid>
93
+ </FigmaSection>
94
+
95
+ <FigmaSection label="Pill Info">
96
+ <FigmaGrid gap={16}>
97
+ <PillInfo />
98
+ <PillInfo type="completed" />
99
+ </FigmaGrid>
100
+ </FigmaSection>
101
+
102
+ <FigmaSection label="Result Row">
103
+ <div className="max-w-xl space-y-2">
104
+ <ResultRow />
105
+ <ResultRow
106
+ variant="chat"
107
+ title="Port state control discussion"
108
+ subtitle="2 days ago"
109
+ />
110
+ <ResultRow
111
+ variant="issue"
112
+ title="Critical valve malfunction"
113
+ subtitle="Open · High priority"
114
+ />
115
+ </div>
116
+ </FigmaSection>
117
+
118
+ <FigmaSection label="Section Header">
119
+ <div className="max-w-xl">
120
+ <SectionHeader label="Reports" />
121
+ </div>
122
+ </FigmaSection>
123
+
124
+ <FigmaSection label="Search Modal">
125
+ <FigmaGrid gap={32}>
126
+ <FigmaVariant label="Idle">
127
+ <div className="w-[700px] overflow-hidden rounded-xl border border-divider-primary bg-background-primary shadow-raise3">
128
+ <SearchModalPanel state="idle" recentItems={recentItems} />
129
+ </div>
130
+ </FigmaVariant>
131
+ <FigmaVariant label="Loading">
132
+ <div className="w-[700px] overflow-hidden rounded-xl border border-divider-primary bg-background-primary shadow-raise3">
133
+ <SearchModalPanel state="loading" query="fuel pump" />
134
+ </div>
135
+ </FigmaVariant>
136
+ <FigmaVariant label="Results">
137
+ <div className="w-[700px] overflow-hidden rounded-xl border border-divider-primary bg-background-primary shadow-raise3">
138
+ <SearchModalPanel
139
+ state="results"
140
+ query="fuel pump"
141
+ filter="all"
142
+ resultItems={resultItems}
143
+ />
144
+ </div>
145
+ </FigmaVariant>
146
+ </FigmaGrid>
147
+ </FigmaSection>
148
+ </FigmaContent>
149
+ </FigmaPage>
150
+ );
@@ -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
+ );