@nanisoft/prism-ui 0.13.0 → 0.16.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 (964) hide show
  1. package/THIRD-PARTY-NOTICES.md +22 -7
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/blocks/about-01/about.d.ts +296 -0
  4. package/dist/blocks/about-01/about.d.ts.map +1 -0
  5. package/dist/blocks/about-01/about.js +103 -0
  6. package/dist/blocks/about-01/index.d.ts +3 -0
  7. package/dist/blocks/about-01/index.d.ts.map +1 -0
  8. package/dist/blocks/about-01/index.js +1 -0
  9. package/dist/blocks/accept-invite-01/accept-invite.d.ts +324 -0
  10. package/dist/blocks/accept-invite-01/accept-invite.d.ts.map +1 -0
  11. package/dist/blocks/accept-invite-01/accept-invite.js +230 -0
  12. package/dist/blocks/accept-invite-01/index.d.ts +3 -0
  13. package/dist/blocks/accept-invite-01/index.d.ts.map +1 -0
  14. package/dist/blocks/accept-invite-01/index.js +1 -0
  15. package/dist/blocks/account-01/account-01.d.ts +393 -0
  16. package/dist/blocks/account-01/account-01.d.ts.map +1 -0
  17. package/dist/blocks/account-01/account-01.js +215 -0
  18. package/dist/blocks/account-01/index.d.ts +3 -0
  19. package/dist/blocks/account-01/index.d.ts.map +1 -0
  20. package/dist/blocks/account-01/index.js +1 -0
  21. package/dist/blocks/activity-feed-01/activity-feed-01.d.ts +271 -0
  22. package/dist/blocks/activity-feed-01/activity-feed-01.d.ts.map +1 -0
  23. package/dist/blocks/activity-feed-01/activity-feed-01.js +185 -0
  24. package/dist/blocks/activity-feed-01/index.d.ts +3 -0
  25. package/dist/blocks/activity-feed-01/index.d.ts.map +1 -0
  26. package/dist/blocks/activity-feed-01/index.js +1 -0
  27. package/dist/blocks/address-book-01/address-book-01.d.ts +312 -0
  28. package/dist/blocks/address-book-01/address-book-01.d.ts.map +1 -0
  29. package/dist/blocks/address-book-01/address-book-01.js +233 -0
  30. package/dist/blocks/address-book-01/index.d.ts +3 -0
  31. package/dist/blocks/address-book-01/index.d.ts.map +1 -0
  32. package/dist/blocks/address-book-01/index.js +1 -0
  33. package/dist/blocks/audit-log-01/audit-log-01.d.ts +333 -0
  34. package/dist/blocks/audit-log-01/audit-log-01.d.ts.map +1 -0
  35. package/dist/blocks/audit-log-01/audit-log-01.js +211 -0
  36. package/dist/blocks/audit-log-01/index.d.ts +3 -0
  37. package/dist/blocks/audit-log-01/index.d.ts.map +1 -0
  38. package/dist/blocks/audit-log-01/index.js +1 -0
  39. package/dist/blocks/auth-form-01/auth-form.d.ts +40 -1
  40. package/dist/blocks/auth-form-01/auth-form.d.ts.map +1 -1
  41. package/dist/blocks/auth-form-01/auth-form.js +26 -3
  42. package/dist/blocks/awards-01/awards.d.ts +156 -0
  43. package/dist/blocks/awards-01/awards.d.ts.map +1 -0
  44. package/dist/blocks/awards-01/awards.js +102 -0
  45. package/dist/blocks/awards-01/index.d.ts +3 -0
  46. package/dist/blocks/awards-01/index.d.ts.map +1 -0
  47. package/dist/blocks/awards-01/index.js +1 -0
  48. package/dist/blocks/backdrop-01/backdrop.d.ts +268 -0
  49. package/dist/blocks/backdrop-01/backdrop.d.ts.map +1 -0
  50. package/dist/blocks/backdrop-01/backdrop.js +170 -0
  51. package/dist/blocks/backdrop-01/index.d.ts +3 -0
  52. package/dist/blocks/backdrop-01/index.d.ts.map +1 -0
  53. package/dist/blocks/backdrop-01/index.js +1 -0
  54. package/dist/blocks/bento-01/bento-01.d.ts +136 -0
  55. package/dist/blocks/bento-01/bento-01.d.ts.map +1 -0
  56. package/dist/blocks/bento-01/bento-01.js +97 -0
  57. package/dist/blocks/bento-01/index.d.ts +3 -0
  58. package/dist/blocks/bento-01/index.d.ts.map +1 -0
  59. package/dist/blocks/bento-01/index.js +1 -0
  60. package/dist/blocks/billing-source-01/billing-source-01.d.ts +379 -0
  61. package/dist/blocks/billing-source-01/billing-source-01.d.ts.map +1 -0
  62. package/dist/blocks/billing-source-01/billing-source-01.js +222 -0
  63. package/dist/blocks/billing-source-01/index.d.ts +3 -0
  64. package/dist/blocks/billing-source-01/index.d.ts.map +1 -0
  65. package/dist/blocks/billing-source-01/index.js +1 -0
  66. package/dist/blocks/bundle-01/bundle.d.ts +387 -0
  67. package/dist/blocks/bundle-01/bundle.d.ts.map +1 -0
  68. package/dist/blocks/bundle-01/bundle.js +153 -0
  69. package/dist/blocks/bundle-01/index.d.ts +3 -0
  70. package/dist/blocks/bundle-01/index.d.ts.map +1 -0
  71. package/dist/blocks/bundle-01/index.js +1 -0
  72. package/dist/blocks/calendar-01/calendar.d.ts +251 -0
  73. package/dist/blocks/calendar-01/calendar.d.ts.map +1 -0
  74. package/dist/blocks/calendar-01/calendar.js +191 -0
  75. package/dist/blocks/calendar-01/index.d.ts +3 -0
  76. package/dist/blocks/calendar-01/index.d.ts.map +1 -0
  77. package/dist/blocks/calendar-01/index.js +1 -0
  78. package/dist/blocks/capacity-01/capacity.d.ts +363 -0
  79. package/dist/blocks/capacity-01/capacity.d.ts.map +1 -0
  80. package/dist/blocks/capacity-01/capacity.js +208 -0
  81. package/dist/blocks/capacity-01/index.d.ts +3 -0
  82. package/dist/blocks/capacity-01/index.d.ts.map +1 -0
  83. package/dist/blocks/capacity-01/index.js +1 -0
  84. package/dist/blocks/careers-01/careers.d.ts +186 -0
  85. package/dist/blocks/careers-01/careers.d.ts.map +1 -0
  86. package/dist/blocks/careers-01/careers.js +83 -0
  87. package/dist/blocks/careers-01/index.d.ts +3 -0
  88. package/dist/blocks/careers-01/index.d.ts.map +1 -0
  89. package/dist/blocks/careers-01/index.js +1 -0
  90. package/dist/blocks/case-studies-01/case-studies.d.ts +192 -0
  91. package/dist/blocks/case-studies-01/case-studies.d.ts.map +1 -0
  92. package/dist/blocks/case-studies-01/case-studies.js +97 -0
  93. package/dist/blocks/case-studies-01/index.d.ts +3 -0
  94. package/dist/blocks/case-studies-01/index.d.ts.map +1 -0
  95. package/dist/blocks/case-studies-01/index.js +1 -0
  96. package/dist/blocks/case-study-01/case-study.d.ts +214 -0
  97. package/dist/blocks/case-study-01/case-study.d.ts.map +1 -0
  98. package/dist/blocks/case-study-01/case-study.js +79 -0
  99. package/dist/blocks/case-study-01/index.d.ts +3 -0
  100. package/dist/blocks/case-study-01/index.d.ts.map +1 -0
  101. package/dist/blocks/case-study-01/index.js +1 -0
  102. package/dist/blocks/changelog-01/changelog.d.ts +200 -0
  103. package/dist/blocks/changelog-01/changelog.d.ts.map +1 -0
  104. package/dist/blocks/changelog-01/changelog.js +155 -0
  105. package/dist/blocks/changelog-01/index.d.ts +3 -0
  106. package/dist/blocks/changelog-01/index.d.ts.map +1 -0
  107. package/dist/blocks/changelog-01/index.js +1 -0
  108. package/dist/blocks/chart-card-01/chart-card-01.d.ts +149 -0
  109. package/dist/blocks/chart-card-01/chart-card-01.d.ts.map +1 -0
  110. package/dist/blocks/chart-card-01/chart-card-01.js +81 -0
  111. package/dist/blocks/chart-card-01/index.d.ts +3 -0
  112. package/dist/blocks/chart-card-01/index.d.ts.map +1 -0
  113. package/dist/blocks/chart-card-01/index.js +1 -0
  114. package/dist/blocks/chart-group-01/chart-group-01.d.ts +138 -0
  115. package/dist/blocks/chart-group-01/chart-group-01.d.ts.map +1 -0
  116. package/dist/blocks/chart-group-01/chart-group-01.js +74 -0
  117. package/dist/blocks/chart-group-01/index.d.ts +3 -0
  118. package/dist/blocks/chart-group-01/index.d.ts.map +1 -0
  119. package/dist/blocks/chart-group-01/index.js +1 -0
  120. package/dist/blocks/code-sample-01/code-sample.d.ts +193 -0
  121. package/dist/blocks/code-sample-01/code-sample.d.ts.map +1 -0
  122. package/dist/blocks/code-sample-01/code-sample.js +104 -0
  123. package/dist/blocks/code-sample-01/index.d.ts +3 -0
  124. package/dist/blocks/code-sample-01/index.d.ts.map +1 -0
  125. package/dist/blocks/code-sample-01/index.js +1 -0
  126. package/dist/blocks/community-01/community.d.ts +183 -0
  127. package/dist/blocks/community-01/community.d.ts.map +1 -0
  128. package/dist/blocks/community-01/community.js +102 -0
  129. package/dist/blocks/community-01/index.d.ts +3 -0
  130. package/dist/blocks/community-01/index.d.ts.map +1 -0
  131. package/dist/blocks/community-01/index.js +1 -0
  132. package/dist/blocks/compare-01/compare.d.ts +184 -0
  133. package/dist/blocks/compare-01/compare.d.ts.map +1 -0
  134. package/dist/blocks/compare-01/compare.js +106 -0
  135. package/dist/blocks/compare-01/index.d.ts +3 -0
  136. package/dist/blocks/compare-01/index.d.ts.map +1 -0
  137. package/dist/blocks/compare-01/index.js +1 -0
  138. package/dist/blocks/compliance-01/compliance.d.ts +249 -0
  139. package/dist/blocks/compliance-01/compliance.d.ts.map +1 -0
  140. package/dist/blocks/compliance-01/compliance.js +130 -0
  141. package/dist/blocks/compliance-01/index.d.ts +3 -0
  142. package/dist/blocks/compliance-01/index.d.ts.map +1 -0
  143. package/dist/blocks/compliance-01/index.js +1 -0
  144. package/dist/blocks/consent-01/consent.d.ts +211 -0
  145. package/dist/blocks/consent-01/consent.d.ts.map +1 -0
  146. package/dist/blocks/consent-01/consent.js +101 -0
  147. package/dist/blocks/consent-01/index.d.ts +3 -0
  148. package/dist/blocks/consent-01/index.d.ts.map +1 -0
  149. package/dist/blocks/consent-01/index.js +1 -0
  150. package/dist/blocks/contact-01/contact.d.ts +319 -0
  151. package/dist/blocks/contact-01/contact.d.ts.map +1 -0
  152. package/dist/blocks/contact-01/contact.js +211 -0
  153. package/dist/blocks/contact-01/index.d.ts +3 -0
  154. package/dist/blocks/contact-01/index.d.ts.map +1 -0
  155. package/dist/blocks/contact-01/index.js +1 -0
  156. package/dist/blocks/content-grid-01/content-grid.d.ts +262 -0
  157. package/dist/blocks/content-grid-01/content-grid.d.ts.map +1 -0
  158. package/dist/blocks/content-grid-01/content-grid.js +155 -0
  159. package/dist/blocks/content-grid-01/index.d.ts +3 -0
  160. package/dist/blocks/content-grid-01/index.d.ts.map +1 -0
  161. package/dist/blocks/content-grid-01/index.js +1 -0
  162. package/dist/blocks/cta-01/cta.d.ts +7 -1
  163. package/dist/blocks/cta-01/cta.d.ts.map +1 -1
  164. package/dist/blocks/cta-01/cta.js +11 -2
  165. package/dist/blocks/dashboard-01/dashboard-01.d.ts +247 -0
  166. package/dist/blocks/dashboard-01/dashboard-01.d.ts.map +1 -0
  167. package/dist/blocks/dashboard-01/dashboard-01.js +141 -0
  168. package/dist/blocks/dashboard-01/index.d.ts +3 -0
  169. package/dist/blocks/dashboard-01/index.d.ts.map +1 -0
  170. package/dist/blocks/dashboard-01/index.js +1 -0
  171. package/dist/blocks/data-table-01/data-table.d.ts +22 -1
  172. package/dist/blocks/data-table-01/data-table.d.ts.map +1 -1
  173. package/dist/blocks/data-table-01/data-table.js +9 -5
  174. package/dist/blocks/delivery-01/delivery.d.ts +343 -0
  175. package/dist/blocks/delivery-01/delivery.d.ts.map +1 -0
  176. package/dist/blocks/delivery-01/delivery.js +212 -0
  177. package/dist/blocks/delivery-01/index.d.ts +3 -0
  178. package/dist/blocks/delivery-01/index.d.ts.map +1 -0
  179. package/dist/blocks/delivery-01/index.js +1 -0
  180. package/dist/blocks/directory-01/directory-01.d.ts +316 -0
  181. package/dist/blocks/directory-01/directory-01.d.ts.map +1 -0
  182. package/dist/blocks/directory-01/directory-01.js +252 -0
  183. package/dist/blocks/directory-01/index.d.ts +3 -0
  184. package/dist/blocks/directory-01/index.d.ts.map +1 -0
  185. package/dist/blocks/directory-01/index.js +1 -0
  186. package/dist/blocks/download-01/download.d.ts +261 -0
  187. package/dist/blocks/download-01/download.d.ts.map +1 -0
  188. package/dist/blocks/download-01/download.js +115 -0
  189. package/dist/blocks/download-01/index.d.ts +3 -0
  190. package/dist/blocks/download-01/index.d.ts.map +1 -0
  191. package/dist/blocks/download-01/index.js +1 -0
  192. package/dist/blocks/faq-01/faq.d.ts +128 -0
  193. package/dist/blocks/faq-01/faq.d.ts.map +1 -0
  194. package/dist/blocks/faq-01/faq.js +53 -0
  195. package/dist/blocks/faq-01/index.d.ts +3 -0
  196. package/dist/blocks/faq-01/index.d.ts.map +1 -0
  197. package/dist/blocks/faq-01/index.js +1 -0
  198. package/dist/blocks/feature-rows-01/feature-rows-01.d.ts +158 -0
  199. package/dist/blocks/feature-rows-01/feature-rows-01.d.ts.map +1 -0
  200. package/dist/blocks/feature-rows-01/feature-rows-01.js +81 -0
  201. package/dist/blocks/feature-rows-01/index.d.ts +3 -0
  202. package/dist/blocks/feature-rows-01/index.d.ts.map +1 -0
  203. package/dist/blocks/feature-rows-01/index.js +1 -0
  204. package/dist/blocks/feedback-01/feedback.d.ts +235 -0
  205. package/dist/blocks/feedback-01/feedback.d.ts.map +1 -0
  206. package/dist/blocks/feedback-01/feedback.js +113 -0
  207. package/dist/blocks/feedback-01/index.d.ts +3 -0
  208. package/dist/blocks/feedback-01/index.d.ts.map +1 -0
  209. package/dist/blocks/feedback-01/index.js +1 -0
  210. package/dist/blocks/field-map-01/field-map.d.ts +247 -0
  211. package/dist/blocks/field-map-01/field-map.d.ts.map +1 -0
  212. package/dist/blocks/field-map-01/field-map.js +183 -0
  213. package/dist/blocks/field-map-01/index.d.ts +3 -0
  214. package/dist/blocks/field-map-01/index.d.ts.map +1 -0
  215. package/dist/blocks/field-map-01/index.js +1 -0
  216. package/dist/blocks/forgot-password-01/forgot-password.d.ts +288 -0
  217. package/dist/blocks/forgot-password-01/forgot-password.d.ts.map +1 -0
  218. package/dist/blocks/forgot-password-01/forgot-password.js +190 -0
  219. package/dist/blocks/forgot-password-01/index.d.ts +3 -0
  220. package/dist/blocks/forgot-password-01/index.d.ts.map +1 -0
  221. package/dist/blocks/forgot-password-01/index.js +1 -0
  222. package/dist/blocks/gallery-01/gallery.d.ts +208 -0
  223. package/dist/blocks/gallery-01/gallery.d.ts.map +1 -0
  224. package/dist/blocks/gallery-01/gallery.js +174 -0
  225. package/dist/blocks/gallery-01/index.d.ts +3 -0
  226. package/dist/blocks/gallery-01/index.d.ts.map +1 -0
  227. package/dist/blocks/gallery-01/index.js +1 -0
  228. package/dist/blocks/gantt-01/gantt.d.ts +290 -0
  229. package/dist/blocks/gantt-01/gantt.d.ts.map +1 -0
  230. package/dist/blocks/gantt-01/gantt.js +224 -0
  231. package/dist/blocks/gantt-01/index.d.ts +3 -0
  232. package/dist/blocks/gantt-01/index.d.ts.map +1 -0
  233. package/dist/blocks/gantt-01/index.js +1 -0
  234. package/dist/blocks/handoff-01/handoff-01.d.ts +326 -0
  235. package/dist/blocks/handoff-01/handoff-01.d.ts.map +1 -0
  236. package/dist/blocks/handoff-01/handoff-01.js +180 -0
  237. package/dist/blocks/handoff-01/index.d.ts +3 -0
  238. package/dist/blocks/handoff-01/index.d.ts.map +1 -0
  239. package/dist/blocks/handoff-01/index.js +1 -0
  240. package/dist/blocks/help-01/help.d.ts +254 -0
  241. package/dist/blocks/help-01/help.d.ts.map +1 -0
  242. package/dist/blocks/help-01/help.js +188 -0
  243. package/dist/blocks/help-01/index.d.ts +3 -0
  244. package/dist/blocks/help-01/index.d.ts.map +1 -0
  245. package/dist/blocks/help-01/index.js +1 -0
  246. package/dist/blocks/hero-01/hero.d.ts +105 -34
  247. package/dist/blocks/hero-01/hero.d.ts.map +1 -1
  248. package/dist/blocks/hero-01/hero.js +23 -15
  249. package/dist/blocks/hero-01/index.d.ts +1 -1
  250. package/dist/blocks/hero-01/index.d.ts.map +1 -1
  251. package/dist/blocks/hero-02/hero-02.d.ts +244 -0
  252. package/dist/blocks/hero-02/hero-02.d.ts.map +1 -0
  253. package/dist/blocks/hero-02/hero-02.js +87 -0
  254. package/dist/blocks/hero-02/index.d.ts +3 -0
  255. package/dist/blocks/hero-02/index.d.ts.map +1 -0
  256. package/dist/blocks/hero-02/index.js +1 -0
  257. package/dist/blocks/hero-03/hero-03.d.ts +247 -0
  258. package/dist/blocks/hero-03/hero-03.d.ts.map +1 -0
  259. package/dist/blocks/hero-03/hero-03.js +93 -0
  260. package/dist/blocks/hero-03/index.d.ts +3 -0
  261. package/dist/blocks/hero-03/index.d.ts.map +1 -0
  262. package/dist/blocks/hero-03/index.js +1 -0
  263. package/dist/blocks/history-01/history-01.d.ts +414 -0
  264. package/dist/blocks/history-01/history-01.d.ts.map +1 -0
  265. package/dist/blocks/history-01/history-01.js +285 -0
  266. package/dist/blocks/history-01/index.d.ts +3 -0
  267. package/dist/blocks/history-01/index.d.ts.map +1 -0
  268. package/dist/blocks/history-01/index.js +1 -0
  269. package/dist/blocks/inbox-01/inbox.d.ts +349 -0
  270. package/dist/blocks/inbox-01/inbox.d.ts.map +1 -0
  271. package/dist/blocks/inbox-01/inbox.js +244 -0
  272. package/dist/blocks/inbox-01/index.d.ts +3 -0
  273. package/dist/blocks/inbox-01/index.d.ts.map +1 -0
  274. package/dist/blocks/inbox-01/index.js +1 -0
  275. package/dist/blocks/index.d.ts +203 -0
  276. package/dist/blocks/index.d.ts.map +1 -1
  277. package/dist/blocks/index.js +118 -0
  278. package/dist/blocks/industries-01/index.d.ts +3 -0
  279. package/dist/blocks/industries-01/index.d.ts.map +1 -0
  280. package/dist/blocks/industries-01/index.js +1 -0
  281. package/dist/blocks/industries-01/industries.d.ts +164 -0
  282. package/dist/blocks/industries-01/industries.d.ts.map +1 -0
  283. package/dist/blocks/industries-01/industries.js +96 -0
  284. package/dist/blocks/intake-01/index.d.ts +3 -0
  285. package/dist/blocks/intake-01/index.d.ts.map +1 -0
  286. package/dist/blocks/intake-01/index.js +1 -0
  287. package/dist/blocks/intake-01/intake-01.d.ts +305 -0
  288. package/dist/blocks/intake-01/intake-01.d.ts.map +1 -0
  289. package/dist/blocks/intake-01/intake-01.js +178 -0
  290. package/dist/blocks/integration-01/index.d.ts +3 -0
  291. package/dist/blocks/integration-01/index.d.ts.map +1 -0
  292. package/dist/blocks/integration-01/index.js +1 -0
  293. package/dist/blocks/integration-01/integration.d.ts +226 -0
  294. package/dist/blocks/integration-01/integration.d.ts.map +1 -0
  295. package/dist/blocks/integration-01/integration.js +170 -0
  296. package/dist/blocks/invite-user-01/index.d.ts +3 -0
  297. package/dist/blocks/invite-user-01/index.d.ts.map +1 -0
  298. package/dist/blocks/invite-user-01/index.js +1 -0
  299. package/dist/blocks/invite-user-01/invite-user.d.ts +317 -0
  300. package/dist/blocks/invite-user-01/invite-user.d.ts.map +1 -0
  301. package/dist/blocks/invite-user-01/invite-user.js +228 -0
  302. package/dist/blocks/issue-detail-01/index.d.ts +3 -0
  303. package/dist/blocks/issue-detail-01/index.d.ts.map +1 -0
  304. package/dist/blocks/issue-detail-01/index.js +1 -0
  305. package/dist/blocks/issue-detail-01/issue-detail.d.ts +355 -0
  306. package/dist/blocks/issue-detail-01/issue-detail.d.ts.map +1 -0
  307. package/dist/blocks/issue-detail-01/issue-detail.js +187 -0
  308. package/dist/blocks/issue-list-01/index.d.ts +3 -0
  309. package/dist/blocks/issue-list-01/index.d.ts.map +1 -0
  310. package/dist/blocks/issue-list-01/index.js +1 -0
  311. package/dist/blocks/issue-list-01/issue-list.d.ts +298 -0
  312. package/dist/blocks/issue-list-01/issue-list.d.ts.map +1 -0
  313. package/dist/blocks/issue-list-01/issue-list.js +284 -0
  314. package/dist/blocks/kanban-01/index.d.ts +3 -0
  315. package/dist/blocks/kanban-01/index.d.ts.map +1 -0
  316. package/dist/blocks/kanban-01/index.js +1 -0
  317. package/dist/blocks/kanban-01/kanban.d.ts +278 -0
  318. package/dist/blocks/kanban-01/kanban.d.ts.map +1 -0
  319. package/dist/blocks/kanban-01/kanban.js +144 -0
  320. package/dist/blocks/leaderboard-01/index.d.ts +3 -0
  321. package/dist/blocks/leaderboard-01/index.d.ts.map +1 -0
  322. package/dist/blocks/leaderboard-01/index.js +1 -0
  323. package/dist/blocks/leaderboard-01/leaderboard.d.ts +250 -0
  324. package/dist/blocks/leaderboard-01/leaderboard.d.ts.map +1 -0
  325. package/dist/blocks/leaderboard-01/leaderboard.js +121 -0
  326. package/dist/blocks/login-01/index.d.ts +3 -0
  327. package/dist/blocks/login-01/index.d.ts.map +1 -0
  328. package/dist/blocks/login-01/index.js +1 -0
  329. package/dist/blocks/login-01/login-01.d.ts +356 -0
  330. package/dist/blocks/login-01/login-01.d.ts.map +1 -0
  331. package/dist/blocks/login-01/login-01.js +249 -0
  332. package/dist/blocks/logo-cloud-01/index.d.ts +3 -0
  333. package/dist/blocks/logo-cloud-01/index.d.ts.map +1 -0
  334. package/dist/blocks/logo-cloud-01/index.js +1 -0
  335. package/dist/blocks/logo-cloud-01/logo-cloud.d.ts +181 -0
  336. package/dist/blocks/logo-cloud-01/logo-cloud.d.ts.map +1 -0
  337. package/dist/blocks/logo-cloud-01/logo-cloud.js +118 -0
  338. package/dist/blocks/magic-link-01/index.d.ts +3 -0
  339. package/dist/blocks/magic-link-01/index.d.ts.map +1 -0
  340. package/dist/blocks/magic-link-01/index.js +1 -0
  341. package/dist/blocks/magic-link-01/magic-link-01.d.ts +367 -0
  342. package/dist/blocks/magic-link-01/magic-link-01.d.ts.map +1 -0
  343. package/dist/blocks/magic-link-01/magic-link-01.js +233 -0
  344. package/dist/blocks/member-list-01/index.d.ts +3 -0
  345. package/dist/blocks/member-list-01/index.d.ts.map +1 -0
  346. package/dist/blocks/member-list-01/index.js +1 -0
  347. package/dist/blocks/member-list-01/member-list.d.ts +192 -0
  348. package/dist/blocks/member-list-01/member-list.d.ts.map +1 -0
  349. package/dist/blocks/member-list-01/member-list.js +142 -0
  350. package/dist/blocks/milestone-timeline-01/index.d.ts +3 -0
  351. package/dist/blocks/milestone-timeline-01/index.d.ts.map +1 -0
  352. package/dist/blocks/milestone-timeline-01/index.js +1 -0
  353. package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts +217 -0
  354. package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts.map +1 -0
  355. package/dist/blocks/milestone-timeline-01/milestone-timeline.js +173 -0
  356. package/dist/blocks/newsletter-01/index.d.ts +3 -0
  357. package/dist/blocks/newsletter-01/index.d.ts.map +1 -0
  358. package/dist/blocks/newsletter-01/index.js +1 -0
  359. package/dist/blocks/newsletter-01/newsletter.d.ts +216 -0
  360. package/dist/blocks/newsletter-01/newsletter.d.ts.map +1 -0
  361. package/dist/blocks/newsletter-01/newsletter.js +102 -0
  362. package/dist/blocks/notification-center-01/index.d.ts +3 -0
  363. package/dist/blocks/notification-center-01/index.d.ts.map +1 -0
  364. package/dist/blocks/notification-center-01/index.js +1 -0
  365. package/dist/blocks/notification-center-01/notification-center-01.d.ts +341 -0
  366. package/dist/blocks/notification-center-01/notification-center-01.d.ts.map +1 -0
  367. package/dist/blocks/notification-center-01/notification-center-01.js +203 -0
  368. package/dist/blocks/offer-01/index.d.ts +3 -0
  369. package/dist/blocks/offer-01/index.d.ts.map +1 -0
  370. package/dist/blocks/offer-01/index.js +1 -0
  371. package/dist/blocks/offer-01/offer.d.ts +139 -0
  372. package/dist/blocks/offer-01/offer.d.ts.map +1 -0
  373. package/dist/blocks/offer-01/offer.js +81 -0
  374. package/dist/blocks/offering-01/index.d.ts +3 -0
  375. package/dist/blocks/offering-01/index.d.ts.map +1 -0
  376. package/dist/blocks/offering-01/index.js +1 -0
  377. package/dist/blocks/offering-01/offering.d.ts +245 -0
  378. package/dist/blocks/offering-01/offering.d.ts.map +1 -0
  379. package/dist/blocks/offering-01/offering.js +144 -0
  380. package/dist/blocks/offering-categories-01/index.d.ts +3 -0
  381. package/dist/blocks/offering-categories-01/index.d.ts.map +1 -0
  382. package/dist/blocks/offering-categories-01/index.js +1 -0
  383. package/dist/blocks/offering-categories-01/offering-categories.d.ts +248 -0
  384. package/dist/blocks/offering-categories-01/offering-categories.d.ts.map +1 -0
  385. package/dist/blocks/offering-categories-01/offering-categories.js +153 -0
  386. package/dist/blocks/offering-list-01/index.d.ts +3 -0
  387. package/dist/blocks/offering-list-01/index.d.ts.map +1 -0
  388. package/dist/blocks/offering-list-01/index.js +1 -0
  389. package/dist/blocks/offering-list-01/offering-list.d.ts +362 -0
  390. package/dist/blocks/offering-list-01/offering-list.d.ts.map +1 -0
  391. package/dist/blocks/offering-list-01/offering-list.js +366 -0
  392. package/dist/blocks/onboarding-01/index.d.ts +3 -0
  393. package/dist/blocks/onboarding-01/index.d.ts.map +1 -0
  394. package/dist/blocks/onboarding-01/index.js +1 -0
  395. package/dist/blocks/onboarding-01/onboarding.d.ts +199 -0
  396. package/dist/blocks/onboarding-01/onboarding.d.ts.map +1 -0
  397. package/dist/blocks/onboarding-01/onboarding.js +182 -0
  398. package/dist/blocks/ops-checklist-01/index.d.ts +3 -0
  399. package/dist/blocks/ops-checklist-01/index.d.ts.map +1 -0
  400. package/dist/blocks/ops-checklist-01/index.js +1 -0
  401. package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts +308 -0
  402. package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts.map +1 -0
  403. package/dist/blocks/ops-checklist-01/ops-checklist-01.js +165 -0
  404. package/dist/blocks/page-header-01/index.d.ts +1 -1
  405. package/dist/blocks/page-header-01/index.d.ts.map +1 -1
  406. package/dist/blocks/page-header-01/page-header.d.ts +131 -11
  407. package/dist/blocks/page-header-01/page-header.d.ts.map +1 -1
  408. package/dist/blocks/page-header-01/page-header.js +33 -9
  409. package/dist/blocks/passkey-01/index.d.ts +3 -0
  410. package/dist/blocks/passkey-01/index.d.ts.map +1 -0
  411. package/dist/blocks/passkey-01/index.js +1 -0
  412. package/dist/blocks/passkey-01/passkey-01.d.ts +334 -0
  413. package/dist/blocks/passkey-01/passkey-01.d.ts.map +1 -0
  414. package/dist/blocks/passkey-01/passkey-01.js +192 -0
  415. package/dist/blocks/permission-matrix-01/index.d.ts +3 -0
  416. package/dist/blocks/permission-matrix-01/index.d.ts.map +1 -0
  417. package/dist/blocks/permission-matrix-01/index.js +1 -0
  418. package/dist/blocks/permission-matrix-01/permission-matrix.d.ts +282 -0
  419. package/dist/blocks/permission-matrix-01/permission-matrix.d.ts.map +1 -0
  420. package/dist/blocks/permission-matrix-01/permission-matrix.js +173 -0
  421. package/dist/blocks/pricing-01/index.d.ts +1 -0
  422. package/dist/blocks/pricing-01/index.d.ts.map +1 -1
  423. package/dist/blocks/pricing-01/pricing.d.ts +118 -1
  424. package/dist/blocks/pricing-01/pricing.d.ts.map +1 -1
  425. package/dist/blocks/pricing-01/pricing.js +9 -2
  426. package/dist/blocks/pricing-compare-01/index.d.ts +3 -0
  427. package/dist/blocks/pricing-compare-01/index.d.ts.map +1 -0
  428. package/dist/blocks/pricing-compare-01/index.js +1 -0
  429. package/dist/blocks/pricing-compare-01/pricing-compare.d.ts +277 -0
  430. package/dist/blocks/pricing-compare-01/pricing-compare.d.ts.map +1 -0
  431. package/dist/blocks/pricing-compare-01/pricing-compare.js +126 -0
  432. package/dist/blocks/project-01/index.d.ts +3 -0
  433. package/dist/blocks/project-01/index.d.ts.map +1 -0
  434. package/dist/blocks/project-01/index.js +1 -0
  435. package/dist/blocks/project-01/project.d.ts +323 -0
  436. package/dist/blocks/project-01/project.d.ts.map +1 -0
  437. package/dist/blocks/project-01/project.js +247 -0
  438. package/dist/blocks/project-dashboard-01/index.d.ts +3 -0
  439. package/dist/blocks/project-dashboard-01/index.d.ts.map +1 -0
  440. package/dist/blocks/project-dashboard-01/index.js +1 -0
  441. package/dist/blocks/project-dashboard-01/project-dashboard.d.ts +200 -0
  442. package/dist/blocks/project-dashboard-01/project-dashboard.d.ts.map +1 -0
  443. package/dist/blocks/project-dashboard-01/project-dashboard.js +124 -0
  444. package/dist/blocks/project-list-01/index.d.ts +3 -0
  445. package/dist/blocks/project-list-01/index.d.ts.map +1 -0
  446. package/dist/blocks/project-list-01/index.js +1 -0
  447. package/dist/blocks/project-list-01/project-list.d.ts +301 -0
  448. package/dist/blocks/project-list-01/project-list.d.ts.map +1 -0
  449. package/dist/blocks/project-list-01/project-list.js +305 -0
  450. package/dist/blocks/provisioning-01/index.d.ts +3 -0
  451. package/dist/blocks/provisioning-01/index.d.ts.map +1 -0
  452. package/dist/blocks/provisioning-01/index.js +1 -0
  453. package/dist/blocks/provisioning-01/provisioning.d.ts +357 -0
  454. package/dist/blocks/provisioning-01/provisioning.d.ts.map +1 -0
  455. package/dist/blocks/provisioning-01/provisioning.js +230 -0
  456. package/dist/blocks/quick-view-01/index.d.ts +3 -0
  457. package/dist/blocks/quick-view-01/index.d.ts.map +1 -0
  458. package/dist/blocks/quick-view-01/index.js +1 -0
  459. package/dist/blocks/quick-view-01/quick-view.d.ts +215 -0
  460. package/dist/blocks/quick-view-01/quick-view.d.ts.map +1 -0
  461. package/dist/blocks/quick-view-01/quick-view.js +136 -0
  462. package/dist/blocks/rate-card-01/index.d.ts +3 -0
  463. package/dist/blocks/rate-card-01/index.d.ts.map +1 -0
  464. package/dist/blocks/rate-card-01/index.js +1 -0
  465. package/dist/blocks/rate-card-01/rate-card.d.ts +184 -0
  466. package/dist/blocks/rate-card-01/rate-card.d.ts.map +1 -0
  467. package/dist/blocks/rate-card-01/rate-card.js +79 -0
  468. package/dist/blocks/reset-password-01/index.d.ts +3 -0
  469. package/dist/blocks/reset-password-01/index.d.ts.map +1 -0
  470. package/dist/blocks/reset-password-01/index.js +1 -0
  471. package/dist/blocks/reset-password-01/reset-password.d.ts +276 -0
  472. package/dist/blocks/reset-password-01/reset-password.d.ts.map +1 -0
  473. package/dist/blocks/reset-password-01/reset-password.js +175 -0
  474. package/dist/blocks/resource-list-01/index.d.ts +3 -0
  475. package/dist/blocks/resource-list-01/index.d.ts.map +1 -0
  476. package/dist/blocks/resource-list-01/index.js +1 -0
  477. package/dist/blocks/resource-list-01/resource-list.d.ts +237 -0
  478. package/dist/blocks/resource-list-01/resource-list.d.ts.map +1 -0
  479. package/dist/blocks/resource-list-01/resource-list.js +154 -0
  480. package/dist/blocks/retention-01/index.d.ts +3 -0
  481. package/dist/blocks/retention-01/index.d.ts.map +1 -0
  482. package/dist/blocks/retention-01/index.js +1 -0
  483. package/dist/blocks/retention-01/retention.d.ts +255 -0
  484. package/dist/blocks/retention-01/retention.d.ts.map +1 -0
  485. package/dist/blocks/retention-01/retention.js +145 -0
  486. package/dist/blocks/run-console-01/run-console.d.ts +14 -1
  487. package/dist/blocks/run-console-01/run-console.d.ts.map +1 -1
  488. package/dist/blocks/run-console-01/run-console.js +4 -2
  489. package/dist/blocks/services-01/index.d.ts +3 -0
  490. package/dist/blocks/services-01/index.d.ts.map +1 -0
  491. package/dist/blocks/services-01/index.js +1 -0
  492. package/dist/blocks/services-01/services.d.ts +159 -0
  493. package/dist/blocks/services-01/services.d.ts.map +1 -0
  494. package/dist/blocks/services-01/services.js +81 -0
  495. package/dist/blocks/settings-integrations-01/index.d.ts +3 -0
  496. package/dist/blocks/settings-integrations-01/index.d.ts.map +1 -0
  497. package/dist/blocks/settings-integrations-01/index.js +1 -0
  498. package/dist/blocks/settings-integrations-01/settings-integrations.d.ts +246 -0
  499. package/dist/blocks/settings-integrations-01/settings-integrations.d.ts.map +1 -0
  500. package/dist/blocks/settings-integrations-01/settings-integrations.js +213 -0
  501. package/dist/blocks/settings-members-01/index.d.ts +3 -0
  502. package/dist/blocks/settings-members-01/index.d.ts.map +1 -0
  503. package/dist/blocks/settings-members-01/index.js +1 -0
  504. package/dist/blocks/settings-members-01/settings-members.d.ts +396 -0
  505. package/dist/blocks/settings-members-01/settings-members.d.ts.map +1 -0
  506. package/dist/blocks/settings-members-01/settings-members.js +255 -0
  507. package/dist/blocks/settings-notifications-01/index.d.ts +3 -0
  508. package/dist/blocks/settings-notifications-01/index.d.ts.map +1 -0
  509. package/dist/blocks/settings-notifications-01/index.js +1 -0
  510. package/dist/blocks/settings-notifications-01/settings-notifications.d.ts +270 -0
  511. package/dist/blocks/settings-notifications-01/settings-notifications.d.ts.map +1 -0
  512. package/dist/blocks/settings-notifications-01/settings-notifications.js +202 -0
  513. package/dist/blocks/settings-security-01/index.d.ts +3 -0
  514. package/dist/blocks/settings-security-01/index.d.ts.map +1 -0
  515. package/dist/blocks/settings-security-01/index.js +1 -0
  516. package/dist/blocks/settings-security-01/settings-security.d.ts +439 -0
  517. package/dist/blocks/settings-security-01/settings-security.d.ts.map +1 -0
  518. package/dist/blocks/settings-security-01/settings-security.js +244 -0
  519. package/dist/blocks/shortlist-01/index.d.ts +3 -0
  520. package/dist/blocks/shortlist-01/index.d.ts.map +1 -0
  521. package/dist/blocks/shortlist-01/index.js +1 -0
  522. package/dist/blocks/shortlist-01/shortlist-01.d.ts +337 -0
  523. package/dist/blocks/shortlist-01/shortlist-01.d.ts.map +1 -0
  524. package/dist/blocks/shortlist-01/shortlist-01.js +191 -0
  525. package/dist/blocks/showcase-01/index.d.ts +3 -0
  526. package/dist/blocks/showcase-01/index.d.ts.map +1 -0
  527. package/dist/blocks/showcase-01/index.js +1 -0
  528. package/dist/blocks/showcase-01/showcase-01.d.ts +238 -0
  529. package/dist/blocks/showcase-01/showcase-01.d.ts.map +1 -0
  530. package/dist/blocks/showcase-01/showcase-01.js +84 -0
  531. package/dist/blocks/signup-01/index.d.ts +3 -0
  532. package/dist/blocks/signup-01/index.d.ts.map +1 -0
  533. package/dist/blocks/signup-01/index.js +1 -0
  534. package/dist/blocks/signup-01/signup-01.d.ts +405 -0
  535. package/dist/blocks/signup-01/signup-01.d.ts.map +1 -0
  536. package/dist/blocks/signup-01/signup-01.js +209 -0
  537. package/dist/blocks/site-footer/site-footer.d.ts +34 -1
  538. package/dist/blocks/site-footer/site-footer.d.ts.map +1 -1
  539. package/dist/blocks/site-footer/site-footer.js +24 -2
  540. package/dist/blocks/site-header/site-header.js +1 -1
  541. package/dist/blocks/site-navbar/site-navbar.d.ts +37 -3
  542. package/dist/blocks/site-navbar/site-navbar.d.ts.map +1 -1
  543. package/dist/blocks/site-navbar/site-navbar.js +33 -4
  544. package/dist/blocks/spec-table-01/index.d.ts +3 -0
  545. package/dist/blocks/spec-table-01/index.d.ts.map +1 -0
  546. package/dist/blocks/spec-table-01/index.js +1 -0
  547. package/dist/blocks/spec-table-01/spec-table.d.ts +293 -0
  548. package/dist/blocks/spec-table-01/spec-table.d.ts.map +1 -0
  549. package/dist/blocks/spec-table-01/spec-table.js +217 -0
  550. package/dist/blocks/stack-grid-01/stack-grid.d.ts +13 -0
  551. package/dist/blocks/stack-grid-01/stack-grid.d.ts.map +1 -1
  552. package/dist/blocks/stack-grid-01/stack-grid.js +14 -1
  553. package/dist/blocks/story-01/index.d.ts +3 -0
  554. package/dist/blocks/story-01/index.d.ts.map +1 -0
  555. package/dist/blocks/story-01/index.js +1 -0
  556. package/dist/blocks/story-01/story.d.ts +153 -0
  557. package/dist/blocks/story-01/story.d.ts.map +1 -0
  558. package/dist/blocks/story-01/story.js +103 -0
  559. package/dist/blocks/summary-01/index.d.ts +3 -0
  560. package/dist/blocks/summary-01/index.d.ts.map +1 -0
  561. package/dist/blocks/summary-01/index.js +1 -0
  562. package/dist/blocks/summary-01/summary.d.ts +300 -0
  563. package/dist/blocks/summary-01/summary.d.ts.map +1 -0
  564. package/dist/blocks/summary-01/summary.js +174 -0
  565. package/dist/blocks/team-01/index.d.ts +3 -0
  566. package/dist/blocks/team-01/index.d.ts.map +1 -0
  567. package/dist/blocks/team-01/index.js +1 -0
  568. package/dist/blocks/team-01/team.d.ts +176 -0
  569. package/dist/blocks/team-01/team.d.ts.map +1 -0
  570. package/dist/blocks/team-01/team.js +117 -0
  571. package/dist/blocks/testimonial-01/index.d.ts +3 -0
  572. package/dist/blocks/testimonial-01/index.d.ts.map +1 -0
  573. package/dist/blocks/testimonial-01/index.js +1 -0
  574. package/dist/blocks/testimonial-01/testimonial.d.ts +173 -0
  575. package/dist/blocks/testimonial-01/testimonial.d.ts.map +1 -0
  576. package/dist/blocks/testimonial-01/testimonial.js +87 -0
  577. package/dist/blocks/todo-01/index.d.ts +3 -0
  578. package/dist/blocks/todo-01/index.d.ts.map +1 -0
  579. package/dist/blocks/todo-01/index.js +1 -0
  580. package/dist/blocks/todo-01/todo.d.ts +286 -0
  581. package/dist/blocks/todo-01/todo.d.ts.map +1 -0
  582. package/dist/blocks/todo-01/todo.js +149 -0
  583. package/dist/blocks/trend-01/index.d.ts +3 -0
  584. package/dist/blocks/trend-01/index.d.ts.map +1 -0
  585. package/dist/blocks/trend-01/index.js +1 -0
  586. package/dist/blocks/trend-01/trend.d.ts +184 -0
  587. package/dist/blocks/trend-01/trend.d.ts.map +1 -0
  588. package/dist/blocks/trend-01/trend.js +99 -0
  589. package/dist/blocks/trust-strip-01/index.d.ts +3 -0
  590. package/dist/blocks/trust-strip-01/index.d.ts.map +1 -0
  591. package/dist/blocks/trust-strip-01/index.js +1 -0
  592. package/dist/blocks/trust-strip-01/trust-strip-01.d.ts +139 -0
  593. package/dist/blocks/trust-strip-01/trust-strip-01.d.ts.map +1 -0
  594. package/dist/blocks/trust-strip-01/trust-strip-01.js +58 -0
  595. package/dist/blocks/two-factor-01/index.d.ts +3 -0
  596. package/dist/blocks/two-factor-01/index.d.ts.map +1 -0
  597. package/dist/blocks/two-factor-01/index.js +1 -0
  598. package/dist/blocks/two-factor-01/two-factor-01.d.ts +440 -0
  599. package/dist/blocks/two-factor-01/two-factor-01.d.ts.map +1 -0
  600. package/dist/blocks/two-factor-01/two-factor-01.js +273 -0
  601. package/dist/blocks/user-profile-01/index.d.ts +3 -0
  602. package/dist/blocks/user-profile-01/index.d.ts.map +1 -0
  603. package/dist/blocks/user-profile-01/index.js +1 -0
  604. package/dist/blocks/user-profile-01/user-profile-01.d.ts +258 -0
  605. package/dist/blocks/user-profile-01/user-profile-01.d.ts.map +1 -0
  606. package/dist/blocks/user-profile-01/user-profile-01.js +158 -0
  607. package/dist/blocks/verify-email-01/index.d.ts +3 -0
  608. package/dist/blocks/verify-email-01/index.d.ts.map +1 -0
  609. package/dist/blocks/verify-email-01/index.js +1 -0
  610. package/dist/blocks/verify-email-01/verify-email.d.ts +262 -0
  611. package/dist/blocks/verify-email-01/verify-email.d.ts.map +1 -0
  612. package/dist/blocks/verify-email-01/verify-email.js +190 -0
  613. package/dist/blocks/waitlist-01/index.d.ts +3 -0
  614. package/dist/blocks/waitlist-01/index.d.ts.map +1 -0
  615. package/dist/blocks/waitlist-01/index.js +1 -0
  616. package/dist/blocks/waitlist-01/waitlist.d.ts +254 -0
  617. package/dist/blocks/waitlist-01/waitlist.d.ts.map +1 -0
  618. package/dist/blocks/waitlist-01/waitlist.js +75 -0
  619. package/dist/catalog.d.ts.map +1 -1
  620. package/dist/catalog.js +1641 -1
  621. package/dist/components/index.d.ts +114 -0
  622. package/dist/components/index.d.ts.map +1 -1
  623. package/dist/components/index.js +134 -0
  624. package/dist/components/ui/accordion.d.ts.map +1 -1
  625. package/dist/components/ui/accordion.js +9 -2
  626. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  627. package/dist/components/ui/alert-dialog.js +22 -4
  628. package/dist/components/ui/announcement.d.ts +169 -0
  629. package/dist/components/ui/announcement.d.ts.map +1 -0
  630. package/dist/components/ui/announcement.js +123 -0
  631. package/dist/components/ui/avatar-group.d.ts +176 -0
  632. package/dist/components/ui/avatar-group.d.ts.map +1 -0
  633. package/dist/components/ui/avatar-group.js +135 -0
  634. package/dist/components/ui/billing-source.d.ts +293 -0
  635. package/dist/components/ui/billing-source.d.ts.map +1 -0
  636. package/dist/components/ui/billing-source.js +136 -0
  637. package/dist/components/ui/button.d.ts +16 -1
  638. package/dist/components/ui/button.d.ts.map +1 -1
  639. package/dist/components/ui/button.js +17 -2
  640. package/dist/components/ui/calendar.d.ts +9 -0
  641. package/dist/components/ui/calendar.d.ts.map +1 -1
  642. package/dist/components/ui/calendar.js +30 -2
  643. package/dist/components/ui/carousel.d.ts +7 -0
  644. package/dist/components/ui/carousel.d.ts.map +1 -1
  645. package/dist/components/ui/carousel.js +58 -1
  646. package/dist/components/ui/chart.d.ts +334 -0
  647. package/dist/components/ui/chart.d.ts.map +1 -0
  648. package/dist/components/ui/chart.js +369 -0
  649. package/dist/components/ui/checkbox.d.ts +10 -0
  650. package/dist/components/ui/checkbox.d.ts.map +1 -1
  651. package/dist/components/ui/checkbox.js +19 -1
  652. package/dist/components/ui/checklist.d.ts +262 -0
  653. package/dist/components/ui/checklist.d.ts.map +1 -0
  654. package/dist/components/ui/checklist.js +135 -0
  655. package/dist/components/ui/choice-card.d.ts +273 -0
  656. package/dist/components/ui/choice-card.d.ts.map +1 -0
  657. package/dist/components/ui/choice-card.js +138 -0
  658. package/dist/components/ui/code-block.d.ts +182 -0
  659. package/dist/components/ui/code-block.d.ts.map +1 -0
  660. package/dist/components/ui/code-block.js +108 -0
  661. package/dist/components/ui/cohort-grid.d.ts +210 -0
  662. package/dist/components/ui/cohort-grid.d.ts.map +1 -0
  663. package/dist/components/ui/cohort-grid.js +202 -0
  664. package/dist/components/ui/collapsible.d.ts +11 -0
  665. package/dist/components/ui/collapsible.d.ts.map +1 -1
  666. package/dist/components/ui/collapsible.js +13 -2
  667. package/dist/components/ui/combobox.d.ts +4 -1
  668. package/dist/components/ui/combobox.d.ts.map +1 -1
  669. package/dist/components/ui/combobox.js +20 -4
  670. package/dist/components/ui/command-palette.d.ts +11 -0
  671. package/dist/components/ui/command-palette.d.ts.map +1 -1
  672. package/dist/components/ui/command-palette.js +49 -3
  673. package/dist/components/ui/contribution-graph.d.ts +156 -0
  674. package/dist/components/ui/contribution-graph.d.ts.map +1 -0
  675. package/dist/components/ui/contribution-graph.js +170 -0
  676. package/dist/components/ui/creatable-combobox.d.ts +153 -0
  677. package/dist/components/ui/creatable-combobox.d.ts.map +1 -0
  678. package/dist/components/ui/creatable-combobox.js +285 -0
  679. package/dist/components/ui/data-toolbar.d.ts +133 -0
  680. package/dist/components/ui/data-toolbar.d.ts.map +1 -0
  681. package/dist/components/ui/data-toolbar.js +67 -0
  682. package/dist/components/ui/date-picker.d.ts.map +1 -1
  683. package/dist/components/ui/date-picker.js +9 -1
  684. package/dist/components/ui/diagram.d.ts +38 -7
  685. package/dist/components/ui/diagram.d.ts.map +1 -1
  686. package/dist/components/ui/diagram.js +134 -52
  687. package/dist/components/ui/dialog.d.ts +31 -2
  688. package/dist/components/ui/dialog.d.ts.map +1 -1
  689. package/dist/components/ui/dialog.js +40 -6
  690. package/dist/components/ui/drawer.d.ts +270 -0
  691. package/dist/components/ui/drawer.d.ts.map +1 -0
  692. package/dist/components/ui/drawer.js +241 -0
  693. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  694. package/dist/components/ui/dropdown-menu.js +6 -1
  695. package/dist/components/ui/dropzone.d.ts +147 -0
  696. package/dist/components/ui/dropzone.d.ts.map +1 -0
  697. package/dist/components/ui/dropzone.js +141 -0
  698. package/dist/components/ui/emoji-picker.d.ts +328 -0
  699. package/dist/components/ui/emoji-picker.d.ts.map +1 -0
  700. package/dist/components/ui/emoji-picker.js +278 -0
  701. package/dist/components/ui/fact-list.d.ts +17 -0
  702. package/dist/components/ui/fact-list.d.ts.map +1 -1
  703. package/dist/components/ui/fact-list.js +18 -1
  704. package/dist/components/ui/file-upload.d.ts +152 -0
  705. package/dist/components/ui/file-upload.d.ts.map +1 -0
  706. package/dist/components/ui/file-upload.js +101 -0
  707. package/dist/components/ui/filter-panel.d.ts +164 -0
  708. package/dist/components/ui/filter-panel.d.ts.map +1 -0
  709. package/dist/components/ui/filter-panel.js +91 -0
  710. package/dist/components/ui/form-dialog.d.ts +257 -0
  711. package/dist/components/ui/form-dialog.d.ts.map +1 -0
  712. package/dist/components/ui/form-dialog.js +176 -0
  713. package/dist/components/ui/form-wizard.d.ts +251 -0
  714. package/dist/components/ui/form-wizard.d.ts.map +1 -0
  715. package/dist/components/ui/form-wizard.js +151 -0
  716. package/dist/components/ui/image-list-field.d.ts +232 -0
  717. package/dist/components/ui/image-list-field.d.ts.map +1 -0
  718. package/dist/components/ui/image-list-field.js +168 -0
  719. package/dist/components/ui/image-zoom.d.ts +164 -0
  720. package/dist/components/ui/image-zoom.d.ts.map +1 -0
  721. package/dist/components/ui/image-zoom.js +169 -0
  722. package/dist/components/ui/intensity-grid.d.ts +270 -0
  723. package/dist/components/ui/intensity-grid.d.ts.map +1 -0
  724. package/dist/components/ui/intensity-grid.js +211 -0
  725. package/dist/components/ui/lifecycle-button.d.ts +276 -0
  726. package/dist/components/ui/lifecycle-button.d.ts.map +1 -0
  727. package/dist/components/ui/lifecycle-button.js +144 -0
  728. package/dist/components/ui/lightbox.d.ts +165 -0
  729. package/dist/components/ui/lightbox.d.ts.map +1 -0
  730. package/dist/components/ui/lightbox.js +130 -0
  731. package/dist/components/ui/list-panel.d.ts +288 -0
  732. package/dist/components/ui/list-panel.d.ts.map +1 -0
  733. package/dist/components/ui/list-panel.js +139 -0
  734. package/dist/components/ui/mega-menu.d.ts +244 -0
  735. package/dist/components/ui/mega-menu.d.ts.map +1 -0
  736. package/dist/components/ui/mega-menu.js +97 -0
  737. package/dist/components/ui/menubar.d.ts +9 -0
  738. package/dist/components/ui/menubar.d.ts.map +1 -1
  739. package/dist/components/ui/menubar.js +10 -1
  740. package/dist/components/ui/metric.d.ts +123 -0
  741. package/dist/components/ui/metric.d.ts.map +1 -0
  742. package/dist/components/ui/metric.js +68 -0
  743. package/dist/components/ui/mini-calendar.d.ts +143 -0
  744. package/dist/components/ui/mini-calendar.d.ts.map +1 -0
  745. package/dist/components/ui/mini-calendar.js +261 -0
  746. package/dist/components/ui/mode-toggle.d.ts +102 -0
  747. package/dist/components/ui/mode-toggle.d.ts.map +1 -0
  748. package/dist/components/ui/mode-toggle.js +83 -0
  749. package/dist/components/ui/money-field.d.ts +200 -0
  750. package/dist/components/ui/money-field.d.ts.map +1 -0
  751. package/dist/components/ui/money-field.js +215 -0
  752. package/dist/components/ui/multi-combobox.d.ts +181 -0
  753. package/dist/components/ui/multi-combobox.d.ts.map +1 -0
  754. package/dist/components/ui/multi-combobox.js +297 -0
  755. package/dist/components/ui/native-select.d.ts.map +1 -1
  756. package/dist/components/ui/native-select.js +8 -1
  757. package/dist/components/ui/navigation-menu.d.ts +7 -0
  758. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  759. package/dist/components/ui/navigation-menu.js +8 -1
  760. package/dist/components/ui/nested-tabs.d.ts +188 -0
  761. package/dist/components/ui/nested-tabs.d.ts.map +1 -0
  762. package/dist/components/ui/nested-tabs.js +75 -0
  763. package/dist/components/ui/number-field.d.ts +40 -7
  764. package/dist/components/ui/number-field.d.ts.map +1 -1
  765. package/dist/components/ui/number-field.js +37 -7
  766. package/dist/components/ui/overflow-actions.d.ts +169 -0
  767. package/dist/components/ui/overflow-actions.d.ts.map +1 -0
  768. package/dist/components/ui/overflow-actions.js +266 -0
  769. package/dist/components/ui/pack-swatch.d.ts +177 -0
  770. package/dist/components/ui/pack-swatch.d.ts.map +1 -0
  771. package/dist/components/ui/pack-swatch.js +117 -0
  772. package/dist/components/ui/pack-switcher.d.ts +221 -0
  773. package/dist/components/ui/pack-switcher.d.ts.map +1 -0
  774. package/dist/components/ui/pack-switcher.js +94 -0
  775. package/dist/components/ui/pagination.d.ts +22 -0
  776. package/dist/components/ui/pagination.d.ts.map +1 -1
  777. package/dist/components/ui/pagination.js +23 -1
  778. package/dist/components/ui/password-field.d.ts +122 -0
  779. package/dist/components/ui/password-field.d.ts.map +1 -0
  780. package/dist/components/ui/password-field.js +69 -0
  781. package/dist/components/ui/pill.d.ts +172 -0
  782. package/dist/components/ui/pill.d.ts.map +1 -0
  783. package/dist/components/ui/pill.js +102 -0
  784. package/dist/components/ui/platform-modifier-key.d.ts +129 -0
  785. package/dist/components/ui/platform-modifier-key.d.ts.map +1 -0
  786. package/dist/components/ui/platform-modifier-key.js +125 -0
  787. package/dist/components/ui/popover.d.ts.map +1 -1
  788. package/dist/components/ui/popover.js +8 -1
  789. package/dist/components/ui/price.d.ts +144 -0
  790. package/dist/components/ui/price.d.ts.map +1 -0
  791. package/dist/components/ui/price.js +107 -0
  792. package/dist/components/ui/progress.d.ts +55 -1
  793. package/dist/components/ui/progress.d.ts.map +1 -1
  794. package/dist/components/ui/progress.js +110 -2
  795. package/dist/components/ui/prompt-composer.d.ts +302 -0
  796. package/dist/components/ui/prompt-composer.d.ts.map +1 -0
  797. package/dist/components/ui/prompt-composer.js +145 -0
  798. package/dist/components/ui/proportion-list.d.ts +188 -0
  799. package/dist/components/ui/proportion-list.d.ts.map +1 -0
  800. package/dist/components/ui/proportion-list.js +134 -0
  801. package/dist/components/ui/prose.d.ts +34 -0
  802. package/dist/components/ui/prose.d.ts.map +1 -1
  803. package/dist/components/ui/prose.js +41 -1
  804. package/dist/components/ui/pulse-graph.d.ts +36 -4
  805. package/dist/components/ui/pulse-graph.d.ts.map +1 -1
  806. package/dist/components/ui/pulse-graph.js +174 -60
  807. package/dist/components/ui/radio-group.d.ts +7 -0
  808. package/dist/components/ui/radio-group.d.ts.map +1 -1
  809. package/dist/components/ui/radio-group.js +8 -1
  810. package/dist/components/ui/range-field.d.ts +158 -0
  811. package/dist/components/ui/range-field.d.ts.map +1 -0
  812. package/dist/components/ui/range-field.js +208 -0
  813. package/dist/components/ui/relative-time.d.ts +116 -0
  814. package/dist/components/ui/relative-time.d.ts.map +1 -0
  815. package/dist/components/ui/relative-time.js +67 -0
  816. package/dist/components/ui/reorderable-list.d.ts +262 -0
  817. package/dist/components/ui/reorderable-list.d.ts.map +1 -0
  818. package/dist/components/ui/reorderable-list.js +325 -0
  819. package/dist/components/ui/repeatable-rows.d.ts +241 -0
  820. package/dist/components/ui/repeatable-rows.d.ts.map +1 -0
  821. package/dist/components/ui/repeatable-rows.js +221 -0
  822. package/dist/components/ui/repo-stars.d.ts +165 -0
  823. package/dist/components/ui/repo-stars.d.ts.map +1 -0
  824. package/dist/components/ui/repo-stars.js +92 -0
  825. package/dist/components/ui/resizable.d.ts +24 -0
  826. package/dist/components/ui/resizable.d.ts.map +1 -1
  827. package/dist/components/ui/resizable.js +96 -4
  828. package/dist/components/ui/search-dialog.d.ts +40 -5
  829. package/dist/components/ui/search-dialog.d.ts.map +1 -1
  830. package/dist/components/ui/search-dialog.js +94 -16
  831. package/dist/components/ui/search-field.d.ts +159 -0
  832. package/dist/components/ui/search-field.d.ts.map +1 -0
  833. package/dist/components/ui/search-field.js +98 -0
  834. package/dist/components/ui/section.d.ts +110 -1
  835. package/dist/components/ui/section.d.ts.map +1 -1
  836. package/dist/components/ui/section.js +111 -3
  837. package/dist/components/ui/select.d.ts.map +1 -1
  838. package/dist/components/ui/select.js +9 -1
  839. package/dist/components/ui/selection-toolbar.d.ts +166 -0
  840. package/dist/components/ui/selection-toolbar.d.ts.map +1 -0
  841. package/dist/components/ui/selection-toolbar.js +139 -0
  842. package/dist/components/ui/sidebar.d.ts +29 -0
  843. package/dist/components/ui/sidebar.d.ts.map +1 -1
  844. package/dist/components/ui/sidebar.js +35 -2
  845. package/dist/components/ui/signal-field.d.ts.map +1 -1
  846. package/dist/components/ui/signal-field.js +1 -1
  847. package/dist/components/ui/slider.d.ts +7 -0
  848. package/dist/components/ui/slider.d.ts.map +1 -1
  849. package/dist/components/ui/slider.js +32 -1
  850. package/dist/components/ui/sparkline.d.ts +117 -0
  851. package/dist/components/ui/sparkline.d.ts.map +1 -0
  852. package/dist/components/ui/sparkline.js +113 -0
  853. package/dist/components/ui/spinner.d.ts.map +1 -1
  854. package/dist/components/ui/spinner.js +13 -0
  855. package/dist/components/ui/split-button.d.ts +207 -0
  856. package/dist/components/ui/split-button.d.ts.map +1 -0
  857. package/dist/components/ui/split-button.js +75 -0
  858. package/dist/components/ui/stateful-table.d.ts +345 -0
  859. package/dist/components/ui/stateful-table.d.ts.map +1 -0
  860. package/dist/components/ui/stateful-table.js +169 -0
  861. package/dist/components/ui/status.d.ts +99 -0
  862. package/dist/components/ui/status.d.ts.map +1 -0
  863. package/dist/components/ui/status.js +63 -0
  864. package/dist/components/ui/stepper.d.ts +155 -0
  865. package/dist/components/ui/stepper.d.ts.map +1 -0
  866. package/dist/components/ui/stepper.js +83 -0
  867. package/dist/components/ui/steps.d.ts +141 -0
  868. package/dist/components/ui/steps.d.ts.map +1 -0
  869. package/dist/components/ui/steps.js +128 -0
  870. package/dist/components/ui/switch.d.ts +8 -0
  871. package/dist/components/ui/switch.d.ts.map +1 -1
  872. package/dist/components/ui/switch.js +12 -1
  873. package/dist/components/ui/tabs.d.ts +21 -2
  874. package/dist/components/ui/tabs.d.ts.map +1 -1
  875. package/dist/components/ui/tabs.js +23 -4
  876. package/dist/components/ui/tag-group.d.ts +154 -0
  877. package/dist/components/ui/tag-group.d.ts.map +1 -0
  878. package/dist/components/ui/tag-group.js +111 -0
  879. package/dist/components/ui/task-progress.d.ts +149 -0
  880. package/dist/components/ui/task-progress.d.ts.map +1 -0
  881. package/dist/components/ui/task-progress.js +110 -0
  882. package/dist/components/ui/text-format-toolbar.d.ts +211 -0
  883. package/dist/components/ui/text-format-toolbar.d.ts.map +1 -0
  884. package/dist/components/ui/text-format-toolbar.js +186 -0
  885. package/dist/components/ui/timeline.d.ts.map +1 -1
  886. package/dist/components/ui/timeline.js +10 -1
  887. package/dist/components/ui/toast.d.ts +32 -10
  888. package/dist/components/ui/toast.d.ts.map +1 -1
  889. package/dist/components/ui/toast.js +150 -47
  890. package/dist/components/ui/toggle-group.d.ts +14 -5
  891. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  892. package/dist/components/ui/toggle-group.js +15 -1
  893. package/dist/components/ui/toggle.d.ts.map +1 -1
  894. package/dist/components/ui/toggle.js +9 -1
  895. package/dist/components/ui/tree.d.ts +8 -0
  896. package/dist/components/ui/tree.d.ts.map +1 -1
  897. package/dist/components/ui/tree.js +92 -13
  898. package/dist/components/ui/video-player.d.ts +236 -0
  899. package/dist/components/ui/video-player.d.ts.map +1 -0
  900. package/dist/components/ui/video-player.js +72 -0
  901. package/dist/fonts/inter-latin-400-italic.woff2 +0 -0
  902. package/dist/index.d.ts +112 -0
  903. package/dist/index.d.ts.map +1 -1
  904. package/dist/index.js +72 -0
  905. package/dist/lib/figure.d.ts +149 -0
  906. package/dist/lib/figure.d.ts.map +1 -0
  907. package/dist/lib/figure.js +242 -0
  908. package/dist/lib/utils.d.ts +29 -0
  909. package/dist/lib/utils.d.ts.map +1 -1
  910. package/dist/lib/utils.js +35 -0
  911. package/dist/live/index.d.ts +10 -3
  912. package/dist/live/index.d.ts.map +1 -1
  913. package/dist/live/index.js +12 -3
  914. package/dist/live/run-stream-01/run-stream.d.ts.map +1 -1
  915. package/dist/live/run-stream-01/run-stream.js +6 -5
  916. package/dist/live/tool-ledger-01/index.d.ts +3 -0
  917. package/dist/live/tool-ledger-01/index.d.ts.map +1 -0
  918. package/dist/live/tool-ledger-01/index.js +1 -0
  919. package/dist/live/tool-ledger-01/tool-ledger.d.ts +348 -0
  920. package/dist/live/tool-ledger-01/tool-ledger.d.ts.map +1 -0
  921. package/dist/live/tool-ledger-01/tool-ledger.js +245 -0
  922. package/dist/pages/about-page/index.d.ts +306 -0
  923. package/dist/pages/about-page/index.d.ts.map +1 -0
  924. package/dist/pages/about-page/index.js +161 -0
  925. package/dist/pages/blog-post-page/index.d.ts +36 -15
  926. package/dist/pages/blog-post-page/index.d.ts.map +1 -1
  927. package/dist/pages/blog-post-page/index.js +35 -10
  928. package/dist/pages/careers-page/index.d.ts +288 -0
  929. package/dist/pages/careers-page/index.d.ts.map +1 -0
  930. package/dist/pages/careers-page/index.js +182 -0
  931. package/dist/pages/changelog-page/index.d.ts +255 -0
  932. package/dist/pages/changelog-page/index.d.ts.map +1 -0
  933. package/dist/pages/changelog-page/index.js +86 -0
  934. package/dist/pages/contact-page/index.d.ts +261 -0
  935. package/dist/pages/contact-page/index.d.ts.map +1 -0
  936. package/dist/pages/contact-page/index.js +136 -0
  937. package/dist/pages/docs-shell/docs-shell.d.ts +126 -16
  938. package/dist/pages/docs-shell/docs-shell.d.ts.map +1 -1
  939. package/dist/pages/docs-shell/docs-shell.js +229 -28
  940. package/dist/pages/error-page/index.d.ts +188 -0
  941. package/dist/pages/error-page/index.d.ts.map +1 -0
  942. package/dist/pages/error-page/index.js +102 -0
  943. package/dist/pages/index.d.ts +10 -0
  944. package/dist/pages/index.d.ts.map +1 -1
  945. package/dist/pages/index.js +14 -0
  946. package/dist/pages/legal-page/index.d.ts +194 -0
  947. package/dist/pages/legal-page/index.d.ts.map +1 -0
  948. package/dist/pages/legal-page/index.js +99 -0
  949. package/dist/pages/not-found-page/index.d.ts.map +1 -1
  950. package/dist/pages/not-found-page/index.js +4 -3
  951. package/dist/pages/onboarding-page/index.d.ts +199 -0
  952. package/dist/pages/onboarding-page/index.d.ts.map +1 -0
  953. package/dist/pages/onboarding-page/index.js +71 -0
  954. package/dist/pages/pricing-page/index.d.ts +286 -0
  955. package/dist/pages/pricing-page/index.d.ts.map +1 -0
  956. package/dist/pages/pricing-page/index.js +139 -0
  957. package/dist/pages/search-page/index.d.ts +305 -0
  958. package/dist/pages/search-page/index.d.ts.map +1 -0
  959. package/dist/pages/search-page/index.js +142 -0
  960. package/dist/pages/status-page/index.d.ts +366 -0
  961. package/dist/pages/status-page/index.d.ts.map +1 -0
  962. package/dist/pages/status-page/index.js +136 -0
  963. package/dist/styles.css +1105 -62
  964. package/package.json +9 -3
