@nanisoft/prism-ui 0.13.0 → 0.15.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 (943) 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 +12 -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 +8 -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 +124 -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 +25 -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 +3 -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 +18 -1
  538. package/dist/blocks/site-footer/site-footer.d.ts.map +1 -1
  539. package/dist/blocks/site-footer/site-footer.js +8 -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/story-01/index.d.ts +3 -0
  551. package/dist/blocks/story-01/index.d.ts.map +1 -0
  552. package/dist/blocks/story-01/index.js +1 -0
  553. package/dist/blocks/story-01/story.d.ts +153 -0
  554. package/dist/blocks/story-01/story.d.ts.map +1 -0
  555. package/dist/blocks/story-01/story.js +103 -0
  556. package/dist/blocks/summary-01/index.d.ts +3 -0
  557. package/dist/blocks/summary-01/index.d.ts.map +1 -0
  558. package/dist/blocks/summary-01/index.js +1 -0
  559. package/dist/blocks/summary-01/summary.d.ts +300 -0
  560. package/dist/blocks/summary-01/summary.d.ts.map +1 -0
  561. package/dist/blocks/summary-01/summary.js +174 -0
  562. package/dist/blocks/team-01/index.d.ts +3 -0
  563. package/dist/blocks/team-01/index.d.ts.map +1 -0
  564. package/dist/blocks/team-01/index.js +1 -0
  565. package/dist/blocks/team-01/team.d.ts +176 -0
  566. package/dist/blocks/team-01/team.d.ts.map +1 -0
  567. package/dist/blocks/team-01/team.js +117 -0
  568. package/dist/blocks/testimonial-01/index.d.ts +3 -0
  569. package/dist/blocks/testimonial-01/index.d.ts.map +1 -0
  570. package/dist/blocks/testimonial-01/index.js +1 -0
  571. package/dist/blocks/testimonial-01/testimonial.d.ts +173 -0
  572. package/dist/blocks/testimonial-01/testimonial.d.ts.map +1 -0
  573. package/dist/blocks/testimonial-01/testimonial.js +87 -0
  574. package/dist/blocks/todo-01/index.d.ts +3 -0
  575. package/dist/blocks/todo-01/index.d.ts.map +1 -0
  576. package/dist/blocks/todo-01/index.js +1 -0
  577. package/dist/blocks/todo-01/todo.d.ts +286 -0
  578. package/dist/blocks/todo-01/todo.d.ts.map +1 -0
  579. package/dist/blocks/todo-01/todo.js +149 -0
  580. package/dist/blocks/trend-01/index.d.ts +3 -0
  581. package/dist/blocks/trend-01/index.d.ts.map +1 -0
  582. package/dist/blocks/trend-01/index.js +1 -0
  583. package/dist/blocks/trend-01/trend.d.ts +184 -0
  584. package/dist/blocks/trend-01/trend.d.ts.map +1 -0
  585. package/dist/blocks/trend-01/trend.js +99 -0
  586. package/dist/blocks/trust-strip-01/index.d.ts +3 -0
  587. package/dist/blocks/trust-strip-01/index.d.ts.map +1 -0
  588. package/dist/blocks/trust-strip-01/index.js +1 -0
  589. package/dist/blocks/trust-strip-01/trust-strip-01.d.ts +139 -0
  590. package/dist/blocks/trust-strip-01/trust-strip-01.d.ts.map +1 -0
  591. package/dist/blocks/trust-strip-01/trust-strip-01.js +58 -0
  592. package/dist/blocks/two-factor-01/index.d.ts +3 -0
  593. package/dist/blocks/two-factor-01/index.d.ts.map +1 -0
  594. package/dist/blocks/two-factor-01/index.js +1 -0
  595. package/dist/blocks/two-factor-01/two-factor-01.d.ts +440 -0
  596. package/dist/blocks/two-factor-01/two-factor-01.d.ts.map +1 -0
  597. package/dist/blocks/two-factor-01/two-factor-01.js +273 -0
  598. package/dist/blocks/user-profile-01/index.d.ts +3 -0
  599. package/dist/blocks/user-profile-01/index.d.ts.map +1 -0
  600. package/dist/blocks/user-profile-01/index.js +1 -0
  601. package/dist/blocks/user-profile-01/user-profile-01.d.ts +258 -0
  602. package/dist/blocks/user-profile-01/user-profile-01.d.ts.map +1 -0
  603. package/dist/blocks/user-profile-01/user-profile-01.js +158 -0
  604. package/dist/blocks/verify-email-01/index.d.ts +3 -0
  605. package/dist/blocks/verify-email-01/index.d.ts.map +1 -0
  606. package/dist/blocks/verify-email-01/index.js +1 -0
  607. package/dist/blocks/verify-email-01/verify-email.d.ts +262 -0
  608. package/dist/blocks/verify-email-01/verify-email.d.ts.map +1 -0
  609. package/dist/blocks/verify-email-01/verify-email.js +190 -0
  610. package/dist/blocks/waitlist-01/index.d.ts +3 -0
  611. package/dist/blocks/waitlist-01/index.d.ts.map +1 -0
  612. package/dist/blocks/waitlist-01/index.js +1 -0
  613. package/dist/blocks/waitlist-01/waitlist.d.ts +254 -0
  614. package/dist/blocks/waitlist-01/waitlist.d.ts.map +1 -0
  615. package/dist/blocks/waitlist-01/waitlist.js +75 -0
  616. package/dist/catalog.d.ts.map +1 -1
  617. package/dist/catalog.js +1641 -1
  618. package/dist/components/index.d.ts +114 -0
  619. package/dist/components/index.d.ts.map +1 -1
  620. package/dist/components/index.js +134 -0
  621. package/dist/components/ui/accordion.d.ts.map +1 -1
  622. package/dist/components/ui/accordion.js +9 -2
  623. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  624. package/dist/components/ui/alert-dialog.js +22 -4
  625. package/dist/components/ui/announcement.d.ts +169 -0
  626. package/dist/components/ui/announcement.d.ts.map +1 -0
  627. package/dist/components/ui/announcement.js +123 -0
  628. package/dist/components/ui/avatar-group.d.ts +176 -0
  629. package/dist/components/ui/avatar-group.d.ts.map +1 -0
  630. package/dist/components/ui/avatar-group.js +135 -0
  631. package/dist/components/ui/billing-source.d.ts +293 -0
  632. package/dist/components/ui/billing-source.d.ts.map +1 -0
  633. package/dist/components/ui/billing-source.js +136 -0
  634. package/dist/components/ui/button.d.ts +16 -1
  635. package/dist/components/ui/button.d.ts.map +1 -1
  636. package/dist/components/ui/button.js +17 -2
  637. package/dist/components/ui/calendar.d.ts +9 -0
  638. package/dist/components/ui/calendar.d.ts.map +1 -1
  639. package/dist/components/ui/calendar.js +30 -2
  640. package/dist/components/ui/carousel.d.ts +7 -0
  641. package/dist/components/ui/carousel.d.ts.map +1 -1
  642. package/dist/components/ui/carousel.js +58 -1
  643. package/dist/components/ui/chart.d.ts +334 -0
  644. package/dist/components/ui/chart.d.ts.map +1 -0
  645. package/dist/components/ui/chart.js +369 -0
  646. package/dist/components/ui/checkbox.d.ts +10 -0
  647. package/dist/components/ui/checkbox.d.ts.map +1 -1
  648. package/dist/components/ui/checkbox.js +19 -1
  649. package/dist/components/ui/checklist.d.ts +262 -0
  650. package/dist/components/ui/checklist.d.ts.map +1 -0
  651. package/dist/components/ui/checklist.js +135 -0
  652. package/dist/components/ui/choice-card.d.ts +273 -0
  653. package/dist/components/ui/choice-card.d.ts.map +1 -0
  654. package/dist/components/ui/choice-card.js +138 -0
  655. package/dist/components/ui/code-block.d.ts +182 -0
  656. package/dist/components/ui/code-block.d.ts.map +1 -0
  657. package/dist/components/ui/code-block.js +108 -0
  658. package/dist/components/ui/cohort-grid.d.ts +210 -0
  659. package/dist/components/ui/cohort-grid.d.ts.map +1 -0
  660. package/dist/components/ui/cohort-grid.js +202 -0
  661. package/dist/components/ui/collapsible.d.ts +11 -0
  662. package/dist/components/ui/collapsible.d.ts.map +1 -1
  663. package/dist/components/ui/collapsible.js +13 -2
  664. package/dist/components/ui/combobox.d.ts +4 -1
  665. package/dist/components/ui/combobox.d.ts.map +1 -1
  666. package/dist/components/ui/combobox.js +20 -4
  667. package/dist/components/ui/command-palette.d.ts +11 -0
  668. package/dist/components/ui/command-palette.d.ts.map +1 -1
  669. package/dist/components/ui/command-palette.js +49 -3
  670. package/dist/components/ui/contribution-graph.d.ts +156 -0
  671. package/dist/components/ui/contribution-graph.d.ts.map +1 -0
  672. package/dist/components/ui/contribution-graph.js +170 -0
  673. package/dist/components/ui/creatable-combobox.d.ts +153 -0
  674. package/dist/components/ui/creatable-combobox.d.ts.map +1 -0
  675. package/dist/components/ui/creatable-combobox.js +285 -0
  676. package/dist/components/ui/data-toolbar.d.ts +133 -0
  677. package/dist/components/ui/data-toolbar.d.ts.map +1 -0
  678. package/dist/components/ui/data-toolbar.js +67 -0
  679. package/dist/components/ui/date-picker.d.ts.map +1 -1
  680. package/dist/components/ui/date-picker.js +9 -1
  681. package/dist/components/ui/dialog.d.ts +31 -2
  682. package/dist/components/ui/dialog.d.ts.map +1 -1
  683. package/dist/components/ui/dialog.js +40 -6
  684. package/dist/components/ui/drawer.d.ts +270 -0
  685. package/dist/components/ui/drawer.d.ts.map +1 -0
  686. package/dist/components/ui/drawer.js +241 -0
  687. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  688. package/dist/components/ui/dropdown-menu.js +6 -1
  689. package/dist/components/ui/dropzone.d.ts +147 -0
  690. package/dist/components/ui/dropzone.d.ts.map +1 -0
  691. package/dist/components/ui/dropzone.js +141 -0
  692. package/dist/components/ui/emoji-picker.d.ts +328 -0
  693. package/dist/components/ui/emoji-picker.d.ts.map +1 -0
  694. package/dist/components/ui/emoji-picker.js +278 -0
  695. package/dist/components/ui/file-upload.d.ts +152 -0
  696. package/dist/components/ui/file-upload.d.ts.map +1 -0
  697. package/dist/components/ui/file-upload.js +101 -0
  698. package/dist/components/ui/filter-panel.d.ts +164 -0
  699. package/dist/components/ui/filter-panel.d.ts.map +1 -0
  700. package/dist/components/ui/filter-panel.js +91 -0
  701. package/dist/components/ui/form-dialog.d.ts +257 -0
  702. package/dist/components/ui/form-dialog.d.ts.map +1 -0
  703. package/dist/components/ui/form-dialog.js +176 -0
  704. package/dist/components/ui/form-wizard.d.ts +251 -0
  705. package/dist/components/ui/form-wizard.d.ts.map +1 -0
  706. package/dist/components/ui/form-wizard.js +151 -0
  707. package/dist/components/ui/image-list-field.d.ts +232 -0
  708. package/dist/components/ui/image-list-field.d.ts.map +1 -0
  709. package/dist/components/ui/image-list-field.js +168 -0
  710. package/dist/components/ui/image-zoom.d.ts +164 -0
  711. package/dist/components/ui/image-zoom.d.ts.map +1 -0
  712. package/dist/components/ui/image-zoom.js +169 -0
  713. package/dist/components/ui/intensity-grid.d.ts +270 -0
  714. package/dist/components/ui/intensity-grid.d.ts.map +1 -0
  715. package/dist/components/ui/intensity-grid.js +211 -0
  716. package/dist/components/ui/lifecycle-button.d.ts +276 -0
  717. package/dist/components/ui/lifecycle-button.d.ts.map +1 -0
  718. package/dist/components/ui/lifecycle-button.js +144 -0
  719. package/dist/components/ui/lightbox.d.ts +165 -0
  720. package/dist/components/ui/lightbox.d.ts.map +1 -0
  721. package/dist/components/ui/lightbox.js +130 -0
  722. package/dist/components/ui/list-panel.d.ts +288 -0
  723. package/dist/components/ui/list-panel.d.ts.map +1 -0
  724. package/dist/components/ui/list-panel.js +139 -0
  725. package/dist/components/ui/mega-menu.d.ts +244 -0
  726. package/dist/components/ui/mega-menu.d.ts.map +1 -0
  727. package/dist/components/ui/mega-menu.js +97 -0
  728. package/dist/components/ui/menubar.d.ts +9 -0
  729. package/dist/components/ui/menubar.d.ts.map +1 -1
  730. package/dist/components/ui/menubar.js +10 -1
  731. package/dist/components/ui/metric.d.ts +123 -0
  732. package/dist/components/ui/metric.d.ts.map +1 -0
  733. package/dist/components/ui/metric.js +68 -0
  734. package/dist/components/ui/mini-calendar.d.ts +143 -0
  735. package/dist/components/ui/mini-calendar.d.ts.map +1 -0
  736. package/dist/components/ui/mini-calendar.js +261 -0
  737. package/dist/components/ui/mode-toggle.d.ts +102 -0
  738. package/dist/components/ui/mode-toggle.d.ts.map +1 -0
  739. package/dist/components/ui/mode-toggle.js +83 -0
  740. package/dist/components/ui/money-field.d.ts +200 -0
  741. package/dist/components/ui/money-field.d.ts.map +1 -0
  742. package/dist/components/ui/money-field.js +215 -0
  743. package/dist/components/ui/multi-combobox.d.ts +181 -0
  744. package/dist/components/ui/multi-combobox.d.ts.map +1 -0
  745. package/dist/components/ui/multi-combobox.js +297 -0
  746. package/dist/components/ui/native-select.d.ts.map +1 -1
  747. package/dist/components/ui/native-select.js +8 -1
  748. package/dist/components/ui/navigation-menu.d.ts +7 -0
  749. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  750. package/dist/components/ui/navigation-menu.js +8 -1
  751. package/dist/components/ui/nested-tabs.d.ts +188 -0
  752. package/dist/components/ui/nested-tabs.d.ts.map +1 -0
  753. package/dist/components/ui/nested-tabs.js +75 -0
  754. package/dist/components/ui/number-field.d.ts +40 -7
  755. package/dist/components/ui/number-field.d.ts.map +1 -1
  756. package/dist/components/ui/number-field.js +37 -7
  757. package/dist/components/ui/overflow-actions.d.ts +169 -0
  758. package/dist/components/ui/overflow-actions.d.ts.map +1 -0
  759. package/dist/components/ui/overflow-actions.js +266 -0
  760. package/dist/components/ui/pack-swatch.d.ts +177 -0
  761. package/dist/components/ui/pack-swatch.d.ts.map +1 -0
  762. package/dist/components/ui/pack-swatch.js +117 -0
  763. package/dist/components/ui/pack-switcher.d.ts +221 -0
  764. package/dist/components/ui/pack-switcher.d.ts.map +1 -0
  765. package/dist/components/ui/pack-switcher.js +94 -0
  766. package/dist/components/ui/pagination.d.ts +22 -0
  767. package/dist/components/ui/pagination.d.ts.map +1 -1
  768. package/dist/components/ui/pagination.js +23 -1
  769. package/dist/components/ui/password-field.d.ts +122 -0
  770. package/dist/components/ui/password-field.d.ts.map +1 -0
  771. package/dist/components/ui/password-field.js +69 -0
  772. package/dist/components/ui/pill.d.ts +172 -0
  773. package/dist/components/ui/pill.d.ts.map +1 -0
  774. package/dist/components/ui/pill.js +102 -0
  775. package/dist/components/ui/platform-modifier-key.d.ts +129 -0
  776. package/dist/components/ui/platform-modifier-key.d.ts.map +1 -0
  777. package/dist/components/ui/platform-modifier-key.js +125 -0
  778. package/dist/components/ui/popover.d.ts.map +1 -1
  779. package/dist/components/ui/popover.js +8 -1
  780. package/dist/components/ui/price.d.ts +144 -0
  781. package/dist/components/ui/price.d.ts.map +1 -0
  782. package/dist/components/ui/price.js +107 -0
  783. package/dist/components/ui/progress.d.ts +55 -1
  784. package/dist/components/ui/progress.d.ts.map +1 -1
  785. package/dist/components/ui/progress.js +110 -2
  786. package/dist/components/ui/prompt-composer.d.ts +302 -0
  787. package/dist/components/ui/prompt-composer.d.ts.map +1 -0
  788. package/dist/components/ui/prompt-composer.js +145 -0
  789. package/dist/components/ui/proportion-list.d.ts +188 -0
  790. package/dist/components/ui/proportion-list.d.ts.map +1 -0
  791. package/dist/components/ui/proportion-list.js +134 -0
  792. package/dist/components/ui/prose.d.ts +23 -0
  793. package/dist/components/ui/prose.d.ts.map +1 -1
  794. package/dist/components/ui/prose.js +30 -1
  795. package/dist/components/ui/radio-group.d.ts +7 -0
  796. package/dist/components/ui/radio-group.d.ts.map +1 -1
  797. package/dist/components/ui/radio-group.js +8 -1
  798. package/dist/components/ui/range-field.d.ts +158 -0
  799. package/dist/components/ui/range-field.d.ts.map +1 -0
  800. package/dist/components/ui/range-field.js +208 -0
  801. package/dist/components/ui/relative-time.d.ts +116 -0
  802. package/dist/components/ui/relative-time.d.ts.map +1 -0
  803. package/dist/components/ui/relative-time.js +67 -0
  804. package/dist/components/ui/reorderable-list.d.ts +262 -0
  805. package/dist/components/ui/reorderable-list.d.ts.map +1 -0
  806. package/dist/components/ui/reorderable-list.js +325 -0
  807. package/dist/components/ui/repeatable-rows.d.ts +241 -0
  808. package/dist/components/ui/repeatable-rows.d.ts.map +1 -0
  809. package/dist/components/ui/repeatable-rows.js +221 -0
  810. package/dist/components/ui/repo-stars.d.ts +165 -0
  811. package/dist/components/ui/repo-stars.d.ts.map +1 -0
  812. package/dist/components/ui/repo-stars.js +92 -0
  813. package/dist/components/ui/resizable.d.ts +24 -0
  814. package/dist/components/ui/resizable.d.ts.map +1 -1
  815. package/dist/components/ui/resizable.js +96 -4
  816. package/dist/components/ui/search-dialog.d.ts +40 -5
  817. package/dist/components/ui/search-dialog.d.ts.map +1 -1
  818. package/dist/components/ui/search-dialog.js +94 -16
  819. package/dist/components/ui/search-field.d.ts +159 -0
  820. package/dist/components/ui/search-field.d.ts.map +1 -0
  821. package/dist/components/ui/search-field.js +98 -0
  822. package/dist/components/ui/section.d.ts +108 -1
  823. package/dist/components/ui/section.d.ts.map +1 -1
  824. package/dist/components/ui/section.js +109 -3
  825. package/dist/components/ui/select.d.ts.map +1 -1
  826. package/dist/components/ui/select.js +9 -1
  827. package/dist/components/ui/selection-toolbar.d.ts +166 -0
  828. package/dist/components/ui/selection-toolbar.d.ts.map +1 -0
  829. package/dist/components/ui/selection-toolbar.js +139 -0
  830. package/dist/components/ui/sidebar.d.ts +29 -0
  831. package/dist/components/ui/sidebar.d.ts.map +1 -1
  832. package/dist/components/ui/sidebar.js +35 -2
  833. package/dist/components/ui/signal-field.d.ts.map +1 -1
  834. package/dist/components/ui/signal-field.js +1 -1
  835. package/dist/components/ui/slider.d.ts +7 -0
  836. package/dist/components/ui/slider.d.ts.map +1 -1
  837. package/dist/components/ui/slider.js +32 -1
  838. package/dist/components/ui/sparkline.d.ts +117 -0
  839. package/dist/components/ui/sparkline.d.ts.map +1 -0
  840. package/dist/components/ui/sparkline.js +113 -0
  841. package/dist/components/ui/spinner.d.ts.map +1 -1
  842. package/dist/components/ui/spinner.js +13 -0
  843. package/dist/components/ui/split-button.d.ts +207 -0
  844. package/dist/components/ui/split-button.d.ts.map +1 -0
  845. package/dist/components/ui/split-button.js +75 -0
  846. package/dist/components/ui/stateful-table.d.ts +345 -0
  847. package/dist/components/ui/stateful-table.d.ts.map +1 -0
  848. package/dist/components/ui/stateful-table.js +169 -0
  849. package/dist/components/ui/status.d.ts +99 -0
  850. package/dist/components/ui/status.d.ts.map +1 -0
  851. package/dist/components/ui/status.js +63 -0
  852. package/dist/components/ui/stepper.d.ts +155 -0
  853. package/dist/components/ui/stepper.d.ts.map +1 -0
  854. package/dist/components/ui/stepper.js +83 -0
  855. package/dist/components/ui/steps.d.ts +141 -0
  856. package/dist/components/ui/steps.d.ts.map +1 -0
  857. package/dist/components/ui/steps.js +128 -0
  858. package/dist/components/ui/switch.d.ts +8 -0
  859. package/dist/components/ui/switch.d.ts.map +1 -1
  860. package/dist/components/ui/switch.js +12 -1
  861. package/dist/components/ui/tabs.d.ts +21 -2
  862. package/dist/components/ui/tabs.d.ts.map +1 -1
  863. package/dist/components/ui/tabs.js +23 -4
  864. package/dist/components/ui/tag-group.d.ts +154 -0
  865. package/dist/components/ui/tag-group.d.ts.map +1 -0
  866. package/dist/components/ui/tag-group.js +111 -0
  867. package/dist/components/ui/task-progress.d.ts +149 -0
  868. package/dist/components/ui/task-progress.d.ts.map +1 -0
  869. package/dist/components/ui/task-progress.js +110 -0
  870. package/dist/components/ui/text-format-toolbar.d.ts +211 -0
  871. package/dist/components/ui/text-format-toolbar.d.ts.map +1 -0
  872. package/dist/components/ui/text-format-toolbar.js +186 -0
  873. package/dist/components/ui/timeline.d.ts.map +1 -1
  874. package/dist/components/ui/timeline.js +10 -1
  875. package/dist/components/ui/toast.d.ts +32 -10
  876. package/dist/components/ui/toast.d.ts.map +1 -1
  877. package/dist/components/ui/toast.js +150 -47
  878. package/dist/components/ui/toggle-group.d.ts +14 -5
  879. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  880. package/dist/components/ui/toggle-group.js +15 -1
  881. package/dist/components/ui/toggle.d.ts.map +1 -1
  882. package/dist/components/ui/toggle.js +9 -1
  883. package/dist/components/ui/tree.d.ts +8 -0
  884. package/dist/components/ui/tree.d.ts.map +1 -1
  885. package/dist/components/ui/tree.js +92 -13
  886. package/dist/components/ui/video-player.d.ts +236 -0
  887. package/dist/components/ui/video-player.d.ts.map +1 -0
  888. package/dist/components/ui/video-player.js +72 -0
  889. package/dist/fonts/inter-latin-400-italic.woff2 +0 -0
  890. package/dist/index.d.ts +112 -0
  891. package/dist/index.d.ts.map +1 -1
  892. package/dist/index.js +72 -0
  893. package/dist/lib/utils.d.ts +29 -0
  894. package/dist/lib/utils.d.ts.map +1 -1
  895. package/dist/lib/utils.js +35 -0
  896. package/dist/live/index.d.ts +10 -3
  897. package/dist/live/index.d.ts.map +1 -1
  898. package/dist/live/index.js +12 -3
  899. package/dist/live/run-stream-01/run-stream.js +4 -4
  900. package/dist/live/tool-ledger-01/index.d.ts +3 -0
  901. package/dist/live/tool-ledger-01/index.d.ts.map +1 -0
  902. package/dist/live/tool-ledger-01/index.js +1 -0
  903. package/dist/live/tool-ledger-01/tool-ledger.d.ts +348 -0
  904. package/dist/live/tool-ledger-01/tool-ledger.d.ts.map +1 -0
  905. package/dist/live/tool-ledger-01/tool-ledger.js +245 -0
  906. package/dist/pages/about-page/index.d.ts +306 -0
  907. package/dist/pages/about-page/index.d.ts.map +1 -0
  908. package/dist/pages/about-page/index.js +161 -0
  909. package/dist/pages/careers-page/index.d.ts +288 -0
  910. package/dist/pages/careers-page/index.d.ts.map +1 -0
  911. package/dist/pages/careers-page/index.js +182 -0
  912. package/dist/pages/changelog-page/index.d.ts +255 -0
  913. package/dist/pages/changelog-page/index.d.ts.map +1 -0
  914. package/dist/pages/changelog-page/index.js +86 -0
  915. package/dist/pages/contact-page/index.d.ts +261 -0
  916. package/dist/pages/contact-page/index.d.ts.map +1 -0
  917. package/dist/pages/contact-page/index.js +136 -0
  918. package/dist/pages/docs-shell/docs-shell.d.ts +8 -0
  919. package/dist/pages/docs-shell/docs-shell.d.ts.map +1 -1
  920. package/dist/pages/docs-shell/docs-shell.js +24 -7
  921. package/dist/pages/error-page/index.d.ts +188 -0
  922. package/dist/pages/error-page/index.d.ts.map +1 -0
  923. package/dist/pages/error-page/index.js +98 -0
  924. package/dist/pages/index.d.ts +10 -0
  925. package/dist/pages/index.d.ts.map +1 -1
  926. package/dist/pages/index.js +14 -0
  927. package/dist/pages/legal-page/index.d.ts +194 -0
  928. package/dist/pages/legal-page/index.d.ts.map +1 -0
  929. package/dist/pages/legal-page/index.js +99 -0
  930. package/dist/pages/onboarding-page/index.d.ts +199 -0
  931. package/dist/pages/onboarding-page/index.d.ts.map +1 -0
  932. package/dist/pages/onboarding-page/index.js +71 -0
  933. package/dist/pages/pricing-page/index.d.ts +286 -0
  934. package/dist/pages/pricing-page/index.d.ts.map +1 -0
  935. package/dist/pages/pricing-page/index.js +139 -0
  936. package/dist/pages/search-page/index.d.ts +305 -0
  937. package/dist/pages/search-page/index.d.ts.map +1 -0
  938. package/dist/pages/search-page/index.js +142 -0
  939. package/dist/pages/status-page/index.d.ts +366 -0
  940. package/dist/pages/status-page/index.d.ts.map +1 -0
  941. package/dist/pages/status-page/index.js +136 -0
  942. package/dist/styles.css +1003 -55
  943. package/package.json +9 -3
