@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,108 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '../../lib/utils.js';
3
+ /**
4
+ * How many lines the gutter counts, and the text the body draws.
5
+ *
6
+ * One `split` and two consumers, which is the whole point: the numbers and the
7
+ * code are derived from the same string in the same pass, so a gutter cannot
8
+ * claim a line the body does not have. The trailing empty line a file's final
9
+ * newline produces is dropped from the count only. The body still draws the
10
+ * `code` verbatim, because a `<pre>` that has lost its final newline is a
11
+ * snippet that no longer copies correctly, and a count that is one too high is a
12
+ * cosmetic defect by comparison.
13
+ */
14
+ function linesOf(code) {
15
+ const lines = code.split('\n');
16
+ return code.endsWith('\n') ? Math.max(1, lines.length - 1) : lines.length;
17
+ }
18
+ /**
19
+ * A snippet of source: a mono surface with a header for the words that say what
20
+ * it is.
21
+ *
22
+ * **Prism ships a code surface and no syntax highlighter, and that is the
23
+ * decision worth defending.** A highlighter is not a presentation detail, it is
24
+ * a dependency that arrives with its own answer to the question "what does this
25
+ * token mean", and it is a second source of truth for exactly the kind of thing
26
+ * this system is built to have one of. Prism's law is that a value is authored
27
+ * once and reaches a consumer through the tokens; a highlighter decides on its
28
+ * own that `const` is a keyword and that a string is a string, and it decides
29
+ * that in a vocabulary of its own, published as a theme file, styled with class
30
+ * names that have to be reconciled against six packs and two modes. The
31
+ * reconciliation is where a highlighter stops being a convenience. The moment
32
+ * one is in the product, the token source and the highlight theme are two files
33
+ * that have to be kept in step, and a pack that moves a step leaves the second
34
+ * one behind, and the result is a code surface in the wrong hue that every
35
+ * colour gate in this repository reports as correct.
36
+ *
37
+ * So nothing here is highlighted, and the cost of that is real and worth naming:
38
+ * a long snippet is a wall of one colour, a reader scanning for a name has no
39
+ * colour to catch it, and Prism gives them the table of contents instead, which
40
+ * is the line numbers and the filename. A caller who has decided they want
41
+ * highlighting composes it themselves, and the two places to do it are named on
42
+ * the props: `actions` takes a control the caller built, and the whole item is a
43
+ * plain figure with a `code` string, so anything a caller wraps around it is
44
+ * theirs. What Prism will not do is hold the highlighting itself, because the
45
+ * day it does there are two answers to what a token means in every product that
46
+ * installs it.
47
+ *
48
+ * **The figure is named by `label`, and the naming is required whenever the
49
+ * caller brings a control.** See the union on `CodeBlockProps`: a copy button
50
+ * beside an unnamed figure is a button that acts on nothing a reader can
51
+ * identify. When the caller brings no control the name is optional, because a
52
+ * snippet inside a sentence is identified by the sentence.
53
+ *
54
+ * **The line numbers are a gutter, not part of the text.** They sit outside the
55
+ * `<pre>`, hidden from assistive technology, and the code inside the `<pre>` is
56
+ * the caller's `code` and nothing else. That is what keeps a copy clean: a copy
57
+ * that carries `1 2 3` down its left edge is a snippet pasted into a file
58
+ * that does not compile, and the alternative, numbers inside the `<pre>`, is
59
+ * exactly that. The cost of the gutter is alignment, because two parallel
60
+ * renderings of the same lines line up only while the lines do not wrap, which
61
+ * is why the body is `whitespace-pre` and scrolls horizontally. A snippet that
62
+ * soft-wrapped would put the numbers a line out of step after the first long
63
+ * line, and horizontal scroll is the honest answer: source is read by the line
64
+ * and not reflowed to the viewport.
65
+ *
66
+ * **It spreads no other prop.** `Kbd` and `Separator` spread a native element's
67
+ * props because there is no other route to them. A `<pre>` is a different case,
68
+ * and the reason is specific: a code surface is the one place in a component
69
+ * library where a caller might reasonably reach for `dangerouslySetInnerHTML`,
70
+ * because highlighting is usually done that way and this file has just argued
71
+ * against highlighting. A spread would hand them the attribute that bypasses
72
+ * every claim on the page in one prop, so the surface is `code`, `language`,
73
+ * `filename`, `lineNumbers`, `actions`, `label` and `className`, and nothing
74
+ * else.
75
+ *
76
+ * **The header is a header, and it is not always there.** It is drawn when
77
+ * there is something to put in it: a filename, a language, or a control. A
78
+ * snippet with no filename, no language and no control is a tinted box of
79
+ * monospace, and an empty strip above it would be a bar of ink saying nothing.
80
+ */
81
+ function CodeBlock({ code, language, filename, lineNumbers = false, actions, label, className, }) {
82
+ const named = filename !== undefined || language !== undefined || actions !== undefined;
83
+ const count = linesOf(code);
84
+ return (_jsxs("figure", { "data-slot": "code-block", "data-named": named, "data-line-numbers": lineNumbers, "aria-label": label, className: cn('bg-muted border-border flex w-full flex-col overflow-hidden rounded-md border', className), children: [named ? (_jsxs("div", { "data-slot": "code-block-header", className: "border-border text-muted-foreground flex items-center justify-between gap-3 border-b px-3 py-1.5 text-xs", children: [_jsxs("span", { "data-slot": "code-block-name", className: "flex min-w-0 items-center gap-2 font-mono", children: [filename === undefined ? null : (_jsx("span", { "data-slot": "code-block-filename", className: "text-foreground truncate", children: filename })), language === undefined ? null : (_jsx("span", { "data-slot": "code-block-language", children: language }))] }), actions === undefined ? null : (_jsx("span", { "data-slot": "code-block-actions", className: "flex shrink-0 items-center gap-2", children: actions }))] })) : null, _jsx("div", { "data-slot": "code-block-body", className: "overflow-x-auto", children: _jsxs("div", { className: "flex min-w-max", children: [lineNumbers ? (_jsx("div", { "data-slot": "code-block-numbers", "aria-hidden": "true", className: "text-muted-foreground border-border w-9 shrink-0 border-r pr-2 text-right font-mono text-xs leading-relaxed tabular-nums select-none", children: Array.from({ length: count }, (_, index) => (_jsx("span", { "data-slot": "code-block-number", className: "block", children: index + 1 }, index))) })) : null, _jsx("pre", { "data-slot": "code-block-pre", className: "text-foreground min-w-0 flex-1 px-3 py-2 font-mono text-sm leading-relaxed whitespace-pre", children: _jsx("code", { "data-slot": "code-block-code", children: code }) })] }) })] }));
85
+ }
86
+ /**
87
+ * An inline run of source: a symbol, a command, a filename, a prop.
88
+ *
89
+ * The inline form of the same idea `CodeBlock` states at length, and the reason
90
+ * it is its own export rather than a size of the block is that the two answer
91
+ * different questions. A `CodeBlock` is something a reader may copy, so it is a
92
+ * figure with a name, a header and a gutter. A `Code` is a word inside a
93
+ * sentence, and the whole treatment is that it is visibly not prose: the mono
94
+ * face is the signal, and the muted surface is what stops a long symbol from
95
+ * reading as a run of emphasised text.
96
+ *
97
+ * Use it for a symbol the reader types (`--strict`), a component or a function
98
+ * name (`ChartFrame`), a file (`dialog.tsx`), a prop (`tone`) or a command. Do
99
+ * not use it for a value that is a number with a unit, for a key the reader
100
+ * presses, which is `Kbd`, or for anything the reader is meant to remember as
101
+ * prose. It renders a native `<code>`, so a screen reader identifies it as
102
+ * source rather than as text to read through, and it spreads a `<code>`'s own
103
+ * props because that is the only route to a title, a `lang` or an `id` on one.
104
+ */
105
+ function Code({ className, ...props }) {
106
+ return (_jsx("code", { "data-slot": "code", className: cn('bg-muted text-foreground rounded-sm px-1 py-0.5 font-mono text-sm', className), ...props }));
107
+ }
108
+ export { CodeBlock, Code };
@@ -0,0 +1,210 @@
1
+ import type { ComponentProps, ReactNode } from 'react';
2
+ /**
3
+ * One column of the matrix, which is an offset from a row's own start.
4
+ *
5
+ * The key is a handle for the markup and the label is what a reader reads, and the
6
+ * split is the same one `IntensityGrid` uses for both of its axes. The words are
7
+ * the caller's because an offset is written in the product's own terms: "Week 1",
8
+ * "Month 3", "Day 30", "the first renewal", and a Component that composed one of
9
+ * those would be a Component shipping an English calendar into every consumer's
10
+ * product.
11
+ */
12
+ export type CohortGridColumn = {
13
+ /** A stable handle for this offset, read by no one. */
14
+ key: string;
15
+ /** The offset's own name, printed as the column header. */
16
+ label: ReactNode;
17
+ };
18
+ /**
19
+ * One cohort, and the share still present at each offset.
20
+ *
21
+ * **A `null` is an offset the cohort has not reached, and it is not a zero.** This
22
+ * is the whole data model of a retention matrix: the youngest cohort has one
23
+ * reading and the oldest has twelve, so the matrix is ragged and its top corner is
24
+ * empty by arithmetic rather than by measurement. A zero means every member of the
25
+ * cohort had gone by that offset; a `null` means the cohort had not got there. They
26
+ * draw differently here, a zero prints `0%` and a `null` prints nothing, and they
27
+ * sound different because one of them is read and the other is blank.
28
+ *
29
+ * Every row must have exactly as many entries as there are columns, a `null` for
30
+ * each offset the cohort has not reached. That is stricter than it needs to be and
31
+ * the strictness is the point: a short row and a row of nulls draw the same, and
32
+ * only the second one says what it means.
33
+ */
34
+ export type CohortGridRow = {
35
+ /**
36
+ * A stable handle for this cohort, read by no one.
37
+ *
38
+ * A string is required rather than made optional because it is the only identity
39
+ * a row has once its label is a node, and it is what lets a caller reorder rows
40
+ * without the matrix changing anything else.
41
+ */
42
+ key: string;
43
+ /** The cohort's own name, printed as its row header. */
44
+ label: ReactNode;
45
+ /** The share still present at each offset, in the order the columns are given. */
46
+ shares: readonly (number | null)[];
47
+ };
48
+ /** The props the CohortGrid accepts. */
49
+ export interface CohortGridProps extends Omit<ComponentProps<'figure'>, 'children'> {
50
+ /**
51
+ * The cohorts, in the order they are read.
52
+ *
53
+ * The order is the caller's and nothing here sorts: the ordinary order is newest
54
+ * first, because the youngest cohort is the one being watched, and a Component
55
+ * that ordered by key size or by value would put the reader's question somewhere
56
+ * else.
57
+ */
58
+ rows: readonly CohortGridRow[];
59
+ /** The offsets, in the order they are read. */
60
+ columns: readonly CohortGridColumn[];
61
+ /**
62
+ * The name of the matrix, printed as the table's caption.
63
+ *
64
+ * Required rather than defaulted, for the two reasons `ChartFrame` states and the
65
+ * rest of the package repeats: two retention tables on one page are two tables a
66
+ * reader cannot tell apart, and a table with no name is neither announced nor
67
+ * linkable.
68
+ *
69
+ * **It is the caption and not an `aria-label` on the figure**, which is the one
70
+ * place this package's figures differ. `Chart` puts its name on the figure and
71
+ * keeps its table visually hidden, so the name has to be spoken from the figure.
72
+ * Here the table is the figure and the caption is visible, and a name said on the
73
+ * figure and again by the caption is a name a reader hears twice on the way into
74
+ * the same data.
75
+ */
76
+ label: string;
77
+ /**
78
+ * The name of the column holding the cohort names, drawn in the corner.
79
+ *
80
+ * Optional, and a retention table that has one nearly always does: the corner is
81
+ * the only cell that names the row headers, and leaving it empty is honest because
82
+ * every row head already names itself. Omitted, the corner is an empty cell rather
83
+ * than a word Prism chose, which is the whole reason it is not required.
84
+ */
85
+ rowHeading?: ReactNode;
86
+ /**
87
+ * The lower end of the scale the shading is drawn against. @defaultValue 0
88
+ *
89
+ * Zero because a share of a cohort is measured from nothing: the cohort at its
90
+ * first offset is the whole of itself. A caller whose measure starts above zero
91
+ * passes it, and the cost is that a cell at the floor and a cell with nothing in
92
+ * it draw the same way, which is what a floor means.
93
+ */
94
+ min?: number;
95
+ /**
96
+ * The upper end of the scale the shading is drawn against. @defaultValue 100
97
+ *
98
+ * A hundred because that is the whole cohort, and a scale that tops out below it
99
+ * exaggerates every difference in the grid. Pass a lower number when the useful
100
+ * range is narrow, and treat it as a claim the reader has been told rather than
101
+ * one they have inferred: see the note on the helper above.
102
+ */
103
+ max?: number;
104
+ /**
105
+ * How many decimal places each cell is printed to. @defaultValue 0
106
+ *
107
+ * Whole numbers, because a retention grid is a shape rather than a set of
108
+ * measurements, and a column of one-decimal percentages on a mobile screen is
109
+ * wider than the numbers are worth. Pass `1` when the underlying counts are small
110
+ * enough that a point of a percent is a real difference.
111
+ */
112
+ precision?: number;
113
+ /**
114
+ * The sentence under the table, which is where the measure belongs.
115
+ *
116
+ * The caller's words, and required in practice though optional in the type,
117
+ * because the cells print bare numbers: this is the sentence that says what the
118
+ * numbers are a share of. "Of the accounts that were active in the month they
119
+ * signed up" is a claim about a product this Component knows nothing about, so it
120
+ * is the caller's to write, and a grid with no sentence under it says only what
121
+ * its numbers say.
122
+ */
123
+ caption?: ReactNode;
124
+ /** Layout only, exactly as on every Component. */
125
+ className?: string;
126
+ }
127
+ /**
128
+ * A retention matrix, read as a table of printed percentages under one scale.
129
+ *
130
+ * **It is a table, and that is the Component rather than an implementation
131
+ * detail.** A retention grid is the one data display whose job is to be read one
132
+ * cell at a time: a reader asks "what share of the March cohort was still sending
133
+ * readings at month three", and the answer is a cell. `Table` is that answer, with
134
+ * row and column headers, a caption and per-cell navigation, all of which the
135
+ * percentages need and a drawing of divs would throw away. So this Component
136
+ * composes `Table` rather than replacing it, and what it adds is the four things a
137
+ * generic table has no opinion about: the shape of the data, the scale the shading
138
+ * is drawn against, the difference between an offset not reached and a share of
139
+ * nothing, and the order in which a cell is printed and shaded.
140
+ *
141
+ * **How it differs from `Table`, precisely.** `Table` holds no domain, no scale and
142
+ * no claim: it gives a caller seven parts and gets out of the way, which is exactly
143
+ * what a caller with arbitrary columns wants and exactly what a retention grid does
144
+ * not, because a retention grid knows that its columns are ordinal offsets from
145
+ * each row's own start and that its cells are shares. So the difference is not the
146
+ * markup, it is the four refusals. There is no way to add a column beside the
147
+ * matrix, because an extra column is not an offset. There is no way to shade a cell
148
+ * by hand, because the shade is the value and a hand-set shade would be a second
149
+ * claim about it. There is no way to pass rows of unequal length, because a short
150
+ * row is a row of nulls that says nothing about which offsets were measured. And
151
+ * there is no way to print anything but a number, because the cell's whole content
152
+ * is the share. A caller who needs any of those is building a table, and `Table` is
153
+ * the Component for it.
154
+ *
155
+ * **There is no horizontal scale, and the columns are ordinal rather than
156
+ * continuous.** Each column is an offset, and the offsets are the same *number* on
157
+ * every row while the *periods* they stand for are not: the March cohort's month
158
+ * three and the September cohort's month three are two different months in the
159
+ * calendar. So there is no axis, no tick spacing and no interpolation, and nothing
160
+ * may be read as "the cell halfway between these two". A measure that varies along
161
+ * a continuous domain is `Chart`; a measure along an ordinal offset is this. That is
162
+ * also why a retention grid cannot be a heat map of categories in the
163
+ * `IntensityGrid` sense even though both shade cells: the columns there are names
164
+ * with no order at all, and here they are ordered offsets that every row reads
165
+ * differently.
166
+ *
167
+ * **Print, then shade, and the order is the design.** Every cell carries its share
168
+ * as a number in the caller's own unit, and the shade is laid over the cell behind
169
+ * it. Neither channel is optional and neither is the fallback: a reader who cannot
170
+ * rank five steps of one hue reads every number in the grid, and a reader who cannot
171
+ * see the pale end of the scale still has the numbers, which is the arrangement
172
+ * `IntensityGrid` refuses on purpose for the opposite reason. The consequence is
173
+ * that shading must never be the only carrier of the number, and this Component
174
+ * makes that structural rather than advisory by printing unconditionally and by
175
+ * refusing a cell it cannot put a number in. It is also why the cells are the
176
+ * figure's own visible content rather than a table generated from a drawing: there
177
+ * is no drawing to generate a table beside.
178
+ *
179
+ * **The scale is absolute by default, and `max` is a claim the caller owns.** See
180
+ * the note on the helper: quartiles of `min` to `max`, defaulting to zero and a
181
+ * hundred, so two months of the same product are comparable. The cost is that a
182
+ * product whose cohorts all collapse below a quarter loses the contrast, and the
183
+ * answer is a narrower `max` which exaggerates on purpose. A retention grid that
184
+ * silently rescaled itself to flatter the rows in front of it would be the exact
185
+ * failure `Chart` names for a pre-normalised caller, and a table of retention
186
+ * percentages is the last place to ship one.
187
+ *
188
+ * **Nothing here moves, and the reason is the same as everywhere else in this
189
+ * family.** A hover state on a cell would have to change the cell's surface, and the
190
+ * surface is what the number is printed on, so a hover would change the reading
191
+ * while the pointer rested on it. A row wash would do the same to every cell in the
192
+ * row at once. So the grid is static by construction, which is also the cheapest
193
+ * reading of a motion law that permits only state feedback on a token duration.
194
+ *
195
+ * **Two inputs throw, and a drawn lie is worse than a refusal.** A row whose
196
+ * `shares` are not one per column is a ragged row that would draw as if the missing
197
+ * offsets had been measured and found empty, which is the one thing this data model
198
+ * exists to prevent. A share outside `min` to `max` is a measurement that cannot be
199
+ * placed on the scale, and the alternative was to clamp it, which is what `Chart`
200
+ * does for a value past the end of its axis and what this Component deliberately
201
+ * does not: a clamped retention cell is a cell that says its share is the ceiling
202
+ * when it is not, in a table whose whole claim is that every number in it was
203
+ * measured.
204
+ *
205
+ * **It is a server Component.** There is no state, no effect and no handler, every
206
+ * cell is arithmetic over props, and a dashboard of cohorts costs no client code.
207
+ */
208
+ declare function CohortGrid({ className, rows, columns, label, rowHeading, min, max, precision, caption, ...props }: CohortGridProps): import("react").JSX.Element;
209
+ export { CohortGrid };
210
+ //# sourceMappingURL=cohort-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cohort-grid.d.ts","sourceRoot":"","sources":["../../../src/components/ui/cohort-grid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AActD;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAA;IACX,2DAA2D;IAC3D,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;;;OAMG;IACH,GAAG,EAAE,MAAM,CAAA;IACX,wDAAwD;IACxD,KAAK,EAAE,SAAS,CAAA;IAChB,kFAAkF;IAClF,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;CACnC,CAAA;AAmFD,wCAAwC;AACxC,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACjF;;;;;;;OAOG;IACH,IAAI,EAAE,SAAS,aAAa,EAAE,CAAA;IAC9B,+CAA+C;IAC/C,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAA;IACpC;;;;;;;;;;;;;;OAcG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,SAAS,CAAA;IACtB;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,IAAI,EACJ,OAAO,EACP,KAAK,EACL,UAAU,EACV,GAAO,EACP,GAAS,EACT,SAAa,EACb,OAAO,EACP,GAAG,KAAK,EACT,EAAE,eAAe,+BAyGjB;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,202 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Table, TableBody, TableCaption, TableCell, TableHead, TableHeader, TableRow, } from './table.js';
3
+ import { cn } from '../../lib/utils.js';
4
+ /**
5
+ * The fill each step is drawn in, from the contract's roles and no other.
6
+ *
7
+ * The five entries `IntensityGrid` and `ContributionGraph` both draw from, spelled
8
+ * here because each of those modules keeps its own map to itself, and the honest
9
+ * cost is the one they state between them: a change to the intensity scale is now
10
+ * three edits rather than one. What keeps the three in step is the type, which is
11
+ * imported from `IntensityGrid` rather than redeclared, so a sixth step is a type
12
+ * error at all three maps at once instead of a cell that silently falls through to
13
+ * no ink in whichever file nobody remembered.
14
+ *
15
+ * Step zero is the `muted` surface rather than a pale primary, so a cohort that has
16
+ * nothing left is visibly a different thing from a cohort with a little left. The
17
+ * other four are the same `primary` role at four alpha steps, which is one token at
18
+ * four strengths: five authored colours would be a second set of colour tokens for a
19
+ * scale the alpha modifier already expresses, and they would not move with a scoped
20
+ * pack boundary.
21
+ */
22
+ const LEVEL_FILL = {
23
+ 0: 'bg-muted',
24
+ 1: 'bg-primary/25',
25
+ 2: 'bg-primary/50',
26
+ 3: 'bg-primary/75',
27
+ 4: 'bg-primary',
28
+ };
29
+ /**
30
+ * The ink a cell's number is printed in, from the same step.
31
+ *
32
+ * The inverse on the top step only, and it is `primary-foreground` on `primary`
33
+ * because that is the contract's own pairing for a filled control and the contrast
34
+ * gate already measures it at 4.5:1 in every pack and both modes. The other four
35
+ * keep `foreground`, which clears the page and the muted surface under a quarter
36
+ * and a half of a primary. Inverting anything earlier would have meant light ink on
37
+ * a light shade, which is a legibility failure dressed as a consistency.
38
+ */
39
+ const LEVEL_INK = {
40
+ 0: 'text-foreground',
41
+ 1: 'text-foreground',
42
+ 2: 'text-foreground',
43
+ 3: 'text-foreground',
44
+ 4: 'text-primary-foreground',
45
+ };
46
+ /**
47
+ * Where a share sits on the caller's scale, as a step.
48
+ *
49
+ * **Quartiles of the caller's scale, and not of the data.** The scale runs from
50
+ * `min` to `max` and defaults to zero and a hundred, because a share of a cohort is
51
+ * an absolute quantity and two months of the same product must be comparable. A
52
+ * grid that fitted its scale to the rows in front of it would make a cohort whose
53
+ * members all left draw as dark as a cohort that kept everyone, which is the quietest
54
+ * and worst way a retention table can be wrong.
55
+ *
56
+ * The cost is the same argument in reverse and it is real: once a product's cohorts
57
+ * are all below a quarter, the grid goes uniformly pale and the reader gets no
58
+ * contrast in it. The answer is `min`, which raises the floor of the scale on
59
+ * purpose and is documented as a claim the caller has to own, because a scale that
60
+ * starts at twenty and a table that does not are two truths about the same grid.
61
+ *
62
+ * **`max` cannot do that job here, and the reason is the first column.** A
63
+ * retention row's own starting column is a hundred percent by definition, so a
64
+ * scale that stops below a hundred is a scale the data cannot be drawn against,
65
+ * and this Component throws rather than clamp because a clamped cell is a cell
66
+ * claiming its share is the ceiling. Narrowing the scale therefore means raising
67
+ * `min`, and it means the last column of an old cohort and the second column of a
68
+ * new one are the two cells a reader compares. That is a real limit on the knob
69
+ * rather than a default that happened to land well, and a caller who wants the
70
+ * saturation the low `max` was reaching for has to leave the first column out of
71
+ * `columns` and say in the caption what the offsets now begin at.
72
+ */
73
+ function levelOf(share, min, max) {
74
+ const span = max - min;
75
+ const position = span <= 0 ? 1 : (share - min) / span;
76
+ if (position <= 0)
77
+ return 0;
78
+ if (position <= 0.25)
79
+ return 1;
80
+ if (position <= 0.5)
81
+ return 2;
82
+ if (position <= 0.75)
83
+ return 3;
84
+ return 4;
85
+ }
86
+ /**
87
+ * A retention matrix, read as a table of printed percentages under one scale.
88
+ *
89
+ * **It is a table, and that is the Component rather than an implementation
90
+ * detail.** A retention grid is the one data display whose job is to be read one
91
+ * cell at a time: a reader asks "what share of the March cohort was still sending
92
+ * readings at month three", and the answer is a cell. `Table` is that answer, with
93
+ * row and column headers, a caption and per-cell navigation, all of which the
94
+ * percentages need and a drawing of divs would throw away. So this Component
95
+ * composes `Table` rather than replacing it, and what it adds is the four things a
96
+ * generic table has no opinion about: the shape of the data, the scale the shading
97
+ * is drawn against, the difference between an offset not reached and a share of
98
+ * nothing, and the order in which a cell is printed and shaded.
99
+ *
100
+ * **How it differs from `Table`, precisely.** `Table` holds no domain, no scale and
101
+ * no claim: it gives a caller seven parts and gets out of the way, which is exactly
102
+ * what a caller with arbitrary columns wants and exactly what a retention grid does
103
+ * not, because a retention grid knows that its columns are ordinal offsets from
104
+ * each row's own start and that its cells are shares. So the difference is not the
105
+ * markup, it is the four refusals. There is no way to add a column beside the
106
+ * matrix, because an extra column is not an offset. There is no way to shade a cell
107
+ * by hand, because the shade is the value and a hand-set shade would be a second
108
+ * claim about it. There is no way to pass rows of unequal length, because a short
109
+ * row is a row of nulls that says nothing about which offsets were measured. And
110
+ * there is no way to print anything but a number, because the cell's whole content
111
+ * is the share. A caller who needs any of those is building a table, and `Table` is
112
+ * the Component for it.
113
+ *
114
+ * **There is no horizontal scale, and the columns are ordinal rather than
115
+ * continuous.** Each column is an offset, and the offsets are the same *number* on
116
+ * every row while the *periods* they stand for are not: the March cohort's month
117
+ * three and the September cohort's month three are two different months in the
118
+ * calendar. So there is no axis, no tick spacing and no interpolation, and nothing
119
+ * may be read as "the cell halfway between these two". A measure that varies along
120
+ * a continuous domain is `Chart`; a measure along an ordinal offset is this. That is
121
+ * also why a retention grid cannot be a heat map of categories in the
122
+ * `IntensityGrid` sense even though both shade cells: the columns there are names
123
+ * with no order at all, and here they are ordered offsets that every row reads
124
+ * differently.
125
+ *
126
+ * **Print, then shade, and the order is the design.** Every cell carries its share
127
+ * as a number in the caller's own unit, and the shade is laid over the cell behind
128
+ * it. Neither channel is optional and neither is the fallback: a reader who cannot
129
+ * rank five steps of one hue reads every number in the grid, and a reader who cannot
130
+ * see the pale end of the scale still has the numbers, which is the arrangement
131
+ * `IntensityGrid` refuses on purpose for the opposite reason. The consequence is
132
+ * that shading must never be the only carrier of the number, and this Component
133
+ * makes that structural rather than advisory by printing unconditionally and by
134
+ * refusing a cell it cannot put a number in. It is also why the cells are the
135
+ * figure's own visible content rather than a table generated from a drawing: there
136
+ * is no drawing to generate a table beside.
137
+ *
138
+ * **The scale is absolute by default, and `max` is a claim the caller owns.** See
139
+ * the note on the helper: quartiles of `min` to `max`, defaulting to zero and a
140
+ * hundred, so two months of the same product are comparable. The cost is that a
141
+ * product whose cohorts all collapse below a quarter loses the contrast, and the
142
+ * answer is a narrower `max` which exaggerates on purpose. A retention grid that
143
+ * silently rescaled itself to flatter the rows in front of it would be the exact
144
+ * failure `Chart` names for a pre-normalised caller, and a table of retention
145
+ * percentages is the last place to ship one.
146
+ *
147
+ * **Nothing here moves, and the reason is the same as everywhere else in this
148
+ * family.** A hover state on a cell would have to change the cell's surface, and the
149
+ * surface is what the number is printed on, so a hover would change the reading
150
+ * while the pointer rested on it. A row wash would do the same to every cell in the
151
+ * row at once. So the grid is static by construction, which is also the cheapest
152
+ * reading of a motion law that permits only state feedback on a token duration.
153
+ *
154
+ * **Two inputs throw, and a drawn lie is worse than a refusal.** A row whose
155
+ * `shares` are not one per column is a ragged row that would draw as if the missing
156
+ * offsets had been measured and found empty, which is the one thing this data model
157
+ * exists to prevent. A share outside `min` to `max` is a measurement that cannot be
158
+ * placed on the scale, and the alternative was to clamp it, which is what `Chart`
159
+ * does for a value past the end of its axis and what this Component deliberately
160
+ * does not: a clamped retention cell is a cell that says its share is the ceiling
161
+ * when it is not, in a table whose whole claim is that every number in it was
162
+ * measured.
163
+ *
164
+ * **It is a server Component.** There is no state, no effect and no handler, every
165
+ * cell is arithmetic over props, and a dashboard of cohorts costs no client code.
166
+ */
167
+ function CohortGrid({ className, rows, columns, label, rowHeading, min = 0, max = 100, precision = 0, caption, ...props }) {
168
+ // A nonsense `precision` is floored at zero rather than reaching `toFixed`, which
169
+ // throws on a negative count, because a rounding instruction is a reading
170
+ // instruction rather than a measurement and a typo in one should not take a page
171
+ // down. The cost is that `precision={-1}` reads as `0`, which is the whole number
172
+ // it was asking for anyway.
173
+ const places = Math.min(20, Math.max(0, Math.floor(precision)));
174
+ for (const row of rows) {
175
+ if (row.shares.length !== columns.length) {
176
+ throw new Error(`CohortGrid: the cohort '${row.key}' has ${String(row.shares.length)} share(s) for ` +
177
+ `${String(columns.length)} column(s). Every row must have one entry per offset, and an offset ` +
178
+ 'the cohort has not reached is a null rather than a missing entry: a short row draws as a row ' +
179
+ 'of empties, which claims the cohort had nothing at those offsets instead of claiming it had ' +
180
+ 'not got there.');
181
+ }
182
+ for (const share of row.shares) {
183
+ if (share === null)
184
+ continue;
185
+ if (!Number.isFinite(share) || share < min || share > max) {
186
+ throw new Error(`CohortGrid: the cohort '${row.key}' carries the share ${String(share)}, which is not between ` +
187
+ `the scale's own ends of ${String(min)} and ${String(max)}. A retention cell that cannot be ` +
188
+ 'placed on the scale it is drawn against has been measured against a different one, so this ' +
189
+ 'stops rather than clamping it to the ceiling and printing a number the data does not hold.');
190
+ }
191
+ }
192
+ }
193
+ return (_jsxs("figure", { "data-slot": "cohort-grid", className: cn('flex w-full flex-col gap-3', className), ...props, children: [_jsxs(Table, { children: [_jsx(TableCaption, { children: label }), _jsx(TableHeader, { children: _jsxs(TableRow, { children: [rowHeading === undefined ? (_jsx(TableHead, { className: "w-32" })) : (_jsx(TableHead, { className: "w-32", children: rowHeading })), columns.map((column) => (_jsx(TableHead, { scope: "col", className: "text-center tabular-nums", children: column.label }, column.key)))] }) }), _jsx(TableBody, { children: rows.map((row) => (_jsxs(TableRow, { "data-cohort": row.key, children: [_jsx(TableHead, { scope: "row", className: "font-medium whitespace-nowrap", children: row.label }), columns.map((column, at) => {
194
+ const share = row.shares[at];
195
+ if (share === null) {
196
+ return (_jsx(TableCell, { "data-offset": column.key, "data-state": "not-reached", className: "text-center tabular-nums" }, column.key));
197
+ }
198
+ const level = levelOf(share, min, max);
199
+ return (_jsxs(TableCell, { "data-offset": column.key, "data-level": level, className: cn('text-center tabular-nums', LEVEL_FILL[level], LEVEL_INK[level]), children: [share.toFixed(places), "%"] }, column.key));
200
+ })] }, row.key))) })] }), caption === undefined ? null : (_jsx("p", { "data-slot": "cohort-grid-caption", className: "text-muted-foreground text-sm", children: caption }))] }));
201
+ }
202
+ export { CohortGrid };
@@ -91,6 +91,17 @@ declare function CollapsibleTrigger({ className, children, ...props }: Collapsib
91
91
  * The height transition is state feedback rather than decoration: the panel is
92
92
  * opening or closing and the reader can watch it happen, which is the one motion
93
93
  * this system allows on a surface like this.
94
+ *
95
+ * **`duration-slow` and not `duration-base`, and the reason is the motion scale
96
+ * rather than a preference.** `DESIGN.md` assigns `slow` to "transform or layout
97
+ * state such as a disclosure", and this is the disclosure: a height animation is the
98
+ * case the sentence is written about. The chevron in the trigger carries the same
99
+ * step for the same reason, because a 160ms icon against a 280ms panel is two events
100
+ * where the reader is watching one, and a reader who opens this cannot tell whether
101
+ * the icon or the panel was late.
102
+ *
103
+ * The reduced-motion rule does not shorten it, it removes it, so a reader who asked
104
+ * for no motion gets the panel at its resting height with nothing to wait for.
94
105
  */
95
106
  declare function CollapsibleContent({ className, ...props }: CollapsibleContentProps): import("react").JSX.Element;
96
107
  export { Collapsible, CollapsibleTrigger, CollapsibleContent };
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../../../src/components/ui/collapsible.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C;;;;;GAKG;AACH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC/E,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;;;OAQG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,wDAAwD;AACxD,MAAM,WAAW,uBAAwB,SAAQ,cAAc,CAAC,QAAQ,CAAC;CAAG;AAE5E;;;;;GAKG;AACH,MAAM,WAAW,uBAAwB,SAAQ,cAAc,CAAC,KAAK,CAAC;IACpE;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,+BAQ7D;AAED;;;;;;GAMG;AACH,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,+BAiBrF;AAED;;;;;;GAMG;AACH,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,+BAc3E;AAED,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../../../src/components/ui/collapsible.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C;;;;;GAKG;AACH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC/E,iCAAiC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;;;OAQG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,wDAAwD;AACxD,MAAM,WAAW,uBAAwB,SAAQ,cAAc,CAAC,QAAQ,CAAC;CAAG;AAE5E;;;;;GAKG;AACH,MAAM,WAAW,uBAAwB,SAAQ,cAAc,CAAC,KAAK,CAAC;IACpE;;;;;;;;;;;OAWG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,+BAQ7D;AAED;;;;;;GAMG;AACH,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,+BAiBrF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAS,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,+BAc3E;AAED,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAA"}
@@ -39,7 +39,7 @@ function Collapsible({ className, ...props }) {
39
39
  * with the keyboard after closing the section without their hands.
40
40
  */
41
41
  function CollapsibleTrigger({ className, children, ...props }) {
42
- return (_jsxs(CollapsiblePrimitive.Trigger, { "data-slot": "collapsible-trigger", className: cn('text-foreground group flex w-full items-center justify-between gap-3 rounded-md py-3 text-left text-sm font-medium outline-none', 'transition-[color,background-color,box-shadow] duration-fast ease-out', 'hover:bg-accent/60 hover:text-accent-foreground focus-visible:ring-ring focus-visible:ring-[3px]', 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50', className), ...props, children: [children, _jsx(ChevronRightIcon, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 transition-transform duration-base ease-out group-data-[panel-open]:rotate-90" })] }));
42
+ return (_jsxs(CollapsiblePrimitive.Trigger, { "data-slot": "collapsible-trigger", className: cn('text-foreground group flex w-full items-center justify-between gap-3 rounded-md py-3 text-left text-sm font-medium outline-none', 'transition-[color,background-color,box-shadow] duration-fast ease-out', 'hover:bg-accent/60 hover:text-accent-foreground focus-visible:ring-ring focus-visible:ring-[3px]', 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50', className), ...props, children: [children, _jsx(ChevronRightIcon, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 transition-transform duration-slow ease-out group-data-[panel-open]:rotate-90" })] }));
43
43
  }
44
44
  /**
45
45
  * The region the trigger shows and hides.
@@ -47,8 +47,19 @@ function CollapsibleTrigger({ className, children, ...props }) {
47
47
  * The height transition is state feedback rather than decoration: the panel is
48
48
  * opening or closing and the reader can watch it happen, which is the one motion
49
49
  * this system allows on a surface like this.
50
+ *
51
+ * **`duration-slow` and not `duration-base`, and the reason is the motion scale
52
+ * rather than a preference.** `DESIGN.md` assigns `slow` to "transform or layout
53
+ * state such as a disclosure", and this is the disclosure: a height animation is the
54
+ * case the sentence is written about. The chevron in the trigger carries the same
55
+ * step for the same reason, because a 160ms icon against a 280ms panel is two events
56
+ * where the reader is watching one, and a reader who opens this cannot tell whether
57
+ * the icon or the panel was late.
58
+ *
59
+ * The reduced-motion rule does not shorten it, it removes it, so a reader who asked
60
+ * for no motion gets the panel at its resting height with nothing to wait for.
50
61
  */
51
62
  function CollapsibleContent({ className, ...props }) {
52
- return (_jsx(CollapsiblePrimitive.Panel, { "data-slot": "collapsible-content", className: cn('h-(--collapsible-panel-height) overflow-hidden text-sm', 'transition-[height] duration-base ease-out', 'data-[starting-style]:h-0 data-[ending-style]:h-0', '[&[hidden]:not([hidden="until-found"])]:hidden', className), ...props }));
63
+ return (_jsx(CollapsiblePrimitive.Panel, { "data-slot": "collapsible-content", className: cn('h-(--collapsible-panel-height) overflow-hidden text-sm', 'transition-[height] duration-slow ease-out', 'data-[starting-style]:h-0 data-[ending-style]:h-0', '[&[hidden]:not([hidden="until-found"])]:hidden', className), ...props }));
53
64
  }
54
65
  export { Collapsible, CollapsibleTrigger, CollapsibleContent };
@@ -113,7 +113,10 @@ export interface ComboboxProps {
113
113
  * open and explains that the query found nothing, because a combobox that closed
114
114
  * itself on a non-match tells the reader their keystroke broke the control. The
115
115
  * explanation is a prop, since the sentence is the caller's and the query is put
116
- * into it.
116
+ * into it. The message is a sibling of the listbox and not inside it, because a
117
+ * listbox owns `option` and `group` and nothing else, and the field's
118
+ * `aria-controls` points at the popup rather than at the listbox, because there is
119
+ * no listbox in that state and `aria-controls` is required on an expanded combobox.
117
120
  *
118
121
  * **The field keeps the caret for the whole interaction.** The arrows move a
119
122
  * highlight through the list and leave focus where it is, so a reader can keep
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../src/components/ui/combobox.tsx"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAA;IACb,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAA;IACb,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,mBAAmB;IACnB,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,gFAAgF;IAChF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC9C;;;;;;OAMG;IACH,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5D,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gEAAgE;IAChE,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,iBAAS,QAAQ,CAAC,EAChB,KAAK,EACL,KAAK,EACL,KAAK,EACL,YAAmB,EACnB,aAAa,EACb,KAAK,EACL,WAAW,EACX,IAAI,EACJ,WAAmB,EACnB,YAAY,EACZ,QAAgB,EAChB,QAAgB,EAChB,IAAI,EACJ,IAAI,EACJ,EAAE,EACF,kBAAkB,EAAE,WAAW,EAC/B,SAAS,GACV,EAAE,aAAa,+BAyTf;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
1
+ {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../src/components/ui/combobox.tsx"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAA;IACb,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAA;IACb,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,mBAAmB;IACnB,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,gFAAgF;IAChF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC9C;;;;;;OAMG;IACH,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5D,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,+DAA+D;IAC/D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gEAAgE;IAChE,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,iBAAS,QAAQ,CAAC,EAChB,KAAK,EACL,KAAK,EACL,KAAK,EACL,YAAmB,EACnB,aAAa,EACb,KAAK,EACL,WAAW,EACX,IAAI,EACJ,WAAmB,EACnB,YAAY,EACZ,QAAgB,EAChB,QAAgB,EAChB,IAAI,EACJ,IAAI,EACJ,EAAE,EACF,kBAAkB,EAAE,WAAW,EAC/B,SAAS,GACV,EAAE,aAAa,+BA6Uf;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}