@@ -0,0 +1,282 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type HeadingLevel } from '../../components/ui/section.js';
3
+ /**
4
+ * One role, and everything the matrix needs to say about it beyond its name.
5
+ *
6
+ * `name` is a plain string and not a node, which is the one thing here that is
7
+ * not obvious, and the reason is on `PermissionMatrixColumn.header`: the header is
8
+ * display content and may carry a badge, a count styled as part of it, a node with
9
+ * a link in it, and `name` is what `valueLabel` composes an accessible sentence
10
+ * with. Those are two different jobs and one of them cannot be done with a node.
11
+ */
12
+ export type PermissionMatrixRole = {
13
+ /** Stable identity. Matched by `columns`, which is what puts the role in the table. */
14
+ id: string;
15
+ /**
16
+ * The role's own name, in the product's own vocabulary, and the string handed to
17
+ * `valueLabel`.
18
+ *
19
+ * A short noun phrase, because a column of five role names is a column a reader
20
+ * scans rather than reads, and a name that wraps is a column whose cells sit
21
+ * against two lines of header.
22
+ */
23
+ name: string;
24
+ /** The line under the role's name: what the role is for, and what it inherits. */
25
+ description?: ReactNode;
26
+ /**
27
+ * How many people hold the role, when the product knows.
28
+ *
29
+ * A number and not a node because it is a count the product holds, and Prism
30
+ * formats no number here; the sentence around it is `countLabel`.
31
+ */
32
+ count?: number;
33
+ /**
34
+ * The words for the count, given the number.
35
+ *
36
+ * Required whenever `count` is given, because a bare figure in a heading is a
37
+ * number a reader has to guess the unit of, which is the one thing a headline
38
+ * figure cannot afford and the reason `metric` takes a node for its value.
39
+ */
40
+ countLabel?: (count: number) => string;
41
+ };
42
+ /**
43
+ * One column of the matrix, which is one role.
44
+ *
45
+ * The words above the column are the caller's and are a node, and the role's own
46
+ * name beside them in the `roles` array is a string. The split is the whole design
47
+ * and it is worth one sentence: a column heading is display content, and the
48
+ * commonest thing a consumer puts in one is a count rendered as part of it or a
49
+ * badge marking the role they are being walked towards, either of which is a node
50
+ * and neither of which is a string a sentence can be composed from. So the header
51
+ * is a node and `roles[].name` is the plain string, and the two are matched by
52
+ * `id`.
53
+ */
54
+ export type PermissionMatrixColumn = {
55
+ /** The role's `id`. A column with no role, or a role with no column, is refused. */
56
+ id: string;
57
+ /** The words above this role's column. */
58
+ header: ReactNode;
59
+ /** Layout only: a width. */
60
+ className?: string;
61
+ };
62
+ /**
63
+ * One permission, and one answer per role.
64
+ *
65
+ * `values` is positional and its length must equal the number of roles, and the
66
+ * reason a mismatch is a thrown diagnostic rather than a short row is the Block's
67
+ * own JSDoc: a permission matrix is the surface where a mistake is most expensive,
68
+ * and a role quietly given no answer is a role a reader believes is refused.
69
+ */
70
+ export type PermissionMatrixPermission = {
71
+ /** Stable identity, used for the row's key. */
72
+ id: string;
73
+ /**
74
+ * The permission's own name, and the row header the table announces.
75
+ *
76
+ * A short noun phrase in the imperative a product's own settings page uses. This
77
+ * is the cell a reader navigates to, and the one they read first, because it is
78
+ * the question they arrived with.
79
+ */
80
+ label: string;
81
+ /**
82
+ * The line under the permission's name: what it reaches, what turning it on
83
+ * costs, why it is conditional for one role.
84
+ *
85
+ * A node because the conditional cell in this matrix almost always carries a
86
+ * reference, and a caller who has to flatten theirs to a string loses the link
87
+ * that explains the condition.
88
+ */
89
+ description?: ReactNode;
90
+ /**
91
+ * One answer per role, in the order the columns were given.
92
+ *
93
+ * The union is the whole design of the cell and the Block's JSDoc argues for its
94
+ * third member at length: `true` is granted, `false` is refused, and a string is
95
+ * anything else, which is a category of its own rather than a spelling of the
96
+ * first two.
97
+ */
98
+ values: readonly (boolean | string)[];
99
+ };
100
+ /**
101
+ * A band of permissions under one name.
102
+ *
103
+ * Groups are the caller's because grouping is a claim about how the permissions
104
+ * relate, which is a fact about the product's own model and not about the matrix.
105
+ * Most matrices are one group, and that is a legitimate answer: pass one group with
106
+ * an empty `title` and it is the only row of headers the table carries.
107
+ */
108
+ export type PermissionMatrixGroup = {
109
+ /** The group's own name, as the caller writes it. */
110
+ title: string;
111
+ /** The permissions in this group, in the order a reader should meet them. */
112
+ permissions: readonly PermissionMatrixPermission[];
113
+ };
114
+ /**
115
+ * The three marks and the words they answer with.
116
+ *
117
+ * All three required, and the reason is the one `PricingCompare01Labels` is built
118
+ * on: three marks in a matrix with no key is a matrix nobody can read. A check and
119
+ * a cross and a question mark are three shapes a reader learns once and applies
120
+ * forty times, and a matrix is the one place on a page where a reader is expected
121
+ * to apply a shape forty times. Without the key the third shape in particular is
122
+ * unreadable, because a question mark is a thing that went wrong to most readers
123
+ * and a condition to a few, and the reader has no way to find out which this is.
124
+ */
125
+ export type PermissionMatrixLegend = {
126
+ /** Announced beside the check in a granted cell. */
127
+ allowed: string;
128
+ /** Announced beside the cross in a refused cell. */
129
+ denied: string;
130
+ /** Announced beside the question mark in a cell that depends on something else. */
131
+ conditional: string;
132
+ };
133
+ /**
134
+ * The props a PermissionMatrix01 takes.
135
+ *
136
+ * Every string is a prop and the Block ships none. There is no role, no
137
+ * permission, no cell value, no group name, no count sentence and not one of the
138
+ * three words a cell answers with. A permission matrix is the densest arrangement
139
+ * of claims a product makes about itself, and it is the arrangement where one
140
+ * hardcoded word is hardest to notice, because the reader is looking at forty cells
141
+ * and reading none of them.
142
+ */
143
+ export type PermissionMatrix01Props = {
144
+ /** Optional label above the section title. See the No-Default-Eyebrow Rule. */
145
+ eyebrow?: ReactNode;
146
+ /** The section title. Required, because a matrix with no heading is a fragment. */
147
+ title: ReactNode;
148
+ /** One or two sentences under the title. */
149
+ description?: ReactNode;
150
+ /**
151
+ * The columns, one per role, in the order a reader should meet them.
152
+ *
153
+ * Required, and the `id` of each is matched against `roles`. The two arrays exist
154
+ * rather than one because of the split documented on `PermissionMatrixColumn`: a
155
+ * heading is a node and a role's name is a string, and a matrix that had to
156
+ * derive one from the other would force every consumer to flatten a heading into
157
+ * a string or to build a sentence out of a badge.
158
+ */
159
+ columns: readonly PermissionMatrixColumn[];
160
+ /** The roles the columns name, keyed by the same ids. */
161
+ roles: readonly PermissionMatrixRole[];
162
+ /**
163
+ * The permissions, grouped. Group order is the caller's, and so is the order
164
+ * inside each group, for the same reason: both are claims about what matters
165
+ * first.
166
+ */
167
+ groups: readonly PermissionMatrixGroup[];
168
+ /**
169
+ * The words one cell announces, given whether it is granted, the role it belongs
170
+ * to and the permission it is about.
171
+ *
172
+ * Required, and a function of three arguments because the honest answer is a
173
+ * sentence rather than a word in almost every case that is not a straight yes or
174
+ * no. "Publish without a review" is the answer; "Own billing" is the answer, in
175
+ * the reader's own words, in the reader's own language, with the reader's own
176
+ * plural rules. Prism will not compose it, and the alternative was a record of
177
+ * three English strings, which is exactly the defect the copy gate was written to
178
+ * end.
179
+ */
180
+ valueLabel: (allowed: boolean, role: string, permission: string) => string;
181
+ /**
182
+ * The key for the three marks.
183
+ *
184
+ * Required, because three marks with no key is a matrix nobody can read, and
185
+ * because the third mark is the one that most needs it: a question mark reads as
186
+ * a fault to most readers and as a condition to the few who have met one.
187
+ */
188
+ legend: PermissionMatrixLegend;
189
+ /** Heading level for the section title. @defaultValue 'h2' */
190
+ headingLevel?: HeadingLevel;
191
+ /**
192
+ * Layout only, exactly as on every Block. Changing a Prism-owned visual
193
+ * property from here is prohibited.
194
+ */
195
+ className?: string;
196
+ };
197
+ /**
198
+ * Roles against capabilities: the roles across the top, the permissions down the
199
+ * side, and one cell per intersection saying what that role does with that
200
+ * permission.
201
+ *
202
+ * **It is a real `<table>`, and the rejected alternative is a grid of `div`s that
203
+ * looks the same.** A permission matrix is the one table on a page where a mistake
204
+ * is the most expensive kind of mistake a page can have. A reader who is not sure
205
+ * whether the Billing role can publish will try to do it, and the failure arrives
206
+ * later as somebody else's problem, and the matrix is the document that was
207
+ * supposed to prevent it. So the structure has to be the platform's: a reader using
208
+ * a screen reader asks the table for a column and hears the role's name, then
209
+ * moves down the cells and hears each answer against that name, and asks for a row
210
+ * and hears the permission and then its answers. A grid of `div`s has no header
211
+ * cells to ask for, so the same reader receives forty cells of unlabelled marks
212
+ * and has to hold the column in their head while reading down it, which is the
213
+ * single task a matrix exists to remove, and on this particular table it is the
214
+ * task whose failure is most expensive. The cost of the table is the one every
215
+ * real table carries: `Table` wraps the whole thing in a horizontally scrollable
216
+ * container, because five roles do not fit a phone, and a matrix that reflowed into
217
+ * a stack would no longer be a matrix. The scroll is the price, and the alternative
218
+ * is not a narrower matrix, it is a div grid.
219
+ *
220
+ * **`values` is `boolean | string`, and the string is a third answer rather than a
221
+ * spelling of the other two.** `true` is granted and `false` is refused, and those
222
+ * two are marks the reader learns once. The third case is a permission that depends
223
+ * on something the reader has to go and look up: it is granted to a role that
224
+ * holds a particular licence, limited for a role in a particular plan, or granted
225
+ * only where a second role is also held. That answer is neither a yes nor a no, and
226
+ * a matrix that can only say yes or no forces a product to lie in one of the two
227
+ * directions. It will draw the conditional cell as granted, because the role can
228
+ * do the thing; and the reader goes away believing their role can publish, and
229
+ * finds out at the moment they press the button, on a surface with no explanation.
230
+ * Or it will draw it as refused, which is the worse of the two because it is
231
+ * untrue in the direction that looks like a restriction rather than a gap, and a
232
+ * reader who has been told twice that their role cannot do something stops asking
233
+ * anyone. So the union has a third member, the mark is a question rather than a
234
+ * tick or a cross, and the words are the caller's because only the caller knows
235
+ * what the condition is. The cost is stated rather than hidden: a conditional cell
236
+ * is wider than the two marks, so a matrix with many of them scrolls further, and
237
+ * a caller who finds that painful has an obvious and wrong answer available, which
238
+ * is to call the condition a limit and print a number.
239
+ *
240
+ * **A `values` array that does not match the columns throws.** Four roles and
241
+ * three values renders perfectly: the markup is valid, the header row is correct,
242
+ * the styling is right, and a column is simply not there. A silent truncation in a
243
+ * permission matrix is a claim about a role nobody made, on the one table where a
244
+ * reader will act on the claim, and nothing in the rendered result says a value is
245
+ * missing. So the Block refuses the props. The cost is a render that throws in
246
+ * development rather than a matrix that lies in production, and the alternative
247
+ * was considered and refused: a pad of empty cells would turn a caller's mistake
248
+ * into a document in which a role has no opinion about a permission, which is
249
+ * indistinguishable from a role that has been refused one.
250
+ *
251
+ * **The group is a row group, and a group's name is a table header rather than a
252
+ * heading.** Each group is its own `<tbody>` and its name is a `th` with
253
+ * `scope="rowgroup"`, which is what HTML offers for a header that names the rows
254
+ * below it, so a screen reader announces the group when the reader enters it
255
+ * rather than repeating it over every column. It is deliberately not in the page
256
+ * outline: a group name is a band of rows and not a section of the page, and seven
257
+ * group names in the outline would be seven entries for a reader navigating by
258
+ * heading who expected sections.
259
+ *
260
+ * **A role's name is a heading, at `childLevel(headingLevel)`.** The role is the
261
+ * column's title, a reader who navigates by heading wants to reach the role rather
262
+ * than the permissions under it, and a matrix embedded one level deeper than it was
263
+ * written for has to carry its role names with it. The count, when there is one, is
264
+ * inside the same element, because a role and the number of people holding it are
265
+ * one thing a reader takes together, and a count in a separate column would be a
266
+ * column of numbers a reader has to match back to a name.
267
+ *
268
+ * **The legend is drawn under the table and required, because three marks with no
269
+ * key is a matrix nobody can read.** This is the cheapest thing on the Block and
270
+ * the one whose absence costs the most: a reader who has met a check, a cross and a
271
+ * question mark in one matrix has learned three things and will apply them to the
272
+ * next forty cells, and a reader who has met two of them has learned a binary and
273
+ * will misread the third. The legend is a `tfoot` so it is inside the table and
274
+ * travels with it in the accessibility tree, rather than a row of prose below that
275
+ * a reader navigating the table never meets.
276
+ *
277
+ * It is a server Component: no hook, no state, no client code and no router. The
278
+ * three marks are drawn as vectors, so a matrix costs no JavaScript.
279
+ */
280
+ export declare function PermissionMatrix01({ eyebrow, title, description, columns, roles, groups, valueLabel, legend, headingLevel, className, }: PermissionMatrix01Props): import("react").JSX.Element;
281
+ export default PermissionMatrix01;
282
+ //# sourceMappingURL=permission-matrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission-matrix.d.ts","sourceRoot":"","sources":["../../../src/blocks/permission-matrix-01/permission-matrix.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAA;AAYpC;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,uFAAuF;IACvF,EAAE,EAAE,MAAM,CAAA;IACV;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;CACvC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,oFAAoF;IACpF,EAAE,EAAE,MAAM,CAAA;IACV,0CAA0C;IAC1C,MAAM,EAAE,SAAS,CAAA;IACjB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAA;IACV;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;;OAOG;IACH,MAAM,EAAE,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,CAAA;CACtC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,WAAW,EAAE,SAAS,0BAA0B,EAAE,CAAA;CACnD,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAA;IACf,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAA;IACd,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,+EAA+E;IAC/E,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,mFAAmF;IACnF,KAAK,EAAE,SAAS,CAAA;IAChB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;;;OAQG;IACH,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAA;IAC1C,yDAAyD;IACzD,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAA;IACtC;;;;OAIG;IACH,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAA;IACxC;;;;;;;;;;;OAWG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1E;;;;;;OAMG;IACH,MAAM,EAAE,sBAAsB,CAAA;IAC9B,8DAA8D;IAC9D,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AA6DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,KAAK,EACL,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,UAAU,EACV,MAAM,EACN,YAAmB,EACnB,SAAS,GACV,EAAE,uBAAuB,+BAsNzB;AAED,eAAe,kBAAkB,CAAA"}
@@ -0,0 +1,173 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from 'react';
3
+ import { Check, CircleHelp, X } from 'lucide-react';
4
+ import { Section, SectionHeading, childLevel, } from '../../components/ui/section.js';
5
+ import { Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow, } from '../../components/ui/table.js';
6
+ import { cn } from '../../lib/utils.js';
7
+ /**
8
+ * One cell: the mark, and the words, and a string where the answer is neither.
9
+ *
10
+ * A component in the module and not a second Item, because it has no public
11
+ * surface and nothing to document for a consumer. It exists so the two boolean
12
+ * arms are written once, and they are written once because the span wrapping the
13
+ * mark and the visually hidden words is the part that is easy to get subtly wrong
14
+ * three times in a row.
15
+ */
16
+ function MatrixCell({ value, role, permission, valueLabel, conditionalLabel, }) {
17
+ if (typeof value === 'boolean') {
18
+ return value ? (_jsxs("span", { "data-slot": "permission-matrix-answer", className: "text-success inline-flex items-center gap-1.5", children: [_jsx(Check, { "aria-hidden": true, className: "size-4 shrink-0" }), _jsx("span", { className: "sr-only", children: valueLabel(true, role, permission) })] })) : (_jsxs("span", { "data-slot": "permission-matrix-answer", className: "text-muted-foreground inline-flex items-center gap-1.5", children: [_jsx(X, { "aria-hidden": true, className: "size-4 shrink-0" }), _jsx("span", { className: "sr-only", children: valueLabel(false, role, permission) })] }));
19
+ }
20
+ /*
21
+ The third answer, and the sentence beside the mark is `legend.conditional`
22
+ rather than `valueLabel`, which is a real distinction rather than a shortcut.
23
+ `valueLabel` composes the answer for a cell that is granted or refused; this
24
+ cell's answer is the string the caller wrote, and what the mark needs beside it
25
+ is the name of the category, so that a reader knows the sentence is a condition
26
+ to look up rather than a limit they have hit.
27
+ */
28
+ return (_jsxs("span", { "data-slot": "permission-matrix-conditional", className: "text-muted-foreground inline-flex items-center gap-1.5", children: [_jsx(CircleHelp, { "aria-hidden": true, className: "size-4 shrink-0" }), _jsx("span", { className: "text-sm text-pretty", children: value }), _jsx("span", { className: "sr-only", children: conditionalLabel })] }));
29
+ }
30
+ /**
31
+ * Roles against capabilities: the roles across the top, the permissions down the
32
+ * side, and one cell per intersection saying what that role does with that
33
+ * permission.
34
+ *
35
+ * **It is a real `<table>`, and the rejected alternative is a grid of `div`s that
36
+ * looks the same.** A permission matrix is the one table on a page where a mistake
37
+ * is the most expensive kind of mistake a page can have. A reader who is not sure
38
+ * whether the Billing role can publish will try to do it, and the failure arrives
39
+ * later as somebody else's problem, and the matrix is the document that was
40
+ * supposed to prevent it. So the structure has to be the platform's: a reader using
41
+ * a screen reader asks the table for a column and hears the role's name, then
42
+ * moves down the cells and hears each answer against that name, and asks for a row
43
+ * and hears the permission and then its answers. A grid of `div`s has no header
44
+ * cells to ask for, so the same reader receives forty cells of unlabelled marks
45
+ * and has to hold the column in their head while reading down it, which is the
46
+ * single task a matrix exists to remove, and on this particular table it is the
47
+ * task whose failure is most expensive. The cost of the table is the one every
48
+ * real table carries: `Table` wraps the whole thing in a horizontally scrollable
49
+ * container, because five roles do not fit a phone, and a matrix that reflowed into
50
+ * a stack would no longer be a matrix. The scroll is the price, and the alternative
51
+ * is not a narrower matrix, it is a div grid.
52
+ *
53
+ * **`values` is `boolean | string`, and the string is a third answer rather than a
54
+ * spelling of the other two.** `true` is granted and `false` is refused, and those
55
+ * two are marks the reader learns once. The third case is a permission that depends
56
+ * on something the reader has to go and look up: it is granted to a role that
57
+ * holds a particular licence, limited for a role in a particular plan, or granted
58
+ * only where a second role is also held. That answer is neither a yes nor a no, and
59
+ * a matrix that can only say yes or no forces a product to lie in one of the two
60
+ * directions. It will draw the conditional cell as granted, because the role can
61
+ * do the thing; and the reader goes away believing their role can publish, and
62
+ * finds out at the moment they press the button, on a surface with no explanation.
63
+ * Or it will draw it as refused, which is the worse of the two because it is
64
+ * untrue in the direction that looks like a restriction rather than a gap, and a
65
+ * reader who has been told twice that their role cannot do something stops asking
66
+ * anyone. So the union has a third member, the mark is a question rather than a
67
+ * tick or a cross, and the words are the caller's because only the caller knows
68
+ * what the condition is. The cost is stated rather than hidden: a conditional cell
69
+ * is wider than the two marks, so a matrix with many of them scrolls further, and
70
+ * a caller who finds that painful has an obvious and wrong answer available, which
71
+ * is to call the condition a limit and print a number.
72
+ *
73
+ * **A `values` array that does not match the columns throws.** Four roles and
74
+ * three values renders perfectly: the markup is valid, the header row is correct,
75
+ * the styling is right, and a column is simply not there. A silent truncation in a
76
+ * permission matrix is a claim about a role nobody made, on the one table where a
77
+ * reader will act on the claim, and nothing in the rendered result says a value is
78
+ * missing. So the Block refuses the props. The cost is a render that throws in
79
+ * development rather than a matrix that lies in production, and the alternative
80
+ * was considered and refused: a pad of empty cells would turn a caller's mistake
81
+ * into a document in which a role has no opinion about a permission, which is
82
+ * indistinguishable from a role that has been refused one.
83
+ *
84
+ * **The group is a row group, and a group's name is a table header rather than a
85
+ * heading.** Each group is its own `<tbody>` and its name is a `th` with
86
+ * `scope="rowgroup"`, which is what HTML offers for a header that names the rows
87
+ * below it, so a screen reader announces the group when the reader enters it
88
+ * rather than repeating it over every column. It is deliberately not in the page
89
+ * outline: a group name is a band of rows and not a section of the page, and seven
90
+ * group names in the outline would be seven entries for a reader navigating by
91
+ * heading who expected sections.
92
+ *
93
+ * **A role's name is a heading, at `childLevel(headingLevel)`.** The role is the
94
+ * column's title, a reader who navigates by heading wants to reach the role rather
95
+ * than the permissions under it, and a matrix embedded one level deeper than it was
96
+ * written for has to carry its role names with it. The count, when there is one, is
97
+ * inside the same element, because a role and the number of people holding it are
98
+ * one thing a reader takes together, and a count in a separate column would be a
99
+ * column of numbers a reader has to match back to a name.
100
+ *
101
+ * **The legend is drawn under the table and required, because three marks with no
102
+ * key is a matrix nobody can read.** This is the cheapest thing on the Block and
103
+ * the one whose absence costs the most: a reader who has met a check, a cross and a
104
+ * question mark in one matrix has learned three things and will apply them to the
105
+ * next forty cells, and a reader who has met two of them has learned a binary and
106
+ * will misread the third. The legend is a `tfoot` so it is inside the table and
107
+ * travels with it in the accessibility tree, rather than a row of prose below that
108
+ * a reader navigating the table never meets.
109
+ *
110
+ * It is a server Component: no hook, no state, no client code and no router. The
111
+ * three marks are drawn as vectors, so a matrix costs no JavaScript.
112
+ */
113
+ export function PermissionMatrix01({ eyebrow, title, description, columns, roles, groups, valueLabel, legend, headingLevel = 'h2', className, }) {
114
+ // The handle a table below takes its name from; see the note on the table.
115
+ const headingId = useId();
116
+ if (roles.length === 0) {
117
+ throw new Error('PermissionMatrix01: roles is empty, so the matrix has no columns and the table would render a header ' +
118
+ 'row and nothing else. Pass the roles a reader is choosing between.');
119
+ }
120
+ if (columns.length === 0) {
121
+ throw new Error('PermissionMatrix01: columns is empty, so the matrix has no headings and every cell would be a mark with ' +
122
+ 'nothing to attach it to. Name one column per role.');
123
+ }
124
+ if (groups.length === 0) {
125
+ throw new Error('PermissionMatrix01: groups is empty, so the matrix has no rows. Pass one group, even when its title is ' +
126
+ 'empty, rather than leaving the reader with a row of role names and no permissions beside them.');
127
+ }
128
+ for (const column of columns) {
129
+ if (!roles.some((role) => role.id === column.id)) {
130
+ throw new Error(`PermissionMatrix01: a column names the role ${JSON.stringify(column.id)} and no role carries that id, ` +
131
+ 'so the heading would sit over a column no answers belong to. Give the column the id of a role, or ' +
132
+ 'drop it.');
133
+ }
134
+ }
135
+ for (const role of roles) {
136
+ if (!columns.some((column) => column.id === role.id)) {
137
+ throw new Error(`PermissionMatrix01: the role ${JSON.stringify(role.name)} has no column, so the table would hold a ` +
138
+ 'row of answers for a role no reader can name. Give the role a column whose id is its own.');
139
+ }
140
+ if (role.count !== undefined && role.countLabel === undefined) {
141
+ throw new Error(`PermissionMatrix01: the role ${JSON.stringify(role.name)} declares a count and no countLabel, so a ` +
142
+ 'bare figure would sit in a column heading with nothing saying what it counts. Pass the function.');
143
+ }
144
+ }
145
+ for (const group of groups) {
146
+ for (const permission of group.permissions) {
147
+ if (permission.values.length !== columns.length) {
148
+ throw new Error(`PermissionMatrix01: the permission ${JSON.stringify(permission.label)} has ` +
149
+ `${permission.values.length} value(s) and there are ${columns.length} column(s). A short row ` +
150
+ 'renders a role with no answer, which on this table is a claim nobody made, so it is refused ' +
151
+ 'rather than padded.');
152
+ }
153
+ }
154
+ }
155
+ // A role is a column, and a column is a title inside the section that
156
+ // introduces the set, so five roles under one `h2` are five `h3`s.
157
+ const RoleHeading = childLevel(headingLevel);
158
+ const width = columns.length + 1;
159
+ // Read once rather than searched per cell, because `valueLabel` is called for
160
+ // every cell and a linear search inside that is a cost the reader pays on the
161
+ // render. The `id` is the join, and the loop above has already refused a column
162
+ // or a role the other side does not carry.
163
+ const byId = new Map(roles.map((role) => [role.id, role]));
164
+ const nameOf = (id) => byId.get(id)?.name ?? id;
165
+ return (_jsxs(Section, { className: className, "data-slot": "permission-matrix", children: [_jsx(SectionHeading, { as: headingLevel, id: headingId, align: "left", eyebrow: eyebrow, title: title, description: description, className: "mb-12" }), _jsx("div", { "data-slot": "permission-matrix-table", className: "flex flex-col gap-4", children: _jsx("div", { className: "border-border overflow-hidden rounded-xl border", children: _jsxs(Table, { "aria-labelledby": headingId, children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { className: "w-56 align-bottom" }), columns.map((column) => {
166
+ const role = byId.get(column.id);
167
+ return (_jsxs(TableHead, { scope: "col", "data-role": column.id, className: cn('w-44 whitespace-normal align-bottom', column.className), children: [_jsxs(RoleHeading, { className: "flex flex-col items-start gap-1 text-base font-semibold tracking-tight text-balance", children: [_jsx("span", { "data-slot": "permission-matrix-role-name", children: column.header }), role?.count === undefined || role.countLabel === undefined ? null : (_jsx("span", { "data-slot": "permission-matrix-role-count", className: "text-muted-foreground text-xs font-normal tabular-nums", children: role.countLabel(role.count) }))] }), role?.description === undefined ? null : (_jsx("span", { "data-slot": "permission-matrix-role-description", className: "text-muted-foreground mt-1 block text-sm font-normal text-pretty", children: role.description }))] }, column.id));
168
+ })] }) }), groups.map((group, groupIndex) => (
169
+ // Positional, because a group title is display content and a caller
170
+ // may legitimately split a model into two bands under one name.
171
+ _jsxs(TableBody, { "data-slot": "permission-matrix-group", children: [_jsx(TableRow, { children: _jsx(TableHead, { scope: "rowgroup", colSpan: width, className: "bg-muted/50 whitespace-normal", children: _jsx("span", { className: "text-sm font-semibold", children: group.title }) }) }), group.permissions.map((permission) => (_jsxs(TableRow, { "data-slot": "permission-matrix-permission", "data-permission": permission.id, children: [_jsx(TableHead, { scope: "row", className: "text-foreground h-auto w-56 whitespace-normal font-medium", children: _jsxs("span", { className: "flex flex-col gap-1", children: [_jsx("span", { className: "text-sm font-medium", children: permission.label }), permission.description === undefined ? null : (_jsx("span", { className: "text-muted-foreground text-xs font-normal text-pretty", children: permission.description }))] }) }), columns.map((column, index) => (_jsx(TableCell, { "data-role": column.id, children: _jsx(MatrixCell, { value: permission.values[index] ?? false, role: nameOf(column.id), permission: permission.label, valueLabel: valueLabel, conditionalLabel: legend.conditional }) }, column.id)))] }, permission.id)))] }, groupIndex))), _jsx(TableFooter, { children: _jsx(TableRow, { children: _jsx(TableCell, { colSpan: width, className: "bg-muted/50 whitespace-normal", children: _jsxs("span", { className: "flex flex-wrap items-center gap-x-6 gap-y-2", children: [_jsxs("span", { className: "text-success inline-flex items-center gap-1.5", children: [_jsx(Check, { "aria-hidden": true, className: "size-4 shrink-0" }), _jsx("span", { className: "text-foreground text-sm", children: legend.allowed })] }), _jsxs("span", { className: "text-muted-foreground inline-flex items-center gap-1.5", children: [_jsx(X, { "aria-hidden": true, className: "size-4 shrink-0" }), _jsx("span", { className: "text-foreground text-sm", children: legend.denied })] }), _jsxs("span", { className: "text-muted-foreground inline-flex items-center gap-1.5", children: [_jsx(CircleHelp, { "aria-hidden": true, className: "size-4 shrink-0" }), _jsx("span", { className: "text-foreground text-sm", children: legend.conditional })] })] }) }) }) })] }) }) })] }));
172
+ }
173
+ export default PermissionMatrix01;
@@ -1,2 +1,3 @@
1
1
  export { Pricing01, default } from './pricing.js';
