@nanisoft/prism-ui 0.13.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (964) hide show
  1. package/THIRD-PARTY-NOTICES.md +22 -7
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/blocks/about-01/about.d.ts +296 -0
  4. package/dist/blocks/about-01/about.d.ts.map +1 -0
  5. package/dist/blocks/about-01/about.js +103 -0
  6. package/dist/blocks/about-01/index.d.ts +3 -0
  7. package/dist/blocks/about-01/index.d.ts.map +1 -0
  8. package/dist/blocks/about-01/index.js +1 -0
  9. package/dist/blocks/accept-invite-01/accept-invite.d.ts +324 -0
  10. package/dist/blocks/accept-invite-01/accept-invite.d.ts.map +1 -0
  11. package/dist/blocks/accept-invite-01/accept-invite.js +230 -0
  12. package/dist/blocks/accept-invite-01/index.d.ts +3 -0
  13. package/dist/blocks/accept-invite-01/index.d.ts.map +1 -0
  14. package/dist/blocks/accept-invite-01/index.js +1 -0
  15. package/dist/blocks/account-01/account-01.d.ts +393 -0
  16. package/dist/blocks/account-01/account-01.d.ts.map +1 -0
  17. package/dist/blocks/account-01/account-01.js +215 -0
  18. package/dist/blocks/account-01/index.d.ts +3 -0
  19. package/dist/blocks/account-01/index.d.ts.map +1 -0
  20. package/dist/blocks/account-01/index.js +1 -0
  21. package/dist/blocks/activity-feed-01/activity-feed-01.d.ts +271 -0
  22. package/dist/blocks/activity-feed-01/activity-feed-01.d.ts.map +1 -0
  23. package/dist/blocks/activity-feed-01/activity-feed-01.js +185 -0
  24. package/dist/blocks/activity-feed-01/index.d.ts +3 -0
  25. package/dist/blocks/activity-feed-01/index.d.ts.map +1 -0
  26. package/dist/blocks/activity-feed-01/index.js +1 -0
  27. package/dist/blocks/address-book-01/address-book-01.d.ts +312 -0
  28. package/dist/blocks/address-book-01/address-book-01.d.ts.map +1 -0
  29. package/dist/blocks/address-book-01/address-book-01.js +233 -0
  30. package/dist/blocks/address-book-01/index.d.ts +3 -0
  31. package/dist/blocks/address-book-01/index.d.ts.map +1 -0
  32. package/dist/blocks/address-book-01/index.js +1 -0
  33. package/dist/blocks/audit-log-01/audit-log-01.d.ts +333 -0
  34. package/dist/blocks/audit-log-01/audit-log-01.d.ts.map +1 -0
  35. package/dist/blocks/audit-log-01/audit-log-01.js +211 -0
  36. package/dist/blocks/audit-log-01/index.d.ts +3 -0
  37. package/dist/blocks/audit-log-01/index.d.ts.map +1 -0
  38. package/dist/blocks/audit-log-01/index.js +1 -0
  39. package/dist/blocks/auth-form-01/auth-form.d.ts +40 -1
  40. package/dist/blocks/auth-form-01/auth-form.d.ts.map +1 -1
  41. package/dist/blocks/auth-form-01/auth-form.js +26 -3
  42. package/dist/blocks/awards-01/awards.d.ts +156 -0
  43. package/dist/blocks/awards-01/awards.d.ts.map +1 -0
  44. package/dist/blocks/awards-01/awards.js +102 -0
  45. package/dist/blocks/awards-01/index.d.ts +3 -0
  46. package/dist/blocks/awards-01/index.d.ts.map +1 -0
  47. package/dist/blocks/awards-01/index.js +1 -0
  48. package/dist/blocks/backdrop-01/backdrop.d.ts +268 -0
  49. package/dist/blocks/backdrop-01/backdrop.d.ts.map +1 -0
  50. package/dist/blocks/backdrop-01/backdrop.js +170 -0
  51. package/dist/blocks/backdrop-01/index.d.ts +3 -0
  52. package/dist/blocks/backdrop-01/index.d.ts.map +1 -0
  53. package/dist/blocks/backdrop-01/index.js +1 -0
  54. package/dist/blocks/bento-01/bento-01.d.ts +136 -0
  55. package/dist/blocks/bento-01/bento-01.d.ts.map +1 -0
  56. package/dist/blocks/bento-01/bento-01.js +97 -0
  57. package/dist/blocks/bento-01/index.d.ts +3 -0
  58. package/dist/blocks/bento-01/index.d.ts.map +1 -0
  59. package/dist/blocks/bento-01/index.js +1 -0
  60. package/dist/blocks/billing-source-01/billing-source-01.d.ts +379 -0
  61. package/dist/blocks/billing-source-01/billing-source-01.d.ts.map +1 -0
  62. package/dist/blocks/billing-source-01/billing-source-01.js +222 -0
  63. package/dist/blocks/billing-source-01/index.d.ts +3 -0
  64. package/dist/blocks/billing-source-01/index.d.ts.map +1 -0
  65. package/dist/blocks/billing-source-01/index.js +1 -0
  66. package/dist/blocks/bundle-01/bundle.d.ts +387 -0
  67. package/dist/blocks/bundle-01/bundle.d.ts.map +1 -0
  68. package/dist/blocks/bundle-01/bundle.js +153 -0
  69. package/dist/blocks/bundle-01/index.d.ts +3 -0
  70. package/dist/blocks/bundle-01/index.d.ts.map +1 -0
  71. package/dist/blocks/bundle-01/index.js +1 -0
  72. package/dist/blocks/calendar-01/calendar.d.ts +251 -0
  73. package/dist/blocks/calendar-01/calendar.d.ts.map +1 -0
  74. package/dist/blocks/calendar-01/calendar.js +191 -0
  75. package/dist/blocks/calendar-01/index.d.ts +3 -0
  76. package/dist/blocks/calendar-01/index.d.ts.map +1 -0
  77. package/dist/blocks/calendar-01/index.js +1 -0
  78. package/dist/blocks/capacity-01/capacity.d.ts +363 -0
  79. package/dist/blocks/capacity-01/capacity.d.ts.map +1 -0
  80. package/dist/blocks/capacity-01/capacity.js +208 -0
  81. package/dist/blocks/capacity-01/index.d.ts +3 -0
  82. package/dist/blocks/capacity-01/index.d.ts.map +1 -0
  83. package/dist/blocks/capacity-01/index.js +1 -0
  84. package/dist/blocks/careers-01/careers.d.ts +186 -0
  85. package/dist/blocks/careers-01/careers.d.ts.map +1 -0
  86. package/dist/blocks/careers-01/careers.js +83 -0
  87. package/dist/blocks/careers-01/index.d.ts +3 -0
  88. package/dist/blocks/careers-01/index.d.ts.map +1 -0
  89. package/dist/blocks/careers-01/index.js +1 -0
  90. package/dist/blocks/case-studies-01/case-studies.d.ts +192 -0
  91. package/dist/blocks/case-studies-01/case-studies.d.ts.map +1 -0
  92. package/dist/blocks/case-studies-01/case-studies.js +97 -0
  93. package/dist/blocks/case-studies-01/index.d.ts +3 -0
  94. package/dist/blocks/case-studies-01/index.d.ts.map +1 -0
  95. package/dist/blocks/case-studies-01/index.js +1 -0
  96. package/dist/blocks/case-study-01/case-study.d.ts +214 -0
  97. package/dist/blocks/case-study-01/case-study.d.ts.map +1 -0
  98. package/dist/blocks/case-study-01/case-study.js +79 -0
  99. package/dist/blocks/case-study-01/index.d.ts +3 -0
  100. package/dist/blocks/case-study-01/index.d.ts.map +1 -0
  101. package/dist/blocks/case-study-01/index.js +1 -0
  102. package/dist/blocks/changelog-01/changelog.d.ts +200 -0
  103. package/dist/blocks/changelog-01/changelog.d.ts.map +1 -0
  104. package/dist/blocks/changelog-01/changelog.js +155 -0
  105. package/dist/blocks/changelog-01/index.d.ts +3 -0
  106. package/dist/blocks/changelog-01/index.d.ts.map +1 -0
  107. package/dist/blocks/changelog-01/index.js +1 -0
  108. package/dist/blocks/chart-card-01/chart-card-01.d.ts +149 -0
  109. package/dist/blocks/chart-card-01/chart-card-01.d.ts.map +1 -0
  110. package/dist/blocks/chart-card-01/chart-card-01.js +81 -0
  111. package/dist/blocks/chart-card-01/index.d.ts +3 -0
  112. package/dist/blocks/chart-card-01/index.d.ts.map +1 -0
  113. package/dist/blocks/chart-card-01/index.js +1 -0
  114. package/dist/blocks/chart-group-01/chart-group-01.d.ts +138 -0
  115. package/dist/blocks/chart-group-01/chart-group-01.d.ts.map +1 -0
  116. package/dist/blocks/chart-group-01/chart-group-01.js +74 -0
  117. package/dist/blocks/chart-group-01/index.d.ts +3 -0
  118. package/dist/blocks/chart-group-01/index.d.ts.map +1 -0
  119. package/dist/blocks/chart-group-01/index.js +1 -0
  120. package/dist/blocks/code-sample-01/code-sample.d.ts +193 -0
  121. package/dist/blocks/code-sample-01/code-sample.d.ts.map +1 -0
  122. package/dist/blocks/code-sample-01/code-sample.js +104 -0
  123. package/dist/blocks/code-sample-01/index.d.ts +3 -0
  124. package/dist/blocks/code-sample-01/index.d.ts.map +1 -0
  125. package/dist/blocks/code-sample-01/index.js +1 -0
  126. package/dist/blocks/community-01/community.d.ts +183 -0
  127. package/dist/blocks/community-01/community.d.ts.map +1 -0
  128. package/dist/blocks/community-01/community.js +102 -0
  129. package/dist/blocks/community-01/index.d.ts +3 -0
  130. package/dist/blocks/community-01/index.d.ts.map +1 -0
  131. package/dist/blocks/community-01/index.js +1 -0
  132. package/dist/blocks/compare-01/compare.d.ts +184 -0
  133. package/dist/blocks/compare-01/compare.d.ts.map +1 -0
  134. package/dist/blocks/compare-01/compare.js +106 -0
  135. package/dist/blocks/compare-01/index.d.ts +3 -0
  136. package/dist/blocks/compare-01/index.d.ts.map +1 -0
  137. package/dist/blocks/compare-01/index.js +1 -0
  138. package/dist/blocks/compliance-01/compliance.d.ts +249 -0
  139. package/dist/blocks/compliance-01/compliance.d.ts.map +1 -0
  140. package/dist/blocks/compliance-01/compliance.js +130 -0
  141. package/dist/blocks/compliance-01/index.d.ts +3 -0
  142. package/dist/blocks/compliance-01/index.d.ts.map +1 -0
  143. package/dist/blocks/compliance-01/index.js +1 -0
  144. package/dist/blocks/consent-01/consent.d.ts +211 -0
  145. package/dist/blocks/consent-01/consent.d.ts.map +1 -0
  146. package/dist/blocks/consent-01/consent.js +101 -0
  147. package/dist/blocks/consent-01/index.d.ts +3 -0
  148. package/dist/blocks/consent-01/index.d.ts.map +1 -0
  149. package/dist/blocks/consent-01/index.js +1 -0
  150. package/dist/blocks/contact-01/contact.d.ts +319 -0
  151. package/dist/blocks/contact-01/contact.d.ts.map +1 -0
  152. package/dist/blocks/contact-01/contact.js +211 -0
  153. package/dist/blocks/contact-01/index.d.ts +3 -0
  154. package/dist/blocks/contact-01/index.d.ts.map +1 -0
  155. package/dist/blocks/contact-01/index.js +1 -0
  156. package/dist/blocks/content-grid-01/content-grid.d.ts +262 -0
  157. package/dist/blocks/content-grid-01/content-grid.d.ts.map +1 -0
  158. package/dist/blocks/content-grid-01/content-grid.js +155 -0
  159. package/dist/blocks/content-grid-01/index.d.ts +3 -0
  160. package/dist/blocks/content-grid-01/index.d.ts.map +1 -0
  161. package/dist/blocks/content-grid-01/index.js +1 -0
  162. package/dist/blocks/cta-01/cta.d.ts +7 -1
  163. package/dist/blocks/cta-01/cta.d.ts.map +1 -1
  164. package/dist/blocks/cta-01/cta.js +11 -2
  165. package/dist/blocks/dashboard-01/dashboard-01.d.ts +247 -0
  166. package/dist/blocks/dashboard-01/dashboard-01.d.ts.map +1 -0
  167. package/dist/blocks/dashboard-01/dashboard-01.js +141 -0
  168. package/dist/blocks/dashboard-01/index.d.ts +3 -0
  169. package/dist/blocks/dashboard-01/index.d.ts.map +1 -0
  170. package/dist/blocks/dashboard-01/index.js +1 -0
  171. package/dist/blocks/data-table-01/data-table.d.ts +22 -1
  172. package/dist/blocks/data-table-01/data-table.d.ts.map +1 -1
  173. package/dist/blocks/data-table-01/data-table.js +9 -5
  174. package/dist/blocks/delivery-01/delivery.d.ts +343 -0
  175. package/dist/blocks/delivery-01/delivery.d.ts.map +1 -0
  176. package/dist/blocks/delivery-01/delivery.js +212 -0
  177. package/dist/blocks/delivery-01/index.d.ts +3 -0
  178. package/dist/blocks/delivery-01/index.d.ts.map +1 -0
  179. package/dist/blocks/delivery-01/index.js +1 -0
  180. package/dist/blocks/directory-01/directory-01.d.ts +316 -0
  181. package/dist/blocks/directory-01/directory-01.d.ts.map +1 -0
  182. package/dist/blocks/directory-01/directory-01.js +252 -0
  183. package/dist/blocks/directory-01/index.d.ts +3 -0
  184. package/dist/blocks/directory-01/index.d.ts.map +1 -0
  185. package/dist/blocks/directory-01/index.js +1 -0
  186. package/dist/blocks/download-01/download.d.ts +261 -0
  187. package/dist/blocks/download-01/download.d.ts.map +1 -0
  188. package/dist/blocks/download-01/download.js +115 -0
  189. package/dist/blocks/download-01/index.d.ts +3 -0
  190. package/dist/blocks/download-01/index.d.ts.map +1 -0
  191. package/dist/blocks/download-01/index.js +1 -0
  192. package/dist/blocks/faq-01/faq.d.ts +128 -0
  193. package/dist/blocks/faq-01/faq.d.ts.map +1 -0
  194. package/dist/blocks/faq-01/faq.js +53 -0
  195. package/dist/blocks/faq-01/index.d.ts +3 -0
  196. package/dist/blocks/faq-01/index.d.ts.map +1 -0
  197. package/dist/blocks/faq-01/index.js +1 -0
  198. package/dist/blocks/feature-rows-01/feature-rows-01.d.ts +158 -0
  199. package/dist/blocks/feature-rows-01/feature-rows-01.d.ts.map +1 -0
  200. package/dist/blocks/feature-rows-01/feature-rows-01.js +81 -0
  201. package/dist/blocks/feature-rows-01/index.d.ts +3 -0
  202. package/dist/blocks/feature-rows-01/index.d.ts.map +1 -0
  203. package/dist/blocks/feature-rows-01/index.js +1 -0
  204. package/dist/blocks/feedback-01/feedback.d.ts +235 -0
  205. package/dist/blocks/feedback-01/feedback.d.ts.map +1 -0
  206. package/dist/blocks/feedback-01/feedback.js +113 -0
  207. package/dist/blocks/feedback-01/index.d.ts +3 -0
  208. package/dist/blocks/feedback-01/index.d.ts.map +1 -0
  209. package/dist/blocks/feedback-01/index.js +1 -0
  210. package/dist/blocks/field-map-01/field-map.d.ts +247 -0
  211. package/dist/blocks/field-map-01/field-map.d.ts.map +1 -0
  212. package/dist/blocks/field-map-01/field-map.js +183 -0
  213. package/dist/blocks/field-map-01/index.d.ts +3 -0
  214. package/dist/blocks/field-map-01/index.d.ts.map +1 -0
  215. package/dist/blocks/field-map-01/index.js +1 -0
  216. package/dist/blocks/forgot-password-01/forgot-password.d.ts +288 -0
  217. package/dist/blocks/forgot-password-01/forgot-password.d.ts.map +1 -0
  218. package/dist/blocks/forgot-password-01/forgot-password.js +190 -0
  219. package/dist/blocks/forgot-password-01/index.d.ts +3 -0
  220. package/dist/blocks/forgot-password-01/index.d.ts.map +1 -0
  221. package/dist/blocks/forgot-password-01/index.js +1 -0
  222. package/dist/blocks/gallery-01/gallery.d.ts +208 -0
  223. package/dist/blocks/gallery-01/gallery.d.ts.map +1 -0
  224. package/dist/blocks/gallery-01/gallery.js +174 -0
  225. package/dist/blocks/gallery-01/index.d.ts +3 -0
  226. package/dist/blocks/gallery-01/index.d.ts.map +1 -0
  227. package/dist/blocks/gallery-01/index.js +1 -0
  228. package/dist/blocks/gantt-01/gantt.d.ts +290 -0
  229. package/dist/blocks/gantt-01/gantt.d.ts.map +1 -0
  230. package/dist/blocks/gantt-01/gantt.js +224 -0
  231. package/dist/blocks/gantt-01/index.d.ts +3 -0
  232. package/dist/blocks/gantt-01/index.d.ts.map +1 -0
  233. package/dist/blocks/gantt-01/index.js +1 -0
  234. package/dist/blocks/handoff-01/handoff-01.d.ts +326 -0
  235. package/dist/blocks/handoff-01/handoff-01.d.ts.map +1 -0
  236. package/dist/blocks/handoff-01/handoff-01.js +180 -0
  237. package/dist/blocks/handoff-01/index.d.ts +3 -0
  238. package/dist/blocks/handoff-01/index.d.ts.map +1 -0
  239. package/dist/blocks/handoff-01/index.js +1 -0
  240. package/dist/blocks/help-01/help.d.ts +254 -0
  241. package/dist/blocks/help-01/help.d.ts.map +1 -0
  242. package/dist/blocks/help-01/help.js +188 -0
  243. package/dist/blocks/help-01/index.d.ts +3 -0
  244. package/dist/blocks/help-01/index.d.ts.map +1 -0
  245. package/dist/blocks/help-01/index.js +1 -0
  246. package/dist/blocks/hero-01/hero.d.ts +105 -34
  247. package/dist/blocks/hero-01/hero.d.ts.map +1 -1
  248. package/dist/blocks/hero-01/hero.js +23 -15
  249. package/dist/blocks/hero-01/index.d.ts +1 -1
  250. package/dist/blocks/hero-01/index.d.ts.map +1 -1
  251. package/dist/blocks/hero-02/hero-02.d.ts +244 -0
  252. package/dist/blocks/hero-02/hero-02.d.ts.map +1 -0
  253. package/dist/blocks/hero-02/hero-02.js +87 -0
  254. package/dist/blocks/hero-02/index.d.ts +3 -0
  255. package/dist/blocks/hero-02/index.d.ts.map +1 -0
  256. package/dist/blocks/hero-02/index.js +1 -0
  257. package/dist/blocks/hero-03/hero-03.d.ts +247 -0
  258. package/dist/blocks/hero-03/hero-03.d.ts.map +1 -0
  259. package/dist/blocks/hero-03/hero-03.js +93 -0
  260. package/dist/blocks/hero-03/index.d.ts +3 -0
  261. package/dist/blocks/hero-03/index.d.ts.map +1 -0
  262. package/dist/blocks/hero-03/index.js +1 -0
  263. package/dist/blocks/history-01/history-01.d.ts +414 -0
  264. package/dist/blocks/history-01/history-01.d.ts.map +1 -0
  265. package/dist/blocks/history-01/history-01.js +285 -0
  266. package/dist/blocks/history-01/index.d.ts +3 -0
  267. package/dist/blocks/history-01/index.d.ts.map +1 -0
  268. package/dist/blocks/history-01/index.js +1 -0
  269. package/dist/blocks/inbox-01/inbox.d.ts +349 -0
  270. package/dist/blocks/inbox-01/inbox.d.ts.map +1 -0
  271. package/dist/blocks/inbox-01/inbox.js +244 -0
  272. package/dist/blocks/inbox-01/index.d.ts +3 -0
  273. package/dist/blocks/inbox-01/index.d.ts.map +1 -0
  274. package/dist/blocks/inbox-01/index.js +1 -0
  275. package/dist/blocks/index.d.ts +203 -0
  276. package/dist/blocks/index.d.ts.map +1 -1
  277. package/dist/blocks/index.js +118 -0
  278. package/dist/blocks/industries-01/index.d.ts +3 -0
  279. package/dist/blocks/industries-01/index.d.ts.map +1 -0
  280. package/dist/blocks/industries-01/index.js +1 -0
  281. package/dist/blocks/industries-01/industries.d.ts +164 -0
  282. package/dist/blocks/industries-01/industries.d.ts.map +1 -0
  283. package/dist/blocks/industries-01/industries.js +96 -0
  284. package/dist/blocks/intake-01/index.d.ts +3 -0
  285. package/dist/blocks/intake-01/index.d.ts.map +1 -0
  286. package/dist/blocks/intake-01/index.js +1 -0
  287. package/dist/blocks/intake-01/intake-01.d.ts +305 -0
  288. package/dist/blocks/intake-01/intake-01.d.ts.map +1 -0
  289. package/dist/blocks/intake-01/intake-01.js +178 -0
  290. package/dist/blocks/integration-01/index.d.ts +3 -0
  291. package/dist/blocks/integration-01/index.d.ts.map +1 -0
  292. package/dist/blocks/integration-01/index.js +1 -0
  293. package/dist/blocks/integration-01/integration.d.ts +226 -0
  294. package/dist/blocks/integration-01/integration.d.ts.map +1 -0
  295. package/dist/blocks/integration-01/integration.js +170 -0
  296. package/dist/blocks/invite-user-01/index.d.ts +3 -0
  297. package/dist/blocks/invite-user-01/index.d.ts.map +1 -0
  298. package/dist/blocks/invite-user-01/index.js +1 -0
  299. package/dist/blocks/invite-user-01/invite-user.d.ts +317 -0
  300. package/dist/blocks/invite-user-01/invite-user.d.ts.map +1 -0
  301. package/dist/blocks/invite-user-01/invite-user.js +228 -0
  302. package/dist/blocks/issue-detail-01/index.d.ts +3 -0
  303. package/dist/blocks/issue-detail-01/index.d.ts.map +1 -0
  304. package/dist/blocks/issue-detail-01/index.js +1 -0
  305. package/dist/blocks/issue-detail-01/issue-detail.d.ts +355 -0
  306. package/dist/blocks/issue-detail-01/issue-detail.d.ts.map +1 -0
  307. package/dist/blocks/issue-detail-01/issue-detail.js +187 -0
  308. package/dist/blocks/issue-list-01/index.d.ts +3 -0
  309. package/dist/blocks/issue-list-01/index.d.ts.map +1 -0
  310. package/dist/blocks/issue-list-01/index.js +1 -0
  311. package/dist/blocks/issue-list-01/issue-list.d.ts +298 -0
  312. package/dist/blocks/issue-list-01/issue-list.d.ts.map +1 -0
  313. package/dist/blocks/issue-list-01/issue-list.js +284 -0
  314. package/dist/blocks/kanban-01/index.d.ts +3 -0
  315. package/dist/blocks/kanban-01/index.d.ts.map +1 -0
  316. package/dist/blocks/kanban-01/index.js +1 -0
  317. package/dist/blocks/kanban-01/kanban.d.ts +278 -0
  318. package/dist/blocks/kanban-01/kanban.d.ts.map +1 -0
  319. package/dist/blocks/kanban-01/kanban.js +144 -0
  320. package/dist/blocks/leaderboard-01/index.d.ts +3 -0
  321. package/dist/blocks/leaderboard-01/index.d.ts.map +1 -0
  322. package/dist/blocks/leaderboard-01/index.js +1 -0
  323. package/dist/blocks/leaderboard-01/leaderboard.d.ts +250 -0
  324. package/dist/blocks/leaderboard-01/leaderboard.d.ts.map +1 -0
  325. package/dist/blocks/leaderboard-01/leaderboard.js +121 -0
  326. package/dist/blocks/login-01/index.d.ts +3 -0
  327. package/dist/blocks/login-01/index.d.ts.map +1 -0
  328. package/dist/blocks/login-01/index.js +1 -0
  329. package/dist/blocks/login-01/login-01.d.ts +356 -0
  330. package/dist/blocks/login-01/login-01.d.ts.map +1 -0
  331. package/dist/blocks/login-01/login-01.js +249 -0
  332. package/dist/blocks/logo-cloud-01/index.d.ts +3 -0
  333. package/dist/blocks/logo-cloud-01/index.d.ts.map +1 -0
  334. package/dist/blocks/logo-cloud-01/index.js +1 -0
  335. package/dist/blocks/logo-cloud-01/logo-cloud.d.ts +181 -0
  336. package/dist/blocks/logo-cloud-01/logo-cloud.d.ts.map +1 -0
  337. package/dist/blocks/logo-cloud-01/logo-cloud.js +118 -0
  338. package/dist/blocks/magic-link-01/index.d.ts +3 -0
  339. package/dist/blocks/magic-link-01/index.d.ts.map +1 -0
  340. package/dist/blocks/magic-link-01/index.js +1 -0
  341. package/dist/blocks/magic-link-01/magic-link-01.d.ts +367 -0
  342. package/dist/blocks/magic-link-01/magic-link-01.d.ts.map +1 -0
  343. package/dist/blocks/magic-link-01/magic-link-01.js +233 -0
  344. package/dist/blocks/member-list-01/index.d.ts +3 -0
  345. package/dist/blocks/member-list-01/index.d.ts.map +1 -0
  346. package/dist/blocks/member-list-01/index.js +1 -0
  347. package/dist/blocks/member-list-01/member-list.d.ts +192 -0
  348. package/dist/blocks/member-list-01/member-list.d.ts.map +1 -0
  349. package/dist/blocks/member-list-01/member-list.js +142 -0
  350. package/dist/blocks/milestone-timeline-01/index.d.ts +3 -0
  351. package/dist/blocks/milestone-timeline-01/index.d.ts.map +1 -0
  352. package/dist/blocks/milestone-timeline-01/index.js +1 -0
  353. package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts +217 -0
  354. package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts.map +1 -0
  355. package/dist/blocks/milestone-timeline-01/milestone-timeline.js +173 -0
  356. package/dist/blocks/newsletter-01/index.d.ts +3 -0
  357. package/dist/blocks/newsletter-01/index.d.ts.map +1 -0
  358. package/dist/blocks/newsletter-01/index.js +1 -0
  359. package/dist/blocks/newsletter-01/newsletter.d.ts +216 -0
  360. package/dist/blocks/newsletter-01/newsletter.d.ts.map +1 -0
  361. package/dist/blocks/newsletter-01/newsletter.js +102 -0
  362. package/dist/blocks/notification-center-01/index.d.ts +3 -0
  363. package/dist/blocks/notification-center-01/index.d.ts.map +1 -0
  364. package/dist/blocks/notification-center-01/index.js +1 -0
  365. package/dist/blocks/notification-center-01/notification-center-01.d.ts +341 -0
  366. package/dist/blocks/notification-center-01/notification-center-01.d.ts.map +1 -0
  367. package/dist/blocks/notification-center-01/notification-center-01.js +203 -0
  368. package/dist/blocks/offer-01/index.d.ts +3 -0
  369. package/dist/blocks/offer-01/index.d.ts.map +1 -0
  370. package/dist/blocks/offer-01/index.js +1 -0
  371. package/dist/blocks/offer-01/offer.d.ts +139 -0
  372. package/dist/blocks/offer-01/offer.d.ts.map +1 -0
  373. package/dist/blocks/offer-01/offer.js +81 -0
  374. package/dist/blocks/offering-01/index.d.ts +3 -0
  375. package/dist/blocks/offering-01/index.d.ts.map +1 -0
  376. package/dist/blocks/offering-01/index.js +1 -0
  377. package/dist/blocks/offering-01/offering.d.ts +245 -0
  378. package/dist/blocks/offering-01/offering.d.ts.map +1 -0
  379. package/dist/blocks/offering-01/offering.js +144 -0
  380. package/dist/blocks/offering-categories-01/index.d.ts +3 -0
  381. package/dist/blocks/offering-categories-01/index.d.ts.map +1 -0
  382. package/dist/blocks/offering-categories-01/index.js +1 -0
  383. package/dist/blocks/offering-categories-01/offering-categories.d.ts +248 -0
  384. package/dist/blocks/offering-categories-01/offering-categories.d.ts.map +1 -0
  385. package/dist/blocks/offering-categories-01/offering-categories.js +153 -0
  386. package/dist/blocks/offering-list-01/index.d.ts +3 -0
  387. package/dist/blocks/offering-list-01/index.d.ts.map +1 -0
  388. package/dist/blocks/offering-list-01/index.js +1 -0
  389. package/dist/blocks/offering-list-01/offering-list.d.ts +362 -0
  390. package/dist/blocks/offering-list-01/offering-list.d.ts.map +1 -0
  391. package/dist/blocks/offering-list-01/offering-list.js +366 -0
  392. package/dist/blocks/onboarding-01/index.d.ts +3 -0
  393. package/dist/blocks/onboarding-01/index.d.ts.map +1 -0
  394. package/dist/blocks/onboarding-01/index.js +1 -0
  395. package/dist/blocks/onboarding-01/onboarding.d.ts +199 -0
  396. package/dist/blocks/onboarding-01/onboarding.d.ts.map +1 -0
  397. package/dist/blocks/onboarding-01/onboarding.js +182 -0
  398. package/dist/blocks/ops-checklist-01/index.d.ts +3 -0
  399. package/dist/blocks/ops-checklist-01/index.d.ts.map +1 -0
  400. package/dist/blocks/ops-checklist-01/index.js +1 -0
  401. package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts +308 -0
  402. package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts.map +1 -0
  403. package/dist/blocks/ops-checklist-01/ops-checklist-01.js +165 -0
  404. package/dist/blocks/page-header-01/index.d.ts +1 -1
  405. package/dist/blocks/page-header-01/index.d.ts.map +1 -1
  406. package/dist/blocks/page-header-01/page-header.d.ts +131 -11
  407. package/dist/blocks/page-header-01/page-header.d.ts.map +1 -1
  408. package/dist/blocks/page-header-01/page-header.js +33 -9
  409. package/dist/blocks/passkey-01/index.d.ts +3 -0
  410. package/dist/blocks/passkey-01/index.d.ts.map +1 -0
  411. package/dist/blocks/passkey-01/index.js +1 -0
  412. package/dist/blocks/passkey-01/passkey-01.d.ts +334 -0
  413. package/dist/blocks/passkey-01/passkey-01.d.ts.map +1 -0
  414. package/dist/blocks/passkey-01/passkey-01.js +192 -0
  415. package/dist/blocks/permission-matrix-01/index.d.ts +3 -0
  416. package/dist/blocks/permission-matrix-01/index.d.ts.map +1 -0
  417. package/dist/blocks/permission-matrix-01/index.js +1 -0
  418. package/dist/blocks/permission-matrix-01/permission-matrix.d.ts +282 -0
  419. package/dist/blocks/permission-matrix-01/permission-matrix.d.ts.map +1 -0
  420. package/dist/blocks/permission-matrix-01/permission-matrix.js +173 -0
  421. package/dist/blocks/pricing-01/index.d.ts +1 -0
  422. package/dist/blocks/pricing-01/index.d.ts.map +1 -1
  423. package/dist/blocks/pricing-01/pricing.d.ts +118 -1
  424. package/dist/blocks/pricing-01/pricing.d.ts.map +1 -1
  425. package/dist/blocks/pricing-01/pricing.js +9 -2
  426. package/dist/blocks/pricing-compare-01/index.d.ts +3 -0
  427. package/dist/blocks/pricing-compare-01/index.d.ts.map +1 -0
  428. package/dist/blocks/pricing-compare-01/index.js +1 -0
  429. package/dist/blocks/pricing-compare-01/pricing-compare.d.ts +277 -0
  430. package/dist/blocks/pricing-compare-01/pricing-compare.d.ts.map +1 -0
  431. package/dist/blocks/pricing-compare-01/pricing-compare.js +126 -0
  432. package/dist/blocks/project-01/index.d.ts +3 -0
  433. package/dist/blocks/project-01/index.d.ts.map +1 -0
  434. package/dist/blocks/project-01/index.js +1 -0
  435. package/dist/blocks/project-01/project.d.ts +323 -0
  436. package/dist/blocks/project-01/project.d.ts.map +1 -0
  437. package/dist/blocks/project-01/project.js +247 -0
  438. package/dist/blocks/project-dashboard-01/index.d.ts +3 -0
  439. package/dist/blocks/project-dashboard-01/index.d.ts.map +1 -0
  440. package/dist/blocks/project-dashboard-01/index.js +1 -0
  441. package/dist/blocks/project-dashboard-01/project-dashboard.d.ts +200 -0
  442. package/dist/blocks/project-dashboard-01/project-dashboard.d.ts.map +1 -0
  443. package/dist/blocks/project-dashboard-01/project-dashboard.js +124 -0
  444. package/dist/blocks/project-list-01/index.d.ts +3 -0
  445. package/dist/blocks/project-list-01/index.d.ts.map +1 -0
  446. package/dist/blocks/project-list-01/index.js +1 -0
  447. package/dist/blocks/project-list-01/project-list.d.ts +301 -0
  448. package/dist/blocks/project-list-01/project-list.d.ts.map +1 -0
  449. package/dist/blocks/project-list-01/project-list.js +305 -0
  450. package/dist/blocks/provisioning-01/index.d.ts +3 -0
  451. package/dist/blocks/provisioning-01/index.d.ts.map +1 -0
  452. package/dist/blocks/provisioning-01/index.js +1 -0
  453. package/dist/blocks/provisioning-01/provisioning.d.ts +357 -0
  454. package/dist/blocks/provisioning-01/provisioning.d.ts.map +1 -0
  455. package/dist/blocks/provisioning-01/provisioning.js +230 -0
  456. package/dist/blocks/quick-view-01/index.d.ts +3 -0
  457. package/dist/blocks/quick-view-01/index.d.ts.map +1 -0
  458. package/dist/blocks/quick-view-01/index.js +1 -0
  459. package/dist/blocks/quick-view-01/quick-view.d.ts +215 -0
  460. package/dist/blocks/quick-view-01/quick-view.d.ts.map +1 -0
  461. package/dist/blocks/quick-view-01/quick-view.js +136 -0
  462. package/dist/blocks/rate-card-01/index.d.ts +3 -0
  463. package/dist/blocks/rate-card-01/index.d.ts.map +1 -0
  464. package/dist/blocks/rate-card-01/index.js +1 -0
  465. package/dist/blocks/rate-card-01/rate-card.d.ts +184 -0
  466. package/dist/blocks/rate-card-01/rate-card.d.ts.map +1 -0
  467. package/dist/blocks/rate-card-01/rate-card.js +79 -0
  468. package/dist/blocks/reset-password-01/index.d.ts +3 -0
  469. package/dist/blocks/reset-password-01/index.d.ts.map +1 -0
  470. package/dist/blocks/reset-password-01/index.js +1 -0
  471. package/dist/blocks/reset-password-01/reset-password.d.ts +276 -0
  472. package/dist/blocks/reset-password-01/reset-password.d.ts.map +1 -0
  473. package/dist/blocks/reset-password-01/reset-password.js +175 -0
  474. package/dist/blocks/resource-list-01/index.d.ts +3 -0
  475. package/dist/blocks/resource-list-01/index.d.ts.map +1 -0
  476. package/dist/blocks/resource-list-01/index.js +1 -0
  477. package/dist/blocks/resource-list-01/resource-list.d.ts +237 -0
  478. package/dist/blocks/resource-list-01/resource-list.d.ts.map +1 -0
  479. package/dist/blocks/resource-list-01/resource-list.js +154 -0
  480. package/dist/blocks/retention-01/index.d.ts +3 -0
  481. package/dist/blocks/retention-01/index.d.ts.map +1 -0
  482. package/dist/blocks/retention-01/index.js +1 -0
  483. package/dist/blocks/retention-01/retention.d.ts +255 -0
  484. package/dist/blocks/retention-01/retention.d.ts.map +1 -0
  485. package/dist/blocks/retention-01/retention.js +145 -0
  486. package/dist/blocks/run-console-01/run-console.d.ts +14 -1
  487. package/dist/blocks/run-console-01/run-console.d.ts.map +1 -1
  488. package/dist/blocks/run-console-01/run-console.js +4 -2
  489. package/dist/blocks/services-01/index.d.ts +3 -0
  490. package/dist/blocks/services-01/index.d.ts.map +1 -0
  491. package/dist/blocks/services-01/index.js +1 -0
  492. package/dist/blocks/services-01/services.d.ts +159 -0
  493. package/dist/blocks/services-01/services.d.ts.map +1 -0
  494. package/dist/blocks/services-01/services.js +81 -0
  495. package/dist/blocks/settings-integrations-01/index.d.ts +3 -0
  496. package/dist/blocks/settings-integrations-01/index.d.ts.map +1 -0
  497. package/dist/blocks/settings-integrations-01/index.js +1 -0
  498. package/dist/blocks/settings-integrations-01/settings-integrations.d.ts +246 -0
  499. package/dist/blocks/settings-integrations-01/settings-integrations.d.ts.map +1 -0
  500. package/dist/blocks/settings-integrations-01/settings-integrations.js +213 -0
  501. package/dist/blocks/settings-members-01/index.d.ts +3 -0
  502. package/dist/blocks/settings-members-01/index.d.ts.map +1 -0
  503. package/dist/blocks/settings-members-01/index.js +1 -0
  504. package/dist/blocks/settings-members-01/settings-members.d.ts +396 -0
  505. package/dist/blocks/settings-members-01/settings-members.d.ts.map +1 -0
  506. package/dist/blocks/settings-members-01/settings-members.js +255 -0
  507. package/dist/blocks/settings-notifications-01/index.d.ts +3 -0
  508. package/dist/blocks/settings-notifications-01/index.d.ts.map +1 -0
  509. package/dist/blocks/settings-notifications-01/index.js +1 -0
  510. package/dist/blocks/settings-notifications-01/settings-notifications.d.ts +270 -0
  511. package/dist/blocks/settings-notifications-01/settings-notifications.d.ts.map +1 -0
  512. package/dist/blocks/settings-notifications-01/settings-notifications.js +202 -0
  513. package/dist/blocks/settings-security-01/index.d.ts +3 -0
  514. package/dist/blocks/settings-security-01/index.d.ts.map +1 -0
  515. package/dist/blocks/settings-security-01/index.js +1 -0
  516. package/dist/blocks/settings-security-01/settings-security.d.ts +439 -0
  517. package/dist/blocks/settings-security-01/settings-security.d.ts.map +1 -0
  518. package/dist/blocks/settings-security-01/settings-security.js +244 -0
  519. package/dist/blocks/shortlist-01/index.d.ts +3 -0
  520. package/dist/blocks/shortlist-01/index.d.ts.map +1 -0
  521. package/dist/blocks/shortlist-01/index.js +1 -0
  522. package/dist/blocks/shortlist-01/shortlist-01.d.ts +337 -0
  523. package/dist/blocks/shortlist-01/shortlist-01.d.ts.map +1 -0
  524. package/dist/blocks/shortlist-01/shortlist-01.js +191 -0
  525. package/dist/blocks/showcase-01/index.d.ts +3 -0
  526. package/dist/blocks/showcase-01/index.d.ts.map +1 -0
  527. package/dist/blocks/showcase-01/index.js +1 -0
  528. package/dist/blocks/showcase-01/showcase-01.d.ts +238 -0
  529. package/dist/blocks/showcase-01/showcase-01.d.ts.map +1 -0
  530. package/dist/blocks/showcase-01/showcase-01.js +84 -0
  531. package/dist/blocks/signup-01/index.d.ts +3 -0
  532. package/dist/blocks/signup-01/index.d.ts.map +1 -0
  533. package/dist/blocks/signup-01/index.js +1 -0
  534. package/dist/blocks/signup-01/signup-01.d.ts +405 -0
  535. package/dist/blocks/signup-01/signup-01.d.ts.map +1 -0
  536. package/dist/blocks/signup-01/signup-01.js +209 -0
  537. package/dist/blocks/site-footer/site-footer.d.ts +34 -1
  538. package/dist/blocks/site-footer/site-footer.d.ts.map +1 -1
  539. package/dist/blocks/site-footer/site-footer.js +24 -2
  540. package/dist/blocks/site-header/site-header.js +1 -1
  541. package/dist/blocks/site-navbar/site-navbar.d.ts +37 -3
  542. package/dist/blocks/site-navbar/site-navbar.d.ts.map +1 -1
  543. package/dist/blocks/site-navbar/site-navbar.js +33 -4
  544. package/dist/blocks/spec-table-01/index.d.ts +3 -0
  545. package/dist/blocks/spec-table-01/index.d.ts.map +1 -0
  546. package/dist/blocks/spec-table-01/index.js +1 -0
  547. package/dist/blocks/spec-table-01/spec-table.d.ts +293 -0
  548. package/dist/blocks/spec-table-01/spec-table.d.ts.map +1 -0
  549. package/dist/blocks/spec-table-01/spec-table.js +217 -0
  550. package/dist/blocks/stack-grid-01/stack-grid.d.ts +13 -0
  551. package/dist/blocks/stack-grid-01/stack-grid.d.ts.map +1 -1
  552. package/dist/blocks/stack-grid-01/stack-grid.js +14 -1
  553. package/dist/blocks/story-01/index.d.ts +3 -0
  554. package/dist/blocks/story-01/index.d.ts.map +1 -0
  555. package/dist/blocks/story-01/index.js +1 -0
  556. package/dist/blocks/story-01/story.d.ts +153 -0
  557. package/dist/blocks/story-01/story.d.ts.map +1 -0
  558. package/dist/blocks/story-01/story.js +103 -0
  559. package/dist/blocks/summary-01/index.d.ts +3 -0
  560. package/dist/blocks/summary-01/index.d.ts.map +1 -0
  561. package/dist/blocks/summary-01/index.js +1 -0
  562. package/dist/blocks/summary-01/summary.d.ts +300 -0
  563. package/dist/blocks/summary-01/summary.d.ts.map +1 -0
  564. package/dist/blocks/summary-01/summary.js +174 -0
  565. package/dist/blocks/team-01/index.d.ts +3 -0
  566. package/dist/blocks/team-01/index.d.ts.map +1 -0
  567. package/dist/blocks/team-01/index.js +1 -0
  568. package/dist/blocks/team-01/team.d.ts +176 -0
  569. package/dist/blocks/team-01/team.d.ts.map +1 -0
  570. package/dist/blocks/team-01/team.js +117 -0
  571. package/dist/blocks/testimonial-01/index.d.ts +3 -0
  572. package/dist/blocks/testimonial-01/index.d.ts.map +1 -0
  573. package/dist/blocks/testimonial-01/index.js +1 -0
  574. package/dist/blocks/testimonial-01/testimonial.d.ts +173 -0
  575. package/dist/blocks/testimonial-01/testimonial.d.ts.map +1 -0
  576. package/dist/blocks/testimonial-01/testimonial.js +87 -0
  577. package/dist/blocks/todo-01/index.d.ts +3 -0
  578. package/dist/blocks/todo-01/index.d.ts.map +1 -0
  579. package/dist/blocks/todo-01/index.js +1 -0
  580. package/dist/blocks/todo-01/todo.d.ts +286 -0
  581. package/dist/blocks/todo-01/todo.d.ts.map +1 -0
  582. package/dist/blocks/todo-01/todo.js +149 -0
  583. package/dist/blocks/trend-01/index.d.ts +3 -0
  584. package/dist/blocks/trend-01/index.d.ts.map +1 -0
  585. package/dist/blocks/trend-01/index.js +1 -0
  586. package/dist/blocks/trend-01/trend.d.ts +184 -0
  587. package/dist/blocks/trend-01/trend.d.ts.map +1 -0
  588. package/dist/blocks/trend-01/trend.js +99 -0
  589. package/dist/blocks/trust-strip-01/index.d.ts +3 -0
  590. package/dist/blocks/trust-strip-01/index.d.ts.map +1 -0
  591. package/dist/blocks/trust-strip-01/index.js +1 -0
  592. package/dist/blocks/trust-strip-01/trust-strip-01.d.ts +139 -0
  593. package/dist/blocks/trust-strip-01/trust-strip-01.d.ts.map +1 -0
  594. package/dist/blocks/trust-strip-01/trust-strip-01.js +58 -0
  595. package/dist/blocks/two-factor-01/index.d.ts +3 -0
  596. package/dist/blocks/two-factor-01/index.d.ts.map +1 -0
  597. package/dist/blocks/two-factor-01/index.js +1 -0
  598. package/dist/blocks/two-factor-01/two-factor-01.d.ts +440 -0
  599. package/dist/blocks/two-factor-01/two-factor-01.d.ts.map +1 -0
  600. package/dist/blocks/two-factor-01/two-factor-01.js +273 -0
  601. package/dist/blocks/user-profile-01/index.d.ts +3 -0
  602. package/dist/blocks/user-profile-01/index.d.ts.map +1 -0
  603. package/dist/blocks/user-profile-01/index.js +1 -0
  604. package/dist/blocks/user-profile-01/user-profile-01.d.ts +258 -0
  605. package/dist/blocks/user-profile-01/user-profile-01.d.ts.map +1 -0
  606. package/dist/blocks/user-profile-01/user-profile-01.js +158 -0
  607. package/dist/blocks/verify-email-01/index.d.ts +3 -0
  608. package/dist/blocks/verify-email-01/index.d.ts.map +1 -0
  609. package/dist/blocks/verify-email-01/index.js +1 -0
  610. package/dist/blocks/verify-email-01/verify-email.d.ts +262 -0
  611. package/dist/blocks/verify-email-01/verify-email.d.ts.map +1 -0
  612. package/dist/blocks/verify-email-01/verify-email.js +190 -0
  613. package/dist/blocks/waitlist-01/index.d.ts +3 -0
  614. package/dist/blocks/waitlist-01/index.d.ts.map +1 -0
  615. package/dist/blocks/waitlist-01/index.js +1 -0
  616. package/dist/blocks/waitlist-01/waitlist.d.ts +254 -0
  617. package/dist/blocks/waitlist-01/waitlist.d.ts.map +1 -0
  618. package/dist/blocks/waitlist-01/waitlist.js +75 -0
  619. package/dist/catalog.d.ts.map +1 -1
  620. package/dist/catalog.js +1641 -1
  621. package/dist/components/index.d.ts +114 -0
  622. package/dist/components/index.d.ts.map +1 -1
  623. package/dist/components/index.js +134 -0
  624. package/dist/components/ui/accordion.d.ts.map +1 -1
  625. package/dist/components/ui/accordion.js +9 -2
  626. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  627. package/dist/components/ui/alert-dialog.js +22 -4
  628. package/dist/components/ui/announcement.d.ts +169 -0
  629. package/dist/components/ui/announcement.d.ts.map +1 -0
  630. package/dist/components/ui/announcement.js +123 -0
  631. package/dist/components/ui/avatar-group.d.ts +176 -0
  632. package/dist/components/ui/avatar-group.d.ts.map +1 -0
  633. package/dist/components/ui/avatar-group.js +135 -0
  634. package/dist/components/ui/billing-source.d.ts +293 -0
  635. package/dist/components/ui/billing-source.d.ts.map +1 -0
  636. package/dist/components/ui/billing-source.js +136 -0
  637. package/dist/components/ui/button.d.ts +16 -1
  638. package/dist/components/ui/button.d.ts.map +1 -1
  639. package/dist/components/ui/button.js +17 -2
  640. package/dist/components/ui/calendar.d.ts +9 -0
  641. package/dist/components/ui/calendar.d.ts.map +1 -1
  642. package/dist/components/ui/calendar.js +30 -2
  643. package/dist/components/ui/carousel.d.ts +7 -0
  644. package/dist/components/ui/carousel.d.ts.map +1 -1
  645. package/dist/components/ui/carousel.js +58 -1
  646. package/dist/components/ui/chart.d.ts +334 -0
  647. package/dist/components/ui/chart.d.ts.map +1 -0
  648. package/dist/components/ui/chart.js +369 -0
  649. package/dist/components/ui/checkbox.d.ts +10 -0
  650. package/dist/components/ui/checkbox.d.ts.map +1 -1
  651. package/dist/components/ui/checkbox.js +19 -1
  652. package/dist/components/ui/checklist.d.ts +262 -0
  653. package/dist/components/ui/checklist.d.ts.map +1 -0
  654. package/dist/components/ui/checklist.js +135 -0
  655. package/dist/components/ui/choice-card.d.ts +273 -0
  656. package/dist/components/ui/choice-card.d.ts.map +1 -0
  657. package/dist/components/ui/choice-card.js +138 -0
  658. package/dist/components/ui/code-block.d.ts +182 -0
  659. package/dist/components/ui/code-block.d.ts.map +1 -0
  660. package/dist/components/ui/code-block.js +108 -0
  661. package/dist/components/ui/cohort-grid.d.ts +210 -0
  662. package/dist/components/ui/cohort-grid.d.ts.map +1 -0
  663. package/dist/components/ui/cohort-grid.js +202 -0
  664. package/dist/components/ui/collapsible.d.ts +11 -0
  665. package/dist/components/ui/collapsible.d.ts.map +1 -1
  666. package/dist/components/ui/collapsible.js +13 -2
  667. package/dist/components/ui/combobox.d.ts +4 -1
  668. package/dist/components/ui/combobox.d.ts.map +1 -1
  669. package/dist/components/ui/combobox.js +20 -4
  670. package/dist/components/ui/command-palette.d.ts +11 -0
  671. package/dist/components/ui/command-palette.d.ts.map +1 -1
  672. package/dist/components/ui/command-palette.js +49 -3
  673. package/dist/components/ui/contribution-graph.d.ts +156 -0
  674. package/dist/components/ui/contribution-graph.d.ts.map +1 -0
  675. package/dist/components/ui/contribution-graph.js +170 -0
  676. package/dist/components/ui/creatable-combobox.d.ts +153 -0
  677. package/dist/components/ui/creatable-combobox.d.ts.map +1 -0
  678. package/dist/components/ui/creatable-combobox.js +285 -0
  679. package/dist/components/ui/data-toolbar.d.ts +133 -0
  680. package/dist/components/ui/data-toolbar.d.ts.map +1 -0
  681. package/dist/components/ui/data-toolbar.js +67 -0
  682. package/dist/components/ui/date-picker.d.ts.map +1 -1
  683. package/dist/components/ui/date-picker.js +9 -1
  684. package/dist/components/ui/diagram.d.ts +38 -7
  685. package/dist/components/ui/diagram.d.ts.map +1 -1
  686. package/dist/components/ui/diagram.js +134 -52
  687. package/dist/components/ui/dialog.d.ts +31 -2
  688. package/dist/components/ui/dialog.d.ts.map +1 -1
  689. package/dist/components/ui/dialog.js +40 -6
  690. package/dist/components/ui/drawer.d.ts +270 -0
  691. package/dist/components/ui/drawer.d.ts.map +1 -0
  692. package/dist/components/ui/drawer.js +241 -0
  693. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  694. package/dist/components/ui/dropdown-menu.js +6 -1
  695. package/dist/components/ui/dropzone.d.ts +147 -0
  696. package/dist/components/ui/dropzone.d.ts.map +1 -0
  697. package/dist/components/ui/dropzone.js +141 -0
  698. package/dist/components/ui/emoji-picker.d.ts +328 -0
  699. package/dist/components/ui/emoji-picker.d.ts.map +1 -0
  700. package/dist/components/ui/emoji-picker.js +278 -0
  701. package/dist/components/ui/fact-list.d.ts +17 -0
  702. package/dist/components/ui/fact-list.d.ts.map +1 -1
  703. package/dist/components/ui/fact-list.js +18 -1
  704. package/dist/components/ui/file-upload.d.ts +152 -0
  705. package/dist/components/ui/file-upload.d.ts.map +1 -0
  706. package/dist/components/ui/file-upload.js +101 -0
  707. package/dist/components/ui/filter-panel.d.ts +164 -0
  708. package/dist/components/ui/filter-panel.d.ts.map +1 -0
  709. package/dist/components/ui/filter-panel.js +91 -0
  710. package/dist/components/ui/form-dialog.d.ts +257 -0
  711. package/dist/components/ui/form-dialog.d.ts.map +1 -0
  712. package/dist/components/ui/form-dialog.js +176 -0
  713. package/dist/components/ui/form-wizard.d.ts +251 -0
  714. package/dist/components/ui/form-wizard.d.ts.map +1 -0
  715. package/dist/components/ui/form-wizard.js +151 -0
  716. package/dist/components/ui/image-list-field.d.ts +232 -0
  717. package/dist/components/ui/image-list-field.d.ts.map +1 -0
  718. package/dist/components/ui/image-list-field.js +168 -0
  719. package/dist/components/ui/image-zoom.d.ts +164 -0
  720. package/dist/components/ui/image-zoom.d.ts.map +1 -0
  721. package/dist/components/ui/image-zoom.js +169 -0
  722. package/dist/components/ui/intensity-grid.d.ts +270 -0
  723. package/dist/components/ui/intensity-grid.d.ts.map +1 -0
  724. package/dist/components/ui/intensity-grid.js +211 -0
  725. package/dist/components/ui/lifecycle-button.d.ts +276 -0
  726. package/dist/components/ui/lifecycle-button.d.ts.map +1 -0
  727. package/dist/components/ui/lifecycle-button.js +144 -0
  728. package/dist/components/ui/lightbox.d.ts +165 -0
  729. package/dist/components/ui/lightbox.d.ts.map +1 -0
  730. package/dist/components/ui/lightbox.js +130 -0
  731. package/dist/components/ui/list-panel.d.ts +288 -0
  732. package/dist/components/ui/list-panel.d.ts.map +1 -0
  733. package/dist/components/ui/list-panel.js +139 -0
  734. package/dist/components/ui/mega-menu.d.ts +244 -0
  735. package/dist/components/ui/mega-menu.d.ts.map +1 -0
  736. package/dist/components/ui/mega-menu.js +97 -0
  737. package/dist/components/ui/menubar.d.ts +9 -0
  738. package/dist/components/ui/menubar.d.ts.map +1 -1
  739. package/dist/components/ui/menubar.js +10 -1
  740. package/dist/components/ui/metric.d.ts +123 -0
  741. package/dist/components/ui/metric.d.ts.map +1 -0
  742. package/dist/components/ui/metric.js +68 -0
  743. package/dist/components/ui/mini-calendar.d.ts +143 -0
  744. package/dist/components/ui/mini-calendar.d.ts.map +1 -0
  745. package/dist/components/ui/mini-calendar.js +261 -0
  746. package/dist/components/ui/mode-toggle.d.ts +102 -0
  747. package/dist/components/ui/mode-toggle.d.ts.map +1 -0
  748. package/dist/components/ui/mode-toggle.js +83 -0
  749. package/dist/components/ui/money-field.d.ts +200 -0
  750. package/dist/components/ui/money-field.d.ts.map +1 -0
  751. package/dist/components/ui/money-field.js +215 -0
  752. package/dist/components/ui/multi-combobox.d.ts +181 -0
  753. package/dist/components/ui/multi-combobox.d.ts.map +1 -0
  754. package/dist/components/ui/multi-combobox.js +297 -0
  755. package/dist/components/ui/native-select.d.ts.map +1 -1
  756. package/dist/components/ui/native-select.js +8 -1
  757. package/dist/components/ui/navigation-menu.d.ts +7 -0
  758. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  759. package/dist/components/ui/navigation-menu.js +8 -1
  760. package/dist/components/ui/nested-tabs.d.ts +188 -0
  761. package/dist/components/ui/nested-tabs.d.ts.map +1 -0
  762. package/dist/components/ui/nested-tabs.js +75 -0
  763. package/dist/components/ui/number-field.d.ts +40 -7
  764. package/dist/components/ui/number-field.d.ts.map +1 -1
  765. package/dist/components/ui/number-field.js +37 -7
  766. package/dist/components/ui/overflow-actions.d.ts +169 -0
  767. package/dist/components/ui/overflow-actions.d.ts.map +1 -0
  768. package/dist/components/ui/overflow-actions.js +266 -0
  769. package/dist/components/ui/pack-swatch.d.ts +177 -0
  770. package/dist/components/ui/pack-swatch.d.ts.map +1 -0
  771. package/dist/components/ui/pack-swatch.js +117 -0
  772. package/dist/components/ui/pack-switcher.d.ts +221 -0
  773. package/dist/components/ui/pack-switcher.d.ts.map +1 -0
  774. package/dist/components/ui/pack-switcher.js +94 -0
  775. package/dist/components/ui/pagination.d.ts +22 -0
  776. package/dist/components/ui/pagination.d.ts.map +1 -1
  777. package/dist/components/ui/pagination.js +23 -1
  778. package/dist/components/ui/password-field.d.ts +122 -0
  779. package/dist/components/ui/password-field.d.ts.map +1 -0
  780. package/dist/components/ui/password-field.js +69 -0
  781. package/dist/components/ui/pill.d.ts +172 -0
  782. package/dist/components/ui/pill.d.ts.map +1 -0
  783. package/dist/components/ui/pill.js +102 -0
  784. package/dist/components/ui/platform-modifier-key.d.ts +129 -0
  785. package/dist/components/ui/platform-modifier-key.d.ts.map +1 -0
  786. package/dist/components/ui/platform-modifier-key.js +125 -0
  787. package/dist/components/ui/popover.d.ts.map +1 -1
  788. package/dist/components/ui/popover.js +8 -1
  789. package/dist/components/ui/price.d.ts +144 -0
  790. package/dist/components/ui/price.d.ts.map +1 -0
  791. package/dist/components/ui/price.js +107 -0
  792. package/dist/components/ui/progress.d.ts +55 -1
  793. package/dist/components/ui/progress.d.ts.map +1 -1
  794. package/dist/components/ui/progress.js +110 -2
  795. package/dist/components/ui/prompt-composer.d.ts +302 -0
  796. package/dist/components/ui/prompt-composer.d.ts.map +1 -0
  797. package/dist/components/ui/prompt-composer.js +145 -0
  798. package/dist/components/ui/proportion-list.d.ts +188 -0
  799. package/dist/components/ui/proportion-list.d.ts.map +1 -0
  800. package/dist/components/ui/proportion-list.js +134 -0
  801. package/dist/components/ui/prose.d.ts +34 -0
  802. package/dist/components/ui/prose.d.ts.map +1 -1
  803. package/dist/components/ui/prose.js +41 -1
  804. package/dist/components/ui/pulse-graph.d.ts +36 -4
  805. package/dist/components/ui/pulse-graph.d.ts.map +1 -1
  806. package/dist/components/ui/pulse-graph.js +174 -60
  807. package/dist/components/ui/radio-group.d.ts +7 -0
  808. package/dist/components/ui/radio-group.d.ts.map +1 -1
  809. package/dist/components/ui/radio-group.js +8 -1
  810. package/dist/components/ui/range-field.d.ts +158 -0
  811. package/dist/components/ui/range-field.d.ts.map +1 -0
  812. package/dist/components/ui/range-field.js +208 -0
  813. package/dist/components/ui/relative-time.d.ts +116 -0
  814. package/dist/components/ui/relative-time.d.ts.map +1 -0
  815. package/dist/components/ui/relative-time.js +67 -0
  816. package/dist/components/ui/reorderable-list.d.ts +262 -0
  817. package/dist/components/ui/reorderable-list.d.ts.map +1 -0
  818. package/dist/components/ui/reorderable-list.js +325 -0
  819. package/dist/components/ui/repeatable-rows.d.ts +241 -0
  820. package/dist/components/ui/repeatable-rows.d.ts.map +1 -0
  821. package/dist/components/ui/repeatable-rows.js +221 -0
  822. package/dist/components/ui/repo-stars.d.ts +165 -0
  823. package/dist/components/ui/repo-stars.d.ts.map +1 -0
  824. package/dist/components/ui/repo-stars.js +92 -0
  825. package/dist/components/ui/resizable.d.ts +24 -0
  826. package/dist/components/ui/resizable.d.ts.map +1 -1
  827. package/dist/components/ui/resizable.js +96 -4
  828. package/dist/components/ui/search-dialog.d.ts +40 -5
  829. package/dist/components/ui/search-dialog.d.ts.map +1 -1
  830. package/dist/components/ui/search-dialog.js +94 -16
  831. package/dist/components/ui/search-field.d.ts +159 -0
  832. package/dist/components/ui/search-field.d.ts.map +1 -0
  833. package/dist/components/ui/search-field.js +98 -0
  834. package/dist/components/ui/section.d.ts +110 -1
  835. package/dist/components/ui/section.d.ts.map +1 -1
  836. package/dist/components/ui/section.js +111 -3
  837. package/dist/components/ui/select.d.ts.map +1 -1
  838. package/dist/components/ui/select.js +9 -1
  839. package/dist/components/ui/selection-toolbar.d.ts +166 -0
  840. package/dist/components/ui/selection-toolbar.d.ts.map +1 -0
  841. package/dist/components/ui/selection-toolbar.js +139 -0
  842. package/dist/components/ui/sidebar.d.ts +29 -0
  843. package/dist/components/ui/sidebar.d.ts.map +1 -1
  844. package/dist/components/ui/sidebar.js +35 -2
  845. package/dist/components/ui/signal-field.d.ts.map +1 -1
  846. package/dist/components/ui/signal-field.js +1 -1
  847. package/dist/components/ui/slider.d.ts +7 -0
  848. package/dist/components/ui/slider.d.ts.map +1 -1
  849. package/dist/components/ui/slider.js +32 -1
  850. package/dist/components/ui/sparkline.d.ts +117 -0
  851. package/dist/components/ui/sparkline.d.ts.map +1 -0
  852. package/dist/components/ui/sparkline.js +113 -0
  853. package/dist/components/ui/spinner.d.ts.map +1 -1
  854. package/dist/components/ui/spinner.js +13 -0
  855. package/dist/components/ui/split-button.d.ts +207 -0
  856. package/dist/components/ui/split-button.d.ts.map +1 -0
  857. package/dist/components/ui/split-button.js +75 -0
  858. package/dist/components/ui/stateful-table.d.ts +345 -0
  859. package/dist/components/ui/stateful-table.d.ts.map +1 -0
  860. package/dist/components/ui/stateful-table.js +169 -0
  861. package/dist/components/ui/status.d.ts +99 -0
  862. package/dist/components/ui/status.d.ts.map +1 -0
  863. package/dist/components/ui/status.js +63 -0
  864. package/dist/components/ui/stepper.d.ts +155 -0
  865. package/dist/components/ui/stepper.d.ts.map +1 -0
  866. package/dist/components/ui/stepper.js +83 -0
  867. package/dist/components/ui/steps.d.ts +141 -0
  868. package/dist/components/ui/steps.d.ts.map +1 -0
  869. package/dist/components/ui/steps.js +128 -0
  870. package/dist/components/ui/switch.d.ts +8 -0
  871. package/dist/components/ui/switch.d.ts.map +1 -1
  872. package/dist/components/ui/switch.js +12 -1
  873. package/dist/components/ui/tabs.d.ts +21 -2
  874. package/dist/components/ui/tabs.d.ts.map +1 -1
  875. package/dist/components/ui/tabs.js +23 -4
  876. package/dist/components/ui/tag-group.d.ts +154 -0
  877. package/dist/components/ui/tag-group.d.ts.map +1 -0
  878. package/dist/components/ui/tag-group.js +111 -0
  879. package/dist/components/ui/task-progress.d.ts +149 -0
  880. package/dist/components/ui/task-progress.d.ts.map +1 -0
  881. package/dist/components/ui/task-progress.js +110 -0
  882. package/dist/components/ui/text-format-toolbar.d.ts +211 -0
  883. package/dist/components/ui/text-format-toolbar.d.ts.map +1 -0
  884. package/dist/components/ui/text-format-toolbar.js +186 -0
  885. package/dist/components/ui/timeline.d.ts.map +1 -1
  886. package/dist/components/ui/timeline.js +10 -1
  887. package/dist/components/ui/toast.d.ts +32 -10
  888. package/dist/components/ui/toast.d.ts.map +1 -1
  889. package/dist/components/ui/toast.js +150 -47
  890. package/dist/components/ui/toggle-group.d.ts +14 -5
  891. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  892. package/dist/components/ui/toggle-group.js +15 -1
  893. package/dist/components/ui/toggle.d.ts.map +1 -1
  894. package/dist/components/ui/toggle.js +9 -1
  895. package/dist/components/ui/tree.d.ts +8 -0
  896. package/dist/components/ui/tree.d.ts.map +1 -1
  897. package/dist/components/ui/tree.js +92 -13
  898. package/dist/components/ui/video-player.d.ts +236 -0
  899. package/dist/components/ui/video-player.d.ts.map +1 -0
  900. package/dist/components/ui/video-player.js +72 -0
  901. package/dist/fonts/inter-latin-400-italic.woff2 +0 -0
  902. package/dist/index.d.ts +112 -0
  903. package/dist/index.d.ts.map +1 -1
  904. package/dist/index.js +72 -0
  905. package/dist/lib/figure.d.ts +149 -0
  906. package/dist/lib/figure.d.ts.map +1 -0
  907. package/dist/lib/figure.js +242 -0
  908. package/dist/lib/utils.d.ts +29 -0
  909. package/dist/lib/utils.d.ts.map +1 -1
  910. package/dist/lib/utils.js +35 -0
  911. package/dist/live/index.d.ts +10 -3
  912. package/dist/live/index.d.ts.map +1 -1
  913. package/dist/live/index.js +12 -3
  914. package/dist/live/run-stream-01/run-stream.d.ts.map +1 -1
  915. package/dist/live/run-stream-01/run-stream.js +6 -5
  916. package/dist/live/tool-ledger-01/index.d.ts +3 -0
  917. package/dist/live/tool-ledger-01/index.d.ts.map +1 -0
  918. package/dist/live/tool-ledger-01/index.js +1 -0
  919. package/dist/live/tool-ledger-01/tool-ledger.d.ts +348 -0
  920. package/dist/live/tool-ledger-01/tool-ledger.d.ts.map +1 -0
  921. package/dist/live/tool-ledger-01/tool-ledger.js +245 -0
  922. package/dist/pages/about-page/index.d.ts +306 -0
  923. package/dist/pages/about-page/index.d.ts.map +1 -0
  924. package/dist/pages/about-page/index.js +161 -0
  925. package/dist/pages/blog-post-page/index.d.ts +36 -15
  926. package/dist/pages/blog-post-page/index.d.ts.map +1 -1
  927. package/dist/pages/blog-post-page/index.js +35 -10
  928. package/dist/pages/careers-page/index.d.ts +288 -0
  929. package/dist/pages/careers-page/index.d.ts.map +1 -0
  930. package/dist/pages/careers-page/index.js +182 -0
  931. package/dist/pages/changelog-page/index.d.ts +255 -0
  932. package/dist/pages/changelog-page/index.d.ts.map +1 -0
  933. package/dist/pages/changelog-page/index.js +86 -0
  934. package/dist/pages/contact-page/index.d.ts +261 -0
  935. package/dist/pages/contact-page/index.d.ts.map +1 -0
  936. package/dist/pages/contact-page/index.js +136 -0
  937. package/dist/pages/docs-shell/docs-shell.d.ts +126 -16
  938. package/dist/pages/docs-shell/docs-shell.d.ts.map +1 -1
  939. package/dist/pages/docs-shell/docs-shell.js +229 -28
  940. package/dist/pages/error-page/index.d.ts +188 -0
  941. package/dist/pages/error-page/index.d.ts.map +1 -0
  942. package/dist/pages/error-page/index.js +102 -0
  943. package/dist/pages/index.d.ts +10 -0
  944. package/dist/pages/index.d.ts.map +1 -1
  945. package/dist/pages/index.js +14 -0
  946. package/dist/pages/legal-page/index.d.ts +194 -0
  947. package/dist/pages/legal-page/index.d.ts.map +1 -0
  948. package/dist/pages/legal-page/index.js +99 -0
  949. package/dist/pages/not-found-page/index.d.ts.map +1 -1
  950. package/dist/pages/not-found-page/index.js +4 -3
  951. package/dist/pages/onboarding-page/index.d.ts +199 -0
  952. package/dist/pages/onboarding-page/index.d.ts.map +1 -0
  953. package/dist/pages/onboarding-page/index.js +71 -0
  954. package/dist/pages/pricing-page/index.d.ts +286 -0
  955. package/dist/pages/pricing-page/index.d.ts.map +1 -0
  956. package/dist/pages/pricing-page/index.js +139 -0
  957. package/dist/pages/search-page/index.d.ts +305 -0
  958. package/dist/pages/search-page/index.d.ts.map +1 -0
  959. package/dist/pages/search-page/index.js +142 -0
  960. package/dist/pages/status-page/index.d.ts +366 -0
  961. package/dist/pages/status-page/index.d.ts.map +1 -0
  962. package/dist/pages/status-page/index.js +136 -0
  963. package/dist/styles.css +1105 -62
  964. package/package.json +9 -3
