@openwarelabs/blocks 0.8.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/README.md +36 -12
  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/calls-to-action/Cta01/Cta01.d.cts +3 -0
  35. package/dist/calls-to-action/Cta01/Cta01.d.ts +3 -0
  36. package/dist/calls-to-action/Cta01/Cta01.types.d.cts +14 -0
  37. package/dist/calls-to-action/Cta01/Cta01.types.d.ts +14 -0
  38. package/dist/calls-to-action/Cta02/Cta02.d.cts +3 -0
  39. package/dist/calls-to-action/Cta02/Cta02.d.ts +3 -0
  40. package/dist/calls-to-action/Cta02/Cta02.types.d.cts +16 -0
  41. package/dist/calls-to-action/Cta02/Cta02.types.d.ts +16 -0
  42. package/dist/calls-to-action/Cta03/Cta03.d.cts +3 -0
  43. package/dist/calls-to-action/Cta03/Cta03.d.ts +3 -0
  44. package/dist/calls-to-action/Cta03/Cta03.types.d.cts +18 -0
  45. package/dist/calls-to-action/Cta03/Cta03.types.d.ts +18 -0
  46. package/dist/chat/Chat01/Chat01.d.cts +6 -0
  47. package/dist/chat/Chat01/Chat01.d.ts +6 -0
  48. package/dist/chat/Chat01/Chat01.types.d.cts +95 -0
  49. package/dist/chat/Chat01/Chat01.types.d.ts +95 -0
  50. package/dist/chat/Chat02/Chat02.d.cts +6 -0
  51. package/dist/chat/Chat02/Chat02.d.ts +6 -0
  52. package/dist/chat/Chat02/Chat02.types.d.cts +70 -0
  53. package/dist/chat/Chat02/Chat02.types.d.ts +70 -0
  54. package/dist/chat/Chat03/Chat03.d.cts +6 -0
  55. package/dist/chat/Chat03/Chat03.d.ts +6 -0
  56. package/dist/chat/Chat03/Chat03.types.d.cts +96 -0
  57. package/dist/chat/Chat03/Chat03.types.d.ts +96 -0
  58. package/dist/contact/Contact01/Contact01.d.cts +3 -0
  59. package/dist/contact/Contact01/Contact01.d.ts +3 -0
  60. package/dist/contact/Contact01/Contact01.types.d.cts +103 -0
  61. package/dist/contact/Contact01/Contact01.types.d.ts +103 -0
  62. package/dist/contact/Contact02/Contact02.d.cts +3 -0
  63. package/dist/contact/Contact02/Contact02.d.ts +3 -0
  64. package/dist/contact/Contact02/Contact02.types.d.cts +56 -0
  65. package/dist/contact/Contact02/Contact02.types.d.ts +56 -0
  66. package/dist/dashboards/Dashboard01/Dashboard01.d.cts +3 -0
  67. package/dist/dashboards/Dashboard01/Dashboard01.d.ts +3 -0
  68. package/dist/dashboards/Dashboard01/Dashboard01.types.d.cts +53 -0
  69. package/dist/dashboards/Dashboard01/Dashboard01.types.d.ts +53 -0
  70. package/dist/dashboards/Dashboard02/Dashboard02.d.cts +3 -0
  71. package/dist/dashboards/Dashboard02/Dashboard02.d.ts +3 -0
  72. package/dist/dashboards/Dashboard02/Dashboard02.types.d.cts +74 -0
  73. package/dist/dashboards/Dashboard02/Dashboard02.types.d.ts +74 -0
  74. package/dist/dashboards/Dashboard03/Dashboard03.d.cts +6 -0
  75. package/dist/dashboards/Dashboard03/Dashboard03.d.ts +6 -0
  76. package/dist/dashboards/Dashboard03/Dashboard03.types.d.cts +131 -0
  77. package/dist/dashboards/Dashboard03/Dashboard03.types.d.ts +131 -0
  78. package/dist/empty-states/Empty01/Empty01.d.cts +3 -0
  79. package/dist/empty-states/Empty01/Empty01.d.ts +3 -0
  80. package/dist/empty-states/Empty01/Empty01.types.d.cts +94 -0
  81. package/dist/empty-states/Empty01/Empty01.types.d.ts +94 -0
  82. package/dist/empty-states/Empty02/Empty02.d.cts +3 -0
  83. package/dist/empty-states/Empty02/Empty02.d.ts +3 -0
  84. package/dist/empty-states/Empty02/Empty02.types.d.cts +72 -0
  85. package/dist/empty-states/Empty02/Empty02.types.d.ts +72 -0
  86. package/dist/empty-states/Empty03/Empty03.d.cts +3 -0
  87. package/dist/empty-states/Empty03/Empty03.d.ts +3 -0
  88. package/dist/empty-states/Empty03/Empty03.types.d.cts +72 -0
  89. package/dist/empty-states/Empty03/Empty03.types.d.ts +72 -0
  90. package/dist/error-pages/ErrorPage01/ErrorPage01.d.cts +3 -0
  91. package/dist/error-pages/ErrorPage01/ErrorPage01.d.ts +3 -0
  92. package/dist/error-pages/ErrorPage01/ErrorPage01.types.d.cts +48 -0
  93. package/dist/error-pages/ErrorPage01/ErrorPage01.types.d.ts +48 -0
  94. package/dist/error-pages/ErrorPage02/ErrorPage02.d.cts +3 -0
  95. package/dist/error-pages/ErrorPage02/ErrorPage02.d.ts +3 -0
  96. package/dist/error-pages/ErrorPage02/ErrorPage02.types.d.cts +45 -0
  97. package/dist/error-pages/ErrorPage02/ErrorPage02.types.d.ts +45 -0
  98. package/dist/error-pages/ErrorPage03/ErrorPage03.d.cts +3 -0
  99. package/dist/error-pages/ErrorPage03/ErrorPage03.d.ts +3 -0
  100. package/dist/error-pages/ErrorPage03/ErrorPage03.types.d.cts +45 -0
  101. package/dist/error-pages/ErrorPage03/ErrorPage03.types.d.ts +45 -0
  102. package/dist/faq/Faq01/Faq01.d.cts +3 -0
  103. package/dist/faq/Faq01/Faq01.d.ts +3 -0
  104. package/dist/faq/Faq01/Faq01.types.d.cts +23 -0
  105. package/dist/faq/Faq01/Faq01.types.d.ts +23 -0
  106. package/dist/faq/Faq02/Faq02.d.cts +3 -0
  107. package/dist/faq/Faq02/Faq02.d.ts +3 -0
  108. package/dist/faq/Faq02/Faq02.types.d.cts +24 -0
  109. package/dist/faq/Faq02/Faq02.types.d.ts +24 -0
  110. package/dist/faq/Faq03/Faq03.d.cts +3 -0
  111. package/dist/faq/Faq03/Faq03.d.ts +3 -0
  112. package/dist/faq/Faq03/Faq03.types.d.cts +42 -0
  113. package/dist/faq/Faq03/Faq03.types.d.ts +42 -0
  114. package/dist/forms/Form01/Form01.d.cts +3 -0
  115. package/dist/forms/Form01/Form01.d.ts +3 -0
  116. package/dist/forms/Form01/Form01.types.d.cts +20 -0
  117. package/dist/forms/Form01/Form01.types.d.ts +20 -0
  118. package/dist/forms/Form02/Form02.d.cts +3 -0
  119. package/dist/forms/Form02/Form02.d.ts +3 -0
  120. package/dist/forms/Form02/Form02.types.d.cts +38 -0
  121. package/dist/forms/Form02/Form02.types.d.ts +38 -0
  122. package/dist/forms/Form03/Form03.d.cts +3 -0
  123. package/dist/forms/Form03/Form03.d.ts +3 -0
  124. package/dist/forms/Form03/Form03.types.d.cts +55 -0
  125. package/dist/forms/Form03/Form03.types.d.ts +55 -0
  126. package/dist/index.cjs +6244 -22
  127. package/dist/index.cjs.map +4 -4
  128. package/dist/index.d.cts +141 -1
  129. package/dist/index.d.ts +141 -1
  130. package/dist/index.js +6274 -19
  131. package/dist/index.js.map +4 -4
  132. package/dist/lists-and-tables/List01/List01.d.cts +6 -0
  133. package/dist/lists-and-tables/List01/List01.d.ts +6 -0
  134. package/dist/lists-and-tables/List01/List01.types.d.cts +60 -0
  135. package/dist/lists-and-tables/List01/List01.types.d.ts +60 -0
  136. package/dist/lists-and-tables/List02/List02.d.cts +3 -0
  137. package/dist/lists-and-tables/List02/List02.d.ts +3 -0
  138. package/dist/lists-and-tables/List02/List02.types.d.cts +54 -0
  139. package/dist/lists-and-tables/List02/List02.types.d.ts +54 -0
  140. package/dist/lists-and-tables/List03/List03.d.cts +3 -0
  141. package/dist/lists-and-tables/List03/List03.d.ts +3 -0
  142. package/dist/lists-and-tables/List03/List03.types.d.cts +41 -0
  143. package/dist/lists-and-tables/List03/List03.types.d.ts +41 -0
  144. package/dist/lists-and-tables/List04/List04.d.cts +3 -0
  145. package/dist/lists-and-tables/List04/List04.d.ts +3 -0
  146. package/dist/lists-and-tables/List04/List04.types.d.cts +67 -0
  147. package/dist/lists-and-tables/List04/List04.types.d.ts +67 -0
  148. package/dist/logo-clouds/Logos01/Logos01.d.cts +3 -0
  149. package/dist/logo-clouds/Logos01/Logos01.d.ts +3 -0
  150. package/dist/logo-clouds/Logos01/Logos01.types.d.cts +13 -0
  151. package/dist/logo-clouds/Logos01/Logos01.types.d.ts +13 -0
  152. package/dist/logo-clouds/Logos02/Logos02.d.cts +3 -0
  153. package/dist/logo-clouds/Logos02/Logos02.d.ts +3 -0
  154. package/dist/logo-clouds/Logos02/Logos02.types.d.cts +28 -0
  155. package/dist/logo-clouds/Logos02/Logos02.types.d.ts +28 -0
  156. package/dist/logo-clouds/Logos03/Logos03.d.cts +3 -0
  157. package/dist/logo-clouds/Logos03/Logos03.d.ts +3 -0
  158. package/dist/logo-clouds/Logos03/Logos03.types.d.cts +23 -0
  159. package/dist/logo-clouds/Logos03/Logos03.types.d.ts +23 -0
  160. package/dist/newsletter/Newsletter01/Newsletter01.d.cts +3 -0
  161. package/dist/newsletter/Newsletter01/Newsletter01.d.ts +3 -0
  162. package/dist/newsletter/Newsletter01/Newsletter01.types.d.cts +39 -0
  163. package/dist/newsletter/Newsletter01/Newsletter01.types.d.ts +39 -0
  164. package/dist/newsletter/Newsletter02/Newsletter02.d.cts +3 -0
  165. package/dist/newsletter/Newsletter02/Newsletter02.d.ts +3 -0
  166. package/dist/newsletter/Newsletter02/Newsletter02.types.d.cts +42 -0
  167. package/dist/newsletter/Newsletter02/Newsletter02.types.d.ts +42 -0
  168. package/dist/notifications/Notifications01/Notifications01.d.cts +3 -0
  169. package/dist/notifications/Notifications01/Notifications01.d.ts +3 -0
  170. package/dist/notifications/Notifications01/Notifications01.types.d.cts +74 -0
  171. package/dist/notifications/Notifications01/Notifications01.types.d.ts +74 -0
  172. package/dist/notifications/Notifications02/Notifications02.d.cts +3 -0
  173. package/dist/notifications/Notifications02/Notifications02.d.ts +3 -0
  174. package/dist/notifications/Notifications02/Notifications02.types.d.cts +65 -0
  175. package/dist/notifications/Notifications02/Notifications02.types.d.ts +65 -0
  176. package/dist/notifications/Notifications03/Notifications03.d.cts +3 -0
  177. package/dist/notifications/Notifications03/Notifications03.d.ts +3 -0
  178. package/dist/notifications/Notifications03/Notifications03.types.d.cts +87 -0
  179. package/dist/notifications/Notifications03/Notifications03.types.d.ts +87 -0
  180. package/dist/onboarding/Onboarding01/Onboarding01.d.cts +3 -0
  181. package/dist/onboarding/Onboarding01/Onboarding01.d.ts +3 -0
  182. package/dist/onboarding/Onboarding01/Onboarding01.types.d.cts +46 -0
  183. package/dist/onboarding/Onboarding01/Onboarding01.types.d.ts +46 -0
  184. package/dist/onboarding/Onboarding02/Onboarding02.d.cts +3 -0
  185. package/dist/onboarding/Onboarding02/Onboarding02.d.ts +3 -0
  186. package/dist/onboarding/Onboarding02/Onboarding02.types.d.cts +68 -0
  187. package/dist/onboarding/Onboarding02/Onboarding02.types.d.ts +68 -0
  188. package/dist/onboarding/Onboarding03/Onboarding03.d.cts +3 -0
  189. package/dist/onboarding/Onboarding03/Onboarding03.d.ts +3 -0
  190. package/dist/onboarding/Onboarding03/Onboarding03.types.d.cts +38 -0
  191. package/dist/onboarding/Onboarding03/Onboarding03.types.d.ts +38 -0
  192. package/dist/page-headings/PageHeading01/PageHeading01.d.cts +6 -0
  193. package/dist/page-headings/PageHeading01/PageHeading01.d.ts +6 -0
  194. package/dist/page-headings/PageHeading01/PageHeading01.types.d.cts +35 -0
  195. package/dist/page-headings/PageHeading01/PageHeading01.types.d.ts +35 -0
  196. package/dist/page-headings/PageHeading02/PageHeading02.d.cts +3 -0
  197. package/dist/page-headings/PageHeading02/PageHeading02.d.ts +3 -0
  198. package/dist/page-headings/PageHeading02/PageHeading02.types.d.cts +49 -0
  199. package/dist/page-headings/PageHeading02/PageHeading02.types.d.ts +49 -0
  200. package/dist/page-headings/PageHeading03/PageHeading03.d.cts +6 -0
  201. package/dist/page-headings/PageHeading03/PageHeading03.d.ts +6 -0
  202. package/dist/page-headings/PageHeading03/PageHeading03.types.d.cts +83 -0
  203. package/dist/page-headings/PageHeading03/PageHeading03.types.d.ts +83 -0
  204. package/dist/section-headings/SectionHeading01/SectionHeading01.d.cts +3 -0
  205. package/dist/section-headings/SectionHeading01/SectionHeading01.d.ts +3 -0
  206. package/dist/section-headings/SectionHeading01/SectionHeading01.types.d.cts +9 -0
  207. package/dist/section-headings/SectionHeading01/SectionHeading01.types.d.ts +9 -0
  208. package/dist/section-headings/SectionHeading02/SectionHeading02.d.cts +3 -0
  209. package/dist/section-headings/SectionHeading02/SectionHeading02.d.ts +3 -0
  210. package/dist/section-headings/SectionHeading02/SectionHeading02.types.d.cts +12 -0
  211. package/dist/section-headings/SectionHeading02/SectionHeading02.types.d.ts +12 -0
  212. package/dist/section-headings/SectionHeading03/SectionHeading03.d.cts +3 -0
  213. package/dist/section-headings/SectionHeading03/SectionHeading03.d.ts +3 -0
  214. package/dist/section-headings/SectionHeading03/SectionHeading03.types.d.cts +12 -0
  215. package/dist/section-headings/SectionHeading03/SectionHeading03.types.d.ts +12 -0
  216. package/dist/settings/Settings01/Settings01.d.cts +3 -0
  217. package/dist/settings/Settings01/Settings01.d.ts +3 -0
  218. package/dist/settings/Settings01/Settings01.types.d.cts +46 -0
  219. package/dist/settings/Settings01/Settings01.types.d.ts +46 -0
  220. package/dist/settings/Settings02/Settings02.d.cts +3 -0
  221. package/dist/settings/Settings02/Settings02.d.ts +3 -0
  222. package/dist/settings/Settings02/Settings02.types.d.cts +45 -0
  223. package/dist/settings/Settings02/Settings02.types.d.ts +45 -0
  224. package/dist/settings/Settings03/Settings03.d.cts +3 -0
  225. package/dist/settings/Settings03/Settings03.d.ts +3 -0
  226. package/dist/settings/Settings03/Settings03.types.d.cts +132 -0
  227. package/dist/settings/Settings03/Settings03.types.d.ts +132 -0
  228. package/dist/settings/Settings04/Settings04.d.cts +3 -0
  229. package/dist/settings/Settings04/Settings04.d.ts +3 -0
  230. package/dist/settings/Settings04/Settings04.types.d.cts +124 -0
  231. package/dist/settings/Settings04/Settings04.types.d.ts +124 -0
  232. package/dist/settings/Settings05/Settings05.d.cts +3 -0
  233. package/dist/settings/Settings05/Settings05.d.ts +3 -0
  234. package/dist/settings/Settings05/Settings05.types.d.cts +94 -0
  235. package/dist/settings/Settings05/Settings05.types.d.ts +94 -0
  236. package/dist/shared/AppWorkspaceItems.d.cts +3 -0
  237. package/dist/shared/AppWorkspaceItems.d.ts +3 -0
  238. package/dist/shared/BlockActions.d.cts +1 -1
  239. package/dist/shared/BlockActions.d.ts +1 -1
  240. package/dist/shared/BlockMenuItems.d.cts +3 -0
  241. package/dist/shared/BlockMenuItems.d.ts +3 -0
  242. package/dist/shared/appShell.d.cts +19 -0
  243. package/dist/shared/appShell.d.ts +19 -0
  244. package/dist/shared/icons.d.cts +59 -13
  245. package/dist/shared/icons.d.ts +59 -13
  246. package/dist/shared/shared.types.d.cts +128 -0
  247. package/dist/shared/shared.types.d.ts +128 -0
  248. package/dist/shared/tableColumns.d.cts +10 -0
  249. package/dist/shared/tableColumns.d.ts +10 -0
  250. package/dist/sign-in/SignIn01/SignIn01.d.cts +3 -0
  251. package/dist/sign-in/SignIn01/SignIn01.d.ts +3 -0
  252. package/dist/sign-in/SignIn01/SignIn01.types.d.cts +52 -0
  253. package/dist/sign-in/SignIn01/SignIn01.types.d.ts +52 -0
  254. package/dist/sign-in/SignIn02/SignIn02.d.cts +3 -0
  255. package/dist/sign-in/SignIn02/SignIn02.d.ts +3 -0
  256. package/dist/sign-in/SignIn02/SignIn02.types.d.cts +79 -0
  257. package/dist/sign-in/SignIn02/SignIn02.types.d.ts +79 -0
  258. package/dist/sign-in/SignIn03/SignIn03.d.cts +3 -0
  259. package/dist/sign-in/SignIn03/SignIn03.d.ts +3 -0
  260. package/dist/sign-in/SignIn03/SignIn03.types.d.cts +51 -0
  261. package/dist/sign-in/SignIn03/SignIn03.types.d.ts +51 -0
  262. package/dist/sign-in/SignIn04/SignIn04.d.cts +3 -0
  263. package/dist/sign-in/SignIn04/SignIn04.d.ts +3 -0
  264. package/dist/sign-in/SignIn04/SignIn04.types.d.cts +56 -0
  265. package/dist/sign-in/SignIn04/SignIn04.types.d.ts +56 -0
  266. package/dist/sign-in/SignIn05/SignIn05.d.cts +3 -0
  267. package/dist/sign-in/SignIn05/SignIn05.d.ts +3 -0
  268. package/dist/sign-in/SignIn05/SignIn05.types.d.cts +86 -0
  269. package/dist/sign-in/SignIn05/SignIn05.types.d.ts +86 -0
  270. package/dist/stats/Stats01/Stats01.d.cts +3 -0
  271. package/dist/stats/Stats01/Stats01.d.ts +3 -0
  272. package/dist/stats/Stats01/Stats01.types.d.cts +19 -0
  273. package/dist/stats/Stats01/Stats01.types.d.ts +19 -0
  274. package/dist/stats/Stats02/Stats02.d.cts +3 -0
  275. package/dist/stats/Stats02/Stats02.d.ts +3 -0
  276. package/dist/stats/Stats02/Stats02.types.d.cts +30 -0
  277. package/dist/stats/Stats02/Stats02.types.d.ts +30 -0
  278. package/dist/stats/Stats03/Stats03.d.cts +3 -0
  279. package/dist/stats/Stats03/Stats03.d.ts +3 -0
  280. package/dist/stats/Stats03/Stats03.types.d.cts +24 -0
  281. package/dist/stats/Stats03/Stats03.types.d.ts +24 -0
  282. package/dist/styles.css +12065 -2457
  283. package/dist/team/Team01/Team01.d.cts +3 -0
  284. package/dist/team/Team01/Team01.d.ts +3 -0
  285. package/dist/team/Team01/Team01.types.d.cts +25 -0
  286. package/dist/team/Team01/Team01.types.d.ts +25 -0
  287. package/dist/team/Team02/Team02.d.cts +3 -0
  288. package/dist/team/Team02/Team02.d.ts +3 -0
  289. package/dist/team/Team02/Team02.types.d.cts +37 -0
  290. package/dist/team/Team02/Team02.types.d.ts +37 -0
  291. package/dist/testimonials/Testimonial01/Testimonial01.d.cts +3 -0
  292. package/dist/testimonials/Testimonial01/Testimonial01.d.ts +3 -0
  293. package/dist/testimonials/Testimonial01/Testimonial01.types.d.cts +21 -0
  294. package/dist/testimonials/Testimonial01/Testimonial01.types.d.ts +21 -0
  295. package/dist/testimonials/Testimonial02/Testimonial02.d.cts +3 -0
  296. package/dist/testimonials/Testimonial02/Testimonial02.d.ts +3 -0
  297. package/dist/testimonials/Testimonial02/Testimonial02.types.d.cts +25 -0
  298. package/dist/testimonials/Testimonial02/Testimonial02.types.d.ts +25 -0
  299. package/dist/testimonials/Testimonial03/Testimonial03.d.cts +3 -0
  300. package/dist/testimonials/Testimonial03/Testimonial03.d.ts +3 -0
  301. package/dist/testimonials/Testimonial03/Testimonial03.types.d.cts +45 -0
  302. package/dist/testimonials/Testimonial03/Testimonial03.types.d.ts +45 -0
  303. package/package.json +2 -2