2
+ export type { Plan, Pricing01Props, PricingAction, PricingLinkAction, PricingSlotAction, } from './pricing.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/pricing-01/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/pricing-01/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAM9C,YAAY,EACV,IAAI,EACJ,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,WAAW,CAAA"}
@@ -1,12 +1,123 @@
1
+ import { type ReactNode } from 'react';
1
2
  import { type HeadingLevel } from '../../components/ui/section.js';
3
+ /**
4
+ * One plan's control, when it is a destination.
5
+ *
6
+ * One of the two arms of `PricingAction`, and named rather than left as an inline
7
+ * member of the union so a caller building `plans` from its own data can say which
8
+ * arm it is building. `href` is required and that is the whole of the arm.
9
+ */
10
+ export type PricingLinkAction = {
11
+ /** The words on the control. A plan's action is its pitch, so it is the caller's. */
12
+ label: string;
13
+ /**
14
+ * Where the control goes. Rendered as a native anchor's `href`.
15
+ *
16
+ * **Required, and this member did not exist.** `Plan` declared a required `cta`
17
+ * string and the Block rendered it as a `Button`, so every plan in every consumer's
18
+ * pricing table shipped a focusable control, announced as a button, that activated
19
+ * to nothing, at the foot of the card that a reader was about to decide on. A price
20
+ * is the one number on a marketing page a reader acts on, and the control beside it
21
+ * did nothing.
22
+ */
23
+ href: string;
24
+ /**
25
+ * Opens the destination in a new browsing context, which defaults the link
26
+ * relationship to `noopener noreferrer`. Declared rather than inferred, for the
27
+ * reason `Cta01Action.newTab` states.
28
+ */
29
+ newTab?: boolean;
30
+ /** Forbidden, so that an action cannot be both a destination and a caller's own control. */
31
+ slot?: never;
32
+ };
33
+ /**
34
+ * One plan's control, when it is the caller's own.
35
+ *
36
+ * **This is the arm that replaced a rendered button, and the reason it is a slot
37
+ * rather than an `onClick` is that a Block cannot receive one.** This is a server
38
+ * Component, so a handler is not a prop it can be given. A plan's control is also the
39
+ * one place a pricing table most often needs a control Prism cannot draw: a trial
40
+ * that opens a checkout dialog, a contact form for the top tier, a router's own
41
+ * `Link` for a client-side transition into the plan.
42
+ *
43
+ * The Block places the node in the card's foot and adds nothing to it, because a
44
+ * class it adds to a node it does not render is a style the caller cannot see and
45
+ * cannot remove, and this package has no override path.
46
+ */
47
+ export type PricingSlotAction = {
48
+ /**
49
+ * The caller's own control, placed in the card's foot.
50
+ *
51
+ * The whole control, including its own label, its own weight and any icon. A plan
52
+ * with a slot action draws no `Button` of its own, so the caller's weight is the
53
+ * weight a reader sees and there is nothing here that can contradict it.
54
+ */
55
+ slot: ReactNode;
56
+ /**
57
+ * Forbidden on this arm, and for a reason rather than by tidiness: the Block
58
+ * renders `slot` and nothing else, so a `label` beside it would be a word no
59
+ * reader ever sees.
60
+ */
61
+ label?: never;
62
+ /** Forbidden: an anchor belongs on the other arm, where Prism renders it. */
63
+ href?: never;
64
+ /** Forbidden with `href`, for the same reason. */
65
+ newTab?: never;
66
+ };
67
+ /**
68
+ * One plan's control, as a union of the two things a control at the foot of a
69
+ * pricing card can honestly be.
70
+ *
71
+ * A plan carries exactly one control, so this is not an ordered row and the slot is
72
+ * an arm of the plan's own record rather than a sibling prop on the Block: `Plan` is
73
+ * one entry in a list, and a sibling `actionSlot` on `Pricing01` could not say which
74
+ * card it filled. Position and element are the same value here for the same reason
75
+ * they are in a hero's row.
76
+ *
77
+ * It is declared here rather than imported from `cta-01`, following
78
+ * `ProcessFlow01`'s note on the same point, and `scripts/check-block-controls.mjs`
79
+ * holds the shape: a shared type would make `@nanisoft/prism-ui/blocks/cta-01` a
80
+ * dependency of `@nanisoft/prism-ui/blocks/pricing-01`, and a consumer installing a
81
+ * pricing table would be made to resolve a closing call-to-action band to get it.
82
+ */
83
+ export type PricingAction = PricingLinkAction | PricingSlotAction;
2
84
  export type Plan = {
85
+ /**
86
+ * A stable key for this plan, and the only thing about it React keys on.
87
+ *
88
+ * **Required, and it did not exist: the cards were keyed on `name`.** `name` is
89
+ * the word a reader reads on the card, so it is display content and not identity,
90
+ * and a Block that keyed on it had two ways to be wrong at once. Two plans
91
+ * sharing a name, which is a monthly and an annual row of the same tier or a
92
+ * "Standard" and a "Standard (legacy)" line a product is migrating away from,
93
+ * produced a duplicate key and cards the renderer had been told are ambiguous.
94
+ * And a rename in the copy was a rename in the key, which loses a caller's saved
95
+ * selection or expanded state over an edit to a sentence.
96
+ *
97
+ * The route or the product's own plan code is the usual value and needs no
98
+ * coordination. `Careers01` and every other Block in this package key on an `id`
99
+ * and say why in the same words; this is the last one that did not, and the reason
100
+ * it survived is recorded in the release that introduced `action` rather than
101
+ * here.
102
+ */
103
+ id: string;
104
+ /** The plan's own name, which is what the card's title reads. */
3
105
  name: string;
4
106
  price: string;
5
107
  /** Rendered after the price, e.g. " / month". Omit for a one-off figure. */
6
108
  period?: string;
7
109
  body?: string;
8
110
  features: string[];
9
- cta: string;
111
+ /**
112
+ * The one control at the foot of this card.
113
+ *
114
+ * **A union of a destination and a slot, and it replaces a required `cta`
115
+ * string.** The string compiled and rendered a `Button`, which is a control that
116
+ * activates to nothing; a pricing card is the last thing a reader sees before they
117
+ * choose, so that is the worst place in the package to ship one. See
118
+ * `PricingAction`.
119
+ */
120
+ action: PricingAction;
10
121
  /** Lifts the plan with a primary border and a filled button. */
11
122
  featured?: boolean;
12
123
  /** Overrides the "Popular" badge on the featured plan. */
@@ -36,6 +147,12 @@ export type Pricing01Props = {
36
147
  * `Pricing01` and `FeatureGrid01` were the only two Blocks that left the heading
37
148
  * centred over content, and neither had a stated reason for it, so both were
38
149
  * taking the default rather than making a decision.
150
+ *
151
+ * **The card's foot is a link or the caller's own control, and never a button of
152
+ * this Block's.** `Plan` used to carry a required `cta` string and the Block
153
+ * rendered it as a `Button`, so every pricing table in every consumer's product
154
+ * shipped a focusable control, announced as a button, that activated to nothing,
155
+ * on the card a reader was about to choose from. See `PricingAction`.
39
156
  */
40
157
  export declare function Pricing01({ eyebrow, title, description, plans, headingLevel, }: Pricing01Props): import("react").JSX.Element;
41
158
  export default Pricing01;
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../../src/blocks/pricing-01/pricing.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAuC,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAEpG,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,+DAA+D;IAC/D,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,KAAK,EACL,WAAW,EACX,KAAK,EACL,YAAmB,GACpB,EAAE,cAAc,+BAwEhB;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../../src/blocks/pricing-01/pricing.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAchD,OAAO,EAAuC,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAEpG;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,4FAA4F;IAC5F,IAAI,CAAC,EAAE,KAAK,CAAA;CACb,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;;;OAMG;IACH,IAAI,EAAE,SAAS,CAAA;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,6EAA6E;IAC7E,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,kDAAkD;IAClD,MAAM,CAAC,EAAE,KAAK,CAAA;CACf,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,CAAA;AAEjE,MAAM,MAAM,IAAI,GAAG;IACjB;;;;;;;;;;;;;;;;;OAiBG;IACH,EAAE,EAAE,MAAM,CAAA;IACV,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB;;;;;;;;OAQG;IACH,MAAM,EAAE,aAAa,CAAA;IACrB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,+DAA+D;IAC/D,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,KAAK,EACL,WAAW,EACX,KAAK,EACL,YAAmB,GACpB,EAAE,cAAc,+BAuFhB;AAED,eAAe,SAAS,CAAA"}