@@ -0,0 +1,241 @@
1
+ import { type ReactNode } from 'react';
2
+ /**
3
+ * What the Component hands a row's own render prop alongside the row.
4
+ *
5
+ * Two facts, and neither of them is the row. `index` is the row's position in the
6
+ * caller's array, counted from zero, because that is the number a caller needs to
7
+ * index their own array with and a one-based ordinal would be a second convention
8
+ * to remember. `fieldId` is the id this row's first control should carry, and it
9
+ * is the only part of the Component that reaches into the caller's markup.
10
+ */
11
+ export type RepeatableRowInfo = {
12
+ /**
13
+ * The row's position in `rows`, counting from zero.
14
+ *
15
+ * Zero-based on purpose, and it is worth saying why twice: the row is the
16
+ * caller's object and the caller's array is the caller's, so the number that
17
+ * helps is the one that indexes it. It renumbers on every removal, and so does
18
+ * everything derived from it, which is the point of the Component.
19
+ */
20
+ index: number;
21
+ /**
22
+ * A generated id for this row's first control, for the caller's own `htmlFor`
23
+ * and `aria-describedby`.
24
+ *
25
+ * Generated rather than derived from the position, and the difference between
26
+ * those two is the whole accessibility story of this Component: an id that
27
+ * followed the index would change on every removal, and every `for` pointing at
28
+ * it would point at the next row's control by the time a reader clicked the
29
+ * label. This one is bound to the row, so it survives the rows around it moving.
30
+ */
31
+ fieldId: string;
32
+ };
33
+ /**
34
+ * The props the Repeatable rows accepts.
35
+ *
36
+ * The props interface is generic over the row type rather than typed as `object`,
37
+ * because a row is the caller's own domain value: a line item, a recipient, a
38
+ * scheduled window, a matching rule. A Component that took a shape of its own
39
+ * would make every caller restate their type to satisfy a form, and the row's
40
+ * fields are the caller's business rather than this Component's. A consumer who
41
+ * wants the type end to end writes their own typed wrapper over
42
+ * `RepeatableRowsProps<TheirRow>`, which is one line and is why the interface
43
+ * rather than a fixed shape is what is exported.
44
+ */
45
+ export interface RepeatableRowsProps<TRow extends object> {
46
+ /**
47
+ * The rows, in the order they are shown.
48
+ *
49
+ * Required, and the objects must be the same objects across renders. The
50
+ * Component keys each row by its identity rather than by its position, which is
51
+ * what lets a middle row leave without the rows around it losing their
52
+ * controls, and identity is only stable if the caller holds the rows somewhere
53
+ * rather than rebuilding them. A caller that writes `rows.map((r) => ({ ...r }))`
54
+ * on every render hands over a new object each time and every row remounts on
55
+ * every keystroke, which is a cost worth knowing about before it is paid. The
56
+ * same requirement React's own `key` has, met by the same arrangement: rows in
57
+ * state.
58
+ */
59
+ rows: readonly TRow[];
60
+ /**
61
+ * Called when the reader asks for another row.
62
+ *
63
+ * Required, and the Component appends nothing itself. A row is a record with
64
+ * fields the caller defines and defaults the caller decides, so a Component
65
+ * that manufactured an empty one would have to invent those defaults. The
66
+ * callback is also what tells the Component a row is coming, which is the only
67
+ * way it can put the reader's cursor in the right place afterwards.
68
+ */
69
+ onAdd: () => void;
70
+ /**
71
+ * The visible label of the add affordance, in the product's own words.
72
+ *
73
+ * Required and never defaulted: "Add recipient", "Add a line" and "Ajouter un
74
+ * destinataire" are three products' answers, and the affordance is where a
75
+ * reader decides whether the set is one they can extend.
76
+ */
77
+ addLabel: ReactNode;
78
+ /**
79
+ * Called with the row to take off the set.
80
+ *
81
+ * The row and not its index, because the caller's array is the caller's and an
82
+ * index is only meaningful to whoever wrote the array. The Component keeps the
83
+ * index for itself, for the two things it has to do with it that a caller cannot:
84
+ * renumber what remains, and move focus to a neighbour.
85
+ */
86
+ onRemove: (row: TRow) => void;
87
+ /**
88
+ * The accessible name of one row's remove control, given that row's position.
89
+ *
90
+ * Required, and a function of the position rather than of the row, for the same
91
+ * reason `rowLabel` is: the sentence has to be true after a removal, and a
92
+ * sentence written from the row's own fields is a sentence that goes stale the
93
+ * moment the rows move. Written as the action and the position, the way a reader
94
+ * counts: "Remove stop 2".
95
+ */
96
+ removeLabel: (index: number) => string;
97
+ /**
98
+ * The visible position label of one row, and the accessible name of that row's
99
+ * region, given the row's position.
100
+ *
101
+ * Required, and it is one string in one place for two jobs on purpose. The
102
+ * number a sighted reader reads and the name a screen reader announces come from
103
+ * the same call, so they cannot disagree, and both are recomputed from the
104
+ * position on every render, so a removal in the middle renumbers the rows below
105
+ * it rather than leaving a gap. Return the bare ordinal when the set is
106
+ * self-evidently numbered, and a noun with it when it is not: `"2"`, or
107
+ * `` `Stop ${index + 1}` ``.
108
+ */
109
+ rowLabel: (index: number) => string;
110
+ /**
111
+ * The row's own cells, given the row and its facts.
112
+ *
113
+ * A render prop rather than a slot, and the reason is that the Component has to
114
+ * hand the row's cells a generated `id` for their labels to point at. A `children`
115
+ * slot receives the row and nothing else, which leaves the caller minting ids
116
+ * per row and reintroducing exactly the arrangement this Component exists to
117
+ * hold still. Everything inside is the caller's: which controls a row has, what
118
+ * they are called, how they are arranged.
119
+ */
120
+ children: (row: TRow, info: RepeatableRowInfo) => ReactNode;
121
+ /**
122
+ * The set's own name, drawn above it and used as its accessible name.
123
+ *
124
+ * Optional, and the omission is deliberate rather than an oversight: this is
125
+ * the one place in the package where a region may arrive anonymous, and
126
+ * `ListPanel` says why at length. A set called "Rows" is a claim that is wrong
127
+ * in every consumer's product, and a screen reader user hearing a generic name
128
+ * learns less than hearing none. Pass one when the set sits among several.
129
+ */
130
+ label?: ReactNode;
131
+ /** Layout only. Changing a Prism-owned visual property from here is prohibited. */
132
+ className?: string;
133
+ }
134
+ /**
135
+ * A variable-length set of row objects: add one, take one away, and keep every
136
+ * label, every name and the reader's focus pointing at the right row.
137
+ *
138
+ * **It is a set of objects and not a set of values, and that is the first thing
139
+ * that makes it a Component rather than a loop.** A list of strings is a
140
+ * `TagGroup`, and a list of values with no fields at all is a `ListPanel` of
141
+ * `Item` rows. What this is for is a set of records the reader is editing one at
142
+ * a time, where each record needs a stable identity that the caller's type does
143
+ * not carry. A line item, a recipient, a scheduled window: the domain object is
144
+ * what the caller's store already holds, and asking for a `key` field on it means
145
+ * either a new field on a type the caller does not own or a parallel array the
146
+ * caller has to keep in step with a second time. So the Component mints the
147
+ * identity, keyed to the row object's own identity, and the caller never sees it.
148
+ *
149
+ * **The generated key follows the object, and that is what makes a middle removal
150
+ * survivable.** The key is held in a `WeakMap` against the row object itself, so
151
+ * a row that stays where it is keeps its key, its element, its control values and
152
+ * its caret, however many rows are taken out above it. A key derived from the
153
+ * index would reuse one element for a different record, which is invisible in a
154
+ * controlled field and destructive in an uncontrolled one. The honest cost is on
155
+ * the other side of the same decision: the map is keyed by identity, so the row
156
+ * objects have to be the same objects across renders, and a caller who rebuilds
157
+ * them on every render pays a remount on every keystroke. The prop says so where
158
+ * a caller will read it.
159
+ *
160
+ * **The generated id follows the row and the ordinal follows the position, and a
161
+ * removal has to move one without moving the other.** This is the accessibility
162
+ * argument for the whole Component, so it is worth being exact. A field label's
163
+ * `for` resolves to a control's `id`; if that `id` carried the position, removing
164
+ * the second of three rows would renumber the third row's control, and every
165
+ * label pointing at the old id would then name the wrong control, silently, on a
166
+ * form that still looks correct. So `fieldId` is derived from the row's key and
167
+ * survives everything that happens around it. The number the reader reads and the
168
+ * name the screen reader announces are the opposite: they are the position, they
169
+ * are recomputed from the index on every render, and the group around each row is
170
+ * named by that same visible label through `aria-labelledby` rather than by a
171
+ * second string. One string, two jobs, so the two can never disagree, and a
172
+ * removal in the middle renumbers the rows below it instead of leaving a hole
173
+ * where a number used to be.
174
+ *
175
+ * **Adding moves the reader into the new row, and it moves them into the first
176
+ * cell rather than onto the row.** A row that receives focus and nothing else is
177
+ * a reader who is told "stop 4" and then has to Tab to find out what is in it,
178
+ * which is the same dead end as focus landing on `body`: the work of finding the
179
+ * first control is pushed back onto the person who just asked for the row. So the
180
+ * Component looks for the row's first focusable cell and puts the reader in it.
181
+ * When there is none, because the caller's row is a read-only summary or a row of
182
+ * custom controls, the focus lands on the row itself, which carries
183
+ * `tabindex="-1"` and the row's own name so the reader at least hears where they
184
+ * are. The cost of that fallback is stated rather than hidden: a container
185
+ * focused by script draws its ring only when the browser believes the reader is
186
+ * navigating by keyboard, which is the same rule every programmatically focused
187
+ * container follows, and a caller who needs a guaranteed visible landing point
188
+ * gives the row a real control first.
189
+ *
190
+ * **Removing moves the reader to a neighbour, because the button they pressed is
191
+ * about to stop existing.** Same argument as the field, and the destination is
192
+ * the same one: the row that moved up into the removed row's place, or the row
193
+ * above it when the removed row was last, and the add control when the set is now
194
+ * empty. A set whose last row is removed leaves one operable thing in the
195
+ * Component, and it is the one the reader will press next.
196
+ *
197
+ * **The Component owns the row's frame and the caller owns the row's cells, which
198
+ * is the same division `Item` draws one level up.** The position label, the
199
+ * remove control and the region semantics are Prism's, because they are the parts
200
+ * that have to stay consistent across every set in every consumer and they are
201
+ * the parts a caller gets wrong. The controls are the caller's, because what a
202
+ * row contains is a fact about the caller's record. `Button` draws the add
203
+ * affordance rather than this Component re-deriving a control's metrics, and the
204
+ * focus targets are the Component's own `data-slot` values read back through one
205
+ * root ref, because a ref per row would be a second bookkeeping list to reconcile
206
+ * against the caller's array on every commit.
207
+ *
208
+ * **It draws no empty state, and the omission is a decision.** A repeatable set
209
+ * with no rows is the ordinary first state of every form that has one, and a
210
+ * sentence about it is a claim about the caller's form that Prism cannot make. A
211
+ * bordered box with a heading above it and nothing in it reads as a rendering
212
+ * failure, so with no rows the Component draws no frame at all, and the add
213
+ * affordance is the only thing on the page.
214
+ *
215
+ * **It is a client Component**, because both focus moves happen after the reader
216
+ * acts and neither can be known at a server render, and because every one of its
217
+ * value props is a function the caller hands it, which is a client-to-client
218
+ * boundary wherever it is written. What that costs is the price of every client
219
+ * field: a server Component may render the set once with the rows already in
220
+ * place, and what it may not do is offer the add and remove affordances with
221
+ * focus that behaves.
222
+ *
223
+ * **The row type is not a type parameter of this function, and the reason is a
224
+ * gate rather than a preference, so it is worth stating exactly.** A Component
225
+ * declared as `function RepeatableRows<TRow>(...)` is invisible to
226
+ * `check-item-docs.mjs`, which finds an Item's declaration by matching a function
227
+ * name followed by an open parenthesis; a generic's angle bracket sits between the
228
+ * two, so the gate reports the module as declaring no Item at all and the build
229
+ * fails. The whole Component layer of this package is therefore written without
230
+ * generics, and this Component pays for it in exactly one place: the props
231
+ * interface is generic, and the exported function instantiates it without a row
232
+ * type. The cost is that a caller's render prop receives its row untyped, so a
233
+ * caller who wants the type either annotates the parameter in the prop, which is
234
+ * one word, or writes their own wrapper over `RepeatableRowsProps<TheirRow>`,
235
+ * which is one line. The benefit is that the Item stays a documented Item with an
236
+ * interface the corpus can read, and that is worth more than inference on a
237
+ * callback whose row the caller has just handed the Component themselves.
238
+ */
239
+ declare function RepeatableRows({ rows, onAdd, addLabel, onRemove, removeLabel, rowLabel, children, label, className, }: RepeatableRowsProps<any>): import("react").JSX.Element;
240
+ export { RepeatableRows };
241
+ //# sourceMappingURL=repeatable-rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repeatable-rows.d.ts","sourceRoot":"","sources":["../../../src/components/ui/repeatable-rows.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAKhE;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;;;;OAOG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB,CAAC,IAAI,SAAS,MAAM;IACtD;;;;;;;;;;;;OAYG;IACH,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA;IACrB;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB;;;;;;OAMG;IACH,QAAQ,EAAE,SAAS,CAAA;IACnB;;;;;;;OAOG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAA;IAC7B;;;;;;;;OAQG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACtC;;;;;;;;;;;OAWG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC;;;;;;;;;OASG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,KAAK,SAAS,CAAA;IAC3D;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAmCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwGG;AACH,iBAAS,cAAc,CAAC,EACtB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,SAAS,GACV,EAAE,mBAAmB,CAAC,GAAG,CAAC,+BA8K1B;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,221 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { PlusIcon, XIcon } from 'lucide-react';
4
+ import { useEffect, useId, useRef } from 'react';
5
+ import { Button } from './button.js';
6
+ import { cn } from '../../lib/utils.js';
7
+ /**
8
+ * The remove control, drawn once and used by every row.
9
+ *
10
+ * The muted ink because every row is the same surface and a control that changed
11
+ * colour with its row's state would be a second thing to read, and the 44px
12
+ * coarse-pointer floor so a set of five rows on a phone is a set of rows a thumb
13
+ * can hit. Duplicated as a constant rather than imported, because the remove
14
+ * controls in this package are each drawn inside the module that owns them and
15
+ * there is no shared recipe on the surface: a caller cannot reach into another
16
+ * Component's row geometry, and a design system that exported one class string as
17
+ * a public API would be publishing a styling hook.
18
+ */
19
+ const REMOVE_CONTROL = 'text-muted-foreground hover:text-foreground inline-flex size-5 shrink-0 cursor-pointer items-center justify-center rounded-sm outline-none transition-colors duration-fast ease-out pointer-coarse:size-11 focus-visible:ring-ring focus-visible:ring-[3px]';
20
+ /**
21
+ * The first control in a row, found by asking the row rather than by being told.
22
+ *
23
+ * The Component cannot be told which of the caller's cells is first, because a
24
+ * cell is whatever the caller's render prop returned and the Component never sees
25
+ * the caller's field. So it asks the row. Three groups are excluded and each
26
+ * exclusion is a real case: a hidden input is focusable and invisible, a
27
+ * disabled control refuses focus, and a control already opted out with
28
+ * `tabindex="-1"` asked not to be.
29
+ */
30
+ const FIRST_FOCUSABLE = 'input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),[contenteditable],[tabindex]:not([tabindex="-1"])';
31
+ /** The Component's own slots, read back through one root ref after a change. */
32
+ const ROW_SLOT = '[data-slot="repeatable-rows-row"]';
33
+ const REMOVE_SLOT = '[data-slot="repeatable-rows-remove"]';
34
+ const ADD_SLOT = '[data-slot="repeatable-rows-add"]';
35
+ /**
36
+ * A variable-length set of row objects: add one, take one away, and keep every
37
+ * label, every name and the reader's focus pointing at the right row.
38
+ *
39
+ * **It is a set of objects and not a set of values, and that is the first thing
40
+ * that makes it a Component rather than a loop.** A list of strings is a
41
+ * `TagGroup`, and a list of values with no fields at all is a `ListPanel` of
42
+ * `Item` rows. What this is for is a set of records the reader is editing one at
43
+ * a time, where each record needs a stable identity that the caller's type does
44
+ * not carry. A line item, a recipient, a scheduled window: the domain object is
45
+ * what the caller's store already holds, and asking for a `key` field on it means
46
+ * either a new field on a type the caller does not own or a parallel array the
47
+ * caller has to keep in step with a second time. So the Component mints the
48
+ * identity, keyed to the row object's own identity, and the caller never sees it.
49
+ *
50
+ * **The generated key follows the object, and that is what makes a middle removal
51
+ * survivable.** The key is held in a `WeakMap` against the row object itself, so
52
+ * a row that stays where it is keeps its key, its element, its control values and
53
+ * its caret, however many rows are taken out above it. A key derived from the
54
+ * index would reuse one element for a different record, which is invisible in a
55
+ * controlled field and destructive in an uncontrolled one. The honest cost is on
56
+ * the other side of the same decision: the map is keyed by identity, so the row
57
+ * objects have to be the same objects across renders, and a caller who rebuilds
58
+ * them on every render pays a remount on every keystroke. The prop says so where
59
+ * a caller will read it.
60
+ *
61
+ * **The generated id follows the row and the ordinal follows the position, and a
62
+ * removal has to move one without moving the other.** This is the accessibility
63
+ * argument for the whole Component, so it is worth being exact. A field label's
64
+ * `for` resolves to a control's `id`; if that `id` carried the position, removing
65
+ * the second of three rows would renumber the third row's control, and every
66
+ * label pointing at the old id would then name the wrong control, silently, on a
67
+ * form that still looks correct. So `fieldId` is derived from the row's key and
68
+ * survives everything that happens around it. The number the reader reads and the
69
+ * name the screen reader announces are the opposite: they are the position, they
70
+ * are recomputed from the index on every render, and the group around each row is
71
+ * named by that same visible label through `aria-labelledby` rather than by a
72
+ * second string. One string, two jobs, so the two can never disagree, and a
73
+ * removal in the middle renumbers the rows below it instead of leaving a hole
74
+ * where a number used to be.
75
+ *
76
+ * **Adding moves the reader into the new row, and it moves them into the first
77
+ * cell rather than onto the row.** A row that receives focus and nothing else is
78
+ * a reader who is told "stop 4" and then has to Tab to find out what is in it,
79
+ * which is the same dead end as focus landing on `body`: the work of finding the
80
+ * first control is pushed back onto the person who just asked for the row. So the
81
+ * Component looks for the row's first focusable cell and puts the reader in it.
82
+ * When there is none, because the caller's row is a read-only summary or a row of
83
+ * custom controls, the focus lands on the row itself, which carries
84
+ * `tabindex="-1"` and the row's own name so the reader at least hears where they
85
+ * are. The cost of that fallback is stated rather than hidden: a container
86
+ * focused by script draws its ring only when the browser believes the reader is
87
+ * navigating by keyboard, which is the same rule every programmatically focused
88
+ * container follows, and a caller who needs a guaranteed visible landing point
89
+ * gives the row a real control first.
90
+ *
91
+ * **Removing moves the reader to a neighbour, because the button they pressed is
92
+ * about to stop existing.** Same argument as the field, and the destination is
93
+ * the same one: the row that moved up into the removed row's place, or the row
94
+ * above it when the removed row was last, and the add control when the set is now
95
+ * empty. A set whose last row is removed leaves one operable thing in the
96
+ * Component, and it is the one the reader will press next.
97
+ *
98
+ * **The Component owns the row's frame and the caller owns the row's cells, which
99
+ * is the same division `Item` draws one level up.** The position label, the
100
+ * remove control and the region semantics are Prism's, because they are the parts
101
+ * that have to stay consistent across every set in every consumer and they are
102
+ * the parts a caller gets wrong. The controls are the caller's, because what a
103
+ * row contains is a fact about the caller's record. `Button` draws the add
104
+ * affordance rather than this Component re-deriving a control's metrics, and the
105
+ * focus targets are the Component's own `data-slot` values read back through one
106
+ * root ref, because a ref per row would be a second bookkeeping list to reconcile
107
+ * against the caller's array on every commit.
108
+ *
109
+ * **It draws no empty state, and the omission is a decision.** A repeatable set
110
+ * with no rows is the ordinary first state of every form that has one, and a
111
+ * sentence about it is a claim about the caller's form that Prism cannot make. A
112
+ * bordered box with a heading above it and nothing in it reads as a rendering
113
+ * failure, so with no rows the Component draws no frame at all, and the add
114
+ * affordance is the only thing on the page.
115
+ *
116
+ * **It is a client Component**, because both focus moves happen after the reader
117
+ * acts and neither can be known at a server render, and because every one of its
118
+ * value props is a function the caller hands it, which is a client-to-client
119
+ * boundary wherever it is written. What that costs is the price of every client
120
+ * field: a server Component may render the set once with the rows already in
121
+ * place, and what it may not do is offer the add and remove affordances with
122
+ * focus that behaves.
123
+ *
124
+ * **The row type is not a type parameter of this function, and the reason is a
125
+ * gate rather than a preference, so it is worth stating exactly.** A Component
126
+ * declared as `function RepeatableRows<TRow>(...)` is invisible to
127
+ * `check-item-docs.mjs`, which finds an Item's declaration by matching a function
128
+ * name followed by an open parenthesis; a generic's angle bracket sits between the
129
+ * two, so the gate reports the module as declaring no Item at all and the build
130
+ * fails. The whole Component layer of this package is therefore written without
131
+ * generics, and this Component pays for it in exactly one place: the props
132
+ * interface is generic, and the exported function instantiates it without a row
133
+ * type. The cost is that a caller's render prop receives its row untyped, so a
134
+ * caller who wants the type either annotates the parameter in the prop, which is
135
+ * one word, or writes their own wrapper over `RepeatableRowsProps<TheirRow>`,
136
+ * which is one line. The benefit is that the Item stays a documented Item with an
137
+ * interface the corpus can read, and that is worth more than inference on a
138
+ * callback whose row the caller has just handed the Component themselves.
139
+ */
140
+ function RepeatableRows({ rows, onAdd, addLabel, onRemove, removeLabel, rowLabel, children, label, className, }) {
141
+ const generated = useId();
142
+ const labelId = `${generated}-label`;
143
+ const rootRef = useRef(null);
144
+ // One generated key per row object, held against the object rather than
145
+ // against the position. A `WeakMap` rather than a counter keyed by index is the
146
+ // whole difference between "the third row is still the third row" and "the
147
+ // third slot is still the third slot", and the second one silently moves a
148
+ // caller's control values when a row above it is removed.
149
+ const keys = useRef(new WeakMap());
150
+ const minted = useRef(0);
151
+ // The row to put the reader in after the caller's value settles: a position, or
152
+ // `'add'` for the row the caller has been asked to append. Armed before the
153
+ // callback runs, because the row that is going away cannot be focused and the
154
+ // row that replaces it does not exist yet.
155
+ const pending = useRef(null);
156
+ const seen = useRef(rows.length);
157
+ useEffect(() => {
158
+ const target = pending.current;
159
+ const count = rows.length;
160
+ if (target === null) {
161
+ seen.current = count;
162
+ return;
163
+ }
164
+ // An add that the caller has not acted on yet stays armed. The alternative is
165
+ // to focus the row that is currently last, which is the worst outcome
166
+ // available: the reader is typing into a record they did not ask for.
167
+ if (target === 'add' && count <= seen.current)
168
+ return;
169
+ pending.current = null;
170
+ seen.current = count;
171
+ const root = rootRef.current;
172
+ if (root === null)
173
+ return;
174
+ if (target === 'add') {
175
+ const row = root.querySelectorAll(ROW_SLOT).item(count - 1);
176
+ if (row === null)
177
+ return;
178
+ const cell = row.querySelector(FIRST_FOCUSABLE);
179
+ (cell ?? row).focus();
180
+ return;
181
+ }
182
+ // A removal: the row that moved up into the removed row's place, or the one
183
+ // above it when the removed row was the last. An empty set has no row to land
184
+ // on and the add control is the only operable thing left in the Component.
185
+ if (count === 0) {
186
+ root.querySelector(ADD_SLOT)?.focus();
187
+ return;
188
+ }
189
+ const buttons = root.querySelectorAll(REMOVE_SLOT);
190
+ const button = buttons.item(Math.min(target, buttons.length - 1));
191
+ if (button === null)
192
+ root.querySelector(ADD_SLOT)?.focus();
193
+ else
194
+ button.focus();
195
+ });
196
+ const keyFor = (row) => {
197
+ const known = keys.current.get(row);
198
+ if (known !== undefined)
199
+ return known;
200
+ minted.current += 1;
201
+ const made = `row-${minted.current}`;
202
+ keys.current.set(row, made);
203
+ return made;
204
+ };
205
+ const removeAt = (index) => {
206
+ const row = rows[index];
207
+ if (row === undefined)
208
+ return;
209
+ pending.current = index;
210
+ onRemove(row);
211
+ };
212
+ return (_jsxs("div", { ref: rootRef, "data-slot": "repeatable-rows", role: "group", "aria-labelledby": label === undefined ? undefined : labelId, className: cn('flex w-full flex-col gap-2', className), children: [label === undefined ? null : (_jsx("span", { id: labelId, "data-slot": "repeatable-rows-label", className: "text-muted-foreground text-xs font-medium tracking-wide uppercase", children: label })), _jsx("ol", { "data-slot": "repeatable-rows-list", className: "flex w-full flex-col gap-2", children: rows.map((row, index) => {
213
+ const key = keyFor(row);
214
+ const fieldId = `${generated}-field-${key}`;
215
+ return (_jsxs("li", { "data-slot": "repeatable-rows-item", className: "border-border bg-card flex items-end gap-2 rounded-md border px-3 py-2", children: [_jsxs("div", { "data-slot": "repeatable-rows-row", role: "group", tabIndex: -1, "aria-labelledby": `${generated}-label-${key}`, className: cn('flex min-w-0 flex-1 flex-wrap items-end gap-2 rounded-sm outline-none', 'focus-visible:ring-ring focus-visible:ring-[3px]'), children: [_jsx("span", { id: `${generated}-label-${key}`, "data-slot": "repeatable-rows-position", className: "text-muted-foreground shrink-0 text-xs font-medium tabular-nums", children: rowLabel(index) }), children(row, { index, fieldId })] }), _jsx("button", { type: "button", "data-slot": "repeatable-rows-remove", "aria-label": removeLabel(index), onClick: () => removeAt(index), className: REMOVE_CONTROL, children: _jsx(XIcon, { className: "size-4", "aria-hidden": "true" }) })] }, key));
216
+ }) }), _jsx("div", { "data-slot": "repeatable-rows-actions", className: "flex items-center", children: _jsxs(Button, { "data-slot": "repeatable-rows-add", type: "button", variant: "outline", size: "sm", onClick: () => {
217
+ pending.current = 'add';
218
+ onAdd();
219
+ }, children: [_jsx(PlusIcon, { "aria-hidden": "true" }), addLabel] }) })] }));
220
+ }
221
+ export { RepeatableRows };
@@ -0,0 +1,165 @@
1
+ import type { ComponentProps, ReactNode } from 'react';
2
+ /**
3
+ * The two steps a star readout is drawn at, as frame and figure together.
4
+ *
5
+ * The pair moves as one because a readout is a figure with a unit attached to it
6
+ * and the two are read as one sentence: a count at the `sm` step beside a noun
7
+ * at the `md` step is a count and a caption, and a reader scanning a page of them
8
+ * sees the numbers at one height and the nouns at another. `sm` is for a footer,
9
+ * a table row and a card description, and `md` is for a card header and a page
10
+ * header. There is no third step because a star count is never the headline
11
+ * figure of a page, and a Component that could be drawn at the title step would
12
+ * be a Component asking to be the thing it annotates.
13
+ */
14
+ declare const REPO_STARS_SIZE: {
15
+ readonly sm: "items-center gap-1 text-xs";
16
+ readonly md: "items-center gap-1.5 text-sm";
17
+ };
18
+ /**
19
+ * The two steps a star readout is drawn at.
20
+ *
21
+ * @defaultValue 'md'
22
+ */
23
+ export type RepoStarsSize = keyof typeof REPO_STARS_SIZE;
24
+ /** The props a RepoStars accepts. */
25
+ export type RepoStarsProps = {
26
+ /**
27
+ * The number of stars, exactly as the host reported it.
28
+ *
29
+ * Required, and a `number` rather than the formatted string for the reason the
30
+ * whole `format` argument is about: a count is a fact the host owns, and a
31
+ * Component that accepted a string would be accepting a rendering and calling
32
+ * it a fact. A count nobody has fetched yet is a consumer's problem and not a
33
+ * Component's, and a `null` is refused by the type rather than drawn as a zero
34
+ * that nobody earned.
35
+ */
36
+ count: number;
37
+ /**
38
+ * The noun the count carries, and where the repository is named when the
39
+ * surrounding surface does not name it.
40
+ *
41
+ * Required, and required as a `string` because it is the whole of what the
42
+ * readout says about itself: a number beside no unit is a number the reader has
43
+ * to guess the meaning of, which is the one thing a headline figure cannot
44
+ * afford, and it is the same argument `Metric` makes about its own label. It is
45
+ * also where the repository goes when a link's accessible name would otherwise
46
+ * not say where the link leads, so a caller on a page that names the repository
47
+ * already writes "stars" and a caller on a page that does not writes "stars on
48
+ * this repository". The words are the consumer's, in their own language.
49
+ */
50
+ label: string;
51
+ /**
52
+ * The host's own mark, passed in and never drawn by this package.
53
+ *
54
+ * Required, and a slot rather than an asset, for the reason the package states
55
+ * everywhere it has a mark to fill: Prism's icon lane is Lucide, and Lucide has
56
+ * no repository host in it. A host's mark is a licensed trademark with rules
57
+ * governing its clear space, its colour, its minimum size and its use on a third
58
+ * party's surface, and a package that shipped one would be shipping an asset it
59
+ * was not entitled to and that is out of date the moment the host redraws it.
60
+ * So the space is here and the frame around it is a size and a clip and nothing
61
+ * else, so a consumer's vector mark and a consumer's raster asset come out the
62
+ * same height whichever they pass.
63
+ *
64
+ * Required rather than optional, and that is a decision with a cost. A readout
65
+ * with no mark beside it is a number and a noun and nothing saying which host
66
+ * they are about, so the mark is what makes the number mean what it claims to.
67
+ * The cost is that a consumer hosting their own repository, with no third party
68
+ * brand to point at, has no mark to pass and so has no use for this Component:
69
+ * the honest answer for them is a `Metric`, which is a figure that needs no
70
+ * host.
71
+ */
72
+ mark: ReactNode;
73
+ /**
74
+ * The words the count is drawn through, given the count.
75
+ *
76
+ * Optional, and there is no default that abbreviates, because "1.2k" is two
77
+ * decisions rather than one. It is a locale, because the compact form a reader
78
+ * expects in English is not the one a German or a Japanese reader expects, and
79
+ * it is a judgement, because a count of 1,204 reads as a large project on a
80
+ * repository page and as a rounding error beside a funding total, and only the
81
+ * consumer knows which page it is on. So the number is printed exactly as
82
+ * given when this is absent, which is honest and usually not what was wanted
83
+ * for a six figure count, and a consumer who wants grouping or a compact form
84
+ * passes the formatter that has it.
85
+ *
86
+ * **`Intl` is deliberately not the fallback.** A server-rendered figure
87
+ * formatted in the runtime's own locale is a figure that changes when the
88
+ * deployment region changes, and a number that reads "1,204" in one build and
89
+ * "1.204" in another is a number two readers were told different things about.
90
+ * The fallback is `String(count)`, which is what `Metric` prints for a delta
91
+ * with no formatter, and it has the same property: the same bytes everywhere.
92
+ */
93
+ format?: (count: number) => string;
94
+ /**
95
+ * Where the readout leads, when the reader may follow it.
96
+ *
97
+ * Optional, and a plain `href` rather than a router link, because this package
98
+ * imports no router and a Page is what a consumer's router renders. With it
99
+ * the mark, the count and the noun are one thing to follow rather than three
100
+ * things to read, and the whole readout is the anchor's hit area. Without it the
101
+ * readout is a span, and that is a legitimate state rather than a missing prop:
102
+ * a page footer that reports a project's popularity is reporting it, and
103
+ * offering a link there invites a reader off a page they are reading.
104
+ */
105
+ href?: string;
106
+ /** The drawn step, as frame and figure together. @defaultValue 'md' */
107
+ size?: RepoStarsSize;
108
+ } & Omit<ComponentProps<'span'>, 'children'>;
109
+ /**
110
+ * How many people starred a source repository, beside the host's own mark.
111
+ *
112
+ * **The mark is a slot and the reason is a licence, not a preference.** Prism's
113
+ * icon lane is Lucide, and Lucide draws interface glyphs rather than other
114
+ * companies' trademarks, and a repository host's mark is a licensed asset with
115
+ * rules about its clear space, its colour, its minimum size and where it may
116
+ * appear. A package that shipped one would be distributing an asset it does not
117
+ * own, and it would be wrong within a year as hosts redraw. So the consumer passes
118
+ * the mark and this Component draws the frame around it. The cost is stated
119
+ * rather than hidden: a consumer who wants the readout in an afternoon has to
120
+ * source the mark, and a consumer with no host to point at cannot use this
121
+ * Component at all.
122
+ *
123
+ * **The count is printed by a callback and the fallback is the bare number.**
124
+ * There is no `Intl` default and the omission is the decision, for the reason
125
+ * `format` states: a compact count is a locale and a judgement, and a figure
126
+ * formatted in the runtime's locale changes when the deployment region changes.
127
+ * The visible cost is that a consumer with a six figure count and no formatter
128
+ * draws all six digits, which is honest and wider than they wanted.
129
+ *
130
+ * **There is no navigation region and no landmark, and the reason is that a
131
+ * count is not a place.** A `<nav>` is a set of routes and this is one figure
132
+ * beside a mark, so the readout renders a span or an anchor and nothing else. A
133
+ * consumer who puts one inside their own `<nav>` has made a claim about their own
134
+ * page that Prism neither makes nor checks, and the `href` is the consumer's to
135
+ * resolve: this Component validates nothing about it, and the package is router
136
+ * free and transport free by design.
137
+ *
138
+ * **A link here is an anchor, so there is no `target` and no `rel`.** Both belong
139
+ * to the anchor and the anchor is inside the readout, and an anchor-shaped root
140
+ * that changed element with `href` would put `rel` and `target` onto a `span` on
141
+ * every readout that has no link, which is invalid markup for a control Prism
142
+ * did not draw. A consumer who needs a new tab or a referrer policy writes their
143
+ * own anchor around the readout, which is one element and keeps every class here.
144
+ *
145
+ * **The link's ink is `brand-ink` and the readout's is `foreground`, and that
146
+ * split is DESIGN.md's Brand Ink Rule rather than a preference.** A readout that
147
+ * is not a link is a figure and takes the page's ink. A readout that is a link
148
+ * has to read as something a reader may follow, and the token gate measures
149
+ * `brand-ink` at 4.5:1 against the page, a card and the accent surface in both
150
+ * modes of all six sources. The focus ring is drawn at full strength on the
151
+ * anchor rather than left to the browser, so the indicator this Component owns
152
+ * is the indicator the gate can check.
153
+ *
154
+ * **It is a server Component, and the reason is that everything it draws is
155
+ * decided from props.** No hook, no state, no effect, no handler and no directive,
156
+ * so a page with four star readouts ships no JavaScript for them at all. The
157
+ * consequence worth stating is the one a reader would otherwise have to work out:
158
+ * with no `href` there is no interaction, and with one the only behaviour is the
159
+ * browser's own navigation, so there is nothing this Component could need a client
160
+ * runtime to do. The cost is that a consumer who wants the count to refresh
161
+ * itself is reaching for a `live` surface and a subscription Prism does not own.
162
+ */
163
+ declare function RepoStars({ count, label, mark, format, href, size, className, ...props }: RepoStarsProps): import("react").JSX.Element;
164
+ export { RepoStars };
165
+ //# sourceMappingURL=repo-stars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo-stars.d.ts","sourceRoot":"","sources":["../../../src/components/ui/repo-stars.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,eAAe;;;CAGX,CAAA;AAEV;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,eAAe,CAAA;AAExD,qCAAqC;AACrC,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;;;;;OASG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;;;;OAYG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,IAAI,EAAE,SAAS,CAAA;IACf;;;;;;;;;;;;;;;;;;;OAmBG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uEAAuE;IACvE,IAAI,CAAC,EAAE,aAAa,CAAA;CAMrB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAA;AA2C5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,iBAAS,SAAS,CAAC,EACjB,KAAK,EACL,KAAK,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,IAAW,EACX,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,+BAsBhB;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}