@@ -0,0 +1,23 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ export interface Logos03Logo {
3
+ /** The company, for the list's key. Put it in the logo too: as the <img>'s alt, or as text beside an SVG. */
4
+ name: string;
5
+ /** The logo: an `<img src alt>` or an inline SVG, in one colour (currentColor), about 22px tall. */
6
+ logo: ReactNode;
7
+ }
8
+ export interface Logos03Labels {
9
+ /** The button that stops the logos moving. @default "Pause the logos" */
10
+ pause?: string;
11
+ /** The same button once they're stopped. @default "Play the logos" */
12
+ play?: string;
13
+ /** The moving strip, for screen readers. @default "Customer logos" */
14
+ region?: string;
15
+ }
16
+ export interface Logos03Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children"> {
17
+ /** A small, muted heading over the logos: "Teams that ship with Acme". */
18
+ title: ReactNode;
19
+ /** Customers' logos, in a slow, endless row that pauses on hover and focus, and stands still in rows with reduced motion. Eight look best. */
20
+ logos: Logos03Logo[];
21
+ /** Words that aren't content (names for screen readers, a button's name), in English unless you pass your own. */
22
+ labels?: Logos03Labels;
23
+ }
@@ -0,0 +1,23 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ export interface Logos03Logo {
3
+ /** The company, for the list's key. Put it in the logo too: as the <img>'s alt, or as text beside an SVG. */
4
+ name: string;
5
+ /** The logo: an `<img src alt>` or an inline SVG, in one colour (currentColor), about 22px tall. */
6
+ logo: ReactNode;
7
+ }
8
+ export interface Logos03Labels {
9
+ /** The button that stops the logos moving. @default "Pause the logos" */
10
+ pause?: string;
11
+ /** The same button once they're stopped. @default "Play the logos" */
12
+ play?: string;
13
+ /** The moving strip, for screen readers. @default "Customer logos" */
14
+ region?: string;
15
+ }
16
+ export interface Logos03Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children"> {
17
+ /** A small, muted heading over the logos: "Teams that ship with Acme". */
18
+ title: ReactNode;
19
+ /** Customers' logos, in a slow, endless row that pauses on hover and focus, and stands still in rows with reduced motion. Eight look best. */
20
+ logos: Logos03Logo[];
21
+ /** Words that aren't content (names for screen readers, a button's name), in English unless you pass your own. */
22
+ labels?: Logos03Labels;
23
+ }
@@ -0,0 +1,3 @@
1
+ import type { Newsletter01Props } from "./Newsletter01.types.cjs";
2
+ /** A newsletter sign-up in one row: the heading on the left, the field and button on the right, a confirmation in place of the form. */
3
+ export declare function Newsletter01({ eyebrow, title, description, submitLabel, onSubmit, note, successTitle, successDescription, labels, className, ...props }: Newsletter01Props): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { Newsletter01Props } from "./Newsletter01.types.js";
2
+ /** A newsletter sign-up in one row: the heading on the left, the field and button on the right, a confirmation in place of the form. */
3
+ export declare function Newsletter01({ eyebrow, title, description, submitLabel, onSubmit, note, successTitle, successDescription, labels, className, ...props }: Newsletter01Props): import("react").JSX.Element;
@@ -0,0 +1,39 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ /** The words around the form that aren't content, in English unless you pass your own. */
3
+ export interface Newsletter01Labels {
4
+ /** The field's label. @default "Email address" */
5
+ email?: string;
6
+ /** @default "you@example.com" */
7
+ placeholder?: string;
8
+ /** The button that brings the form back after signing up. @default "Use a different email" */
9
+ change?: string;
10
+ /** @default "Enter your email address." */
11
+ empty?: string;
12
+ /** @default "Enter an email address like name@example.com." */
13
+ invalid?: string;
14
+ /** Shown when `onSubmit` fails without a message of its own. @default "That didn't go through. Try again in a moment." */
15
+ failed?: string;
16
+ }
17
+ export interface Newsletter01Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children" | "onSubmit"> {
18
+ /** A short line in a Chip above the title, such as "Changelog". */
19
+ eyebrow?: ReactNode;
20
+ /** The section's heading. */
21
+ title: ReactNode;
22
+ /** A sentence or two under the title: what they'll get, and how often. */
23
+ description?: ReactNode;
24
+ /** The button's words: "Subscribe". */
25
+ submitLabel: ReactNode;
26
+ /**
27
+ * Adds the address to your list. While its promise is pending the button shows a spinner; if it throws, the
28
+ * error's message shows under the field, and once it resolves the form gives way to `successTitle`.
29
+ */
30
+ onSubmit(email: string): void | Promise<void>;
31
+ /** A small line under the form: "Unsubscribe in one click. We never share your address." */
32
+ note?: ReactNode;
33
+ /** What replaces the form once they've signed up: "You're on the list". */
34
+ successTitle: ReactNode;
35
+ /** A line under it, given the address they signed up with. */
36
+ successDescription?(email: string): ReactNode;
37
+ /** Words that aren't content (field labels, names for screen readers, messages), in English unless you pass your own. */
38
+ labels?: Newsletter01Labels;
39
+ }
@@ -0,0 +1,39 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ /** The words around the form that aren't content, in English unless you pass your own. */
3
+ export interface Newsletter01Labels {
4
+ /** The field's label. @default "Email address" */
5
+ email?: string;
6
+ /** @default "you@example.com" */
7
+ placeholder?: string;
8
+ /** The button that brings the form back after signing up. @default "Use a different email" */
9
+ change?: string;
10
+ /** @default "Enter your email address." */
11
+ empty?: string;
12
+ /** @default "Enter an email address like name@example.com." */
13
+ invalid?: string;
14
+ /** Shown when `onSubmit` fails without a message of its own. @default "That didn't go through. Try again in a moment." */
15
+ failed?: string;
16
+ }
17
+ export interface Newsletter01Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children" | "onSubmit"> {
18
+ /** A short line in a Chip above the title, such as "Changelog". */
19
+ eyebrow?: ReactNode;
20
+ /** The section's heading. */
21
+ title: ReactNode;
22
+ /** A sentence or two under the title: what they'll get, and how often. */
23
+ description?: ReactNode;
24
+ /** The button's words: "Subscribe". */
25
+ submitLabel: ReactNode;
26
+ /**
27
+ * Adds the address to your list. While its promise is pending the button shows a spinner; if it throws, the
28
+ * error's message shows under the field, and once it resolves the form gives way to `successTitle`.
29
+ */
30
+ onSubmit(email: string): void | Promise<void>;
31
+ /** A small line under the form: "Unsubscribe in one click. We never share your address." */
32
+ note?: ReactNode;
33
+ /** What replaces the form once they've signed up: "You're on the list". */
34
+ successTitle: ReactNode;
35
+ /** A line under it, given the address they signed up with. */
36
+ successDescription?(email: string): ReactNode;
37
+ /** Words that aren't content (field labels, names for screen readers, messages), in English unless you pass your own. */
38
+ labels?: Newsletter01Labels;
39
+ }
@@ -0,0 +1,3 @@
1
+ import type { Newsletter02Props } from "./Newsletter02.types.cjs";
2
+ /** A newsletter sign-up in a card at the reading width, for the end of a post, with its writers along the foot. */
3
+ export declare function Newsletter02({ icon, title, description, submitLabel, onSubmit, successTitle, successDescription, authors, authorsNote, archiveLink, labels, className, ...props }: Newsletter02Props): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { Newsletter02Props } from "./Newsletter02.types.js";
2
+ /** A newsletter sign-up in a card at the reading width, for the end of a post, with its writers along the foot. */
3
+ export declare function Newsletter02({ icon, title, description, submitLabel, onSubmit, successTitle, successDescription, authors, authorsNote, archiveLink, labels, className, ...props }: Newsletter02Props): import("react").JSX.Element;
@@ -0,0 +1,42 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { BlockLink } from "../../shared/shared.types.cjs";
3
+ /** The words around the form that aren't content, in English unless you pass your own. */
4
+ export interface Newsletter02Labels {
5
+ /** The field's label. @default "Email address" */
6
+ email?: string;
7
+ /** @default "you@example.com" */
8
+ placeholder?: string;
9
+ /** @default "Enter your email address." */
10
+ empty?: string;
11
+ /** @default "Enter an email address like name@example.com." */
12
+ invalid?: string;
13
+ /** Shown when `onSubmit` fails without a message of its own. @default "That didn't go through. Try again in a moment." */
14
+ failed?: string;
15
+ }
16
+ export interface Newsletter02Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children" | "onSubmit"> {
17
+ /** A 20px icon in a tile above the title, such as a mail icon. */
18
+ icon?: ReactNode;
19
+ /** The card's heading. */
20
+ title: ReactNode;
21
+ /** A sentence or two under it: what they'll get, and how often. */
22
+ description?: ReactNode;
23
+ /** The button's words: "Subscribe". */
24
+ submitLabel: ReactNode;
25
+ /**
26
+ * Adds the address to your list. While its promise is pending the button shows a spinner; if it throws, the
27
+ * error's message shows under the field, and once it resolves a toast says so and the field empties.
28
+ */
29
+ onSubmit(email: string): void | Promise<void>;
30
+ /** The toast's title once they've signed up: "Check your inbox". */
31
+ successTitle: ReactNode;
32
+ /** The toast's line under it, given the address they signed up with. */
33
+ successDescription?(email: string): ReactNode;
34
+ /** The people who write it, as avatars at the foot of the card. */
35
+ authors?: string[];
36
+ /** A line beside the avatars: "Clara, Jonas and Sam write it for 9,400 readers." */
37
+ authorsNote?: ReactNode;
38
+ /** A link at the foot's right, with an arrow: "Read past posts". */
39
+ archiveLink?: BlockLink;
40
+ /** Words that aren't content (field labels, names for screen readers, messages), in English unless you pass your own. */
41
+ labels?: Newsletter02Labels;
42
+ }
@@ -0,0 +1,42 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { BlockLink } from "../../shared/shared.types.js";
3
+ /** The words around the form that aren't content, in English unless you pass your own. */
4
+ export interface Newsletter02Labels {
5
+ /** The field's label. @default "Email address" */
6
+ email?: string;
7
+ /** @default "you@example.com" */
8
+ placeholder?: string;
9
+ /** @default "Enter your email address." */
10
+ empty?: string;
11
+ /** @default "Enter an email address like name@example.com." */
12
+ invalid?: string;
13
+ /** Shown when `onSubmit` fails without a message of its own. @default "That didn't go through. Try again in a moment." */
14
+ failed?: string;
15
+ }
16
+ export interface Newsletter02Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children" | "onSubmit"> {
17
+ /** A 20px icon in a tile above the title, such as a mail icon. */
18
+ icon?: ReactNode;
19
+ /** The card's heading. */
20
+ title: ReactNode;
21
+ /** A sentence or two under it: what they'll get, and how often. */
22
+ description?: ReactNode;
23
+ /** The button's words: "Subscribe". */
24
+ submitLabel: ReactNode;
25
+ /**
26
+ * Adds the address to your list. While its promise is pending the button shows a spinner; if it throws, the
27
+ * error's message shows under the field, and once it resolves a toast says so and the field empties.
28
+ */
29
+ onSubmit(email: string): void | Promise<void>;
30
+ /** The toast's title once they've signed up: "Check your inbox". */
31
+ successTitle: ReactNode;
32
+ /** The toast's line under it, given the address they signed up with. */
33
+ successDescription?(email: string): ReactNode;
34
+ /** The people who write it, as avatars at the foot of the card. */
35
+ authors?: string[];
36
+ /** A line beside the avatars: "Clara, Jonas and Sam write it for 9,400 readers." */
37
+ authorsNote?: ReactNode;
38
+ /** A link at the foot's right, with an arrow: "Read past posts". */
39
+ archiveLink?: BlockLink;
40
+ /** Words that aren't content (field labels, names for screen readers, messages), in English unless you pass your own. */
41
+ labels?: Newsletter02Labels;
42
+ }
@@ -0,0 +1,3 @@
1
+ import type { Notifications01Props } from "./Notifications01.types.cjs";
2
+ /** A bell with the unread count that opens the latest notifications, in All and Mentions tabs, with Mark all as read. */
3
+ export declare function Notifications01({ notifications, onOpen, onMarkAllRead, viewAllHref, onSettings, defaultOpen, labels, className, ...props }: Notifications01Props): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { Notifications01Props } from "./Notifications01.types.js";
2
+ /** A bell with the unread count that opens the latest notifications, in All and Mentions tabs, with Mark all as read. */
3
+ export declare function Notifications01({ notifications, onOpen, onMarkAllRead, viewAllHref, onSettings, defaultOpen, labels, className, ...props }: Notifications01Props): import("react").JSX.Element;
@@ -0,0 +1,74 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ /** One notification in the popover. */
3
+ export interface Notifications01Item {
4
+ /** Tells them apart. */
5
+ id: string;
6
+ /** Who it's from: a person's name, drawn as their Avatar. */
7
+ from?: string;
8
+ /** A 14–15px icon in a circle instead of an Avatar, for what the product sends itself (an agent, a deploy). */
9
+ icon?: ReactNode;
10
+ /** The icon's circle: the brand's tint, or red for something that failed.
11
+ * @default "primary" */
12
+ tone?: "primary" | "danger";
13
+ /** What happened, with the names in bold: <><strong>Clara Novak</strong> mentioned you in …</>. */
14
+ message: ReactNode;
15
+ /** The same in plain words, read out in place of `message`. */
16
+ summary: string;
17
+ /** A line or two quoted from a comment, clamped to two lines. */
18
+ quote?: ReactNode;
19
+ /** Where it happened: "billing-api". */
20
+ where: string;
21
+ /** When: "4 min ago". */
22
+ when: string;
23
+ /** It mentions you, so it's under Mentions too. */
24
+ mention?: boolean;
25
+ /** Not read yet: a brass dot, and counted on the bell. */
26
+ unread?: boolean;
27
+ /** Where it goes. Without one, opening it only marks it read. */
28
+ href?: string;
29
+ }
30
+ /** The words that aren't content, in English unless you pass your own. */
31
+ export interface Notifications01Labels {
32
+ /** The popover's heading and name. @default "Notifications" */
33
+ title?: string;
34
+ /** The bell's name. @default (unread) => unread ? `Notifications, ${unread} unread` : "Notifications" */
35
+ bell?(unread: number): string;
36
+ /** @default "Mark all as read" */
37
+ markAllRead?: string;
38
+ /** The tabs' name for screen readers. @default "Show" */
39
+ tabs?: string;
40
+ /** @default "All" */
41
+ all?: string;
42
+ /** @default "Mentions" */
43
+ mentions?: string;
44
+ /** Read out before an unread one. @default "Unread: " */
45
+ unread?: string;
46
+ /** When a tab has none. @default "Nothing here yet." */
47
+ empty?: string;
48
+ /** The link at the foot. @default "View all notifications" */
49
+ viewAll?: string;
50
+ /** The settings button's name. @default "Notification settings" */
51
+ settings?: string;
52
+ }
53
+ export interface Notifications01Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
54
+ /** The latest notifications, newest first. */
55
+ notifications: Notifications01Item[];
56
+ /** Runs when one is opened; it's marked read as it opens. */
57
+ onOpen?(notification: Notifications01Item): void;
58
+ /** Runs on Mark all as read. */
59
+ onMarkAllRead?(): void;
60
+ /** Where "View all notifications" goes. Without it there's no link. */
61
+ viewAllHref?: string;
62
+ /** Runs when the settings button at the foot is pressed. */
63
+ onSettings?(): void;
64
+ /** Starts with the popover open, without moving focus into it. */
65
+ defaultOpen?: boolean;
66
+ labels?: Notifications01Labels;
67
+ }
68
+ /** The list inside one tab. */
69
+ export interface Notifications01ListProps {
70
+ items: Notifications01Item[];
71
+ isUnread(item: Notifications01Item): boolean;
72
+ onOpen(item: Notifications01Item): void;
73
+ labels: Notifications01Labels;
74
+ }
@@ -0,0 +1,74 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ /** One notification in the popover. */
3
+ export interface Notifications01Item {
4
+ /** Tells them apart. */
5
+ id: string;
6
+ /** Who it's from: a person's name, drawn as their Avatar. */
7
+ from?: string;
8
+ /** A 14–15px icon in a circle instead of an Avatar, for what the product sends itself (an agent, a deploy). */
9
+ icon?: ReactNode;
10
+ /** The icon's circle: the brand's tint, or red for something that failed.
11
+ * @default "primary" */
12
+ tone?: "primary" | "danger";
13
+ /** What happened, with the names in bold: <><strong>Clara Novak</strong> mentioned you in …</>. */
14
+ message: ReactNode;
15
+ /** The same in plain words, read out in place of `message`. */
16
+ summary: string;
17
+ /** A line or two quoted from a comment, clamped to two lines. */
18
+ quote?: ReactNode;
19
+ /** Where it happened: "billing-api". */
20
+ where: string;
21
+ /** When: "4 min ago". */
22
+ when: string;
23
+ /** It mentions you, so it's under Mentions too. */
24
+ mention?: boolean;
25
+ /** Not read yet: a brass dot, and counted on the bell. */
26
+ unread?: boolean;
27
+ /** Where it goes. Without one, opening it only marks it read. */
28
+ href?: string;
29
+ }
30
+ /** The words that aren't content, in English unless you pass your own. */
31
+ export interface Notifications01Labels {
32
+ /** The popover's heading and name. @default "Notifications" */
33
+ title?: string;
34
+ /** The bell's name. @default (unread) => unread ? `Notifications, ${unread} unread` : "Notifications" */
35
+ bell?(unread: number): string;
36
+ /** @default "Mark all as read" */
37
+ markAllRead?: string;
38
+ /** The tabs' name for screen readers. @default "Show" */
39
+ tabs?: string;
40
+ /** @default "All" */
41
+ all?: string;
42
+ /** @default "Mentions" */
43
+ mentions?: string;
44
+ /** Read out before an unread one. @default "Unread: " */
45
+ unread?: string;
46
+ /** When a tab has none. @default "Nothing here yet." */
47
+ empty?: string;
48
+ /** The link at the foot. @default "View all notifications" */
49
+ viewAll?: string;
50
+ /** The settings button's name. @default "Notification settings" */
51
+ settings?: string;
52
+ }
53
+ export interface Notifications01Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
54
+ /** The latest notifications, newest first. */
55
+ notifications: Notifications01Item[];
56
+ /** Runs when one is opened; it's marked read as it opens. */
57
+ onOpen?(notification: Notifications01Item): void;
58
+ /** Runs on Mark all as read. */
59
+ onMarkAllRead?(): void;
60
+ /** Where "View all notifications" goes. Without it there's no link. */
61
+ viewAllHref?: string;
62
+ /** Runs when the settings button at the foot is pressed. */
63
+ onSettings?(): void;
64
+ /** Starts with the popover open, without moving focus into it. */
65
+ defaultOpen?: boolean;
66
+ labels?: Notifications01Labels;
67
+ }
68
+ /** The list inside one tab. */
69
+ export interface Notifications01ListProps {
70
+ items: Notifications01Item[];
71
+ isUnread(item: Notifications01Item): boolean;
72
+ onOpen(item: Notifications01Item): void;
73
+ labels: Notifications01Labels;
74
+ }
@@ -0,0 +1,3 @@
1
+ import type { Notifications02Props } from "./Notifications02.types.cjs";
2
+ /** An activity page: days down the page, each day's events on a thin rail, with a filter and a way to load older days. */
3
+ export declare function Notifications02({ title, description, days, kinds, onLoadEarlier, labels, className, ...props }: Notifications02Props): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { Notifications02Props } from "./Notifications02.types.js";
2
+ /** An activity page: days down the page, each day's events on a thin rail, with a filter and a way to load older days. */
3
+ export declare function Notifications02({ title, description, days, kinds, onLoadEarlier, labels, className, ...props }: Notifications02Props): import("react").JSX.Element;
@@ -0,0 +1,65 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ /** One event on the rail. */
3
+ export interface Notifications02Event {
4
+ /** Tells them apart. */
5
+ id: string;
6
+ /** What kind it is, for the filter: "deploy", "review". */
7
+ kind?: string;
8
+ /** Who did it: a person's name, drawn as their Avatar. */
9
+ by?: string;
10
+ /** A 14–15px icon in a circle instead of an Avatar, for what the product records itself. */
11
+ icon?: ReactNode;
12
+ /** The icon's circle: muted, the brand's tint, or red for something that failed.
13
+ * @default "default" */
14
+ tone?: "default" | "primary" | "danger";
15
+ /** The time of day, as written and in the `<time>` element: "14:32". */
16
+ time: string;
17
+ /** What happened, in a sentence: names in bold, the things it happened to as links. */
18
+ line: ReactNode;
19
+ /** What came with it, under the line: a badge, a commit, a quote, the people added. */
20
+ detail?: ReactNode;
21
+ }
22
+ /** A day's events, under its heading. */
23
+ export interface Notifications02Day {
24
+ /** The day as an ISO date, for each event's `<time>`: "2026-10-13". */
25
+ dateTime: string;
26
+ /** The heading: "Today", "Yesterday", "Friday". */
27
+ label: ReactNode;
28
+ /** The date, muted beside it: "Tuesday 13 October". */
29
+ date?: ReactNode;
30
+ events: Notifications02Event[];
31
+ }
32
+ /** A kind of event the filter can show on its own. */
33
+ export interface Notifications02Kind {
34
+ /** Matches the events' `kind`. */
35
+ value: string;
36
+ /** The filter's word for it: "Deploys". */
37
+ label: string;
38
+ }
39
+ /** The words that aren't content, in English unless you pass your own. */
40
+ export interface Notifications02Labels {
41
+ /** The filter's first option, for every kind. @default "All" */
42
+ all?: string;
43
+ /** The filter's name for screen readers. @default "Show" */
44
+ filter?: string;
45
+ /** When the filter leaves nothing. @default "Nothing of this kind yet." */
46
+ empty?: string;
47
+ /** The button that loads older days. @default "Show earlier activity" */
48
+ loadEarlier?: string;
49
+ /** Under the list once there's nothing older. @default "That's everything." */
50
+ end?: string;
51
+ }
52
+ export interface Notifications02Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children"> {
53
+ /** The page's heading: "Activity". */
54
+ title: ReactNode;
55
+ /** A sentence under it. */
56
+ description?: ReactNode;
57
+ /** The days to show, newest first. */
58
+ days: Notifications02Day[];
59
+ /** The kinds the filter offers after All. Without them there's no filter. */
60
+ kinds?: Notifications02Kind[];
61
+ /** Fetches the days before these. While its promise is pending the button shows a spinner; the days it gives
62
+ * are added below. Without it there's no button, only the `end` line. */
63
+ onLoadEarlier?(): Notifications02Day[] | Promise<Notifications02Day[]>;
64
+ labels?: Notifications02Labels;
65
+ }
@@ -0,0 +1,65 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ /** One event on the rail. */
3
+ export interface Notifications02Event {
4
+ /** Tells them apart. */
5
+ id: string;
6
+ /** What kind it is, for the filter: "deploy", "review". */
7
+ kind?: string;
8
+ /** Who did it: a person's name, drawn as their Avatar. */
9
+ by?: string;
10
+ /** A 14–15px icon in a circle instead of an Avatar, for what the product records itself. */
11
+ icon?: ReactNode;
12
+ /** The icon's circle: muted, the brand's tint, or red for something that failed.
13
+ * @default "default" */
14
+ tone?: "default" | "primary" | "danger";
15
+ /** The time of day, as written and in the `<time>` element: "14:32". */
16
+ time: string;
17
+ /** What happened, in a sentence: names in bold, the things it happened to as links. */
18
+ line: ReactNode;
19
+ /** What came with it, under the line: a badge, a commit, a quote, the people added. */
20
+ detail?: ReactNode;
21
+ }
22
+ /** A day's events, under its heading. */
23
+ export interface Notifications02Day {
24
+ /** The day as an ISO date, for each event's `<time>`: "2026-10-13". */
25
+ dateTime: string;
26
+ /** The heading: "Today", "Yesterday", "Friday". */
27
+ label: ReactNode;
28
+ /** The date, muted beside it: "Tuesday 13 October". */
29
+ date?: ReactNode;
30
+ events: Notifications02Event[];
31
+ }
32
+ /** A kind of event the filter can show on its own. */
33
+ export interface Notifications02Kind {
34
+ /** Matches the events' `kind`. */
35
+ value: string;
36
+ /** The filter's word for it: "Deploys". */
37
+ label: string;
38
+ }
39
+ /** The words that aren't content, in English unless you pass your own. */
40
+ export interface Notifications02Labels {
41
+ /** The filter's first option, for every kind. @default "All" */
42
+ all?: string;
43
+ /** The filter's name for screen readers. @default "Show" */
44
+ filter?: string;
45
+ /** When the filter leaves nothing. @default "Nothing of this kind yet." */
46
+ empty?: string;
47
+ /** The button that loads older days. @default "Show earlier activity" */
48
+ loadEarlier?: string;
49
+ /** Under the list once there's nothing older. @default "That's everything." */
50
+ end?: string;
51
+ }
52
+ export interface Notifications02Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children"> {
53
+ /** The page's heading: "Activity". */
54
+ title: ReactNode;
55
+ /** A sentence under it. */
56
+ description?: ReactNode;
57
+ /** The days to show, newest first. */
58
+ days: Notifications02Day[];
59
+ /** The kinds the filter offers after All. Without them there's no filter. */
60
+ kinds?: Notifications02Kind[];
61
+ /** Fetches the days before these. While its promise is pending the button shows a spinner; the days it gives
62
+ * are added below. Without it there's no button, only the `end` line. */
63
+ onLoadEarlier?(): Notifications02Day[] | Promise<Notifications02Day[]>;
64
+ labels?: Notifications02Labels;
65
+ }
@@ -0,0 +1,3 @@
1
+ import type { Notifications03Props } from "./Notifications03.types.cjs";
2
+ /** Notification settings: a grid of switches with events down the side and channels across the top, and delivery settings under it. */
3
+ export declare function Notifications03({ title, description, channels, groups, value, defaultValue, onChange, options, onOptionChange, labels, className, ...props }: Notifications03Props): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { Notifications03Props } from "./Notifications03.types.js";
2
+ /** Notification settings: a grid of switches with events down the side and channels across the top, and delivery settings under it. */
3
+ export declare function Notifications03({ title, description, channels, groups, value, defaultValue, onChange, options, onOptionChange, labels, className, ...props }: Notifications03Props): import("react").JSX.Element;
@@ -0,0 +1,87 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { SelectOption } from "@openwarelabs/ui";
3
+ /** A way notifications reach someone, as a column of switches. */
4
+ export interface Notifications03Channel {
5
+ /** Tells them apart, in the settings: "email". */
6
+ id: string;
7
+ /** The column's heading: "Email". */
8
+ label: string;
9
+ /** A 15px icon beside it, usually from lucide-react. */
10
+ icon?: ReactNode;
11
+ }
12
+ /** Something that can send a notification, as a row of switches. */
13
+ export interface Notifications03Event {
14
+ /** Tells them apart, in the settings: "review-requested". */
15
+ id: string;
16
+ /** What happens: "Someone asks for your review". */
17
+ label: ReactNode;
18
+ /** A caption under it. */
19
+ description?: ReactNode;
20
+ /** The ids of channels it can't use at all: a dash instead of a switch. */
21
+ unavailable?: string[];
22
+ }
23
+ /** Events under a small heading. */
24
+ export interface Notifications03Group {
25
+ /** The heading: "Reviews". */
26
+ label: ReactNode;
27
+ events: Notifications03Event[];
28
+ }
29
+ /** Which channels each event reaches, by event id. An event that's missing reaches none. */
30
+ export type Notifications03Value = Record<string, string[]>;
31
+ /** One switch flipped, as given to `onChange`. */
32
+ export interface Notifications03Change {
33
+ event: string;
34
+ channel: string;
35
+ on: boolean;
36
+ }
37
+ /** A setting under the grid, as a row with its control on the right. */
38
+ export type Notifications03Option = {
39
+ kind: "select";
40
+ /** Tells them apart, in `onOptionChange`. */
41
+ id: string;
42
+ label: string;
43
+ description?: ReactNode;
44
+ options: SelectOption[];
45
+ defaultValue: string;
46
+ } | {
47
+ kind: "switch";
48
+ /** Tells them apart, in `onOptionChange`. */
49
+ id: string;
50
+ label: string;
51
+ description?: ReactNode;
52
+ defaultValue: boolean;
53
+ };
54
+ /** The words that aren't content, in English unless you pass your own. */
55
+ export interface Notifications03Labels {
56
+ /** The grid's corner, over the events. @default "Event" */
57
+ event?: string;
58
+ /** Beside an event that reaches no channel. @default "Muted" */
59
+ muted?: string;
60
+ /** Read out for a dash. @default (channel) => `Not sent by ${channel.toLowerCase()}` */
61
+ unavailable?(channel: string): string;
62
+ /** The heading over `options`. @default "Delivery" */
63
+ options?: string;
64
+ /** Shown for a moment after each change. @default "Saved" */
65
+ saved?: string;
66
+ }
67
+ export interface Notifications03Props extends Omit<HTMLAttributes<HTMLElement>, "title" | "children" | "defaultValue" | "onChange"> {
68
+ /** The page's heading: "Notifications". */
69
+ title: ReactNode;
70
+ /** A sentence under it. */
71
+ description?: ReactNode;
72
+ /** The columns. */
73
+ channels: Notifications03Channel[];
74
+ /** The rows, in groups. */
75
+ groups: Notifications03Group[];
76
+ /** Which channels each event reaches, for controlled use. */
77
+ value?: Notifications03Value;
78
+ /** Where it starts, when it isn't controlled. */
79
+ defaultValue?: Notifications03Value;
80
+ /** Runs on every switch in the grid, with the new settings and what changed: save them. */
81
+ onChange?(value: Notifications03Value, change: Notifications03Change): void;
82
+ /** Settings under the grid, such as how often emails go and quiet hours. */
83
+ options?: Notifications03Option[];
84
+ /** Runs when one of `options` changes: save it. */
85
+ onOptionChange?(id: string, value: string | boolean): void;
86
+ labels?: Notifications03Labels;
87
+ }