@openwarelabs/blocks 0.9.0 → 0.10.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 (291) hide show
  1. package/README.md +36 -10
  2. package/dist/app-shells/Shell01/Shell01.d.cts +6 -0
  3. package/dist/app-shells/Shell01/Shell01.d.ts +6 -0
  4. package/dist/app-shells/Shell01/Shell01.types.d.cts +48 -0
  5. package/dist/app-shells/Shell01/Shell01.types.d.ts +48 -0
  6. package/dist/app-shells/Shell02/Shell02.d.cts +7 -0
  7. package/dist/app-shells/Shell02/Shell02.d.ts +7 -0
  8. package/dist/app-shells/Shell02/Shell02.types.d.cts +50 -0
  9. package/dist/app-shells/Shell02/Shell02.types.d.ts +50 -0
  10. package/dist/app-shells/Shell03/Shell03.d.cts +6 -0
  11. package/dist/app-shells/Shell03/Shell03.d.ts +6 -0
  12. package/dist/app-shells/Shell03/Shell03.types.d.cts +73 -0
  13. package/dist/app-shells/Shell03/Shell03.types.d.ts +73 -0
  14. package/dist/app-shells/Shell04/Shell04.d.cts +6 -0
  15. package/dist/app-shells/Shell04/Shell04.d.ts +6 -0
  16. package/dist/app-shells/Shell04/Shell04.types.d.cts +68 -0
  17. package/dist/app-shells/Shell04/Shell04.types.d.ts +68 -0
  18. package/dist/blog/Blog01/Blog01.d.cts +3 -0
  19. package/dist/blog/Blog01/Blog01.d.ts +3 -0
  20. package/dist/blog/Blog01/Blog01.types.d.cts +55 -0
  21. package/dist/blog/Blog01/Blog01.types.d.ts +55 -0
  22. package/dist/blog/Blog02/Blog02.d.cts +3 -0
  23. package/dist/blog/Blog02/Blog02.d.ts +3 -0
  24. package/dist/blog/Blog02/Blog02.types.d.cts +51 -0
  25. package/dist/blog/Blog02/Blog02.types.d.ts +51 -0
  26. package/dist/blog/Blog03/Blog03.d.cts +3 -0
  27. package/dist/blog/Blog03/Blog03.d.ts +3 -0
  28. package/dist/blog/Blog03/Blog03.types.d.cts +66 -0
  29. package/dist/blog/Blog03/Blog03.types.d.ts +66 -0
  30. package/dist/blog/Blog04/Blog04.d.cts +3 -0
  31. package/dist/blog/Blog04/Blog04.d.ts +3 -0
  32. package/dist/blog/Blog04/Blog04.types.d.cts +64 -0
  33. package/dist/blog/Blog04/Blog04.types.d.ts +64 -0
  34. package/dist/chat/Chat01/Chat01.d.cts +6 -0
  35. package/dist/chat/Chat01/Chat01.d.ts +6 -0
  36. package/dist/chat/Chat01/Chat01.types.d.cts +95 -0
  37. package/dist/chat/Chat01/Chat01.types.d.ts +95 -0
  38. package/dist/chat/Chat02/Chat02.d.cts +6 -0
  39. package/dist/chat/Chat02/Chat02.d.ts +6 -0
  40. package/dist/chat/Chat02/Chat02.types.d.cts +70 -0
  41. package/dist/chat/Chat02/Chat02.types.d.ts +70 -0
  42. package/dist/chat/Chat03/Chat03.d.cts +6 -0
  43. package/dist/chat/Chat03/Chat03.d.ts +6 -0
  44. package/dist/chat/Chat03/Chat03.types.d.cts +96 -0
  45. package/dist/chat/Chat03/Chat03.types.d.ts +96 -0
  46. package/dist/contact/Contact01/Contact01.d.cts +3 -0
  47. package/dist/contact/Contact01/Contact01.d.ts +3 -0
  48. package/dist/contact/Contact01/Contact01.types.d.cts +103 -0
  49. package/dist/contact/Contact01/Contact01.types.d.ts +103 -0
  50. package/dist/contact/Contact02/Contact02.d.cts +3 -0
  51. package/dist/contact/Contact02/Contact02.d.ts +3 -0
  52. package/dist/contact/Contact02/Contact02.types.d.cts +56 -0
  53. package/dist/contact/Contact02/Contact02.types.d.ts +56 -0
  54. package/dist/dashboards/Dashboard01/Dashboard01.d.cts +3 -0
  55. package/dist/dashboards/Dashboard01/Dashboard01.d.ts +3 -0
  56. package/dist/dashboards/Dashboard01/Dashboard01.types.d.cts +53 -0
  57. package/dist/dashboards/Dashboard01/Dashboard01.types.d.ts +53 -0
  58. package/dist/dashboards/Dashboard02/Dashboard02.d.cts +3 -0
  59. package/dist/dashboards/Dashboard02/Dashboard02.d.ts +3 -0
  60. package/dist/dashboards/Dashboard02/Dashboard02.types.d.cts +74 -0
  61. package/dist/dashboards/Dashboard02/Dashboard02.types.d.ts +74 -0
  62. package/dist/dashboards/Dashboard03/Dashboard03.d.cts +6 -0
  63. package/dist/dashboards/Dashboard03/Dashboard03.d.ts +6 -0
  64. package/dist/dashboards/Dashboard03/Dashboard03.types.d.cts +131 -0
  65. package/dist/dashboards/Dashboard03/Dashboard03.types.d.ts +131 -0
  66. package/dist/empty-states/Empty01/Empty01.d.cts +3 -0
  67. package/dist/empty-states/Empty01/Empty01.d.ts +3 -0
  68. package/dist/empty-states/Empty01/Empty01.types.d.cts +94 -0
  69. package/dist/empty-states/Empty01/Empty01.types.d.ts +94 -0
  70. package/dist/empty-states/Empty02/Empty02.d.cts +3 -0
  71. package/dist/empty-states/Empty02/Empty02.d.ts +3 -0
  72. package/dist/empty-states/Empty02/Empty02.types.d.cts +72 -0
  73. package/dist/empty-states/Empty02/Empty02.types.d.ts +72 -0
  74. package/dist/empty-states/Empty03/Empty03.d.cts +3 -0
  75. package/dist/empty-states/Empty03/Empty03.d.ts +3 -0
  76. package/dist/empty-states/Empty03/Empty03.types.d.cts +72 -0
  77. package/dist/empty-states/Empty03/Empty03.types.d.ts +72 -0
  78. package/dist/error-pages/ErrorPage01/ErrorPage01.d.cts +3 -0
  79. package/dist/error-pages/ErrorPage01/ErrorPage01.d.ts +3 -0
  80. package/dist/error-pages/ErrorPage01/ErrorPage01.types.d.cts +48 -0
  81. package/dist/error-pages/ErrorPage01/ErrorPage01.types.d.ts +48 -0
  82. package/dist/error-pages/ErrorPage02/ErrorPage02.d.cts +3 -0
  83. package/dist/error-pages/ErrorPage02/ErrorPage02.d.ts +3 -0
  84. package/dist/error-pages/ErrorPage02/ErrorPage02.types.d.cts +45 -0
  85. package/dist/error-pages/ErrorPage02/ErrorPage02.types.d.ts +45 -0
  86. package/dist/error-pages/ErrorPage03/ErrorPage03.d.cts +3 -0
  87. package/dist/error-pages/ErrorPage03/ErrorPage03.d.ts +3 -0
  88. package/dist/error-pages/ErrorPage03/ErrorPage03.types.d.cts +45 -0
  89. package/dist/error-pages/ErrorPage03/ErrorPage03.types.d.ts +45 -0
  90. package/dist/faq/Faq01/Faq01.d.cts +3 -0
  91. package/dist/faq/Faq01/Faq01.d.ts +3 -0
  92. package/dist/faq/Faq01/Faq01.types.d.cts +23 -0
  93. package/dist/faq/Faq01/Faq01.types.d.ts +23 -0
  94. package/dist/faq/Faq02/Faq02.d.cts +3 -0
  95. package/dist/faq/Faq02/Faq02.d.ts +3 -0
  96. package/dist/faq/Faq02/Faq02.types.d.cts +24 -0
  97. package/dist/faq/Faq02/Faq02.types.d.ts +24 -0
  98. package/dist/faq/Faq03/Faq03.d.cts +3 -0
  99. package/dist/faq/Faq03/Faq03.d.ts +3 -0
  100. package/dist/faq/Faq03/Faq03.types.d.cts +42 -0
  101. package/dist/faq/Faq03/Faq03.types.d.ts +42 -0
  102. package/dist/forms/Form01/Form01.d.cts +3 -0
  103. package/dist/forms/Form01/Form01.d.ts +3 -0
  104. package/dist/forms/Form01/Form01.types.d.cts +20 -0
  105. package/dist/forms/Form01/Form01.types.d.ts +20 -0
  106. package/dist/forms/Form02/Form02.d.cts +3 -0
  107. package/dist/forms/Form02/Form02.d.ts +3 -0
  108. package/dist/forms/Form02/Form02.types.d.cts +38 -0
  109. package/dist/forms/Form02/Form02.types.d.ts +38 -0
  110. package/dist/forms/Form03/Form03.d.cts +3 -0
  111. package/dist/forms/Form03/Form03.d.ts +3 -0
  112. package/dist/forms/Form03/Form03.types.d.cts +55 -0
  113. package/dist/forms/Form03/Form03.types.d.ts +55 -0
  114. package/dist/index.cjs +6190 -22
  115. package/dist/index.cjs.map +4 -4
  116. package/dist/index.d.cts +135 -1
  117. package/dist/index.d.ts +135 -1
  118. package/dist/index.js +6220 -19
  119. package/dist/index.js.map +4 -4
  120. package/dist/lists-and-tables/List01/List01.d.cts +6 -0
  121. package/dist/lists-and-tables/List01/List01.d.ts +6 -0
  122. package/dist/lists-and-tables/List01/List01.types.d.cts +60 -0
  123. package/dist/lists-and-tables/List01/List01.types.d.ts +60 -0
  124. package/dist/lists-and-tables/List02/List02.d.cts +3 -0
  125. package/dist/lists-and-tables/List02/List02.d.ts +3 -0
  126. package/dist/lists-and-tables/List02/List02.types.d.cts +54 -0
  127. package/dist/lists-and-tables/List02/List02.types.d.ts +54 -0
  128. package/dist/lists-and-tables/List03/List03.d.cts +3 -0
  129. package/dist/lists-and-tables/List03/List03.d.ts +3 -0
  130. package/dist/lists-and-tables/List03/List03.types.d.cts +41 -0
  131. package/dist/lists-and-tables/List03/List03.types.d.ts +41 -0
  132. package/dist/lists-and-tables/List04/List04.d.cts +3 -0
  133. package/dist/lists-and-tables/List04/List04.d.ts +3 -0
  134. package/dist/lists-and-tables/List04/List04.types.d.cts +67 -0
  135. package/dist/lists-and-tables/List04/List04.types.d.ts +67 -0
  136. package/dist/logo-clouds/Logos01/Logos01.d.cts +3 -0
  137. package/dist/logo-clouds/Logos01/Logos01.d.ts +3 -0
  138. package/dist/logo-clouds/Logos01/Logos01.types.d.cts +13 -0
  139. package/dist/logo-clouds/Logos01/Logos01.types.d.ts +13 -0
  140. package/dist/logo-clouds/Logos02/Logos02.d.cts +3 -0
  141. package/dist/logo-clouds/Logos02/Logos02.d.ts +3 -0
  142. package/dist/logo-clouds/Logos02/Logos02.types.d.cts +28 -0
  143. package/dist/logo-clouds/Logos02/Logos02.types.d.ts +28 -0
  144. package/dist/logo-clouds/Logos03/Logos03.d.cts +3 -0
  145. package/dist/logo-clouds/Logos03/Logos03.d.ts +3 -0
  146. package/dist/logo-clouds/Logos03/Logos03.types.d.cts +23 -0
  147. package/dist/logo-clouds/Logos03/Logos03.types.d.ts +23 -0
  148. package/dist/newsletter/Newsletter01/Newsletter01.d.cts +3 -0
  149. package/dist/newsletter/Newsletter01/Newsletter01.d.ts +3 -0
  150. package/dist/newsletter/Newsletter01/Newsletter01.types.d.cts +39 -0
  151. package/dist/newsletter/Newsletter01/Newsletter01.types.d.ts +39 -0
  152. package/dist/newsletter/Newsletter02/Newsletter02.d.cts +3 -0
  153. package/dist/newsletter/Newsletter02/Newsletter02.d.ts +3 -0
  154. package/dist/newsletter/Newsletter02/Newsletter02.types.d.cts +42 -0
  155. package/dist/newsletter/Newsletter02/Newsletter02.types.d.ts +42 -0
  156. package/dist/notifications/Notifications01/Notifications01.d.cts +3 -0
  157. package/dist/notifications/Notifications01/Notifications01.d.ts +3 -0
  158. package/dist/notifications/Notifications01/Notifications01.types.d.cts +74 -0
  159. package/dist/notifications/Notifications01/Notifications01.types.d.ts +74 -0
  160. package/dist/notifications/Notifications02/Notifications02.d.cts +3 -0
  161. package/dist/notifications/Notifications02/Notifications02.d.ts +3 -0
  162. package/dist/notifications/Notifications02/Notifications02.types.d.cts +65 -0
  163. package/dist/notifications/Notifications02/Notifications02.types.d.ts +65 -0
  164. package/dist/notifications/Notifications03/Notifications03.d.cts +3 -0
  165. package/dist/notifications/Notifications03/Notifications03.d.ts +3 -0
  166. package/dist/notifications/Notifications03/Notifications03.types.d.cts +87 -0
  167. package/dist/notifications/Notifications03/Notifications03.types.d.ts +87 -0
  168. package/dist/onboarding/Onboarding01/Onboarding01.d.cts +3 -0
  169. package/dist/onboarding/Onboarding01/Onboarding01.d.ts +3 -0
  170. package/dist/onboarding/Onboarding01/Onboarding01.types.d.cts +46 -0
  171. package/dist/onboarding/Onboarding01/Onboarding01.types.d.ts +46 -0
  172. package/dist/onboarding/Onboarding02/Onboarding02.d.cts +3 -0
  173. package/dist/onboarding/Onboarding02/Onboarding02.d.ts +3 -0
  174. package/dist/onboarding/Onboarding02/Onboarding02.types.d.cts +68 -0
  175. package/dist/onboarding/Onboarding02/Onboarding02.types.d.ts +68 -0
  176. package/dist/onboarding/Onboarding03/Onboarding03.d.cts +3 -0
  177. package/dist/onboarding/Onboarding03/Onboarding03.d.ts +3 -0
  178. package/dist/onboarding/Onboarding03/Onboarding03.types.d.cts +38 -0
  179. package/dist/onboarding/Onboarding03/Onboarding03.types.d.ts +38 -0
  180. package/dist/page-headings/PageHeading01/PageHeading01.d.cts +6 -0
  181. package/dist/page-headings/PageHeading01/PageHeading01.d.ts +6 -0
  182. package/dist/page-headings/PageHeading01/PageHeading01.types.d.cts +35 -0
  183. package/dist/page-headings/PageHeading01/PageHeading01.types.d.ts +35 -0
  184. package/dist/page-headings/PageHeading02/PageHeading02.d.cts +3 -0
  185. package/dist/page-headings/PageHeading02/PageHeading02.d.ts +3 -0
  186. package/dist/page-headings/PageHeading02/PageHeading02.types.d.cts +49 -0
  187. package/dist/page-headings/PageHeading02/PageHeading02.types.d.ts +49 -0
  188. package/dist/page-headings/PageHeading03/PageHeading03.d.cts +6 -0
  189. package/dist/page-headings/PageHeading03/PageHeading03.d.ts +6 -0
  190. package/dist/page-headings/PageHeading03/PageHeading03.types.d.cts +83 -0
  191. package/dist/page-headings/PageHeading03/PageHeading03.types.d.ts +83 -0
  192. package/dist/section-headings/SectionHeading01/SectionHeading01.d.cts +3 -0
  193. package/dist/section-headings/SectionHeading01/SectionHeading01.d.ts +3 -0
  194. package/dist/section-headings/SectionHeading01/SectionHeading01.types.d.cts +9 -0
  195. package/dist/section-headings/SectionHeading01/SectionHeading01.types.d.ts +9 -0
  196. package/dist/section-headings/SectionHeading02/SectionHeading02.d.cts +3 -0
  197. package/dist/section-headings/SectionHeading02/SectionHeading02.d.ts +3 -0
  198. package/dist/section-headings/SectionHeading02/SectionHeading02.types.d.cts +12 -0
  199. package/dist/section-headings/SectionHeading02/SectionHeading02.types.d.ts +12 -0
  200. package/dist/section-headings/SectionHeading03/SectionHeading03.d.cts +3 -0
  201. package/dist/section-headings/SectionHeading03/SectionHeading03.d.ts +3 -0
  202. package/dist/section-headings/SectionHeading03/SectionHeading03.types.d.cts +12 -0
  203. package/dist/section-headings/SectionHeading03/SectionHeading03.types.d.ts +12 -0
  204. package/dist/settings/Settings01/Settings01.d.cts +3 -0
  205. package/dist/settings/Settings01/Settings01.d.ts +3 -0
  206. package/dist/settings/Settings01/Settings01.types.d.cts +46 -0
  207. package/dist/settings/Settings01/Settings01.types.d.ts +46 -0
  208. package/dist/settings/Settings02/Settings02.d.cts +3 -0
  209. package/dist/settings/Settings02/Settings02.d.ts +3 -0
  210. package/dist/settings/Settings02/Settings02.types.d.cts +45 -0
  211. package/dist/settings/Settings02/Settings02.types.d.ts +45 -0
  212. package/dist/settings/Settings03/Settings03.d.cts +3 -0
  213. package/dist/settings/Settings03/Settings03.d.ts +3 -0
  214. package/dist/settings/Settings03/Settings03.types.d.cts +132 -0
  215. package/dist/settings/Settings03/Settings03.types.d.ts +132 -0
  216. package/dist/settings/Settings04/Settings04.d.cts +3 -0
  217. package/dist/settings/Settings04/Settings04.d.ts +3 -0
  218. package/dist/settings/Settings04/Settings04.types.d.cts +124 -0
  219. package/dist/settings/Settings04/Settings04.types.d.ts +124 -0
  220. package/dist/settings/Settings05/Settings05.d.cts +3 -0
  221. package/dist/settings/Settings05/Settings05.d.ts +3 -0
  222. package/dist/settings/Settings05/Settings05.types.d.cts +94 -0
  223. package/dist/settings/Settings05/Settings05.types.d.ts +94 -0
  224. package/dist/shared/AppWorkspaceItems.d.cts +3 -0
  225. package/dist/shared/AppWorkspaceItems.d.ts +3 -0
  226. package/dist/shared/BlockActions.d.cts +1 -1
  227. package/dist/shared/BlockActions.d.ts +1 -1
  228. package/dist/shared/BlockMenuItems.d.cts +3 -0
  229. package/dist/shared/BlockMenuItems.d.ts +3 -0
  230. package/dist/shared/appShell.d.cts +19 -0
  231. package/dist/shared/appShell.d.ts +19 -0
  232. package/dist/shared/icons.d.cts +59 -13
  233. package/dist/shared/icons.d.ts +59 -13
  234. package/dist/shared/shared.types.d.cts +128 -0
  235. package/dist/shared/shared.types.d.ts +128 -0
  236. package/dist/shared/tableColumns.d.cts +10 -0
  237. package/dist/shared/tableColumns.d.ts +10 -0
  238. package/dist/sign-in/SignIn01/SignIn01.d.cts +3 -0
  239. package/dist/sign-in/SignIn01/SignIn01.d.ts +3 -0
  240. package/dist/sign-in/SignIn01/SignIn01.types.d.cts +52 -0
  241. package/dist/sign-in/SignIn01/SignIn01.types.d.ts +52 -0
  242. package/dist/sign-in/SignIn02/SignIn02.d.cts +3 -0
  243. package/dist/sign-in/SignIn02/SignIn02.d.ts +3 -0
  244. package/dist/sign-in/SignIn02/SignIn02.types.d.cts +79 -0
  245. package/dist/sign-in/SignIn02/SignIn02.types.d.ts +79 -0
  246. package/dist/sign-in/SignIn03/SignIn03.d.cts +3 -0
  247. package/dist/sign-in/SignIn03/SignIn03.d.ts +3 -0
  248. package/dist/sign-in/SignIn03/SignIn03.types.d.cts +51 -0
  249. package/dist/sign-in/SignIn03/SignIn03.types.d.ts +51 -0
  250. package/dist/sign-in/SignIn04/SignIn04.d.cts +3 -0
  251. package/dist/sign-in/SignIn04/SignIn04.d.ts +3 -0
  252. package/dist/sign-in/SignIn04/SignIn04.types.d.cts +56 -0
  253. package/dist/sign-in/SignIn04/SignIn04.types.d.ts +56 -0
  254. package/dist/sign-in/SignIn05/SignIn05.d.cts +3 -0
  255. package/dist/sign-in/SignIn05/SignIn05.d.ts +3 -0
  256. package/dist/sign-in/SignIn05/SignIn05.types.d.cts +86 -0
  257. package/dist/sign-in/SignIn05/SignIn05.types.d.ts +86 -0
  258. package/dist/stats/Stats01/Stats01.d.cts +3 -0
  259. package/dist/stats/Stats01/Stats01.d.ts +3 -0
  260. package/dist/stats/Stats01/Stats01.types.d.cts +19 -0
  261. package/dist/stats/Stats01/Stats01.types.d.ts +19 -0
  262. package/dist/stats/Stats02/Stats02.d.cts +3 -0
  263. package/dist/stats/Stats02/Stats02.d.ts +3 -0
  264. package/dist/stats/Stats02/Stats02.types.d.cts +30 -0
  265. package/dist/stats/Stats02/Stats02.types.d.ts +30 -0
  266. package/dist/stats/Stats03/Stats03.d.cts +3 -0
  267. package/dist/stats/Stats03/Stats03.d.ts +3 -0
  268. package/dist/stats/Stats03/Stats03.types.d.cts +24 -0
  269. package/dist/stats/Stats03/Stats03.types.d.ts +24 -0
  270. package/dist/styles.css +11992 -2727
  271. package/dist/team/Team01/Team01.d.cts +3 -0
  272. package/dist/team/Team01/Team01.d.ts +3 -0
  273. package/dist/team/Team01/Team01.types.d.cts +25 -0
  274. package/dist/team/Team01/Team01.types.d.ts +25 -0
  275. package/dist/team/Team02/Team02.d.cts +3 -0
  276. package/dist/team/Team02/Team02.d.ts +3 -0
  277. package/dist/team/Team02/Team02.types.d.cts +37 -0
  278. package/dist/team/Team02/Team02.types.d.ts +37 -0
  279. package/dist/testimonials/Testimonial01/Testimonial01.d.cts +3 -0
  280. package/dist/testimonials/Testimonial01/Testimonial01.d.ts +3 -0
  281. package/dist/testimonials/Testimonial01/Testimonial01.types.d.cts +21 -0
  282. package/dist/testimonials/Testimonial01/Testimonial01.types.d.ts +21 -0
  283. package/dist/testimonials/Testimonial02/Testimonial02.d.cts +3 -0
  284. package/dist/testimonials/Testimonial02/Testimonial02.d.ts +3 -0
  285. package/dist/testimonials/Testimonial02/Testimonial02.types.d.cts +25 -0
  286. package/dist/testimonials/Testimonial02/Testimonial02.types.d.ts +25 -0
  287. package/dist/testimonials/Testimonial03/Testimonial03.d.cts +3 -0
  288. package/dist/testimonials/Testimonial03/Testimonial03.d.ts +3 -0
  289. package/dist/testimonials/Testimonial03/Testimonial03.types.d.cts +45 -0
  290. package/dist/testimonials/Testimonial03/Testimonial03.types.d.ts +45 -0
  291. package/package.json +3 -3
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  Whole page sections built from [Openware UI](https://github.com/openwarelabs/ui) (`@openwarelabs/ui`), as React components that take their content as props. Drop one in, pass your words, actions and screenshots, and it follows the theme, the brand colour and every screen width.
4
4
 
5
+ See every block live, at every width, with its props: [openwarelabs.github.io/ui/#/blocks](https://openwarelabs.github.io/ui/#/blocks).
6
+
5
7
  ```sh
6
8
  npm install @openwarelabs/ui @openwarelabs/blocks
7
9
  ```
@@ -28,18 +30,42 @@ The page needs `data-theme` on `<html>` and `class="ow-app"` on `<body>`, as for
28
30
 
29
31
  ## Blocks
30
32
 
31
- | Component | What it is | Content |
32
- | --------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
33
- | `Hero01` | Centred, with a screenshot below that runs on into the page | `title`, `description`, `primaryAction`, `secondaryAction`, `eyebrow`, `note`, `visual` |
34
- | `Hero02` | Split: words on the left, the product on the right | the same, plus `points` (ticked reasons to believe) |
35
- | `Hero03` | With an email field, for a waitlist or a trial | `submitLabel`, `onSubmit(email)`, `successTitle`, `successDescription`, `labels` for the field's words |
36
- | `Hero04` | On Openware's dot grid, with room either side | `start`, `end`, `interactive` |
37
- | `Hero05` | With customers' logos below | `logosTitle`, `logos: { name, logo }[]` |
38
- | `Hero06` | Download buttons for a desktop app, the visitor's system first | `platforms: { id, name, requirement, href \| onDownload }[]`, `version`, `otherDownloads` |
33
+ All 95, by group and category. Each one's props, with their types and descriptions, are on its page in the docs and in the MCP server.
34
+
35
+ ### Marketing
36
+
37
+ - **Headers**: `Header01` floating pill, `Header02` full-width bar, `Header03` centred logo, `Header04` with an announcement, `Header05` phone menu
38
+ - **Heroes**: `Hero01` centred with a screenshot, `Hero02` split with an image, `Hero03` with an email field, `Hero04` on a dot grid, `Hero05` with logos below, `Hero06` download buttons
39
+ - **Section headings**: `SectionHeading01` centred, `SectionHeading02` with a link, `SectionHeading03` split
40
+ - **Features**: `Features01` three columns with icons, `Features02` alternating image and text, `Features03` bento grid, `Features04` tabs that change the screenshot, `Features05` checklist beside a screenshot
41
+ - **Logo clouds**: `Logos01` single row, `Logos02` grid, `Logos03` scrolling
42
+ - **Stats**: `Stats01` row of numbers, `Stats02` on cards, `Stats03` beside a heading
43
+ - **Testimonials**: `Testimonial01` single quote, `Testimonial02` grid of quotes, `Testimonial03` with a company logo
44
+ - **Pricing**: `Pricing01` three plans, `Pricing02` monthly or yearly, `Pricing03` comparison table, `Pricing04` one plan, `Pricing05` pay as you go
45
+ - **FAQs**: `Faq01` accordion, `Faq02` two columns, `Faq03` with a contact card
46
+ - **Calls to action**: `Cta01` banner, `Cta02` on the brand colour, `Cta03` split with an image
47
+ - **Newsletter sign-up**: `Newsletter01` inline, `Newsletter02` card
48
+ - **Blog and changelog**: `Blog01` post grid, `Blog02` featured post, `Blog03` changelog, `Blog04` article
49
+ - **Team**: `Team01` avatar grid, `Team02` cards
50
+ - **Contact**: `Contact01` form with details, `Contact02` support options
51
+ - **Footers**: `Footer01` columns of links, `Footer02` simple, `Footer03` with a newsletter field, `Footer04` big brand mark
52
+
53
+ ### Application
39
54
 
40
- Actions are `{ label, href?, onClick?, startIcon?, endIcon? }`: with `href` they're links styled as buttons, so they work with any router. Every block also takes the attributes of its `<section>` (`className`, `id` and so on). The docs show each one live, with its props: `npm run dev` in the repository, then Blocks → Heroes.
55
+ - **App shells**: `Shell01` sidebar, `Shell02` top bar, `Shell03` three panes, `Shell04` collapsible sidebar
56
+ - **Page headings**: `PageHeading01` title and actions, `PageHeading02` with breadcrumbs and tabs, `PageHeading03` with search and filters
57
+ - **Dashboards**: `Dashboard01` stats and a chart, `Dashboard02` activity, `Dashboard03` usage and billing
58
+ - **Lists and tables**: `List01` table with a toolbar, `List02` bulk actions, `List03` stacked list, `List04` grid of cards
59
+ - **Form layouts**: `Form01` single column, `Form02` sections with descriptions, `Form03` multi-step
60
+ - **Settings**: `Settings01` settings dialog, `Settings02` settings page, `Settings03` API keys, `Settings04` members and roles, `Settings05` danger zone
61
+ - **Sign in and sign up**: `SignIn01` sign-in card, `SignIn02` split with a picture, `SignIn03` magic link, `SignIn04` two-factor code, `SignIn05` reset password
62
+ - **Onboarding**: `Onboarding01` checklist, `Onboarding02` choose how to start, `Onboarding03` welcome dialog
63
+ - **Empty states**: `Empty01` first run, `Empty02` no results, `Empty03` couldn't load
64
+ - **Error pages**: `ErrorPage01` not found, `ErrorPage02` something went wrong, `ErrorPage03` down for maintenance
65
+ - **Notifications and activity**: `Notifications01` inbox popover, `Notifications02` activity feed, `Notifications03` notification settings
66
+ - **Chat and agents**: `Chat01` chat thread, `Chat02` prompt box, `Chat03` agent run
41
67
 
42
- More blocks become components release by release; until then, the others in the docs are code to copy.
68
+ Actions are `{ label, href?, onClick?, startIcon?, endIcon? }`: with `href` they're links styled as buttons, so they work with any router. Every block also takes the attributes of its root element (`className`, `id` and so on), and the words it shows itself (button labels, messages, aria labels) through an optional `labels` prop, with English defaults. Interactive blocks keep their own state and work with no callbacks; pass `onSubmit`, `onSelect` and the like to connect them, or `value` and `onChange` where a block can be controlled. Product pictures (`visual`, `cover`, a chart) are yours to pass in.
43
69
 
44
70
  ## With AI tools
45
71
 
@@ -0,0 +1,6 @@
1
+ import type { Shell01Props } from "./Shell01.types.cjs";
2
+ /**
3
+ * An app's frame: navigation down the left on the canvas, the account at the bottom, and the page on a raised panel
4
+ * beside it. On phones the sidebar folds into a drawer behind a bar at the top.
5
+ */
6
+ export declare function Shell01({ workspace, logo, workspaces, onNewWorkspace, navigation, current, defaultCurrent, onNavigate, account, accountMenu, commands, children, labels, className, ...props }: Shell01Props): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { Shell01Props } from "./Shell01.types.js";
2
+ /**
3
+ * An app's frame: navigation down the left on the canvas, the account at the bottom, and the page on a raised panel
4
+ * beside it. On phones the sidebar folds into a drawer behind a bar at the top.
5
+ */
6
+ export declare function Shell01({ workspace, logo, workspaces, onNewWorkspace, navigation, current, defaultCurrent, onNavigate, account, accountMenu, commands, children, labels, className, ...props }: Shell01Props): import("react").JSX.Element;
@@ -0,0 +1,48 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { AppAccount, AppCommand, AppMenuItem, AppNavGroup, AppWorkspace } from "../../shared/shared.types.cjs";
3
+ export interface Shell01Labels {
4
+ /** The workspace menu's name and heading. @default "Workspaces" */
5
+ workspaces?: string;
6
+ /** The last item in the workspace menu. @default "New workspace" */
7
+ newWorkspace?: string;
8
+ /** The search button's words, and the phone bar's search button's name. @default "Search" */
9
+ search?: string;
10
+ /** The search box's placeholder. @default "Search…" */
11
+ searchPlaceholder?: string;
12
+ /** Names the sidebar for screen readers. @default "Main navigation" */
13
+ navigation?: string;
14
+ /** The account menu's name. @default "Account" */
15
+ account?: string;
16
+ /** The phone bar's menu button's name. @default "Open navigation" */
17
+ openNavigation?: string;
18
+ /** The phone drawer's title. @default "Menu" */
19
+ menu?: string;
20
+ }
21
+ export interface Shell01Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
22
+ /** The workspace's name, at the top of the sidebar. */
23
+ workspace: string;
24
+ /** Its mark before the name, about 22px square. */
25
+ logo?: ReactNode;
26
+ /** The workspaces in its menu, the current one ticked. @default just this one */
27
+ workspaces?: AppWorkspace[];
28
+ /** Called by the workspace menu's last item, "New workspace". */
29
+ onNewWorkspace?(): void;
30
+ /** The places down the sidebar, in groups. On phones they move into a drawer behind a menu button. */
31
+ navigation: AppNavGroup[];
32
+ /** The current place's id, when you keep it yourself. */
33
+ current?: string;
34
+ /** The place that's current to start with. */
35
+ defaultCurrent?: string;
36
+ /** Called with a place's id when it's chosen, from the sidebar, a menu or the search. */
37
+ onNavigate?(id: string): void;
38
+ /** The person signed in, at the bottom of the sidebar. */
39
+ account: AppAccount;
40
+ /** The account menu: profile, settings, sign out. */
41
+ accountMenu?: AppMenuItem[];
42
+ /** What the search finds (⌘K). Without any, there's no search. */
43
+ commands?: AppCommand[];
44
+ /** The page, on a raised panel beside the sidebar. */
45
+ children?: ReactNode;
46
+ /** Words that aren't content (menus' names, buttons for screen readers), in English unless you pass your own. */
47
+ labels?: Shell01Labels;
48
+ }
@@ -0,0 +1,48 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { AppAccount, AppCommand, AppMenuItem, AppNavGroup, AppWorkspace } from "../../shared/shared.types.js";
3
+ export interface Shell01Labels {
4
+ /** The workspace menu's name and heading. @default "Workspaces" */
5
+ workspaces?: string;
6
+ /** The last item in the workspace menu. @default "New workspace" */
7
+ newWorkspace?: string;
8
+ /** The search button's words, and the phone bar's search button's name. @default "Search" */
9
+ search?: string;
10
+ /** The search box's placeholder. @default "Search…" */
11
+ searchPlaceholder?: string;
12
+ /** Names the sidebar for screen readers. @default "Main navigation" */
13
+ navigation?: string;
14
+ /** The account menu's name. @default "Account" */
15
+ account?: string;
16
+ /** The phone bar's menu button's name. @default "Open navigation" */
17
+ openNavigation?: string;
18
+ /** The phone drawer's title. @default "Menu" */
19
+ menu?: string;
20
+ }
21
+ export interface Shell01Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
22
+ /** The workspace's name, at the top of the sidebar. */
23
+ workspace: string;
24
+ /** Its mark before the name, about 22px square. */
25
+ logo?: ReactNode;
26
+ /** The workspaces in its menu, the current one ticked. @default just this one */
27
+ workspaces?: AppWorkspace[];
28
+ /** Called by the workspace menu's last item, "New workspace". */
29
+ onNewWorkspace?(): void;
30
+ /** The places down the sidebar, in groups. On phones they move into a drawer behind a menu button. */
31
+ navigation: AppNavGroup[];
32
+ /** The current place's id, when you keep it yourself. */
33
+ current?: string;
34
+ /** The place that's current to start with. */
35
+ defaultCurrent?: string;
36
+ /** Called with a place's id when it's chosen, from the sidebar, a menu or the search. */
37
+ onNavigate?(id: string): void;
38
+ /** The person signed in, at the bottom of the sidebar. */
39
+ account: AppAccount;
40
+ /** The account menu: profile, settings, sign out. */
41
+ accountMenu?: AppMenuItem[];
42
+ /** What the search finds (⌘K). Without any, there's no search. */
43
+ commands?: AppCommand[];
44
+ /** The page, on a raised panel beside the sidebar. */
45
+ children?: ReactNode;
46
+ /** Words that aren't content (menus' names, buttons for screen readers), in English unless you pass your own. */
47
+ labels?: Shell01Labels;
48
+ }
@@ -0,0 +1,7 @@
1
+ import type { Shell02Props } from "./Shell02.types.cjs";
2
+ /**
3
+ * An app's frame for a few sections: the workspace, the sections and the account across the top on the canvas, and
4
+ * the page on a raised panel under them. Under 1024px the search folds to its icon; on phones the sections and the
5
+ * account move into a drawer.
6
+ */
7
+ export declare function Shell02({ workspace, logo, workspaces, onNewWorkspace, navigation, current, defaultCurrent, onNavigate, account, accountMenu, commands, children, labels, className, ...props }: Shell02Props): import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import type { Shell02Props } from "./Shell02.types.js";
2
+ /**
3
+ * An app's frame for a few sections: the workspace, the sections and the account across the top on the canvas, and
4
+ * the page on a raised panel under them. Under 1024px the search folds to its icon; on phones the sections and the
5
+ * account move into a drawer.
6
+ */
7
+ export declare function Shell02({ workspace, logo, workspaces, onNewWorkspace, navigation, current, defaultCurrent, onNavigate, account, accountMenu, commands, children, labels, className, ...props }: Shell02Props): import("react").JSX.Element;
@@ -0,0 +1,50 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { AppAccount, AppCommand, AppMenuItem, AppNavItem, AppWorkspace } from "../../shared/shared.types.cjs";
3
+ export interface Shell02Labels {
4
+ /** The workspace menu's name and heading. @default "Workspaces" */
5
+ workspaces?: string;
6
+ /** The last item in the workspace menu. @default "New workspace" */
7
+ newWorkspace?: string;
8
+ /** The search button's words, and the search icon's name. @default "Search" */
9
+ search?: string;
10
+ /** The search box's placeholder. @default "Search…" */
11
+ searchPlaceholder?: string;
12
+ /** Names the navigation for screen readers. @default "Main navigation" */
13
+ navigation?: string;
14
+ /** The account menu's name. @default "Account" */
15
+ account?: string;
16
+ /** The avatar button's name. @default "Account: Maya Chen" */
17
+ accountButton?(name: string): string;
18
+ /** The phone menu button's name. @default "Open navigation" */
19
+ openNavigation?: string;
20
+ /** The phone drawer's title. @default "Menu" */
21
+ menu?: string;
22
+ }
23
+ export interface Shell02Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
24
+ /** The workspace's name, at the start of the bar. */
25
+ workspace: string;
26
+ /** Its mark before the name, about 22px square. */
27
+ logo?: ReactNode;
28
+ /** The workspaces in its menu, the current one ticked. @default just this one */
29
+ workspaces?: AppWorkspace[];
30
+ /** Called by the workspace menu's last item, "New workspace". */
31
+ onNewWorkspace?(): void;
32
+ /** The app's few sections, across the bar. Their icons show in the phone drawer only. */
33
+ navigation: AppNavItem[];
34
+ /** The current section's id, when you keep it yourself. */
35
+ current?: string;
36
+ /** The section that's current to start with. @default the first */
37
+ defaultCurrent?: string;
38
+ /** Called with a section's id when it's chosen, from the bar, the drawer, a menu or the search. */
39
+ onNavigate?(id: string): void;
40
+ /** The person signed in: an avatar at the end of the bar, and the foot of the phone drawer. */
41
+ account: AppAccount;
42
+ /** The account menu: profile, settings, sign out. */
43
+ accountMenu?: AppMenuItem[];
44
+ /** What the search finds (⌘K). Without any, there's no search. */
45
+ commands?: AppCommand[];
46
+ /** The page, in a centred column on a raised panel under the bar. */
47
+ children?: ReactNode;
48
+ /** Words that aren't content (menus' names, buttons for screen readers), in English unless you pass your own. */
49
+ labels?: Shell02Labels;
50
+ }
@@ -0,0 +1,50 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { AppAccount, AppCommand, AppMenuItem, AppNavItem, AppWorkspace } from "../../shared/shared.types.js";
3
+ export interface Shell02Labels {
4
+ /** The workspace menu's name and heading. @default "Workspaces" */
5
+ workspaces?: string;
6
+ /** The last item in the workspace menu. @default "New workspace" */
7
+ newWorkspace?: string;
8
+ /** The search button's words, and the search icon's name. @default "Search" */
9
+ search?: string;
10
+ /** The search box's placeholder. @default "Search…" */
11
+ searchPlaceholder?: string;
12
+ /** Names the navigation for screen readers. @default "Main navigation" */
13
+ navigation?: string;
14
+ /** The account menu's name. @default "Account" */
15
+ account?: string;
16
+ /** The avatar button's name. @default "Account: Maya Chen" */
17
+ accountButton?(name: string): string;
18
+ /** The phone menu button's name. @default "Open navigation" */
19
+ openNavigation?: string;
20
+ /** The phone drawer's title. @default "Menu" */
21
+ menu?: string;
22
+ }
23
+ export interface Shell02Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
24
+ /** The workspace's name, at the start of the bar. */
25
+ workspace: string;
26
+ /** Its mark before the name, about 22px square. */
27
+ logo?: ReactNode;
28
+ /** The workspaces in its menu, the current one ticked. @default just this one */
29
+ workspaces?: AppWorkspace[];
30
+ /** Called by the workspace menu's last item, "New workspace". */
31
+ onNewWorkspace?(): void;
32
+ /** The app's few sections, across the bar. Their icons show in the phone drawer only. */
33
+ navigation: AppNavItem[];
34
+ /** The current section's id, when you keep it yourself. */
35
+ current?: string;
36
+ /** The section that's current to start with. @default the first */
37
+ defaultCurrent?: string;
38
+ /** Called with a section's id when it's chosen, from the bar, the drawer, a menu or the search. */
39
+ onNavigate?(id: string): void;
40
+ /** The person signed in: an avatar at the end of the bar, and the foot of the phone drawer. */
41
+ account: AppAccount;
42
+ /** The account menu: profile, settings, sign out. */
43
+ accountMenu?: AppMenuItem[];
44
+ /** What the search finds (⌘K). Without any, there's no search. */
45
+ commands?: AppCommand[];
46
+ /** The page, in a centred column on a raised panel under the bar. */
47
+ children?: ReactNode;
48
+ /** Words that aren't content (menus' names, buttons for screen readers), in English unless you pass your own. */
49
+ labels?: Shell02Labels;
50
+ }
@@ -0,0 +1,6 @@
1
+ import type { Shell03Props } from "./Shell03.types.cjs";
2
+ /**
3
+ * Three panes: a list on the canvas, and the open item with an inspector beside it on a raised panel. Under 1024px
4
+ * the inspector takes the item's place when asked for; on phones one pane shows at a time, each with a way back.
5
+ */
6
+ export declare function Shell03({ workspace, logo, workspaces, onNewWorkspace, listTitle, items, selected, defaultSelected, onSelect, newItem, account, accountMenu, children, inspectorTitle, inspector, defaultInspectorOpen, labels, className, ...props }: Shell03Props): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { Shell03Props } from "./Shell03.types.js";
2
+ /**
3
+ * Three panes: a list on the canvas, and the open item with an inspector beside it on a raised panel. Under 1024px
4
+ * the inspector takes the item's place when asked for; on phones one pane shows at a time, each with a way back.
5
+ */
6
+ export declare function Shell03({ workspace, logo, workspaces, onNewWorkspace, listTitle, items, selected, defaultSelected, onSelect, newItem, account, accountMenu, children, inspectorTitle, inspector, defaultInspectorOpen, labels, className, ...props }: Shell03Props): import("react").JSX.Element;
@@ -0,0 +1,73 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { AppAccount, AppMenuItem, AppWorkspace, BlockStatus } from "../../shared/shared.types.cjs";
3
+ /** One thing in the list on the left. */
4
+ export interface Shell03Item {
5
+ /** Unique in the list; what `selected` and `onSelect` use. */
6
+ id: string;
7
+ /** Its name. The list's filter matches it. */
8
+ label: string;
9
+ /** A small mark before the name: a coloured dot, a 15px icon. */
10
+ icon?: ReactNode;
11
+ /** A caption under the name: when it last changed. */
12
+ caption?: ReactNode;
13
+ /** Its state, as a badge at the item's end. */
14
+ status?: BlockStatus;
15
+ }
16
+ export interface Shell03Labels {
17
+ /** The workspace menu's name and heading. @default "Workspaces" */
18
+ workspaces?: string;
19
+ /** The last item in the workspace menu. @default "New workspace" */
20
+ newWorkspace?: string;
21
+ /** The filter field's placeholder and name. @default "Filter" */
22
+ filter?: string;
23
+ /** What the list says when the filter matches nothing. @default "Nothing matches “…”." */
24
+ noMatch?(query: string): ReactNode;
25
+ /** The account menu's name. @default "Account" */
26
+ account?: string;
27
+ /** The details button's name while the inspector shows. @default "Hide details" */
28
+ hideDetails?: string;
29
+ /** Its name while the inspector is hidden. @default "Show details" */
30
+ showDetails?: string;
31
+ /** The inspector's back button on tablets and phones. @default "Back to billing-api" */
32
+ backTo?(label: string): string;
33
+ }
34
+ export interface Shell03Props extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "onSelect"> {
35
+ /** The workspace's name, at the top of the list. */
36
+ workspace: string;
37
+ /** Its mark before the name, about 22px square. */
38
+ logo?: ReactNode;
39
+ /** The workspaces in its menu, the current one ticked. @default just this one */
40
+ workspaces?: AppWorkspace[];
41
+ /** Called by the workspace menu's last item, "New workspace". */
42
+ onNewWorkspace?(): void;
43
+ /** What the list holds, as its heading, its crumb and its back button's words: "Projects". */
44
+ listTitle: string;
45
+ /** The things in the list, which a field above it filters. */
46
+ items: Shell03Item[];
47
+ /** The open item's id, when you keep it yourself. */
48
+ selected?: string;
49
+ /** The item open to start with. @default the first */
50
+ defaultSelected?: string;
51
+ /** Called with an item's id when it's opened. */
52
+ onSelect?(id: string): void;
53
+ /** An icon button beside the list's heading, with a tooltip: "New project". */
54
+ newItem?: {
55
+ label: string;
56
+ onClick?(): void;
57
+ };
58
+ /** The person signed in, at the bottom of the list. */
59
+ account: AppAccount;
60
+ /** The account menu: profile, settings, sign out. */
61
+ accountMenu?: AppMenuItem[];
62
+ /** The open item's page, in the middle. Its h1 takes focus when a narrow screen swaps to it. */
63
+ children?: ReactNode;
64
+ /** The inspector's heading. @default "Details" */
65
+ inspectorTitle?: ReactNode;
66
+ /** What the inspector on the right shows about the open item. Under 1024px wide it takes the item's place. */
67
+ inspector?: ReactNode;
68
+ /** Whether the inspector shows to start with, on wide screens. @default true */
69
+ defaultInspectorOpen?: boolean;
70
+ /** Words that aren't content (names for screen readers, the filter), in English unless you pass your own. */
71
+ labels?: Shell03Labels;
72
+ }
73
+ export type Shell03View = "list" | "item" | "inspector";
@@ -0,0 +1,73 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { AppAccount, AppMenuItem, AppWorkspace, BlockStatus } from "../../shared/shared.types.js";
3
+ /** One thing in the list on the left. */
4
+ export interface Shell03Item {
5
+ /** Unique in the list; what `selected` and `onSelect` use. */
6
+ id: string;
7
+ /** Its name. The list's filter matches it. */
8
+ label: string;
9
+ /** A small mark before the name: a coloured dot, a 15px icon. */
10
+ icon?: ReactNode;
11
+ /** A caption under the name: when it last changed. */
12
+ caption?: ReactNode;
13
+ /** Its state, as a badge at the item's end. */
14
+ status?: BlockStatus;
15
+ }
16
+ export interface Shell03Labels {
17
+ /** The workspace menu's name and heading. @default "Workspaces" */
18
+ workspaces?: string;
19
+ /** The last item in the workspace menu. @default "New workspace" */
20
+ newWorkspace?: string;
21
+ /** The filter field's placeholder and name. @default "Filter" */
22
+ filter?: string;
23
+ /** What the list says when the filter matches nothing. @default "Nothing matches “…”." */
24
+ noMatch?(query: string): ReactNode;
25
+ /** The account menu's name. @default "Account" */
26
+ account?: string;
27
+ /** The details button's name while the inspector shows. @default "Hide details" */
28
+ hideDetails?: string;
29
+ /** Its name while the inspector is hidden. @default "Show details" */
30
+ showDetails?: string;
31
+ /** The inspector's back button on tablets and phones. @default "Back to billing-api" */
32
+ backTo?(label: string): string;
33
+ }
34
+ export interface Shell03Props extends Omit<HTMLAttributes<HTMLDivElement>, "children" | "onSelect"> {
35
+ /** The workspace's name, at the top of the list. */
36
+ workspace: string;
37
+ /** Its mark before the name, about 22px square. */
38
+ logo?: ReactNode;
39
+ /** The workspaces in its menu, the current one ticked. @default just this one */
40
+ workspaces?: AppWorkspace[];
41
+ /** Called by the workspace menu's last item, "New workspace". */
42
+ onNewWorkspace?(): void;
43
+ /** What the list holds, as its heading, its crumb and its back button's words: "Projects". */
44
+ listTitle: string;
45
+ /** The things in the list, which a field above it filters. */
46
+ items: Shell03Item[];
47
+ /** The open item's id, when you keep it yourself. */
48
+ selected?: string;
49
+ /** The item open to start with. @default the first */
50
+ defaultSelected?: string;
51
+ /** Called with an item's id when it's opened. */
52
+ onSelect?(id: string): void;
53
+ /** An icon button beside the list's heading, with a tooltip: "New project". */
54
+ newItem?: {
55
+ label: string;
56
+ onClick?(): void;
57
+ };
58
+ /** The person signed in, at the bottom of the list. */
59
+ account: AppAccount;
60
+ /** The account menu: profile, settings, sign out. */
61
+ accountMenu?: AppMenuItem[];
62
+ /** The open item's page, in the middle. Its h1 takes focus when a narrow screen swaps to it. */
63
+ children?: ReactNode;
64
+ /** The inspector's heading. @default "Details" */
65
+ inspectorTitle?: ReactNode;
66
+ /** What the inspector on the right shows about the open item. Under 1024px wide it takes the item's place. */
67
+ inspector?: ReactNode;
68
+ /** Whether the inspector shows to start with, on wide screens. @default true */
69
+ defaultInspectorOpen?: boolean;
70
+ /** Words that aren't content (names for screen readers, the filter), in English unless you pass your own. */
71
+ labels?: Shell03Labels;
72
+ }
73
+ export type Shell03View = "list" | "item" | "inspector";
@@ -0,0 +1,6 @@
1
+ import type { Shell04Props } from "./Shell04.types.cjs";
2
+ /**
3
+ * An app's frame with a sidebar that folds down to its icons, from a button in the page's toolbar: the labels fade
4
+ * and the edge closes over them, and each item is named in a tooltip. On phones the sidebar becomes a drawer.
5
+ */
6
+ export declare function Shell04({ workspace, logo, workspaces, onNewWorkspace, navigation, current, defaultCurrent, onNavigate, defaultCollapsed, onCollapsedChange, account, accountMenu, commands, breadcrumbs, children, labels, className, ...props }: Shell04Props): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { Shell04Props } from "./Shell04.types.js";
2
+ /**
3
+ * An app's frame with a sidebar that folds down to its icons, from a button in the page's toolbar: the labels fade
4
+ * and the edge closes over them, and each item is named in a tooltip. On phones the sidebar becomes a drawer.
5
+ */
6
+ export declare function Shell04({ workspace, logo, workspaces, onNewWorkspace, navigation, current, defaultCurrent, onNavigate, defaultCollapsed, onCollapsedChange, account, accountMenu, commands, breadcrumbs, children, labels, className, ...props }: Shell04Props): import("react").JSX.Element;
@@ -0,0 +1,68 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { AppAccount, AppCommand, AppMenuItem, AppNavGroup, AppNavItem, AppWorkspace } from "../../shared/shared.types.cjs";
3
+ /** A place in the sidebar, which can mark something new on its icon while the sidebar is folded. */
4
+ export interface Shell04NavItem extends AppNavItem {
5
+ /** Puts a small brass dot on the icon while the sidebar is folded, where the count can't show. */
6
+ unread?: boolean;
7
+ }
8
+ /** A group of places in the sidebar. */
9
+ export interface Shell04NavGroup extends Omit<AppNavGroup, "items"> {
10
+ /** Its places, in order. */
11
+ items: Shell04NavItem[];
12
+ }
13
+ export interface Shell04Labels {
14
+ /** The workspace menu's name and heading. @default "Workspaces" */
15
+ workspaces?: string;
16
+ /** The last item in the workspace menu. @default "New workspace" */
17
+ newWorkspace?: string;
18
+ /** The search button's words, and the phone bar's search button's name. @default "Search" */
19
+ search?: string;
20
+ /** The search box's placeholder. @default "Search…" */
21
+ searchPlaceholder?: string;
22
+ /** Names the sidebar for screen readers. @default "Main navigation" */
23
+ navigation?: string;
24
+ /** The account menu's name. @default "Account" */
25
+ account?: string;
26
+ /** The phone bar's menu button's name. @default "Open navigation" */
27
+ openNavigation?: string;
28
+ /** The phone drawer's title. @default "Menu" */
29
+ menu?: string;
30
+ /** The fold button's name while the sidebar is open. @default "Collapse sidebar" */
31
+ collapse?: string;
32
+ /** Its name while it's folded. @default "Expand sidebar" */
33
+ expand?: string;
34
+ }
35
+ export interface Shell04Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
36
+ /** The workspace's name, at the top of the sidebar. */
37
+ workspace: string;
38
+ /** Its mark before the name, about 22px square: it stays in view when the sidebar folds. */
39
+ logo?: ReactNode;
40
+ /** The workspaces in its menu, the current one ticked. @default just this one */
41
+ workspaces?: AppWorkspace[];
42
+ /** Called by the workspace menu's last item, "New workspace". */
43
+ onNewWorkspace?(): void;
44
+ /** The places down the sidebar, in groups. Folded, only their icons show, each named in a tooltip. */
45
+ navigation: Shell04NavGroup[];
46
+ /** The current place's id, when you keep it yourself. */
47
+ current?: string;
48
+ /** The place that's current to start with. */
49
+ defaultCurrent?: string;
50
+ /** Called with a place's id when it's chosen, from the sidebar, a menu or the search. */
51
+ onNavigate?(id: string): void;
52
+ /** Whether the sidebar starts folded to its icons. @default folded under 1024px wide, open above */
53
+ defaultCollapsed?: boolean;
54
+ /** Called when the sidebar folds or opens. */
55
+ onCollapsedChange?(collapsed: boolean): void;
56
+ /** The person signed in, at the bottom of the sidebar. */
57
+ account: AppAccount;
58
+ /** The account menu: profile, settings, sign out. */
59
+ accountMenu?: AppMenuItem[];
60
+ /** What the search finds (⌘K). Without any, there's no search. */
61
+ commands?: AppCommand[];
62
+ /** Where the page sits, in the toolbar beside the fold button: the last is the page itself. */
63
+ breadcrumbs?: ReactNode[];
64
+ /** The page, on a raised panel beside the sidebar. */
65
+ children?: ReactNode;
66
+ /** Words that aren't content (menus' names, buttons for screen readers), in English unless you pass your own. */
67
+ labels?: Shell04Labels;
68
+ }
@@ -0,0 +1,68 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { AppAccount, AppCommand, AppMenuItem, AppNavGroup, AppNavItem, AppWorkspace } from "../../shared/shared.types.js";
3
+ /** A place in the sidebar, which can mark something new on its icon while the sidebar is folded. */
4
+ export interface Shell04NavItem extends AppNavItem {
5
+ /** Puts a small brass dot on the icon while the sidebar is folded, where the count can't show. */
6
+ unread?: boolean;
7
+ }
8
+ /** A group of places in the sidebar. */
9
+ export interface Shell04NavGroup extends Omit<AppNavGroup, "items"> {
10
+ /** Its places, in order. */
11
+ items: Shell04NavItem[];
12
+ }
13
+ export interface Shell04Labels {
14
+ /** The workspace menu's name and heading. @default "Workspaces" */
15
+ workspaces?: string;
16
+ /** The last item in the workspace menu. @default "New workspace" */
17
+ newWorkspace?: string;
18
+ /** The search button's words, and the phone bar's search button's name. @default "Search" */
19
+ search?: string;
20
+ /** The search box's placeholder. @default "Search…" */
21
+ searchPlaceholder?: string;
22
+ /** Names the sidebar for screen readers. @default "Main navigation" */
23
+ navigation?: string;
24
+ /** The account menu's name. @default "Account" */
25
+ account?: string;
26
+ /** The phone bar's menu button's name. @default "Open navigation" */
27
+ openNavigation?: string;
28
+ /** The phone drawer's title. @default "Menu" */
29
+ menu?: string;
30
+ /** The fold button's name while the sidebar is open. @default "Collapse sidebar" */
31
+ collapse?: string;
32
+ /** Its name while it's folded. @default "Expand sidebar" */
33
+ expand?: string;
34
+ }
35
+ export interface Shell04Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
36
+ /** The workspace's name, at the top of the sidebar. */
37
+ workspace: string;
38
+ /** Its mark before the name, about 22px square: it stays in view when the sidebar folds. */
39
+ logo?: ReactNode;
40
+ /** The workspaces in its menu, the current one ticked. @default just this one */
41
+ workspaces?: AppWorkspace[];
42
+ /** Called by the workspace menu's last item, "New workspace". */
43
+ onNewWorkspace?(): void;
44
+ /** The places down the sidebar, in groups. Folded, only their icons show, each named in a tooltip. */
45
+ navigation: Shell04NavGroup[];
46
+ /** The current place's id, when you keep it yourself. */
47
+ current?: string;
48
+ /** The place that's current to start with. */
49
+ defaultCurrent?: string;
50
+ /** Called with a place's id when it's chosen, from the sidebar, a menu or the search. */
51
+ onNavigate?(id: string): void;
52
+ /** Whether the sidebar starts folded to its icons. @default folded under 1024px wide, open above */
53
+ defaultCollapsed?: boolean;
54
+ /** Called when the sidebar folds or opens. */
55
+ onCollapsedChange?(collapsed: boolean): void;
56
+ /** The person signed in, at the bottom of the sidebar. */
57
+ account: AppAccount;
58
+ /** The account menu: profile, settings, sign out. */
59
+ accountMenu?: AppMenuItem[];
60
+ /** What the search finds (⌘K). Without any, there's no search. */
61
+ commands?: AppCommand[];
62
+ /** Where the page sits, in the toolbar beside the fold button: the last is the page itself. */
63
+ breadcrumbs?: ReactNode[];
64
+ /** The page, on a raised panel beside the sidebar. */
65
+ children?: ReactNode;
66
+ /** Words that aren't content (menus' names, buttons for screen readers), in English unless you pass your own. */
67
+ labels?: Shell04Labels;
68
+ }
@@ -0,0 +1,3 @@
1
+ import type { Blog01Props } from "./Blog01.types.cjs";
2
+ /** A grid of post cards, each with a cover, its category and date, a title, an excerpt and the author, with a filter by category. */
3
+ export declare function Blog01({ eyebrow, title, description, posts, categories, moreAction, labels, className, ...props }: Blog01Props): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { Blog01Props } from "./Blog01.types.js";
2
+ /** A grid of post cards, each with a cover, its category and date, a title, an excerpt and the author, with a filter by category. */
3
+ export declare function Blog01({ eyebrow, title, description, posts, categories, moreAction, labels, className, ...props }: Blog01Props): import("react").JSX.Element;