@@ -0,0 +1,251 @@
1
+ import { type ReactNode } from 'react';
2
+ /**
3
+ * One thing wrong with a step, in the caller's own words.
4
+ *
5
+ * `field` is the `id` of the control the message belongs to and it is what makes a
6
+ * step's refusal actionable in the same way `FormDialog`'s summary is: an entry a
7
+ * reader cannot take to the control is a sentence they have to match by eye against
8
+ * a form they then have to read a second time.
9
+ */
10
+ export type FormWizardIssue = {
11
+ /** The `id` of the control this message belongs to. */
12
+ field: string;
13
+ /** The message, in the product's own words. */
14
+ message: string;
15
+ };
16
+ /**
17
+ * One step of a sequence a reader passes through in order.
18
+ *
19
+ * `id` is required because a step's record is what a caller keys their own per-step
20
+ * state on, and because a sequence whose entries have no identity is a sequence
21
+ * whose saved answers have nowhere to live.
22
+ */
23
+ export type FormWizardStep = {
24
+ /** A stable key for the step. */
25
+ id: string;
26
+ /**
27
+ * The step's name, in the words a reader would use about it in conversation.
28
+ *
29
+ * A `string` and not a node, and the reason is the rail: the same word is drawn
30
+ * in `Steps` at a width a step gets in a six-step row, and `Steps` states that a
31
+ * label has to survive that width. So one word serves the rail and the heading,
32
+ * which is also the right way round, because a rail saying "Billing details" and a
33
+ * heading saying `<strong>Billing</strong> details` is two names for one step.
34
+ */
35
+ label: string;
36
+ /** One line under the name saying what this step asks for, in plain words. */
37
+ description?: string;
38
+ /** The step's own controls. */
39
+ children?: ReactNode;
40
+ /**
41
+ * Called when the reader tries to leave this step forwards, given the step's own
42
+ * element.
43
+ *
44
+ * Optional per step rather than a rule on the whole sequence, and the reason is
45
+ * that a step which asks for nothing has nothing to refuse. A checkout's payment
46
+ * step validates and its review step does not, and one `validate` on the Component
47
+ * would have the caller write a branch per step to express what the absence of one
48
+ * already says.
49
+ *
50
+ * Returning issues refuses the move and nothing else. The caller is expected to
51
+ * set the step's own error state from the same source that produced them, because
52
+ * this Component cannot see the caller's controls and cannot mark them invalid.
53
+ */
54
+ validate?: (form: HTMLFormElement) => readonly FormWizardIssue[];
55
+ };
56
+ /**
57
+ * The props a FormWizard accepts.
58
+ *
59
+ * Two halves, and the split is the argument. The *progress rail* is `Steps`, and it
60
+ * is composed rather than redrawn: it is an ordered indicator of position, it
61
+ * derives three marks from one number, and it throws when the marks disagree, which
62
+ * is a stronger guarantee than any arrangement drawn here. The *gate* is this
63
+ * Component's own, and it exists because a rail that shows progress and a sequence
64
+ * that gates it are different jobs, and upstream ships the second as the first with
65
+ * the decision left out.
66
+ */
67
+ export interface FormWizardProps {
68
+ /**
69
+ * The steps, in order.
70
+ *
71
+ * Required, and the order is the claim: a reader told these are steps is told
72
+ * there is a route through them, so a list passed in an order the process does not
73
+ * have is a wrong diagram rather than a layout problem. The same constraint
74
+ * `Steps` states, for the same reason.
75
+ */
76
+ steps: readonly FormWizardStep[];
77
+ /**
78
+ * The step the reader is on, counting from zero.
79
+ *
80
+ * Controlled and clamped, and clamped rather than optional for the reason
81
+ * `Steps` gives: a sequence with no position is a list and a list is a different
82
+ * Component. The clamp makes an off-by-one harmless, where the alternative was a
83
+ * throw on a value that is only wrong by one.
84
+ */
85
+ current: number;
86
+ /**
87
+ * Called when the reader moves, given the step's index and which way they asked.
88
+ *
89
+ * Required, and the second argument is there because forward and back are not the
90
+ * same move and a caller whose rules differ by direction has to be able to tell
91
+ * them apart without reading the index. A refused forward press arrives here as
92
+ * nothing at all, so a caller who wants to know their validation ran hears it from
93
+ * the refusal list rather than from this callback.
94
+ */
95
+ onStepChange: (index: number, direction: 'forward' | 'back') => void;
96
+ /**
97
+ * The sequence's own rules, given the step the reader is on.
98
+ *
99
+ * Required and separate from each step's own `validate`, because there are two
100
+ * questions and one of them is not about a step. A step's rules ask whether *this*
101
+ * step is complete. This asks whether the sequence as a whole may be submitted,
102
+ * which is a check no individual step can make: a review step has nothing to
103
+ * validate locally and the whole sequence may still be un-submittable because the
104
+ * terms were not accepted three steps ago.
105
+ */
106
+ validate?: (index: number, form: HTMLFormElement) => readonly FormWizardIssue[];
107
+ /**
108
+ * The label of the control that goes back.
109
+ *
110
+ * Required and never defaulted, and the one label on this Component that is shown
111
+ * at every step: see the JSDoc for why back is the one direction a gate never
112
+ * closes.
113
+ */
114
+ backLabel: ReactNode;
115
+ /**
116
+ * The label of the control that goes forward, on every step but the last.
117
+ *
118
+ * Required, and separate from the last step's label because "Next" and "Finish"
119
+ * are two different claims about what the press does, and a sequence whose last
120
+ * control says "Next" has not told the reader it is the end.
121
+ */
122
+ nextLabel: ReactNode;
123
+ /**
124
+ * The label of the control on the last step, which submits rather than advances.
125
+ *
126
+ * Required, and a separate prop rather than a computed one because both labels are
127
+ * a product's two words and this package knows neither of them.
128
+ */
129
+ finishLabel: ReactNode;
130
+ /**
131
+ * The heading above the refusal.
132
+ *
133
+ * Required, and a heading rather than a sentence because the refusal list is a
134
+ * focus target and a reader who lands on it needs to know what they have landed on
135
+ * before they read the list.
136
+ */
137
+ blockedLabel: ReactNode;
138
+ /**
139
+ * The accessible name of the progress rail.
140
+ *
141
+ * Required, and the sequence's noun rather than this Component's: a page with a
142
+ * checkout and an onboarding wizard on it has two rails, and a reader moving
143
+ * between them is told nothing about which they are in.
144
+ */
145
+ progressLabel: string;
146
+ /**
147
+ * The accessible name of one control in the refusal list, given the field the
148
+ * issue belongs to.
149
+ *
150
+ * Required, and a function of the field rather than of the message for the reason
151
+ * every readable string here is one. It is also what lets an entry name the
152
+ * *control* rather than repeat the sentence beside it.
153
+ */
154
+ issueLabel: (field: string) => string;
155
+ /**
156
+ * The words for this sequence's keyboard model, read once when the reader lands on
157
+ * the step's region.
158
+ *
159
+ * Required, because a gated sequence is a place a reader can get stuck and the one
160
+ * thing they need while stuck is that going back is always allowed. One sentence
161
+ * for the whole sequence, since it is the same sentence at every step.
162
+ */
163
+ instructionsLabel: string;
164
+ /** The reader's own slot, for anything above or below the step's controls. */
165
+ children?: ReactNode;
166
+ /** Layout only. Changing a Prism-owned visual property from here is prohibited. */
167
+ className?: string;
168
+ }
169
+ /**
170
+ * A sequence of steps where each one gates the way forward and none of them gates
171
+ * the way back.
172
+ *
173
+ * **This is not `Steps`, and the difference is a check rather than a drawing.**
174
+ * `Steps` is an ordered indicator of where a reader is: it derives three marks from
175
+ * one number, it marks the current step with `aria-current`, and it throws when the
176
+ * marks disagree, which is a stronger guarantee than any arrangement drawn here. It
177
+ * has no opinion at all about whether a reader may move, because showing a reader
178
+ * their position and deciding whether they may leave it are different jobs, and
179
+ * upstream ships the second as the first with the decision left out. A caller who
180
+ * wants a rail composes `Steps`; a caller who reaches for `Tabs` has picked the wrong
181
+ * Component, because a tab list is peer views of one subject and a wizard's steps are
182
+ * a route through it.
183
+ *
184
+ * **Back is always allowed, and that asymmetry is the whole Component.** Forward is
185
+ * gated, and the gate is the point: a wizard exists to stop a reader submitting a
186
+ * sequence with a hole in it, and a step's rules are how it knows there is one. Back
187
+ * is not, for a reason that is about the reader rather than about the data. A gated
188
+ * back control traps a reader in the very step they opened the wizard to escape:
189
+ * they have opened step two, found it asks for something they do not have, and
190
+ * pressing back does nothing either. No arrangement of the data makes that
191
+ * acceptable and the fix is not a better error message, it is that going back is
192
+ * always available. So the back control is drawn, named and operable at every step
193
+ * including the first, where it is inert rather than absent: a control that appears
194
+ * and disappears moves the row a reader is aiming at, and its absence on step one
195
+ * would be a claim that there is nothing before here, which is true and not worth a
196
+ * layout shift to say. On the first step it is `aria-disabled` rather than natively
197
+ * `disabled`, for the reason `LifecycleButton` gives: a natively disabled control
198
+ * leaves the tab order, so a reader tabs onto where it was, presses Enter and nothing
199
+ * happens with no announcement to explain it.
200
+ *
201
+ * **A refused forward move takes focus to the refusal and announces nothing else.**
202
+ * The same reasoning as `FormDialog`, and the two are kept consistent on purpose: a
203
+ * refusal is announced once, by a focus target the reader lands on and can read
204
+ * from, rather than by an alert *and* a focus move, which is one refusal heard twice
205
+ * in two voices. The list is a list of anchors, each carrying the field's own name
206
+ * with the message beneath it. Focus moves once per refusal rather than on every
207
+ * render, so a reader who tabs away and comes back is not dragged onto it again, and
208
+ * the Component holds no live region at all for the same reason: a permanently
209
+ * mounted one would announce the refusal a second time when the move commits.
210
+ *
211
+ * **The gate is the caller's and the drawing is Prism's.** Each step's own
212
+ * `validate` decides whether its step may be left forwards, and this Component
213
+ * refuses the move and draws what came back. It never marks a control invalid and
214
+ * never shows a message under one, because it cannot see the caller's form: the
215
+ * caller's fields are their own `Field`s and their own `Input`s, and reaching into
216
+ * them would be the override path this package refuses everywhere else. The cost is
217
+ * named rather than hidden: a caller has to render each message under its control as
218
+ * well as in the refusal list, and a caller who does only the first has a list a
219
+ * reader can follow and controls that do not say why. That is two renderings of one
220
+ * sentence, and it is the price of the caller owning the form.
221
+ *
222
+ * **Forward is gated twice over and the order matters.** The step's own rules run
223
+ * first, because they are about the reader's answers, and the sequence's own rules
224
+ * second, because they are about the submission. A step that fails its own rules
225
+ * never reaches the sequence's, which is what stops a reader being told their card
226
+ * was declined when the field they left empty was the problem.
227
+ *
228
+ * **The last step's control is a different prop and not a computed label.** `next`
229
+ * and `finish` are two claims about what the press does, and a sequence whose last
230
+ * control says "Next" has not told the reader it is the end, while one that says
231
+ * "Finish" and then opens step four has lied about something a reader will act on.
232
+ * Both are required and neither has a default, because this package does not know
233
+ * whether the product's word is "Continue", "Weiter" or "Siguiente".
234
+ *
235
+ * **`Steps` is composed at the position the rail belongs rather than inside a
236
+ * wrapper.** The reader sees the rail above the step, the step's own controls in the
237
+ * middle and the two directions below, and a wizard whose rail is somewhere else is a
238
+ * wizard whose progress is somewhere else in the reader's eye. The rail reads the
239
+ * same index the navigation moves, so the two cannot disagree about which step is
240
+ * current.
241
+ *
242
+ * **It is a client Component**, because a gate is a decision taken after the reader
243
+ * acts and the decision has to be able to refuse, and because every one of its value
244
+ * props is a function the caller hands it, which is a client-to-client boundary
245
+ * wherever it is written. What that costs is the price of every client control: a
246
+ * server Component may render one step's controls once, and what it may not do is let
247
+ * the reader move between them.
248
+ */
249
+ declare function FormWizard({ steps, current, onStepChange, validate, backLabel, nextLabel, finishLabel, blockedLabel, progressLabel, issueLabel, instructionsLabel, children, className, }: FormWizardProps): import("react").JSX.Element;
250
+ export { FormWizard };
251
+ //# sourceMappingURL=form-wizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-wizard.d.ts","sourceRoot":"","sources":["../../../src/components/ui/form-wizard.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAM1E;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAA;IACV;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,SAAS,eAAe,EAAE,CAAA;CACjE,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;OAOG;IACH,KAAK,EAAE,SAAS,cAAc,EAAE,CAAA;IAChC;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;;;OAQG;IACH,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,KAAK,IAAI,CAAA;IACpE;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,KAAK,SAAS,eAAe,EAAE,CAAA;IAC/E;;;;;;OAMG;IACH,SAAS,EAAE,SAAS,CAAA;IACpB;;;;;;OAMG;IACH,SAAS,EAAE,SAAS,CAAA;IACpB;;;;;OAKG;IACH,WAAW,EAAE,SAAS,CAAA;IACtB;;;;;;OAMG;IACH,YAAY,EAAE,SAAS,CAAA;IACvB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;;;;;;OAOG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC;;;;;;;OAOG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,iBAAS,UAAU,CAAC,EAClB,KAAK,EACL,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,SAAS,GACV,EAAE,eAAe,+BA+NjB;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,151 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';
4
+ import { useEffect, useId, useRef, useState } from 'react';
5
+ import { Button } from './button.js';
6
+ import { Steps } from './steps.js';
7
+ import { cn } from '../../lib/utils.js';
8
+ /**
9
+ * A sequence of steps where each one gates the way forward and none of them gates
10
+ * the way back.
11
+ *
12
+ * **This is not `Steps`, and the difference is a check rather than a drawing.**
13
+ * `Steps` is an ordered indicator of where a reader is: it derives three marks from
14
+ * one number, it marks the current step with `aria-current`, and it throws when the
15
+ * marks disagree, which is a stronger guarantee than any arrangement drawn here. It
16
+ * has no opinion at all about whether a reader may move, because showing a reader
17
+ * their position and deciding whether they may leave it are different jobs, and
18
+ * upstream ships the second as the first with the decision left out. A caller who
19
+ * wants a rail composes `Steps`; a caller who reaches for `Tabs` has picked the wrong
20
+ * Component, because a tab list is peer views of one subject and a wizard's steps are
21
+ * a route through it.
22
+ *
23
+ * **Back is always allowed, and that asymmetry is the whole Component.** Forward is
24
+ * gated, and the gate is the point: a wizard exists to stop a reader submitting a
25
+ * sequence with a hole in it, and a step's rules are how it knows there is one. Back
26
+ * is not, for a reason that is about the reader rather than about the data. A gated
27
+ * back control traps a reader in the very step they opened the wizard to escape:
28
+ * they have opened step two, found it asks for something they do not have, and
29
+ * pressing back does nothing either. No arrangement of the data makes that
30
+ * acceptable and the fix is not a better error message, it is that going back is
31
+ * always available. So the back control is drawn, named and operable at every step
32
+ * including the first, where it is inert rather than absent: a control that appears
33
+ * and disappears moves the row a reader is aiming at, and its absence on step one
34
+ * would be a claim that there is nothing before here, which is true and not worth a
35
+ * layout shift to say. On the first step it is `aria-disabled` rather than natively
36
+ * `disabled`, for the reason `LifecycleButton` gives: a natively disabled control
37
+ * leaves the tab order, so a reader tabs onto where it was, presses Enter and nothing
38
+ * happens with no announcement to explain it.
39
+ *
40
+ * **A refused forward move takes focus to the refusal and announces nothing else.**
41
+ * The same reasoning as `FormDialog`, and the two are kept consistent on purpose: a
42
+ * refusal is announced once, by a focus target the reader lands on and can read
43
+ * from, rather than by an alert *and* a focus move, which is one refusal heard twice
44
+ * in two voices. The list is a list of anchors, each carrying the field's own name
45
+ * with the message beneath it. Focus moves once per refusal rather than on every
46
+ * render, so a reader who tabs away and comes back is not dragged onto it again, and
47
+ * the Component holds no live region at all for the same reason: a permanently
48
+ * mounted one would announce the refusal a second time when the move commits.
49
+ *
50
+ * **The gate is the caller's and the drawing is Prism's.** Each step's own
51
+ * `validate` decides whether its step may be left forwards, and this Component
52
+ * refuses the move and draws what came back. It never marks a control invalid and
53
+ * never shows a message under one, because it cannot see the caller's form: the
54
+ * caller's fields are their own `Field`s and their own `Input`s, and reaching into
55
+ * them would be the override path this package refuses everywhere else. The cost is
56
+ * named rather than hidden: a caller has to render each message under its control as
57
+ * well as in the refusal list, and a caller who does only the first has a list a
58
+ * reader can follow and controls that do not say why. That is two renderings of one
59
+ * sentence, and it is the price of the caller owning the form.
60
+ *
61
+ * **Forward is gated twice over and the order matters.** The step's own rules run
62
+ * first, because they are about the reader's answers, and the sequence's own rules
63
+ * second, because they are about the submission. A step that fails its own rules
64
+ * never reaches the sequence's, which is what stops a reader being told their card
65
+ * was declined when the field they left empty was the problem.
66
+ *
67
+ * **The last step's control is a different prop and not a computed label.** `next`
68
+ * and `finish` are two claims about what the press does, and a sequence whose last
69
+ * control says "Next" has not told the reader it is the end, while one that says
70
+ * "Finish" and then opens step four has lied about something a reader will act on.
71
+ * Both are required and neither has a default, because this package does not know
72
+ * whether the product's word is "Continue", "Weiter" or "Siguiente".
73
+ *
74
+ * **`Steps` is composed at the position the rail belongs rather than inside a
75
+ * wrapper.** The reader sees the rail above the step, the step's own controls in the
76
+ * middle and the two directions below, and a wizard whose rail is somewhere else is a
77
+ * wizard whose progress is somewhere else in the reader's eye. The rail reads the
78
+ * same index the navigation moves, so the two cannot disagree about which step is
79
+ * current.
80
+ *
81
+ * **It is a client Component**, because a gate is a decision taken after the reader
82
+ * acts and the decision has to be able to refuse, and because every one of its value
83
+ * props is a function the caller hands it, which is a client-to-client boundary
84
+ * wherever it is written. What that costs is the price of every client control: a
85
+ * server Component may render one step's controls once, and what it may not do is let
86
+ * the reader move between them.
87
+ */
88
+ function FormWizard({ steps, current, onStepChange, validate, backLabel, nextLabel, finishLabel, blockedLabel, progressLabel, issueLabel, instructionsLabel, children, className, }) {
89
+ const generated = useId();
90
+ const instructionsId = `${generated}-instructions`;
91
+ const labelId = `${generated}-label`;
92
+ const blockedId = `${generated}-blocked`;
93
+ const formRef = useRef(null);
94
+ const refusedRef = useRef(null);
95
+ const [refused, setRefused] = useState([]);
96
+ const total = steps.length;
97
+ const at = total === 0 ? 0 : Math.min(Math.max(Math.trunc(current), 0), total - 1);
98
+ const step = steps[at];
99
+ const last = at === total - 1;
100
+ const leave = (direction) => {
101
+ const form = formRef.current;
102
+ if (form === null)
103
+ return;
104
+ if (direction === 'back') {
105
+ // The asymmetry, in one branch. Nothing is checked, nothing is refused, and
106
+ // the callback fires whatever this step's rules would have said, because a
107
+ // reader who has opened the wrong step has to be able to get out of it. The
108
+ // refusal is cleared rather than left standing, because a message about step
109
+ // two shown while the reader reads step one is a message about a form they
110
+ // are no longer in.
111
+ setRefused([]);
112
+ if (at > 0)
113
+ onStepChange(at - 1, 'back');
114
+ return;
115
+ }
116
+ // Forward, gated twice, and the order is the argument. The step's own rules ask
117
+ // whether this step is complete; the sequence's ask whether the whole thing may
118
+ // be submitted. A step that fails its own rules never reaches the sequence's,
119
+ // which is what stops a reader being told their card was declined when the
120
+ // field they left empty was the problem.
121
+ const own = step.validate === undefined ? [] : step.validate(form);
122
+ if (own.length > 0) {
123
+ setRefused(own);
124
+ return;
125
+ }
126
+ const whole = validate === undefined ? [] : validate(at, form);
127
+ if (whole.length > 0) {
128
+ setRefused(whole);
129
+ return;
130
+ }
131
+ setRefused([]);
132
+ onStepChange(last ? at : at + 1, 'forward');
133
+ };
134
+ // The focus move, once per refusal. The dependency is the length rather than the
135
+ // array itself, because the caller builds a fresh array on every check and
136
+ // depending on its identity would move the reader's focus on every render.
137
+ useEffect(() => {
138
+ if (refused.length === 0)
139
+ return;
140
+ refusedRef.current?.focus();
141
+ }, [refused.length]);
142
+ return (_jsxs("div", { "data-slot": "form-wizard", className: cn('flex w-full flex-col gap-6', className), children: [_jsx(Steps, { steps: steps, current: at, label: progressLabel }), _jsx("span", { id: instructionsId, "data-slot": "form-wizard-instructions", className: "sr-only", children: instructionsLabel }), _jsxs("form", { ref: formRef, "data-slot": "form-wizard-form", noValidate: true, role: "group", "aria-labelledby": labelId, "aria-describedby": instructionsId, onSubmit: (event) => {
143
+ event.preventDefault();
144
+ leave('forward');
145
+ }, className: "flex flex-col gap-4", children: [_jsxs("div", { "data-slot": "form-wizard-heading", className: "flex flex-col gap-1", children: [_jsx("h2", { id: labelId, "data-slot": "form-wizard-step-label", className: "text-lg font-semibold tracking-tight", children: step.label }), step.description === undefined ? null : (_jsx("p", { "data-slot": "form-wizard-step-description", className: "text-muted-foreground text-sm", children: step.description }))] }), refused.length === 0 ? null : (_jsxs("div", { ref: refusedRef, "data-slot": "form-wizard-refusal", role: "group", "aria-labelledby": blockedId, tabIndex: -1, className: cn('border-destructive/40 bg-destructive/5 text-destructive', 'focus-visible:ring-ring', 'rounded-md border p-3 outline-none', 'focus-visible:ring-[3px]'), children: [_jsx("h3", { id: blockedId, "data-slot": "form-wizard-refusal-label", className: "text-sm font-semibold", children: blockedLabel }), _jsx("ul", { "data-slot": "form-wizard-issues", className: "mt-1 flex list-none flex-col gap-2", children: refused.map((issue) => (_jsxs("li", { "data-slot": "form-wizard-issue", children: [_jsx("a", { href: `#${issue.field}`, "data-slot": "form-wizard-issue-link", className: cn('hover:underline', 'focus-visible:ring-ring', 'rounded-sm text-sm font-medium', 'underline underline-offset-2 outline-none', 'focus-visible:ring-[3px]'), children: issueLabel(issue.field) }), _jsx("p", { "data-slot": "form-wizard-issue-message", className: "text-sm", children: issue.message })] }, `${issue.field}:${issue.message}`))) })] })), _jsx("div", { "data-slot": "form-wizard-step", className: "flex flex-col gap-4", children: step.children }), children, _jsxs("div", { "data-slot": "form-wizard-navigation", className: "flex items-center gap-2", children: [_jsxs(Button, { "data-slot": "form-wizard-back", type: "button", variant: "ghost", "aria-disabled": at === 0 || undefined, onClick: () => {
146
+ if (at === 0)
147
+ return;
148
+ leave('back');
149
+ }, children: [_jsx(ChevronLeftIcon, { "aria-hidden": "true" }), backLabel] }), _jsxs(Button, { "data-slot": "form-wizard-forward", type: "submit", variant: "default", className: "ms-auto", children: [last ? finishLabel : nextLabel, last ? null : _jsx(ChevronRightIcon, { "aria-hidden": "true" })] })] })] })] }));
150
+ }
151
+ export { FormWizard };
@@ -0,0 +1,232 @@
1
+ import { type ReactNode } from 'react';
2
+ /**
3
+ * One image the field holds, and the three things the field knows about it.
4
+ *
5
+ * A reference and not a file. A `File` object is a browser fact that does not
6
+ * survive a page reload and says nothing about where the bytes are, and a
7
+ * design system that took one would be a Component whose value is only meaningful
8
+ * on the machine that produced it. What a form field actually holds is a handle:
9
+ * an id the caller's own store recognises, and a name a reader recognises. The
10
+ * caller resolves that handle into a URL, a signed path or a thumbnail component,
11
+ * and passes the result as `preview`, because how an image is fetched, cached and
12
+ * cropped is the caller's transport decision and Prism ships no client.
13
+ */
14
+ export type ImageListFieldImage = {
15
+ /**
16
+ * The caller's own identity for the image, and what the remove control reports.
17
+ *
18
+ * Required, and required as a string rather than as the file name, for the
19
+ * reason `FileUpload` states in full: a reader who adds the same photograph
20
+ * twice has two rows with the same name, and two remove controls that announce
21
+ * identically are two controls nobody can tell apart.
22
+ */
23
+ id: string;
24
+ /**
25
+ * The name a reader recognises the image by.
26
+ *
27
+ * A word and not a sentence. It is drawn truncated in the middle and it is what
28
+ * `removeLabel` is given, so it is the one string in the row that a caller
29
+ * should keep short enough to finish reading.
30
+ */
31
+ name: string;
32
+ /**
33
+ * The caller's own picture for the row, clipped to a fixed square.
34
+ *
35
+ * A `ReactNode` and not a URL. A URL here would be a claim that the image lives
36
+ * at an address the browser can fetch, which is false for a blob, a signed
37
+ * path that expires, a data URI and anything behind an authenticated route, and
38
+ * a Component that rendered an `<img>` would then be drawing a broken image and
39
+ * an alt text it invented. Pass an `img` with the caller's own `alt`, or a
40
+ * placeholder mark; both are the caller's to choose.
41
+ */
42
+ preview?: ReactNode;
43
+ };
44
+ /**
45
+ * The props the Image list field accepts.
46
+ *
47
+ * A declared interface rather than a forwarded native one, which is the opposite
48
+ * of what most of this package does and is right here: every prop on this
49
+ * Component is a fact about the caller's value or a sentence the caller owns, and
50
+ * there is no native attribute left to forward once those are spent.
51
+ */
52
+ export interface ImageListFieldProps {
53
+ /**
54
+ * The images, in the order the reader added them.
55
+ *
56
+ * Required, and order is the caller's because it is a claim about importance.
57
+ * The list is an `ol`, so the position is in the accessibility tree and a
58
+ * reader who removes the third of six hears the five that remain renumbered
59
+ * rather than having to count them again.
60
+ */
61
+ images: ImageListFieldImage[];
62
+ /**
63
+ * The most images this field will hold.
64
+ *
65
+ * Required, and a number rather than a boolean, because "at most one" and "at
66
+ * most twelve" are the same shape of rule and only one of them is a decision
67
+ * about a product. A caller that does not have a cap does not use this
68
+ * Component: a list with no ceiling is a `FileUpload` with a receipt's worth of
69
+ * rows, and the Component that already draws that is one call away.
70
+ */
71
+ cap: number;
72
+ /**
73
+ * The visible label of the add affordance, in the product's own words.
74
+ *
75
+ * Required and never defaulted. "Add photograph", "Add another floor plan" and
76
+ * "Subir imagen" are three products' answers, and the affordance is the one
77
+ * place on the field where a reader decides whether the rule is one they accept.
78
+ */
79
+ addLabel: ReactNode;
80
+ /**
81
+ * Called when the reader asks for another image.
82
+ *
83
+ * Required, and it is a callback rather than a composed `Dropzone` on purpose.
84
+ * This Component cannot know what an image is on the caller's side: it may be a
85
+ * browser `File` on its way to an upload, a URL already in the caller's store,
86
+ * or a picked frame from a camera roll the browser has no input for. Enforcing
87
+ * the cap means owning the affordance, and owning the affordance means Prism
88
+ * draws the control while the caller keeps the picker: compose `Dropzone` in
89
+ * your own layout, or a `Button` over a hidden `input`, and open it here. The
90
+ * alternative, Prism rendering a `Dropzone` and being handed `File` objects,
91
+ * would make a field about images a field about uploads, and every caller whose
92
+ * images are already stored would have to fake a `File` to use it.
93
+ */
94
+ onAdd: () => void;
95
+ /**
96
+ * Called with an image's `id` when the reader takes it off the list.
97
+ *
98
+ * Required rather than optional, unlike `FileUpload`'s. A `FileUpload` is
99
+ * sometimes a receipt, and offering to remove an attachment from a receipt is a
100
+ * promise the product cannot keep. A field is not a receipt: the images on it
101
+ * are the ones the reader is still choosing between, so a field where a chosen
102
+ * image cannot be unchosen is a form with a mistake in it and no way back.
103
+ */
104
+ onRemove: (id: string) => void;
105
+ /**
106
+ * The accessible name of one row's remove control, given that row's image name.
107
+ *
108
+ * Required, and a function because the name has to name the image and the
109
+ * image's name is the caller's string rather than this package's sentence. A
110
+ * nameless remove control is announced as "button", and a screen reader user
111
+ * holding a list of six is left to work out which row it belongs to.
112
+ */
113
+ removeLabel: (name: string) => string;
114
+ /**
115
+ * What stands in for the list while it is empty.
116
+ *
117
+ * Required, and it is a label rather than a placeholder row. A row with no
118
+ * image in it is a row a reader tries to remove, and a row whose preview is
119
+ * still loading is a row that looks like a broken image. The absence is either
120
+ * the caller's own sentence or, here, nothing at all: a caller who would rather
121
+ * the field showed nothing until the first image passes an empty string and
122
+ * gets nothing drawn, because the check is on the value's length and not on
123
+ * this prop being present.
124
+ */
125
+ empty: ReactNode;
126
+ /**
127
+ * What the reader is told when the cap is reached.
128
+ *
129
+ * Optional, and it exists because the affordance going unavailable is a
130
+ * question the reader will ask. A dimmed add button answers "can I not" and not
131
+ * "why not", and a form whose only feedback is a dimmed control is the dead end
132
+ * the disabled-state rule exists to prevent. Written with the limit and the way
133
+ * past it: "Six is the most a listing takes. Remove one to swap it." The
134
+ * affordance points at it with `aria-describedby` while it is shown, so the
135
+ * reason is announced with the control rather than sitting beside it as a line
136
+ * a reader has to find.
137
+ */
138
+ capLabel?: ReactNode;
139
+ /**
140
+ * The list's own name, drawn above it and used as its accessible name.
141
+ *
142
+ * Optional rather than required, and the omission is deliberate rather than an
143
+ * oversight: this is the one place in the package where a region is allowed to
144
+ * arrive anonymous, and `ListPanel` says why at length. A list called "Images"
145
+ * is a claim that is wrong in every consumer's product, and a screen reader
146
+ * user hearing a generic name learns less than hearing none, because a name is
147
+ * a promise that something follows it. Omit it and the list is honestly absent
148
+ * from the landmark list; pass one when the field sits among several.
149
+ */
150
+ label?: ReactNode;
151
+ /** Layout only. Changing a Prism-owned visual property from here is prohibited. */
152
+ className?: string;
153
+ }
154
+ /**
155
+ * An ordered list of images with a cap, a per-item remove, and an add affordance
156
+ * that stops offering a seventh before the reader has chosen one.
157
+ *
158
+ * **It is not a `FileUpload`, and the difference is the cap.** `FileUpload` is the
159
+ * receipt half of an upload: it renders whatever array it is handed, with no
160
+ * ceiling and no way in, because a receipt names what was sent and a limit on
161
+ * what may be sent belongs to the control that sends. This is the other half. It
162
+ * has a ceiling, and the ceiling is a rule about the caller's product, so the
163
+ * Component that can enforce it is the one that owns the affordance. A caller who
164
+ * wants a capped list today writes a button, a length test and a disabled branch,
165
+ * and the branch is the interesting one, because a cap enforced anywhere else
166
+ * produces one of two lies: a value holding six images rendered as four, or six
167
+ * rows where the fifth and sixth are drawn in a way that says they are not
168
+ * welcome. Neither is a fact about the reader's field. The one thing that is a
169
+ * fact is the affordance, and this is the Component that draws it.
170
+ *
171
+ * **The cap is enforced at the affordance and nowhere else, and that placement is
172
+ * the design.** The moment the cap is reached, the add control is still there, in
173
+ * the tab order, and marked `aria-disabled`; it is not removed and it is not
174
+ * natively disabled, because a control that vanishes leaves a keyboard reader
175
+ * with a gap and no announcement, and a natively disabled one is gone from the tab
176
+ * order for the same reason. `Dropzone` states the whole argument and this
177
+ * Component inherits it. The reader learns the cap before they spend a pick, and
178
+ * the value is never silently truncated.
179
+ *
180
+ * **Removing a middle row moves focus, and that is the part no prop can express.**
181
+ * The naive `onRemove` hands the reader back to the document: the button they
182
+ * pressed is unmounted with the row, focus falls to `body`, and the next Tab
183
+ * starts from the top of the page, so a reader removing the third of six
184
+ * photographs is returned to the top of a form to find the two they still meant
185
+ * to change. The correct destination is a neighbour, and which neighbour is a
186
+ * fact about the index the caller does not know this Component holds: the row
187
+ * that moved up into the removed row's place, or the one above it when the
188
+ * removed row was last. Prism knows the index because it drew the row, so Prism
189
+ * moves the focus. When the last image goes, the focus lands on the add control,
190
+ * because that is the only operable thing left in the field and dropping a reader
191
+ * on nothing is the same defect one level up.
192
+ *
193
+ * **The row is a reference and the list is an `ol`, so position is in the
194
+ * accessibility tree.** The Component does not draw an ordinal and does not
195
+ * renumber anything by hand: an `ol` reports "3 of 6" for free, and the
196
+ * renumbering the reader needs after a removal is the list doing its job rather
197
+ * than a number this Component recomputed and could get wrong. The remove control
198
+ * is named by the caller's own sentence so the two do not have to agree.
199
+ *
200
+ * **It draws its own row and does not compose `FileUpload`, and the reason is the
201
+ * number of bytes.** `FileUpload`'s row is a name, a size in bytes, an optional
202
+ * transfer meter and an optional per-file error, and a field of references has
203
+ * none of those: a stored image has no size until the caller fetches it, and
204
+ * drawing a byte count for an image that has not been downloaded is a
205
+ * measurement of nothing. The two would also disagree about focus, because
206
+ * `FileUpload` owns its own remove control and there is no way to tell it where
207
+ * the reader's focus should land afterwards without reaching into its markup. The
208
+ * composition Prism does make is outward: `onAdd` is the seam where a `Dropzone`
209
+ * or a hidden `input` is composed, and `Button` draws the affordance rather than
210
+ * this Component re-deriving a control's metrics.
211
+ *
212
+ * **It is a client Component**, because the focus handoff and the cap's arrival
213
+ * both happen after the reader acts, and neither can be known at a server render.
214
+ * What that costs is the price of every client field: a form with images on it
215
+ * carries a hydration boundary, and a caller whose form is otherwise static pays
216
+ * for this one. The value is still the caller's, so a server Component may render
217
+ * the whole field once with the list already in place; what it may not do is offer
218
+ * a capped, removable list whose focus behaves, because that part is a client
219
+ * fact.
220
+ *
221
+ * **Two upstream spellings are this one job, and the catalogue holds one of
222
+ * them.** An image list and a gallery upload differ in whether the frame around
223
+ * the images is decorative, and in nothing else: both are an ordered list of
224
+ * image references, both cap, both remove. Publishing both would put two Items in
225
+ * the list whose only difference is a wrapper one of them drew, and a list
226
+ * nobody can search is what the naming law exists to prevent. A caller who wants
227
+ * a gallery frames the list themselves, which is layout and therefore already
228
+ * theirs.
229
+ */
230
+ declare function ImageListField({ images, cap, addLabel, onAdd, onRemove, removeLabel, empty, capLabel, label, className, }: ImageListFieldProps): import("react").JSX.Element;
231
+ export { ImageListField };
232
+ //# sourceMappingURL=image-list-field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-list-field.d.ts","sourceRoot":"","sources":["../../../src/components/ui/image-list-field.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAKhE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;;;;OAOG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;CACpB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;OAOG;IACH,MAAM,EAAE,mBAAmB,EAAE,CAAA;IAC7B;;;;;;;;OAQG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;;;;OAMG;IACH,QAAQ,EAAE,SAAS,CAAA;IACnB;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB;;;;;;;;OAQG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B;;;;;;;OAOG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC;;;;;;;;;;OAUG;IACH,KAAK,EAAE,SAAS,CAAA;IAChB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA+BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AACH,iBAAS,cAAc,CAAC,EACtB,MAAM,EACN,GAAG,EACH,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,GACV,EAAE,mBAAmB,+BA8JrB;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}