@nanisoft/prism-ui 0.13.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (943) hide show
  1. package/THIRD-PARTY-NOTICES.md +22 -7
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/blocks/about-01/about.d.ts +296 -0
  4. package/dist/blocks/about-01/about.d.ts.map +1 -0
  5. package/dist/blocks/about-01/about.js +103 -0
  6. package/dist/blocks/about-01/index.d.ts +3 -0
  7. package/dist/blocks/about-01/index.d.ts.map +1 -0
  8. package/dist/blocks/about-01/index.js +1 -0
  9. package/dist/blocks/accept-invite-01/accept-invite.d.ts +324 -0
  10. package/dist/blocks/accept-invite-01/accept-invite.d.ts.map +1 -0
  11. package/dist/blocks/accept-invite-01/accept-invite.js +230 -0
  12. package/dist/blocks/accept-invite-01/index.d.ts +3 -0
  13. package/dist/blocks/accept-invite-01/index.d.ts.map +1 -0
  14. package/dist/blocks/accept-invite-01/index.js +1 -0
  15. package/dist/blocks/account-01/account-01.d.ts +393 -0
  16. package/dist/blocks/account-01/account-01.d.ts.map +1 -0
  17. package/dist/blocks/account-01/account-01.js +215 -0
  18. package/dist/blocks/account-01/index.d.ts +3 -0
  19. package/dist/blocks/account-01/index.d.ts.map +1 -0
  20. package/dist/blocks/account-01/index.js +1 -0
  21. package/dist/blocks/activity-feed-01/activity-feed-01.d.ts +271 -0
  22. package/dist/blocks/activity-feed-01/activity-feed-01.d.ts.map +1 -0
  23. package/dist/blocks/activity-feed-01/activity-feed-01.js +185 -0
  24. package/dist/blocks/activity-feed-01/index.d.ts +3 -0
  25. package/dist/blocks/activity-feed-01/index.d.ts.map +1 -0
  26. package/dist/blocks/activity-feed-01/index.js +1 -0
  27. package/dist/blocks/address-book-01/address-book-01.d.ts +312 -0
  28. package/dist/blocks/address-book-01/address-book-01.d.ts.map +1 -0
  29. package/dist/blocks/address-book-01/address-book-01.js +233 -0
  30. package/dist/blocks/address-book-01/index.d.ts +3 -0
  31. package/dist/blocks/address-book-01/index.d.ts.map +1 -0
  32. package/dist/blocks/address-book-01/index.js +1 -0
  33. package/dist/blocks/audit-log-01/audit-log-01.d.ts +333 -0
  34. package/dist/blocks/audit-log-01/audit-log-01.d.ts.map +1 -0
  35. package/dist/blocks/audit-log-01/audit-log-01.js +211 -0
  36. package/dist/blocks/audit-log-01/index.d.ts +3 -0
  37. package/dist/blocks/audit-log-01/index.d.ts.map +1 -0
  38. package/dist/blocks/audit-log-01/index.js +1 -0
  39. package/dist/blocks/auth-form-01/auth-form.d.ts +40 -1
  40. package/dist/blocks/auth-form-01/auth-form.d.ts.map +1 -1
  41. package/dist/blocks/auth-form-01/auth-form.js +26 -3
  42. package/dist/blocks/awards-01/awards.d.ts +156 -0
  43. package/dist/blocks/awards-01/awards.d.ts.map +1 -0
  44. package/dist/blocks/awards-01/awards.js +102 -0
  45. package/dist/blocks/awards-01/index.d.ts +3 -0
  46. package/dist/blocks/awards-01/index.d.ts.map +1 -0
  47. package/dist/blocks/awards-01/index.js +1 -0
  48. package/dist/blocks/backdrop-01/backdrop.d.ts +268 -0
  49. package/dist/blocks/backdrop-01/backdrop.d.ts.map +1 -0
  50. package/dist/blocks/backdrop-01/backdrop.js +170 -0
  51. package/dist/blocks/backdrop-01/index.d.ts +3 -0
  52. package/dist/blocks/backdrop-01/index.d.ts.map +1 -0
  53. package/dist/blocks/backdrop-01/index.js +1 -0
  54. package/dist/blocks/bento-01/bento-01.d.ts +136 -0
  55. package/dist/blocks/bento-01/bento-01.d.ts.map +1 -0
  56. package/dist/blocks/bento-01/bento-01.js +97 -0
  57. package/dist/blocks/bento-01/index.d.ts +3 -0
  58. package/dist/blocks/bento-01/index.d.ts.map +1 -0
  59. package/dist/blocks/bento-01/index.js +1 -0
  60. package/dist/blocks/billing-source-01/billing-source-01.d.ts +379 -0
  61. package/dist/blocks/billing-source-01/billing-source-01.d.ts.map +1 -0
  62. package/dist/blocks/billing-source-01/billing-source-01.js +222 -0
  63. package/dist/blocks/billing-source-01/index.d.ts +3 -0
  64. package/dist/blocks/billing-source-01/index.d.ts.map +1 -0
  65. package/dist/blocks/billing-source-01/index.js +1 -0
  66. package/dist/blocks/bundle-01/bundle.d.ts +387 -0
  67. package/dist/blocks/bundle-01/bundle.d.ts.map +1 -0
  68. package/dist/blocks/bundle-01/bundle.js +153 -0
  69. package/dist/blocks/bundle-01/index.d.ts +3 -0
  70. package/dist/blocks/bundle-01/index.d.ts.map +1 -0
  71. package/dist/blocks/bundle-01/index.js +1 -0
  72. package/dist/blocks/calendar-01/calendar.d.ts +251 -0
  73. package/dist/blocks/calendar-01/calendar.d.ts.map +1 -0
  74. package/dist/blocks/calendar-01/calendar.js +191 -0
  75. package/dist/blocks/calendar-01/index.d.ts +3 -0
  76. package/dist/blocks/calendar-01/index.d.ts.map +1 -0
  77. package/dist/blocks/calendar-01/index.js +1 -0
  78. package/dist/blocks/capacity-01/capacity.d.ts +363 -0
  79. package/dist/blocks/capacity-01/capacity.d.ts.map +1 -0
  80. package/dist/blocks/capacity-01/capacity.js +208 -0
  81. package/dist/blocks/capacity-01/index.d.ts +3 -0
  82. package/dist/blocks/capacity-01/index.d.ts.map +1 -0
  83. package/dist/blocks/capacity-01/index.js +1 -0
  84. package/dist/blocks/careers-01/careers.d.ts +186 -0
  85. package/dist/blocks/careers-01/careers.d.ts.map +1 -0
  86. package/dist/blocks/careers-01/careers.js +83 -0
  87. package/dist/blocks/careers-01/index.d.ts +3 -0
  88. package/dist/blocks/careers-01/index.d.ts.map +1 -0
  89. package/dist/blocks/careers-01/index.js +1 -0
  90. package/dist/blocks/case-studies-01/case-studies.d.ts +192 -0
  91. package/dist/blocks/case-studies-01/case-studies.d.ts.map +1 -0
  92. package/dist/blocks/case-studies-01/case-studies.js +97 -0
  93. package/dist/blocks/case-studies-01/index.d.ts +3 -0
  94. package/dist/blocks/case-studies-01/index.d.ts.map +1 -0
  95. package/dist/blocks/case-studies-01/index.js +1 -0
  96. package/dist/blocks/case-study-01/case-study.d.ts +214 -0
  97. package/dist/blocks/case-study-01/case-study.d.ts.map +1 -0
  98. package/dist/blocks/case-study-01/case-study.js +79 -0
  99. package/dist/blocks/case-study-01/index.d.ts +3 -0
  100. package/dist/blocks/case-study-01/index.d.ts.map +1 -0
  101. package/dist/blocks/case-study-01/index.js +1 -0
  102. package/dist/blocks/changelog-01/changelog.d.ts +200 -0
  103. package/dist/blocks/changelog-01/changelog.d.ts.map +1 -0
  104. package/dist/blocks/changelog-01/changelog.js +155 -0
  105. package/dist/blocks/changelog-01/index.d.ts +3 -0
  106. package/dist/blocks/changelog-01/index.d.ts.map +1 -0
  107. package/dist/blocks/changelog-01/index.js +1 -0
  108. package/dist/blocks/chart-card-01/chart-card-01.d.ts +149 -0
  109. package/dist/blocks/chart-card-01/chart-card-01.d.ts.map +1 -0
  110. package/dist/blocks/chart-card-01/chart-card-01.js +81 -0
  111. package/dist/blocks/chart-card-01/index.d.ts +3 -0
  112. package/dist/blocks/chart-card-01/index.d.ts.map +1 -0
  113. package/dist/blocks/chart-card-01/index.js +1 -0
  114. package/dist/blocks/chart-group-01/chart-group-01.d.ts +138 -0
  115. package/dist/blocks/chart-group-01/chart-group-01.d.ts.map +1 -0
  116. package/dist/blocks/chart-group-01/chart-group-01.js +74 -0
  117. package/dist/blocks/chart-group-01/index.d.ts +3 -0
  118. package/dist/blocks/chart-group-01/index.d.ts.map +1 -0
  119. package/dist/blocks/chart-group-01/index.js +1 -0
  120. package/dist/blocks/code-sample-01/code-sample.d.ts +193 -0
  121. package/dist/blocks/code-sample-01/code-sample.d.ts.map +1 -0
  122. package/dist/blocks/code-sample-01/code-sample.js +104 -0
  123. package/dist/blocks/code-sample-01/index.d.ts +3 -0
  124. package/dist/blocks/code-sample-01/index.d.ts.map +1 -0
  125. package/dist/blocks/code-sample-01/index.js +1 -0
  126. package/dist/blocks/community-01/community.d.ts +183 -0
  127. package/dist/blocks/community-01/community.d.ts.map +1 -0
  128. package/dist/blocks/community-01/community.js +102 -0
  129. package/dist/blocks/community-01/index.d.ts +3 -0
  130. package/dist/blocks/community-01/index.d.ts.map +1 -0
  131. package/dist/blocks/community-01/index.js +1 -0
  132. package/dist/blocks/compare-01/compare.d.ts +184 -0
  133. package/dist/blocks/compare-01/compare.d.ts.map +1 -0
  134. package/dist/blocks/compare-01/compare.js +106 -0
  135. package/dist/blocks/compare-01/index.d.ts +3 -0
  136. package/dist/blocks/compare-01/index.d.ts.map +1 -0
  137. package/dist/blocks/compare-01/index.js +1 -0
  138. package/dist/blocks/compliance-01/compliance.d.ts +249 -0
  139. package/dist/blocks/compliance-01/compliance.d.ts.map +1 -0
  140. package/dist/blocks/compliance-01/compliance.js +130 -0
  141. package/dist/blocks/compliance-01/index.d.ts +3 -0
  142. package/dist/blocks/compliance-01/index.d.ts.map +1 -0
  143. package/dist/blocks/compliance-01/index.js +1 -0
  144. package/dist/blocks/consent-01/consent.d.ts +211 -0
  145. package/dist/blocks/consent-01/consent.d.ts.map +1 -0
  146. package/dist/blocks/consent-01/consent.js +101 -0
  147. package/dist/blocks/consent-01/index.d.ts +3 -0
  148. package/dist/blocks/consent-01/index.d.ts.map +1 -0
  149. package/dist/blocks/consent-01/index.js +1 -0
  150. package/dist/blocks/contact-01/contact.d.ts +319 -0
  151. package/dist/blocks/contact-01/contact.d.ts.map +1 -0
  152. package/dist/blocks/contact-01/contact.js +211 -0
  153. package/dist/blocks/contact-01/index.d.ts +3 -0
  154. package/dist/blocks/contact-01/index.d.ts.map +1 -0
  155. package/dist/blocks/contact-01/index.js +1 -0
  156. package/dist/blocks/content-grid-01/content-grid.d.ts +262 -0
  157. package/dist/blocks/content-grid-01/content-grid.d.ts.map +1 -0
  158. package/dist/blocks/content-grid-01/content-grid.js +155 -0
  159. package/dist/blocks/content-grid-01/index.d.ts +3 -0
  160. package/dist/blocks/content-grid-01/index.d.ts.map +1 -0
  161. package/dist/blocks/content-grid-01/index.js +1 -0
  162. package/dist/blocks/cta-01/cta.d.ts +7 -1
  163. package/dist/blocks/cta-01/cta.d.ts.map +1 -1
  164. package/dist/blocks/cta-01/cta.js +11 -2
  165. package/dist/blocks/dashboard-01/dashboard-01.d.ts +247 -0
  166. package/dist/blocks/dashboard-01/dashboard-01.d.ts.map +1 -0
  167. package/dist/blocks/dashboard-01/dashboard-01.js +141 -0
  168. package/dist/blocks/dashboard-01/index.d.ts +3 -0
  169. package/dist/blocks/dashboard-01/index.d.ts.map +1 -0
  170. package/dist/blocks/dashboard-01/index.js +1 -0
  171. package/dist/blocks/data-table-01/data-table.d.ts +12 -1
  172. package/dist/blocks/data-table-01/data-table.d.ts.map +1 -1
  173. package/dist/blocks/data-table-01/data-table.js +8 -5
  174. package/dist/blocks/delivery-01/delivery.d.ts +343 -0
  175. package/dist/blocks/delivery-01/delivery.d.ts.map +1 -0
  176. package/dist/blocks/delivery-01/delivery.js +212 -0
  177. package/dist/blocks/delivery-01/index.d.ts +3 -0
  178. package/dist/blocks/delivery-01/index.d.ts.map +1 -0
  179. package/dist/blocks/delivery-01/index.js +1 -0
  180. package/dist/blocks/directory-01/directory-01.d.ts +316 -0
  181. package/dist/blocks/directory-01/directory-01.d.ts.map +1 -0
  182. package/dist/blocks/directory-01/directory-01.js +252 -0
  183. package/dist/blocks/directory-01/index.d.ts +3 -0
  184. package/dist/blocks/directory-01/index.d.ts.map +1 -0
  185. package/dist/blocks/directory-01/index.js +1 -0
  186. package/dist/blocks/download-01/download.d.ts +261 -0
  187. package/dist/blocks/download-01/download.d.ts.map +1 -0
  188. package/dist/blocks/download-01/download.js +115 -0
  189. package/dist/blocks/download-01/index.d.ts +3 -0
  190. package/dist/blocks/download-01/index.d.ts.map +1 -0
  191. package/dist/blocks/download-01/index.js +1 -0
  192. package/dist/blocks/faq-01/faq.d.ts +128 -0
  193. package/dist/blocks/faq-01/faq.d.ts.map +1 -0
  194. package/dist/blocks/faq-01/faq.js +53 -0
  195. package/dist/blocks/faq-01/index.d.ts +3 -0
  196. package/dist/blocks/faq-01/index.d.ts.map +1 -0
  197. package/dist/blocks/faq-01/index.js +1 -0
  198. package/dist/blocks/feature-rows-01/feature-rows-01.d.ts +158 -0
  199. package/dist/blocks/feature-rows-01/feature-rows-01.d.ts.map +1 -0
  200. package/dist/blocks/feature-rows-01/feature-rows-01.js +81 -0
  201. package/dist/blocks/feature-rows-01/index.d.ts +3 -0
  202. package/dist/blocks/feature-rows-01/index.d.ts.map +1 -0
  203. package/dist/blocks/feature-rows-01/index.js +1 -0
  204. package/dist/blocks/feedback-01/feedback.d.ts +235 -0
  205. package/dist/blocks/feedback-01/feedback.d.ts.map +1 -0
  206. package/dist/blocks/feedback-01/feedback.js +113 -0
  207. package/dist/blocks/feedback-01/index.d.ts +3 -0
  208. package/dist/blocks/feedback-01/index.d.ts.map +1 -0
  209. package/dist/blocks/feedback-01/index.js +1 -0
  210. package/dist/blocks/field-map-01/field-map.d.ts +247 -0
  211. package/dist/blocks/field-map-01/field-map.d.ts.map +1 -0
  212. package/dist/blocks/field-map-01/field-map.js +183 -0
  213. package/dist/blocks/field-map-01/index.d.ts +3 -0
  214. package/dist/blocks/field-map-01/index.d.ts.map +1 -0
  215. package/dist/blocks/field-map-01/index.js +1 -0
  216. package/dist/blocks/forgot-password-01/forgot-password.d.ts +288 -0
  217. package/dist/blocks/forgot-password-01/forgot-password.d.ts.map +1 -0
  218. package/dist/blocks/forgot-password-01/forgot-password.js +190 -0
  219. package/dist/blocks/forgot-password-01/index.d.ts +3 -0
  220. package/dist/blocks/forgot-password-01/index.d.ts.map +1 -0
  221. package/dist/blocks/forgot-password-01/index.js +1 -0
  222. package/dist/blocks/gallery-01/gallery.d.ts +208 -0
  223. package/dist/blocks/gallery-01/gallery.d.ts.map +1 -0
  224. package/dist/blocks/gallery-01/gallery.js +174 -0
  225. package/dist/blocks/gallery-01/index.d.ts +3 -0
  226. package/dist/blocks/gallery-01/index.d.ts.map +1 -0
  227. package/dist/blocks/gallery-01/index.js +1 -0
  228. package/dist/blocks/gantt-01/gantt.d.ts +290 -0
  229. package/dist/blocks/gantt-01/gantt.d.ts.map +1 -0
  230. package/dist/blocks/gantt-01/gantt.js +224 -0
  231. package/dist/blocks/gantt-01/index.d.ts +3 -0
  232. package/dist/blocks/gantt-01/index.d.ts.map +1 -0
  233. package/dist/blocks/gantt-01/index.js +1 -0
  234. package/dist/blocks/handoff-01/handoff-01.d.ts +326 -0
  235. package/dist/blocks/handoff-01/handoff-01.d.ts.map +1 -0
  236. package/dist/blocks/handoff-01/handoff-01.js +180 -0
  237. package/dist/blocks/handoff-01/index.d.ts +3 -0
  238. package/dist/blocks/handoff-01/index.d.ts.map +1 -0
  239. package/dist/blocks/handoff-01/index.js +1 -0
  240. package/dist/blocks/help-01/help.d.ts +254 -0
  241. package/dist/blocks/help-01/help.d.ts.map +1 -0
  242. package/dist/blocks/help-01/help.js +188 -0
  243. package/dist/blocks/help-01/index.d.ts +3 -0
  244. package/dist/blocks/help-01/index.d.ts.map +1 -0
  245. package/dist/blocks/help-01/index.js +1 -0
  246. package/dist/blocks/hero-01/hero.d.ts +105 -34
  247. package/dist/blocks/hero-01/hero.d.ts.map +1 -1
  248. package/dist/blocks/hero-01/hero.js +23 -15
  249. package/dist/blocks/hero-01/index.d.ts +1 -1
  250. package/dist/blocks/hero-01/index.d.ts.map +1 -1
  251. package/dist/blocks/hero-02/hero-02.d.ts +244 -0
  252. package/dist/blocks/hero-02/hero-02.d.ts.map +1 -0
  253. package/dist/blocks/hero-02/hero-02.js +87 -0
  254. package/dist/blocks/hero-02/index.d.ts +3 -0
  255. package/dist/blocks/hero-02/index.d.ts.map +1 -0
  256. package/dist/blocks/hero-02/index.js +1 -0
  257. package/dist/blocks/hero-03/hero-03.d.ts +247 -0
  258. package/dist/blocks/hero-03/hero-03.d.ts.map +1 -0
  259. package/dist/blocks/hero-03/hero-03.js +93 -0
  260. package/dist/blocks/hero-03/index.d.ts +3 -0
  261. package/dist/blocks/hero-03/index.d.ts.map +1 -0
  262. package/dist/blocks/hero-03/index.js +1 -0
  263. package/dist/blocks/history-01/history-01.d.ts +414 -0
  264. package/dist/blocks/history-01/history-01.d.ts.map +1 -0
  265. package/dist/blocks/history-01/history-01.js +285 -0
  266. package/dist/blocks/history-01/index.d.ts +3 -0
  267. package/dist/blocks/history-01/index.d.ts.map +1 -0
  268. package/dist/blocks/history-01/index.js +1 -0
  269. package/dist/blocks/inbox-01/inbox.d.ts +349 -0
  270. package/dist/blocks/inbox-01/inbox.d.ts.map +1 -0
  271. package/dist/blocks/inbox-01/inbox.js +244 -0
  272. package/dist/blocks/inbox-01/index.d.ts +3 -0
  273. package/dist/blocks/inbox-01/index.d.ts.map +1 -0
  274. package/dist/blocks/inbox-01/index.js +1 -0
  275. package/dist/blocks/index.d.ts +203 -0
  276. package/dist/blocks/index.d.ts.map +1 -1
  277. package/dist/blocks/index.js +118 -0
  278. package/dist/blocks/industries-01/index.d.ts +3 -0
  279. package/dist/blocks/industries-01/index.d.ts.map +1 -0
  280. package/dist/blocks/industries-01/index.js +1 -0
  281. package/dist/blocks/industries-01/industries.d.ts +164 -0
  282. package/dist/blocks/industries-01/industries.d.ts.map +1 -0
  283. package/dist/blocks/industries-01/industries.js +96 -0
  284. package/dist/blocks/intake-01/index.d.ts +3 -0
  285. package/dist/blocks/intake-01/index.d.ts.map +1 -0
  286. package/dist/blocks/intake-01/index.js +1 -0
  287. package/dist/blocks/intake-01/intake-01.d.ts +305 -0
  288. package/dist/blocks/intake-01/intake-01.d.ts.map +1 -0
  289. package/dist/blocks/intake-01/intake-01.js +178 -0
  290. package/dist/blocks/integration-01/index.d.ts +3 -0
  291. package/dist/blocks/integration-01/index.d.ts.map +1 -0
  292. package/dist/blocks/integration-01/index.js +1 -0
  293. package/dist/blocks/integration-01/integration.d.ts +226 -0
  294. package/dist/blocks/integration-01/integration.d.ts.map +1 -0
  295. package/dist/blocks/integration-01/integration.js +170 -0
  296. package/dist/blocks/invite-user-01/index.d.ts +3 -0
  297. package/dist/blocks/invite-user-01/index.d.ts.map +1 -0
  298. package/dist/blocks/invite-user-01/index.js +1 -0
  299. package/dist/blocks/invite-user-01/invite-user.d.ts +317 -0
  300. package/dist/blocks/invite-user-01/invite-user.d.ts.map +1 -0
  301. package/dist/blocks/invite-user-01/invite-user.js +228 -0
  302. package/dist/blocks/issue-detail-01/index.d.ts +3 -0
  303. package/dist/blocks/issue-detail-01/index.d.ts.map +1 -0
  304. package/dist/blocks/issue-detail-01/index.js +1 -0
  305. package/dist/blocks/issue-detail-01/issue-detail.d.ts +355 -0
  306. package/dist/blocks/issue-detail-01/issue-detail.d.ts.map +1 -0
  307. package/dist/blocks/issue-detail-01/issue-detail.js +187 -0
  308. package/dist/blocks/issue-list-01/index.d.ts +3 -0
  309. package/dist/blocks/issue-list-01/index.d.ts.map +1 -0
  310. package/dist/blocks/issue-list-01/index.js +1 -0
  311. package/dist/blocks/issue-list-01/issue-list.d.ts +298 -0
  312. package/dist/blocks/issue-list-01/issue-list.d.ts.map +1 -0
  313. package/dist/blocks/issue-list-01/issue-list.js +284 -0
  314. package/dist/blocks/kanban-01/index.d.ts +3 -0
  315. package/dist/blocks/kanban-01/index.d.ts.map +1 -0
  316. package/dist/blocks/kanban-01/index.js +1 -0
  317. package/dist/blocks/kanban-01/kanban.d.ts +278 -0
  318. package/dist/blocks/kanban-01/kanban.d.ts.map +1 -0
  319. package/dist/blocks/kanban-01/kanban.js +144 -0
  320. package/dist/blocks/leaderboard-01/index.d.ts +3 -0
  321. package/dist/blocks/leaderboard-01/index.d.ts.map +1 -0
  322. package/dist/blocks/leaderboard-01/index.js +1 -0
  323. package/dist/blocks/leaderboard-01/leaderboard.d.ts +250 -0
  324. package/dist/blocks/leaderboard-01/leaderboard.d.ts.map +1 -0
  325. package/dist/blocks/leaderboard-01/leaderboard.js +121 -0
  326. package/dist/blocks/login-01/index.d.ts +3 -0
  327. package/dist/blocks/login-01/index.d.ts.map +1 -0
  328. package/dist/blocks/login-01/index.js +1 -0
  329. package/dist/blocks/login-01/login-01.d.ts +356 -0
  330. package/dist/blocks/login-01/login-01.d.ts.map +1 -0
  331. package/dist/blocks/login-01/login-01.js +249 -0
  332. package/dist/blocks/logo-cloud-01/index.d.ts +3 -0
  333. package/dist/blocks/logo-cloud-01/index.d.ts.map +1 -0
  334. package/dist/blocks/logo-cloud-01/index.js +1 -0
  335. package/dist/blocks/logo-cloud-01/logo-cloud.d.ts +181 -0
  336. package/dist/blocks/logo-cloud-01/logo-cloud.d.ts.map +1 -0
  337. package/dist/blocks/logo-cloud-01/logo-cloud.js +118 -0
  338. package/dist/blocks/magic-link-01/index.d.ts +3 -0
  339. package/dist/blocks/magic-link-01/index.d.ts.map +1 -0
  340. package/dist/blocks/magic-link-01/index.js +1 -0
  341. package/dist/blocks/magic-link-01/magic-link-01.d.ts +367 -0
  342. package/dist/blocks/magic-link-01/magic-link-01.d.ts.map +1 -0
  343. package/dist/blocks/magic-link-01/magic-link-01.js +233 -0
  344. package/dist/blocks/member-list-01/index.d.ts +3 -0
  345. package/dist/blocks/member-list-01/index.d.ts.map +1 -0
  346. package/dist/blocks/member-list-01/index.js +1 -0
  347. package/dist/blocks/member-list-01/member-list.d.ts +192 -0
  348. package/dist/blocks/member-list-01/member-list.d.ts.map +1 -0
  349. package/dist/blocks/member-list-01/member-list.js +142 -0
  350. package/dist/blocks/milestone-timeline-01/index.d.ts +3 -0
  351. package/dist/blocks/milestone-timeline-01/index.d.ts.map +1 -0
  352. package/dist/blocks/milestone-timeline-01/index.js +1 -0
  353. package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts +217 -0
  354. package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts.map +1 -0
  355. package/dist/blocks/milestone-timeline-01/milestone-timeline.js +173 -0
  356. package/dist/blocks/newsletter-01/index.d.ts +3 -0
  357. package/dist/blocks/newsletter-01/index.d.ts.map +1 -0
  358. package/dist/blocks/newsletter-01/index.js +1 -0
  359. package/dist/blocks/newsletter-01/newsletter.d.ts +216 -0
  360. package/dist/blocks/newsletter-01/newsletter.d.ts.map +1 -0
  361. package/dist/blocks/newsletter-01/newsletter.js +102 -0
  362. package/dist/blocks/notification-center-01/index.d.ts +3 -0
  363. package/dist/blocks/notification-center-01/index.d.ts.map +1 -0
  364. package/dist/blocks/notification-center-01/index.js +1 -0
  365. package/dist/blocks/notification-center-01/notification-center-01.d.ts +341 -0
  366. package/dist/blocks/notification-center-01/notification-center-01.d.ts.map +1 -0
  367. package/dist/blocks/notification-center-01/notification-center-01.js +203 -0
  368. package/dist/blocks/offer-01/index.d.ts +3 -0
  369. package/dist/blocks/offer-01/index.d.ts.map +1 -0
  370. package/dist/blocks/offer-01/index.js +1 -0
  371. package/dist/blocks/offer-01/offer.d.ts +139 -0
  372. package/dist/blocks/offer-01/offer.d.ts.map +1 -0
  373. package/dist/blocks/offer-01/offer.js +81 -0
  374. package/dist/blocks/offering-01/index.d.ts +3 -0
  375. package/dist/blocks/offering-01/index.d.ts.map +1 -0
  376. package/dist/blocks/offering-01/index.js +1 -0
  377. package/dist/blocks/offering-01/offering.d.ts +245 -0
  378. package/dist/blocks/offering-01/offering.d.ts.map +1 -0
  379. package/dist/blocks/offering-01/offering.js +144 -0
  380. package/dist/blocks/offering-categories-01/index.d.ts +3 -0
  381. package/dist/blocks/offering-categories-01/index.d.ts.map +1 -0
  382. package/dist/blocks/offering-categories-01/index.js +1 -0
  383. package/dist/blocks/offering-categories-01/offering-categories.d.ts +248 -0
  384. package/dist/blocks/offering-categories-01/offering-categories.d.ts.map +1 -0
  385. package/dist/blocks/offering-categories-01/offering-categories.js +153 -0
  386. package/dist/blocks/offering-list-01/index.d.ts +3 -0
  387. package/dist/blocks/offering-list-01/index.d.ts.map +1 -0
  388. package/dist/blocks/offering-list-01/index.js +1 -0
  389. package/dist/blocks/offering-list-01/offering-list.d.ts +362 -0
  390. package/dist/blocks/offering-list-01/offering-list.d.ts.map +1 -0
  391. package/dist/blocks/offering-list-01/offering-list.js +366 -0
  392. package/dist/blocks/onboarding-01/index.d.ts +3 -0
  393. package/dist/blocks/onboarding-01/index.d.ts.map +1 -0
  394. package/dist/blocks/onboarding-01/index.js +1 -0
  395. package/dist/blocks/onboarding-01/onboarding.d.ts +199 -0
  396. package/dist/blocks/onboarding-01/onboarding.d.ts.map +1 -0
  397. package/dist/blocks/onboarding-01/onboarding.js +182 -0
  398. package/dist/blocks/ops-checklist-01/index.d.ts +3 -0
  399. package/dist/blocks/ops-checklist-01/index.d.ts.map +1 -0
  400. package/dist/blocks/ops-checklist-01/index.js +1 -0
  401. package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts +308 -0
  402. package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts.map +1 -0
  403. package/dist/blocks/ops-checklist-01/ops-checklist-01.js +165 -0
  404. package/dist/blocks/page-header-01/index.d.ts +1 -1
  405. package/dist/blocks/page-header-01/index.d.ts.map +1 -1
  406. package/dist/blocks/page-header-01/page-header.d.ts +124 -11
  407. package/dist/blocks/page-header-01/page-header.d.ts.map +1 -1
  408. package/dist/blocks/page-header-01/page-header.js +25 -9
  409. package/dist/blocks/passkey-01/index.d.ts +3 -0
  410. package/dist/blocks/passkey-01/index.d.ts.map +1 -0
  411. package/dist/blocks/passkey-01/index.js +1 -0
  412. package/dist/blocks/passkey-01/passkey-01.d.ts +334 -0
  413. package/dist/blocks/passkey-01/passkey-01.d.ts.map +1 -0
  414. package/dist/blocks/passkey-01/passkey-01.js +192 -0
  415. package/dist/blocks/permission-matrix-01/index.d.ts +3 -0
  416. package/dist/blocks/permission-matrix-01/index.d.ts.map +1 -0
  417. package/dist/blocks/permission-matrix-01/index.js +1 -0
  418. package/dist/blocks/permission-matrix-01/permission-matrix.d.ts +282 -0
  419. package/dist/blocks/permission-matrix-01/permission-matrix.d.ts.map +1 -0
  420. package/dist/blocks/permission-matrix-01/permission-matrix.js +173 -0
  421. package/dist/blocks/pricing-01/index.d.ts +1 -0
  422. package/dist/blocks/pricing-01/index.d.ts.map +1 -1
  423. package/dist/blocks/pricing-01/pricing.d.ts +118 -1
  424. package/dist/blocks/pricing-01/pricing.d.ts.map +1 -1
  425. package/dist/blocks/pricing-01/pricing.js +9 -2
  426. package/dist/blocks/pricing-compare-01/index.d.ts +3 -0
  427. package/dist/blocks/pricing-compare-01/index.d.ts.map +1 -0
  428. package/dist/blocks/pricing-compare-01/index.js +1 -0
  429. package/dist/blocks/pricing-compare-01/pricing-compare.d.ts +277 -0
  430. package/dist/blocks/pricing-compare-01/pricing-compare.d.ts.map +1 -0
  431. package/dist/blocks/pricing-compare-01/pricing-compare.js +126 -0
  432. package/dist/blocks/project-01/index.d.ts +3 -0
  433. package/dist/blocks/project-01/index.d.ts.map +1 -0
  434. package/dist/blocks/project-01/index.js +1 -0
  435. package/dist/blocks/project-01/project.d.ts +323 -0
  436. package/dist/blocks/project-01/project.d.ts.map +1 -0
  437. package/dist/blocks/project-01/project.js +247 -0
  438. package/dist/blocks/project-dashboard-01/index.d.ts +3 -0
  439. package/dist/blocks/project-dashboard-01/index.d.ts.map +1 -0
  440. package/dist/blocks/project-dashboard-01/index.js +1 -0
  441. package/dist/blocks/project-dashboard-01/project-dashboard.d.ts +200 -0
  442. package/dist/blocks/project-dashboard-01/project-dashboard.d.ts.map +1 -0
  443. package/dist/blocks/project-dashboard-01/project-dashboard.js +124 -0
  444. package/dist/blocks/project-list-01/index.d.ts +3 -0
  445. package/dist/blocks/project-list-01/index.d.ts.map +1 -0
  446. package/dist/blocks/project-list-01/index.js +1 -0
  447. package/dist/blocks/project-list-01/project-list.d.ts +301 -0
  448. package/dist/blocks/project-list-01/project-list.d.ts.map +1 -0
  449. package/dist/blocks/project-list-01/project-list.js +305 -0
  450. package/dist/blocks/provisioning-01/index.d.ts +3 -0
  451. package/dist/blocks/provisioning-01/index.d.ts.map +1 -0
  452. package/dist/blocks/provisioning-01/index.js +1 -0
  453. package/dist/blocks/provisioning-01/provisioning.d.ts +357 -0
  454. package/dist/blocks/provisioning-01/provisioning.d.ts.map +1 -0
  455. package/dist/blocks/provisioning-01/provisioning.js +230 -0
  456. package/dist/blocks/quick-view-01/index.d.ts +3 -0
  457. package/dist/blocks/quick-view-01/index.d.ts.map +1 -0
  458. package/dist/blocks/quick-view-01/index.js +1 -0
  459. package/dist/blocks/quick-view-01/quick-view.d.ts +215 -0
  460. package/dist/blocks/quick-view-01/quick-view.d.ts.map +1 -0
  461. package/dist/blocks/quick-view-01/quick-view.js +136 -0
  462. package/dist/blocks/rate-card-01/index.d.ts +3 -0
  463. package/dist/blocks/rate-card-01/index.d.ts.map +1 -0
  464. package/dist/blocks/rate-card-01/index.js +1 -0
  465. package/dist/blocks/rate-card-01/rate-card.d.ts +184 -0
  466. package/dist/blocks/rate-card-01/rate-card.d.ts.map +1 -0
  467. package/dist/blocks/rate-card-01/rate-card.js +79 -0
  468. package/dist/blocks/reset-password-01/index.d.ts +3 -0
  469. package/dist/blocks/reset-password-01/index.d.ts.map +1 -0
  470. package/dist/blocks/reset-password-01/index.js +1 -0
  471. package/dist/blocks/reset-password-01/reset-password.d.ts +276 -0
  472. package/dist/blocks/reset-password-01/reset-password.d.ts.map +1 -0
  473. package/dist/blocks/reset-password-01/reset-password.js +175 -0
  474. package/dist/blocks/resource-list-01/index.d.ts +3 -0
  475. package/dist/blocks/resource-list-01/index.d.ts.map +1 -0
  476. package/dist/blocks/resource-list-01/index.js +1 -0
  477. package/dist/blocks/resource-list-01/resource-list.d.ts +237 -0
  478. package/dist/blocks/resource-list-01/resource-list.d.ts.map +1 -0
  479. package/dist/blocks/resource-list-01/resource-list.js +154 -0
  480. package/dist/blocks/retention-01/index.d.ts +3 -0
  481. package/dist/blocks/retention-01/index.d.ts.map +1 -0
  482. package/dist/blocks/retention-01/index.js +1 -0
  483. package/dist/blocks/retention-01/retention.d.ts +255 -0
  484. package/dist/blocks/retention-01/retention.d.ts.map +1 -0
  485. package/dist/blocks/retention-01/retention.js +145 -0
  486. package/dist/blocks/run-console-01/run-console.d.ts +14 -1
  487. package/dist/blocks/run-console-01/run-console.d.ts.map +1 -1
  488. package/dist/blocks/run-console-01/run-console.js +3 -2
  489. package/dist/blocks/services-01/index.d.ts +3 -0
  490. package/dist/blocks/services-01/index.d.ts.map +1 -0
  491. package/dist/blocks/services-01/index.js +1 -0
  492. package/dist/blocks/services-01/services.d.ts +159 -0
  493. package/dist/blocks/services-01/services.d.ts.map +1 -0
  494. package/dist/blocks/services-01/services.js +81 -0
  495. package/dist/blocks/settings-integrations-01/index.d.ts +3 -0
  496. package/dist/blocks/settings-integrations-01/index.d.ts.map +1 -0
  497. package/dist/blocks/settings-integrations-01/index.js +1 -0
  498. package/dist/blocks/settings-integrations-01/settings-integrations.d.ts +246 -0
  499. package/dist/blocks/settings-integrations-01/settings-integrations.d.ts.map +1 -0
  500. package/dist/blocks/settings-integrations-01/settings-integrations.js +213 -0
  501. package/dist/blocks/settings-members-01/index.d.ts +3 -0
  502. package/dist/blocks/settings-members-01/index.d.ts.map +1 -0
  503. package/dist/blocks/settings-members-01/index.js +1 -0
  504. package/dist/blocks/settings-members-01/settings-members.d.ts +396 -0
  505. package/dist/blocks/settings-members-01/settings-members.d.ts.map +1 -0
  506. package/dist/blocks/settings-members-01/settings-members.js +255 -0
  507. package/dist/blocks/settings-notifications-01/index.d.ts +3 -0
  508. package/dist/blocks/settings-notifications-01/index.d.ts.map +1 -0
  509. package/dist/blocks/settings-notifications-01/index.js +1 -0
  510. package/dist/blocks/settings-notifications-01/settings-notifications.d.ts +270 -0
  511. package/dist/blocks/settings-notifications-01/settings-notifications.d.ts.map +1 -0
  512. package/dist/blocks/settings-notifications-01/settings-notifications.js +202 -0
  513. package/dist/blocks/settings-security-01/index.d.ts +3 -0
  514. package/dist/blocks/settings-security-01/index.d.ts.map +1 -0
  515. package/dist/blocks/settings-security-01/index.js +1 -0
  516. package/dist/blocks/settings-security-01/settings-security.d.ts +439 -0
  517. package/dist/blocks/settings-security-01/settings-security.d.ts.map +1 -0
  518. package/dist/blocks/settings-security-01/settings-security.js +244 -0
  519. package/dist/blocks/shortlist-01/index.d.ts +3 -0
  520. package/dist/blocks/shortlist-01/index.d.ts.map +1 -0
  521. package/dist/blocks/shortlist-01/index.js +1 -0
  522. package/dist/blocks/shortlist-01/shortlist-01.d.ts +337 -0
  523. package/dist/blocks/shortlist-01/shortlist-01.d.ts.map +1 -0
  524. package/dist/blocks/shortlist-01/shortlist-01.js +191 -0
  525. package/dist/blocks/showcase-01/index.d.ts +3 -0
  526. package/dist/blocks/showcase-01/index.d.ts.map +1 -0
  527. package/dist/blocks/showcase-01/index.js +1 -0
  528. package/dist/blocks/showcase-01/showcase-01.d.ts +238 -0
  529. package/dist/blocks/showcase-01/showcase-01.d.ts.map +1 -0
  530. package/dist/blocks/showcase-01/showcase-01.js +84 -0
  531. package/dist/blocks/signup-01/index.d.ts +3 -0
  532. package/dist/blocks/signup-01/index.d.ts.map +1 -0
  533. package/dist/blocks/signup-01/index.js +1 -0
  534. package/dist/blocks/signup-01/signup-01.d.ts +405 -0
  535. package/dist/blocks/signup-01/signup-01.d.ts.map +1 -0
  536. package/dist/blocks/signup-01/signup-01.js +209 -0
  537. package/dist/blocks/site-footer/site-footer.d.ts +18 -1
  538. package/dist/blocks/site-footer/site-footer.d.ts.map +1 -1
  539. package/dist/blocks/site-footer/site-footer.js +8 -2
  540. package/dist/blocks/site-header/site-header.js +1 -1
  541. package/dist/blocks/site-navbar/site-navbar.d.ts +37 -3
  542. package/dist/blocks/site-navbar/site-navbar.d.ts.map +1 -1
  543. package/dist/blocks/site-navbar/site-navbar.js +33 -4
  544. package/dist/blocks/spec-table-01/index.d.ts +3 -0
  545. package/dist/blocks/spec-table-01/index.d.ts.map +1 -0
  546. package/dist/blocks/spec-table-01/index.js +1 -0
  547. package/dist/blocks/spec-table-01/spec-table.d.ts +293 -0
  548. package/dist/blocks/spec-table-01/spec-table.d.ts.map +1 -0
  549. package/dist/blocks/spec-table-01/spec-table.js +217 -0
  550. package/dist/blocks/story-01/index.d.ts +3 -0
  551. package/dist/blocks/story-01/index.d.ts.map +1 -0
  552. package/dist/blocks/story-01/index.js +1 -0
  553. package/dist/blocks/story-01/story.d.ts +153 -0
  554. package/dist/blocks/story-01/story.d.ts.map +1 -0
  555. package/dist/blocks/story-01/story.js +103 -0
  556. package/dist/blocks/summary-01/index.d.ts +3 -0
  557. package/dist/blocks/summary-01/index.d.ts.map +1 -0
  558. package/dist/blocks/summary-01/index.js +1 -0
  559. package/dist/blocks/summary-01/summary.d.ts +300 -0
  560. package/dist/blocks/summary-01/summary.d.ts.map +1 -0
  561. package/dist/blocks/summary-01/summary.js +174 -0
  562. package/dist/blocks/team-01/index.d.ts +3 -0
  563. package/dist/blocks/team-01/index.d.ts.map +1 -0
  564. package/dist/blocks/team-01/index.js +1 -0
  565. package/dist/blocks/team-01/team.d.ts +176 -0
  566. package/dist/blocks/team-01/team.d.ts.map +1 -0
  567. package/dist/blocks/team-01/team.js +117 -0
  568. package/dist/blocks/testimonial-01/index.d.ts +3 -0
  569. package/dist/blocks/testimonial-01/index.d.ts.map +1 -0
  570. package/dist/blocks/testimonial-01/index.js +1 -0
  571. package/dist/blocks/testimonial-01/testimonial.d.ts +173 -0
  572. package/dist/blocks/testimonial-01/testimonial.d.ts.map +1 -0
  573. package/dist/blocks/testimonial-01/testimonial.js +87 -0
  574. package/dist/blocks/todo-01/index.d.ts +3 -0
  575. package/dist/blocks/todo-01/index.d.ts.map +1 -0
  576. package/dist/blocks/todo-01/index.js +1 -0
  577. package/dist/blocks/todo-01/todo.d.ts +286 -0
  578. package/dist/blocks/todo-01/todo.d.ts.map +1 -0
  579. package/dist/blocks/todo-01/todo.js +149 -0
  580. package/dist/blocks/trend-01/index.d.ts +3 -0
  581. package/dist/blocks/trend-01/index.d.ts.map +1 -0
  582. package/dist/blocks/trend-01/index.js +1 -0
  583. package/dist/blocks/trend-01/trend.d.ts +184 -0
  584. package/dist/blocks/trend-01/trend.d.ts.map +1 -0
  585. package/dist/blocks/trend-01/trend.js +99 -0
  586. package/dist/blocks/trust-strip-01/index.d.ts +3 -0
  587. package/dist/blocks/trust-strip-01/index.d.ts.map +1 -0
  588. package/dist/blocks/trust-strip-01/index.js +1 -0
  589. package/dist/blocks/trust-strip-01/trust-strip-01.d.ts +139 -0
  590. package/dist/blocks/trust-strip-01/trust-strip-01.d.ts.map +1 -0
  591. package/dist/blocks/trust-strip-01/trust-strip-01.js +58 -0
  592. package/dist/blocks/two-factor-01/index.d.ts +3 -0
  593. package/dist/blocks/two-factor-01/index.d.ts.map +1 -0
  594. package/dist/blocks/two-factor-01/index.js +1 -0
  595. package/dist/blocks/two-factor-01/two-factor-01.d.ts +440 -0
  596. package/dist/blocks/two-factor-01/two-factor-01.d.ts.map +1 -0
  597. package/dist/blocks/two-factor-01/two-factor-01.js +273 -0
  598. package/dist/blocks/user-profile-01/index.d.ts +3 -0
  599. package/dist/blocks/user-profile-01/index.d.ts.map +1 -0
  600. package/dist/blocks/user-profile-01/index.js +1 -0
  601. package/dist/blocks/user-profile-01/user-profile-01.d.ts +258 -0
  602. package/dist/blocks/user-profile-01/user-profile-01.d.ts.map +1 -0
  603. package/dist/blocks/user-profile-01/user-profile-01.js +158 -0
  604. package/dist/blocks/verify-email-01/index.d.ts +3 -0
  605. package/dist/blocks/verify-email-01/index.d.ts.map +1 -0
  606. package/dist/blocks/verify-email-01/index.js +1 -0
  607. package/dist/blocks/verify-email-01/verify-email.d.ts +262 -0
  608. package/dist/blocks/verify-email-01/verify-email.d.ts.map +1 -0
  609. package/dist/blocks/verify-email-01/verify-email.js +190 -0
  610. package/dist/blocks/waitlist-01/index.d.ts +3 -0
  611. package/dist/blocks/waitlist-01/index.d.ts.map +1 -0
  612. package/dist/blocks/waitlist-01/index.js +1 -0
  613. package/dist/blocks/waitlist-01/waitlist.d.ts +254 -0
  614. package/dist/blocks/waitlist-01/waitlist.d.ts.map +1 -0
  615. package/dist/blocks/waitlist-01/waitlist.js +75 -0
  616. package/dist/catalog.d.ts.map +1 -1
  617. package/dist/catalog.js +1641 -1
  618. package/dist/components/index.d.ts +114 -0
  619. package/dist/components/index.d.ts.map +1 -1
  620. package/dist/components/index.js +134 -0
  621. package/dist/components/ui/accordion.d.ts.map +1 -1
  622. package/dist/components/ui/accordion.js +9 -2
  623. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  624. package/dist/components/ui/alert-dialog.js +22 -4
  625. package/dist/components/ui/announcement.d.ts +169 -0
  626. package/dist/components/ui/announcement.d.ts.map +1 -0
  627. package/dist/components/ui/announcement.js +123 -0
  628. package/dist/components/ui/avatar-group.d.ts +176 -0
  629. package/dist/components/ui/avatar-group.d.ts.map +1 -0
  630. package/dist/components/ui/avatar-group.js +135 -0
  631. package/dist/components/ui/billing-source.d.ts +293 -0
  632. package/dist/components/ui/billing-source.d.ts.map +1 -0
  633. package/dist/components/ui/billing-source.js +136 -0
  634. package/dist/components/ui/button.d.ts +16 -1
  635. package/dist/components/ui/button.d.ts.map +1 -1
  636. package/dist/components/ui/button.js +17 -2
  637. package/dist/components/ui/calendar.d.ts +9 -0
  638. package/dist/components/ui/calendar.d.ts.map +1 -1
  639. package/dist/components/ui/calendar.js +30 -2
  640. package/dist/components/ui/carousel.d.ts +7 -0
  641. package/dist/components/ui/carousel.d.ts.map +1 -1
  642. package/dist/components/ui/carousel.js +58 -1
  643. package/dist/components/ui/chart.d.ts +334 -0
  644. package/dist/components/ui/chart.d.ts.map +1 -0
  645. package/dist/components/ui/chart.js +369 -0
  646. package/dist/components/ui/checkbox.d.ts +10 -0
  647. package/dist/components/ui/checkbox.d.ts.map +1 -1
  648. package/dist/components/ui/checkbox.js +19 -1
  649. package/dist/components/ui/checklist.d.ts +262 -0
  650. package/dist/components/ui/checklist.d.ts.map +1 -0
  651. package/dist/components/ui/checklist.js +135 -0
  652. package/dist/components/ui/choice-card.d.ts +273 -0
  653. package/dist/components/ui/choice-card.d.ts.map +1 -0
  654. package/dist/components/ui/choice-card.js +138 -0
  655. package/dist/components/ui/code-block.d.ts +182 -0
  656. package/dist/components/ui/code-block.d.ts.map +1 -0
  657. package/dist/components/ui/code-block.js +108 -0
  658. package/dist/components/ui/cohort-grid.d.ts +210 -0
  659. package/dist/components/ui/cohort-grid.d.ts.map +1 -0
  660. package/dist/components/ui/cohort-grid.js +202 -0
  661. package/dist/components/ui/collapsible.d.ts +11 -0
  662. package/dist/components/ui/collapsible.d.ts.map +1 -1
  663. package/dist/components/ui/collapsible.js +13 -2
  664. package/dist/components/ui/combobox.d.ts +4 -1
  665. package/dist/components/ui/combobox.d.ts.map +1 -1
  666. package/dist/components/ui/combobox.js +20 -4
  667. package/dist/components/ui/command-palette.d.ts +11 -0
  668. package/dist/components/ui/command-palette.d.ts.map +1 -1
  669. package/dist/components/ui/command-palette.js +49 -3
  670. package/dist/components/ui/contribution-graph.d.ts +156 -0
  671. package/dist/components/ui/contribution-graph.d.ts.map +1 -0
  672. package/dist/components/ui/contribution-graph.js +170 -0
  673. package/dist/components/ui/creatable-combobox.d.ts +153 -0
  674. package/dist/components/ui/creatable-combobox.d.ts.map +1 -0
  675. package/dist/components/ui/creatable-combobox.js +285 -0
  676. package/dist/components/ui/data-toolbar.d.ts +133 -0
  677. package/dist/components/ui/data-toolbar.d.ts.map +1 -0
  678. package/dist/components/ui/data-toolbar.js +67 -0
  679. package/dist/components/ui/date-picker.d.ts.map +1 -1
  680. package/dist/components/ui/date-picker.js +9 -1
  681. package/dist/components/ui/dialog.d.ts +31 -2
  682. package/dist/components/ui/dialog.d.ts.map +1 -1
  683. package/dist/components/ui/dialog.js +40 -6
  684. package/dist/components/ui/drawer.d.ts +270 -0
  685. package/dist/components/ui/drawer.d.ts.map +1 -0
  686. package/dist/components/ui/drawer.js +241 -0
  687. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  688. package/dist/components/ui/dropdown-menu.js +6 -1
  689. package/dist/components/ui/dropzone.d.ts +147 -0
  690. package/dist/components/ui/dropzone.d.ts.map +1 -0
  691. package/dist/components/ui/dropzone.js +141 -0
  692. package/dist/components/ui/emoji-picker.d.ts +328 -0
  693. package/dist/components/ui/emoji-picker.d.ts.map +1 -0
  694. package/dist/components/ui/emoji-picker.js +278 -0
  695. package/dist/components/ui/file-upload.d.ts +152 -0
  696. package/dist/components/ui/file-upload.d.ts.map +1 -0
  697. package/dist/components/ui/file-upload.js +101 -0
  698. package/dist/components/ui/filter-panel.d.ts +164 -0
  699. package/dist/components/ui/filter-panel.d.ts.map +1 -0
  700. package/dist/components/ui/filter-panel.js +91 -0
  701. package/dist/components/ui/form-dialog.d.ts +257 -0
  702. package/dist/components/ui/form-dialog.d.ts.map +1 -0
  703. package/dist/components/ui/form-dialog.js +176 -0
  704. package/dist/components/ui/form-wizard.d.ts +251 -0
  705. package/dist/components/ui/form-wizard.d.ts.map +1 -0
  706. package/dist/components/ui/form-wizard.js +151 -0
  707. package/dist/components/ui/image-list-field.d.ts +232 -0
  708. package/dist/components/ui/image-list-field.d.ts.map +1 -0
  709. package/dist/components/ui/image-list-field.js +168 -0
  710. package/dist/components/ui/image-zoom.d.ts +164 -0
  711. package/dist/components/ui/image-zoom.d.ts.map +1 -0
  712. package/dist/components/ui/image-zoom.js +169 -0
  713. package/dist/components/ui/intensity-grid.d.ts +270 -0
  714. package/dist/components/ui/intensity-grid.d.ts.map +1 -0
  715. package/dist/components/ui/intensity-grid.js +211 -0
  716. package/dist/components/ui/lifecycle-button.d.ts +276 -0
  717. package/dist/components/ui/lifecycle-button.d.ts.map +1 -0
  718. package/dist/components/ui/lifecycle-button.js +144 -0
  719. package/dist/components/ui/lightbox.d.ts +165 -0
  720. package/dist/components/ui/lightbox.d.ts.map +1 -0
  721. package/dist/components/ui/lightbox.js +130 -0
  722. package/dist/components/ui/list-panel.d.ts +288 -0
  723. package/dist/components/ui/list-panel.d.ts.map +1 -0
  724. package/dist/components/ui/list-panel.js +139 -0
  725. package/dist/components/ui/mega-menu.d.ts +244 -0
  726. package/dist/components/ui/mega-menu.d.ts.map +1 -0
  727. package/dist/components/ui/mega-menu.js +97 -0
  728. package/dist/components/ui/menubar.d.ts +9 -0
  729. package/dist/components/ui/menubar.d.ts.map +1 -1
  730. package/dist/components/ui/menubar.js +10 -1
  731. package/dist/components/ui/metric.d.ts +123 -0
  732. package/dist/components/ui/metric.d.ts.map +1 -0
  733. package/dist/components/ui/metric.js +68 -0
  734. package/dist/components/ui/mini-calendar.d.ts +143 -0
  735. package/dist/components/ui/mini-calendar.d.ts.map +1 -0
  736. package/dist/components/ui/mini-calendar.js +261 -0
  737. package/dist/components/ui/mode-toggle.d.ts +102 -0
  738. package/dist/components/ui/mode-toggle.d.ts.map +1 -0
  739. package/dist/components/ui/mode-toggle.js +83 -0
  740. package/dist/components/ui/money-field.d.ts +200 -0
  741. package/dist/components/ui/money-field.d.ts.map +1 -0
  742. package/dist/components/ui/money-field.js +215 -0
  743. package/dist/components/ui/multi-combobox.d.ts +181 -0
  744. package/dist/components/ui/multi-combobox.d.ts.map +1 -0
  745. package/dist/components/ui/multi-combobox.js +297 -0
  746. package/dist/components/ui/native-select.d.ts.map +1 -1
  747. package/dist/components/ui/native-select.js +8 -1
  748. package/dist/components/ui/navigation-menu.d.ts +7 -0
  749. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  750. package/dist/components/ui/navigation-menu.js +8 -1
  751. package/dist/components/ui/nested-tabs.d.ts +188 -0
  752. package/dist/components/ui/nested-tabs.d.ts.map +1 -0
  753. package/dist/components/ui/nested-tabs.js +75 -0
  754. package/dist/components/ui/number-field.d.ts +40 -7
  755. package/dist/components/ui/number-field.d.ts.map +1 -1
  756. package/dist/components/ui/number-field.js +37 -7
  757. package/dist/components/ui/overflow-actions.d.ts +169 -0
  758. package/dist/components/ui/overflow-actions.d.ts.map +1 -0
  759. package/dist/components/ui/overflow-actions.js +266 -0
  760. package/dist/components/ui/pack-swatch.d.ts +177 -0
  761. package/dist/components/ui/pack-swatch.d.ts.map +1 -0
  762. package/dist/components/ui/pack-swatch.js +117 -0
  763. package/dist/components/ui/pack-switcher.d.ts +221 -0
  764. package/dist/components/ui/pack-switcher.d.ts.map +1 -0
  765. package/dist/components/ui/pack-switcher.js +94 -0
  766. package/dist/components/ui/pagination.d.ts +22 -0
  767. package/dist/components/ui/pagination.d.ts.map +1 -1
  768. package/dist/components/ui/pagination.js +23 -1
  769. package/dist/components/ui/password-field.d.ts +122 -0
  770. package/dist/components/ui/password-field.d.ts.map +1 -0
  771. package/dist/components/ui/password-field.js +69 -0
  772. package/dist/components/ui/pill.d.ts +172 -0
  773. package/dist/components/ui/pill.d.ts.map +1 -0
  774. package/dist/components/ui/pill.js +102 -0
  775. package/dist/components/ui/platform-modifier-key.d.ts +129 -0
  776. package/dist/components/ui/platform-modifier-key.d.ts.map +1 -0
  777. package/dist/components/ui/platform-modifier-key.js +125 -0
  778. package/dist/components/ui/popover.d.ts.map +1 -1
  779. package/dist/components/ui/popover.js +8 -1
  780. package/dist/components/ui/price.d.ts +144 -0
  781. package/dist/components/ui/price.d.ts.map +1 -0
  782. package/dist/components/ui/price.js +107 -0
  783. package/dist/components/ui/progress.d.ts +55 -1
  784. package/dist/components/ui/progress.d.ts.map +1 -1
  785. package/dist/components/ui/progress.js +110 -2
  786. package/dist/components/ui/prompt-composer.d.ts +302 -0
  787. package/dist/components/ui/prompt-composer.d.ts.map +1 -0
  788. package/dist/components/ui/prompt-composer.js +145 -0
  789. package/dist/components/ui/proportion-list.d.ts +188 -0
  790. package/dist/components/ui/proportion-list.d.ts.map +1 -0
  791. package/dist/components/ui/proportion-list.js +134 -0
  792. package/dist/components/ui/prose.d.ts +23 -0
  793. package/dist/components/ui/prose.d.ts.map +1 -1
  794. package/dist/components/ui/prose.js +30 -1
  795. package/dist/components/ui/radio-group.d.ts +7 -0
  796. package/dist/components/ui/radio-group.d.ts.map +1 -1
  797. package/dist/components/ui/radio-group.js +8 -1
  798. package/dist/components/ui/range-field.d.ts +158 -0
  799. package/dist/components/ui/range-field.d.ts.map +1 -0
  800. package/dist/components/ui/range-field.js +208 -0
  801. package/dist/components/ui/relative-time.d.ts +116 -0
  802. package/dist/components/ui/relative-time.d.ts.map +1 -0
  803. package/dist/components/ui/relative-time.js +67 -0
  804. package/dist/components/ui/reorderable-list.d.ts +262 -0
  805. package/dist/components/ui/reorderable-list.d.ts.map +1 -0
  806. package/dist/components/ui/reorderable-list.js +325 -0
  807. package/dist/components/ui/repeatable-rows.d.ts +241 -0
  808. package/dist/components/ui/repeatable-rows.d.ts.map +1 -0
  809. package/dist/components/ui/repeatable-rows.js +221 -0
  810. package/dist/components/ui/repo-stars.d.ts +165 -0
  811. package/dist/components/ui/repo-stars.d.ts.map +1 -0
  812. package/dist/components/ui/repo-stars.js +92 -0
  813. package/dist/components/ui/resizable.d.ts +24 -0
  814. package/dist/components/ui/resizable.d.ts.map +1 -1
  815. package/dist/components/ui/resizable.js +96 -4
  816. package/dist/components/ui/search-dialog.d.ts +40 -5
  817. package/dist/components/ui/search-dialog.d.ts.map +1 -1
  818. package/dist/components/ui/search-dialog.js +94 -16
  819. package/dist/components/ui/search-field.d.ts +159 -0
  820. package/dist/components/ui/search-field.d.ts.map +1 -0
  821. package/dist/components/ui/search-field.js +98 -0
  822. package/dist/components/ui/section.d.ts +108 -1
  823. package/dist/components/ui/section.d.ts.map +1 -1
  824. package/dist/components/ui/section.js +109 -3
  825. package/dist/components/ui/select.d.ts.map +1 -1
  826. package/dist/components/ui/select.js +9 -1
  827. package/dist/components/ui/selection-toolbar.d.ts +166 -0
  828. package/dist/components/ui/selection-toolbar.d.ts.map +1 -0
  829. package/dist/components/ui/selection-toolbar.js +139 -0
  830. package/dist/components/ui/sidebar.d.ts +29 -0
  831. package/dist/components/ui/sidebar.d.ts.map +1 -1
  832. package/dist/components/ui/sidebar.js +35 -2
  833. package/dist/components/ui/signal-field.d.ts.map +1 -1
  834. package/dist/components/ui/signal-field.js +1 -1
  835. package/dist/components/ui/slider.d.ts +7 -0
  836. package/dist/components/ui/slider.d.ts.map +1 -1
  837. package/dist/components/ui/slider.js +32 -1
  838. package/dist/components/ui/sparkline.d.ts +117 -0
  839. package/dist/components/ui/sparkline.d.ts.map +1 -0
  840. package/dist/components/ui/sparkline.js +113 -0
  841. package/dist/components/ui/spinner.d.ts.map +1 -1
  842. package/dist/components/ui/spinner.js +13 -0
  843. package/dist/components/ui/split-button.d.ts +207 -0
  844. package/dist/components/ui/split-button.d.ts.map +1 -0
  845. package/dist/components/ui/split-button.js +75 -0
  846. package/dist/components/ui/stateful-table.d.ts +345 -0
  847. package/dist/components/ui/stateful-table.d.ts.map +1 -0
  848. package/dist/components/ui/stateful-table.js +169 -0
  849. package/dist/components/ui/status.d.ts +99 -0
  850. package/dist/components/ui/status.d.ts.map +1 -0
  851. package/dist/components/ui/status.js +63 -0
  852. package/dist/components/ui/stepper.d.ts +155 -0
  853. package/dist/components/ui/stepper.d.ts.map +1 -0
  854. package/dist/components/ui/stepper.js +83 -0
  855. package/dist/components/ui/steps.d.ts +141 -0
  856. package/dist/components/ui/steps.d.ts.map +1 -0
  857. package/dist/components/ui/steps.js +128 -0
  858. package/dist/components/ui/switch.d.ts +8 -0
  859. package/dist/components/ui/switch.d.ts.map +1 -1
  860. package/dist/components/ui/switch.js +12 -1
  861. package/dist/components/ui/tabs.d.ts +21 -2
  862. package/dist/components/ui/tabs.d.ts.map +1 -1
  863. package/dist/components/ui/tabs.js +23 -4
  864. package/dist/components/ui/tag-group.d.ts +154 -0
  865. package/dist/components/ui/tag-group.d.ts.map +1 -0
  866. package/dist/components/ui/tag-group.js +111 -0
  867. package/dist/components/ui/task-progress.d.ts +149 -0
  868. package/dist/components/ui/task-progress.d.ts.map +1 -0
  869. package/dist/components/ui/task-progress.js +110 -0
  870. package/dist/components/ui/text-format-toolbar.d.ts +211 -0
  871. package/dist/components/ui/text-format-toolbar.d.ts.map +1 -0
  872. package/dist/components/ui/text-format-toolbar.js +186 -0
  873. package/dist/components/ui/timeline.d.ts.map +1 -1
  874. package/dist/components/ui/timeline.js +10 -1
  875. package/dist/components/ui/toast.d.ts +32 -10
  876. package/dist/components/ui/toast.d.ts.map +1 -1
  877. package/dist/components/ui/toast.js +150 -47
  878. package/dist/components/ui/toggle-group.d.ts +14 -5
  879. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  880. package/dist/components/ui/toggle-group.js +15 -1
  881. package/dist/components/ui/toggle.d.ts.map +1 -1
  882. package/dist/components/ui/toggle.js +9 -1
  883. package/dist/components/ui/tree.d.ts +8 -0
  884. package/dist/components/ui/tree.d.ts.map +1 -1
  885. package/dist/components/ui/tree.js +92 -13
  886. package/dist/components/ui/video-player.d.ts +236 -0
  887. package/dist/components/ui/video-player.d.ts.map +1 -0
  888. package/dist/components/ui/video-player.js +72 -0
  889. package/dist/fonts/inter-latin-400-italic.woff2 +0 -0
  890. package/dist/index.d.ts +112 -0
  891. package/dist/index.d.ts.map +1 -1
  892. package/dist/index.js +72 -0
  893. package/dist/lib/utils.d.ts +29 -0
  894. package/dist/lib/utils.d.ts.map +1 -1
  895. package/dist/lib/utils.js +35 -0
  896. package/dist/live/index.d.ts +10 -3
  897. package/dist/live/index.d.ts.map +1 -1
  898. package/dist/live/index.js +12 -3
  899. package/dist/live/run-stream-01/run-stream.js +4 -4
  900. package/dist/live/tool-ledger-01/index.d.ts +3 -0
  901. package/dist/live/tool-ledger-01/index.d.ts.map +1 -0
  902. package/dist/live/tool-ledger-01/index.js +1 -0
  903. package/dist/live/tool-ledger-01/tool-ledger.d.ts +348 -0
  904. package/dist/live/tool-ledger-01/tool-ledger.d.ts.map +1 -0
  905. package/dist/live/tool-ledger-01/tool-ledger.js +245 -0
  906. package/dist/pages/about-page/index.d.ts +306 -0
  907. package/dist/pages/about-page/index.d.ts.map +1 -0
  908. package/dist/pages/about-page/index.js +161 -0
  909. package/dist/pages/careers-page/index.d.ts +288 -0
  910. package/dist/pages/careers-page/index.d.ts.map +1 -0
  911. package/dist/pages/careers-page/index.js +182 -0
  912. package/dist/pages/changelog-page/index.d.ts +255 -0
  913. package/dist/pages/changelog-page/index.d.ts.map +1 -0
  914. package/dist/pages/changelog-page/index.js +86 -0
  915. package/dist/pages/contact-page/index.d.ts +261 -0
  916. package/dist/pages/contact-page/index.d.ts.map +1 -0
  917. package/dist/pages/contact-page/index.js +136 -0
  918. package/dist/pages/docs-shell/docs-shell.d.ts +8 -0
  919. package/dist/pages/docs-shell/docs-shell.d.ts.map +1 -1
  920. package/dist/pages/docs-shell/docs-shell.js +24 -7
  921. package/dist/pages/error-page/index.d.ts +188 -0
  922. package/dist/pages/error-page/index.d.ts.map +1 -0
  923. package/dist/pages/error-page/index.js +98 -0
  924. package/dist/pages/index.d.ts +10 -0
  925. package/dist/pages/index.d.ts.map +1 -1
  926. package/dist/pages/index.js +14 -0
  927. package/dist/pages/legal-page/index.d.ts +194 -0
  928. package/dist/pages/legal-page/index.d.ts.map +1 -0
  929. package/dist/pages/legal-page/index.js +99 -0
  930. package/dist/pages/onboarding-page/index.d.ts +199 -0
  931. package/dist/pages/onboarding-page/index.d.ts.map +1 -0
  932. package/dist/pages/onboarding-page/index.js +71 -0
  933. package/dist/pages/pricing-page/index.d.ts +286 -0
  934. package/dist/pages/pricing-page/index.d.ts.map +1 -0
  935. package/dist/pages/pricing-page/index.js +139 -0
  936. package/dist/pages/search-page/index.d.ts +305 -0
  937. package/dist/pages/search-page/index.d.ts.map +1 -0
  938. package/dist/pages/search-page/index.js +142 -0
  939. package/dist/pages/status-page/index.d.ts +366 -0
  940. package/dist/pages/status-page/index.d.ts.map +1 -0
  941. package/dist/pages/status-page/index.js +136 -0
  942. package/dist/styles.css +1003 -55
  943. package/package.json +9 -3
@@ -0,0 +1,130 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { ChevronLeftIcon, ChevronRightIcon, XIcon, ZoomInIcon, ZoomOutIcon } from 'lucide-react';
4
+ import { useEffect, useState } from 'react';
5
+ import { cn } from '../../lib/utils.js';
6
+ import { Dialog, DialogClose, DialogContent, DialogTitle } from './dialog.js';
7
+ /**
8
+ * The metrics every control in this Component draws, and the coarse-pointer floor.
9
+ *
10
+ * `pointer-coarse:size-11` is a step rather than a band. These are ghost icon
11
+ * controls in a centred bar inside the dialog, and the drawn size is not the point of
12
+ * any of them, which is the condition a band exists for and the reason the switch,
13
+ * thumb and corner-icon cases in `DESIGN.md` band instead. The bar is `gap-2`, so
14
+ * growing each control by four pixels on each side costs eight pixels of gap per
15
+ * neighbour and the bar is centred rather than flush, so nothing shifts off the edge.
16
+ *
17
+ * The close control here is a `DialogClose`, and `DialogClose` carries no size of its
18
+ * own: `dialog.tsx` puts its coarse-pointer floor on the close control it renders
19
+ * inside `DialogContent`, and this one is a separate `DialogClose` passed as a child,
20
+ * so this string is the only thing sizing it. See DESIGN.md, The coarse-pointer floor.
21
+ */
22
+ const CONTROL = 'text-muted-foreground hover:text-foreground inline-flex size-9 items-center justify-center rounded-md outline-none transition-colors duration-fast ease-out disabled:pointer-events-none disabled:opacity-50 focus-visible:ring-ring focus-visible:ring-[3px]' +
23
+ ' pointer-coarse:size-11';
24
+ /** An index held inside the set, which is what keeps a rail control from falling off it. */
25
+ function clamp(value, total) {
26
+ if (total <= 0)
27
+ return 0;
28
+ return Math.min(Math.max(value, 0), total - 1);
29
+ }
30
+ /**
31
+ * An image at full size, in a dialog, with its own words and its own way out.
32
+ *
33
+ * **This Item exists because an image the reader cannot enlarge is an image the
34
+ * reader cannot read.** That is the whole argument, and it is not a small one,
35
+ * because an image carries text for a great many products: a chart exported as
36
+ * a picture, a screenshot of a console, a diagram, a photograph of a receipt, a
37
+ * logo lockup with a wordmark in it. At 320 pixels wide none of that is
38
+ * readable, and a reader who cannot read it has been shown a thumbnail and told
39
+ * it was the thing. Zooming in the browser is the alternative every consumer
40
+ * reaches for, and it is a poor one for a reader who is not using a mouse, one
41
+ * for a touch device where the gesture is not discoverable, and one that leaves
42
+ * the page's own focus, Escape key and scroll position behind, so the reader
43
+ * comes back to a different place than they left. A dialog is the whole of that
44
+ * and it comes free from a component library.
45
+ *
46
+ * **The dialog is `Dialog`, not a re-derivation of it.** The focus trap, the
47
+ * restore of focus to whatever opened it, the Escape key, the outside press, the
48
+ * scroll lock and the portal are all already solved and all of them are solved
49
+ * badly twice as often as they are solved well. An image overlay built on
50
+ * `<div>` and a `keydown` listener gets the Escape key and no focus trap, so a
51
+ * keyboard reader tabs behind the image into a page they cannot see; and every
52
+ * one of those defects is invisible in review because the overlay works for the
53
+ * person writing it. So this Component composes `Dialog` and spends its own
54
+ * surface on the three things `Dialog` does not know about: the rail, the
55
+ * controls and the zoom.
56
+ *
57
+ * **The four labels are props because Prism does not ship the words.** That is
58
+ * `check-block-copy`'s finding about `Dialog`'s close button, and it is a
59
+ * finding about this Component too: a hardcoded label is copy a consumer cannot
60
+ * localise, so a product in any language but English inherits an English
61
+ * control in the middle of its own interface, and the only fix is a fork. They
62
+ * are required rather than optional even though a lightbox with no rail draws
63
+ * no previous and no next control, and the reasoning is worth stating because it
64
+ * looks like friction. A required prop is a question asked at build time; an
65
+ * optional one is a question nobody asks, and the lightbox that grew a rail
66
+ * later would be the release where the two missing labels are discovered. It
67
+ * also keeps the prop set stable, so adding thumbnails is not a breaking change
68
+ * to the type.
69
+ *
70
+ * **The zoom is a state, not a gesture.** It toggles between fitted and actual
71
+ * size and the frame scrolls once the image is larger than it is, so the reader
72
+ * pans with the scroll keys and the arrow keys the way they pan anywhere else.
73
+ * There is no pinch, no drag to pan and no double tap, and the reason is that
74
+ * each of those is a bespoke pointer model that has to be discovered, whereas a
75
+ * scrollable frame is a thing every reader already knows. The transition on the
76
+ * image is a state change the reader caused, which is the first motion law's own
77
+ * case, and it carries no `motion-safe:` guard because it does not need one:
78
+ * `packages/ui/src/styles.css` ends with one unlayered `prefers-reduced-motion`
79
+ * rule that stops every transition, so a reader who has asked for less motion
80
+ * gets the new size immediately and loses only the travel between the two.
81
+ *
82
+ * **The rail is a list of real buttons and the current one is named, not
83
+ * coloured.** A rail of thumbnails is the one place a lightbox most often gets
84
+ * this wrong: the selected thumbnail gets a border and nothing else, so a
85
+ * screen reader user is read six identical buttons and a reader in greyscale is
86
+ * shown a difference of one pixel. Here each button is named by its own `alt`,
87
+ * which is a description of that image rather than of the position, and the
88
+ * current one carries `aria-current`. The inner image is marked decorative with
89
+ * an empty `alt`, so the button's name is the description and not a doubled
90
+ * reading of the same pixels.
91
+ *
92
+ * **The current image is the caller's.** `src` and `alt` are props, so this
93
+ * Component cannot move the image, and every control here asks for an index
94
+ * rather than setting one. That is a real constraint on a caller who wants the
95
+ * lightbox to own the sequence, and the reason for it is the same as everywhere
96
+ * else in this package: the images are application data, and a Component that
97
+ * held them would be a Component every consumer whose gallery is not this shape
98
+ * had to reimplement. A caller that wants an uncontrolled lightbox passes
99
+ * `index` and `onIndexChange` and keeps the state; one that wants the lightbox
100
+ * to remember where it was omits both and gets the local one.
101
+ *
102
+ * It is a client Component, and only because `Dialog` is one.
103
+ */
104
+ function Lightbox({ open, onOpenChange, src, alt, caption, thumbnails, index, onIndexChange, zoomLabel, previousLabel, nextLabel, closeLabel, className, }) {
105
+ const total = thumbnails?.length ?? 0;
106
+ const [uncontrolled, setUncontrolled] = useState(0);
107
+ const at = clamp(index ?? uncontrolled, total);
108
+ const [zoomed, setZoomed] = useState(false);
109
+ // Zoom is a decision about this visit. Reopening on the zoomed image would
110
+ // mean a reader who closed a picture halfway through came back to a crop they
111
+ // had forgotten they had made, and the reset is the smaller surprise.
112
+ useEffect(() => {
113
+ if (!open)
114
+ setZoomed(false);
115
+ }, [open]);
116
+ const move = (next) => {
117
+ const at1 = clamp(next, total);
118
+ if (index === undefined)
119
+ setUncontrolled(at1);
120
+ onIndexChange?.(at1);
121
+ };
122
+ // A string caption is the dialog's name as well as its caption: one sentence
123
+ // naming a figure beats the same sentence twice. A node cannot be a name,
124
+ // because a name is a string and a node may be a list or a picture, so the
125
+ // dialog falls back to the image's own description.
126
+ const named = typeof caption === 'string' && caption.trim() !== '' ? caption : alt;
127
+ const titleVisible = named === caption;
128
+ return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { "data-slot": "lightbox", showCloseButton: false, className: cn('max-w-overlay-media', className), children: [_jsx(DialogTitle, { "data-slot": "lightbox-title", className: titleVisible ? 'text-muted-foreground text-sm font-normal' : 'sr-only', children: named }), _jsx("div", { "data-slot": "lightbox-frame", "data-zoomed": zoomed || undefined, className: "overflow-auto", children: _jsx("img", { "data-slot": "lightbox-image", src: src, alt: alt, className: cn('mx-auto block transition-transform duration-base ease-out', zoomed ? 'max-w-none' : 'max-h-[70vh] max-w-full object-contain') }) }), caption !== undefined && !titleVisible ? (_jsx("div", { "data-slot": "lightbox-caption", className: "text-muted-foreground text-sm", children: caption })) : null, total > 1 ? (_jsx("ul", { "data-slot": "lightbox-rail", className: "flex flex-wrap items-center justify-center gap-2", children: thumbnails?.map((entry, at1) => (_jsx("li", { "data-slot": "lightbox-rail-item", children: _jsx("button", { type: "button", "data-slot": "lightbox-thumbnail", "data-current": at1 === at || undefined, "aria-label": entry.alt, "aria-current": at1 === at ? 'true' : undefined, onClick: () => move(at1), className: cn('block overflow-hidden rounded-md border-2 outline-none transition-colors duration-fast ease-out', at1 === at ? 'border-primary' : 'border-transparent hover:border-border', 'focus-visible:ring-ring focus-visible:ring-[3px]'), children: _jsx("img", { "data-slot": "lightbox-thumbnail-image", src: entry.src, alt: "", className: "h-12 w-16 object-cover" }) }) }, entry.src))) })) : null, _jsxs("div", { "data-slot": "lightbox-controls", className: "flex items-center justify-center gap-2", children: [total > 1 ? (_jsx("button", { type: "button", "data-slot": "lightbox-previous", "aria-label": previousLabel, disabled: at === 0, onClick: () => move(at - 1), className: CONTROL, children: _jsx(ChevronLeftIcon, { className: "size-4", "aria-hidden": "true" }) })) : null, _jsx("button", { type: "button", "data-slot": "lightbox-zoom", "aria-label": zoomLabel, "aria-pressed": zoomed, onClick: () => setZoomed((value) => !value), className: CONTROL, children: zoomed ? (_jsx(ZoomOutIcon, { className: "size-4", "aria-hidden": "true" })) : (_jsx(ZoomInIcon, { className: "size-4", "aria-hidden": "true" })) }), total > 1 ? (_jsx("button", { type: "button", "data-slot": "lightbox-next", "aria-label": nextLabel, disabled: at === total - 1, onClick: () => move(at + 1), className: CONTROL, children: _jsx(ChevronRightIcon, { className: "size-4", "aria-hidden": "true" }) })) : null, _jsx(DialogClose, { "data-slot": "lightbox-close", "aria-label": closeLabel, className: CONTROL, children: _jsx(XIcon, { className: "size-4", "aria-hidden": "true" }) })] })] }) }));
129
+ }
130
+ export { Lightbox };
@@ -0,0 +1,288 @@
1
+ import { type ComponentProps, type ReactNode } from 'react';
2
+ /**
3
+ * The props a `ListPanelHeader` takes.
4
+ *
5
+ * A part rather than an Item, and it stays inside this module: DESIGN.md's
6
+ * authoring contract says compound parts ship from their parent module and do not
7
+ * form a second vocabulary, so `ListPanelHeader` is not a catalogue entry and gets
8
+ * no folder of its own.
9
+ */
10
+ export interface ListPanelHeaderProps extends Omit<ComponentProps<'div'>, 'title'> {
11
+ /**
12
+ * The id the panel's `aria-labelledby` points at.
13
+ *
14
+ * Supplied by `ListPanel`, which generates it and puts it on the title element.
15
+ * It is not optional in the sense of being forgettable: a caller who renders a
16
+ * `ListPanelHeader` inside their own `section` passes their own id and sets
17
+ * `aria-labelledby` themselves, and the cost of that arrangement is the reason
18
+ * the `title` prop on `ListPanel` is the ordinary path.
19
+ */
20
+ titleId: string;
21
+ /** The one line that names the panel. */
22
+ title?: ReactNode;
23
+ /** The supporting line under the title. */
24
+ description?: ReactNode;
25
+ /**
26
+ * A count line, such as the caller's own "12 of 40".
27
+ *
28
+ * A node and not a number because the sentence around the number is the
29
+ * consumer's: an English reader wants "12 of 40", a locale that puts the total
30
+ * first wants it the other way round, and a panel that assembled the sentence
31
+ * would have assembled it in one of them.
32
+ */
33
+ count?: ReactNode;
34
+ /** The controls at the trailing edge of the header. */
35
+ actions?: ReactNode;
36
+ /** Layout only. */
37
+ className?: string;
38
+ }
39
+ /**
40
+ * The props a `ListPanelBody` takes, as a union over whether the body scrolls.
41
+ *
42
+ * A union rather than two independent optionals, for the reason the whole module
43
+ * keeps repeating: a scroll region is a tab stop, so a scrolling body owes it a
44
+ * name, and a body that does not scroll is not a tab stop and owes nothing. One
45
+ * optional prop set cannot say that, and a `label` that is required in one shape
46
+ * and optional in another is a prop whose absence is sometimes a mistake and
47
+ * sometimes a decision.
48
+ */
49
+ export type ListPanelBodyProps = Omit<ComponentProps<'div'>, 'children'> & {
50
+ /** The rows, or whatever the list actually is. */
51
+ children?: ReactNode;
52
+ /** Layout only. */
53
+ className?: string;
54
+ } & ({
55
+ /**
56
+ * A body that scrolls, which is a tab stop and therefore has to be named.
57
+ *
58
+ * The rule `ScrollArea` states, restated here because the body is the part
59
+ * the caller touches, and a rule one step further on is a rule a caller reading
60
+ * this module never meets. `scroll` is optional in this arm rather than
61
+ * required, so a caller who is scrolling writes `<ListPanelBody label="...">`
62
+ * and reads no boolean at all.
63
+ */
64
+ scroll?: true;
65
+ label: string;
66
+ } | {
67
+ /**
68
+ * A body that grows with its content, which is not a tab stop and needs no
69
+ * name.
70
+ */
71
+ scroll?: false;
72
+ label?: string;
73
+ });
74
+ /** The props a `ListPanelFooter` takes. */
75
+ export interface ListPanelFooterProps extends ComponentProps<'div'> {
76
+ /** Layout only. */
77
+ className?: string;
78
+ }
79
+ /**
80
+ * The props a `ListPanel` takes, as a union over whether the body scrolls.
81
+ *
82
+ * A union rather than one optional prop set, because `label` and `maxHeight` are
83
+ * required in one shape and meaningless in the other, and an optional prop cannot
84
+ * say that. A caller who turns scrolling on has named a tab stop and owes it a
85
+ * name; a caller who has turned it off has no tab stop and owes nothing.
86
+ */
87
+ export type ListPanelProps = Omit<ComponentProps<'section'>, 'children' | 'title'> & {
88
+ /**
89
+ * The one line that names the panel, and the accessible name of the region.
90
+ *
91
+ * A `ReactNode` and not a `string`, because the panel's visible title is
92
+ * content: an emphasis inside it, a count styled as part of it, a node with a
93
+ * link in it. The accessible name is derived from this element by
94
+ * `aria-labelledby` rather than set as a string, so the two can never say
95
+ * different things.
96
+ */
97
+ title?: ReactNode;
98
+ /** The supporting line under the title, in the muted ink. */
99
+ description?: ReactNode;
100
+ /**
101
+ * A count line, such as the caller's own "12 of 40".
102
+ *
103
+ * Rendered under the description rather than beside the title because a count
104
+ * is read after the name and before the description, and putting it on the
105
+ * title's line would make the title itself wrap for a number.
106
+ */
107
+ count?: ReactNode;
108
+ /**
109
+ * The header's toolbar slot: the controls that act on the whole list rather
110
+ * than on one row.
111
+ *
112
+ * A slot and not a set of named controls, because which controls a list has is
113
+ * the consumer's fact. A panel that drew a search box and a sort would be a
114
+ * panel that assumed the list it holds is searchable and sortable.
115
+ */
116
+ actions?: ReactNode;
117
+ /**
118
+ * The footer's slot: the actions that belong to the whole list, such as load
119
+ * more, or the line saying how much of the set is shown.
120
+ *
121
+ * Distinct from `actions` because a header acts on the list and a footer ends
122
+ * it, and because the footer is the only part that stays put while the body
123
+ * scrolls. Merging them would put a control that has to stay reachable in a
124
+ * band that scrolls away.
125
+ */
126
+ footer?: ReactNode;
127
+ /** The list itself: the caller's own `ul`, `ol`, table or set of rows. */
128
+ children?: ReactNode;
129
+ /** Layout only, exactly as on every Component. */
130
+ className?: string;
131
+ } & ({
132
+ /**
133
+ * Whether the body scrolls inside the panel's `maxHeight`.
134
+ *
135
+ * On by default, and the default is the decision: the panel exists because
136
+ * the list is long, and a panel that grows to the length of its list is a
137
+ * frame around a page.
138
+ */
139
+ scroll?: true;
140
+ /**
141
+ * The height the panel stops at, in pixels, once the list is longer than
142
+ * that.
143
+ *
144
+ * A number and not a Tailwind class because the bound is data rather than
145
+ * layout: the same panel is a short one in a sidebar and a tall one on a
146
+ * full page, and a caller who could only say `max-h-80` would be picking
147
+ * one of those for the other.
148
+ */
149
+ maxHeight?: number;
150
+ /**
151
+ * The panel's accessible name, and the scroll region's.
152
+ *
153
+ * A `string` and not a `ReactNode`, because this one is written into
154
+ * `aria-label` and an accessible name is a string. A node here would
155
+ * render as nothing a reader hears.
156
+ */
157
+ label: string;
158
+ } | {
159
+ /** Turn scrolling off for a panel whose list is known to be short. */
160
+ scroll: false;
161
+ /** A bound with no scrolling is a bound that hides rows, so it is refused. */
162
+ maxHeight?: never;
163
+ /**
164
+ * The panel's accessible name, used only when there is no `title` to take
165
+ * it from.
166
+ */
167
+ label?: string;
168
+ });
169
+ /**
170
+ * A titled panel whose body is a scrolling list, with slots above and below it.
171
+ *
172
+ * **This is the third thing, and the reason it exists is that the other two were
173
+ * already taken.** `item.tsx` is a row: media, a name, a description, a value
174
+ * and trailing controls, with no opinion at all about what encloses it. And
175
+ * `fact-list.tsx` is a definition list: a term beside its answer, scanned down a
176
+ * column, short enough that the whole set is meant to be read. Neither is a
177
+ * container, and a long list needs one. So this is the third thing: a titled,
178
+ * bounded, scrollable region that gives a long list a place to end. The three
179
+ * compose, and none of them can be derived from another: rows without a panel is
180
+ * a page that never ends, and a panel without rows is a frame.
181
+ *
182
+ * **A `ListPanel` is not a table, and the difference is the reader's job rather
183
+ * than the markup's.** A panel holds a list: each row is one thing, read top to
184
+ * bottom, and the reader is scanning for the one they want. The moment the reader
185
+ * needs to compare a value in one row against the same value in another, the
186
+ * content is records with columns, the answer is `table.tsx`, and putting rows in
187
+ * a panel instead is a table a reader has to read cell by cell because the
188
+ * semantics are not there. The reverse is equally wrong: a two-column table of
189
+ * one thing per row, where the second column is a status nobody compares against
190
+ * anything, is a list that paid for column semantics it does not use.
191
+ *
192
+ * **The region is a real `<section>` and it is named by its own title.** Not a
193
+ * `div`, because a panel of forty rows is a landmark a screen reader user walks
194
+ * past on the way to something else, and a landmark they cannot name is a
195
+ * landmark they walk past twice. The name comes from `aria-labelledby` pointing
196
+ * at the title element rather than from a string prop, so the name a reader hears
197
+ * and the name a sighted reader reads are the same text by construction and
198
+ * cannot drift.
199
+ *
200
+ * **With no title there is no invented one.** The panel renders a `section` with
201
+ * no name and says nothing, and `label` is the only way to name it. This is the
202
+ * one place in this package where a region is allowed to arrive anonymous, and it
203
+ * is the right answer rather than a gap: a panel named "Panel" is a claim that
204
+ * is wrong in every consumer's product, and a screen reader user hearing "Panel"
205
+ * learns less than hearing nothing, because a name is a promise that something
206
+ * follows it. An anonymous region is honestly absent from the landmark list and
207
+ * the reader moves on. A caller who wants a name passes one.
208
+ *
209
+ * **The scroll is `ScrollArea` and not `overflow: auto`, and that is the whole
210
+ * reason the body is not written inline.** The browser's scrollbar is the one
211
+ * control on a page that belongs to no design system: it is a rectangle the
212
+ * operating system drew, in a colour chosen for the OS's own background rather
213
+ * than for the card the content is on, and it is the only control that is resized
214
+ * by dragging and appears on a timer. Composing this panel around `overflow-auto`
215
+ * would give the reader a Prism surface beside an operating system scrollbar on
216
+ * every panel in every consumer. The scrolling itself is still the browser's, so
217
+ * the arrow keys, Page Up, Page Down, Home, End, the scroll position and
218
+ * scroll-into-view all keep working, and only the bar's appearance is taken over.
219
+ *
220
+ * **The bound is on the panel and the body absorbs it.** `maxHeight` is set on
221
+ * the `section`, which is a flex column, and the body is the flex item that
222
+ * shrinks, so a list shorter than the bound grows the panel to fit and a list
223
+ * longer than it scrolls inside what is left after the header and the footer. The
224
+ * alternative, a `max-height` on the scroll region alone, leaves the region's own
225
+ * height content-driven and clips the rows without giving the reader anything to
226
+ * scroll.
227
+ *
228
+ * **The title's id is generated, and `useId` is why this module needs no
229
+ * `'use client'`.** Pointing `aria-labelledby` at an element the Component drew
230
+ * itself needs an id, and the Component may not invent one by counting: two panels
231
+ * on a page would both reach for the same first id. `useId` is the one hook React
232
+ * runs during a server render as well as a client one, so the panel is an ordinary
233
+ * server Component with the `'use client'` line and the client runtime left off.
234
+ * What that costs is stated rather than implied: a panel whose body scrolls is in
235
+ * the client graph anyway, through `ScrollArea`, and a panel with `scroll={false}`
236
+ * and no caller state of its own ships no JavaScript from this file.
237
+ *
238
+ * The four exported parts are the panel's own pieces, and they are exported
239
+ * rather than kept private for the reason `Card`'s parts are: a caller who wants
240
+ * the header's geometry inside a `Card` they built, or a footer on a section of
241
+ * their own, should not have to re-derive `border-b px-4 py-3` to get it. The
242
+ * `title`, `description`, `count`, `actions` and `footer` props are the shorthand
243
+ * for the ordinary case, and the two are the same markup.
244
+ */
245
+ declare function ListPanel({ title, description, count, actions, footer, children, scroll, maxHeight, label, className, style, ...props }: ListPanelProps): import("react").JSX.Element;
246
+ /**
247
+ * The row above a panel's list: the title, its supporting lines, and a toolbar
248
+ * slot at the trailing edge.
249
+ *
250
+ * Rendered by `ListPanel` when any of its four slots is present, and not rendered
251
+ * at all when none is, because a bordered band with nothing in it is a gap the
252
+ * reader looks through. The title element is a `span` carrying the id the panel
253
+ * points `aria-labelledby` at, rather than a heading: a panel's title is not
254
+ * always the heading of the region it sits in, four panels in a grid are four
255
+ * titles under one section heading, and four `h3`s under one `h2` is right while
256
+ * four `h2`s is four sections. A caller who wants a heading there passes an
257
+ * element as `title` and keeps the name.
258
+ */
259
+ declare function ListPanelHeader({ titleId, title, description, count, actions, className, ...props }: ListPanelHeaderProps): import("react").JSX.Element;
260
+ /**
261
+ * A panel's body: the list, and the scroll region it scrolls in.
262
+ *
263
+ * **The scroll region is `ScrollArea` and the rows are the caller's own element.**
264
+ * The panel draws the frame and the scrollbar; the caller writes the `ul`, the
265
+ * `ol` or the table inside it, because the shape of the list is a fact about the
266
+ * data and a list of records in a `ul` is a different thing from the same records
267
+ * in a table. That is the same decision `Item` makes about the row, applied one
268
+ * level up, and it is why this Component takes `children` and no `items`.
269
+ *
270
+ * The vertical scrollbar only. A panel scrolls because it is tall, and a panel
271
+ * whose content is also wider than the panel is a caller who has put a table in
272
+ * the wrong place: `table.tsx` already owns a horizontal region for exactly that,
273
+ * and two nested scrollers is a reader with two axes to guess about.
274
+ */
275
+ declare function ListPanelBody({ scroll, label, className, children, ...props }: ListPanelBodyProps): import("react").JSX.Element;
276
+ /**
277
+ * The band under a panel's list, where the actions that belong to the whole list
278
+ * sit and where a count that is not the caller's headline number belongs.
279
+ *
280
+ * On the muted surface and above a rule rather than on the card, because it is the
281
+ * one band in the panel that does not scroll: a control the reader has to reach
282
+ * after scrolling to the end of a long list cannot be in the list. A footer that
283
+ * scrolls away with the rows is a footer that only exists for a reader who never
284
+ * needed it.
285
+ */
286
+ declare function ListPanelFooter({ className, ...props }: ListPanelFooterProps): import("react").JSX.Element;
287
+ export { ListPanel, ListPanelHeader, ListPanelBody, ListPanelFooter };
288
+ //# sourceMappingURL=list-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-panel.d.ts","sourceRoot":"","sources":["../../../src/components/ui/list-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAKlE;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChF;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,CAAA;IACf,yCAAyC;IACzC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,GAAG;IACzE,kDAAkD;IAClD,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,CACA;IACE;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,IAAI,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,GACD;IACE;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CACJ,CAAA;AAED,2CAA2C;AAC3C,MAAM,WAAW,oBAAqB,SAAQ,cAAc,CAAC,KAAK,CAAC;IACjE,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG;IACnF;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,CACA;IACE;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,IAAI,CAAA;IACb;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAA;CACd,GACD;IACE,sEAAsE;IACtE,MAAM,EAAE,KAAK,CAAA;IACb,8EAA8E;IAC9E,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CACJ,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AACH,iBAAS,SAAS,CAAC,EACjB,KAAK,EACL,WAAW,EACX,KAAK,EACL,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,cAAc,+BAkDhB;AAED;;;;;;;;;;;;GAYG;AACH,iBAAS,eAAe,CAAC,EACvB,OAAO,EACP,KAAK,EACL,WAAW,EACX,KAAK,EACL,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,EAAE,oBAAoB,+BA2CtB;AAED;;;;;;;;;;;;;;GAcG;AACH,iBAAS,aAAa,CAAC,EACrB,MAAM,EACN,KAAK,EACL,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,+BAuBpB;AAED;;;;;;;;;GASG;AACH,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,oBAAoB,+BAQrE;AAED,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,CAAA"}
@@ -0,0 +1,139 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useId } from 'react';
3
+ import { ScrollArea } from './scroll-area.js';
4
+ import { cn } from '../../lib/utils.js';
5
+ /**
6
+ * A titled panel whose body is a scrolling list, with slots above and below it.
7
+ *
8
+ * **This is the third thing, and the reason it exists is that the other two were
9
+ * already taken.** `item.tsx` is a row: media, a name, a description, a value
10
+ * and trailing controls, with no opinion at all about what encloses it. And
11
+ * `fact-list.tsx` is a definition list: a term beside its answer, scanned down a
12
+ * column, short enough that the whole set is meant to be read. Neither is a
13
+ * container, and a long list needs one. So this is the third thing: a titled,
14
+ * bounded, scrollable region that gives a long list a place to end. The three
15
+ * compose, and none of them can be derived from another: rows without a panel is
16
+ * a page that never ends, and a panel without rows is a frame.
17
+ *
18
+ * **A `ListPanel` is not a table, and the difference is the reader's job rather
19
+ * than the markup's.** A panel holds a list: each row is one thing, read top to
20
+ * bottom, and the reader is scanning for the one they want. The moment the reader
21
+ * needs to compare a value in one row against the same value in another, the
22
+ * content is records with columns, the answer is `table.tsx`, and putting rows in
23
+ * a panel instead is a table a reader has to read cell by cell because the
24
+ * semantics are not there. The reverse is equally wrong: a two-column table of
25
+ * one thing per row, where the second column is a status nobody compares against
26
+ * anything, is a list that paid for column semantics it does not use.
27
+ *
28
+ * **The region is a real `<section>` and it is named by its own title.** Not a
29
+ * `div`, because a panel of forty rows is a landmark a screen reader user walks
30
+ * past on the way to something else, and a landmark they cannot name is a
31
+ * landmark they walk past twice. The name comes from `aria-labelledby` pointing
32
+ * at the title element rather than from a string prop, so the name a reader hears
33
+ * and the name a sighted reader reads are the same text by construction and
34
+ * cannot drift.
35
+ *
36
+ * **With no title there is no invented one.** The panel renders a `section` with
37
+ * no name and says nothing, and `label` is the only way to name it. This is the
38
+ * one place in this package where a region is allowed to arrive anonymous, and it
39
+ * is the right answer rather than a gap: a panel named "Panel" is a claim that
40
+ * is wrong in every consumer's product, and a screen reader user hearing "Panel"
41
+ * learns less than hearing nothing, because a name is a promise that something
42
+ * follows it. An anonymous region is honestly absent from the landmark list and
43
+ * the reader moves on. A caller who wants a name passes one.
44
+ *
45
+ * **The scroll is `ScrollArea` and not `overflow: auto`, and that is the whole
46
+ * reason the body is not written inline.** The browser's scrollbar is the one
47
+ * control on a page that belongs to no design system: it is a rectangle the
48
+ * operating system drew, in a colour chosen for the OS's own background rather
49
+ * than for the card the content is on, and it is the only control that is resized
50
+ * by dragging and appears on a timer. Composing this panel around `overflow-auto`
51
+ * would give the reader a Prism surface beside an operating system scrollbar on
52
+ * every panel in every consumer. The scrolling itself is still the browser's, so
53
+ * the arrow keys, Page Up, Page Down, Home, End, the scroll position and
54
+ * scroll-into-view all keep working, and only the bar's appearance is taken over.
55
+ *
56
+ * **The bound is on the panel and the body absorbs it.** `maxHeight` is set on
57
+ * the `section`, which is a flex column, and the body is the flex item that
58
+ * shrinks, so a list shorter than the bound grows the panel to fit and a list
59
+ * longer than it scrolls inside what is left after the header and the footer. The
60
+ * alternative, a `max-height` on the scroll region alone, leaves the region's own
61
+ * height content-driven and clips the rows without giving the reader anything to
62
+ * scroll.
63
+ *
64
+ * **The title's id is generated, and `useId` is why this module needs no
65
+ * `'use client'`.** Pointing `aria-labelledby` at an element the Component drew
66
+ * itself needs an id, and the Component may not invent one by counting: two panels
67
+ * on a page would both reach for the same first id. `useId` is the one hook React
68
+ * runs during a server render as well as a client one, so the panel is an ordinary
69
+ * server Component with the `'use client'` line and the client runtime left off.
70
+ * What that costs is stated rather than implied: a panel whose body scrolls is in
71
+ * the client graph anyway, through `ScrollArea`, and a panel with `scroll={false}`
72
+ * and no caller state of its own ships no JavaScript from this file.
73
+ *
74
+ * The four exported parts are the panel's own pieces, and they are exported
75
+ * rather than kept private for the reason `Card`'s parts are: a caller who wants
76
+ * the header's geometry inside a `Card` they built, or a footer on a section of
77
+ * their own, should not have to re-derive `border-b px-4 py-3` to get it. The
78
+ * `title`, `description`, `count`, `actions` and `footer` props are the shorthand
79
+ * for the ordinary case, and the two are the same markup.
80
+ */
81
+ function ListPanel({ title, description, count, actions, footer, children, scroll, maxHeight, label, className, style, ...props }) {
82
+ const titleId = useId();
83
+ const named = title !== undefined;
84
+ const hasHeader = named || description !== undefined || count !== undefined || actions !== undefined;
85
+ const hasFooter = footer !== undefined && footer !== null && footer !== false;
86
+ return (_jsxs("section", { "data-slot": "list-panel", "aria-labelledby": named ? titleId : undefined, "aria-label": named ? undefined : label, style: maxHeight === undefined ? style : { maxHeight, ...style }, className: cn('bg-card text-card-foreground flex min-h-0 flex-col overflow-hidden rounded-lg border', className), ...props, children: [hasHeader ? (_jsx(ListPanelHeader, { titleId: titleId, title: title, description: description, count: count, actions: actions })) : null, scroll === false ? (_jsx(ListPanelBody, { label: label, children: children })) : (_jsx(ListPanelBody, { scroll: true, label: label, children: children })), hasFooter ? _jsx(ListPanelFooter, { children: footer }) : null] }));
87
+ }
88
+ /**
89
+ * The row above a panel's list: the title, its supporting lines, and a toolbar
90
+ * slot at the trailing edge.
91
+ *
92
+ * Rendered by `ListPanel` when any of its four slots is present, and not rendered
93
+ * at all when none is, because a bordered band with nothing in it is a gap the
94
+ * reader looks through. The title element is a `span` carrying the id the panel
95
+ * points `aria-labelledby` at, rather than a heading: a panel's title is not
96
+ * always the heading of the region it sits in, four panels in a grid are four
97
+ * titles under one section heading, and four `h3`s under one `h2` is right while
98
+ * four `h2`s is four sections. A caller who wants a heading there passes an
99
+ * element as `title` and keeps the name.
100
+ */
101
+ function ListPanelHeader({ titleId, title, description, count, actions, className, ...props }) {
102
+ return (_jsxs("div", { "data-slot": "list-panel-header", className: cn('flex items-start justify-between gap-4 border-b px-4 py-3', className), ...props, children: [_jsxs("div", { className: "flex min-w-0 flex-col gap-0.5", children: [title === undefined ? null : (_jsx("span", { id: titleId, "data-slot": "list-panel-title", className: "text-sm font-medium", children: title })), description === undefined ? null : (_jsx("span", { "data-slot": "list-panel-description", className: "text-muted-foreground text-sm", children: description })), count === undefined ? null : (_jsx("span", { "data-slot": "list-panel-count", className: "text-muted-foreground text-xs tabular-nums", children: count }))] }), actions === undefined ? null : (_jsx("div", { "data-slot": "list-panel-actions", className: "flex shrink-0 items-center gap-2", children: actions }))] }));
103
+ }
104
+ /**
105
+ * A panel's body: the list, and the scroll region it scrolls in.
106
+ *
107
+ * **The scroll region is `ScrollArea` and the rows are the caller's own element.**
108
+ * The panel draws the frame and the scrollbar; the caller writes the `ul`, the
109
+ * `ol` or the table inside it, because the shape of the list is a fact about the
110
+ * data and a list of records in a `ul` is a different thing from the same records
111
+ * in a table. That is the same decision `Item` makes about the row, applied one
112
+ * level up, and it is why this Component takes `children` and no `items`.
113
+ *
114
+ * The vertical scrollbar only. A panel scrolls because it is tall, and a panel
115
+ * whose content is also wider than the panel is a caller who has put a table in
116
+ * the wrong place: `table.tsx` already owns a horizontal region for exactly that,
117
+ * and two nested scrollers is a reader with two axes to guess about.
118
+ */
119
+ function ListPanelBody({ scroll, label, className, children, ...props }) {
120
+ return (_jsx("div", { "data-slot": "list-panel-body", className: cn('min-w-0 flex-1',
121
+ // The two states differ in more than a wrapper. A bounded body clips and
122
+ // hands the overflow to the scroll region; an unbounded one is allowed to
123
+ // grow, because the caller has said the list is short.
124
+ scroll === true ? 'min-h-0 overflow-hidden' : '', className), ...props, children: scroll === true ? (_jsx(ScrollArea, { label: label, orientation: "vertical", className: "h-full", children: children })) : (children) }));
125
+ }
126
+ /**
127
+ * The band under a panel's list, where the actions that belong to the whole list
128
+ * sit and where a count that is not the caller's headline number belongs.
129
+ *
130
+ * On the muted surface and above a rule rather than on the card, because it is the
131
+ * one band in the panel that does not scroll: a control the reader has to reach
132
+ * after scrolling to the end of a long list cannot be in the list. A footer that
133
+ * scrolls away with the rows is a footer that only exists for a reader who never
134
+ * needed it.
135
+ */
136
+ function ListPanelFooter({ className, ...props }) {
137
+ return (_jsx("div", { "data-slot": "list-panel-footer", className: cn('bg-muted/50 flex items-center gap-3 border-t px-4 py-3 text-sm', className), ...props }));
138
+ }
139
+ export { ListPanel, ListPanelHeader, ListPanelBody, ListPanelFooter };